/* =====================================================================
   Page d'accueil : compléments à /assets/css/styles.css
   ===================================================================== */
:root{ --navh:62px; --verre:rgba(9,22,48,.66); --or-vif:#e7cf96; }

/* ---------- Bandeau d'accueil : film 3D piloté par le défilement ---------- */
.hero{position:relative;background:#060f22;color:#fff;}
.hero-stage{position:relative;overflow:hidden;}
#hero-canvas{display:none;}
.hero-wrap{position:relative;z-index:3;padding-block:clamp(3rem,8vw,5rem);}
.hero-panel{max-width:35rem;padding-block:1.4rem;}
.hero-panel + .hero-panel{border-top:1px solid rgba(255,255,255,.14);}
.hero .eyebrow span:not(.ln){color:var(--or-vif);}
.hero .eyebrow .ln{background:var(--or-vif);}
.hero h1{color:#fff;font-size:clamp(2.4rem,4.6vw,4rem);line-height:1.03;letter-spacing:-.015em;margin-bottom:1.2rem;text-shadow:0 2px 30px rgba(3,8,20,.55);}
.hero h1 em{display:block;color:var(--or-vif);}
.hero h2{color:#fff;font-size:clamp(1.9rem,3.4vw,2.8rem);line-height:1.08;margin-bottom:1rem;text-shadow:0 2px 24px rgba(3,8,20,.5);}
.hero-lead,.hero-panel p.txt{font-size:1.06rem;line-height:1.6;color:#dfe5ef;max-width:33rem;}
.hero-cta{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.6rem;}
.hero-trust{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:1.4rem;font-size:.9rem;color:#c9d1e0;}
.hero-trust .stars{color:var(--or-vif);letter-spacing:.1em;font-size:.85rem;}
.hero-trust a{color:#fff;}
.hero-trust .sep{width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.4);margin:0 .4rem;}
.hero-link{display:inline-block;margin-top:1.1rem;color:#fff;font-weight:600;text-decoration:underline;text-decoration-color:var(--or-vif);text-underline-offset:4px;}
.film-grade,.film-tags,.film-nav,.film-progress,.film-scroll,.film-skip{display:none;}
.xp-card{display:none;}
.xp-k{font-size:.74rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--or-vif);}
.xp-card h2{font-size:1.4rem;margin:.25rem 0 1.1rem;color:#fff;text-shadow:none;}
.xp-card .field{margin-bottom:.9rem;}
.xp-card .field-head label{color:#dfe5ef;font-size:.88rem;}
.xp-card .field-head output{color:#fff;}
.xp-card input[type=range]{background:linear-gradient(90deg,var(--or-vif) 0 var(--fill,50%),rgba(255,255,255,.18) var(--fill,50%));}
.xp-card input[type=range]::-webkit-slider-thumb{border-color:var(--or-vif);background:#081733;}
.xp-card input[type=range]::-moz-range-thumb{border-color:var(--or-vif);background:#081733;}
.xp-card .chip{background:transparent;border-color:rgba(255,255,255,.25);color:#fff;}
.xp-card .chip small{color:#a9b4ca;}
.xp-card .chip.active{background:var(--or-vif);border-color:var(--or-vif);color:var(--nuit);}
.xp-card .chip.active small{color:var(--nuit);}
.xp-status{font-size:.82rem;font-weight:600;margin:1rem 0 .3rem;}
.xp-status.ok{color:#8fd8b8;} .xp-status.ko{color:#f3c38f;}
.xp-v{font-family:'Playfair Display',serif;font-size:1.2rem;line-height:1.2;color:var(--or-vif);font-variant-numeric:tabular-nums;}
.xp-d{font-size:.85rem;color:#a9b4ca;margin-top:.15rem;}
.xp-go{width:100%;}
.xp-hyp{font-size:.78rem;color:#a9b4ca;margin-top:.7rem;line-height:1.45;}
@keyframes ring{0%{box-shadow:0 0 0 0 rgba(231,207,150,.55);}100%{box-shadow:0 0 0 16px rgba(231,207,150,0);}}
/* jauge des travaux et durées de location */
.tv-gauge{margin:1rem 0 1.7rem;max-width:30rem;}
.tg-head{display:flex;justify-content:space-between;gap:1rem;font-size:.84rem;color:#a9b4ca;margin-bottom:.45rem;}
.tg-head b{color:#f3c38f;font-weight:600;font-variant-numeric:tabular-nums;transition:color .3s;}
.tv-gauge.ok .tg-head b{color:#8fd8b8;}
.tg-bar{position:relative;height:6px;border-radius:3px;background:rgba(255,255,255,.12);}
.tg-fill{position:absolute;inset:0;border-radius:3px;background:linear-gradient(90deg,#c9a45a,var(--or-vif));transform-origin:left;transform:scaleX(0);}
.tv-gauge.ok .tg-fill{background:linear-gradient(90deg,#4fae86,#8fd8b8);}
.tg-min{position:absolute;left:62.5%;top:-4px;bottom:-4px;width:2px;background:#fff;}
.tg-min em{position:absolute;top:12px;left:50%;transform:translateX(-50%);font-style:normal;font-size:.72rem;color:#c9d1e0;white-space:nowrap;}
.loc-dur{margin-top:1.4rem;max-width:30rem;}
.ld-bar{position:relative;height:4px;border-radius:2px;background:rgba(255,255,255,.14);margin:0 .9rem;}
.ld-fill{position:absolute;inset:0;background:var(--or-vif);border-radius:2px;transform-origin:left;transform:scaleX(0);}
.ld-steps{display:flex;justify-content:space-between;margin-top:.7rem;}
.ld-s{display:flex;flex-direction:column;align-items:center;font-size:.86rem;color:#8f9bb4;transition:color .4s;position:relative;width:5rem;}
.ld-s::before{content:'';position:absolute;top:-1.15rem;left:50%;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:#0b1a36;border:2px solid rgba(255,255,255,.3);transition:all .4s;}
.ld-s b{color:#c9d1e0;font-weight:600;}
.ld-s.on{color:var(--or-vif);} .ld-s.on b{color:#fff;}
.ld-s.on::before{background:var(--or-vif);border-color:var(--or-vif);box-shadow:0 0 0 5px rgba(231,207,150,.18);}
.ld-s:first-child{align-items:flex-start;} .ld-s:first-child::before{left:.9rem;}
.ld-s:last-child{align-items:flex-end;} .ld-s:last-child::before{left:auto;right:.9rem;margin:0 -6px 0 0;}

/* avec le film */
.hero-js .hero{height:900vh;}
.hero-js .hero-stage{position:sticky;top:var(--navh);height:calc(100vh - var(--navh));height:calc(100svh - var(--navh));}
.hero-js .hero-stage.has-3d #hero-canvas{display:block;position:absolute;inset:0;width:100%;height:100%;}
.hero-js .hero-stage:not(.has-3d){background:radial-gradient(120% 90% at 75% 40%,#1a3566 0%,#0b1a36 55%,#060f22 100%);}
.hero-js .hero-stage::after{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,rgba(4,10,24,.86) 0%,rgba(4,10,24,.55) 30%,rgba(4,10,24,0) 56%),linear-gradient(0deg,rgba(4,10,24,.55) 0%,rgba(4,10,24,0) 18%);}
.hero-js .film-grade{display:block;position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(140% 110% at 60% 45%,transparent 55%,rgba(2,6,16,.55) 100%);}
.hero-js .hero-wrap{position:absolute;inset:0;padding-block:0;pointer-events:none;}
.hero-js .hero-panels{position:relative;height:100%;}
.hero-js .hero-panel{position:absolute;left:0;top:50%;translate:0 -50%;max-width:34rem;opacity:0;visibility:hidden;border-top:0;padding:0;pointer-events:auto;will-change:opacity,transform;}
.hero-js .hero-panel--intro{opacity:1;visibility:visible;}
.hero-js .hero-panel--travaux{max-width:33rem;}
.hero-js .hero-panel--travaux .txt{font-size:.98rem;}
/* repères projetés dans la scène */
.hero-js .film-tags{display:block;position:absolute;inset:0;z-index:2;pointer-events:none;}
.film-tag{position:absolute;left:0;top:0;display:flex;align-items:center;gap:.55rem;margin:-14px 0 0 -7px;padding:.3rem .7rem .3rem .35rem;border-radius:999px;background:rgba(6,15,34,.72);border:1px solid rgba(231,207,150,.5);color:#fff;font-size:.82rem;font-weight:600;white-space:nowrap;opacity:0;transition:opacity .35s;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);will-change:transform;}
.film-tag i{width:14px;height:14px;border-radius:50%;background:var(--or-vif);box-shadow:0 0 0 0 rgba(231,207,150,.6);animation:ring 1.8s ease-out infinite;}
/* chapitres */
.hero-js .film-nav{display:flex;flex-direction:column;gap:.15rem;position:absolute;right:1.4rem;top:50%;translate:0 -50%;z-index:4;}
.film-nav button{display:flex;align-items:center;justify-content:flex-end;gap:.7rem;background:none;border:0;padding:.42rem 0;color:rgba(255,255,255,.5);font-size:.78rem;font-weight:500;letter-spacing:.02em;cursor:pointer;transition:color .3s;}
.film-nav button::after{content:'';width:8px;height:8px;border-radius:50%;border:1.5px solid rgba(255,255,255,.45);transition:all .3s;}
.film-nav button:hover{color:#fff;}
.film-nav button.is-on{color:#fff;}
.film-nav button.is-on::after{background:var(--or-vif);border-color:var(--or-vif);box-shadow:0 0 0 4px rgba(231,207,150,.2);}
.hero-js .film-progress{display:block;position:absolute;left:0;right:0;bottom:0;height:2px;z-index:4;background:rgba(255,255,255,.08);}
.film-progress i{position:absolute;inset:0;background:linear-gradient(90deg,#b88f45,var(--or-vif));transform-origin:left;transform:scaleX(0);}
.hero-js .film-scroll{display:flex;align-items:center;gap:.7rem;position:absolute;left:50%;bottom:1.6rem;translate:-50% 0;z-index:4;color:#c9d1e0;font-size:.8rem;letter-spacing:.06em;transition:opacity .5s;}
.film-scroll span{position:relative;width:1px;height:34px;background:rgba(255,255,255,.25);overflow:hidden;}
.film-scroll span::after{content:'';position:absolute;left:0;top:-40%;width:1px;height:40%;background:var(--or-vif);animation:drip 1.8s ease-in-out infinite;}
.film-scroll.gone{opacity:0;}
@keyframes drip{0%{top:-40%;}100%{top:100%;}}
.hero-js .film-skip{display:block;position:absolute;right:var(--gutter);bottom:1.3rem;z-index:4;color:#c9d1e0;font-size:.8rem;text-decoration:underline;text-decoration-color:rgba(231,207,150,.6);text-underline-offset:4px;}
.film-skip:hover{color:#fff;}
@media (min-width:1161px){.hero-js .film-skip{right:calc((100vw - 1160px)/2 + var(--gutter));}}
.hero-intro-done .hero-panel--intro .hero-copy > *{transition:none!important;}
/* ouverture */
.hero-js .hero-panel--intro .hero-copy > *{opacity:0;transform:translateY(22px);}
.hero-ready .hero-panel--intro .hero-copy > *{opacity:1;transform:none;transition:opacity 1s ease,transform 1s cubic-bezier(.2,.7,.2,1);}
.hero-ready .hero-panel--intro .hero-copy > :nth-child(1){transition-delay:.9s;} .hero-ready .hero-panel--intro .hero-copy > :nth-child(2){transition-delay:1.15s;}
.hero-ready .hero-panel--intro .hero-copy > :nth-child(3){transition-delay:1.5s;} .hero-ready .hero-panel--intro .hero-copy > :nth-child(4){transition-delay:1.75s;}
.hero-ready .hero-panel--intro .hero-copy > :nth-child(5){transition-delay:1.95s;}
@media (prefers-reduced-motion:reduce){.hero-js .hero-panel--intro .hero-copy > *{opacity:1;transform:none;}.film-tag i,.film-scroll span::after{animation:none;}}
/* dernier plan : simulation express */
@media (min-width:981px){
  .hero-js .hero-panel--fin{max-width:none;width:calc(100% - 9rem);display:grid;grid-template-columns:minmax(0,30rem) 340px;justify-content:space-between;gap:2rem;align-items:center;}
  .hero-js .xp-card{display:block;background:var(--verre);border:1px solid rgba(231,207,150,.32);border-radius:6px;padding:1.4rem 1.4rem 1.2rem;backdrop-filter:blur(14px) saturate(130%);-webkit-backdrop-filter:blur(14px) saturate(130%);box-shadow:0 30px 70px rgba(0,0,0,.45);}
}
@media (max-width:980px){
  .hero-js .hero{height:820vh;}
  .hero-js .hero-stage::after{background:linear-gradient(180deg,rgba(4,10,24,0) 0%,rgba(4,10,24,.25) 34%,rgba(4,10,24,.88) 58%,rgba(4,10,24,.96) 100%);}
  .hero-js .hero-panel{top:auto;bottom:3.2rem;translate:none;max-width:none;right:0;}
  .hero-js .film-nav{display:none;}
  .hero-js .film-scroll{bottom:auto;top:1rem;}
  .hero-js .film-skip{bottom:.9rem;}
  .hero-trust{display:none;}
  .hero-js .hero-panel--travaux .txt{font-size:.88rem;line-height:1.5;}
  .hero-js .hero-panel--travaux h2{font-size:1.6rem;}
  .hero-js .hero-panel--travaux .tv-alt{display:none;}
  .hero-js .hero-panel--travaux > .txt{display:none;}
  .hero-js .hero-panel--travaux h2{margin-bottom:.6rem;}
  .tg-head span{font-size:.76rem;}
}
@media (max-width:420px){.hero h1{font-size:2.15rem;}.hero-lead,.hero-panel p.txt{font-size:.96rem;}.hero h2{font-size:1.75rem;}}

/* ---------- Chiffres de l'agence ---------- */
.facts{background:#fff;border-bottom:1px solid var(--filet);}
.facts .wrap{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));}
.fact{padding:1.5rem 1rem 1.5rem 0;}
.fact + .fact{padding-left:1.2rem;border-left:1px solid var(--filet);}
.fact b{display:block;font-family:'Playfair Display',serif;font-weight:500;font-size:1.6rem;color:var(--nuit);line-height:1.2;font-variant-numeric:tabular-nums;}
.fact span{font-size:.86rem;color:var(--encre-2);}
.fact a{color:inherit;}
@media (max-width:900px){.facts .wrap{grid-template-columns:repeat(2,minmax(0,1fr));}.fact,.fact + .fact{padding:1.1rem 0;border-left:0;border-top:1px solid var(--filet);}.fact:nth-child(even){padding-left:1rem;border-left:1px solid var(--filet);}.fact:first-child,.fact:nth-child(2){border-top:0;}.fact:last-child{grid-column:1/-1;}}

/* ---------- Simulateur : section « plan d'architecte » ---------- */
.sim-sec{position:relative;background-color:#0a1a38;color:#fff;background-image:radial-gradient(ellipse 60% 50% at 85% 0%,rgba(231,207,150,.14),transparent 70%),linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:auto,44px 44px,44px 44px;}
.sim-sec .sec-head h2{color:#fff;}
.sim-sec .dek{color:#c9d1e0;}
.sim-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(1.2rem,2.6vw,2rem);align-items:start;}
@media (max-width:960px){.sim-grid{grid-template-columns:minmax(0,1fr);}}
.sim-shell{background:#fff;color:var(--encre);border-radius:6px;box-shadow:0 30px 80px rgba(0,0,0,.35);overflow:hidden;scroll-margin-top:calc(var(--navh) + 16px);}
.sim-steps{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid var(--filet);}
.sim-tab-btn{display:flex;align-items:center;gap:.6rem;padding:1rem 1.1rem;background:none;border:0;color:var(--encre-3);text-align:left;cursor:pointer;font-weight:600;font-size:.92rem;}
.sim-tab-btn.active{color:var(--nuit);}
.step-num{flex:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:1.5px solid currentColor;font-size:.85rem;}
.sim-tab-btn.active .step-num{background:var(--nuit);border-color:var(--nuit);color:#fff;}
.sim-tab-btn.done .step-num{font-size:0;background:var(--emeraude);border-color:var(--emeraude);color:#fff;}
.sim-tab-btn.done .step-num::after{content:"✓";font-size:.85rem;}
.sim-progress{position:absolute;left:0;right:0;bottom:-1px;height:3px;background:transparent;}
.sim-progress i{display:block;height:100%;width:33%;background:linear-gradient(90deg,#d4b77a,#b9985a);transition:width .4s ease;}
@media (max-width:520px){.sim-tab-btn{flex-direction:column;align-items:flex-start;gap:.3rem;padding:.8rem .7rem;font-size:.8rem;}}
.sim-step{padding:clamp(1.2rem,3vw,2rem);}
.field{margin-bottom:1.4rem;}
.field-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.5rem;}
.field-head label,.field-head .lbl,.lbl{font-size:.92rem;font-weight:500;color:inherit;}
.lbl small{font-weight:400;color:var(--encre-3);}
.field-head output{font-weight:600;color:var(--nuit);font-variant-numeric:tabular-nums;white-space:nowrap;}
.field-help{font-size:.82rem;color:var(--encre-3);margin-top:.4rem;}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:4px;border-radius:2px;margin:.55rem 0;background:linear-gradient(90deg,var(--nuit) 0 var(--fill,50%),var(--pierre-2) var(--fill,50%));cursor:pointer;}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:#fff;border:2px solid var(--nuit);cursor:pointer;box-shadow:0 2px 6px rgba(0,0,0,.18);}
input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid var(--nuit);cursor:pointer;}
.field-scale{display:flex;justify-content:space-between;font-size:.76rem;color:var(--encre-3);}
.chipset{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem;}
.chipset.c3{grid-template-columns:repeat(3,minmax(0,1fr));}
.chip{background:#fff;border:1px solid var(--filet-fort);border-radius:var(--r);padding:.6rem .3rem;font-size:.88rem;color:var(--encre);cursor:pointer;line-height:1.25;font-variant-numeric:tabular-nums;transition:background .15s,border-color .15s,color .15s;}
.chip small{display:block;font-size:.74rem;color:var(--encre-3);}
.chip:hover{border-color:var(--nuit);}
.chip.active{background:var(--nuit);border-color:var(--nuit);color:#fff;}
.chip.active small{color:#c9d1e0;}
.combo{position:relative;margin-top:.45rem;}
.combo input{width:100%;padding:.85rem 1rem;border:1px solid var(--filet-fort);border-radius:var(--r);font:inherit;color:var(--encre);}
.combo input:focus{outline:none;border-color:var(--nuit);box-shadow:0 0 0 3px rgba(12,31,63,.1);}
.combo ul{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:5;margin:0;padding:.3rem 0;list-style:none;background:#fff;border:1px solid var(--filet);border-radius:var(--r);box-shadow:0 14px 30px rgba(12,31,63,.15);}
.combo li{display:flex;justify-content:space-between;gap:1rem;padding:.6rem .9rem;cursor:pointer;font-size:.94rem;}
.combo li:hover,.combo li.on{background:var(--pierre);}
.combo li small{font-size:.76rem;font-weight:600;}
.combo li small.ok{color:var(--emeraude);} .combo li small.non{color:var(--alerte);} .combo li small.verif{color:var(--encre-3);}
.ville-badge{margin-top:.55rem;font-size:.86rem;font-weight:600;padding:.5rem .7rem;border-radius:var(--r);}
.ville-badge.ok{background:var(--emeraude-fond);color:var(--emeraude);}
.ville-badge.ko{background:var(--alerte-fond);color:var(--alerte);}
.ville-badge.mid{background:var(--pierre);color:var(--encre-2);}
.sim-nav{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.4rem;margin-top:.6rem;}
.sim-nav .btn-primary{min-width:12rem;}
.sim-advanced{display:block;}
/* étape 3 */
.sim-lead-k{font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--or);}
.sim-lead-t{font-size:1.45rem;margin:.3rem 0 1rem;}
.recap{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-bottom:1.2rem;}
.recap p{background:var(--pierre);border-radius:var(--r);padding:.7rem .85rem;display:flex;flex-direction:column;gap:.15rem;}
.recap span{font-size:.78rem;color:var(--encre-3);} .recap b{color:var(--nuit);font-weight:600;font-size:.95rem;}
@media (max-width:520px){.recap{grid-template-columns:1fr;}}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;}
.form-grid .full{grid-column:1/-1;}
@media (max-width:480px){.form-grid{grid-template-columns:1fr;}}
.form-grid label{display:block;font-size:.88rem;font-weight:500;margin-bottom:.3rem;}
.form-grid input,.form-grid select,.form-grid textarea{width:100%;padding:.8rem .85rem;border:1px solid var(--filet-fort);border-radius:var(--r);font:inherit;color:var(--encre);background:#fff;}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:none;border-color:var(--nuit);box-shadow:0 0 0 3px rgba(12,31,63,.1);}
.consent{font-size:.8rem;color:var(--encre-3);margin-top:.7rem;}
.consent a{color:var(--nuit);}
#lead-success{text-align:center;padding:2rem 1rem;}
#lead-success .ok-mark{width:56px;height:56px;margin:0 auto 1rem;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--emeraude-fond);color:var(--emeraude);font-size:1.6rem;}
#lead-success h3{font-size:1.5rem;margin-bottom:.6rem;}
#lead-success p{color:var(--encre-2);margin-bottom:1.2rem;}
/* tableau de bord des résultats */
.sim-dash{position:relative;padding:clamp(1.2rem,2.6vw,1.7rem);border-radius:6px;border:1px solid rgba(231,207,150,.3);background:rgba(8,20,44,.72);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 30px 80px rgba(0,0,0,.3);}
@media (min-width:961px){.sim-dash{position:sticky;top:calc(var(--navh) + 16px);}}
.sr-status{font-size:.88rem;font-weight:600;padding:.5rem .75rem;border-radius:var(--r);margin-bottom:1rem;display:inline-block;}
.sim-dash .sr-status.ok{background:rgba(29,111,85,.22);color:#9be0c2;}
.sim-dash .sr-status.ko{background:rgba(138,75,22,.28);color:#f3c38f;}
.sd-k{font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#a9b4ca;}
.sd-v{font-family:'Playfair Display',serif;font-weight:600;font-size:1.2rem;line-height:1.2;color:var(--or-vif);margin-top:.2rem;font-variant-numeric:tabular-nums;}
.sd-mention{font-size:1.55rem;line-height:1.3;font-weight:500;color:#e8edf5;margin:1rem 0 0;padding-top:.9rem;border-top:1px solid rgba(255,255,255,.12);}
.sd-l{font-size:.92rem;color:#c9d1e0;}
.sd-d{font-size:.92rem;color:#fff;margin-top:.2rem;}
.cmp{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin:1.1rem 0;}
.cmp-b{display:flex;flex-direction:column;gap:.2rem;padding:.65rem .7rem;border-radius:var(--r);border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.03);color:#fff;text-align:left;cursor:pointer;transition:border-color .15s,background .15s;}
.cmp-b:hover{border-color:rgba(231,207,150,.6);}
.cmp-b.is-on{border-color:var(--or-vif);background:rgba(231,207,150,.12);}
.cmp-b .ck{font-size:.76rem;color:#a9b4ca;} .cmp-b .cv{font-weight:600;font-variant-numeric:tabular-nums;font-size:.98rem;}
.sd-chart{margin:0 0 .4rem;}
.sd-chart svg{width:100%;height:auto;display:block;}
.sd-chart .ax{stroke:rgba(255,255,255,.2);stroke-width:1;}
.sd-chart .b2{fill:#d9bd82;} .sd-chart .b1{fill:#d9bd82;fill-opacity:.5;}
.sd-chart .yl{fill:#a9b4ca;font-size:17px;font-family:'IBM Plex Sans',sans-serif;}
.sd-chart .vl{fill:#fff;font-size:17px;font-weight:600;font-family:'IBM Plex Sans',sans-serif;}
.sd-chart figcaption{font-size:.8rem;color:#a9b4ca;margin-top:.2rem;}
.sd-rows{margin:1rem 0;}
.sd-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.15rem 1rem;padding:.6rem 0;border-top:1px solid rgba(255,255,255,.12);}
.sd-row dt{font-size:.9rem;color:#c9d1e0;}
.sd-row dd{margin:0;font-weight:600;color:#fff;text-align:right;font-variant-numeric:tabular-nums;}
.sd-row .sub{grid-column:1/-1;font-size:.78rem;color:#8f9bb4;margin:0;}
.sr-bar{height:8px;display:flex;border-radius:2px;overflow:hidden;background:rgba(255,255,255,.1);margin:.2rem 0 .6rem;}
.sr-bar span{height:100%;transition:width .4s ease;}
.b-loyer{background:#7f9bd0;} .b-impot{background:#d9bd82;} .b-effort{background:rgba(255,255,255,.18);}
.sr-legend{display:flex;flex-wrap:wrap;gap:.4rem 1rem;font-size:.8rem;color:#c9d1e0;margin-bottom:1rem;}
.sr-legend i{display:inline-block;width:9px;height:9px;border-radius:1px;margin-right:.35rem;vertical-align:-1px;}
.lg-l{background:#7f9bd0;} .lg-i{background:#d9bd82;} .lg-e{background:rgba(255,255,255,.3);}
.sr-notes{background:rgba(138,75,22,.25);border:1px solid rgba(243,195,143,.35);border-radius:var(--r);padding:.75rem .9rem;margin-bottom:1rem;font-size:.88rem;color:#f6d6b0;}
.sr-notes p + p{margin-top:.4rem;}
.sd-foot{font-size:.78rem;color:#8f9bb4;margin-top:.9rem;line-height:1.5;}
.sim-reassure{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem 1.8rem;list-style:none;margin:1.8rem 0 0;padding:0;font-size:.9rem;color:#c9d1e0;}
.sim-reassure li::before{content:'✓';color:var(--or-vif);margin-right:.45rem;}

/* ---------- Travaux : liste guidée et repères 3D ---------- */
.tv-list{list-style:none;margin:1rem 0 0;padding:0;display:flex;flex-direction:column;gap:.35rem;}
.tv-list button{width:100%;display:flex;align-items:center;gap:.8rem;padding:.5rem .7rem;border:1px solid rgba(255,255,255,.12);border-radius:var(--r);background:rgba(255,255,255,.03);color:#c9d1e0;text-align:left;cursor:pointer;transition:background .3s,border-color .3s,color .3s;}
.tv-list .n{flex:none;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1.5px solid rgba(231,207,150,.6);color:var(--or-vif);font-size:.82rem;font-weight:600;transition:all .3s;}
.tv-list .t{display:flex;flex-direction:column;font-size:.95rem;font-weight:500;line-height:1.3;}
.tv-list small{font-size:.8rem;font-weight:400;color:#8f9bb4;max-height:0;overflow:hidden;transition:max-height .35s ease;}
.tv-list button:hover{border-color:rgba(231,207,150,.5);color:#fff;}
.tv-list .is-active{background:rgba(231,207,150,.14);border-color:var(--or-vif);color:#fff;}
.tv-list .is-active small{max-height:3em;color:#dfe5ef;}
.tv-list .is-active .n{background:var(--or-vif);color:var(--nuit);border-color:var(--or-vif);box-shadow:0 0 0 5px rgba(231,207,150,.18);}
.tv-list .is-done .n{background:rgba(231,207,150,.25);font-size:0;}
.tv-list .is-done .n::after{content:'✓';font-size:.82rem;color:var(--or-vif);}
.tv-alt{font-size:.86rem;color:#a9b4ca;margin-top:.9rem;max-width:34rem;}
@media (max-width:980px){.tv-list{flex-direction:row;flex-wrap:wrap;}.tv-list li{flex:1 1 45%;}.tv-list button{padding:.4rem .5rem;}.tv-list .t{font-size:.82rem;}.tv-list small,.tv-alt{display:none;}.hero-panel--travaux .txt{font-size:.92rem!important;}}

/* ---------- Simulateur : compléments ---------- */
.out-edit{width:8.5rem;text-align:right;font:inherit;font-weight:600;color:var(--nuit);font-variant-numeric:tabular-nums;border:1px solid transparent;border-radius:var(--r);padding:.2rem .4rem;background:transparent;cursor:text;}
.out-edit:hover{border-color:var(--filet-fort);}
.out-edit:focus{outline:none;border-color:var(--nuit);background:#fff;}
.range-wrap{position:relative;}
.seuil{position:absolute;left:var(--seuil,50%);top:-2px;bottom:-2px;width:2px;background:var(--alerte);border-radius:1px;pointer-events:none;transition:left .25s ease;}
.seuil-ok .seuil{background:var(--emeraude);}
.seuil-l{position:absolute;top:22px;left:50%;transform:translateX(-50%);font-size:.72rem;font-weight:600;white-space:nowrap;color:var(--alerte);}
.seuil-ok .seuil-l{color:var(--emeraude);}
.seuil-l{display:none!important;}
.seuil-txt{color:var(--alerte);font-weight:500;} .seuil-txt.ok{color:var(--emeraude);}
.xp-card .seuil{background:#f3c38f;} .xp-card .seuil-ok .seuil{background:#8fd8b8;}
.xp-card .seuil-l{display:none;}
.sd-hero{padding:1rem 1.1rem;border-radius:6px;border:1px solid rgba(231,207,150,.4);background:linear-gradient(135deg,rgba(231,207,150,.16),rgba(231,207,150,.03));}
.sd-chart .cum{fill:none;stroke:#fff;stroke-width:2;stroke-opacity:.85;}
.sd-chart .cum-d{fill:#fff;}
.sd-chart .cum-l{fill:#fff;font-size:16px;font-weight:600;font-family:'IBM Plex Sans',sans-serif;}
.sim-mini{display:none;}
@media (max-width:960px){
  .sim-mini{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:55;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem var(--gutter) calc(.7rem + env(safe-area-inset-bottom,0px));background:#0a1a38;border-top:1px solid rgba(231,207,150,.35);color:#c9d1e0;font-size:.92rem;transform:translateY(110%);transition:transform .25s ease;}
  .sim-mini b{display:block;color:var(--or-vif);font-size:1rem;}
  .sim-mini .btn-gold{padding:.7rem 1rem;}
  .show-mini .sim-mini{transform:none;}
}
/* ---------- Villes éligibles ---------- */
.zones-wrap{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(1.6rem,4vw,3rem);align-items:start;}
@media (max-width:960px){.zones-wrap{grid-template-columns:minmax(0,1fr);}}
.city-search-box{margin-bottom:.9rem;}
.city-search-box label{display:block;font-size:.92rem;font-weight:500;margin-bottom:.4rem;}
.city-search-box input{width:100%;padding:.95rem 1rem;border:1px solid var(--filet-fort);border-radius:var(--r);font:inherit;font-size:1rem;color:var(--encre);}
.city-search-box input:focus{outline:none;border-color:var(--nuit);}
.city-results{border:1px solid var(--filet);border-radius:var(--r);overflow:hidden;}
.city-row{display:flex;justify-content:space-between;align-items:center;gap:.8rem;padding:.8rem 1rem;border-top:1px solid var(--filet);text-decoration:none;color:inherit;font-size:.95rem;}
.city-row:first-child{border-top:0;}
.city-row:hover{background:var(--pierre);}
.city-row .cn{font-weight:600;color:var(--nuit);min-width:0;}
.city-row .cn small{font-weight:400;color:var(--encre-3);margin-left:.3rem;}
.zone-pill{font-size:.76rem;font-weight:600;padding:.2rem .55rem;border-radius:2px;white-space:nowrap;}
.zone-pill.b1{background:var(--emeraude-fond);color:var(--emeraude);}
.zone-pill.c{background:var(--pierre-2);color:var(--encre-2);}
.zone-pill.a{background:var(--alerte-fond);color:var(--alerte);}
.city-relance{padding:1rem;background:var(--pierre);border-top:1px solid var(--filet);}
.city-relance p{font-size:.92rem;color:var(--encre);}
.city-relance-actions{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-top:.7rem;}
.city-relance-reset{background:none;border:0;padding:0;font:inherit;font-size:.88rem;font-weight:600;color:var(--nuit);text-decoration:underline;cursor:pointer;}
.city-relance-cta{font-size:.88rem;font-weight:600;color:var(--nuit);}
.zones-note{font-size:.88rem;color:var(--encre-2);margin-top:1rem;}
.zones-note a{color:var(--nuit);}
.fr-map-card{border:1px solid var(--filet);border-radius:var(--r);padding:clamp(1rem,2.5vw,1.6rem);}
.fr-map-card svg{width:100%;height:auto;display:block;overflow:visible;}
.fr-outline{fill:var(--pierre);stroke:var(--filet-fort);stroke-width:.8;}
.fr-grid line{stroke:var(--pierre-2);}
.city-dot{cursor:pointer;outline:none;}
.city-dot circle{r:4;stroke:#fff;stroke-width:1.4;}
.city-dot.zone-b1 circle{fill:var(--emeraude);}
.city-dot.zone-c circle{fill:#9aa1ae;}
.city-dot:hover circle,.city-dot:focus-visible circle{r:6;}
.city-dot text{font-size:9px;fill:var(--encre-2);font-family:'IBM Plex Sans',sans-serif;}
.city-dot:hover text,.city-dot:focus-visible text{fill:var(--nuit);font-weight:600;}
.fr-office rect{fill:var(--nuit);}
.fr-office text{font-size:8px;fill:var(--nuit);font-family:'IBM Plex Sans',sans-serif;}
.map-legend{display:flex;flex-wrap:wrap;gap:1.1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--filet);}
.map-legend span{display:inline-flex;align-items:center;gap:.45rem;font-size:.82rem;color:var(--encre-2);}
.map-legend i{width:9px;height:9px;border-radius:50%;display:inline-block;}
.leg-b1{background:var(--emeraude);} .leg-c{background:#9aa1ae;}
.leg-office{background:var(--nuit)!important;border-radius:0!important;transform:rotate(45deg) scale(.8);}

/* ---------- Spécialité, équipe, avis ---------- */
.expertise{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,4rem);align-items:start;margin-top:clamp(3rem,6vw,4.5rem);padding-top:clamp(2.4rem,5vw,3.4rem);border-top:1px solid var(--filet);}
@media (max-width:960px){.expertise{grid-template-columns:minmax(0,1fr);}}
.expertise h2{font-size:clamp(1.7rem,3.2vw,2.3rem);}
.disp-card{border:1px solid var(--filet);border-radius:var(--r);padding:1.4rem;}
.disp-badge{font-size:.78rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--or);}
.disp-title{font-family:'Playfair Display',serif;font-size:1.5rem;color:var(--nuit);margin:.2rem 0 .6rem;}
.disp-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 0;border-top:1px solid var(--filet);}
.disp-row .dl{font-size:1rem;color:var(--encre);}
.disp-row .dl small{display:block;font-size:.84rem;color:var(--encre-3);}
.disp-row .dv{font-size:1rem;font-weight:600;color:var(--nuit);text-align:right;white-space:nowrap;}
.disp-foot{border-top:1px solid var(--filet);padding-top:.9rem;font-size:1rem;color:var(--encre);}
.disp-foot a{color:var(--nuit);}
.trust-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.2rem,3vw,2.4rem);margin-top:clamp(2.4rem,5vw,3.4rem);}
@media (max-width:800px){.trust-strip{grid-template-columns:minmax(0,1fr);}}
.trust-item{padding-top:1rem;border-top:2px solid var(--nuit);}
.trust-item h4{font-size:1.2rem;margin-bottom:.4rem;}
.trust-item p{color:var(--encre-2);font-size:.95rem;}
.trust-item a{color:var(--nuit);}
.guide-tabs{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.6rem;}
.gt-btn{background:#fff;border:1px solid var(--filet-fort);border-radius:var(--r);padding:.5rem .9rem;font-size:.88rem;color:var(--encre);cursor:pointer;}
.gt-btn small{color:var(--encre-3);margin-left:.3rem;}
.gt-btn:hover{border-color:var(--nuit);}
.gt-btn.is-on{background:var(--nuit);border-color:var(--nuit);color:#fff;}
.gt-btn.is-on small{color:#c9d1e0;}
.gp-dek{color:var(--encre-2);margin-bottom:1.2rem;max-width:44rem;}
.guide-foot{margin-top:1.2rem;font-size:.92rem;color:var(--encre-2);}
.guide-foot a{color:var(--nuit)!important;}
.guides-all{display:flex;justify-content:center;margin-top:2rem;}
.team-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.5fr);gap:clamp(2rem,5vw,4rem);align-items:start;}
@media (max-width:960px){.team-layout{grid-template-columns:minmax(0,1fr);}}
.team-layout .team-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
@media (max-width:480px){.team-layout .team-grid{grid-template-columns:minmax(0,1fr);}}
.team-addr{margin-top:1.4rem;font-size:.95rem;color:var(--encre-2);}
.team-addr b{color:var(--nuit);font-weight:600;}
.quotes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 2rem;}
@media (max-width:960px){.quotes{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:620px){.quotes{grid-template-columns:minmax(0,1fr);}}
.quote{padding:1.4rem 0 1.8rem;border-top:1px solid var(--filet-fort);display:flex;flex-direction:column;gap:.7rem;}
.stars{color:var(--or);font-size:.9rem;letter-spacing:.1em;}
.stars small{color:var(--encre-3)!important;letter-spacing:0;}
.quote-text{font-size:1rem;color:var(--encre);}
.quote-who{font-size:.86rem;color:var(--encre-3);margin-top:auto;}
.quote-who b{color:var(--nuit);font-weight:600;}
.faq-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,5vw,4.5rem);align-items:start;}
.faq-layout .sec-head{position:sticky;top:calc(var(--navh) + 24px);}
@media (max-width:860px){.faq-layout{grid-template-columns:minmax(0,1fr);}.faq-layout .sec-head{position:static;}}
#projets{background:var(--pierre);}
#projets .real-card{background:#fff;}
.in-hero .sticky-cta{transform:translateY(110%)!important;}
