:root{
  --bone:#F3F0E8;
  --ink:#0E1411;
  --green:#4A5E53;
  --accent:#D8B85C;
  --body:#2B332E;
  --muted:#4A524D;
  --soft:#C9D4CD;
  --pad:clamp(20px,4.5vw,64px);
  --section:clamp(56px,8vw,112px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bone);color:var(--ink);font-family:'Hanken Grotesk',Helvetica,Arial,sans-serif;font-size:18px;line-height:1.5}
img{max-width:100%;display:block}
a{color:inherit}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.disp{font-family:Anton,Impact,'Arial Narrow',sans-serif;font-weight:400;text-transform:uppercase;letter-spacing:.5px;line-height:.92;margin:0}
.wrap{padding-inline:var(--pad)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:60px;padding:0 30px;font-weight:700;font-size:18px;text-decoration:none;border:2px solid var(--ink);cursor:pointer;font-family:inherit}
.btn-green{background:var(--green);border-color:var(--green);color:var(--bone)}
.btn-ink{background:var(--ink);color:var(--bone)}
.btn-line{background:transparent;color:var(--ink)}
.btn:hover{filter:brightness(1.15)}
.link{font-weight:700;text-underline-offset:6px}

/* header */
.top{position:sticky;top:0;z-index:10;background:var(--green);color:var(--bone)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;min-height:84px;gap:24px}
.logo{display:block;line-height:0}.logo img{height:60px;width:auto}
.nav{display:flex;align-items:center;gap:32px;font-weight:600;font-size:17px}
.nav a{text-decoration:none}
.nav a:hover{text-decoration:underline;text-underline-offset:6px}
.nav{margin-left:auto}
.head-cta{min-height:50px;padding:0 24px;background:var(--accent);border-color:var(--accent);color:var(--ink)}
.menu-btn{display:none;width:48px;height:48px;border:2px solid var(--bone);background:transparent;align-items:center;justify-content:center;cursor:pointer}

/* hero */
.hero-wrap{position:relative;overflow:hidden;background:var(--green) url('london.jpg') center/cover no-repeat;color:var(--bone)}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-shade{position:absolute;inset:0;background:rgba(18,26,22,.62)}
.hero{position:relative;z-index:1;min-height:clamp(560px,82vh,860px);display:flex;flex-direction:column;justify-content:flex-end;gap:28px;padding-block:clamp(64px,8vw,120px) clamp(56px,6vw,88px)}
.kicker{display:flex;align-items:center;gap:12px;font-weight:700;font-size:15px}
.kicker::before{content:"";width:12px;height:12px;background:var(--accent)}
.hero h1{font-size:clamp(60px,11vw,168px);color:var(--bone)}
.hero h1 mark{display:inline-block;margin-top:.12em;white-space:nowrap;background:var(--accent);color:var(--ink);padding:.02em .1em 0}
.hero p{margin:0;max-width:600px;font-size:clamp(18px,1.6vw,22px);color:#E9E5DB}
.ctas{display:flex;flex-wrap:wrap;gap:16px}
.btn-gold{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.btn-ghost{background:transparent;border-color:var(--bone);color:var(--bone)}

/* recent moves */
.moves{background:var(--ink);color:var(--bone)}
.moves-inner{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:center;padding-block:40px}
.moves h2{grid-column:span 4;font-size:clamp(34px,3.4vw,48px);color:var(--accent)}
.move-item{grid-column:span 4;border-left:2px solid rgba(243,240,232,.3);padding-left:24px}
.move-num{font-size:clamp(40px,4vw,60px)}
.move-item p{margin:6px 0 0;font-size:18px;color:var(--soft)}

/* free */
.free{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:stretch;padding-block:var(--section);border-bottom:2px solid var(--ink)}
.free-copy{grid-column:span 6;display:flex;flex-direction:column;justify-content:center;gap:24px}
.zero{font-size:clamp(140px,17vw,260px);color:var(--green);line-height:.82}
.free h2{font-size:clamp(40px,4.4vw,64px)}
.free p{margin:0;max-width:560px;font-size:clamp(18px,1.5vw,21px);color:var(--body)}
.free-media{grid-column:8 / -1;min-height:520px;background:var(--green) url('hero.jpg') 30% 0%/cover no-repeat;border:2px solid var(--ink)}

/* process */
.process{background:var(--green);color:var(--bone);padding-block:var(--section)}
.process-head{display:flex;justify-content:space-between;align-items:end;gap:32px;flex-wrap:wrap;margin-bottom:64px}
.process h2{font-size:clamp(52px,6.7vw,96px)}
.process-head p{margin:0;max-width:420px;font-size:20px;color:var(--soft)}
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;list-style:none;margin:0;padding:0}
.steps li{border-top:2px solid var(--bone);padding-top:28px;display:flex;flex-direction:column;gap:16px}
.num{font-family:Anton,Impact,sans-serif;font-size:clamp(64px,8vw,120px);line-height:1;color:transparent;-webkit-text-stroke:2px var(--accent)}
.steps h3{margin:0;font-size:28px;font-weight:800}
.steps p{margin:0;font-size:19px;color:var(--soft)}

/* proof */
.proof{padding-block:var(--section);display:flex;flex-direction:column;gap:56px}
.proof-head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap}
.proof h2{font-size:clamp(52px,6.7vw,96px)}
.quotes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.quotes figure{margin:0;background:#fff;border:2px solid var(--ink);padding:36px;display:flex;flex-direction:column;justify-content:space-between;gap:40px;min-height:320px}
.quotes figure:nth-child(2){background:var(--accent)}
.quotes blockquote{margin:0;font-size:clamp(20px,2vw,28px);line-height:1.4;font-weight:600}
.quotes figcaption{font-size:16px;font-weight:700}
.logos-title{font-weight:700;font-size:16px;margin:0 0 20px}
.logos{display:flex;flex-wrap:wrap;gap:16px}
.logos div{flex:1 1 150px;height:110px;background:#fff;border:2px solid var(--ink);display:flex;align-items:center;justify-content:center;padding:18px 22px}
.logos img{max-height:58px;max-width:100%;width:auto;object-fit:contain;filter:grayscale(1)}

/* team */
.team{padding-bottom:var(--section);display:flex;flex-direction:column;gap:48px}
.team>h2{font-size:clamp(48px,5.6vw,80px)}
.people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}
.person{display:flex;flex-direction:column;gap:16px}
.person-photo{width:100%;max-width:300px;aspect-ratio:4 / 5;background:#D9D4C7 center 25%/cover no-repeat;border:2px solid var(--ink);margin-bottom:8px}
.person h3{margin:0;font-size:30px;font-weight:800}
.person p{margin:0;font-size:clamp(17px,1.4vw,19px);color:var(--body);max-width:600px}
.person .aside{font-size:16px;color:var(--muted)}
.team>.link{align-self:flex-start}

/* brief */
.brief{background:var(--accent);padding-block:var(--section);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:start}
.brief h2{grid-column:span 6;font-size:clamp(60px,8.9vw,128px)}
.brief form{grid-column:8 / span 5;display:flex;flex-direction:column;gap:18px}
.brief-cta p{margin:0;font-size:clamp(18px,1.5vw,21px)}
.btn.big{min-height:72px;font-size:21px;width:100%}
.brief label{display:flex;flex-direction:column;gap:8px;font-weight:700;font-size:15px}
.brief input{height:56px;border:2px solid var(--ink);background:var(--bone);padding:0 16px;font-size:18px;font-family:inherit;color:var(--ink)}
.brief .btn{width:100%}
.brief .alt{font-size:15px;font-weight:600;margin:0}

/* footer */
footer{background:var(--green);color:var(--bone)}
footer .wrap{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding-block:48px}
footer nav{display:flex;gap:28px;font-weight:600;font-size:16px}
footer small{color:var(--soft);font-size:15px}

/* responsive */
@media (max-width:1024px){
  .moves h2,.move-item,.free-copy,.free-media,.brief h2,.brief form{grid-column:1 / -1}
  .free-media{min-height:400px}
  .move-item{border-left:none;padding-left:0;border-top:2px solid rgba(243,240,232,.3);padding-top:16px}
  .quotes{grid-template-columns:1fr}
  .quotes figure{min-height:0}
}
@media (max-width:860px){
  .people{grid-template-columns:1fr}
  .menu-btn{display:inline-flex}
  .nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--green);flex-direction:column;align-items:stretch;gap:0;padding:8px var(--pad) 20px}
  .nav.open{display:flex}
  .nav a{padding:14px 0;border-bottom:1px solid rgba(243,240,232,.25)}
  .head-cta{min-height:46px;padding:0 16px;font-size:16px;margin-left:auto}
  .logo img{height:44px}
  .top .wrap{gap:12px}
  .steps{grid-template-columns:1fr;gap:32px}
  .logos div{flex-basis:40%;height:96px}
  .quotes figure{padding:24px}
  .ctas .btn{flex:1 1 100%}
}

