@import url('https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700;800&display=swap');
:root{--ink:#172632;--navy:#102333;--slate:#4f616d;--paper:#f7f6f0;--accent:#e8ff91;--line:#d4dbd7}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 Geist,Arial,sans-serif}a{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #568800;outline-offset:4px}.wrap{width:min(1120px,calc(100% - 48px));margin:auto}.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:78px}.nav a{text-decoration:none}.brand{display:flex;align-items:center;gap:10px;font-weight:800}.brand small{font-weight:600;color:var(--slate)}.mark{width:21px;height:24px;border:2px solid currentColor;position:relative;display:inline-block}.mark:after{content:'';position:absolute;inset:3px 5px;border-left:2px solid currentColor}nav{display:flex;gap:24px;font-size:.9rem}.button{display:inline-block;border:0;background:var(--accent);color:var(--navy);font:700 1rem/1.2 Geist,Arial,sans-serif;text-decoration:none;padding:16px 20px;cursor:pointer}.button:hover{background:#d2ee6a}.small{font-size:.86rem;padding:12px 15px}.hero,.quote{background:var(--navy);color:#fff}.hero-grid{display:grid;grid-template-columns:1.06fr 1fr;align-items:center;gap:52px;padding-block:74px}.eyebrow,.category{font-size:.76rem;letter-spacing:.14em;font-weight:700}.eyebrow{margin:0 0 14px}.hero .eyebrow,.quote .eyebrow{color:var(--accent)}h1,h2,h3{line-height:1.06;margin:0;letter-spacing:-.045em}h1{font-size:clamp(3.2rem,6.2vw,6rem)}h1 em{font-style:normal;color:var(--accent)}h2{font-size:clamp(2rem,4.1vw,3.7rem)}h3{font-size:1.55rem}.intro{font-size:1.18rem;max-width:36ch;color:#d2dce2}.actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:28px}.secondary{text-underline-offset:5px}.architectural{position:relative;overflow:hidden;min-height:385px;background:linear-gradient(143deg,#839499 0%,#a9b3ae 39%,#617679 40%,#283e45 100%);border:1px solid #809392;box-shadow:inset 0 0 80px #16202a55}.architectural:before{content:'';position:absolute;inset:13% 8% 9%;background:linear-gradient(110deg,#15262d,#385157 56%,#142830);border:8px solid #203238;box-shadow:0 14px 28px #0c181d66}.frame{position:absolute;inset:18% 13% 11%;display:grid;grid-template-columns:1fr 1fr;gap:5px;border:4px solid #53666b;background:#23383c}.frame i{background:linear-gradient(143deg,#cfdfd46e 0 24%,transparent 24% 44%,#c9e1d230 44% 52%,transparent 52%),linear-gradient(160deg,#466468,#829b91 64%,#394c46 65%);border:3px solid #283c42}.track{position:absolute;inset:15% 11% auto;height:13px;background:#a3b2ad;box-shadow:0 5px 8px #101e27}.section{padding-block:76px;scroll-margin-top:16px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:34px}.cards article{border:1px solid var(--line);background:#fff;padding:26px;display:flex;flex-direction:column}.cards a{margin-top:auto;font-weight:700;text-underline-offset:4px}.cards p,.area p{color:var(--slate)}.category{margin-top:0}.band{background:#e6ece7}.services,.area{display:grid;grid-template-columns:1fr 1fr;gap:60px}.services dl{margin:0}.services dt{font-size:1.25rem;font-weight:800;border-top:1px solid #afbeb6;padding-top:13px}.services dd{margin:2px 0 20px;color:var(--slate)}.quote p{color:#d4dfe5}.notice{border-left:3px solid var(--accent);padding-left:14px}form{display:grid;gap:9px;align-content:start}label{font-weight:700}label span{font-weight:400}input,select,textarea{border:1px solid #aab8be;border-radius:0;background:#fff;color:var(--ink);width:100%;padding:11px;font:inherit;margin-bottom:8px}form button{justify-self:start}textarea{resize:vertical}#result{margin-top:12px}footer{background:#e6ece7}.skip{position:absolute;left:10px;top:-100px;background:white;padding:8px}.skip:focus{top:10px;z-index:3}@media(max-width:800px){.nav{flex-wrap:wrap;padding-block:13px;gap:12px}nav{order:3;width:100%;gap:17px}.hero-grid,.services,.area{grid-template-columns:1fr;gap:24px}.hero-grid,.section{padding-block:48px}.architectural{min-height:260px}.cards{grid-template-columns:1fr}}@media(max-width:420px){.wrap{width:calc(100% - 28px)}.brand small{display:none}.brand{font-size:.86rem}.nav .small{padding:9px;font-size:.8rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.contact-info{display:grid;gap:9px;font-style:normal;align-content:start}.contact-info a{width:fit-content;text-underline-offset:4px;overflow-wrap:anywhere}#email-quote{margin-top:6px}
.area-filter{max-width:36rem;margin-top:22px}.area-filter input{margin:5px 0 0}.area-filter p{margin:6px 0 14px;color:var(--slate)}.area-directory{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,255px),1fr));gap:9px;align-items:start}.area-directory details{background:#fff;border:1px solid var(--line)}.area-directory summary{cursor:pointer;padding:10px 13px;font-weight:700}.area-directory summary span{color:var(--slate);font-weight:500}.area-directory ul{margin:0 12px 13px;padding-left:23px}
.hero-photo{display:block;width:100%;height:385px;object-fit:cover;object-position:center 49%;border:1px solid #809392}.project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:16px}.project-grid figure,.project-video{margin:0;border:1px solid var(--line);background:white}.project-grid img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}.project-grid figcaption,.project-video figcaption{padding:10px 13px}.project-video{max-width:310px;margin-top:16px}.project-video video{width:100%;display:block}.project-grid a{display:block}.project-grid a:hover img{filter:brightness(.92)}#projects h3{margin:32px 0 14px}.cards a+a{margin-top:8px}@media(max-width:800px){.hero-photo{height:clamp(230px,55vw,385px)}nav{flex-wrap:wrap}}
.project-clips{display:flex;flex-wrap:wrap;gap:16px}.project-clips .project-video{width:min(100%,260px)}#parking-barriers+.project-grid{max-width:420px}
.blog-article{max-width:740px;margin:auto}.blog-article h1,.blog-cards h2{margin-top:18px}.blog-article h1{font-size:clamp(2.4rem,6vw,4.5rem)}.blog-article h2,.blog-cards h2{font-size:clamp(1.35rem,3vw,1.85rem)}.blog-article section,.blog-article aside{margin-top:32px}.blog-article aside h2{margin-top:24px}.blog-intro{font-size:1.2rem;color:var(--slate)}.blog-photo{width:100%;height:clamp(210px,43vw,380px);object-fit:cover;display:block}.blog-tags{color:var(--slate);overflow-wrap:anywhere}.blog-cards article{display:block}
