:root{
  --navy:#06345d;--blue:#0b7ec2;--light:#f4f7fa;--orange:#f58220;--text:#17324c;--muted:#647789;--white:#fff;--green:#59a632;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Arial,sans-serif;color:var(--text);background:#fff;line-height:1.5}.wrap{width:min(1180px,calc(100% - 40px));margin:auto}a{color:inherit;text-decoration:none}.topbar{background:var(--navy);color:white;font-size:13px}.topbar-inner{display:flex;justify-content:space-between;padding:8px 0}.topbar span{opacity:.55;margin:0 10px}.site-header{background:white;position:sticky;top:0;z-index:20;box-shadow:0 1px 10px #00000012}.header-main{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:28px;padding:14px 0}.brand{display:flex;align-items:center;gap:14px}.brand-mark{width:62px;height:48px;position:relative}.roof{position:absolute;left:8px;top:7px;width:48px;height:48px;border-left:8px solid var(--navy);border-top:8px solid var(--orange);transform:rotate(45deg);border-radius:3px}.drop{position:absolute;left:25px;top:13px;color:#1597d3;font-size:28px}.brand-name{font-size:27px;font-weight:800;letter-spacing:.4px;color:var(--navy)}.brand-sub{letter-spacing:4px;font-size:14px;color:var(--navy)}.header-contact{display:flex;align-items:center;gap:12px}.phone-icon{width:48px;height:48px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:25px}.header-contact div:last-child{display:flex;flex-direction:column}.header-contact a{font-size:26px;font-weight:800;color:var(--blue);line-height:1.1}.header-contact small{font-size:12px}.accreditations{display:flex;gap:10px}.badge{min-width:84px;text-align:center;padding:8px;border-radius:6px;font-weight:800;line-height:1.05}.badge small{font-size:10px;font-weight:600}.badge-gas{background:#111;color:#f5d900;border:2px solid #f5d900}.badge-snipef{background:#eef5fb;color:var(--navy);border:2px solid var(--navy)}.nav{border-top:1px solid #e7edf2}.nav-inner{display:flex}.nav-toggle{display:none}.nav-links{display:flex;width:100%}.nav-links a{padding:15px 18px;font-size:14px;font-weight:600}.nav-links a:hover,.nav-links .active{background:var(--blue);color:white}.hero{position:relative;min-height:455px;background:linear-gradient(90deg,#1b2c38 0 50%,#dbe2e7 50% 100%);overflow:hidden}.hero:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 75% 35%,#ffffff88,transparent 28%),linear-gradient(135deg,transparent 60%,#ffffff2a)}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,#0b1826e8 0 45%,transparent 72%)}.hero-content{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;min-height:455px;gap:30px}.hero-copy{color:#fff;padding:48px 0}.eyebrow{font-size:12px;letter-spacing:2px;color:#a9d6ef;font-weight:700}.hero h1{font-size:48px;line-height:1.02;margin:10px 0 18px}.hero-lead{font-weight:700;font-size:17px}.hero-copy>p{max-width:600px}.hero-actions{display:flex;gap:16px;margin-top:28px}.btn{display:inline-flex;align-items:center;justify-content:center;flex-direction:column;min-height:62px;padding:10px 24px;border-radius:6px;color:#fff;font-weight:800;border:0;cursor:pointer}.btn span{font-size:13px}.btn-orange{background:var(--orange)}.btn-blue{background:#138cda}.van-card{display:flex;justify-content:center;align-items:center}.van-graphic{width:520px;max-width:100%;height:230px;background:linear-gradient(#fdfdfd,#d7dde1);border:5px solid #a3adb4;border-radius:42px 72px 24px 18px;box-shadow:0 18px 25px #0005;position:relative;padding:55px 35px 20px 58px;transform:skewX(-2deg)}.van-graphic:before,.van-graphic:after{content:"";position:absolute;bottom:-34px;width:72px;height:72px;border-radius:50%;background:#26343e;border:9px solid #0e1418}.van-graphic:before{left:70px}.van-graphic:after{right:48px}.van-brand{font-size:25px;font-weight:800;color:var(--navy)}.van-brand span{color:#0f78b2}.van-services{margin-top:18px;color:var(--navy);font-weight:700}.van-note{margin-top:8px;font-style:italic;color:#315875}.section{padding:52px 0}.section-heading{text-align:center;margin-bottom:28px}.section-heading h2,.about h2,.areas h2,.contact-section h2{font-size:30px;color:var(--navy);margin:0 0 6px}.section-heading p{margin:0;color:var(--muted)}.services{background:#f6f9fb}.service-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}.service-card{background:white;border-radius:8px;overflow:hidden;box-shadow:0 2px 10px #0000000d;text-align:center;padding-bottom:18px}.service-card h3{font-size:16px;line-height:1.2;margin:12px 10px 8px;color:var(--navy)}.service-card p{font-size:13px;margin:0 12px 14px;min-height:78px}.service-card a{display:inline-block;border:1px solid var(--blue);color:var(--blue);padding:6px 12px;border-radius:4px;font-size:12px;font-weight:700}.service-image{height:90px;background:#d8e0e5;position:relative}.service-image:after{content:"";position:absolute;inset:18px 32px;border-radius:6px;border:5px solid #94a3ad}.tap:after{border-radius:40px 40px 12px 12px}.boiler:after,.newboiler:after{background:white;border:2px solid #a7b0b6}.radiator:after{background:repeating-linear-gradient(90deg,#fff 0 8px,#d9e0e4 8px 12px);border:2px solid #abb5bc}.flush:after{border-radius:50%;border:8px solid #7b6535}.tools:after{transform:rotate(-18deg);border-width:6px}.about-grid{display:grid;grid-template-columns:1fr 1.15fr .8fr;gap:30px;align-items:center}.about-photo{height:330px;border-radius:10px;background:linear-gradient(135deg,#d6e1e7,#f7f7f7 45%,#c4d0d6);box-shadow:inset 0 0 0 1px #cbd6db}.about-photo:after{content:"Bathroom installation photo";height:100%;display:grid;place-items:center;color:#6f8494;font-weight:600}.about-copy p{font-size:15px}.signature{font-size:24px;color:#0b78bd;font-style:italic;font-weight:700;text-align:center;margin-top:22px}.checklist{list-style:none;padding:0;margin:0}.checklist li{margin:12px 0;position:relative;padding-left:32px}.checklist li:before{content:"✓";position:absolute;left:0;top:-1px;width:22px;height:22px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:800}.areas{background:#f3f6f8;padding:18px 0}.areas-inner{display:flex;gap:18px;align-items:center}.pin{width:46px;height:46px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--navy);color:#fff;display:grid;place-items:center}.pin::first-letter{transform:rotate(45deg)}.areas h2{font-size:20px}.areas p{margin:3px 0 0;font-size:14px}.areas span{color:#9fb0bb;margin:0 8px}.review-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.review-grid blockquote,.google-card{margin:0;padding:20px;border:1px solid #dde6ec;border-radius:8px;background:#fff;min-height:180px}.stars{color:#f4ad00;font-size:19px;letter-spacing:2px}.review-grid blockquote p{font-style:italic;font-size:14px}.review-grid footer{color:#7f8f9a;font-size:13px}.google-card{text-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center}.google-word{font-size:28px;font-weight:700;color:#2b6fd7}.google-card small{display:block;color:#7a8a95}.contact-section{background:linear-gradient(135deg,#07345d,#0c4c7b);color:#fff;padding:48px 0}.contact-grid{display:grid;grid-template-columns:1fr .8fr;gap:60px;align-items:start}.contact-section h2{color:#fff;font-size:34px}.contact-section h3{margin:4px 0 10px}.quote-form{background:#fff;color:var(--text);padding:26px;border-radius:10px}.quote-form h3{color:var(--navy);font-size:23px}.quote-form label{display:block;font-size:13px;font-weight:600;margin:12px 0}.quote-form input,.quote-form textarea{width:100%;margin-top:5px;border:1px solid #cad6de;border-radius:5px;padding:11px;font:inherit}.quote-form .btn{width:100%;margin-top:8px}.form-note{font-size:11px;color:#7b8b96;margin-bottom:0}.footer{background:#06223c;color:#dce8f1;padding:22px 0}.footer-inner{display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:13px}.footer a{font-size:20px;font-weight:800;color:white}.mobile-call{display:none}
@media(max-width:980px){.header-main{grid-template-columns:1fr auto}.accreditations{display:none}.topbar-right{display:none}.service-grid{grid-template-columns:repeat(3,1fr)}.about-grid{grid-template-columns:1fr 1fr}.checklist{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.hero-content{grid-template-columns:1fr}.van-card{display:none}.hero,.hero-content{min-height:auto}.hero-copy{padding:55px 0}.review-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){body{padding-bottom:58px}.wrap{width:min(100% - 28px,1180px)}.topbar{display:none}.site-header{position:static}.header-main{grid-template-columns:1fr;padding:12px 0}.header-contact{display:none}.brand-name{font-size:20px}.brand-sub{font-size:10px;letter-spacing:2px}.brand-mark{width:46px;height:40px}.nav-inner{display:block}.nav-toggle{display:block;width:100%;padding:12px;background:#fff;border:0;font-weight:800;color:var(--navy)}.nav-links{display:none;flex-direction:column}.nav-links.open{display:flex}.nav-links a{border-top:1px solid #eef2f4}.hero h1{font-size:39px}.hero-actions{flex-direction:column;max-width:320px}.service-grid{grid-template-columns:1fr 1fr}.about-grid{grid-template-columns:1fr}.checklist{grid-column:auto;grid-template-columns:1fr}.review-grid{grid-template-columns:1fr}.contact-grid{grid-template-columns:1fr;gap:28px}.areas-inner{align-items:flex-start}.footer-inner{flex-direction:column;text-align:center}.mobile-call{display:block;position:fixed;left:0;right:0;bottom:0;background:var(--orange);color:#fff;text-align:center;padding:16px;font-weight:800;z-index:30}.section{padding:38px 0}}
@media(max-width:520px){.service-grid{grid-template-columns:1fr}.brand-sub{display:none}.hero h1{font-size:34px}.section-heading h2,.about h2,.contact-section h2{font-size:27px}}

/* Real bathroom photography */
.hero:after{background:linear-gradient(135deg,transparent 60%,#ffffff1a)}
.hero-content{align-items:stretch}
.hero-photo{position:relative;min-height:455px;margin-right:calc((100vw - min(1180px,calc(100vw - 40px)))/-2);overflow:hidden}
.hero-photo img{width:100%;height:100%;object-fit:cover;display:block}
.hero-photo-label{position:absolute;right:26px;bottom:26px;background:#fffffff0;color:var(--navy);padding:12px 17px;border-left:5px solid var(--orange);box-shadow:0 8px 24px #0003}
.hero-photo-label strong,.hero-photo-label span{display:block}
.hero-photo-label span{font-size:12px;color:var(--muted)}
.bathroom-gallery{background:#fff}
.gallery-eyebrow{color:var(--blue);margin-bottom:8px}
.photo-grid{display:grid;grid-template-columns:1.35fr 1fr;grid-template-rows:210px 210px;gap:16px}
.photo-grid figure{margin:0;position:relative;overflow:hidden;border-radius:10px;background:#dce5ea}
.photo-grid .photo-large{grid-row:1/3}
.photo-grid img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.photo-grid figure:hover img{transform:scale(1.025)}
.photo-grid figcaption{position:absolute;left:14px;bottom:14px;background:#071f34df;color:#fff;padding:9px 13px;border-radius:5px;font-size:13px;font-weight:700}
.photo-note{text-align:center;color:var(--muted);font-size:12px;margin:14px 0 0}
.about-photo{overflow:hidden;background:none;box-shadow:0 8px 24px #00192c18}
.about-photo:after{display:none}
.about-photo img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:980px){.hero-photo{display:none}}
@media(max-width:760px){.photo-grid{grid-template-columns:1fr;grid-template-rows:260px 210px 210px}.photo-grid .photo-large{grid-row:auto}}

/* Official accreditation logos */
.accreditations{align-items:center}
.accreditation-logo{display:block;width:auto;object-fit:contain;background:#fff}
.gas-safe-logo{height:64px}
.snipef-logo{height:50px;max-width:210px}

/* Email contact links */
.header-contact .header-email{font-size:12px;font-weight:600;line-height:1.4;color:var(--navy);margin-top:3px}
.contact-email{margin-top:16px;font-weight:600}
.contact-email a{text-decoration:underline;text-underline-offset:3px}
.footer-contact{display:flex;flex-direction:column;align-items:center}
.footer .footer-email{font-size:12px;font-weight:600;color:#dce8f1;margin-top:2px}

/* Genuine gas boiler photograph */
.service-photo:after{display:none}
.service-photo img{display:block;width:100%;height:100%;object-fit:cover}

/* Enquiry form */
.form-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.quote-form button:disabled{opacity:.65;cursor:wait}
.form-response:empty,.field-error:empty{display:none}
.form-response{padding:10px 12px;border-radius:5px;margin:10px 0;font-size:13px;font-weight:700}
.form-success{background:#eaf8ef;color:#08783e}
.form-error,.field-error{color:#b42318}
.form-error{background:#fff0ee}
.field-error{display:block;font-size:12px;margin-top:-7px;margin-bottom:8px}
.quote-form [aria-invalid="true"]{border-color:#b42318;box-shadow:0 0 0 2px #b4231818}
