    :root { --ink:#102a43; --paper:#f7fbff; --clay:#9c5130; --sun:#78c8e8; --pine:#174e75; --mist:#e5f3f9; }
    * { box-sizing:border-box; }
    html { scroll-behavior:smooth; }
    body { margin:0; color:var(--ink); background:var(--paper); font-family:Manrope,Arial,sans-serif; }
    a { color:inherit; text-decoration:none; }
    .wrap { width:min(1180px, calc(100% - 40px)); margin:auto; }
    .topbar { background:var(--ink); color:#f8f6ef; padding:10px 0; font:12px 'DM Mono',monospace; letter-spacing:.04em; }
    .topbar .wrap { display:flex; justify-content:space-between; gap:16px; }
    header { padding:22px 0; position:absolute; inset:34px 0 auto; z-index:2; }
    nav { display:flex; justify-content:space-between; align-items:center; }
    .brand { display:flex; align-items:center; gap:11px; font-size:18px; font-weight:800; letter-spacing:-.06em; }
    .brand-mark { width:30px; height:30px; border-radius:50% 50% 50% 4px; background:var(--clay); display:grid; place-items:center; color:white; font-size:18px; transform:rotate(-45deg); }
    .brand-mark span { transform:rotate(45deg); }
    .nav-links { display:flex; align-items:center; gap:30px; font-size:14px; font-weight:700; }
    .nav-links a:not(.button):hover { color:var(--clay); }
    .button { display:inline-flex; justify-content:center; align-items:center; min-height:46px; border-radius:5px; padding:0 19px; background:var(--clay); color:white; font-size:13px; font-weight:800; transition:.2s; }
    .button:hover { background:#7f4027; transform:translateY(-2px); }
    .menu { display:none; background:none; border:0; font:700 14px Manrope; cursor:pointer; }
    .hero { min-height:720px; padding:168px 0 68px; overflow:hidden; background:linear-gradient(110deg,#edf8fc 0%,#edf8fc 56%,#d9eff8 56%); }
    .hero-grid { display:grid; grid-template-columns:1.05fr .95fr; align-items:center; min-height:484px; }
    .eyebrow { color:var(--clay); font:12px 'DM Mono',monospace; text-transform:uppercase; letter-spacing:.11em; }
    h1 { max-width:680px; margin:17px 0 22px; font-size:clamp(44px,6vw,78px); line-height:1.02; letter-spacing:-.075em; }
    .hero p { max-width:500px; margin:0 0 30px; line-height:1.7; font-size:17px; }
    .hero-actions { display:flex; gap:12px; flex-wrap:wrap; }
    .button.alt { color:var(--ink); background:transparent; border:1px solid #b1bbb0; }
    .button.alt:hover { background:white; }
    .hero-art { position:relative; height:480px; display:grid; place-items:center; }
    .hero-art:before { content:""; width:410px; height:410px; border-radius:50%; position:absolute; background:var(--sun); opacity:.92; }
    .hero-art:after { content:"Canterbury, NZ"; position:absolute; bottom:4px; right:5%; color:var(--pine); font:12px 'DM Mono',monospace; letter-spacing:.08em; }
    .hero-art img { z-index:1; height:510px; max-width:100%; object-fit:contain; filter:drop-shadow(0 16px 17px rgba(32,37,31,.16)); }
    .trust { background:var(--pine); color:white; padding:23px 0; }
    .trust .wrap { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
    .trust-item { display:flex; align-items:center; justify-content:center; gap:10px; font-size:13px; font-weight:700; }
    .tick { width:20px; height:20px; display:grid; place-items:center; background:#dff5ff; color:var(--pine); border-radius:50%; font-size:12px; }
    section { padding:100px 0; }
    .section-head { display:flex; justify-content:space-between; gap:30px; align-items:end; margin-bottom:42px; }
    h2 { max-width:620px; margin:9px 0 0; font-size:clamp(32px,4vw,50px); line-height:1.08; letter-spacing:-.06em; }
    .section-head p { max-width:360px; margin:0; font-size:15px; line-height:1.65; }
    .services { background:white; }
    .service-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
    .service { min-height:300px; padding:30px; display:flex; flex-direction:column; justify-content:end; background:var(--mist); border-radius:6px; }
    .service:nth-child(2) { background:#d8edf7; }
    .service-icon { margin-bottom:auto; width:46px; height:46px; display:grid; place-items:center; background:rgba(255,255,255,.7); border-radius:50%; font-size:22px; }
    h3 { margin:18px 0 9px; font-size:25px; letter-spacing:-.05em; }
    .service p { max-width:400px; margin:0; line-height:1.65; font-size:14px; }
    .process-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:36px; }
    .step-no { color:var(--clay); font:13px 'DM Mono',monospace; }
    .step h3 { margin-top:15px; }
    .step p { margin:0; font-size:14px; line-height:1.7; }
    .quote { background:var(--clay); color:white; }
    .quote .wrap { display:grid; grid-template-columns:1fr auto; gap:50px; align-items:center; }
    .quote h2 { max-width:700px; }
    .quote .eyebrow { color:#ffd18b; }
    .quote .button { background:#fff; color:var(--ink); white-space:nowrap; }
    .quote .button:hover { background:#f0e4d5; }
    footer { padding:46px 0 25px; background:var(--ink); color:#f7f5ed; }
    .footer-main { display:flex; justify-content:space-between; align-items:start; gap:25px; padding-bottom:36px; }
    .footer-main p { max-width:310px; color:#c7cbc2; font-size:14px; line-height:1.6; }
    .footer-contact { display:flex; gap:34px; font-size:14px; font-weight:700; }
    .footer-contact a:hover { color:#eab04a; }
    .footer-bottom { border-top:1px solid #444a42; padding-top:20px; display:flex; justify-content:space-between; color:#9ea49b; font:11px 'DM Mono',monospace; }
    @media (max-width:720px) {
      .topbar .wrap { font-size:10px; } header { position:relative; inset:auto; padding:18px 0; } .nav-links { display:none; } .menu { display:block; }
      .nav-links.open { display:flex; position:absolute; left:20px; right:20px; top:67px; padding:22px; background:white; flex-direction:column; align-items:flex-start; box-shadow:0 10px 24px #0002; }
      .hero { padding:65px 0 20px; background:#edf8fc; min-height:auto; } .hero-grid { grid-template-columns:1fr; } .hero-art { height:350px; margin-top:22px; } .hero-art:before { width:290px; height:290px; } .hero-art img { height:375px; }
      .trust .wrap, .process-grid { grid-template-columns:1fr; } .trust .wrap { gap:15px; } section { padding:70px 0; } .section-head, .quote .wrap { display:block; } .section-head p { margin-top:18px; } .service-grid { grid-template-columns:1fr; } .service { min-height:230px; } .process-grid { gap:32px; } .quote .button { margin-top:28px; } .footer-main, .footer-bottom { display:block; } .footer-contact { margin-top:24px; flex-direction:column; gap:10px; } .footer-bottom { line-height:2; margin-top:30px; }
    }

