@font-face{font-family:"Archivo";src:url(/fonts/archivo.woff2) format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap}
@font-face{font-family:"Public Sans";src:url(/fonts/public-sans-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Public Sans";src:url(/fonts/public-sans-500.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Public Sans";src:url(/fonts/public-sans-600.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url(/fonts/plex-mono-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url(/fonts/plex-mono-500.woff2) format("woff2");font-weight:500;font-display:swap}
html{-webkit-text-size-adjust:100%}
/* Layout: full-width bands; navy hero with the Front Range line from the logo, two-sector services grid, process, about ledger, contact with proposal form. */
:root{
  --paper:#eeede8;      /* greige paper, from the logo's stone */
  --sheet:#f8f8f5;      /* raised panels */
  --ink:#2c3a5d;        /* brand navy */
  --ink-2:#363652;      /* brand wordmark navy */
  --stone:#abaca4;      /* brand stone */
  --muted:#5d6273;      /* secondary text, navy-biased grey */
  --rule:#cfcfc7;       /* hairlines */
  --brass:#a87a2f;      /* single accent: survey-tape brass */
  --on-ink:#f3f2ee;     /* text on navy bands */
  --band:#2c3a5d;       /* navy band background */
  --band-rule:rgba(243,242,238,.18);
  --logo-ink:#2c3a5d; --logo-word:#363652; --logo-stone:#abaca4; --logo-stroke:#1d2236;

  --display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --body:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;

  --wrap:1180px;
  --gutter:clamp(16px,4vw,40px);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --paper:#151927; --sheet:#1c2133; --ink:#e7e6e0; --ink-2:#e7e6e0; --stone:#8d8e86;
  --muted:#a3a7b5; --rule:#2d3348; --brass:#d4a65a; --on-ink:#eeede8; --band:#0f1220;
  --band-rule:rgba(238,237,232,.14);
  --logo-ink:#e7e6e0; --logo-word:#e7e6e0; --logo-stone:#8d8e86; --logo-stroke:#e7e6e0;
  color-scheme:dark}}
:root[data-theme="dark"]{
  --paper:#151927; --sheet:#1c2133; --ink:#e7e6e0; --ink-2:#e7e6e0; --stone:#8d8e86;
  --muted:#a3a7b5; --rule:#2d3348; --brass:#d4a65a; --on-ink:#eeede8; --band:#0f1220;
  --band-rule:rgba(238,237,232,.14);
  --logo-ink:#e7e6e0; --logo-word:#e7e6e0; --logo-stone:#8d8e86; --logo-stroke:#e7e6e0;
  color-scheme:dark}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--body);-webkit-font-smoothing:antialiased}
a{color:inherit}
a:focus-visible,button:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
h1,h2,h3{font-family:var(--display);text-wrap:balance;margin:0;line-height:1.02}
p{margin:0}
.label{font:500 12px/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

/* Logo colouring */
.lg-ink{fill:var(--logo-ink)} .lg-word{fill:var(--logo-word)}
.lg-stone{fill:var(--logo-stone);stroke:var(--logo-stroke);stroke-width:1.26;stroke-miterlimit:10}
.lg-mark{fill:var(--logo-ink);stroke:var(--logo-stroke);stroke-width:1.26;stroke-miterlimit:10}

/* Header */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;background:var(--paper);border-bottom:1px solid var(--rule)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:12px}
.brand{display:block;line-height:0}
.brand svg{height:58px;width:auto}
.nav{display:flex;align-items:center;gap:28px;font:600 14px/1 var(--body)}
.nav a{text-decoration:none}
.nav a:not(.btn):hover{color:var(--brass)}
.btn{display:inline-flex;align-items:center;gap:10px;padding:13px 20px;background:var(--ink);color:var(--paper);text-decoration:none;font:600 14px/1 var(--body);letter-spacing:.01em;border:1px solid var(--ink);transition:background .15s,color .15s}
.btn:hover{background:transparent;color:var(--ink)}
.btn.ghost{background:transparent;color:var(--on-ink);border-color:var(--band-rule)}
.btn.ghost:hover{border-color:var(--on-ink)}
.btn.solid-light{background:var(--on-ink);color:var(--band);border-color:var(--on-ink)}
.btn.solid-light:hover{background:transparent;color:var(--on-ink)}
@media (max-width:760px){.nav a:not(.btn){display:none}.brand svg{height:46px}}

/* Hero */
.hero{background:var(--band);color:var(--on-ink);position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--band-rule) 1px,transparent 1px),linear-gradient(90deg,var(--band-rule) 1px,transparent 1px);background-size:56px 56px;opacity:.35;pointer-events:none}
.hero .wrap{position:relative;padding-block:clamp(56px,9vw,112px) 0}
.hero .label{color:var(--stone)}
.hero h1{font-size:clamp(44px,8.2vw,112px);font-weight:800;font-stretch:78%;letter-spacing:-.01em;text-transform:uppercase;margin-top:22px;max-width:13ch}
.hero h1 em{font-style:normal;color:var(--stone)}
.hero .lede{font-size:clamp(17px,1.6vw,20px);max-width:52ch;margin-top:28px;color:var(--on-ink);opacity:.86}
.hero .ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
.range{display:block;width:100%;height:auto;margin-top:clamp(48px,7vw,88px)}
.range path{fill:var(--stone);opacity:.55}
.hero-foot{position:relative;border-top:1px solid var(--band-rule)}
.hero-foot .wrap{padding-block:18px;display:flex;flex-wrap:wrap;gap:12px 40px}
.hero-foot span{font:500 12px/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--stone)}

