:root{
  --paper:#F8F6EF; --forest:#8b574e /*2F4A38*/; --olive:#79807a;
  --terracotta:#B5623C; --sand:#C9BBA0; --ink:#8b574e /*26302A*/;
  --measure:66ch; --pad:clamp(20px,5vw,64px);
  --font-head:'Zilla Slab',Georgia,serif;
  --font-body:'Inter',system-ui,sans-serif;
}
@font-face{font-family:'Zilla Slab';src:url('../fonts/zilla-slab-v12-latin-600.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Zilla Slab';src:url('../fonts/zilla-slab-v12-latin-regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Inter';src:url('../fonts/inter-v20-latin-300.woff2') format('woff2');font-weight:300;font-display:swap}
@font-face{font-family:'Inter';src:url('../fonts/inter-v20-latin-regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Inter';src:url('../fonts/inter-v20-latin-500.woff2') format('woff2');font-weight:500;font-display:swap}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--font-body);font-weight:300;line-height:1.7;
  font-size:clamp(15px,1.05vw,17px);-webkit-font-smoothing:antialiased} 
h1,h2,h3,h4{font-family:var(--font-head);font-weight:600;color:var(--forest);line-height:1.08;margin:0 0 .5em}
img{max-width:100%;display:block}
a{color:var(--forest)}
a:hover{color:var(--olive)}
.wrap{max-width:1200px;margin:0 auto;padding-inline:var(--pad);padding-block: clamp(10px, 6vh, 80px);}
.kicker{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--olive);margin-bottom:1em}
.kl-btn{display:inline-block;background:var(--olive);color:var(--paper);
  font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;
  padding:13px 26px;border-radius:2px;text-decoration:none;transition:background .2s}
.kl-btn:hover{background:var(--terracotta);color:var(--paper);}
.kl-btn--ghost{background:transparent;color:var(--forest);border:1px solid var(--forest)}
.kl-btn--terracotta{background:var(--olive);color:var(--paper)}
.prose-body{font-size:1.05rem}
.prose-body p{margin:0 0 1.3em;max-width:var(--measure)}
.site-header{position:fixed;inset:0 0 auto 0;z-index:50;transition:background .3s,box-shadow .3s}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;padding-block:16px}

