@font-face{font-family:'Boska';src:url('fonts/Boska-Light.woff2') format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Boska';src:url('fonts/Boska-LightItalic.woff2') format('woff2');font-weight:300;font-style:italic;font-display:swap}
@font-face{font-family:'Switzer';src:url('fonts/Switzer-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
:root{--ink:#f1e9dc;--soft:#ece3d4;--dark:#1b1b19;--org:#d4731a;--head:'Boska',Georgia,serif;--body:'Switzer',system-ui,sans-serif;--pad:clamp(22px,5vw,84px)}
*{box-sizing:border-box;margin:0;padding:0}
html{background:#232321;color:var(--ink);scroll-behavior:auto;scroll-padding-top:96px}
body{font-family:var(--body);font-size:19px;line-height:1.6;background:#232321;overflow-x:hidden}
body.loading{overflow:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
ul,ol{list-style:none}
h1,h2,h3{font-family:var(--head);font-weight:300;line-height:1.02}
:focus-visible{outline:3px solid var(--org);outline-offset:4px}

/* colour fields: the Z2 picture itself, turned round so the glow moves from section to section */
.z{position:relative;isolation:isolate;overflow:hidden}
.z::before{content:"";position:absolute;inset:0;z-index:-2;background:#232321 url('img/z2.webp') center/cover no-repeat}
.z::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#232321 0,rgba(35,35,33,0) 8%,rgba(35,35,33,0) 92%,#232321 100%),rgba(24,24,22,.1)}
.z-b::before{transform:scaleX(-1)}
.z-c::before{transform:scaleY(-1)}
.z-d::before{transform:scale(-1,-1)}
.z-d::after{background:linear-gradient(180deg,#232321 0,rgba(35,35,33,0) 8%,rgba(35,35,33,0) 92%,#232321 100%),rgba(20,20,18,.3)}


/* nav */
.nav{position:fixed;z-index:100;top:14px;left:14px;right:14px;display:flex;align-items:center;gap:24px;padding:10px 12px 10px 16px;border-radius:14px;background:rgba(27,27,25,.62);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;font-family:var(--head);font-weight:300;font-size:25px;line-height:1.1;letter-spacing:.005em}
.brand img{border-radius:50%}
.brand b{font-weight:300}
.links{display:flex;gap:4px;margin-left:auto}
.links a{padding:10px 16px;border-radius:9px;text-decoration:none;font-size:18px}
.links a:hover{background:rgba(241,233,220,.12)}
.btn{display:inline-block;font:inherit;font-size:19px;background:var(--ink);color:#1b1b19;border:0;border-radius:12px;padding:15px 30px;text-decoration:none;cursor:pointer}
.btn:hover{filter:brightness(1.1)}
.btn.org{font-size:22px;padding:18px 38px}
.nav .btn{padding:12px 24px}
.burger{display:none;font:inherit;font-size:18px;background:none;border:1px solid rgba(241,233,220,.4);color:var(--ink);border-radius:10px;padding:10px 18px;margin-left:auto;cursor:pointer}
.sheet{position:fixed;inset:0;z-index:90;background:#232321;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:90px 28px 40px}
.sheet[hidden]{display:none}
.sheet a{font-family:var(--head);font-size:44px;text-decoration:none;padding:6px 0;line-height:1.15}
.sheet a.btn{font-family:var(--body);font-size:20px;margin-top:22px;text-align:center;padding:18px}
@media(max-width:1000px){.links,.nav>.btn{display:none}.burger{display:block}.brand span{font-size:20px}}

/* hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;background:#232321}
.hero-img{position:absolute;inset:0}
.hero-img img{width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.hero::before{content:"";position:absolute;inset:0;z-index:1;background:
 linear-gradient(90deg,rgba(30,30,28,.94) 0%,rgba(30,30,28,.78) 38%,rgba(30,30,28,.25) 66%,rgba(30,30,28,0) 82%),
 linear-gradient(0deg,rgba(30,30,28,.9) 0%,rgba(30,30,28,0) 45%)}
.hero-t{position:relative;z-index:2;padding:0 var(--pad) clamp(60px,9vw,120px);max-width:1200px}
.hero h1{font-size:clamp(44px,11vw,190px);letter-spacing:-.02em;text-shadow:0 2px 40px rgba(20,20,18,.6)}
.hero-p{font-family:var(--head);font-size:clamp(26px,3vw,44px);margin:26px 0 38px;color:var(--ink);line-height:1.15;text-shadow:0 2px 24px rgba(20,20,18,.7)}

/* split word rise (plays on load, after the film) */
.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
.split .w>span{display:inline-block;transform:translateY(110%)}
.fade{opacity:0}
.ready .split .w>span{animation:rise .95s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--i)*70ms)}
.ready .fade{animation:fadein 1s ease forwards .9s}
@keyframes rise{to{transform:none}}
@keyframes fadein{to{opacity:1}}
.static .split .w>span{transform:none;animation:none}
.static .fade{opacity:1;animation:none}

/* intro */
.intro{padding:clamp(70px,9vw,140px) var(--pad);display:grid;grid-template-columns:repeat(12,1fr);gap:0 24px;align-items:start}
.big{grid-column:1/9;font-family:var(--head);font-weight:300;font-size:clamp(26px,2.9vw,46px);line-height:1.2;letter-spacing:-.01em}
.intro-i{grid-column:9/13;align-self:center}
.intro-i img{border-radius:4px}

.h2{font-size:clamp(46px,7.5vw,128px);letter-spacing:-.015em;margin-bottom:clamp(40px,6vw,90px)}
.h3{font-size:clamp(34px,4.4vw,70px);margin:clamp(70px,9vw,140px) 0 36px}

/* services */
.services{padding:clamp(64px,8vw,120px) var(--pad)}
.sv-wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(30px,5vw,90px);align-items:start}
.sv{display:block;width:100%;text-align:left;font-family:var(--head);font-weight:300;font-size:clamp(30px,3.7vw,60px);line-height:1.12;color:var(--soft);background:none;border:0;border-bottom:1px solid rgba(241,233,220,.24);padding:clamp(10px,1.3vw,20px) 0;cursor:pointer;transition:color .3s,padding-left .3s}
.sv:hover,.sv:focus-visible,.sv[aria-expanded="true"]{color:var(--ink);padding-left:22px}
.sv[aria-expanded="true"]{color:#ffc690}
.sv-panels{position:relative}
.sp[hidden]{display:none}
.sp img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px}
.sp-blank{width:100%;aspect-ratio:4/3;border:1px solid rgba(241,233,220,.28);border-radius:4px}
.sp ul,.sp-m ul{margin-top:26px;columns:2;column-gap:36px}
.sp li,.sp-m li{font-size:21px;padding:6px 0;break-inside:avoid;color:var(--soft)}
.sp-m{display:none}
@media(max-width:900px){
 .sv-wrap{display:block}.sv-panels{display:none}
 .sp-m{display:none;padding:18px 0 26px}.sv[aria-expanded="true"]+.sp-m{display:block}
 .sp-m img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px}
 .sp-m ul{columns:1}
}

/* work chapters */
.ch{padding:clamp(56px,7vw,110px) var(--pad);display:grid;grid-template-columns:repeat(12,1fr);gap:0 24px}
.ch img{width:100%;border-radius:4px}
.t{font-size:clamp(52px,8.4vw,150px);letter-spacing:-.02em;position:relative;z-index:2;padding-bottom:.28em}
.ls li{font-size:22px;color:var(--ink);padding:7px 0;color:var(--soft);border-bottom:1px solid rgba(241,233,220,.2)}
.ls{max-width:520px}
/* a: finished gardens, big image right, title crossing over it */
.ch-a .ia{grid-column:3/13;grid-row:1}
.ch-a .t{grid-column:1/9;grid-row:1;align-self:end;transform:translateY(46%);text-shadow:0 2px 30px rgba(20,20,18,.8),0 0 60px rgba(20,20,18,.6)}
.ch-a .ib{grid-column:1/6;grid-row:2;margin-top:clamp(50px,6vw,90px)}
.ch-a .ls{grid-column:7/13;grid-row:2;align-self:center;margin-top:clamp(50px,6vw,90px)}
/* b: patios, tall left, wide right dropped */
.ch-b .ia{grid-column:1/6;grid-row:1/4}
.ch-b .t{grid-column:6/13;grid-row:1;align-self:start;padding-left:clamp(0px,3vw,50px)}
.ch-b .ib{grid-column:7/13;grid-row:2;margin-top:clamp(20px,3vw,50px)}
.ch-b .ls{grid-column:7/13;grid-row:3;margin-top:36px;padding-left:0}
/* n: night, full width, dark */
.ch-n{padding-left:0;padding-right:0}
.ch-n::after{background:rgba(10,10,10,.7)}
.ch-n .ia{grid-column:1/13;grid-row:1}
.ch-n .ia img{border-radius:0;aspect-ratio:16/8;object-fit:cover}
.ch-n .t{grid-column:1/13;grid-row:1;align-self:end;padding:0 var(--pad) clamp(24px,4vw,70px);text-shadow:0 2px 30px rgba(0,0,0,.6)}
.ch-n .ib{grid-column:8/12;grid-row:2;margin-top:clamp(-120px,-9vw,-30px);position:relative;z-index:3}
/* f: fencing, wide right, small left overlapping */
.ch-f .t{grid-column:1/9;grid-row:1}
.ch-f .ia{grid-column:4/13;grid-row:2}
.ch-f .ib{grid-column:1/5;grid-row:2;align-self:end;margin-bottom:clamp(-70px,-5vw,-20px);position:relative;z-index:3}
.ch-f .ls{grid-column:5/13;grid-row:3;margin-top:clamp(40px,4vw,60px)}
/* d: drives */
.ch-d .ia{grid-column:1/8;grid-row:1/3}
.ch-d .t{grid-column:8/13;grid-row:1;align-self:start}
.ch-d .ib{grid-column:9/13;grid-row:2;align-self:end;margin-bottom:clamp(-60px,-4vw,0px)}
.ch-d .ls{grid-column:1/8;grid-row:3;margin-top:clamp(40px,4vw,60px)}
/* g: gravel and slate */
.ch-g .t{grid-column:5/13;grid-row:1;text-align:right}
.ch-g .ia{grid-column:1/9;grid-row:2}
.ch-g .ib{grid-column:9/13;grid-row:2;align-self:start}
.ch-g .ls{grid-column:9/13;grid-row:3;margin-top:30px;max-width:none}
.ch-g .ia img{aspect-ratio:3/2;object-fit:cover;object-position:80% 75%}
.ch-g .ib img{aspect-ratio:3/4;object-fit:cover}
/* start to finish film */
.story{padding:clamp(64px,8vw,120px) var(--pad)}
.story .h2{margin-bottom:clamp(28px,4vw,56px)}
.vid video{display:block;width:100%;max-height:82vh;aspect-ratio:16/9;background:#141413;border-radius:4px}
/* photo bands */
.band img{width:100%;aspect-ratio:21/8;object-fit:cover;border-radius:0}
/* before and after */
.ch-ba{grid-template-columns:1fr 1fr;gap:clamp(14px,2vw,30px)}
.ch-ba figure{position:relative}
.ch-ba img{aspect-ratio:4/3;object-fit:cover}
.ch-ba figcaption{position:absolute;left:clamp(16px,2.4vw,40px);bottom:clamp(8px,1.6vw,26px);font-family:var(--head);font-size:clamp(44px,7vw,120px);line-height:1;text-shadow:0 2px 28px rgba(0,0,0,.7)}

/* about */
.about{padding:clamp(64px,8vw,120px) var(--pad)}
.about-t{columns:2;column-gap:clamp(30px,5vw,90px);font-size:clamp(20px,1.7vw,26px);line-height:1.55;color:var(--ink)}
.about-t p{margin-bottom:1.1em;break-inside:avoid}
.steps li{display:grid;grid-template-columns:clamp(70px,10vw,170px) 1fr;gap:24px;align-items:baseline;padding:clamp(18px,2.2vw,34px) 0;border-top:1px solid rgba(241,233,220,.26)}
.steps .n{font-family:var(--head);font-size:clamp(54px,8vw,132px);line-height:.9;color:#f3b27a}
.steps h3{font-size:clamp(30px,3.4vw,54px);margin-bottom:10px}
.steps p{max-width:700px;color:var(--ink);font-size:21px}
@media(max-width:800px){.about-t{columns:1}}

/* why */
.why{padding:clamp(60px,8vw,120px) var(--pad)}
.why ul{columns:2;column-gap:clamp(30px,5vw,90px)}
.why li{font-family:var(--head);font-weight:300;font-size:clamp(28px,3.1vw,50px);line-height:1.15;padding:clamp(12px,1.4vw,22px) 0;border-bottom:1px solid rgba(241,233,220,.24);break-inside:avoid}
@media(max-width:800px){.why ul{columns:1}}

/* team */
.team{padding:clamp(64px,8vw,120px) var(--pad)}
.dan{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,90px);align-items:end}
.dan img{width:100%;max-width:380px;border-radius:4px}
.dan h3,.team-rest h3{font-size:clamp(46px,6.4vw,104px);margin-bottom:8px}
.team-rest h3{font-size:clamp(34px,3.6vw,58px)}
.role{font-family:var(--head);font-size:clamp(22px,2vw,32px);color:#ffc690;margin-bottom:22px;line-height:1.2}
.dan p:last-child{font-size:clamp(20px,1.7vw,26px);max-width:620px}
.team-rest{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,70px);margin-top:clamp(70px,9vw,140px)}
.team-rest article{border-top:1px solid rgba(241,233,220,.28);padding-top:26px}
.team-rest p:last-child{color:var(--ink);font-size:20px}
@media(max-width:900px){.dan{grid-template-columns:1fr}.team-rest{grid-template-columns:1fr}}

/* quote */
.quote{padding:clamp(64px,8vw,120px) var(--pad)}
.qf{display:grid;grid-template-columns:1fr 1fr 1fr;gap:clamp(18px,2.4vw,34px);max-width:1400px}
.f.wide{grid-column:1/4}
.f.two{grid-column:1/3}
.pick{border:0;min-width:0}
.pick legend{font-size:20px;color:var(--soft);margin-bottom:12px;padding:0}
.chips{display:flex;flex-wrap:wrap;gap:10px}
@media(max-width:800px){#days{flex-wrap:nowrap;overflow-x:auto;padding-bottom:10px;-webkit-mask-image:linear-gradient(90deg,#000 80%,transparent);mask-image:linear-gradient(90deg,#000 80%,transparent)}#days .gap{display:none}#days .chip{flex:none}}
.chips .gap{flex-basis:100%;height:0}
.chip{position:relative}
.chip input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer;margin:0}
.chip span{display:block;font-size:20px;padding:14px 22px;border-radius:12px;border:1.5px solid rgba(241,233,220,.4);background:rgba(20,20,18,.55);color:var(--ink)}
.chip input:checked+span{background:var(--ink);border-color:var(--ink);color:#1b1b19}
.chip input:focus-visible+span{outline:3px solid #f3b27a;outline-offset:3px}
.f label{display:block;font-size:20px;margin-bottom:10px;color:var(--soft)}
.qf input,.qf textarea{width:100%;font:inherit;font-size:22px;color:var(--ink);background:rgba(241,233,220,.07);border:1.5px solid rgba(241,233,220,.62);border-radius:12px;padding:20px 22px}
.qf input:focus-visible,.qf textarea:focus-visible{outline:3px solid var(--org);outline-offset:3px}
.qf input:focus,.qf textarea:focus{border-color:var(--ink);background:rgba(20,20,18,.72)}
.qf textarea{resize:vertical;min-height:190px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.row{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.big-btn{font-size:22px;padding:20px 54px}
.status{font-size:20px;margin:0;color:var(--soft)}
.vid{position:relative}
.status.bad{color:#ffb4a0}
@media(max-width:800px){.big-btn{width:100%}.row{display:block}.status{margin-top:16px}}
@media(max-width:900px){.qf{grid-template-columns:1fr}.f.wide,.f.two{grid-column:1}}

.foot{padding:34px var(--pad) 120px;background:#232321}
.foot::after{background:rgba(20,20,18,.7)}
.foot p{font-size:17px;color:var(--soft)}

/* whatsapp: only in the quote section */
.wa{display:inline-flex;align-items:center;gap:18px;margin-top:clamp(36px,4vw,60px);font:inherit;font-size:21px;color:var(--ink);background:none;border:1.5px solid rgba(241,233,220,.4);border-radius:14px;padding:10px 26px 10px 10px;cursor:pointer;text-align:left}
.wa:hover{background:rgba(241,233,220,.08)}
.wa img{width:56px;height:56px;border-radius:12px}

/* phones */
@media(max-width:800px){
 body{font-size:18px}
 .intro{display:block}.intro-i{margin-top:40px;transform:none;max-width:420px;margin-left:auto}
 .hero-t{padding-bottom:70px}
 .ch{display:flex;flex-direction:column;gap:28px}
 .ch .ia,.ch .ib{width:100%}
 .ch-a .t,.ch-d .t,.ch-g .t{transform:none;text-align:left}
 .ch-a .t{order:1}.ch-a .ia{order:2}
 .ch-a .ib{margin-top:0;order:3}
 .ch-b .ia{order:2;max-width:78%}.ch-b .t{order:1;padding-left:0}.ch-b .ib{order:3}.ch-b .ls{order:4;margin-top:0}
 .ch-n .ia img{aspect-ratio:4/3}.ch-n .t{position:absolute;left:0;right:0;top:auto;z-index:2}
 .ch-n{position:relative;padding-top:120px}
 .ch-n .ia{order:2}.ch-n .ib{margin:0 var(--pad);width:auto;order:3}
 .ch-n .ia,.ch-n .t{margin:0}
 .ch-f .ib,.ch-d .ib,.ch-g .ib{margin:0;max-width:70%}
 .ch-ba{grid-template-columns:1fr}
 .sp ul{columns:1}
 .ch-a .t{order:1}.ch-a .ia{order:2}.ch-a .ib{order:3}.ch-a .ls{order:4}
 .ch-n .ib{order:3}
 .brand span{font-size:19px;line-height:1.1}
 .nav{gap:10px;padding-right:10px}
 .ch-b .ls,.ch-f .ls,.ch-d .ls,.ch-g .ls{order:9}
 .ch-f .ia,.ch-d .ia,.ch-g .ia{order:2}.ch-f .t,.ch-d .t,.ch-g .t{order:1}.ch-f .ib,.ch-d .ib,.ch-g .ib{order:3}
 .band img{aspect-ratio:4/3}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.split .w>span{transform:none}.fade{opacity:1}}
.ch-w .ib img{aspect-ratio:1/1;object-fit:cover;object-position:12% 55%}
.mos{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mos img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:50% 30%;border-radius:4px}
.mos.n1 img{aspect-ratio:4/3}.mos.n2{grid-template-columns:1fr}.mos.n2 img{aspect-ratio:16/10}.mos.n3 img:first-child{grid-column:1/3;aspect-ratio:16/10}.mos.n3 img{aspect-ratio:1/1}
.gal{grid-column:1/-1;grid-row:5;display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-top:clamp(40px,5vw,70px)}
.gal img{grid-column:span 2}
.gal img:nth-last-child(2):nth-child(3n+1),.gal img:last-child:nth-child(3n+2){grid-column:span 3}
.gal img:last-child:nth-child(3n+1){grid-column:span 6;aspect-ratio:16/7}
.gal img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px}
@media(max-width:800px){.gal{grid-template-columns:1fr 1fr;order:10}.gal img,.gal img:nth-last-child(2):nth-child(3n+1),.gal img:last-child:nth-child(3n+2),.gal img:last-child:nth-child(3n+1){grid-column:auto;aspect-ratio:4/3}.gal img:last-child:nth-child(odd){grid-column:1/-1}}
.mos video{display:block;width:100%;grid-column:1/3;aspect-ratio:16/10;object-fit:cover;background:#141413;border-radius:4px}

/* tight chapter grids */
.chp{display:block;padding:clamp(56px,7vw,110px) var(--pad)}
.chp .chh{display:grid;grid-template-columns:1fr;gap:clamp(20px,4vw,70px);align-items:end;margin-bottom:clamp(24px,3vw,44px)}
.chp .t{padding-bottom:0;transform:none;text-shadow:none;margin:0}
.chp .ls{max-width:none;margin:0 0 .6em}
.chg{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:clamp(120px,15vw,225px);gap:12px}
.chg figure{margin:0;overflow:hidden;border-radius:4px;background:#141413}
.chg figure img{width:100%;height:100%;object-fit:cover;border-radius:0}
.ch-n.chp::after{background:rgba(10,10,10,.6)}
@media(max-width:800px){
 .chp .chh{grid-template-columns:1fr}
 .chg{grid-template-columns:1fr 1fr;grid-auto-rows:auto}
 .chg figure{grid-column:span 1!important;grid-row:auto!important}
 .chg figure:first-child{grid-column:1/-1!important}
 .chg figure img{aspect-ratio:4/3;height:auto}
 .chg figure:last-child:nth-child(even){grid-column:1/-1!important}
}

.chp.z-d.night::after{background:rgba(10,10,10,.6)}
.chp .t{font-size:clamp(46px,7vw,120px)}
.chp .ls li{font-size:21px}

/* round 2: tighter gaps, night lighting full width, less sky, lighter service items */
.chp{padding-top:clamp(40px,5vw,80px);padding-bottom:clamp(40px,5vw,80px)}
.h2{margin-bottom:clamp(28px,4vw,60px)}
.chp.c-ch-n{padding-left:0;padding-right:0}
.chp.c-ch-n .chh{padding:0 var(--pad)}
.chp.c-ch-n .chg{gap:4px;grid-auto-rows:clamp(140px,18vw,280px)}
.chp.c-ch-n .chg figure{border-radius:0}
.c-ch-a .chg figure:first-child img{object-position:50% 80%}
.sp li,.sp-m li{font-family:var(--head);font-size:24px;line-height:1.25}
/* service list: show it opens */
.sv{position:relative;padding-right:52px}
.sv::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:.7em;color:var(--soft)}
.sv[aria-expanded="true"]::after{content:"2";color:#ffc690}
/* bigger small text */
.team-rest p:last-child{font-size:21px}
.foot p{font-size:18px}
.links a{font-size:19px}
.chp.c-ch-n::after{background:linear-gradient(180deg,#232321 0,rgba(10,10,10,.55) 8%,rgba(10,10,10,.55) 92%,#232321 100%)}
/* round 3 */
.qf input,.qf textarea{background:rgba(241,233,220,.11);border-color:rgba(241,233,220,.75)}
.f label,.pick legend{color:var(--ink)}
.hero-p{color:#fff6ea;text-shadow:0 2px 18px rgba(10,10,9,.95),0 0 40px rgba(10,10,9,.7)}
.c-ch-a .chg figure:first-child img{object-position:50% 60%}
