:root { --ink:#12222a; --green:#c8d900; --lime:#e0f04c; --paper:#f5f4ee; --line:#cdd1c9; --muted:#657077; --navy:#0b1d25; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Manrope,Arial,sans-serif; }
a { color:inherit; text-decoration:none; }
.site-header { min-height:88px; padding:18px clamp(24px,5.5vw,88px); display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); background:rgba(245,244,238,.94); position:sticky; z-index:10; top:0; backdrop-filter:blur(12px); }
.brand { display:flex; gap:10px; align-items:center; width:max-content; }
.brand-mark { width:39px; height:39px; display:grid; place-items:center; background:var(--ink); color:var(--green); font:500 12px 'DM Mono',monospace; letter-spacing:-1px; }
.brand-logo { width:44px; height:44px; object-fit:contain; background:#fff; }
.brand-copy { display:grid; line-height:.9; letter-spacing:-.8px; font-size:12px; }
.brand-copy strong { font-weight:800; }.brand-copy em { font-weight:500; font-style:normal; }
.nav { display:flex; align-items:center; gap:30px; font-size:13px; font-weight:700; }.nav a:not(.nav-cta):hover { color:#647400; }.nav-cta { padding:12px 16px; background:var(--ink); color:#fff; }.nav-cta span,.button span { margin-left:14px; color:var(--green); }.menu-toggle { display:none; }
.hero { min-height:665px; padding:clamp(55px,9vw,138px) clamp(24px,5.5vw,88px) 68px; display:grid; grid-template-columns:1.05fr .95fr; gap:50px; overflow:hidden; }
.hero-copy { position:relative; z-index:1; }.eyebrow { margin:0 0 25px; font:500 11px 'DM Mono',monospace; letter-spacing:.5px; text-transform:uppercase; color:var(--muted); display:flex; align-items:center; gap:9px; }.eyebrow span { display:inline-block; width:28px; height:2px; background:var(--green); }.hero h1,.section h2,.contact h2 { margin:0; font-size:clamp(47px,5.25vw,83px); letter-spacing:-.075em; line-height:.97; max-width:760px; font-weight:800; }.hero h1 i,.section h2 i,.contact h2 i { font-family:Georgia,serif; font-weight:400; }.lead { max-width:515px; margin:33px 0; color:#516068; font-size:16px; line-height:1.75; }.hero-actions { display:flex; align-items:center; gap:28px; }.button { display:inline-flex; align-items:center; justify-content:center; padding:17px 19px; font-size:13px; font-weight:800; transition:transform .2s,background .2s; }.button:hover { transform:translateY(-3px); }.button-primary { background:var(--ink); color:#fff; }.text-link { display:inline-flex; gap:14px; align-items:center; font-size:13px; font-weight:800; border-bottom:1px solid var(--ink); padding-bottom:4px; }.text-link span { font-size:17px; }.hero-visual { min-height:460px; position:relative; background:var(--green); overflow:hidden; align-self:center; }.grid-lines { position:absolute; inset:0; background-image:linear-gradient(rgba(18,34,42,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(18,34,42,.12) 1px,transparent 1px); background-size:52px 52px; }.control-ring { width:min(29vw,370px); height:min(29vw,370px); min-width:270px; min-height:270px; position:absolute; top:50%; left:50%; transform:translate(-50%,-49%); border:1px solid rgba(18,34,42,.5); border-radius:50%; display:grid; place-items:center; }.control-ring:before,.control-ring:after { content:""; position:absolute; border:1px solid rgba(18,34,42,.4); border-radius:50%; }.control-ring:before { inset:12%; }.control-ring:after { inset:27%; }.ring-center { z-index:1; width:86px; height:86px; border-radius:50%; background:var(--ink); color:var(--green); display:grid; place-items:center; text-align:center; align-content:center; font:500 20px 'DM Mono',monospace; line-height:1; }.ring-center small { font-size:7px; letter-spacing:1px; color:#fff; }.data-card { position:absolute; z-index:2; padding:16px; background:var(--paper); min-width:147px; box-shadow:9px 9px 0 rgba(18,34,42,.11); }.data-card small,.data-card span,.visual-label,.mono { font:400 10px 'DM Mono',monospace; letter-spacing:.5px; }.data-card strong { display:block; font-size:31px; letter-spacing:-2px; margin:5px 0; }.data-card span { color:var(--muted); }.card-a { top:10%; left:4%; }.card-b { right:5%; bottom:13%; }.tag { position:absolute; z-index:3; font:500 10px 'DM Mono',monospace; background:var(--ink); color:#fff; padding:9px 11px; }.tag-one { right:2%; top:18%; }.tag-two { left:9%; bottom:11%; }.visual-label { position:absolute; bottom:18px; right:21px; font-size:9px; }
.intro-strip { border-top:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; align-items:center; padding:24px clamp(24px,5.5vw,88px); gap:30px; font-size:14px; }.intro-strip p { margin:0; }.intro-strip strong { font-size:25px; letter-spacing:-1px; }.strip-rule { flex:1; height:1px; background:var(--line); }.intro-strip .mono { color:var(--muted); white-space:nowrap; }
.section { padding:clamp(76px,10vw,146px) clamp(24px,5.5vw,88px); }.services { display:grid; grid-template-columns:.85fr 1.15fr; gap:60px; }.section-heading h2 { font-size:clamp(42px,4.45vw,68px); }.service-list { border-top:1px solid var(--ink); }.service-item { position:relative; display:grid; grid-template-columns:53px 1fr 28px; gap:14px; padding:26px 4px 27px 0; border-bottom:1px solid var(--line); transition:padding .2s,background .2s; }.service-item:hover { padding-left:14px; background:#e9ebdf; }.number { margin:4px 0; font:400 11px 'DM Mono',monospace; color:#718000; }.service-item h3 { margin:0 0 9px; font-size:20px; letter-spacing:-.6px; }.service-item p:not(.number) { margin:0; max-width:500px; color:var(--muted); font-size:13px; line-height:1.65; }.service-arrow { font-size:22px; text-align:right; }.method { background:var(--navy); color:#fff; }.eyebrow.light { color:#b6c0c2; }.method h2 { font-size:clamp(46px,5.2vw,76px); }.method h2 i,.contact h2 i { color:var(--green); }.steps { margin-top:88px; display:grid; grid-template-columns:repeat(4,1fr); }.steps article { min-height:218px; padding:19px 24px 10px 0; border-top:1px solid #4a5860; border-right:1px solid #4a5860; }.steps article:not(:first-child) { padding-left:24px; }.steps article:last-child { border-right:0; }.steps span { color:var(--green); font:500 11px 'DM Mono',monospace; }.steps h3 { margin:55px 0 10px; font-size:16px; }.steps p { margin:0; color:#b6c0c2; line-height:1.65; font-size:12px; }.about { display:grid; grid-template-columns:1.2fr .8fr; gap:75px; align-items:end; }.about h2 { font-size:clamp(38px,4vw,60px); }.about-copy { max-width:410px; }.about-copy p { color:var(--muted); font-size:15px; line-height:1.75; margin:0 0 20px; }.text-link.dark { margin-top:12px; }
.contact { padding:clamp(67px,9vw,120px) clamp(24px,5.5vw,88px); background:var(--green); display:grid; grid-template-columns:1.2fr .8fr; gap:65px; align-items:end; }.contact h2 { font-size:clamp(46px,5.05vw,76px); }.contact-side { max-width:360px; }.contact-side p { font-size:15px; line-height:1.7; color:#384750; margin:0 0 28px; }.button-light { background:var(--ink); color:#fff; }.button-light span { color:var(--green); }
footer { min-height:155px; padding:35px clamp(24px,5.5vw,88px); background:var(--ink); color:#fff; display:grid; grid-template-columns:1fr 1fr 1fr; align-items:center; }.footer-brand .brand-mark { background:var(--green); color:var(--ink); }.footer-brand { color:#fff; }.footer-brand .brand-copy em { color:#b8c2c4; } footer p { margin:0; font-size:12px; line-height:1.5; } footer .mono { color:#a9b5b8; text-align:right; }
@media (max-width:800px) { .site-header { min-height:70px; }.nav { display:none; position:absolute; left:0; top:70px; width:100%; padding:23px 24px; gap:18px; flex-direction:column; align-items:flex-start; background:var(--paper); border-bottom:1px solid var(--line); }.nav.open { display:flex; }.menu-toggle { display:flex; align-items:center; gap:8px; border:0; background:transparent; font:700 12px Manrope,sans-serif; }.menu-toggle span,.menu-toggle:after { content:""; display:block; width:15px; height:1.5px; background:var(--ink); }.hero { grid-template-columns:1fr; padding-top:72px; gap:45px; }.hero-visual { min-height:395px; }.intro-strip { align-items:flex-start; flex-wrap:wrap; gap:12px; }.strip-rule { display:none; }.intro-strip .mono { white-space:normal; }.services,.about,.contact { grid-template-columns:1fr; gap:45px; }.steps { grid-template-columns:1fr 1fr; margin-top:50px; }.steps article:nth-child(2) { border-right:0; }.steps article:nth-child(3) { padding-left:0; }.steps article:nth-child(4) { padding-left:24px; border-right:0; }.about { align-items:start; } footer { grid-template-columns:1fr 1fr; gap:25px; } footer p:nth-of-type(1) { display:none; } footer .mono { text-align:right; } }
@media (max-width:480px) { .hero h1 { font-size:46px; }.hero-actions { flex-wrap:wrap; gap:22px; }.data-card { transform:scale(.82); }.card-a { left:-1%; }.card-b { right:-4%; }.tag-one { right:-4%; }.control-ring { transform:translate(-50%,-49%) scale(.9); }.service-item { grid-template-columns:38px 1fr 18px; }.steps { grid-template-columns:1fr; }.steps article,.steps article:not(:first-child),.steps article:nth-child(3),.steps article:nth-child(4) { border-right:0; padding-left:0; }.steps h3 { margin-top:28px; }.steps article { min-height:160px; }.contact h2 { font-size:45px; } footer { grid-template-columns:1fr; } footer .mono { text-align:left; } }

/* Visual refresh: fieldwork-led service story */
.hero-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.hero-photo-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(11,29,37,.58),rgba(11,29,37,.08) 70%); }
.hero-photo .grid-lines,.hero-photo .control-ring,.hero-photo .card-a,.hero-photo .card-b,.hero-photo .tag,.hero-photo .visual-label { display:none; }
.hero-photo .visual-label { color:#fff; }
.featured-service { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center; background:#e9ebdf; }
.featured-copy { max-width:620px; }
.featured-copy h2 { font-size:clamp(42px,4.4vw,67px); margin-bottom:26px; }
.featured-copy > p:not(.eyebrow) { color:var(--muted); font-size:16px; line-height:1.75; max-width:520px; margin:0 0 30px; }
.featured-image { min-height:380px; overflow:hidden; }
.featured-image img { width:100%; height:100%; min-height:380px; object-fit:cover; display:block; filter:saturate(.9); }
.service-primary { background:#edf2c5; }
.testimonials { background:#fff; }
.testimonials .section-heading { margin-bottom:58px; }
.testimonial-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.testimonial-grid blockquote { margin:0; padding:28px; border:1px solid var(--line); background:var(--paper); min-height:245px; display:flex; flex-direction:column; justify-content:space-between; }
.testimonial-grid blockquote > p { margin:0; font-family:Georgia,serif; font-size:21px; line-height:1.35; letter-spacing:-.3px; }
.testimonial-grid blockquote footer { display:grid; gap:4px; padding:0; min-height:0; background:transparent; color:var(--ink); }
.testimonial-grid blockquote footer strong { font-size:13px; }
.testimonial-grid blockquote footer span { font:400 10px 'DM Mono',monospace; color:var(--muted); text-transform:uppercase; }
.testimonial-note { margin:28px 0 0; font:400 10px 'DM Mono',monospace; color:var(--muted); }
@media (max-width:800px) { .featured-service { grid-template-columns:1fr; gap:45px; }.featured-image,.featured-image img { min-height:300px; }.testimonial-grid { grid-template-columns:1fr; } }
