:root{--navy:#0b1f35;--navy-2:#102b47;--blue:#176b92;--sky:#dcebf0;--cream:#f5f2eb;--paper:#fbfaf7;--white:#fff;--ink:#12202b;--muted:#64717c;--accent:#ef6a4c;--line:rgba(14,35,52,.14);--shadow:0 24px 70px rgba(11,31,53,.12);--radius:3px;--container:min(1180px,calc(100% - 48px));--font-head:"Manrope",sans-serif;--font-body:"DM Sans",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.container{width:var(--container);margin-inline:auto}.narrow{max-width:820px}.skip-link{position:fixed;z-index:999;left:18px;top:-60px;background:white;padding:12px 18px}.skip-link:focus{top:12px}h1,h2,h3{font-family:var(--font-head);margin:0;line-height:1.1;letter-spacing:-.045em}h1{font-size:clamp(3rem,6.2vw,6.4rem);font-weight:700}h2{font-size:clamp(2.25rem,4.25vw,4.6rem);font-weight:700}h3{font-size:1.35rem}h1 em,h2 em{font-weight:500;font-style:normal;color:var(--blue)}p{margin:0 0 1.4rem}.lead{font-size:clamp(1.15rem,1.6vw,1.45rem);line-height:1.6}.section{padding:clamp(80px,10vw,140px) 0}.soft-section{background:var(--cream)}.dark-section{background:var(--navy);color:#fff}.eyebrow{display:flex;align-items:center;gap:9px;margin-bottom:25px;color:var(--blue);font-size:.72rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase}.eyebrow:before{content:"";width:28px;height:1px;background:currentColor}.eyebrow-light{color:#b8d9e8}.status-dot{width:7px;height:7px;border-radius:50%;background:#52c98b;box-shadow:0 0 0 4px rgba(82,201,139,.14)}.eyebrow .status-dot{width:7px}.eyebrow .status-dot+span{display:none}.eyebrow:has(.status-dot):before{display:none}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:56px;padding:0 25px;border:1px solid transparent;border-radius:12px;font-weight:700;font-size:.88rem;transition:.25s ease}.button:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(10,28,45,.15)}.button-accent{background:var(--accent);color:#fff}.button-dark{background:var(--navy);color:#fff}.button-white{background:#fff;color:var(--navy)}.button-ghost{border-color:rgba(255,255,255,.5);color:#fff}.button-small{min-height:44px;padding:0 18px;background:var(--navy);color:#fff}.text-link{display:inline-flex;align-items:center;gap:18px;padding-bottom:5px;border-bottom:1px solid currentColor;color:var(--navy);font-weight:700}.text-link.light{color:#fff}.text-button{border:0;background:none;color:var(--navy);font-weight:700}.center{text-align:center}.microcopy{margin-top:14px;color:var(--muted);font-size:.8rem}.reveal{opacity:0;transform:translateY(24px);transition:opacity .75s ease,transform .75s ease}.reveal.is-visible{opacity:1;transform:none}
.topbar{position:relative;z-index:101;background:#071829;color:#c9d5de;font-size:.76rem}.topbar-inner{height:35px;display:flex;align-items:center;justify-content:space-between}.topbar-inner>span{display:flex;align-items:center;gap:10px}.topbar a:hover{color:#fff}.topbar-sep{display:inline-block;height:10px;width:1px;margin:0 15px;background:#486072}.site-header{position:sticky;z-index:100;top:0;background:rgba(251,250,247,.96);border-bottom:1px solid transparent;transition:.25s}.site-header.is-scrolled{border-color:var(--line);box-shadow:0 6px 25px rgba(11,31,53,.06);backdrop-filter:blur(14px)}.nav-wrap{height:82px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:11px}.brand-mark{display:grid;width:38px;height:38px;place-items:center;border-radius:50%;background:var(--navy);color:#fff}.brand-mark svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.6}.brand strong{display:block;color:var(--navy);font-family:var(--font-head);font-size:1.1rem;letter-spacing:.19em;line-height:1.05}.brand small{display:block;color:#657584;font-size:.48rem;letter-spacing:.12em}.main-nav{display:flex;align-items:center;gap:31px}.main-nav>a:not(.button){position:relative;font-size:.84rem;font-weight:600}.main-nav>a:not(.button):after{content:"";position:absolute;left:0;right:100%;bottom:-7px;height:1px;background:var(--blue);transition:.25s}.main-nav>a:hover:after,.main-nav>a.is-active:after{right:0}.menu-toggle{display:none}
.hero{position:relative;min-height:calc(100vh - 117px);height:790px;max-height:900px;color:#fff;overflow:hidden}.hero-image{position:absolute;width:100%;height:100%;object-fit:cover}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,18,31,.94) 0%,rgba(5,20,34,.77) 33%,rgba(5,19,31,.18) 68%,rgba(5,19,31,.08))}.hero-content{position:relative;display:flex;height:100%;align-items:center}.hero-copy{max-width:760px;padding:40px 0 90px}.hero h1{font-size:clamp(3.4rem,6.4vw,6.7rem)}.hero h1 em{color:#9dcee0}.hero-copy>p{max-width:610px;margin:28px 0 34px;color:#d8e2e9;font-size:1.15rem}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.hero-proof{display:flex;gap:42px;margin-top:58px;padding-top:25px;border-top:1px solid rgba(255,255,255,.2)}.hero-proof span{font-size:.78rem;color:#afbec9}.hero-proof strong{display:block;margin-bottom:2px;color:#fff;font-size:.95rem}.scroll-cue{position:absolute;bottom:28px;right:max(24px,calc((100% - 1180px)/2));display:flex;align-items:center;gap:12px;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}.scroll-cue span{display:block;width:38px;height:38px;border:1px solid rgba(255,255,255,.35);border-radius:50%;position:relative}.scroll-cue span:after{content:"↓";position:absolute;inset:8px 12px}
.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:end}.intro-copy{max-width:540px}.service-cards{display:grid;grid-template-columns:repeat(3,1fr);margin-top:80px;border-top:1px solid var(--line);border-left:1px solid var(--line)}.service-card{position:relative;min-height:410px;padding:38px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:.35s}.service-card:hover{z-index:2;transform:translateY(-8px);background:#fff;box-shadow:var(--shadow)}.service-card.featured{background:var(--navy);color:#fff}.service-index{position:absolute;top:22px;right:25px;color:#85919a;font-size:.72rem}.icon-box{display:grid;width:64px;height:64px;margin-bottom:75px;place-items:center;background:var(--sky);color:var(--blue)}.featured .icon-box{background:rgba(255,255,255,.11);color:#b8d9e8}.icon-box svg,.feature-card svg{width:33px;height:33px;fill:none;stroke:currentColor;stroke-width:1.5}.service-card h3{font-size:1.6rem}.service-card p{min-height:80px;margin-top:16px;color:var(--muted)}.featured p{color:#b8c5ce}.card-link{position:absolute;bottom:35px;left:38px;right:38px;display:flex;justify-content:space-between;padding-top:16px;border-top:1px solid var(--line);font-size:.8rem;font-weight:700}.featured .card-link{border-color:rgba(255,255,255,.15)}
.split-section{display:grid;grid-template-columns:1.08fr .92fr;padding:0}.split-image{position:relative;min-height:720px}.split-image img{width:100%;height:100%;object-fit:cover}.image-badge{position:absolute;right:0;bottom:0;display:flex;width:210px;height:130px;flex-direction:column;justify-content:center;padding:25px;background:var(--accent);color:#fff}.image-badge strong{font-family:var(--font-head);font-size:2rem}.image-badge span{font-size:.78rem}.split-content{display:flex;align-items:flex-start;justify-content:center;flex-direction:column;padding:90px clamp(45px,7vw,120px)}.split-content h2{font-size:clamp(2.6rem,4.3vw,4.9rem)}.split-content>p{max-width:560px;margin:28px 0;color:#bdc9d1}.check-list{display:grid;gap:13px;margin:0 0 35px;padding:0;list-style:none}.check-list li:before{content:"✓";display:inline-grid;width:22px;height:22px;margin-right:13px;place-items:center;border:1px solid #5e798d;border-radius:50%;color:#9ed0e1;font-size:.65rem}.section-heading{display:grid;grid-template-columns:1fr .6fr;gap:90px;align-items:end;margin-bottom:65px}.section-heading>p{max-width:460px;color:var(--muted)}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:55px;border-top:1px solid var(--line)}.process-step{display:flex;gap:24px;padding:35px 25px 35px 0;border-bottom:1px solid var(--line)}.process-step+*{padding-left:25px;border-left:1px solid var(--line)}.process-step>span{color:var(--accent);font-size:.7rem;font-weight:700}.process-step h3{margin-bottom:10px}.process-step p{color:var(--muted);font-size:.92rem}.reviews-section{background:#eaf1f2}.reviews-layout{display:grid;grid-template-columns:.34fr .66fr;gap:80px}.review-score{padding-right:50px;border-right:1px solid var(--line)}.review-score>strong{display:block;font-family:var(--font-head);font-size:6.2rem;line-height:1}.stars{margin:10px 0;color:var(--accent);letter-spacing:.2em}.review-score p{color:var(--muted);font-size:.85rem}.review-slider{position:relative;min-height:300px}.review{display:none;margin:0}.review.is-active{display:block;animation:fade .4s}.review p{font-family:var(--font-head);font-size:clamp(1.6rem,2.5vw,2.55rem);line-height:1.4;letter-spacing:-.035em}.review footer{font-weight:700}.review footer span{display:block;color:var(--muted);font-size:.78rem;font-weight:400}.slider-controls{position:absolute;right:0;bottom:0;display:flex;align-items:center;gap:18px}.slider-controls button{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:transparent}.slider-controls span{font-size:.75rem}@keyframes fade{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:none}}
.page-hero{padding:115px 0;background:var(--navy);color:#fff}.page-hero-grid{display:grid;grid-template-columns:1fr 250px;gap:100px;align-items:end}.page-hero h1{font-size:clamp(3rem,5.6vw,5.8rem)}.page-hero h1 em{color:#a9d1df}.page-hero p{max-width:650px;margin:28px 0;color:#bdc9d1;font-size:1.12rem}.page-hero-stat{padding:30px;border-left:1px solid rgba(255,255,255,.2)}.page-hero-stat strong{display:block;font-family:var(--font-head);font-size:3.5rem}.page-hero-stat span{color:#aebdc7;font-size:.85rem}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);border-left:1px solid var(--line);border-top:1px solid var(--line)}.feature-card{position:relative;min-height:360px;padding:35px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.feature-card>span{position:absolute;top:25px;right:28px;color:#87929a;font-size:.7rem}.feature-card svg{width:45px;height:45px;margin:20px 0 55px;color:var(--blue)}.feature-card h3{font-size:1.45rem}.feature-card p{margin-top:15px;color:var(--muted)}.feature-card a{position:absolute;bottom:30px;color:var(--blue);font-size:.8rem;font-weight:700}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:110px}.accordion{border-top:1px solid var(--line)}.accordion-item{border-bottom:1px solid var(--line)}.accordion-item button{display:flex;width:100%;justify-content:space-between;padding:24px 0;border:0;background:none;color:var(--navy);font-family:var(--font-head);font-size:1.2rem;font-weight:700;text-align:left}.accordion-item button span{font-weight:400;transition:.3s}.accordion-item>div{max-height:0;overflow:hidden;transition:max-height .35s}.accordion-item p{padding-right:30px;color:var(--muted)}.accordion-item.is-open>div{max-height:150px}.accordion-item.is-open button span{transform:rotate(45deg)}
.roof-hero{position:relative;height:730px;color:#fff}.roof-hero>img{position:absolute;width:100%;height:100%;object-fit:cover}.roof-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,21,35,.88),rgba(5,21,35,.35) 55%,rgba(5,21,35,.1))}.roof-hero .container{position:relative;height:100%;display:flex;align-items:center}.roof-copy{max-width:750px}.roof-copy h1{font-size:clamp(3rem,5.8vw,6.2rem)}.roof-copy h1 em{color:#aad4e3}.roof-copy p{max-width:570px;margin:28px 0 34px;color:#d6e0e6;font-size:1.15rem}.service-list{border-top:1px solid var(--line)}.service-list article{display:grid;grid-template-columns:80px .7fr 1fr;gap:20px;padding:35px 15px;border-bottom:1px solid var(--line);align-items:start}.service-list article>span{color:var(--accent);font-size:.72rem}.service-list p{color:var(--muted)}.roof-benefits p{max-width:530px;color:#b9c6ce}.signal-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.signal-grid div{display:flex;align-items:center;gap:13px;padding:18px;border:1px solid rgba(255,255,255,.13);font-size:.9rem}.signal-grid i{width:8px;height:8px;border-radius:50%;background:var(--accent)}.estimator-wrap{display:grid;grid-template-columns:.8fr 1fr;gap:110px}.estimator-wrap>div>p{max-width:500px;margin-top:25px;color:var(--muted)}.mini-estimator{padding:38px;background:#fff;box-shadow:var(--shadow)}label{display:block;color:#324453;font-size:.78rem;font-weight:700}input,select,textarea{width:100%;margin-top:8px;padding:14px 15px;border:1px solid #cbd3d8;border-radius:2px;background:#fff;color:var(--ink);outline:none;transition:.2s}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(23,107,146,.1)}textarea{resize:vertical}.mini-estimator label+label{margin-top:18px}.mini-estimator .button{width:100%;margin-top:24px}.estimate-result{display:none;margin-top:20px;padding:18px;background:var(--sky);font-size:.88rem}.estimate-result.is-visible{display:block}.estimate-result strong{display:block;margin-bottom:5px;color:var(--navy)}
.simple-hero{padding:130px 0 110px;background:var(--cream)}.simple-hero h1{font-size:clamp(3rem,6vw,6.2rem);color:var(--navy)}.simple-hero p{max-width:640px;margin-top:28px;color:var(--muted);font-size:1.15rem}.story-grid{display:grid;grid-template-columns:.6fr 1fr;gap:110px}.story-number{color:#c6dce4;font-family:var(--font-head);font-size:13rem;font-weight:800;line-height:.75;letter-spacing:-.1em}.story-number span{display:block;margin-left:120px;color:var(--navy)}.story-grid p:not(.lead){color:var(--muted)}.values-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.values-grid article{min-height:260px;padding:30px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.values-grid span{display:block;margin-bottom:70px;color:var(--accent);font-size:.7rem}.values-grid h3{margin-bottom:14px}.values-grid p{color:var(--muted);font-size:.9rem}.numbers-section{background:var(--sky)}.numbers-grid{display:grid;grid-template-columns:repeat(4,1fr)}.numbers-grid div{text-align:center;border-right:1px solid var(--line)}.numbers-grid div:last-child{border:0}.numbers-grid strong{display:block;color:var(--navy);font-family:var(--font-head);font-size:3.4rem}.numbers-grid span{color:var(--muted);font-size:.8rem}
.form-hero{padding:95px 0 70px;background:var(--cream)}.form-hero h1{font-size:clamp(3rem,5.5vw,5.6rem)}.form-hero p{max-width:600px;margin-top:20px;color:var(--muted)}.form-section{padding-top:50px}.form-layout{display:grid;grid-template-columns:320px 1fr;gap:70px;align-items:start}.form-aside{position:sticky;top:135px;padding:30px;background:var(--navy);color:#fff}.form-kicker{font-family:var(--font-head);font-size:1.1rem;font-weight:700}.form-aside ol{margin:28px 0;padding:0;list-style:none}.form-aside li{display:flex;gap:15px;padding:20px 0;border-top:1px solid rgba(255,255,255,.13)}.form-aside li>span{display:grid;width:27px;height:27px;flex:0 0 27px;place-items:center;border:1px solid #5d7587;border-radius:50%;font-size:.7rem}.form-aside li strong{font-size:.9rem}.form-aside li p{margin:3px 0;color:#aebdc8;font-size:.76rem}.aside-call{padding:18px;background:rgba(255,255,255,.08)}.aside-call small{display:block;color:#aebdc8}.aside-call a{font-size:1.15rem;font-weight:700}.form-card{min-height:570px;padding:45px;background:#fff;box-shadow:var(--shadow)}.form-progress{position:relative;display:flex;justify-content:space-between;margin-bottom:50px;padding-bottom:18px;border-bottom:2px solid #e4e8ea;color:#9aa4ab;font-size:.68rem;font-weight:700;text-transform:uppercase}.form-progress span.is-active{color:var(--blue)}.form-progress i{position:absolute;bottom:-2px;left:0;width:33%;height:2px;background:var(--blue);transition:.3s}.form-step{display:none;margin:0;padding:0;border:0}.form-step.is-active{display:block;animation:fade .35s}.form-step legend{font-family:var(--font-head);font-size:1.85rem;font-weight:700;letter-spacing:-.04em}.step-intro{color:var(--muted)}.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:25px 0 30px}.choice-card{position:relative;min-height:115px;padding:18px;border:1px solid var(--line);cursor:pointer;transition:.2s}.choice-card:hover{border-color:var(--blue)}.choice-card input{position:absolute;opacity:0;width:0}.choice-card:has(input:checked){border-color:var(--blue);background:#edf5f7}.choice-check{position:absolute;right:12px;top:10px;display:none;color:var(--blue)}.choice-card:has(input:checked) .choice-check{display:block}.choice-card strong{display:block;margin-top:15px;color:var(--navy);font-size:.92rem}.choice-card small{color:var(--muted);font-weight:400}.step-next{float:right}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-step label,.contact-form-card label{margin-top:20px}.form-step label small{display:block;margin-top:5px;color:var(--muted);font-weight:400}.step-actions{display:flex;align-items:center;justify-content:space-between;margin-top:28px}.check-field{display:flex!important;gap:12px;align-items:flex-start}.check-field input{width:auto;margin-top:4px}.check-field span{font-weight:400}.secure-note{text-align:right;margin-top:12px;color:var(--muted);font-size:.72rem}.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.alert{margin-bottom:25px;padding:16px 20px;border-left:3px solid #d64b3b;background:#fff0ed;color:#8e3328;font-size:.85rem}.alert ul{margin:8px 0 0}.success-panel{padding:55px 30px;text-align:center}.success-panel.compact{padding:30px}.success-icon{display:grid;width:64px;height:64px;margin:0 auto 25px;place-items:center;border-radius:50%;background:#e4f4eb;color:#258653;font-size:1.7rem}.success-panel p{max-width:540px;margin:18px auto 30px;color:var(--muted)}.success-panel>div:last-child{display:flex;align-items:center;justify-content:center;gap:25px}
.contact-hero{background:var(--sky)}.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:100px}.contact-details h2{margin-bottom:40px}.contact-line{position:relative;display:grid;grid-template-columns:100px 1fr 25px;gap:20px;padding:22px 0;border-top:1px solid var(--line)}.contact-line span{color:var(--muted);font-size:.75rem}.contact-line strong{font-size:.95rem}.contact-line i{font-style:normal}.contact-form-card{padding:40px;background:#fff;box-shadow:var(--shadow)}.contact-form-card .button{margin-top:20px}.zone-layout{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}.zone-layout>div>p{max-width:530px;color:var(--muted)}.zone-checker{display:flex;gap:10px;max-width:480px;margin-top:25px}.zone-checker input{margin:0}.zone-result{margin-top:15px;font-size:.86rem}.zone-result.ok{color:#258653}.zone-result.no{color:#b14a38}.map-card{position:relative;height:340px;overflow:hidden;background:#dce9e9}.map-card svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#a2b9bd;stroke-width:2}.map-ring{position:absolute;border:1px solid rgba(23,107,146,.25);border-radius:50%}.ring-one{width:280px;height:280px;left:30px;top:60px}.ring-two{width:180px;height:180px;right:20px;top:10px}.map-point{position:absolute;z-index:2;color:var(--navy);font-size:.75rem;font-weight:700}.map-point i{display:block;width:13px;height:13px;margin-bottom:5px;border:3px solid #fff;border-radius:50%;background:var(--accent);box-shadow:0 2px 8px rgba(0,0,0,.2)}.geneva{left:32%;bottom:24%}.morges{right:27%;top:29%}.legal-hero{padding-bottom:70px}.legal-content h2{margin:45px 0 14px;font-size:1.7rem}.legal-content h2:first-child{margin-top:0}.legal-content p{color:var(--muted)}
.cta-band{padding:55px 0;background:var(--blue);color:#fff}.cta-band-inner{display:flex;align-items:center;justify-content:space-between}.cta-band h2{font-size:clamp(2rem,3.5vw,3.4rem)}.cta-band-actions{display:flex;align-items:center;gap:30px}.site-footer{padding:75px 0 25px;background:#071829;color:#b5c2cc}.footer-grid{display:grid;grid-template-columns:1.35fr .8fr 1fr .8fr;gap:60px}.brand-light strong{color:#fff}.brand-light .brand-mark{background:#fff;color:var(--navy)}.footer-brand p{max-width:330px;margin-top:25px}.footer-grid h3{margin-bottom:22px;color:#fff;font-size:.86rem;letter-spacing:0}.footer-grid>div:not(:first-child) a,.footer-grid>div:not(:first-child) p{display:block;margin:0 0 10px;font-size:.82rem}.footer-grid a:hover{color:#fff}.footer-bottom{display:flex;justify-content:space-between;margin-top:65px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);font-size:.7rem}.footer-bottom div{display:flex;gap:20px}.floating-call{position:fixed;z-index:90;right:24px;bottom:22px;display:flex;align-items:center;gap:11px;padding:11px 17px;border-radius:40px;background:var(--accent);color:#fff;box-shadow:0 12px 35px rgba(85,36,25,.25)}.floating-call svg{width:22px;fill:currentColor}.floating-call small{display:block;font-size:.58rem}.floating-call>span:last-child{font-size:.78rem;font-weight:700;line-height:1.2}.pulse{position:absolute;left:-2px;top:-2px;width:10px;height:10px;border:2px solid #fff;border-radius:50%;background:#50ca89}.toast{position:fixed;z-index:200;left:50%;bottom:-100px;transform:translateX(-50%);padding:12px 18px;background:var(--navy);color:#fff;font-size:.85rem;transition:.3s}.toast.is-visible{bottom:25px}
@media(max-width:960px){:root{--container:min(100% - 36px,760px)}.topbar-inner>span{display:none}.topbar-inner{justify-content:center}.menu-toggle{display:flex;width:48px;height:48px;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:0;background:none}.menu-toggle span{display:block;width:23px;height:2px;background:var(--navy)}.menu-toggle em{position:absolute;overflow:hidden;width:1px;height:1px}.main-nav{position:fixed;inset:117px 0 0;display:flex;visibility:hidden;opacity:0;transform:translateY(-10px);flex-direction:column;align-items:flex-start;padding:45px 30px;background:var(--paper);transition:.25s}.main-nav.is-open{visibility:visible;opacity:1;transform:none}.main-nav>a:not(.button){font-family:var(--font-head);font-size:1.8rem}.main-nav .button{margin-top:20px}.hero{height:740px}.hero-overlay{background:linear-gradient(90deg,rgba(4,18,31,.94),rgba(5,20,34,.6) 70%,rgba(5,19,31,.3))}.hero-proof{gap:25px}.intro-grid,.section-heading,.two-col,.estimator-wrap,.story-grid,.form-layout,.contact-grid,.zone-layout{grid-template-columns:1fr;gap:50px}.service-cards,.feature-grid{grid-template-columns:1fr 1fr}.split-section{grid-template-columns:1fr}.split-image{min-height:520px}.process-grid{grid-template-columns:1fr}.process-step+*{padding-left:0;border-left:0}.reviews-layout{grid-template-columns:1fr}.review-score{padding:0 0 30px;border-right:0;border-bottom:1px solid var(--line)}.page-hero-grid{grid-template-columns:1fr}.page-hero-stat{display:none}.values-grid,.numbers-grid{grid-template-columns:1fr 1fr}.form-aside{position:relative;top:0}.footer-grid{grid-template-columns:1fr 1fr}.cta-band-inner{align-items:flex-start;flex-direction:column;gap:30px}}
@media(max-width:620px){:root{--container:calc(100% - 28px)}.topbar{display:none}.nav-wrap{height:74px}.main-nav{inset:74px 0 0}.hero{min-height:680px;height:calc(100svh - 74px)}.hero-image{object-position:61% center}.hero-overlay{background:linear-gradient(90deg,rgba(4,18,31,.94),rgba(5,20,34,.76))}.hero-copy{padding-top:20px}.hero h1{font-size:3.15rem}.hero-copy>p{font-size:1rem}.hero-actions .button{width:100%}.hero-proof{display:none}.scroll-cue{display:none}.section{padding:75px 0}.intro-grid{gap:28px}.service-cards,.feature-grid{grid-template-columns:1fr;margin-top:45px}.service-card{min-height:350px}.icon-box{margin-bottom:45px}.split-image{min-height:380px}.split-content{padding:70px 22px}.image-badge{width:170px;height:100px}.section-heading{gap:22px;margin-bottom:40px}.process-grid{margin-bottom:35px}.review-score>strong{font-size:4.8rem}.review-slider{min-height:360px}.review p{font-size:1.45rem}.page-hero{padding:80px 0}.page-hero h1,.roof-copy h1,.simple-hero h1,.form-hero h1{font-size:3rem}.roof-hero{height:650px}.roof-overlay{background:rgba(5,21,35,.72)}.service-list article{grid-template-columns:40px 1fr}.service-list article p{grid-column:2}.signal-grid{grid-template-columns:1fr}.mini-estimator{padding:25px}.simple-hero{padding:80px 0}.story-number{font-size:8rem}.story-number span{margin-left:75px}.values-grid,.numbers-grid{grid-template-columns:1fr}.numbers-grid div{padding:20px;border-right:0;border-bottom:1px solid var(--line)}.form-card{padding:25px 18px}.form-layout{gap:30px}.choice-grid{grid-template-columns:1fr 1fr}.form-progress span{font-size:.55rem}.field-row{grid-template-columns:1fr;gap:0}.step-actions{gap:15px}.contact-grid{gap:40px}.contact-form-card{padding:25px 18px}.contact-line{grid-template-columns:75px 1fr 15px}.zone-checker{flex-direction:column}.map-card{height:280px}.cta-band-actions{align-items:flex-start;flex-direction:column}.footer-grid{grid-template-columns:1fr}.footer-bottom{gap:18px;flex-direction:column}.floating-call{right:14px;bottom:14px}.floating-call>span:last-child{display:none}}

/* Palette sanitaire : eau froide, eau chaude et evacuation. */
:root{--water-cold:#178fc5;--water-cold-deep:#08638f;--water-hot:#df5945;--water-drain:#318274;--water-drain-deep:#17584f}
.button{position:relative;overflow:hidden;isolation:isolate}
.button-accent{background:linear-gradient(135deg,var(--water-cold-deep),var(--water-cold));color:#fff}
.button-dark,.button-small{background:linear-gradient(135deg,var(--water-drain-deep),var(--water-drain));color:#fff}
.button-white{color:var(--water-cold-deep)}
.button-ghost{background:rgba(23,143,197,.12);border-color:rgba(255,255,255,.65)}
.button:after{content:"";position:absolute;z-index:-1;left:-75%;bottom:0;width:65%;height:4px;background:linear-gradient(90deg,var(--water-cold),var(--water-hot),var(--water-drain));transform:skewX(-24deg);opacity:0}
.button:hover:after,.button:focus-visible:after{animation:button-water-flow .85s ease-out;opacity:1}
.button-accent:hover,.button-accent:focus-visible{background:linear-gradient(135deg,#07577e,#159edc)}
.button-dark:hover,.button-dark:focus-visible,.button-small:hover,.button-small:focus-visible{background:linear-gradient(135deg,#114b44,#359888)}
@keyframes button-water-flow{from{left:-75%}to{left:120%}}

.sanitary-network{display:grid;gap:22px;min-width:250px;padding:28px 0 28px 30px}
.sanitary-network .network-title{margin-bottom:5px;color:#b8d9e8;font-size:.72rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.network-line>span{display:block;margin-bottom:7px;color:#dce8ed;font-size:.78rem;font-weight:600}
.network-pipe{position:relative;height:8px;overflow:hidden;border-radius:99px;background:rgba(255,255,255,.12);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.network-pipe:before{content:"";position:absolute;inset:0;border-radius:inherit;opacity:.78}
.network-pipe i{position:absolute;z-index:1;top:1px;left:-16px;width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 10px currentColor;animation:network-flow 2.8s linear infinite}
.network-cold{color:var(--water-cold)}.network-cold .network-pipe:before{background:linear-gradient(90deg,transparent,var(--water-cold))}
.network-hot{color:var(--water-hot)}.network-hot .network-pipe:before{background:linear-gradient(90deg,transparent,var(--water-hot))}.network-hot .network-pipe i{animation-delay:-.9s}
.network-drain{color:var(--water-drain)}.network-drain .network-pipe{height:12px}.network-drain .network-pipe:before{background:repeating-linear-gradient(115deg,var(--water-drain-deep) 0 12px,var(--water-drain) 12px 24px);animation:drain-flow 1.2s linear infinite}.network-drain .network-pipe i{top:3px;animation-delay:-1.8s}
@keyframes network-flow{0%{left:-16px;opacity:0}10%,88%{opacity:1}100%{left:calc(100% + 10px);opacity:0}}
@keyframes drain-flow{to{background-position:27px 0}}
@media(prefers-reduced-motion:reduce){.button:hover:after,.button:focus-visible:after,.network-pipe i,.network-drain .network-pipe:before{animation:none}.network-pipe i{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
