PageSourceSearch

https://www.sunprotection.com/desired-product

html sunprotection.com collected 2026-09-28 06:58:13 UTC 37,360 bytes, 535 lines download raw bytes

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&amp;t=2bbef9e8" type="text/javascript"></script>
9<script src="/ScriptResource.axd?d=74FHISOx3fOPKwLxL0RMYgGJLTyEfqm0dtb550FMG_nWgplGWAFjoHClXm6VoQcWR6FX1Z8DqBPAXlGTfWbDYXcJi7omQ5JxaMSA6mVV5aVB03op0POEciAFN7KqWVGN7zwPSP0ilwXjJR2Z4qCh4ZkDakFqfwqO-OdKvYYjofzaXSrcvyW7sgCw0A0GMSZZ0&amp;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&amp;sfvrsn=6eacb3b7_1" alt="SPF Screens &amp; 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&amp;sfvrsn=90363bdb_2" alt="&quot;&quot;">
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&amp;sfvrsn=60c430d3_3" alt="&quot;&quot;">
84                        </div>
85                    <span class="sp-ps-title">Motorized Awnings</span>
86                </button>
87                <button type="button" class="sp-ps-card" data-title="Storm &amp; 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&amp;sfvrsn=1ce5e965_2" alt="Storm &amp; Hurricane Screens">
91                        </div>
92                    <span class="sp-ps-title">Storm &amp; 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&amp;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&amp;sfvrsn=708aa8a7_2" alt="&quot;&quot;">
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&#39;t see the product you&#39;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&amp;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&amp;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&amp;oq=sun+p&amp;aqs=chrome.0.69i59j69i57j0j69i60l3.1157j0j4&amp;sourceid=chrome&amp;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&amp;oq=sun+p&amp;aqs=chrome.0.69i59j69i57j0j69i60l3.1157j0j4&amp;sourceid=chrome&amp;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                            &copy; 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&amp;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> &#32; 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.