:root{--color-primary:#0b2540;--color-accent:#0369a1;--color-ice:#7dd3fc;--color-ink:#0b1b2b;--color-body:#27323d;--color-muted:#5b6b7b;--color-line:#dfe6ec;--color-bg:#fff;--color-bg-alt:#f2f6f9;--color-success:#15803d;--color-error:#b91c1c;--font-heading:'Montserrat',system-ui,sans-serif;--font-body:'Inter',system-ui,sans-serif;--fs-h1:clamp(2.25rem,5vw,3.75rem);--fs-h2:clamp(1.75rem,3.5vw,2.5rem);--fs-h3:clamp(1.2rem,2vw,1.4rem);--s-1:.5rem;--s-2:1rem;--s-3:1.5rem;--s-4:2rem;--s-5:3rem;--s-6:4rem;--s-7:6rem;--container:1200px;--container-narrow:820px;--header-h:72px}
*,*::before,*::after{box-sizing:border-box}*{margin:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:var(--header-h)}
body{font-family:var(--font-body);font-size:1.0625rem;line-height:1.65;color:var(--color-body);background:var(--color-bg);-webkit-font-smoothing:antialiased}
img,picture,svg,video{display:block;max-width:100%;height:auto}button,input,select,textarea{font:inherit}
a{color:inherit;text-decoration:underline;text-underline-offset:3px}a:hover{text-decoration:none}
p+p{margin-top:var(--s-2)}
h1,h2,h3,h4{font-family:var(--font-heading);font-weight:900;line-height:1.1;color:var(--color-ink);letter-spacing:-.02em}
h1{font-size:var(--fs-h1)}h2{font-size:var(--fs-h2)}h3{font-size:var(--fs-h3);font-weight:800}h4{font-size:1.0625rem;font-weight:800}
.overline{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700;color:var(--color-accent);margin-bottom:.5rem}
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--s-3)}.container-narrow{max-width:var(--container-narrow)}
@media(max-width:640px){.container{padding-inline:16px}}
section{padding-block:var(--s-6)}@media(min-width:768px){section{padding-block:var(--s-7)}}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-1);padding:.95rem 1.75rem;font-family:var(--font-heading);font-weight:800;text-decoration:none;text-transform:uppercase;letter-spacing:.04em;border:2px solid transparent;cursor:pointer;transition:background-color .15s,color .15s,border-color .15s;font-size:.95rem}
.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover{background:var(--color-ink)}
.btn-secondary{background:transparent;color:var(--color-ink);border-color:var(--color-ink)}.btn-secondary:hover{background:var(--color-ink);color:#fff}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}.btn-ghost:hover{background:#fff;color:var(--color-ink)}
.btn-lg{font-size:1.1rem;padding:1.1rem 2rem}
.announcement-bar{background:var(--color-primary);color:#dbeefa;text-align:center;font-size:.8125rem;font-weight:600;padding:.45rem 1rem}
.site-header{position:sticky;top:0;z-index:50;background:var(--color-bg);border-bottom:1px solid var(--color-line);height:var(--header-h)}
.site-header>.container{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:100%}
.logo{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--color-ink)}
.logo-mark{width:34px;height:34px;flex:0 0 34px;background:radial-gradient(circle at 35% 30%,#fff 0 14%,var(--color-ice) 16%,var(--color-accent) 70%,var(--color-primary) 100%);border-radius:50% 50% 50% 0;transform:rotate(-45deg)}
.logo-text{font-family:var(--font-heading);font-weight:800;font-size:.95rem;line-height:1.1;text-transform:uppercase;letter-spacing:.01em}
.logo-text strong{font-weight:900;color:var(--color-accent)}
.logo-text small{display:block;font-family:var(--font-body);text-transform:none;font-weight:600;font-size:.72rem;color:var(--color-muted);letter-spacing:0;margin-top:2px}
.site-header nav{display:none;gap:var(--s-3)}.site-header nav a{text-decoration:none;font-weight:600}.site-header nav a:hover{color:var(--color-accent)}@media(min-width:960px){.site-header nav{display:flex}}
.header-call{display:inline-flex;align-items:center;gap:var(--s-1);padding:.65rem 1rem;background:var(--color-ink);color:#fff;text-decoration:none;font-weight:700;white-space:nowrap}
.header-call:hover{background:var(--color-accent)}
@media(max-width:420px){.logo-text{font-size:.78rem}.logo-text small{font-size:.66rem}.header-call{padding:.55rem .7rem;font-size:.9rem}.logo-mark{width:26px;height:26px;flex-basis:26px}}
.hero{position:relative;color:#e2f1fa;background:radial-gradient(900px 420px at 80% 0%,rgba(125,211,252,.22),transparent 60%),linear-gradient(160deg,#071a2e 0%,#0b2540 60%,#0c3256 100%);padding-block:var(--s-5)}
@media(min-width:900px){.hero{padding-block:var(--s-6)}.hero .container{display:grid;grid-template-columns:1.15fr .85fr;gap:var(--s-5);align-items:center}}
.hero h1{color:#fff;margin-bottom:var(--s-2)}.hero h1 em{font-style:normal;color:var(--color-ice)}
.hero .subhead{font-size:1.2rem;margin-bottom:var(--s-3);max-width:56ch;color:#c9e3f2}
.hero ul.ticks{list-style:none;padding:0;margin:0 0 var(--s-3)}.hero ul.ticks li{padding-left:1.9rem;position:relative;margin-bottom:.5rem;font-weight:600;color:#fff}.hero ul.ticks li::before{content:'✓';position:absolute;left:0;color:var(--color-ice);font-weight:900}
.hero .btn-call{background:#fff;color:var(--color-ink)}.hero .btn-call:hover{background:var(--color-ice)}
.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.hero-actions .afterpay{font-size:.9rem;color:#a9c7d9}
.page-hero{background:var(--color-bg-alt);padding-block:var(--s-5)}
@media(min-width:900px){.page-hero .container{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--s-5);align-items:start}}
.page-hero h1{margin-bottom:var(--s-2)}.page-hero .subhead{font-size:1.15rem;margin-bottom:var(--s-3);max-width:60ch}
.page-hero ul.ticks{list-style:none;padding:0;margin:0 0 var(--s-3)}.page-hero ul.ticks li{padding-left:1.9rem;position:relative;margin-bottom:.45rem;font-weight:600}.page-hero ul.ticks li::before{content:'✓';position:absolute;left:0;color:var(--color-accent);font-weight:900}
.lead-form{background:var(--color-bg);color:var(--color-body);padding:var(--s-3);border:2px solid var(--color-ink);margin-top:var(--s-4);position:relative}
@media(min-width:900px){.lead-form{margin-top:0}}
.hero .lead-form{border-color:transparent;box-shadow:0 24px 60px -24px rgba(0,0,0,.6)}
.lead-form h2{font-size:1.5rem;margin-bottom:.4rem}.lead-form .form-sub{font-size:.95rem;color:var(--color-muted);margin-bottom:var(--s-2)}
.lead-form .form-row{display:grid;gap:var(--s-2);margin-bottom:var(--s-2)}
.lead-form label{display:block;font-weight:600;font-size:.875rem;color:var(--color-ink)}
.lead-form input,.lead-form select,.lead-form textarea{width:100%;margin-top:.25rem;padding:.8rem;border:2px solid var(--color-line);background:#fff;font-size:1rem;border-radius:0}
.lead-form input:focus,.lead-form select:focus,.lead-form textarea:focus{outline:2px solid var(--color-accent);outline-offset:2px;border-color:var(--color-ink)}
.lead-form .btn{width:100%}.lead-form .hp{position:absolute;left:-9999px}
.lead-form .form-note{font-size:.8125rem;color:var(--color-muted);margin-top:var(--s-1);text-align:center}
.trust-bar{background:var(--color-ink);color:#fff;padding-block:var(--s-3)}
.trust-bar ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-2);text-align:center}@media(min-width:768px){.trust-bar ul{grid-template-columns:repeat(5,1fr)}}
.trust-bar li{font-weight:700;font-size:.9375rem}.trust-bar li span{display:block;font-weight:400;font-size:.8rem;color:#a9c7d9}
.services-grid{display:grid;grid-template-columns:1fr;gap:var(--s-3)}@media(min-width:640px){.services-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.services-grid{grid-template-columns:repeat(3,1fr)}}
.service-card{display:block;padding:var(--s-3);border:2px solid var(--color-line);text-decoration:none;transition:border-color .15s,background .15s;background:#fff}
.service-card:hover{border-color:var(--color-ink);background:var(--color-bg-alt)}.service-card h3{margin-bottom:var(--s-1)}.service-card .arrow{display:inline-block;margin-top:var(--s-2);font-weight:800;color:var(--color-accent)}
.pillars{display:grid;gap:var(--s-4)}@media(min-width:768px){.pillars{grid-template-columns:repeat(3,1fr)}}
.pillar{border-top:4px solid var(--color-accent);padding-top:var(--s-2)}.pillar h3{margin-bottom:var(--s-1)}.pillar .fact{margin-top:var(--s-2);font-weight:700;color:var(--color-ink);font-size:.95rem}
.reviews{background:var(--color-bg-alt)}.reviews-grid{display:grid;gap:var(--s-3)}@media(min-width:768px){.reviews-grid{grid-template-columns:repeat(3,1fr)}}
.review-card{background:#fff;padding:var(--s-3);border:2px solid var(--color-line);display:flex;flex-direction:column}.review-card .stars{color:#b45309;margin-bottom:var(--s-1);letter-spacing:2px}
.review-card blockquote{font-style:italic;margin-bottom:var(--s-2);flex:1}.review-card cite{font-style:normal;font-weight:800;display:block;color:var(--color-ink)}.review-card figcaption span{font-size:.875rem;color:var(--color-muted)}
.faq details{border-bottom:2px solid var(--color-line);padding-block:var(--s-2)}
.faq summary{font-family:var(--font-heading);font-weight:800;font-size:1.1rem;cursor:pointer;list-style:none;position:relative;padding-right:2rem;color:var(--color-ink)}
.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:'+';position:absolute;right:0;top:-.1rem;font-size:1.5rem;color:var(--color-accent)}
.faq details[open] summary::after{content:'\2212'}.faq details p{margin-top:var(--s-1)}
.cta-band{background:linear-gradient(160deg,#071a2e,#0b2540);color:#dbeefa;text-align:center}.cta-band h2{color:#fff;margin-bottom:var(--s-2)}.cta-band p{font-size:1.125rem;margin-bottom:var(--s-3)}
.cta-buttons{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}
.site-footer{background:var(--color-ink);color:#dbe6ef;padding-block:var(--s-5) calc(var(--s-3) + 64px);font-size:.9375rem}@media(min-width:768px){.site-footer{padding-bottom:var(--s-3)}}
.site-footer a{color:#fff}.site-footer .footer-grid{display:grid;gap:var(--s-4)}@media(min-width:768px){.site-footer .footer-grid{grid-template-columns:2fr 1fr 1fr 1.2fr}}
.site-footer h4{color:#fff;margin-bottom:var(--s-2);font-size:.95rem;text-transform:uppercase;letter-spacing:.06em}
.site-footer ul{list-style:none;padding:0}.site-footer li{margin-bottom:.5rem}
.site-footer address{font-style:normal;margin-top:var(--s-2);line-height:1.8}
.logo-footer{color:#fff}.logo-footer .logo-text small{color:#a9c7d9}.footer-tag{margin-top:var(--s-2);color:#a9c7d9}.socials{margin-top:var(--s-2)}
.site-footer .footer-bottom{margin-top:var(--s-4);padding-top:var(--s-3);border-top:1px solid rgba(255,255,255,.15);display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--s-2);font-size:.8125rem;color:rgba(255,255,255,.75)}
.mobile-cta{position:fixed;bottom:0;left:0;right:0;z-index:100;display:grid;grid-template-columns:1fr 1fr;padding-bottom:env(safe-area-inset-bottom);transform:translateY(100%);transition:transform .3s ease;background:var(--color-ink)}
.mobile-cta.visible{transform:translateY(0)}
.mobile-cta a{min-height:56px;display:flex;align-items:center;justify-content:center;text-decoration:none;font-weight:800;text-transform:uppercase;font-family:var(--font-heading)}
.mobile-cta .call{background:var(--color-ink);color:#fff}.mobile-cta .quote{background:var(--color-accent);color:#fff}@media(min-width:768px){.mobile-cta{display:none}}
.breadcrumbs{padding-block:var(--s-2);font-size:.875rem;color:var(--color-muted)}.breadcrumbs a{color:var(--color-muted)}.breadcrumbs [aria-current]{color:var(--color-ink);font-weight:600}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.visually-hidden:focus{position:static;width:auto;height:auto;clip:auto;padding:.5rem 1rem;background:#fff}
.text-center{text-align:center}.mb-3{margin-bottom:var(--s-3)}.mb-2{margin-bottom:var(--s-2)}.mt-3{margin-top:var(--s-3)}
.alt{background:var(--color-bg-alt)}
.lede{font-size:1.2rem;color:var(--color-ink);max-width:68ch}
.prose{max-width:var(--container-narrow)}
.prose h2{margin:var(--s-5) 0 var(--s-2)}.prose h2:first-child{margin-top:0}.prose h3{margin:var(--s-4) 0 var(--s-1)}
.prose ul,.prose ol{padding-left:1.25rem;margin:var(--s-2) 0}.prose li{margin-bottom:.4rem}
.prose p{margin-bottom:var(--s-2)}.prose p+p{margin-top:0}
.split{display:grid;gap:var(--s-4)}@media(min-width:900px){.split{grid-template-columns:1.2fr .8fr;align-items:start}.split.rev{grid-template-columns:.8fr 1.2fr}}
.photo{margin:0}.photo img{width:100%;aspect-ratio:4/5;object-fit:cover}.photo figcaption{font-size:.85rem;color:var(--color-muted);margin-top:.5rem}
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-2)}@media(min-width:900px){.gallery{grid-template-columns:repeat(4,1fr)}}
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-2);margin:var(--s-3) 0}
@media(max-width:560px){.price-grid{grid-template-columns:1fr}}
.price-card{border:2px solid var(--color-line);padding:var(--s-3);text-align:center;background:#fff}.price-card .price{font-family:var(--font-heading);font-weight:900;font-size:2.4rem;color:var(--color-ink);line-height:1.1}.price-card .gst{color:var(--color-muted);font-size:.9rem}
.price-card.featured{background:var(--color-primary);border-color:var(--color-primary)}.price-card.featured .price{color:#fff}.price-card.featured .overline{color:var(--color-ice)}.price-card.featured .gst{color:#a9c7d9}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:var(--s-3) 0}
.data-table{width:100%;min-width:560px;border-collapse:collapse;font-size:.95rem}
.data-table th{background:var(--color-primary);color:#fff;text-align:left;padding:.8rem 1rem;font-weight:700}
.data-table td{border-bottom:1px solid var(--color-line);padding:.8rem 1rem;vertical-align:top}
.data-table tr:nth-child(even) td{background:var(--color-bg-alt)}.data-table td:first-child{font-weight:700;color:var(--color-ink)}
.steps{list-style:none;padding:0;margin:var(--s-3) 0;counter-reset:s}
.steps li{counter-increment:s;position:relative;padding:0 0 var(--s-3) 3.5rem;border-left:2px solid var(--color-line);margin-left:1.2rem}
.steps li:last-child{border-color:transparent;padding-bottom:0}
.steps li::before{content:counter(s);position:absolute;left:-1.25rem;top:-.2rem;width:2.4rem;height:2.4rem;background:var(--color-accent);color:#fff;font:900 1rem/2.4rem var(--font-heading);text-align:center}
.steps h3{font-size:1.1rem;margin-bottom:.25rem}
.cards{display:grid;gap:var(--s-3)}@media(min-width:768px){.cards{grid-template-columns:repeat(2,1fr)}}
.card{border:2px solid var(--color-line);padding:var(--s-3);background:#fff}.card h3{margin-bottom:.4rem}
.card .do{margin-top:var(--s-2);background:var(--color-bg-alt);padding:.75rem 1rem;font-size:.95rem}
.callout{border-left:5px solid var(--color-accent);background:var(--color-bg-alt);padding:var(--s-3);margin:var(--s-3) 0}
.callout.dark{background:var(--color-primary);color:#dbeefa;border-color:var(--color-ice)}.callout.dark strong{color:#fff}
.callout.warn{border-color:#b45309;background:#fff8ef}
.case{border:2px solid var(--color-ink);margin:var(--s-4) 0;background:#fff}
.case-head{background:var(--color-primary);color:#fff;padding:var(--s-3)}.case-head h3{color:#fff}.case-head .overline{color:var(--color-ice)}
.metrics{display:grid;grid-template-columns:repeat(2,1fr);background:#0c3256}@media(min-width:768px){.metrics{grid-template-columns:repeat(4,1fr)}}
.metrics div{padding:var(--s-2) var(--s-3);color:#a9c7d9;font-size:.85rem;border-right:1px solid rgba(255,255,255,.08)}
.metrics b{display:block;color:#fff;font:900 1.35rem/1.2 var(--font-heading)}
.case-body{padding:var(--s-3)}.case-body h4{margin:var(--s-3) 0 .3rem}.case-body h4:first-child{margin-top:0}
.pull{border-left:4px solid var(--color-accent);padding:.5rem 0 .5rem 1.25rem;margin:var(--s-3) 0;font-style:italic;color:var(--color-ink)}
.pull cite{display:block;font-style:normal;font-size:.9rem;color:var(--color-muted);margin-top:.4rem}
.suburb-list{columns:2;column-gap:var(--s-4);list-style:none;padding:0}@media(min-width:768px){.suburb-list{columns:4}}
.suburb-list li{margin-bottom:.5rem;break-inside:avoid}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0;margin:var(--s-2) 0}
.chips a{display:inline-block;padding:.45rem .9rem;border:2px solid var(--color-line);text-decoration:none;font-weight:600;font-size:.9rem}.chips a:hover{border-color:var(--color-ink)}
.compare{display:grid;gap:var(--s-3)}@media(min-width:768px){.compare{grid-template-columns:1fr 1fr}}
.compare .card.good{border-color:#a7dcbc;background:#f2fbf5}.compare .card.bad{border-color:#f0c2bd;background:#fdf4f3}
.review-bar{background:#fff;border-bottom:1px solid var(--color-line);text-align:center;padding:.6rem 1rem;font-weight:700;font-size:.95rem}
.review-bar a{text-decoration:none;color:var(--color-ink)}.review-bar a:hover{color:var(--color-accent)}
.review-bar .stars{color:#b45309;letter-spacing:2px;margin-right:.35rem}
.case-body .photo{max-width:360px;margin:var(--s-2) 0}
@media(min-width:700px){.case-body .photo{float:right;margin:0 0 var(--s-2) var(--s-3)}.case-body h4{clear:none}.case-body::after{content:"";display:block;clear:both}}
.prose .gallery .photo img{aspect-ratio:4/5}
/* dark header with brand logo */
.site-header{background:#0b1b2b;border-bottom:1px solid rgba(255,255,255,.08);height:78px}
:root{--header-h:78px}
.site-header nav a{color:#e2f1fa}.site-header nav a:hover{color:var(--color-ice)}
.logo-img{height:58px;width:auto}
.logo-img-lg{height:84px}
.site-header .logo-text{color:#fff;font-size:.85rem;border-left:1px solid rgba(255,255,255,.2);padding-left:.7rem}
.site-header .logo-text small{color:var(--color-ice);font-size:.72rem}
.header-call{background:var(--color-accent)}.header-call:hover{background:#fff;color:var(--color-ink)}
.announcement-bar{background:#07131f}
@media(max-width:560px){.site-header .logo-text{display:none}.logo-img{height:48px}}
.qa{padding-bottom:var(--s-3);margin-bottom:var(--s-3);border-bottom:1px solid var(--color-line);scroll-margin-top:100px}
.qa h2{font-size:clamp(1.35rem,2.4vw,1.75rem);margin:0 0 .6rem}
.qa-lead{font-size:1.1rem;color:var(--color-ink)}
.qa-toc{position:sticky;top:100px;align-self:start}.qa-toc ol{padding-left:1.1rem;font-size:.92rem}.qa-toc li{margin-bottom:.35rem}.qa-toc a{text-decoration:none}.qa-toc a:hover{text-decoration:underline}
@media(max-width:899px){.qa-toc{position:static;order:-1}}
.beads{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin:1.25rem 0}@media(min-width:700px){.beads{grid-template-columns:repeat(4,1fr)}}
.beads div{border:2px solid var(--color-line);padding:1rem;font-size:.9rem;background:#fff}.beads b{display:block;color:var(--color-ink);margin:.5rem 0 .2rem}
.beads .b{display:block;height:36px;background:var(--color-primary);position:relative}
.beads .b::before{content:"";position:absolute;bottom:6px;left:50%;transform:translateX(-50%);background:radial-gradient(circle at 35% 30%,#fff 0 18%,var(--color-ice) 22%,rgba(3,105,161,.8) 100%)}
.beads .b1::before{width:18px;height:18px;border-radius:50%}
.beads .b2::before{width:26px;height:20px;border-radius:50% 50% 45% 45%/60% 60% 40% 40%}
.beads .b3::before{width:44px;height:9px;border-radius:50%}
.beads .b4::before{width:80%;height:4px;border-radius:2px;background:rgba(125,211,252,.55)}
