
:root{--navy:#062b48;--navy-deep:#05243d;--ink:#0b304e;--aqua:#20baef;--aqua-dark:#078eae;--ice:#e9f7fd;--soft:#f4fbfe;--muted:#526a7a;--line:#d8e8ef;--white:#fff;--shell:1280px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:94px}body{margin:0;color:var(--ink);background:#fff;font:16px/1.58 'DM Sans',Arial,sans-serif;-webkit-font-smoothing:antialiased}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,Arial,sans-serif;letter-spacing:-.045em;line-height:1.11}h2{font-size:clamp(2.25rem,3.8vw,3.85rem);font-weight:800;margin:0 0 24px}h3{font-size:1.25rem;font-weight:800;margin:0 0 10px}p{margin-bottom:16px}.shell{width:min(calc(100% - 80px),var(--shell));margin-inline:auto}.section-pad{padding-block:110px}.eyebrow{text-transform:uppercase;font:800 .75rem/1.4 Manrope,Arial,sans-serif;letter-spacing:.18em;color:#0699bd;margin-bottom:16px}.eyebrow.light{color:#64dafe}.btn{display:inline-flex;align-items:center;justify-content:center;gap:24px;border:1px solid var(--aqua);border-radius:3px;background:var(--aqua);color:#05304c;padding:15px 23px;font:800 .78rem/1.25 Manrope,Arial,sans-serif;text-transform:uppercase;letter-spacing:.06em;min-height:50px;transition:background .2s,transform .2s,box-shadow .2s;box-shadow:0 8px 22px rgba(0,119,157,.16)}.btn:hover{background:#5cdbfa;border-color:#5cdbfa;transform:translateY(-2px)}.btn-small{min-height:42px;padding:11px 17px;font-size:.69rem;white-space:nowrap}.text-link{font:800 .74rem/1.4 Manrope,Arial,sans-serif;text-transform:uppercase;letter-spacing:.065em;color:#007fa5;border-bottom:1px solid #90d8ea;padding-bottom:7px;white-space:nowrap}.text-link:hover{color:var(--navy)}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #42cfff;outline-offset:3px}.skip-link{position:absolute;z-index:999;top:-80px;left:15px;background:#fff;padding:12px}.skip-link:focus{top:10px}.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}.icon{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}

.site-header{position:relative;z-index:20;background:var(--navy);color:#fff}.header-inner{min-height:86px;display:flex;align-items:center;gap:28px}.brand{display:flex;align-items:center;flex:none}.brand img{width:178px;height:auto}.desktop-nav{display:flex;align-items:center;gap:26px;margin-left:auto}.desktop-nav a{font-size:.79rem;font-weight:700;white-space:nowrap;transition:color .2s}.desktop-nav a:hover,.phone-link:hover{color:#83def4}.header-actions{display:flex;align-items:center;gap:20px}.phone-link{display:inline-flex;align-items:center;gap:7px;font-size:.78rem;font-weight:800;white-space:nowrap}.phone-link .icon{width:16px;height:16px;color:var(--aqua)}.menu-toggle,.mobile-nav{display:none}

.hero{display:grid;grid-template-columns:minmax(450px,37.5%) 1fr;min-height:625px;background:var(--navy)}.hero-copy{display:flex;align-items:center;background:linear-gradient(137deg,#052b4a 0%,#092e4c 62%,#04345a 100%);color:#fff}.hero-copy-inner{width:min(100% - 90px,490px);margin-left:max(40px,calc((100vw - var(--shell))/2))}.hero h1{font-size:clamp(3.45rem,4.55vw,5.65rem);font-weight:800;letter-spacing:-.065em;line-height:1.04;margin:0 0 22px}.hero-lede{font-size:1.2rem;line-height:1.35;font-weight:700;margin-bottom:16px}.hero-copy p:not(.eyebrow):not(.hero-lede){color:#d6e9f3;max-width:470px;font-size:.98rem;line-height:1.7;margin-bottom:30px}.hero-image{min-height:625px;overflow:hidden}.hero-image img{width:100%;height:100%;object-fit:cover;object-position:55% center}

.trust-strip{border-bottom:1px solid var(--line);background:#fff}.trust-grid{display:grid;grid-template-columns:repeat(3,1fr);padding-block:28px}.trust-item{display:flex;align-items:center;justify-content:center;gap:16px;min-height:50px;padding-inline:28px}.trust-item+.trust-item{border-left:1px solid var(--line)}.trust-icon{width:45px;height:45px;border-radius:50%;background:var(--ice);color:#069ec3;display:grid;place-items:center;flex:none}.trust-item strong,.trust-item span:last-child{display:block}.trust-item strong{font:800 .93rem/1.3 Manrope,Arial,sans-serif}.trust-item div>span{color:var(--muted);font-size:.79rem;margin-top:3px}

.intro{display:grid;grid-template-columns:.82fr 1.18fr;align-items:center;gap:8%}.intro-copy{max-width:475px}.intro-copy p:not(.eyebrow){color:#3c5769;line-height:1.75}.intro-copy .btn{margin-top:12px}.intro-mosaic{height:490px;display:grid;grid-template-columns:1.25fr .75fr;grid-template-rows:1fr 1fr;gap:9px}.intro-mosaic img{width:100%;height:100%;object-fit:cover}.intro-large{grid-row:span 2;object-position:57% center}

.pool-styles{background:var(--ice)}.section-heading-row{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:30px}.section-heading-row h2{margin-bottom:8px}.section-heading-row p{color:var(--muted);margin:0}.section-heading-row .text-link{margin-bottom:9px}.styles-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}.pool-card{background:#fff;transition:transform .25s,box-shadow .25s}.pool-card:hover{transform:translateY(-5px);box-shadow:0 12px 24px rgba(3,50,79,.11)}.pool-card a{display:block;height:100%}.pool-card img{width:100%;height:220px;object-fit:cover}.pool-card-copy{padding:22px 22px 20px;position:relative;min-height:190px}.pool-card h3{font-size:1.35rem;margin-bottom:8px}.pool-card p{font-size:.89rem;line-height:1.55;color:#4d6676;padding-right:8px;margin:0}.card-arrow{position:absolute;right:18px;bottom:13px;color:#049fca;font-size:1.45rem;font-weight:700}

.range{display:grid;grid-template-columns:320px 1fr;gap:65px;align-items:center}.range-intro p:not(.eyebrow){color:#4c6575;line-height:1.72;margin-bottom:24px}.range-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.range-card{position:relative;background:#eff8fc;min-height:300px;text-align:center;padding:30px 15px 28px;transition:background .2s,transform .2s}.range-card:hover{background:#ddf4fc;transform:translateY(-3px)}.range-card h3{font-size:1.1rem;letter-spacing:-.03em}.range-card p{font-size:.8rem;line-height:1.5;color:var(--muted);margin:0}.range-arrow{position:absolute;right:13px;top:8px;color:#008ab0}.pool-outline{display:block;position:relative;width:82%;height:72px;border:3px solid #17658d;background:#d7f1fc;margin:25px auto 35px;box-shadow:inset 0 0 0 5px #d7f1fc,inset 0 0 0 6px #7db9d3}.pool-outline:before{content:"";position:absolute;left:13%;right:13%;top:4px;border-top:1px solid #8ac5da}.pool-outline.classic{clip-path:polygon(8% 0,92% 0,92% 8%,100% 8%,100% 92%,92% 92%,92% 100%,8% 100%,8% 92%,0 92%,0 8%,8% 8%)}.pool-outline.serenity{border-radius:2px}.pool-outline.entertainer:after{content:"";position:absolute;bottom:-3px;left:33%;width:32%;height:16px;background:#eff8fc;border:3px solid #17658d;border-bottom:0}.pool-outline.nirvana{border-radius:10px 10px 3px 3px}

.customise{display:grid;grid-template-columns:52% 48%;min-height:490px}.customise-image{min-height:490px}.customise-image img{width:100%;height:100%;object-fit:cover;object-position:52% center}.customise-copy{display:flex;align-items:center;background:var(--navy);color:#fff;padding:70px clamp(35px,6vw,115px)}.customise-copy>div{max-width:560px}.customise-copy h2{font-size:clamp(2.2rem,3.2vw,3.55rem)}.customise-copy p:not(.eyebrow){color:#d4e7f2}.swatches{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 8px}.swatches span{width:48px;height:48px;background:var(--swatch);border:2px solid rgba(255,255,255,.75);box-shadow:inset 0 0 0 2px rgba(3,43,71,.1)}.customise-copy .swatch-note{font-size:.72rem;margin-bottom:24px;color:#bad4e0!important}

.difference{display:grid;grid-template-columns:340px 1fr;gap:60px;align-items:center}.difference-copy p:not(.eyebrow){color:#536c7a;line-height:1.7;font-size:.91rem}.difference-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.difference-grid article{background:#f1f9fc;padding:35px 24px 30px;min-height:260px;text-align:center}.difference-grid h3{font-size:1.08rem}.difference-grid p{font-size:.83rem;color:#4e6675;line-height:1.6}.line-icon{display:flex;justify-content:center;margin-bottom:23px;color:#0caad2}.line-icon .icon{width:48px;height:48px;stroke-width:1.35}

.inspiration{padding-top:15px}.inspiration-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.inspiration-grid img{width:100%;height:285px;object-fit:cover}.inspiration-grid img:nth-child(1){object-position:38%}.inspiration .caption{font-size:.78rem;color:#637786;margin:15px 0 0}

.process{background:var(--navy);color:#fff}.process-inner{display:grid;grid-template-columns:300px 1fr;gap:50px;align-items:start}.process-heading h2{font-size:clamp(2.2rem,3vw,3.5rem)}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;list-style:none;margin:0;padding:5px 0 0;counter-reset:step}.process-grid li{position:relative;padding-right:7px}.process-grid li:not(:last-child):after{content:"";position:absolute;left:61px;right:-12px;top:23px;border-top:1px solid #67b6d0}.step-number{display:grid;place-items:center;width:47px;height:47px;border-radius:50%;background:#d4f2fb;color:#063553;font:800 1rem Manrope,Arial,sans-serif;position:relative;z-index:1;margin-bottom:22px}.process-grid li:first-child .step-number{background:var(--aqua);box-shadow:0 0 0 4px #fff}.process-grid h3{font-size:1.04rem;color:#fff}.process-grid p{font-size:.82rem;color:#c5dfec;line-height:1.6;margin:0}

.services{display:grid;grid-template-columns:350px 1fr;gap:45px;align-items:center}.services-copy>p:not(.eyebrow){color:var(--muted);line-height:1.7}.services-copy .text-link{display:inline-block;margin-top:15px}.services-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.service-card{display:grid;grid-template-columns:42% 58%;background:#eff8fc;min-height:155px;transition:background .2s}.service-card:hover{background:#dbf3fc}.service-card img{width:100%;height:100%;object-fit:cover}.service-card span{padding:20px 28px;display:flex;flex-direction:column;justify-content:center;position:relative}.service-card strong{font:800 1.02rem/1.3 Manrope,Arial,sans-serif;margin-bottom:8px}.service-card small{font-size:.79rem;line-height:1.45;color:#536d7c}.service-card b{position:absolute;bottom:12px;right:17px;color:#0aa6cd;font-size:1rem}

.areas{background:#e4f4fa;display:grid;grid-template-columns:minmax(250px,28%) 1fr minmax(200px,250px);align-items:stretch}.areas-image{min-height:450px;overflow:hidden}.areas-image img{width:100%;height:100%;object-fit:cover;object-position:18% center}.areas-content{padding:60px clamp(28px,4vw,75px)}.areas-content h2{font-size:clamp(2rem,3.2vw,3.5rem)}.areas-content p:not(.eyebrow){font-size:.88rem;line-height:1.7;color:#3d5d70;max-width:720px}.area-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 18px;margin-top:24px}.area-links a{font-size:.76rem;color:#006b91;font-weight:700;border-bottom:1px solid #b4dce9;padding-bottom:5px;white-space:nowrap}.area-links a:hover{color:#003650}.finance-callout{background:#f4fbfe;align-self:center;margin:30px 35px 30px 0;padding:28px}.finance-callout h3{font-size:1.5rem}.finance-callout p{font-size:.8rem;color:var(--muted)}.finance-callout .eyebrow{font-size:.64rem}

.faq{display:grid;grid-template-columns:310px 1fr;gap:95px}.faq-heading p:not(.eyebrow){color:var(--muted);max-width:260px}.faq-list{border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line);padding:0 14px}.faq-list summary{list-style:none;cursor:pointer;padding:18px 32px 18px 0;position:relative;font:800 .96rem/1.4 Manrope,Arial,sans-serif}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:'+';position:absolute;right:0;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:23px;height:23px;border:1px solid #9ad9e9;border-radius:50%;font-size:1.1rem;color:#059cc5;font-weight:500}.faq-list details[open] summary:after{content:'−'}.faq-list details[open]{background:#f5fbfd}.faq-list details p{max-width:760px;color:#506a79;font-size:.87rem;line-height:1.65;padding-right:24px;margin-bottom:20px}

.contact{display:grid;grid-template-columns:46% 54%;background:#e8f7fc}.contact-photo{min-height:610px}.contact-photo img{width:100%;height:100%;object-fit:cover;object-position:35%}.contact-form-wrap{padding:65px clamp(35px,6vw,105px);max-width:850px;width:100%}.contact-intro h2{font-size:clamp(2.15rem,3.1vw,3.4rem);margin-bottom:12px}.contact-intro p:not(.eyebrow){font-size:.91rem;color:#526b79}.contact-call a{font-weight:800;color:#007a9d}.quote-form{margin-top:22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px 18px}.quote-form label{display:block;font-weight:700;font-size:.76rem;color:#15405b}.quote-form label span{color:#a23838}.quote-form input,.quote-form select,.quote-form textarea{display:block;width:100%;border:1px solid #cadfe9;border-radius:2px;background:#fff;min-height:45px;padding:10px 13px;color:#163f57;margin-top:5px;outline-color:#14b4df}.quote-form textarea{resize:vertical;min-height:93px}.quote-form input::placeholder,.quote-form textarea::placeholder{color:#879aa5}.field-wide{grid-column:1/-1}.quote-form .btn{margin-top:20px}.form-fineprint{font-size:.7rem;color:#607885;margin:12px 0 0}.form-success{border-left:4px solid #00a4c6;padding:14px 18px;background:#fff;margin-top:20px;color:#0c4d67;font-weight:700}

.site-footer{background:#05243d;color:#fff}.footer-top{display:grid;grid-template-columns:1.55fr repeat(3,.8fr) 1.2fr;gap:40px;padding-block:72px 60px}.footer-brand img{width:195px;height:auto;margin-bottom:15px}.footer-brand p{max-width:280px;color:#b9d3df;font-size:.83rem}.footer-brand>a:not(:first-child),.footer-brand>span,.footer-col a{display:block;color:#c4d9e4;font-size:.8rem;line-height:1.7;margin-bottom:7px}.footer-brand a:hover,.footer-col a:hover,.footer-bottom a:hover{color:#6fdcf6}.footer-col h2{font-size:.74rem;text-transform:uppercase;letter-spacing:.11em;margin:6px 0 18px;color:#66d4f3}.footer-partner{border-left:1px solid #306078;padding-left:28px;align-self:start}.footer-partner p{font-size:.73rem;color:#a7c5d3;margin:7px 0 14px}.footer-partner img{filter:brightness(0) invert(1);opacity:.9;width:205px;height:auto}.footer-bottom{border-top:1px solid #244b64;display:flex;align-items:center;gap:32px;justify-content:space-between;padding-block:22px;font-size:.72rem;color:#a7bdc9}.footer-bottom a{color:#d4e9f2}

.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1180px){.shell{width:min(calc(100% - 56px),var(--shell))}.desktop-nav{gap:15px}.header-actions{gap:12px}.header-inner{gap:18px}.brand img{width:160px}.hero{grid-template-columns:40% 60%}.hero-copy-inner{margin-left:28px;width:calc(100% - 52px)}.range{grid-template-columns:280px 1fr;gap:28px}.range-card{padding-inline:8px}.difference{grid-template-columns:280px 1fr;gap:28px}.difference-grid article{padding-inline:15px}.areas{grid-template-columns:25% 1fr}.finance-callout{grid-column:2;justify-self:start;margin:0 0 35px 45px}.areas-content{padding-bottom:25px}.footer-top{gap:22px}}
@media(max-width:940px){.desktop-nav,.header-actions .phone-link{display:none}.header-inner{min-height:76px}.header-actions{margin-left:auto}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;align-items:center;width:44px;height:44px;border:1px solid #3d6b80;background:none;color:#fff}.menu-toggle span{display:block;width:22px;height:2px;background:currentColor}.mobile-nav:not([hidden]){display:grid;position:absolute;top:100%;left:0;right:0;background:#05243d;padding:12px 28px 24px;box-shadow:0 12px 18px rgba(0,0,0,.16)}.mobile-nav a{padding:12px 0;border-bottom:1px solid #27526b;font-weight:700}.hero{grid-template-columns:45% 55%;min-height:580px}.hero-image{min-height:580px}.hero h1{font-size:clamp(2.8rem,5.3vw,4rem)}.intro{gap:35px}.intro-mosaic{height:410px}.styles-grid{grid-template-columns:repeat(2,1fr)}.range{display:block}.range-intro{max-width:730px;margin-bottom:35px}.range-grid{grid-template-columns:repeat(4,1fr)}.difference{display:block}.difference-copy{max-width:730px;margin-bottom:30px}.process-inner{display:block}.process-heading{margin-bottom:30px}.services{grid-template-columns:1fr}.services-copy{max-width:650px}.areas-content{padding:42px 30px}.faq{gap:30px;grid-template-columns:250px 1fr}.footer-top{grid-template-columns:repeat(4,1fr)}.footer-brand{grid-column:span 2}.footer-partner{grid-column:span 2}}
@media(max-width:680px){html{scroll-padding-top:75px}.shell{width:calc(100% - 36px)}.section-pad{padding-block:68px}h2{font-size:clamp(2rem,8.4vw,3rem);margin-bottom:18px}.header-inner{min-height:70px}.brand img{width:150px}.header-actions .btn{min-height:37px;padding:8px 10px;font-size:.64rem;gap:5px}.menu-toggle{width:40px;height:40px}.hero{display:flex;flex-direction:column;min-height:0}.hero-image{min-height:0;height:300px}.hero-image img{object-position:50% 57%}.hero-copy-inner{margin:0;padding:48px 24px 55px;width:auto}.hero h1{font-size:clamp(2.75rem,10.9vw,4.1rem);margin-bottom:20px}.hero-copy p:not(.eyebrow):not(.hero-lede){font-size:.91rem}.trust-grid{grid-template-columns:1fr;gap:0;padding-block:10px}.trust-item{justify-content:flex-start;padding:14px 4px}.trust-item+.trust-item{border-left:0;border-top:1px solid var(--line)}.intro{display:block}.intro-copy{margin-bottom:35px}.intro-mosaic{height:340px}.section-heading-row{align-items:start;flex-direction:column;gap:15px}.section-heading-row .text-link{margin:0}.styles-grid{gap:12px}.pool-card img{height:145px}.pool-card-copy{padding:16px 15px 32px;min-height:190px}.pool-card h3{font-size:1.06rem}.pool-card p{font-size:.79rem}.range-grid{grid-template-columns:repeat(2,1fr)}.range-card{min-height:248px}.pool-outline{height:55px;margin-block:15px 23px}.customise{display:block}.customise-image{min-height:0;height:310px}.customise-copy{padding:58px 25px}.difference-grid{grid-template-columns:1fr}.difference-grid article{min-height:0;padding:25px 22px}.line-icon{margin-bottom:10px}.inspiration{padding-top:0}.inspiration-grid{grid-template-columns:1fr 1fr}.inspiration-grid img{height:175px}.inspiration-grid img:first-child{grid-column:1/-1;height:220px}.process-grid{grid-template-columns:repeat(2,1fr);gap:32px 18px}.process-grid li:after{display:none}.services-grid{grid-template-columns:1fr}.service-card{min-height:130px}.areas{display:block}.areas-image{height:245px;min-height:0}.areas-content{padding:48px 18px 18px}.area-links{grid-template-columns:repeat(2,1fr)}.finance-callout{margin:18px 18px 46px;padding:24px}.faq{display:block}.faq-heading{margin-bottom:28px}.contact{display:block}.contact-photo{height:255px;min-height:0}.contact-form-wrap{padding:50px 20px 65px}.footer-top{grid-template-columns:repeat(2,1fr);gap:34px 18px;padding-block:60px 42px}.footer-brand,.footer-partner{grid-column:span 2}.footer-partner{border-left:0;border-top:1px solid #306078;padding:25px 0 0}.footer-bottom{flex-wrap:wrap;justify-content:flex-start;gap:10px 20px}}
@media(max-width:390px){.header-actions .btn{display:none}.hero-image{height:245px}.styles-grid{grid-template-columns:1fr}.pool-card img{height:200px}.pool-card-copy{min-height:145px}.form-grid{grid-template-columns:1fr}.field-wide{grid-column:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Homepage refinements */
.section-pad{padding-block:82px}
.btn{background:#fff;border-color:#d3e6ed;color:var(--navy);box-shadow:0 8px 22px rgba(0,32,54,.13)}
.btn:hover{background:#eaf8fc;border-color:#eaf8fc;color:var(--navy)}
.hero .btn,.customise .btn{border-color:#fff}
.intro-mosaic{height:450px}
.pool-card-copy{min-height:172px}
.range-card{min-height:272px}
.contact-photo{min-height:570px}

.difference{grid-template-columns:minmax(0,440px) minmax(0,1fr);gap:34px}
.difference-copy{max-width:440px}
.difference-copy h2{font-size:clamp(2.2rem,2.65vw,2.55rem);line-height:1.13}
.difference-grid article{min-height:218px;padding:27px 18px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.difference-grid .line-icon{margin-bottom:15px}

.process-inner{display:block}
.process-heading{max-width:760px;margin:0 auto 43px;text-align:center}
.process-heading h2{font-size:clamp(2.3rem,3.5vw,3.6rem);line-height:1.08;margin-bottom:18px}
.process-heading p:not(.eyebrow){color:#c7deea;font-size:.98rem;line-height:1.65;max-width:680px;margin-inline:auto}
.process-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;padding-top:6px}
.process-grid li{padding-right:3px}
.process-grid li:not(:last-child):after{left:58px;right:-6px;top:23px;border-color:#679bb1;transition:border-color 1.2s ease}
.process-grid li.is-active:not(:last-child):after{border-color:#44c7ed}
.step-number{border:0;transition:background-color 1.2s ease,color 1.2s ease,box-shadow 1.2s ease,transform 1.2s ease}
.process-grid li:first-child .step-number{background:#d4f2fb;box-shadow:none}
.process-grid li.is-active .step-number{background:var(--aqua);color:#05304c;box-shadow:0 0 0 4px #fff;transform:scale(1.03)}
.process-grid h3{font-size:.91rem;line-height:1.3;transition:color 1.2s ease}
.process-grid li.is-active h3{color:#82e4ff}
.process-grid p{font-size:.77rem;line-height:1.58}

.footer-top{grid-template-columns:1.5fr repeat(3,1fr);gap:30px;padding-block:60px 48px}
.footer-partner{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,280px));gap:25px;border-left:0;border-top:1px solid #306078;padding:27px 0 0;margin-top:10px}
.footer-partner p{font-size:.73rem;color:#b9d3df;margin:0 0 10px}
.footer-partner .partner-logo-panel{display:flex;align-items:center;justify-content:center;min-height:91px;background:#fff;border-radius:3px;padding:14px 18px;transition:background-color .2s,transform .2s}
.footer-partner .partner-logo-panel img{width:100%;height:auto;max-height:112px;object-fit:contain;filter:none;opacity:1}
.footer-partner .handypay-link:hover{background:#eaf8fc;transform:translateY(-2px)}

@media(max-width:1180px){
  .difference{grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:26px}
  .difference-copy h2{font-size:2.15rem}
}
@media(max-width:1100px){
  .process-inner{display:block}
  .process-heading{margin-bottom:38px}
  .process-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 25px}
  .process-grid li:nth-child(3n):after{display:none}
}
@media(max-width:940px){
  .difference{display:block}
  .difference-copy{max-width:650px;margin-bottom:30px}
  .difference-copy h2{font-size:clamp(2.15rem,4.6vw,2.8rem)}
  .footer-top{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-brand,.footer-partner{grid-column:1/-1}
}
@media(max-width:680px){
  .section-pad{padding-block:54px}
  .intro-mosaic{height:320px}
  .pool-card-copy{min-height:175px}
  .range-card{min-height:245px}
  .difference-copy h2{font-size:clamp(2rem,8.4vw,2.75rem)}
  .difference-grid article{min-height:0}
  .process-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:27px 18px}
  .process-heading{margin-bottom:34px}
  .process-grid li:after{display:none}
  .process-grid h3{font-size:.9rem}
  .footer-top{padding-block:52px 42px}
  .footer-partner{gap:16px}
  .footer-partner .partner-logo-panel{padding:12px;min-height:80px}
}
@media(max-width:520px){.footer-partner{grid-template-columns:minmax(0,280px)}}

/* Service area and finance banner */
.areas{display:block;background:#e4f4fa}
.areas-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(430px,.95fr);gap:clamp(42px,5.5vw,85px);align-items:center;padding-block:68px}
.areas-content{padding:0}
.areas-content h2{font-size:clamp(2.4rem,3.45vw,3.55rem);max-width:660px;margin-bottom:21px}
.areas-content p:not(.eyebrow){max-width:620px;font-size:.91rem;line-height:1.7;color:#3d5d70}
.area-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 30px;margin-top:24px}
.area-links a{display:flex;align-items:center;justify-content:space-between;gap:10px;white-space:normal;border-bottom:1px solid #a9d2e0;padding:10px 0;font-size:.83rem;color:#0c4e69;transition:color .2s,border-color .2s}
.area-links a span{color:#008eb7;font-size:1.05rem;line-height:1}
.area-links a:hover{border-color:#00a4cb;color:#007797}
.areas-content p:not(.eyebrow).areas-extra{font-size:.78rem;margin:24px 0 0;color:#52717e}
.areas-map{border-radius:20px;overflow:hidden;box-shadow:0 24px 40px rgba(8,66,91,.14)}
.areas-map img{width:100%;height:auto;display:block}
.finance-banner{background:#38bde8;color:#06304b}
.finance-banner-inner{display:flex;align-items:center;gap:18px;padding-block:24px}
.finance-icon{display:grid;place-items:center;width:51px;height:51px;border-radius:13px;flex:none;background:#063b56;color:#9cecff}
.finance-icon svg{width:27px;height:27px}
.finance-banner-copy{flex:1;min-width:220px}
.finance-banner h3{font-size:1.25rem;letter-spacing:-.035em;margin:0 0 4px}
.finance-banner p{font-size:.78rem;line-height:1.45;margin:0;color:#10465e}
.finance-banner-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.finance-banner-actions .btn{gap:8px;background:#fff;border-color:#fff;color:#06304b;box-shadow:0 6px 15px rgba(4,62,85,.13)}
.finance-banner-actions .btn:hover{background:#eafaff;border-color:#eafaff}
@media(max-width:1100px){
  .areas-layout{grid-template-columns:minmax(0,1fr) minmax(370px,.9fr);gap:35px}
  .areas-content h2{font-size:clamp(2.15rem,3.4vw,3rem)}
  .finance-banner-inner{flex-wrap:wrap}
  .finance-banner-actions{margin-left:69px;justify-content:flex-start;width:calc(100% - 69px)}
}
@media(max-width:850px){
  .areas-layout{grid-template-columns:1fr;padding-block:55px;gap:35px}
  .areas-content{max-width:760px}
  .areas-map{width:min(100%,620px);justify-self:center}
  .areas-content h2{font-size:clamp(2.3rem,5vw,3.2rem)}
}
@media(max-width:680px){
  .areas-layout{padding-block:48px;gap:28px}
  .areas-content h2{font-size:clamp(2.15rem,8vw,2.8rem)}
  .areas-map{border-radius:12px}
  .finance-banner-inner{gap:13px;padding-block:27px}
  .finance-icon{width:44px;height:44px}
  .finance-banner h3{font-size:1.14rem}
  .finance-banner-actions{margin-left:0;width:100%;justify-content:flex-start}
}
@media(max-width:520px){
  .area-links{grid-template-columns:1fr;margin-top:18px}
  .area-links a{padding:9px 0}
  .finance-banner-actions .btn{width:100%;justify-content:center}
}

/* Masterbuilt range carousel */
.range{grid-template-columns:minmax(280px,320px) minmax(0,1fr);gap:clamp(32px,4vw,64px)}
.range-carousel{position:relative;min-width:0}
.range-grid{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:6px;scrollbar-width:none;overscroll-behavior-inline:contain;padding:7px 6px 12px;outline-offset:2px}
.range-grid::-webkit-scrollbar{display:none}
.range-card{flex:0 0 238px;min-height:0;padding:0;text-align:left;background:#fff;border:1px solid #d9eaf1;scroll-snap-align:start;box-shadow:0 7px 20px rgba(4,55,82,.06);transition:box-shadow .25s,transform .25s}
.range-card:hover,.range-card:focus-visible{background:#fff;transform:translateY(-3px);box-shadow:0 12px 28px rgba(4,55,82,.14)}
.range-card-title{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:52px;padding:11px 15px}
.range-card h3{font-size:1rem;letter-spacing:-.035em;margin:0}
.range-card-title>span{font-size:1.13rem;color:#008fb7}
.range-media{display:grid;place-items:center;position:relative;height:177px;background:#f2f8fb;overflow:hidden}
.range-plan{display:block;width:86%;height:76%;transition:opacity .35s,transform .45s}
.range-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .42s,transform .5s}
.range-card:hover .range-photo,.range-card:focus-visible .range-photo{opacity:1;transform:scale(1.035)}
.range-card:hover .range-plan,.range-card:focus-visible .range-plan{opacity:0;transform:scale(.96)}
.range-card-meta{display:flex;flex-direction:column;gap:2px;padding:12px 15px 14px;font:800 .69rem/1.35 Manrope,Arial,sans-serif;text-transform:uppercase;letter-spacing:.055em;color:#13445d}
.range-card-meta small{font:500 .72rem/1.4 'DM Sans',Arial,sans-serif;text-transform:none;letter-spacing:0;color:#5b7888}
.range-control{display:grid;place-items:center;position:absolute;z-index:2;top:47%;width:42px;height:42px;border-radius:50%;border:1px solid #cce5ef;background:#fff;color:#063b59;font-size:1.9rem;line-height:1;box-shadow:0 7px 20px rgba(7,56,81,.19);transform:translateY(-50%);transition:background .2s,opacity .2s}
.range-control:hover:not(:disabled){background:#e7f7fd}
.range-control:disabled{opacity:.34;cursor:default}
.range-prev{left:-16px}.range-next{right:-16px}
.range-hint{font-size:.73rem;color:#617986;margin:4px 6px 0}
@media(max-width:940px){
  .range{display:block}
  .range-intro{max-width:730px;margin-bottom:30px}
}
@media(max-width:680px){
  .range-card{flex-basis:min(75vw,270px);min-height:0}
  .range-media{height:185px}
  .range-prev{left:0}.range-next{right:0}
  .range-hint{font-size:.7rem}
}
@media(hover:none){
  .range-photo{opacity:1}
  .range-plan{opacity:0}
}

/* Hero: balanced split, image beneath the sticky header */
.site-header{
  position:sticky;
  top:0;
  margin-bottom:-86px;
  background:linear-gradient(90deg,#052b4a 0%,#052b4a 43%,rgba(4,47,77,.9) 50%,rgba(3,72,109,.52) 76%,rgba(3,35,58,.35) 100%);
  transition:box-shadow .25s ease;
}
.site-header.is-scrolled{background:#062b48;box-shadow:0 8px 24px rgba(2,27,47,.2)}
.desktop-nav{margin-left:auto;margin-right:clamp(20px,3vw,42px);gap:clamp(18px,1.7vw,27px)}
.header-actions .btn{background:#0079ad;border-color:#0079ad;color:#fff;box-shadow:0 4px 15px rgba(0,18,37,.14)}
.header-actions .btn:hover{background:#00638f;border-color:#00638f;color:#fff}
.hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:690px}
.hero-copy{min-width:0;padding:76px 0 10px}
.hero-copy-inner{width:min(calc(100% - 80px),600px);margin-left:max(40px,calc((100vw - var(--shell))/2));padding-block:34px}
.hero h1{font-size:clamp(3.05rem,4.6vw,5rem);letter-spacing:-.05em;line-height:1.09;margin-bottom:25px}
.hero-image{min-height:690px}
.hero-image img{object-position:54% center}
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 14px}
.hero-actions .btn{gap:13px;white-space:nowrap}
.hero-actions .hero-quote{background:#0079ad;border-color:#0079ad;color:#fff;box-shadow:0 9px 25px rgba(0,14,27,.2)}
.hero-actions .hero-quote:hover{background:#00638f;border-color:#00638f;color:#fff}
.hero-actions .hero-call{background:transparent;border-color:rgba(255,255,255,.85);color:#fff;box-shadow:none}
.hero-actions .hero-call:hover{background:rgba(255,255,255,.12);border-color:#fff;color:#fff}
.hero-call .icon{width:16px;height:16px}
@media(min-width:941px) and (max-width:1100px){
  .desktop-nav,.header-actions .phone-link{display:none}
  .header-actions{margin-left:auto}
  .menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;align-items:center;width:44px;height:44px;border:1px solid #3d6b80;background:none;color:#fff}
  .menu-toggle span{display:block;width:22px;height:2px;background:currentColor}
  .mobile-nav:not([hidden]){display:grid;position:absolute;top:100%;left:0;right:0;background:#05243d;padding:12px 28px 24px;box-shadow:0 12px 18px rgba(0,0,0,.16)}
  .mobile-nav a{padding:12px 0;border-bottom:1px solid #27526b;font-weight:700}
}
@media(max-width:1180px){
  .hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .hero-copy-inner{width:calc(100% - 56px);margin-left:28px}
  .hero-actions .btn{gap:8px;padding-inline:16px;font-size:.72rem}
}
@media(max-width:940px){
  .site-header{margin-bottom:-76px}
  .hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:650px}
  .hero-copy{padding-top:76px}
  .hero-image{min-height:650px}
  .hero h1{font-size:clamp(2.7rem,5vw,3.2rem)}
}
@media(max-width:680px){
  .site-header{margin-bottom:0;background:var(--navy)}
  .hero{display:flex;flex-direction:column;min-height:0}
  .hero-copy{padding:0}
  .hero-copy-inner{width:auto;margin:0;padding:46px 24px 52px}
  .hero-image{min-height:0;height:300px}
  .hero h1{font-size:clamp(2.5rem,9vw,4.1rem);line-height:1.08}
  .hero-actions{gap:10px}
}
@media(max-width:390px){
  .hero-image{height:245px}
  .hero-actions .btn{width:100%;justify-content:center}
}

/* Reference blue and coordinated line icons */
.btn{background:var(--aqua);border-color:var(--aqua);color:#fff;text-shadow:0 1px 1px rgba(0,48,78,.6);box-shadow:0 8px 22px rgba(0,119,157,.18)}
.btn:hover{background:#0ba9df;border-color:#0ba9df;color:#fff}
.header-actions .btn,.hero-actions .hero-quote,.customise .btn{background:var(--aqua);border-color:var(--aqua);color:#fff}
.header-actions .btn:hover,.hero-actions .hero-quote:hover,.customise .btn:hover{background:#0ba9df;border-color:#0ba9df;color:#fff}
.hero-actions .hero-call{background:transparent;border-color:rgba(255,255,255,.85);color:#fff;text-shadow:none;box-shadow:none}
.hero-actions .hero-call:hover{background:rgba(255,255,255,.12);border-color:#fff;color:#fff}
.finance-banner-actions .btn:first-child{background:var(--aqua);border:2px solid #fff;color:#fff}
.finance-banner-actions .btn:first-child:hover{background:#0ba9df;border-color:#fff;color:#fff}
.finance-banner-actions .btn:last-child{background:transparent;border-color:#074766;color:#06304b;text-shadow:none;box-shadow:none}
.finance-banner-actions .btn:last-child:hover{background:rgba(255,255,255,.2);border-color:#06304b;color:#06304b}
.trust-icon{width:48px;height:48px;border-radius:0;background:none;color:#0989c2}
.trust-icon .icon{width:36px;height:36px;stroke-width:1.7}
.line-icon{color:#0989c2}
.line-icon .icon{width:49px;height:49px;stroke-width:1.35}
.footer-brand .footer-contact{display:flex;align-items:flex-start;gap:9px;line-height:1.5;margin-bottom:10px}
.footer-contact .icon{width:16px;height:16px;margin-top:2px;color:#c0eefe;stroke-width:1.7}
.footer-social{display:flex;align-items:center;gap:12px;margin-top:15px}
.footer-social a{display:grid;place-items:center;width:30px;height:30px;border:1px solid #547a8e;border-radius:50%;color:#fff;transition:color .2s,border-color .2s,background .2s}
.footer-social a:hover{color:#fff;border-color:var(--aqua);background:#087eae}
.footer-social .icon{width:17px;height:17px;stroke-width:1.8}
.footer-brand>a.footer-contact,.footer-brand>span.footer-contact{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:start;column-gap:11px;line-height:1.5;margin-bottom:11px}
.footer-brand .footer-contact .icon{width:19px;height:19px;margin-top:1px;justify-self:center}
.footer-hours{color:#c4d9e4;font-size:.8rem;line-height:1.55;margin:14px 0 18px 35px}
.footer-hours strong{display:block;color:#fff;font-size:.78rem;margin-bottom:4px}
.footer-hours span{display:block}
.ui-arrow{display:inline-block;width:1em;height:1em;vertical-align:-.14em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.btn .ui-arrow,.text-link .ui-arrow{margin-left:.15em}
