/* Feuilles de style de l'accueil groupettr.fr (copie locale du 08/11/2026), reprises telles quelles. Ajustements dans ttr.css. */

/* Téléphone et tablette (< 1024 px) : une seule colonne qui se lit de haut en bas, barre d'action fixe en bas.
   Ordinateur (≥ 1024 px) : site corporate (voir le bloc ORDINATEUR en fin de feuille). */
:root{
  --bg:#F4F7FA;--surface:#FFFFFF;--surface-2:#EEF3F8;--line:#D6DEE7;--fg:#132033;--muted:#4A5A6E;
  --accent:#1D5FA8;--accent-dark:#174E8C;--accent-soft:#E3EDF8;--on-accent:#FFFFFF;
  --stone:#E9E1D3;--stone-2:#F7F3EC;--stone-ink:#6B5A3E;
  --display:"Barlow Condensed","Arial Narrow",sans-serif;
  --body:"Barlow","Helvetica Neue",Helvetica,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --hh:56px;--bar:72px;--gut:16px;--r:16px;
  --shadow:0 1px 2px rgba(19,32,51,.06),0 10px 24px -18px rgba(19,32,51,.45);
  color-scheme:light;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html,body{margin:0;background:var(--bg)}
body{color:var(--fg);font-family:var(--body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
button{font:inherit;color:inherit}
a{color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
h1,h2,h3{font-family:var(--display);font-weight:600;margin:0;line-height:1.05;text-wrap:balance}
p{margin:0}
svg{flex:none}
[hidden]{display:none !important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.kicker{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}

/* Boutons */
.cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border:0;border-radius:999px;background:var(--accent);color:var(--on-accent);font-weight:600;font-size:16px;cursor:pointer;text-decoration:none;box-shadow:0 6px 16px -8px rgba(29,95,168,.7)}
.cta:hover{background:var(--accent-dark)}
.ghost{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 18px;border-radius:999px;border:1px solid var(--fg);background:transparent;font-weight:600;font-size:16px;cursor:pointer;text-decoration:none}
.ghost:hover{background:var(--fg);color:#FFFFFF}

/* En-tête */
.top{position:sticky;top:0;z-index:30;height:var(--hh);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 var(--gut);background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);-webkit-backdrop-filter:saturate(1.4) blur(8px);backdrop-filter:saturate(1.4) blur(8px)}
.brand{font-family:"Cinzel","Trajan Pro",Georgia,serif;font-weight:600;font-size:clamp(19px,5.4vw,24px);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;white-space:nowrap;line-height:1;display:inline-flex;align-items:center;min-height:44px}
.brand b{font-weight:600}
.brand span{color:var(--accent)}
.tright{display:flex;align-items:center;gap:12px;min-width:0}
.hcall{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-weight:600;font-size:16px;text-decoration:none;white-space:nowrap}
.hcall svg{width:18px;height:18px}
.hcall .n{display:none}
@media (min-width:380px){.hcall .n{display:inline}.hcall .w{display:none}}
.badge{font-family:var(--mono);font-size:11px;letter-spacing:.05em;color:var(--muted);border:0;border-right:1px solid var(--line);background:none;padding:0 14px 0 0;line-height:1.4;text-align:left;cursor:pointer}
.badge b{display:block;font-family:"Cinzel",Georgia,serif;font-size:13px;letter-spacing:.06em;color:var(--fg);font-weight:600}
.badge:hover b{color:var(--accent)}

/* Mise en page */
.layout{display:block}
.blk{padding:0 var(--gut);margin-top:12px}

/* Accroche */
.hero{background:var(--fg);color:#FFFFFF;border-radius:20px;padding:16px 16px 14px;display:flex;flex-direction:column;gap:10px;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;right:-60px;top:-60px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(142,193,245,.22),rgba(142,193,245,0) 70%);pointer-events:none}
.hero .eyebrow{color:#9CC7F2;display:none}
.hero h1{font-size:clamp(28px,8vw,34px);text-transform:uppercase;letter-spacing:.005em;line-height:.98}
.hero h1 em{font-style:normal;color:#8EC1F5;display:block}
.promo{display:block;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-left:3px solid #8EC1F5;border-radius:10px;padding:10px 12px}
.promo b{font-family:var(--display);font-weight:700;font-size:25px;line-height:1;color:#FFFFFF;margin-right:6px}
.promo span{font-weight:500;font-size:16px;line-height:1.35}
.note{font-size:14px;line-height:1.4;color:rgba(255,255,255,.72)}
.hero .cta{display:none;align-self:flex-start;background:#FFFFFF;color:var(--fg);box-shadow:none}
.hero .cta:hover{background:var(--accent-soft)}

/* Sommaire */
.toc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.tile{display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 12px;border-radius:14px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);font-weight:600;font-size:16px;line-height:1.15;text-decoration:none;color:var(--fg);cursor:pointer;text-align:left;min-width:0}
.tile svg{width:20px;height:20px;color:var(--accent)}
.tile span{min-width:0}
.tile small{display:block;margin-left:0;font-family:var(--mono);font-weight:400;font-size:11px;letter-spacing:.04em;color:var(--muted);margin-top:2px}
.tile:hover{border-color:var(--accent)}
.tile.rdv{grid-column:1 / -1;justify-content:center;background:var(--accent);border-color:var(--accent);color:#FFFFFF}
.tile.rdv svg{color:#FFFFFF}

/* Visite 3D */
.visite{margin-top:12px;background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stage{position:relative;height:clamp(280px,40svh,400px);overflow:hidden;background:linear-gradient(180deg,#6FA2D4 0%,#98BEE2 35%,#C9DCEE 68%,#EAF0F5 100%)}
.stage canvas{display:block;width:100%;height:100%;position:relative;cursor:grab;touch-action:pan-y}
.stage canvas.drag{cursor:grabbing}
.no-webgl .stage canvas{display:none}
.labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.heatfx{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity 1.2s ease;background:radial-gradient(120% 80% at 85% -10%,rgba(255,170,90,.5) 0%,rgba(255,190,120,.2) 40%,rgba(255,200,140,0) 70%),radial-gradient(ellipse 75% 70% at 50% 55%,rgba(255,180,110,0) 55%,rgba(255,165,95,.35) 100%);mix-blend-mode:multiply}
.coolfx{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity 1.4s ease;background:radial-gradient(ellipse 45% 40% at 55% 52%,rgba(150,205,255,.45) 0%,rgba(150,205,255,.18) 50%,rgba(150,205,255,0) 100%);mix-blend-mode:screen}
.coolfx.on,.heatfx.on{opacity:1}
.stage::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(180deg,#F8E9CB 0%,#F8DDB0 55%,#F3CE9E 100%);opacity:0;transition:opacity 1.4s ease}
.stage.heat::before{opacity:1}
.stage.calm::before{background:linear-gradient(180deg,#9FC9E4 0%,#C2DDEC 45%,#E3EFF2 100%);opacity:1}
.sunfx{position:absolute;right:6%;top:8%;width:140px;height:140px;border-radius:50%;pointer-events:none;opacity:0;background:radial-gradient(circle,#FFF9E6 0 17%,rgba(255,232,184,.9) 25%,rgba(255,214,140,.4) 44%,rgba(255,214,140,0) 70%)}
.stage.heat .sunfx{animation:sunin 1.4s ease forwards,sunpulse 3.4s ease-in-out infinite}
@keyframes sunin{from{opacity:0}to{opacity:1}}
@keyframes sunpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
.heatwaves{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:0;transition:opacity 1.2s ease;overflow:hidden}
.stage.heat .heatwaves{opacity:1}
.heatwaves path{stroke:#FFFFFF;stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round;opacity:0;animation:hw 3.6s linear infinite}
@keyframes hw{0%{transform:translateY(0);opacity:0}18%{opacity:.6}100%{transform:translateY(-130px);opacity:0}}
.tpanel{position:absolute;left:10px;bottom:46px;z-index:3;display:flex;align-items:flex-start;gap:9px;padding:6px 9px 5px;background:rgba(255,255,255,.93);border-radius:10px;box-shadow:0 8px 20px -12px rgba(19,32,51,.5);opacity:0;transform:translateY(-6px);transition:opacity .6s ease,transform .6s ease;pointer-events:none}
.tpanel.on{opacity:1;transform:none}
.th{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:9px;font-weight:600;color:var(--fg)}
.th .tube{position:relative;width:9px;height:30px;border-radius:7px;background:#E8E4DC;overflow:hidden}
.th .tube i{position:absolute;left:2px;right:2px;bottom:0;height:0;border-radius:4px;background:#E8793A;transition:height 1.6s ease,background .8s ease}
.th .bulb{width:12px;height:12px;border-radius:50%;background:#E8793A;margin-top:-5px;transition:background .8s ease}
.tpanel.on .th .tube i{height:92%}
.tpanel.cool .th.cold .tube i{height:36%;background:#1D5FA8}
.tpanel.cool .th.cold .bulb{background:#1D5FA8}
.tpanel .rec{display:flex;flex-direction:column;gap:1px;padding-top:2px;max-width:150px}
.tpanel .rec b{font-size:11px;color:#B8442A}
.tpanel .rec span{font-size:9.5px;line-height:1.25;color:var(--fg)}
.tpanel .rec small{font-size:8px;color:var(--muted);font-family:var(--mono)}
.climabadges{position:absolute;left:10px;top:60px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;pointer-events:none;z-index:3}
.cb{display:inline-flex;align-items:center;gap:6px;padding:5px 10px 5px 7px;border-radius:999px;background:rgba(255,255,255,.92);font-weight:600;font-size:11px;box-shadow:0 8px 20px -12px rgba(19,32,51,.5);opacity:0;transform:translateY(-6px);transition:opacity .6s ease,transform .6s ease}
.cb svg{width:16px;height:16px}
.cb.hot{color:#B8442A}.cb.cool{color:#1D5FA8}
.cb.on{opacity:1;transform:none}
.lbl{position:absolute;left:0;top:0;font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;color:var(--fg);background:#FFFFFF;border:1px solid var(--line);padding:3px 6px;opacity:0;transition:opacity .35s;box-shadow:0 8px 20px -12px rgba(19,32,51,.5)}
.lbl::after{content:"";position:absolute;left:calc(50% - var(--sx,0px));top:100%;width:1px;height:var(--stem,10px);background:var(--fg)}
.lbl::before{content:"";position:absolute;left:calc(50% - 3px - var(--sx,0px));top:calc(100% + var(--stem,10px) - 2px);width:7px;height:7px;border-radius:50%;background:var(--accent)}
.stagecap{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);z-index:2;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;background:rgba(255,255,255,.92);border:1px solid var(--line);padding:5px 12px;border-radius:999px;white-space:nowrap;pointer-events:none}
.arrow{position:absolute;top:50%;width:44px;height:44px;margin-top:-22px;border-radius:50%;border:0;background:rgba(255,255,255,.95);color:var(--accent);display:grid;place-items:center;cursor:pointer;box-shadow:0 10px 26px -10px rgba(19,32,51,.55);z-index:2}
.arrow svg{width:22px;height:22px}
.arrow:hover{background:var(--accent);color:#FFFFFF}
.arrow.left{left:8px}
.arrow.right{right:8px}
.hint3d{position:absolute;left:50%;top:10px;transform:translateX(-50%);z-index:2;font-size:12px;font-weight:600;line-height:1.3;background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:999px;padding:6px 14px;text-align:center;width:max-content;max-width:calc(100% - 24px);transition:opacity .6s;pointer-events:none}
.hint3d .ha{display:inline-block;color:var(--accent)}
.hint3d.gone{opacity:0}
.tip3d{position:absolute;left:0;top:0;z-index:3;pointer-events:none;background:var(--fg);color:#FFFFFF;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:6px 10px;border-radius:6px;opacity:0;transition:opacity .15s;white-space:nowrap}
.tip3d.on{opacity:1}
.fallback{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:24px;background:rgba(244,247,250,.94);color:var(--fg)}
.fallback[hidden]{display:none}
.fallback b{font-family:var(--display);font-size:24px;font-weight:600;line-height:1.1}
.fallback span{color:var(--muted);max-width:44ch}
.fallback small{font-family:var(--mono);font-size:11px;color:var(--muted);max-width:60ch;word-break:break-word}

/* Carte de l'étape */
.card{padding:16px var(--gut) 16px;display:flex;flex-direction:column;gap:10px;border-bottom:1px solid var(--line)}
.prog{display:flex;align-items:center;gap:12px;min-height:44px;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.prog .bar{flex:1;height:4px;border-radius:4px;background:var(--surface-2);overflow:hidden}
.prog .bar i{display:block;height:100%;width:100%;background:var(--accent);transform-origin:left;transform:scaleX(.1);transition:transform .5s ease}
.tstep{display:flex;flex-direction:column;gap:8px}
.tstep h2{font-size:clamp(25px,7vw,30px)}
.tstep p{color:var(--muted);font-size:16px}
.nav2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}
.nav2 button{min-height:50px;border-radius:14px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-weight:600;font-size:16px;padding:0 10px}
.nav2 #next{background:var(--accent);border-color:var(--accent);color:#FFFFFF}
.nav2 button:hover{border-color:var(--accent)}
.nav2 button:disabled{opacity:.4;cursor:default}

/* Étapes */
.steps{padding:16px var(--gut) 18px}
.stepgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.stp{display:flex;align-items:center;gap:10px;min-height:48px;padding:6px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);font-size:16px;font-weight:500;line-height:1.15;text-align:left;cursor:pointer;color:var(--fg);min-width:0}
.stp i{font-style:normal;font-family:var(--mono);font-size:12px;color:var(--muted);flex:none}
.stp:hover{border-color:var(--accent)}
.stp[aria-current="step"]{background:var(--accent);border-color:var(--accent);color:#FFFFFF}
.stp[aria-current="step"] i{color:rgba(255,255,255,.8)}
.play{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-family:var(--body);font-size:15px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--fg);cursor:pointer}
.play:hover{border-color:var(--accent);color:var(--accent)}
.play::before{content:"";width:0;height:0;border-left:9px solid currentColor;border-top:6px solid transparent;border-bottom:6px solid transparent}
.play[aria-pressed="true"]::before{width:9px;height:12px;border:0;background:linear-gradient(90deg,currentColor 0 3px,transparent 3px 6px,currentColor 6px 9px)}

/* Solutions */
.sol{display:flex;flex-direction:column;gap:8px}
.sol button{display:flex;align-items:center;gap:12px;min-height:56px;padding:8px 14px;border-radius:14px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);text-align:left;font-size:16px;font-weight:600;line-height:1.2;cursor:pointer}
.sol button svg{width:22px;height:22px;color:var(--accent)}
.sol button span{flex:1;min-width:0}
.sol button .chev{width:18px;height:18px;color:var(--muted)}
.sol button:hover{border-color:var(--accent)}

/* Volets en cartes */
.vol{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:20px 18px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow);scroll-margin-top:calc(var(--hh) + 12px)}
.vol h2{font-size:clamp(26px,7vw,32px)}
.vol > p{color:var(--muted)}
#visite,#solutions{scroll-margin-top:var(--hh)}
.acc details{border:1px solid var(--line);background:var(--surface);border-radius:14px;overflow:hidden}
.acc details + details{margin-top:8px}
summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:10px 14px;font-weight:600;font-size:16px;line-height:1.3}
summary::-webkit-details-marker{display:none}
summary::after{content:"";flex:none;width:10px;height:10px;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(45deg) translate(-2px,-2px);transition:transform .2s}
details[open] > summary::after{transform:rotate(-135deg) translate(-2px,-2px)}
details > div{padding:0 14px 16px;display:flex;flex-direction:column;gap:10px;color:var(--muted)}
.tstep details{border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.tstep details > div{padding:0 14px 14px}
details .val{font-family:var(--display);font-weight:600;font-size:30px;color:var(--accent);line-height:1}
.fact{font-family:var(--mono);font-size:15px;line-height:1.5;color:var(--fg)}
.source{font-family:var(--mono);font-size:12px;line-height:1.5;color:var(--muted)}
.list{display:flex;flex-direction:column}
.list > div{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.list b{font-family:var(--display);font-weight:600;font-size:28px;line-height:1}
.list b.next{color:var(--accent)}
.list span{color:var(--muted);font-size:16px}
.list strong{color:var(--fg)}
.brandrow{display:flex;flex-direction:column;gap:2px;padding:12px 0;border-top:1px solid var(--line)}
.brandrow b{font-family:var(--display);font-size:26px;font-weight:600;line-height:1.1}
.brandrow span{color:var(--muted);font-size:16px}
.brandrow .who{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.post ol{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px}
.post li b{color:var(--fg)}
.sign{font-family:var(--display);font-size:22px;font-weight:600;color:var(--fg)}
.post a.ext{display:inline-flex;align-items:center;min-height:44px;color:var(--accent);font-weight:600}

/* Contact */
.phones{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.phones a{display:flex;align-items:center;gap:12px;min-height:56px;border-bottom:1px solid var(--line);font-family:var(--display);font-weight:600;font-size:28px;text-decoration:none;user-select:text}
.phones a svg{width:22px;height:22px;color:var(--accent)}
.phones a:hover{color:var(--accent)}
form{display:flex;flex-direction:column;gap:14px}
label{display:flex;flex-direction:column;gap:6px;font-size:16px;font-weight:600}
input[type=text],input[type=tel],input[type=email],input[type=month],select,textarea{width:100%;min-height:48px;padding:0 12px;background:var(--surface);color:var(--fg);border:1px solid #A9B6C5;font:inherit;font-size:16px;font-weight:400;border-radius:10px}
textarea{padding:10px 12px;resize:vertical;overflow-x:hidden}
input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:2px solid var(--accent-soft);outline-offset:0}
.two{display:grid;grid-template-columns:1fr;gap:14px}
.consent{flex-direction:row;align-items:flex-start;gap:10px;font-weight:400;color:var(--muted);font-size:15px;line-height:1.45}
.consent input{width:22px;height:22px;margin-top:1px;flex:none;accent-color:var(--accent)}
.consent a{color:var(--accent)}
.consent[hidden]{display:none}
.cinfo{font-size:14px;line-height:1.45;color:var(--muted);margin:0}
.cinfo a{color:var(--accent)}
.status{font-family:var(--mono);font-size:13px;color:var(--accent);min-height:1.3em}
.status.err{color:#B3261E}
fieldset.fstep{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:14px}
fieldset.fstep[hidden],.okmsg[hidden]{display:none !important}
.fsteps{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.fsteps span{padding-top:8px;border-top:3px solid var(--line)}
.fsteps span.on{color:var(--accent);font-weight:600;border-top-color:var(--accent)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips label{flex-direction:row;font-weight:500;position:relative}
.chips input{position:absolute;left:0;top:0;opacity:0;pointer-events:none;width:1px;height:1px}
.chips span{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid #A9B6C5;border-radius:999px;background:var(--surface);cursor:pointer;font-size:16px}
.chips input:checked+span{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.chips input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
label em{font-style:normal;font-weight:400;color:var(--muted)}
.hp{position:absolute;left:0;top:0;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);opacity:0}
.hp input{width:1px;min-height:0;height:1px;padding:0;border:0}
.formrow{display:grid;grid-template-columns:auto 1fr;gap:8px}
#toStep2{width:100%}
.okmsg{border:1px solid var(--line);border-left:4px solid #2E9E4F;border-radius:12px;padding:16px 18px;background:var(--surface)}
.okmsg b{font-size:17px}.okmsg p{margin:6px 0 0;color:var(--muted)}
#contact{position:relative}

/* Barre d'action fixe (téléphone, tablette) */
.actbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px var(--gut) calc(10px + env(safe-area-inset-bottom,0px));background:rgba(255,255,255,.97);border-top:1px solid var(--line);box-shadow:0 -10px 30px -20px rgba(19,32,51,.5);transition:transform .3s ease}
.actbar a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;border-radius:14px;font-weight:600;font-size:17px;text-decoration:none}
.actbar svg{width:20px;height:20px}
.actbar .call{border:1px solid var(--fg);color:var(--fg);background:var(--surface)}
.actbar .back{background:var(--accent);color:#FFFFFF}
.actbar.away{transform:translateY(110%)}

/* Pied de page */
.foot{margin-top:28px;padding:22px var(--gut) calc(var(--bar) + 22px + env(safe-area-inset-bottom,0px));text-align:center;font-size:14px;line-height:1.6;color:var(--muted);background:var(--surface);border-top:1px solid var(--line)}
.flinks{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:12px}
.foot a{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--line);border-radius:999px;color:var(--fg);font-weight:500;text-decoration:none}
.foot a:hover{border-color:var(--accent);color:var(--accent)}

@media (prefers-reduced-motion: reduce){.sunfx,.heatwaves path{animation:none}.heatwaves path{opacity:.4}.heatfx,.cb,.actbar,.prog .bar i{transition:none}}

/* Tablette */
@media (min-width:640px){
  :root{--gut:24px;--hh:64px}
  .toc{grid-template-columns:repeat(4,minmax(0,1fr))}
  .stepgrid{grid-template-columns:repeat(5,minmax(0,1fr))}
  .stp{flex-direction:column;align-items:flex-start;justify-content:center;gap:2px}
  .stage{height:clamp(360px,50svh,560px)}
  .sol{flex-direction:row}.sol button{flex:1}
  .two{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero{padding:26px 26px 24px;gap:12px}
  .hero .eyebrow{display:block}
  .tile.rdv{grid-column:span 2}
  .promo{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 10px}
  .promo b{font-size:30px;margin-right:0}
  .hero h1{font-size:40px}
  .hero .cta{display:inline-flex}
  .tpanel{left:16px;bottom:52px;padding:10px 12px 8px;gap:12px;border-radius:12px}
  .th{font-size:10px}.th .tube{height:46px;width:10px}.th .bulb{width:14px;height:14px}
  .tpanel .rec b{font-size:12px}.tpanel .rec span{font-size:11px}.tpanel .rec small{font-size:9px}
  .climabadges{left:auto;right:16px;top:60px;align-items:flex-end}.cb{font-size:12px}
  .lbl{font-size:10px;padding:4px 8px}
  .arrow{width:50px;height:50px;margin-top:-25px}.arrow.left{left:14px}.arrow.right{right:14px}
  .hint3d{font-size:13px}
}

/* Éléments réservés à l'ordinateur : absents du rendu sous 1024 px */
.util,.mnav,.hfig,.vhead,.vsnap,.fcols{display:none}

/* ===================================================================
   ORDINATEUR (≥ 1024 px) — direction « Site corporate haut de gamme »
   Bandeau utilitaire, en-tête fin avec menu, accroche en 2 colonnes
   (la 3D cadrée comme une photo d'architecture), sections pleine
   largeur alternées sur une grille de 1200 px, contact sur fond marine.
   =================================================================== */
@media (min-width:1024px){
  :root{--hh:72px;--gut:48px;--cw:1200px;--h3d:clamp(340px,calc(100vh - 450px),640px);--hfig:clamp(440px,calc(100vh - 300px),660px);--sky:linear-gradient(180deg,#6FA2D4 0%,#98BEE2 35%,#C9DCEE 68%,#EAF0F5 100%)}
  body{padding-bottom:0;font-size:17px;background:#FFFFFF}
  .actbar{display:none}
  .cta,.ghost{border-radius:4px;box-shadow:none}

  /* Bandeau utilitaire */
  .util{display:flex;align-items:center;justify-content:space-between;gap:24px;height:40px;padding:0 max(48px,calc((100% - var(--cw))/2));background:var(--fg);color:rgba(255,255,255,.78);font-size:14px}
  .util button{display:inline-flex;align-items:center;gap:12px;min-height:40px;padding:0;border:0;background:none;color:inherit;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
  .util button b{font-family:"Cinzel",Georgia,serif;font-size:13px;letter-spacing:.06em;text-transform:none;color:#FFFFFF;font-weight:600}
  .util button:hover b{color:#9CC7F2}
  .util .uc{display:flex;align-items:center;gap:22px}
  .util a{display:inline-flex;align-items:center;gap:8px;min-height:40px;color:#FFFFFF;text-decoration:none;font-weight:500}
  .util a svg{width:15px;height:15px;color:#9CC7F2}
  .util a:hover{color:#9CC7F2}
  .util .sep{width:1px;height:16px;background:rgba(255,255,255,.25)}

  /* En-tête fin : marque, menu, rendez-vous */
  .top{height:var(--hh);padding:0 max(48px,calc((100% - var(--cw))/2));gap:28px;background:rgba(255,255,255,.97)}
  .brand{font-size:26px;letter-spacing:.14em}
  .mnav{display:flex;align-items:center;gap:0;margin-left:auto}
  .mnav a{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:0 10px;font-size:15px;font-weight:500;letter-spacing:.01em;color:var(--fg);text-decoration:none;white-space:nowrap}
  .mnav a::after{content:"";position:absolute;left:10px;right:10px;bottom:4px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
  .mnav a:hover,.mnav a.on{color:var(--accent)}
  .mnav a:hover::after,.mnav a.on::after{transform:scaleX(1)}
  .tright{gap:18px}
  .badge,.hcall{display:none}

  /* Grille générale : bandes pleine largeur, contenu sur 1200 px */
  .layout{display:block}
  .layout > .blk{margin:0;padding:96px max(48px,calc((100% - var(--cw))/2))}
  .layout > nav.blk{display:none}
  .eyebrow{font-size:12px;letter-spacing:.18em}
  .eyebrow::before{content:"";display:inline-block;width:28px;height:2px;margin-right:12px;vertical-align:middle;background:currentColor;transform:translateY(-2px)}

  /* Accroche : texte à gauche, la 3D comme une photo d'architecture à droite */
  .layout > .blk:first-child{padding-top:64px;padding-bottom:80px;background:var(--stone-2);border-bottom:1px solid var(--stone)}
  .hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);grid-template-rows:1fr auto auto auto auto auto 1fr;column-gap:72px;padding:0;border-radius:0;background:none;color:var(--fg);overflow:visible}
  .hero::after{display:none}
  .hero > .eyebrow{grid-column:1;grid-row:2;display:block;color:var(--accent)}
  .hero h1{grid-column:1;grid-row:3;margin-top:22px;font-size:clamp(54px,4.7vw,82px);line-height:.95;letter-spacing:0}
  .hero h1 em{color:var(--accent)}
  .promo{grid-column:1;grid-row:4;margin-top:40px;padding:26px 0 0;display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 18px;background:none;border:0;border-top:1px solid #D9CFBE;border-radius:0}
  .promo b{font-size:52px;color:var(--accent);margin:0}
  .promo span{font-size:20px;font-weight:500;color:var(--fg);max-width:24ch;line-height:1.3}
  .note{grid-column:1;grid-row:5;margin-top:12px;font-size:14px;color:var(--muted)}
  .hero .cta{grid-column:1;grid-row:6;display:inline-flex;justify-self:start;margin-top:36px;min-height:54px;padding:0 30px;background:var(--accent);color:#FFFFFF;font-size:17px}
  .hero .cta:hover{background:var(--accent-dark)}
  .hfig{grid-column:2;grid-row:1 / -1;display:flex;flex-direction:column;margin:0}
  .hslot{position:relative;height:var(--hfig);overflow:hidden;border-radius:4px;background:var(--sky);box-shadow:0 1px 0 rgba(19,32,51,.08),0 46px 80px -48px rgba(19,32,51,.55)}
  .hslot .stage{height:100%}
  .hslot .heatwaves,.hslot .stage .arrow,.hslot .hint3d,.hslot .tpanel,.hslot .climabadges,.hslot .stagecap,.hslot .labels,.hslot .tip3d{display:none}
  .snap{display:block;width:100%;height:100%}
  body.st-hero .hslot .snap{display:none}
  .hcap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:52px;border-bottom:1px solid #D9CFBE;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-decoration:none}
  .hcap b{font-weight:500;color:var(--fg)}
  .hcap span{color:var(--accent)}
  .hcap:hover b{color:var(--accent)}

  /* La visite en 10 étapes : 3D grande, frise cliquable, texte de l'étape dessous */
  .layout > .visite{display:flex;flex-direction:column;margin:0;padding:96px max(48px,calc((100% - var(--cw))/2)) 72px;border:0;background:#FFFFFF;scroll-margin-top:var(--hh)}
  .vhead{order:0;display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:36px}
  .vhead h2{margin-top:16px;font-size:clamp(40px,3.4vw,56px);line-height:1}
  .vhead p{max-width:44ch;color:var(--muted);font-size:17px}
  .visite > .stage,.vsnap{order:1;height:var(--h3d);border-radius:4px}
  .vsnap{position:relative;overflow:hidden;background:var(--sky)}
  body.st-hero .vsnap{display:block}
  .visite .steps{order:2;padding:22px 0 0}
  .visite .steps .kicker{display:none}
  .visite .card{order:3}
  .stepgrid{position:relative;grid-template-columns:repeat(10,minmax(0,1fr));gap:0}
  .stepgrid::before,.stepgrid::after{content:"";position:absolute;left:5%;top:21px;height:2px;background:var(--line)}
  .stepgrid::before{right:5%}
  .stepgrid::after{width:0;background:var(--accent);transition:width .5s ease}
  .stepgrid:has([data-go="1"][aria-current])::after{width:10%}
  .stepgrid:has([data-go="2"][aria-current])::after{width:20%}
  .stepgrid:has([data-go="3"][aria-current])::after{width:30%}
  .stepgrid:has([data-go="4"][aria-current])::after{width:40%}
  .stepgrid:has([data-go="5"][aria-current])::after{width:50%}
  .stepgrid:has([data-go="6"][aria-current])::after{width:60%}
  .stepgrid:has([data-go="7"][aria-current])::after{width:70%}
  .stepgrid:has([data-go="8"][aria-current])::after{width:80%}
  .stepgrid:has([data-go="9"][aria-current])::after{width:90%}
  .stp{position:relative;z-index:1;flex-direction:column;align-items:center;justify-content:flex-start;gap:12px;min-height:78px;padding:0 4px;border:0;border-radius:0;background:none;font-size:15px;font-weight:500;line-height:1.2;text-align:center;color:var(--fg)}
  .stp i{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#FFFFFF;border:2px solid var(--line);font-size:13px;font-weight:500;color:var(--muted)}
  .stp:hover{border:0;color:var(--accent)}
  .stp:hover i{border-color:var(--accent);color:var(--accent)}
  .stp[aria-current="step"]{background:none;color:var(--accent);font-weight:600}
  .stp[aria-current="step"] i{background:var(--accent);border-color:var(--accent);color:#FFFFFF;box-shadow:0 0 0 6px var(--accent-soft)}
  .visite .card{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:10px;align-items:start;margin-top:6px;padding:16px 0 0;border:0;border-top:1px solid var(--line)}
  .card .prog{grid-column:1;grid-row:1;min-height:44px}
  .card .prog .bar{display:none}
  .card .prog #stepnum{flex:1}
  .play{border-radius:4px}
  .tstep{grid-column:1 / -1;grid-row:2;display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);grid-auto-flow:row dense;column-gap:56px;row-gap:10px;align-content:start}
  .tstep > .eyebrow{grid-column:1 / -1;grid-row:1}
  .tstep > h2{grid-column:1;grid-row:2 / span 6;font-size:clamp(30px,2.5vw,38px);line-height:1.05}
  .tstep > :not(.eyebrow):not(h2){grid-column:2}
  .tstep p{font-size:17px;max-width:78ch}
  .tstep details{border-radius:4px}
  .nav2{grid-column:2;grid-row:1;display:flex;flex-direction:row;gap:12px;margin:0}
  .nav2 button{min-height:44px;padding:0 18px;border-radius:4px;font-size:15px;white-space:nowrap}

  /* Arrière-plans alternés */
  .layout > #solutions{background:var(--stone-2);border-top:1px solid var(--stone);border-bottom:1px solid var(--stone)}
  .layout > .blk:has(> #cee),.layout > .blk:has(> #methode),.layout > .blk:has(> #ressources){background:#FFFFFF}
  .layout > .blk:has(> #obligations),.layout > .blk:has(> #groupe){background:var(--bg);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .layout > .blk:has(> #contact){background:var(--fg)}

  /* Nos solutions */
  .layout > #solutions{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);column-gap:72px;align-items:center;padding-top:88px;padding-bottom:88px}
  #solutions .kicker{margin:0;font-family:var(--display);font-size:clamp(40px,3.4vw,56px);font-weight:600;line-height:1;letter-spacing:0;text-transform:none;color:var(--fg)}
  .sol{flex-direction:row;gap:24px}
  .sol button{flex:1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:20px;min-height:132px;padding:28px 30px;border-radius:4px;border:1px solid var(--stone);background:#FFFFFF;box-shadow:none;font-family:var(--display);font-size:25px;font-weight:600;line-height:1.1;transition:border-color .2s,box-shadow .2s}
  .sol button svg{width:34px;height:34px}
  .sol button .chev{width:22px;height:22px;color:var(--accent);transition:transform .2s}
  .sol button:hover{border-color:var(--accent);box-shadow:0 24px 50px -36px rgba(19,32,51,.6)}
  .sol button:hover .chev{transform:translateX(4px)}

  /* Volets : en-tête de section puis contenu pleine largeur */
  .vol{display:flex;flex-direction:column;gap:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;scroll-margin-top:calc(var(--hh) + 48px)}
  .vol > .eyebrow{margin-bottom:18px}
  .vol h2,.vol > h2{font-size:clamp(40px,3.4vw,56px);line-height:1;max-width:20ch}
  .vol > p{margin-top:20px;max-width:62ch;font-size:18px}
  .vol > p.source{font-size:13px;margin-top:28px;max-width:none}
  .vol > p.fact{margin-top:36px;padding-top:24px;border-top:1px solid var(--line);font-size:14px;max-width:none;letter-spacing:.02em}

  /* Primes CEE : 3 cartes */
  #cee .acc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:48px}
  #cee .acc details{display:flex;flex-direction:column;margin:0;padding:34px 32px 36px;border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:4px;background:#FFFFFF}
  #cee .acc details + details{margin:0}
  #cee .acc summary{min-height:0;padding:0;font-family:var(--display);font-size:26px;font-weight:600;line-height:1.1;pointer-events:none;cursor:default}
  #cee .acc summary::after{display:none}
  #cee .acc details > div{padding:0;margin-top:22px;gap:14px;font-size:17px}
  #cee .acc details .val{font-size:46px;padding-bottom:16px;border-bottom:1px solid var(--line)}

  /* Obligations : calendrier */
  #obligations .list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:48px}
  #obligations .list > div{position:relative;display:flex;flex-direction:column;gap:0;padding:0;border:1px solid var(--line);border-radius:4px;background:#FFFFFF;overflow:hidden}
  #obligations .list > div::before,#obligations .list > div::after{content:"";position:absolute;top:10px;width:10px;height:10px;border-radius:50%;background:#FFFFFF;box-shadow:inset 0 1px 2px rgba(0,0,0,.35)}
  #obligations .list > div::before{left:28px}
  #obligations .list > div::after{right:28px}
  #obligations .list b{display:block;padding:34px 28px 22px;background:var(--fg);color:#FFFFFF;font-size:52px;letter-spacing:.01em}
  #obligations .list b.next{background:var(--accent);color:#FFFFFF}
  #obligations .list span{padding:24px 28px 30px;font-size:17px;line-height:1.5}

  /* Méthode : frise horizontale de 6 temps */
  #methode .list{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;margin-top:56px}
  #methode .list::before{content:"";position:absolute;left:0;right:0;top:27px;height:2px;background:var(--line)}
  #methode .list > div{position:relative;display:flex;flex-direction:column;gap:22px;padding:0 24px 0 0;border:0}
  #methode .list b{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#FFFFFF;border:2px solid var(--accent);color:var(--accent);font-size:24px;box-shadow:0 0 0 8px #FFFFFF}
  #methode .list span{font-size:17px;line-height:1.55}
  #methode .list strong{font-weight:600;color:var(--fg)}

  /* Le groupe : 3 marques */
  #groupe > div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:48px}
  #groupe .brandrow{gap:10px;padding:30px 0 0;border-top:2px solid var(--fg)}
  #groupe .brandrow b{font-size:36px}
  #groupe .brandrow span:last-child{font-size:17px;max-width:32ch}

  /* Ressources : titre à gauche, textes à droite */
  #ressources{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);column-gap:72px;align-items:start}
  #ressources > .eyebrow{grid-column:1;grid-row:1}
  #ressources > h2{grid-column:1;grid-row:2;font-size:clamp(36px,2.9vw,46px);text-wrap:pretty}
  #ressources > .acc{grid-column:2;grid-row:1 / span 3;border-top:2px solid var(--fg)}
  #ressources details{border:0;border-bottom:1px solid var(--line);border-radius:0;background:none}
  #ressources details + details{margin-top:0}
  #ressources summary{min-height:84px;padding:18px 4px;font-family:var(--display);font-size:24px;font-weight:600;line-height:1.15}
  #ressources details > div{padding:0 4px 32px;font-size:17px;line-height:1.6;max-width:72ch}

  /* Contact sur fond marine */
  #contact{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:80px;align-items:start;color:#FFFFFF}
  #contact > .eyebrow{grid-column:1;grid-row:1;color:#9CC7F2;margin-bottom:18px}
  #contact > h2{grid-column:1;grid-row:2;color:#FFFFFF;max-width:none}
  #contact .phones{grid-column:1;grid-row:3;margin-top:44px;border-top:1px solid rgba(255,255,255,.18)}
  #contact .phones a{min-height:76px;border-bottom:1px solid rgba(255,255,255,.18);font-size:38px;color:#FFFFFF}
  #contact .phones a svg{width:24px;height:24px;color:#9CC7F2}
  #contact .phones a:hover{color:#9CC7F2}
  #lead,#okmsg{grid-column:2;grid-row:1 / span 4}
  #lead{padding:40px 44px 36px;border-radius:4px;background:#FFFFFF;color:var(--fg);box-shadow:0 50px 100px -50px rgba(0,0,0,.6)}
  .okmsg{color:var(--fg)}
  #lead .status{font-family:var(--body);font-size:15px}
  .chips span{border-radius:4px}
  input[type=text],input[type=tel],input[type=email],input[type=month],select,textarea{border-radius:4px}

  /* Pied de page complet */
  .foot{margin:0;padding:72px max(48px,calc((100% - var(--cw))/2)) 28px;background:#0D1724;border:0;color:rgba(255,255,255,.62);text-align:left;font-size:14px}
  .fcols{display:grid;grid-template-columns:minmax(0,4fr) repeat(3,minmax(0,2.6fr));gap:48px;padding-bottom:48px;margin-bottom:24px;border-bottom:1px solid rgba(255,255,255,.12)}
  .fcols .fb{font-family:"Cinzel",Georgia,serif;font-size:26px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#FFFFFF}
  .fcols .fb span{color:#9CC7F2}
  .fcols .ft{margin-top:14px;max-width:30ch;font-size:16px;line-height:1.5;color:rgba(255,255,255,.75)}
  .fcols h3{margin:0 0 14px;font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:#9CC7F2}
  .fcols ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
  .fcols p{color:rgba(255,255,255,.75);line-height:1.6}
  .fcols p b{color:#FFFFFF;font-weight:600}
  .foot .fcols a{display:inline-flex;min-height:34px;padding:0;border:0;border-radius:0;color:rgba(255,255,255,.88);font-size:15px;font-weight:400}
  .foot .fcols a:hover{color:#9CC7F2}
  .foot .fcols button{min-height:34px;padding:0;border:0;background:none;color:rgba(255,255,255,.88);font:inherit;font-size:15px;text-align:left;cursor:pointer}
  .foot .fcols button:hover{color:#9CC7F2}
  .foot > p:not(.flinks){max-width:none}
  .flinks{justify-content:flex-start;gap:24px;margin-top:6px}
  .foot .flinks a{min-height:36px;padding:0;border:0;border-radius:0;color:rgba(255,255,255,.88)}
  .foot .flinks a:hover{color:#9CC7F2}

  /* 3D (tailles ordinateur) */
  .tpanel{left:22px;bottom:60px;padding:12px 14px 10px;gap:14px;border-radius:6px}
  .th{font-size:11px;gap:5px}.th .tube{height:70px;width:12px}.th .bulb{width:18px;height:18px;margin-top:-7px}
  .tpanel .rec b{font-size:13px}.tpanel .rec span{font-size:11px}.tpanel .rec small{font-size:9.5px}
  .climabadges{left:auto;right:22px;top:22px;align-items:flex-end}
  .cb{font-size:13px;padding:7px 12px 7px 9px}
  .lbl{font-size:11px;padding:5px 9px}
  .sunfx{width:200px;height:200px}
  .arrow{top:auto;bottom:22px;width:52px;height:52px;margin-top:0;border-radius:4px}.arrow.left{left:auto;right:86px}.arrow.right{right:22px}
  .stagecap{bottom:18px;border-radius:4px}
  .hint3d{top:18px;border-radius:4px}
}
@media (min-width:1600px){
  .hcall{display:inline-flex;min-height:44px;padding:0 4px;background:none;color:var(--fg);font-size:16px}
  .hcall svg{color:var(--accent)}
}
@media (min-width:1400px){.mnav a{padding:0 12px}}
@media (min-width:1700px){
  :root{--cw:1400px}
  .hero h1{font-size:88px}
}

:root{--paper:#FBF8F3;--rule:#D9CFBE}
.actbar{z-index:46}
@media (min-width:1024px){.util button,.util a{white-space:nowrap}}

/* Menu ordinateur : on resserre le menu pour que tout tienne dès 1280 px */
@media (min-width:1024px){
  .top{gap:20px}
  .brand{font-size:23px;letter-spacing:.13em}
  .mnav a{padding:0 7px;font-size:14.5px}
  .mnav a::after{left:7px;right:7px}
}
@media (min-width:1400px){.mnav a{padding:0 9px}.mnav a::after{left:9px;right:9px}}

/* SALON 2026 START — trace du Salon de la Copropriété et de l'Habitat (4 et 5 novembre 2026) : un court encart, sans lien ni bouton */
#salon.salon26{display:flex;flex-direction:row;align-items:flex-start;justify-content:flex-start;gap:12px;padding:16px;border:1px solid var(--rule);background:var(--paper);text-align:left}
#salon.salon26 svg{flex:none;width:24px;height:24px;margin:1px 0 0;color:var(--stone-ink)}
#salon.salon26 > p{margin:0;font-size:16px;line-height:1.5;color:var(--fg);max-width:70ch}
@media (min-width:1024px){
  #salon.salon26{align-items:center;margin-top:56px;padding:18px 24px;border-radius:4px}
  #salon.salon26 > p{margin:0;font-size:17px}
}
/* SALON 2026 END */

/* SYNDIC START — parcours copropriété : « Vous êtes » puis, pour un syndic ou un conseil syndical, 3 questions sur l'immeuble */
.sq{display:flex;flex-direction:column;gap:12px;padding:16px 14px;border:1px solid var(--line);border-radius:14px;background:#FFFFFF;scroll-margin-top:calc(var(--hh) + 12px)}
.sq[hidden],.sq-s[hidden],.sq-sum[hidden],.sq-back[hidden],.sq-n[hidden]{display:none}
.sq-s{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:10px}
.sq-n{font-size:16px;color:var(--muted)}
.sq-q{font-size:19px;font-weight:600;line-height:1.3;color:var(--fg)}
.sq-b{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
.sq-b button{display:flex;align-items:center;min-height:52px;padding:10px 16px;border:1px solid #A9B6C5;border-radius:12px;background:#FFFFFF;font-family:var(--body);font-size:17px;font-weight:600;line-height:1.25;color:var(--fg);text-align:left;cursor:pointer}
.sq-b button:hover{border-color:var(--accent)}
.sq-b button[aria-pressed="true"]{background:var(--fg);border-color:var(--fg);color:#FFFFFF;box-shadow:inset 0 -3px 0 var(--accent)}
.sq-b button:focus-visible,.sq-back:focus-visible,.sq-sum button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.sq-back{align-self:flex-start;min-height:44px;padding:0 16px;border:1px solid var(--line);border-radius:999px;background:#FFFFFF;font-family:var(--body);font-size:16px;font-weight:600;color:var(--fg);cursor:pointer}
.sq-sum{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;padding:10px 12px 10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);font-size:16px}
.sq-sum p{min-width:0;flex:1 1 220px}
.sq-sum b{display:block;color:var(--fg)}
.sq-sum button{min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--line);background:#FFFFFF;font-family:var(--body);font-size:16px;font-weight:600;color:var(--fg);cursor:pointer}
#lead.sq-lock .chips{display:none}
#lead.sq-lock label[for="f-lots"],#lead.sq-lock label[for="f-ag"]{display:none}/* déjà demandés dans les questions syndic */
@media (min-width:640px){
  .sq-b2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sq-b3{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:1024px){
  .sq{padding:24px;border-radius:4px}
  .sq-b button,.sq-sum{border-radius:4px}
}
/* SYNDIC END */

@media (min-width:1700px){.top{gap:28px}.brand{font-size:26px;letter-spacing:.14em}.mnav a{padding:0 11px;font-size:15px}.mnav a::after{left:11px;right:11px}}
/* EN-TÊTE 1024-1339 START — ordinateur étroit : on resserre l'en-tête pour éviter tout défilement horizontal :
   marges 24 px, marque 20 px, menu 14 px (un libellé de deux mots peut passer sur deux lignes, dans la hauteur de l'en-tête). */
@media (min-width:1024px) and (max-width:1339.98px){
  .util{padding:0 24px;gap:16px}
  .util .uc{gap:14px;flex:none}
  .util button{min-width:0;text-align:left;line-height:1.2;white-space:normal}
  .top{gap:14px;padding:0 24px}
  .brand{font-size:20px;letter-spacing:.11em}
  .mnav a{padding:0 6px;font-size:14px;white-space:normal;text-align:center;line-height:1.15;max-width:9.5em}
  .mnav a::after{left:6px;right:6px}
  .tright{flex:none}
}
/* EN-TÊTE 1024-1339 END */

/* --- visite maison, bannière France Rénov' --- */

.legalpage{display:none;position:fixed;inset:0;z-index:200;overflow-y:auto;-webkit-overflow-scrolling:touch;background:rgba(19,32,51,.55)}
.legalpage:target{display:block}
.lp-in{position:relative;max-width:820px;margin:0 auto;min-height:100%;background:#fff;color:#132033;padding:28px 20px 40px;font-size:16px;line-height:1.6}
@media (min-width:860px){.lp-in{margin:40px auto;min-height:0;border-radius:18px;padding:40px 48px 44px}}
.lp-in h2{font-family:"Barlow Condensed","Arial Narrow",sans-serif;font-size:34px;line-height:1.05;margin:0 48px 8px 0}
.lp-in h3{font-family:"Barlow Condensed","Arial Narrow",sans-serif;font-size:21px;margin:22px 0 4px;color:#1D5FA8}
.lp-in p{margin:0 0 8px}
.lp-in a{color:#1D5FA8;word-break:break-word}
.lp-s{font-size:14px;color:#4A5A6E}
.lp-x{position:absolute;top:16px;right:16px;width:44px;height:44px;border-radius:50%;border:1px solid #D6DEE7;display:flex;align-items:center;justify-content:center;font-size:24px;text-decoration:none;color:#132033 !important;background:#fff}
.lp-back{display:inline-flex;align-items:center;min-height:44px;margin-top:18px;padding:0 18px;border-radius:999px;border:1px solid #132033;text-decoration:none;font-weight:600;color:#132033 !important}
.fsites{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:0 14px;margin:6px 0 0}
.fsites a{display:inline-flex;align-items:center;min-height:44px;font-weight:600}.fsites a,.fsites a:visited{color:inherit!important;border-color:currentColor!important;text-decoration:none}.fsites a:hover,.fsites a:focus-visible{text-decoration:underline}
.brandrow a.bsite{display:inline-flex;align-items:center;min-height:44px;font-weight:600;color:#1D5FA8;text-decoration:none}
.brandrow a.bsite:hover{text-decoration:underline}

/* ===== Visite « Ma maison » : récit avant / après (parcours particulier) ===== */
.pour{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:12px var(--gut);padding:4px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.pour button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;padding:4px 6px;border:0;border-radius:10px;background:transparent;font-family:var(--body);font-size:16px;font-weight:600;line-height:1.1;color:var(--fg);cursor:pointer}
.pour button small{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pour button[aria-pressed="true"]{background:#FFFFFF;color:var(--accent);box-shadow:0 6px 16px -10px rgba(19,32,51,.6)}
.pour button[aria-pressed="true"] small{color:var(--accent)}
.pour button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.mgloom{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;transition:opacity 1.4s ease;background:linear-gradient(180deg,#A3ADB6 0%,#BEC5CA 42%,#D9DAD5 100%)}
body.tour-m .stage{background:linear-gradient(180deg,#76A8D8 0%,#A2C5E6 38%,#D0E2F0 70%,#EEF3F6 100%)}
body.tour-m .tpanel,body.tour-m .climabadges,body.tour-m .stagecap,body.tour-m .heatwaves,body.tour-m .sunfx,body.tour-m .heatfx{display:none}
.mcount{position:absolute;left:10px;bottom:10px;z-index:2;display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.95);border:1px solid var(--line);box-shadow:0 8px 20px -12px rgba(19,32,51,.5);white-space:nowrap;pointer-events:none}
.mcount[hidden],.mcmp[hidden]{display:none}
.mcount .t{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.mcount b{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--accent)}
.mcount .seg{display:flex;gap:2px}
.mcount .seg i{display:block;width:7px;height:7px;border-radius:2px;background:#D9DEE4;transition:background .4s}
.mcount .seg i.on{background:var(--accent)}
.mcmp{position:absolute;inset:0;z-index:2;pointer-events:none}
.mcmp .mline{position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-1px;background:#FFFFFF;box-shadow:0 0 0 1px rgba(19,32,51,.22)}
.mcmp .mline::after{content:"‹ ›";position:absolute;top:50%;left:50%;width:36px;height:36px;margin:-18px 0 0 -18px;border-radius:50%;background:#FFFFFF;box-shadow:0 6px 16px -6px rgba(19,32,51,.6);color:var(--accent);font-weight:700;font-size:15px;line-height:35px;text-align:center;letter-spacing:-1px}
.mtag{position:absolute;top:10px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:5px 10px;border-radius:999px;background:rgba(19,32,51,.85);color:#FFFFFF;transition:opacity .3s}
.mtag.a{left:10px}.mtag.b{right:10px;background:var(--accent)}
.mcmp.edge0 .mtag.a,.mcmp.edge1 .mtag.b{opacity:0}
.mcmp .mline{transition:opacity .3s}
.mcmp.edge0 .mline,.mcmp.edge1 .mline{opacity:0}
.mcmp input{display:block;position:absolute;left:12px;right:12px;bottom:4px;width:calc(100% - 24px);height:44px;margin:0;pointer-events:auto;cursor:ew-resize;accent-color:var(--accent);opacity:.95}
@media (max-width:1023px){.tstep[data-mstep="10"]:not([hidden]){display:flex;flex-direction:column;gap:12px}.tstep[data-mstep="10"] .mcmpb{order:-1}}
.lbl.def{border-color:#C2412F;color:#8E2A1F}
.lbl.def::before{background:#C2412F}
.lbl.def::after{background:#C2412F}
.mfacts{display:flex;flex-direction:column;gap:10px;margin:2px 0 0}
.mfacts div{padding-left:12px;border-left:2px solid var(--line)}
.mfacts dt{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.mfacts dd{margin:2px 0 0;color:var(--fg);font-size:16px;line-height:1.45}
.tstep .aide{padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);color:var(--fg)}
.tstep .aide b{display:block;margin-bottom:2px;font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.mcmpb{display:grid;grid-template-columns:1fr;gap:8px}
.mcmpb button{min-height:48px;padding:0 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);font-family:var(--body);font-weight:600;font-size:16px;color:var(--fg);cursor:pointer}
.mcmpb button[aria-pressed="true"]{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.mcta{display:flex;flex-wrap:wrap;gap:8px}
.mcta .ghost{color:var(--fg)}
body.tour-m #mgrid .stp.done i::after{content:" ✓";color:var(--accent);font-weight:700}
#msol{display:none}
body.tour-m #msol{display:block}
body.tour-m #solutions{display:none}
.pourf{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;padding:10px 12px 10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);font-size:16px}
.pourf b{color:var(--accent)}
.pourf button{min-height:44px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:#FFFFFF;font-family:var(--body);font-size:15px;font-weight:600;color:var(--fg);cursor:pointer}
.sp-pour{margin-top:12px;padding-top:12px;border-top:1px solid var(--rule)}
.sp-pk{font-size:15px;font-weight:600;color:var(--fg);line-height:1.3}
.sp-pk span{font-weight:400;color:var(--muted)}
.sp-pb{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.sp-pb button{min-height:48px;padding:0 8px;border:1px solid var(--accent);border-radius:10px;background:#FFFFFF;color:var(--accent);font-family:var(--body);font-size:16px;font-weight:600;cursor:pointer}
.sp-pb button:hover{background:var(--accent);color:#FFFFFF}
@media (max-width:1023px){
  body.tour-m .visite > .stage{height:clamp(330px,52svh,470px)}
}
@media (min-width:640px) and (max-width:1023px){
  body.tour-m .visite > .stage{height:clamp(420px,58svh,600px)}
  .mcmpb{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:640px){.pour{max-width:560px}.mcount .t{font-size:11px}}
@media (min-width:1024px){
  :root{--h3m:clamp(480px,calc(100vh - 230px),760px)}
  .pour{order:0;margin:-12px 0 24px;max-width:520px;border-radius:6px}
  .pour button{border-radius:4px;min-height:56px}
  .tstep .aide,.mcmpb button{border-radius:4px}
  .sp-pb button{border-radius:4px}
  body.tour-m .layout > .visite{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);column-gap:40px;grid-template-areas:"tabs tabs" "stage card" "steps steps";align-items:start;padding-top:40px}
  body.tour-m .vhead{display:none}
  body.tour-m .visite > .pour{grid-area:tabs;margin:0 0 20px}
  body.tour-m .visite > .stage,body.tour-m .visite > .vsnap{grid-area:stage;height:var(--h3m)}
  body.tour-m .visite .card{grid-area:card;display:flex;flex-direction:column;gap:14px;margin:0;padding:0 4px 0 0;border:0;max-height:var(--h3m);overflow-y:auto}
  body.tour-m .visite .steps{grid-area:steps;padding-top:26px}
  body.tour-m .tstep{display:flex;flex-direction:column;gap:12px}
  body.tour-m .tstep > h2{font-size:clamp(28px,2.1vw,36px);line-height:1.05}
  body.tour-m .tstep p{font-size:16px}
  body.tour-m .nav2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:auto}
  body.tour-m .nav2 button{white-space:normal;min-height:48px}
  .mcount{left:16px;bottom:16px;padding:8px 14px}
  .mtag{top:16px;font-size:12px}.mtag.a{left:16px}.mtag.b{right:16px}
  .mcmp input{display:block;position:absolute;left:22px;right:170px;bottom:12px;width:calc(100% - 192px);height:44px;margin:0;pointer-events:auto;cursor:ew-resize;accent-color:var(--accent);opacity:.9}
  .mcmpb{grid-template-columns:repeat(3,minmax(0,1fr))}
  .mcmpb button{font-size:14px;min-height:44px}
  #mgrid{grid-template-columns:repeat(11,minmax(0,1fr))}
  #mgrid::before{left:4.545%;right:4.545%}
  #mgrid::after{left:4.545%}
  #mgrid:has([data-mgo="1"][aria-current])::after{width:9.091%}
  #mgrid:has([data-mgo="2"][aria-current])::after{width:18.182%}
  #mgrid:has([data-mgo="3"][aria-current])::after{width:27.273%}
  #mgrid:has([data-mgo="4"][aria-current])::after{width:36.364%}
  #mgrid:has([data-mgo="5"][aria-current])::after{width:45.455%}
  #mgrid:has([data-mgo="6"][aria-current])::after{width:54.545%}
  #mgrid:has([data-mgo="7"][aria-current])::after{width:63.636%}
  #mgrid:has([data-mgo="8"][aria-current])::after{width:72.727%}
  #mgrid:has([data-mgo="9"][aria-current])::after{width:81.818%}
  #mgrid:has([data-mgo="10"][aria-current])::after{width:90.909%}
  body.tour-m #mgrid .stp.done i{border-color:var(--accent);color:var(--accent)}
  body.tour-m #mgrid .stp.done i::after{content:none}
  #mgrid .stp{font-size:14px}
  body.tour-m .layout > #msol{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);column-gap:72px;align-items:center;padding-top:88px;padding-bottom:88px;background:var(--stone-2);border-top:1px solid var(--stone);border-bottom:1px solid var(--stone)}
  #msol .sol button{font-size:20px;padding:24px 22px;column-gap:14px;min-height:112px}
  #msol .kicker{margin:0;font-family:var(--display);font-size:clamp(40px,3.4vw,56px);font-weight:600;line-height:1;letter-spacing:0;text-transform:none;color:var(--fg)}
}
/* Bannière France Rénov' (arrêté du 7/07/2026) : provisoire, sobre, distincte de la publicité.
   À remplacer par la bannière officielle (annexe III) de https://france-renov.gouv.fr/servicepublic */
.frb,.foot a.frb{display:flex;align-items:center;gap:12px;min-height:48px;padding:12px 14px;margin:0;background:#FFFFFF;color:#132033;border:2px solid #132033;border-radius:6px;font-family:var(--body);font-size:15px;font-weight:600;line-height:1.4;text-align:left;text-decoration:none;position:relative;z-index:1;box-sizing:border-box;max-width:100%}
.frb::after{content:"\2192";flex:none;font-size:18px;line-height:1}
.frb span{flex:1;min-width:0;overflow-wrap:anywhere}
.frb:hover,.foot a.frb:hover{background:#EEF3F8;color:#132033;border-color:#132033}
a.frb.frb-img,.foot a.frb.frb-img{display:block;width:100%;max-width:640px;min-height:0;padding:0;margin:20px 0;border:0;border-radius:0;background:none;box-shadow:none}
.frb.frb-img::after{content:none}
.frb-img img{display:block;width:100%;max-width:100%;height:auto}
a.frb.frb-img:hover,.foot a.frb.frb-img:hover{background:none}
.frbwrap a.frb.frb-img{margin:24px auto}
@media (max-width:639px){a.frb.frb-img,.foot a.frb.frb-img{position:relative;left:50%;width:100vw;max-width:100vw;margin-left:-50vw;margin-right:0;background:#FFFFFF;padding:6px 0}div.frbwrap{display:block}div.frbwrap a.frb.frb-img{margin:24px 0 24px -50vw}}
.tribl{display:inline-flex;align-items:center;min-height:48px;padding:8px 0;font-weight:600;font-size:17px;color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.stage.cmpon .mcmp input{left:0;right:0;width:100%}
@media (max-width:639px){body.tour-a .climabadges{display:none}body.tour-a .stage:not(.ap-k0) .tpanel{display:none}}
@media (min-width:1024px){.stage.cmpon .arrow{bottom:76px}}
.card.more::after{content:"Suite du texte ↓";position:sticky;bottom:0;display:block;align-self:stretch;width:100%;flex:none;margin-top:-46px;padding:22px 0 8px;background:linear-gradient(180deg,rgba(255,255,255,0) 0,#FFFFFF 22px,#FFFFFF 100%);font-size:14px;font-weight:600;color:var(--accent);text-align:center;pointer-events:none}
.frbwrap{display:flex;justify-content:center;margin:12px 0 0}
.foot a.frb{max-width:760px}
@media (min-width:1024px){
  .hero > .frb{grid-column:1;grid-row:1;align-self:start;justify-self:start;margin:8px 0 24px;max-width:600px}
  .frbwrap{justify-content:flex-start;margin:16px 0 4px}
}

/* --- parcours particuliers --- */

.pz-site[hidden]{display:none !important}
html[data-parcours="maison"] .pz-site,html[data-parcours="appartement"] .pz-site{display:block !important}
html[data-parcours="maison"] [data-copro],html[data-parcours="appartement"] [data-copro],
html[data-parcours="maison"] [data-copro-only],html[data-parcours="appartement"] [data-copro-only]{display:none !important}
html:not([data-parcours="maison"]):not([data-parcours="appartement"]) [data-part-only]{display:none !important}
html[data-parcours="maison"] [data-only="appartement"],html[data-parcours="appartement"] [data-only="maison"]{display:none !important}
.pz-fig{overflow:hidden;background:#2E4A70}
.pz-fig svg{display:block;width:100%;height:100%}
.pz-fig .ent-sky{fill:#2E4A70}.pz-fig .ent-moon{opacity:1}.pz-fig .ent-w{fill:#F4CC74}.pz-fig .ent-lamp{fill:#FFE7A8}.pz-fig .ent-glow{opacity:.45}.pz-fig .ent-int{opacity:1}.pz-fig .ent-shut{transform:translateY(-66px)}
.pz-mfig{aspect-ratio:2/1;border-radius:20px;margin-bottom:10px;box-shadow:var(--shadow)}
.pz-site .hero .hfig{display:none}
.pz-list{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:8px}
.pz-list li{display:flex;align-items:center;gap:14px;min-height:60px;padding:10px 14px;background:#FFFFFF;border:1px solid var(--line,#D6DEE7);border-radius:12px}
.pz-list li svg{width:26px;height:26px;color:var(--accent,#1D5FA8);flex:none}
.pz-list b{display:block;font-weight:600;font-size:16.5px;line-height:1.25;color:var(--fg)}
.pz-list small{display:block;font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--stone-ink,#6B5A3E);margin-top:2px}
.pz-out,.pz-copro{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:10px 16px;border-radius:12px;text-decoration:none;font-size:16px;line-height:1.35}
.pz-out{border:1px solid var(--accent);color:var(--fg);background:var(--accent-soft,#E3EDF8)}
.pz-out b{color:var(--accent)}
.pz-copro{background:var(--fg,#132033);color:#FFFFFF}
.pz-copro b{color:#9CC7F2;font-weight:600}
.pz-out svg,.pz-copro svg{width:22px;height:22px;flex:none}
.pz-copro:hover{background:#1D2D45}.pz-out:hover{background:#D5E5F6}
.pz-site .list span{color:var(--muted)}
@media (min-width:1024px){
  .pz-mfig{display:none}
  .pz-site .hero .hfig{display:flex}
  .pz-dfig{aspect-ratio:4/3;border-radius:4px;box-shadow:0 1px 0 rgba(19,32,51,.08),0 46px 80px -48px rgba(19,32,51,.55)}
  .pz-site > .blk.pz-alt{background:var(--bg)}
  .pz-site > .blk.pz-alt2{background:#FFFFFF}
  .pz-site > .blk:not(:first-child){border-top:1px solid var(--line)}
  .pz-site > .visite{border-top:1px solid var(--line)}
  .pz-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:44px}
  .pz-list li{flex-direction:column;align-items:flex-start;min-height:140px;padding:20px;border-radius:4px}
  .pz-out,.pz-copro{display:inline-flex;align-self:flex-start;margin-top:32px;border-radius:4px;padding:12px 20px}
  .pz-site .list{margin-top:40px;max-width:900px}
}
#msol{display:none !important}
.pz-list li.pz-li-b{padding:0}
.pz-lb{display:flex;align-items:center;gap:14px;width:100%;min-height:60px;padding:10px 14px;border:0;border-radius:12px;background:transparent;font:inherit;text-align:left;color:inherit;cursor:pointer}
.pz-lb:hover{background:var(--accent-soft,#E3EDF8)}
.pz-lb .go{margin-left:auto;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);white-space:nowrap}
/* LISTE PZ 320 START — téléphone étroit (320 px) : la liste des solutions du parcours maison / appartement ne déborde plus */
@media (max-width:1023.98px){
  .pz-list{grid-template-columns:minmax(0,1fr)}
  .pz-list li,.pz-lb{min-width:0}
  .pz-list li > span,.pz-lb > span:not(.go){min-width:0;overflow-wrap:break-word}
}
/* LISTE PZ 320 END */
/* Financement par parcours : accordéon vertical (travaux, puis aides) */
.fin{display:flex;flex-direction:column;gap:10px;margin:8px 0 4px;min-width:0}
.fin-k{margin:6px 0 0;font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.fin details{min-width:0}
.fin summary{list-style:none;cursor:pointer}
.fin summary::-webkit-details-marker{display:none}
.fp{border:1px solid var(--line);border-radius:12px;background:#FFFFFF}
.fp > summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:10px 14px}
.fp > summary span{display:block;min-width:0}
.fp > summary b{display:block;font-size:17px;font-weight:600;line-height:1.25;color:var(--fg)}
.fp > summary small{display:block;margin-top:2px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.fp[open] > summary{border-bottom:1px solid var(--line)}
.fp-b{display:flex;flex-direction:column;gap:10px;padding:12px 14px 14px}
.fp-b > p{margin:0;font-size:16px;line-height:1.5;color:var(--fg)}
.fp-b > p.fp-t2{color:var(--muted);font-size:15px}
.fa{border:1px solid var(--line);border-radius:10px;background:var(--surface-2,#EEF3F8)}
.fa > summary{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;min-height:52px;padding:8px 12px}
.fa > summary b{flex:1 1 220px;min-width:0;font-size:15.5px;font-weight:600;line-height:1.3;color:var(--fg);overflow-wrap:anywhere}
.fa .chip{flex:none;padding:3px 8px;border-radius:999px;background:#FFFFFF;border:1px solid var(--line);font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);white-space:normal}
.fa dl{margin:0;padding:4px 12px 12px;display:grid;gap:2px}
.fa dt{margin-top:8px;font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.fa dd{margin:0;font-size:15px;line-height:1.5;color:var(--fg);overflow-wrap:anywhere}
.fa dd ul,.fa dd ol,.fq ol{margin:2px 0 0;padding-left:20px}
.fa dd li,.fq li{margin:2px 0}
.fa dd a,.fsrc a{color:var(--accent);overflow-wrap:anywhere}
.fq{border:1px solid var(--line);border-radius:12px;background:#FFFFFF}
.fq > summary{display:flex;align-items:center;justify-content:space-between;min-height:52px;padding:8px 14px;font-weight:600;color:var(--fg)}
.fq > div{padding:0 14px 12px;font-size:15px;line-height:1.5}
.fq h3{margin:10px 0 2px;font-size:15px;color:var(--accent)}
.fq li span{color:var(--muted)}
.fsrcw{margin-top:4px}
.fsrcw > p{margin:0;font-size:14px;color:var(--muted)}
.fsrc{margin:4px 0 0;padding-left:18px;font-size:13.5px;line-height:1.5;color:var(--muted)}
.fsrcw summary{display:inline-flex;align-items:center;min-height:44px;font-size:14px;font-weight:600;color:var(--accent)}
@media (min-width:1024px){
  .fin{max-width:960px}
  .fp,.fa,.fq{border-radius:4px}
  .pz-lb{border-radius:4px;flex-direction:column;align-items:flex-start;min-height:140px;padding:20px}
  .pz-lb .go{margin:auto 0 0}
}

/* Financement : lisibilité (corrections de la vérification finale) */
.fin{gap:12px}
.fin-k{font-family:var(--body);font-size:15px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--fg)}
.fp > summary small{font-family:var(--body);font-size:14px;letter-spacing:0;text-transform:none;color:var(--muted)}
.fp-b{gap:12px;padding:14px 14px 16px}
.fa{background:#FFFFFF;min-width:0}
.fa > summary{min-height:56px;padding:10px 14px;gap:6px 10px}
.fa > summary b{flex:1 1 200px;font-size:16px}
.fa .chip{flex:0 1 auto;min-width:0;max-width:100%;padding:3px 10px;font-family:var(--body);font-size:13.5px;font-weight:600;letter-spacing:0;text-transform:none;white-space:normal;overflow-wrap:anywhere;line-height:1.3;background:var(--accent-soft,#E3EDF8);border-color:transparent}
.fa-b{display:flex;flex-direction:column;gap:14px;padding:4px 14px 16px;min-width:0}
.fa-b p{margin:0;font-size:16px;line-height:1.5;color:var(--fg);overflow-wrap:anywhere}
.fa-b h4{margin:0 0 4px;font-family:var(--body);font-size:15px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--accent)}
.fa-b ul,.fa-b ol{margin:0;padding-left:22px;font-size:15.5px;line-height:1.5;color:var(--fg)}
.fa-b li{margin:3px 0;overflow-wrap:anywhere}
.fa-m{padding:12px 14px;border-radius:10px;background:var(--accent-soft,#E3EDF8);border-left:4px solid var(--accent)}
.fa-m p{font-size:16.5px;font-weight:600}
.fa-b .fa-o,.fa-b .fa-src{font-size:14px;color:var(--muted)}
.fa-src a{color:var(--muted);text-decoration:underline;text-decoration-color:rgba(19,32,51,.3)}
.fa-src a:hover{color:var(--accent)}
.fq > div{font-size:15.5px}
.fsrc{font-size:14px}
.fsrc .fsm{color:var(--muted)}
a.pz-promo{text-decoration:none;color:inherit;cursor:pointer}
a.pz-promo:hover span,a.pz-promo:focus-visible span{text-decoration:underline}
@media (min-width:1024px){.fa-m{border-radius:4px}}

/* ===== Visite « Mon appartement » : l'appartement avant / après (parcours appartement) ===== */
body.tour-a .stagecap{display:none}
body.tour-a #agrid .stp.done i::after{content:" ✓";color:var(--accent);font-weight:700}
.tstep[data-astep="7"] .mcmpb{order:-1}
.tstep .afin{display:flex;align-items:center;min-height:44px;margin-top:4px;font-weight:600;font-size:15px;color:var(--accent);text-decoration:none}
.tstep .afin:hover{text-decoration:underline}
.tstep .cond{margin:0;padding:8px 12px;border-left:3px solid var(--accent);background:var(--surface-2);font-size:15px;line-height:1.45;color:var(--fg)}
.achoix{padding:12px 14px;border:1px solid var(--accent);border-radius:12px;background:var(--accent-soft,#E3EDF8)}
.achoix b{display:block;font-size:16px;color:var(--fg)}
.achoix p{margin:4px 0 0;font-size:15px;line-height:1.45;color:var(--fg)}
@media (max-width:1023px){
  body.tour-a .visite > .stage{height:clamp(330px,52svh,470px)}
  .tstep[data-astep="7"]:not([hidden]){display:flex;flex-direction:column;gap:12px}
}
@media (min-width:640px) and (max-width:1023px){
  body.tour-a .visite > .stage{height:clamp(420px,58svh,600px)}
}
@media (min-width:1024px){
  .achoix{border-radius:4px}
  body.tour-a .layout > .visite{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);column-gap:40px;grid-template-areas:"tabs tabs" "stage card" "steps steps";align-items:start;padding-top:40px}
  body.tour-a .vhead{display:none}
  body.tour-a .visite > .stage,body.tour-a .visite > .vsnap{grid-area:stage;height:var(--h3m)}
  body.tour-a .visite .card{grid-area:card;display:flex;flex-direction:column;gap:14px;margin:0;padding:0 4px 0 0;border:0;max-height:var(--h3m);overflow-y:auto}
  body.tour-a .visite .steps{grid-area:steps;padding-top:26px}
  body.tour-a .tstep{display:flex;flex-direction:column;gap:12px}
  body.tour-a .tstep > h2{font-size:clamp(28px,2.1vw,36px);line-height:1.05}
  body.tour-a .tstep p{font-size:16px}
  body.tour-a .nav2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:auto}
  body.tour-a .nav2 button{white-space:normal;min-height:48px}
  #agrid{grid-template-columns:repeat(8,minmax(0,1fr))}
  #agrid::before{left:6.25%;right:6.25%}
  #agrid::after{left:6.25%}
  #agrid:has([data-ago="1"][aria-current])::after{width:12.5%}
  #agrid:has([data-ago="2"][aria-current])::after{width:25%}
  #agrid:has([data-ago="3"][aria-current])::after{width:37.5%}
  #agrid:has([data-ago="4"][aria-current])::after{width:50%}
  #agrid:has([data-ago="5"][aria-current])::after{width:62.5%}
  #agrid:has([data-ago="6"][aria-current])::after{width:75%}
  #agrid:has([data-ago="7"][aria-current])::after{width:87.5%}
  body.tour-a #agrid .stp.done i{border-color:var(--accent);color:var(--accent)}
  body.tour-a #agrid .stp.done i::after{content:none}
  #agrid .stp{font-size:14px}
}

