:root{--paper:#F3F5F2;--paper-2:#E7ECE8;--ink:#17201C;--ink-2:#4A5751;--spruce:#24493E;--spruce-2:#3C6B5D;--line:#CBD4CF;--ochre:#C9921A;--white:#FFFFFF;--w:1180px;--g:clamp(16px,4vw,40px)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Archivo",system-ui,sans-serif;font-variation-settings:"wdth" 100;font-size:17px;line-height:1.6}
img,svg{display:block;max-width:100%}
a{color:var(--spruce)}
a:hover{color:var(--ink)}
:focus-visible{outline:3px solid var(--ochre);outline-offset:3px}
.wrap{max-width:var(--w);margin:0 auto;padding:0 var(--g)}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:8px 12px;z-index:10}
.skip:focus{left:8px}
h1,h2,h3{font-variation-settings:"wdth" 112;font-weight:620;line-height:1.12;letter-spacing:-.01em;margin:0}
h1{font-size:clamp(2.1rem,4.3vw,3.35rem)}
h2{font-size:clamp(1.7rem,3.2vw,2.5rem)}
h3{font-size:1.2rem;letter-spacing:0}
p{margin:0 0 1em}
.lede{font-size:1.18rem;color:var(--ink-2);max-width:36em}
.top{border-bottom:1px solid var(--line);background:var(--paper)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:76px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}
.brand svg{width:38px;height:38px;flex:none}
.brand b{display:block;font-variation-settings:"wdth" 118;font-weight:680;font-size:1.06rem;line-height:1.1}
.brand span{display:block;font-size:.8rem;color:var(--ink-2);line-height:1.2}
.nav{display:flex;align-items:center;gap:24px}
.nav a{color:var(--ink);text-decoration:none;font-size:.97rem}
.nav a:hover,.nav a[aria-current=page]{color:var(--spruce);text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}
.nav .tel{font-weight:600;color:var(--spruce)}
.menu-btn{display:none;background:none;border:1px solid var(--line);padding:8px 12px;font:inherit;color:var(--ink);border-radius:2px}
@media (max-width:900px){.menu-btn{display:block}.nav{display:none;position:absolute;left:0;right:0;top:76px;background:var(--paper);flex-direction:column;align-items:flex-start;gap:0;border-bottom:1px solid var(--line);padding:8px var(--g) 16px;z-index:5}.nav.open{display:flex}.nav a{padding:10px 0;width:100%}.top{position:relative}}
.btn{display:inline-block;padding:14px 22px;border-radius:2px;text-decoration:none;font-weight:600;font-size:1rem;border:2px solid var(--spruce);line-height:1.2;font-family:inherit;cursor:pointer}
.btn.solid{background:var(--spruce);color:#fff}
.btn.solid:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.btn.plain{color:var(--spruce);background:transparent}
.btn.plain:hover{background:var(--white);color:var(--ink)}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.hero{padding:clamp(48px,7vw,96px) 0 clamp(40px,6vw,72px)}
.hero .wrap{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(32px,5vw,72px);align-items:center}
.hero h1{max-width:14em}
.hero .lede{margin-top:22px}
.sheet{margin:0;background:var(--white);border:1px solid var(--line);padding:18px 18px 0}
.sheet svg.detail{width:100%;height:auto}
.detail .ln{fill:none;stroke:var(--spruce);stroke-width:1.6}
.detail .thin{fill:none;stroke:var(--spruce-2);stroke-width:.8}
.detail .hatch{fill:none;stroke:var(--spruce-2);stroke-width:.6;opacity:.7}
.detail .dim{fill:none;stroke:var(--ink-2);stroke-width:.7}
.detail text{font-family:"Archivo",sans-serif;font-size:12.5px;fill:var(--ink-2)}
.detail .call{font-size:13px;fill:var(--ink)}
.titleblock{display:grid;grid-template-columns:1.6fr 1fr 1fr;border-top:1px solid var(--line);margin:14px -18px 0}
.titleblock div{padding:10px 14px;border-left:1px solid var(--line);font-size:.78rem;color:var(--ink-2);line-height:1.35}
.titleblock div:first-child{border-left:0}
.titleblock strong{display:block;color:var(--ink);font-weight:600;font-size:.86rem}
@media (prefers-reduced-motion:no-preference){.detail .draw{stroke-dasharray:var(--len,600);stroke-dashoffset:var(--len,600);animation:draw 1.6s ease-out .2s forwards}.detail .late{opacity:0;animation:fade .6s ease-out 1.5s forwards}}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fade{to{opacity:1}}
@media (max-width:900px){.hero .wrap{grid-template-columns:1fr}}
section{padding:clamp(56px,8vw,104px) 0}
.band{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.dark{background:var(--spruce);color:#E9F0EC}
.dark h2,.dark h3{color:#fff}
.dark a{color:#fff}
.head{display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(24px,5vw,72px);align-items:end;margin-bottom:clamp(32px,5vw,56px)}
.head p{color:var(--ink-2);margin:0}
.dark .head p{color:#C9D8D1}
@media (max-width:800px){.head{grid-template-columns:1fr}}
.clients{padding:28px 0;border-bottom:1px solid var(--line)}
.clients .wrap{display:flex;flex-wrap:wrap;gap:10px 36px;align-items:baseline}
.clients p{margin:0;color:var(--ink-2);font-size:.95rem}
.clients ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 28px}
.clients li{font-weight:600}
.svc-list{border-top:2px solid var(--ink)}
.svc-row{display:grid;grid-template-columns:minmax(220px,1fr) 2fr auto;gap:24px;padding:26px 0;border-bottom:1px solid var(--line);align-items:baseline;text-decoration:none;color:var(--ink)}
.svc-row p{margin:0;color:var(--ink-2)}
.svc-row span{color:var(--spruce);font-weight:600;font-size:.95rem;white-space:nowrap}
.svc-row:hover h3{color:var(--spruce);text-decoration:underline;text-underline-offset:5px}
@media (max-width:760px){.svc-row{grid-template-columns:1fr;gap:6px}}
.lic{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(28px,5vw,64px);align-items:start}
.usmap path{fill:#DCE3DF;stroke:var(--white);stroke-width:.6;stroke-linejoin:round}
.usmap path.on{fill:var(--spruce)}
.usmap path.on:hover{fill:var(--ochre)}
.states{columns:2;column-gap:28px;list-style:none;padding:0;margin:0 0 24px}
.states li{padding:7px 0;border-bottom:1px solid var(--line);break-inside:avoid;display:flex;justify-content:space-between;gap:12px;font-size:.98rem}
.states li small{color:var(--ink-2);font-size:.82rem}
.fine{font-size:.88rem;color:var(--ink-2)}
@media (max-width:860px){.lic{grid-template-columns:1fr}}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:0;counter-reset:s;border-top:1px solid rgba(255,255,255,.25)}
.steps li{counter-increment:s;padding:24px 24px 0 0}
.steps li::before{content:counter(s);display:block;font-variation-settings:"wdth" 125;font-weight:300;font-size:3rem;line-height:1;color:#9FC2B4;margin-bottom:14px}
.steps h3{margin-bottom:8px}
.steps p{color:#C9D8D1;font-size:.97rem}
@media (max-width:900px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}
.exp{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(28px,5vw,72px)}
.exp-list{margin:0;padding:0;list-style:none}
.exp-list li{padding:20px 0;border-bottom:1px solid var(--line)}
.exp-list li:first-child{border-top:2px solid var(--ink)}
.exp-list strong{display:block;font-size:1.06rem}
.exp-list span{color:var(--ink-2);font-size:.96rem}
@media (max-width:860px){.exp{grid-template-columns:1fr}}
.cta .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px}
.cta h2{max-width:18em}
.pagehead{padding:clamp(48px,7vw,88px) 0 clamp(32px,4vw,48px);border-bottom:1px solid var(--line)}
.pagehead .lede{margin-top:18px}
.svc{display:grid;grid-template-columns:1fr 1.6fr;gap:clamp(24px,5vw,72px);padding:clamp(40px,6vw,64px) 0;border-bottom:1px solid var(--line)}
.svc:last-child{border-bottom:0}
.svc h2{font-size:clamp(1.45rem,2.4vw,1.9rem)}
.svc .who{margin-top:14px;color:var(--ink-2);font-size:.95rem}
.ticks{list-style:none;padding:0;margin:0 0 20px;display:grid;grid-template-columns:1fr 1fr;gap:0 28px}
.ticks li{padding:9px 0 9px 22px;border-bottom:1px solid var(--line);position:relative}
.ticks li::before{content:"";position:absolute;left:0;top:18px;width:10px;height:2px;background:var(--spruce)}
.deliv{font-size:.95rem;color:var(--ink-2)}
.deliv strong{color:var(--ink)}
@media (max-width:760px){.svc{grid-template-columns:1fr}.ticks{grid-template-columns:1fr}}
.bio{display:grid;grid-template-columns:1fr 1.5fr;gap:clamp(28px,5vw,72px)}
.facts{margin:0;display:grid;grid-template-columns:auto 1fr;gap:0}
.facts dt,.facts dd{padding:12px 0;border-bottom:1px solid var(--line);margin:0}
.facts dt{color:var(--ink-2);padding-right:24px;font-size:.93rem}
.facts dd{font-weight:500}
.prose{max-width:40em}
.prose p{font-size:1.06rem}
@media (max-width:860px){.bio{grid-template-columns:1fr}}
.contact{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(28px,5vw,72px);align-items:start}
form{display:grid;gap:18px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
label{display:block;font-weight:600;font-size:.94rem;margin-bottom:6px}
input,select,textarea{width:100%;font:inherit;font-size:1rem;color:var(--ink);background:var(--white);border:1px solid #AEBBB4;border-radius:2px;padding:12px 14px}
textarea{min-height:160px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:3px solid var(--ochre);outline-offset:0;border-color:var(--spruce)}
.hint{font-size:.86rem;color:var(--ink-2);margin:4px 0 0}
label .hint{font-weight:400}
.direct{background:var(--white);border:1px solid var(--line);padding:28px}
.direct h2{font-size:1.4rem;margin-bottom:14px}
.direct p{margin:0 0 14px}
.direct a.big{font-size:1.3rem;font-weight:600;text-decoration:none}
.status{font-weight:600;color:var(--spruce);min-height:1.4em;margin:0}
@media (max-width:860px){.contact{grid-template-columns:1fr}.row2{grid-template-columns:1fr}}
.foot{background:var(--ink);color:#B8C4BE;padding:56px 0 32px;font-size:.93rem}
.foot a{color:#fff;text-decoration:none}
.foot a:hover{text-decoration:underline}
.foot .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px;margin-bottom:40px}
.foot h3{color:#fff;font-size:1rem;margin-bottom:12px}
.foot ul{list-style:none;padding:0;margin:0}
.foot li{padding:3px 0}
.foot .legal{border-top:1px solid #2F3B36;padding-top:20px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:.84rem}
@media (max-width:760px){.foot .cols{grid-template-columns:1fr}}
.lic>*,.bio>*,.exp>*,.contact>*,.hero .wrap>*,.head>*{min-width:0}
.facts dd{overflow-wrap:anywhere}
@media (max-width:520px){.titleblock{grid-template-columns:1fr 1fr}.titleblock div:first-child{grid-column:1/-1;border-bottom:1px solid var(--line)}.titleblock div:nth-child(2){border-left:0}.states{columns:1}}
.shot{margin:28px 0 0}
.shot img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--paper-2)}
.shot.tall img{aspect-ratio:4/5}
.exp .shot{margin-top:40px;max-width:420px}
.photos{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:14px;margin:0 0 clamp(36px,5vw,56px)}
.photos figure{margin:0}
.photos img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--paper-2)}
.photos figure:first-child img{aspect-ratio:auto;height:100%}
.photos figure:first-child{display:grid;grid-template-rows:1fr auto}
.photos figcaption{font-size:.86rem;color:var(--ink-2);padding-top:8px}
@media (max-width:760px){.photos{grid-template-columns:1fr 1fr}.photos figure:first-child{grid-column:1/-1}.photos figure:first-child img{aspect-ratio:16/9;height:auto}.shot.tall img{aspect-ratio:4/3}}
.proj{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:0 36px;border-top:2px solid var(--ink)}
.proj li{padding:22px 0 26px;border-bottom:1px solid var(--line)}
.proj .where{display:block;font-size:.86rem;color:var(--spruce);font-weight:600;margin-bottom:6px}
.proj h3{margin-bottom:8px}
.proj p{margin:0;color:var(--ink-2);font-size:.96rem}
@media (max-width:900px){.proj{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.proj{grid-template-columns:1fr}}
.proj figure{margin:0 0 16px}
.proj img{width:100%;aspect-ratio:3/2;object-fit:cover;background:var(--paper-2)}
.proj{gap:0 32px}
.proj li{padding-top:24px}

.headshot{margin:20px 0 0;max-width:280px}
.headshot img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border:1px solid var(--line)}
