/* Solutions Aides Énergie — feuille de style v15 (esprit Apple : épuré, aéré, police système) */
[hidden]{display:none!important}
:root{--ink:#1d1d1f;--ink2:#3a3a3f;--muted:#5e5e63;--line:#e6e6ea;--bg:#fbfbfd;--card:#fff;--blue:#0071e3;--blue-h:#0077ed;--blue2:#2997ff;--green:#1a7f45;--green-bg:#e8f6ee;--orange:#ff9f0a;--navy:#0a1f44;--star:#f5a623;--radius:24px;--shadow:0 1px 2px rgba(0,0,0,.04),0 12px 32px rgba(0,0,0,.06)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue",Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;line-height:1.5;overflow-x:hidden}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}
img{display:block;max-width:100%;height:auto}
.wrap{width:min(1180px,calc(100% - 40px));margin:0 auto}
.narrow{width:min(820px,calc(100% - 40px));margin:0 auto}
:focus-visible{outline:3px solid var(--blue2);outline-offset:3px;border-radius:8px}
.skip{position:absolute;left:-999px;top:8px;z-index:100;background:#fff;padding:10px 16px;border-radius:12px;box-shadow:var(--shadow)}
.skip:focus{left:12px}
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.todo{display:inline-block;padding:1px 8px;border-radius:6px;background:#fff4d6;color:#7a4b00;font-weight:600;font-size:.92em;border:1px dashed #e0a100}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 24px;border-radius:999px;font-weight:600;font-size:16px;line-height:1.1;border:0;cursor:pointer;text-decoration:none!important;transition:transform .2s,box-shadow .2s,background .2s,color .2s;font-family:inherit;white-space:nowrap}
.btn.primary{background:var(--blue);color:#fff;box-shadow:0 8px 24px rgba(0,113,227,.28)}
.btn.primary:hover{background:var(--blue-h);transform:translateY(-1px);box-shadow:0 12px 30px rgba(0,113,227,.36)}
.btn.secondary{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 1.5px #d2d2d7}
.btn.secondary:hover{box-shadow:inset 0 0 0 1.5px var(--ink2)}
.btn.light{background:#fff;color:var(--blue)}
.btn.outline-light{background:rgba(255,255,255,.1);color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.55)}
.btn.outline-light:hover{background:rgba(255,255,255,.18)}
.btn.lg{min-height:56px;padding:0 30px;font-size:17px}
.btn.sm{min-height:44px;padding:0 18px;font-size:15px;box-shadow:none}
.btn svg{width:18px;height:18px;flex-shrink:0}
.cta{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.cta-row{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:44px}

/* Navigation */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(251,251,253,.78);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);transition:box-shadow .3s}
.nav.scrolled{box-shadow:0 1px 0 rgba(0,0,0,.08)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;height:68px}
.brand{display:flex;align-items:center;flex-shrink:0;min-height:44px}
.brand img{height:40px;width:auto}
.nav-links{display:flex;align-items:center;gap:22px;font-size:14px}
.nav-links a:not(.btn){color:var(--ink2);padding:12px 0}
.nav-links a:not(.btn):hover{color:var(--blue);text-decoration:none}
.nav-actions{display:flex;gap:8px;align-items:center}

/* Hero */
.hero{position:relative;padding:150px 0 40px;text-align:center;overflow:hidden}
.hero::before{content:"";position:absolute;inset:-10% -10% auto;height:900px;background:radial-gradient(40% 45% at 50% 30%,rgba(41,151,255,.20),transparent 70%),radial-gradient(25% 30% at 78% 18%,rgba(52,199,89,.14),transparent 70%),radial-gradient(22% 26% at 20% 22%,rgba(255,159,10,.10),transparent 70%);z-index:-1}
.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:7px 15px;border-radius:20px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.06),0 0 0 1px rgba(0,0,0,.04);font-size:13px;font-weight:600;color:var(--ink2)}
.eyebrow i{width:8px;height:8px;border-radius:4px;background:#34c759;box-shadow:0 0 0 4px rgba(52,199,89,.18);animation:pulse 2.4s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 7px rgba(52,199,89,0)}}
h1{font-size:clamp(34px,6.2vw,76px);line-height:1.04;letter-spacing:-.037em;margin:22px auto 20px;max-width:1100px;font-weight:700}
.grad{background:linear-gradient(100deg,var(--blue) 10%,#1f9d57 70%);-webkit-background-clip:text;background-clip:text;color:transparent}
.lead{font-size:clamp(17px,2vw,21px);color:var(--muted);max-width:700px;margin:0 auto 32px}
.assure{list-style:none;padding:0;margin:34px auto 0;display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
.assure li{display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;background:#fff;box-shadow:var(--shadow);font-size:15px;font-weight:600;color:var(--ink2)}
.tick{flex-shrink:0;width:22px;height:22px;border-radius:11px;background:var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center/13px no-repeat}
.fine{font-size:13px;color:var(--muted);max-width:720px;margin:18px auto 0}

/* Sections */
section{scroll-margin-top:76px}
.sec{padding:120px 0 0}
.sec-head{text-align:center;max-width:780px;margin:0 auto 54px}
.kicker{font-size:14px;font-weight:700;color:var(--blue);letter-spacing:.02em;text-transform:none}
h2{font-size:clamp(32px,4.6vw,56px);line-height:1.07;letter-spacing:-.032em;margin:10px 0 14px;font-weight:700}
.sec-head p{font-size:clamp(17px,1.9vw,20px);color:var(--muted);margin:0}
h3{letter-spacing:-.015em}

/* Avant / Après */
.compare{position:relative;max-width:1080px;margin:0 auto;border-radius:28px;overflow:hidden;box-shadow:0 40px 90px rgba(0,30,80,.18),0 0 0 1px rgba(0,0,0,.05);aspect-ratio:3/2;background:#ddd;touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:ew-resize;--pos:50%}
.compare img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.compare .after{clip-path:inset(0 0 0 var(--pos))}
.compare .tag{position:absolute;top:18px;padding:7px 14px;border-radius:999px;font-size:14px;font-weight:700;background:rgba(0,0,0,.55);color:#fff;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);pointer-events:none}
.compare .tag.l{left:18px}.compare .tag.r{right:18px;background:rgba(255,255,255,.85);color:var(--ink)}
.compare .bar{position:absolute;top:0;bottom:0;left:var(--pos);width:3px;margin-left:-1.5px;background:#fff;box-shadow:0 0 12px rgba(0,0,0,.3);pointer-events:none}
.compare .knob{position:absolute;top:50%;left:var(--pos);width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.25);display:flex;align-items:center;justify-content:center;pointer-events:none;color:var(--ink)}
.compare .knob svg{width:26px;height:26px}
.compare input[type=range]{position:absolute;inset:auto 0 0 0;width:100%;height:1px;opacity:0;margin:0}
.compare:has(input:focus-visible) .knob{outline:3px solid var(--blue2);outline-offset:3px}
.compare .illu{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);padding:5px 12px;border-radius:999px;background:rgba(255,255,255,.85);color:var(--ink2);font-size:12px;font-weight:600;pointer-events:none}
.compare-cap{text-align:center;color:var(--muted);font-size:14px;margin:16px auto 0;max-width:680px}
.gains{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:1080px;margin:36px auto 0}
.gain{padding:24px;border-radius:22px;background:#fff;box-shadow:var(--shadow)}
.gain b{display:block;font-size:19px;margin-bottom:4px;letter-spacing:-.015em}
.gain span{color:var(--muted);font-size:15px}

/* Méthode */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:s}
.step{position:relative;padding:30px 26px;border-radius:var(--radius);background:#fff;box-shadow:var(--shadow);transition:transform .3s,box-shadow .3s}
.step:hover{transform:translateY(-4px);box-shadow:0 20px 48px rgba(0,0,0,.09)}
.step .n{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;color:#fff;margin-bottom:18px;background:linear-gradient(135deg,#2997ff,#0058d0)}
.step:nth-child(2) .n{background:linear-gradient(135deg,#7b61ff,#5b3fd6)}
.step:nth-child(3) .n{background:linear-gradient(135deg,#ff9f0a,#e06f00)}
.step:nth-child(4) .n{background:linear-gradient(135deg,#34c759,#1a8a44)}
.step h3{margin:0 0 8px;font-size:20px}
.step p{margin:0;color:var(--muted);font-size:15px}
.step small{display:block;margin-top:14px;font-size:13px;font-weight:600;color:var(--ink2)}

/* Bureau d'études */
.study{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding:64px;border-radius:36px;background:linear-gradient(135deg,#eef5ff,#f1faf4)}
.study p.big{font-size:19px;color:var(--ink2);margin:0}
.checks{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:14px}
.checks li{display:flex;gap:12px;align-items:flex-start;font-size:16px;color:var(--ink2)}
.checks li .tick{margin-top:1px;background-color:var(--blue)}
.panel{padding:30px;border-radius:26px;background:#fff;box-shadow:0 30px 70px rgba(0,30,80,.14)}
.panel h3{margin:0 0 16px;font-size:18px}
.panel dl{margin:0;display:grid;gap:0}
.panel .row{display:flex;justify-content:space-between;gap:12px;padding:13px 0;border-top:1px solid var(--line);font-size:15px}
.panel .row:first-child{border-top:0}
.panel dt{color:var(--muted)}.panel dd{margin:0;font-weight:600;text-align:right}
.panel .total{margin-top:6px;padding:16px;border-radius:16px;background:var(--green-bg);display:flex;justify-content:space-between;align-items:center;font-weight:700;color:#115c32}
.panel .hint{margin:12px 0 0;font-size:12.5px;color:var(--muted)}

/* Boutique */
.shop{display:grid;grid-template-columns:1.1fr .9fr;gap:22px;align-items:stretch}
.shop-photo{position:relative;border-radius:28px;overflow:hidden;background:#e9eef4;box-shadow:var(--shadow);min-height:320px}
.shop-photo img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.shop-photo .illu{position:absolute;left:16px;bottom:16px;padding:5px 12px;border-radius:999px;background:rgba(255,255,255,.9);font-size:12px;font-weight:600;color:var(--ink2)}
.shop-info{padding:36px;border-radius:28px;background:#fff;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:18px}
.shop-info h3{margin:0;font-size:26px}
.shop-info p{margin:0;color:var(--muted)}
.info-line{display:flex;gap:14px;align-items:flex-start}
.info-line .ic{width:44px;height:44px;border-radius:13px;background:#f2f2f7;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--ink2)}
.info-line .ic svg{width:21px;height:21px}
.info-line b{display:block;font-size:15px}
.info-line span{color:var(--muted);font-size:15px}
.shop-info .cta{justify-content:flex-start;margin-top:auto}

/* Équipe */
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;max-width:1080px;margin:0 auto}
.member{padding:30px 22px 26px;border-radius:var(--radius);background:#fff;box-shadow:var(--shadow);text-align:center}
.avatar{position:relative;width:180px;height:180px;margin:0 auto 20px;border-radius:48px;box-shadow:0 14px 34px rgba(0,30,80,.14);overflow:hidden;background:linear-gradient(145deg,#e8eef6,#dfe6ee);display:flex;align-items:center;justify-content:center}
.avatar.initials{background:linear-gradient(145deg,#2997ff,#0058d0);color:#fff;font-size:40px;font-weight:700;letter-spacing:-.02em}
.avatar svg{width:72%;height:72%;margin-top:22%;color:#b7c2cf}
.avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.member b{display:block;font-size:19px;letter-spacing:-.01em}
.member span{display:block;color:var(--muted);font-size:15.5px;margin-top:4px;line-height:1.4}

/* Avis */
.reviews{display:grid;grid-template-columns:340px 1fr;gap:22px;align-items:start}
.summary{position:sticky;top:92px;padding:30px;border-radius:26px;background:#fff;box-shadow:var(--shadow);text-align:center}
.summary .score{font-size:64px;font-weight:700;letter-spacing:-.04em;line-height:1}
.summary .count{color:var(--muted);font-size:15px;margin:8px 0 22px}
.stars{display:inline-flex;gap:3px;color:var(--star);font-size:0}
.stars svg{width:22px;height:22px}
.stars .off{color:#d8d8de}
.summary .stars svg{width:28px;height:28px}
.summary .btn{width:100%}
.summary .mini{margin:16px 0 0;font-size:13px;color:var(--muted)}
.list{display:grid;gap:14px}
.review{padding:24px 26px;border-radius:22px;background:#fff;box-shadow:var(--shadow)}
.review .top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.review .who{font-weight:700}
.review .meta{font-size:13.5px;color:var(--muted)}
.review p{margin:12px 0 0;white-space:pre-line;color:var(--ink2)}
.review .reply{margin-top:16px;padding:14px 16px;border-radius:14px;background:#f5f5f7;font-size:15px}
.review .reply b{display:block;font-size:13px;color:var(--ink2);margin-bottom:4px}
.review .reply p{margin:0}
.empty{padding:56px 30px;border-radius:26px;background:#fff;box-shadow:var(--shadow);text-align:center}
.empty .ico{width:64px;height:64px;margin:0 auto 18px;border-radius:20px;background:#fff6e5;display:flex;align-items:center;justify-content:center;color:var(--star)}
.empty .ico svg{width:34px;height:34px}
.empty h3{margin:0 0 8px;font-size:24px}
.empty p{margin:0 auto 22px;color:var(--muted);max-width:440px}
.form-card{margin-top:22px;padding:32px;border-radius:26px;background:#fff;box-shadow:var(--shadow)}
.form-card h3{margin:0 0 4px;font-size:24px}
.form-card>p{margin:0 0 22px;color:var(--muted);font-size:15px}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:flex;flex-direction:column;gap:6px}
.field.full{grid-column:1/-1}
.field label,.field legend{font-size:14px;font-weight:600;color:var(--ink2);padding:0}
.field .opt{font-weight:400;color:var(--muted)}
input[type=text],input[type=email],select,textarea{font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1.5px solid #d2d2d7;border-radius:14px;padding:12px 14px;min-height:48px;width:100%;transition:border-color .2s,box-shadow .2s}
textarea{min-height:140px;resize:vertical;line-height:1.5}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(0,113,227,.15)}
.field .help{font-size:12.5px;color:var(--muted);display:flex;justify-content:space-between;gap:8px}
.duo{display:flex;gap:10px}
fieldset{border:0;margin:0;padding:0;min-width:0}
.rate{display:inline-flex;flex-direction:row-reverse;justify-content:flex-end;gap:4px}
.rate input{position:absolute;opacity:0;width:1px;height:1px}
.rate label{cursor:pointer;width:46px;height:46px;display:flex;align-items:center;justify-content:center;border-radius:12px;color:#d0d0d6;transition:color .15s,transform .15s}
.rate label svg{width:34px;height:34px}
.rate label:hover,.rate label:hover~label,.rate input:checked~label{color:var(--star)}
.rate input:focus-visible+label{outline:3px solid var(--blue2);outline-offset:1px}
.rate label:active{transform:scale(.92)}
.consent{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:var(--ink2);cursor:pointer}
.consent input{width:22px;height:22px;margin:1px 0 0;flex-shrink:0;accent-color:var(--blue)}
.hp{position:absolute!important;left:-5000px!important;width:1px;height:1px;overflow:hidden}
.form-foot{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:22px}
.status{font-size:15px;font-weight:600}
.status.ok{color:var(--green)}.status.err{color:#b3261e}
.legal-box{margin-top:22px;padding:24px 26px;border-radius:22px;background:#f5f5f7;font-size:14px;color:var(--ink2)}
.legal-box h3{margin:0 0 8px;font-size:16px}
.legal-box ul{margin:8px 0;padding-left:20px}
.legal-box p{margin:8px 0}

.reviews.none{grid-template-columns:1fr;max-width:820px;margin:0 auto}.reviews.none .summary{display:none}
/* FAQ */
.faq{display:grid;gap:12px}
.faq>details{border-radius:20px;background:#fff;box-shadow:var(--shadow);overflow:hidden}
.faq>details>summary{list-style:none;cursor:pointer;padding:22px 60px 22px 26px;font-weight:600;font-size:17.5px;position:relative;min-height:44px}
.faq>details>summary::-webkit-details-marker{display:none}
.faq>details>summary::after{content:"";position:absolute;right:24px;top:50%;width:12px;height:12px;margin-top:-8px;border-right:2.5px solid var(--muted);border-bottom:2.5px solid var(--muted);transform:rotate(45deg);transition:transform .25s}
.faq>details[open]>summary::after{transform:rotate(225deg);margin-top:-2px}
.faq .a{padding:0 26px 24px;color:var(--ink2)}
.faq .a p{margin:0 0 10px}

/* Bandeau final */
.final{margin:120px 0 0;padding:90px 30px;border-radius:36px;text-align:center;color:#fff;background:radial-gradient(60% 80% at 20% 0%,#2997ff 0,transparent 60%),radial-gradient(50% 70% at 90% 100%,rgba(52,199,89,.45) 0,transparent 60%),var(--navy);overflow:hidden}
.final h2{color:#fff}
.final p{color:#d3def5;font-size:19px;margin:0 auto 30px;max-width:620px}
.final .who{display:inline-flex;align-items:center;gap:12px;margin-top:30px;padding:10px 18px 10px 10px;border-radius:999px;background:rgba(255,255,255,.1);font-size:14.5px;color:#e6edfb}
.final .who i{width:40px;height:40px;border-radius:20px;background:#fff;color:var(--blue);font-style:normal;font-weight:700;display:flex;align-items:center;justify-content:center}
.final a.plain{color:#fff;text-decoration:underline}

/* Pied de page */
footer{padding:64px 0 40px;color:var(--muted);font-size:14px}
.foot{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:30px;border-top:1px solid var(--line);padding-top:36px}
.foot img{height:36px;width:auto;margin-bottom:12px}
.foot h4{margin:0 0 10px;color:var(--ink);font-size:14px}
.foot ul{list-style:none;padding:0;margin:0;display:grid;gap:4px}
.foot a{color:var(--ink2);display:inline-block;padding:6px 0}
.foot a:hover{color:var(--blue)}
.foot p{margin:0 0 6px}
.copy{margin-top:30px;font-size:12.5px}


/* Burger + menu mobile */
.burger{display:none;width:48px;height:48px;border:0;border-radius:14px;background:transparent;cursor:pointer;padding:0;position:relative;flex-shrink:0}
.burger span{position:absolute;left:13px;right:13px;height:2.4px;border-radius:2px;background:var(--ink);transition:transform .25s,opacity .2s}
.burger span:nth-child(1){top:16px}.burger span:nth-child(2){top:23px}.burger span:nth-child(3){top:30px}
.burger[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded=true] span:nth-child(2){opacity:0}
.burger[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.menu{position:fixed;inset:68px 0 0;z-index:70;background:rgba(251,251,253,.97);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);overflow-y:auto;padding:12px 20px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:18px}
.menu[hidden]{display:none}
.menu nav{display:flex;flex-direction:column}
.menu nav a{display:flex;align-items:center;min-height:54px;font-size:20px;font-weight:600;color:var(--ink);border-bottom:1px solid var(--line);letter-spacing:-.01em}
.menu nav a:hover{text-decoration:none;color:var(--blue)}
.menu-cta{display:grid;gap:10px}
.menu-cta .btn{width:100%}
.menu-cta p{margin:6px 0 0;text-align:center;font-size:16px;color:var(--muted)}
html.menu-open,html.menu-open body{overflow:hidden}
html.menu-open .nav{background:#fbfbfd;box-shadow:0 1px 0 rgba(0,0,0,.08)}
.final .who img{width:40px;height:40px;border-radius:20px;object-fit:cover}

/* Badges de confiance */
.trust{padding:34px 0 0}
.badges{list-style:none;margin:0 auto;padding:0;display:grid;grid-template-columns:repeat(6,auto);justify-content:center;gap:10px}
.badges li{display:flex;align-items:center;gap:9px;padding:10px 16px;border-radius:14px;background:#fff;box-shadow:0 0 0 1px var(--line);font-size:15px;font-weight:600;color:var(--ink2);white-space:nowrap}
.badges svg{width:20px;height:20px;color:var(--green);flex-shrink:0}
.badges img{width:28px;height:28px;object-fit:contain}


/* Groupe / partenaires */
.group{display:grid;grid-template-columns:280px 1fr;gap:56px;align-items:center;max-width:1000px;margin:0 auto 40px}
.group-logo{background:#fff;border-radius:32px;box-shadow:var(--shadow);padding:26px;display:flex;justify-content:center}
.group-logo img{width:100%;max-width:230px;height:auto}
.group p.big,.press p.big{font-size:19px;color:var(--ink2);margin:0}
.offices{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:1080px;margin:0 auto}
.office{padding:28px;border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}
.office .mono{display:inline-flex;align-items:center;justify-content:center;min-width:52px;height:40px;padding:0 10px;border-radius:12px;background:#eef3fb;color:#0b3b5c;font-weight:700;font-size:14px;letter-spacing:.04em;margin-bottom:16px}
.office h3{margin:0 0 6px;font-size:20px}
.office p{margin:0;color:var(--muted);font-size:16px}

/* Horaires */
.hours{margin:4px 0 0;display:grid;gap:2px;font-size:15px}
.hours div{display:flex;justify-content:space-between;gap:16px;min-width:220px}
.hours dt{color:var(--muted)}.hours dd{margin:0;font-weight:600;color:var(--ink2)}

/* Presse */
.press{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center}
.press figure{margin:0}
.press figure img{width:100%;border-radius:28px;box-shadow:0 30px 70px rgba(0,30,80,.16);aspect-ratio:1320/1080;object-fit:cover}
.press figcaption{margin-top:12px;font-size:15px;color:var(--muted);text-align:center}
.press-text p{color:var(--ink2);font-size:17px;margin:0 0 14px}
.press-text p.big{margin-bottom:14px}
.press-text .source{font-size:14px;color:var(--muted)}
.press-text .btn{margin-top:8px}

/* Témoignages */
.testis{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
#temoignages .wrap{padding:48px 40px;border-radius:36px;background:linear-gradient(135deg,#f1faf4,#f5f9ff)}
.testi .chan{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:10px;line-height:1.35;background:#e8f6ee;color:#12663a;font-size:13.5px;font-weight:600}
.testi .top{flex-wrap:wrap}
.testi p{margin-top:10px}

/* Visionneuse */
.lightbox{border:0;padding:0;background:transparent;max-width:min(920px,96vw);max-height:94vh;overflow:auto;border-radius:18px}
.lightbox::backdrop{background:rgba(10,15,25,.82);backdrop-filter:blur(6px)}
.lightbox img{display:block;width:100%;height:auto;border-radius:18px;background:#fff}
.lb-close{position:sticky;top:10px;float:right;margin:10px 10px -58px 0;z-index:2;width:48px;height:48px;border:0;border-radius:24px;background:rgba(255,255,255,.95);box-shadow:0 6px 18px rgba(0,0,0,.25);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--ink)}
.lb-close svg{width:22px;height:22px}


/* Eau chaude solaire */
.news{margin:22px 0 0}
.news a{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:6px 16px 6px 6px;border-radius:999px;background:#fff;box-shadow:0 0 0 1px var(--line);color:var(--ink2);font-size:15px;font-weight:600}
.news a:hover{text-decoration:none;color:var(--blue)}
.news .dot{padding:5px 11px;border-radius:999px;background:#fff1dc;color:#9a4a00;font-size:13px;font-weight:700}
.solar{display:grid;grid-template-columns:1.05fr .95fr;gap:28px 56px;align-items:center;padding:64px;border-radius:36px;background:linear-gradient(135deg,#fff8ec 0%,#f4f9ff 60%,#eef6ff 100%);box-shadow:0 0 0 1px rgba(0,0,0,.03)}
.solar .kicker{color:#b35900}
.solar p.big{font-size:19px;color:var(--ink2);margin:0}
.solar-facts{display:grid;gap:12px;margin-top:24px}
.solar-facts>div{padding:16px 18px;border-radius:18px;background:rgba(255,255,255,.8);box-shadow:var(--shadow)}
.solar-facts b{display:block;font-size:16px;margin-bottom:2px}
.solar-facts span{color:var(--ink2);font-size:16px}
.solar-illu{width:100%;height:auto;display:block;filter:drop-shadow(0 30px 50px rgba(0,30,80,.12))}
.solar-criteria{grid-column:1/-1;padding:32px;border-radius:26px;background:#fff;box-shadow:var(--shadow);text-align:center}
.solar-criteria h3{margin:0 0 16px;font-size:22px}
.crit{list-style:none;padding:0;margin:0 0 16px;display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
.crit li{display:flex;align-items:center;gap:9px;padding:10px 16px;border-radius:999px;background:#f2f5fa;font-weight:600;font-size:16px;color:var(--ink2)}
.crit svg{width:20px;height:20px;color:var(--blue)}
.solar-criteria>p{margin:0 auto 22px;max-width:560px;font-size:17px;color:var(--ink2)}
.solar-criteria .fine{margin:18px auto 0;font-size:14px}
@media (max-width:1060px){.solar{grid-template-columns:1fr;padding:44px 32px}.solar-visual{max-width:460px;margin:0 auto;width:100%}}
@media (max-width:760px){
  #temoignages .wrap{padding:30px 14px;border-radius:28px}
  .solar{padding:28px 18px;border-radius:28px;gap:22px}
  .solar p.big{font-size:17px}
  .solar-criteria{padding:24px 16px}
  .crit{flex-direction:column;align-items:stretch}
  .crit li{justify-content:center}
  .solar-criteria .cta .btn{width:100%;padding:0 12px;font-size:16px}
  .solar-criteria .fine{font-size:16px}
  .news a{font-size:16px;text-align:left}
}


/* v6 : 100 % pris en charge, presse, RTS */
.pct{display:flex;align-items:baseline;justify-content:center;gap:10px;flex-wrap:wrap;margin:-8px auto 26px}
.pct-n{font-size:clamp(30px,4vw,44px);font-weight:800;letter-spacing:-.03em;background:linear-gradient(100deg,#1f9d57,#0a7a3f);-webkit-background-clip:text;background-clip:text;color:transparent}
.pct-t{font-size:clamp(18px,2vw,22px);font-weight:700;color:var(--ink)}
.ast{color:inherit;text-decoration:none;font-weight:700;padding:0 2px}
.badges{display:flex;flex-wrap:wrap;justify-content:center}
.badges{gap:8px}.badges li{padding:9px 13px;font-size:14.5px}.badges li.hi{background:var(--green-bg);box-shadow:0 0 0 1.5px #b9e3c8;color:#115c32}
.step-hi{box-shadow:0 0 0 2px #b9e3c8,var(--shadow)}
.step .flag{position:absolute;top:18px;right:18px;padding:5px 10px;border-radius:999px;background:var(--green-bg);color:#115c32;font-size:13px;font-weight:700}
.note-sec{text-align:center;margin:22px auto 0}
.final .final-note{font-size:13.5px;color:#b9c8e6;margin:24px auto 0;max-width:620px}
.office .mono.logo{background:#fff;box-shadow:0 0 0 1px var(--line);width:56px;height:56px;padding:4px}
.office .mono.logo img{width:100%;height:100%;object-fit:contain}
.group-logo img[src$=".svg"]{max-width:200px}
.shop-head{display:flex;align-items:center;gap:14px}
.shop-head img{width:64px;height:auto}
.partner{display:flex;align-items:center;gap:10px;margin-top:12px!important;font-weight:600;color:var(--ink2)}
.partner img{width:40px;height:auto;margin:0}
.press{grid-template-columns:.8fr 1.2fr}
.clip{margin:0;justify-self:center;max-width:380px;width:100%}
.clip a{position:relative;display:block;padding:14px;background:#f6f1e7;border-radius:6px;box-shadow:0 1px 2px rgba(0,0,0,.08),0 24px 50px rgba(60,40,10,.18);transform:rotate(-1.5deg);transition:transform .3s,box-shadow .3s}
.clip a:hover{transform:rotate(0) translateY(-4px);box-shadow:0 30px 60px rgba(60,40,10,.22)}
.press .clip img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain;border-radius:2px;box-shadow:none;filter:sepia(.08)}
.clip .zoom{position:absolute;right:22px;bottom:22px;padding:6px 12px;border-radius:999px;background:rgba(29,29,31,.78);color:#fff;font-size:13px;font-weight:600}
.clip figcaption{margin-top:16px;text-align:center;font-size:15px;color:var(--muted);font-style:italic}
@media (max-width:1060px){.press{grid-template-columns:1fr}.clip{max-width:340px}}
@media (max-width:760px){
  .pct{margin:-6px auto 22px}
  .badges{display:grid;grid-template-columns:1fr 1fr}
  .badges li.hi{grid-column:1/-1;justify-content:center}
  .clip a{transform:none}.clip{max-width:300px}
  .step .flag{position:static;display:inline-block;margin-bottom:12px}
  .final .final-note,.note-sec,.clip figcaption{font-size:16px}
  .final h2{font-size:30px}
}
@media (prefers-reduced-motion:reduce){.clip a{transition:none}}


/* v7 : avis + témoignages réunis, carrousel */
.rv.none .rv-head,.rv.none .rv-carousel{display:none}
.rv:not(.none) #reviewEmpty{display:none}
.rv-head{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:22px 26px;border-radius:26px;background:#fff;box-shadow:var(--shadow);margin-bottom:18px}
.rv-score{display:flex;align-items:center;gap:16px}
.rv-score .score{font-size:52px;font-weight:700;letter-spacing:-.04em;line-height:1}
.rv-score .stars svg{width:24px;height:24px}
.rv-score .count{color:var(--muted);font-size:15px;margin-top:2px}
.rv-filter{display:inline-flex;padding:4px;border-radius:999px;background:#f0f0f4}
.rv-filter button{font:inherit;font-size:15px;font-weight:600;min-height:44px;padding:0 16px;border:0;border-radius:999px;background:transparent;color:var(--ink2);cursor:pointer}
.rv-filter button.on{background:#fff;color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.08)}
.rv-actions{display:flex;flex-direction:column;align-items:center;gap:4px}
.rv-actions .mini{font-size:14px;padding:6px 0}
.rv-carousel{position:relative}
.rv-track{position:relative;display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 4px 22px;scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;border-radius:22px}
.rv-track::-webkit-scrollbar{display:none}
.rv-track:focus-visible{outline:3px solid var(--blue2);outline-offset:4px}
.rv-card{flex:0 0 calc((100% - 36px)/3);scroll-snap-align:start;display:flex;flex-direction:column;padding:24px;border-radius:22px;background:#fff;box-shadow:var(--shadow);min-width:0}
.rv-card .top{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.rv-card .meta{font-size:13.5px;color:var(--muted)}
.rv-card .chan{display:inline-flex;padding:4px 10px;border-radius:10px;background:#e8f6ee;color:#12663a;font-size:13px;font-weight:600;line-height:1.35}
.rv-text{margin-top:12px;max-height:9em;overflow:hidden;position:relative;line-height:1.5;color:var(--ink2)}
.rv-text p{margin:0;white-space:pre-line}
.rv-text .reply{margin-top:12px;padding:12px 14px;border-radius:12px;background:#f5f5f7;font-size:15px}
.rv-text .reply b{display:block;font-size:13px;margin-bottom:2px}
.rv-card:not(.open) .rv-text:has(+ .rv-more:not([hidden]))::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2.2em;background:linear-gradient(rgba(255,255,255,0),#fff)}
.rv-card.open .rv-text{max-height:none}
.rv-more{align-self:flex-start;margin-top:6px;min-height:44px;padding:0;border:0;background:none;color:var(--blue);font:inherit;font-weight:600;font-size:15px;cursor:pointer}
.rv-who{margin-top:auto;padding-top:14px;font-size:15px;color:var(--muted)}
.rv-who .who{font-weight:700;color:var(--ink)}
.rv-arrow{position:absolute;top:calc(50% - 30px);z-index:2;width:48px;height:48px;border-radius:24px;border:0;background:#fff;color:var(--ink);box-shadow:0 6px 20px rgba(0,0,0,.14);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s}
.rv-arrow:hover{transform:scale(1.06)}
.rv-arrow svg{width:22px;height:22px}
.rv-arrow.prev{left:-20px}.rv-arrow.next{right:-20px}
.rv-carousel.single .rv-arrow,.rv-carousel.single .rv-dots{display:none}
.rv-dots{display:none;justify-content:center;gap:7px;margin-top:2px}
.rv-dots span{width:7px;height:7px;border-radius:4px;background:#d2d2d7;transition:width .25s,background .25s}
.rv-dots span.on{width:20px;background:var(--ink2)}
.rv-none{margin:10px auto;color:var(--muted)}
@media (max-width:1060px){.rv-card{flex-basis:calc((100% - 18px)/2)}.rv-arrow.prev{left:-8px}.rv-arrow.next{right:-8px}}
@media (max-width:760px){
  .rv-head{flex-direction:column;align-items:stretch;padding:20px 18px;gap:14px}
  .rv-score{justify-content:center}
  .rv-filter{align-self:center}
  .rv-actions .btn{width:100%}
  .rv-actions .mini{font-size:16px}
  .rv-track{gap:12px;padding:6px 2px 16px;margin:0 -16px;padding-left:16px;padding-right:16px;scroll-padding:0 16px;border-radius:0}
  .rv-card{flex-basis:85%;padding:20px}
  .rv-card .meta,.rv-card .chan{font-size:14px}
  .rv-who,.rv-more{font-size:16px}
  .rv-arrow{display:none}
  .rv-dots{display:flex}
}
@media (prefers-reduced-motion:reduce){.rv-arrow,.rv-dots span{transition:none}}

/* Barre fixe mobile */
.mbar{display:none}

/* Pages légales */
.doc{padding:120px 0 40px}
.doc .card{padding:44px;border-radius:28px;background:#fff;box-shadow:var(--shadow)}
.doc h1{font-size:clamp(34px,5vw,52px);margin:0 0 10px;text-align:left}
.doc .upd{color:var(--muted);margin:0 0 20px}
.doc h2{font-size:22px;letter-spacing:-.015em;margin:34px 0 8px}
.doc p,.doc li{color:var(--ink2)}
.doc table{width:100%;border-collapse:collapse;font-size:15px;margin:10px 0}
.doc th,.doc td{text-align:left;padding:10px 8px;border-top:1px solid var(--line);vertical-align:top}
.doc th{color:var(--ink);font-weight:600}
.table-scroll{overflow-x:auto}

/* Apparition au défilement */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.js .reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .reveal{opacity:1;transform:none;transition:none}.eyebrow i{animation:none}.btn,.step{transition:none}}

@media (max-width:1060px){
  .nav-links a:not(.btn){display:none}
  .burger{display:block}
  .badges{grid-template-columns:repeat(3,auto)}
  .group{grid-template-columns:200px 1fr;gap:32px}
  .press{grid-template-columns:1fr;gap:30px;max-width:720px;margin:0 auto}
  .steps{grid-template-columns:1fr 1fr}.team{grid-template-columns:1fr 1fr}
  .study{grid-template-columns:1fr;padding:44px 32px;gap:36px}
  .reviews{grid-template-columns:1fr}.summary{position:static}
}
@media (max-width:760px){
  .wrap,.narrow{width:calc(100% - 32px)}
  .nav .wrap{height:60px}.brand img{height:32px}
  .nav-actions .call-nav{display:none}
  .hero{padding:116px 0 20px}
  .hero .cta .btn{width:100%}
  .assure{flex-direction:column;align-items:stretch;max-width:340px}
  .sec{padding-top:88px}.sec-head{margin-bottom:36px}
  .compare{aspect-ratio:4/5;border-radius:22px}
  .compare img{object-position:center}
  .gains{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .team{grid-template-columns:1fr;gap:12px}
  .member{display:flex;align-items:center;gap:16px;text-align:left;padding:14px 18px 14px 14px}
  .avatar{width:92px;height:92px;border-radius:26px;margin:0;flex-shrink:0;box-shadow:none}
  .member b{font-size:18px}.member span{font-size:16px}
  .nav-actions{display:none}
  .menu{inset:60px 0 0}
  .badges{grid-template-columns:1fr 1fr;gap:8px}
  .badges li{white-space:normal;font-size:15px;padding:10px 12px;min-height:48px}
  .trust{padding-top:28px}
  .group{grid-template-columns:1fr;gap:22px;text-align:center;margin-bottom:28px}
  .group-logo{max-width:180px;margin:0 auto;padding:14px;border-radius:26px}
  .group p.big,.press p.big,.study p.big{font-size:17px}
  .offices{grid-template-columns:1fr;gap:12px}
  .office{padding:22px;display:grid;grid-template-columns:auto 1fr;column-gap:16px;align-items:start}
  .office .mono{grid-row:span 2;margin:2px 0 0}
  .press figure img{border-radius:22px}
  .hours{font-size:16px}.hours div{min-width:0}
  .fine,.compare-cap,.gain span,.step p,.step small,.panel .row,.info-line span,.info-line b,.legal-box,.faq .a,.review p,.review .meta,.foot,.summary .mini,.form-card>p,.consent,.press-text .source,.press figcaption{font-size:16px}
  .field .help{font-size:14px}
  .copy{font-size:14px}
  .study{padding:32px 20px;border-radius:28px}
  .compare .tag .long{display:none}
  .shop-info .cta .btn{flex:1 1 100%}
  .panel .total{flex-direction:column;align-items:flex-start;gap:2px}
  .shop{grid-template-columns:1fr}.shop-photo{min-height:0;aspect-ratio:4/5}.shop-info{padding:26px 22px}
  .fgrid{grid-template-columns:1fr}.form-card{padding:24px 18px}
  .cta-row .btn{flex:1 1 100%}
  .final{margin-top:88px;padding:64px 20px;border-radius:28px}
  .final .cta .btn{width:100%}
  .foot{grid-template-columns:1fr}
  .doc .card{padding:28px 20px}
}
@media (max-width:360px){.brand img{height:28px}}

/* v11 : finition mobile */
/* Le hero s'affiche immédiatement (aucune attente d'animation) */
.js .hero .reveal{opacity:1;transform:none;transition:none}
@media (max-width:760px){
  .js .reveal{transform:translateY(12px);transition:opacity .35s ease-out,transform .35s ease-out}
  .reveal.d1,.reveal.d2,.reveal.d3{transition-delay:0s}
  /* rythme et typographie */
  h1,h2,h3,.sec-head p,.lead,.faq summary{text-wrap:balance}
  p,li,.big{text-wrap:pretty}
  h1{font-size:clamp(31px,8.6vw,34px);line-height:1.06;margin:14px auto 12px}
  h2{font-size:clamp(28px,7.8vw,32px);line-height:1.1;margin:8px 0 12px}
  .final h2{font-size:30px}
  .sec{padding-top:72px}
  .sec-head{margin-bottom:28px}
  .cta-row{margin-top:32px}
  .final{margin-top:72px;padding:52px 20px 44px}
  section{scroll-margin-top:12px}
  #note-hero{scroll-margin-top:80px}
  /* nav opaque : plus de texte fantôme derrière le logo */
  .nav{background:rgba(251,251,253,.96)}
  /* hero compact : titre, 100 %, bouton visibles d'emblée */
  .hero{padding:84px 0 12px}
  .eyebrow{font-size:12.5px;padding:6px 12px}
  .lead{font-size:16px;line-height:1.45;margin-bottom:14px}
  .pct{margin:0 auto 14px;gap:6px}
  .pct{flex-wrap:nowrap}.pct-n{font-size:min(30px,7.4vw);white-space:nowrap}.pct-t{font-size:min(18px,4.5vw);white-space:nowrap}
  .hero .btn.lg{min-height:52px}
  .hero .cta{gap:10px}
  .assure{margin-top:20px;max-width:none;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:8px}
  .assure li{padding:8px 12px;font-size:14px;gap:6px}
  .assure .tick{width:18px;height:18px;background-size:11px}
  .news{margin-top:16px}
  .hero .fine{margin-top:14px}
  .trust{padding-top:20px}
  .badges li{font-size:14px;min-height:48px}
  .compare .knob{width:52px;height:52px;margin:-26px 0 0 -26px}
  /* cartes */
  .step{padding:24px 20px}
  .step .n{margin-bottom:14px}
  .faq summary{padding:16px 52px 16px 18px;font-size:17px;line-height:1.35}
  .faq summary::after{right:20px}
  .faq .a{padding:0 18px 20px}
  .final .who{display:flex;text-align:left;border-radius:22px;padding:10px 14px 10px 10px}
  /* pied de page + barre fixe */
  footer{padding:44px 0 24px}
  .foot{gap:22px}
  .foot ul{gap:0}
  .foot a{padding:10px 0;min-height:44px}
}

/* ===================== v15 : mise à jour mobile, éligibilité, dialogs ===================== */
:root{--wa:#25d366;--wa-ink:#0b3d1c;--wa-ic:#1a9e4b}
.btn.wa{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 1.5px #d2d2d7}
.btn.wa svg{color:var(--wa-ic);width:20px;height:20px}
.btn.wa:hover{box-shadow:inset 0 0 0 1.5px var(--wa-ic)}
.btn .num{font-weight:500;color:var(--muted)}
.btn.two{min-height:60px}
.btn.two>span{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15;text-align:left}
.btn.two small{font-size:13.5px;font-weight:500;opacity:.92;margin-top:2px}
.small{font-size:14px;color:var(--muted);margin:6px 0}
main .btn.secondary.sm,dialog .btn.secondary.sm{box-shadow:inset 0 0 0 1.5px #d2d2d7}
main .btn.secondary.sm:hover{box-shadow:inset 0 0 0 1.5px var(--ink2)}
.small.muted{color:var(--muted)}

/* Hero : marque, points essentiels, note des avis */
.brandline{display:inline-flex;align-items:center;gap:12px;margin:0;padding:8px 20px 8px 8px;border-radius:999px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.06),0 0 0 1px rgba(0,0,0,.04);text-align:left}
.brandline img{width:48px;height:48px;border-radius:14px;flex-shrink:0}
.brandline b{display:block;font-size:18px;letter-spacing:-.015em;color:var(--ink);line-height:1.2}
.brandline>span>span{display:block;font-size:13.5px;color:var(--muted);font-weight:600;line-height:1.3}
.hero-points{list-style:none;padding:0;margin:0 auto 28px;display:grid;grid-template-columns:repeat(2,minmax(0,auto));justify-content:center;gap:10px 30px;max-width:820px;text-align:left}
.hero-points li{display:flex;gap:10px;align-items:flex-start;font-size:17px;color:var(--ink2);font-weight:500;line-height:1.35}
.hero-points .tick{background-color:var(--blue);margin-top:0}
.hero .assure{margin-top:26px}
.hero-meta{display:flex;justify-content:center;align-items:center;gap:10px 12px;flex-wrap:wrap;margin-top:16px}
.hero-meta .news{margin:0}
.hero-rating{margin:0}
.hero-rating a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:6px 16px;border-radius:999px;background:#fff;box-shadow:0 0 0 1px var(--line);color:var(--ink2);font-size:15px;font-weight:600}
.hero-rating a:hover{text-decoration:none;color:var(--blue)}
.hero-rating .stars svg{width:17px;height:17px}
.hero-rating b{color:var(--ink)}
.hero-rating .hr-t{text-align:left}

/* Bandeau de confiance */
.tbar{display:grid;grid-template-columns:1.25fr 1fr 1fr;background:#fff;border-radius:26px;box-shadow:var(--shadow);padding:8px}
.tg{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;gap:12px;padding:18px 16px}
.tg+.tg{border-left:1px solid var(--line)}
.tlogos{display:flex;align-items:center;justify-content:center;gap:16px;min-height:54px}
.tlogos picture{display:contents}
.tlogos img{width:auto;max-width:none}
.tlogos .l-mpr{height:50px}.tlogos .l-anah{height:48px}.tlogos .l-cee{height:40px}.tlogos .l-qpac{height:48px}.tlogos .l-qbat{height:54px}
.t-ic{width:52px;height:52px;border-radius:16px;background:var(--green-bg);color:var(--green);display:flex;align-items:center;justify-content:center}
.t-ic svg{width:28px;height:28px}
.tg p{margin:0}
.tg b{display:block;font-size:16px;color:var(--ink);letter-spacing:-.01em}
.tg span{display:block;font-size:14.5px;color:var(--muted)}
.tg small{display:block;font-size:13px;color:var(--muted);margin-top:4px}
.tnote{max-width:760px;margin:8px auto 0;text-align:center}
.tnote .more-b{text-align:left}

/* Détails dépliables (générique) */
details.more{margin-top:8px}
details.more>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:600;color:var(--blue);font-size:15.5px}
details.more>summary::-webkit-details-marker{display:none}
details.more>summary::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s}
details.more[open]>summary::after{transform:translateY(2px) rotate(225deg)}
.more-b{padding:2px 0 6px;color:var(--ink2);font-size:15.5px}
.more-b p{margin:0 0 10px}.more-b p:last-child{margin-bottom:0}
.more-b ul{margin:0 0 10px;padding-left:20px}.more-b li{margin:5px 0}

/* Bureau d'études : panneau dépliable */
details.pd>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px}
details.pd>summary::-webkit-details-marker{display:none}
details.pd>summary h3{margin:0}
details.pd>summary::after{content:"";width:10px;height:10px;flex-shrink:0;border-right:2.5px solid var(--muted);border-bottom:2.5px solid var(--muted);transform:translateY(-3px) rotate(45deg);transition:transform .25s}
details.pd[open]>summary::after{transform:translateY(2px) rotate(225deg)}
details.pd[open]>summary{margin-bottom:10px}

/* Avant / simulation après */
.ba{display:grid;grid-template-columns:minmax(0,480px) minmax(0,1fr);grid-template-areas:"media head" "media body";gap:0 64px;align-items:start;max-width:1080px;margin:0 auto}
.ba-head{grid-area:head;align-self:end}
.ba-head .big{font-size:19px;color:var(--ink2);margin:0}
.ba-media{grid-area:media}
.ba-body{grid-area:body}
.ba .compare{aspect-ratio:3/4;max-width:none;border-radius:28px;box-shadow:0 30px 70px rgba(0,30,80,.16),0 0 0 1px rgba(0,0,0,.05)}
.ba .compare .tag{top:14px;font-size:14px}
.ba .compare .tag.l{left:14px}.ba .compare .tag.r{right:14px}
.sim-note{position:absolute;left:12px;right:12px;bottom:12px;padding:8px 12px;border-radius:12px;background:rgba(17,17,20,.74);color:#fff;font-size:13.5px;font-weight:600;line-height:1.3;text-align:center;pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.ba-tools{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px}
.ba-hint{color:var(--muted);font-size:15px}
.ba-tools .btn{box-shadow:inset 0 0 0 1.5px #d2d2d7}
.ba-sep{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ba-sep figure{margin:0}
.ba-sep img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:18px;box-shadow:0 0 0 1px rgba(0,0,0,.06)}
.sep-img{position:relative}
.sep-img .sim-note{left:8px;right:8px;bottom:8px;font-size:12.5px;padding:6px 8px}
.ba-sep figcaption{font-size:14.5px;color:var(--ink2);font-weight:600;margin-top:8px;text-align:center}
.ba-legal{font-size:15.5px;color:var(--ink2);padding:14px 16px;border-radius:16px;background:#f2f2f6;margin:22px 0 0}
.ba .gains{grid-template-columns:1fr;gap:10px;margin:16px 0 0;max-width:none}
.ba .gain{padding:16px 20px}
.ba .compare-cap{text-align:left;margin:14px 0 0}
.ba.no-after .compare .after,.ba.no-after .compare .tag.r,.ba.no-after .compare .bar,.ba.no-after .compare .knob,.ba.no-after .compare .sim-note,.ba.no-after .compare input,.ba.no-after .ba-tools,.ba.no-after .ba-legal{display:none}
.ba.no-after .compare{cursor:default}

/* Méthode */
.steps{list-style:none;padding:0;margin:0}
.step .sb{min-width:0}
.step details.more{margin-top:6px}
.step details.more>summary{font-size:14.5px}
.step .more-b{font-size:14.5px}

/* Eau chaude solaire */
.solar{align-items:start}
.solar-facts>div>span{display:block}
.solar-facts details.more{margin-top:4px}
.solar-schema{grid-column:1/-1;margin:0;padding:14px;border-radius:26px;background:#fff;box-shadow:var(--shadow)}
.solar-schema img{width:100%;height:auto}

/* Éligibilité */
.elig{display:grid;grid-template-columns:1.2fr 1fr;gap:18px;align-items:start}
.ecard{padding:28px;border-radius:var(--radius);background:#fff;box-shadow:var(--shadow);scroll-margin-top:84px;min-width:0}
.ecard h3{margin:0 0 8px;font-size:21px}
.ecard>p{margin:0 0 12px;color:var(--ink2);font-size:16px}
.ecard>p.small{font-size:14px;color:var(--muted)}
.ecard .btn{margin:6px 0 4px}
.cats{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:4px 0 16px}
.cats li{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;background:#f5f5f7;font-size:14.5px;font-weight:600;color:var(--ink2)}
.cb{display:inline-block;width:14px;height:14px;border-radius:4px;flex-shrink:0;vertical-align:-1px;margin-right:6px}
.cats .cb{margin:0}
.cb.bleu{background:#2f6fd6}.cb.jaune{background:#f2c200}.cb.violet{background:#8e44ad}.cb.rose{background:#e0629f}
.bthumb-row{display:flex;gap:16px;align-items:center;margin:0 0 4px}
.bthumb{position:relative;flex:0 0 92px;border-radius:12px;overflow:hidden;box-shadow:0 0 0 1px var(--line),0 6px 16px rgba(0,0,0,.08)}
.bthumb img{width:92px;height:auto}
.bthumb .zoom{position:absolute;right:6px;bottom:6px;width:30px;height:30px;border-radius:15px;background:rgba(29,29,31,.8);color:#fff;display:flex;align-items:center;justify-content:center}
.bthumb .zoom svg{width:16px;height:16px}
.bthumb-row .btn{margin:0;white-space:normal;text-align:left;line-height:1.2;padding-top:8px;padding-bottom:8px}
.bthumb-row>div{min-width:0}
.warn{font-size:15px;color:#6b4200;background:#fff6e5;border-radius:12px;padding:10px 12px;margin:10px 0 0}
.seg{display:inline-flex;padding:4px;border-radius:999px;background:#f0f0f4;margin:2px 0 12px;max-width:100%}
.seg button{font:inherit;font-size:15px;font-weight:600;min-height:44px;padding:0 16px;border:0;border-radius:999px;background:transparent;color:var(--ink2);cursor:pointer;white-space:nowrap}
.seg button[aria-selected=true]{background:#fff;color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.08)}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;max-width:100%}
.ecard .table-scroll{border-radius:14px;box-shadow:inset 0 0 0 1px var(--line)}
.btable{border-collapse:separate;border-spacing:0;width:100%;min-width:540px;font-size:15px;font-variant-numeric:tabular-nums}
.btable th,.btable td{padding:10px 12px;text-align:right;border-top:1px solid var(--line);white-space:nowrap}
.btable thead th{border-top:0;background:#f7f7f9;font-size:14px;vertical-align:bottom}
.btable thead th small{display:block;font-weight:500;color:var(--muted);font-size:12.5px}
.btable th:first-child{text-align:left;position:sticky;left:0;background:#fff;z-index:1;box-shadow:1px 0 0 var(--line)}
.btable thead th:first-child{background:#f7f7f9}
.btable tr.plus th{white-space:normal;font-size:14px;min-width:96px;line-height:1.25}
.btable tr.plus td{color:var(--muted)}
.tcap,.src{font-size:14px;color:var(--muted);margin:8px 0 0}
.ecard>p.src{margin-top:12px;font-size:14px;color:var(--muted)}
.zlegend{list-style:none;padding:0;margin:4px 0 8px;display:grid;gap:8px}
.zlegend li{display:flex;gap:10px;align-items:center;font-size:15.5px;color:var(--ink2);line-height:1.35}
.zs{display:inline-block;width:18px;height:18px;border-radius:5px;flex-shrink:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.14)}
.zs.h1{background:#4575fd}.zs.h2{background:#fedd02}.zs.h3{background:#fb1215}
.examples{margin:18px 0 0;padding:28px;border-radius:var(--radius);background:linear-gradient(135deg,#eef5ff,#f1faf4)}
.examples h3{margin:0 0 4px;font-size:21px}
.ex-intro{margin:0 0 16px;color:var(--ink2)}
.ex-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.ex{padding:20px;border-radius:20px;background:#fff;box-shadow:var(--shadow)}
.ex p{margin:0 0 8px;font-size:15.5px;color:var(--ink2)}
.ex p:last-child{margin-bottom:0}
.ex .ex-top{display:flex;align-items:center;gap:10px;margin:0 0 6px}
.dep{min-width:42px;height:32px;padding:0 8px;border-radius:10px;background:var(--navy);color:#fff;font-weight:700;display:inline-flex;align-items:center;justify-content:center;font-size:15px}
.ex-top b{font-size:18px;color:var(--ink);letter-spacing:-.01em}
.ex .ex-f{font-weight:600;color:var(--ink)}
.tbd{display:block;margin-top:8px;padding:6px 10px;border-radius:10px;background:#fff6e5;color:#6b4200;font-size:14.5px;width:fit-content}
.ex-note{margin:14px 0 0;font-size:15px;color:var(--ink2)}
.elig2{margin-top:18px;grid-template-columns:1fr 1fr}
.rtable{border-collapse:collapse;width:100%;font-size:15px}
.rtable th,.rtable td{padding:9px 12px;text-align:left;border-top:1px solid var(--line);vertical-align:top}
.rtable thead th{border-top:0;background:#f7f7f9;font-size:14px}
.rtable td:last-child{font-weight:600;color:var(--ink)}
.cee-logos{display:flex;align-items:center;gap:10px 18px;flex-wrap:wrap;font-size:14px;color:var(--muted)}
.cee-logos span{flex-basis:100%}
.cee-logos img{height:30px;width:auto}

/* RTS et bureaux d'études */
.rts-line{margin:14px 0 0;padding:12px 14px;border-radius:14px;background:#f5f5f7;color:var(--ink2);font-size:15.5px}
.office{display:flex;gap:16px;align-items:flex-start}
.office .mono.logo{flex-shrink:0;width:64px;height:64px;min-width:64px;padding:6px;margin:0;border-radius:16px}
.office .mono.logo.afr,.office .mono.logo.sae{padding:0;overflow:hidden;box-shadow:none}
.office .mono.logo.afr img,.office .mono.logo.sae img{object-fit:cover}
.office .mono picture{display:contents}
.office h3{font-size:20px;line-height:1.2}
.office h3 small{display:block;font-size:13px;font-weight:600;color:var(--muted);letter-spacing:0;margin-bottom:2px}
.office h3 .aff{display:inline-block;vertical-align:2px;margin-left:4px;padding:2px 8px;border-radius:8px;background:var(--green-bg);color:#115c32;font-size:12.5px;font-weight:700;letter-spacing:0;white-space:nowrap}

/* Boutique : l'enseigne et l'entrée restent visibles */
.shop-photo img{object-position:50% 30%}

/* Équipe */
.member{display:flex;flex-direction:column;align-items:center}
.m-body{display:flex;flex-direction:column;align-items:center;flex:1;min-width:0}
.m-body>span{flex:1}
.member .btn{margin-top:16px}

/* Presse */
.press{grid-template-areas:"clip text" "clip act";column-gap:52px;row-gap:0}
.press .clip{grid-area:clip}
.press-text{grid-area:text;align-self:end}
.press-act{grid-area:act;align-self:start;margin-top:8px}

/* Avis : date des travaux en principal, publication discrète */
.rv-card .meta.works{font-weight:600;color:var(--ink2)}
.rv-who .pub{display:block;margin-top:4px;font-size:13px;color:var(--muted)}

/* Contact final */
.final-acts{display:flex;justify-content:center;align-items:stretch;gap:12px;flex-wrap:wrap}
.final .btn.wa{background:var(--wa);color:var(--wa-ink);box-shadow:none}
.final .btn.wa svg{color:var(--wa-ink)}
.final .btn.wa:hover{background:#2ee070}

/* Fenêtres (dialog) */
.dlg{border:0;padding:0;margin:auto;width:min(640px,calc(100vw - 32px));max-width:none;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);border-radius:26px;background:#fff;color:var(--ink);box-shadow:0 30px 80px rgba(0,0,0,.35);overflow:hidden}
.dlg[open]{display:flex;flex-direction:column}
.dlg-wide{width:min(1040px,calc(100vw - 32px))}
.dlg::backdrop{background:rgba(10,15,25,.62);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.dlg-in{flex:1 1 auto;min-height:0;overflow:auto;overflow-x:hidden;overscroll-behavior:contain;padding:0 26px 26px}
.dlg-head{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0 12px;background:#fff;border-bottom:1px solid var(--line);margin-bottom:18px}
.dlg-head h2{font-size:22px;margin:0;letter-spacing:-.02em;line-height:1.2}
.dlg-close{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;min-height:44px;min-width:44px;padding:0 16px;border:0;border-radius:999px;background:#f0f0f4;color:var(--ink);font-family:inherit;font-size:15px;font-weight:600;cursor:pointer}
.dlg-close:hover{background:#e6e6ec}
.dlg-close svg{width:18px;height:18px}
html.dlg-open{overflow:hidden}
.zone-grid{display:grid;grid-template-columns:1fr 1.1fr;grid-template-areas:"find map" "leg map";gap:0 26px;align-items:start}
.zone-find{grid-area:find}.zone-leg{grid-area:leg}.zone-map{grid-area:map}
.zone-find label{font-weight:700;font-size:16px;display:block;margin-bottom:6px}
.zrow{display:flex;gap:8px}
.zrow input{flex:1;min-width:0}
.zrow .btn{min-height:48px;padding:0 18px;box-shadow:none;font-size:16px}
.zone-find .help{font-size:14px;color:var(--muted);margin:6px 0 12px}
.zquick{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px;font-size:15px;color:var(--ink2)}
.zquick span{flex-basis:100%}
.zquick button{min-width:52px;min-height:44px;border:0;border-radius:12px;background:#eef3fb;color:#0060c0;font-family:inherit;font-size:16px;font-weight:700;cursor:pointer}
.zquick button:hover{background:#e0ebfb}
.zres{margin:0 0 12px;font-size:16px}
.zres:empty{display:none}
.zres.on{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:14px;background:#f2f7ff;color:var(--ink);line-height:1.4}
.zres.warn{background:#fff6e5;color:#6b4200}
.zres .zs{margin-top:1px}
.zres strong{display:block;margin-top:4px;color:#8f1d15}
.zone-map{margin:0}
.zone-map img{width:100%;height:auto;border-radius:16px;background:#f5f5f7}
.bio-top{display:flex;align-items:center;gap:16px;margin-bottom:16px}
.bio-top img{width:88px;height:88px;border-radius:24px;object-fit:cover;flex-shrink:0}
.bio .role{margin:0;font-weight:600;color:var(--ink2);font-size:16px;line-height:1.35}
.bio p{color:var(--ink2);font-size:16.5px;margin:0 0 12px}
.bio-box{padding:14px 16px;border-radius:16px;background:#f5f5f7;margin-top:6px}
.bio-box p{font-size:15.5px}.bio-box p:last-child{margin:0}
.bio-box ul{margin:0 0 10px;padding-left:20px;color:var(--ink2);font-size:15.5px}
.bio .tools{display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px;margin:16px 0 0;padding-top:14px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.tools span{flex-basis:100%}
.tools img{width:auto;filter:grayscale(1);opacity:.7}
.tools .t-meta{height:16px}.tools .t-gads{height:24px}
.lightbox .lb-bar{position:sticky;top:0;z-index:2;height:0;display:flex;justify-content:flex-end}
.lightbox .lb-close{position:static;float:none;margin:10px;width:auto;height:48px;padding:0 18px;gap:6px;font-family:inherit;font-size:15px;font-weight:600}

/* Barre fixe mobile (une seule) */
.mbar{display:none}

@media (max-width:1240px) and (min-width:1061px){.nav-links{gap:16px}.nav-links a[href="#boutique"]{display:none}}
@media (max-width:1060px){
  .tbar{grid-template-columns:1fr 1fr}
  .tg:first-child{grid-column:1/-1;border-bottom:1px solid var(--line)}
  .tg+.tg{border-left:0}.tg:last-child{border-left:1px solid var(--line)}
  .ba{grid-template-columns:minmax(0,400px) minmax(0,1fr);gap:0 36px}
  .elig{grid-template-columns:1fr}
  .offices{grid-template-columns:1fr;max-width:720px}
  .btn .num{display:none}
  .office>div{min-width:0}
  .ex-grid{grid-template-columns:1fr}
  .press{grid-template-columns:1fr;grid-template-areas:"text" "clip" "act";row-gap:22px}
  .press-act{text-align:center;margin:0}
}
@media (max-width:760px){
  /* hero */
  .brandline{padding:6px 14px 6px 6px;gap:10px}
  .brandline img{width:40px;height:40px;border-radius:12px}
  .brandline b{font-size:16px}
  .brandline>span>span{font-size:12.5px}
  .hero h1{margin-top:16px}
  .hero-points{grid-template-columns:1fr;gap:8px;margin:0 auto 16px;width:fit-content;max-width:100%}
  .hero-points li{font-size:16px}
  .hero-points .tick{width:20px;height:20px;background-size:12px}
  .cta3{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .cta3 .btn{width:100%;padding:0 14px}
  .cta3 .btn.primary{grid-column:1/-1}
  .btn .num{display:none}
  .hero .assure{margin-top:16px}
  .hero-meta{margin-top:12px;gap:8px}
  .hero-rating a,.news a{font-size:15px}
  /* confiance */
  .trust{padding-top:22px}
  .tbar{grid-template-columns:1fr;padding:4px 14px;border-radius:22px}
  .tg{padding:14px 0;gap:10px}
  .tg:first-child{border-bottom:0}
  .tg:last-child{border-left:0}
  .tg+.tg{border-top:1px solid var(--line)}
  .tg:not(:first-child){flex-direction:row;text-align:left;align-items:center;gap:14px}
  .tg:not(:first-child) .tlogos{flex:0 0 auto;min-height:0;gap:10px}
  .tlogos{gap:12px;min-height:0}
  .tlogos .l-mpr{height:40px}.tlogos .l-anah{height:40px}.tlogos .l-cee{height:32px}.tlogos .l-qpac{height:38px}.tlogos .l-qbat{height:44px}
  .t-ic{width:44px;height:44px;border-radius:13px}
  .tg b{font-size:16px}.tg span{font-size:15px}.tg small{font-size:14px}
  .tnote{text-align:left;margin-top:4px}
  details.more>summary{font-size:16px}
  .more-b,.step .more-b{font-size:16px}
  /* sections : les rangées de boutons intermédiaires laissent la place à la barre fixe */
  .cta-row{display:none}
  /* bureau d'études */
  .study{gap:22px}
  details.pd{padding:18px 18px 20px}
  details.pd>summary h3{font-size:18px}
  /* avant / simulation après */
  .ba{grid-template-columns:1fr;grid-template-areas:"head" "media" "body";gap:0}
  .ba-head{text-align:center;margin-bottom:22px}
  .ba-head .big{font-size:17px}
  .ba .compare{border-radius:22px}
  .ba-tools{justify-content:center;text-align:center}
  .ba-hint{font-size:16px;flex-basis:100%}
  .ba-tools .btn{width:100%;font-size:16px}
  .ba-sep{gap:10px}
  .ba-sep figcaption{font-size:15px}
  .sim-note{font-size:14px;left:10px;right:10px;bottom:10px}
  .ba-legal{font-size:16px;margin-top:18px}
  /* méthode : frise verticale compacte */
  .steps{gap:0;background:#fff;border-radius:24px;box-shadow:var(--shadow);padding:4px 18px}
  .step{display:grid;grid-template-columns:40px minmax(0,1fr);gap:14px;padding:18px 0;background:none;box-shadow:none;border-radius:0}
  .step:hover{transform:none;box-shadow:none}
  .step+.step{border-top:1px solid var(--line)}
  .step .n{width:40px;height:40px;border-radius:12px;margin:0;font-size:17px}
  .step h3{font-size:18px;margin:7px 0 6px}
  .step small{margin-top:8px;font-size:15px;color:var(--green)}
  .step details.more>summary{font-size:16px}
  /* solaire */
  .solar-schema{padding:8px;border-radius:20px;margin:0 -6px}
  .solar-facts>div{padding:14px 16px}
  /* éligibilité */
  .ecard{padding:22px 18px;scroll-margin-top:72px}
  .ecard h3,.examples h3{font-size:19px}
  .ecard>p.small,.small{font-size:15px}
  .cats li{font-size:15px}
  .warn{font-size:16px}
  .btable{font-size:15px}
  .tcap,.src,.ecard>p.src{font-size:14px}
  .examples{padding:22px 16px}
  .ex{padding:16px}
  .ex p,.ex-note{font-size:16px}
  .rtable{font-size:15px}
  .elig2{margin-top:14px}
  .zlegend li{font-size:16px}
  /* bureaux d'études */
  .office{display:flex;padding:18px}
  .office .mono.logo{width:56px;height:56px;min-width:56px}
  .office h3{font-size:18px}
  .rts-line{font-size:16px;text-align:left}
  /* boutique : photo portrait entière (enseigne + entrée) */
  .shop-photo{aspect-ratio:4/5}
  .shop-photo img{object-position:50% 0}
  .shop-info{gap:14px}
  .shop-info .cta .btn{flex:1 1 100%}
  /* équipe */
  .member{flex-direction:row;align-items:flex-start}
  .m-body{align-items:flex-start}
  .member .btn{margin-top:10px;padding:0 16px;font-size:15px}
  /* presse */
  .press-act .btn{width:100%}
  /* avis */
  .rv-who .pub{font-size:14px}
  /* contact final */
  .final-acts{display:grid;grid-template-columns:1fr;gap:10px}
  .final-acts .btn{width:100%;justify-content:center}
  .btn.two>span{align-items:center;text-align:center}
  /* fenêtres : panneau plein écran par le bas */
  .dlg,.dlg-wide{width:100vw;max-width:100vw;max-height:94vh;max-height:94dvh;margin:auto 0 0;border-radius:22px 22px 0 0}
  .dlg-in{padding:0 16px calc(20px + env(safe-area-inset-bottom))}
  .dlg-head{padding:12px 0 10px;margin-bottom:14px}
  .dlg-head h2{font-size:19px}
  .zone-grid{grid-template-columns:1fr;grid-template-areas:"find" "map" "leg";gap:12px}
  .zone-find .help{font-size:15px}
  .zres{font-size:16px}
  .bio p{font-size:16px}
  .bio-top img{width:72px;height:72px;border-radius:20px}
  .lightbox{max-width:100vw;max-height:100vh;max-height:100dvh;border-radius:0}
  .lightbox img{border-radius:0}
  /* barre fixe : Appeler · WhatsApp · Prendre rendez-vous */
  body{padding-bottom:calc(84px + env(safe-area-inset-bottom))}
  .mbar{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:60;padding:6px max(10px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));background:rgba(251,251,253,.95);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);box-shadow:0 -1px 0 rgba(0,0,0,.08)}
  .mb{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:74px;height:52px;padding:0 8px;border-radius:14px;background:#fff;box-shadow:inset 0 0 0 1.5px #d2d2d7;color:var(--ink);font-size:13px;font-weight:600;line-height:1.1;text-decoration:none!important}
  .mb svg{width:20px;height:20px;flex-shrink:0}
  .mb.wa svg{color:var(--wa-ic)}
  .mb.primary{flex-direction:row;gap:8px;background:var(--blue);color:#fff;box-shadow:0 6px 18px rgba(0,113,227,.28);font-size:16px;white-space:nowrap}
  html.menu-open .mbar,html.dlg-open .mbar,html.kb-open .mbar{display:none}
  .menu-duo{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .menu-duo .btn{width:100%;padding:0 12px}
}
@media (max-width:374px){
  .tlogos{gap:8px}.tlogos .l-mpr{height:34px}.tlogos .l-anah{height:34px}.tlogos .l-cee{height:27px}
  .hero .assure li{padding:7px 10px;font-size:14px}
  .mb{min-width:66px;padding:0 6px}
  .mb.primary svg{display:none}
  .mb.primary{font-size:15px}
  .cta3 .btn{font-size:16px;padding:0 10px}
}
@media (min-width:761px){.menu-duo{display:grid;grid-template-columns:1fr 1fr;gap:10px}.menu-duo .btn{width:100%}}
@media (prefers-reduced-motion:reduce){details.more>summary::after,details.pd>summary::after{transition:none}}

/* ===================== v15b : page mobile compacte ===================== */
.nh-s{display:none}
.sch-v{display:none}
.sch-h{display:block;width:100%;height:auto}
.sch-cap{display:none}
.solar-facts details.fact{padding:16px 18px;border-radius:18px;background:rgba(255,255,255,.85);box-shadow:var(--shadow)}
details.fact>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:28px;font-weight:700;font-size:16px}
details.fact>summary::-webkit-details-marker{display:none}
details.fact>summary::after,details.edet>summary::after{content:"";width:8px;height:8px;flex-shrink:0;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:translateY(-2px) rotate(45deg);transition:transform .2s}
details.fact[open]>summary::after,details.edet[open]>summary::after{transform:translateY(2px) rotate(225deg)}
details.fact .more-b{padding-top:6px}
details.fact .more-b p{font-size:16px}
details.fact .more-b p.sub{font-size:15px;color:var(--muted)}
.elig3{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:stretch}
.elig3 .ecard{display:flex;flex-direction:column;align-items:flex-start}
.elig3 .ecard>.btn{margin-top:auto}
.elig3 .ecard>p{flex:0 0 auto}
.elig3 #exemples{grid-column:1/-1;display:block}
.e-ic{width:44px;height:44px;border-radius:14px;background:#eef3fb;color:var(--blue);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;margin-bottom:12px}
.e-ic svg{width:22px;height:22px}
details.edet>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"ic t ch" "ic s ch";column-gap:14px;align-items:center;min-height:44px}
details.edet>summary::-webkit-details-marker{display:none}
details.edet>summary .e-ic{grid-area:ic;margin:0}
details.edet>summary .e-t{grid-area:t;font-size:20px;font-weight:700;letter-spacing:-.015em;color:var(--ink)}
details.edet>summary .e-s{grid-area:s;font-size:15px;color:var(--muted)}
details.edet>summary::after{grid-area:ch}
details.edet[open]>summary{margin-bottom:14px}
details.edet .ex-grid{margin-top:4px}
.elig2{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start;margin-top:18px}
.elig2 details.edet{align-self:start}
.elig3 .warn{margin:0 0 14px}
.bar-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.7fr);gap:26px;align-items:start}
.bar-main>p{margin:0 0 12px;color:var(--ink2)}
.bar-img{margin:0}
.bar-img .bthumb{display:block;width:100%}
.bar-img .bthumb img{width:100%}
.bar-img .zoom{width:auto;height:auto;padding:6px 10px;border-radius:999px;gap:6px;font-size:13px;font-weight:600;right:8px;bottom:8px}
.bar-main .warn{margin-top:12px}
.bar-main .src{margin-top:10px}
.steps-more{margin:14px auto 0;text-align:center;max-width:820px}
.steps-more .more-b{text-align:left}
html.hero-cta-vis .mbar{visibility:hidden;transform:translateY(110%)}
.mbar{transition:transform .25s ease,visibility .25s}
@media (prefers-reduced-motion:reduce){.mbar{transition:none}}

@media (max-width:1060px){.elig3{grid-template-columns:minmax(0,1fr)}.bar-grid{grid-template-columns:minmax(0,1fr)}.bar-img{max-width:220px}}

@media (max-width:760px){
  .sec{padding-top:56px}
  .sec-head{margin-bottom:20px}
  .sec-head p{font-size:16px}
  h2{font-size:clamp(26px,7.2vw,30px);margin:6px 0 10px}
  /* hero */
  .hero{padding:74px 0 4px}
  .brandline{padding:4px 12px 4px 4px;gap:8px}
  .brandline img{width:30px;height:30px;border-radius:9px}
  .brandline b,.brandline .bl-x{display:none}
  .brandline>span>span{font-size:14px;color:var(--ink2);font-weight:700}
  .hero h1{margin:12px auto 10px}
  .lead{margin-bottom:12px}
  .hero-points{gap:6px;margin-bottom:12px}
  .hero-points .hp-x{display:none}
  .pct{margin:0 auto 12px}
  .cta3{gap:8px}
  .hero .assure{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;margin:12px -16px 0;padding:2px 16px 8px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .hero .assure::-webkit-scrollbar{display:none}
  .hero .assure li{flex:0 0 auto;white-space:nowrap;padding:7px 12px;box-shadow:0 0 0 1px var(--line)}
  .hero-meta{flex-direction:column;margin-top:4px;gap:6px}
  .news .dot{display:none}
  .news a,.hero-rating a{min-height:40px;padding:4px 14px;font-size:15px}
  .hero-rating .stars svg:nth-child(n+2){display:none}
  .nh-l{display:none}.nh-s{display:inline}
  .hero .fine{margin-top:8px;font-size:15px}
  /* confiance : rangée défilante */
  .trust{padding-top:16px}
  .tbar{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;padding:2px 16px 8px;margin:0 -16px;background:none;box-shadow:none;border-radius:0;scrollbar-width:none}
  .tbar::-webkit-scrollbar{display:none}
  .tbar .tg{flex:0 0 80%;scroll-snap-align:center;flex-direction:column!important;align-items:flex-start!important;text-align:left!important;gap:8px!important;padding:14px 16px!important;border:0!important;border-radius:18px;background:#fff;box-shadow:0 0 0 1px var(--line)}
  .tbar .tlogos{justify-content:flex-start;min-height:34px}
  .tbar .tlogos .l-mpr{height:32px}.tbar .tlogos .l-anah{height:32px}.tbar .tlogos .l-cee{height:26px}.tbar .tlogos .l-qpac{height:32px}.tbar .tlogos .l-qbat{height:36px}
  .tbar .t-ic{width:34px;height:34px;border-radius:10px}.tbar .t-ic svg{width:20px;height:20px}
  .tbar .t-src{display:none}
  .tbar .tg span{font-size:15px}
  .tnote{margin-top:0}
  /* bureau d'études */
  .study{padding:24px 18px;gap:16px}
  .study p.big{font-size:16px}
  .checks{margin-top:14px;gap:8px}
  .checks li{font-size:16px}
  details.pd{padding:14px 16px}
  /* avant / simulation après */
  .ba-head{margin-bottom:14px}
  .ba .compare{max-width:310px;margin:0 auto}
  .ba-hint{display:none}
  .ba-tools{margin-top:10px}
  .ba-tools .btn{min-height:44px}
  .ba-sep{max-width:360px;margin:0 auto}
  .ba-legal{font-size:15px;padding:12px 14px;margin-top:12px}
  .ba .gains{gap:6px;margin-top:10px}
  .ba .gain{padding:0 2px;background:none;box-shadow:none}
  .ba .gain b{display:inline;font-size:16px}
  .ba .gain b::after{content:" — ";font-weight:400;color:var(--muted)}
  .ba .gain span{font-size:16px}
  /* méthode */
  .steps{padding:2px 14px}
  .step{grid-template-columns:32px minmax(0,1fr);gap:10px;padding:14px 0}
  .step .n{width:32px;height:32px;border-radius:10px;font-size:15px}
  .step h3{font-size:17px;margin:4px 0 4px}
  .step p{font-size:16px;line-height:1.45}
  .step p{display:inline}
  .step small{display:inline;margin:0 0 0 4px;font-size:15px}
  .steps-more{text-align:left;margin-top:8px}
  .note-sec{font-size:15px;margin-top:8px}
  /* eau chaude solaire */
  .solar{padding:22px 16px;gap:14px}
  .solar p.big{font-size:16px}
  .solar details.more{margin-top:2px}
  .solar-facts{gap:8px;margin-top:0}
  .solar-facts details.fact{padding:10px 14px}
  .sch-h{display:none}.sch-v{display:block;width:100%;height:auto;max-height:470px}
  .sch-cap{display:block;font-size:14px;color:var(--muted);margin:8px 2px 0}
  .solar-schema{padding:12px;margin:0}
  .solar-criteria{padding:18px 14px}
  .solar-criteria h3{margin-bottom:8px;font-size:19px}
  .crit{gap:2px;margin-bottom:10px;align-items:flex-start}
  .crit li{padding:4px 0;background:none;justify-content:flex-start;font-size:16px}
  .solar-criteria>p{font-size:16px;margin-bottom:10px}
  .solar-criteria .cta{display:none}
  .solar-criteria .fine{font-size:15px;margin-top:6px}
  /* éligibilité */
  .elig3{gap:12px}
  .ecard{padding:18px 16px}
  .e-ic{width:40px;height:40px;margin-bottom:8px}
  .ecard h3{font-size:18px;margin-bottom:6px}
  .ecard>p{font-size:16px;margin-bottom:10px}
  .elig3 .ecard>.btn{width:100%;margin-top:4px}
  .elig3 .warn{font-size:15px;margin:0 0 10px;padding:8px 10px}
  details.edet>summary .e-t{font-size:18px}
  details.edet>summary .e-s{font-size:15px}
  details.edet>summary .e-ic{margin:0}
  .elig2{grid-template-columns:1fr;gap:12px;margin-top:12px}
  .bar-img{max-width:180px}
  .elig3 article.ecard>.e-ic{display:none}
  .d-br{display:none}
  .shop-head{display:none}
  .press-text p.big,.press-text p{font-size:16px}
  /* RTS et bureaux */
  .group{grid-template-columns:64px minmax(0,1fr);gap:4px 14px;text-align:left;align-items:center;margin-bottom:16px}
  .group>div:last-child{display:contents}
  .group .group-logo{grid-row:1/3;grid-column:1;max-width:none;width:64px;padding:6px;border-radius:16px;margin:0}
  .group .kicker{grid-column:2;align-self:end}
  .group h2{grid-column:2;margin:0;font-size:24px;align-self:start}
  .group p.big,.group .rts-line{grid-column:1/-1}
  .group p.big{margin-top:10px;font-size:16px}
  .rts-line{margin-top:10px;padding:10px 12px;font-size:15px}
  .offices{gap:10px}
  .office{padding:14px;gap:12px}
  .office .mono.logo{width:48px;height:48px;min-width:48px;border-radius:13px}
  .office h3{font-size:17px;margin:0}
  .office details.more{margin-top:2px}
  .office details.more>summary{min-height:36px;font-size:15px}
  .office .more-b p{font-size:16px;color:var(--muted)}
  /* boutique */
  .shop{gap:12px}
  .shop-photo{max-width:336px;width:100%;margin:0 auto;border-radius:22px}
  .shop-info{padding:16px 18px;gap:10px;border-radius:22px}
  .shop-head img{width:48px}.shop-info h3{font-size:20px}
  .info-line{gap:12px}
  .info-line .ic{width:36px;height:36px;border-radius:11px}
  .info-line .ic svg{width:18px;height:18px}
  .hours{margin-top:2px}
  .shop-info .cta .btn{min-height:48px}
  /* équipe */
  .team{gap:10px}
  .member{padding:12px 14px 12px 12px;gap:14px}
  .avatar{width:72px;height:72px;border-radius:20px}
  .member b{font-size:17px}
  .member span{font-size:16px;line-height:1.35}
  .member .btn{margin-top:8px;min-height:44px}
  /* presse, avis, FAQ */
  .press{row-gap:16px}
  .clip{max-width:240px}
  .faq{gap:8px}
  .faq>details>summary{padding:13px 48px 13px 16px;font-size:16.5px}
  .faq .a{padding:0 16px 14px}
  /* contact final */
  .final{margin-top:56px;padding:34px 18px 28px}
  .final h2{font-size:25px}
  .final p{font-size:16px;margin-bottom:18px}
  .final-acts{gap:8px}
  .final-acts .btn.lg{min-height:52px}
  .final-acts .btn.two{min-height:56px}
  .final .who{margin-top:14px}
  .final .final-note{font-size:15px;margin-top:12px}
  /* pied de page */
  footer{padding:32px 0 12px}
  .foot{grid-template-columns:1fr 1fr;gap:16px 14px;padding-top:24px}
  .foot>div:first-child{grid-column:1/-1}
  .foot p{font-size:15px}
  .foot a{font-size:15px;padding:8px 0}
  .copy{margin-top:14px}
}
@media (min-width:761px){.office details.more[open]>summary{display:none}.office details.more{margin-top:6px}}

/* ===================== v15c : corrections QA ===================== */
.kicker{color:#0060c0}
.solar .kicker{color:#9a4c00}
details.more>summary{color:#0060c0}
.step .n{background:linear-gradient(135deg,#0a66d0,#004fa8)}
.step:nth-child(2) .n{background:linear-gradient(135deg,#6246e0,#4b2fc2)}
.step:nth-child(3) .n{background:linear-gradient(135deg,#c25700,#a34700)}
.step:nth-child(4) .n{background:linear-gradient(135deg,#157a3a,#0f6630)}
.panel .hint{font-size:15px}
.office h3 .aff,.office h3 small{font-size:14px}
.btable thead th small{font-size:14px}
.copy{font-size:14px}
.rv-who .pub{font-size:14px}
.btn.two small{font-size:14px}
.bar-img .zoom,.clip .zoom{font-size:14px}
.cee-logos,.cee-logos span{font-size:14px}
.ba-legal{font-size:15.5px}
details.fact>summary{min-height:44px}
.office details.more>summary{min-height:44px;display:inline-flex;align-items:center}
.rv-actions .mini{display:inline-flex;align-items:center;min-height:44px}
.news a,.hero-rating a{min-height:44px}
.foot a{min-height:44px;display:inline-flex;align-items:center}
.cdp{display:inline-flex;align-items:center;gap:10px}
.cdp img{height:56px;width:auto;flex-shrink:0}
#exemples .ex-note{margin-top:16px}
@media (max-width:760px){
  .news a,.hero-rating a{min-height:44px}
  .office details.more>summary{min-height:44px}
  .mb{font-size:14px}
  .ba-legal{font-size:16px}
  .tbar .tg span,.hero .assure li{font-size:15px}
  /* indice de défilement : dégradé au bord droit */
  .scroll-hint{position:relative}
  .scroll-hint::after{content:"";position:absolute;top:0;right:-16px;bottom:8px;width:36px;pointer-events:none;background:linear-gradient(90deg,rgba(251,251,253,0),#fbfbfd 85%)}
  .scroll-hint.at-end::after{opacity:0}
  .cdp img{height:56px}
}
.news .dot{font-size:14px}
.sim-note,.final .final-note,.rv-card .meta,.fine,.tg small,.step small,.brandline>span>span{font-size:14px}
@media (max-width:760px){.sim-note{font-size:14px}.hero .fine,.note-sec,.final .final-note,.solar-criteria .fine{font-size:15px}.final .who{font-size:15px}}
@media (max-width:760px){html.menu-open .mbar,html.dlg-open .mbar,html.kb-open .mbar{visibility:hidden}}


/* v17 : logo */
/* Logo (HTML + SVG, net à toutes les tailles) */
.lg{display:inline-flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none}
.lg-mark{width:40px;height:40px;flex-shrink:0;border-radius:11px;box-shadow:0 4px 12px rgba(10,108,255,.22)}
.lg-w{display:flex;flex-direction:column;line-height:1.05}
.lg-w b{font-size:19px;font-weight:700;letter-spacing:-.025em;white-space:nowrap}
.lg-w em{font-style:normal;background:linear-gradient(95deg,#0f8a55,#1fb36d);-webkit-background-clip:text;background-clip:text;color:transparent}
.lg-w small{margin-top:4px;font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.brand .lg{text-decoration:none!important}
.lg-foot .lg-mark{width:36px;height:36px}
.lg-foot .lg-w b{font-size:18px}
@media (max-width:760px){
  .lg-mark{width:34px;height:34px;border-radius:10px}
  .lg-w b{font-size:17px}
  .lg-w small{display:none}
}
@media (max-width:350px){.lg-w b{font-size:15.5px}}

@media (max-width:420px){.nav .home{display:none}}
/* v18 : nom du logo en deux niveaux */
.lg-w{line-height:1.05}
.lg-w small{order:-1;margin:0 0 2px;font-size:10.5px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:#0a6cff;display:block}
.lg-w b{font-size:21px;letter-spacing:-.03em}
.lg-foot .lg-w b{font-size:20px}
@media (max-width:760px){.lg-w small{display:block;font-size:9.5px;letter-spacing:.22em}.lg-w b{font-size:19px}}
/* v19 : nom du logo sur une ligne + slogan (modèle validé) */
.lg-v2 b{order:0;font-size:21px;font-weight:800;letter-spacing:-.025em;color:#1e2a44}
.lg-v2 em{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:#34a853}
.lg-v2 small{order:1;display:block;margin:4px 0 0;font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#6b7280}
.lg-foot .lg-v2 b{font-size:20px}
@media (max-width:760px){.lg-v2 b{font-size:17.5px}.lg-v2 small{display:block;font-size:8px;letter-spacing:.11em;margin-top:3px}}
@media (max-width:370px){.lg-v2 b{font-size:16px}.lg-v2 small{font-size:7.4px;letter-spacing:.09em}}
