:root{--bleu:#0f3d5e;--bleu-2:#16527c;--accent:#e8712b;--accent-2:#cf5f1d;--fond:#f5f7fa;--blanc:#fff;--texte:#1c2430;--muted:#5b6673;--ligne:#dfe5ec;--ok:#1f8a4c;--r:10px;--maxw:1120px}
*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--texte);background:var(--blanc)}
a{color:var(--bleu-2)}img{max-width:100%}
h1,h2,h3{line-height:1.2;color:var(--bleu);margin:0 0 .5em}h1{font-size:clamp(1.65rem,6.2vw,2.5rem);letter-spacing:-.02em}h2{font-size:clamp(1.35rem,3vw,1.8rem)}h3{font-size:1.1rem}
p{margin:0 0 1em}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 16px}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:99}
.muted{color:var(--muted)}.small{font-size:.9rem}.center{text-align:center}
.btn{display:inline-block;padding:13px 20px;border-radius:var(--r);font-weight:700;text-decoration:none;border:2px solid transparent;cursor:pointer;font-size:1rem;line-height:1.2;transition:background .15s,transform .05s}
.btn:active{transform:translateY(1px)}.btn-accent{background:var(--accent);color:#fff}.btn-accent:hover{background:var(--accent-2)}
.btn-ghost{background:#fff;color:var(--bleu);border-color:var(--bleu)}.btn-ghost:hover{background:var(--fond)}.btn-lg{padding:13px 26px;font-size:1.08rem}
.site-header{border-bottom:1px solid var(--ligne);background:#fff;position:sticky;top:0;z-index:20}
.site-header .wrap{display:flex;align-items:center;gap:12px;min-height:60px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--bleu);font-size:1rem;line-height:1.15}.logo strong{font-weight:800}
.logo-mark{width:28px;height:28px;border-radius:6px;background:var(--bleu);position:relative;flex:none}.logo-mark:before{content:"";position:absolute;inset:6px;background:linear-gradient(#fff,#fff) 0 0/45% 45% no-repeat,linear-gradient(#fff,#fff) 100% 0/45% 45% no-repeat,linear-gradient(#fff,#fff) 0 100%/45% 45% no-repeat,linear-gradient(var(--accent),var(--accent)) 100% 100%/45% 45% no-repeat}
.nav{display:none;gap:18px;margin-left:8px}.nav a{text-decoration:none;color:var(--texte);font-weight:600;font-size:.95rem;white-space:nowrap}.nav a:hover{color:var(--bleu-2)}
.header-cta{margin-left:auto;display:flex;gap:10px}.header-cta .btn{white-space:nowrap}.header-cta .tel{display:none}
.hero{background:linear-gradient(180deg,#eaf1f7 0%,#fff 100%);padding:36px 0 32px}.hero.compact{padding:28px 0}
.hero-grid{display:grid;gap:28px}.eyebrow{text-transform:uppercase;letter-spacing:.06em;font-size:.8rem;font-weight:700;color:var(--accent);margin-bottom:8px}
.lead{font-size:1.08rem;line-height:1.65;color:#2b3542}.cta-row{display:grid;gap:12px;margin:22px 0 12px}.cta-row .btn{text-align:center}
.proofs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.proofs li{background:#fff;border:1px solid var(--ligne);border-radius:var(--r);padding:12px;display:grid;gap:2px}
.proofs strong{color:var(--bleu);font-size:.95rem}.proofs span{color:var(--muted);font-size:.84rem}
.section{padding:48px 0}.section.alt{background:var(--fond)}.section h2{margin-bottom:18px}
.estimate-section{padding-top:28px}.estimate-card{max-width:760px;background:#fff;border:1px solid var(--ligne);border-radius:14px;padding:22px 18px}.estimate-subtitle,.estimate-aids{color:var(--muted)}.estimate-subtitle{margin-bottom:16px}.estimate-aids{font-size:.9rem;margin:16px 0}.estimate-prices{list-style:none;margin:0;padding:0}.estimate-prices li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start;padding:12px 0}.estimate-prices li+li{border-top:1px solid var(--ligne)}.estimate-prices strong{color:var(--bleu);text-align:right;white-space:nowrap}.estimate-cta{display:block;width:100%;text-align:center}
.cards{display:grid;gap:14px}.card{display:block;background:#fff;border:1px solid var(--ligne);border-radius:12px;padding:20px;text-decoration:none;color:var(--texte);transition:box-shadow .15s,border-color .15s}
.card:hover{border-color:var(--bleu-2);box-shadow:0 6px 20px rgba(15,61,94,.08)}.card p{color:var(--muted);margin:0 0 8px}.card .link{color:var(--accent);font-weight:700}
.how{list-style:none;padding:0;margin:0;display:grid;gap:14px;counter-reset:s}.how li{background:#fff;border:1px solid var(--ligne);border-radius:12px;padding:18px 18px 18px 62px;position:relative;display:grid;gap:4px}
.how li:before{counter-increment:s;content:counter(s);position:absolute;left:14px;top:14px;width:32px;height:32px;border-radius:50%;background:var(--bleu);color:#fff;font-weight:800;display:grid;place-items:center}.how span{color:var(--muted)}
.villes-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr;gap:10px}
.villes-grid a{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid var(--ligne);border-radius:10px;padding:14px 16px;min-height:48px;text-decoration:none;font-weight:600;color:var(--bleu)}.villes-grid a:hover{border-color:var(--bleu-2)}.villes-grid span{color:var(--muted);font-weight:400;font-size:.85rem}
.prose{max-width:760px}.prose p{font-size:1.02rem}.bullets{padding-left:20px;display:grid;gap:12px}
.faq{border:1px solid var(--ligne);border-radius:10px;padding:0 16px;margin-bottom:12px;background:#fff}.faq summary{cursor:pointer;font-weight:700;padding:14px 0;line-height:1.35;color:var(--bleu)}.faq p{margin:0 0 12px}
.crumbs{font-size:.88rem;color:var(--muted);padding-top:14px}.crumbs a{color:var(--muted)}
.form-section{padding:48px 0;background:var(--bleu);color:#fff}.form-section h2{color:#fff;margin-bottom:18px}.form-wrap{display:grid;gap:26px}
.form-intro .check{list-style:none;padding:0;margin:0 0 14px;display:grid;gap:6px}.form-intro .check li:before{content:"✓ ";color:#8fd3a8;font-weight:800}
.or{opacity:.9}.tel-inline{color:#fff;font-weight:800;text-decoration:none;font-size:1.15rem}
.lead-form{background:#fff;color:var(--texte);border-radius:16px;padding:22px 18px;box-shadow:0 12px 40px rgba(0,0,0,.18)}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.steps{display:flex;gap:6px;list-style:none;padding:0;margin:0 0 16px;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.steps li{flex:1;text-align:center;padding:6px 0;border-bottom:3px solid var(--ligne)}.steps li.on{color:var(--bleu);border-color:var(--accent);font-weight:700}
fieldset{border:0;padding:0;margin:0}legend{font-weight:800;font-size:1.15rem;color:var(--bleu);margin-bottom:12px}
.choices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.choice{display:block;cursor:pointer}.choice input{position:absolute;opacity:0}.choice span{display:block;border:2px solid var(--ligne);border-radius:10px;padding:14px 10px;text-align:center;font-weight:600;transition:border-color .1s,background .1s}
.choice input:checked+span{border-color:var(--accent);background:#fff4ec;color:var(--accent-2)}.choice input:focus-visible+span{outline:2px solid var(--bleu-2)}
.choice.small span{padding:14px 8px;font-size:.92rem;font-weight:500}
.row{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}.row .btn{flex:1}.step>.btn.next{width:100%;margin-top:6px}
.field{display:block;font-weight:600;margin-bottom:12px;font-size:.95rem}.field input,.field select,.field textarea{display:block;width:100%;margin-top:6px;padding:13px 12px;border:2px solid var(--ligne);border-radius:8px;font:inherit;font-size:1rem;font-weight:400}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--bleu-2)}
.consent{display:flex;gap:8px;align-items:flex-start;font-size:.88rem;color:var(--muted);margin:6px 0 10px}.consent input{margin-top:3px;flex:none}.consent span{flex:1}
.form-error{background:#fdecec;color:#a11;border-radius:8px;padding:10px 12px;font-weight:600}
.audit-section{background:#eaf1f7;padding:52px 0;scroll-margin-top:60px}.audit-intro{text-align:center;max-width:760px;margin:0 auto 26px}.audit-intro p{color:var(--muted);margin-bottom:0}.audit-card{max-width:720px;margin:0 auto;background:#fff;border-radius:16px;padding:22px 18px;box-shadow:0 10px 30px rgba(15,61,94,.1)}.audit-form .steps{font-size:.65rem;letter-spacing:0;text-transform:none;gap:3px}.audit-quantity{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}.audit-preview{background:var(--fond);border-radius:12px;padding:18px;margin:0 0 18px}.audit-preview p:last-child{margin-bottom:0}.audit-blurred{display:inline-block;filter:blur(6px);user-select:none;-webkit-user-select:none;pointer-events:none}.audit-result h3{font-size:1.25rem}.audit-result-points{display:grid;gap:10px;padding-left:20px}.audit-result-price{display:block;color:var(--accent);font-size:1.3rem;margin-top:6px}
.site-footer{background:#0b2b42;color:#c9d6e2;padding:40px 0 96px;font-size:.93rem}.site-footer a{color:#fff}.foot-grid{display:grid;gap:22px}.foot-title{color:#fff;font-weight:800;margin-bottom:8px}
.foot-list{list-style:none;padding:0;margin:0;display:grid;gap:5px}.foot-legal{border-top:1px solid #1e4a6a;margin-top:24px;padding-top:14px;color:#9fb1c1}.site-footer .muted{color:#9fb1c1}
.callbar{position:fixed;left:0;right:0;bottom:0;display:flex;gap:10px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--ligne);box-shadow:0 -6px 20px rgba(0,0,0,.08);z-index:30}.callbar .btn{flex:1;text-align:center}
@media(min-width:480px){.villes-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:768px){.hero-grid{grid-template-columns:1.25fr 1fr;align-items:start}.cta-row{display:flex;flex-wrap:wrap}.proofs{grid-template-columns:1fr}.proofs li{padding:12px 14px}.proofs strong{font-size:1rem}.proofs span{font-size:.93rem}.estimate-cta{display:inline-block;width:auto}.villes-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.cards{grid-template-columns:repeat(2,1fr)}.how{grid-template-columns:repeat(3,1fr)}.form-wrap{grid-template-columns:1fr 1.1fr;align-items:start}.foot-grid{grid-template-columns:2fr 1fr 1fr}.callbar{display:none}.site-footer{padding-bottom:36px}.header-cta .tel{display:inline-block}}
@media(min-width:1100px){.audit-section{padding:64px 0}}
@media(min-width:1100px){.nav{display:flex}.cards{grid-template-columns:repeat(4,1fr)}.hero{padding:56px 0 40px}}
