*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body),system-ui,sans-serif;font-weight:300;font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img,video{display:block;max-width:100%}
.wrap{max-width:1320px;margin:0 auto;padding:0 40px}
p{margin:0 0 16px;max-width:56ch}
h1,h2,h3{margin:0;font-family:var(--display);line-height:1.15}
.eyebrow{font-family:var(--label);text-transform:uppercase;letter-spacing:.22em;font-size:12px;color:#B5B5B5}
.btn{display:inline-flex;align-items:center;gap:12px;padding:15px 26px;border:1px solid var(--accent);color:var(--accent);font-family:var(--label);font-size:10px;letter-spacing:.24em;text-transform:uppercase;transition:background .25s,color .25s;cursor:pointer;background:none}
.btn:hover{background:var(--accent);color:var(--bg)}
.btn.solid{background:var(--accent);color:var(--bg)}.btn.solid:hover{background:transparent;color:var(--accent)}
.btn svg{width:14px;height:14px;flex:none;transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.btn:hover svg{transform:translateX(6px)}
.btn:focus-visible{outline:2px solid currentColor;outline-offset:3px}
/* group strip */
.group{background:#000;color:#B5B5B5;font-family:"Syncopate",sans-serif;font-size:8px;letter-spacing:.28em;text-transform:uppercase;padding:14px 0;position:relative;z-index:60;border-bottom:1px solid #1c1c1c}
.group .wrap{display:flex;justify-content:center;align-items:center;gap:20px;position:relative}
.group .home{display:flex;align-items:center;gap:12px;transition:opacity .25s}
.group .home:hover{opacity:.65}
img.glogo{height:48px;width:auto;max-width:none}
.group a{color:#fff}
/* nav */
nav{position:sticky;top:0;position:-webkit-sticky;z-index:50;padding:18px 0;background:var(--nav);border-bottom:1px solid var(--rule);backdrop-filter:blur(8px)}
nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px}
nav ul{display:flex;gap:26px;list-style:none;margin:0;padding:0}
nav li a{white-space:nowrap;font-family:var(--label);font-size:11.25px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);opacity:.8}
nav li a:hover{opacity:1}
nav .btn{padding:11px 18px;font-size:11.25px}
.burger{display:none;width:40px;height:40px;border:1px solid var(--rule);background:none;color:var(--ink);align-items:center;justify-content:center}
.burger span{width:18px;height:1px;background:currentColor;box-shadow:0 -6px 0 currentColor,0 6px 0 currentColor;display:block}
/* hero */
.hero{position:relative;min-height:78svh;display:grid;align-items:end;overflow:hidden;isolation:isolate}
.hero video,.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--hero-overlay)}
.hero .inner{padding:80px 0 70px;display:grid;gap:22px;animation:rise 1s ease both}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.hero h1{font-size:clamp(34px,6vw,84px);max-width:14ch;text-wrap:balance}
.hero p{font-size:clamp(17px,1.6vw,21px);max-width:44ch;margin:0}
.hero .cta{display:flex;gap:14px;flex-wrap:wrap}
/* sections */
section{padding:96px 0}
section.tight{padding:64px 0}
.head{display:grid;gap:14px;margin-bottom:44px;max-width:60ch}
.head h2{font-size:clamp(24px,3vw,42px)}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.card{border:1px solid var(--rule);padding:32px 28px;display:grid;gap:12px;background:var(--card);transition:border-color .25s}
.card:hover{border-color:var(--accent)}
.card h3{font-size:14px;letter-spacing:.14em;text-transform:uppercase;font-family:var(--label);font-weight:700}
.card p{font-size:16px;color:var(--mid);margin:0;line-height:1.6}
.card .n{font-family:var(--label);font-size:11px;letter-spacing:.16em;color:#B5B5B5}
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.split img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5}
.list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.list li{display:flex;gap:14px;align-items:baseline;color:var(--mid);font-size:16.5px;line-height:1.6}
.list li::before{content:"";width:18px;height:1px;background:var(--accent);flex:none;transform:translateY(-4px)}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.gallery img{width:100%;aspect-ratio:1;object-fit:cover}
.gallery img:nth-child(1){grid-column:span 2;grid-row:span 2}
.quote{padding:90px 0;text-align:center}
.quote blockquote{margin:0 auto;max-width:34ch;font-family:var(--display);font-size:clamp(22px,2.6vw,34px);line-height:1.35}
.quote cite{display:block;margin-top:22px;font-style:normal;font-family:var(--label);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#B5B5B5}
/* form */
.enquire{background:var(--card);border-top:1px solid var(--rule)}
.enquire .wrap{display:grid;grid-template-columns:5fr 7fr;gap:60px}
form{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.f{display:grid;gap:8px}.f.full{grid-column:1/-1}
label{font-family:var(--label);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#C9C9C9}
input,select,textarea{width:100%;background:var(--bg);border:1px solid var(--line);color:var(--ink);padding:16px 18px;font:inherit;font-size:18px;border-radius:0;-webkit-appearance:none}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}
textarea{min-height:140px;resize:vertical}
input::placeholder,textarea::placeholder{color:#9c9c9c;opacity:1}
form .btn{grid-column:1/-1;justify-self:start}
/* footer */
footer{padding:60px 0 36px;border-top:1px solid var(--rule);background:#000;color:#ccc}
footer .top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;margin-bottom:44px}
footer h3{color:#AEAEAE;margin-bottom:14px;font-size:9px;letter-spacing:.26em;text-transform:uppercase;font-family:"Syncopate",sans-serif}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
footer li a{font-size:16px;color:#e8e8e8}
footer .bottom{border-top:1px solid #222;padding-top:22px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:14px;color:#A6A6A6}
.pmark{display:flex;align-items:center;gap:10px;font-family:"Syncopate",sans-serif;font-weight:700;font-size:12px;letter-spacing:.34em;text-transform:uppercase;color:#fff;margin-bottom:16px}
.pmark svg{width:13px;height:28px}
@media (max-width:900px){
  .wrap{padding:0 40px}section{padding:64px 0}
  .grid3,.grid2,.split,.enquire .wrap{grid-template-columns:1fr;gap:28px}
  .split img{aspect-ratio:4/3}
  .gallery{grid-template-columns:1fr 1fr}
  form{grid-template-columns:1fr}
  footer .top{grid-template-columns:1fr 1fr}
  .hero{min-height:70svh}
  .group .wrap{font-size:7px}
}
@media (max-width:520px){footer .top{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* mobile menu — split open from the middle */
@media (max-width:860px){
  nav ul,nav .btn{display:none}
  .burger{display:flex}
  body.menu-open .group{opacity:0;pointer-events:none;transition:opacity .2s}
  nav.open{z-index:206;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:transparent!important;border-color:transparent!important}
  nav.open .wrap>*:not(.burger):not(ul){opacity:0;pointer-events:none;transition:opacity .2s}
  body.menu-open{overflow:hidden}
  nav.open::before,nav.open::after{content:"";position:fixed;top:0;bottom:0;width:50vw;background:#000;z-index:200;transition:transform .55s cubic-bezier(.7,0,.2,1)}
  nav.open::before{left:0;transform:translateX(-101%)}
  nav.open::after{right:0;transform:translateX(101%)}
  nav.open.shown::before,nav.open.shown::after{transform:none}
  nav.open ul{display:grid;position:fixed;inset:0;z-index:202;align-content:center;justify-items:center;gap:2px;padding:0 30px;background:transparent;border:0}
  nav.open ul li{width:100%;max-width:320px;text-align:center}
  nav.open ul li a{display:block;padding:16px 0;font-size:15px;border-bottom:1px solid #222;opacity:0;color:#fff;letter-spacing:.16em;transform:translateY(8px);transition:opacity .4s,transform .4s}
  nav.open ul li:last-child a{border-bottom:0}
  nav.open.shown ul li a{opacity:1;transform:none}
  nav.open.shown ul li:nth-child(1) a{transition-delay:.42s}
  nav.open.shown ul li:nth-child(2) a{transition-delay:.48s}
  nav.open.shown ul li:nth-child(3) a{transition-delay:.54s}
  nav.open.shown ul li:nth-child(4) a{transition-delay:.60s}
  nav.open.shown ul li:nth-child(5) a{transition-delay:.66s}
  nav.open .burger{z-index:206;border-color:#555;background:transparent}
  nav.open .burger span{background:transparent;box-shadow:none;position:relative;width:18px;height:18px}
  nav.open .burger span::before,nav.open .burger span::after{content:"";position:absolute;left:0;top:50%;width:18px;height:1px;background:#fff}
  nav.open .burger span::before{transform:rotate(45deg)}
  nav.open .burger span::after{transform:rotate(-45deg)}
}
@media (min-width:861px){.burger{display:none!important}}

@media (max-width:700px){
  body{font-size:16px;line-height:1.55}
  .wrap{padding:0 40px}
  nav{padding:14px 0}nav .wrap{justify-content:center;position:relative}nav img{height:48px!important}.wordmark{width:138px!important;height:auto!important}
  nav .mark{justify-content:center}nav .mark small{display:none}
  nav .burger{position:absolute;right:18px;top:50%;transform:translateY(-50%)}
  .hero{min-height:0}.hero .inner{padding:56px 0 44px;gap:16px}
  .hero h1{font-size:34px}.hero p{font-size:16px}
  .hero .cta{flex-direction:column;width:100%;max-width:320px}.hero .cta .btn{justify-content:center}
  section{padding:48px 0}.head{margin-bottom:26px;gap:10px}.head h2{font-size:24px}
  .grid3,.grid2{gap:12px}.card{padding:22px 20px}
  .split{gap:22px}.split img{aspect-ratio:16/10}
  .list{gap:8px}
  .gallery{gap:6px}
  .quote{padding:56px 0}.quote blockquote{font-size:20px}
  .enquire .wrap{gap:28px}
  footer{padding:44px 0 28px}footer .top{gap:26px;margin-bottom:30px}
  .btn{width:100%;justify-content:center}
  nav .btn,.group a{width:auto}
}

@media (max-width:860px){