:root{--navy:#092a4b;--deep:#051b31;--orange:#ff9b29;--blue:#0878bc;--pale:#eff5f9;--ink:#092a4b;--muted:#52687a;--line:#d7e5ef;font-family:Arial,Helvetica,sans-serif;color:var(--ink)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:116px}body{margin:0;background:#fff;line-height:1.6;font-size:1rem}a{color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}.wrap{width:min(1280px,calc(100% - 56px));margin:auto}.section{padding:88px 0}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.12}h2{font-size:clamp(2rem,3.5vw,3.3rem);letter-spacing:-.035em;margin-bottom:24px}h3{font-size:1.4rem;letter-spacing:-.02em}p{color:var(--muted)}.eyebrow{display:block;color:var(--blue);font-size:.875rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-bottom:17px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:13px 24px;border-radius:5px;font-weight:800;text-decoration:none;border:2px solid transparent;line-height:1.35;transition:background .18s}.btn-orange{background:var(--orange);color:var(--deep)}.btn-orange:hover{background:#ffb55e}.btn-white{background:#fff;color:var(--navy)}.btn-outline{border-color:var(--line)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #168ed4;outline-offset:4px}.skip{position:absolute;left:-9999px;z-index:100;background:#fff;padding:12px}.skip:focus{left:12px;top:12px}.topline{background:var(--navy);color:#e4eff8;font-size:.875rem}.topline .wrap{display:flex;justify-content:space-between;padding:9px 0}.topline a{text-decoration:none;font-weight:700}header{position:sticky;top:0;background:#000;z-index:30}.header-inner{display:flex;align-items:center;gap:24px;min-height:100px}.brand{display:block;line-height:0;flex:none}.brand svg{display:block;width:205px;height:auto;aspect-ratio:1040/480}nav{display:flex;align-items:center;justify-content:flex-end;gap:20px;margin-left:auto}nav a{font-size:.875rem;font-weight:700;text-decoration:none;color:white;white-space:nowrap}nav a:hover{color:#7ccffa}.header-book{white-space:nowrap;font-size:.875rem;padding:12px 18px;min-height:46px}.menu-toggle{display:none;border:1px solid #3c5b73;border-radius:4px;background:var(--navy);color:white;font-size:1.5rem;padding:8px 13px;line-height:1}
.hero{background:linear-gradient(110deg,#061e37,#0c4770);color:#fff;position:relative;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.6fr .65fr;gap:80px;align-items:center;min-height:600px;padding:84px 0}.hero h1{font-size:clamp(2.8rem,5.1vw,5.1rem);letter-spacing:-.045em;line-height:1.04;margin-bottom:26px}.hero em{font-style:normal;color:var(--orange)}.hero .eyebrow{color:#90d6fb}.hero p{font-size:1.125rem;color:#dce9f4;max-width:650px}.actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}.hero-proof{display:flex;flex-wrap:wrap;gap:10px 23px;font-size:.875rem;margin-top:30px;color:#c5dcec}.hero-proof span:before{content:'✓';margin-right:7px;color:#ffb665}.hero-panel{border-left:4px solid var(--orange);padding:30px 0 30px 33px}.hero-panel strong{display:block;font-size:7rem;font-weight:800;line-height:1;letter-spacing:-.065em}.hero-panel strong span{color:var(--orange)}.hero-panel h2{font-size:1.4rem;letter-spacing:0;margin:15px 0}.hero-panel p{font-size:1rem}.hero-panel a{color:white;font-weight:800;text-underline-offset:6px}.quote-banner{background:var(--deep);color:#fff}.quote-banner .wrap{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:21px 0}.quote-banner p{color:white;margin:0;font-weight:700}.quote-banner a{color:var(--orange);font-weight:800;text-underline-offset:5px;white-space:nowrap}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:60px;margin-bottom:36px}.section-heading h2{margin-bottom:0}.section-heading>p{max-width:430px;margin-bottom:3px;font-size:1.0625rem}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.service{border:1px solid var(--line);border-top:4px solid var(--blue);padding:31px;display:flex;flex-direction:column}.service:nth-child(3n+2){border-top-color:var(--orange)}.service-no{color:var(--blue);font-size:.875rem;letter-spacing:.08em;font-weight:800}.service h3{margin:27px 0 14px}.service p{margin-bottom:22px}.service a{margin-top:auto;color:var(--blue);font-weight:700;text-underline-offset:5px}.split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start}.about{background:var(--pale)}.about p{font-size:1.0625rem}.accordion details{background:white;border:1px solid var(--line);border-radius:6px;margin-top:11px;padding:16px 19px}.accordion summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;font-size:1.0625rem;font-weight:800}.accordion summary::-webkit-details-marker{display:none}.accordion summary:after{content:'+';color:var(--blue);font-size:1.4rem}.accordion details[open] summary:after{content:'−'}.accordion details p{font-size:1rem;margin:13px 0 2px}.about-card{background:var(--navy);padding:44px;color:#fff;min-height:450px;display:flex;flex-direction:column;justify-content:center;border-bottom:6px solid var(--orange)}.about-card .eyebrow{color:#8cd4fd}.about-card h3{font-size:clamp(2rem,3vw,3rem);letter-spacing:-.04em;line-height:1.18;margin-bottom:30px}.about-card p{color:#cbddeb}.about-card .btn{align-self:flex-start}.areas-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:28px}.areas-grid span{background:var(--pale);padding:20px;border-left:3px solid var(--blue);font-weight:800}.areas-grid span:first-child{background:var(--navy);color:#fff;border-color:var(--orange)}.contact{background:linear-gradient(120deg,var(--deep),#0b4169);color:#fff}.contact .eyebrow{color:#8cd5ff}.contact p{color:#d1e3f1}.direct{display:flex;flex-direction:column;gap:12px;margin:30px 0;font-weight:800}.direct a{overflow-wrap:anywhere;text-underline-offset:5px}.direct a:first-child{font-size:1.9rem}.small{font-size:.875rem}.form-card{padding:35px;background:#fff;color:var(--ink);border-radius:8px;box-shadow:16px 16px 0 #ffffff0d}.form-card>p{color:var(--muted);font-size:1rem;margin-bottom:22px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.full{grid-column:1/-1}.field label{font-size:.875rem;font-weight:800}.field input,.field select,.field textarea{min-height:48px;padding:11px 12px;width:100%;min-width:0;border:1px solid #b9cad7;border-radius:4px;color:var(--ink);background:#fff}.field textarea{min-height:125px;resize:vertical}.field small{color:var(--muted);font-size:.875rem}.form-card button{width:100%;margin-top:23px}.contact .form-note{color:var(--muted);font-size:.875rem;line-height:1.6;margin:14px 0 0}footer{background:var(--deep);color:#c5d8e9;padding:50px 0 28px}footer p{color:#b4ccdf}footer h3{color:white}.footer-grid{display:flex;justify-content:space-between;gap:40px}.footer-links{display:flex;gap:23px;align-items:flex-start;flex-wrap:wrap}.copyright{border-top:1px solid #ffffff20;padding-top:22px;margin:32px 0 0;font-size:.875rem}.whatsapp{position:fixed;right:24px;bottom:23px;z-index:28;display:flex;align-items:center;gap:12px;text-decoration:none}.whatsapp svg{width:55px;height:55px;background:#17853e;color:#fff;border-radius:50%;padding:11px;box-shadow:0 3px 20px #00172c30}.whatsapp span{background:#fff;color:var(--ink);font-size:.875rem;font-weight:700;padding:8px 13px;border-radius:5px;box-shadow:0 2px 14px #00172c18}.mobile-bar{display:none}
.review-section{background:white}.review-controls{display:flex;gap:9px;align-items:center}.review-controls button{min-width:44px;min-height:44px;border:1px solid var(--line);color:var(--navy);background:white;border-radius:4px;font-size:1.3rem}.review-track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;padding:3px 0 15px}.review-card{flex:0 0 calc((100% - 36px)/3);scroll-snap-align:start;border:1px solid var(--line);padding:28px;min-width:0;border-radius:6px}.stars{color:#a65f00;letter-spacing:.06em;font-size:1.25rem}.review-card blockquote{margin:15px 0 24px;color:var(--ink);font-size:1.0625rem;line-height:1.55}.review-card .review-meta{display:flex;justify-content:space-between;align-items:center;gap:12px}.review-card time{color:var(--muted);font-size:.875rem}.review-source{font-size:.875rem;font-weight:700;color:var(--blue);margin-top:12px}.review-bottom{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:25px}.review-bottom p{font-size:.875rem;margin:0}.experience{background:var(--navy);color:white}.experience .wrap{padding:59px 0}.experience h2{max-width:900px}.experience p{color:#d3e5f3;max-width:890px;font-size:1.0625rem}.experience .btn{margin-top:15px}.popular-list{list-style:none;padding:0;margin:26px 0;columns:2;column-gap:30px}.popular-list li{break-inside:avoid;margin-bottom:12px}.popular-list a{font-weight:700;text-decoration:none}.popular-list a:before{content:'•';color:var(--orange);margin-right:10px}.service-note{background:var(--pale);border-left:3px solid var(--blue);padding:20px;font-size:.875rem}.make-strip{padding:30px 0;border-bottom:1px solid var(--line)}.make-strip p{font-size:.875rem;margin-bottom:16px;text-align:center}.make-list{display:flex;flex-wrap:wrap;justify-content:center;gap:15px 40px;color:#4a6278;font-size:1.15rem;font-weight:800}.work-section{background:var(--pale)}.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.work-card{margin:0;background:white;border-bottom:3px solid var(--blue);padding:20px;display:flex;gap:20px;align-items:center}.work-card img{width:132px;height:150px;object-fit:cover;border-radius:4px;flex:none}.work-card figcaption{font-weight:800;line-height:1.3;font-size:1rem}.work-source{font-size:.875rem;margin-top:25px;margin-bottom:0}.benefits{display:grid;grid-template-columns:1fr 1fr;gap:31px 38px}.benefit .benefit-icon{color:var(--blue);font-size:1.9rem;font-weight:800;display:block;margin-bottom:13px}.benefit h3{font-size:1.15rem;color:var(--blue);margin-bottom:13px}.benefit p{font-size:1rem}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:40px}.step{border-top:3px solid var(--orange);padding-top:22px}.step strong{font-size:1.8rem;color:var(--blue)}.step h3{margin:18px 0 13px}.bathroom{background:var(--pale)}.bathroom .split{align-items:center}.bathroom-aside{border-left:5px solid var(--orange);padding:35px;background:white}.bathroom-aside h3{font-size:1.8rem}.bathroom-aside ul{padding-left:21px;margin-bottom:0}.bathroom-aside li{margin:13px 0}.resources .accordion{max-width:900px}.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.header-bathroom{font-size:.875rem;padding:10px 16px;min-height:46px;white-space:nowrap}.review-card{flex-basis:calc((100% - 18px)/2)}.review-controls button:disabled{opacity:.35;cursor:default}.experience .eyebrow{color:#90d6fb}.review-bottom .cta-row{margin:0}.footer-links{max-width:460px}footer a{overflow-wrap:anywhere}
@media(max-width:1150px){.header-inner{gap:16px}.brand svg{width:170px}nav{display:none;position:absolute;top:100%;left:0;right:0;padding:20px 28px;background:#000;box-shadow:0 12px 20px #0002;flex-direction:column;align-items:stretch;margin:0}nav.open{display:flex}nav a{font-size:1rem;padding:6px 0}.menu-toggle{display:block;margin-left:0}.header-bathroom{margin-left:auto}.header-book{padding:10px 14px}.hero-grid{gap:40px}.work-card{display:block}.work-card img{width:100%;height:200px;object-fit:contain;background:#eef2f5;margin-bottom:16px}}
@media(max-width:980px){.menu-toggle{display:block;margin-left:auto}.header-book{margin-left:auto}nav{display:none;position:absolute;top:100%;left:0;right:0;padding:20px 28px;background:#000;box-shadow:0 12px 20px #0002;flex-direction:column;align-items:stretch;margin:0}nav.open{display:flex}nav a{font-size:1rem;padding:6px 0}.hero-grid{grid-template-columns:1.6fr .6fr;gap:30px}.hero-panel{padding-left:24px}.hero-panel strong{font-size:5.5rem}.split{gap:38px}.service{padding:25px}.service-grid{grid-template-columns:repeat(2,1fr)}.review-card{flex-basis:calc((100% - 18px)/2)}.section-heading{gap:35px}.quote-banner .wrap{display:block}.quote-banner a{display:inline-block;margin-top:6px}.about-card{padding:30px}.work-card img{height:170px}.work-card{padding:15px}}
@media(max-width:720px){html{scroll-padding-top:90px}.wrap{width:calc(100% - 36px)}.topline .wrap{font-size:.8125rem}.header-inner{min-height:82px;gap:12px}.brand svg{width:166px}.header-book{font-size:.875rem;min-height:43px;padding:10px 13px}.menu-toggle{margin-left:0}.hero-grid{display:block;min-height:0;padding:68px 0 62px}.hero h1{font-size:clamp(2.4rem,8.5vw,3.8rem)}.hero-panel{display:none}.hero p{font-size:1.0625rem}.hero-proof{gap:12px;font-size:.875rem}.hero .eyebrow{font-size:.8125rem}.actions .btn{flex:1;min-width:180px}.section{padding:65px 0}.section-heading{display:block}.section-heading>p{margin-top:20px}.service-grid,.split,.steps,.work-grid{grid-template-columns:1fr}.about-card{min-height:320px}.areas-grid{grid-template-columns:1fr 1fr}.review-card{flex-basis:88%}.review-bottom{align-items:flex-start;flex-direction:column}.experience .wrap{padding:48px 0}.popular-list{columns:1}.make-list{gap:13px 25px;font-size:1rem}.work-card{display:flex;align-items:center;padding:20px}.work-card img{width:125px;height:135px;margin:0;object-fit:cover}.benefits{gap:22px}.benefit h3{font-size:1.0625rem}.benefit p{font-size:.9375rem}.form-card{padding:25px;box-shadow:none}.footer-grid{display:block}.footer-links{margin-top:30px}.whatsapp{bottom:84px;right:16px}.whatsapp span{display:none}.whatsapp svg{width:50px;height:50px}.mobile-bar{display:flex;position:fixed;z-index:25;bottom:0;left:0;right:0;gap:8px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -3px 20px #0002}.mobile-bar a{flex:1;padding:10px 8px;text-align:center;font-weight:800;background:var(--orange);text-decoration:none;border-radius:4px}.mobile-bar a:last-child{background:var(--navy);color:#fff}footer{padding-bottom:110px}.quote-banner a{white-space:normal}.review-controls{margin-top:20px}.section-heading:has(.review-controls){display:flex;align-items:center}.review-controls{flex-shrink:0}}
@media(max-width:720px){.header-bathroom{display:none}.header-book{margin-left:auto}.menu-toggle{margin-left:0}}
@media(max-width:420px){.header-book{display:none}.menu-toggle{margin-left:auto}.fields{grid-template-columns:1fr}.full{grid-column:auto}.benefits{grid-template-columns:1fr}.hero h1{font-size:2.6rem}.hero-proof{flex-direction:column}.form-card{padding:21px}.topline .wrap{font-size:.8125rem;gap:14px}.work-card{padding:15px;gap:15px}.work-card img{width:105px;height:120px}.section-heading:has(.review-controls){display:block}.section-heading:has(.review-controls) h2{font-size:2rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}.review-track{scroll-behavior:auto}}
/* Google review profiles */
.google-summary{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;margin-top:21px;text-decoration:none;color:var(--muted);font-size:1rem}.google-summary strong{color:var(--ink);font-size:1.2rem}.google-attribution{font-weight:800;color:var(--blue)}.google-review{display:flex;flex-direction:column;min-height:265px}.google-review-header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.review-author{display:flex;align-items:center;gap:12px;text-decoration:none;min-width:0}.review-author img{width:44px;height:44px;min-width:44px;border-radius:50%;object-fit:cover;background:var(--pale)}.review-author strong{display:block;font-size:1rem;line-height:1.35;overflow-wrap:anywhere}.review-author small{display:block;font-size:.875rem;color:var(--muted);line-height:1.5;margin-top:3px}.review-platform{font-size:.875rem;color:var(--blue);font-weight:700;white-space:nowrap}.google-review blockquote{margin-bottom:25px}.review-card-links{display:flex;flex-wrap:wrap;gap:10px 20px;margin-top:auto;font-size:.875rem;font-weight:700;color:var(--blue)}.review-card-links a{text-underline-offset:4px}.review-author:hover strong{text-decoration:underline;text-underline-offset:4px}@media(max-width:720px){.google-review-header{align-items:flex-start;flex-direction:column;gap:9px}.google-review{min-height:290px}.google-summary{font-size:.9375rem;gap:8px 12px}}
.hero-panel .eyebrow{white-space:nowrap;font-size:clamp(.5rem,1.1vw,.875rem);letter-spacing:.06em}
/* Official boiler brand logos */
.make-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:24px 36px;max-width:960px;margin:0 auto}
.make-logo{display:flex;align-items:center;justify-content:center;height:64px;min-width:0;overflow:hidden}
.make-logo img{width:100%;max-width:200px;height:56px;object-fit:contain}
.make-logo.vaillant img{max-width:178px}
.make-logo.glow-worm img{max-width:188px}
.make-logo.viessmann img{max-width:220px;height:auto}
@media(max-width:720px){.make-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px}.make-logo{height:58px}.make-logo img{height:48px;max-width:190px}.make-logo.vaillant img{max-width:156px}.make-logo.glow-worm img{max-width:172px}.make-logo.viessmann img{height:auto;max-width:200px}}
/* GMH project photo gallery */
.project-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.project-gallery .work-card{display:block;padding:16px;min-width:0}
.project-gallery .work-photo{display:block;aspect-ratio:3/4;background:#eef2f5;border-radius:4px;overflow:hidden}
.project-gallery .work-card img{display:block;width:100%;height:100%;margin:0;object-fit:contain;border-radius:0}
.project-gallery .work-card figcaption{padding:18px 2px 4px;line-height:1.4}
.project-gallery .work-photo:hover{outline:2px solid var(--blue);outline-offset:2px}
@media(max-width:980px){.project-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}}
@media(max-width:520px){.project-gallery{grid-template-columns:1fr;gap:20px}.project-gallery .work-card{padding:14px}.project-gallery .work-photo{aspect-ratio:3/4;max-height:480px}.project-gallery .work-card figcaption{padding-top:14px}}
