1 <!DOCTYPE html> <html lang="en" > <head> <!-- OneTrust Cookies Consent Notice start for sunprotection.com -->
1<script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="019cd305-a052-743f-b97e-e437d99abd85"></script>
1
1<script type="text/javascript"> 2 function OptanonWrapper() { } 3 </script>
3 <!-- OneTrust Cookies Consent Notice end for sunprotection.com --> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
3<script type="module" src="/Public/library/jquery-3.7.1.min.js"></script>
3
3<script type="module" src="/Public/library/js.cookie.min.js"></script>
3
3<script type="module" src="/Public/library/jquery.touchSwipe.min.js"></script>
3 <!-- Bootstrap JS dependencies -->
3<script src="/ResourcePackages/Bootstrap5/assets/dist/js/popper.min.js"></script>
3
3<script src="/ResourcePackages/Bootstrap5/assets/dist/js/bootstrap.min.js"></script>
3 <!-- Main js file -->
3<script type="module" src="/ResourcePackages/Bootstrap5/assets/dist/js/main.min.js"></script>
3 <!-- Invoca Script -->
3<script> 4 (function (i, n, v, o, c, a) { 5 i.InvocaTagId = o; var s = n.createElement('script'); s.type = 'text/javascript'; 6 s.async = true; s.src = ('https:' === n.location.protocol ? 'https://' : 'http://') + v; 7 var fs = n.getElementsByTagName('script')[0]; fs.parentNode.insertBefore(s, fs); 8 })(window, document, 'solutions.invocacdn.com/js/invoca-latest.min.js', '891/3846605947'); 9 </script>
9 <!-- Swiper dependencies --> <link rel="stylesheet" href="/Public/library/swiper/swiper-bundle.min.css" />
9<script src="/Public/library/swiper/swiper-bundle.min.js"></script>
9
9<script src="/ScriptResource.axd?d=6DQe8ARl7A9TiuWej5ttCsCwe6a9TJ-BkHvElAvzlJ8X5LoZzrmga9RaRScaGFvYAbwIqVhjVYc5qF3LpNsxNxkppEyEf_pH05PEsnk3l8eFgZ3D1tO5U18qSRcAd3RSNMCDGr30jBfhUbe71LkCyLWs96WdaATxu8ZhrPovDenovBoXOtOr0K32WtntJL0s0&t=2bbef9e8" type="text/javascript"></script>
9<script src="/ScriptResource.axd?d=74FHISOx3fOPKwLxL0RMYgGJLTyEfqm0dtb550FMG_nWgplGWAFjoHClXm6VoQcWR6FX1Z8DqBPAXlGTfWbDYXcJi7omQ5JxaMSA6mVV5aVB03op0POEciAFN7KqWVGN7zwPSP0ilwXjJR2Z4qCh4ZkDakFqfwqO-OdKvYYjofzaXSrcvyW7sgCw0A0GMSZZ0&t=2bbef9e8" type="text/javascript"></script>
9<link href="/ResourcePackages/Bootstrap5/assets/dist/css/main.min.css?package=Bootstrap5" rel="stylesheet" type="text/css" />
9<script> 10 var utag_data = { 11 adkey: "MC41092", 12 domain: "www.sunprotection.com", 13 internal_or_external: "External", 14 toll_free_number: "", 15 AppCount: 0, 16 VDN: "", 17 IpAddress: "181.215.65.66", 18 brand: "SPF" 19 }; 20 21 localStorage.setItem("adkey", "MC41092"); 22</script>
22 <!-- Google Tag Manager -->
22<script>
vendor: 491 bytes, lines 22-30
22 23 (function (w, d, s, l, i) { 24 w[l] = w[l] || []; w[l].push({ 25 'gtm.start': 26 new Date().getTime(), event: 'gtm.js' 27 }); var f = d.getElementsByTagName(s)[0], 28 j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 29 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); 30 })(window, document, 'script', 'dataLayer', '
30GTM-WSRNDZDD
vendor: 3 bytes, line 30
30');
30</script>
30 <!-- End Google Tag Manager --> <title> 31 Desired Product 32</title> <!-- Start VWO Async SmartCode --> <link rel="preconnect" href="https://dev.visualwebsiteoptimizer.com" />
32<script type='text/javascript' id='vwoCode'> 33 window._vwo_code || 34 (function () { 35 var w = window, 36 d = document; 37 var account_id = 1216466, 38 version = 2.2, 39 settings_tolerance = 2000, 40 hide_element = 'body', 41 hide_element_style = 'opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important'; 42 /* DO NOT EDIT BELOW THIS LINE */ 43 var f = 0, v; 44 if (f = !1, v = d.querySelector('#vwoCode'), cc = {}, -1 < d.URL.indexOf('__vwo_disable__') || w._vwo_code) return; try { var e = JSON.parse(localStorage.getItem('_vwo_' + account_id + '_config')); cc = e && 'object' == typeof e ? e : {} } catch (e) { } function r(t) { try { return decodeURIComponent(t) } catch (e) { return t } } var s = function () { var e = { combination: [], combinationChoose: [], split: [], exclude: [], uuid: null, consent: null, optOut: null }, t = d.cookie || ''; if (!t) return e; for (var n, i, o = /(?:^|;\s*)(?:(_vis_opt_exp_(\d+)_combi=([^;]*))|(_vis_opt_exp_(\d+)_combi_choose=([^;]*))|(_vis_opt_exp_(\d+)_split=([^:;]*))|(_vis_opt_exp_(\d+)_exclude=[^;]*)|(_vis_opt_out=([^;]*))|(_vwo_global_opt_out=[^;]*)|(_vwo_uuid=([^;]*))|(_vwo_consent=([^;]*)))/g; null !== (n = o.exec(t));)try { n[1] ? e.combination.push({ id: n[2], value: r(n[3]) }) : n[4] ? e.combinationChoose.push({ id: n[5], value: r(n[6]) }) : n[7] ? e.split.push({ id: n[8], value: r(n[9]) }) : n[10] ? e.exclude.push({ id: n[11] }) : n[12] ? e.optOut = r(n[13]) : n[14] ? e.optOut = !0 : n[15] ? e.uuid = r(n[16]) : n[17] && (i = r(n[18]), e.consent = i && 3 <= i.length ? i.substring(0, 3) : null) } catch (e) { } return e }(); function i() { var e = function () { if (w.VWO && Array.isArray(w.VWO)) for (var e = 0; e < w.VWO.length; e++) { var t = w.VWO[e]; if (Array.isArray(t) && ('setVisitorId' === t[0] || 'setSessionId' === t[0])) return !0 } return !1 }(), t = 'a=' + account_id + '&u=' + encodeURIComponent(w._vis_opt_url || d.URL) + '&vn=' + version + '&ph=1' + ('undefined' != typeof platform ? '&p=' + platform : '') + '&st=' + w.performance.now(); e || ((n = function () { var e, t = [], n = {}, i = w.VWO && w.VWO.appliedCampaigns || {}; for (e in i) { var o = i[e] && i[e].v; o && (t.push(e + '-' + o + '-1'), n[e] = !0) } if (s && s.combination) for (var r = 0; r < s.combination.length; r++) { var a = s.combination[r]; n[a.id] || t.push(a.id + '-' + a.value) } return t.join('|') }()) && (t += '&c=' + n), (n = function () { var e = [], t = {}; if (s && s.combinationChoose) for (var n = 0; n < s.combinationChoose.length; n++) { var i = s.combinationChoose[n]; e.push(i.id + '-' + i.value), t[i.id] = !0 } if (s && s.split) for (var o = 0; o < s.split.length; o++)t[(i = s.split[o]).id] || e.push(i.id + '-' + i.value); return e.join('|') }()) && (t += '&cc=' + n), (n = function () { var e = {}, t = []; if (w.VWO && Array.isArray(w.VWO)) for (var n = 0; n < w.VWO.length; n++) { var i = w.VWO[n]; if (Array.isArray(i) && 'setVariation' === i[0] && i[1] && Array.isArray(i[1])) for (var o = 0; o < i[1].length; o++) { var r, a = i[1][o]; a && 'object' == typeof a && (r = a.e, a = a.v, r && a && (e[r] = a)) } } for (r in e) t.push(r + '-' + e[r]); return t.join('|') }()) && (t += '&sv=' + n)), s && s.optOut && (t += '&o=' + s.optOut); var n = function () { var e = [], t = {}; if (s && s.exclude) for (var n = 0; n < s.exclude.length; n++) { var i = s.exclude[n]; t[i.id] || (e.push(i.id), t[i.id] = !0) } return e.join('|') }(); return n && (t += '&e=' + n), s && s.uuid && (t += '&id=' + s.uuid), s && s.consent && (t += '&consent=' + s.consent), w.name && -1 < w.name.indexOf('_vis_preview') && (t += '&pM=true'), w.VWO && w.VWO.ed && (t += '&ed=' + w.VWO.ed), t } code = { nonce: v && v.nonce, library_tolerance: function () { return 'undefined' != typeof library_tolerance ? library_tolerance : void 0 }, settings_tolerance: function () { return cc.sT || settings_tolerance }, hide_element_style: function () { return '{' + (cc.hES || hide_element_style) + '}' }, hide_element: function () { return performance.getEntriesByName('first-contentful-paint')[0] ? '' : 'string' == typeof cc.hE ? cc.hE : hide_element }, getVersion: function () { return version }, finish: function (e) { var t; f || (f = !0, (t = d.getElementById('_vis_opt_path_hides')) && t.parentNode.removeChild(t), e && ((new Image).src = 'https://dev.visualwebsiteoptimizer.com/ee.gif?a=' + account_id + e)) }, finished: function () { return f }, addScript: function (e) { var t = d.createElement('script'); t.type = 'text/javascript', e.src ? t.src = e.src : t.text = e.text, v && t.setAttribute('nonce', v.nonce), d.getElementsByTagName('head')[0].appendChild(t) }, load: function (e, t) { t = t || {}; var n = new XMLHttpRequest; n.open('GET', e, !0), n.withCredentials = !t.dSC, n.responseType = t.responseType || 'text', n.onload = function () { if (t.onloadCb) return t.onloadCb(n, e); 200 === n.status ? _vwo_code.addScript({ text: n.responseText }) : _vwo_code.finish('&e=loading_failure:' + e) }, n.onerror = function () { if (t.onerrorCb) return t.onerrorCb(e); _vwo_code.finish('&e=loading_failure:' + e) }, n.send() }, init: function () { var e, t = this.settings_tolerance(); w._vwo_settings_timer = setTimeout(function () { _vwo_code.finish() }
44, t), 'body' !== this.hide_element() ? (n = d.createElement('style'), e = (t = this.hide_element()) ? t + this.hide_element_style() : '', t = d.getElementsByTagName('head')[0], n.setAttribute('id', '_vis_opt_path_hides'), v && n.setAttribute('nonce', v.nonce), n.setAttribute('type', 'text/css'), n.styleSheet ? n.styleSheet.cssText = e : n.appendChild(d.createTextNode(e)), t.appendChild(n)) : (n = d.getElementsByTagName('head')[0], (e = d.createElement('div')).style.cssText = 'z-index: 2147483647 !important;position: fixed !important;left: 0 !important;top: 0 !important;width: 100% !important;height: 100% !important;background: white !important;', e.setAttribute('id', '_vis_opt_path_hides'), e.classList.add('_vis_hide_layer'), n.parentNode.insertBefore(e, n.nextSibling)); var n = 'https://dev.visualwebsiteoptimizer.com/j.php?' + i(); -1 !== w.location.search.indexOf('_vwo_xhr') ? this.addScript({ src: n }) : this.load(n + '&x=true', { l: 1 }) } }; w._vwo_code = code; code.init(); 45 })(); 46 </script>
46 <!-- End VWO Async SmartCode --> <meta property="og:title" content="Desired Product" /><meta property="og:url" content="https://www.sunprotection.com/desired-product" /><meta property="og:type" content="website" /><meta property="og:site_name" content="SPF" /><meta name="Generator" content="Sitefinity 15.2.8429.0 DX" /><link rel="canonical" href="https://www.sunprotection.com/desired-product" /></head> <body> <!-- Google Tag Manager (noscript) -->
vendor: 69 bytes, line 46
46 <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=
46GTM-WSRNDZDD
vendor: 101 bytes, lines 46-47
46" 47 height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript>
47<!-- End Google Tag Manager (noscript) --> 48<link rel="stylesheet" href="/public/styles/spf-landing-shared.css" /> 49<link rel="stylesheet" href="/public/styles/simple-header.css" /> 50<header class="sp-simple-header"> 51 <div class="sp-simple-header-inner"> 52 <span class="sp-simple-logo"> 53 <img src="https://www.sunprotection.com/images/default-source/default-album/spf-desktop-lgo752a2dd3-7911-4f3a-80b1-55bbfd77861a.webp?Status=Master&sfvrsn=6eacb3b7_1" alt="SPF Screens & Awnings"> 54 </span> 55 <div class="sp-simple-phone-wrap"> 56 <span class="sp-simple-phone-label">Call us!</span> 57 <a class="sp-simple-phone" href="tel:19417279984"> 58 (941) 727-9984 59 </a> 60 </div> 61 </div> 62</header> 63<link rel="stylesheet" href="/public/styles/spf-landing-shared.css" /> 64<link rel="stylesheet" href="/public/styles/product-selector.css" /> 65 66 67<section class="sp-product-selector"> 68 <div class="sp-ps-container"> 69 <h2>What product are you interested in?</h2> 70 <p class="sp-ps-subheading">Select from the choices below:</p> 71 72 <div class="sp-ps-grid"> 73 <button type="button" class="sp-ps-card" data-title="Motorized Screens" data-value="Motorized Roll Screen"> 74 <span class="sp-ps-radio"></span> 75 <div class="sp-ps-image"> 76 <img src="https://www.sunprotection.com/images/default-source/blog-images/spf2602_hurricanescreen_gtv_year-round-hurricane-defense_260223_7fcbc824030dcf-8836-4eb1-a787-0c96bdabe4dd.webp?Status=Master&sfvrsn=90363bdb_2" alt=""""> 77 </div> 78 <span class="sp-ps-title">Motorized Screens</span> 79 </button> 80 <button type="button" class="sp-ps-card" data-title="Motorized Awnings" data-value="Retractable Awning"> 81 <span class="sp-ps-radio"></span> 82 <div class="sp-ps-image"> 83 <img src="https://www.sunprotection.com/images/default-source/blog-images/spf_golden-hour-patio-perspective_260422_e08949-(3).jpg?Status=Master&sfvrsn=60c430d3_3" alt=""""> 84 </div> 85 <span class="sp-ps-title">Motorized Awnings</span> 86 </button> 87 <button type="button" class="sp-ps-card" data-title="Storm & Hurricane Screens" data-value="Defender Hurricane Screen"> 88 <span class="sp-ps-radio"></span> 89 <div class="sp-ps-image"> 90 <img src="https://www.sunprotection.com/images/default-source/blog-images/spf2602_hurricanescreen_gtv_inevitable-hurricane-season_260223_0e0524.webp?Status=Master&sfvrsn=1ce5e965_2" alt="Storm & Hurricane Screens"> 91 </div> 92 <span class="sp-ps-title">Storm & Hurricane Screens</span> 93 </button> 94 <button type="button" class="sp-ps-card" data-title="Pergola" data-value="Pergola"> 95 <span class="sp-ps-radio"></span> 96 <div class="sp-ps-image"> 97 <img src="https://www.sunprotection.com/images/default-source/blog-images/black-k-bana-white-louvers---pool---privacy-wall-23.webp?Status=Master&sfvrsn=3cd90b19_2" alt="Pergola"> 98 </div> 99 <span class="sp-ps-title">Pergola</span> 100 <span class="sp-ps-desc">Available in 10x10 and 12x12</span> 101 </button> 102 <button type="button" class="sp-ps-card" data-title="Awning Fabric Replacement" data-value="Retractable Awning Recover"> 103 <span class="sp-ps-radio"></span> 104 <div class="sp-ps-image"> 105 <img src="https://www.sunprotection.com/images/default-source/blog-images/spf2606_awning_260601_b961c9.webp?Status=Master&sfvrsn=708aa8a7_2" alt=""""> 106 </div>
107 <span class="sp-ps-title">Awning Fabric Replacement</span> 108 <span class="sp-ps-desc">On motorized awnings only</span> 109 </button> 110 </div> 111 <p class="sp-ps-dontsee"> 112 Don't see the product you're looking for? Call us at 113 <a href="tel:19417279984" class="display-phone">(941) 727-9984</a> 114 </p> 115 <div class="sp-ps-banner"> 116 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="5" /><path d="M12 1v2M12 21v2M4.2 4.2l1.4 1.4M18.4 18.4l1.4 1.4M1 12h2M21 12h2M4.2 19.8l1.4-1.4M18.4 5.6l1.4-1.4" /></svg> 117 <span>Must have and existing permanent structure to mount to. </span> 118 </div> 119 <div class="sp-ps-footer-row"> 120 <div class="sp-ps-notoffer"> 121 <h4>Products we do not offer:</h4> 122 <div class="sp-ps-notoffer-list"> 123 <span><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><path d="M18 6L6 18M6 6l12 12" /></svg>Extended Roofs</span> 124 <span><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><path d="M18 6L6 18M6 6l12 12" /></svg>Aluminum Pool Cage Construction</span> 125 <span><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><path d="M18 6L6 18M6 6l12 12" /></svg>Custom Pergolas</span> 126 <span><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><path d="M18 6L6 18M6 6l12 12" /></svg>Patio Construction</span> 127 </div> 128 </div> 129 <div class="sp-ps-next-wrap"> 130 <button type="button" class="sp-btn sp-btn-primary" id="productSelectorNext" 131 data-next-url="/scheduler/select-time" disabled> 132 Schedule your free estimate 133 </button> 134 </div> 135 </div> 136 <div id="productSelectorError" class="sp-ps-error" style="display:none"></div> 137 </div> 138</section>
139<script> 140 (function () { 141 var cards = document.querySelectorAll('.sp-ps-card'); 142 var nextBtn = document.getElementById('productSelectorNext'); 143 var errorEl = document.getElementById('productSelectorError'); 144 var originalLabel = nextBtn ? nextBtn.textContent : ''; 145 var selectedValue = null; 146 147 cards.forEach(function (card) { 148 card.addEventListener('click', function () { 149 cards.forEach(function (c) { c.classList.remove('sp-selected'); }); 150 card.classList.add('sp-selected'); 151 selectedValue = card.getAttribute('data-value'); 152 if (nextBtn) nextBtn.disabled = false; 153 if (errorEl) errorEl.style.display = 'none'; 154 }); 155 }); 156 157 // Reuses whatever phone number Invoca already swapped in elsewhere on this page (e.g. the "Don't see it" link), since Invoca only scans the DOM once 158 // on page load and won't pick up numbers added later, like this error box. 159 // Falls back to the static default if no swapped number is found. 160 function getCurrentPhone() { 161 var swapped = document.querySelector('.display-phone, .dynamic-phone-number-link'); 162 if (swapped) { 163 return { href: swapped.getAttribute('href'), text: swapped.textContent.trim() }; 164 } 165 return { href: 'tel:19417279984', text: '(941) 727-9984' }; 166 } 167 168 function showError(message) { 169 if (!errorEl) return; 170 var phone = getCurrentPhone(); 171 var phoneLink = '<a href="' + phone.href + '" class="display-phone">' + phone.text + '</a>'; 172 errorEl.innerHTML = message.replace('{{phone}}', phoneLink); 173 errorEl.style.display = 'block'; 174 } 175 176 if (nextBtn) { 177 nextBtn.addEventListener('click', function () { 178 var params = new URLSearchParams(window.location.search); 179 var leadId = params.get('leadid'); 180 181 if (!leadId) { 182 showError('Missing lead information. Please call us at {{phone}} to complete your booking.'); 183 return; 184 } 185 186 if (!selectedValue) return; 187 188 nextBtn.disabled = true; 189 nextBtn.textContent = 'Saving...'; 190 191 fetch('/Boomi/UpdateLeadDesiredProduct', { 192 method: 'POST', 193 headers: { 'Content-Type': 'application/json' }, 194 body: JSON.stringify({ leadId: leadId, DesiredProduct: selectedValue }) 195 }) 196 .then(function (res) { return res.json(); }) 197 .then(function (data) { 198 var parsed = JSON.parse(data); 199 if (parsed && parsed.Valid) { 200 var baseUrl = nextBtn.getAttribute('data-next-url'); 201 var query = window.location.search; 202 var joined = query ? (baseUrl.indexOf('?') === -1 ? query : query.replace('?', '&')) : ''; 203 window.location.href = baseUrl + joined; 204 } else { 205 showError('Something went wrong saving your selection. Please try again or call us at {{phone}}.'); 206 nextBtn.disabled = false; 207 nextBtn.textContent = originalLabel; 208 } 209 }) 210 .catch(function () { 211 showError('Something went wrong saving your selection. Please try again or call us at {{phone}}.'); 212 nextBtn.disabled = false; 213 nextBtn.textContent = originalLabel; 214 }); 215 }); 216 } 217 })(); 218</script>
218 219<style> 220 #ot-sdk-btn { 221 background-color: #eee !important; 222 margin: 0 auto; 223 padding: 0 !important; 224 font-family: "Montserrat", sans-serif; 225 font-weight: 400; 226 font-size: 14px !important; 227 line-height: 22px !important; 228 letter-spacing: 0; 229 cursor: pointer; 230 color: #212529 !important; 231 } 232 233 #ot-sdk-btn:hover { 234 color: #212529!important; 235 cursor: pointer; 236 text-decoration: underline; 237 } 238</style> 239<footer class="section-pt" role="contentinfo" aria-label="Website footer"> 240 <div class="spacing-py white-smoke-bg"> 241 <div class="container px-0"> 242 <!-- 4 Columns section --> 243 <div class="row justify-content-center align-items-start spacing-pt mx-0"> 244 <!-- First Column --> 245 <div class="col-12 max-w-sm-400 col-lg-3 px-0"> 246 <div class="d-flex center-flex flex-column spacing-gap"> 247 <!-- Footer logo & Tag line text--> 248 <figure class="d-flex flex-column align-items-center align-items-lg-start spacing-gap w-100 mb-0" role="group" aria-label="Company logo and tagline"> 249 <div class="footer__logo-picture"> 250 <img src="https://www.sunprotection.com/images/default-source/default-album/spf-desktop-lgo752a2dd3-7911-4f3a-80b1-55bbfd77861a.webp?Status=Master&sfvrsn=6eacb3b7_1" alt="" loading="lazy" class="img-fluid d-none d-md-block" /> 251 <img src="https://www.sunprotection.com/images/default-source/default-album/spf-desktop-lgo752a2dd3-7911-4f3a-80b1-55bbfd77861a.webp?Status=Master&sfvrsn=6eacb3b7_1" alt="" loading="lazy" class="img-fluid d-block d-md-none" /> 252 </div> 253 254 <!-- Tag line text --> 255 <figcaption class="footer__tagline-text text-xs-reg dark-slate-blue text-center text-md-start mb-0 spacing-half-py"> 256 257 </figcaption> 258 </figure> 259 260 <!-- Social Icons --> 261 <div class="d-flex justify-content-center justify-content-lg-start gap-3 w-100" aria-label="Social media links"> 262<a href="https://www.facebook.com/spfscreensandawnings" class="footer__social-icon text-reset white orange-bg d-flex center-flex" aria-label="Follow us on https://www.facebook.com/spfscreensandawnings" target="_blank"> 263 <i class="fa-brands fa-facebook-f white"></i> 264 </a> 265<a href="https://www.instagram.com/spfscreensandawnings/" class="footer__social-icon text-reset white orange-bg d-flex center-flex" aria-label="Follow us on https://www.instagram.com/spfscreensandawnings/" target="_blank"> 266 <i class="fa-brands fa-instagram white"></i> 267 </a> 268<a href="https://www.google.com/search?q=sun+protection+of+florida&oq=sun+p&aqs=chrome.0.69i59j69i57j0j69i60l3.1157j0j4&sourceid=chrome&ie=UTF-8" class="footer__social-icon text-reset white orange-bg d-flex center-flex" aria-label="Follow us on https://www.google.com/search?q=sun+protection+of+florida&oq=sun+p&aqs=chrome.0.69i59j69i57j0j69i60l3.1157j0j4&sourceid=chrome&ie=UTF-8" target="_blank"> 269 <i class="fa-brands fa-google white"></i> 270 </a> 271 </div> 272 </div> 273 </div> 274 275 <!-- Second Column --> 276 <div class="col-12 max-w-sm-400 col-md-4 col-lg-3 footer-spacing-py spacing-px" role="list" aria-label="Footer links"> 277 <!-- Footer links --> 278 <div class="d-flex justify-content-start align-items-start flex-column gap-2"> 279 <div class="footer-link d-flex align-items-center gap-2" role="listitem"> 280 <i class="footer-link__icon fa-solid fa-angles-right charcoal-gray" aria-hidden="true"></i> 281 <a href="https://www.sunprotection.com/retractable-screens" class="footer-link__label text-xs-reg charcoal-gray">Retractable Screens</a> 282 </div> 283 <div class="footer-link d-flex align-items-center gap-2" role="listitem"> 284 <i class="footer-link__icon fa-solid fa-angles-right charcoal-gray" aria-hidden="true"></i> 285 <a href="https://www.sunprotection.com/retractable-awnings-lp" class="footer-link__label text-xs-reg charcoal-gray">Retractable Awnings </a> 286 </div> 287 <div class="footer-link d-flex align-items-center gap-2" role="listitem"> 288 <i class="footer-link__icon fa-solid fa-angles-right charcoal-gray" aria-hidden="true"></i> 289 <a href="https://www.sunprotection.com/commercial-screens-lp" class="footer-link__label text-xs-reg charcoal-gray"> Commercial Screens</a> 290 </div> 291 <div class="footer-link d-flex align-items-center gap-2" role="listitem"> 292 <i class="footer-link__icon fa-solid fa-angles-right charcoal-gray" aria-hidden="true"></i> 293 <a href="https://www.sunprotection.com/k-bana-pergolas" class="footer-link__label text-xs-reg charcoal-gray">K-Bana Pergolas</a> 294 </div> 295 <div class="footer-link d-flex align-items-center gap-2" role="listitem"> 296 <i class="footer-link__icon fa-solid fa-angles-right charcoal-gray" aria-hidden="true"></i> 297 <a href="https://www.sunprotection.com/about-us/where-we-work" class="footer-link__label text-xs-reg charcoal-gray">Where We Work</a> 298 </div> 299 </div> 300 </div> 301 302 <!-- Third Column --> 303 <div class="col-12 max-w-sm-400 col-md-4 col-lg-3 footer-spacing-py spacing-px" role="list" aria-label="Footer links with button"> 304 <!-- Footer links --> 305 <div class="d-flex flex-column gap-3"> 306 <div class="d-flex justify-content-start align-items-start flex-column gap-2"> 307 <div class="footer-link d-flex align-items-center gap-2" role="listitem"> 308 <i class="footer-link__icon fa-solid fa-angles-right charcoal-gray" aria-hidden="true"></i> 309 <a href="https://www.sunprotection.com/contact" class="footer-link__label text-xs-reg charcoal-gray">Contact</a> 310 </div> 311 <div class="footer-link d-flex align-items-center gap-2" role="listitem"> 312 <i class="footer-link__icon fa-solid fa-angles-right charcoal-gray" aria-hidden="true"></i> 313 <a href="https://www.sunprotection.com/privacy-policy" class="footer-link__label text-xs-reg charcoal-gray">Privacy Policy</a> 314 </div> 315 </div> 316 317 <!-- Button --> 318 <a class="btn btn-footer" href="https://www.sunprotection.com/book-now"> 319 Book Now 320 </a> 321 </div> 322 </div> 323 324 <!-- Fourth Column --> 325 <div class="col-12 max-w-sm-400 col-md-4 col-lg-3 footer-spacing-py spacing-px"> 326 <!-- Contact Details -->
327 <div class="footer__contact-details d-flex flex-column" aria-label="Contact details" role="region"> 328 Phone:<br /><a href="tel:+19417279984" data-sf-ec-immutable=""><strong>(941) 727-9984</strong></a> 329 </div> 330 </div> 331 </div> 332 333 <!-- Copyright section --> 334 <div class="row mx-0 justify-content-center"> 335 <div class="col-12 max-w-sm-400 px-0"> 336 <div class="d-flex flex-column text-start text-md-center text-xs-reg blak"> 337 © 2026 SPF. All Rights Reserved 338 339 </div> 340 <div id="footer-do-not-sell" class="d-flex flex-column text-start text-md-center text-xs-reg blak"> <span id="ot-sdk-btn" class="ot-sdk-show-settings">Do Not Sell or Share My Personal Information</span> </div> 341 </div> 342 </div> 343 </div> 344 </div> 345</footer> 346
346<script type="application/json" id="PersonalizationTracker"> 347 {"IsPagePersonalizationTarget":false,"IsUrlPersonalizationTarget":false,"PageId":"7f0256e6-5a62-4ebb-9908-d54bba701337"} 348</script>
348<script type="text/javascript" src="/WebResource.axd?d=NjxTqR2bqTw1rewxxlkHPtLoQiUrdiQsGsezW1ZudZGtTL5IyyG0rNivNpYoZZMoBdYPiiweSqL5UDSumuuPuArzWI3oqhdfwADfSCtAfJltkN6SQOeiWOA4fV8mmw76dAtVXVtqi0Kw2P-nDfZ6kAIk4JW0bdGyvZ6fLjZ0liMTxcu6tMCoQYhIEeqK7Z9jNxKBSBZ3upXOD9pQNXEMW3DZ3zZEiDGxxtqBU3ZTXwM1&t=638792845440000000"> 349 350</script>
350 <!-- Footer Scripts-->
350<script type="text/javascript"> 351 352 353 utag_data.OfferTitle = ""; 354 utag_data.OfferSubTitle = ""; 355 utag_data.FinancingTitle = ""; 356 utag_data.FinancingSubTitle = ""; 357 utag_data.OfferDetails = ' <strong> Offer Code . </strong>'; 358 utag_data.FinancingDetails = ''; 359 utag_data.MiscLeadId = "|"; 360 utag_data.DisplayPromoField = "False"; 361 utag_data.CampaignID = "701TQ00000IHv9DYAT"; 362</script>
362
362<script type="text/javascript"> 363 364 365 $(document).ready(function () { 366 367 $('.dynamic-phone-number').attr("data-invoca", utag_data.adkey.toUpperCase()); 368 $('.dynamic-phone-number').html('<a class="dynamic-phone-number-link" href="tel:(941) 727-9984">(941) 727-9984</a>'); 369 var phoneBtn = $(".display-phone"); 370 371 // Add data-invoca attribute 372 if (utag_data.adkey) { 373 phoneBtn.attr("data-invoca", utag_data.adkey.toUpperCase()); 374 } 375 376 // Update tel: link 377 378 phoneBtn.attr("href", "tel:(941) 727-9984"); 379 380 // Update displayed phone text (replace text node, not SVG) 381 phoneBtn.contents().filter(function () { 382 return this.nodeType === 3 && $.trim(this.nodeValue).length > 0; 383 }).first().replaceWith("(941) 727-9984"); 384 385 phoneBtn.html("(941) 727-9984"); 386 387 388 phoneBtn.addClass("dynamic-phone-number"); 389 390 391 var footerPhone = $(".footer-phone"); 392 393 // Add data-invoca attribute 394 if (utag_data.adkey) { 395 footerPhone.attr("data-invoca", utag_data.adkey.toUpperCase()); 396 } 397 398 // Update tel: link 399 400 footerPhone.attr("href", "tel:(941) 727-9984"); 401 402 // Update displayed phone text (replace text node, not SVG) 403 footerPhone.contents().filter(function () { 404 return this.nodeType === 3 && $.trim(this.nodeValue).length > 0; 405 }).first().replaceWith("(941) 727-9984"); 406 407 footerPhone.html("(941) 727-9984"); 408 409 410 footerPhone.addClass("dynamic-phone-number"); 411 412 413 414 //var currentYear = new Date().getFullYear(); 415 //$('.copy-rights').html('© <span id="footer-year">' + currentYear + '</span>   3 Day Blinds.All Right Reserved.<br/>' + 416 // '<div id="footer-do-not-sell"> <a href="javascript:" id="SeersDoNotSell">Do Not Sell or Share My Personal Information</a> </div> </div>'); 417 418 //if ($('.copy-rights').hasClass('d-flex')) { 419 // $('.copy-rights').removeClass('d-flex'); 420 //} 421 422 423 $('a').bind("click", function () { 424 425 if (window.location.href.indexOf("sunprotection.com") !== -1) { 426 var url = this.href; 427 if (url.toLowerCase().indexOf("sunprotection") !== -1) { 428 429 if (url.indexOf("?") === -1) { 430 url += window.location.search; 431 } 432 else if (url.indexOf("&") !== -1) { 433 url = url.substring(0, url.lastIndexOf('?')) + window.location.search; 434 } 435 436 $(this).attr('href', url); 437 } 438 } 439 440 }); 441 442 var ua = navigator.userAgent; 443 444 if (ua.indexOf("FBAN") !== -1 || 445 ua.indexOf("FBAV") !== -1 || 446 ua.indexOf("FBIOS") !== -1 || 447 ua.indexOf("FBSN") !== -1 || 448 ua.indexOf("FBSS") !== -1 || 449 ua.indexOf("FBDV") !== -1 || 450 ua.indexOf("FBMD") !== -1 || 451 ua.indexOf("FBLC") !== -1 || 452 ua.indexOf("FBCR") !== -1 || 453 ua.indexOf("FBID") !== -1 || 454 ua.indexOf("FBSV") !== -1 455 ) { 456 if (readCookie("3dbFBEvent") === null) { 457 createCookie("3dbFBEvent", CreateGuid(), 90); 458 } 459 } 460 461 if (readCookie("_fbc") !== null && readCookie("3dbFBEvent") === null) { 462 createCookie("3dbFBEvent", CreateGuid(), 90); 463 } 464 }); 465 466 $(window).on('load', function () { 467 468 function fireInvoca() { 469 if (window.Invoca && Invoca.PNAPI) { 470 Invoca.PNAPI.run(); 471 Invoca.PNAPI.display(); 472 console.log("Invoca PNAPI fired"); 473 } else { 474 setTimeout(fireInvoca, 300); 475 console.log("error"); 476 } 477 } 478 479 fireInvoca(); 480 481 }); 482 function CreateGuid() { 483 function _p8(s) { 484 var p = (Math.random().toString(16) + "000000000").substr(2, 8); 485 return s ? "-" + p.substr(0, 4) + "-" + p.substr(4, 4) : p; 486 } 487 return _p8() + _p8(true) + _p8(true) + _p8(); 488 } 489 490 function createCookie(name, value, days) { 491 492 var expires = ""; 493 if (days) { 494 var date = new Date(); 495 date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 496 expires = "; expires=" + date.toGMTString(); 497 } 498 499 document.cookie = name + "=" + value + expires + "; path=/"; 500 } 501 502 function readCookie(name) { 503 var nameEQ = name + "="; 504 var ca = document.cookie.split(';'); 505 for (var i = 0; i < ca.length; i++) { 506 var c = ca[i];
507 while (c.charAt(0) === ' ') c = c.substring(1, c.length); 508 if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length); 509 } 510 return null; 511 } 512 513 function eraseCookie(name) { 514 createCookie(name, "", -1); 515 } 516 517 $(window).on('load', function () { 518 $('head').append('
518<script data-key="$2y$10$GJ5m.5DQCWmYiKSDHscgu.uFCp0J9xjoAhcEyXj.TaEN4QM31H2" data-name="CookieXray" src="https://cdn.seersco.com/banners/18342/19520/cb.js" type="text/javascript"><//script>'); 519 }); 520</script>
520 <!-- PARDOT TRACKING SCRIPT -->
520<script type="text/javascript"> 521 piAId = '999781'; 522 piCId = '1925'; 523 piHostname = 'pi.pardot.com'; 524 525 (function () { 526 function async_load() { 527 var s = document.createElement('script'); s.type = 'text/javascript'; 528 s.src = ('https:' == document.location.protocol ? 'https://pi' : 'https://cdn') + '.pardot.com/pd.js'; 529 var c = document.getElementsByTagName('script')[0]; c.parentNode.insertBefore(s, c); 530 } 531 if (window.attachEvent) { window.attachEvent('onload', async_load); } 532 else { window.addEventListener('load', async_load, false); } 533 })(); 534</script>
534 <!-- Google Tag Manager (noscript) -->
vendor: 69 bytes, line 534
534 <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=
534GTM-K4DHRG6
vendor: 97 bytes, lines 534-535
534" 535 height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript>
535<!-- End Google Tag Manager (noscript) --> </body> </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.