@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/cormorant-garamond-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/cormorant-garamond-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url(fonts/cormorant-garamond-latin-500-italic.woff2) format('woff2')}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/public-sans-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/public-sans-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/public-sans-latin-600-normal.woff2) format('woff2')}

/* Green Code Holdings: olive ink on warm paper, echoing the group's monogram logos */
:root{
  --paper:#f6f5ef; --sheet:#ffffff; --olive:#343417; --olive-2:#4b4c2a; --ink:#22231a; --muted:#5f5f4f;
  --rule:#d9d7c9; --rule-2:#e9e7dc; --accent:#6b6d3a; --focus:#8a7f2c;
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --sans:'Public Sans','Helvetica Neue',Arial,sans-serif;
  --wrap:74rem; --measure:38rem; --gap:clamp(1rem,2.5vw,2rem);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.65 var(--sans)}
img{max-width:100%;height:auto;display:block}
a{color:var(--olive);text-underline-offset:.2em}
a:hover{color:var(--accent)}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:max(1.25rem,env(safe-area-inset-left,0px));padding-right:max(1.25rem,env(safe-area-inset-right,0px))}
.skip{position:absolute;left:-999px;top:0;background:var(--olive);color:#fff;padding:.6rem 1rem;z-index:50}
.skip:focus{left:1rem}

h1,h2,h3{font-family:var(--serif);font-weight:500;color:var(--olive);line-height:1.12;text-wrap:balance;margin:0}
h1{font-size:clamp(2.4rem,5.4vw,4.1rem);letter-spacing:.01em}
h2{font-size:clamp(1.9rem,3.6vw,2.7rem)}
h3{font-size:1.55rem;line-height:1.2}
p{margin:0}
.label{font:600 .74rem/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.lede{font-size:1.18rem;color:var(--muted);max-width:var(--measure)}
.prose{max-width:var(--measure);display:grid;gap:1rem}
.prose h2{font-size:1.9rem;margin-top:1.4rem}
.prose ul{margin:0;padding-left:1.2rem;display:grid;gap:.35rem}

/* header */
.site-header{background:var(--paper);border-bottom:1px solid var(--rule)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:4.75rem}
.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:var(--olive)}
.brand img{width:2.6rem;height:2.6rem}
.brand span{font:500 1.05rem/1.1 var(--serif);letter-spacing:.18em;text-transform:uppercase}
.nav{display:flex;gap:1.6rem;align-items:center}
.nav a{font:500 .9rem/1 var(--sans);text-decoration:none;color:var(--ink)}
.nav a[aria-current=page]{color:var(--olive);text-decoration:underline;text-underline-offset:.45em}
.nav .tel{font-weight:600;color:var(--olive)}
.menu-btn{display:none;background:none;border:1px solid var(--rule);color:var(--olive);font:600 .85rem var(--sans);padding:.55rem .9rem;border-radius:2px;cursor:pointer}
@media (max-width:860px){
  .menu-btn{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:4.75rem;background:var(--paper);border-bottom:1px solid var(--rule);flex-direction:column;align-items:flex-start;gap:0;padding:.5rem max(1.25rem,env(safe-area-inset-left,0px)) 1rem;z-index:20}
  .nav a{padding:.8rem 0;width:100%;border-top:1px solid var(--rule-2);font-size:1rem}
  .site-header.open .nav{display:flex}
  .site-header{position:relative}
}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.5rem;background:var(--olive);color:#fff;text-decoration:none;font:600 .95rem/1 var(--sans);padding:.95rem 1.4rem;border-radius:2px;border:1px solid var(--olive);cursor:pointer}
.btn:hover{background:var(--olive-2);color:#fff}
.btn.ghost{background:transparent;color:var(--olive)}
.btn.ghost:hover{background:var(--sheet);color:var(--olive)}
.actions{display:flex;flex-wrap:wrap;gap:.75rem}

/* hero */
.hero{padding:clamp(3rem,7vw,6rem) 0 clamp(2.5rem,5vw,4rem)}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.hero-copy{display:grid;gap:1.4rem;min-width:0}
.hero figure{margin:0;min-width:0}
.hero figure img{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--rule)}
.hero figcaption{font-size:.82rem;color:var(--muted);margin-top:.6rem}
@media (max-width:860px){.hero .wrap{grid-template-columns:1fr}}

.facts{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);background:var(--sheet)}
.facts .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.fact{padding:1.6rem 1.2rem 1.6rem 0;display:grid;gap:.25rem}
.fact+.fact{padding-left:1.2rem;border-left:1px solid var(--rule-2)}
.fact b{font:500 2.3rem/1 var(--serif);color:var(--olive)}
.fact span{font-size:.9rem;color:var(--muted)}
@media (max-width:760px){.facts .wrap{grid-template-columns:1fr 1fr}.fact:nth-child(3){padding-left:0;border-left:0}.fact:nth-child(n+3){border-top:1px solid var(--rule-2)}}

