[{"data":1,"prerenderedAt":181},["ShallowReactive",2],{"client:meta":3,"client:contact":142},{"siteName":4,"theme":5,"logo":12,"favicon":15,"navigation_items":16,"footer":37},"Throckley Windows And Doors",{"id":6,"primaryColor":7,"secondaryColor":8,"accentColor":9,"textColor":7,"linkColor":9,"headingFont":10,"bodyFont":10,"headerBackgroundColor":11,"headerNavigationColor":7},18,"#012a45","#023f68","#be2024","Montserrat","#ffffff",{"src":13,"alt":14},"/clients/throckley-windows-and-doors/images/throckley-logo.png","Throckley windows and doors logo",{"src":13,"alt":14},[17,21,25,29,33],{"id":18,"label":19,"url":20},103,"Home","/",{"id":22,"label":23,"url":24},104,"About","/about",{"id":26,"label":27,"url":28},105,"Services","/services",{"id":30,"label":31,"url":32},107,"Projects","/projects",{"id":34,"label":35,"url":36},108,"Contact","/contact",{"id":38,"copy":39,"background_colour":76,"text_colour":77,"news":78,"contact":111,"facebook":138,"instagram":138,"x":138,"youtube":138,"linkedin":138,"logo":139},16,[40,47],{"type":41,"level":42,"children":43},"heading",4,[44],{"text":45,"type":46},"Areas We Cover","text",{"type":48,"children":49},"paragraph",[50,56,61,66,71],{"url":51,"type":52,"children":53},"/locations/newcastle","link",[54],{"text":55,"type":46},"Newcastle\n",{"url":57,"type":52,"children":58},"/locations/gateshead",[59],{"text":60,"type":46},"Gateshead\n",{"url":62,"type":52,"children":63},"/locations/sunderland",[64],{"text":65,"type":46},"Sunderland\n",{"url":67,"type":52,"children":68},"/locations/durham",[69],{"text":70,"type":46},"Durham\n",{"url":72,"type":52,"children":73},"/locations",[74],{"text":75,"type":46},"View all areas →","primary","light",[79,83],{"type":41,"level":42,"children":80},[81],{"text":82,"type":46},"Website Links",{"type":48,"children":84},[85,87,91,92,96,97,101,102,105,107,110],{"text":86,"type":46},"",{"url":20,"type":52,"children":88},[89],{"text":90,"type":46},"Home\n",{"text":86,"type":46},{"url":24,"type":52,"children":93},[94],{"text":95,"type":46},"About\n",{"text":86,"type":46},{"url":28,"type":52,"children":98},[99],{"text":100,"type":46},"Services\n",{"text":86,"type":46},{"url":32,"type":52,"children":103},[104],{"text":31,"type":46},{"text":106,"type":46},"\n",{"url":36,"type":52,"children":108},[109],{"text":35,"type":46},{"text":86,"type":46},[112,116,129],{"type":41,"level":42,"children":113},[114],{"text":115,"type":46},"Get in touch",{"type":48,"children":117},[118,119,124,125,128],{"text":86,"type":46},{"url":120,"type":52,"children":121},"tel:01915972677",[122],{"text":123,"type":46},"Call us now",{"text":86,"type":46},{"url":120,"type":52,"children":126},[127],{"text":86,"type":46},{"text":86,"type":46},{"type":48,"children":130},[131,132,137],{"text":86,"type":46},{"url":133,"type":52,"children":134},"mailto:info@throckleywindowsanddoors.co.uk",[135],{"text":136,"type":46},"Email us now",{"text":86,"type":46},null,{"src":140,"alt":141},"/clients/throckley-windows-and-doors/images/throckley-logo-white.png","Throckley Windows And Doors white logo",{"slug":143,"seo":144,"sections":152},"contact",{"id":145,"title":146,"description":147,"canonical":138,"noIndex":148,"noFollow":148,"image":149,"ogImage":150},57,"Throckley Windows & Doors | Contact","Get in touch, send us a message or give us a call.",false,{"src":150,"alt":151},"/clients/throckley-windows-and-doors/images/throckley-contact.jpg","sash window from inside",[153,169],{"__component":154,"id":155,"copy":156,"full_height":148,"image":167,"cta_buttons":168},"content.hero",54,[157,162],{"type":41,"level":158,"children":159},1,[160],{"text":161,"type":46},"GET IN TOUCH",{"type":48,"children":163},[164],{"bold":165,"text":166,"type":46},true,"THROCKLEY WINDOWS AND DOORS",{"src":150,"alt":151},[],{"__component":170,"id":171,"code":172,"content":173},"content.form",2,"\u003Cstyle>\n  #contact-form-wrap * { box-sizing: border-box; }\n  #contact-form-wrap { font-family: inherit; max-width: 560px; }\n  #contact-form-wrap .cf-field { margin-bottom: 1rem; }\n  #contact-form-wrap label { display: block; font-size: 0.875rem; font-weight: 600; margin-bottom: 0.3rem; }\n  #contact-form-wrap input,\n  #contact-form-wrap textarea { width: 100%; padding: 0.6rem 0.75rem; border: 1px solid #ccc; border-radius: 4px; font-size: 1rem; font-family: inherit; transition: border-color 0.2s; }\n  #contact-form-wrap textarea { height: 120px; resize: vertical; }\n  #contact-form-wrap input:focus,\n  #contact-form-wrap textarea:focus { outline: none; border-color: #666; }\n  #contact-form-wrap input.cf-invalid,\n  #contact-form-wrap textarea.cf-invalid { border-color: #dc2626; }\n  #contact-form-wrap input.cf-valid,\n  #contact-form-wrap textarea.cf-valid { border-color: #16a34a; }\n  #contact-form-wrap .cf-error-msg { display: none; font-size: 0.8rem; color: #dc2626; margin-top: 0.25rem; }\n  #contact-form-wrap .cf-error-msg.visible { display: block; }\n  #contact-form-wrap button { padding: 0.65rem 1.5rem; background: #000; color: #fff; border: none; border-radius: 4px; font-size: 1rem; cursor: pointer; }\n  #contact-form-wrap button:disabled { opacity: 0.6; cursor: not-allowed; }\n  #contact-form-wrap .cf-success { padding: 1rem; background: #ecfdf5; border: 1px solid #6ee7b7; border-radius: 4px; color: #065f46; }\n  #contact-form-wrap .cf-submit-error { padding: 1rem; background: #fef2f2; border: 1px solid #fca5a5; border-radius: 4px; color: #991b1b; margin-bottom: 1rem; display: none; }\n\u003C/style>\n\n\u003Cdiv id=\"contact-form-wrap\">\n  \u003Cdiv id=\"cf-submit-error\" class=\"cf-submit-error\">Something went wrong. Please try again.\u003C/div>\n  \u003Cform id=\"contact-form\" action=\"https://formspree.io/f/xgaajgaj\" method=\"POST\" novalidate>\n    \u003Cdiv class=\"cf-field\">\n      \u003Clabel for=\"cf-name\">Name\u003C/label>\n      \u003Cinput type=\"text\" id=\"cf-name\" name=\"name\" required placeholder=\"Jane Smith\" />\n      \u003Cspan class=\"cf-error-msg\" id=\"cf-name-error\">Please enter your name.\u003C/span>\n    \u003C/div>\n    \u003Cdiv class=\"cf-field\">\n      \u003Clabel for=\"cf-email\">Email\u003C/label>\n      \u003Cinput type=\"email\" id=\"cf-email\" name=\"email\" required placeholder=\"jane@example.com\" />\n      \u003Cspan class=\"cf-error-msg\" id=\"cf-email-error\">Please enter a valid email address.\u003C/span>\n    \u003C/div>\n    \u003Cdiv class=\"cf-field\">\n      \u003Clabel for=\"cf-telephone\">Telephone\u003C/label>\n      \u003Cinput type=\"tel\" id=\"cf-telephone\" name=\"telephone\" required placeholder=\"07700 900000\" />\n      \u003Cspan class=\"cf-error-msg\" id=\"cf-telephone-error\">Please enter your telephone number.\u003C/span>\n    \u003C/div>\n    \u003Cdiv class=\"cf-field\">\n      \u003Clabel for=\"cf-postcode\">Postcode\u003C/label>\n      \u003Cinput type=\"text\" id=\"cf-postcode\" name=\"postcode\" required placeholder=\"PO2 6TY\" />\n      \u003Cspan class=\"cf-error-msg\" id=\"cf-postcode-error\">Please enter your postcode.\u003C/span>\n    \u003C/div>\n    \u003Cdiv class=\"cf-field\">\n      \u003Clabel for=\"cf-message\">Message\u003C/label>\n      \u003Ctextarea id=\"cf-message\" name=\"message\" required placeholder=\"Your message...\">\u003C/textarea>\n      \u003Cspan class=\"cf-error-msg\" id=\"cf-message-error\">Please enter a message.\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"submit\" id=\"cf-submit\">Send Message\u003C/button>\n  \u003C/form>\n  \u003Cdiv id=\"cf-success\" class=\"cf-success\" style=\"display:none\">\n    Thanks for getting in touch! We'll get back to you as soon as possible.\n  \u003C/div>\n\u003C/div>\n\n\u003Cscript>\n  (function () {\n    var form = document.getElementById('contact-form');\n    var btn = document.getElementById('cf-submit');\n    var success = document.getElementById('cf-success');\n    var submitError = document.getElementById('cf-submit-error');\n\n    var fields = [\n      { el: document.getElementById('cf-name'), error: document.getElementById('cf-name-error') },\n      { el: document.getElementById('cf-email'), error: document.getElementById('cf-email-error') },\n      { el: document.getElementById('cf-telephone'), error: document.getElementById('cf-telephone-error') },\n      { el: document.getElementById('cf-postcode'), error: document.getElementById('cf-postcode-error') },\n      { el: document.getElementById('cf-message'), error: document.getElementById('cf-message-error') }\n    ];\n\n    function validateField(field) {\n      var valid = field.el.checkValidity();\n      if (valid && field.el.type === 'email' && field.el.value) {\n        valid = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$/.test(field.el.value);\n      }\n      field.el.classList.toggle('cf-invalid', !valid);\n      field.el.classList.toggle('cf-valid', valid);\n      field.error.classList.toggle('visible', !valid);\n      return valid;\n    }\n\n    fields.forEach(function (field) {\n      field.el.addEventListener('blur', function () {\n        if (field.el.value !== '') validateField(field);\n      });\n      field.el.addEventListener('input', function () {\n        if (field.el.classList.contains('cf-invalid')) validateField(field);\n      });\n    });\n\n    form.addEventListener('submit', function (e) {\n      e.preventDefault();\n      submitError.style.display = 'none';\n\n      var allValid = fields.every(function (field) {\n        return validateField(field);\n      });\n\n      if (!allValid) return;\n\n      btn.disabled = true;\n      btn.textContent = 'Sending...';\n\n      fetch(form.action, {\n        method: 'POST',\n        body: new FormData(form),\n        headers: { Accept: 'application/json' }\n      })\n        .then(function (res) {\n          if (res.ok) {\n            form.style.display = 'none';\n            success.style.display = 'block';\n          } else {\n            return res.json().then(function (data) {\n              throw new Error(data.error || 'Error');\n            });\n          }\n        })\n        .catch(function () {\n          submitError.style.display = 'block';\n          btn.disabled = false;\n          btn.textContent = 'Send Message';\n        });\n    });\n  })();\n\u003C/script>",[174,177],{"type":41,"level":171,"children":175},[176],{"text":115,"type":46},{"type":48,"children":178},[179],{"text":180,"type":46},"Please get in touch via our form and we will get back to you",1794238142925]