@font-face { font-family:'Work Sans'; font-style:normal; font-weight:400 800; font-display:swap; src:url('../fonts/work-sans-latin-ext.woff2') format('woff2'); unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family:'Work Sans'; font-style:normal; font-weight:400 800; font-display:swap; src:url('../fonts/work-sans-latin.woff2') format('woff2'); unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
:root { --cyan:#00A9E0; --navy:#1B365D; --navy-deep:#12233c; --orange:#FF9E1B; --ink:#3a4553; --mist:#f5f7f9; --rule:#dde3e9; --pad:clamp(24px, 5vw, 72px); }
*, *::before, *::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:20px; }
body { margin:0; font-family:'Work Sans', system-ui, sans-serif; color:var(--ink); background:#fff; -webkit-font-smoothing:antialiased; }
img { max-width:100%; display:block; }
a { color:var(--cyan); text-decoration:none; }
a:hover { color:var(--orange); }
h1, h2, h3 { color:var(--navy); margin:0; }
p { margin:0; }
.wrap { max-width:1440px; margin:0 auto; padding:0 var(--pad); }
.eyebrow { color:var(--cyan); font-size:13px; font-weight:600; letter-spacing:3px; text-transform:uppercase; margin-bottom:16px; }
.h2 { font-size:clamp(30px, 3.2vw, 40px); font-weight:700; line-height:1.15; letter-spacing:-0.5px; text-wrap:balance; }
.body { font-size:clamp(16px, 1.3vw, 18px); line-height:1.75; }
.stack { display:flex; flex-direction:column; gap:22px; }
.section { padding:clamp(64px, 8vw, 110px) 0; }
.split { display:grid; grid-template-columns:minmax(0, 380px) minmax(0, 1fr); gap:clamp(32px, 6vw, 80px); }
.split .lead-pad { padding-top:44px; }

/* Hero */
.hero { position:relative; min-height:min(780px, 100svh); background:var(--navy-deep); overflow:hidden; display:flex; flex-direction:column; }
.hero > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.hero::after { content:""; position:absolute; inset:0; background:linear-gradient(100deg, rgba(15,29,50,0.94) 0%, rgba(15,29,50,0.82) 38%, rgba(15,29,50,0.25) 75%, rgba(15,29,50,0.1) 100%); z-index:0; }
.hero > .wrap { position:relative; z-index:1; width:100%; }
.hero > .wrap.topbar { z-index:20; }
.topbar { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-top:28px; padding-bottom:28px; }
.brand { display:flex; align-items:center; gap:14px; min-height:48px; }
.brand img { height:46px; width:auto; }
.brand span { font-weight:800; font-size:18px; letter-spacing:1px; line-height:1.1; color:#fff; }
.brand span b { color:var(--cyan); font-weight:800; }
nav { display:flex; gap:32px; align-items:center; }
.nav-links { display:flex; gap:32px; align-items:center; }
nav a { color:rgba(255,255,255,0.85); font-size:15px; font-weight:500; }
nav a:hover { color:#fff; }
.btn { background:var(--cyan); color:#fff !important; font-size:15px; font-weight:600; padding:10px 22px; border-radius:3px; white-space:nowrap; }
.btn:hover { background:#0096c7; }
.hero-copy { max-width:760px; padding-top:clamp(60px, 10vw, 140px); padding-bottom:80px; }
.dash { width:56px; height:5px; background:var(--orange); margin-bottom:30px; }
.hero h1 { color:#fff; font-size:clamp(36px, 4.4vw, 60px); line-height:1.1; font-weight:700; letter-spacing:-1px; text-wrap:balance; }
.hero-copy p { color:rgba(255,255,255,0.82); font-size:clamp(17px, 1.5vw, 20px); line-height:1.6; max-width:560px; margin-top:28px; }

/* Site advisory */
.advisory { display:grid; grid-template-columns:minmax(0, 1.25fr) minmax(0, 1fr); background:var(--navy); }
.advisory-copy { padding:clamp(64px, 7vw, 100px) var(--pad); display:flex; flex-direction:column; gap:28px; max-width:860px; margin-left:auto; }
.advisory h2 { color:#fff; font-size:clamp(28px, 3vw, 40px); line-height:1.18; }
.advisory .body { color:rgba(255,255,255,0.86); font-size:17px; }
.advisory img { width:100%; height:100%; object-fit:cover; min-height:420px; }

/* Development focus */
.focus { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 620px); gap:clamp(40px, 5vw, 72px); align-items:center; }
.focus h2 { margin-bottom:48px; }
.focus img { width:100%; height:auto; }
.market { border-top:1px solid var(--rule); padding-top:28px; }
.market + .market { margin-top:36px; }
.market h3 { display:flex; align-items:center; gap:12px; font-size:26px; font-weight:700; margin-bottom:12px; }
.market h3::before { content:""; width:12px; height:12px; border-radius:50%; background:var(--orange); flex:none; }
.market.au h3::before { background:var(--cyan); }
.market p { font-size:17px; line-height:1.7; }

/* Approach */
.approach { background:var(--mist); }
.grid-3 { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:clamp(32px, 4vw, 56px); margin-top:44px; }
.num { color:var(--orange); font-size:15px; font-weight:700; margin-bottom:14px; }
.card h3 { font-size:24px; font-weight:700; line-height:1.25; margin-bottom:16px; }
.card p { font-size:16px; line-height:1.7; }

/* Who we are */
.who { display:grid; grid-template-columns:minmax(0, 1.1fr) minmax(0, 1fr); gap:clamp(40px, 6vw, 80px); align-items:start; }
.who h2 { font-size:clamp(28px, 3vw, 38px); line-height:1.2; margin-bottom:28px; }
.who .body { font-size:17px; }
.stats { display:flex; gap:56px; margin-top:40px; flex-wrap:wrap; }
.stat b { display:block; color:var(--orange); font-size:44px; font-weight:800; }
.stat span { font-size:15px; }
.team { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:22px; padding-top:40px; }
.person { display:flex; flex-direction:column; gap:12px; }
.headshot { aspect-ratio:4 / 5; width:100%; height:auto; object-fit:cover; border-radius:2px; background:#e4e8ec; }
.headshot-placeholder { aspect-ratio:4 / 5; border-radius:2px; background:#e4e8ec; display:flex; align-items:center; justify-content:center; color:#9aa6b2; font-size:28px; font-weight:700; letter-spacing:1px; }
.person h3 { font-size:16px; font-weight:700; }
.person p { color:var(--cyan); font-size:13.5px; font-weight:500; line-height:1.4; }
.how { margin-top:96px; background:var(--mist); padding:clamp(36px, 5vw, 64px); display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:clamp(28px, 5vw, 72px); }
.how .statement { color:var(--navy); font-size:clamp(21px, 2vw, 26px); font-weight:600; line-height:1.4; text-wrap:pretty; }
.how .body { font-size:17px; padding-top:36px; }
.values { margin-top:96px; }
.grid-4 { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:28px; margin-top:32px; }
.value { border-top:4px solid var(--orange); padding-top:28px; }
.value h3 { font-size:22px; font-weight:700; line-height:1.25; margin-bottom:14px; }
.value p { font-size:16px; line-height:1.7; }

/* Contact */
.contact { background:var(--navy-deep); padding:clamp(64px, 8vw, 100px) 0 60px; }
.contact-grid { display:grid; grid-template-columns:minmax(0, 420px) minmax(0, 1fr); gap:clamp(40px, 6vw, 80px); align-items:start; }
.contact h2 { color:#fff; font-size:clamp(34px, 3.4vw, 44px); letter-spacing:-0.5px; margin-bottom:28px; }
.contact address { font-style:normal; color:rgba(255,255,255,0.84); font-size:16px; line-height:1.8; }
.enquire { padding-top:44px; display:flex; flex-direction:column; align-items:flex-start; gap:28px; max-width:520px; }
.enquire p { color:rgba(255,255,255,0.84); font-size:18px; line-height:1.7; }
.btn-lg { font-size:16px; padding:15px 34px; }
.legal { margin-top:80px; border-top:1px solid rgba(255,255,255,0.15); padding-top:24px; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; color:rgba(255,255,255,0.55); font-size:13px; }

/* Responsive */
@media (max-width: 1100px) {
  .focus, .who, .contact-grid { grid-template-columns:1fr; }
  .focus img { max-width:620px; }
  .grid-4 { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .team { max-width:640px; padding-top:0; }
}
@media (max-width: 860px) {
  .split, .advisory, .how { grid-template-columns:1fr; }
  .split .lead-pad, .how .body { padding-top:0; }
  .advisory-copy { margin-left:0; }
  .advisory img { min-height:280px; max-height:420px; }
  .grid-3 { grid-template-columns:1fr; }
  .enquire { padding-top:0; }
}
@media (max-width: 560px) {
  .brand img { height:36px; }
  .brand span { font-size:15px; }
  .btn { padding:9px 16px; font-size:14px; }
  .grid-4 { grid-template-columns:1fr; }
  .team { grid-template-columns:repeat(3, minmax(0, 1fr)); gap:12px; }
  .headshot-placeholder { font-size:20px; }
  .how, .values { margin-top:64px; }
}
.advisory-copy .eyebrow { margin:0; }
.legal .li { color:rgba(255,255,255,0.75); font-weight:600; }
.legal .li:hover { color:var(--cyan); }

/* Mobile menu */
.menu-toggle { display:none; align-items:center; justify-content:center; width:44px; height:44px; padding:0; background:transparent; border:1px solid rgba(255,255,255,0.35); border-radius:3px; cursor:pointer; }
.menu-toggle span, .menu-toggle span::before, .menu-toggle span::after { display:block; width:20px; height:2px; background:#fff; position:relative; transition:transform .2s, background .2s; }
.menu-toggle span::before, .menu-toggle span::after { content:""; position:absolute; left:0; }
.menu-toggle span::before { top:-6px; } .menu-toggle span::after { top:6px; }
.menu-open .menu-toggle span { background:transparent; }
.menu-open .menu-toggle span::before { transform:translateY(6px) rotate(45deg); }
.menu-open .menu-toggle span::after { transform:translateY(-6px) rotate(-45deg); }
.nav-actions { display:flex; align-items:center; gap:12px; }
.btn { min-height:44px; display:inline-flex; align-items:center; }
.legal .li { display:inline-flex; align-items:center; min-height:44px; margin:-14px 0; }
@media (max-width: 1100px) {
  .menu-toggle { display:inline-flex; }
  .topbar { position:relative; }
  nav .nav-links { display:none; position:absolute; top:100%; right:var(--pad); width:min(320px, calc(100% - 2 * var(--pad))); z-index:10; flex-direction:column; align-items:stretch; gap:0; background:#12233c; border:1px solid rgba(255,255,255,0.12); box-shadow:0 12px 32px rgba(0,0,0,0.35); padding:8px 0; }
  .menu-open nav .nav-links { display:flex; }
  nav .nav-links a { display:flex; align-items:center; min-height:48px; padding:0 20px; font-size:16px; }
  nav .nav-links a + a { border-top:1px solid rgba(255,255,255,0.08); }
}
@media (max-width: 560px) {
  .btn { padding:0 16px; }
  .btn-lg { padding:0 28px; font-size:16px; min-height:48px; }
  .stats { gap:20px 40px; }
  .person h3 { font-size:14.5px; }
  .person p { font-size:13px; }
  .contact h2 { font-size:32px; }
}