1<!DOCTYPE html><!-- Last Published: Tue Sep 29 2026 07:31:40 GMT+0000 (Coordinated Universal Time) --> 2<html data-wf-domain="munn-architecture.webflow.io" data-wf-page="674491e52d138c44bc473cbe" data-wf-site="5fad961a02aaaaf5900d1472"> 3 <head> 4 <meta charset="utf-8" /> 5 <link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous" /> 6 <title>Contact</title> 7 <meta content="Contact" property="og:title" /> 8 <meta content="Contact" name="twitter:title" /> 9 <meta content="width=device-width, initial-scale=1" name="viewport" /> 10 <link href="https://cdn.prod.website-files.com/5fad961a02aaaaf5900d1472/css/munn-architecture.shared.e628a9485.css" rel="stylesheet" type="text/css" integrity="sha384-5iipSFRxC2OaCk5dkyNo0BdvH+JqZ7D0TsdJS4+zBQPX8y6HZwFr2NHTH4J76/5V" crossorigin="anonymous" /> 11 <link href="https://fonts.googleapis.com" rel="preconnect" /> 12 <link href="https://fonts.gstatic.com" rel="preconnect" crossorigin="anonymous" /> 13
13<script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js" type="text/javascript"></script>
13 14
14<script type="text/javascript"> 15 WebFont.load({ 16 google: { 17 families: ["PT Serif:400,400italic,700,700italic", "Open Sans:300,300italic,400,400italic,600,600italic,700,700italic,800,800italic", "Lato:100,100italic,300,300italic,400,400italic,700,700italic,900,900italic", "Montserrat:100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic", "Oswald:200,300,400,500,600,700"] 18 } 19 }); 20 </script>
20 21
21<script type="text/javascript"> 22 ! function(o, c) { 23 var n = c.documentElement, 24 t = " w-mod-"; 25 n.className += t + "js", ("ontouchstart" in o || o.DocumentTouch && c instanceof DocumentTouch) && (n.className += t + "touch") 26 }(window, document); 27 </script>
27 28 <link href="https://cdn.prod.website-files.com/5fad961a02aaaaf5900d1472/63565ec071b74a60bd0e186f_favicon.png" rel="shortcut icon" type="image/x-icon" /> 29 <link href="https://cdn.prod.website-files.com/5fad961a02aaaaf5900d1472/63565ec3d6b8bb85622d881b_webclip.png" rel="apple-touch-icon" /> 30 <link href="https://www.maarchitectural.com/contact" rel="canonical" /><!-- Google Tag Manager --> 31
31<script>
vendor: 492 bytes, lines 31-45
31 32 (function(w, d, s, l, i) { 33 w[l] = w[l] || []; 34 w[l].push({ 35 'gtm.start': new Date().getTime(), 36 event: 'gtm.js' 37 }); 38 var f = d.getElementsByTagName(s)[0], 39 j = d.createElement(s), 40 dl = l != 'dataLayer' ? '&l=' + l : ''; 41 j.async = true; 42 j.src = 43 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; 44 f.parentNode.insertBefore(j, f); 45 })(window, document, 'script', 'dataLayer', '
45GTM-WDM39HH
vendor: 8 bytes, lines 45-46
45'); 46
46</script>
46 47 <!-- End Google Tag Manager --> 48
48<script src="https://schemarabbit.com/api/websites/P5jLpLzz2fSuoHy3UtcD" type="text/javascript" integrity="sha384-Z1lTS0A1pfzd24rZPNIIfEN/dD2Hkfuc5XVRLsDnkF1T5tXhSS4D1vup/GhxSleA" crossorigin="anonymous"></script>
48 49 </head> 50 <body> 51 <div class="nav-background"></div> 52 <div data-w-id="911504ef-3b9c-7d31-4c64-ebaf211fbd28" class="nav-container"> 53 <div class="navbar-2"> 54 <div class="subwrapper"><a href="/" class="brand-link-wrapper w-nav-brand"><img width="200" src="https://cdn.prod.website-files.com/5fad961a02aaaaf5900d1472/677eb9b0e31103a5745749d7_ma-studios-logo-text.svg" alt="" class="hero-logo" /><img width="200" src="https://cdn.prod.website-files.com/5fad961a02aaaaf5900d1472/6744626c605aef923fe161de_grace-fishers-logo-white.svg" alt="" class="logo-mobile" /></a> 55 <div class="menu-container"> 56 <div class="desktop-menu-container"><a data-w-id="911504ef-3b9c-7d31-4c64-ebaf211fbd30" href="/services#residential" class="static-menu-link w-inline-block"> 57 <div class="nav-link-text">residential</div> 58 <div class="nav-underline"></div> 59 </a><a data-w-id="911504ef-3b9c-7d31-4c64-ebaf211fbd34" href="/services#public" class="static-menu-link w-inline-block"> 60 <div class="nav-link-text">public</div> 61 <div class="nav-underline"></div> 62 </a><a data-w-id="911504ef-3b9c-7d31-4c64-ebaf211fbd38" href="/contact" aria-current="page" class="static-menu-link w-inline-block w--current"> 63 <div class="nav-link-text">contact</div> 64 <div class="nav-underline"></div> 65 </a> 66 <div data-w-id="911504ef-3b9c-7d31-4c64-ebaf211fbd3c" class="nav-menu-button"> 67 <div class="nav-button-text-wrapper"> 68 <div class="nav-link-text">Menu</div> 69 <div class="nav-link-text">Close</div> 70 </div> 71 </div> 72 </div> 73 </div> 74 </div> 75 <div class="side-nav-wrapper"> 76 <div class="scroll-wrap"> 77 <div class="main-links-wrapper"><a href="/work" class="main-nav-link-wrapper w-inline-block"> 78 <div class="large-nav-text">portfolio</div> 79 </a><a href="/services" class="main-nav-link-wrapper w-inline-block"> 80 <div class="large-nav-text">Services</div> 81 </a><a href="/process" class="main-nav-link-wrapper hidden w-inline-block"> 82 <div class="large-nav-text">Process</div> 83 </a><a href="/about-us" class="main-nav-link-wrapper w-inline-block"> 84 <div class="large-nav-text">Studio</div> 85 </a><a href="/community" class="main-nav-link-wrapper w-inline-block"> 86 <div class="large-nav-text">Community</div> 87 </a><a href="/blog" class="main-nav-link-wrapper w-inline-block"> 88 <div class="large-nav-text">Journal</div> 89 </a></div> 90 <div class="secondary-links-wrapper"><a href="#" class="secondary-nav-link-wrapper w-inline-block"> 91 <div class="small-nav-text">(970) 887-9366</div> 92 </a><a href="#" class="secondary-nav-link-wrapper w-inline-block"> 93 <div class="small-nav-text">[email protected]</div> 94 </a></div> 95 </div> 96 </div> 97 </div> 98 </div> 99 <div class="top-content-container"> 100 <div class="content-wrapper left-align"> 101 <h1 class="heading-1 animate-t">Contact us.</h1> 102 </div> 103 </div> 104 <div class="full-width-image-container"> 105 <div data-w-id="4d50426a-2051-2f97-eb92-fbc4510ce5dc" class="hero-image-wrapper"><img src="https://cdn.prod.website-files.com/5fad961a02aaaaf5900d1472/67448282f968c2cfabef7b0b_projects.jpg" loading="lazy" sizes="(max-width: 1919px) 100vw, 1920px" srcset="https://cdn.prod.website-files.com/5fad961a02aaaaf5900d1472/67448282f968c2cfabef7b0b_projects-p-500.jpg 500w, https://cdn.prod.website-files.com/5fad961a02aaaaf5900d1472/67448282f968c2cfabef7b0b_projects-p-800.jpg 800w, https://cdn.prod.website-files.com/5fad961a02aaaaf5900d1472/67448282f968c2cfabef7b0b_projects-p-1080.jpg 1080w, https://cdn.prod.website-files.com/5fad961a02aaaaf5900d1472/67448282f968c2cfabef7b0b_projects.jpg 1920w" alt="" class="full-width-image narrow" /></div> 106 </div> 107 <div class="content-container"> 108 <div class="content-wrapper"> 109 <div class="title-row"> 110 <h2 class="heading-2 animate-t">Let's Get In Touch</h2> 111 <div class="title-line"></div> 112 </div> 113 <div class="content-row-left-align"> 114 <div class="hero-content-wrapper"> 115 <div class="contact-address"> 116 <div class="address-wrapper"> 117 <div class="address-title animate-t">Main Office: Granby CO</div> 118 <div class="footer-address animate-p"><a href="https://www.google.co.uk/maps/place/315+E+Agate+Ave,+Granby,+CO+80446,+USA/@40.085531,-105.9395542,17z/data=!3m1!4b1!4m6!3m5!1s0x876a2f31864f7461:0xa1789f72c9821276!8m2!3d40.085531!4d-105.9369793!16s%2Fg%2F11bw4h5jf1?entry=ttu&g_ep=EgoyMDI0MTIxMS4wIKXMDSoASAFQAw%3D%3D" target="_blank" class="contact-link">315 East Agate Avenue<br />80446</a></div> 119 </div> 120 <div class="address-wrapper"> 121 <div class="address-title animate-t">Denver CO</div> 122 <div class="footer-address animate-p"><a href="https://www.google.co.uk/maps/search/209+Kalamath+St+Unit+1980223/@39.7198436,-105.0031924,17z/data=!3m1!4b1?entry=ttu&g_ep=EgoyMDI0MTIxMS4wIKXMDSoASAFQAw%3D%3D" target="_blank" class="contact-link">209 Kalamath St Unit 19<br />80223</a></div> 123 </div> 124 <div class="footer-address-wrapper"> 125 <div class="address-title animate-t">1-970-887-9366</div> 126 <div class="footer-address"><a href="mailto:[email protected]" class="email-link animate-p">[email protected]</a></div> 127 </div> 128 </div> 129 </div> 130 </div> 131 <div class="content-row-right-align"> 132 <div class="hero-content-wrapper"> 133 <div class="content-vertical"> 134 <div class="new-form w-form"> 135 <form id="wf-form-Say-Hello" name="wf-form-Say-Hello" data-name="Say Hello" redirect="/thanks" data-redirect="/thanks" method="get" class="form-wrapper" data-wf-page-id="674491e52d138c44bc473cbe" data-wf-element-id="4ec25043-35de-0726-4b83-9017f5469c32" data-turnstile-sitekey="0x4AAAAAAAQTptj2So4dx43e"><input class="form-field w-input" maxlength="256" name="name" data-name="Name" placeholder="Name*" type="text" id="name" required="" /><input class="form-field w-input" maxlength="256" name="Email" data-name="Email" placeholder="Email*" type="email" id="Email-2" required="" /><input class="form-field w-input" maxlength="256" name="Phone" data-name="Phone" placeholder="Phone*" type="tel" id="Phone" required="" /><textarea id="Message" name="Message" maxlength="5000" data-name="Message" placeholder="Message*" required="" class="message w-input"></textarea><a ms-code-submit-new="1" data-w-id="24e2c4f9-001c-0891-952c-803546ce2ce3" style="background-color:rgba(0,0,0,0)" href="#" class="button-link-wrapper w-inline-block"> 136 <div class="button-text-wrapper"> 137 <div class="button-link-text">Send</div> 138 <div class="button-link-text">Send</div> 139 </div> 140 </a><input type="submit" data-wait="Please wait..." ms-code-submit-old="1" class="old-submit-button w-button" value="Submit" /></form> 141 <div class="w-form-done"> 142 <div>Thank you! Your submission has been received!</div> 143 </div> 144 <div class="w-form-fail"> 145 <div>Oops! Something went wrong while submitting the form.</div> 146 </div> 147 </div> 148 </div> 149 </div> 150 </div> 151 </div> 152 </div> 153 <div class="footer"> 154 <div class="footer-row"> 155 <div class="footer-column"><img width="200" src="https://cdn.prod.website-files.com/5fad961a02aaaaf5900d1472/67446356605aef923fe24280_munn-logo-icon.svg" alt="" class="footer-logo" /> 156 <div class="footer-address-wrapper"> 157 <div class="footer-address-title">Granby CO</div> 158 <div class="footer-address">315 East Agate Avenue<br />80446</div> 159 </div> 160 <div class="footer-address-wrapper"> 161 <div class="footer-address-title">Denver CO</div> 162 <div class="footer-address">209 Kalamath St Unit 19<br />80223</div> 163 </div> 164 </div> 165 <div class="footer-column right-align"> 166 <div class="footer-contact-row"> 167 <div class="footer-phone">970-887-9366</div><a data-w-id="e32039a6-b5a1-5da9-f416-04fb3f224ef9" href="/contact" aria-current="page" class="button-link-wrapper w-inline-block w--current"> 168 <div class="button-text-wrapper"> 169 <div class="button-link-text">Contact</div> 170 <div class="button-link-text">say hello</div> 171 </div> 172 </a> 173 </div> 174 <div class="footer-contact-row social"><a href="https://www.facebook.com/mastudios.architecture" target="_blank" class="social w-inline-block"><img src="https://cdn.prod.website-files.com/5fad961a02aaaaf5900d1472/5fad961a0da5af2f64d98219_facebook-logo%20Black.svg" loading="lazy" alt="" class="social-icon" /></a><a href="https://www.instagram.com/mastudiosco/" target="_blank" class="social w-inline-block"><img src="https://cdn.prod.website-files.com/5fad961a02aaaaf5900d1472/5fad961a0da5af32f4d98285_icons8-instagram-104%20(2).png" loading="lazy" alt="" class="social-icon" /></a></div> 175 </div> 176 </div> 177 <div class="footer-row bottom"> 178 <div class="footer-links-wrapper"><a href="/cookies" class="footer-link-small">Cookies</a><a href="/terms" class="footer-link-small">Terms</a><a href="/privacy" class="footer-link-small">Privacy</a><a href="https://www.maarchitectural.com/residential" class="footer-link-small">Residential Design</a><a href="https://www.maarchitectural.com/public" class="footer-link-small">Public Space Design</a></div><a href="https://www.alwaysfresh.io/" target="_blank" class="footer-link-small">Site by Always Fresh</a> 179 </div> 180 </div> 181
181<script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=5fad961a02aaaaf5900d1472" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
181 182
182<script src="https://cdn.prod.website-files.com/5fad961a02aaaaf5900d1472/js/munn-architecture.schunk.d76609de49800cd6.js" type="text/javascript" integrity="sha384-goNBGgT10Um4s8tWK6t6QVyz60UIOpApHeTE8/7L1e4+eVmoPtx679PFuBtPB4qB" crossorigin="anonymous"></script>
182 183
183<script src="https://cdn.prod.website-files.com/5fad961a02aaaaf5900d1472/js/munn-architecture.schunk.651bb396f1ba85ec.js" type="text/javascript" integrity="sha384-9OaCusJfVIzywm+2/y7zDIFHIgUxWsrWzPoD3vnlgWWKhdKMFXDhAY53fxNyMxXp" crossorigin="anonymous"></script>
183 184
184<script src="https://cdn.prod.website-files.com/5fad961a02aaaaf5900d1472/js/munn-architecture.5e49a54d.27a83933f44f5079.js" type="text/javascript" integrity="sha384-b0DDK0/nRaRy/s2IV1GhIAN/+8H25iO75tSfNi4STCOAb4sIeeMJpnqt+DCpPGwd" crossorigin="anonymous"></script>
184<!-- Google Tag Manager (noscript) -->
vendor: 72 bytes, lines 184-185
184 185 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
185GTM-WDM39HH
vendor: 87 bytes, lines 185-186
185" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 186
186<!-- End Google Tag Manager (noscript) --> 187 188 <!-- Titles --> 189 190
190<script src="https://cdn.jsdelivr.net/gh/waveshape-co/[email protected]/script.min.js"></script>
190 191 192
192<script> 193 new WordPlay({ 194 className: "animate-t", // the text element 195 mode: "letter", // choose between letter or word 196 offset: 0, // offset if revealed by scroll 197 speed: 1, 198 delay: 0.02, // stagger delay 199 }); 200 </script>
200 201 202 <!-- Paragraphs --> 203 204
204<script src="https://cdn.jsdelivr.net/gh/waveshape-co/[email protected]/script.min.js"></script>
204 205 206
206<script> 207 new WordPlay({ 208 className: "animate-p", // the text element 209 mode: "word", // choose between letter or word 210 offset: 0, // offset if revealed by scroll 211 speed: 1, 212 delay: 0.02, // stagger delay 213 }); 214 </script>
214 215 216 <!-- Keyword Blocker --> 217
217<script> 218 (() => { 219 /** 220 * CONFIG 221 */ 222 const CONFIG = { 223 // Keywords / phrases to block (case-insensitive) 224 blockedKeywords: [ 225 "guest blogging", 226 "link building", 227 "guest post", 228 "guest posting", 229 "quality blogs", 230 "rank your website", 231 "google ranking", 232 "traffic boost", 233 "we can help you", 234 "backlinks", 235 "toxic", 236 "spam", 237 "errors", 238 "sharing our article", 239 "business opportunity", 240 "wikipedia", 241 "publishing", 242 "social media", 243 "seo experts", 244 "suggestions for your website", 245 "it is astonishing", 246 "sunwin", 247 "gambling", 248 "telegram", 249 "casino", 250 "hire our agency" 251 ], 252 253 // Minimum message length to reduce low-effort spam (set null to disable) 254 minMessageLength: 15 255 }; 256 257 /** 258 * Helpers 259 */ 260 const escapeRegExp = (str) => 261 str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); 262 263 const keywordRegexes = CONFIG.blockedKeywords 264 .map(k => k.trim()) 265 .filter(Boolean) 266 .map(k => new RegExp(escapeRegExp(k), "i")); 267 268 function findAllTextValues(formEl) { 269 const fields = formEl.querySelectorAll("input, textarea"); 270 const values = []; 271 fields.forEach((el) => { 272 const type = (el.getAttribute("type") || "").toLowerCase(); 273 if (type === "password" || type === "hidden" || type === "file") return; 274 if ( 275 el.tagName.toLowerCase() === "input" && ["checkbox", "radio", "submit", "button"].includes(type) 276 ) return; 277 values.push(el.value || ""); 278 }); 279 return values; 280 } 281 282 function hasBlockedKeyword(text) { 283 return keywordRegexes.some(rx => rx.test(text)); 284 } 285 286 function ensureInlineError(formEl) { 287 let box = formEl.querySelector("[data-spam-blocker-error]"); 288 if (box) return box; 289 290 box = document.createElement("div"); 291 box.setAttribute("data-spam-blocker-error", "true"); 292 box.className = "spam-blocker-error"; 293 294 box.style.display = "none"; 295 box.style.marginTop = "12px"; 296 box.style.padding = "10px 12px"; 297 box.style.borderRadius = "8px"; 298 box.style.fontSize = "14px"; 299 box.style.lineHeight = "1.4"; 300 301 const submit = formEl.querySelector( 302 'input[type="submit"], button[type="submit"]' 303 ); 304 if (submit && submit.parentNode) { 305 submit.parentNode.insertBefore(box, submit); 306 } else { 307 formEl.appendChild(box); 308 } 309 return box; 310 } 311 312 function showError(formEl, msg) { 313 const box = ensureInlineError(formEl); 314 box.textContent = msg; 315 box.style.display = "block"; 316 } 317 318 function clearError(formEl) { 319 const box = formEl.querySelector("[data-spam-blocker-error]"); 320 if (box) box.style.display = "none"; 321 } 322 323 function attachToForm(formEl) { 324 formEl.addEventListener("submit", (e) => { 325 clearError(formEl); 326 327 const values = findAllTextValues(formEl); 328 const combined = values.join(" ").trim(); 329 330 // 1) Keyword blocking 331 if (combined && hasBlockedKeyword(combined)) { 332 e.preventDefault(); 333 e.stopPropagation(); 334 showError(formEl, "Sorry â We can't accept this submission."); 335 return; 336 } 337 338 // 2) Minimum message length 339 if (CONFIG.minMessageLength != null) { 340 const ta = formEl.querySelector("textarea"); 341 const msg = ta ? (ta.value || "") : combined; 342 if (msg.trim().length > 0 && 343 msg.trim().length < CONFIG.minMessageLength) { 344 e.preventDefault(); 345 e.stopPropagation(); 346 showError( 347 formEl, 348 `Please include a bit more detail (at least ${CONFIG.minMessageLength} characters).` 349 ); 350 return; 351 } 352 } 353 354 // Allow native Webflow submit 355 }, true); 356 } 357
358 function init() { 359 document.querySelectorAll("form").forEach(attachToForm); 360 } 361 362 if (document.readyState === "loading") { 363 document.addEventListener("DOMContentLoaded", init); 364 } else { 365 init(); 366 } 367 })(); 368 </script>
368 369 <!-- ð MEMBERSCRIPT #108 v0.1 ð CUSTOM FORM SUBMIT BUTTON --> 370
370<script> 371 // Wait for the DOM to be fully loaded 372 document.addEventListener('DOMContentLoaded', function() { 373 // Find all elements with the ms-code-submit-new attribute 374 const newSubmitButtons = document.querySelectorAll('[ms-code-submit-new]'); 375 376 // Add click event listeners to each new submit button 377 newSubmitButtons.forEach(button => { 378 button.addEventListener('click', function(e) { 379 e.preventDefault(); // Prevent default action if it's a link 380 381 // Get the value of the ms-code-submit-new attribute 382 const submitId = this.getAttribute('ms-code-submit-new'); 383 384 // Find the corresponding old submit button 385 const oldSubmitButton = document.querySelector(`[ms-code-submit-old="${submitId}"]`); 386 387 // If found, trigger a click on the old submit button 388 if (oldSubmitButton) { 389 oldSubmitButton.click(); 390 } else { 391 console.error(`No matching old submit button found for ID: ${submitId}`); 392 } 393 }); 394 }); 395 }); 396 </script>
396 397 </body> 398</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.