/* contact page */
.page-head{padding-block:clamp(48px,7vw,96px) clamp(32px,4vw,56px);border-bottom:2px solid var(--ink)}
.page-head h1{font-size:clamp(64px,10vw,140px)}
.page-head p{margin:24px 0 0;max-width:620px;font-size:clamp(18px,1.6vw,22px);color:var(--body)}
.contact{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;padding-block:var(--section);align-items:start}
.contact form{grid-column:span 7;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.contact label{display:flex;flex-direction:column;gap:8px;font-weight:700;font-size:15px}
.contact label.full{grid-column:1 / -1}
.contact input,.contact select,.contact textarea{min-height:56px;border:2px solid var(--ink);background:#fff;padding:0 16px;font-size:18px;font-family:inherit;color:var(--ink)}
.contact textarea{padding:14px 16px;min-height:140px;resize:vertical}
.contact .btn{grid-column:1 / -1;width:100%}
.contact .fine{grid-column:1 / -1;margin:0;font-size:15px;color:var(--muted)}
.direct{grid-column:9 / span 4;background:var(--green);color:var(--bone);padding:36px;display:flex;flex-direction:column;gap:28px}
.direct h2{font-size:44px}
.direct dl{margin:0;display:flex;flex-direction:column;gap:20px}
.direct dt{font-size:14px;font-weight:700;color:var(--soft);margin-bottom:4px}
.direct dd{margin:0;font-size:20px;font-weight:700}
.direct a{color:var(--bone);text-underline-offset:5px}
.hidden{position:absolute;left:-9999px}
.thanks{min-height:60vh;display:flex;flex-direction:column;justify-content:center;gap:24px;padding-block:var(--section)}
.thanks h1{font-size:clamp(64px,10vw,140px)}
.thanks p{margin:0;max-width:560px;font-size:21px;color:var(--body)}
@media (max-width:1024px){.contact form,.direct{grid-column:1 / -1}}
@media (max-width:600px){.contact form{grid-template-columns:1fr}}

/* legal page */
.legal{max-width:820px;padding-block:var(--section)}
.legal h2{font-size:26px;font-weight:800;margin:48px 0 14px}
.legal p,.legal li{font-size:17px;line-height:1.65;color:var(--body)}
.legal p{margin:0 0 16px}
.legal ul{margin:0 0 16px;padding-left:22px}
.legal li{margin-bottom:8px}
