/* Feuille commune aux pages villes (pages statiques hors application React). */
@font-face{font-family:'DM Sans';font-weight:400 700;font-display:swap;src:url('fonts/dmsans-latin.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-weight:400 800;font-display:swap;src:url('fonts/manrope-latin.woff2') format('woff2')}
:root{--brand:#05254e;--blue:#087df0;--pale:#eef6ff;--muted:#5d7290;--line:#e3ebf3;--marge:clamp(20px,5vw,105px);--rythme:clamp(52px,7vw,88px)}
*{box-sizing:border-box}
body{margin:0;min-width:320px;font-family:"DM Sans",sans-serif;color:#102b50;background:#fff;line-height:1.6}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:Manrope,sans-serif;color:var(--brand);letter-spacing:-.035em;margin:0}
.header{height:94px;padding:0 var(--marge);display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fffffff2;position:sticky;top:0;z-index:30;box-shadow:0 4px 24px #08264b0a;backdrop-filter:blur(16px)}
.brand img{width:200px;height:auto;display:block}
.header-actions{display:flex;align-items:center;gap:22px}
.phone{display:flex;flex-direction:column;font-weight:700;font-size:15px;line-height:1.3}
.phone small{font-weight:400;font-size:12px;color:var(--muted)}
.btn{border:0;border-radius:9px;padding:15px 22px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font:700 15px "DM Sans",sans-serif;cursor:pointer;transition:transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 9px 22px #05254e2b}
.btn-primary{background:var(--brand);color:#fff}
.btn-outline{border:1.5px solid var(--brand);color:var(--brand);background:#fff}
.btn svg{width:18px;height:18px}
.hero{background:linear-gradient(180deg,#f2f8ff,#fff);padding:var(--rythme) var(--marge) calc(var(--rythme)*.8)}
.fil{font-size:13px;color:var(--muted);margin-bottom:22px}
.fil a{text-decoration:underline}
.eyebrow{display:inline-block;padding:7px 13px;border-radius:30px;background:#dfefff;color:#0b63c4;font-size:12px;font-weight:800;letter-spacing:.055em}
.hero h1{font-size:clamp(34px,5vw,60px);line-height:1.06;letter-spacing:-.05em;margin:20px 0 16px;max-width:820px}
.hero h1 em{color:var(--blue);font-style:normal}
.hero p.lead{font-size:clamp(16px,1.6vw,18px);color:#344f70;max-width:680px;margin:0}
.actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}
.atouts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:44px;max-width:860px}
.atouts div{display:flex;gap:12px;align-items:center;min-width:0}
.atouts b,.atouts small{display:block}
.atouts b{font-size:14px}
.atouts small{font-size:12px;color:var(--muted)}
.icone{width:46px;height:46px;border-radius:50%;background:#e0f0ff;color:var(--brand);display:grid;place-items:center;flex:none}
.icone svg{width:22px;height:22px}
.section{padding:var(--rythme) var(--marge)}
.section.pale{background:#f7faff}
.section h2{font-size:clamp(27px,3vw,40px);line-height:1.15;margin-bottom:14px}
.intro{max-width:760px}
.intro p{color:#344f70;margin:0 0 14px}
.cartes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:30px}
.carte{border:1px solid var(--line);border-radius:14px;padding:24px;background:#fff}
.carte .icone{border-radius:13px;margin-bottom:16px}
.carte h3{font-size:17px;margin-bottom:8px}
.carte p{font-size:14px;color:var(--muted);margin:0}
.puces{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;padding:0;list-style:none}
.puces li{padding:9px 15px;border-radius:30px;background:#fff;border:1px solid var(--line);font-size:14px;font-weight:600}
.etapes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;margin:30px 0 0;padding:0;list-style:none;counter-reset:e}
.etapes li{counter-increment:e}
.etapes li:before{content:"0" counter(e);display:block;font:800 12px Manrope,sans-serif;color:var(--blue);letter-spacing:.12em;margin-bottom:8px}
.etapes b{display:block;font-size:15px;margin-bottom:4px}
.etapes span{font-size:13px;color:var(--muted)}
.faq{max-width:820px;margin-top:26px}
.faq details{border-bottom:1px solid var(--line);padding:18px 0}
.faq summary{cursor:pointer;font-weight:700;font-size:16px;color:var(--brand);list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";font-size:22px;line-height:1;color:var(--blue)}
.faq details[open] summary:after{content:"–"}
.faq p{margin:12px 0 0;color:#344f70}
.cta{background:var(--brand);color:#fff;padding:var(--rythme) var(--marge);text-align:center}
.cta h2{color:#fff;font-size:clamp(28px,4vw,48px);margin-bottom:12px}
.cta p{color:#c9d7e8;margin:0 auto;max-width:600px}
.cta .actions{justify-content:center}
.cta .btn-primary{background:#fff;color:var(--brand)}
.cta .btn-outline{background:transparent;color:#fff;border-color:#ffffff85}
.villes{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:16px}
.villes a{color:var(--blue);font-weight:700}
.footer{background:#071f3d;color:#b9c8d9;padding:44px var(--marge) 24px;font-size:13px}
.footer-haut{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;padding-bottom:26px;border-bottom:1px solid #ffffff20}
.footer img{width:190px;height:auto;display:block}
.footer-contact{display:flex;flex-direction:column;gap:6px}
.footer-contact a:hover,.footer-bas a:hover{color:#fff}
.footer-bas{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;padding-top:18px;font-size:12px;color:#91a7c0}
.call-bar{display:none}
@media(max-width:1000px){.cartes{grid-template-columns:repeat(2,minmax(0,1fr))}.etapes{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.header{height:76px}.brand img{width:150px}.phone{display:none}.header .btn{padding:11px 13px;font-size:13px}}
@media(max-width:620px){.atouts{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.atouts div{flex-direction:column;align-items:flex-start;gap:8px}.atouts b{font-size:12px}.atouts small{font-size:11px;line-height:1.35}.icone{width:40px;height:40px}.actions{display:grid}.actions .btn{width:100%}.cartes{grid-template-columns:1fr}.etapes{grid-template-columns:1fr 1fr}.call-bar{position:fixed;z-index:40;left:12px;right:12px;bottom:12px;display:flex;align-items:center;justify-content:center;gap:9px;min-height:52px;border-radius:12px;background:var(--brand);color:#fff;font-weight:800;font-size:15px;box-shadow:0 10px 30px #05254e40}.call-bar svg{width:18px}.footer{padding-bottom:84px}}
@media(max-width:400px){.brand img{width:124px}.header{padding:0 12px}.header .btn{font-size:12px;padding:10px 11px}}
.wa{position:fixed;z-index:41;right:22px;bottom:22px;width:58px;height:58px;border-radius:50%;background:#25d366;color:#fff;display:grid;place-items:center;box-shadow:0 10px 28px #0b3d2240;transition:transform .2s}.wa:hover{transform:scale(1.06)}.wa svg{width:30px;height:30px}
@media(max-width:620px){.wa{right:12px;bottom:12px;width:52px;height:52px;border-radius:12px}.wa svg{width:27px;height:27px}.call-bar{right:72px}}
/* Blog */
.article{max-width:780px;margin:0 auto;padding:clamp(28px,4vw,48px) var(--marge) var(--rythme)}
.article .fil{margin-bottom:18px}
.article h1{font-size:clamp(30px,4.4vw,48px);line-height:1.1;letter-spacing:-.045em;margin:14px 0 26px}
.article h2{font-size:clamp(22px,2.4vw,28px);line-height:1.2;margin:42px 0 12px}
.article h3{font-size:18px;margin:26px 0 8px}
.article p,.article li{font-size:16.5px;color:#2c4766;line-height:1.7}
.article ul,.article ol{padding-left:22px}
.article li{margin-bottom:6px}
.article strong{color:var(--brand)}
.article a{color:var(--blue);text-decoration:underline}
.eco-calc,.info-box,.warning-box,.legal-card,.compare-card,.checklist{border:1px solid var(--line);border-radius:14px;padding:20px 22px;margin:22px 0;background:#f7faff}
.eco-calc h3,.legal-card h3,.compare-card h3,.checklist h3{margin-top:0}
.eco-row{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--line);font-size:15px}
.eco-row:last-child{border:0}
.val-eco{font-weight:700;color:var(--brand);white-space:nowrap}
.eco-row.highlight{font-weight:800;color:var(--brand)}
.info-box{border-left:4px solid var(--blue)}
.warning-box{border-left:4px solid #e8a33d;background:#fdf6e9}
.stat-grid,.compare-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin:22px 0}
.stat-card{border:1px solid var(--line);border-radius:14px;padding:18px;text-align:center}
.stat-num{display:block;font:800 34px Manrope,sans-serif;color:var(--brand)}
.stat-card p{font-size:14px;margin:6px 0 0}
.compare-card{margin:0}
.check-item{display:flex;gap:10px;align-items:center;padding:7px 0;font-size:15px}
.check-item span{width:18px;height:18px;border-radius:5px;border:2px solid var(--blue);flex:none}
.cartes-blog{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;margin-top:30px}
.carte-blog{display:flex;flex-direction:column;gap:10px;border:1px solid var(--line);border-radius:14px;padding:24px;background:#fff;transition:transform .2s,box-shadow .2s}
.carte-blog:hover{transform:translateY(-3px);box-shadow:0 12px 30px #092c5512}
.carte-blog .cat{font-size:12px;font-weight:800;letter-spacing:.06em;color:#0b63c4;text-transform:uppercase}
.carte-blog h2,.carte-blog h3{font-size:19px;line-height:1.25;margin:0}
.carte-blog p{font-size:14px;color:var(--muted);margin:0}
.carte-blog .lire{margin-top:auto;font-weight:700;color:var(--blue);font-size:14px}
/* Animations */
.apparition{opacity:0;transform:translateY(22px);transition:opacity .7s ease var(--delai,0s),transform .8s cubic-bezier(.2,.7,.2,1) var(--delai,0s)}
.apparition.visible{opacity:1;transform:none}
@keyframes monter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes surgir{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
.hero>*,.article>.fil,.article>.eyebrow,.article>h1{animation:monter .8s cubic-bezier(.2,.7,.2,1) both}
.hero>:nth-child(2),.article>.eyebrow{animation-delay:.08s}.hero>:nth-child(3),.article>h1{animation-delay:.16s}.hero>:nth-child(4){animation-delay:.24s}.hero>:nth-child(5){animation-delay:.32s}.hero>:nth-child(6){animation-delay:.4s}
.wa{animation:surgir .5s 1.2s cubic-bezier(.3,1.6,.5,1) both}
.btn svg{transition:transform .25s}.btn:hover svg{transform:translateX(3px)}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
/* Touches tricolores, en écho au trait du logo */
.header{border-bottom:3px solid transparent;border-image:linear-gradient(90deg,#0055a4 0 33.34%,#e3e9f0 0 66.67%,#ef4135 0) 1}
.tricolore{display:flex;gap:5px;margin:14px 0 16px}.tricolore i{width:22px;height:3px;border-radius:2px;background:#0055a4}.tricolore i:nth-child(2){background:#e3e9f0}.tricolore i:nth-child(3){background:#ef4135}
.trust-card .tricolore i:first-child,.contact-hero .tricolore i:first-child,.cta .tricolore i:first-child{background:#3a86e0}.trust-card .tricolore i:nth-child(2),.contact-hero .tricolore i:nth-child(2),.cta .tricolore i:nth-child(2){background:#fff}
.cta .tricolore{justify-content:center}
.drapeau-mention{display:inline-flex;align-items:center;gap:8px;color:#c9d7e8}.drapeau{display:inline-flex;width:15px;height:10px;border-radius:2px;overflow:hidden;flex:none}.drapeau i{flex:1;background:#0055a4}.drapeau i:nth-child(2){background:#fff}.drapeau i:nth-child(3){background:#ef4135}
