/* growform client2 bundle.url: https://assets.growform.co/96896150-mmawu6km/form.bundle.js resolve.source: kv resolve.at: 2026-03-04T12:54:26.865Z form.source: api cache.age_ms: 0 kv.value_present: true fallback_used: false */ ;(function () { var EMBED_TYPE = "iFrame"; var FORM_ID = "6851d10140e0f3000bcb5da2"; var FORM_BUNDLE_URL = "https://assets.growform.co/96896150-mmawu6km/form.bundle.js"; // injected by worker (KV/memory/fallback) var FORM_DATA = {"data":{"form":{"_id":"6851d10140e0f3000bcb5da2","steps":[{"id":"ac0ce1d8634334328d03ff33","name":"State of driveway","sortOrder":1,"copyOf":"8d53a2591d86a402dbecf0d3"},{"id":"b24d5d4b8d80e83ec53f129e","name":"Job size","sortOrder":2,"copyOf":"acd45227cac332d443c4e1db","conditionalLogic":{"action":"show","ruleBlocks":[{"sortOrder":0,"rules":[{"observedField":"buttons_782408809089103","operator":"selected_option","criteria":"ee11414c2fbebcbe9b466146"},{"observedField":"buttons_782408809089103","operator":"selected_option","criteria":"204a35fbe8c5a7078bf21b9d"},{"observedField":"buttons_782408809089103","operator":"selected_option","criteria":"6b5c6668dcf9f6fd61132974"}]}]}},{"id":"7209dbd5a6332a6b6102a6b3","name":"Timeline","sortOrder":3,"copyOf":"60c2d61a66a74bcb70ce6e49"},{"id":"12d5ab9cdd849e9f9c2f69bc","name":"Address info","sortOrder":4,"copyOf":"ff4727c9498ef9c0a6c989d9","conditionalLogic":{"action":"show","ruleBlocks":[{"sortOrder":0,"rules":[{"observedField":"buttons_80860231724498","operator":"selected_option","criteria":"ecd05bce1a393bda1298e09e"},{"observedField":"buttons_80860231724498","operator":"selected_option","criteria":"ecd05bce1a393bda1298e09e"}]}]}},{"id":"ff4727c9498ef9c0a6c989d9","name":"Contact info","sortOrder":5}],"isActive":true,"formName":"HOLES - Commercial","fields":{"Decorative Header_52363373085874":{"type":"Decorative Header","value":"Book a time & date for your FREE estimate","width":12,"step":"complete","sortOrder":2,"fieldStyle":{"fontSize":{"value":19,"unit":"px"},"fontWeight":"Bold"},"margins":{"marginTop":20},"stepId":"complete"},"Decorative Header_576559560634956":{"type":"Decorative Header","value":"How shall we get in touch about your project?","width":12,"step":5,"sortOrder":1,"fieldStyle":{"fontSize":{"value":19,"unit":"px"},"fontWeight":"Bold"},"stepId":"ff4727c9498ef9c0a6c989d9"},"email_907058157108782":{"type":"Email","label":"Your email address","width":12,"margins":{"marginBottom":0},"step":5,"sortOrder":3,"stepId":"ff4727c9498ef9c0a6c989d9"},"phone_589083232390193":{"type":"Phone","label":"Your phone number","width":12,"margins":{"marginBottom":0},"step":5,"sortOrder":4,"helperText":"","stepId":"ff4727c9498ef9c0a6c989d9"},"text_373461752242760":{"type":"Text","label":"Your full name","width":12,"margins":{"marginBottom":0},"step":5,"sortOrder":2,"validationRules":{"required":true},"stepId":"ff4727c9498ef9c0a6c989d9"},"decorative_header_46751409231390":{"type":"Decorative Header","value":"What type of work do you need done?","width":12,"step":1,"sortOrder":1,"fieldStyle":{"fontSize":{"value":19,"unit":"px"},"fontWeight":"Bold"},"stepId":"ac0ce1d8634334328d03ff33","margins":{"marginBottom":-5,"marginTop":24}},"buttons_782408809089103":{"type":"Buttons","validationRules":{"required":false},"label":"Type of Work","width":12,"hideLabel":true,"multiple":false,"options":[{"text":"New Asphalt Installation","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1750681619/uploads/g8g0od1ioutandoxwrwq.png","id":"ee11414c2fbebcbe9b466146"},{"text":"Resurfacing","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1750681621/uploads/ak8hc4hplwzpbiwwqsjl.png","id":"204a35fbe8c5a7078bf21b9d"},{"text":"Repairs (potholes, cracks)","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1750681624/uploads/x7pupin4hv2kbucyl229.png","id":"6b5c6668dcf9f6fd61132974"},{"text":"Sealcoating","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1750681626/uploads/aes4dyzlgu8xwwhvug6d.png","id":"01bd1de7cb0b2fae82241fd1"},{"text":"Line Striping","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1750681629/uploads/cqsrett5f21vixni4akj.png","id":"e2f1ff7147c547faf8411580"}],"step":1,"sortOrder":2,"helperText":"","imageStyles":{"width":"37","marginBottom":"17","sq_imageOnlyMode":"No"},"buttonStyle":{"minWidth":"107","height":"102","buttonsPerRow":"4","buttonsType":"Square","sq_buttonsPerRow":"3","sq_buttonsPerRowMobile":"2"},"stepId":"ac0ce1d8634334328d03ff33"},"decorative_header_151104740029695":{"type":"Decorative Header","value":"What's the address of the property?","width":12,"step":5,"sortOrder":1,"fieldStyle":{"fontSize":{"value":19,"unit":"px"},"fontWeight":"Bold"},"stepId":"12d5ab9cdd849e9f9c2f69bc"},"address_701450755932594":{"type":"Address","label":"Property address","width":12,"stepId":"12d5ab9cdd849e9f9c2f69bc","sortOrder":2},"decorative_header_35914365341661":{"type":"Decorative Header","value":"What is your timeline for the job?","width":12,"step":2,"sortOrder":1,"fieldStyle":{"fontSize":{"value":19,"unit":"px"},"fontWeight":"Bold"},"stepId":"7209dbd5a6332a6b6102a6b3"},"buttons_80860231724498":{"type":"Buttons","validationRules":{"required":false},"label":"Timeline","width":12,"multiple":false,"buttonStyle":{"rt_buttonsPerRow":2,"rt_buttonsPerRowMobile":1,"buttonsType":"Rectangle","spacing":20,"showControls":"Yes","rt_compactLayoutOnMobile":"Yes"},"options":[{"text":"As soon as possible","id":"ecd05bce1a393bda1298e09e"},{"text":"Next 30 days","id":"80e22f676cb3070a7e52ca8e"},{"text":"1-3 months","id":"bdfc08ba9da607940c353161"},{"text":"Not sure yet","image":null,"id":"5020a4e6e33ecabea5f8445f"}],"stepId":"7209dbd5a6332a6b6102a6b3","sortOrder":3,"hideLabel":true},"decorative_image_917957527846789":{"type":"Decorative Image","value":"https://res.cloudinary.com/dqnjggegp/image/upload/v1743276704/uploads/hx8fqywm19rl8o4x33yt.png","width":12,"imageWidth":1920,"imageHeight":1080,"imageInitialHeight":1080,"imageInitialWidth":1920,"stepId":"7209dbd5a6332a6b6102a6b3","sortOrder":2},"decorative_header_263244683297182":{"type":"Decorative Header","value":"How many square feet is your driveway? (roughly)","width":12,"step":2,"sortOrder":1,"fieldStyle":{"fontSize":{"value":19,"unit":"px"},"fontWeight":"Bold"},"stepId":"b24d5d4b8d80e83ec53f129e"},"decorative_image_584444975018771":{"type":"Decorative Image","value":"https://res.cloudinary.com/dqnjggegp/image/upload/v1743277920/uploads/p6ahpcujekdqblnrbcv6.png","width":12,"imageWidth":1920,"imageHeight":1080,"imageInitialHeight":1080,"imageInitialWidth":1920,"stepId":"b24d5d4b8d80e83ec53f129e","sortOrder":2},"number_853597561037586":{"type":"Number","label":"Sq ft:","currencySymbol":"None","width":12,"stepId":"b24d5d4b8d80e83ec53f129e","sortOrder":3},"decorative_link_115062935456236":{"type":"Decorative Link","text":"BOOK NOW","url":"https://api.leadconnectorhq.com/widget/bookings/hotmixpaving","openInNewTab":true,"width":12,"stepId":"complete","sortOrder":3},"decorative_header_548032486137095":{"type":"Decorative Header","value":"JUST ONE MORE STEP!","width":12,"stepId":"complete","sortOrder":1}},"options":{"numberOfSteps":5,"dateFormat":"DD/MM/YYYY","progressBar":{"enable":true,"margins":{"marginTop":-33}},"continueButton":{"continueText":"Next","submitText":"Get estimate","backText":"Back"},"customStyles":{"width":{"unit":"px","value":500},"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":10,"parentBackgroundColor":"#ffffff","innerFormBackgroundColor":"#ffffff","innerFormBackgroundTransparency":"","primaryColor":"#f6ad55","bodyTextColor":"#343434","parentContainerBackgroundType":"color","innerFormBackgroundType":"none","buttonBorderColor":"#ff7500","buttonColorSelected":"#ffa659","buttonBorderColorSelected":"#ff7500","footerMarginBottom":null,"errorColor":"#ff4e4e","buttonColor":"#ff7500","buttonTextColor":"#ffffff","inputLabelColor":"#a3a3a3","inputTextColor":"#f6ad55","defaultFont":"Comfortaa","sq_buttonFont":"Poppins","sq_buttonFontSize":15,"showShadows":"Yes","sq_buttonTextColor":"#343434","sq_buttonColor":"#f6ad55","sq_buttonColorSelected":"#f6ad55","sq_buttonBorderColor":"#DADADA","sq_buttonBorderColorSelected":"primary","sq_buttonBannerColor":"#FFFFFF","rt_buttonFont":"Poppins","rt_buttonFontSize":15,"rt_buttonColor":"#f6ad55","rt_buttonColorSelected":"#f6ad55","rt_buttonTextColor":"#ffffff","rt_buttonBorderColor":"#ffffff","rt_buttonBorderColorSelected":"#2f77e3","inputLabelFont":"Poppins","inputFontSize":16,"continueSubmitButtonFontSize":15,"fullModeBackgroundColor":"#ffffff","canvasSetup":"minimal","link_buttonBorderColor":"#DADADA","link_buttonColor":"#FFFFFF","inputBackgroundColor":"#ffffff","link_buttonTextColor":"#f6ad55"},"localization":{"dateFormat":"MM/DD/YYYY"},"exportTransparentBackground":false,"customScript":"","customRedirectUrls":[{"url":"https://holesinfrastructure.ez-mk.com/thank-you/"}],"logo":null,"additionalInfo":null,"analyticsSettings":{"facebook":{"pixelId":"2329921064023190"}},"footer":null,"actionOnSubmit":"redirect"},"screenshotUrl":"https://res.cloudinary.com/dqnjggegp/image/upload/v1751208455/growform-production/form-screenshots/6851d10140e0f3000bcb5da2.png","ownedByUser":"67e83f180543b0000babf1d4","personalisation":{"form_related_to":"Builders / Construction"},"created":"2025-06-17T20:33:05.669Z","__v":0,"lastEdited":"2025-06-29T14:47:30.769Z","leadsCount":2},"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' + '