
:root{
  color-scheme:light;
  --bg:#F3F5F9; --surface:#FFFFFF; --text:#0E1320; --muted:#4B5568;
  --navy:#05070D; --navy-text:#FFFFFF; --water:#0A5CFF; --yellow:#0A5CFF; --yellow-text:#FFFFFF; --glow:#4C94FF;
  --line:#D5DBE6;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){color-scheme:dark;--bg:#080B11;--surface:#10151F;--text:#EEF2F8;--muted:#A3AEC2;--navy:#000;--water:#4C94FF;--line:#252C3A}
}
:root[data-theme="dark"]{color-scheme:dark;--bg:#080B11;--surface:#10151F;--text:#EEF2F8;--muted:#A3AEC2;--navy:#000;--water:#4C94FF;--line:#252C3A}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 70px);scroll-behavior:smooth}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:400 17px/1.55 Barlow,system-ui,sans-serif}
h1,h2,h3{font-family:"Barlow Condensed","Arial Narrow",sans-serif;font-weight:700;line-height:1.05;margin:0}
a{color:inherit}
:focus-visible{outline:3px solid var(--glow);outline-offset:3px}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
section{padding:64px 0}
section h2{font-size:clamp(34px,5vw,50px);margin-bottom:10px}
.sub{color:var(--muted);max-width:54ch;margin:0 0 32px}
.btn{display:inline-block;background:var(--yellow);color:var(--yellow-text);font-weight:600;text-decoration:none;padding:12px 24px;border-radius:6px;border:0;font-size:17px;cursor:pointer;font-family:inherit}
.btn:hover{filter:brightness(1.06)}
.btn.ghost{background:transparent;color:inherit;border:2px solid currentColor}

.topbar{background:var(--navy);color:var(--navy-text);font-size:15px}
.topbar .wrap{display:flex;justify-content:space-between;gap:6px 20px;padding-top:8px;padding-bottom:8px;flex-wrap:wrap}
.topbar a{text-decoration:none;margin-right:18px}
.open::before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;background:#3ddc84;margin-right:7px}
header.nav{background:#000;border-bottom:1px solid #252C3A;position:sticky;top:0;z-index:5}
header.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:66px;gap:16px}
.logo{display:flex;align-items:center}.logo svg{height:40px;width:auto;aspect-ratio:2080/460;display:block}
nav{display:flex;align-items:center;gap:22px}
nav a:not(.btn){text-decoration:none;font-weight:500;color:#B8C2D4}
nav a:not(.btn):hover{color:#fff}
nav .btn{padding:8px 18px}
@media(max-width:860px){nav a:not(.btn){display:none}}

.hero{background:var(--navy);color:var(--navy-text);padding:64px 0 72px}
.hero .wrap{display:grid;grid-template-columns:1.4fr 1fr;gap:30px;align-items:center}
.emblem{width:100%;max-width:380px;height:auto;aspect-ratio:1480/1680;justify-self:center}
.flogo{height:44px;width:auto;aspect-ratio:2080/460;display:block;margin-bottom:12px}
@media(max-width:820px){.hero .wrap{grid-template-columns:1fr}.emblem{max-width:250px;justify-self:start}}
.hero h1{font-size:clamp(38px,5vw,62px);max-width:14ch;letter-spacing:.2px}
.hero .welcome{font-weight:600;margin:0 0 14px;opacity:.85;font-size:18px}
.hero p.lead{font-size:clamp(19px,2vw,23px);line-height:1.5;max-width:46ch;margin:20px 0 30px;opacity:1;color:#E3EAF5}
.hero .row{display:flex;flex-wrap:wrap;gap:16px;align-items:center}
.phone{font:700 clamp(34px,6vw,54px)/1 "Barlow Condensed",sans-serif;color:#DDE3EE;background:linear-gradient(#fff,#8F9AAE);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-decoration:none}

.why{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px}
.why div{background:var(--surface);border:1px solid var(--line);border-top:5px solid var(--water);padding:22px}
.why h3{font-size:27px;margin-bottom:6px}
.why p{margin:0;color:var(--muted);font-size:16px}

.svc{background:var(--surface);border-block:1px solid var(--line)}
.svc ul{list-style:none;margin:0 0 28px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0 36px}
.svc li{padding:14px 0;border-bottom:1px solid var(--line)}
.svc li b{display:block;font:700 24px "Barlow Condensed",sans-serif}
.svc li span{color:var(--muted);font-size:16px}

.about .wrap{display:grid;grid-template-columns:1.3fr 1fr;gap:44px;align-items:center}
.about p{color:var(--muted);margin:0 0 14px}
.stats{display:grid;gap:14px}
.stats div{background:var(--navy);color:var(--navy-text);padding:20px 24px}
.stats b{display:block;font:700 54px/1 "Barlow Condensed",sans-serif;color:var(--glow)}
@media(max-width:820px){.about .wrap{grid-template-columns:1fr}}

.rv{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px}
.rv-h{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.rv-h b{display:block;line-height:1.2}
.rv-h small{color:var(--muted);font-size:14px}
.av{width:44px;height:44px;border-radius:50%;color:#fff;display:grid;place-items:center;font:600 20px Barlow,sans-serif;flex:none}
.g{width:24px;height:24px;margin-left:auto;flex:none}
.rv p{margin:6px 0 0}
.reply{margin-top:14px;padding:12px 14px;background:var(--bg);border-radius:8px;font-size:15px}
.reply b{display:block;font-size:14px}
.reply p{margin:4px 0 0;color:var(--muted)}
.reviews{display:grid;align-items:start;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:20px;margin-bottom:20px}
blockquote{margin:0;padding:22px;background:var(--surface);border-left:5px solid var(--water)}
blockquote p{margin:0 0 12px}
blockquote footer{font-weight:600;font-size:15px;color:var(--muted)}
.stars{color:#F2B705;letter-spacing:2px;font-size:18px;display:block;margin-bottom:6px;-webkit-text-stroke:.5px #8a6a00}

.gr{display:grid;grid-template-columns:210px 1fr;gap:24px;align-items:center}
.gr-sum{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.gr-logo{width:70px;height:auto;aspect-ratio:1480/1680;background:#000;border-radius:12px;padding:6px}
.gr-sum .btn{padding:8px 18px;font-size:16px;margin-top:6px}
.stars.big{font-size:24px;margin:0}
.gr-meta{color:var(--muted)}
.gr-wrap{position:relative;min-width:0}
.gr-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:4px 2px}
.gr-track::-webkit-scrollbar{display:none}
.gc{flex:0 0 min(300px,82%);scroll-snap-align:start;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px}
.gc-s{display:flex;align-items:center;gap:6px}.gc-s .stars{margin:0}.vt{width:18px;height:18px}
.gc-t{margin:8px 0 0;font-size:16px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.gc.open .gc-t{display:block}
.gc-more{background:none;border:0;color:var(--muted);padding:6px 0 0;cursor:pointer;font:inherit;font-size:15px;text-decoration:underline}
.gr-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;font-size:24px;line-height:1;padding:0 0 3px}
.gr-arrow.l{left:-12px}.gr-arrow.r{right:-12px}
@media(max-width:820px){.gr{grid-template-columns:1fr}.gr-arrow.l{left:-4px}.gr-arrow.r{right:-4px}}
.local{background:var(--surface);border-block:1px solid var(--line)}
.local .cols{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.local p{color:var(--muted);margin:0 0 14px}
.local h3{font-size:30px;margin-bottom:10px}
.local ul{columns:2 120px;list-style:none;padding:0;margin:0;font-weight:500}
@media(max-width:820px){.local .cols{grid-template-columns:1fr}}

.cta{background:var(--navy);color:var(--navy-text)}
.cta .wrap{display:flex;flex-wrap:wrap;gap:22px;justify-content:space-between;align-items:center}
.cta h2{margin:0}
.cta .row{display:flex;gap:16px;align-items:center;flex-wrap:wrap}

footer.site{background:#000;color:#D2DAE8;padding:52px 0 28px;font-size:16px}
footer.site .grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.3fr;gap:32px}
footer.site h3{font-size:24px;color:#fff;margin-bottom:10px}
footer.site ul{list-style:none;margin:0;padding:0}
footer.site li{padding:3px 0}
footer.site a{text-decoration:none}
footer.site a:hover{text-decoration:underline}
footer.site input{width:100%;padding:10px 12px;border:1px solid #252C3A;border-radius:6px;font:inherit;background:#080B11;color:#EEF2F8;margin-bottom:8px}
footer.site .btn{width:100%}
#thanks{display:none;margin-top:10px;font-weight:600}
.legal{border-top:1px solid #252C3A;margin-top:34px;padding-top:18px;font-size:14px;opacity:.8}
@media(max-width:860px){footer.site .grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){footer.site .grid{grid-template-columns:1fr}}
.mobilecall{display:none}
@media(max-width:720px){
  .mobilecall{display:block;position:fixed;left:0;right:0;bottom:0;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));background:var(--navy);z-index:9}
  .mobilecall .btn{display:block;text-align:center;width:100%}
  body{padding-bottom:70px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.logo img{height:40px;width:auto;aspect-ratio:2080/460;display:block}
.emblem,.gr-logo,.flogo{display:block}
header.nav .wrap nav{margin-left:auto;margin-right:20px}
.hdr-r{display:flex;align-items:center;gap:10px}.hbtn{padding:8px 18px}
nav a.active{color:#fff!important;box-shadow:0 2px 0 var(--glow)}
.menu{display:none;background:none;border:1px solid #252C3A;color:#fff;border-radius:6px;width:42px;height:38px;font-size:22px;cursor:pointer}
@media(max-width:860px){header.nav .wrap nav{display:none;position:absolute;top:66px;left:0;right:0;margin:0;background:#000;border-bottom:1px solid #252C3A;flex-direction:column;align-items:flex-start;gap:0;padding:8px 20px 16px}
header.nav .wrap nav.show{display:flex}nav a:not(.btn){display:block;padding:10px 0;width:100%}.menu{display:block}}
.pagehero{background:var(--navy);color:#fff;padding:48px 0 52px}.pagehero h1{font-size:clamp(40px,6.5vw,68px)}
.pagehero p{max-width:56ch;margin:12px 0 0;opacity:.9;font-size:19px}.pagehero p.crumb{font-size:15px;opacity:.75;margin:0 0 10px}.crumb a{text-decoration:none}
.two{display:grid;grid-template-columns:1.6fr 1fr;gap:40px;align-items:start}@media(max-width:820px){.two{grid-template-columns:1fr}}
.check{list-style:none;padding:0;margin:16px 0 24px}.check li{padding:8px 0 8px 30px;position:relative;border-bottom:1px solid var(--line)}
.check li::before{content:"\2713";position:absolute;left:0;color:var(--water);font-weight:700}
.prose h2{font-size:34px;margin:0 0 8px}.prose h3{font-size:28px;margin:24px 0 6px}.prose p{color:var(--muted);margin:0 0 12px}
.side{background:#000;color:#fff;padding:24px;border-radius:12px;position:sticky;top:90px}.side h3{font-size:26px;margin-bottom:8px}
.side .phone{display:block;margin:6px 0 14px}.side ul{list-style:none;padding:0;margin:14px 0 0}.side li{padding:4px 0}.side li a{text-decoration:none;color:#B8C2D4}.side li a:hover{color:#fff}
.sgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.sc{display:block;background:var(--surface);border:1px solid var(--line);border-top:5px solid var(--water);padding:20px;text-decoration:none}.sc:hover{border-top-color:var(--yellow)}
.sc h3{font-size:26px;margin-bottom:4px}.sc p{margin:0 0 10px;color:var(--muted);font-size:16px}.sc span{font-weight:600;color:var(--water)}
.form-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:24px}
.form-card label{display:block;font-weight:600;font-size:14px;margin:12px 0 4px}
.form-card input,.form-card select,.form-card textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:6px;font:inherit;background:var(--bg);color:var(--text)}
.form-card .btn{margin-top:16px;width:100%}.dl{margin:0 0 18px}.dl dt{font-weight:600}.dl dd{margin:0;color:var(--muted)}
.btn,.topbar a{white-space:nowrap}
@media(max-width:600px){.topbar a+a{display:none}.topbar .wrap{justify-content:center;text-align:center;font-size:14px}.logo img{height:34px}.hbtn{padding:8px 14px;font-size:16px}}

.logo{gap:10px}.logo img.hemb{height:48px;width:auto;aspect-ratio:740/840}
@media(max-width:600px){.logo{gap:7px}.logo img{height:28px}.logo img.hemb{height:38px}}
@media(max-width:420px){.logo img{height:24px}.logo img.hemb{height:34px}.hdr-r{gap:8px}.hbtn{padding:8px 12px;font-size:15px}.menu{width:38px}header.nav .wrap{gap:8px}}
/* two-row header */
.hd-top{background:#000}.hd-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:14px;padding-bottom:14px}
.hd-top .logo{gap:14px}.hd-top .logo img{height:66px}.hd-top .logo img.hemb{height:100px}
.hd-contact{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.hd-phone{font-size:clamp(30px,4.4vw,48px);display:block}
.hd-mail{color:#B8C2D4;text-decoration:none;font-size:17px}.hd-mail:hover{color:#fff}
header.nav .wrap{height:56px}header.nav .wrap nav{margin:0}
@media(max-width:860px){header.nav .wrap nav{top:56px}.hdr-r{width:100%;justify-content:space-between}}
@media(max-width:600px){.hd-top .logo{gap:8px}.hd-top .logo img{height:32px}.hd-top .logo img.hemb{height:50px}.hd-mail{display:none}.hd-phone{font-size:24px}.hd-row{padding-top:10px;padding-bottom:10px}.topbar .wrap{justify-content:center;gap:16px}}
@media(max-width:420px){.hd-top .logo img{height:26px}.hd-top .logo img.hemb{height:42px}.hd-phone{font-size:21px}.hd-row{gap:10px}}
/* more colour */
.topbar{background:linear-gradient(90deg,#0848D6,#0A5CFF);font-weight:600}
.topbar .open::before{background:#FFD23F}
.hero{background:radial-gradient(circle at 78% 50%,rgba(10,92,255,.38),transparent 58%),var(--navy)}
.cta{background:linear-gradient(120deg,#0848D6,#0A5CFF 60%,#1E6FFF)}
.cta .btn{background:#fff;color:#0848D6}
.cta .phone{background:none;-webkit-text-fill-color:#fff;color:#fff}
/* service watermarks */
.sc{position:relative;overflow:hidden;min-height:170px}
.sc>*:not(.wm){position:relative;z-index:1}
.wm{position:absolute;right:-6px;bottom:-10px;width:140px;height:140px;color:var(--water);opacity:.16;pointer-events:none;transition:opacity .2s,transform .2s}
.sc:hover .wm{opacity:.28;transform:scale(1.05)}
@media(prefers-reduced-motion:reduce){.wm{transition:none}.sc:hover .wm{transform:none}}
/* bold two-tone service icons */
.sc{display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--bg);padding:28px 22px 24px;min-height:0}
.sc:hover{border-top-color:#1EA7FF;box-shadow:0 8px 24px rgba(10,92,255,.14)}
.ic{width:84px;height:84px;margin-bottom:14px;stroke:var(--text);stroke-width:3.4;flex:none}
.ic .b{stroke:#0A5CFF}.ic .fb{fill:#0A5CFF;stroke:#0A5CFF}.ic .fc{fill:#1EA7FF;stroke:#1EA7FF}
.ic .o{stroke:#FF6B2C}.ic .r{stroke:#E5383B}
.sc h3{font-size:28px}.sc span{margin-top:auto}
/* WPS-style bold icons */
.ic{width:92px;height:92px;stroke-width:5}
.ic .fb{fill:#0A5CFF;stroke:none}.ic .fc{fill:#1EA7FF;stroke:none}.ic .fd{fill:var(--text);stroke:none}
.ic .fw{fill:#fff;stroke:none}.ic .fr{fill:#E5383B;stroke:#E5383B;stroke-width:1}.ic .fbg{fill:var(--bg)}
.ic .w{stroke:#fff}
/* optional photo behind the Services banner: add services-hero.jpg to the folder */
.pagehero.photo{background:linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.5) 70%,rgba(0,0,0,.35)),url(services-hero.jpg) center/cover no-repeat,var(--navy);padding:72px 0 76px}
/* colourful icons */
.ic{width:104px;height:104px;box-sizing:border-box;padding:12px;border-radius:50%;background:var(--tint,rgba(10,92,255,.10))}
.ic .k1{fill:var(--c1);stroke:none}.ic .k2{fill:var(--c2);stroke:none}.ic .s1{stroke:var(--c1)}.ic .s2{stroke:var(--c2)}
.sgrid>.sc:nth-child(1){--c1:#FF8A1F;--c2:#FFB020;--tint:rgba(10,92,255,.10)}
.sgrid>.sc:nth-child(2){--c1:#2FB36B;--c2:#1EA7FF;--tint:rgba(47,179,107,.13)}
.sgrid>.sc:nth-child(3){--c1:#FF6B2C;--c2:#FFB020;--tint:rgba(255,107,44,.13)}
.sgrid>.sc:nth-child(4){--c1:#7B3FE4;--c2:#FF8A1F;--tint:rgba(123,63,228,.10)}
.sgrid>.sc:nth-child(5){--c1:#FF8A1F;--c2:#1EA7FF;--tint:rgba(30,167,255,.13)}
.sgrid>.sc:nth-child(6){--c1:#E8478B;--c2:#1EA7FF;--tint:rgba(232,71,139,.11)}
.sgrid>.sc:nth-child(7){--c1:#FF8A1F;--c2:#E5383B;--tint:rgba(255,176,32,.18)}
.sgrid>.sc:nth-child(8){--c1:#F0562B;--c2:#FFB020;--tint:rgba(240,86,43,.12)}
.sgrid>.sc:nth-child(9){--c1:#E5383B;--c2:#FFB020;--tint:rgba(229,56,59,.10)}
.sgrid>.sc:nth-child(10){--c1:#1EA7FF;--c2:#FFB020;--tint:rgba(30,167,255,.13)}
.ic{overflow:visible}
.why>div{position:relative;overflow:hidden}.why>div>*:not(.wm){position:relative;z-index:1}.why .wm{width:150px;height:150px;right:-16px;bottom:-16px}
/* socials + map watermark */
.soc{display:flex;gap:12px;margin-top:14px}.soc a{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#fff}.soc a:hover{transform:translateY(-2px)}
.local.map{position:relative;padding:84px 0;overflow:hidden}
.local.map::before{content:"";position:absolute;inset:0;background:url(sydney-map.jpg) center 55%/cover no-repeat;opacity:.19;filter:brightness(1.25) saturate(1.3);pointer-events:none}
.local.map>.wrap{position:relative}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) .local.map::before{opacity:.38}}
.pagehero.map{position:relative;overflow:hidden;padding:72px 0 76px}
.pagehero.map::before{content:"";position:absolute;inset:0;background:url(sydney-map.jpg) center 45%/cover no-repeat;filter:brightness(1.45) saturate(1.2)}
.pagehero.map::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.86),rgba(0,0,0,.4) 65%,rgba(0,0,0,.15))}
.pagehero.map>.wrap{position:relative;z-index:1}
/* areas section: dark map, same as the banner */
.local.map{background:var(--navy);color:#fff;border-block:0}
.local.map::before{opacity:1;filter:brightness(1.4) saturate(1.2);background-position:center 55%}
.local.map::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.84),rgba(0,0,0,.62))}
.local.map>.wrap{position:relative;z-index:1}
.local.map h3,.local.map li{color:#fff}.local.map p{color:#DCE5F2}
/* one map behind banner + section */
.mapwrap{position:relative;overflow:hidden;background:var(--navy)}
.mapwrap::before{content:"";position:absolute;inset:0;background:url(sydney-map.jpg) center/cover no-repeat;filter:brightness(1.4) saturate(1.2)}
.mapwrap::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.84),rgba(0,0,0,.5) 70%,rgba(0,0,0,.4))}
.mapwrap>.pagehero.map,.mapwrap>.local.map{background:transparent;position:relative;z-index:1;overflow:visible}
.mapwrap>.pagehero.map::before,.mapwrap>.pagehero.map::after,.mapwrap>.local.map::before,.mapwrap>.local.map::after{display:none}
.mapwrap>.pagehero.map{padding-bottom:20px}.mapwrap>.local.map{padding-top:36px}
/* full map, every region visible, plus St George label */
.mapwrap{min-height:66.67vw}
.mapwrap::before{display:none}
.mapimg{position:absolute;top:0;left:0;right:0;aspect-ratio:3/2;overflow:hidden}
.mapimg img{width:100%;height:100%;display:block;object-fit:cover;filter:brightness(1.4) saturate(1.2)}
.stg{position:absolute;transform:translate(-50%,-50%);background:rgba(8,20,44,.88);border:1px solid rgba(160,190,255,.4);color:#fff;font:600 clamp(8px,1.05vw,15px)/1 Barlow,sans-serif;letter-spacing:.12em;text-transform:uppercase;padding:.6em 1.1em;white-space:nowrap}
.stg::after{content:"";position:absolute;left:50%;top:calc(100% + .5em);width:.6em;height:.6em;border-radius:50%;background:#fff;transform:translateX(-50%)}
@media(max-width:820px){.mapwrap{min-height:0;display:flex;flex-direction:column}.mapwrap::after{display:none}.mapimg{position:relative;order:3;width:100%}.stg{font-size:clamp(6px,2vw,12px)}}
.mapwrap::after{background:linear-gradient(90deg,rgba(0,0,0,.9),rgba(0,0,0,.68) 55%,rgba(0,0,0,.5))}
.mapwrap .pagehero,.mapwrap .local{text-shadow:0 1px 8px rgba(0,0,0,.85)}
/* final areas layout: title, full map (all regions visible), then text */
.mapwrap{min-height:0;display:flex;flex-direction:column;background:var(--navy)}
.mapwrap::after{display:none}
.mapwrap>.pagehero.map{order:1;padding:64px 0 28px}
.mapimg{position:relative;top:auto;left:auto;right:auto;order:2;width:100%;aspect-ratio:3/2;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 10%,#000 90%,transparent)}
.mapwrap>.local.map{order:3;padding:28px 0 72px}
.mapwrap .pagehero,.mapwrap .local{text-shadow:none}
/* areas: map behind the writing, filling the page (desktop). Phones keep the map stacked so every label stays readable */
@media(min-width:821px){
.mapwrap{display:block;min-height:66.67vw;position:relative}
.mapwrap::after{display:block;content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.8),rgba(0,0,0,.46) 60%,rgba(0,0,0,.3))}
.mapimg{position:absolute;top:0;left:0;right:0;order:0;-webkit-mask-image:none;mask-image:none}
.mapwrap>.pagehero.map{position:relative;z-index:1;padding:44px 0 6px}
.mapwrap>.local.map{position:relative;z-index:1;padding:18px 0 60px}
.mapwrap .pagehero,.mapwrap .local{text-shadow:0 1px 10px rgba(0,0,0,.9),0 0 2px rgba(0,0,0,.6)}
}
@media(min-width:821px){
.mapwrap{display:flex;flex-direction:column;justify-content:space-between}
.mapwrap>.pagehero.map h1{font-size:clamp(30px,3.4vw,50px)}
.mapwrap>.pagehero.map p{font-size:clamp(14px,1.3vw,18px)}
.mapwrap>.pagehero.map>.wrap,.mapwrap>.local.map>.wrap{margin:0 0 0 4.5%;max-width:none;width:50%;padding:0}
.mapwrap>.local.map .cols{grid-template-columns:1fr 1fr;gap:3%}
.mapwrap>.local.map h3{font-size:clamp(20px,2.1vw,30px)}
.mapwrap>.local.map p,.mapwrap>.local.map li{font-size:clamp(13px,1.15vw,16px);line-height:1.4}
.mapwrap>.local.map{padding:0 0 3%}
.mapwrap::after{background:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.3) 55%,rgba(0,0,0,.12))}
}
.pagehero.bathphoto{background:linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.66) 55%,rgba(0,0,0,.45)),url(bathroom-hero.jpg) center/cover no-repeat,var(--navy);padding:84px 0 88px}
.pagehero.ph{padding:84px 0 88px;background-size:cover;background-position:center;background-repeat:no-repeat;background-color:var(--navy)}
.pagehero.ph-gas{background-image:linear-gradient(90deg,rgba(0,0,0,.86),rgba(0,0,0,.6) 55%,rgba(0,0,0,.42)),url(hero-gas.jpg)}
.pagehero.ph-toilet{background-image:linear-gradient(90deg,rgba(0,0,0,.84),rgba(0,0,0,.55) 55%,rgba(0,0,0,.3)),url(hero-toilet.jpg)}
.pagehero.ph-taps{background-image:linear-gradient(90deg,rgba(0,0,0,.86),rgba(0,0,0,.6) 55%,rgba(0,0,0,.42)),url(hero-taps.jpg)}
.pagehero.ph-hot{background-image:linear-gradient(90deg,rgba(0,0,0,.86),rgba(0,0,0,.6) 55%,rgba(0,0,0,.42)),url(hero-hotwater.jpg)}
.pagehero.ph-hot{background-image:linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.74) 55%,rgba(0,0,0,.66)),url(hero-hotwater.jpg)}
/* leaking taps: text left, two sharp photos right */
.pagehero.ph-split{padding:44px 0 48px}
.split{display:grid;grid-template-columns:1fr 1.7fr;gap:32px;align-items:center}
.split .stxt h1{font-size:clamp(36px,5vw,56px)}
.spics{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.spics img{width:100%;height:clamp(190px,24vw,290px);object-fit:cover;object-position:35% 50%;border-radius:10px;display:block;border:1px solid rgba(255,255,255,.14)}
@media(max-width:820px){.split{grid-template-columns:1fr}.spics img{height:170px}}
.pagehero.ph-drain{background-image:linear-gradient(90deg,rgba(0,0,0,.84),rgba(0,0,0,.58) 55%,rgba(0,0,0,.4)),url(hero-drain.jpg)}
.spics img.p1{object-position:46% 52%}.spics img.p2{object-position:50% 50%}
.spics.one{grid-template-columns:1fr}.spics.one img{object-position:50% 45%;height:clamp(200px,25vw,300px)}
.pagehero.ph-maint{background-image:linear-gradient(90deg,rgba(0,0,0,.86),rgba(0,0,0,.6) 55%,rgba(0,0,0,.35)),url(hero-maint.jpg)}

/* suburb lists */
.mapwrap .arealink{color:inherit;text-decoration:underline;text-decoration-color:rgba(255,255,255,.4);text-underline-offset:3px}
.mapwrap .arealink:hover{text-decoration-color:#fff}
.mapwrap .tapnote{font-size:13px;opacity:.8;margin:8px 0 0}
.suburbs{padding:56px 0}
.suburbs h2{margin:0 0 8px}.suburbs .sub{color:var(--muted);margin:0 0 24px}
.acc{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.acc details{background:var(--surface);border:1px solid var(--line);border-left:4px solid #0A5CFF;border-radius:6px}
.acc summary{cursor:pointer;list-style:none;padding:16px 48px 16px 18px;font:700 22px/1.2 "Barlow Condensed",Barlow,sans-serif;text-transform:uppercase;letter-spacing:.02em;position:relative}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"+";position:absolute;right:18px;top:50%;transform:translateY(-50%);font-size:26px;color:#0A5CFF}
.acc details[open] summary::after{content:"–"}
.acc ul{list-style:none;margin:0;padding:0 18px 18px;columns:2 150px;column-gap:20px}
.acc li{padding:3px 0;color:var(--muted)}
@media(max-width:820px){.acc{grid-template-columns:1fr}}

.spics img.p2[src="blocked-drain-2.jpg"]{height:auto;object-fit:contain}
.spics img.p1[src="blocked-drain-1.jpg"]{height:auto;aspect-ratio:1.2;object-fit:cover}
.spics img.p2[src="blocked-drain-2.jpg"]{aspect-ratio:1300/653}

.spics img.p1[src="hot-water-1.jpg"],.spics img.p2[src="hot-water-2.jpg"]{height:auto;aspect-ratio:1.25;object-fit:cover;object-position:50% 50%}

.spics.sw{justify-items:end}.spics.sw img{height:auto;aspect-ratio:1.25;width:100%;max-width:440px;object-fit:cover;object-position:50% 50%}

.pagehero.ph-emerg{background-image:linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.62) 55%,rgba(0,0,0,.4)),url(hero-emergency.jpg)}



.split.em-wrap{}
.pagehero.ph-split .split:has(.spics.em){grid-template-columns:.8fr 1.6fr}
.spics.em img{height:auto;aspect-ratio:1774/687;width:100%;object-fit:contain}
@media(max-width:820px){.pagehero.ph-split .split:has(.spics.em){grid-template-columns:1fr}}
.pagehero.ph-backflow{background-image:linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.6) 45%,rgba(0,0,0,.15) 85%),url(hero-backflow.jpg?v=5);background-position:center center;min-height:380px;display:flex;align-items:center;padding:40px 0}
.pagehero.ph-backflow>.wrap{width:100%}
@media(max-width:820px){.pagehero.ph-backflow{min-height:320px;background-image:linear-gradient(rgba(0,0,0,.72),rgba(0,0,0,.6)),url(hero-backflow.jpg?v=5);background-position:30% bottom}}
.form-card input[type=file]{padding:9px 10px;cursor:pointer}.form-card .opt{font-weight:400;color:var(--muted)}.form-card .hint{font-size:13px;color:var(--muted);margin:6px 0 0}.form-card .hint.err{color:#C62828;font-weight:600}
.fwrap{min-height:240px}
.pagehero.ph-reviews{background-image:linear-gradient(90deg,rgba(0,0,0,.55),rgba(0,0,0,.25) 60%,rgba(0,0,0,0)),url(hero-reviews.jpg);background-position:center bottom;min-height:380px;display:flex;align-items:center;padding:40px 0}.pagehero.ph-reviews>.wrap{width:100%}@media(max-width:820px){.pagehero.ph-reviews{min-height:260px;background-position:70% bottom}}
