:root{--navy:#13264a;--navy2:#1d3a6b;--teal:#00959c;--ink:#1c2533;--muted:#5f6b78;--bg:#f5f7fa;--line:#e1e6ec}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;font:17px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,"DejaVu Sans",Arial,sans-serif;color:var(--ink);background:#fff}
a{color:var(--navy2)}a:hover{color:var(--teal)}
:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem;z-index:9}
.wrap{max-width:1100px;margin:0 auto;padding:0 1.25rem}
header{border-bottom:1px solid var(--line);background:#fff}
.hd{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1.25rem;flex-wrap:wrap}
.logo img{height:72px;width:auto;display:block}
nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.25rem 1.2rem}
nav a{text-decoration:none;color:var(--navy);font-weight:600;padding:.3rem 0;border-bottom:2px solid transparent}
nav a[aria-current=page],nav a:hover{border-color:var(--teal)}
.hero{background:var(--navy) url(../img/hero-harbour-bridge.jpg) center right/cover no-repeat;color:#fff;padding:4.5rem 0 4rem;position:relative}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--navy) 0%,rgba(19,38,74,.94) 40%,rgba(19,38,74,.55) 70%,rgba(19,38,74,.25) 100%)}
.hero .wrap{position:relative}
.hero h1{font-size:clamp(2rem,4.5vw,3rem);line-height:1.15;margin:0 0 1rem}
.hero p{font-size:1.2rem;color:#d3e2ef;max-width:46rem}
.page-hd{background:var(--navy);color:#fff;padding:2.5rem 0}
.page-hd.ph{position:relative;padding:3.5rem 0;background-size:cover;background-position:center;background-repeat:no-repeat}.page-hd.ph::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--navy) 0%,rgba(19,38,74,.92) 45%,rgba(19,38,74,.5) 100%)}.page-hd.ph .wrap{position:relative}
.ph-services{background-image:url(../img/desk-laptop-documents.jpg)}.ph-how{background-image:url(../img/marked-up-report.jpg)}.ph-about{background-image:url(../img/wellington-city.jpg)}.page-hd h1{margin:0}.page-hd p{color:#d3e2ef;margin:.5rem 0 0}
.btn{display:inline-block;background:var(--teal);color:#fff;text-decoration:none;font-weight:700;padding:.75rem 1.4rem;border-radius:6px;border:0;font-size:1rem;cursor:pointer}
.btn:hover{background:#007a80;color:#fff}.btn.alt{background:transparent;border:2px solid #fff;margin-left:.6rem}
section{padding:3rem 0}section.alt{background:var(--bg)}
h2{color:var(--navy);font-size:1.7rem;margin:0 0 1rem}h3{color:var(--navy);margin:0 0 .4rem}
.grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:1.4rem}
.card .price{font-size:1.4rem;font-weight:700;color:var(--navy)}
.muted,small{color:var(--muted)}
table{width:100%;border-collapse:collapse;background:#fff}th,td{text-align:left;padding:.7rem;border-bottom:1px solid var(--line);vertical-align:top}th{background:var(--navy);color:#fff}
.tablewrap{overflow-x:auto}
ol.steps{counter-reset:s;list-style:none;padding:0}ol.steps li{counter-increment:s;position:relative;padding:0 0 1.2rem 3.2rem}
ol.steps li::before{content:counter(s);position:absolute;left:0;top:0;width:2.2rem;height:2.2rem;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:700}
.note{border-left:4px solid var(--teal);background:var(--bg);padding:1rem 1.2rem;border-radius:4px}
.tbc{background:#fff3c4;color:#6b4e00;padding:0 .25rem;border-radius:3px;font-weight:600}
.cta{background:var(--navy);color:#fff;border-radius:10px;padding:2rem}.cta h2{color:#fff}.cta p{color:#d3e2ef}
form label{display:block;font-weight:600;margin:.9rem 0 .3rem}
input,textarea{width:100%;max-width:36rem;font:inherit;padding:.6rem;border:1px solid #9aa3ad;border-radius:6px}
footer{background:#0d1b35;color:#c3d0de;padding:2rem 0;font-size:.92rem;margin-top:0}footer a{color:#fff}
.ft{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem}
.legal h2{font-size:1.3rem;margin-top:2rem}
@media(max-width:640px){.logo img{height:56px}.hero{padding:3rem 0}.hero::before,.page-hd.ph::before{background:rgba(19,38,74,.86)}.page-hd.ph{padding:2.5rem 0}.btn.alt{margin:.6rem 0 0}}