section.block{padding:clamp(3rem,6vw,5rem) 0}
section.block.alt{background:var(--sheet);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.head{display:grid;gap:.8rem;max-width:44rem;margin-bottom:2.2rem}

/* companies */
.companies{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:1.5rem}
.co{background:var(--sheet);border:1px solid var(--rule);display:flex;flex-direction:column;min-width:0}
section.block.alt .co{background:var(--paper)}
.co figure{margin:0;aspect-ratio:16/10;overflow:hidden;border-bottom:1px solid var(--rule)}
.co figure img{width:100%;height:100%;object-fit:cover}
.co-body{padding:1.4rem 1.4rem 1.5rem;display:grid;gap:.8rem;flex:1;align-content:start}
.co-title{display:flex;align-items:center;gap:.8rem}
.co-title img,.co-title svg{width:2.6rem;height:2.6rem;flex:none;color:var(--olive)}
.co-title svg{padding:.35rem;border:1.6px solid var(--olive)}
.co ul{margin:0;padding-left:1.1rem;color:var(--muted);font-size:.95rem;display:grid;gap:.2rem}
.co .go{margin-top:auto;padding-top:.4rem;font-weight:600;text-decoration:none}
.co .go::after{content:" \2192"}
.co small{color:var(--muted);font-size:.8rem}

/* journey */
.journey{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--rule)}
.step{padding:1.5rem 1.5rem 1.6rem 0;border-bottom:1px solid var(--rule);display:grid;gap:.5rem;align-content:start}
.step:not(:nth-child(3n+1)){padding-left:1.5rem;border-left:1px solid var(--rule-2)}
.step .n{font:500 1rem var(--serif);color:var(--accent);letter-spacing:.08em}
.step p{color:var(--muted);font-size:.97rem}
@media (max-width:860px){.journey{grid-template-columns:1fr}.step:not(:nth-child(3n+1)){padding-left:0;border-left:0}}

/* people */
.people{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:1.5rem}
.person{display:grid;gap:.7rem}
.person img,.person .mono{width:100%;aspect-ratio:1/1;object-fit:cover;border:1px solid var(--rule);background:var(--sheet)}
.person .mono{display:grid;place-items:center;font:500 3rem var(--serif);color:var(--olive);letter-spacing:.1em}
.person b{font:500 1.35rem/1.2 var(--serif);color:var(--olive)}
.person span{color:var(--muted);font-size:.93rem}

/* split + lists */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.split>*{min-width:0}
@media (max-width:860px){.split{grid-template-columns:1fr}}
.ticks{list-style:none;margin:0;padding:0;display:grid;gap:0;border-top:1px solid var(--rule)}
.ticks li{padding:.8rem 0;border-bottom:1px solid var(--rule)}

/* contact */
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:1rem}
.card{background:var(--sheet);border:1px solid var(--rule);padding:1.3rem;display:grid;gap:.35rem;align-content:start}
.card b{font:500 1.35rem var(--serif);color:var(--olive)}
.card a{font-weight:600}
form.enquiry{display:grid;gap:1rem;max-width:40rem}
form.enquiry label{display:grid;gap:.35rem;font-weight:500;font-size:.95rem}
form.enquiry input,form.enquiry select,form.enquiry textarea{font:inherit;padding:.75rem .85rem;border:1px solid #b9b7a5;border-radius:2px;background:#fff;color:var(--ink);width:100%}
form.enquiry textarea{min-height:9rem}
.hp{position:absolute;left:-9999px}
.form-note{font-size:.88rem;color:var(--muted)}
.form-status{font-weight:600;color:var(--olive)}

.page-head{padding:clamp(2.6rem,6vw,4.5rem) 0 clamp(1.5rem,3vw,2.5rem);border-bottom:1px solid var(--rule)}
.page-head .wrap{display:grid;gap:1rem}

/* footer */
.site-footer{background:var(--olive);color:#e8e7dc;padding:3rem 0 2rem;margin-top:0}
.site-footer a{color:#fff}
.site-footer .cols{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:2rem}
.site-footer .cols>div{display:grid;gap:.45rem;align-content:start;min-width:0}
.site-footer h2{font:600 .74rem/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#c9c8b5}
.site-footer .legal{margin-top:2.2rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.18);font-size:.82rem;color:#c9c8b5;display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;justify-content:space-between}
.site-footer .legal a{color:#e8e7dc}
.foot-brand{display:flex;align-items:center;gap:.7rem}
.foot-brand img{width:2.6rem;height:2.6rem;filter:brightness(0) invert(1)}
.foot-brand span{font:500 1.05rem var(--serif);letter-spacing:.18em;text-transform:uppercase;color:#fff}
@media (max-width:860px){.site-footer .cols{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.site-footer .cols{grid-template-columns:1fr}}
.linkbtn{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}

/* cookie bar */
.ck-bar{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:60;max-width:34rem;margin:0 auto;background:var(--olive);color:#f1f0e6;padding:1.1rem 1.2rem;border-radius:3px;box-shadow:0 10px 30px rgba(0,0,0,.25);font-size:.93rem;display:grid;gap:.8rem}
.ck-bar a{color:#fff}
.ck-actions{display:flex;flex-wrap:wrap;gap:.6rem}
.ck-bar .btn{background:#f1f0e6;color:var(--olive);border-color:#f1f0e6;padding:.7rem 1rem}
.ck-bar .btn.ghost{background:transparent;color:#f1f0e6}
