/* growform client2 bundle.url: https://assets.growform.co/9bc702c-mh3cgmgj/form.bundle.js resolve.source: kv resolve.at: 2025-10-27T03:33:18.579Z form.source: kv cache.age_ms: 0 kv.value_present: true fallback_used: false */ ;(function () { var EMBED_TYPE = "iFrame"; var FORM_ID = "67ee820b6ab364000bb73627"; var FORM_BUNDLE_URL = "https://assets.growform.co/9bc702c-mh3cgmgj/form.bundle.js"; // injected by worker (KV/memory/fallback) var FORM_DATA = {"data":{"form":{"_id":"67ee820b6ab364000bb73627","steps":[{"id":"ccf7b0b70842430e4b3840ae","name":"Are you the homeowner?","sortOrder":1,"copyOf":"ac0ce1d8634334328d03ff33"},{"id":"ac0ce1d8634334328d03ff33","name":"How old is your roof?","sortOrder":2,"copyOf":"8d53a2591d86a402dbecf0d3"},{"id":"60c2d61a66a74bcb70ce6e49","name":"Have you noticed any of the following?","sortOrder":3,"copyOf":"acd45227cac332d443c4e1db"},{"id":"bbfece76ebce9649b8e67fb7","name":"When was your roof last inspected?","sortOrder":4,"copyOf":"60c2d61a66a74bcb70ce6e49"},{"id":"08ac76cdfb70fe2aabd0e93d","name":"What type of home do you live in?","sortOrder":5},{"id":"ff4727c9498ef9c0a6c989d9","name":"Contact info","sortOrder":6}],"formName":"Copy of test bathrooms","fields":{"Decorative Header_52363373085874":{"type":"Decorative Header","value":"Thanks for your enquiry!","width":12,"step":"complete","sortOrder":1,"fieldStyle":{"fontSize":{"value":"22","unit":"px"},"fontWeight":"Normal"},"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":"22","unit":"px"},"fontWeight":"Normal"},"stepId":"ff4727c9498ef9c0a6c989d9","margins":{"marginBottom":5}},"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 name","width":12,"margins":{"marginBottom":0},"step":5,"sortOrder":2,"validationRules":{"required":true},"stepId":"ff4727c9498ef9c0a6c989d9"},"Decorative_Paragraph_194067845817258":{"type":"Decorative Paragraph","value":"Thanks for getting in touch. We'll be in contact soon with more information about booking your treatment.","width":12,"step":"complete","sortOrder":2,"margins":{"marginBottom":60},"stepId":"complete"},"decorative_header_46751409231390":{"type":"Decorative Header","value":"Question 1: How old is your roof?","width":12,"step":1,"sortOrder":1,"fieldStyle":{"fontSize":{"value":"22","unit":"px"},"fontWeight":"Normal"},"stepId":"ac0ce1d8634334328d03ff33","margins":{"marginBottom":5}},"buttons_782408809089103":{"type":"Buttons","validationRules":{"required":false},"label":"Type of shower","width":12,"hideLabel":true,"multiple":false,"options":[{"text":"Less than 5 years","image":null,"id":"8b328c78e9db54ad755d1af0"},{"text":"5–10 years","image":null,"id":"d8bd66c5d87df22b6dae7af3"},{"text":"10–20 years","image":null,"id":"f615ddf076680bfaab017a70"},{"text":"Over 20 years","image":null,"id":"a5a5027f1b1386900ef00d09"},{"text":"Not sure","image":null,"id":"fbe8d0c7d41aae844d6fe714"}],"step":1,"sortOrder":2,"helperText":"","imageStyles":{"width":"37","marginBottom":"17","sq_imageOnlyMode":"No"},"buttonStyle":{"minWidth":"107","height":"102","buttonsPerRow":"4","buttonsType":"Rectangle","sq_buttonsPerRow":"2","sq_buttonsPerRowMobile":"2","rt_buttonsPerRow":"1"},"stepId":"ac0ce1d8634334328d03ff33"},"decorative_header_892646863007116":{"type":"Decorative Header","value":"Have you noticed any of the following? (Select all that apply)","width":12,"step":2,"sortOrder":1,"fieldStyle":{"fontSize":{"value":"22","unit":"px"},"fontWeight":"Normal"},"stepId":"60c2d61a66a74bcb70ce6e49","margins":{"marginBottom":5}},"decorative_header_28397019218950":{"type":"Decorative Header","value":"When was your roof last inspected?\n\n","width":12,"step":2,"sortOrder":1,"fieldStyle":{"fontSize":{"value":"22","unit":"px"},"fontWeight":"Normal"},"stepId":"bbfece76ebce9649b8e67fb7","margins":{"marginBottom":5}},"buttons_735655452057524":{"type":"Buttons","validationRules":{"required":false},"label":"Additional features","width":12,"multiple":false,"buttonStyle":{"rt_buttonsPerRow":"1","rt_buttonsPerRowMobile":1,"buttonsType":"Rectangle","spacing":20,"showControls":"Yes","rt_compactLayoutOnMobile":"Yes","sq_buttonsPerRow":"3"},"options":[{"text":"Within the last year","id":"f4ecd9fbb00059e5c971fc48","image":null},{"text":"1–3 years ago","id":"231558306b9d29a3e2cf5dc9","image":null},{"text":"More than 3 years ago","id":"cfc4941fd1c9f24a40c3b425","image":null},{"text":"Never / not by me","image":null,"id":"60e61ea1d3771cd9ad2b9397"}],"stepId":"bbfece76ebce9649b8e67fb7","sortOrder":2,"hideLabel":true,"imageStyles":{"size":"125%"}},"buttons_213098113751274":{"type":"Buttons","validationRules":{"required":false},"label":"Where shall we store your widgets?","width":12,"multiple":true,"buttonStyle":{"rt_buttonsPerRow":"2","rt_buttonsPerRowMobile":1,"buttonsType":"Square","spacing":20,"showControls":"Yes","rt_compactLayoutOnMobile":"Yes","sq_buttonsPerRow":"3"},"imageStyles":{},"options":[{"text":"Water stains on ceilings or walls","id":"8c147d1931bceb2b6dcf7370","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1743684598/uploads/nvrdbcwffxcbc0kst96g.jpg"},{"text":"Missing or cracked shingles","id":"11f4eb397a6786e42b3ef832","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1743684674/uploads/tks4j3d8n3highsqolhi.webp"},{"text":"Moss, algae, or dark streaks","id":"c4afdeb7eb687589bb9feb17","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1743684716/uploads/g7wcyquatqqoxkhowbch.jpg"},{"text":"Shingle granules in gutters","id":"291d7e1484fb9900348e4ff8","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1743684740/uploads/lrhoyopdgxa8ftcgabza.webp"},{"text":"Leaks in your home","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1743684763/uploads/ziuedf57h3lbnw6aexxs.jpg","id":"71d878685eee869794c74b79"},{"text":"None of these","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1743684794/uploads/uhpsh6su234duofw2px2.webp","id":"77185bee9816c4283bdef110"}],"stepId":"60c2d61a66a74bcb70ce6e49","sortOrder":2,"hideLabel":true},"decorative_header_12847375627608":{"type":"Decorative Header","value":"What type of home do you live in?","width":12,"sortOrder":1,"stepId":"08ac76cdfb70fe2aabd0e93d"},"buttons_907725000392256":{"type":"Buttons","validationRules":{"required":false},"label":"Where shall we store your widgets?","width":12,"multiple":false,"buttonStyle":{"rt_buttonsPerRow":2,"rt_buttonsPerRowMobile":1,"buttonsType":"Rectangle","spacing":20,"showControls":"Yes","rt_compactLayoutOnMobile":"Yes"},"imageStyles":{},"options":[{"text":"Bungalow","id":"8c147d1931bceb2b6dcf7370"},{"text":"Terrace house","id":"11f4eb397a6786e42b3ef832"},{"text":"Semi-detached","id":"c4afdeb7eb687589bb9feb17"},{"text":"Detached","id":"291d7e1484fb9900348e4ff8"},{"text":"Other","image":null,"id":"9e4807029d96e35a400e7bf9"}],"stepId":"08ac76cdfb70fe2aabd0e93d","sortOrder":2,"hideLabel":true},"decorative_header_579456695875106":{"type":"Decorative Header","value":"Are you the homeowner?","width":12,"step":1,"sortOrder":1,"fieldStyle":{"fontSize":{"value":"22","unit":"px"},"fontWeight":"bold"},"stepId":"ccf7b0b70842430e4b3840ae","margins":{"marginBottom":5}},"buttons_507756238350363":{"type":"Buttons","validationRules":{"required":false},"label":"Type of shower","width":12,"hideLabel":true,"multiple":false,"options":[{"text":"Yes","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1744038074/uploads/jw5mfr3weksspj4d5xhd.png","id":"8b328c78e9db54ad755d1af0"},{"text":"No","image":"https://res.cloudinary.com/dqnjggegp/image/upload/v1744038079/uploads/dn6740aayl2mbr2xu4f9.png","id":"d8bd66c5d87df22b6dae7af3"}],"step":1,"sortOrder":2,"helperText":"","imageStyles":{"width":"37","marginBottom":"17","sq_imageOnlyMode":"No"},"buttonStyle":{"minWidth":"107","height":"102","buttonsPerRow":"4","buttonsType":"Rectangle","sq_buttonsPerRow":"2","sq_buttonsPerRowMobile":"2","rt_buttonsPerRow":"2","rt_buttonsPerRowMobile":"2"},"stepId":"ccf7b0b70842430e4b3840ae"}},"options":{"numberOfSteps":5,"dateFormat":"DD/MM/YYYY","progressBar":{"enable":true},"continueButton":{"continueText":"Next","submitText":"Get estimate","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":"#f3f5fa","innerFormBackgroundColor":"#ffffff","innerFormBackgroundTransparency":"","primaryColor":"#2968fe","bodyTextColor":"#323232","parentContainerBackgroundType":"none","innerFormBackgroundType":"none","buttonBorderColor":"#ff7500","buttonColorSelected":"#ffa659","buttonBorderColorSelected":"#ff7500","footerMarginBottom":70,"errorColor":"#ff4e4e","buttonColor":"#ff7500","buttonTextColor":"#ffffff","inputLabelColor":"#a3a3a3","inputTextColor":"#000000","defaultFont":"ABeeZee","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":"#EAF0FA","canvasSetup":"minimal","progressColor":"#2968fe"},"localization":{"dateFormat":"MM/DD/YYYY"},"exportTransparentBackground":false,"customScript":"","customRedirectUrls":[{"url":""}],"logo":null},"ownedByUser":"67517bcbbd59e9000b074ce8","personalisation":{"form_related_to":"Bathroom remodelling"},"created":"2025-04-03T12:41:47.209Z","__v":0,"leadsCount":23,"screenshotUrl":"https://res.cloudinary.com/dqnjggegp/image/upload/v1744038121/growform-production/form-screenshots/67ee820b6ab364000bb73627.png","lastEdited":"2025-04-07T15:01:55.763Z","isActive":true},"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' + '