@font-face{font-family:"Bricolage";src:url("assets/fonts/bricolage-grotesque-latin.woff2") format("woff2");font-style:normal;font-weight:200 800;font-display:swap}
@font-face{font-family:"Source Sans";src:url("assets/fonts/source-sans-3-latin.woff2") format("woff2");font-style:normal;font-weight:200 900;font-display:swap}

:root{
  --paper:#f7f9f8;
  --paper-blue:#edf3f5;
  --ink:#10264f;
  --ink-soft:#43536e;
  --line:#cdd9dd;
  --green:#147359;
  --green-dark:#0c5742;
  --copper:#d56a38;
  --copper-dark:#a84924;
  --white:#ffffff;
  --shadow:0 22px 60px rgba(16,38,79,.13);
  --ease:cubic-bezier(.2,.8,.2,1);
  --display:"Bricolage",Arial,sans-serif;
  --body:"Source Sans",Arial,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:6.5rem}
body{margin:0;overflow-x:hidden;color:var(--ink);background:var(--paper);font-family:var(--body);font-size:1.0625rem;line-height:1.58;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-underline-offset:.2em}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
::selection{color:var(--white);background:var(--copper-dark)}
::-webkit-scrollbar{width:11px}
::-webkit-scrollbar-track{background:var(--paper-blue)}
::-webkit-scrollbar-thumb{background:var(--ink);border:3px solid var(--paper-blue);border-radius:999px}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:.75rem;left:.75rem;z-index:1000;padding:.75rem 1rem;color:var(--white);background:var(--ink);transform:translateY(-180%);transition:transform 160ms var(--ease)}
.skip-link:focus{transform:translateY(0)}
:focus-visible{outline:3px solid var(--copper);outline-offset:4px}

