:root{--ink:#101827;--green:#087f5b;--paper:#f5f7f6;--line:#d4dcda}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,sans-serif;line-height:1.6}img{display:block;width:100%;object-fit:cover}a{color:inherit}.shell{width:min(1160px,calc(100% - 2rem));margin:auto}.skip{position:fixed;z-index:99;left:.5rem;top:.5rem;transform:translateY(-160%);background:#fff;padding:.7rem}.skip:focus{transform:none}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}header{position:sticky;top:0;z-index:10;background:#f5f7f6f5;border-bottom:1px solid var(--line)}.nav-row{min-height:76px;display:flex;align-items:center;gap:1.4rem}.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;font-size:1.25rem;font-weight:900;letter-spacing:.08em}.mark{display:grid;place-items:center;width:34px;height:34px;background:var(--green);color:#fff}.nav{display:flex;gap:1.4rem;margin-left:auto}.nav a{text-decoration:none;font-weight:700;color:#526071}.nav a:hover,.nav a[aria-current=page]{color:var(--green)}.nav-toggle{display:none;background:none;border:1px solid;padding:.55rem;font:inherit}.button{display:inline-block;background:var(--green);color:#fff;border:2px solid var(--green);padding:.75rem 1.1rem;text-decoration:none;font-weight:800;cursor:pointer}.button.dark{background:var(--ink);border-color:var(--ink)}:focus-visible{outline:3px solid #f5b82e;outline-offset:3px}.hero,.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,5vw,5rem);align-items:center}.hero{padding-block:3rem}.hero>div{background:var(--ink);color:#fff;padding:clamp(2rem,5vw,4.5rem)}.hero img{height:560px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.75rem;font-weight:900;color:var(--green)}h1,h2,h3{line-height:1.08;margin:.3rem 0 1rem}h1{font-size:clamp(3rem,8vw,6rem);max-width:12ch}h2{font-size:clamp(2rem,5vw,3.5rem)}.lede{font-size:1.2rem;max-width:58ch}.page-hero,.section{padding-block:clamp(4rem,8vw,7rem)}.tint{background:#e7ecea}.dark-section{background:var(--ink);color:#fff}.cards,.gallery,.process{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.card,.process li{background:#fff;border:1px solid var(--line);padding:2rem}.card p{color:#526071}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:2rem}.project{position:relative;display:block;min-height:400px}.project img{height:100%}.project span{position:absolute;inset:auto 0 0;padding:3rem 1rem 1rem;background:linear-gradient(transparent,#000d);color:#fff}.project strong,.project small{display:block}.gallery figure{margin:0;background:#fff}.gallery img{aspect-ratio:4/3}.gallery figcaption{display:grid;padding:1rem}.check{padding:0;list-style:none}.check li{padding:.5rem;border-bottom:1px solid var(--line)}.check li:before{content:'✓ ';color:var(--green);font-weight:bold}.process{list-style:none;padding:0;counter-reset:n}.process li{counter-increment:n}.process li:before{content:'0' counter(n);display:block;color:var(--green);font-weight:900}.process strong,.process span{display:block}.cta{padding:4rem 0;background:var(--green);color:#fff}.contact{display:grid;grid-template-columns:1.3fr .7fr;gap:4rem}.demo-form{display:grid;gap:.7rem}.demo-form input,.demo-form select,.demo-form textarea{padding:.75rem;border:1px solid #77838b;font:inherit}.row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.row div{display:grid}.form-status{min-height:1.5rem;color:var(--green);font-weight:bold}.contact-card{background:var(--ink);color:#fff;padding:2rem;align-self:start}footer{background:#0b1220;color:#c1c7cf;padding:3rem 1rem 1rem}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem}footer nav{display:grid}footer address{font-style:normal}.copy{text-align:center;border-top:1px solid #333;padding-top:1rem}@media(max-width:760px){.nav-row{flex-wrap:wrap;padding:.7rem 0}.nav-toggle{display:block;margin-left:auto}.header-cta{display:none}.nav{display:none;order:3;width:100%;margin:0;flex-direction:column}.nav.open{display:flex}.hero,.split,.contact{grid-template-columns:1fr}.hero img{height:320px}.cards,.gallery{grid-template-columns:1fr}.process{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr}.row{grid-template-columns:1fr}h1{font-size:clamp(2.7rem,14vw,4rem)}}

/* Keep long page titles inside narrow mobile columns. */
.page-hero h1{overflow-wrap:anywhere}@media(max-width:760px){.page-hero h1{font-size:clamp(2.25rem,11vw,4rem)}}