/* Sections */
section.block{padding-block:clamp(72px,10vw,128px);border-bottom:1px solid var(--rule)}
.head{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:24px 48px;align-items:start;margin-bottom:clamp(40px,5vw,64px)}
.head .eyebrow{font:500 12px/1.5 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border-top:2px solid var(--ink);padding-top:12px}
.head h2{font-size:clamp(34px,4.6vw,60px);font-weight:750;font-stretch:82%;text-transform:uppercase}
.head p{margin-top:18px;color:var(--muted);max-width:60ch}
@media (max-width:760px){.head{grid-template-columns:1fr}}

/* Sectors */
.sectors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:1px solid var(--rule);background:var(--sheet)}
.sector{padding:clamp(28px,4vw,48px);min-width:0}
.sector+.sector{border-left:1px solid var(--rule)}
.sector h3{font-size:clamp(30px,3.4vw,44px);font-weight:800;font-stretch:78%;text-transform:uppercase}
.sector p{margin-top:16px;color:var(--muted);max-width:46ch}
.sector ul{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:0}
.sector li{padding-block:14px;border-top:1px solid var(--rule);display:flex;gap:14px;align-items:baseline}
.sector li::before{content:"";flex:none;width:8px;height:8px;background:var(--brass);transform:rotate(45deg) translateY(-2px)}
@media (max-width:760px){.sectors{grid-template-columns:1fr}.sector+.sector{border-left:0;border-top:1px solid var(--rule)}}
.not{margin-top:20px;font-size:15px;color:var(--muted)}

/* Process */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:2px solid var(--ink)}
.step{padding:28px 28px 0 0;min-width:0}
.step+.step{padding-left:28px;border-left:1px solid var(--rule)}
.step .n{font:500 12px/1 var(--mono);letter-spacing:.12em;color:var(--brass)}
.step h3{font-size:24px;font-weight:750;font-stretch:85%;text-transform:uppercase;margin-top:14px}
.step p{margin-top:12px;color:var(--muted);font-size:16px}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}.step:nth-child(3){padding-left:0;border-left:0}.step:nth-child(n+3){padding-top:40px}}
@media (max-width:520px){.steps{grid-template-columns:1fr}.step,.step+.step{padding:28px 0 0;border-left:0}.step+.step{border-top:1px solid var(--rule);margin-top:28px}}

/* Standards */
.standards{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:start}
.standards .big{font-family:var(--display);font-size:clamp(26px,3vw,38px);font-weight:600;font-stretch:90%;line-height:1.2;text-wrap:balance}
.standards .big + p{margin-top:24px;color:var(--muted);max-width:56ch}
.ledger{border-top:2px solid var(--ink)}
.ledger div{display:grid;grid-template-columns:minmax(0,150px) minmax(0,1fr);gap:20px;padding-block:18px;border-bottom:1px solid var(--rule)}
.ledger dt{font:500 12px/1.6 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.ledger dd{margin:0;font-weight:500}
@media (max-width:860px){.standards{grid-template-columns:1fr}}
@media (max-width:440px){.ledger div{grid-template-columns:1fr;gap:4px}}

/* Contact + proposal form */
.contact{background:var(--band);color:var(--on-ink);padding-block:clamp(72px,10vw,128px)}
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(40px,6vw,96px);align-items:start}
.contact h2{font-size:clamp(40px,5.6vw,80px);font-weight:800;font-stretch:78%;text-transform:uppercase;max-width:12ch;margin-top:18px}
.contact .lede{margin-top:22px;max-width:44ch;opacity:.86}
.contact .label{color:var(--stone)}
.tblock{margin-top:clamp(32px,4vw,48px);border-top:1px solid var(--band-rule)}
.tblock > div{padding-block:18px;border-bottom:1px solid var(--band-rule);min-width:0}
.tblock .v{display:block;margin-top:8px;font-family:var(--display);font-size:clamp(22px,2.4vw,30px);font-weight:700;font-stretch:85%;text-decoration:none;overflow-wrap:anywhere}
.tblock a.v:hover{color:var(--brass)}
.form{border:1px solid var(--band-rule);padding:clamp(24px,3.5vw,40px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.form h3{grid-column:1/-1;font-size:clamp(24px,2.4vw,30px);font-weight:750;font-stretch:85%;text-transform:uppercase}
.field{display:grid;gap:8px;min-width:0}
.field.full{grid-column:1/-1}
.field label{font:500 11px/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--stone)}
.field label span{opacity:.7}
.field input,.field select,.field textarea{width:100%;font:400 16px/1.4 var(--body);color:var(--on-ink);background:transparent;border:0;border-bottom:1px solid var(--band-rule);padding:10px 0;border-radius:0;transition:border-color .15s}
.field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--stone) 50%),linear-gradient(135deg,var(--stone) 50%,transparent 50%);background-position:calc(100% - 10px) 52%,calc(100% - 5px) 52%;background-size:5px 5px;background-repeat:no-repeat}
.field select option{color:#1c2133;background:#f8f8f5}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-bottom-color:var(--brass)}
.field input::placeholder,.field textarea::placeholder{color:var(--stone);opacity:.6}
.form-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:8px}
.form-actions button{cursor:pointer}
.form-note{font-size:15px;color:var(--stone)}
.form-note.ok{color:var(--on-ink)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}
@media (max-width:520px){.form{grid-template-columns:1fr}}

footer{background:var(--band);color:var(--stone);border-top:1px solid var(--band-rule)}
footer .wrap{padding-block:24px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font:500 12px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase}

[data-stone]{color:var(--stone)}
