/* ==========================================================
   Débarras de Belgique — pages intérieures (DESIGN_B, frontend 2)
   Réutilise les tokens du frontend 1 (custom.css) avec valeurs de repli.
   ========================================================== */
:root{
  --red:var(--c-red-600,#df1119);--red-700:var(--c-red-700,#b30d14);--red-50:var(--c-red-50,#fff4f4);
  --navy:var(--c-navy-800,#04223e);--navy-700:var(--c-navy-700,#0b3358);--navy-50:#eef3f8;--navy-100:#dce6f0;
  --amber-50:#fff6e0;--amber-700:#7a4a00;--green-700:var(--c-success,#0f7a3e);
  --ink:var(--c-ink,#1b2733);--read-color:#2f3a45;--muted:#5d6670;--line:var(--c-line,#e7e1d8);--sand:var(--c-sand-100,#f8f5f1);
  --read-size:clamp(1.0625rem,1rem + .25vw,1.125rem);--read-lh:1.68;--read-measure:68ch;
  --lead-size:clamp(1.125rem,1.05rem + .35vw,1.25rem);--h2-size:clamp(1.5rem,1.15rem + 1.1vw,2rem);--h3-size:clamp(1.1875rem,1.1rem + .4vw,1.375rem);
  --hh:var(--dbb-bar-h,64px);--sticky-gap:24px;--aside-w:320px;--toc-w:220px;
  --chip-r:4px;--shadow-1:0 8px 24px rgba(4,34,62,.08);--focus:0 0 0 3px #fff,0 0 0 5px var(--navy);
  --bottom-bar-h:0px;
}
@media (max-width:991.98px){:root{--bottom-bar-h:var(--dbb-bar-mobile-h,64px)}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.js-only{display:none!important}
.js .js-only{display:revert!important}
.js .gallery-filter.js-only{display:flex!important}
.nowrap,.price{white-space:nowrap}
:where(.article-section,.devis-page,.zones-page,.realisations-page,.communes-index,.neighbours,.faq-section--b,.service-tabs) :focus-visible{outline:2px solid transparent;box-shadow:var(--focus)}

/* ---------- grille article ---------- */
.article-section{padding:clamp(2rem,1.4rem + 2.5vw,3.5rem) 0}
.l-article{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"lead" "toc" "main" "aside";column-gap:48px}
.l-article__lead{grid-area:lead;min-width:0}
.l-article>.toc{grid-area:toc}
.l-article__main{grid-area:main;min-width:0}
.l-article__aside{grid-area:aside;min-width:0;margin-top:32px}
@media (min-width:576px) and (max-width:991.98px){
  .l-article__aside{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
  .l-article__aside .side-card{margin:0!important}
}
@media (min-width:992px){
  .l-article{grid-template-columns:minmax(0,1fr) var(--aside-w);grid-template-rows:auto auto 1fr;grid-template-areas:"lead aside" "toc aside" "main aside"}
  .l-article__aside{margin-top:0}
}
@media (min-width:1400px){
  .l-article.has-toc:not(.toc-inline){grid-template-columns:var(--toc-w) minmax(0,1fr) var(--aside-w);grid-template-rows:auto 1fr;grid-template-areas:"toc lead aside" "toc main aside";column-gap:40px}
}
.l-article__lead,.l-article>.toc{max-width:var(--read-measure)}
.l-article .prose>*{max-width:var(--read-measure)}
.l-article__lead .answer-first.lead{font-size:var(--lead-size);line-height:1.55;color:var(--ink);font-weight:500;margin:0 0 12px}
.byline{font-size:.875rem;color:var(--muted);margin:0 0 20px}
.byline a{color:inherit;text-decoration:underline;text-underline-offset:.18em}
.key-takeaways__title{font-size:1.1875rem;line-height:1.35;margin:0 0 12px;display:flex;gap:8px;align-items:center}
.key-takeaways__title .i{color:var(--c-red-on-dark,#ff5a60)}
.key-takeaways li{font-size:1rem;line-height:1.5}
@media (min-width:768px){.l-article .key-takeaways ul:has(li:nth-child(5)){display:grid;columns:auto}}

/* ---------- lecture ---------- */
.l-article .prose,.prose--read{font-size:var(--read-size);line-height:var(--read-lh);color:var(--read-color);text-rendering:optimizeLegibility;hanging-punctuation:first}
.prose--narrow{max-width:var(--read-measure)}
.l-article .prose p{margin:0 0 1.1em;text-wrap:pretty}
.l-article .prose h2{font-size:var(--h2-size);line-height:1.22;letter-spacing:-.01em;margin:2.6em 0 .6em;text-wrap:balance;scroll-margin-top:calc(var(--hh) + var(--sticky-gap) + 48px)}
.l-article .prose h2::before{content:"";display:block;width:40px;height:3px;background:var(--red);margin-bottom:.55em}
.l-article .prose>h2:first-child,.l-article .prose>.toc+h2{margin-top:0}
.l-article .prose h3{font-size:var(--h3-size);line-height:1.3;margin:1.8em 0 .45em}
.l-article .prose h2+.answer-first{font-size:1.06em;font-weight:500;color:var(--ink)}
.l-article .prose ul,.l-article .prose ol{padding-left:1.25em;margin:0 0 1.2em}
.l-article .prose li{margin-bottom:.4em}
.l-article .prose strong{color:var(--ink);font-weight:700}
.l-article .prose>.is-wide,.l-article .prose .is-wide{max-width:none}
[id]{scroll-margin-top:calc(var(--hh) + 16px)}
@media (max-width:767.98px){.l-article .prose{hyphens:auto;-webkit-hyphens:auto}.l-article .prose h2{margin-top:2.2em}}

/* ---------- sommaire ---------- */
.toc{background:var(--sand);border-left:4px solid var(--navy);margin:0 0 28px;font-size:.875rem;line-height:1.45}
.toc__title{display:none}
.toc__summary{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:48px;padding:10px 16px;cursor:pointer;font-weight:700;color:var(--navy);list-style:none;font-size:1rem}
.toc__summary::-webkit-details-marker{display:none}
.toc__summary::after{content:"";width:10px;height:10px;border:solid var(--navy);border-width:0 2px 2px 0;transform:rotate(45deg) translateY(-3px);flex:none}
.toc__details[open]>.toc__summary::after{transform:rotate(-135deg)}
.toc__count{margin-left:auto;font-weight:500;color:var(--muted);font-size:.875rem}
.toc__list{list-style:none;margin:0;padding:0 12px 12px 16px;counter-reset:toc}
.toc__list li{counter-increment:toc}
.toc__list li.toc__extra{counter-increment:none}
.toc__list li.toc__extra:first-of-type,.toc__list li:not(.toc__extra)+.toc__extra{border-top:1px solid var(--line);margin-top:6px;padding-top:6px}
.toc__link{display:flex;gap:8px;min-height:32px;align-items:baseline;padding:6px 0 6px 10px;border-left:2px solid transparent;color:var(--muted);text-decoration:none}
.toc__list li:not(.toc__extra) .toc__link::before{content:counter(toc);font-size:.75rem;min-width:16px;color:var(--muted)}
.toc__link:hover{color:var(--red-700)}
.toc__link.is-active{border-left-color:var(--red);color:var(--ink);font-weight:700}
@media (min-width:1400px){
  .l-article.has-toc:not(.toc-inline)>.toc{position:sticky;top:calc(var(--hh) + var(--sticky-gap));align-self:start;max-height:calc(100dvh - var(--hh) - 48px);overflow:auto;background:none;border:0;margin:0;overscroll-behavior:contain}
  .l-article.has-toc:not(.toc-inline)>.toc .toc__title{display:block;font-size:.8125rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--navy);margin:0 0 8px 12px}
  .l-article.has-toc:not(.toc-inline)>.toc .toc__summary{display:none}
  .l-article.has-toc:not(.toc-inline)>.toc .toc__list{padding:0}
}
.toc-pill{position:fixed;left:0;right:0;top:var(--hh);z-index:90;background:#fff;box-shadow:var(--shadow-1);border-bottom:1px solid var(--line)}
.toc-pill[hidden]{display:none}
.toc-pill button{display:flex;align-items:center;gap:8px;width:100%;height:48px;padding:0 16px;background:none;border:0;font:inherit;font-size:.9375rem;color:var(--navy);text-align:left}
.toc-pill__label{font-weight:700}
.toc-pill__current{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.toc-pill__current::before{content:"· " / ""}
.toc-pill button::after{content:"";width:8px;height:8px;border:solid var(--navy);border-width:0 2px 2px 0;transform:rotate(45deg);flex:none}
@media (prefers-reduced-motion:no-preference){.toc-pill{animation:pg-down .2s ease-out}}
@keyframes pg-down{from{transform:translateY(-100%);opacity:0}}
.toc-sheet{border:0;padding:0;margin:auto auto 0;width:100%;max-width:560px;max-height:80dvh;border-radius:12px 12px 0 0;background:#fff;color:var(--ink)}
.toc-sheet::backdrop{background:rgba(4,34,62,.6)}
.toc-sheet__head{position:sticky;top:0;display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#fff;border-bottom:1px solid var(--line)}
.toc-sheet__title{margin:0;font-weight:700;color:var(--navy)}
.toc-sheet__close{min-height:44px;padding:0 14px;border:1px solid var(--navy-100);background:#fff;border-radius:var(--chip-r);font:inherit;font-weight:500;color:var(--navy)}
.toc-sheet .toc__list{padding:8px 16px 24px;counter-reset:toc}
.toc-sheet .toc__link{min-height:44px;align-items:center;font-size:1rem}
@media (min-width:1400px){.toc-pill{display:none!important}}

/* ---------- barre « Nos services à … » ---------- */
.service-tabs{background:#fff;border-bottom:1px solid var(--line);padding:12px 0}
.service-tabs__title{font-size:.8125rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 8px}
.service-tabs__list{list-style:none;margin:0;padding:2px;display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-inline:16px;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent)}
.service-tabs__list::-webkit-scrollbar{display:none}
.service-tabs__list li{flex:none;scroll-snap-align:start}
.service-tabs__item{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 16px;border:1px solid var(--navy-100);border-radius:var(--chip-r);font-size:.9375rem;font-weight:500;color:var(--navy);text-decoration:none;white-space:nowrap;background:#fff}
.service-tabs__item .i{color:var(--red)}
.service-tabs__item:hover{border-color:var(--red);color:var(--navy)}
.service-tabs__item.is-current{background:var(--navy);border-color:var(--navy);color:#fff}
.service-tabs__item.is-current .i{color:var(--c-red-on-dark,#ff5a60)}
@media (min-width:1200px){.service-tabs__list{flex-wrap:wrap;-webkit-mask-image:none;mask-image:none;overflow:visible}}

/* ---------- barre latérale ---------- */
.l-article__aside .side-card{margin-bottom:24px}
.side-card__title{font-size:1.1875rem;line-height:1.3}
.side-card--quote .side-card__phone,.side-card--mini .side-card__phone{display:flex;align-items:center;justify-content:center;gap:8px}
.side-card--mini{border-top:4px solid var(--red)!important}
.side-card--mini p{font-size:.9375rem;margin:0 0 12px}
.side-card .btn-outline,.btn-outline{background:#fff!important;color:var(--navy)!important;box-shadow:inset 0 0 0 2px var(--navy)}
.btn-outline::before{background:var(--navy)!important}
.btn-outline:hover{color:#fff!important}
.side-links{list-style:none;padding:0;margin:0}
.side-links li{border-bottom:1px dashed var(--line)}
.side-links a{display:block;padding:8px 0;color:var(--navy);font-weight:500;font-size:.9375rem;line-height:1.4}
.side-links a:hover{color:var(--red-700)}
@media (min-width:992px){
  .aside-sticky{position:sticky;top:calc(var(--hh) + var(--sticky-gap));padding-bottom:8px}
}
@media (min-width:992px) and (max-height:640px){.aside-sticky{position:static}}
@media (max-width:991.98px){.aside-sticky{display:none}}
/* fiche chiffres */
.facts-card__list{margin:0}
.facts-card__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 0;border-bottom:1px dashed var(--line)}
.facts-card__row dt{font-size:.875rem;color:var(--muted);font-weight:500}
.facts-card__row dd{margin:0;font-size:.9375rem;font-weight:700;color:var(--ink);text-align:right;font-variant-numeric:tabular-nums}
.facts-card__row--block{display:block}
.facts-card__row--block dd{text-align:left;margin-top:6px}
.facts-card__src{font-size:.8125rem;color:var(--muted);margin:10px 0 0;line-height:1.45}

/* ---------- puces ---------- */
.chips{list-style:none;margin:0 0 1em;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.l-article .prose .chips{padding:0}
.chips li{margin:0;padding:4px 10px;background:var(--navy-50);border-radius:var(--chip-r);font-size:.875rem;line-height:1.4;color:var(--ink)}
.chips--sm li{font-size:.8125rem;padding:2px 8px;font-weight:500}
.chips__cp{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:2px}
.chips a{color:var(--navy);text-decoration:none;font-weight:500}
.chips-more{margin:-.5em 0 1em}
.chips-more>summary{display:inline-flex;align-items:center;min-height:32px;cursor:pointer;color:var(--red-700);font-weight:700;font-size:.875rem;text-decoration:underline;text-underline-offset:.18em}
.chips-more[open]>summary{margin-bottom:6px}
.facts-card .chips{margin:0}
.facts-card .chips-more{margin:6px 0 0}

/* ---------- encadrés ---------- */
.callout{margin:1.5em 0;padding:16px 20px;background:var(--red-50);border-left:4px solid var(--red)}
.callout__title{display:flex;align-items:center;gap:8px;margin:0 0 6px!important;font-size:.8125rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--red-700)}
.callout>:last-child{margin-bottom:0!important}
.callout--info{background:var(--navy-50);border-left-color:var(--navy)}
.callout--info .callout__title,.callout--legal .callout__title{color:var(--navy)}
.callout--warn{background:var(--amber-50);border-left-color:var(--amber-700)}
.callout--warn .callout__title{color:var(--amber-700)}
.callout--legal{background:#fff;border:1px solid var(--line);border-left:4px solid var(--navy)}
@media (min-width:768px){.callout{padding:20px 24px}}

/* ---------- tableaux ---------- */
.table-figure{margin:1.4em 0 1.6em}
.table-figure .table-wrap{margin:0;border:1px solid var(--line);overflow-x:auto;background:#fff}
.table-wrap--scroll{background:linear-gradient(90deg,#fff 30%,rgba(255,255,255,0)) left/40px 100% no-repeat local,linear-gradient(270deg,#fff 30%,rgba(255,255,255,0)) right/40px 100% no-repeat local,radial-gradient(farthest-side at 0 50%,rgba(4,34,62,.18),transparent) left/14px 100% no-repeat scroll,radial-gradient(farthest-side at 100% 50%,rgba(4,34,62,.18),transparent) right/14px 100% no-repeat scroll!important}
.prose table.dtable,.dtable{display:table;width:100%;border-collapse:collapse;margin:0;font-size:.9375rem;line-height:1.45;background:transparent}
.table-wrap--scroll .dtable{min-width:600px}
.dtable caption{caption-side:top;text-align:left;padding:0 0 10px;font-size:.9375rem;font-weight:700;color:var(--ink)}
.dtable th,.dtable td{padding:12px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.dtable thead th{background:var(--navy);color:#fff;font-size:.875rem;font-weight:700}
.dtable tbody th{font-weight:500;color:var(--ink);background:transparent}
.dtable tbody tr:nth-child(even)>*{background:var(--navy-50)}
.dtable tbody tr:nth-child(odd)>*{background:#fff}
.table-wrap--scroll .dtable tbody tr>*{background-color:transparent}
.dtable .num{text-align:right;font-variant-numeric:tabular-nums;font-weight:700;color:var(--navy)}
.dtable thead .num{color:#fff}
.dtable .is-yes::before,.dtable .is-no::before{display:inline-block;width:1.1em;font-weight:700;margin-right:4px}
.dtable .is-yes::before{content:"✓" / "";color:var(--green-700)}
.dtable .is-no::before{content:"—" / "";color:var(--muted)}
.dtable .is-no{color:var(--muted)}
.table-note{font-size:.875rem;color:var(--muted);margin-top:8px;line-height:1.5}
.table-note a{color:var(--red-700)}
@media (max-width:575.98px){.dtable{font-size:.875rem}.dtable th,.dtable td{padding:10px 12px}}

/* ---------- CTA intermédiaire ---------- */
.cta-inline{margin:2em 0;padding:20px 24px;background:#fff;border:1px solid var(--line);border-left:6px solid var(--red);max-width:var(--read-measure)}
.cta-inline__title{font-size:1.1875rem;font-weight:700;line-height:1.35;color:var(--navy);margin:0 0 4px!important}
.cta-inline__text{margin:0 0 14px!important;color:var(--read-color);font-size:1rem}
.cta-inline__btns{display:flex;flex-wrap:wrap;gap:10px}
.cta-inline__btns .default-btn{text-decoration:none!important}
.cta-inline--compact{padding:14px 16px;margin:0 0 24px}
.cta-inline--compact .cta-inline__title{font-size:1rem;margin-bottom:10px!important}
@media (max-width:575.98px){.cta-inline__btns .default-btn{flex:1 1 100%;justify-content:center}}
@media (min-width:992px){.cta-inline--compact{display:none}}

/* ---------- 3 modes de paiement (RICH.payModes) — aucun montant ---------- */
.paymodes{--pm-pay:var(--green-700);--pm-pay-50:#e9f6ef;--pm-free:var(--red);--pm-free-50:var(--red-50);--pm-fixed:var(--navy);--pm-fixed-50:var(--navy-50);
  container-type:inline-size;margin:1.6em 0 2em;color:var(--ink);font-size:1rem;line-height:1.5}
.l-article .prose .paymodes{max-width:none}
.paymodes__title,.l-article .prose .paymodes__title{font-size:var(--h2-size);line-height:1.22;margin:0 0 .5em;color:var(--navy)}
.l-article .prose .paymodes__title::before{content:none}
.paymodes__lead{max-width:var(--read-measure);margin:0 0 20px}
.paymodes__lead p,.l-article .prose .paymodes__lead p{margin:0;font-size:var(--lead-size);color:var(--ink)}
.paymodes__scale{display:none}
.paymodes__list,.l-article .prose .paymodes__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:12px}
.paymode,.l-article .prose .paymode{position:relative;margin:0;padding:18px 18px 18px 76px;background:#fff;border:1px solid var(--line);border-top:4px solid var(--pm-c);border-radius:6px;box-shadow:var(--shadow-1);min-width:0}
.paymode--pay{--pm-c:var(--pm-pay);--pm-bg:var(--pm-pay-50)}
.paymode--free{--pm-c:var(--pm-free);--pm-bg:var(--pm-free-50)}
.paymode--fixed{--pm-c:var(--pm-fixed);--pm-bg:var(--pm-fixed-50)}
.paymode__icon{position:absolute;left:18px;top:18px;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--pm-bg);color:var(--pm-c)}
.paymode__icon .i{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.paymode__name,.l-article .prose .paymode__name{font-size:1.25rem;line-height:1.25;margin:0 0 2px;color:var(--pm-c);font-weight:700}
.paymode--free .paymode__name{color:var(--red-700)}
.paymode__when,.l-article .prose .paymode__when{margin:0 0 8px;font-size:.8125rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.paymode__text,.l-article .prose .paymode__text{margin:0;font-size:.9688rem;color:var(--read-color);text-wrap:pretty}
.paymodes__note,.l-article .prose .paymodes__note{display:flex;gap:10px;align-items:flex-start;margin:16px 0 0;padding:12px 16px;background:var(--sand);border-left:4px solid var(--navy);font-size:.9375rem;color:var(--ink);max-width:none}
.paymodes__note .i{flex:none;width:20px;height:20px;margin-top:2px;color:var(--green-700);fill:none;stroke:currentColor;stroke-width:2}
.paymodes__cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.paymodes__cta .default-btn{text-decoration:none!important}
@media (max-width:575.98px){.paymodes__cta .default-btn{flex:1 1 100%;justify-content:center}}
@container (min-width:640px){
  .paymodes__scale{display:flex;justify-content:space-between;gap:16px;margin:0 0 10px;padding-bottom:10px;font-size:.8125rem;font-weight:700;color:var(--muted);
    background:linear-gradient(90deg,var(--pm-pay),var(--pm-free),var(--pm-fixed)) bottom/100% 3px no-repeat}
  .paymodes__scale span:last-child{text-align:right}
  .paymodes__list,.l-article .prose .paymodes__list{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
  .paymode,.l-article .prose .paymode{padding:20px;display:flex;flex-direction:column}
  .paymode__icon{position:static;margin-bottom:12px}
}
.paymodes-section{padding:clamp(2rem,1.5rem + 2vw,3rem) 0 8px}
.paymodes-section .paymodes{margin:0}
.dbb-pay .paymodes{margin:8px auto 0;max-width:1080px}
.dbb-pay .paymodes__cta{justify-content:center}
.dbb-pay__more{text-align:center;margin:20px 0 0}

/* ---------- checklist ---------- */
.checklist{margin:1.2em 0 1.6em}
.checklist__head{display:none;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
.js .checklist__head{display:flex}
.checklist__progress{margin:0!important;font-weight:700;color:var(--navy);font-size:.9375rem;font-variant-numeric:tabular-nums}
.checklist__print{min-height:44px;padding:0 14px;border:1px solid var(--navy-100);background:#fff;border-radius:var(--chip-r);font:inherit;font-size:.875rem;font-weight:500;color:var(--navy);cursor:pointer}
.l-article .prose .checklist__list,.checklist__list{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.checklist__list li{margin:0}
.checklist__item{display:flex;align-items:flex-start;gap:12px;min-height:48px;padding:12px 14px;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:1rem;line-height:1.45;margin:0}
.checklist__box{-webkit-appearance:none;appearance:none;flex:none;width:22px;height:22px;margin:0;border:2px solid var(--navy);border-radius:3px;background:#fff center/14px no-repeat;cursor:pointer}
.checklist__box:checked{background-color:var(--green-700);border-color:var(--green-700);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")}
.checklist__box:checked+span{color:var(--muted);text-decoration:line-through;text-decoration-color:rgba(0,0,0,.35)}
.checklist__item:has(.checklist__box:focus-visible){box-shadow:var(--focus)}
@media print{
  html.print-checklist body *{visibility:hidden!important}
  html.print-checklist .checklist.is-printing,html.print-checklist .checklist.is-printing *{visibility:visible!important}
  html.print-checklist .checklist.is-printing{position:absolute;left:0;top:0;width:100%}
  html.print-checklist .checklist.is-printing::before{content:attr(data-title);display:block;font:700 18pt/1.3 sans-serif;margin-bottom:12pt}
  html.print-checklist .checklist__head{display:none!important}
  html.print-checklist .checklist__box{background:#fff!important;border-color:#000!important}
  html.print-checklist .checklist__box+span{text-decoration:none!important;color:#000!important}
}

/* ---------- avant / après (composant .dbb-ba du frontend 1) ---------- */
.ba-wrap{margin:2em 0}
.ba-wrap .dbb-ba__frame{aspect-ratio:4/5;max-width:520px;margin-inline:auto}
.ba-wrap .dbb-ba__cap{max-width:520px;margin:10px auto 0;font-size:.875rem;color:var(--muted);line-height:1.45}
.ba-cmp--feature{margin:0 0 32px}

/* ---------- galerie + lightbox ---------- */
ul.gallery-grid{list-style:none;padding:0}
ul.gallery-grid li{margin:0}
.gallery-strip{padding:clamp(2rem,1.5rem + 2vw,3rem) 0}
.gallery-strip__title{font-size:var(--h3-size);margin:0 0 4px}
.gallery-more{margin:0}
.gallery-more a{font-weight:700;color:var(--red-700);text-decoration:underline;text-underline-offset:.18em}
.lb{border:0;padding:0;background:transparent;max-width:100vw;max-height:100dvh;width:100vw;height:100dvh;margin:0;color:#fff}
.lb::backdrop{background:rgba(4,34,62,.92)}
.lb[open]{display:grid;place-items:center}
.lb__fig{margin:0;display:grid;justify-items:center;gap:10px;padding:56px 16px 64px}
.lb__img{max-width:min(92vw,1050px);max-height:78dvh;width:auto;height:auto;object-fit:contain;background:var(--navy-700)}
.lb__caption{font-size:.9375rem;text-align:center;max-width:60ch;color:#fff}
.lb__count{position:fixed;top:16px;left:16px;margin:0;font-weight:700;font-variant-numeric:tabular-nums}
.lb__btn{position:fixed;width:48px;height:48px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:1.75rem;line-height:1;cursor:pointer;display:grid;place-items:center}
.lb__btn:hover{background:rgba(255,255,255,.28)}
.lb__btn:focus-visible{outline:3px solid #fff;outline-offset:2px}
.lb__close{top:12px;right:12px}
.lb__prev{left:12px;top:50%;margin-top:-24px}
.lb__next{right:12px;top:50%;margin-top:-24px}
@media (max-width:767.98px){.lb__prev,.lb__next{top:auto;bottom:12px;margin:0}}
html.lb-open{overflow:hidden}
@media (prefers-reduced-motion:no-preference){.lb[open] .lb__img{animation:pg-fade .15s ease-out}}
@keyframes pg-fade{from{opacity:0}}

/* ---------- FAQ accessible ---------- */
.faq-section--b .faq-wrap{max-width:760px;margin:0 auto}
.faq-section--b .faq-list{max-width:none}
.faq-section--b .faq-item{background:#fff;border:1px solid var(--line);border-radius:var(--chip-r)}
.faq-section--b .faq-item:has([aria-expanded=true]){border-color:var(--navy);box-shadow:0 6px 18px rgba(4,34,62,.08)}
.faq-item__q{margin:0;font-size:1.125rem;line-height:1.4}
.faq-item__btn{position:relative;display:block;width:100%;padding:18px 64px 18px 20px;background:none;border:0;text-align:left;font:inherit;font-weight:700;color:var(--navy);cursor:pointer;border-radius:var(--chip-r)}
.faq-item__btn:hover{color:var(--red-700)}
.faq-item__btn .faq-item__icon{position:absolute;right:16px;top:50%;width:32px;height:32px;margin-top:-16px;background:var(--navy);border-radius:2px}
.faq-item__btn .faq-item__icon::before,.faq-item__btn .faq-item__icon::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:2px;margin:-1px 0 0 -7px;background:#fff}
.faq-item__btn .faq-item__icon::after{transform:rotate(90deg)}
.faq-item__btn[aria-expanded=true] .faq-item__icon{background:var(--red)}
.faq-item__btn[aria-expanded=true] .faq-item__icon::after{transform:rotate(0)}
@media (prefers-reduced-motion:no-preference){.faq-item__btn .faq-item__icon::after{transition:transform .2s}}
.faq-section--b .faq-item__a{padding:0 20px 18px;font-size:1rem;line-height:1.65;color:var(--read-color)}
.faq-groups{margin-bottom:24px}
.faq-groups .chips li{padding:0;background:none}
.faq-groups .chips a{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:1px solid var(--navy-100);border-radius:var(--chip-r);background:#fff}
.faq-section--page{padding:clamp(2rem,1.5rem + 2vw,3.5rem) 0}
.faq-section--page .faq-group-title{max-width:none;margin:40px 0 16px}

/* ---------- communes voisines ---------- */
.neighbours{padding:clamp(2rem,1.5rem + 2vw,3rem) 0;background:var(--sand)}
.neighbours__title{font-size:var(--h2-size);margin:0 0 8px}
.neighbour-cards{list-style:none;margin:16px 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
@media (max-width:575.98px){.neighbour-cards{grid-template-columns:1fr 1fr}}
@media (max-width:359.98px){.neighbour-cards{grid-template-columns:1fr}}
.neighbour-card{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:76px;padding:14px 40px 14px 16px;background:#fff;border:1px solid var(--line);margin:0}
.neighbour-card__link{color:var(--navy);font-weight:700;font-size:1rem;text-decoration:none}
.neighbour-card__link::after{content:"";position:absolute;inset:0}
.neighbour-card__link:focus-visible{box-shadow:none!important}
.neighbour-card:focus-within{box-shadow:var(--focus)}
.neighbour-card__meta{font-size:.875rem;color:var(--muted);margin-top:2px}
.neighbour-card__arrow{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--red)}
.neighbour-card:hover{border-color:var(--red)}
@media (prefers-reduced-motion:no-preference){.neighbour-card__arrow{transition:transform .2s}.neighbour-card:hover .neighbour-card__arrow{transform:translate(4px,-50%)}}
.neighbours__more a{font-weight:700;color:var(--red-700);text-decoration:underline;text-underline-offset:.18em}
@media (max-width:575.98px){.neighbour-card__name{font-size:.9375rem}}

/* ---------- auteur ---------- */
.author-card{display:grid;grid-template-columns:56px 1fr;gap:16px;margin:2.5em 0 0;padding:24px;background:var(--sand);border-top:3px solid var(--navy);max-width:var(--read-measure)}
.author-card img{width:56px;height:56px}
.author-card__title{font-size:1.125rem;margin:0 0 6px}
.author-card p{margin:0 0 8px;font-size:.9375rem;line-height:1.55}
.author-card__meta{color:var(--muted);font-size:.875rem!important}
.author-card__meta a{color:var(--red-700);text-decoration:underline}
.related-guides{padding:clamp(2rem,1.5rem + 2vw,3.5rem) 0;border-top:1px solid var(--line)}
.related-guides__title{font-size:var(--h2-size);margin:0 0 20px}
@supports (animation-timeline:scroll()){
  .read-progress{position:fixed;top:var(--hh);left:0;right:0;height:3px;z-index:95;background:var(--red);transform-origin:0 50%;transform:scaleX(0);animation:pg-grow linear both;animation-timeline:scroll(root)}
  @keyframes pg-grow{to{transform:scaleX(1)}}
}
@media (prefers-reduced-motion:reduce){.read-progress{display:none}}

/* ---------- recherche commune (pages service) ---------- */
.cfinder-band{background:#fff;border-bottom:1px solid var(--line);padding:16px 0}
.commune-finder{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:0}
.commune-finder__label{font-weight:700;color:var(--navy);margin:0}
.commune-finder__field{display:flex;flex:1 1 320px;max-width:560px;gap:8px}
.commune-finder__field input{flex:1;min-width:0;height:48px;padding:0 14px;border:1px solid var(--navy-100);border-radius:var(--chip-r);font:inherit}
.commune-finder__field .default-btn{min-height:48px}

/* ---------- listes de communes ---------- */
.by-province{padding:clamp(2rem,1.5rem + 2vw,3rem) 0}
.by-province__title{font-size:var(--h2-size)}
.by-province__group{border:1px solid var(--line);background:#fff;margin-bottom:8px}
.by-province__group>summary,.arr-group>summary{display:flex;align-items:center;gap:8px;min-height:52px;padding:10px 16px;cursor:pointer;font-weight:700;color:var(--navy);list-style:none}
.by-province__group>summary::-webkit-details-marker,.arr-group>summary::-webkit-details-marker{display:none}
.by-province__group>summary::after,.arr-group>summary::after{content:"";margin-left:auto;width:9px;height:9px;border:solid var(--navy);border-width:0 2px 2px 0;transform:rotate(45deg);flex:none}
.by-province__group[open]>summary::after,.arr-group[open]>summary::after{transform:rotate(-135deg)}
.by-province__n,.arr-group>summary span{font-weight:500;color:var(--muted);font-size:.875rem}
.commune-grid{list-style:none;margin:0 0 20px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:2px 18px}
.by-province__group .commune-grid,.arr-group .commune-grid{padding:4px 16px 12px;margin:0}
.commune-grid li{display:flex;align-items:baseline;gap:6px;padding:8px 0;border-bottom:1px dashed var(--line);font-size:.9375rem;margin:0}
.commune-grid li[hidden]{display:none}
.commune-grid a{color:var(--navy);font-weight:500;text-decoration:none}
.commune-grid a:hover{color:var(--red-700);text-decoration:underline}
.commune-grid .cp{margin-left:auto;color:var(--muted);font-size:.875rem;font-variant-numeric:tabular-nums}
.commune-grid .nl{color:var(--muted);font-size:.8125rem}

/* ---------- filtre de zones ---------- */
.zones-page{padding:clamp(2rem,1.5rem + 2vw,3rem) 0}
.zone-filter{background:var(--navy);color:#fff;padding:14px 16px;margin:24px 0;border-radius:var(--chip-r)}
.zone-filter--sticky{position:sticky;top:var(--hh);z-index:20}
@media (max-height:640px){.zone-filter--sticky{position:static}}
.zone-filter__label{display:block;font-weight:700;margin:0 0 6px;color:#fff}
.zone-filter__field{position:relative;display:flex;align-items:center}
.zone-filter__field>.i{position:absolute;left:14px;color:var(--muted);pointer-events:none}
.zone-filter__field input{width:100%;height:48px;padding:0 48px 0 40px;border:0;border-radius:var(--chip-r);font:inherit;font-size:1rem;color:var(--ink)}
.zone-filter__field input::-webkit-search-cancel-button{display:none}
.zone-filter__clear{position:absolute;right:2px;width:44px;height:44px;border:0;background:none;font-size:1.5rem;line-height:1;color:var(--navy);cursor:pointer}
.zone-filter__count{margin:8px 0 0;font-size:.9375rem;color:rgba(255,255,255,.9)}
.zone-filter__provinces{list-style:none;display:flex;gap:6px;margin:10px 0 0;padding:0 0 2px;overflow-x:auto;scrollbar-width:none}
.zone-filter__provinces::-webkit-scrollbar{display:none}
.zone-filter__provinces li{flex:none}
.zone-filter__provinces a{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border:1px solid rgba(255,255,255,.45);border-radius:var(--chip-r);color:#fff;font-size:.875rem;font-weight:500;white-space:nowrap;text-decoration:none}
.zone-filter__provinces a:hover{background:#fff;color:var(--navy)}
.zone-filter__provinces span{opacity:.85}
.zone-filter.is-searching .zone-filter__provinces{display:none}
@media (min-width:768px){.zone-filter__provinces{flex-wrap:wrap}}
.zone-block{margin:0 0 24px}
.zone-block[hidden],.arr-group[hidden]{display:none}
.zone-block h2{font-size:var(--h3-size);margin:0 0 8px}
.zone-block h2 a{color:var(--navy)}
.zone-block h2 span{font-weight:500;color:var(--muted);font-size:.875rem}
.zone-empty{padding:16px;background:var(--sand);border-left:4px solid var(--navy);display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
.zone-empty[hidden]{display:none}
.communes-index{padding:clamp(2rem,1.5rem + 2vw,3.5rem) 0;background:var(--sand)}
.communes-index__title{font-size:var(--h2-size);margin:0}
.communes-index .zone-filter{margin:16px 0}
.arr-group{border:1px solid var(--line);background:#fff;margin-bottom:8px}

/* ---------- tarifs ---------- */

/* ---------- devis / contact ---------- */
.devis-grid{display:grid;gap:32px}
@media (min-width:992px){.devis-grid{grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:48px}}
.dbb-form fieldset{border:0;padding:0;margin:0 0 24px;min-width:0}
.dbb-form legend{font-size:1rem;font-weight:700;color:var(--navy);margin:0 0 12px;padding:0}
.dbb-form legend:focus{outline:none}
.form-grid{display:grid;gap:16px}
@media (min-width:768px){.form-grid{grid-template-columns:1fr 1fr}.form-grid .f-full{grid-column:1/-1}}
.dbb-form .form-grid input:not([type=checkbox]):not([type=radio]),.dbb-form .form-grid select,.dbb-form .form-grid textarea{width:100%;min-height:48px}
.f-inline{display:flex;flex-wrap:wrap;gap:4px 20px;margin:0!important}
.f-inline legend{width:100%;font-size:.9375rem;margin-bottom:4px}
.f-inline .check,.dbb-form .check{display:flex;align-items:flex-start;gap:8px;min-height:44px;align-items:center;font-weight:400}
.dbb-form .check input{width:20px;height:20px;flex:none;accent-color:var(--navy)}
.req{color:var(--red-700);margin-left:2px}
.form-legend-req{font-size:.875rem;color:var(--muted);margin:0 0 16px}
.field-error{display:flex;gap:6px;margin:6px 0 0;font-size:.875rem;font-weight:500;color:var(--red-700)}
.field-error::before{content:"!" / "";display:inline-grid;place-items:center;flex:none;width:18px;height:18px;border-radius:50%;background:var(--red-700);color:#fff;font-size:.75rem;font-weight:700}
.dbb-form [aria-invalid=true]{border-color:var(--red-700)!important;box-shadow:0 0 0 1px var(--red-700)}
.form-errors{margin:0 0 20px;padding:14px 16px;background:var(--red-50);border-left:4px solid var(--red-700);color:var(--ink)}
.form-errors:focus{outline:2px solid var(--red-700);outline-offset:2px}
.form-errors p{margin:0 0 6px;font-weight:700}
.form-errors ul{margin:0;padding-left:1.2em}
.form-errors a{color:var(--red-700);text-decoration:underline}
.form-steps{list-style:none;counter-reset:st;display:flex;gap:8px;margin:0 0 20px;padding:0}
.form-steps[hidden]{display:none}
.form-steps li{counter-increment:st;flex:1;display:flex;align-items:center;gap:8px;padding-top:8px;border-top:4px solid var(--navy-100);font-size:.875rem;font-weight:500;color:var(--muted)}
.form-steps li::before{content:counter(st) / "";display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--navy-100);color:var(--navy);font-weight:700;font-size:.8125rem;flex:none}
.form-steps li[aria-current],.form-steps li.is-done{border-top-color:var(--red);color:var(--navy)}
.form-steps li[aria-current]{font-weight:700}
.form-steps li[aria-current]::before,.form-steps li.is-done::before{background:var(--navy);color:#fff}
@media (max-width:479.98px){.form-steps li{font-size:0;gap:0}.form-steps li::before{font-size:.8125rem}}
.dbb-form.is-steps .form-step:not(.is-current){display:none}
.form-nav{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.form-nav [hidden]{display:none}
.dbb-form:not(.is-steps) .form-nav [data-prev],.dbb-form:not(.is-steps) .form-nav [data-next]{display:none}
.form-nav [type=submit][aria-busy=true]{opacity:.75;cursor:progress}
@media (max-width:575.98px){.form-nav .default-btn{flex:1 1 100%;justify-content:center}}
.next-steps{list-style:none;counter-reset:ns;margin:0;padding:0;display:grid;gap:10px}
.next-steps li{counter-increment:ns;display:flex;gap:10px;align-items:baseline;font-size:.9375rem;line-height:1.45;color:var(--ink)}
.next-steps li::before{content:counter(ns) / "";display:inline-grid;place-items:center;flex:none;width:26px;height:26px;border-radius:50%;background:var(--navy);color:#fff;font-weight:700;font-size:.8125rem}
.devis-grid__aside .side-card{margin-bottom:24px}
.devis-grid__aside .side-card p{margin:0 0 8px;display:flex;gap:8px;align-items:baseline}
body:has(.dbb-form) .sticky-cta,body:has(.dbb-form) .dbb-mobilebar{display:none!important}
@media (max-width:991.98px){html.pg-nobar .sticky-cta,html.pg-nobar .dbb-mobilebar{visibility:hidden}}

/* ---------- réalisations ---------- */
.realisations-page .prose--narrow{margin:0 0 24px}
.gallery-filter{position:sticky;top:var(--hh);z-index:20;flex-wrap:nowrap;align-items:center;gap:6px;overflow-x:auto;scrollbar-width:none;background:#fff;padding:10px 0;margin:0 0 8px;border-bottom:1px solid var(--line)}
.gallery-filter::-webkit-scrollbar{display:none}
.gallery-filter button{flex:none;min-height:44px;padding:0 14px;border:1px solid var(--navy-100);border-radius:var(--chip-r);background:#fff;font:inherit;font-size:.9375rem;font-weight:500;color:var(--navy);cursor:pointer;white-space:nowrap}
.gallery-filter button[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}
.gallery-filter__count{margin:0 0 0 auto;padding-left:12px;font-size:.875rem;color:var(--muted);white-space:nowrap}
@media (max-height:640px){.gallery-filter{position:static}}
.gallery-group[hidden],.gallery-grid li[hidden]{display:none}
.gallery-title{font-size:var(--h3-size);margin:28px 0 0}

/* ---------- divers ---------- */
.service-detail__fig{margin:0 0 28px}
.service-detail__fig img{width:100%;aspect-ratio:16/9;object-fit:cover;height:auto}
.sitemap-page h2{font-size:var(--h3-size);margin:32px 0 10px}
.province-page .prose{max-width:var(--read-measure)}
.paymodes,.checklist,.cta-inline,.callout__title{hyphens:manual;-webkit-hyphens:manual}
.zone-filter{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}
.zone-filter__label{margin:0}
.zone-filter__field{flex:1 1 300px;min-width:0;max-width:560px}
.zone-filter__count{margin:0}
.zone-filter__provinces{flex:1 1 100%;margin:0}

/* ---------- chantiers réels (cartes, fiche chantier, galerie avant/pendant/après) ---------- */
.ch-cards{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}
.l-article .prose .ch-cards{padding:0;margin:16px 0 1.6em;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.ch-card{position:relative;display:flex;flex-direction:column;margin:0!important;background:#fff;border:1px solid var(--line);border-radius:var(--chip-r);overflow:hidden;transition:border-color .2s,box-shadow .2s}
.ch-card:hover{border-color:var(--red);box-shadow:var(--shadow-1)}
.ch-card:focus-within{box-shadow:var(--focus)}
.ch-card[hidden]{display:none}
.ch-card__media{display:block;aspect-ratio:4/3;background:var(--navy-50);overflow:hidden}
.ch-card__media img{display:block;width:100%;height:100%;object-fit:cover}
.ch-card__media--empty{display:grid;place-items:center;color:var(--navy-100)}
.ch-card__media--empty .i{width:56px;height:56px}
.ch-card__body{display:flex;flex-direction:column;gap:4px;padding:14px 16px 16px}
.ch-card__meta{font-size:.8125rem;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.ch-card__title,.l-article .prose .ch-card__title{font-size:1.0625rem;line-height:1.3;margin:0;font-weight:700}
.ch-card__link,.l-article .prose .ch-card__link{color:var(--navy);text-decoration:none}
.ch-card__link::after{content:"";position:absolute;inset:0}
.ch-card__link:focus-visible{box-shadow:none!important;outline:0}
.ch-card__bien{font-size:.9375rem;color:var(--read-color);line-height:1.45}
.ch-section{padding:clamp(2rem,1.5rem + 2vw,3.5rem) 0}
.ch-section--alt{background:var(--sand)}
.ch-section__title{font-size:var(--h2-size);margin:0 0 6px}
.ch-section__more{margin:20px 0 0}
.ch-recent{margin:0 0 32px}
.ch-recent__lead{color:var(--muted);margin:4px 0 0;max-width:68ch}
.ch-recent .ch-filter{margin-top:12px}
.ch-recent__next{margin-top:8px}
/* fiche chantier */
.ch-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:0;margin:16px 0 24px;background:#fff;border:1px solid var(--line);border-radius:var(--chip-r);overflow:hidden}
.ch-facts__row{padding:10px 14px;margin:0;box-shadow:1px 1px 0 var(--line)}
.ch-facts dt{font-size:.8125rem;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.ch-facts dd{margin:2px 0 0;font-weight:700;color:var(--ink)}
.ch-facts a{color:var(--red-700);text-decoration:underline;text-underline-offset:.18em}
.ch-gallery__title,.l-article .prose .ch-gallery__title{font-size:1.0625rem;margin:1.4em 0 .5em;text-transform:uppercase;letter-spacing:.04em;color:var(--navy)}
.l-article .prose .ch-gallery__grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.l-article .prose .ch-gallery__grid li{margin:0}
.ch-gallery__grid a{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:var(--chip-r);background:var(--navy-50)}
.ch-gallery__grid img{display:block;width:100%;height:100%;object-fit:cover}
.l-article .prose .ch-gallery__cap{font-size:.875rem;color:var(--muted);margin:6px 0 0;line-height:1.4}
@media (max-width:575.98px){.ch-cards,.l-article .prose .ch-cards{grid-template-columns:1fr}.l-article .prose .ch-gallery__grid{grid-template-columns:1fr 1fr}.ch-facts{grid-template-columns:1fr 1fr}}
