@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600&display=swap');
:root{color-scheme:light;--ink:#141615;--paper:#fff;--grey:#6a6e6b;--line:#d8dbd8;--gutter:clamp(24px,4.4vw,84px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid currentColor;outline-offset:7px}::selection{background:#b6c5bb;color:#141615}h1,h2,h3,p{margin:0}img{display:block;max-width:100%}.skip{position:absolute;left:24px;top:-100px;z-index:10;padding:16px;background:white;color:black}.skip:focus{top:20px}.header{height:112px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--gutter);color:white;background:var(--ink);gap:32px}.brand{display:block;width:184px;flex-shrink:0}.brand img{width:100%;height:auto}nav{display:flex;align-items:center;gap:42px;font-size:14px}nav>a{padding:12px 0;position:relative}nav>a:after{content:'';height:1px;background:currentColor;position:absolute;left:0;right:100%;bottom:5px;transition:right .25s}nav>a:hover:after{right:0}.nav-contact{margin-left:20px}.nav-contact span{margin-left:24px;font-size:23px}.hero{position:relative;min-height:660px;height:calc(100svh - 112px);max-height:1100px;isolation:isolate;display:flex;flex-direction:column;padding:38px var(--gutter) 24px;color:#fff;background:#252a27;overflow:hidden}.hero-image,.hero-shade{position:absolute;inset:0;width:100%;height:100%;z-index:-2;object-fit:cover;object-position:center 56%}.hero-shade{z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.02) 20%,rgba(0,0,0,.6) 100%)}.hero-top,.hero-foot,.contact-top{display:flex;justify-content:space-between;align-items:center;gap:24px}.eyebrow{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.15em}.hero-content{margin-top:auto;padding-top:115px;padding-bottom:58px}h1{font-size:clamp(52px,6.95vw,118px);line-height:1.04;font-weight:400;letter-spacing:-.065em}.hero-bottom{margin-top:38px;display:flex;align-items:end;justify-content:space-between;gap:30px}.hero-bottom p{font-size:18px;line-height:1.6;color:#e1e4e2}.round-link{width:68px;height:68px;display:flex;align-items:center;justify-content:center;border:1px solid #ffffff80;border-radius:50%;font-size:30px;transition:background .25s,transform .25s}.round-link:hover{background:#ffffff20;transform:translateY(4px)}.hero-foot{padding-top:20px;border-top:1px solid #ffffff55;font-size:12px;letter-spacing:.06em;color:#d6dbd8}.hero-foot span:last-child{letter-spacing:.18em}.section{padding:115px var(--gutter);display:grid;grid-template-columns:25% 1fr;gap:30px}.section-label{display:flex;gap:20px;font-size:14px;line-height:1.5;padding-top:10px}.index{color:var(--grey)}h2{font-size:clamp(38px,4.3vw,70px);line-height:1.1;font-weight:400;letter-spacing:-.055em}.muted{color:#8a8d8a}.approach-copy{margin-top:48px;max-width:770px;display:grid;grid-template-columns:1fr 1fr;gap:44px}.approach-copy p{font-size:17px;line-height:1.75;color:#555b56}.expertise{background:#f0f2ef}.expertise-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:55px}.expertise-heading p{font-size:16px;line-height:1.6;color:#646a65;padding-bottom:5px}.service{display:grid;grid-template-columns:36px 1fr 1fr;gap:24px;border-top:1px solid #c9cec9;padding:30px 0}.service:last-child{padding-bottom:0}.service-number{font-size:12px;color:#737973;padding-top:5px}.service h3{font-size:clamp(19px,1.55vw,26px);font-weight:450;line-height:1.3;letter-spacing:-.025em;max-width:320px}.service p{font-size:16px;color:#59615a;line-height:1.65}.contact{background:var(--ink);color:white;padding:72px var(--gutter) 66px}.contact-top{color:#b7beb8}.contact-main{display:flex;align-items:center;justify-content:space-between;gap:35px;padding:66px 0 48px;border-bottom:1px solid #ffffff40}.contact-main h2{font-size:clamp(64px,10.3vw,172px);letter-spacing:-.065em;line-height:1.06}.contact-arrow{font-size:clamp(70px,9vw,150px);line-height:1;font-weight:400;transition:transform .3s}.contact-main:hover .contact-arrow{transform:translate(9px,-9px)}.contact-bottom{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-top:35px;font-size:17px;line-height:1.65;color:#c3cac4}.contact-bottom a{color:white;border-bottom:1px solid #a9afaa;padding-bottom:5px}footer{padding:36px var(--gutter);background:var(--ink);color:#a7aea8;border-top:1px solid #ffffff24;display:flex;justify-content:space-between;align-items:center;gap:28px;font-size:12px}footer .brand{width:135px}.hero-content{animation:enter .8s ease both}@keyframes enter{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@media(min-width:1800px){.section{grid-template-columns:28% 1fr}.approach-copy{max-width:920px}.service{padding:40px 0}}
@media(max-width:900px){.header{height:96px}.brand{width:160px}nav{gap:26px}.nav-contact{margin-left:0}.hero{height:calc(90svh - 96px);min-height:630px}.section{grid-template-columns:1fr;gap:38px;padding-top:75px;padding-bottom:75px}.approach-copy{max-width:none}.section-label{padding-top:0}.service{grid-template-columns:30px 1fr 1fr;gap:18px}.contact{padding-top:52px}.contact-main{padding-top:58px}.contact-top{font-size:12px}}
@media(max-width:600px){.header{height:86px;gap:20px}.header .brand{width:140px}nav>a:not(.nav-contact){display:none}nav{gap:0}.nav-contact{font-size:13px;white-space:nowrap}.nav-contact span{margin-left:10px;font-size:20px}.hero{height:calc(90svh - 86px);min-height:600px;padding-top:26px}.hero-top .location{display:none}.eyebrow{font-size:12px;letter-spacing:.1em}h1{font-size:clamp(42px,9vw,57px);letter-spacing:-.06em;line-height:1.13}.hero-content{padding-top:90px;padding-bottom:36px}.hero-bottom{margin-top:29px}.hero-bottom p{font-size:16px}.round-link{width:49px;height:49px;flex-shrink:0;font-size:24px}.hero-foot{font-size:12px;letter-spacing:0}.hero-foot span:last-child{display:none}.section{padding-top:60px;padding-bottom:60px;gap:30px}h2{font-size:42px}.approach-copy{grid-template-columns:1fr;gap:22px;margin-top:30px}.approach-copy p{font-size:16px;line-height:1.75}.expertise-heading{display:block;margin-bottom:35px}.expertise-heading p{margin-top:22px}.service{grid-template-columns:26px 1fr;gap:12px;padding:25px 0}.service h3{font-size:22px;max-width:100%}.service p{grid-column:2;font-size:16px}.contact-top{align-items:start}.contact-top span:last-child{display:none}.contact-main{padding:43px 0 30px;gap:10px}.contact-main h2{font-size:clamp(44px,10.2vw,62px)}.contact-arrow{font-size:60px}.contact-bottom{display:block;font-size:16px}.contact-bottom a{display:inline-block;margin-top:25px}.contact{padding-bottom:46px}footer{flex-wrap:wrap;padding-top:30px;padding-bottom:30px;gap:24px}footer .brand{width:120px}footer>span{font-size:12px}footer>span:last-child{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
/* Full-width aerial and construction detail, with matching monochrome contrast. */
.hero-aerial{filter:grayscale(1) contrast(1.55) brightness(.76);object-position:50% 48%}
.hero-shade{background:linear-gradient(90deg,rgba(0,0,0,.15),transparent 85%),linear-gradient(180deg,rgba(0,0,0,.4),rgba(0,0,0,.12) 25%,rgba(0,0,0,.55) 65%,rgba(0,0,0,.78) 100%)}
.approach-image{grid-column:1 / -1;margin:34px 0 0;overflow:hidden;background:#252a27;aspect-ratio:2.6}
.approach-image img{width:100%;height:100%;object-fit:cover;object-position:50% 57%;filter:grayscale(1) contrast(1.65) brightness(.72)}
@media(max-width:900px){.approach-image{margin-top:10px;aspect-ratio:2}}
@media(max-width:600px){.hero-aerial{object-position:56% 48%}.approach-image{aspect-ratio:1.35}.approach-image img{object-position:42% 55%}}

/* Commercial messaging and tightly framed project imagery. */
.hero-aerial{height:125%;object-position:50% 0%}
.hero-top{justify-content:flex-end}
.hero-content{display:flex;align-items:flex-end;gap:24px;padding-top:100px;padding-bottom:58px}
.hero-progress{display:flex;align-items:center;gap:clamp(12px,1.5vw,30px);flex:1;font-size:clamp(25px,2.9vw,56px);line-height:1.2;letter-spacing:-.045em;font-weight:400}
.hero-progress>span:not(.progress-arrow){white-space:nowrap}
.progress-arrow{font-size:.75em;color:#bec6c0;flex-shrink:0}
.hero-content .round-link{flex-shrink:0;width:52px;height:52px;font-size:25px}
.approach-image{position:relative;aspect-ratio:3;isolation:isolate}
.approach-image img{position:absolute;width:180%;max-width:none;height:180%;left:-48%;top:-36%;object-fit:cover;object-position:50% 50%;filter:grayscale(1) contrast(1.12) brightness(1.2)}
.expertise-heading{display:block}
.expertise-heading h2{font-size:clamp(36px,4vw,66px)}
.expertise-heading p{max-width:770px;margin-top:28px;font-size:17px;line-height:1.75}
.contact-bottom p{max-width:650px}
@media(max-width:1100px){.hero-content{display:block}.hero-content .round-link{margin-top:36px;margin-left:auto}.hero-progress{font-size:clamp(22px,3.1vw,34px)}}
@media(max-width:700px){.hero-progress{flex-direction:column;align-items:flex-start;gap:12px;font-size:clamp(28px,5.8vw,40px)}.progress-arrow{transform:rotate(90deg);margin-left:4px}.hero-content{padding-top:65px;padding-bottom:35px}.hero-content .round-link{margin-top:12px}.hero-aerial{object-position:56% 0%}.approach-image{aspect-ratio:1.7}.approach-image img{width:210%;height:160%;left:-60%;top:-28%}.expertise-heading p{font-size:16px}}

/* Restore the original aerial frame; trim the lower strip without stretching. */
.hero{height:calc(100svh - 188px);min-height:584px;max-height:1024px}
.hero-aerial{height:calc(100% + 76px);object-position:50% 48%;filter:grayscale(1) contrast(1.55) brightness(.76)}
.approach{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:clamp(36px,6vw,100px);row-gap:42px;align-items:start}
.approach .section-label{grid-column:1 / -1}
.approach-content{grid-column:2;grid-row:2;align-self:center}
.approach-content h2{font-size:clamp(34px,3.5vw,60px)}
.approach-copy{grid-template-columns:1fr;gap:24px;margin-top:32px;max-width:630px}
.approach-pair{grid-column:1;grid-row:2;display:grid;gap:16px}
.project-photo{margin:0;aspect-ratio:1.95;overflow:hidden;background:#252a27;position:relative}
.project-photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(1)}
.reinforcement-photo img{object-position:50% 63%;filter:grayscale(1) contrast(1.45) brightness(.8)}
.crane-photo img{object-position:50% 66%;filter:grayscale(1) contrast(.85) brightness(.9)}
.project-photo:after{content:'';position:absolute;inset:0;background:rgba(255,255,255,.1);pointer-events:none}
@media(max-width:900px){.hero{height:calc(90svh - 172px);min-height:554px}.approach{grid-template-columns:1fr;gap:32px}.approach-content{grid-column:1;grid-row:2}.approach-pair{grid-column:1;grid-row:3;grid-template-columns:1fr 1fr}.project-photo{aspect-ratio:1.1}.approach-copy{max-width:none}}
@media(max-width:600px){.hero{height:calc(90svh - 162px);min-height:524px}.hero-aerial{object-position:56% 48%}.approach-pair{gap:10px}.project-photo{aspect-ratio:.85}.crane-photo img{object-position:56% 60%}.approach-content h2{font-size:36px}}

/* Markup refinements: restrained progression and unified project photographs. */
.hero-progress{gap:clamp(9px,1.05vw,20px);font-size:clamp(23px,2.45vw,47px);letter-spacing:-.045em}
.progress-arrow{font-size:1.1em;font-weight:400;color:#c1c7c2;line-height:1}
.hero-shade{background:linear-gradient(0deg,rgba(0,0,0,.95),rgba(0,0,0,.66) 11%,transparent 33%),linear-gradient(90deg,rgba(0,0,0,.15),transparent 85%),linear-gradient(180deg,rgba(0,0,0,.4),rgba(0,0,0,.12) 25%,rgba(0,0,0,.55) 65%,rgba(0,0,0,.78) 100%)}
.approach-pair{grid-template-columns:1fr 1fr;gap:12px}
.approach-pair .stormwater-photo,.approach-pair .investigation-photo{aspect-ratio:1.05}
.approach-pair .crane-photo{grid-column:1 / -1;aspect-ratio:2.3}
.stormwater-photo img{object-position:53% 50%;filter:grayscale(1) contrast(.95) brightness(.7)}
.investigation-photo img{object-position:20% 50%;filter:grayscale(1) contrast(.95) brightness(.7)}
.crane-photo img{filter:grayscale(1) contrast(.95) brightness(.7)}
.project-photo:after{background:rgba(255,255,255,.07)}
@media(max-width:1100px){.hero-progress{font-size:clamp(21px,2.65vw,29px)}}
@media(max-width:700px){.hero-progress{font-size:clamp(25px,5vw,35px);gap:9px}.progress-arrow{font-size:1em}.approach-pair{gap:10px}}

/* Contact markup: centred licence and balanced contact details. */
.contact-bottom{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;font-size:1rem;gap:24px}
.contact-bottom .qbcc-licence{text-align:center;font-family:'Organetto-RegularExt','Organetto Ext','DM Sans',Arial,sans-serif;font-size:inherit}
.contact-bottom>a{justify-self:end;overflow-wrap:anywhere}
@media(max-width:1100px){.contact-bottom{grid-template-columns:1fr 1fr}.contact-bottom .qbcc-licence{grid-column:1 / -1;grid-row:2}.contact-bottom>a{grid-column:2;grid-row:1}}
@media(max-width:600px){.contact-bottom{grid-template-columns:minmax(0,1fr);gap:20px}.contact-bottom .qbcc-licence{grid-column:1;grid-row:auto;text-align:left}.contact-bottom>a{grid-column:1;grid-row:auto;justify-self:start;margin-top:0}}

@font-face{font-family:'Organetto-RegularExt';src:url('/assets/Organetto-RegularExt.otf') format('opentype');font-style:normal;font-weight:400;font-display:swap}

/* Markup layout: full investigation frame and stormwater image beneath copy. */
.approach-content{align-self:start}
.approach-pair{grid-template-columns:minmax(0,1fr)}
.approach-pair .investigation-photo{grid-column:1 / -1;aspect-ratio:2.45}
.investigation-photo img{position:absolute;width:110%;max-width:none;height:auto;left:-5%;top:-14%;object-fit:contain;object-position:center}
.approach-content .stormwater-photo{margin-top:32px;aspect-ratio:1.95;width:100%}
@media(max-width:600px){.approach-content .stormwater-photo{margin-top:26px;aspect-ratio:1.35}}
