/* ============================================
   MA SOLUTION HABITAT — DESIGN SYSTEM COMMUN
   Charte officielle (Elementor kit-1113)
============================================ */
:root {
  --primary: #1C244B;
  --primary-deep: #0F1530;
  --text: #324A6D;
  --accent-blue: #467FF7;
  --orange: #E66F27;
  --orange-deep: #C25A1A;
  --teal: #31A1B8;
  --petrol: #175C85;
  --sage: #7EBE9A;
  --mustard: #D6CB55;
  --peach: #FFBC7D;
  --bg: #F9FAFD;
  --bg-2: #F3F5F8;
  --line: #C8D5DC;
  --c-chauffer: #D05538;
  --c-climatiser: #0869AF;
  --c-renover: #1D9E75;
  --c-isolation: #3E6B0A;
  --c-amenager: #7F77DD;
  --c-solaire: #E65100;
  --c-economiser: #BA7517;
  --shadow-sm: 0 2px 12px rgba(28,36,75,.06);
  --shadow-md: 0 12px 40px rgba(28,36,75,.10);
  --shadow-lg: 0 30px 80px rgba(28,36,75,.18);
  --max: 1280px;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: 'Roboto Flex', system-ui, sans-serif;
  font-weight: 300;
  font-size: 16px;
  line-height: 1.6;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
h1, h2, h3 { text-wrap: balance; }
/* Tabular numerals pour comparaisons chiffrées */
.tabnum, [class*="-num"], [class*="num"] { font-variant-numeric: tabular-nums; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }
.wrap { max-width: var(--max); margin: 0 auto; padding: 0 28px; }
h1,h2,h3,h4 { font-family: 'Roboto Flex'; color: var(--primary); font-weight: 600; line-height: 1.1; }
.ital { font-style: italic; font-weight: 400; font-variation-settings: "wdth" 105; }

/* TOPBAR */
.topbar { background: var(--primary-deep); color: rgba(255,255,255,.85); font-size: 12.5px; padding: 8px 0; transition: padding .3s ease; }
body.is-scrolled .topbar { padding: 5px 0; font-size: 11.5px; }
.topbar .wrap { padding: 0 40px; max-width: none; }
.tb-in .left a { padding: 4px 6px; border-radius: 3px; transition: background .15s, color .15s; }
.tb-in .left a:hover { background: rgba(255,255,255,.08); color: var(--peach); }
.tb-in .left a svg { opacity: .65; }
.tb-in .left a:hover svg { opacity: 1; }
.tb-in { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; align-items: center; }
.tb-in a { color: #fff; display: inline-flex; align-items: center; gap: 6px; opacity: .9; }
.tb-in a:hover { opacity: 1; color: var(--peach); }
.tb-in .left, .tb-in .right { display: flex; gap: 24px; align-items: center; }
.tb-in svg { width: 14px; height: 14px; }
.tb-pulse { display: inline-flex; align-items: center; gap: 6px; }
.tb-pulse::before { content: ''; width: 8px; height: 8px; background: var(--sage); border-radius: 50%; animation: tb-pulse 2s infinite; }
@keyframes tb-pulse { 0%,100% { opacity: 1; } 50% { opacity: .4; } }

/* HEADER 1 RANGÉE — logo + nav + CTA inline, marges symétriques */
.header { background: #fff; position: sticky; top: 0; z-index: 80; border-bottom: 1px solid var(--line); }
.header-nav-bar { background: #fff; position: relative; z-index: 80; }
.hd-single { display: flex; align-items: center; gap: 28px; position: relative; max-width: none; margin: 0; padding: 10px 40px; transition: padding .25s ease; }
body.is-scrolled .hd-single { padding: 6px 40px; }
.hd-single .brand { flex-shrink: 0; }
.hd-single .nav { flex: 1; }
.hd-cta-inline { flex-shrink: 0; padding: 12px 24px; font-size: 14px; font-weight: 600; box-shadow: 0 4px 14px rgba(230,111,39,.28); }
.hd-cta-inline:hover { box-shadow: 0 6px 20px rgba(230,111,39,.4); }
.brand { display: inline-flex; align-items: center; line-height: 0; gap: 12px; }
.brand-logo-img { height: 98px; width: auto; display: block; object-fit: contain; transition: height .3s ease, transform .2s; }
body.is-scrolled .brand-logo-img { height: 66px; }
.brand-logo-img:hover { transform: scale(1.03); }
@media (max-width: 640px) { .brand-logo-img { height: 64px; } body.is-scrolled .brand-logo-img { height: 48px; } }
/* Footer brand : logo seul, fond clair pour le faire ressortir sur le bleu */
.footer .brand .brand-logo-img { height: 72px; background: #fff; padding: 8px; border-radius: 4px; }
.footer .brand .brand-logo-img { transition: none; }
body.is-scrolled .footer .brand .brand-logo-img { height: 72px; }
.brand-name { font-weight: 600; font-size: 16px; color: var(--primary); line-height: 1.15; }
.brand-name small { display: block; font-size: 10.5px; font-weight: 400; color: var(--text); text-transform: uppercase; letter-spacing: .07em; margin-top: 2px; }
/* Téléphone discret (numéro principal dans la topbar) */
.brand-phone { display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; font-weight: 600; color: var(--text); transition: color .2s; }
.brand-phone:hover { color: var(--orange); }
.brand-phone svg { width: 14px; height: 14px; opacity: .6; }
.brand-phone small { display: none; }
/* CTA priorisé sur le devis */
.hd-cta { display: flex; gap: 10px; align-items: center; }
.hd-cta .brand-phone { margin-right: 10px; }
.hd-cta .btn-outline { padding: 9px 16px; font-size: 13px; }
.hd-cta .btn-primary { padding: 11px 22px; font-size: 14px; font-weight: 600; box-shadow: 0 4px 14px rgba(230,111,39,.28); }
.hd-cta .btn-primary:hover { box-shadow: 0 6px 20px rgba(230,111,39,.4); }

/* BTN */
.btn { display: inline-flex; align-items: center; gap: 10px; padding: 14px 24px; font-weight: 500; font-size: 14.5px; border-radius: 3px; transition: background-color .22s cubic-bezier(.2,.8,.2,1), color .22s cubic-bezier(.2,.8,.2,1), border-color .22s cubic-bezier(.2,.8,.2,1), transform .15s cubic-bezier(.2,.8,.2,1), box-shadow .22s cubic-bezier(.2,.8,.2,1); border: 2px solid transparent; white-space: nowrap; font-family: inherit; cursor: pointer; }
.btn svg { width: 16px; height: 16px; }
.btn-primary { background: var(--orange); color: #fff; border-color: var(--orange); }
.btn-primary:hover { background: var(--orange-deep); border-color: var(--orange-deep); transform: translateY(-2px); }
.btn-navy { background: var(--primary); color: #fff; border-color: var(--primary); }
.btn-navy:hover { background: var(--primary-deep); }
.btn-outline { border-color: var(--primary); color: var(--primary); background: transparent; }
.btn-outline:hover { background: var(--primary); color: #fff; }
.btn-outline-w { border-color: rgba(255,255,255,.5); color: #fff; background: transparent; }
.btn-outline-w:hover { background: #fff; color: var(--primary); border-color: #fff; }
.btn-lg { padding: 18px 32px; font-size: 15px; }

/* NAV compacte alignée sur le wrap principal */
.nav { display: flex; gap: 0; justify-content: space-between; align-items: stretch; width: 100%; }
.nav > a, .nav > div > a { padding: 14px 12px; font-size: 14px; font-weight: 500; color: var(--primary); transition: color .2s, background .2s, border-color .2s; position: relative; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 8px; flex: 0 1 auto; text-align: center; border-bottom: 3px solid transparent; white-space: nowrap; letter-spacing: -.005em; }
.nav > div { flex: 0 1 auto; display: flex; }
.nav > div > a { width: 100%; }
.nav > a:focus-visible, .nav > div > a:focus-visible { outline: 3px solid var(--orange); outline-offset: -3px; background: var(--bg-2); }
.nav > a:hover, .nav > div:hover > a { color: var(--univ-color, var(--orange)); background: var(--bg-2); border-bottom-color: var(--univ-color, var(--orange)); }
.nav > div { flex: 1; display: flex; }
.nav > div > a { width: 100%; }
.nav .nav-ico { width: 18px; height: 18px; flex-shrink: 0; opacity: .8; }
.nav .has-mega { position: static; }
.nav .has-mega > a::after { content: '▾'; margin-left: 4px; font-size: 9px; opacity: .4; }
.nav .has-mega[data-univers="chauffer"] { --univ-color: var(--c-chauffer); }
.nav .has-mega[data-univers="climatiser"] { --univ-color: var(--c-climatiser); }
.nav .has-mega[data-univers="renover"] { --univ-color: var(--c-renover); }
.nav .has-mega[data-univers="isolation"] { --univ-color: var(--c-isolation); }
.nav .has-mega[data-univers="amenager"] { --univ-color: var(--c-amenager); }
.nav .has-mega[data-univers="solaire"] { --univ-color: var(--c-solaire); }
.nav .has-mega[data-univers="economiser"] { --univ-color: var(--c-economiser); }
/* Réalisations : lien souligné orange, sans picto, ne cannibalise pas le CTA */
.nav .nav-realisations { background: transparent; color: var(--primary) !important; flex: 0 0 auto; padding: 14px 12px; font-weight: 500; text-decoration: underline; text-decoration-color: var(--orange); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.nav .nav-realisations:hover { color: var(--orange) !important; background: var(--bg-2); text-decoration-thickness: 3px; }
.nav .nav-realisations:hover { background: var(--primary-deep); color: #fff !important; border-bottom-color: var(--orange); }

/* MEGA-MENU full-width horizontal hybride (positionné par rapport à .header-nav-bar) */
.mega { position: fixed; top: var(--header-h, 150px); left: 0; right: 0; width: auto; max-width: none; background: #fff; border-top: 3px solid var(--univ-color, var(--orange)); border-bottom: 1px solid var(--line); padding: 28px 32px; box-shadow: 0 16px 40px rgba(28,36,75,.10); opacity: 0; visibility: hidden; transition: opacity .18s, visibility .18s; z-index: 70; pointer-events: none; margin-top: -1px; }
.mega::before { content: ''; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
.has-mega:hover .mega, .has-mega:focus-within .mega { opacity: 1; visibility: visible; pointer-events: auto; }
.mega-row { max-width: 1480px; margin: 0 auto; display: flex; align-items: stretch; gap: 36px; flex-wrap: wrap; }
.mega-group { display: flex; flex-direction: column; gap: 10px; flex: 1 1 auto; min-width: 240px; }

/* Mega Chauffer : 3 cols prestations + col CTA sur une seule ligne — pas de wrap */
.has-mega[data-univers="chauffer"] .mega-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) 280px;
  gap: 28px;
  align-items: stretch;
  flex-wrap: nowrap;
}
.has-mega[data-univers="chauffer"] .mega-group { min-width: 0; }
.has-mega[data-univers="chauffer"] .mega-cta-col { width: 100%; min-width: 0; }
@media (max-width: 1300px) {
  .has-mega[data-univers="chauffer"] .mega-row {
    grid-template-columns: 1fr 1fr 1fr;
  }
  .has-mega[data-univers="chauffer"] .mega-cta-col { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
  .has-mega[data-univers="chauffer"] .mega-row {
    grid-template-columns: 1fr 1fr;
  }
}
.mega-group-label { font-size: 11px; text-transform: uppercase; letter-spacing: .12em; color: var(--univ-color, var(--orange)); font-weight: 700; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.mega-items { display: flex; flex-direction: column; gap: 2px; }
.mega-item { display: block; padding: 10px 12px; border-radius: 4px; transition: background .15s, transform .15s; border-left: 2px solid transparent; }
.mega-item:hover { background: var(--bg-2); border-left-color: var(--univ-color, var(--orange)); transform: translateX(2px); }
.mega-item strong { display: block; font-size: 14px; color: var(--primary); font-weight: 600; margin-bottom: 3px; line-height: 1.25; }
.mega-item .desc { font-size: 12px; color: var(--text); line-height: 1.45; display: block; font-weight: 300; }
.mega-item .badges { display: flex; gap: 4px; margin-top: 6px; flex-wrap: wrap; }
.mega-item .mb { font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 2px; letter-spacing: .02em; white-space: nowrap; }
.mega-item .mb-aide { background: var(--bg-2); color: var(--univ-color, var(--orange)); }
.mega-item .mb-rge { background: var(--sage); color: var(--primary); }
.mega-cta-col { background: var(--univ-color, var(--orange)); color: #fff; padding: 24px 22px; border-radius: 4px; display: flex; flex-direction: column; justify-content: space-between; gap: 14px; min-width: 240px; flex-shrink: 0; position: relative; overflow: hidden; }
.mega-cta-col::before { content: ''; position: absolute; top: -40px; right: -40px; width: 140px; height: 140px; background: rgba(255,255,255,.08); border-radius: 50%; pointer-events: none; }
.mega-cta-col > * { position: relative; }
.mega-cta-col .mc-lbl { font-size: 10.5px; text-transform: uppercase; letter-spacing: .14em; opacity: .85; font-weight: 600; }
.mega-cta-col .mc-ttl { font-family: 'Roboto Flex'; font-size: 14px; font-weight: 500; line-height: 1.35; opacity: .9; margin-top: 4px; }
.mega-cta-col .mc-fig-prefix { font-size: 11px; text-transform: uppercase; letter-spacing: .1em; opacity: .9; font-weight: 600; margin-bottom: 4px; }
.mega-cta-col .mc-figure { font-family: 'Roboto Flex'; font-size: 36px; font-weight: 800; font-variation-settings: "wdth" 85; line-height: .95; color: #fff; margin-bottom: 6px; letter-spacing: -.02em; }
.mega-cta-col .mc-fig-suffix { font-size: 12.5px; opacity: .92; line-height: 1.45; }
.mega-cta-col .mc-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: #fff; color: var(--univ-color, var(--orange)); padding: 13px 16px; font-size: 13.5px; font-weight: 700; border-radius: 3px; transition: transform .15s; }
.mega-cta-col .mc-btn:hover { transform: scale(1.02); }
.mega-cta-col .mc-btn svg { width: 14px; height: 14px; }
.mega-cta-col .mc-meta { font-size: 11px; opacity: .85; line-height: 1.45; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.2); }
@media (max-width: 1200px) { .mega-row { gap: 24px; } .mega-cta-col { min-width: 200px; } }
@media (max-width: 900px) { .mega-cta-col { width: 100%; } }

/* Zones strip footer (compact) */
.f-zones-strip { margin-bottom: 36px; padding-bottom: 36px; border-bottom: 1px solid rgba(255,255,255,.08); }
.f-zones-head { display: flex; justify-content: space-between; align-items: end; margin-bottom: 20px; flex-wrap: wrap; gap: 12px; }
.f-zones-head h6 { color: var(--peach); font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .12em; }
.f-zones-head p { font-size: 12px; color: rgba(255,255,255,.55); }
.f-zones { display: flex; gap: 8px; flex-wrap: wrap; }
.f-zone { background: rgba(255,255,255,.05); padding: 9px 14px; border-radius: 999px; font-size: 13px; color: rgba(255,255,255,.85); display: inline-flex; align-items: center; gap: 6px; transition: background-color .15s ease, color .15s ease, transform .15s ease; }
.f-zone:hover { background: var(--orange); color: #fff; transform: translateY(-1px); }
.f-zone svg { width: 12px; height: 12px; opacity: .6; }

/* COMMON SECTION */
.section { padding: 100px 0; }
.section-head { max-width: 760px; margin-bottom: 60px; }
.section-head.center { margin: 0 auto 60px; text-align: center; }
.eyebrow { display: inline-flex; align-items: center; gap: 12px; font-size: 12px; font-weight: 600; color: var(--orange); text-transform: uppercase; letter-spacing: .14em; margin-bottom: 18px; }
.eyebrow::before { content: ''; width: 28px; height: 1px; background: var(--orange); }
.section h2 { font-size: clamp(34px, 4.5vw, 56px); line-height: 1.02; letter-spacing: -.022em; font-weight: 700; color: var(--primary); margin-bottom: 18px; font-variation-settings: "wdth" 95; }
.section h2 .ital { color: var(--orange); font-style: italic; font-weight: 500; }
.section-head p { font-size: 18px; color: var(--text); line-height: 1.55; }

/* BREADCRUMB */
.breadcrumb { background: transparent; padding: 10px 0; font-size: 12.5px; color: var(--text); border-bottom: 1px solid var(--line); }
.breadcrumb ol { display: flex; gap: 6px; flex-wrap: wrap; list-style: none; align-items: center; }
.breadcrumb li { line-height: 1.4; }
.breadcrumb a { color: var(--text); opacity: .85; text-decoration: none; }
.breadcrumb a:hover { color: var(--orange); opacity: 1; }
.breadcrumb .sep { opacity: .4; font-size: 11px; }
.breadcrumb .current { color: var(--primary); font-weight: 500; }

/* FOOTER */
.footer { background: var(--primary-deep); color: rgba(255,255,255,.7); padding: 90px 0 30px; }
.f-top { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 50px; margin-bottom: 56px; padding-bottom: 56px; border-bottom: 1px solid rgba(255,255,255,.08); }
.f-brand p { font-size: 14px; line-height: 1.7; margin-top: 22px; max-width: 380px; }
.f-col h5 { color: var(--peach); font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .12em; margin-bottom: 24px; }
.f-col a, .f-col a:visited { display: block; font-size: 14px; padding: 6px 0; color: rgba(255,255,255,.7); transition: color .2s; }
.f-col a:hover { color: #fff; }
.f-univers-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 14px; margin-bottom: 56px; padding-bottom: 56px; border-bottom: 1px solid rgba(255,255,255,.08); }
.f-univers-cell { display: block; padding: 22px 18px; background: rgba(255,255,255,.04); border-radius: 4px; border-top: 3px solid var(--c-uni, var(--orange)); transition: background-color .25s ease, transform .25s ease, box-shadow .25s ease; }
.f-univers-cell:hover { background: rgba(255,255,255,.08); transform: translateY(-2px); }
.f-univers-cell[data-u="chauffer"] { --c-uni: var(--c-chauffer); }
.f-univers-cell[data-u="climatiser"] { --c-uni: var(--c-climatiser); }
.f-univers-cell[data-u="renover"] { --c-uni: var(--c-renover); }
.f-univers-cell[data-u="isolation"] { --c-uni: var(--c-isolation); }
.f-univers-cell[data-u="amenager"] { --c-uni: var(--c-amenager); }
.f-univers-cell[data-u="solaire"] { --c-uni: var(--c-solaire); }
.f-univers-cell[data-u="economiser"] { --c-uni: var(--c-economiser); }
.f-univers-cell .uname { font-family: 'Roboto Flex'; font-size: 14px; font-weight: 600; color: #fff; margin-bottom: 4px; display: block; }
.f-univers-cell .ucount { font-size: 11px; color: var(--c-uni); text-transform: uppercase; letter-spacing: .08em; font-weight: 700; margin-bottom: 12px; display: block; }
.f-univers-cell .ulist { display: flex; flex-direction: column; gap: 4px; }
.f-univers-cell .ulist a { font-size: 12px; color: rgba(255,255,255,.65); padding: 2px 0; }
.f-univers-cell .ulist a:hover { color: #fff; }
.f-zones-bloc { margin-bottom: 50px; padding-bottom: 50px; border-bottom: 1px solid rgba(255,255,255,.08); }
.f-zones-head { display: flex; justify-content: space-between; align-items: end; margin-bottom: 24px; }
.f-zones-head h6 { color: var(--peach); font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .12em; }
.f-zones-head p { font-size: 12px; color: rgba(255,255,255,.55); }
.f-zones { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; }
.f-zone { background: rgba(255,255,255,.05); padding: 12px 14px; border-radius: 3px; font-size: 13px; color: rgba(255,255,255,.85); display: inline-flex; align-items: center; gap: 6px; transition: background-color .2s ease, color .2s ease, transform .2s ease; }
.f-zone:hover { background: var(--orange); color: #fff; }
.f-zone svg { width: 12px; height: 12px; opacity: .7; }
.f-bottom { padding-top: 30px; border-top: 1px solid rgba(255,255,255,.1); display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; font-size: 12px; opacity: .65; }
.cert-row { display: flex; gap: 10px; flex-wrap: wrap; }
.cert { background: rgba(255,255,255,.06); padding: 6px 12px; font-size: 11px; font-weight: 600; letter-spacing: .04em; color: var(--peach); border-radius: 2px; }
.f-social { display: flex; gap: 10px; margin-top: 18px; }
.f-social a { width: 38px; height: 38px; border-radius: 50%; background: rgba(255,255,255,.08); display: grid; place-items: center; padding: 0; }
.f-social a:hover { background: var(--orange); }
.f-social svg { width: 16px; height: 16px; color: #fff; }

/* FAB supprimé 2026-06-04 : faisait doublon avec .sticky-cta (mobile) + .help-box (desktop) */

/* BRANDS MARQUEE — bandeau animé partenaires */
.brands-strip { background: #fff; padding: 40px 0 44px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); overflow: hidden; }
.brands-head { text-align: center; margin-bottom: 28px; }
.brands-head h3 { font-family: 'Roboto Flex'; font-size: 17px; font-weight: 400; color: var(--text); }
.brands-head h3 b { color: var(--orange); font-weight: 700; }
.brands-track-wrap { position: relative; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%); }
.brands-track { display: flex; gap: 16px; width: max-content; animation: brands-scroll-x 30s linear infinite; }
.brands-track:hover { animation-play-state: paused; }
@keyframes brands-scroll-x { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .brands-track { animation: none; } }
.brands-track .brand-logo { background: var(--bg); padding: 18px 36px; border-radius: 6px; font-weight: 900; font-size: 18px; letter-spacing: -.4px; border: 1px solid var(--line); min-width: 170px; text-align: center; display: inline-flex; align-items: center; justify-content: center; font-family: 'Roboto Flex', sans-serif; white-space: nowrap; transition: transform .2s, box-shadow .2s; width: auto; height: auto; color: inherit; position: relative; }
.brands-track .brand-logo::after { content: none !important; display: none !important; }
.brands-track .brand-logo:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(28,36,75,.10); }
.brand-logo.daikin   { color: #003d5c; }
.brand-logo.cadel    { color: #b91c1c; font-style: italic; font-family: Georgia, serif; }
.brand-logo.ariston  { color: #e87722; }
.brand-logo.atlantic { color: #003c80; font-style: italic; font-weight: 700; font-family: Georgia, serif; }
.brand-logo.acova    { color: #292524; }
.brand-logo.kinedo   { color: #14532d; }
.brand-logo.dualsun  { color: #ea580c; }
.brand-logo.mitsubishi { color: #c8102e; }
.brand-logo.jacob    { color: #1a1a1a; font-weight: 700; font-style: italic; }

/* TAG / BADGE */
.tag { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; border-radius: 2px; }
.tag-chauffer { background: var(--c-chauffer); color: #fff; }
.tag-climatiser { background: var(--c-climatiser); color: #fff; }
.tag-renover { background: var(--c-renover); color: #fff; }
.tag-isolation { background: var(--c-isolation); color: #fff; }
.tag-amenager { background: var(--c-amenager); color: #fff; }
.tag-solaire { background: var(--c-solaire); color: #fff; }
.tag-economiser { background: var(--c-economiser); color: #fff; }

.reveal { opacity: 0; transform: translateY(40px); transition: opacity .8s, transform .8s; }
.reveal.in { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; transition: none; } * { animation: none !important; } }

/* RESPONSIVE */
@media (max-width: 1024px) {
  /* (header conservé sur mobile : nav desktop masquée, burger affiché — voir section MENU MOBILE) */
  .hd-top-in { gap: 12px; }
  .brand-phone { margin-left: 12px; padding-left: 12px; }
  .brand-phone span { display: none; }
  .f-top { grid-template-columns: 1fr 1fr; gap: 40px; }
  .f-univers-grid { grid-template-columns: repeat(3, 1fr); }
  .f-zones { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
  .wrap { padding: 0 18px; }
  .tb-in .left span:not(.tb-pulse), .tb-in .right span { display: none; }
  .tb-in .left { display: none; }          /* topbar compacte : tel + email seulement */
  .tb-in { justify-content: center; }
  .f-top { grid-template-columns: 1fr; }
  .f-univers-grid { grid-template-columns: 1fr 1fr; }
  .f-zones { grid-template-columns: 1fr 1fr; }
  .hd-cta .btn-outline { display: none; }
}

/* ============================================
   OPTIMISATIONS UI (Vercel Web Interface Guidelines)
============================================ */

/* Tabular nums sur tous les éléments à valeurs chiffrées */
.kpi .num, .compare-cell strong, .compare-cell small, .compare-cell, .dim-table td,
.aide-card .amount, .testimonial-numbers .v, .tnum .v, .entretien-price,
.cat-price, .config-types .typ .price, .gamme-card .gamme-name,
.method-step::before, .marque-card .marque-name {
  font-variant-numeric: tabular-nums;
}

/* Focus visible accessibilité (remplace les focus invisibles par défaut) */
*:focus { outline: none; }
*:focus-visible {
  outline: 2px solid var(--orange);
  outline-offset: 2px;
  border-radius: 3px;
}
.btn:focus-visible, summary:focus-visible {
  outline: 2px solid var(--orange);
  outline-offset: 3px;
}
a:focus-visible, button:focus-visible {
  outline: 2px solid var(--orange);
  outline-offset: 2px;
}

/* Hover et active states explicites sur boutons et liens */
.btn { transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .15s ease, box-shadow .2s ease; }
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }

/* Respect prefers-reduced-motion (Vercel WIG) */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .btn:hover { transform: none; }
  body.is-scrolled .topbar { padding: 8px 0; font-size: 12.5px; }
  body.is-scrolled .hd-single { padding: 10px 40px; }
  body.is-scrolled .brand-logo-img { height: 78px; }
  @keyframes tb-pulse { 0%,100% { opacity: 1; } 50% { opacity: 1; } }
}

/* Skip link accessibilité (caché jusqu'au focus clavier) */
.skip-link {
  position: absolute;
  top: -40px;
  left: 8px;
  background: var(--primary);
  color: #fff;
  padding: 10px 16px;
  border-radius: 4px;
  font-weight: 600;
  font-size: 14px;
  z-index: 9999;
  transition: top .2s;
}
.skip-link:focus, .skip-link:focus-visible {
  top: 8px;
  outline: 2px solid var(--orange);
  outline-offset: 2px;
}

/* Scroll-margin sur les ancres pour ne pas cacher les headings sous le header sticky */
h1[id], h2[id], h3[id], section[id] { scroll-margin-top: 100px; }

/* Hover plus marqué sur les cards interactives */
.aide-card, .gamme-card, .marque-card, .service-card, .cat-card, .config-option, .type-card {
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.aide-card:hover, .marque-card:hover, .gamme-card:hover, .cat-card:hover, .type-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}

/* Détails accessibilité : indication visuelle du chevron animé */
summary { transition: background-color .15s ease; }
summary:hover { background-color: rgba(230,111,39,.04); }

/* Loading state Vercel : "…" pas "..." (corrigé dans le contenu) */

/* ============================================
   BLOC « POUR ALLER PLUS LOIN »
   Maillage interne vers articles + réalisations + service connexe
============================================ */
.related { padding: 60px 0; background: linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 100%); }
.related-head { text-align: center; margin-bottom: 36px; }
.related-eyebrow { display: inline-block; padding: 6px 14px; background: #fff; color: var(--orange); border: 1px solid var(--line); border-radius: 999px; font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 14px; }
.related-head h2 { font-family: 'Roboto Flex'; font-size: clamp(28px, 3.5vw, 38px); color: var(--primary); font-weight: 700; letter-spacing: -.015em; line-height: 1.15; margin-bottom: 10px; }
.related-head h2 em { font-style: italic; color: var(--orange); font-weight: 500; }
.related-head p { font-size: 15.5px; color: var(--text); max-width: 720px; margin: 0 auto; line-height: 1.6; }
.related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; max-width: 1180px; margin: 0 auto; }
.related-card { background: #fff; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; display: flex; flex-direction: column; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.related-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: var(--orange); }
.related-card .rcat-img { aspect-ratio: 16/9; position: relative; overflow: hidden; display: grid; place-items: center; }
.related-card.conseils .rcat-img { background: linear-gradient(135deg, #1C244B 0%, #2E3A6A 100%); }
.related-card.realisations .rcat-img { background: linear-gradient(135deg, #C25A1A 0%, #E66F27 100%); }
.related-card.service .rcat-img { background: linear-gradient(135deg, #1D9E75 0%, #46B58E 100%); }
.related-card .rcat-img::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 65%, rgba(255,255,255,.18), transparent 65%); }
.related-card .rcat-img svg { position: relative; width: 56px; height: 56px; color: #fff; opacity: .92; }
.related-card .rcat-img .rcat-tag { position: absolute; top: 14px; left: 14px; background: rgba(255,255,255,.95); color: var(--primary); padding: 4px 12px; border-radius: 999px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.related-card .rcat-img .rcat-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1; }
.related-card .rcat-img .rcat-tag { z-index: 2; }
.related-card .rcat-body { padding: 22px 24px 24px; flex: 1; display: flex; flex-direction: column; }
.related-card .rcat-body h3 { font-family: 'Roboto Flex'; font-size: 18px; font-weight: 700; color: var(--primary); margin-bottom: 8px; line-height: 1.3; letter-spacing: -.005em; }
.related-card .rcat-body p { font-size: 14px; line-height: 1.6; color: var(--text); margin-bottom: 14px; flex: 1; }
.related-card .rcat-body p strong { color: var(--primary); font-weight: 600; }
.related-card .rcat-cta { display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; font-weight: 600; color: var(--orange); align-self: flex-start; }
.related-card:hover .rcat-cta { color: var(--orange-deep); }
.related-card .rcat-cta::after { content: '→'; transition: transform .2s ease; }
.related-card:hover .rcat-cta::after { transform: translateX(3px); }

@media (max-width: 900px) {
  .related-grid { grid-template-columns: 1fr; }
  .related { padding: 40px 0; }
}

/* ============================================
   STICKY CTA MOBILE (conversion mobile)
============================================ */
.sticky-cta {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 100;
  background: #fff;
  border-top: 1px solid var(--line);
  box-shadow: 0 -8px 24px rgba(28,36,75,.10);
  padding: 10px env(safe-area-inset-right, 12px) calc(10px + env(safe-area-inset-bottom, 0)) env(safe-area-inset-left, 12px);
}
.sticky-cta-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 8px;
}
.sticky-cta a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 10px 6px;
  border-radius: 8px;
  font-size: 11.5px;
  font-weight: 700;
  color: var(--primary);
  background: var(--bg-2);
  text-decoration: none;
  border: 1px solid var(--line);
  transition: background-color .15s ease, color .15s ease, transform .1s ease;
  min-height: 56px;
}
.sticky-cta a:active { transform: scale(0.97); }
.sticky-cta a.sticky-cta-call { background: var(--c-renover); color: #fff; border-color: var(--c-renover); }
.sticky-cta a.sticky-cta-whatsapp { background: #25D366; color: #fff; border-color: #25D366; }
.sticky-cta a.sticky-cta-devis { background: var(--orange); color: #fff; border-color: var(--orange); }
.sticky-cta a svg { width: 20px; height: 20px; }

/* Affichage mobile uniquement */
@media (max-width: 900px) {
  .sticky-cta { display: block; }
  body { padding-bottom: 80px; } /* éviter que la sticky cache le contenu */
}

/* ============================================
   TRUST BAND (sous hero - social proof + garanties)
============================================ */
.trust-band {
  background: #fff;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 18px 0;
}
.trust-band-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  align-items: center;
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 28px;
}
.trust-item {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 13px;
  color: var(--text);
  line-height: 1.35;
}
.trust-item .trust-icon {
  width: 36px;
  height: 36px;
  background: var(--bg-2);
  border-radius: 50%;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  color: var(--orange);
}
.trust-item .trust-icon svg { width: 18px; height: 18px; }
.trust-item strong { display: block; color: var(--primary); font-size: 14.5px; font-weight: 700; }

@media (max-width: 900px) {
  .trust-band-grid { grid-template-columns: 1fr 1fr; gap: 16px; }
  .trust-band { padding: 14px 0; }
}
@media (max-width: 480px) {
  .trust-band-grid { grid-template-columns: 1fr; }
}

/* ============================================
   CTA TÉLÉPHONE VISIBLE (hero + sections clés)
============================================ */
.btn-tel {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 16px 26px;
  background: transparent;
  color: var(--primary);
  border: 1.5px solid var(--primary);
  border-radius: 4px;
  font-size: 14.5px;
  font-weight: 700;
  text-decoration: none;
  transition: background-color .2s ease, color .2s ease;
}
.btn-tel:hover { background: var(--primary); color: #fff; }
.btn-tel svg { width: 18px; height: 18px; }
.btn-tel .tel-number { font-variant-numeric: tabular-nums; letter-spacing: .02em; }

/* Bloc « Besoin d'aide ? » sticky desktop (côté droit) */
.help-box {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 50;
  background: var(--primary);
  color: #fff;
  border-radius: 12px;
  padding: 16px 18px;
  box-shadow: 0 10px 30px rgba(28,36,75,.18);
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  max-width: 260px;
  transition: transform .2s ease, box-shadow .2s ease;
}
.help-box:hover { transform: translateY(-2px); box-shadow: 0 14px 36px rgba(28,36,75,.22); }
.help-box .help-icon { width: 40px; height: 40px; background: var(--orange); border-radius: 50%; display: grid; place-items: center; flex-shrink: 0; }
.help-box .help-icon svg { width: 22px; height: 22px; }
.help-box .help-text { font-size: 13px; line-height: 1.4; }
.help-box .help-text strong { display: block; font-size: 14.5px; font-weight: 700; margin-bottom: 2px; }
@media (max-width: 900px) {
  .help-box { display: none; } /* remplacé par sticky-cta */
}

/* ============================================
   BANDEAU CERTIFICATIONS V2 (2026-06-04)
   Signature Olivier Barbenchon + logos officiels en ligne
   Centralisé pour propagation sur les 13 pages services
   ============================================ */
.certif-banner { background: #fff; border: 1px solid var(--line); border-radius: 8px; margin-top: 36px; overflow: hidden; box-shadow: var(--shadow-sm); }
.certif-signature { display: grid; grid-template-columns: auto 1fr; gap: 26px; align-items: center; padding: 30px 34px; border-bottom: 1px solid var(--line); }
.certif-avatar { width: 88px; height: 88px; border-radius: 50%; background: var(--orange); color: #fff; display: grid; place-items: center; font-family: 'Roboto Flex', sans-serif; font-size: 28px; font-weight: 700; font-variation-settings: "wdth" 85; flex-shrink: 0; }
.certif-bio { min-width: 0; }
.certif-eyebrow { font-size: 11px; color: var(--orange); text-transform: uppercase; letter-spacing: .1em; font-weight: 700; margin-bottom: 4px; }
.certif-bio h3 { font-family: 'Roboto Flex', sans-serif; font-size: 22px; font-weight: 700; color: var(--primary); line-height: 1.25; margin: 0; letter-spacing: -.01em; }
.certif-bio h3 em { font-style: italic; font-weight: 500; color: var(--orange); }
.certif-bio p { font-size: 14px; color: var(--text); line-height: 1.6; margin: 8px 0 0; max-width: 580px; }
.certif-logos { padding: 22px 32px; background: var(--bg-2); }
.certif-logos-label { text-align: center; font-size: 11px; color: var(--text); text-transform: uppercase; letter-spacing: .12em; font-weight: 600; margin-bottom: 16px; opacity: .75; }
.certif-logos-row { display: flex; gap: 40px; align-items: center; justify-content: center; flex-wrap: wrap; }
.certif-logo-cell { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.certif-logo-pill { width: 72px; height: 36px; display: grid; place-items: center; font-size: 11px; font-weight: 700; letter-spacing: .05em; border-radius: 4px; }
.certif-logo-pill.cma { background: var(--primary); color: #fff; }
.certif-logo-pill.rge-bois { background: #fff; border: 1.5px solid #1D9E75; color: #1D9E75; }
.certif-logo-pill.rge-pac { background: #fff; border: 1.5px solid #185FA5; color: #185FA5; }
.certif-logo-pill.rge-bat { background: #fff; border: 1.5px solid #BA7517; color: #BA7517; }
.certif-logo-pill.rge-pv { background: #fff; border: 1.5px solid #534AB7; color: #534AB7; }
.certif-logo-cell small { font-size: 10.5px; color: var(--text); font-weight: 600; }
/* Override l'ancien CSS local : neutralise les anciens sélecteurs au cas où ils restent inline */
.certif-banner-left, .certif-banner-right, .certif-banner-logo, .certif-banner-eyebrow { all: revert; }
@media (max-width: 700px) {
  .certif-signature { grid-template-columns: 1fr; text-align: center; padding: 22px 20px; }
  .certif-avatar { margin: 0 auto; width: 72px; height: 72px; font-size: 22px; }
  .certif-bio p { margin-left: auto; margin-right: auto; }
  .certif-logos { padding: 18px 14px; }
  .certif-logos-row { gap: 18px; }
  .certif-logo-pill { width: 60px; height: 32px; font-size: 10px; }
}

/* ============================================
   POLISH DESIGN 2026-06-04
   Wins haute valeur · typographie variable, balance, print, scroll, dark
   Source : Vercel Web Interface Guidelines + Roboto Flex specs
   ============================================ */

/* Typographie variable Roboto Flex : optical sizing + smoothing */
html { color-scheme: light; }
body {
  font-optical-sizing: auto;
  font-feature-settings: "ss01", "ss02", "cv11";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* Text wrap moderne : balance pour les titres, pretty pour les paragraphes
   (évite veuves orphelines, équilibre les ruptures de ligne) */
h1, h2, h3, .chapo-hero h1, .section-head h2 {
  text-wrap: balance;
}
p, .lead, .desc, .a {
  text-wrap: pretty;
}

/* Optical sizing custom sur les très grands titres (hero H1) */
.chapo-hero h1, .pg-hero h1, .cg-hero-grid h1, .pb-hero-grid h1, .cet-hero h1 {
  font-variation-settings: "wdth" 92, "opsz" 144;
  letter-spacing: -.025em;
}

/* Variation width compacte sur les chiffres KPI hero (économie de place) */
.kpi .num, .mc-figure, .aides-cta-big {
  font-variation-settings: "wdth" 85, "opsz" 144;
  font-feature-settings: "tnum", "ss01";
}

/* Scroll behavior global plus naturel + ancres ne se cachent pas sous le header */
html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-h, 96px) + 16px);
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* Images : rendering haute qualité pour les photos chantiers */
img {
  image-rendering: high-quality;
}
img[loading="lazy"] {
  background: linear-gradient(180deg, var(--bg-2) 0%, var(--bg) 100%);
}

/* Sélection texte : couleur cohérente avec la marque */
::selection {
  background: var(--orange);
  color: #fff;
}
::-moz-selection {
  background: var(--orange);
  color: #fff;
}

/* Focus visible amélioré : ring orange avec offset, jamais d'outline none */
:focus-visible {
  outline: 2.5px solid var(--orange);
  outline-offset: 3px;
  border-radius: 4px;
}

/* Accent color natif pour inputs (checkbox, radio, range, progress) */
input, textarea, select, progress, meter {
  accent-color: var(--orange);
}

/* Inputs : hover/focus states naturels */
input[type="text"], input[type="email"], input[type="tel"], textarea, select {
  transition: border-color .18s ease, box-shadow .18s ease;
}
input[type="text"]:focus, input[type="email"]:focus, input[type="tel"]:focus, textarea:focus, select:focus {
  outline: none;
  border-color: var(--orange);
  box-shadow: 0 0 0 3px rgba(230,111,39,.18);
}

/* Cards interactives : élévation plus naturelle au survol (déjà OK sur .related-card,
   on étend aux autres patterns) */
.aide-card, .marque-card, .method-step, .related-card, .svc-mini {
  transition: transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease, border-color .25s ease;
}

/* Touch targets : minimum 44 × 44 px sur les CTA mobile (WCAG 2.5.5 AA) */
@media (max-width: 640px) {
  .btn, .btn-tel, .sticky-cta-btn, .nav a, .f-zone, .f-col a, .footer a {
    min-height: 44px;
  }
  .sticky-cta-btn { padding-block: 12px; }
}

/* Tabular nums : auto-applique sur tout chiffre dans un contexte numérique */
.num, .amount, .price, .kpi, .stat, .delay, .figure, .mc-figure, .aides-cta-big,
[class*="-num"], [class*="-amount"], time {
  font-variant-numeric: tabular-nums;
}

/* Anti-pattern Vercel : pas de transition sur display, visibility, all */
@layer base {
  * { transition-property: opacity, transform, background-color, color, border-color, box-shadow, filter, backdrop-filter; }
}

/* Print styles : optimisation impression devis et fiches techniques */
@media print {
  .topbar, .header, .footer, .sticky-cta, .help-box, .fab,
  .mega, .breadcrumb, .related, .local-mesh, .skip-link { display: none !important; }
  body { background: #fff; color: #000; font-size: 11pt; line-height: 1.45; }
  h1, h2, h3 { page-break-after: avoid; }
  a { color: #000; text-decoration: underline; }
  img { max-width: 100% !important; page-break-inside: avoid; }
  .section { padding: 24px 0; }
  .trust-band, .certif-banner { border: 1px solid #000; padding: 12px; }
  details { page-break-inside: avoid; }
  details[open] { break-inside: avoid; }
}

/* Reduced data : économie de bande passante (mobiles 4G/limités) */
@media (prefers-reduced-data: reduce) {
  img[loading="lazy"] { content-visibility: auto; }
  .brands-track { animation: none; }
}

/* iOS safe-area : sticky CTA mobile prend en compte le notch */
.sticky-cta {
  padding-bottom: calc(12px + env(safe-area-inset-bottom));
}

/* Forced colors (high contrast) — Windows High Contrast Mode */
@media (forced-colors: active) {
  .btn-primary, .btn-secondary { forced-color-adjust: none; border: 2px solid CanvasText; }
  .badge, .pill { forced-color-adjust: none; }
}

/* ============================================
   MENU MOBILE — burger + panneau coulissant (2026-06-10)
   Markup injecté par partials.js (#msh-mmenu) ; visible <= 1024px.
============================================ */
.mm-burger { display: none; width: 44px; height: 44px; flex-direction: column; align-items: center; justify-content: center; gap: 5px; border-radius: 8px; flex-shrink: 0; border: 1px solid var(--line); background: #fff; }
.mm-burger span { display: block; width: 20px; height: 2px; background: var(--primary); border-radius: 2px; transition: transform .25s, opacity .2s; }
body.mm-open .mm-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
body.mm-open .mm-burger span:nth-child(2) { opacity: 0; }
body.mm-open .mm-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

#msh-mmenu { position: fixed; inset: 0; z-index: 220; display: none; }
body.mm-open #msh-mmenu { display: block; }
body.mm-open { overflow: hidden; }
#msh-mmenu .mm-backdrop { position: absolute; inset: 0; background: rgba(15,21,48,.55); opacity: 0; transition: opacity .25s; }
#msh-mmenu .mm-panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(420px, 92vw); background: #fff; transform: translateX(102%); transition: transform .28s cubic-bezier(.2,.8,.2,1); display: flex; flex-direction: column; box-shadow: -18px 0 50px rgba(15,21,48,.25); }
body.mm-anim #msh-mmenu .mm-backdrop { opacity: 1; }
body.mm-anim #msh-mmenu .mm-panel { transform: none; }

#msh-mmenu .mm-head { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; border-bottom: 1px solid var(--line); flex-shrink: 0; }
#msh-mmenu .mm-logo { height: 48px; width: auto; }
#msh-mmenu .mm-close { width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; border: 1px solid var(--line); color: var(--primary); }
#msh-mmenu .mm-close svg { width: 18px; height: 18px; }
#msh-mmenu .mm-scroll { flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 6px 0 14px; }

#msh-mmenu .mm-grp { border-bottom: 1px solid var(--bg-2); }
#msh-mmenu .mm-acc { width: 100%; display: flex; align-items: center; gap: 12px; padding: 14px 18px; font-family: 'Roboto Flex'; font-size: 15.5px; font-weight: 600; color: var(--primary); text-align: left; }
#msh-mmenu .mm-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--univ-color, var(--orange)); flex-shrink: 0; }
#msh-mmenu .mm-chev { width: 16px; height: 16px; margin-left: auto; opacity: .55; transition: transform .22s; flex-shrink: 0; }
#msh-mmenu .mm-grp.open .mm-chev { transform: rotate(180deg); }
#msh-mmenu .mm-items { display: none; padding: 2px 0 10px; background: var(--bg); }
#msh-mmenu .mm-grp.open .mm-items { display: block; }
#msh-mmenu .mm-items a { display: block; padding: 10px 18px 10px 39px; font-size: 14px; color: var(--text); }
#msh-mmenu .mm-items a:active { background: var(--bg-2); }
#msh-mmenu .mm-items .mm-hub { font-weight: 600; color: var(--univ-color, var(--orange)); }
#msh-mmenu .mm-grp[data-univers="chauffer"]   { --univ-color: var(--c-chauffer); }
#msh-mmenu .mm-grp[data-univers="climatiser"] { --univ-color: var(--c-climatiser); }
#msh-mmenu .mm-grp[data-univers="renover"]    { --univ-color: var(--c-renover); }
#msh-mmenu .mm-grp[data-univers="isolation"]  { --univ-color: var(--c-isolation); }
#msh-mmenu .mm-grp[data-univers="amenager"]   { --univ-color: var(--c-amenager); }
#msh-mmenu .mm-grp[data-univers="solaire"]    { --univ-color: var(--c-solaire); }
#msh-mmenu .mm-grp[data-univers="economiser"] { --univ-color: var(--c-economiser); }
#msh-mmenu .mm-link { display: flex; align-items: center; gap: 12px; padding: 14px 18px 14px 39px; font-family: 'Roboto Flex'; font-size: 15.5px; font-weight: 600; color: var(--primary); border-bottom: 1px solid var(--bg-2); }
#msh-mmenu .mm-foot { flex-shrink: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 14px 16px calc(14px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: #fff; }
#msh-mmenu .mm-foot .btn { justify-content: center; padding: 13px 10px; font-size: 13.5px; }

@media (max-width: 1024px) {
  .mm-burger { display: inline-flex; }
  .hd-single { padding: 8px 18px; gap: 12px; justify-content: space-between; }
  body.is-scrolled .hd-single { padding: 6px 18px; }
  .hd-single .nav { display: none; }
  .hd-cta-inline { display: none; }
  .brand-logo-img { height: 60px; }
}
@media (prefers-reduced-motion: reduce) {
  #msh-mmenu .mm-panel, #msh-mmenu .mm-backdrop, .mm-burger span { transition: none; }
}
/* ============================================
   CONFIGURATEURS PRODUITS — carte résultat (configurator.js, 2026-06-10)
============================================ */
.config-result { color: var(--primary); }
.config-result .cr-reco { background: #FFF7F0; border: 1.5px solid var(--orange); border-radius: 6px; padding: 20px 22px; margin-bottom: 14px; }
.config-result .cr-lbl { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--orange-deep); font-weight: 700; margin-bottom: 6px; }
.config-result .cr-modele { font-family: 'Roboto Flex'; font-size: 21px; font-weight: 700; line-height: 1.25; }
.config-result .cr-puissance { margin-top: 8px; font-size: 14.5px; color: var(--text); }
.config-result .cr-prix { margin-top: 6px; font-size: 14.5px; font-weight: 600; }
.config-result .cr-recap { font-size: 12.5px; color: var(--text); margin-bottom: 12px; }
.config-result .cr-notes { margin: 0 0 14px; padding-left: 18px; display: grid; gap: 6px; }
.config-result .cr-notes li { font-size: 13.5px; color: var(--text); line-height: 1.5; }
.config-result .cr-mention { font-size: 12.5px; color: var(--text); background: var(--bg-2); border-radius: 4px; padding: 10px 12px; margin-bottom: 16px; line-height: 1.55; }
.config-result .cr-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.config-result .cr-actions .btn { flex: 1 1 auto; justify-content: center; }
.config-result .cr-restart { font-size: 12.5px; color: var(--text); text-decoration: underline; opacity: .8; background: none; border: 0; cursor: pointer; }
.config-result .cr-restart:hover { opacity: 1; color: var(--orange); }
.config-option:disabled { cursor: not-allowed; }
/* === MSH LOCAL PAGES CSS (pages prestation x ville) === */
.local-hero { min-height: 64vh; position: relative; overflow: hidden; isolation: isolate; display: flex; align-items: center; padding: 60px 0; }
.local-hero-bg { position: absolute; inset: -10% 0; background-size: cover; background-position: center; z-index: -2; }
.local-hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(115deg, rgba(15,21,48,.92), rgba(28,36,75,.78) 60%); z-index: -1; }
.local-hero-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 60px; align-items: center; color: #fff; }
.local-pill { display: inline-flex; align-items: center; gap: 10px; padding: 7px 14px; background: rgba(255,255,255,.1); backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,.18); border-radius: 999px; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .12em; margin-bottom: 22px; }
.local-hero h1 { color: #fff; font-size: clamp(34px, 5vw, 58px); line-height: 1.05; letter-spacing: -.025em; font-weight: 700; margin-bottom: 20px; }
.local-hero h1 .ital { color: var(--peach); font-style: italic; font-weight: 500; }
.local-hero p.lede { font-size: 17px; opacity: .9; max-width: 560px; margin-bottom: 32px; line-height: 1.55; }
.local-hero-cta { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 36px; }
.local-hero-kpi { display: flex; gap: 32px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.15); flex-wrap: wrap; }
.local-hero-kpi .k { font-size: 12px; opacity: .85; }
.local-hero-kpi .k strong { display: block; font-size: 22px; color: var(--peach); font-weight: 700; line-height: 1; margin-bottom: 4px; }
.local-info-card { background: #fff; padding: 26px; border-radius: 4px; box-shadow: var(--shadow-lg); color: var(--text); }
.local-info-card h3 { font-size: 17px; color: var(--primary); margin-bottom: 14px; font-weight: 600; }
.local-info-card .row { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px dashed var(--line); font-size: 13.5px; }
.local-info-card .row:last-of-type { border-bottom: 0; }
.local-info-card .row strong { color: var(--primary); font-weight: 600; }
.local-edito { padding: 92px 0; background: #fff; }
.edito-grid { display: grid; grid-template-columns: 1fr 1.3fr; gap: 56px; align-items: start; }
.edito-side h2 { font-size: clamp(28px, 3.6vw, 40px); line-height: 1.1; color: var(--primary); font-weight: 700; letter-spacing: -.02em; margin-bottom: 16px; }
.edito-side h2 .ital { color: var(--orange); font-style: italic; font-weight: 500; }
.edito-body p { font-size: 15.5px; line-height: 1.75; color: var(--text); margin-bottom: 18px; }
.edito-body p strong { color: var(--primary); font-weight: 600; }
.edito-body h3 { font-weight: 700; font-size: 19px; color: var(--primary); margin: 26px 0 12px; }
.edito-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.edito-tags span { background: var(--bg-2); border: 1px solid var(--line); padding: 6px 12px; border-radius: 999px; font-size: 12.5px; color: var(--text); }
.local-climat { padding: 90px 0; background: var(--bg-2); }
.climat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.climat-text h2 { font-size: clamp(28px, 3.6vw, 42px); }
.climat-text p { font-size: 15.5px; line-height: 1.75; color: var(--text); margin-top: 16px; }
.climat-map { background: linear-gradient(135deg, #2b6cb0, #1c4b66); aspect-ratio: 4/3; border-radius: 4px; position: relative; padding: 38px; color: #fff; display: flex; flex-direction: column; justify-content: space-between; }
.climat-map .lbl { font-size: 11px; text-transform: uppercase; letter-spacing: .1em; opacity: .8; }
.climat-map .vil { font-size: 40px; font-weight: 700; line-height: 1; margin-top: 8px; }
.climat-map .sub { font-size: 13px; opacity: .85; margin-top: 6px; }
.climat-map .area { font-size: 11px; opacity: .75; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.2); }
.local-aides { padding: 92px 0; background: #fff; }
.aideloc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 44px; }
.aideloc-card { background: var(--bg-2); border: 1px solid var(--line); border-radius: 4px; padding: 28px 26px; }
.aideloc-issuer { font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: var(--orange); font-weight: 700; margin-bottom: 10px; }
.aideloc-card h4 { font-weight: 700; font-size: 16px; color: var(--primary); margin: 4px 0 12px; line-height: 1.3; }
.aideloc-card p { font-size: 13.5px; line-height: 1.6; color: var(--text); margin: 0 0 12px; }
.aideloc-card .src { display: block; font-size: 11px; color: var(--text); opacity: .7; padding-top: 10px; border-top: 1px solid var(--line); }
.peri-sec { padding: 92px 0; background: var(--bg-2); }
.peri-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 36px; }
.peri-card { background: #fff; border: 1px solid var(--line); border-radius: 4px; padding: 20px 22px; display: block; text-decoration: none; transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease; }
.peri-card:hover { border-color: var(--orange); transform: translateY(-2px); box-shadow: var(--shadow-md); }
.peri-name { font-weight: 700; font-size: 16px; color: var(--primary); margin-bottom: 4px; }
.peri-distance { font-size: 11px; color: var(--orange); text-transform: uppercase; letter-spacing: .05em; font-weight: 600; }
.peri-cov { margin-top: 28px; font-size: 14px; line-height: 1.7; color: var(--text); }
.peri-cov strong { color: var(--primary); }
.local-faq { padding: 92px 0; background: #fff; }
.faq-l { max-width: 880px; margin: 0 auto; }
.faq-l-item { border: 1px solid var(--line); border-radius: 4px; margin-bottom: 10px; overflow: hidden; }
.faq-l-item summary { padding: 22px 26px; font-weight: 500; font-size: 16px; cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; color: var(--primary); }
.faq-l-item summary::-webkit-details-marker { display: none; }
.faq-l-item summary .pm { width: 26px; height: 26px; border: 1.5px solid var(--orange); color: var(--orange); border-radius: 50%; display: grid; place-items: center; font-size: 16px; font-weight: 300; transition: transform .2s ease; }
.faq-l-item[open] summary .pm { background: var(--orange); color: #fff; transform: rotate(45deg); }
.faq-l-item div.a { padding: 0 26px 22px; color: var(--text); font-size: 15px; line-height: 1.7; }
.local-cta { padding: 88px 0; background: var(--orange); color: #fff; text-align: center; }
.local-cta h2 { color: #fff; font-size: clamp(32px, 5vw, 52px); margin-bottom: 16px; }
.local-cta h2 .ital { color: var(--primary); font-style: italic; }
.local-cta p { font-size: 17px; opacity: .92; margin-bottom: 30px; max-width: 560px; margin-inline: auto; }
.local-cta .row { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
@media (max-width: 1024px) { .local-hero-grid, .climat-grid, .edito-grid { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .aideloc-grid, .peri-grid { grid-template-columns: 1fr; } }
.has-mega .mega::before { content: ''; position: absolute; left: 0; right: 0; top: -30px; height: 30px; }

/* === Bloc maillage local "Nous intervenons partout" (pages prestation) === */
.msh-villes-block { background: var(--primary); color: #fff; padding: 70px 0; }
.msh-villes-block .mvb-head { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 10px; margin-bottom: 28px; }
.msh-villes-block .mvb-title { font-weight: 700; font-size: 15px; text-transform: uppercase; letter-spacing: .12em; color: var(--orange); }
.msh-villes-block .mvb-sub { font-size: 13px; color: rgba(255,255,255,.6); }
.msh-villes-block .mvb-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.msh-villes-block .mvb-card { display: flex; align-items: center; gap: 10px; padding: 18px 20px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); border-radius: 4px; color: #fff; text-decoration: none; font-weight: 500; font-size: 15px; transition: background-color .2s ease, border-color .2s ease, transform .2s ease; }
.msh-villes-block .mvb-card:hover { background: var(--orange); border-color: var(--orange); transform: translateY(-2px); }
.msh-villes-block .mvb-pin { width: 16px; height: 16px; color: var(--orange); flex-shrink: 0; }
.msh-villes-block .mvb-card:hover .mvb-pin { color: #fff; }
@media (max-width: 1024px) { .msh-villes-block .mvb-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px) { .msh-villes-block .mvb-grid { grid-template-columns: repeat(2, 1fr); } }
/* Crédit photo ville (pages locales prestation×ville) */
.local-hero{position:relative;}
.local-hero .local-hero-credit{position:absolute;right:12px;bottom:10px;z-index:4;font-size:11px;line-height:1.3;color:rgba(255,255,255,.72);background:rgba(11,31,59,.42);padding:3px 9px;border-radius:5px;pointer-events:none;}
@media(max-width:640px){.local-hero .local-hero-credit{font-size:10px;right:8px;bottom:8px;}}
/* CTA milieu de page + CTA aides (pages locales prestation×ville) */
.local-cta-mid{padding:4px 0 38px;}
.local-cta-mid .ctam-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-left:5px solid var(--orange);border-radius:16px;padding:22px 28px;box-shadow:0 10px 30px rgba(28,36,75,.07);}
.local-cta-mid .ctam-txt{display:flex;flex-direction:column;gap:5px;flex:1;min-width:240px;}
.local-cta-mid .ctam-txt strong{font-size:20px;color:var(--primary);line-height:1.25;}
.local-cta-mid .ctam-txt span{color:var(--text);font-size:14px;}
.local-cta-mid .ctam-act{display:flex;gap:10px;flex-wrap:wrap;}
.local-aides .aides-cta{margin-top:30px;text-align:center;background:var(--bg);border:1px dashed var(--line);border-radius:14px;padding:24px;}
.local-aides .aides-cta p{margin:0 auto 14px;color:var(--text);font-size:15px;max-width:700px;line-height:1.6;}
.local-aides .aides-cta strong{color:var(--primary);}
@media(max-width:640px){.local-cta-mid .ctam-inner{flex-direction:column;align-items:flex-start;}.local-cta-mid .ctam-act{width:100%;}.local-cta-mid .ctam-act .btn{flex:1;text-align:center;justify-content:center;}}
/* Bandeau certifications footer (logos officiels RGE + Maître Artisan) */
.footer .f-certs{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:14px 34px;background:#fff;border-radius:14px;padding:18px 28px;margin-bottom:40px;}
.footer .f-certs-lbl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text);}
.footer .f-certs-logos{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:22px 30px;}
.footer .f-certs-logos img{height:52px;width:auto;display:block;}
.footer .f-bottom-cert{font-size:11px;color:rgba(255,255,255,.55);}
@media(max-width:640px){.footer .f-certs{gap:12px 20px;padding:16px;margin-bottom:30px;}.footer .f-certs-logos{gap:16px 22px;}.footer .f-certs-logos img{height:40px;}}
/* Bandeau certifications sous le hero (accueil) — logos officiels */
.msh-certs-top{background:#fff;border-bottom:1px solid var(--line);padding:24px 0;}
.msh-certs-top .mct-inner{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;}
.msh-certs-top .mct-txt{display:flex;flex-direction:column;gap:3px;}
.msh-certs-top .mct-eyebrow{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--orange);}
.msh-certs-top .mct-title{font-size:18px;color:var(--primary);font-weight:600;line-height:1.2;}
.msh-certs-top .mct-sub{font-size:13px;color:var(--text);}
.msh-certs-top .mct-logos{display:flex;align-items:center;gap:28px;flex-wrap:wrap;}
.msh-certs-top .mct-logos img{height:58px;width:auto;display:block;}

/* ============================================================
   BLOCS PARTAGÉS PAGES CATÉGORIE (v1.5.42)
   Variable --cat = couleur de l'univers (fallback orange).
   ============================================================ */

/* — Tableau comparatif (même esprit que le comparatif home) — */
.cmp-wrap{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;overflow-x:auto;box-shadow:var(--shadow-sm);}
.cmp{width:100%;border-collapse:collapse;font-size:14px;min-width:760px;}
.cmp th,.cmp td{padding:16px 18px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top;}
.cmp thead th{background:var(--primary);color:#fff;font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;}
.cmp thead th:first-child{background:var(--primary-deep);}
.cmp tbody tr:last-child th,.cmp tbody tr:last-child td{border-bottom:0;}
.cmp tbody tr:hover th,.cmp tbody tr:hover td{background:var(--bg);}
.cmp th[scope=row]{font-weight:700;color:var(--primary);}
.cmp th[scope=row] a{color:inherit;text-decoration:none;}
.cmp th[scope=row] a:hover{color:var(--cat,var(--orange));text-decoration:underline;}
.cmp th[scope=row] .sub{display:block;font-size:11.5px;font-weight:400;color:var(--text);opacity:.72;margin-top:3px;}
.cmp .num{font-variant-numeric:tabular-nums;white-space:nowrap;}
.cmp tr.reco th[scope=row],.cmp tr.reco td{background:color-mix(in srgb,var(--cat,var(--c-chauffer)) 8%,#fff);}
.cmp tr.reco th[scope=row]{box-shadow:inset 3px 0 0 var(--cat,var(--c-chauffer));}
.cmp tr.reco:hover th[scope=row],.cmp tr.reco:hover td{background:color-mix(in srgb,var(--cat,var(--c-chauffer)) 13%,#fff);}
.cmp-tag-reco{display:inline-block;margin-top:7px;padding:2px 9px;border-radius:999px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:var(--cat,var(--c-chauffer));color:#fff;}
.cmp-pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:700;background:var(--sage);color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap;}

/* — Bloc maillage local / pastilles villes (global, esprit partagé) — */
.local-mesh{background:linear-gradient(135deg,#fff 0%,#FBF8F4 100%);border-left:4px solid var(--orange);border-radius:8px;padding:30px 34px;box-shadow:var(--shadow-sm);}
.local-mesh-eyebrow{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--orange);margin-bottom:8px;}
.local-mesh h3{font-family:'Roboto Flex';font-size:22px;font-weight:700;color:var(--primary);margin-bottom:10px;}
.local-mesh p{font-size:14.5px;color:var(--text);margin-bottom:18px;line-height:1.65;max-width:760px;}
.local-mesh-cities{display:flex;flex-wrap:wrap;gap:10px;}
.local-mesh-cities a{display:inline-flex;align-items:center;padding:9px 16px;background:#fff;border:1px solid var(--line);border-radius:999px;font-size:13.5px;color:var(--primary);font-weight:600;text-decoration:none;transition:background-color .2s ease,color .2s ease,border-color .2s ease;}
.local-mesh-cities a:hover{background:var(--orange);color:#fff;border-color:var(--orange);}
.local-mesh-cities a.soon{opacity:.55;cursor:default;}
.local-mesh-cities a.soon:hover{background:#fff;color:var(--primary);border-color:var(--line);}

/* — Cartes aides chiffrées (réutilisables) — */
.aides-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;max-width:980px;margin:0 auto;}
.aides-grid .aide-card{background:linear-gradient(135deg,#fff 0%,#FBF8F4 100%);border:1px solid var(--line);border-left:4px solid var(--cat,var(--orange));border-radius:0 10px 10px 0;padding:22px 24px;box-shadow:var(--shadow-sm);transition:transform .2s ease,box-shadow .2s ease;}
.aides-grid .aide-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);}
.aides-grid .aide-name{font-size:11.5px;color:var(--cat,var(--orange));text-transform:uppercase;letter-spacing:.08em;font-weight:700;margin-bottom:8px;}
.aides-grid .aide-amount{font-family:'Roboto Flex';font-size:23px;font-weight:800;color:var(--primary);line-height:1.05;margin-bottom:8px;font-variant-numeric:tabular-nums;}
.aides-grid .aide-desc{font-size:13.5px;color:var(--text);line-height:1.55;}

/* — CTA final (navy, réutilisable par univers) — */
.cta-final{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-deep) 100%);color:#fff;padding:76px 24px;border-radius:0;text-align:center;box-shadow:none;width:auto;max-width:none;margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);}
.cta-final::before{content:'';position:absolute;top:-42%;right:-12%;width:340px;height:340px;background:radial-gradient(circle,color-mix(in srgb,var(--cat,var(--orange)) 40%,transparent) 0%,transparent 70%);pointer-events:none;}
.cta-final>*{position:relative;}
.cta-final-eyebrow{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#fff;margin-bottom:18px;}
.cta-final h2{font-family:'Roboto Flex';font-size:clamp(28px,3.4vw,40px);line-height:1.08;color:#fff;margin:0 auto 14px;max-width:820px;}
.cta-final h2 em{font-style:italic;font-weight:500;color:var(--cat,var(--orange));}
.cta-final p{font-size:15.5px;color:rgba(255,255,255,.82);max-width:600px;margin:0 auto 22px;line-height:1.6;}
.cta-final-chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:0 auto 28px;max-width:900px;}
.cta-final-chips span{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);font-size:12.5px;font-weight:600;color:rgba(255,255,255,.92);}
.cta-final-chips span::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--cat,var(--orange));flex:none;}
.cta-final-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.cta-final .btn-primary{background:var(--cat,var(--orange));border-color:var(--cat,var(--orange));}
.cta-final .btn-primary:hover{filter:brightness(1.08);transform:translateY(-2px);}
@media(max-width:600px){.cta-final{padding:40px 22px;}}

/* — Logos de certification réels (remplacent les pastilles texte) — */
.certif-logo-img{height:58px;width:auto;max-width:104px;display:block;object-fit:contain;}
@media(max-width:640px){.certif-logo-img{height:46px;max-width:84px;}}

/* — Méga-menu : pont de survol robuste (header plus haut depuis le logo agrandi) —
   Bande invisible sous chaque libellé, large comme l'item (pas de gêne pour les voisins),
   active uniquement au survol → ne bloque aucun clic quand le menu est fermé. */
.nav .has-mega{position:relative;}
.nav .has-mega::after{content:'';position:absolute;left:0;right:0;top:100%;height:72px;pointer-events:none;}
.nav .has-mega:hover::after,.nav .has-mega:focus-within::after{pointer-events:auto;}

/* Garde-fou : la bande CTA full-bleed (100vw) ne doit pas créer de scroll horizontal (largeur scrollbar). overflow-x:clip (et non hidden) ne casse pas le header sticky. Doit être sur html (conteneur de scroll du document). */
html{overflow-x:clip;}
body{overflow-x:clip;}

/* — FAB « Appeler / Devis » (injecté par partials.js après le footer) :
   sans position il tombait dans le flux = bande blanche sous le footer.
   Pages maquettes : déjà sticky-cta + help-box → on masque le FAB.
   Pages locales (msh-local-page) : seul CTA flottant → fixed. */
body:not(.msh-local-page) .fab{display:none;}
.msh-local-page .fab{position:fixed;right:18px;bottom:18px;z-index:85;display:flex;gap:10px;}
.msh-local-page .fab .btn{box-shadow:0 8px 24px rgba(28,36,75,.20);}
@media(max-width:640px){
  .msh-local-page .fab{left:0;right:0;bottom:0;gap:0;}
  .msh-local-page .fab .btn{flex:1;border-radius:0;box-shadow:none;justify-content:center;padding:15px;}
}
@media(max-width:820px){.msh-certs-top .mct-inner{flex-direction:column;align-items:flex-start;gap:18px;}.msh-certs-top .mct-logos{gap:18px;}.msh-certs-top .mct-logos img{height:46px;}}

/* ===== Bloc Aides de l'Etat reutilisable (pages prestations) ===== */
.btn-peach{background:var(--peach);color:var(--primary);border-color:var(--peach)}
.btn-peach:hover{background:#fff;border-color:#fff}
.msha{position:relative;padding:64px 0;background:var(--primary);color:#fff;overflow:hidden;isolation:isolate}
.msha::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at right,rgba(230,111,39,.18),transparent 60%);z-index:-1}
.msha-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:56px;align-items:center}
.msha-text h2{color:#fff;font-size:clamp(26px,3.2vw,38px);line-height:1.12;margin:0}
.msha-text h2 .ital{color:var(--peach)}
.msha-text p{font-size:15.5px;opacity:.85;margin:14px 0 24px;max-width:540px;line-height:1.55}
.msha-cta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:20px}
.msha-source{font-size:12px;opacity:.55;margin:0}
.msha-source a{color:var(--peach);text-decoration:underline}
.msha-card{background:#fff;color:var(--primary);border-radius:4px;padding:26px 28px;box-shadow:var(--shadow-lg)}
.msha-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:12px}
.msha-card-head .ttl{font-weight:700;font-size:14px;color:var(--primary)}
.msha-card-head .tag{background:var(--sage);color:var(--primary);font-size:10px;padding:3px 9px;border-radius:2px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
.msha-line{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 0;border-bottom:1px dashed var(--line);font-size:13.5px}
.msha-line:last-of-type{border-bottom:0}
.msha-line .nm{color:var(--text)}
.msha-line .vl{font-family:'Roboto Flex';font-weight:700;font-size:16px;color:var(--primary);font-variation-settings:"wdth" 85;white-space:nowrap}
.msha-total{margin-top:10px;padding:14px 16px;background:var(--orange);border-radius:2px;color:#fff;display:flex;justify-content:space-between;align-items:center;gap:12px}
.msha-total .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:500}
.msha-total .num{font-family:'Roboto Flex';font-size:22px;font-weight:700;line-height:1;font-variation-settings:"wdth" 85}
@media(max-width:900px){.msha{padding:48px 0}.msha-grid{grid-template-columns:1fr;gap:36px}}