.site-header__inner.wrap{max-width:none !important;}
.brand{text-decoration:none;display:inline-block}
.brand__mark{font-family:var(--font-head);font-weight:600;font-size:1.5rem;line-height:1.0;letter-spacing:.2px;color:#fff;transition:color .3s}
.brand__mark span{display:block}
.site-nav ul{display:flex;gap:26px;list-style:none;margin:0;padding:0}
.site-nav a{color:#fff;text-decoration:none;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;opacity:.95;transition:color .3s}
.site-nav a[aria-current]{border-bottom:1px solid currentColor}
.site-header.is-solid{background:var(--paper);box-shadow:0 1px 0 rgba(38,48,42,.08)}
.site-header.is-solid .brand__mark{color:var(--forest)}
.site-header.is-solid .site-nav a{color:var(--forest)}
.nav-toggle{display:none;background:none;border:0;flex-direction:column;gap:5px;cursor:pointer;padding:8px}
.nav-toggle span{width:24px;height:2px;background:#fff;transition:background .3s}
.site-header.is-solid .nav-toggle span{background:var(--forest)}
@media(max-width:820px){
  .nav-toggle{display:flex}
  .site-nav{position:fixed;inset:0;background:var(--forest);display:flex;align-items:center;justify-content:center;transform:translateX(100%);transition:transform .3s}
  .site-nav.open{transform:none}
  .site-nav ul{flex-direction:column;gap:22px;text-align:center}
  .site-nav a{color:var(--paper);font-size:1.1rem}
}
body:not(.page-home){padding-top:76px}
body:not(.page-home) .site-header{background:var(--paper);box-shadow:0 1px 0 rgba(38,48,42,.08)}
body:not(.page-home) .site-header .brand__mark{color:var(--forest)}
/* forest links only on the desktop solid nav; the mobile overlay keeps paper links */
@media(min-width:821px){body:not(.page-home) .site-nav a{color:var(--forest)}}
body:not(.page-home) .nav-toggle span{background:var(--forest)}
.splash{position:relative;height:100svh;min-height:560px;overflow:hidden;display:flex;align-items:flex-end}
.splash__video,.splash__image,.splash__video-mobile,.splash__image-mobile{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.splash__image-mobile, .splash__video-mobile{display:none}
.splash::after{content:'';position:absolute;inset:0;background:linear-gradient(rgba(20,30,24,.15),rgba(20,30,24,.5))}
.splash__overlay{position:relative;z-index:2;padding-bottom:clamp(40px,9vh,90px);color:#fff}
.splash__headline{color:#fff;font-size:clamp(2.6rem,6vw,4.6rem);max-width:16ch;text-shadow:0 2px 30px rgba(0,0,0,.3)}
.splash .kicker{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--paper);margin-bottom:1em}
 .splash .kicker{font-size:.9rem;letter-spacing:.22em;text-transform:uppercase;color:var(--paper);margin-bottom:1em}
@media(max-width:820px){
  .splash .kicker{font-size:.72rem;}
  .splash__video, .splash__image{display:none}
  .splash__image-mobile, .splash__video-mobile{display:block}
}
.band{padding-block:clamp(48px,9vh,110px)}
.kl-lead{font-size:clamp(1.05rem,1.6vw,1.35rem);line-height:1.7;font-weight:300}
.section-title{font-size:2.5rem;margin:0 0 .8em;text-align:center;}
.thumb-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.thumb{aspect-ratio:1;overflow:hidden;border-radius:6px}
.thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.thumb:hover img{transform:scale(1.05)}
.service-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.service-card{background:#fff;border:1px solid var(--paper);border-radius:10px;padding:28px}
.service-card h3{font-size:1.3rem;margin-bottom:.4em}
.strip{background:var(--forest);color:var(--paper);padding-block:clamp(56px,11vh,130px)}
.site-footer{background:var(--ink);color:var(--paper);padding-block:48px;margin-top:0}
.site-footer__inner{display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;align-items:center}
.site-footer .brand__mark{color:var(--paper)}
.site-footer nav ul{display:flex;flex-wrap:wrap;gap:18px;list-style:none;margin:0;padding:0}
.site-footer a{color:var(--paper);text-decoration:none;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase}
.site-footer__meta{font-size:.8rem;color:var(--paper);line-height:1.6}
@media(max-width:820px){.thumb-grid{grid-template-columns:repeat(2,1fr)}.service-cards{grid-template-columns:1fr}}

.page-image img{width:100%;border-radius:10px;margin:0 0 2em}
.sg-item-image img{border-radius:10px;}

.acc-item{border-top:1px solid #E5DECF}
.acc-item:last-child{border-bottom:1px solid #E5DECF}
.acc-head{width:100%;display:grid;grid-template-columns:1fr auto;gap:4px 16px;align-items:center;
  background:none;border:0;text-align:left;padding:26px 4px;cursor:pointer}
.acc-title{grid-column:1;font-family:var(--font-head);font-weight:600;font-size:1.5rem;color:var(--forest)}
.acc-teaser{grid-column:1;font-size:.95rem;color:var(--ink);opacity:.8}
.acc-icon{grid-column:2;grid-row:1/3;width:22px;height:22px;position:relative}
.acc-icon::before,.acc-icon::after{content:'';position:absolute;background:var(--forest);transition:transform .25s}
.acc-icon::before{top:10px;left:0;width:22px;height:2px}
.acc-icon::after{top:0;left:10px;width:2px;height:22px}
.acc-head[aria-expanded=true] .acc-icon::after{transform:scaleY(0)}
.acc-panel{padding:0 4px 12px}
.acc-panel .stage{padding:0 0 22px}
.acc-panel .stage h3{font-size:1.05rem;color:var(--olive);margin-bottom:.3em}
.acc-panel .stage p{max-width:var(--measure);margin:0}
.gallery{columns:3 260px;column-gap:14px}
.gallery__item{display:block;width:100%;margin:0 0 14px;padding:0;border:0;background:none;cursor:pointer;break-inside:avoid;border-radius:8px;overflow:hidden}
.gallery__item img{width:100%;height:auto;transition:transform .5s,filter .3s}
.gallery__item:hover img{transform:scale(1.04);filter:brightness(.94)}
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(20,26,22,.92);
  display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s}
.lightbox[hidden]{display:none}
.lightbox.open{opacity:1}
.lightbox__img{max-width:90vw;max-height:86vh;object-fit:contain;border-radius:4px;
  transform:scale(.94);transition:transform .3s}
.lightbox.open .lightbox__img{transform:scale(1)}
.lightbox__close,.lightbox__nav{position:absolute;background:none;border:0;color:#fff;cursor:pointer;opacity:.85}
.lightbox__close{top:20px;right:26px;font-size:2.4rem;line-height:1}
.lightbox__nav{top:50%;transform:translateY(-50%);font-size:3rem;padding:12px}
.lightbox__nav--prev{left:16px}.lightbox__nav--next{right:16px}
.lightbox__close:hover,.lightbox__nav:hover{opacity:1}
@media(max-width:820px){.gallery{columns:2 140px}.lightbox__nav{font-size:2rem}}
.page-sustainability{background:linear-gradient(var(--paper),#EEF1E8)}
.page-sustainability .prose .kicker{color:var(--olive)}
.page-sustainability .prose h1{color:var(--forest)}
/* Contact page */
.contact{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(28px,6vw,80px);align-items:start}
.contact__details{margin-top:1.4em;color:var(--olive);font-size:1.05rem}
.form-group{margin-bottom:18px}
.contact input,.contact textarea{width:100%;font-family:var(--font-body);font-size:1rem;
  padding:14px 16px;border:1px solid var(--sand);border-radius:4px;background:#fff;color:var(--ink);box-sizing:border-box}
.contact textarea{min-height:150px;resize:vertical}
.contact label{display:block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--olive);margin-bottom:6px}
.contact input:focus,.contact textarea:focus{outline:2px solid var(--olive);outline-offset:1px;border-color:var(--olive)}
.contact .button,.contact [type=submit]{border:0;cursor:pointer;background:var(--forest);color:var(--paper);
  font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;padding:14px 30px;border-radius:2px}
.contact .button:hover,.contact [type=submit]:hover{background:var(--ink)}
.contact .form-honeybear{position:absolute!important;left:-9999px}
@media(max-width:820px){.contact{grid-template-columns:1fr}}

/* --- Task 12: responsive polish --- */
@media(max-width:820px){
  .site-header__inner{padding-block:12px}
  .band{padding-block:clamp(40px,8vh,70px)}
  .splash{min-height:520px}
  .site-footer__inner{flex-direction:column;text-align:center;align-items:center}
}
@media(max-width:400px){
  .splash__headline{font-size:2.2rem}
}
/* comfortable tap targets (accordion headers already exceed 44px via padding) */
.site-nav a{min-height:24px;display:inline-flex;align-items:center;justify-content:center}
.kl-btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center}

/* --- Partners page --- */
.partner{padding-block:clamp(32px,6vh,60px);border-top:1px solid #E5DECF}
.partner:first-of-type{border-top:0;padding-top:clamp(12px,3vh,28px)}
.partner h2{font-size:1.7rem;margin-bottom:.45em}
.partner__body{max-width:var(--measure);margin:0 0 1.7em}
.partner__media{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.2vw,28px)}
.partner__media img{width:100%;border-radius:10px}
@media(max-width:820px){.partner__media{grid-template-columns:1fr;gap:16px}}