/* growform client2 bundle.url: https://assets.growform.co/cee2d99-mhw6hzfz/form.bundle.js resolve.source: kv resolve.at: 2025-12-07T05:10:19.764Z form.source: api cache.age_ms: 0 kv.value_present: true fallback_used: false */ ;(function () { var EMBED_TYPE = "iFrame"; var FORM_ID = "6913812ca0d94912b55e4a21"; var FORM_BUNDLE_URL = "https://assets.growform.co/cee2d99-mhw6hzfz/form.bundle.js"; // injected by worker (KV/memory/fallback) var FORM_DATA = {"data":{"form":{"_id":"6913812ca0d94912b55e4a21","options":{"numberOfSteps":5,"dateFormat":"DD/MM/YYYY","progressBar":{"enable":true,"hideOnFirstStep":true,"variant":"circles"},"continueButton":{"continueText":"Continue","submitText":"Submit","backText":"Back"},"customStyles":{"width":{"unit":"px","value":580},"parentContainerMinHeight":{"value":0,"unit":"px"},"parentBackgroundImage":{"imageInitialHeight":1362,"imageInitialWidth":2066,"imageHeight":1362,"imageWidth":2066,"imageUrl":"https://res.cloudinary.com/dqnjggegp/image/upload/v1597337140/uploads/qmsfk98ank3wfp1ehvyg.jpg"},"headerMarginTop":40,"parentBackgroundColor":"#ffffff","innerFormBackgroundColor":"#ffffff","innerFormBackgroundTransparency":"","primaryColor":"#0a83ca","bodyTextColor":"#343434","parentContainerBackgroundType":"color","innerFormBackgroundType":"none","buttonBorderColor":"#ff7500","buttonColorSelected":"#ffa659","buttonBorderColorSelected":"#ff7500","footerMarginBottom":70,"errorColor":"#ff4e4e","buttonColor":"#ff7500","buttonTextColor":"#ffffff","inputLabelColor":"#a3a3a3","inputTextColor":"#000000","defaultFont":"Open Sans","sq_buttonFont":"Poppins","sq_buttonFontSize":15,"showShadows":"Yes","sq_buttonTextColor":"#343434","sq_buttonColor":"#FFFFFF","sq_buttonColorSelected":"#FFFFFF","sq_buttonBorderColor":"#DADADA","sq_buttonBorderColorSelected":"primary","sq_buttonBannerColor":"#ffffff","rt_buttonFont":"Poppins","rt_buttonFontSize":15,"rt_buttonColor":"#FFFFFF","rt_buttonColorSelected":"#FFFFFF","rt_buttonTextColor":"#343434","rt_buttonBorderColor":"#DADADA","rt_buttonBorderColorSelected":"primary","inputLabelFont":"Poppins","inputFontSize":16,"continueSubmitButtonFontSize":15,"fullModeBackgroundColor":"#E7F3FA","canvasSetup":"full"},"localization":{"dateFormat":"MM/DD/YYYY"},"exportTransparentBackground":false,"customScript":"","customRedirectUrls":[{"url":"https://go.concretemarketing.app/v2/preview/PJco6uMssaPYtjasw53a","conditionalLogic":{"ruleBlocks":[{"sortOrder":0,"rules":[{"observedField":"buttons_720265794385286","operator":"selected_option","criteria":"69daf1d2a93ad0d3faf7fdfa"}]}]}},{"url":"https://go.concretemarketing.app/v2/preview/UbNWfwPMK9syPTilfyBP","conditionalLogic":null}],"logo":null,"additionalInfo":null,"actionOnSubmit":"redirect"},"fields":{"Decorative Header_52363373085874":{"type":"Decorative Header","value":"Thanks for your enquiry!","width":12,"step":"complete","sortOrder":1,"fieldStyle":{"fontSize":{"value":19,"unit":"px"},"fontWeight":"Bold"},"margins":{"marginTop":20},"stepId":"complete"},"Decorative Header_797442086161467":{"type":"Decorative Header","value":"Let's process your quote! Are you a homeowner in this area?","width":12,"step":2,"sortOrder":1,"fieldStyle":{"fontSize":{"value":18,"unit":"px"},"fontWeight":"Bold"},"stepId":"acd45227cac332d443c4e1db","margins":{"marginBottom":0}},"decorative_image_221285666418529":{"type":"Decorative Image","value":"https://res.cloudinary.com/dqnjggegp/image/upload/v1762956996/uploads/o9xbraonvywzhkjxrqcm.png","width":12,"imageWidth":1016,"imageHeight":783,"imageInitialHeight":783,"imageInitialWidth":1016,"stepId":"acd45227cac332d443c4e1db","sortOrder":3},"buttons_720265794385286":{"type":"Buttons","validationRules":{"required":true},"label":"In service area?","width":12,"multiple":false,"buttonStyle":{"rt_buttonsPerRow":2,"rt_buttonsPerRowMobile":1,"buttonsType":"Rectangle","spacing":20,"showControls":"Yes","rt_compactLayoutOnMobile":"Yes"},"imageStyles":{},"options":[{"text":"Yes","id":"d0010980143b233214301000"},{"text":"No","id":"69daf1d2a93ad0d3faf7fdfa"}],"stepId":"acd45227cac332d443c4e1db","sortOrder":2,"hideLabel":true},"decorative_text_453411568298392":{"type":"Decorative Text","value":"

What type(s) of closets are you interested in? (You can select multiple)

","fieldStyle":{"fontSize":{"value":19,"unit":"px"}},"width":12,"v":2,"stepId":"411306b6ddf305a9dd555a00","sortOrder":1},"buttons_204149635470828":{"type":"Buttons","validationRules":{"required":true},"label":"Project type","width":12,"multiple":true,"buttonStyle":{"rt_buttonsPerRow":2,"rt_buttonsPerRowMobile":1,"buttonsType":"Rectangle","spacing":20,"showControls":"Yes","rt_compactLayoutOnMobile":"Yes"},"imageStyles":{"rt_width":100},"options":[{"text":"Walk-In Closets","id":"d0010980143b233214301000","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1762954641/uploads/bbl5u98yivbwgpeyakxv.png"},{"text":"Reach-In Closets","id":"69daf1d2a93ad0d3faf7fdfa","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1762954648/uploads/om6ooohx2w4mtv2uc089.png"},{"text":"Kitchen Pantries","id":"9001c085ceb2aa12b56e948e","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1762954651/uploads/u2vbo3awo4xsrbp6bu2r.png"},{"text":"Laundry Rooms","id":"4a93a9e5b8da43c0ab10070f","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1762954655/uploads/bvobger881kgokvhqo80.png"},{"text":"Garage storage","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1762954659/uploads/gifhpcaqogofvji31fq1.png","id":"addecbbd7c3302ba56130f65"},{"text":"Entertainment Centers","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1762954717/uploads/itiznrxaetwzhkn5k3ak.png","id":"539f417f84b035e2d61b8566"},{"text":"Craft Rooms","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1762954722/uploads/pxfuhh2gc82kkfnn9sjj.png","id":"234c0b6f8a2c1323f08f98b9"},{"text":"Home Offices","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1762954727/uploads/pco1kflgpud7wnl8ojzb.png","id":"75ea646049aa4d4107198fd0"}],"stepId":"411306b6ddf305a9dd555a00","sortOrder":2,"hideLabel":true},"decorative_text_480640825691358":{"type":"Decorative Text","value":"

What is the best way to contact you?

","fieldStyle":{"fontSize":{"value":19,"unit":"px"}},"width":12,"v":2,"stepId":"13023d54e3fa2060920b6af7","sortOrder":1},"buttons_778353444731021":{"type":"Buttons","validationRules":{"required":true},"label":"Best contact method","width":12,"multiple":false,"buttonStyle":{"rt_buttonsPerRow":"1","rt_buttonsPerRowMobile":1,"buttonsType":"Square","spacing":20,"showControls":"Yes","rt_compactLayoutOnMobile":"Yes"},"imageStyles":{},"options":[{"text":"Call","id":"d0010980143b233214301000"},{"text":"Text","id":"69daf1d2a93ad0d3faf7fdfa"},{"text":"Email","id":"9001c085ceb2aa12b56e948e"}],"stepId":"13023d54e3fa2060920b6af7","sortOrder":2,"hideLabel":true},"decorative_text_400760528221228":{"type":"Decorative Text","value":"

Final Step! Our team will reach out ASAP for your quote

","fieldStyle":{"fontSize":{"value":19,"unit":"px"}},"width":12,"v":2,"stepId":"b0d9682991032617a106f115","sortOrder":1},"name_269889329730633":{"type":"Name","label":"Name","width":12,"hideLabel":true,"options":{"Firstname":{"value":null,"errorText":null,"validationRules":{"required":true}},"Lastname":{"value":null,"errorText":null,"validationRules":{"required":true}},"Prefix":{"value":null,"errorText":null,"validationRules":{"required":false}}},"stepId":"b0d9682991032617a106f115","sortOrder":2,"hidePrefix":true},"email_750830332227671":{"type":"Email","label":"What is your email address?","width":12,"stepId":"b0d9682991032617a106f115","sortOrder":3},"phone_863247206613880":{"type":"Phone","label":"What is your phone number?","width":12,"stepId":"b0d9682991032617a106f115","sortOrder":4},"address_38609848531953":{"type":"Address","label":"What is your address?","width":12,"stepId":"b0d9682991032617a106f115","sortOrder":5,"validationRules":{"required":true}},"zipcode_42596242779673":{"type":"Zipcode","label":"What is your zip code?","zipcodeFieldFormat":"zipcode_usa","width":12,"stepId":"b0d9682991032617a106f115","sortOrder":6},"toscheckbox_672966819882251":{"type":"TOSCheckbox","label":"By providing a phone number and email address, I agree to receiving text messages and emails from Pi Cabinetry.","width":12,"stepId":"b0d9682991032617a106f115","sortOrder":7}},"ownedByUser":"66b948b5a8ab0e000bf13fb6","formName":"PICAB","personalisation":{"form_related_to":"(None - start with a blank slate)"},"created":"2025-11-11T18:32:12.783Z","steps":[{"id":"acd45227cac332d443c4e1db","name":"Service Area","sortOrder":1},{"id":"411306b6ddf305a9dd555a00","name":"Project Type","sortOrder":2,"conditionalLogic":{"action":"show","ruleBlocks":[{"sortOrder":0,"rules":[{"observedField":"buttons_720265794385286","operator":"selected_option","criteria":"d0010980143b233214301000"}]}]}},{"id":"13023d54e3fa2060920b6af7","name":"Best Contact Method","sortOrder":3,"conditionalLogic":{"action":"show","ruleBlocks":[{"sortOrder":0,"rules":[{"observedField":"buttons_720265794385286","operator":"selected_option","criteria":"d0010980143b233214301000"}]}]}},{"id":"b0d9682991032617a106f115","name":"Contact Info","sortOrder":4,"conditionalLogic":{"action":"show","ruleBlocks":[{"sortOrder":0,"rules":[{"observedField":"buttons_720265794385286","operator":"selected_option","criteria":"d0010980143b233214301000"}]}]}}],"screenshotUrl":"https://res.cloudinary.com/dqnjggegp/image/upload/v1762957066/growform-production/form-screenshots/6913812ca0d94912b55e4a21.png","isActive":true,"__v":0,"lastEdited":"2025-11-12T15:08:14.204Z","leadsCount":16,"reportedSpam":false,"spamOcr":"Let's process your quote! Are you a homeowner in this area?\nYes\nAtlanta\nNo Let's process your quote ! Are you a homeowner in this area ? Yes Atlanta No"},"accountIsActive":true,"accountIsFreeTrial":false}}; // ---- Utils ---- function safeJSONStringify(obj) { return JSON.stringify(obj) .replace(/<\/(script|style)/gi, '<\\/$1') .replace(//g, '--\\>') .replace(/\u2028/g, '\\u2028') .replace(/\u2029/g, '\\u2029'); } function preloadScript(href) { try { if (!href) return; if (document.querySelector('link[rel="preload"][href="' + href + '"]')) return; var l = document.createElement("link"); l.rel = "preload"; l.as = "script"; l.href = href; l.crossOrigin = ""; // allow cache reuse in iframe document.head.appendChild(l); } catch (_) {} } function parseQuery() { var out = {}; try { if (!window.location.search) return out; var usp = new URLSearchParams(window.location.search); usp.forEach(function (v, k) { out[k] = v; }); } catch (_) {} return out; } function buildIframeHTML(opts) { var html = '\n' + '\n' + '\n' + ' \n' + ' \n' + ' \n' + '\n' + '\n' + ' \n' + '
\n' + '