.preview-note{display:grid;align-items:center;justify-content:center;gap:.05rem;min-height:3.6rem;padding:.35rem 1rem;color:var(--white);background:var(--ink);font-size:.78rem;text-align:center}
.preview-note span{font-family:var(--display);font-weight:700}
.preview-note p{margin:0;color:#dfe8ff}

.site-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;min-height:5rem;padding:.6rem clamp(1rem,4vw,4.5rem);background:rgba(247,249,248,.92);border-bottom:1px solid rgba(16,38,79,.12);backdrop-filter:blur(14px)}
.brand{display:block;width:9.5rem}
.brand img{width:100%;height:auto}
.menu-toggle{display:grid;gap:5px;width:3rem;height:3rem;padding:.75rem;border:1px solid var(--line);border-radius:50%;background:var(--white)}
.menu-toggle span:not(.sr-only){display:block;width:100%;height:2px;background:var(--ink);transition:transform 180ms var(--ease),opacity 140ms ease-out}
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.main-nav{position:absolute;top:100%;left:0;right:0;display:grid;gap:.2rem;padding:1rem;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(-8px);transition:transform 220ms var(--ease),opacity 180ms ease-out,visibility 0s linear 220ms}
.main-nav.is-open{opacity:1;visibility:visible;transform:translateY(0);transition:transform 220ms var(--ease),opacity 180ms ease-out,visibility 0s}
.main-nav a{display:flex;align-items:center;min-height:3rem;padding:.45rem .75rem;text-decoration:none;font-weight:650}
.main-nav a:hover{color:var(--green)}
.main-nav .nav-phone{justify-content:center;margin-top:.4rem;color:var(--white);background:var(--green);border-radius:12px}
.nav-mega{min-width:0}
.nav-mega>summary{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:3rem;padding:.45rem .75rem;font-weight:700;cursor:pointer;list-style:none}
.nav-mega>summary::-webkit-details-marker{display:none}
.nav-mega>summary::after{content:"";width:.48rem;height:.48rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-.12rem) rotate(45deg);transition:transform 160ms ease}
.nav-mega[open]>summary::after{transform:translateY(.12rem) rotate(225deg)}
.mega-panel{display:grid;gap:1rem;padding:.3rem 0 .6rem 1rem}
.mega-group,.mega-aside{display:grid;align-content:start;gap:.12rem}
.mega-kicker{margin:.35rem .75rem .25rem;color:var(--green-dark);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.main-nav .mega-panel a{min-height:2.65rem;padding:.45rem .75rem;border-radius:8px;font-size:.96rem;font-weight:650}
.main-nav .mega-panel a:hover{background:var(--paper-blue)}
.main-nav .mega-panel .mega-feature{color:var(--ink);background:#e6f2ed}
.main-nav .mega-panel .mega-phone{display:none}

h1,h2,h3{margin:0;font-family:var(--display);font-weight:650;letter-spacing:-.035em;line-height:.98;text-wrap:balance}
h1{max-width:14ch;overflow-wrap:break-word;font-size:clamp(2.7rem,10vw,5.1rem);hyphens:auto}
h2{font-size:clamp(2.35rem,8vw,4.5rem)}
h3{font-size:clamp(1.4rem,4vw,2rem);line-height:1.08}
p{max-width:70ch}
.section-pad{padding:clamp(4.75rem,10vw,8.5rem) clamp(1rem,5vw,5.5rem)}
.section-heading{display:grid;gap:1.2rem;margin-bottom:clamp(2.5rem,6vw,4.5rem)}
.section-heading p{margin:0;color:var(--ink-soft);font-size:1.12rem}
.section-heading.narrow{max-width:62rem}

.hero{display:grid;min-height:calc(100svh - 7.5rem);overflow:hidden}
.hero-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(4rem,10vw,8rem) clamp(1rem,5vw,5.5rem) 3rem;background:linear-gradient(145deg,var(--paper) 0%,#f3f8f7 55%,var(--paper-blue) 100%)}
.hero-lead{margin:1.6rem 0 0;color:var(--ink-soft);font-size:clamp(1.1rem,2.5vw,1.35rem);line-height:1.55}
.hero-actions{display:flex;flex-direction:column;gap:.8rem;margin-top:2rem}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:3.25rem;padding:.82rem 1.2rem;border:1px solid transparent;border-radius:12px;text-decoration:none;font-weight:750;line-height:1.15;transition:transform 120ms var(--ease),background-color 180ms ease-out,color 180ms ease-out,border-color 180ms ease-out}
.button:hover{transform:translateY(-2px)}
.button:active{transform:scale(.98)}
.button-primary{color:var(--white);background:var(--green)}
.button-primary:hover{background:var(--green-dark)}
.button-quiet{color:var(--ink);background:transparent;border-color:rgba(16,38,79,.3)}
.button-quiet:hover{background:var(--white);border-color:var(--ink)}
.hero-proof{display:grid;gap:1rem;margin:2.5rem 0 0;padding-top:1.4rem;border-top:1px solid var(--line)}
.hero-proof div{display:grid;grid-template-columns:7rem 1fr;gap:1rem}
.hero-proof dt{color:var(--ink-soft);font-size:.875rem}
.hero-proof dd{margin:0;font-variant-numeric:tabular-nums;font-weight:700}
.hero-visual{position:relative;min-height:25rem;margin:0;overflow:hidden;background:var(--ink)}
.hero-visual>img{width:100%;height:100%;object-fit:cover;object-position:center}
.hero-visual::after{content:none}
.hero-visual figcaption{position:absolute;right:1rem;bottom:1rem;z-index:3;max-width:18rem;padding:.6rem .8rem;color:var(--white);background:rgba(16,38,79,.72);font-size:.78rem;line-height:1.35;border-radius:8px}
.thermal-path{position:absolute;inset:7% 3% auto auto;z-index:2;width:92%;height:80%;overflow:visible;filter:drop-shadow(0 8px 14px rgba(16,38,79,.24))}
.thermal-path path{fill:none;stroke-linecap:round}
.thermal-path-base{stroke:rgba(255,255,255,.45);stroke-width:4}
.thermal-path-live{stroke:var(--copper);stroke-width:7;stroke-dasharray:780;stroke-dashoffset:780}
.is-ready .thermal-path-live{animation:draw-path 620ms var(--ease) 150ms forwards}
.thermal-path circle{fill:var(--paper);stroke:var(--copper);stroke-width:4;opacity:0}
.is-ready .thermal-path circle{animation:mark-in 240ms ease-out 700ms forwards}
.visual-index{position:absolute;z-index:3;padding:.75rem 1rem;color:var(--ink);background:rgba(255,255,255,.91);border:1px solid rgba(255,255,255,.8);border-radius:12px;box-shadow:0 12px 30px rgba(16,38,79,.16);font-size:.78rem;font-weight:700}
.visual-index span{display:block;color:var(--copper-dark);font-variant-numeric:tabular-nums}
.visual-index-out{left:1rem;bottom:4.8rem}
.visual-index-in{right:1rem;top:1rem}
@keyframes draw-path{to{stroke-dashoffset:0}}
@keyframes mark-in{to{opacity:1}}

.needs-navigation{padding-bottom:clamp(3rem,6vw,5rem);background:var(--white)}
.needs-heading{display:grid;gap:1rem;max-width:66rem;margin-bottom:clamp(2rem,4vw,3rem)}
.needs-heading h2{max-width:18ch;font-size:clamp(2.35rem,6vw,4rem)}
.needs-heading p{margin:0;color:var(--ink-soft);font-size:1.12rem}
.needs-rail{display:grid;background:var(--white);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.need-link{display:grid;grid-template-columns:3.25rem minmax(0,1fr) 1.5rem;align-items:center;gap:1rem;min-height:7rem;padding:1.15rem 1.1rem;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line);transition:color 180ms ease-out,background-color 180ms ease-out}
.need-link:last-child{border-bottom:0}
.need-icon{width:3.25rem;height:3.25rem;color:var(--green);fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.need-copy{display:grid;gap:.35rem;min-width:0}
.need-copy strong{font-family:var(--display);font-size:1.22rem;line-height:1.08;letter-spacing:-.025em}
.need-copy small{color:var(--ink-soft);font-size:.9rem;line-height:1.25}
.need-arrow{width:1.5rem;height:1.5rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform 180ms var(--ease)}
.need-link:hover{color:var(--green-dark);background:var(--paper-blue)}
.need-link:hover .need-arrow{transform:translateX(3px)}
.hot-water-callout{display:grid;gap:1.5rem;margin-top:1.5rem;padding:clamp(1.5rem,4vw,2.5rem);color:var(--white);background:var(--green-dark);border-radius:16px}
.hot-water-callout h3{max-width:16ch;font-size:clamp(1.8rem,4vw,2.7rem)}
.hot-water-callout p{margin:.8rem 0 0;color:#e2f2ec}
.hot-water-copy{display:grid;align-content:start;gap:1rem}
.hot-water-copy>p{margin:0}
.hot-water-copy strong{color:var(--white)}
.hot-water-button{justify-self:start;color:var(--green-dark);background:var(--white)}
.hot-water-button:hover{color:var(--ink);background:var(--paper)}
.hot-water-copy small{color:#c7e5da;line-height:1.4}
.hot-water-copy small a{color:var(--white);font-weight:700}

.solution-ledger{background:var(--white)}
.needs-navigation+.solution-ledger{padding-top:clamp(3.5rem,7vw,6.5rem)}
.solution-lines{border-top:1px solid var(--ink)}
.solution-lines article{display:grid;gap:1.1rem;padding:2rem 0;border-bottom:1px solid var(--line)}
.solution-lines article[id]{scroll-margin-top:7rem}
.solution-name span{display:block;margin-bottom:.45rem;color:var(--copper-dark);font-size:.9rem;font-weight:750}
.solution-lines article>p{margin:0;color:var(--ink-soft)}
.solution-lines ul{margin:0;padding-left:1.2rem;color:var(--ink-soft)}
.solution-lines article>a{justify-self:start;font-weight:750;text-decoration-thickness:1px}
.solution-lines article>a:hover{color:var(--green)}

.project-path{display:grid;gap:3rem;background:var(--paper-blue)}
.path-image{align-self:start;margin:0}
.path-image img{width:100%;aspect-ratio:1.7;object-fit:cover;border-radius:16px;box-shadow:var(--shadow)}
.path-image p{margin:.8rem 0 0;color:var(--ink-soft);font-size:.9rem}
.path-content>h2{margin-bottom:2.5rem}
.path-content ol{display:grid;gap:0;margin:0;padding:0;list-style:none;border-top:1px solid var(--ink)}
.path-content li{display:grid;grid-template-columns:5.5rem 1fr;gap:1rem;padding:1.5rem 0;border-bottom:1px solid var(--line)}
.path-content li>span{color:var(--green-dark);font-size:.88rem;font-weight:750}
.path-content li p{margin:.5rem 0 0;color:var(--ink-soft)}

.aid-lab{display:grid;gap:3rem;color:var(--white);background:var(--ink)}
.aid-intro h2{max-width:11ch}
.aid-intro>p{margin:1.5rem 0 0;color:#d5def0;font-size:1.12rem}
.aid-source{margin-top:2.5rem;padding:1.2rem 0;border-top:1px solid rgba(255,255,255,.24);border-bottom:1px solid rgba(255,255,255,.24)}
.aid-source span{color:#98e0c9;font-weight:750}
.aid-source p{margin:.35rem 0 0;color:#d5def0}
.aid-source a{display:inline-block;margin-top:.75rem;color:var(--white);font-weight:750;text-decoration-thickness:1px}
.aid-sheet{align-self:start;color:var(--ink);background:var(--paper);border-radius:16px;box-shadow:0 26px 70px rgba(0,0,0,.28);overflow:hidden}
.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.15rem 1.25rem;border-bottom:1px solid var(--line)}
.sheet-head p{margin:0;font-family:var(--display);font-weight:750}
.sheet-head span{color:var(--ink-soft);font-size:.85rem;font-variant-numeric:tabular-nums}
.sheet-progress{height:4px;background:#d9e3e6}
.sheet-progress span{display:block;width:100%;height:100%;background:var(--copper);transform:scaleX(.2);transform-origin:left;transition:transform 260ms var(--ease)}
.sim-step{display:none;min-height:22rem;margin:0;padding:2rem 1.25rem;border:0}
.sim-step.is-active{display:grid;align-content:start;gap:.8rem;animation:sheet-in 260ms var(--ease)}
.sim-step legend{width:100%;margin-bottom:1.4rem;padding:0;font-family:var(--display);font-size:clamp(1.8rem,6vw,2.7rem);font-weight:650;letter-spacing:-.03em;line-height:1.05}
.sim-step label,.contact-form label{font-weight:700}
.sim-step input,.sim-step select,.contact-form input,.contact-form select,.contact-form textarea{width:100%;min-height:3.25rem;padding:.75rem .85rem;color:var(--ink);background:var(--white);border:1px solid #aebdc3;border-radius:10px}
.sim-step input:focus,.sim-step select:focus,.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:var(--green);outline:3px solid rgba(20,115,89,.2);outline-offset:1px}
.field-help{margin:-.25rem 0 .55rem;color:var(--ink-soft);font-size:.9rem;line-height:1.4}
.profile-instruction{margin:0;color:var(--ink-soft);line-height:1.45}
.profile-picker{display:grid;gap:.65rem}
.profile-choice{position:relative;display:grid;grid-template-columns:1rem minmax(0,1fr);align-items:center;gap:.8rem;min-height:5.1rem;padding:.7rem .85rem;background:var(--white);border:1px solid #aebdc3;border-radius:10px;cursor:pointer;transition:border-color 180ms ease,box-shadow 180ms ease,background 180ms ease}
.profile-choice input{position:absolute;inset:.35rem auto auto .35rem;width:1px!important;height:1px!important;min-height:1px!important;margin:0;opacity:0}
.profile-choice:has(input:checked){border-color:var(--choice-color);box-shadow:inset 0 0 0 1px var(--choice-color);background:var(--choice-surface)}
.profile-choice:has(input:focus-visible){outline:3px solid var(--copper);outline-offset:3px}
.profile-choice[data-choice="bleu"]{--choice-color:#1769cf;--choice-surface:#edf3ff}
.profile-choice[data-choice="jaune"]{--choice-color:#c49d00;--choice-surface:#fff8dc;--choice-swatch:#ffd43b}
.profile-choice[data-choice="violet"]{--choice-color:#9a4d96;--choice-surface:#fbedfa}
.profile-choice[data-choice="rose"]{--choice-color:#a94645;--choice-surface:#fff0ee}
.choice-swatch{width:1rem;height:3.4rem;background:var(--choice-swatch,var(--choice-color));border-radius:5px}
.choice-copy{display:grid;gap:.08rem}
.choice-copy strong{color:var(--ink);font-size:1.05rem}
.choice-copy small{font-size:.9rem;line-height:1.35}
.choice-copy .choice-limit{margin-top:.18rem;color:var(--ink-soft);font-weight:700;font-variant-numeric:tabular-nums}
.radio-grid{display:grid;gap:.7rem}
.radio-grid label{position:relative;display:flex;align-items:center;min-height:3.5rem;padding:.65rem .9rem;background:var(--white);border:1px solid #aebdc3;border-radius:10px;cursor:pointer}
.radio-grid input{position:absolute;opacity:0;width:1px;height:1px}
.radio-grid label:has(input:checked){border-color:var(--green);box-shadow:inset 0 0 0 2px var(--green);background:#edf8f4}
.radio-grid label:has(input:focus-visible){outline:3px solid var(--copper);outline-offset:3px}
.sim-result{--profile-accent:var(--green);--profile-surface:#edf8f4;display:none;min-height:22rem;padding:2rem 1.25rem}
.sim-result.is-active{display:grid;align-content:start;gap:1.25rem;animation:sheet-in 260ms var(--ease)}
.sim-result[data-profile="bleu"]{--profile-accent:#0063cb;--profile-surface:#e8edff}
.sim-result[data-profile="jaune"]{--profile-accent:#aa8800;--profile-swatch:#ffd43b;--profile-surface:#fff8cf}
.sim-result[data-profile="violet"]{--profile-accent:#a558a0;--profile-surface:#fee7fc}
.sim-result[data-profile="rose"]{--profile-accent:#a94645;--profile-surface:#fef4f2}
.mpr-profile{display:grid;grid-template-columns:1.1rem minmax(0,1fr);align-items:center;gap:1rem;padding:1.15rem;color:var(--ink);background:var(--profile-surface);border:1px solid var(--profile-accent);border-radius:14px}
.mpr-profile-swatch{width:1.1rem;height:3.25rem;background:var(--profile-swatch,var(--profile-accent));border-radius:4px}
.mpr-profile h3{max-width:none;font-size:clamp(2rem,6vw,2.8rem)}
.mpr-profile p{margin:.35rem 0 0;color:var(--ink);font-weight:700}
.aid-estimate{display:grid;gap:.35rem;padding:1.15rem 1.25rem;background:var(--profile-surface);border-left:5px solid var(--profile-accent);border-radius:0 12px 12px 0}
.aid-estimate>span{color:var(--ink-soft);font-size:.93rem;font-weight:750}
.aid-estimate>strong{color:var(--ink);font-family:var(--display);font-size:clamp(2rem,7vw,3rem);letter-spacing:-.035em;line-height:1.05}
.aid-estimate>p{margin:0;color:var(--ink-soft);font-size:.95rem;line-height:1.4}
.sim-result>p{margin:0;color:var(--ink-soft)}
.result-summary{display:grid;margin:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.result-summary>div{display:grid;grid-template-columns:minmax(8rem,.8fr) minmax(0,1.2fr);gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--line)}
.result-summary>div:last-child{border-bottom:0}
.result-summary dt{color:var(--ink-soft)}
.result-summary dd{margin:0;font-weight:750;font-variant-numeric:tabular-nums}
.result-disclaimer{font-size:.94rem}
.result-official{justify-self:start;color:var(--green-dark);font-weight:750;text-decoration-thickness:1px}
.result-actions{display:flex;flex-wrap:wrap;gap:.75rem}
.sheet-actions{display:flex;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-top:1px solid var(--line)}
.sheet-actions[hidden]{display:none}
.sheet-actions .button{min-width:7.5rem}
.sheet-actions button:disabled{opacity:.38;cursor:not-allowed;transform:none}
@keyframes sheet-in{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:translateX(0)}}

.comparison{background:var(--white)}
.table-wrap{overflow-x:auto;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
table{width:100%;min-width:46rem;border-collapse:collapse;text-align:left}
caption{padding:1rem 0;color:var(--ink-soft);text-align:left;font-size:.9rem}
th,td{padding:1.15rem 1rem;border-top:1px solid var(--line);vertical-align:top}
thead th{border-top:0;color:var(--ink-soft);font-size:.88rem}
tbody th{font-family:var(--display);font-size:1.15rem}
tbody tr:hover{background:var(--paper-blue)}

.proof-room{display:grid;gap:3rem;background:#eaf2ef}
.proof-copy>p{margin:1.4rem 0;color:var(--ink-soft);font-size:1.1rem}
blockquote{margin:2.5rem 0;padding:0;border:0}
blockquote p{margin:0;font-family:var(--display);font-size:clamp(1.7rem,5vw,2.7rem);font-weight:520;letter-spacing:-.03em;line-height:1.12}
blockquote cite{display:block;margin-top:1rem;color:var(--ink-soft);font-size:.9rem;font-style:normal}
.text-link{font-weight:750;text-decoration-thickness:1px}
.text-link:hover{color:var(--green-dark)}
.credential-board{display:grid;align-self:start;background:var(--white);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}
.credential-board>div{display:grid;grid-template-columns:6rem 1fr;align-items:center;gap:1rem;min-height:8rem;padding:1.2rem;border-bottom:1px solid var(--line)}
.credential-board>div:last-child{border-bottom:0}
.credential-board img{max-width:6rem;max-height:4.5rem;margin:auto;object-fit:contain}
.credential-board p{margin:0;color:var(--ink-soft)}
.credential-board strong{display:block;color:var(--ink);font-variant-numeric:tabular-nums}

.faq{background:var(--paper)}
.faq-list{border-top:1px solid var(--ink)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{position:relative;padding:1.35rem 3rem 1.35rem 0;font-family:var(--display);font-size:1.25rem;font-weight:620;line-height:1.25;cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before,.faq summary::after{content:"";position:absolute;right:.25rem;top:2rem;width:1rem;height:2px;background:var(--ink);transition:transform 180ms var(--ease)}
.faq summary::after{transform:rotate(90deg)}
.faq details[open] summary::after{transform:rotate(0)}
.faq details p{margin:0;padding:0 2.5rem 1.5rem 0;color:var(--ink-soft)}

.contact-zone{display:grid;gap:3rem;color:var(--white);background:var(--green-dark)}
.contact-copy>p{color:#d9eee7;font-size:1.1rem}
.contact-phone{display:grid;gap:.15rem;margin:2rem 0;color:var(--white);font-family:var(--display);font-size:clamp(2rem,7vw,4rem);font-weight:650;letter-spacing:-.03em;text-decoration:none}
.contact-phone span{font-family:var(--body);font-size:.9rem;font-weight:700;letter-spacing:0}
.contact-copy address{margin:1.5rem 0;font-style:normal}
.contact-zone .text-link{color:var(--white)}
.contact-form{display:grid;gap:.75rem;align-self:start;padding:1.4rem;color:var(--ink);background:var(--paper);border-radius:16px;box-shadow:0 26px 70px rgba(0,0,0,.2)}
.contact-form textarea{resize:vertical}
.contact-form .button{margin-top:.5rem}
.form-status{min-height:1.5rem;margin:.25rem 0 0;color:var(--green-dark);font-weight:700}

.site-footer{display:grid;gap:2.5rem;padding:3rem 1rem 7rem;color:#dce5f5;background:#0a1a38}
.site-footer img{width:10rem;filter:brightness(0) invert(1)}
.site-footer p{margin:.75rem 0 0;color:#afbdd6}
.site-footer nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem 1rem}
.site-footer nav a{min-height:2.75rem;color:var(--white);text-decoration:none}
.site-footer nav a:hover{text-decoration:underline}
.footer-meta p{font-size:.88rem;font-variant-numeric:tabular-nums}
.mobile-actions{position:fixed;left:.7rem;right:.7rem;bottom:.7rem;z-index:45;display:grid;grid-template-columns:.8fr 1.2fr;padding:.3rem;background:var(--ink);border:1px solid rgba(255,255,255,.2);border-radius:14px;box-shadow:0 14px 34px rgba(0,0,0,.28)}
.mobile-actions a{display:flex;align-items:center;justify-content:center;min-height:3rem;padding:.55rem;color:var(--white);font-size:.9rem;line-height:1.1;text-align:center;text-decoration:none;font-weight:750;border-radius:10px}
.mobile-actions a:last-child{color:var(--ink);background:var(--white)}

@media (min-width:700px){
  .preview-note{display:flex;gap:.75rem;min-height:2.5rem;padding:.45rem 1rem;font-size:.875rem}
  .hero-actions{flex-direction:row;align-items:center}
  .hero-proof{grid-template-columns:repeat(3,1fr)}
  .hero-proof div{display:block}
  .hero-proof dd{margin-top:.25rem}
  .needs-rail{grid-template-columns:repeat(2,minmax(0,1fr))}
  .need-link:nth-child(odd){border-right:1px solid var(--line)}
  .need-link:nth-last-child(-n+2){border-bottom:0}
  .hot-water-callout{grid-template-columns:minmax(15rem,.75fr) minmax(22rem,1.25fr);align-items:start}
  .solution-lines article{grid-template-columns:1.2fr 1fr 1fr;align-items:start}
  .solution-lines article>a{grid-column:2 / -1}
  .radio-grid{grid-template-columns:repeat(2,1fr)}
  .result-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
  .result-summary>div{display:block;padding:.85rem 1rem;border-right:1px solid var(--line);border-bottom:0}
  .result-summary>div:first-child{padding-left:0}
  .result-summary>div:last-child{padding-right:0;border-right:0}
  .result-summary dd{margin-top:.25rem}
  .site-footer{grid-template-columns:1.2fr 1fr 1fr;padding-inline:5vw}
  .mobile-actions{left:auto;width:26rem}
}

@media (min-width:980px){
  .menu-toggle{display:none}
  .main-nav{position:static;display:flex;align-items:center;gap:.6rem;padding:0;background:transparent;border:0;box-shadow:none;opacity:1;visibility:visible;transform:none;transition:none}
  .main-nav a{padding:.4rem .7rem;font-size:.94rem}
  .main-nav .nav-phone{margin:0 0 0 .4rem;padding-inline:1rem}
  .nav-mega{position:static}
  .nav-mega>summary{padding:.4rem .7rem;font-size:.94rem}
  .mega-panel{position:absolute;top:calc(100% + .1rem);left:clamp(1rem,4vw,4.5rem);right:clamp(1rem,4vw,4.5rem);z-index:55;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(13rem,.9fr);gap:1rem;padding:1.35rem;background:var(--white);border:1px solid var(--line);border-top:3px solid var(--copper);border-radius:0 0 16px 16px;box-shadow:var(--shadow)}
  .mega-group,.mega-aside{gap:.2rem}
  .mega-kicker{margin:.35rem .75rem .45rem}
  .main-nav .mega-panel a{min-height:2.8rem}
  .mega-aside{padding:.7rem;background:var(--paper-blue);border-radius:12px}
  .main-nav .mega-panel .mega-phone{display:flex;justify-content:center;margin:.35rem .5rem 0;color:var(--white);background:var(--green);font-weight:750}
  .hero{grid-template-columns:minmax(0,1.02fr) minmax(29rem,.98fr)}
  .hero-copy{min-height:47rem}
  .hero-visual{min-height:47rem}
  .needs-heading{grid-template-columns:minmax(0,1.1fr) minmax(19rem,.7fr);align-items:end;max-width:none}
  .needs-rail{grid-template-columns:repeat(4,minmax(0,1fr))}
  .need-link{grid-template-columns:3.25rem minmax(0,1fr);align-content:center;min-height:12rem;padding:1.5rem;border-right:1px solid var(--line);border-bottom:0}
  .need-link:last-child{border-right:0}
  .need-arrow{grid-column:2;margin-top:.3rem}
  .section-heading{grid-template-columns:minmax(0,1.35fr) minmax(19rem,.65fr);align-items:end}
  .project-path{grid-template-columns:minmax(22rem,.8fr) minmax(30rem,1.2fr);align-items:start}
  .service-hero{grid-template-columns:minmax(0,1fr) minmax(27rem,.9fr)}
  .service-content{grid-template-columns:minmax(17rem,.8fr) minmax(0,1.2fr);align-items:start}
  .path-image{position:sticky;top:7rem}
  .aid-lab{grid-template-columns:minmax(20rem,.8fr) minmax(32rem,1.2fr);align-items:start}
  .aid-intro{position:sticky;top:7rem}
  .proof-room{grid-template-columns:minmax(0,1.15fr) minmax(23rem,.85fr);align-items:start}
  .contact-zone{grid-template-columns:minmax(0,1fr) minmax(26rem,.75fr);align-items:start}
  .faq-list{max-width:72rem}
  .site-footer{padding-bottom:3rem}
  .mobile-actions{display:none}
}

@media (min-width:1280px){
  .hero-copy{padding-left:max(5.5rem,calc((100vw - 1440px)/2 + 5.5rem))}
  .section-pad{padding-left:max(5.5rem,calc((100vw - 1440px)/2 + 5.5rem));padding-right:max(5.5rem,calc((100vw - 1440px)/2 + 5.5rem))}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .thermal-path-live{stroke-dashoffset:0}
  .thermal-path circle{opacity:1}
  .button:hover{transform:none}
  .need-link:hover .need-arrow{transform:none}
}

@media (prefers-contrast:more){
  :root{--line:#71818a;--ink-soft:#263754}
  .preview-note,.site-header,.aid-sheet,.contact-form{border:2px solid currentColor}
}

.legal-page{min-height:70vh;padding:clamp(4rem,9vw,7rem) clamp(1rem,8vw,10rem);background:var(--paper)}
.legal-page .back-link{display:inline-flex;align-items:center;min-height:2.75rem;margin-bottom:2rem;font-weight:750}
.legal-page h1{max-width:16ch;font-size:clamp(2.8rem,9vw,5.6rem)}
.legal-page>p{color:var(--ink-soft);font-size:1.12rem}
.legal-page article{max-width:54rem;margin-top:3rem;padding-top:2rem;border-top:1px solid var(--ink)}
.legal-page article h2{margin:2.5rem 0 1rem;font-size:clamp(1.7rem,5vw,2.5rem)}
.legal-page article h2:first-child{margin-top:0}
.legal-page article p,.legal-page article li{color:var(--ink-soft)}
.legal-page mark{padding:.1em .3em;color:var(--ink);background:#ffe6c9}
.site-map-list{display:grid;gap:.7rem;padding:0;list-style:none}
.site-map-list a{display:flex;align-items:center;min-height:3rem;padding:.5rem 0;border-bottom:1px solid var(--line);font-weight:750;text-decoration:none}
.site-map-list a:hover{color:var(--green)}

.service-hero{display:grid;gap:2.5rem;align-items:center;background:linear-gradient(140deg,var(--paper) 0%,#f3f8f7 55%,var(--paper-blue) 100%)}
.service-hero-copy .eyebrow{margin:0 0 1rem;color:var(--green-dark);font-size:.9rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.service-hero-copy h1{max-width:13ch;font-size:clamp(2.8rem,8vw,5rem)}
.service-hero-copy>p:not(.eyebrow){margin:1.3rem 0 0;color:var(--ink-soft);font-size:clamp(1.1rem,2.5vw,1.28rem)}
.service-hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.6rem}
.service-hero-media{overflow:hidden;margin:0;border-radius:18px;box-shadow:var(--shadow)}
.service-hero-media img{width:100%;aspect-ratio:1.55;object-fit:cover}
.service-content{display:grid;gap:2.5rem;background:var(--white)}
.service-content h2{max-width:18ch;font-size:clamp(2rem,5vw,3rem)}
.service-copy{max-width:70ch;color:var(--ink-soft)}
.service-copy p:first-child{margin-top:0}
.service-points{display:grid;gap:1rem;margin:0;padding:0;list-style:none}
.service-points li{padding:1.1rem 0;border-top:1px solid var(--line)}
.service-points strong{display:block;margin-bottom:.35rem;color:var(--ink);font-family:var(--display);font-size:1.15rem}
.service-area{color:var(--white);background:var(--ink)}
.service-area h2{max-width:18ch;font-size:clamp(2rem,5vw,3rem)}
.service-area p{color:#d5def0}
.service-cta{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}
.service-links{display:grid;gap:.75rem;margin:0;padding:0;list-style:none}
.service-links a{display:block;padding:1rem;background:var(--white);border:1px solid var(--line);border-radius:12px;font-weight:750;text-decoration:none}
.service-links a:hover{border-color:var(--green);color:var(--green-dark)}
.service-faq{background:var(--paper)}

/* Parcours visuel des quatre besoins */
.needs-navigation{background:#f4f8f8}
.needs-heading{max-width:none;text-align:center;margin-inline:auto}
.needs-heading h2{max-width:none;font-size:clamp(2rem,4.2vw,3.55rem)}
.needs-heading p{max-width:42rem;margin-inline:auto}
.needs-rail{gap:1rem;background:transparent;border:0;border-radius:0;overflow:visible}
.need-link,.need-link:last-child{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:.45rem;min-height:0;padding:1.25rem 1rem 1rem;background:white;border:1px solid #e0e8e8;border-radius:18px;box-shadow:0 12px 28px rgba(16,38,79,.09);text-align:center;transition:transform .2s ease,box-shadow .2s ease}
.need-link:hover{transform:translateY(-4px);background:white;box-shadow:0 18px 35px rgba(16,38,79,.15)}
.need-illustration{order:2;width:100%;height:clamp(10rem,19vw,15rem);object-fit:contain;object-position:center;mix-blend-mode:multiply}
.need-copy{order:1;min-height:4rem;align-content:start}
.need-copy strong{font-size:clamp(1.12rem,1.6vw,1.38rem);line-height:1.16}
.need-copy small{font-size:.88rem}
.need-arrow{order:3;align-self:flex-end;margin:0!important;color:var(--green)}
@media(max-width:920px){.needs-heading{display:block}.needs-heading p{margin-top:.8rem}.need-link:nth-child(odd),.need-link:nth-last-child(-n+2){border:1px solid #e0e8e8}}
@media(max-width:620px){.needs-rail{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.need-link,.need-link:last-child{padding:1rem .55rem .7rem}.need-illustration{height:9.5rem}.need-copy{min-height:5rem}.need-copy strong{font-size:1.02rem}.need-copy small{font-size:.78rem}}
@media(max-width:390px){.needs-rail{grid-template-columns:1fr}.need-illustration{height:12rem}.need-copy{min-height:0}}

/* Pages de service et navigation séparées */
[hidden]{display:none!important}
.breadcrumbs{padding:1rem clamp(1rem,6vw,6rem);font-size:.9rem;background:var(--white)}
.breadcrumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;list-style:none;margin:0;padding:0}
.breadcrumbs a{display:inline-flex;align-items:center;min-height:44px}
.breadcrumbs li+li::before{content:"/";margin-right:1rem;color:var(--ink-soft)}
.page-intro{padding-block:clamp(2.5rem,5vw,5rem);background:var(--paper-blue)}
.page-intro h1{max-width:23ch;font-size:clamp(2.25rem,6vw,4.4rem);line-height:1.08}
.page-intro>p:not(.eyebrow){max-width:55rem}
.updated{font-size:.875rem;color:var(--ink-soft);margin:1rem 0}
.service-hero-media{margin:0;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.service-hero-media img.service-photo{width:100%;height:24rem;object-fit:contain;object-position:center;background:#f5f7f7;border-radius:0}
.service-hero-media img.photo-tank{background:#fff;padding:1rem}
.service-hero-media figcaption{padding:.8rem 1rem;font-size:.8rem;line-height:1.5;color:var(--ink-soft);background:#fff}
.service-hero-media figcaption a{display:inline}
.hero-visual{min-height:0;aspect-ratio:1;align-self:center;border-radius:18px;background:#e7ebe9}
.hero-visual>img{object-fit:contain;height:100%;width:100%}
.hero-visual::after{display:none}
.need-illustration.need-photo{height:13rem;object-fit:contain;mix-blend-mode:normal;border-radius:10px;background:#f6f8f8}
.needs-heading{display:block}
.needs-heading p{margin-top:1rem}
.need-copy{min-height:5rem}
.need-link{padding:1rem;gap:1rem}
.path-image img{aspect-ratio:1.25;object-fit:cover;object-position:center 55%}
.next-grid{display:grid;gap:1rem;margin-top:2rem}
.next-grid>a{display:flex;flex-direction:column;gap:.5rem;padding:1.5rem;background:white;border:1px solid var(--line);border-radius:14px;text-decoration:none}
.next-grid strong{font-family:var(--display);font-size:1.35rem}
.next-grid span{font-size:1rem;color:var(--ink-soft)}
.next-grid>a:hover{border-color:var(--green)}
.additional-aids{display:grid;gap:1rem;margin-block:1rem}
.aid-estimate h3{font-size:1.25rem;line-height:1.3;margin-bottom:.8rem}
.aid-estimate strong{font-size:clamp(1.4rem,3vw,2rem);overflow-wrap:anywhere}
.aid-cee{background:#eef5ff;border-left:4px solid #3f78b6}
.aid-edf{background:#fff5e6;border-left:4px solid #cd7122}
.aid-estimate a{font-size:.95rem;display:inline-flex;min-height:44px;align-items:center}
.aid-reference{max-width:85rem;margin:auto}
.aid-reference h2{font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.15;margin:2rem 0 1rem}
.aid-reference p,.aid-reference ul,.aid-reference ol{max-width:70rem}
.aid-reference .table-wrap{margin-block:2rem}
.aid-reference table{min-width:48rem}
.aid-lab{align-items:start}
.aid-intro h2{font-size:clamp(1.85rem,3vw,2.8rem);line-height:1.1}
.source-note{font-size:.875rem;color:var(--ink-soft);line-height:1.6}
.service-links{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;padding-left:0;list-style:none}
.service-links a{display:inline-flex;align-items:center;min-height:44px}
.projects-pending{max-width:75rem;margin:auto}
.projects-pending h2{font-size:clamp(1.8rem,4vw,3rem)}
.project-empty{padding:2rem;border:1px dashed var(--line);background:var(--paper-blue);border-radius:14px;font-size:1.35rem}
.preview-only{font-size:.875rem;color:var(--ink-soft)}
.service-followup h2{font-size:clamp(1.8rem,4vw,3rem)}
.main-nav a[aria-current=page]{color:var(--green-dark);text-decoration:underline;text-underline-offset:.35rem}
@media(min-width:700px){.next-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.service-hero-media img.service-photo{height:30rem}}
@media(max-width:620px){.need-illustration.need-photo{height:10rem}.need-copy small{font-size:.875rem}.need-copy strong{font-size:1.1rem}.need-copy{min-height:6rem}.hero-visual{aspect-ratio:1.15}.page-intro{padding-bottom:2rem}.contact-phone{font-size:clamp(1.3rem,7vw,2rem)}}
@media(prefers-reduced-motion:reduce){.need-link:hover{transform:none}}
