:root{--ink:#333333;--green:#cccd34;--light:#f6f6eb;--line:#dedec9}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:#fff;color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}header{padding:24px 5%;display:flex;justify-content:space-between;align-items:center;background:white;border-bottom:1px solid var(--line)}.brand{font-size:30px;line-height:1;font-weight:700;letter-spacing:-1.5px}.brand span{color:var(--green);font-weight:400}.brand small{display:block;font-size:12px;letter-spacing:5px;font-weight:400;margin-top:8px}nav{display:flex;gap:32px;font-size:14px}nav a:hover{color:var(--green)}.hero-copy{padding:70px 5% 38px}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:700;color:var(--green);margin:0 0 28px}h1{font-size:clamp(38px,5.6vw,86px);font-weight:400;line-height:1.08;letter-spacing:-3px;margin:0}h1 em{font-style:normal;color:var(--green)}.hero-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:30px;font-size:14px}.button{border:1px solid var(--ink);padding:12px 24px;white-space:nowrap}.button:hover{background:var(--ink);color:white}.hero-image{margin:0;position:relative}.hero-image img{display:block;width:100%;height:clamp(300px,48vw,640px);object-fit:cover}.hero-image figcaption{position:absolute;bottom:20px;left:5%;background:#fff;padding:7px 14px;font-size:12px}.section{padding:96px 5%}.section-heading{display:grid;grid-template-columns:1fr 2fr 1.3fr;gap:45px;align-items:start;margin-bottom:45px}.section-heading h2,h2{font-size:clamp(32px,3.5vw,54px);font-weight:400;line-height:1.12;letter-spacing:-1.5px;margin:0}.section-heading>p:last-child{margin:0;color:#5a635f}.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:30px}.filters button{font-size:14px;border:1px solid var(--line);border-radius:0;background:white;color:var(--ink);padding:9px 20px}.filters button.active{background:var(--green);color:white;border-color:var(--green)}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 26px}.project-card{background:none;border:0;padding:0;text-align:left;color:inherit;width:100%}.project-card img{width:100%;aspect-ratio:1.48;object-fit:cover;display:block;transition:filter .25s}.project-card:hover img{filter:brightness(.88)}.project-card .meta{display:flex;justify-content:space-between;gap:12px;margin-top:16px}.project-card h3{margin:0;font-size:22px;font-weight:400;line-height:1.2}.project-card p{margin:5px 0 0;font-size:14px;color:#66716a}.project-card .number{font-size:12px;color:var(--green)}.practice{background:var(--light)}.practice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10%}.practice-grid p{margin-top:0;max-width:650px}.practice-grid .lead{font-size:24px;line-height:1.45}.credential{padding-top:25px;border-top:1px solid var(--line);font-size:14px}.services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px}.services article{border-top:1px solid var(--line);padding-top:24px}.services span{color:var(--green);font-size:12px}.services h3{font-size:24px;font-weight:400}.services p{color:#5a635f}.registrations{border-top:1px solid var(--line);margin-top:50px;padding-top:30px;display:flex;justify-content:space-between;gap:20px;font-size:14px}.contact{background:var(--green);color:white}.contact .eyebrow{color:#d9e7d9}.contact h2{font-size:clamp(42px,6vw,88px)}.contact-grid{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:30px;margin-top:45px}.contact-grid a{display:block;overflow-wrap:anywhere;border-bottom:1px solid #ffffff55;padding:8px 0}.contact-grid p{margin:8px 0}footer{padding:30px 5%;display:flex;justify-content:space-between;font-size:12px}dialog{border:0;width:min(1100px,95vw);max-height:94vh;padding:40px;color:var(--ink)}dialog::backdrop{background:#142018d9}.close{display:block;margin-left:auto;border:0;background:none;padding:8px}.gallery-heading{max-width:750px;margin:15px 0 25px}.gallery-heading .eyebrow{margin-bottom:12px}.gallery-heading h2{font-size:38px}.viewer{display:grid;grid-template-columns:auto 1fr auto;gap:15px;align-items:center}.viewer img{width:100%;height:min(56vh,650px);object-fit:contain;background:var(--light)}.viewer button{border:1px solid var(--line);background:white;padding:10px;font-size:14px}#image-count{text-align:center;font-size:14px}#thumbnails{display:flex;gap:10px;overflow:auto;padding-bottom:10px}#thumbnails button{padding:2px;border:2px solid transparent;background:none;flex-shrink:0}#thumbnails button.current{border-color:var(--green)}#thumbnails img{width:90px;height:65px;object-fit:cover;display:block}:focus-visible{outline:3px solid #a2b889;outline-offset:4px}@media(max-width:750px){header{padding:22px 5%;align-items:center}.brand{font-size:24px}nav{gap:12px;font-size:12px}.brand small{font-size:10px;letter-spacing:3px}.hero-copy{padding-top:50px}h1{letter-spacing:-1.5px}.hero-bottom{align-items:flex-start;flex-direction:column}.hero-image img{height:370px}.section{padding:65px 5%}.section-heading{grid-template-columns:1fr;gap:12px}.section-heading .eyebrow{margin-bottom:8px}.section-heading h2 br{display:none}.project-grid{gap:32px;grid-template-columns:1fr}.practice-grid,.services,.contact-grid{grid-template-columns:1fr;gap:28px}.practice-grid h2{margin-bottom:15px}.registrations{flex-wrap:wrap;justify-content:flex-start}.contact-grid{margin-top:28px}dialog{padding:18px}.viewer{gap:6px}.viewer button{font-size:12px;padding:8px 5px}.gallery-heading h2{font-size:30px}footer{gap:20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Colours taken directly from the supplied Greenspace logo. */
.brand{display:block;line-height:0;flex-shrink:0}.brand img{display:block;width:120px;height:120px;object-fit:contain}header{padding-top:14px;padding-bottom:14px}nav a:hover{color:var(--ink);text-decoration:underline;text-decoration-color:var(--green);text-decoration-thickness:3px;text-underline-offset:6px}.eyebrow,.services span,.project-card .number{color:var(--ink)}h1 em{color:var(--ink);background:linear-gradient(transparent 90%,var(--green) 90%);box-decoration-break:clone;-webkit-box-decoration-break:clone}.filters button.active{color:var(--ink)}.contact{color:var(--ink)}.contact .eyebrow{color:var(--ink)}.contact-grid a{border-bottom-color:#33333355}.hero-image figcaption{border-left:5px solid var(--green)}.registrations{border-top-color:var(--green)}:focus-visible{outline-color:var(--ink)}@media(max-width:750px){.brand img{width:90px;height:90px}header{gap:16px}nav{flex-wrap:wrap;justify-content:flex-end;gap:8px 14px;font-size:14px}h1 em{background:linear-gradient(transparent 92%,var(--green) 92%)}}

.text-project{min-height:160px;border-top:1px solid #b6b6b6}.text-project .meta{padding:36px 20px}.viewer[hidden]{display:none}

.brand-location{display:block;margin-top:12px;font-size:12px;line-height:1.4;font-weight:700;letter-spacing:1.2px;color:var(--ink)}.brand{max-width:260px}@media(max-width:750px){.brand-location{max-width:145px;font-size:12px;letter-spacing:.6px}}

/* Landing photograph and headline share one full-width surface. */
.hero{position:relative;isolation:isolate;background:#252525}.hero-image{position:relative;z-index:0}.hero-image img{height:clamp(520px,50vw,760px)}.hero-image::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.65),rgba(0,0,0,.28) 65%,rgba(0,0,0,.05));pointer-events:none}.hero-copy{position:absolute;z-index:2;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:60px 5% 90px;color:white}.hero h1{color:white;max-width:1200px}.hero h1 em{color:white;background:none}.hero-bottom{margin-top:32px}.hero .button{color:white;border-color:white;background:#0002}.hero .button:hover{background:white;color:var(--ink)}.hero-image figcaption{z-index:3;color:var(--ink)}@media(max-width:750px){.hero-image img{height:560px}.hero-copy{padding:40px 5% 85px}.hero h1{font-size:clamp(34px,7vw,52px);line-height:1.15;letter-spacing:-1px}.hero-bottom{margin-top:26px}}

/* Compact portfolio grid. */
.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 22px}.project-card h3{font-size:20px}.project-card .meta{margin-top:12px}.project-card p{line-height:1.45}.text-project{min-height:130px}.text-project .meta{padding:24px 12px}@media(max-width:1000px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.project-grid{grid-template-columns:1fr;gap:28px}}

/* Five-column desktop portfolio. */
.project-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:24px 16px}.project-card h3{font-size:17px;line-height:1.25}.project-card .meta{margin-top:10px;gap:8px}.project-card p{font-size:14px}.text-project .meta{padding:18px 8px}@media(max-width:1100px){.project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:750px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:450px){.project-grid{grid-template-columns:1fr}}

/* Half-height project thumbnail frames; full gallery images retain their size. */
.project-card img{height:304px;aspect-ratio:auto;object-fit:cover}

/* Place landing copy near the top of the photograph. */
.hero-copy{justify-content:flex-start;padding-top:60px}@media(max-width:750px){.hero-copy{padding-top:36px}}

/* Portfolio controls sit immediately below the landing photograph. */
#work{padding-top:30px} [hidden]{display:none!important} #references-panel>h2{margin-bottom:30px}.document-group{font-size:22px;font-weight:400;margin:32px 0 18px}.document-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.document-card,.award{border:1px solid var(--line);padding:24px}.document-card:hover{border-color:var(--ink)}.document-card h4,.award h4{font-size:20px;font-weight:400;margin:0 0 12px}.document-card p,.award p{margin:0 0 20px;color:#66716a;font-size:14px}.document-card span{font-size:14px;border-bottom:2px solid var(--green)}@media(max-width:750px){#work{padding-top:24px}.document-grid{grid-template-columns:1fr}}

.founder-profile{display:grid;grid-template-columns:minmax(220px,340px) 1fr;gap:60px;align-items:start;margin-top:60px;padding-top:50px;border-top:1px solid var(--line)}.founder-profile>img{width:100%;height:auto;display:block}.founder-profile>div{max-width:720px}.founder-profile .eyebrow{margin-bottom:14px}.founder-profile h3{font-size:36px;font-weight:400;line-height:1.15;margin:0 0 14px}.founder-role{font-size:14px;color:#66716a}@media(max-width:750px){.founder-profile{grid-template-columns:1fr;gap:28px;margin-top:35px;padding-top:35px}.founder-profile>img{max-width:340px}}

/* Unified practice and founder profile; portrait at 40% of its former 340px width. */
.practice-unified{display:grid;grid-template-columns:136px minmax(0,1fr);gap:40px;align-items:start}.practice-portrait{display:block;width:136px;max-width:100%;height:auto}.practice-details{max-width:1000px}.practice-details h2{margin-bottom:24px}.practice-details .lead{font-size:24px;line-height:1.45;margin-top:0}.practice-details .credential{padding-top:18px;margin-top:24px}@media(max-width:750px){.practice-unified{grid-template-columns:1fr;gap:24px}.practice-details .lead{font-size:20px}}

/* Document images match the founder portrait display dimensions. */
.document-grid{display:flex;flex-wrap:wrap;gap:32px}.document-card{display:block;width:220px;max-width:100%;padding:0;border:0}.document-preview{display:block;width:136px;height:calc(136px * 4 / 3);object-fit:contain;object-position:center;background:white;margin-bottom:16px;border:1px solid var(--line)}.document-card:hover .document-preview{border-color:var(--ink)}.document-card h4{font-size:18px}.document-card p{margin-bottom:12px}

header nav{flex-wrap:wrap;justify-content:flex-end;align-items:center}

/* Two location lines share the exact width of the logo. */
.brand{width:120px;max-width:120px}.brand-location{width:100%;max-width:none;margin-top:12px;letter-spacing:0;font-size:12px;line-height:1.5}.brand-location .location-line{display:flex;justify-content:space-between;width:100%;white-space:nowrap}.brand-location .location-line span{letter-spacing:0}@media(max-width:750px){.brand{width:90px;max-width:90px}.brand-location{font-size:10px;letter-spacing:0;margin-top:10px}}

/* Trim the distracting bottom corner from the founder portrait. */
.practice-portrait{height:170px;object-fit:cover;object-position:center top}
/* Approved Practice presentation. */
#practice{background:#000;color:#fff}
#practice h2,#practice p{color:#fff}
#practice .practice-details p:not(.credential){text-align:justify;text-align-last:left}
#practice .practice-details .credential{color:var(--green);font-size:13px;line-height:1.6;border-top:1px solid var(--green)}
.founder-disclosure{margin-top:8px;color:#fff}
.founder-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;cursor:pointer;list-style:none;padding:10px 0;color:#fff;font-size:15px;line-height:1.5;letter-spacing:.02em}
.founder-disclosure>summary::-webkit-details-marker{display:none}
.founder-disclosure>summary::after{content:"";flex:0 0 8px;width:8px;height:8px;margin-right:3px;border:solid var(--green);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);transition:transform .18s ease}
.founder-disclosure[open]>summary::after{transform:rotate(225deg)}
.founder-disclosure[open]>.founder-biography{padding-top:8px}
@media(prefers-reduced-motion:reduce){.founder-disclosure>summary::after{transition:none}}
.document-preview{height:170px}

/* Force the location lockup to span the logo width on every page. */
header > .brand{display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;width:120px;max-width:120px;line-height:normal}
header > .brand img{display:block;width:120px;height:120px;max-width:100%;object-fit:contain;align-self:flex-start!important}
header > .brand .brand-location{display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;width:100%;max-width:none;margin:12px 0 0;padding:0;text-align:left!important;line-height:1.5}
header > .brand .location-line{display:flex!important;justify-content:space-between!important;align-items:baseline;width:100%;margin:0;padding:0;text-align:left!important;white-space:nowrap}
header > .brand .location-line > span{flex:0 0 auto;letter-spacing:0}
@media(max-width:750px){header > .brand{width:90px;max-width:90px}header > .brand img{width:90px;height:90px}header > .brand .brand-location{margin-top:10px;font-size:10px;letter-spacing:0}}

/* Discreet social profile links. */
.social-links{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;vertical-align:middle}.social-links a{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;color:inherit;text-decoration:none;line-height:1}.social-links svg{display:block;width:18px;height:18px}.social-links a:hover{color:#777916}.social-links a:focus-visible{outline:2px solid currentColor;outline-offset:2px}footer .social-links{margin-top:-10px;margin-bottom:-10px}.contact-social{margin-top:12px}.contact-social .social-links{margin-left:-9px}@media(max-width:750px){footer{flex-wrap:wrap}.social-links a{width:44px;height:44px}footer .social-links{margin-top:-14px;margin-bottom:-14px}.contact-social .social-links{margin-left:-13px}}

/* Full-composition project galleries and header controls. */
#gallery{background:#fff;width:min(1440px,95vw);padding:26px 32px;max-height:94vh;overflow:auto}
.viewer{position:relative;display:block;background:#fff}
.viewer img{display:block;width:auto;height:auto;max-width:100%;max-height:48vh;margin:0 auto;object-fit:contain;background:var(--light);touch-action:pan-y}
#image-count{margin:6px 0 0;font-size:12px;line-height:1.5;color:#66716a}
#thumbnails{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;padding:8px 0 4px;scrollbar-width:thin}
#thumbnails button{display:block;min-width:48px;min-height:44px;padding:2px;border:2px solid transparent;background:none;flex:0 0 auto}
#thumbnails button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
#thumbnails button.current{border-color:var(--green)}
#thumbnails img{display:block;width:68px;height:48px;object-fit:cover}
.project-title-row{display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%}
.project-title-row h1,.project-title-row h2{min-width:0;margin:0}
.project-controls{display:flex;align-items:center;gap:16px;flex:0 0 auto}
.project-controls .close{display:inline-flex;align-items:center;justify-content:center;margin:0;padding:8px;min-height:44px;white-space:nowrap;font-size:14px}
.project-controls .close:focus-visible{outline:2px solid currentColor;outline-offset:2px}
header nav .nav-social{margin-left:8px;gap:0;align-self:center;white-space:nowrap}
.nav-social svg,.project-social svg{width:16px;height:16px}
.nav-social a,.project-social a{color:var(--ink)}
@media(max-width:1100px){body>header{gap:24px}body>header>nav{column-gap:18px;row-gap:8px}}
@media(max-width:750px){body>header{align-items:flex-start}body>header>nav{column-gap:14px;row-gap:4px}.project-title-row{flex-wrap:wrap;gap:12px}.project-controls{margin-left:auto;gap:8px}.project-controls .close{padding:8px}#gallery{padding:14px;max-height:94vh}.viewer img{max-height:45vh;max-height:45svh}#thumbnails{gap:6px}#thumbnails img{width:62px;height:44px}}

.navigation-tail{display:inline-flex;align-items:center;gap:32px;white-space:nowrap}.navigation-tail .nav-social{margin-left:0}.nav-social a:hover,.project-social a:hover{color:var(--ink);opacity:.7}@media(max-width:1100px){.navigation-tail{gap:24px}}@media(max-width:750px){.navigation-tail{gap:18px}}

/* Restrained enquiry call to action. */
.talk-to-us{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 14px;border:1px solid var(--ink);background:transparent;color:var(--ink);font-size:12px;letter-spacing:.5px;line-height:1.2;white-space:nowrap}
header nav .talk-to-us:hover,.talk-to-us:hover{background:var(--ink);color:#fff}
.talk-to-us:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.navigation-tail{gap:20px}.navigation-tail .talk-to-us{margin-left:4px}
.project-controls{gap:12px}
@media(max-width:750px){.talk-to-us{min-height:44px;padding:8px 10px;font-size:11px}.navigation-tail{gap:10px}.project-controls{gap:4px}.project-controls .social-links a{width:36px;min-height:44px}.project-controls .close{font-size:12px;padding:8px 4px}}

@media(max-width:600px){body>header{flex-wrap:wrap;gap:16px}body>header>nav{flex:1 0 100%;justify-content:flex-start;max-width:100%}.navigation-tail{max-width:100%;gap:10px}}


/* The original hero photo and caption also render before JavaScript loads. */
.hero-image img{color:#fff}
.hero-image figcaption:empty{display:none}
.hero-copy,.hero-copy h1,.hero-copy h1 em{color:#fff}

/* Official SACAP QR: preserve its modules and four-module white scanning margin. */
.privyseal-qr{display:inline-flex;flex:0 0 80px;width:80px;height:80px;align-items:center;justify-content:center;background:#fff;line-height:0}
.privyseal-qr img{display:block;width:80px;height:80px;max-width:none;object-fit:contain}
.privyseal-qr:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.project-controls .privyseal-qr{margin:0;padding:0}
@media(max-width:750px){.privyseal-qr{flex-basis:80px;width:80px;height:80px}.privyseal-qr img{width:80px;height:80px}}
@media(max-width:600px){.navigation-tail{flex-wrap:wrap}.navigation-tail>a:first-child{flex-basis:100%}.project-controls{max-width:100%;gap:4px}.project-controls .social-links{gap:0}.project-controls .social-links a{width:32px}.project-controls .talk-to-us{padding:8px 6px;font-size:10px}.project-controls .close{font-size:11px;padding:8px 3px}}

@media(max-width:360px){body .project-controls:has(>.privyseal-qr){flex-wrap:nowrap;gap:2px}body .project-controls:has(>.privyseal-qr) .social-links a{width:28px}body .project-controls:has(>.privyseal-qr) .talk-to-us{font-size:11px;letter-spacing:.02em;padding:8px 5px}body .project-controls:has(>.privyseal-qr) .close{font-size:12px;letter-spacing:0;padding:8px 2px}}

@media(max-width:360px){.privyseal-qr{flex-basis:82px;width:82px;height:82px}.privyseal-qr img{width:82px;height:82px}}
