:root{--ink:#26241F;--paper:#EEE7D9;--tint:#E4DBC8;--sage:#5F7D52;--forest:#34432F;--sage-deep:#4E6A43;--on-sage:#E4E9DD;--ochre:#E2AA52;--rust:#A35F43;--brown:#3E2C25;--muted:#4A4339;--line:#26241F1F;--bright:var(--ochre);--display:Oswald,'Arial Narrow',Arial,sans-serif;--sans:'Nunito Sans',system-ui,-apple-system,'Segoe UI',sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
main{overflow-x:clip}
a{color:inherit}
a:focus-visible,button:focus-visible{outline:3px solid var(--ochre);outline-offset:3px}
.container{max-width:1200px;margin:0 auto;padding-left:32px;padding-right:32px}
h1,h2,h3{margin:0}

/* header */
.site-header{border-bottom:1px solid var(--line)}
.nav{display:flex;flex-wrap:wrap;gap:16px 40px;align-items:center;justify-content:space-between;padding-top:20px;padding-bottom:20px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.brand-mark{width:48px;height:48px;color:var(--ink);flex-shrink:0}
.mark{width:100%;height:100%;display:block;overflow:visible}
.mark path{stroke-width:3.4}
.mark .mark-sun{display:none;fill:var(--ochre)}
.mark .mark-dot{fill:var(--mark-dot,var(--ochre))}
.sun .mark .mark-sun{display:inline}
.sun{--mark-dot:currentColor}
.brand-name{font-family:var(--display);font-weight:600;font-size:22px;line-height:1.05;letter-spacing:.04em;text-transform:uppercase;color:var(--sage)}
.nav-links{display:flex;flex-wrap:wrap;gap:8px 32px;font-size:15px;font-weight:800}
.nav-links a{text-decoration:none;padding:6px 0}
.nav-links a:hover{color:var(--rust)}
.nav-contact{color:var(--rust)}
.skip-link{position:absolute;left:-9999px;top:8px;background:var(--ink);color:var(--paper);padding:10px 16px;z-index:10}
.skip-link:focus{left:8px}
.nav-toggle{display:none;width:44px;height:44px;border:0;background:transparent;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:7px;padding:0}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--ink)}
@media (max-width:768px){.nav-toggle{display:flex}.js .nav-links{display:none;width:100%;flex-direction:column;gap:0;padding-top:8px}.js .nav-links.open{display:flex}.js .nav-links a{padding:12px 0;border-top:1px solid var(--line);font-size:16px}.brand-name{font-size:18px}.brand-mark{width:40px;height:40px}}

/* type bits */
.eyebrow{font-size:18px;font-weight:800;color:var(--sage-deep)}
.kicker{font-size:12px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--sage-deep)}
.lead{margin:0;font-size:20px;line-height:32px;color:var(--muted);max-width:56ch}
mark{background:none;color:inherit;box-shadow:inset 0 -.28em 0 #E2AA5299}

/* hero */
.hero{text-align:center;padding-top:104px;padding-bottom:32px;display:flex;flex-direction:column;align-items:center;gap:28px}
.hero h1{font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:clamp(30px,9.4vw,112px);line-height:.98;color:var(--sage);max-width:12em;overflow-wrap:break-word}

/* sun image treatment: an ochre disc behind the photo */
.sunlit{position:relative;isolation:isolate}
.sunlit::before{content:"";position:absolute;z-index:-1;border-radius:50%;background:var(--ochre);width:var(--sun,300px);height:var(--sun,300px)}
.sun-tr::before{right:8%;top:calc(var(--sun,300px) * -.5)}
.sun-tl::before{left:-6%;top:calc(var(--sun,300px) * -.35)}
.sun-br::before{right:-6%;bottom:calc(var(--sun,300px) * -.35)}
.sunlit img{filter:grayscale(1) contrast(1.05)}
.hero-photo{padding-top:170px;padding-bottom:112px}
.hero-photo .sunlit{--sun:clamp(180px,26vw,340px)}
.hero-photo img{width:100%;height:clamp(280px,40vw,520px);object-fit:cover;object-position:50% 45%;background:var(--tint)}
.caption{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;padding-top:16px;font-size:14px;color:var(--muted)}

/* approach band */
.band{background:var(--forest);color:var(--paper)}
.band-inner{padding-top:120px;padding-bottom:120px;display:flex;flex-direction:column;gap:64px}
.split{display:flex;flex-wrap:wrap;gap:32px 64px;align-items:end}
.split>*{flex:1 1 420px;min-width:0}
.band h2{font-family:var(--display);font-weight:600;text-transform:uppercase;font-size:clamp(40px,5vw,64px);line-height:1.02}
.band p{margin:0;font-size:18px;line-height:30px;color:var(--on-sage)}
.services{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px 32px}
@media (max-width:1024px){.services{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.services{grid-template-columns:1fr}}
.service{display:flex;flex-direction:column;gap:14px;border-top:4px solid var(--ochre);padding-top:24px}
.numeral{font-family:var(--display);font-weight:600;font-size:22px;color:var(--ochre)}
.service h3{font-size:26px;font-weight:800;line-height:1.2}
.service p{font-size:16px;line-height:26px}

/* impact */
.section{padding-top:120px;padding-bottom:120px}
.section-head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;margin-bottom:64px}
.section h2{font-family:var(--display);font-weight:600;text-transform:uppercase;font-size:clamp(40px,5vw,64px);line-height:1.02;color:var(--brown)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:32px;border-top:2px solid var(--ink);padding-top:28px;margin-bottom:112px}
.stat{display:flex;flex-direction:column;gap:8px}
.stat .n{font-family:var(--display);font-weight:700;font-size:72px;line-height:1;color:var(--brown)}
.stat:last-child .n{color:var(--rust)}
.stat .l{font-size:16px;line-height:24px;color:var(--muted)}
.photo-pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:48px 40px;padding-top:40px}
.photo-pair .sunlit{--sun:180px}
.photo-pair img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--tint)}
.voices{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:56px 40px;margin-top:96px}
.voices figure{margin:0;display:flex;flex-direction:column;justify-content:space-between;gap:20px}
.voices blockquote{margin:0;font-family:var(--display);font-weight:500;text-transform:uppercase;font-size:28px;line-height:1.2}
.voices cite{font-style:normal;font-size:14px;line-height:20px;color:var(--muted);display:flex;align-items:center;gap:14px}
.voices cite b{display:block;color:var(--ink);font-weight:800}
.avatar{width:52px;height:52px;border-radius:50%;flex:none;overflow:hidden;background:var(--ochre);color:var(--ink);display:grid;place-items:center;font:800 14px/1 var(--sans);letter-spacing:.04em}
.avatar img{width:100%;height:100%;object-fit:cover;filter:grayscale(1)}
.cases{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:32px;margin-top:96px}
.case{padding:24px 0 0;display:flex;flex-direction:column;gap:12px;border-top:4px solid var(--sage)}
.case .res{font-family:var(--display);font-weight:600;font-size:40px;line-height:1.05;color:var(--brown)}
.case p{margin:0;font-size:16px;line-height:25px}
.case .why{font-size:14px;line-height:22px;color:var(--muted)}
.case .org{font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--sage-deep)}
.clients{margin-top:96px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:36px 0;display:flex;flex-direction:column;align-items:center;gap:28px}
.logo-row{display:flex;flex-wrap:wrap;gap:28px 52px;justify-content:center;align-items:center}
.logo-row img{height:38px;width:auto;max-width:170px;object-fit:contain;filter:grayscale(1) contrast(1.15);opacity:.75;mix-blend-mode:multiply}
.logo-row img.tall{height:52px}
.logo-row .wm{font-family:var(--display);font-weight:500;font-size:22px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.refer{font-size:15px;line-height:24px;color:var(--muted);text-align:center;max-width:62ch;margin:0}

/* about */
.about{background:var(--tint)}
.about-inner{display:flex;flex-wrap:wrap;gap:80px;align-items:center}
.portrait{flex:0 1 340px;min-width:220px;max-width:340px;width:100%;--sun:62%}
.portrait::before{right:-14%;top:-12%}
.portrait img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:50%;background:var(--paper)}
.about-copy{flex:1 1 440px;min-width:0;display:flex;flex-direction:column;gap:22px}
.about-copy h2{color:var(--brown)}
.about-copy p{margin:0;font-size:18px;line-height:30px}
.about-copy p.muted{font-size:16px;line-height:27px;color:var(--muted)}

/* contact */
.contact-band{background:var(--forest);color:var(--paper)}
.contact{text-align:center;display:flex;flex-direction:column;align-items:center;gap:28px}
.contact-mark{width:96px;height:96px;color:var(--paper)}
.contact h2{font-family:var(--display);font-weight:600;text-transform:uppercase;font-size:clamp(42px,5.6vw,72px);line-height:1.02;color:var(--paper)}
.contact h2 span{color:var(--ochre)}
.contact .lead{color:var(--on-sage)}
.btn{display:inline-flex;align-items:center;min-height:48px;padding:16px 32px;background:var(--ochre);color:var(--ink);font-size:16px;font-weight:800;text-decoration:none}
.btn:hover{background:#EDBE6E}

/* footer */
.site-footer{background:var(--ink);color:var(--paper)}
.footer-inner{padding-top:32px;padding-bottom:32px;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;font-size:13px}

@media (max-width:640px){.container{padding-left:16px;padding-right:16px}.hero{padding-top:64px}.hero-photo{padding-top:110px;padding-bottom:72px}.band-inner,.section{padding-top:80px;padding-bottom:80px}.about-inner{gap:56px}.nav-links{gap:4px 20px}.stat .n{font-size:56px}.photo-pair .sunlit{--sun:130px}}
