PageSourceSearch

https://www.storycrews.com/login

html storycrews.com collected 2026-09-30 22:29:07 UTC 250,444 bytes, 4,840 lines download raw bytes

1<!DOCTYPE HTML>
2<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US">
3<head>
4    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5    <meta http-equiv="X-UA-Compatible" content="IE=edge">
6    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2, user-scalable=1">
7    	
8	<!-- Preconnect -->
9    <link rel="preconnect" href="https://www.optimizecdn.com" crossorigin>
10    <link rel="preconnect" href="https://fonts.googleapis.com">
11	<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
12	<link rel="apple-touch-icon" href="/images/storyCrews_Favicon-08.png">
13    <link rel="icon" type="image/png" href="/images/storyCrews_Favicon-08.png">
14	
15    <!-- Site Meta Data -->
16    <title>Login Now - StoryCrews &trade;️ Videographer and Video Expert Directory</title>
17    <meta name="description" content="Login to your account on StoryCrews ™️ Videographer and Video Expert Directory">
18    <meta name="keywords" content="local video production,videographer">
19    <meta name="robots" content="index, follow">
20
21    <!-- Canonical URL -->
22	<link rel="canonical" href="https://www.storycrews.com/login">	
23	<link rel="alternate" type="application/rss+xml" title="StoryCrews ™️ Videographer and Video Expert Directory RSS Feed" href="https://www.storycrews.com/rss" />
24	
25    	<!-- Social Media Meta Data -->
26    <meta property="og:type" content="website">
27    <meta property="og:url" content="https://www.storycrews.com/login">
28    <meta property="og:site_name" content="StoryCrews ™️ Videographer and Video Expert Directory">
29    <meta property="og:title" content="Login Now - StoryCrews &trade;️ Videographer and Video Expert Directory">
30    <meta property="og:description" content="Login to your account on storycrews ™️ videographer and video expert directory. ">
31    <meta property="og:image" content="https://www.storycrews.com/images/storyCrews_hero.jpg">
32	
32<script>
33	var siteInfoSpan=document.createElement('span');
34	siteInfoSpan.style.cssText='position:absolute;color:transparent;width:100%;z-index:-1;height:50px;top:0;';
35	siteInfoSpan.textContent='www.storycrews.com - StoryCrews ™️ Videographer and Video Expert Directory';
36	document.documentElement.appendChild(siteInfoSpan);
37	</script>
37
38
39	<!-- Preload -->
40	<link rel="preload" as="style" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/css/critical-styles.pkgd.min.css?v=09.05.26" fetchpriority="high" crossorigin>
41	<link rel="preload" as="style" href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800,900&display=swap" fetchpriority="high">
42		
43    <!-- Non-Critical Stylesheet - Render Before Critical Styles -->
44	<link rel="stylesheet" media="print" onload="this.onload=null;this.removeAttribute('media');" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/css/non-critical-styles.pkgd.min.css?v=3.3.0" crossorigin>
45	<noscript>
46		<link rel="stylesheet" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/css/non-critical-styles.pkgd.min.css" crossorigin>
47	</noscript>
48		
49	<!-- Critical Stylesheet -->
50	<link rel="stylesheet" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/css/critical-styles.pkgd.min.css?v=09.05.26" crossorigin>
51    	
52    <!-- Google Fonts Stylesheet -->    
53    <link rel="stylesheet" media="print" onload="this.onload=null;this.removeAttribute('media');" href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800,900&display=swap">
54    <noscript>
55        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800,900&display=swap">
56    </noscript>
57	
58    <!-- FontAwesome Stylesheet -->
59    <link rel="stylesheet" media="print" onload="this.onload=null;this.removeAttribute('media');" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/font-awesome/css/font-awesome.min.css" crossorigin>
60    <noscript>
61        <link rel="stylesheet" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/font-awesome/css/font-awesome.min.css" crossorigin>
62    </noscript>
63	
64    <!-- Bootstrap Icons Stylesheet -->
65    <link rel="stylesheet" media="print" onload="this.onload=null;this.removeAttribute('media');" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/fonts/bootstrap-icons.min.css?v=1.13.1" crossorigin>
66    <noscript>
67        <link rel="stylesheet" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/fonts/bootstrap-icons.min.css?v=1.13.1" crossorigin>
68    </noscript>
69	
70    <!-- Critical JavaScript -->
71    
71<script src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/js/jquery.min.js"></script>
71
72	
72<script src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/js/bootstrap-3.3.5.min.js"></script>
72
73	
73<script>
74		/* jQuery.event.special.touchstart = {
75			setup: function( _, ns, handle ) {
76				this.addEventListener("touchstart", handle, { passive: !ns.includes("noPreventDefault") });
77			}
78		}; */
79		jQuery.event.special.touchmove = {
80			setup: function( _, ns, handle ) {
81				this.addEventListener("touchmove", handle, { passive: !ns.includes("noPreventDefault") });
82			}
83		};
84		jQuery.event.special.wheel = {
85			setup: function( _, ns, handle ){
86				this.addEventListener("wheel", handle, { passive: true });
87			}
88		};
89		jQuery.event.special.mousewheel = {
90			setup: function( _, ns, handle ){
91				this.addEventListener("mousewheel", handle, { passive: true });
92			}
93		};
94	</script>
94
95
96	<!-- Breadcrumb Position -->
97	<style>html.bc-relocate .container:has(> .breadcrumb):has(~ .hero_section_container) .breadcrumb{display:none!important;}html.bc-relocate .hero_section_container + .clearfix + .container::before{content:"";display:block;min-height:24px;}.hero_section_container + .clearfix + .container > .breadcrumb:first-child{position:relative;top:-24px;}</style>
98	
98<script>document.documentElement.classList.add('bc-relocate');document.addEventListener('DOMContentLoaded',function(){var bc=document.querySelector('ol.breadcrumb'),hero=document.querySelector('.hero_section_container');if(bc&&hero){var t=hero.nextElementSibling;while(t&&!t.classList.contains('container'))t=t.nextElementSibling;if(t)t.insertBefore(bc,t.firstChild);}document.documentElement.classList.remove('bc-relocate');});</script>
98
99		
100	
101    <!-- Prefetch -->
102    <link rel="prefetch" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/jquery.lazy/1.7.9/jquery.lazy.min.js" as="script">
103    <link rel="prefetch" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/js/websiteScripts.min.js?v=8.0.0" as="script">
104
105    <!-- Custom Site-wide HEAD Content -->
105<script src="https://embed.lpcontent.net/leadbars/current/embed.js" data-bar="sPDM8RguFwkypaueoxAJ3f" data-bar-domain="authenticweb.lpages.co" async defer></script>
105
106
107<!-- Get Started form Script -->
108<!--
108<script> (function() { var qs,js,q,s,d=document, gi=d.getElementById, ce=d.createElement, gt=d.getElementsByTagName, id="typef_orm_share", b="https://embed.typeform.com/"; if(!gi.call(d,id)){ js=ce.call(d,"script"); js.id=id; js.src=b+"embed.js"; q=gt.call(d,"script")[0]; q.parentNode.insertBefore(js,q) } })() </script>
108
109-->
110<!-- Google Tag Manager -->
111<script>
vendor: 331 bytes, lines 111-115
111(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
112new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
113j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
114'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
115})(window,document,'script','dataLayer','
115GTM-PJGVCVG
vendor: 3 bytes, line 115
115');
115</script>
115
116<!-- End Google Tag Manager -->
117<!-- Facebook Pixel Code -->
118<script>
vendor: 426 bytes, lines 118-127
118
119  !function(f,b,e,v,n,t,s)
120  {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
121  n.callMethod.apply(n,arguments):n.queue.push(arguments)};
122  if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
123  n.queue=[];t=b.createElement(e);t.async=!0;
124  t.src=v;s=b.getElementsByTagName(e)[0];
125  s.parentNode.insertBefore(t,s)}(window, document,'script',
126  'https://connect.facebook.net/en_US/fbevents.js');
127  fbq('init', '
127557590928406455
vendor: 34 bytes, lines 127-128
127');
128  fbq('track', 'PageView');
129</script>
129
130<noscript><img height="1" width="1" style="display:none"
131  src="https://www.facebook.com/tr?id=557590928406455&ev=PageView&noscript=1"
132/></noscript>
133<!-- End Facebook Pixel Code -->
134
135
136<!-- ManyChat -->
137<script src=“//widget.manychat.com/466670094091350.js” async=“async”></script>
137
138
139<!-- Google Tag Manager -->
140<script>
vendor: 331 bytes, lines 140-144
140(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
141new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
142j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
143'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
144})(window,document,'script','dataLayer','
144GTM-WS3T28K
vendor: 3 bytes, line 144
144');
144</script>
144
145<!-- End Google Tag Manager -->
146
147
148<script type="text/javascript">
149_linkedin_data_partner_id = "46801";
150</script>
150<script type="text/javascript">
151(function(){var s = document.getElementsByTagName("script")[0];
152var b = document.createElement("script");
153b.type = "text/javascript";b.async = true;
154b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js";
155s.parentNode.insertBefore(b, s);})();
156</script>
156
157<noscript>
158<img height="1" width="1" style="display:none;" alt="" src="https://dc.ads.linkedin.com/collect/?pid=46801&fmt=gif" />
159</noscript>
160
161<script type="text/javascript">
162_linkedin_data_partner_id = "46812";
163</script>
163<script type="text/javascript">
164(function(){var s = document.getElementsByTagName("script")[0];
165var b = document.createElement("script");
166b.type = "text/javascript";b.async = true;
167b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js";
168s.parentNode.insertBefore(b, s);})();
169</script>
169
170<noscript>
171<img height="1" width="1" style="display:none;" alt="" src="https://dc.ads.linkedin.com/collect/?pid=46812&fmt=gif" />
172</noscript>
173
174<!-- typeform pop up code -->
175<script> (function() { var qs,js,q,s,d=document, gi=d.getElementById, ce=d.createElement, gt=d.getElementsByTagName, id="typef_orm_share", b="https://embed.typeform.com/"; if(!gi.call(d,id)){ js=ce.call(d,"script"); js.id=id; js.src=b+"embed.js"; q=gt.call(d,"script")[0]; q.parentNode.insertBefore(js,q) } })() </script>
175
176<!-- typeform embed standard code -->
177<script> (function() { var qs,js,q,s,d=document, gi=d.getElementById, ce=d.createElement, gt=d.getElementsByTagName, id=“typef_orm”, b=“https://embed.typeform.com/”; if(!gi.call(d,id)) { js=ce.call(d,“script”); js.id=id; js.src=b+“embed.js”; q=gt.call(d,“script”)[0]; q.parentNode.insertBefore(js,q) } })() </script>
177        
177<script>
178        function g() {
179            window.addEventListener('load', () => {
180                if (typeof initializeG === 'function') {
181                    initializeG();
182                } else if (typeof initializeGoogleMaps === 'function') {
183                    initializeGoogleMaps();
184                }
185                            });
186        }
187    </script>
187
188    
188<script src="https://maps.googleapis.com/maps/api/js?v=quarterly&libraries=places&region=US&callback=g&language=en&key=AIzaSyACwMn9sDO2mBCLTP-wwvGmVJJ5MS1bYwM"></script>
188
189
190</head>
191
192<body class="general-session"><!--
193IMPORTANT: It is not recommended to customize this widget as it directly connects to fields in DESIGN SETTINGS. If new design settings are created and this widget is already customized, then the website will not be able to apply any new design setitngs.
194
195INSTEAD: If custom CSS rules are needed, add them directly into the DESIGN SETTINGS > CUSTOM CSS section.
196-->
197<style>
198    .upload-form-field::before {
199        content: "choose files";
200        display: inline-block;
201        border: 1px solid #999;
202        border-radius: 3px;
203        padding: 5px 8px;
204    }
205    #first_container span.input-group-addon,#first_container .datepicker *,#first_container .input-group-addon, #first_container .input-group-addon *,#first_container .fr-action-buttons .fr-submit,.fr-popup .fr-layer.fr-color-hex-layer .fr-action-buttons button.fr-command {
206        white-space: nowrap !important;
207    }
208    /* Main Website Design */
209    body,.modal-header,.modal-content,.modal-body,.modal-footer {
210        background: rgb(255, 255, 255);
211        color: rgb(41, 41, 41);
212        font-family: 'Open Sans';
213        font-size: 14px;
214    }
215    .select2-container .select2-choice {
216        font-family: 'Open Sans'!important;
217    }
218        html{
219        background: rgb(64, 64, 64)    }
220        .bootstrap-datetimepicker-widget *:not(.active,[data-action="togglePeriod"]) a, .bootstrap-datetimepicker-widget *:not(.active,[data-action="togglePeriod"]) td,.datepicker th.picker-switch,.datepicker .dow {
221        color: #000 !important;
222    }    
223    a,a.h1,a.h2,a.h3,a.h4,a.h5,a.h6,.pricing_menu li ul li a:not(.btn) {
224        color: rgb(156, 183, 212);
225    }
226    a:hover, a:focus,.pricing_menu li ul li a:not(.btn):hover,.pricing_menu li ul li a:not(.btn):focus,.btn:hover,.btn:focus {
227        color: rgb(88, 106, 120);
228    }
229    .breadcrumb a{
230            color: rgba(119, 119, 119,0.9);
231    }
232    .breadcrumb a:hover, .breadcrumb a:focus,.breadcrumb > .active {
233        color: rgb(119, 119, 119);
234    }
235    .help-inline, .help-block {
236            color: rgba(41, 41, 41,0.5);
237    }
238    .h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
239        font-family: 'Open Sans';
240    }
241        /* Header Design */
242    .header, .mobile_website_logo img {
243        background: rgb(255, 255, 255);
244    }
245    .header .mini-nav li a:not(.btn):not(.network-icon), .header .mini-nav span {
246        color: rgb(88, 106, 120);
247            font-size: 14px;
248        }
249    .header .mini-nav li a:not(.btn):hover {
250            color: rgba(88, 106, 120,0.95);
251    }
252    .header .btn_get_listed {
253		background-color: rgb(88, 106, 120);
254        border: 1px solid rgb(88, 106, 120);
255        color: rgb(255, 255, 255)!important;
256    }
257    .header .btn_get_listed:hover, .header .btn_get_listed:focus {
258		        background-color: rgba(88, 106, 120,0.97);        
259    }
260    .header .btn_search {
261            background-color: rgba(88, 106, 120,0.97);
262        border: 1px solid rgb(88, 106, 120);
263        color: rgb(255, 255, 255);
264    }
265    .header .btn_search:hover, .header .btn_search:focus {
266        background-color: rgb(88, 106, 120);
267        color: rgb(255, 255, 255);
268    }
269
270    /* Logo Design */
271    .logo,.logo:hover,.logo:focus {
272        color: rgb(52, 73, 94);
273        font-family: 'Open Sans';
274    }
275    .logo .slogan {
276        color: rgb(97, 96, 96);
277    }
278    .logo .fa {
279        color: rgb(52, 73, 94);
280        }
281
282    /* Main Menu Design */
283    .member-profile-tabs > ul, .member-profile-tabs .tabs-container {
284        background: rgb(238, 238, 238);
285        position: sticky;
286        z-index: 1;
287            top: 50px;
288        }
289	/* Google Translate When Main Menu Sticky Top */
290		.skiptranslate:not([style*="display: none;"]) ~ .header .navbar-fixed-top {
291		top: 39px;
292	}
293	.skiptranslate iframe, .skiptranslate:not(.skiptranslate.goog-te-gadget) {
294		position: fixed !important;
295		top: 0 !important;
296		z-index: 999;
297	}   
298	    @media only screen and (max-width: 1100px) {
299        .member-profile-tabs > ul, .member-profile-tabs .tabs-container {
300                    top: 50px;
301                }
302    }
303    .header ul.nav.navbar-nav li ul {
304        background-color: rgb(255, 255, 255);
305    }
306    .header ul.nav.navbar-nav li ul li a, .header ul.nav.navbar-nav li ul li span {
307        color: rgb(0, 0, 0);
308                font-weight: 400;
309            }
310    .header .navbar-default, .pagination > .active > a {
311        background-color: rgb(228, 234, 242);
312    }
313    .header ul.nav.navbar-nav li ul li a:hover, .header ul.nav.navbar-nav li ul li a:focus{
314        border-left-color: rgb(0, 0, 0);
315        background: rgb(0, 0, 0);
316        color: rgb(255, 255, 255);
317    }
318    .navbar-default .navbar-toggle .icon-bar {
319        background-color: rgb(0, 0, 0);
320    }
321	.user_sidebar, .main_menu, .compact-mobile-search {
322        color: rgb(0, 0, 0);
323    }
324    .navbar-default .navbar-nav > li > a, .navbar-default .navbar-nav > li > span  {
325        color: rgb(0, 0, 0);
326                font-weight: 400;
327            }
328    .navbar-default .navbar-nav > li:hover > a,.navbar-default .navbar-nav > li > a:hover,.navbar-default .navbar-nav > li > a:active, .navbar-default .navbar-nav > li > a:focus {
329        color: rgb(156, 183, 212);
330    }
331    .navbar-default .navbar-nav > li {
332        font-family: 'Open Sans';
333    }
334    
335    
336
337    /* Footer Design */
338    .footer {
339        background-color: rgb(64, 64, 64);
340        display: block;
341    }
342    .footer, .footer_menu a,.footer_terms a,.footer_menu .content {
343        color: rgb(250, 250, 250);
344    }
345    .footer_menu a:hover, .footer_terms a:hover, .footer_menu a:focus, .footer_terms a:focus {
346        color: rgb(156, 183, 212);
347    }
348    .footer_menu .head {
349        color: rgb(255, 255, 255);
350    }
351    .btn_footer_get_listed {
352		background-color: rgb(156, 183, 212);
353        border: 1px solid rgb(156, 183, 212);
354        color: rgb(255, 255, 255)!important;
355    }
356    .btn_footer_get_listed:hover, .btn_footer_get_listed:focus{
357				background-color: rgba(156, 183, 212,0.95);        
358    }
359    
360    /* Homepage Design */
361        .homepage_settings h1, .homepage_settings h2, .homepage_map h1, .homepage_map h2 {
362        font-family: 'Open Sans';
363    }
364    .homepage_settings h1, .homepage_map h1 {
365        color: rgb(0, 0, 0);
366            font-weight: 600;
367            text-align: center;
368    }
369    .homepage_settings h2, .homepage_map h2 {
370        color: rgb(255, 255, 255);
371            font-weight: 400;
372            text-align: center;
373
374    }
375    .homepage_settings .search_box label {
376        color: rgb(0, 0, 0);
377    }
378    .btn_home_search, .search_box input[type=submit] {
379		background-color: rgb(88, 106, 120);
380        border: 1px solid rgb(88, 106, 120);
381        color: rgb(255, 255, 255);
382    }
383    .btn_home_search:hover, .btn_home_search:focus, .search_box input[type=submit]:hover, .search_box input[type=submit]:focus {
384		        background-color: rgba(88, 106, 120,0.97);        
385        color: rgb(255, 255, 255);
386    }
387	.homepage_settings .search_box {
388		
389				background-color: rgba( 255, 255, 255, 0.0);
390	}
391
392    /* Homepage Steps Module */
393    .homepage_steps {
394            background: none;
395        box-shadow: none;
396        padding: 0;
397                color: rgb(255, 255, 255);
398            }
399    .homepage_steps a.homepage_step_link,.homepage_steps a.homepage_step_link:hover,.homepage_steps a.homepage_step_link:active{
400        color: rgb(255, 255, 255)!important;
401    }
402    .homepage_steps .fa {
403        color: rgb(255, 255, 255);
404            background-color: rgba(255, 255, 255,0.075);
405    }
406	.homepage_steps h2 + p {
407        opacity: .6;
408	}
409
410    /* Blog Posts Slider Settings */
411    #myCarousel h2 a, .carousel-caption p,#myCarousel .list-group-item h2, #myCarousel li.list-group-item h4 {
412            color: rgb(250, 250, 250);
413        }
414    #myCarousel .list-group-item {
415            background-color: rgba(64, 64, 64,0.9);
416        border-color: rgba(64, 64, 64,0.80);
417    }
418    #myCarousel .carousel-caption {
419            background-color: rgba(64, 64, 64,0.8);
420    }
421    #myCarousel .list-group, #myCarousel .carousel-inner {
422            background-color: rgb(64, 64, 64)        }
423    #myCarousel .list-group .active, #myCarousel .list-group-item:hover {
424            background-color: rgb(64, 64, 64)        }
425    #myCarousel .list-group .active h2, #myCarousel .list-group-item:hover h2{
426            color: rgb(0, 139, 169);
427        }
428
429    /* Additional Settings */
430    .well blockquote {
431        background: rgb(255, 255, 255) none repeat scroll 0 0;
432        border-color: rgb(238, 238, 238);
433        color: rgb(41, 41, 41);
434        padding: 10px 20px;
435    }
436    .account-form-box form table tr td table {
437        background-color: transparent!important;
438        border: none!important;
439    }
440
441    .account-form-box form table tr td table td {
442        background-color: transparent!important;
443        color: rgb(41, 41, 41)!important;
444        border: none!important;
445    }
446    div.dataTables_length label, div.dataTables_filter label, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{
447        color: rgb(41, 41, 41)!important;
448    }
449	.table.dataTable > thead > tr > th, .table > thead > tr > th, .fr-view table th, .fr-view table tfoot td {
450				border-color: rgba(85, 85, 85,0.1);
451		background-color: rgb(238, 238, 238);
452		color: rgb(85, 85, 85);
453		font-weight:600;
454		border-left: none;
455		border-bottom-width: 1px;
456	}
457	.table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, table.dataTable.no-footer {
458				border-color: rgba(85, 85, 85,0.1);
459	}
460	.table > tfoot > tr > td:not(:last-child) {
461		border-right: 1px solid rgba(85, 85, 85,0.1);
462	}
463	table.dataTable.no-footer, table.dataTable {
464		border: 1px solid rgb(238, 238, 238)!important;
465	}
466	.table-view li:not(.table-display-about_me li, .froala-data li), .table-view .table-view-group > div {
467		border-top:1px solid rgb(238, 238, 238);
468	}
469	.table-view .table-view-group:last-child {
470		border-bottom:1px solid rgb(238, 238, 238);
471	}
472	table.dataTable tbody tr, .table-striped.dataTable, .table-striped, .fr-view .table-striped {
473		background-color: rgb(250, 250, 250)!important;
474	}
475	.table-striped.dataTable, .table-striped, .fr-view .table-striped {
476				border: 1px solid rgba(85, 85, 85,0.15);
477		border-collapse: separate;
478		overflow: hidden;
479	}
480	table#feature-body-datatable:has(.dropdown.open),table#digital-products-transactions:has(.dropdown.open), table#example:has(.dropdown.open) { 
481    	overflow: visible;
482	}
483	.table-striped.dataTable tbody > tr:nth-of-type(2n+1),.table-striped > tbody > tr:nth-of-type(2n+1) {
484				background-color: rgba(255, 255, 255,0.5)!important;
485	}
486	.nav-tabs, hr, .account-menu-title, .modal-header {
487		border-color: rgb(238, 238, 238);
488	}
489    .sidemenu_panel .list-group-item{
490        background-color: transparent!important;
491        color: rgb(41, 41, 41)!important;
492    }
493    .img-thumbnail {
494        background-color: rgb(250, 250, 250)!important;
495        border: 1px solid rgb(238, 238, 238);
496    }
497    .member_admin_sidemenu p, .member_admin_sidemenu h3 {
498        color: rgb(41, 41, 41)!important;
499    }
500    .close {
501        color: rgb(41, 41, 41);
502        opacity: 1;
503    }
504    .member_results_header h1, .content_w_sidebar.feature-search h1, .feature_results_header h1 {
505        font-size:34px;
506        display: block;
507    }
508    .member_results_header h2, .feature_results_header h2 {
509        font-size:28px;
510        display: block;
511    }
512    .homepage_settings {
513        padding-top: 70px;
514        padding-bottom: 90px;
515    }
516    @media (max-width: 768px) { .mobile_website_logo .visible-xs {display: block !important;}} 
517    @media only screen and (max-width: 768px) {
518                #website_logo {display: none;}
519                    .header-right-container .website-search, .header-right-container .list-social-links {display: none;}
520            .member-profile-header .favorite {float:none}
521    }
522    
523
524    @media only screen and (max-width: 1100px) {
525        }
526    .views > i.fa.activeView, .views > i.fa:hover {
527        background-color: rgb(41, 41, 41);
528        color: rgb(255, 255, 255);
529    }
530	.views > i.fa {
531		        background-color: rgba(41, 41, 41,0.1);
532		color: rgb(41, 41, 41);
533	}
534    .ui-rangeSlider-label {
535        background-color: rgb(228, 234, 242)!important;
536        color: rgb(0, 0, 0)!important;
537    }
538    .pricing_menu li .title {
539        background: rgb(88, 106, 120);
540        color: rgb(255, 255, 255);
541    }
542    p.account-tip{
543        color: rgb(41, 41, 41);
544    }
545    .circled_number {
546        background: rgb(0, 139, 169);
547        color: rgb(255, 255, 255);
548    }
549    .pic {
550            background-color: rgba(88, 106, 120,0.8);
551        color: rgb(255, 255, 255);
552        background-repeat: no-repeat;
553        background-position: center;
554        }
555    .pic .pic-caption {
556            background: linear-gradient(0deg, rgba(0, 0, 0, 0) 0%,rgba(88, 106, 120,0.85) 50%);
557        color: rgb(255, 255, 255);
558    }
559    .slick-prev-fa i, .slick-next-fa i{
560        color: rgb(88, 106, 120);
561    }
562    .module, .well, .tab-content, .nav-tabs>li.active>a, .nav-tabs>li.active>a:focus, .nav-tabs>li.active>a:hover, .nav-tabs>li>a:focus, .nav-tabs>li>a:hover, .nav-tabs.nav-justified>li.active>a, .nav-tabs.nav-justified>li.active>a:focus, .nav-tabs.nav-justified>li.active>a:hover, .nav-tab.nav-justified>li>a:focus, .nav-tabs.nav-justified>li>a:hover, .account-form-box,.account-form-box .module .module,.account-form-box .module .well,.account-form-box .well .well,.account-form-box .well .module,.module .module .module,.module .well .well,.module .module .well,.module .well .module,.well .well .well,.well .module .module,.well .well .module,.well .module .well, .froala-table.module, .froala-table td.module {
563        background-color: rgb(250, 250, 250);
564        border-color: rgb(238, 238, 238);
565        color: rgb(41, 41, 41);
566    }
567    .nav-pills > li.active a, .nav-pills > li > a:hover {
568        background-color: rgb(88, 106, 120)!important;
569        border-color: rgb(88, 106, 120)!important;
570        color: rgb(255, 255, 255)!important;
571    }
572    .sidemenu_panel .panel-heading {
573        color: rgb(41, 41, 41)!important;
574        background-color: rgb(250, 250, 250)!important;
575    }
576    .member-profile-tabs .nav-tabs > li:not(.active) > a, .login-register-tabs.nav-tabs > li:not(.active) > a, .nav-tabs > li:not(.active) > a {
577            background: rgba(250, 250, 250,0.5);
578        color:  #5f5f5f;
579    }
580    .member-profile-tabs .nav-tabs > li:not(.active) > a:hover, .login-register-tabs.nav-tabs > li:not(.active) > a:hover, .nav-tabs > li:not(.active) > a:hover {
581            background: rgba(250, 250, 250,1);
582        color:  rgb(41, 41, 41);
583    }
584    .author-snapshot .well:not(.well.bg-default) {
585        background-color: rgb(250, 250, 250)!important;
586        border-color: rgb(238, 238, 238)!important;
587        color: rgb(41, 41, 41)!important;
588    }
589    .nav-tabs>li>a, .nav-pills>li>a {
590        font-weight: 600;
591    }
592        .module .help-inline,.module .help-block,.well .help-inline,.well .help-block,.account-form-box .help-inline,.account-form-box .help-block,.account-form-box p.account-tip{
593            color: rgba(41, 41, 41,0.5);
594    }
595    #service_areas_table td,#service_areas_table_wrapper label, #service_areas_table_info, #service_areas_table_paginate > a {
596        color: rgb(41, 41, 41) !important;
597    }
598    .popover {
599        background-color: rgb(250, 250, 250);
600        border-color: rgb(250, 250, 250);
601        padding:0;
602        text-align:left;
603    }
604    .popover-title, .popover-content {
605        background-color: rgb(250, 250, 250);
606        color: rgb(41, 41, 41);
607        border-color: rgb(250, 250, 250);
608        text-align:left;
609    }
610    .popover-content {
611    		background-color: rgba(41, 41, 41,.05);
612		border-radius: 4px;
613		transform: translate(-1px, -1px);
614		width: calc(100% + 2px);
615		margin-bottom: -2px;
616    }
617    .popover.left > .arrow::after {
618        border-left-color: rgb(250, 250, 250)!important;
619    }
620    .popover.right > .arrow::after {
621        border-right-color: rgb(250, 250, 250)!important;
622    }
623    .popover.bottom > .arrow::after {
624        border-bottom-color: rgb(250, 250, 250)!important;
625    }
626    .popover.top > .arrow::after {
627        border-top-color: rgb(250, 250, 250)!important;
628    }
629    .progress, .table-view .table-view-group:nth-child(2n-1),.tab-content .well, .tab-content .module,#account-tabs .well,#account-tabs .module,.account-form-box .module,.account-form-box .well,.module .module,.well .well,.module .well,.well .module{
630        background-color: rgb(255, 255, 255);
631        color: rgb(41, 41, 41);
632    }
633    .module h1, .module h2, .module h3, .module h4, .module h5 {
634        color: rgb(62, 62, 62);
635    }
636    .module p:not(.fr-box.fr-basic .fr-element p) {
637        color: rgb(41, 41, 41);
638    }
639    .pagination>.active>a {
640            border-color: rgba(0, 0, 0,0.2);
641    }
642    .pagination>.active>a {
643        color: rgb(0, 0, 0);
644    }
645    .pagination > .active > a:hover, .pagination > .active > a:focus {
646            border-color: rgba(0, 0, 0,0.2);
647        background-color: rgb(228, 234, 242);
648        color: rgb(0, 0, 0);
649    }
650    .pagination > li > a {
651        color: rgb(228, 234, 242);
652            border-color: rgba(228, 234, 242,0.2);
653        background-color: rgb(0, 0, 0);
654    }
655    .pagination > li > a:focus, .pagination > li > a:hover, .pagination > li > span:focus, .pagination > li > span:hover {
656        background-color: rgb(228, 234, 242);
657        border-color: rgb(228, 234, 242);
658        color: rgb(0, 0, 0);
659    }
660
661    .nav-pills.nav-wizard > li a, .nav-pills.nav-wizard > li a:hover{
662        background-color: rgb(241, 184, 49)!important;
663        color: rgb(255, 255, 255)!important;
664    }
665    .member_wizard2 li.incomplete a, .member_wizard2 li.incomplete a:hover {
666        background-color: rgb(220, 88, 52)!important;
667        border-color: rgb(220, 88, 52);
668        color: rgb(255, 255, 255);
669    }
670    .nav-pills.nav-wizard > li.active a, .nav-pills.member_wizard > li.active:hover a {
671        background-color: rgb(0, 139, 169)!important;
672        color: rgb(255, 255, 255)!important;
673    }
674    .member_wizard2 li.completed a, .member_wizard2 li.completed a:hover {
675        background-color: rgb(156, 210, 203)!important;
676        border-color: rgb(156, 210, 203);
677        color: rgb(255, 255, 255);
678    }
679
680        .nav-pills.nav-wizard > li.active .nav-arrow, .nav-pills.nav-wizard > li.active:hover .nav-arrow {
681        border-color: transparent transparent transparent rgb(0, 139, 169)!important;
682    }
683    .nav-pills.nav-wizard > li.active .nav-wedge, .nav-pills.nav-wizard > li.active:hover .nav-wedge{
684        border-color: rgb(0, 139, 169) rgb(0, 139, 169) rgb(0, 139, 169) transparent!important;
685    }
686    
687        li.completed .nav-wedge, .nav-pills.nav-wizard > li.completed:hover .nav-wedge {
688        border-color: rgb(73, 75, 104) rgb(73, 75, 104) rgb(73, 75, 104) transparent!important;
689    }
690    
691        li.incomplete .nav-wedge, .nav-pills.nav-wizard > li.incomplete:hover .nav-wedge {
692        border-color: rgb(241, 184, 49) rgb(241, 184, 49) rgb(241, 184, 49) transparent!important;
693    }
694    
695    .nav-pills.member_wizard > li.completed a, .nav-pills.member_wizard > li.completed a:hover {
696        background-color: rgb(73, 75, 104)!important;
697        color: rgb(255, 255, 255)!important;
698    }
699
700    .member_wizard2 li {
701        color: rgb(255, 255, 255);
702        border-right: 10px solid rgb(255, 255, 255);
703    }
704
705        li.completed .nav-arrow, .nav-pills.nav-wizard > li.completed:hover .nav-arrow {
706        border-color: transparent transparent transparent rgb(73, 75, 104)!important;
707    }
708    
709        li.incomplete .nav-arrow, .nav-pills.nav-wizard > li.incomplete:hover .nav-arrow{
710        border-color: transparent transparent transparent rgb(241, 184, 49)!important;
711    }
712    
713    /* Default Colors */
714    .btn-primary, .btn-primary.disabled, .btn-primary.disabled.active, .btn-primary.disabled.focus, .btn-primary.disabled:active, .btn-primary.disabled:focus, .btn-primary.disabled:hover, .btn-primary[disabled], .btn-primary[disabled].active, .btn-primary[disabled].focus, .btn-primary[disabled]:active, .btn-primary[disabled]:focus, .btn-primary[disabled]:hover, fieldset[disabled] .btn-primary, fieldset[disabled] .btn-primary.active, fieldset[disabled] .btn-primary.focus, fieldset[disabled] .btn-primary:active, fieldset[disabled] .btn-primary:focus, fieldset[disabled] .btn-primary:hover, .btn.dropdown-toggle.btn-primary,.navbar-default .navbar-nav > li > a.btn-primary, .navbar-default .navbar-nav > li > span.btn-primary,.mobile-main-menu .sidebar-nav li a.btn-primary, .mobile-main-menu .sidebar-nav li span.btn-primary {
715    	background-color: rgb(88, 106, 120);
716        border-color: rgb(88, 106, 120);
717        color: rgb(255, 255, 255);
718    }
719    .btn-primary:hover, .btn-primary:focus, .btn-primary:active,.btn-primary:active:focus, .btn-primary:active:hover, .nav > li > a.btn-primary:focus, .nav > li > a.btn-primary:hover,.btn-primary.active,.open > .dropdown-toggle.btn-primary, .btn-primary.active.focus, .btn-primary.active:focus, .btn-primary.active:hover, .btn-primary:active.focus, .open>.dropdown-toggle.btn-primary:hover, .open>.dropdown-toggle.btn-primary:focus, .open>.dropdown-toggle.btn-primary.focus,a.bg-primary:focus,a.bg-primary:hover, .panel-primary .panel-heading, .btn.dropdown-toggle.btn-primary:hover,.upload-form-field,.upload-form-field:hover,.upload-form-field:active:focus,.upload-form-field:before, .label-primary[href]:focus, .label-primary[href]:hover {        
720		        background-color: rgba(88, 106, 120,0.95);
721        border-color: rgb(88, 106, 120);
722        color: rgb(255, 255, 255);
723    }
724	.panel-primary {
725        background-color: #e6e9eb;
726		border-color: rgb(88, 106, 120);
727	}
728    .bg-primary,.progress-bar-primary,.module p.bg-primary,.label-primary,.badge-primary,.pricing_menu .title.bg-primary, .
728well .well.bg-primary, .module .well.bg-primary, .well .module.bg-primary,.tab-content .module.bg-primary,.tab-content .well.bg-primary {
729        background-color: rgb(88, 106, 120);
730        color: rgb(255, 255, 255);
731    }
732    .bg-primary .badge {
733        background-color:rgb(255, 255, 255);
734        color: rgb(88, 106, 120);
735    }
736    .btn-primary.btn-outline {
737        background: transparent;
738        color: rgb(88, 106, 120);
739        transition: all 250ms ease-in-out 0ms;
740    }
741    .btn-primary.btn-outline:hover {
742            background: rgba(88, 106, 120,0.1);
743		color: rgb(88, 106, 120);
744    }
745    .alert-primary {
746            background-color:rgba(88, 106, 120,0.7);
747        border-color:rgba(88, 106, 120,0.2);
748            color: rgba(255, 255, 255,0.9);
749    }
750	.alert-primary-subtle, .label-primary-subtle, .badge-primary-subtle {
751		background-color: #dee1e4;
752		border-color: #dee1e4;
753		color: rgb(88, 106, 120);
754		color: color-mix(in srgb, rgb(88, 106, 120) 50%, rgb(41, 41, 41) 50%);
755	}
756    .btn.dropdown-toggle.btn-primary *, .btn-primary a {
757        color: rgb(255, 255, 255);
758    }
759    .text-primary{
760        color: rgb(88, 106, 120);
761    }
762    .btn-info, .btn-info.disabled, .btn-info.disabled.active, .btn-info.disabled.focus, .btn-info.disabled:active, .btn-info.disabled:focus, .btn-info.disabled:hover, .btn-info[disabled], .btn-info[disabled].active, .btn-info[disabled].focus, .btn-info[disabled]:active, .btn-info[disabled]:focus, .btn-info[disabled]:hover, fieldset[disabled] .btn-info, fieldset[disabled] .btn-info.active, fieldset[disabled] .btn-info.focus, fieldset[disabled] .btn-info:active, fieldset[disabled] .btn-info:focus, fieldset[disabled] .btn-info:hover, .btn.dropdown-toggle.btn-info,.navbar-default .navbar-nav > li > a.btn-info, .navbar-default .navbar-nav > li > span.btn-info,.mobile-main-menu .sidebar-nav li a.btn-info, .mobile-main-menu .sidebar-nav li span.btn-info {
763		background-color: rgb(88, 106, 120);
764        border-color: rgb(88, 106, 120);
765        color: rgb(255, 255, 255);
766    }
767    .btn-info:hover, .btn-info:focus, .btn-info:active,.btn-info:active:focus, .btn-info:active:hover, .nav > li > a.btn-info:focus, .nav > li > a.btn-info:hover,.btn-info.active,.open > .dropdown-toggle.btn-info, .btn-info.active.focus, .btn-info.active:focus, .btn-info.active:hover, .btn-info:active.focus, .open>.dropdown-toggle.btn-info:hover, .open>.dropdown-toggle.btn-info:focus, .open>.dropdown-toggle.btn-info.focus,a.bg-info:focus,a.bg-info:hover, .panel-info .panel-heading, .btn.dropdown-toggle.btn-info:hover, .label-info[href]:focus, .label-info[href]:hover {
768		        background-color: rgba(88, 106, 120,0.95);
769        border-color: rgb(88, 106, 120);
770        color: rgb(255, 255, 255);
771    }
772	.panel-info {
773        background-color: #e6e9eb;
774		border-color: rgb(88, 106, 120);
775	}
776    .bg-info,.progress-bar-info,.module p.bg-info,.label-info,.badge-info,.pricing_menu .title.bg-info, .well .well.bg-info, .module .well.bg-info, .well .module.bg-info,.tab-content .module.bg-info,.tab-content .well.bg-info {
777        background-color: rgb(88, 106, 120);
778        color: rgb(255, 255, 255);
779    }
780    .bg-info .badge {
781        background-color:rgb(255, 255, 255);
782        color: rgb(88, 106, 120);
783    }
784    .btn-info.btn-outline {
785        background: transparent;
786        color: rgb(88, 106, 120);
787        transition: all 250ms ease-in-out 0ms;
788    }
789    .btn-info.btn-outline:hover {
790            background: rgba(88, 106, 120,0.1);
791		color: rgb(88, 106, 120);
792    }
793    .alert-info {
794            background-color:rgba(88, 106, 120,0.7);
795        border-color:rgba(88, 106, 120,0.2);
796            color: rgba(255, 255, 255,0.9);
797    }
798	.alert-info-subtle, .label-info-subtle, .badge-info-subtle {
799		background-color: #dee1e4;
800		border-color: #dee1e4;
801		color: rgb(88, 106, 120);
802		color: color-mix(in srgb, rgb(88, 106, 120) 50%, rgb(41, 41, 41) 50%);
803	}
804    .btn.dropdown-toggle.btn-info *, .btn-info a {
805        color: rgb(255, 255, 255);
806    }
807    .text-info{
808        color: rgb(88, 106, 120);
809    }
810    .btn-success, .btn-success.disabled, .btn-success.disabled.active, .btn-success.disabled.focus, .btn-success.disabled:active, .btn-success.disabled:focus, .btn-success.disabled:hover, .btn-success[disabled], .btn-success[disabled].active, .btn-success[disabled].focus, .btn-success[disabled]:active, .btn-success[disabled]:focus, .btn-success[disabled]:hover, fieldset[disabled] .btn-success, fieldset[disabled] .btn-success.active, fieldset[disabled] .btn-success.focus, fieldset[disabled] .btn-success:active, fieldset[disabled] .btn-success:focus, fieldset[disabled] .btn-success:hover, .btn.dropdown-toggle.btn-success,.navbar-default .navbar-nav > li > a.btn-success, .navbar-default .navbar-nav > li > span.btn-success,.mobile-main-menu .sidebar-nav li a.btn-success, .mobile-main-menu .sidebar-nav li span.btn-success {
811		background-color: rgb(156, 210, 203);
812        border-color: rgb(156, 210, 203);
813        color: rgb(255, 255, 255);
814    }
815    .btn-success:hover, .btn-success:focus, .btn-success:active,.btn-success:active:focus, .btn-success:active:hover, .nav > li > a.btn-success:focus, .nav > li > a.btn-success:hover,.btn-success.active,.open > .dropdown-toggle.btn-success, .btn-success.active.focus, .btn-success.active:focus, .btn-success.active:hover, .btn-success:active.focus, .open>.dropdown-toggle.btn-success:hover, .open>.dropdown-toggle.btn-success:focus, .open>.dropdown-toggle.btn-success.focus,a.bg-success:focus,a.bg-success:hover, .panel-success .panel-heading, .btn.dropdown-toggle.btn-success:hover, .label-success[href]:focus, .label-success[href]:hover {        
816		        background-color: rgba(156, 210, 203,0.95);
817        border-color: rgb(156, 210, 203);
818        color: rgb(255, 255, 255);
819    }
820    .panel-success {
821        background-color: #f0f8f7;
822        border-color: rgb(156, 210, 203);
823    }
824    .bg-success,.progress-bar-success,.module p.bg-success,.label-success,.badge-success,.pricing_menu .title.bg-success, .well .well.bg-success, .module .well.bg-success, .well .module.bg-success,.tab-content .module.bg-success,.tab-content .well.bg-success {
825        background-color: rgb(156, 210, 203);
826        color: rgb(255, 255, 255);
827    }
828    .bg-success .badge {
829        background-color: rgb(255, 255, 255);
830        color: rgb(156, 210, 203);
831    }
832    .btn-success.btn-outline {
833        background: transparent;
834        color: rgb(156, 210, 203);
835        transition: all 250ms ease-in-out 0ms;
836    }
837    .btn-success.btn-outline:hover {
838            background: rgba(156, 210, 203,0.1);
839		color: rgb(156, 210, 203);
840    }
841    .alert-success {
842            background-color:rgba(156, 210, 203,0.7);
843        border-color:rgba(156, 210, 203,0.2);
844            color: rgba(255, 255, 255,0.9);
845    }
846	.alert-success-subtle, .label-success-subtle, .badge-success-subtle {
847		background-color: #ebf6f5;
848		border-color: #ebf6f5;
849		color: rgb(156, 210, 203);
850		color: color-mix(in srgb, rgb(156, 210, 203) 50%, rgb(41, 41, 41) 50%);
851	}
852    .btn.dropdown-toggle.btn-success *, .btn-success a {
853        color: rgb(255, 255, 255);
854    }
855    .text-success{
856        color: rgb(156, 210, 203);
857    }
858    .btn-warning, .btn-warning.disabled, .btn-warning.disabled.active, .btn-warning.disabled.focus, .btn-warning.disabled:active, .btn-warning.disabled:focus, .btn-warning.disabled:hover, .btn-warning[disabled], .btn-warning[disabled].active, .btn-warning[disabled].focus, .btn-warning[disabled]:active, .btn-warning[disabled]:focus, .btn-warning[disabled]:hover, fieldset[disabled] .btn-warning, fieldset[disabled] .btn-warning.active, fieldset[disabled] .btn-warning.focus, fieldset[disabled] .btn-warning:active, fieldset[disabled] .btn-warning:focus, fieldset[disabled] .btn-warning:hover, .btn.dropdown-toggle.btn-warning,.navbar-default .navbar-nav > li > a.btn-warning, .navbar-default .navbar-nav > li > span.btn-warning,.mobile-main-menu .sidebar-nav li a.btn-warning, .mobile-main-menu .sidebar-nav li span.btn-warning {
859		background-color: rgb(220, 88, 52);
860        border-color: rgb(220, 88, 52);
861        color: rgb(255, 255, 255);
862    }
863    .btn-warning:hover, .btn-warning:focus, .btn-warning:active,.btn-warning:active:focus, .btn-warning:active:hover, .nav > li > a.btn-warning:focus, .nav > li > a.btn-warning:hover,.btn-warning.active,.open > .dropdown-toggle.btn-warning, .btn-warning.active.focus, .btn-warning.active:focus, .btn-warning.active:hover, .btn-warning:active.focus, .open>.dropdown-toggle.btn-warning:hover, .open>.dropdown-toggle.btn-warning:focus, .open>.dropdown-toggle.btn-warning.focus,a.bg-warning:focus,a.bg-warning:hover, .panel-warning .panel-heading, .btn.dropdown-toggle.btn-warning:hover, .label-warning[href]:focus, .label-warning[href]:hover {        
864		        background-color: rgba(220, 88, 52,0.95);
865        border-color: rgb(220, 88, 52);
866        color: rgb(255, 255, 255);
867    }
868	.panel-warning {
869        background-color: #fae6e1;
870		border-color: rgb(220, 88, 52);
871	}
872    .bg-warning,.progress-bar-warning,.module p.bg-warning,.label-warning,.badge-warning,.pricing_menu .title.bg-warning, .well .well.bg-warning, .module .well.bg-warning, .well .module.bg-warning,.tab-content .module.bg-warning,.tab-content .well.bg-warning {
873        background-color: rgb(220, 88, 52);
874        color: rgb(255, 255, 255);
875    }
876    .bg-warning .badge {
877        background-color: rgb(255, 255, 255);
878        color: rgb(220, 88, 52);
879    }
880    .btn-warning.btn-outline {
881        background: transparent;
882        color: rgb(220, 88, 52);
883        transition: all 250ms ease-in-out 0ms;
884    }
885    .btn-warning.btn-outline:hover {
886            background: rgba(220, 88, 52,0.1);
887		color: rgb(220, 88, 52);
888    }
889    .alert-warning {
890            background-color:rgba(220, 88, 52,0.7);
891        border-color:rgba(220, 88, 52,0.2);
892            color: rgba(255, 255, 255,0.9);
893    }
894	.alert-warning-subtle, .label-warning-subtle, .badge-warning-subtle {
895		background-color: #f8ded6;
896		border-color: #f8ded6;
897		color: rgb(220, 88, 52);
898		color: color-mix(in srgb, rgb(220, 88, 52) 50%, rgb(41, 41, 41) 50%);
899	}
900    .btn.dropdown-toggle.btn-warning *, .btn-warning a {
901        color: rgb(255, 255, 255);
902    }
903    .text-warning {
904        color: rgb(220, 88, 52);
905    }
906    .btn-danger, .btn-danger.disabled, .btn-danger.disabled.active, .btn-danger.disabled.focus, .btn-danger.disabled:active, .btn-danger.disabled:focus, .btn-danger.disabled:hover, .btn-danger[disabled], .btn-danger[disabled].active, .btn-danger[disabled].focus, .btn-danger[disabled]:active, .btn-danger[disabled]:focus, .btn-danger[disabled]:hover, fieldset[disabled] .btn-danger, fieldset[disabled] .btn-danger.active, fieldset[disabled] .btn-danger.focus, fieldset[disabled] .btn-danger:active, fieldset[disabled] .btn-danger:focus, fieldset[disabled] .btn-danger:hover, .btn.dropdown-toggle.btn-danger,.navbar-default .navbar-nav > li > a.btn-danger, .navbar-default .navbar-nav > li > span.btn-danger,.mobile-main-menu .sidebar-nav li a.btn-danger, .mobile-main-menu .sidebar-nav li span.btn-danger {
907		background-color: rgb(124, 49, 33);
908        border-color: rgb(124, 49, 33);
909        color: rgb(255, 255, 255);
910    }
911    .btn-danger:hover, .btn-danger:focus, .btn-danger:active,.btn-danger:active:focus, .btn-danger:active:hover, .nav > li > a.btn-danger:focus, .nav > li > a.btn-danger:hover,.btn-danger.active,.open > .dropdown-toggle.btn-danger, .btn-danger.active.focus, .btn-danger.active:focus, .btn-danger.active:hover, .btn-danger:active.focus, .open>.dropdown-toggle.btn-danger:hover, .open>.dropdown-toggle.btn-danger:focus, .open>.dropdown-toggle.btn-danger.focus,a.bg-danger:focus,a.bg-danger:hover, .panel-danger .panel-heading, .btn.dropdown-toggle.btn-danger:hover, .label-danger[href]:focus, .label-danger[href]:hover {        
912		        background-color: rgba(124, 49, 33,0.95);
913        border-color: rgb(124, 49, 33);
914        color: rgb(255, 255, 255);
915    }
916    .has-error .form-control {
917        border-color: rgb(124, 49, 33);
918    }
919    .has-error .help-block:not(.form-field-help-block), .has-error ~ .help-block:not(.form-field-help-block),.has-error .help-block:not(.form-field-help-block) a, .has-error ~ .help-block:not(.form-field-help-block) a {
920        background: rgb(124, 49, 33);
921        color: rgb(255, 255, 255) !important;
922    }
923    .has-error .checkbox, .has-error .checkbox-inline, .has-error .control-label, .has-error .help-block, .has-error .radio, .has-error .radio-inline, .has-error.checkbox label, .has-error.checkbox-inline label, .has-error.radio label, .has-error.radio-inline label {
924        color: rgb(124, 49, 33);
925    }
926	.panel-danger {
927        background-color: #ebe0de;
928		border-color: rgb(124, 49, 33);
929	}
930    .bg-danger,.progress-bar-danger,.module p.bg-danger,.label-danger,.badge-danger,.pricing_menu .title.bg-danger, .well .well.bg-danger, .module .well.bg-danger, .well .module.bg-danger,.tab-content .module.bg-danger,.tab-content .well.bg-danger {
931        background-color: rgb(124, 49, 33);
932        color: rgb(255, 255, 255);
933    }
934    .bg-danger .badge {
935        background-color: rgb(255, 255, 255);
936        color: rgb(124, 49, 33);
937    }
938    .btn-danger.btn-outline {
939        background: transparent;
940        color: rgb(124, 49, 33);
941        transition: all 250ms ease-in-out 0ms;
942    }
943    .btn-danger.btn-outline:hover {
944            background: rgba(124, 49, 33,0.1);
945		color: rgb(124, 49, 33);
946    }
947    .alert-danger {
948            background-color:rgba(124, 49, 33,0.7);
949        border-color:rgba(124, 49, 33,0.2);
950            color: rgba(255, 255, 255,0.9);
951    }
952	.alert-danger-subtle, .label-danger-subtle, .badge-danger-subtle {
953		background-color: #e5d6d3;
954		border-color: #e5d6d3;
955		color: rgb(124, 49, 33);
956		color: color-mix(in srgb, rgb(124, 49, 33) 50%, rgb(41, 41, 41) 50%);
957	}	
958    .btn.dropdown-toggle.btn-danger *, .btn-danger a {
959        color: rgb(255, 255, 255);
960    }
961    .text-danger{
962        color: rgb(124, 49, 33);
963    }
964    .btn-default, .tags a, .btn-default.disabled, .btn-default.disabled.active, .btn-default.disabled.focus, .btn-default.disabled:active, .btn-default.disabled:focus, .btn-default.disabled:hover, .btn-default[disabled], .btn-default[disabled].active, .btn-default[disabled].focus, .btn-default[disabled]:active, .btn-default[disabled]:focus, .btn-default[disabled]:hover, fieldset[disabled] .btn-default, fieldset[disabled] .btn-default.active, fieldset[disabled] .btn-default.focu
964s, fieldset[disabled] .btn-default:active, fieldset[disabled] .btn-default:focus, fieldset[disabled] .btn-default:hover, .btn.dropdown-toggle.btn-default, #popover .mini_profile_pic,.navbar-default .navbar-nav > li > a.btn-default, .navbar-default .navbar-nav > li > span.btn-default,.mobile-main-menu .sidebar-nav li a.btn-default, .mobile-main-menu .sidebar-nav li span.btn-default {
965		background-color: rgb(238, 238, 238);
966        border-color: rgb(238, 238, 238);
967        color: rgb(85, 85, 85);
968    }
969    .btn-default:hover, .btn-default:focus, .btn-default:active,.btn-default:active:focus, .btn-default:active:hover,.tags a:hover, .nav > li > a.btn-default:focus, .nav > li > a.btn-default:hover,.btn-default.active,.open > .dropdown-toggle.btn-default, .btn-default.active.focus, .btn-default.active:focus, .btn-default.active:hover, .btn-default:active.focus, .open>.dropdown-toggle.btn-default:hover, .open>.dropdown-toggle.btn-default:focus, .open>.dropdown-toggle.btn-default.focus,a.bg-default:focus,a.bg-default:hover, .panel-default .panel-heading, .member_accounts .panel-default > .panel-heading, .panel-default.categories-panel .panel-heading, .btn.dropdown-toggle.btn-default:hover, #popover .mini_profile_pic, .label-default[href]:focus, .label-default[href]:hover {        
970		        background-color: rgba(238, 238, 238,0.95);
971        border-color: rgb(238, 238, 238);
972        color: rgb(85, 85, 85);
973    }
974    .sidemenu_panel .panel-default .panel_heading {
975        background-color: rgb(238, 238, 238)!important;
976        border-color: rgb(238, 238, 238)!important;
977        color: rgb(85, 85, 85)!important;
978    }
979	.panel-default .panel-heading, .member_accounts .panel-default > .panel-heading, .panel-default.categories-panel .panel-heading {
980				
981		box-shadow: 0 0 1000px 0 rgba(85, 85, 85,0.02) inset;
982		background-color: rgb(238, 238, 238);
983	}
984    .panel-default, .member_accounts .panel-default {
985			
986        background-color: rgba(238, 238, 238,0.15);
987		border-color: #fdfdfd;
988		border-color: color-mix(in srgb,rgb(238, 238, 238) 100%,rgba(238, 238, 238) 10%);
989	}
990	.member_admin_sidemenu .panel-default {
991		background-color: transparent;
992	}
993    .bg-default,.progress-bar-default,.module p.bg-default,.label-default,.badge-default,.pricing_menu .title.bg-default, .well .well.bg-default, .module .well.bg-default, .well .module.bg-default,.tab-content .module.bg-default,.tab-content .well.bg-default {
994        background-color: rgb(238, 238, 238);
995        color: rgb(85, 85, 85);
996    }
997    .bg-default .badge {
998        background-color: rgb(85, 85, 85);
999        color: rgb(238, 238, 238);
1000    }
1001    .btn-default.btn-outline {
1002        background: transparent;
1003        color: rgb(238, 238, 238);
1004        transition: all 250ms ease-in-out 0ms;
1005    }
1006    .btn-default.btn-outline:hover {
1007            background: rgba(238, 238, 238,0.1);
1008		color: rgb(238, 238, 238);
1009    }
1010	.alert-default {
1011		background-color:rgb(238, 238, 238);
1012		border-color:rgb(238, 238, 238);
1013		color: rgb(85, 85, 85);
1014	}
1015	.alert-default-subtle, .label-default-subtle, .badge-default-subtle {
1016				background-color:rgba(238, 238, 238,0.5);
1017		border-color: rgba(238, 238, 238,0.5);
1018		color: rgb(85, 85, 85);
1019		color: color-mix(in srgb, rgb(85, 85, 85) 50%, rgb(41, 41, 41) 50%);
1020	}	
1021    .btn.dropdown-toggle.btn-default *, .btn-default a {
1022        color: rgb(85, 85, 85);
1023    }
1024    .text-default{
1025        color: rgb(238, 238, 238);
1026    }
1027    .btn-secondary, .btn.dropdown-toggle.btn-secondary,.navbar-default .navbar-nav > li > a.btn-secondary, .navbar-default .navbar-nav > li > span.btn-secondary,.mobile-main-menu .sidebar-nav li a.btn-secondary, .mobile-main-menu .sidebar-nav li span.btn-secondary {
1028		background-color: rgb(41, 41, 41);
1029        border: 1px solid rgb(41, 41, 41);
1030        color: rgb(255, 255, 255);
1031    }
1032    .btn-secondary:hover, .btn-secondary:focus, .btn-secondary:active,.btn-secondary:active:focus, .btn-secondary:active:hover, .nav > li > a.btn-secondary:focus, .nav > li > a.btn-secondary:hover,.btn-secondary.active,.open > .dropdown-toggle.btn-secondary, .btn-secondary.active.focus, .btn-secondary.active:focus, .btn-secondary.active:hover, .btn-secondary:active.focus, .open>.dropdown-toggle.btn-secondary:hover, .open>.dropdown-toggle.btn-secondary:focus, .open>.dropdown-toggle.btn-secondary.focus,a.bg-secondary:focus,a.bg-secondary:hover,.btn.dropdown-toggle.btn-secondary:hover, .panel-secondary .panel-heading, .label-secondary[href]:focus, .label-secondary[href]:hover {        
1033		        background-color: rgba(41, 41, 41,0.95);
1034        border-color: rgb(41, 41, 41);
1035        color: rgb(255, 255, 255);
1036    }
1037    .bg-secondary,.progress-bar-secondary,.module p.bg-secondary,.module p.bg-secondary:not(.fr-box.fr-basic .fr-element p),.label-secondary,.badge-secondary,.pricing_menu .title.bg-secondary, .well .well.bg-secondary, .module .well.bg-secondary, .well .module.bg-secondary,.tab-content .module.bg-secondary,.tab-content .well.bg-secondary {
1038        background-color: rgb(41, 41, 41);
1039        color: rgb(255, 255, 255);
1040    }
1041    .bg-secondary .badge {
1042        background-color:rgb(255, 255, 255);
1043        color: rgb(41, 41, 41);
1044    }
1045    .btn-secondary.btn-outline {
1046        background: transparent;
1047        color: rgb(41, 41, 41);
1048        transition: all 250ms ease-in-out 0ms;
1049    }
1050    .btn-secondary.btn-outline:hover {
1051            background: rgba(41, 41, 41,0.1);
1052		color: rgb(41, 41, 41);
1053    }
1054	.panel-secondary {
1055        background-color: #dfdfdf;
1056		border-color: rgb(41, 41, 41);
1057	}
1058	.alert-secondary {
1059		background-color:rgb(41, 41, 41);
1060		border-color:rgb(41, 41, 41);
1061		color: rgb(255, 255, 255);
1062	}
1063	.alert-secondary-subtle, .label-secondary-subtle, .badge-secondary-subtle {
1064				background-color:rgba(41, 41, 41,0.8);
1065		border-color: rgba(41, 41, 41,0.5);
1066		color: rgb(255, 255, 255);
1067	}
1068	.btn-outline {
1069		-webkit-backdrop-filter: blur(5px);
1070		backdrop-filter: blur(5px);
1071	}
1072	.btn-body, .btn-body.disabled, .btn-body.disabled.active, .btn-body.disabled.focus, .btn-body.disabled:active, .btn-body.disabled:focus, .btn-body.disabled:hover, .btn-body[disabled], .btn-body[disabled].active, .btn-body[disabled].focus, .btn-body[disabled]:active, .btn-body[disabled]:focus, .btn-body[disabled]:hover, fieldset[disabled] .btn-body, fieldset[disabled] .btn-body.active, fieldset[disabled] .btn-body.focus, fieldset[disabled] .btn-body:active, fieldset[disabled] .btn-body:focus, fieldset[disabled] .btn-body:hover, .btn.dropdown-toggle.btn-body,.navbar-default .navbar-nav > li > a.btn-body, .navbar-default .navbar-nav > li > span.btn-body,.mobile-main-menu .sidebar-nav li a.btn-body, .mobile-main-menu .sidebar-nav li span.btn-body {
1073		background-color: rgb(255, 255, 255);
1074		border: 1px solid rgb(255, 255, 255);
1075		color: rgb(41, 41, 41);
1076	}
1077	.btn-body:hover, .btn-body:focus, .btn-body:active,.btn-body:active:focus, .btn-body:active:hover, .nav > li > a.btn-body:focus, .nav > li > a.btn-body:hover,.btn-body.active,.open > .dropdown-toggle.btn-body, .btn-body.active.focus, .btn-body.active:focus, .btn-body.active:hover, .btn-body:active.focus, .open>.dropdown-toggle.btn-body:hover, .open>.dropdown-toggle.btn-body:focus, .open>.dropdown-toggle.btn-body.focus,a.bg-body:focus,a.bg-body:hover, .panel-body .panel-heading, .btn.dropdown-toggle.btn-body:hover, .label-body[href]:focus, .label-body[href]:hover {        
1078				background-color: rgba(255, 255, 255,0.95);
1079		border: 1px solid rgb(255, 255, 255);
1080		color: rgb(41, 41, 41);
1081	}	
1082	.btn.btn-body.dropdown-toggle * {
1083		color: rgb(41, 41, 41)	
1084	}
1085	.btn-body.dropdown-toggle + ul li, .daterangepicker .ranges {
1086		color: #333;
1087	}
1088    .bg-body {
1089        background: rgb(255, 255, 255);
1090        color: rgb(41, 41, 41);
1091    }
1092    .bg-content-box {
1093        background: rgb(250, 250, 250);
1094        color: rgb(41, 41, 41);
1095    }
1096    .bg-content-box-border {
1097        background: rgb(238, 238, 238);
1098    }
1099    .btn.dropdown-toggle.btn-secondary *, .btn-secondary a {
1100        color: rgb(255, 255, 255);
1101    }
1102    .text-secondary {
1103        color: rgb(41, 41, 41);
1104    }
1105	.text-body {
1106		color: rgb(255, 255, 255);
1107	}
1108    .feature-post #post-content .alert-secondary.btn-block, .feature-search .img_section .alert-secondary.btn-block, .search_result .img_section  .alert-secondary {
1109		border-radius: 10px;
1110        background-color: rgba(41, 41, 41,0.2);
1111    }
1112
1113    /* Footer Newsletter Row */
1114    .newsletter_row .alert {
1115        color: rgb(255, 255, 255);
1116    }
1117    .newsletter_row {
1118        background-color: rgb(0, 0, 0);
1119        color: rgb(255, 255, 255);
1120    }
1121    .newsletter_row input[type="submit"],.newsletter_footer_button {
1122            background-color: rgba(88, 106, 120,0.97);
1123        color: rgb(255, 255, 255);
1124        border-color: rgb(88, 106, 120);
1125    }
1126    .newsletter_row input[type="submit"]:hover,.newsletter_row input[type="submit"]:focus,.newsletter_footer_button:hover,.newsletter_footer_button:focus {
1127        background-color: rgb(88, 106, 120);
1128        color: rgb(255, 255, 255);
1129    }
1130    .newsletter_button_left {
1131            border-right: 1px solid rgba(255, 255, 255,0.2);
1132    }
1133    .newsletter_button_right {
1134        border-left: 1px solid rgba(255, 255, 255,0.2);
1135    }
1136    .newsletter_row small.help-block {
1137        background: rgb(255, 255, 255);
1138        margin-top: -5px;
1139        float: left;
1140        padding: 8px;
1141        border-radius: 1px;
1142        color: rgb(0, 0, 0);
1143        text-transform: capitalize;
1144    }
1145    .newsletter_row .has-success .checkbox,.newsletter_row .has-error .checkbox{
1146        color: rgb(255, 255, 255);
1147    }
1148    @media only screen and (max-width: 767px) {
1149        .newsletter_button_right,.newsletter_button_left{
1150            border: none;
1151            margin: 5px 0;
1152        }
1153    }
1154
1155    /* Font Sizes */
1156
1157    .navbar-default .navbar-nav > li > a, .navbar-default .navbar-nav > li > span {
1158        font-size: 16px;
1159    }
1160    .header .logo {
1161        font-size: 34px;
1162    }
1163    .homepage_title h1, .homepage_settings h1 {
1164		letter-spacing: -1px;
1165        font-size: 42px;
1166					margin-bottom: 20px;
1167				    }
1168    @media only screen and (max-width: 768px) {
1169        .homepage_title h1, .homepage_settings h1 {margin-bottom: 15px;}
1170    }	
1171    .homepage_settings h2 {
1172        font-size: 20px;
1173    }
1174
1175    .ui-rangeSlider-bar{
1176        background: rgb(88, 106, 120)!important;
1177    }
1178
1179    
1180    
1181    @media only screen and (max-width: 1024px){
1182        .modal {margin-top: 40px;}
1183    }
1184    @media only screen and (max-width: 768px){
1185        .modal {margin-top: 60px;}
1186    }
1187
1188    /* Calendar Styles */
1189
1190    #cal-slide-content {
1191        color: rgb(85, 85, 85)!important;
1192        background-color: rgb(238, 238, 238)!important;
1193        -webkit-box-shadow: none!important;
1194        box-shadow: none!important;
1195    }
1196    #cal-slide-content a.event-item {
1197        color: rgb(85, 85, 85)!important;
1198        font-weight:bold!important;
1199    }
1200    #cal-slide-content a.event-item small {
1201        display: inline-block;
1202    }
1203    .cal-month-box, .cal-year-box, .cal-week-box {
1204        border: 1px solid rgb(238, 238, 238)!important;
1205    }
1206    .cal-year-box .row-fluid, .cal-month-box .cal-row-fluid {
1207        border-bottom: 1px solid rgb(238, 238, 238)!important;
1208    }
1209    .cal-year-box [class*="span"], .cal-month-box [class*="cal-cell"] {
1210        border-right: 1px solid rgb(238, 238, 238)!important;
1211    }
1212    .cal-year-box .row-fluid, .cal-row-fluid, #cal-day-box .cal-day-hour:nth-child(odd) {
1213        background-color: rgb(255, 255, 255)!important;
1214    }
1215    .cal-month-day span:not(.pull-right):not(.events-count-label):not(.events-label) {
1216        color: rgb(85, 85, 85)!important;
1217    }
1218    .cal-day-today span[data-cal-date] {
1219        color: rgb(41, 41, 41)!important;
1220    }
1221    .cal-year-box .row-fluid [class*="span"]:last-child, .cal-month-box .cal-row-fluid [class*="cal-cell"]:last-child {
1222        border: 0!important;
1223    }
1224    .cal-row-head {
1225        background: rgb(250, 250, 250)!important;
1226    }
1227    .day-highlight:hover, .day-highlight {
1228        background-color: rgb(238, 238, 238)!important;
1229    }
1230    .cal-event-list .event.pull-left {
1231        background-color: rgb(41, 41, 41)!important;
1232        opacity: 0.4;
1233        margin-top: 7px!important;
1234    }
1235    .cal-day-today {
1236        background-color: rgb(238, 238, 238)!important;
1237    }
1238    #cal-day-tick {
1239        border: 1px solid rgb(238, 238, 238)!important;
1240        background-color: rgb(238, 238, 238)!important;
1241    }
1242    .cal-day-weekend span[data-cal-date]{
1243        color: rgb(41, 41, 41)!important;
1244    }
1245        .well, .member_profile .tab-content, .corner_caption,.module,.img-rounded,.nav-tabs *,input,.input-group-sm > .form-control, .input-group-sm > .input-group-addon, textarea,select,.header ul.nav.navbar-nav li ul,.progress, .alert, .pagination, .page-item:first-child .page-link, .page-item:last-child .page-link, .views > i.fa, .ui-rangeSlider-label, .pic, .panel, .panel-heading, .popover, .pricing_menu li .title, .form-control, .select2-choice, .form-group .select2-dropdown-open.select2-drop-above [class^=select2-choice], .select2-drop.select2-drop-above, .select2-drop, .scrollup, .input-group-addon, .img-thumbnail, .current-photo-container img, .current-logo-container img,.favorite,p.account-tip,.modal-content,.input_wrapper input.form-control,.input-group .input_wrapper input.form-control,.input-group-sm .input_wrapper input.form-control,.input-group-lg .input_wrapper input.form-control,.pricing_menu li ul, .img-rounded img.img-rounded {
1246        border-radius:0px !important;
1247    }
1248        .rsDefault, .rsDefault .rsOverflow, .rsDefault .rsSlide, .rsDefault .rsVideoFrameHolder, .rsDefault .rsThumbs {
1249		border-radius: 10px;
1250        background: #151515!important;
1251    }
1252	.img_section .no-radius-bottom + .alert-secondary .rsDefault .rsSlide, .img_section .no-radius-bottom + .alert-secondary  .rsDefault .rsOverflow {
1253		border-radius:0;
1254	}
1255    
1256    #first_container .favorite, #first_container .fa.favorite {
1257        color: rgb(170, 170, 170);
1258        background: rgb(238, 238, 238);
1259        border: 1px solid rgb(238, 238, 238);
1260        white-space:nowrap!important;
1261		height:24px;
1262		padding:0 6px;
1263		border-radius:8px;
1264    }
1265    #first_container .favorite span, #first_container .fa.favorite span {
1266        font-family: 'Open Sans';
1267        white-space:nowrap!important;
1268    }
1269    #first_container .favoriteActive:not(.favorite.comments-count-badge), #first_container .fa.favoriteActive:not(.favorite.comments-count-badge .fa) {
1270        color: rgb(156, 183, 212);
1271    }
1272        #first_container .favorite::after, #first_container .fa.favorite::after {
1273        font-family: 'Open Sans';
1274        margin-left: 3px;
1275    }
1276    #first_container .favorite span, #first_container .fa.favorite span{
1277        padding-left: 4px;
1278        font-family: 'Open Sans';
1279        font-size: 11px;
1280		letter-spacing:.5px;
1281		top:-1px;
1282		position:relative;
1283		font-weight:700;		
1284    }
1285	#first_container .favorite span:empty, #first_container .fa.favorite span:empty {
1286		padding: 0;
1287	}
1288	#first_container .favorite .bookmark-number, #first_container .fa.favorite .bookmark-number {
1289		padding: 1px 0;
1290		border-radius: 100px;
1291		display: inline-block;
1292		font-weight: bold;
1293		min-width: 15px;
1294		font-size: .8em;
1295		vertical-align: bottom;
1296		height: 15px;
1297		line-height: 13px;
1298		margin-left: 3px;
1299		text-align: center;
1300	}
1301    #first_container .favorite.favoriteActive .bookmark-number:not(.comments-count-badge .bookmark-number), #first_container .fa.favorite.favoriteActive .bookmark-number {
1302        background: rgb(156, 183, 212);
1303		color: #fff;
1304    }
1305    
1306    span.checkbox_value::after {
1307        content: ', ';
1308    }
1309
1310    span.checkbox_value:last-child::after {
1311        content: '';
1312    }
1313    
1314    .member_results .grid_element{
1315	position:relative;
1316	overflow:hidden;
1317	display: inline-block;
1318	width:100%;
1319}
1320.member_results .grid_element::before {
1321	position: absolute;
1322	top: 24px;
1323	text-align: center;
1324	width: 200px;
1325	left: -62px;
1326	transform: rotate(-45deg);
1327	-webkit-transform: rotate(-45deg);
1328	z-index: 1;
1329	line-height: 1.2em;
1330	padding: 6px 0;
1331	font-weight: bold;
1332	letter-spacing: 1px;
1333}
1334@media only screen and (max-width: 767px) {
1335	.member_results .grid-container > hr {
1336		border-color: transparent;
1337	}
1338	.member_results .grid_element{
1339		overflow:visible;
1340	}
1341	.member_results .grid_element::before {
1342		top: -19px!important;
1343		transform: rotate(0deg);
1344		-webkit-transform: rotate(0deg);
1345		font-size: 10px !important;
1346		letter-spacing: 0;
1347		width: auto;
1348		padding: 3px 6px;
1349	}
1350}
1351
1352
1353
1354                .member_results.level_1 .grid_element {
1355                    border-style: solid;
1356                    border-radius:0px;border-width:4px;border-color:rgb(53, 182, 129); }			
1357                .member_results.level_1 .grid_element::before {
1358					border-bottom-left-radius:0!important;
1359                    border-radius:0px;color: #fff ;background-color:rgb(53, 182, 129);font-size:16px;content:'Featured ';					
1360                }
1361				.member_results.level_1 .grid_element {
1362					padding:10px;
1363				}				
1364                @media only screen and (max-width: 767px) {
1365                    .member_results.level_1 .grid_element::before {
1366                    left:-4px;}}
1367    
1368
1369    /*  Homepage Sections Background Color Logic */
1370
1371    
1372    .homepage-section-1 {
1373        padding: 40px 0 40px;
1374    }
1375
1376    
1377    .homepage-section-2 {
1378        padding: 40px 0 40px;
1379    }
1380
1381    
1382    .homepage-section-2 {
1383        background: rgb(88, 106, 120);
1384    }
1385
1386    
1387    .homepage-section-3 {
1388        padding: 40px 0 40px;
1389    }
1390
1391    
1392    .homepage-section-4 {
1393        padding: 40px 0 40px;
1394    }
1395
1396    
1397    .homepage-section-5 {
1398        padding: 40px 0 40px;
1399    }
1400
1401    
1402    .homepage-section-6 {
1403        padding: 40px 0 40px;
1404    }
1405
1406    
1407    .homepage-section-7 {
1408        padding: 40px 0 40px;
1409    }
1410
1411    
1412    .homepage-section-8 {
1413        padding: 40px 0 40px;
1414    }
1415
1416    
1417    .homepage-section-9 {
1418        padding: 40px 0 40px;
1419    }
1420
1421    
1422    .homepage-section-10 {
1423        padding: 40px 0 40px;
1424    }
1425
1426    
1427    .homepage-section-11 {
1428        padding: 40px 0 40px;
1429    }
1430
1431    
1432    .homepage-section-12 {
1433        padding: 40px 0 40px;
1434    }
1435
1436    
1437    .homepage-section-13 {
1438        padding: 40px 0 40px;
1439    }
1440
1441    
1442    .homepage-section-14 {
1443        padding: 40px 0 40px;
1444    }
1445
1446    
1447    .homepage-section-15 {
1448        padding: 40px 0 40px;
1449    }
1450
1451    
1452    /* Additional Settings */
1453
1454    
1455    /* Streaming Widgets Title Settings */
1456
1457    .streaming-title {
1458        text-align: left;
1459        font-size: 30px;
1460		line-height:1.5em;
1461            font-weight: 600;
1462                font-family: 'Open Sans';
1463            padding-bottom: 0px;
1464    }
1465	
1466	@media only screen and (max-width: 990px) {
1467		.streaming-title {
1468			line-height:1.1em;
1469		}
1470	}
1471
1472        
1473    .homepage-join-module .module h2:first-of-type {
1474        color: rgb(62, 62, 62);
1475    }
1476
1477    .homepage-join-module .module{
1478        background: rgb(236, 236, 236);
1479        border-color: rgb(250, 250, 250);
1480    }
1481
1482    .homepage-about-module .module h2:first-of-type {
1483        color: rgb(62, 62, 62);
1484    }
1485
1486    .homepage-about-module .module{
1487        background: rgb(236, 236, 236);
1488        border-color: rgb(250, 250, 250);
1489
1490	}
1491
1492	.the-post-description > :is(h2, h3, h4, h5):not(:first-child) {
1493		font-weight: 600;
1494		margin-top: 20px;
1495	}
1496	
1497	/* Keep: Ensure ul/ol respect padding and margins */
1498	.the-post-description > :is(ul, ol) {
1499		display: flow-root;
1500	}
1501	.the-post-description li {
1502		margin-bottom: 8px;
1503	}
1504
1505        .btn:not(#refcode_submit):not(.input-group-btn .btn):not(.logo-preview-input):not(.cover-preview-input):not(.member_login):not(.img-circle):not(.submit_reply):not(.submit_comment):not(.view-more):not(.image-preview-input):not(.no-radius-bottom):not(.no-radius-top):not(.btn-facebook), .btn-sm:not(.img-circle):not(.view-more):not(.image-preview-input):not(.no-radius-bottom):not(.no-radius-top), .btn-xs:not(.img-circle):not(.view-more):not(.image-preview-input):not(.no-radius-bottom):not(.no-radius-top), button:not(.social_share_buttons button):not(.social_share_buttons a):not(#refcode_submit):not(.input-group-btn button), .btn-group-lg > .btn, .btn-lg, .btn-lg, .btn-xl, .input-group-sm > .input-group-btn > .btn, .favorite, .tags a, select#sid.input-lg, select#tid.input-lg, select#ttid.input-lg, select.combobox.input-lg, select#bd-chained.input-lg, select#category-chained.input-lg, select.infinite-chained.input-lg, select.subcategory-chained.input-lg, select.search-chained.input-lg, select#country-chained.input-lg, select#state-chained.input-lg, select#country-chained-2.input-lg, select#state-chained-2.input-lg, select#profession_id.input-lg, [name^="bd_phone_country_code"].input-lg, select.input-lg, select#sid, select#tid, select#ttid, select.combobox, select#bd-chained, select#category-chained, select.infinite-chained, select.subcategory-chained, select.search-chained, select#country-chained, select#state-chained, select#country-chained-2, select#state-chained-2, select#profession_id, [name^="bd_phone_country_code"] {
1506            border-radius: 0px!important;
1507        }
1508    
1509    
1510    .img-circle, .img-rounded.img-circle, .img-circle img, .img-rounded.img-circle img, img.fr-dib.img-circle, img.fr-dib.img-rounded.img-circle {
1511        border-radius:1000px!important;
1512    }
1513
1514    .img-rounded img, img.fr-dib.img-rounded{
1515        border-radius: 10px!important;
1516    }
1517    
1518    /* Google Translate Module */
1519        .skiptranslate{font-size:0}
1520    .goog-te-gadget-simple{border:1px solid #ccc;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,0.075) inset;color:#555}
1521    .skiptranslate.goog-te-gadget span,img.goog-te-gadget-icon{display:none!important}
1522    .goog-te-gadget .goog-te-combo{margin-bottom:-4px}
1523    .skiptranslate.goog-te-gadget select{border:1px solid #ddd;border-radius:3px;font-size:12px;padding:2px 4px;width:100%;background:#fff;margin:0;height:30px;line-height:30px;display:block;color:#555;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}
1524    @media only screen and (max-width: 1100px) {
1525        .skiptranslate:not(.skiptranslate[style="display: none;"]){height:39px}
1526        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .header{margin-top:10px!important}
1527        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .announcement-bar{margin-top:10px}
1528        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .announcement-bar ~ .header{margin-top:0!important}
1529        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .header .mobile-main-menu{top:89px!important;height:calc(100% - 90px)!important}
1530        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .header .navbar{top:39px}
1531        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ #first_container .member_sidebar.open{top: 89px;}
1532    }
1533    @media only screen and (max-width: 767px) {
1534        .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .announcement-bar.hidden-xs ~ .header{margin-top:10px!important}
1535    }
1536
1537    
1538    
1539</style>
1540
1541<!-- Google Tag Manager (noscript) -->
vendor: 69 bytes, lines 1541-1542
1541
1542<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
1542GTM-PJGVCVG
vendor: 85 bytes, lines 1542-1543
1542"
1543height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
1544<!-- End Google Tag Manager (noscript) -->    <!-- ON-PAGE CSS FUNCTIONS -->
1545    <style type="text/css">
1546        .blogFloat{
1547float:left; 
1548width:150px;}
1549
1550.clearFix{
1551clear:both;
1552}
1553a#link331 {
1554  background-color: rgba(27, 106, 141,0.97); 
1555  border: 1px solid rgb(27, 106, 141); 
1556  color: rgb(255, 255, 255)!important;
1557  
1558}
1559.podfooter {
1560   
1561    display: none;
1562}    </style>
1563    <div class="header">
1564            <div class="container">
1565			<div class="row header-main-row">
1566				<style type='text/css'> .logo-text:has(.logo_title:empty) {
1567	display:none
1568} </style><div id="website_logo" class="col-md-5 xs-nopad xs-hpad sm-text-center xs-bmargin header-left-container">
1569			<a class="logo logo-image inline-block vpad sm-nopad sm-tmargin" href="https://www.storycrews.com" title="StoryCrews ™️ Videographer and Video Expert Directory">
1570			<img width="400" height="141" src="/images/storyCrewsLogo_website.jpg" alt="StoryCrews ™️ Videographer and Video Expert Directory">
1571		</a>
1572		<div class="clearfix"></div>
1573</div>
1574									<style type='text/css'> body input.tt-hint,body input.form-control.normal-autosuggest-input.tt-query {
1575	background-color: white !important;
1576}
1577.mini-nav:not(:has(li)) {
1578	display: none!important;
1579}
1580/* Parent Container - Main List */
1581.mini-nav li:has(ul) {
1582	position: relative;
1583	border-radius: 8px 8px 0 0;
1584}
1585.mini-nav > li:has(ul) {
1586	padding-left: 0;
1587	padding-right: 0;
1588	background: rgb(255, 255, 255);
1589}
1590.mini-nav > li:has(ul) > a:not(.btn), .mini-nav > li:has(ul) > span {
1591	padding: 10px 15px;
1592	margin: 0!important;
1593}
1594.mini-nav > li:hover:has(ul), .mini-nav > li:hover:has(ul) {
1595	box-shadow: 0 -1px 3px rgba(88, 106, 120,0.25);
1596}
1597/* Parent Links */
1598.mini-nav > li > a:not(.btn), .mini-nav > li > span:not(.btn) {
1599	display:inline-block;
1600	border-radius: 8px 8px 0 0;
1601}
1602.mini-nav > li:hover > a:not(.btn), .mini-nav > li:hover > span {
1603	background: rgb(255, 255, 255);
1604	display: inline-block;
1605	position: relative;
1606	z-index: 1000;
1607}
1608/* First Level Dropdowns */
1609.mini-nav li ul {
1610	background: rgb(255, 255, 255);
1611	box-shadow: 0 0px 3px rgba(88, 106, 120,0.25), 0 5px 5px 5px rgba(88, 106, 120,0.05);
1612	text-align: left;
1613	display: none;
1614	border-radius: 0 8px 8px 8px;
1615	list-style: none;
1616	padding: 10px;
1617	position: absolute;
1618	white-space: nowrap;
1619	min-width: 130%;
1620	width: auto;
1621	top: 100%;
1622	left: 0;
1623	z-index: 999;
1624	margin-top: -1px;
1625}
1626.mini-nav li:hover > ul {
1627	display: block;
1628}
1629/* First Level Dropdown Items */
1630.mini-nav li ul li {
1631	position: relative;
1632	display: block;
1633	width: 100%;
1634}
1635.mini-nav li ul li a, .mini-nav li ul li span {
1636	font-size: 12.95px !important;
1637	display: block;
1638	font-weight: 400;
1639	padding: 8px 12px;
1640	border-radius: 8px;
1641	text-decoration: none;
1642	width: 100%;
1643}
1644.mini-nav li ul li a:hover, .mini-nav li ul li span:hover {
1645	box-shadow: 0 0 0 25px rgba(88, 106, 120,0.05) inset;
1646}
1647/* Second Level Dropdowns */
1648.mini-nav li ul li ul {
1649	display: none;
1650	position: absolute;
1651	top: 0;
1652	left: 100%;
1653	margin: 0;
1654	border-radius: 8px;
1655}
1656.mini-nav li ul li:hover > ul {
1657	display: block;
1658}
1659/* Edge Positioning - Last Child Dropdowns */
1660.mini-nav > li:last-child ul {
1661	right: 0;
1662	left: auto;
1663	border-radius: 8px 0 8px 8px;
1664}
1665.mini-nav > li:last-child ul li ul {
1666	right: 100%;
1667	left: auto;
1668}
1669/* Flex Spacing Utility */
1670.mini-nav.mini-nav-flex-spaced {
1671	display: flex;
1672	justify-content: space-between;
1673	align-items: center;
1674	flex-wrap: wrap;
1675	row-gap: 0;
1676}
1677.mini-nav.mini-nav-flex-spaced > li {
1678	flex: none;
1679	padding: 0;
1680	margin: 2px 0;
1681	order: 2;
1682}
1683.mini-nav.mini-nav-flex-spaced > li.header-member-account-links,
1684.mini-nav:has(li ul) > li.header-member-account-links {
1685	order: 1;
1686	margin-left: auto;
1687	width: 100%;
1688	margin-bottom: 10px;
1689}
1690.logged-in-member-header .mini-nav.mini-nav-flex-spaced.list-inline > li {
1691	line-height: 1em;
1692	min-height: 0;
1693}
1694@media (min-width: 992px) {
1695	.header-main-row {
1696		display: flex;
1697		align-items: center;
1698		flex-wrap: wrap;
1699	}
1700}
1701@media (max-width: 991px) {
1702	.mini-nav.mini-nav-flex-spaced {
1703		justify-content: center;
1704	}
1705	.mini-nav.mini-nav-flex-spaced > li {
1706		margin-left: 5px !important;
1707		margin-right: 5px !important;
1708	}
1709} </style><div class="col-md-7 text-right sm-text-center header-right-container nolpad xs-hpad">
1710            <ul class="mini-nav  nobmargin list-inline xs-nopad xs-tmargin tpad">
1711            <li class='bmargin'><span id='link207'  class='bmargin'> </span></li><li class=''><span id='link332'  target='_blank'> 
1712<a class="typeform-share button" href="https://form.typeform.com/to/CWmRUjr9?typeform-medium=embed-snippet" data-mode="popup" style="display:inline-block;text-decoration:none;background-color:#586a78;color:white;cursor:pointer;font-family:Helvetica,Arial,sans-serif;font-size:20px;line-height:50px;text-align:center;margin:0;height:50px;padding:0px 33px;border-radius:25px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:bold;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;" data-size="100" target="_blank">I Need a Videographer Fast  </a></span><ul><li style="list-style-type:none; margin-top:20px;" class=''><a href='/login' id='link333' style="color:#9cd2cb; font-weight:bold; margin-top:20px; margin-right:20px;">Member Login</a></li></ul></li>        </ul>
1713            <div class="clearfix"></div>
1714    </div>
1715				            </div>
1716        </div>
1717        <style type='text/css'> .mobile-main-menu .hasChildren span a {
1718	padding: 0px;
1719}
1720
1721.user_sidebar > img {
1722	width: 32px;
1723	height: 32px;
1724	position: absolute;
1725	z-index: 10;
1726	border-radius: 100px;
1727	top: -1px;
1728	object-fit: cover;
1729	left: -10px;
1730	background: rgb(238, 238, 238);
1731}
1732#member_sidebar_toggle img+.fa {
1733	display: none;
1734}
1735.main_menu, .user_sidebar, .compact-mobile-search {
1736	padding: 5px 8px;
1737	margin-right:0;
1738	min-height: 33.0333px;
1739	min-width: 38.116px;	
1740}
1741.main_menu i, .user_sidebar i {
1742	font-size: 16px;
1743}
1744.navbar-nav li {
1745	float: none!Important;
1746}
1747.navbar-default{
1748	-webkit-transition: all .6s ease-in-out;
1749	-moz-transition: all .6s ease-in-out;
1750	-o-transition: all .6s ease-in-out;
1751	transition: all .6s ease-in-out;
1752}
1753.transparent_menu {
1754		background-color: rgba(228, 234, 242,0.95)!important;
1755}
1756@media only screen and (max-width: 991px) {
1757	#popover {display: none}
1758}
1759@media only screen and (max-width: 1100px){
1760	.mobile-main-menu{display:block!important}
1761	.navbar-toggle {display: block}
1762	#bs-main_menu .nav {display: none!important}
1763}
1764.mobile-main-menu {
1765	position: fixed;
1766	height: calc(100% - 50px)!important;
1767	width: 250px;
1768	background: rgb(228, 234, 242);
1769	z-index: 99999;
1770	right: -250px;
1771	top: 50px;
1772	display: none;
1773	-webkit-transition: all .6s ease-in-out;
1774	-moz-transition: all .6s ease-in-out;
1775	-o-transition: all .6s ease-in-out;
1776	transition: all .6s ease-in-out;
1777	overflow-y: auto!important;
1778	overflow-x: hidden!important;
1779}
1780.mobile-main-menu ul li i {
1781	color: rgb(0, 0, 0);
1782	cursor: pointer;
1783	float: right;
1784	padding: 13px;
1785}
1786.mobile-main-menu.opened{
1787	right: 0px!important;
1788}
1789.mobile-main-menu ul li a, .mobile-main-menu ul li span {
1790	display: inline-block;
1791	float: left;
1792	-webkit-touch-callout: none;
1793	-webkit-user-select: none;
1794	-khtml-user-select: none;
1795	-moz-user-select: none;
1796	-ms-user-select: none;
1797	user-select: none;
1798	padding: 10px 0px;
1799	width: 80%;
1800	width: calc(100% - 40px);
1801}
1802.mobile-main-menu .sidebar-nav li ul {
1803	height: 0px;
1804	overflow: hidden;
1805	list-style: none;
1806	color: rgb(0, 0, 0);
1807	padding-left: 10px;
1808}
1809.mobile-main-menu .sidebar-nav li.sub_open > ul{
1810	height: 100%;
1811}
1812.mobile-main-menu ul.sidebar-nav {
1813	position: absolute;
1814	width: 250px;
1815	margin: 0;
1816	padding: 0;
1817	list-style: none;
1818	font-size: 14px;
1819}
1820.mobile-main-menu .sidebar-nav > li {
1821	display: block;
1822	line-height: 20px;
1823	padding: 0 15px 0 20px;
1824}
1825.mobile-main-menu .sidebar-nav li a, .mobile-main-menu .sidebar-nav li span {
1826	text-decoration: none;
1827	color: rgb(0, 0, 0);
1828	padding-left:10px;
1829}
1830.mobile-main-menu .sidebar-nav li a i, .mobile-main-menu .sidebar-nav li span i {
1831	display: none;
1832}
1833
1834 </style><div class="mobile-main-menu">
1835	<ul class="sidebar-nav">
1836		<li class=''><a href='/home' id='link1'>Home</a></li><li class=''><a href='/search_results' id='link230'>Hire</a></li><li class=''><a href='/blog' id='link227'>Learn</a><ul><li class=''><a href='/blog?q=&category%5B%5D=Marketing+and+Strategy' id='link286'>Marketing and Strategy</a></li><li class=''><a href='/blog?q=&category%5B%5D=Production' id='link287'>Production</a></li><li class=''><a href='/blog?q=&category%5B%5D=Gear' id='link288'>Gear</a></li><li class=''><a href='/blog?q=&category%5B%5D=Hiring' id='link289'>Hiring</a></li></ul></li><li class=''><a href='http://find.storycrews.com/' id='link189'  target='_blank'>How It Works</a></li><li class=''><a href='https://iangarlic.typeform.com/to/rNmaGvRl' id='link231'  target='_blank'>Join Today</a></li><li class=''>
1836<a href='https://authenticweb.lpages.co/storycrews-partners-page' id='link290'>Partners</a></li>	</ul>
1837</div>
1838<nav class="navbar navbar-default lockedonscroll">
1839	<div class="container container-fluid">
1840
1841		<div class="navbar-header">
1842						<div class="mobile_website_logo">
1843				<a href="https://www.storycrews.com" title="StoryCrews ™️ Videographer and Video Expert Directory" class="visible-xs">
1844										<img width="400" height="141" src="/images/storyCrewsLogo_website.jpg" alt="StoryCrews ™️ Videographer and Video Expert Directory">
1845									</a>
1846			</div>
1847						<button type="button" class="navbar-toggle collapsed main_menu" data-toggle="collapse" aria-label="main_menu">
1848								<i class="fa fa-bars fa-fw"></i> Menu
1849							</button>
1850
1851			
1852			
1853		</div>
1854
1855
1856		<div class="tablet-menu collapse navbar-collapse nopad" id="bs-main_menu">
1857			<ul class="tablet-menu-ul nav navbar-nav nav-justified">
1858				<li class=''><a href='/home' id='link1'>Home</a></li><li class=''><a href='/search_results' id='link230'>Hire</a></li><li class=''><a href='/blog' id='link227'>Learn</a><ul><li class=''><a href='/blog?q=&category%5B%5D=Marketing+and+Strategy' id='link286'>Marketing and Strategy</a></li><li class=''><a href='/blog?q=&category%5B%5D=Production' id='link287'>Production</a></li><li class=''><a href='/blog?q=&category%5B%5D=Gear' id='link288'>Gear</a></li><li class=''><a href='/blog?q=&category%5B%5D=Hiring' id='link289'>Hiring</a></li></ul></li><li class=''><a href='http://find.storycrews.com/' id='link189'  target='_blank'>How It Works</a></li><li class=''><a href='https://iangarlic.typeform.com/to/rNmaGvRl' id='link231'  target='_blank'>Join Today</a></li><li class=''><a href='https://authenticweb.lpages.co/storycrews-partners-page' id='link290'>Partners</a></li>			</ul>
1859		</div>
1860	</div>
1861</nav>
1862<!--CSS IF MENU IS FIXED TOP-->
1863
1864</div>
1865<div class="clearfix"></div>
1866<!-- Begin  Content -->
1867<main role="main" id="main-content">
1868<div id="first_container" class="content-container fr-view">
1869        <div class="container">
1870                        <div class="clearfix body-content"></div>
1871        
1872        <div class="row">
1873
1874        <div class="col-md-12">
1875                    <style>        .member-login-container:not(.modal .module) {            width: 555px;            max-width: 100%;            margin-left: auto;            margin-right: auto;            margin-bottom:0;            background-color: rgb(250, 250, 250)!important;            border-color: rgb(238, 238, 238)!important;            color: rgb(41, 41, 41)!important;        }        .login-register-tabs, .login-register-content {            width: 555px!important;            max-width: 100%;            margin-left: auto!important;            margin-right: auto!important;            background-color: rgb(238, 238, 238);        }        .login-register-content {            background: transparent;            padding: 0;            border: none;        }        .login-register-content h2, .login-register-content h2+hr, .login-register-content .account-menu-title {            display: none!important;        }        .express_login_create_account_prefix hr {            margin: 15px 0 10px;        }
1875        .modal-content #containerFBLogin, .modal-content #containerGoogleLogin {            margin:15px 0;        }        /* CSS When Login Form and Express Registration Rendered in Sidebar */        .col-md-3 .bd-chat-well-container,.col-md-4 .bd-chat-well-container {            padding: 15px 10px;        }        .col-md-3 .bd-chat-center-text,.col-md-4 .bd-chat-center-text {            margin: 0;            font-size: 20px;            padding: 0 15px;        }        .col-md-3 .member-login-page-container .login-register-tabs *, .col-md-4 .member-login-page-container .login-register-tabs * {            font-size: 12px;            line-height: 1.2em;            vertical-align: bottom;        }        .col-md-3 .member-login-page-container .login-register-tabs a, .col-md-4 .member-login-page-container .login-register-tabs a {            padding: 5px !important;            height: 50px;            vertical-align: middle;            display: table-cell !important;            width: 1%;        }        .col-md-3 .member-login-page-container .login-register-content, .col-md-4  .member-login-page-container .login-register-content {            padding: 0;        }        .col-md-3 .member-login-container, .col-md-4 .member-login-container {            padding: 15px !important;            font-size: 13px;        }        .col-md-3 .member-login-page-container .input-lg, .col-md-4 .member-login-page-container .input-lg {            height: 34px;            padding: 6px 12px;            font-size: 14px;        }        .col-md-3 .member-login-page-container .security_question_label, .col-md-4 .member-login-page-container .security_question_label {            transform: scale(.85);            margin: -1.15em -1.15em 0;        }        .col-md-3 #containerFBLogin, .col-md-4 #containerFBLogin, .col-md-3 #containerGoogleLogin, .col-md-4 #containerGoogleLogin, .col-md-3 .login-cta-buttons li, .col-md-4 .login-cta-buttons li {            width: 100%;            display: block;            margin-top:5px;        }        .col-md-3 .login-cta-buttons li, .col-md-4 .login-cta-buttons li {            padding:0        }        .col-md-3 .login-cta-buttons ul.nav, .col-md-4 .login-cta-buttons ul.nav {            margin-top: -10px;        }        .col-md-3 #googleAction, .col-md-3 #facebookAction, .col-md-4 #googleAction, .col-md-4 #facebookAction {            padding: 0;            min-height: 0;            font-size: 14px;            margin: 0;        }        .col-md-3 #googleAction img, .col-md-3 #facebookAction img, .col-md-4 #googleAction img, .col-md-4 #facebookAction img {            height: 36px !important;            margin-right: 5px;            position: relative!important;            display: inline-block;        }        @media only screen and (max-width: 767px) {            .col-md-3 .member-login-page-container .login-register-tabs a, .col-md-4 .member-login-page-container .login-register-tabs a {                display: block !important;                width: 100%;                line-height: 40px;            }            #containerGoogleLogin {                text-align: center;                margin-top: 10px;            }            #containerGoogleLogin #gBtn {                display: inline-block;            }        }    </style>    <div class="row member-login-page-container">        <div class="fpad-lg novpad">                                                <div class="module fpad-xl member-login-container">                         <style type="text/css">label span.required { color: #B94A48; }span.help-inline, span.help-block {font-size: .9em; }</style><form action="/api/widget/json/get/Bootstrap%20Theme%20-%20Member%20Login%20Page" id="member_login_190" method="post" labelwidth="100" labelpaddingtop="0.5em" enctype="multipart/form-data" form_action_type="redirect" form_action_div return_data_type="" name="member_login_190" class=" "><input type="hidden" name="sized" value="0" id="member_login_190-element-0"/><input type="hidden" name="form" value="myform" id="member_login_190-element-1"/><input type="hidden" name="formname" value="member_login" id="member_login_190-element-2"/><input type="hidden" name="dowiz" value="1" id="member_login_190-element-3"/><input type="hidden" name="save" value="1" id="member_login_190-element-4"/><input type="hidden" name="url_origin_pars" value="/login" id="member_login_190-element-5"/><input type="hidden" name="action" autocomplete="off" value="login" id="member_login_190-element-6"/><h2 class="nomargin member-login-h2-form-title">Member Login</h2><hr><style type='text/css'> #containerGoogleLogin #gBtn {    display: inline-block;    text-align: center;    width: 216px;}.module #containerFBLogin #facebookAction img, .module #containerFBLogin #facebookAction img {    position: absolute !important;}.module #containerFBLogin a#facebookAction {    max-width: 200px;    position: relative;    left: -8px;    } </style>    <!-- Required Font-Family for Social Buttons -->    <link rel="stylesheet" media="print" onload="this.onload=null;this.removeAttribute('media');" href="https://fonts.googleapis.com/css?family=Roboto:500&display=swap">    <noscript>        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:500&display=swap">    </noscript>
1875    <div class="row social-login-row">    </div><div class="form-group"><label class="vertical-label bd-email" for="member_login_190-element-9"><span class="required">* </span>Email Address</label><input type="email" name="email" required placeholder="[email protected]" autocomplete="off" value class="form-control input-lg" id="member_login_190-element-9"/></div><div class="form-group"><label class="vertical-label bd-password" for="member_login_190-element-10"><span class="required">* </span>Password</label>                    <style>                        #togglePassword {                            background: none;                            border: none;                            cursor: pointer;                            font-weight: bold;                            font-size: .85em;                            position: absolute;                            right: 5px;                            top: 0;                        }                    </style><button type="button" tabindex="-1" id="togglePassword" onclick="showPassword(this);"> <i class="fa fa-lock" aria-hidden="true"></i></button>                
1875<script>                    function showPassword(node){                        const parent = node.closest('.form-group');                        const passwordField = parent.querySelector(`input[type='password'], input[type='text']`);                        const isPassword = passwordField.getAttribute('type') === 'password';                        passwordField.setAttribute('type', isPassword ? 'text' : 'password');                        const iconHTML = isPassword ? `<i class="fa fa-unlock" aria-hidden="true"></i>` : `<i class="fa fa-lock" aria-hidden="true"></i>`;                        node.innerHTML = iconHTML;                    }                      </script>
1875<input type="password" name="pass" required placeholder="Enter Password" autocomplete="off" value class="form-control input-lg" id="member_login_190-element-10"/></div><span class="help-block bpad bmargin notmargin"> <a href="/login/retrieval">Forgot Password? Click to Reset Password</a></span><div class="form-group"><div class="form-group security_question_label">                <label for="captchaContainer">            <span class="required">* </span>            Answer Security Question        </label>        <div id="member_login_190-captchaContainer" class="control-group">        <div class="g-recaptcha"  id="member_login_190-google-recaptcha"></div>    </div>    <small class="help-block" id="recaptcha_error" style="display:none;" data-fv-validator="notEmpty" data-fv-for="recaptcha" data-fv-result="INVALID" />The security check was not completed successfully.</small>    <div class="clearfix bmargin"></div>    <input type="hidden" name="recaptcha" id="member_login_190-rcap"></div>    <style>        .modal .g-recaptcha-scale, .col-md-4 .g-recaptcha-scale, .col-md-3 .g-recaptcha-scale, .col-lg-3 .g-recaptcha-scale, .col-lg-4 .g-recaptcha-scale {            transform: scale(0.77);            -webkit-transform: scale(0.77);            transform-origin: 0 0;            -webkit-transform-origin: 0 0;            margin-bottom: -15px;        }        .modal #member_login_190-captchaContainer, .col-md-4 #member_login_190-captchaContainer, .col-md-3 #member_login_190-captchaContainer, .col-lg-3 #member_login_190-captchaContainer, .col-lg-4 #member_login_190-captchaContainer {            transform: scale(0.77);            -webkit-transform: scale(0.77);            transform-origin: 0 0;            -webkit-transform-origin: 0 0;            margin-bottom: -15px;        }    </style>    
1875<script type="text/javascript">        if(typeof formsFound == "undefined"){            var formID                  = '';            var currentCaptcha          = {};            var captchaHolders          = {};            var formsFound              = {};            var captchaApiRequested     = false;            /* The forms the visitor has actually interacted with - only these get a widget. */            var captchaArmedForms       = [];            /* api.js stays lazy - nothing is fetched from Google until the visitor actually               touches the form. 'click' alone was too narrow: a keyboard-only visitor tabs in               and presses Enter without ever clicking, so api.js never loaded, the captcha               never rendered, and the form POSTed an empty token. */            var captchaTriggerEvents    = ['click', 'keydown', 'focusin', 'touchstart'];            window.addEventListener('load', () => {                formID = document.querySelectorAll('[name="recaptcha"]');                if (typeof formID != "undefined" && formID !== null) {                    for (let i = 0; i < formID.length; i++) {                        let formIDForm      = formID[i].closest('form');                        let captchaHolder   = formIDForm.querySelector(".g-recaptcha");                        if (typeof formsFound[formIDForm.id] != "undefined") {                            formsFound[formIDForm.id]['counter']++;                        }else{                            formsFound[formIDForm.id] = {'counter' : 1};                        }                        formIDForm.setAttribute('data-counter', formsFound[formIDForm.id]['counter']);                        captchaHolder.setAttribute('id',captchaHolder.id+'-'+formsFound[formIDForm.id]['counter']);                        if (typeof formIDForm != "undefined" && formIDForm !== null) {                            captchaTriggerEvents.forEach( evt =>                                formIDForm.addEventListener(evt, reCaptchaOnFormInteraction, false)                            );                        }                    }                }            });        }        function reCaptchaOnFormInteraction(event) {            if (event && event.currentTarget) {                captchaArmForm(event.currentTarget);            }            if (captchaApiRequested) {                renderArmedCaptchas();                return;            }            captchaApiRequested = true;            var head    = document.getElementsByTagName('head')[0];            var script  = document.createElement('script');            script.type = 'text/javascript';            script.src  = 'https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit&hl=en';            head.appendChild(script);        }        var captchaArmForm = function (formEl) {            if (!formEl) {                return;            }            for (var a = 0; a < captchaArmedForms.length; a++) {                if (captchaArmedForms[a] === formEl) {                    return;                }            }            captchaArmedForms.push(formEl);        };        var captchaSolvedCallback = function (holder) {            return function () {                var formEl = holder.closest('form');                if (!formEl) {                    return;                }                $(formEl).find('.security_question_label').removeClass('has-error');                $(formEl).find('#recaptcha_error').css('display', 'none');                var notification = document.getElementById(formEl.id + '-notification');                if (notification && notification.classList.contains('alert-danger-subtle')) {                    $(notification).slideUp();                }            };        };        var renderArmedCaptchas = function () {            if (typeof grecaptcha === "undefined" || typeof grecaptcha.render !== "function") {                return;            }            for (var f = 0; f < captchaArmedForms.length; f++) {                var holder = captchaArmedForms[f].querySelector('div[class=g-recaptcha]');                if (!holder || !holder.id || holder.getClientRects().length === 0) {                    continue;                }                /* Guard a second render: grecaptcha throws on an element it already claimed. */                if (typeof captchaHolders[holder.id] === "undefined") {                    captchaHolders[holder.id] = grecaptcha.render(holder.id, {                        'sitekey': '6LcQeq0UAAAAAFFJQUOxmpmtSN5vJaqfgNlY101p',                        'callback': captchaSolvedCallback(holder)                    });                }            }        };        var onloadCallback = function (event) {            renderArmedCaptchas();        };    </script>
1875<script>    $(document).ready(function(){        /* Implicit submission (Enter inside a field) fires 'submit' without firing a click on           the submit button, so the click guard below never sees it and the form POSTed an           empty token. Bound on document/capture so it runs before FormValidation's own           handler on the form - at AT_TARGET the capture flag does not order listeners, so a           listener on the form itself would not reliably win. Native HTMLFormElement.submit()           does not dispatch 'submit', so the solved-captcha path below is unaffected. */        var captchaGuardedForm = document.getElementById('member_login_190');        if (captchaGuardedForm) {            document.addEventListener('submit', function (event) {                if (event.target !== captchaGuardedForm) {                    return;                }                var formId              = captchaGuardedForm.id;                var captchaHolderKey    = formId + "-google-recaptcha-" + $(captchaGuardedForm).data('counter');                var captchaRendered     = typeof captchaHolders[captchaHolderKey] != "undefined";                if (captchaRendered && grecaptcha.getResponse(captchaHolders[captchaHolderKey]) !== "") {                    $("#" + formId + " .security_question_label").removeClass("has-error");                    $("#" + formId + " #recaptcha_error").css("display", "none");                    return;                }                /* Unsolved, or api.js still in flight: either way there is no token to send. */                event.preventDefault();                event.stopImmediatePropagation();                $("#" + formId + " .security_question_label").addClass("has-error");                $("#" + formId + " #recaptcha_error").css("display", "block");                return false;            }, true);        }        $("#member_login_190 input[type=submit]").unbind('click');        $("#member_login_190 input[type=submit]").click(function (event) {            var formId = $(this.form).attr('id');            var captchaHolderKey = formId + "-google-recaptcha-" +$(this.form).data('counter');            if (typeof captchaHolders[captchaHolderKey] != "undefined") {                if (grecaptcha.getResponse(captchaHolders[captchaHolderKey]) === "") {                    event.preventDefault();                    $("#" + formId).formValidation('validate');                    $("#" + formId + " .security_question_label").addClass("has-error");                    $("#" + formId + " #recaptcha_error").css("display", "block");                    return false;                }                /* Solved captcha: clear the error UI and let the click proceed untouched.                   The browser then fires a REAL, button-initiated submit event, so                   FormValidation runs its normal chain (success.form.fv -> AJAX modal on                   checkout / native POST on login). Re-submitting here artificially broke                   both ways: native form.submit() skips the FV chain (checkout rendered the                   raw JSON response), and jQuery .submit() fires a synthetic submit that FV                   refuses, leaving the form stuck after the first error (Bug 2). */                $("#" + formId + " .security_question_label").removeClass("has-error");                $("#" + formId + " #recaptcha_error").css("display", "none");            }        });    });</script>
1875</div><div class="form-actions"><input type="submit" value="Login Now" name class="btn btn-primary btn-lg btn-block " id="member_login_190-element-13"/></div><div class="login-cta-buttons"><hr class="cta-hr"><ul class="list-inline nomargin inline-block btn-block"><li class='col-md-6 nolpad sm-nopad nav'><a href='/checkout/5' id='link228'  class='btn btn-danger btn-block sm-bmargin'>Not a Registered User? <span class="inline-block">Create Free User Account</span></a></li><li class='col-md-6 norpad sm-nopad nav'><a href='/join' id='link229'  class='btn btn-success btn-block'>Are You a Local Business? <span class="inline-block">List Your Company Now</span></a></li></ul><div class="clearfix"></div></div></form>
1875<script type="text/javascript">jQuery(document).ready(function() {		jQuery("#member_login_190").bind("submit", function() { 		});}); </script>
1875                         <div class="clearfix"></div>                    </div>                                    </div>    </div>        </div>
1876
1877        
1878        </div>  <!-- Closes Row -->
1879
1880    
1881    
1881<script type="application/ld+json">
1882{
1883    "@context": "https://schema.org/",
1884    "@type": "WebPage",
1885    "@id": "https://www.storycrews.com/login",
1886    "url": "https://www.storycrews.com/login",
1887    "name": "Login Now - StoryCrews &trade;️ Videographer and Video Expert Directory",
1888    "headline": "Login to your account on StoryCrews ™️ Videographer and Video Expert Directory",
1889    "about": "StoryCrews ™️ Videographer and Video Expert Directory > Login",
1890    "inLanguage": "en-US",
1891    "mainEntityOfPage": "https://www.storycrews.com/login",
1892    "author": {
1893        "@id": "https://www.storycrews.com/#organization"
1894    },
1895    "publisher": {
1896        "@id": "https://www.storycrews.com/#organization"
1897    },
1898    "isPartOf": {
1899        "@id": "https://www.storycrews.com/#website"
1900    },
1901    "primaryImageOfPage": {
1902        "@type": "ImageObject",
1903        "url": "/images/storyCrews_hero.jpg"
1904    },
1905    "keywords": [
1906        "local video production",
1907        "videographer"
1908    ],
1909    "dateModified": "2016-03-04T17:58:20-05:00"
1910}</script>
1910
1911        <div class="clearfix"></div>
1912    </div>
1913</div>
1914</main>
1915<!-- End Content -->
1916<div class="clearfix footer-clear-element clearfix-lg"></div>
1917
1918<div class="footer">
1919    <div class="container">
1920        <div class="row">
1921            <ul class="footer_menu sm-text-center">
1922                <li class='col-md-2 col-md-offset-1'><span id='link159'  class='head'> Website</span><ul><li class=''><a href='/about' id='link160'>How It Works</a></li></ul></li><li class='col-md-2'><span id='link162'  class='head'> Search</span><ul><li class=''><a href='/search_results' id='link163'>Browse Categories</a></li><li class=''><a href='/search_results' id='link164'>Browse Locations</a></li></ul></li><li class='col-md-2'><span id='link165'  class='head'> Support</span><ul><li class=''><a href='/about/contact' id='link167'>Contact Us</a></li><li class=''><a href='/login' id='link166'>Member Login</a></li></ul></li><li class=''><span id='link331'> <a class="typeform-share button" href="https://form.typeform.com/to/eNVwYl3e?typeform-medium=embed-snippet" data-mode="popup" style="display:inline-block;text-decoration:none;background-color:#9cb7d4;color:white;cursor:pointer;font-family:Helvetica,Arial,sans-serif;font-size:20px;line-height:50px;text-align:center;margin:0;height:50px;padding:0px 33px;border-radius:25px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:bold;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;" data-size="100" target="_blank">Are you a Videographer? </a></span></li><li class='col-md-5 vpad vmargin'><span id='link211' style="float-left;"> <style>.network-icon.twitter,.network-icon.tiktok{background:#000}</style>
1923<div class="list-social-links">
1924	<a class="network-icon contact" href="/about/contact" title="Contact Us StoryCrews ™️ Videographer and Video Expert Directory">
1925		<i class="bi bi-envelope"></i>
1926	</a> 
1927		<a class="network-icon facebook" href="https://www.facebook.com/STORYCREWS-466670094091350/" target="_blank" title="StoryCrews ™️ Videographer and Video Expert Directory Facebook">
1928		<i class="bi bi-facebook"></i>
1929	</a>
1930			     
1931	      
1932		 
1933						<div class="clearfix"></div>
1934</div></span></li><li class=''><span id='link326'> <p style = "text-align:center; margin-top:40px;"><a href="https://www.storycrews.com/united-states/georgia/atlanta">Best Atlanta Business Videographer</a>| <a href="/">Best Asheville Business Videographer</a> | <a href="/">Best Austin Business Videographer</a> | <a href="https://www.storycrews.com/united-states/north-carolina/charlotte">Best Charlotte Business Videographer</a> | <a href="https://www.storycrews.com/united-states/illinois/chicago">Best Chicago Business Videographer</a> | <a href="/">Best Cleveland Business Videographer</a> | <a href="https://www.storycrews.com/united-states/colorado/denver">Best Denver Business Videographer</a> | <a href="/">Best Long Island Business Videographer</a> | <a href="https://www.storycrews.com/united-states/florida/miami">Best Miami Business Videographer</a> | <a href="/">Best Naples Business Videographer</a> | <a href="https://www.storycrews.com/united-states/new-york/new-york">Best New York City Business Videographer</a> | <a href="https://www.storycrews.com/united-states/florida/orlando">Best Orlando Business Videographer</a> | <a href="https://www.storycrews.com/united-states/arizona/phoenix">Best Phoenix Business Videographer</a> | <a href="https://www.storycrews.com/united-states/florida/tampa">Best Tampa Business Videographer</a> | <a href="/">Best St. Petersburg Fl Business Videographer</a> | <a href="https://www.storycrews.com/united-states/missouri/st-louis">Best St. Louis Business Videographer</a> | <a href="https://taxreliefnearme.org/">Find Tax Relief Near You</a></p></span></li>            </ul>
1935        </div>
1936				<div class="col-md-12 fpad fmargin small text-center footer_terms">
1937	&copy; 2026	<a title="StoryCrews ™️ Videographer and Video Expert Directory" href="/">
1938		StoryCrews ™️ Videographer and Video Expert Directory	</a> 
1939	All Rights Reserved.
1940	<div class="inline-block">
1941		<a title="Terms of Use - StoryCrews ™️ Videographer And Video Expert Directory" href="/about/terms">
1942			Terms of Use
1943		</a> 
1944		|
1945		<a title="Privacy Policy - StoryCrews ™️ Videographer And Video Expert Directory" href="/about/privacy">
1946			Privacy Policy
1947		</a>
1948	</div>
1949</div>
1950		    </div>
1951</div><style type='text/css'> .scrollup {
1952  border-radius: 3px;
1953  width: 40px;
1954  height: 40px;
1955  opacity: 0.4;
1956  position: fixed;
1957  bottom: 30px;
1958  right: 30px;
1959  display: none;
1960  background: rgba(119, 119, 119, 0.8);
1961  z-index: 1000000;
1962}
1963.scrollup i {
1964  font-size: 36px;
1965  color: white;
1966  position: relative;
1967  top: 0px;
1968  left: 10px;
1969} </style>            <div class="myModal modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="mySmallMod
1969alLabel"
1970                 data-backdrop="static" data-keyboard="false">
1971                <div class="modal-dialog" role="document">
1972                    <div class="modal-content">
1973                        <div class="modal-body nohpad nobpad">
1974                            <button type="button" style="z-index:10;position:absolute;right:15px;" class="close hmargin"
1975                                    data-dismiss="modal">&times;
1976                            </button>
1977                                <style>
1978        .member-login-container:not(.modal .module) {
1979            width: 555px;
1980            max-width: 100%;
1981            margin-left: auto;
1982            margin-right: auto;
1983            margin-bottom:0;
1984            background-color: rgb(250, 250, 250)!important;
1985            border-color: rgb(238, 238, 238)!important;
1986            color: rgb(41, 41, 41)!important;
1987        }
1988        .login-register-tabs, .login-register-content {
1989            width: 555px!important;
1990            max-width: 100%;
1991            margin-left: auto!important;
1992            margin-right: auto!important;
1993            background-color: rgb(238, 238, 238);
1994        }
1995        .login-register-content {
1996            background: transparent;
1997            padding: 0;
1998            border: none;
1999        }
2000        .login-register-content h2, .login-register-content h2+hr, .login-register-content .account-menu-title {
2001            display: none!important;
2002        }
2003        .express_login_create_account_prefix hr {
2004            margin: 15px 0 10px;
2005        }
2006        .modal-content #containerFBLogin, .modal-content #containerGoogleLogin {
2007            margin:15px 0;
2008        }
2009
2010        /* CSS When Login Form and Express Registration Rendered in Sidebar */
2011        .col-md-3 .bd-chat-well-container,.col-md-4 .bd-chat-well-container {
2012            padding: 15px 10px;
2013        }
2014        .col-md-3 .bd-chat-center-text,.col-md-4 .bd-chat-center-text {
2015            margin: 0;
2016            font-size: 20px;
2017            padding: 0 15px;
2018        }
2019        .col-md-3 .member-login-page-container .login-register-tabs *, .col-md-4 .member-login-page-container .login-register-tabs * {
2020            font-size: 12px;
2021            line-height: 1.2em;
2022            vertical-align: bottom;
2023        }
2024        .col-md-3 .member-login-page-container .login-register-tabs a, .col-md-4 .member-login-page-container .login-register-tabs a {
2025            padding: 5px !important;
2026            height: 50px;
2027            vertical-align: middle;
2028            display: table-cell !important;
2029            width: 1%;
2030        }
2031        .col-md-3 .member-login-page-container .login-register-content, .col-md-4  .member-login-page-container .login-register-content {
2032            padding: 0;
2033        }
2034        .col-md-3 .member-login-container, .col-md-4 .member-login-container {
2035            padding: 15px !important;
2036            font-size: 13px;
2037        }
2038        .col-md-3 .member-login-page-container .input-lg, .col-md-4 .member-login-page-container .input-lg {
2039            height: 34px;
2040            padding: 6px 12px;
2041            font-size: 14px;
2042        }
2043        .col-md-3 .member-login-page-container .security_question_label, .col-md-4 .member-login-page-container .security_question_label {
2044            transform: scale(.85);
2045            margin: -1.15em -1.15em 0;
2046        }
2047        .col-md-3 #containerFBLogin, .col-md-4 #containerFBLogin, .col-md-3 #containerGoogleLogin, .col-md-4 #containerGoogleLogin, .col-md-3 .login-cta-buttons li, .col-md-4 .login-cta-buttons li {
2048            width: 100%;
2049            display: block;
2050            margin-top:5px;
2051        }
2052        .col-md-3 .login-cta-buttons li, .col-md-4 .login-cta-buttons li {
2053            padding:0
2054        }
2055        .col-md-3 .login-cta-buttons ul.nav, .col-md-4 .login-cta-buttons ul.nav {
2056            margin-top: -10px;
2057        }
2058        .col-md-3 #googleAction, .col-md-3 #facebookAction, .col-md-4 #googleAction, .col-md-4 #facebookAction {
2059            padding: 0;
2060            min-height: 0;
2061            font-size: 14px;
2062            margin: 0;
2063        }
2064        .col-md-3 #googleAction img, .col-md-3 #facebookAction img, .col-md-4 #googleAction img, .col-md-4 #facebookAction img {
2065            height: 36px !important;
2066            margin-right: 5px;
2067            position: relative!important;
2068            display: inline-block;
2069        }
2070        @media only screen and (max-width: 767px) {
2071            .col-md-3 .member-login-page-container .login-register-tabs a, .col-md-4 .member-login-page-container .login-register-tabs a {
2072                display: block !important;
2073                width: 100%;
2074                line-height: 40px;
2075            }
2076
2077            #containerGoogleLogin {
2078                text-align: center;
2079                margin-top: 10px;
2080            }
2081            #containerGoogleLogin #gBtn {
2082                display: inline-block;
2083            }
2084        }
2085    </style>
2086    <div class="row member-login-page-container">
2087        <div class="fpad-lg novpad">
2088
2089            
2090                                    <div class="module fpad-xl member-login-container">
2091                         <style type="text/css">label span.required { color: #B94A48; }span.help-inline, span.help-block {font-size: .9em; }</style><form action="/api/widget/json/get/Bootstrap%20Theme%20-%20Member%20Login%20Page" id="member_login_190-1" method="post" labelwidth="100" labelpaddingtop="0.5em" enctype="multipart/form-data" form_action_type="redirect" form_action_div return_data_type="" name="member_login_190-1" class=" ">
2091<input type="hidden" name="sized" value="0" id="member_login_190-1-element-0"/><input type="hidden" name="form" value="myform" id="member_login_190-1-element-1"/><input type="hidden" name="formname" value="member_login" id="member_login_190-1-element-2"/><input type="hidden" name="dowiz" value="1" id="member_login_190-1-element-3"/><input type="hidden" name="save" value="1" id="member_login_190-1-element-4"/><input type="hidden" name="url_origin_pars" value="/login" id="member_login_190-1-element-5"/><input type="hidden" name="action" autocomplete="off" value="login" id="member_login_190-1-element-6"/><h2 class="nomargin member-login-h2-form-title">Member Login</h2><hr><style type='text/css'> #containerGoogleLogin #gBtn {
2092    display: inline-block;
2093    text-align: center;
2094    width: 216px;
2095}
2096
2097.module #containerFBLogin #facebookAction img, .module #containerFBLogin #facebookAction img {
2098    position: absolute !important;
2099}
2100.module #containerFBLogin a#facebookAction {
2101    max-width: 200px;
2102    position: relative;
2103    left: -8px;
2104    
2105} </style>    <!-- Required Font-Family for Social Buttons -->
2106    <link rel="stylesheet" media="print" onload="this.onload=null;this.removeAttribute('media');" href="https://fonts.googleapis.com/css?family=Roboto:500&display=swap">
2107    <noscript>
2108        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:500&display=swap">
2109    </noscript>
2110
2111    <div class="row social-login-row">
2112    </div><div class="form-group"><label class="vertical-label bd-email" for="member_login_190-1-element-9"><span class="required">* </span>Email Address</label><input type="email" name="email" required placeholder="[email protected]" autocomplete="off" value class="form-control input-lg" id="member_login_190-1-element-9"/></div><div class="form-group"><label class="vertical-label bd-password" for="member_login_190-1-element-10"><span class="required">* </span>Password</label><button type="button" tabindex="-1" id="togglePassword" onclick="showPassword(this);"> <i class="fa fa-lock" aria-hidden="true"></i></button><input type="password" name="pass" required placeholder="Enter Password" autocomplete="off" value class="form-control input-lg" id="member_login_190-1-element-10"/></div><span class="help-block bpad bmargin notmargin"> <a href="/login/retrieval">Forgot Password? Click to Reset Password</a></span><div class="form-group"><div class="form-group security_question_label">
2113                <label for="captchaContainer">
2114            <span class="required">* </span>
2115            Answer Security Question
2116        </label>
2117        <div id="member_login_190-1-captchaContainer" class="control-group">
2118        <div class="g-recaptcha"  id="member_login_190-1-google-recaptcha"></div>
2119    </div>
2120    <small class="help-block" id="recaptcha_error" style="display:none;" data-fv-validator="notEmpty" data-fv-for="recaptcha" data-fv-result="INVALID" />The security check was not completed successfully.</small>
2121    <div class="clearfix bmargin"></div>
2122    <input type="hidden" name="recaptcha" id="member_login_190-1-rcap">
2123</div>
2124    <style>
2125        .modal .g-recaptcha-scale, .col-md-4 .g-recaptcha-scale, .col-md-3 .g-recaptcha-scale, .col-lg-3 .g-recaptcha-scale, .col-lg-4 .g-recaptcha-scale {
2126            transform: scale(0.77);
2127            -webkit-transform: scale(0.77);
2128            transform-origin: 0 0;
2129            -webkit-transform-origin: 0 0;
2130            margin-bottom: -15px;
2131        }
2132
2133        .modal #member_login_190-1-captchaContainer, .col-md-4 #member_login_190-1-captchaContainer, .col-md-3 #member_login_190-1-captchaContainer, .col-lg-3 #member_login_190-1-captchaContainer, .col-lg-4 #member_login_190-1-captchaContainer {
2134            transform: scale(0.77);
2135            -webkit-transform: scale(0.77);
2136            transform-origin: 0 0;
2137            -webkit-transform-origin: 0 0;
2138            margin-bottom: -15px;
2139        }
2140    </style>
2141    
2141<script type="text/javascript">
2142        if(typeof formsFound == "undefined"){
2143            var formID                  = '';
2144            var currentCaptcha          = {};
2145            var captchaHolders          = {};
2146            var formsFound              = {};
2147            var captchaApiRequested     = false;
2148            /* The forms the visitor has actually interacted with - only these get a widget. */
2149            var captchaArmedForms       = [];
2150            /* api.js stays lazy - nothing is fetched from Google until the visitor actually
2151               touches the form. 'click' alone was too narrow: a keyboard-only visitor tabs in
2152               and presses Enter without ever clicking, so api.js never loaded, the captcha
2153               never rendered, and the form POSTed an empty token. */
2154            var captchaTriggerEvents    = ['click', 'keydown', 'focusin', 'touchstart'];
2155
2156            window.addEventListener('load', () => {
2157                formID = document.querySelectorAll('[name="recaptcha"]');
2158                if (typeof formID != "undefined" && formID !== null) {
2159                    for (let i = 0; i < formID.length; i++) {
2160                        let formIDForm      = formID[i].closest('form');
2161                        let captchaHolder   = formIDForm.querySelector(".g-recaptcha");
2162
2163                        if (typeof formsFound[formIDForm.id] != "undefined") {
2164                            formsFound[formIDForm.id]['counter']++;
2165                        }else{
2166                            formsFound[formIDForm.id] = {'counter' : 1};
2167                        }
2168
2169                        formIDForm.setAttribute('data-counter', formsFound[formIDForm.id]['counter']);
2170                        captchaHolder.setAttribute('id',captchaHolder.id+'-'+formsFound[formIDForm.id]['counter']);
2171
2172                        if (typeof formIDForm != "undefined" && formIDForm !== null) {
2173                            captchaTriggerEvents.forEach( evt =>
2174                                formIDForm.addEventListener(evt, reCaptchaOnFormInteraction, false)
2175                            );
2176                        }
2177                    }
2178                }
2179            });
2180        }
2181
2182        function reCaptchaOnFormInteraction(event) {
2183            if (event && event.currentTarget) {
2184                captchaArmForm(event.currentTarget);
2185            }
2186            if (captchaApiRequested) {
2187                renderArmedCaptchas();
2188                return;
2189            }
2190            captchaApiRequested = true;
2191
2192            var head    = document.getElementsByTagName('head')[0];
2193            var script  = document.createElement('script');
2194            script.type = 'text/javascript';
2195            script.src  = 'https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit&hl=en';
2196            head.appendChild(script);
2197        }
2198
2199        var captchaArmForm = function (formEl) {
2200            if (!formEl) {
2201                return;
2202            }
2203            for (var a = 0; a < captchaArmedForms.length; a++) {
2204                if (captchaArmedForms[a] === formEl) {
2205                    return;
2206                }
2207            }
2208            captchaArmedForms.push(formEl);
2209        };
2210
2211        var captchaSolvedCallback = function (holder) {
2212            return function () {
2213                var formEl = holder.closest('form');
2214                if (!formEl) {
2215                    return;
2216                }
2217                $(formEl).find('.security_question_label').removeClass('has-error');
2218                $(formEl).find('#recaptcha_error').css('display', 'none');
2219                var notification = document.getElementById(formEl.id + '-notification');
2220                if (notification && notification.classList.contains('alert-danger-subtle')) {
2221                    $(notification).slideUp();
2222                }
2223            };
2224        };
2225
2226        var renderArmedCaptchas = function () {
2227            if (typeof grecaptcha === "undefined" || typeof grecaptcha.render !== "function") {
2228                return;
2229            }
2230            for (var f = 0; f < captchaArmedForms.length; f++) {
2231                var holder = captchaArmedForms[f].querySelector('div[class=g-rec
2231aptcha]');
2232
2233                if (!holder || !holder.id || holder.getClientRects().length === 0) {
2234                    continue;
2235                }
2236                /* Guard a second render: grecaptcha throws on an element it already claimed. */
2237                if (typeof captchaHolders[holder.id] === "undefined") {
2238                    captchaHolders[holder.id] = grecaptcha.render(holder.id, {
2239                        'sitekey': '6LcQeq0UAAAAAFFJQUOxmpmtSN5vJaqfgNlY101p',
2240                        'callback': captchaSolvedCallback(holder)
2241                    });
2242                }
2243            }
2244        };
2245
2246        var onloadCallback = function (event) {
2247            renderArmedCaptchas();
2248        };
2249
2250    </script>
vendor: 1 bytes, line 2250
2250
2251<script>
2252    $(document).ready(function(){
2253        /* Implicit submission (Enter inside a field) fires 'submit' without firing a click on
2254           the submit button, so the click guard below never sees it and the form POSTed an
2255           empty token. Bound on document/capture so it runs before FormValidation's own
2256           handler on the form - at AT_TARGET the capture flag does not order listeners, so a
2257           listener on the form itself would not reliably win. Native HTMLFormElement.submit()
2258           does not dispatch 'submit', so the solved-captcha path below is unaffected. */
2259        var captchaGuardedForm = document.getElementById('member_login_190-1');
2260        if (captchaGuardedForm) {
2261            document.addEventListener('submit', function (event) {
2262                if (event.target !== captchaGuardedForm) {
2263                    return;
2264                }
2265
2266                var formId              = captchaGuardedForm.id;
2267                var captchaHolderKey    = formId + "-google-recaptcha-" + $(captchaGuardedForm).data('counter');
2268                var captchaRendered     = typeof captchaHolders[captchaHolderKey] != "undefined";
2269
2270                if (captchaRendered && grecaptcha.getResponse(captchaHolders[captchaHolderKey]) !== "") {
2271                    $("#" + formId + " .security_question_label").removeClass("has-error");
2272                    $("#" + formId + " #recaptcha_error").css("display", "none");
2273                    return;
2274                }
2275
2276                /* Unsolved, or api.js still in flight: either way there is no token to send. */
2277                event.preventDefault();
2278                event.stopImmediatePropagation();
2279                $("#" + formId + " .security_question_label").addClass("has-error");
2280                $("#" + formId + " #recaptcha_error").css("display", "block");
2281                return false;
2282            }, true);
2283        }
2284        $("#member_login_190-1 input[type=submit]").unbind('click');
2285        $("#member_login_190-1 input[type=submit]").click(function (event) {
2286
2287            var formId = $(this.form).attr('id');
2288            var captchaHolderKey = formId + "-google-recaptcha-" +$(this.form).data('counter');
2289
2290            if (typeof captchaHolders[captchaHolderKey] != "undefined") {
2291                if (grecaptcha.getResponse(captchaHolders[captchaHolderKey]) === "") {
2292                    event.preventDefault();
2293                    $("#" + formId).formValidation('validate');
2294                    $("#" + formId + " .security_question_label").addClass("has-error");
2295                    $("#" + formId + " #recaptcha_error").css("display", "block");
2296                    return false;
2297                }
2298
2299                /* Solved captcha: clear the error UI and let the click proceed untouched.
2300                   The browser then fires a REAL, button-initiated submit event, so
2301                   FormValidation runs its normal chain (success.form.fv -> AJAX modal on
2302                   checkout / native POST on login). Re-submitting here artificially broke
2303                   both ways: native form.submit() skips the FV chain (checkout rendered the
2304                   raw JSON response), and jQuery .submit() fires a synthetic submit that FV
2305                   refuses, leaving the form stuck after the first error (Bug 2). */
2306                $("#" + formId + " .security_question_label").removeClass("has-error");
2307                $("#" + formId + " #recaptcha_error").css("display", "none");
2308            }
2309        });
2310    });
2311</script>
2311</div><div class="form-actions"><input type="submit" value="Login Now" name class="btn btn-primary btn-lg btn-block " id="member_login_190-1-element-13"/></div><div class="login-cta-buttons"><hr class="cta-hr"><ul class="list-inline nomargin inline-block btn-block"><li class='col-md-6 nolpad sm-nopad nav'><a href='/checkout/5' id='link228'  class='btn btn-danger btn-block sm-bmargin'>Not a Registered User? <span class="inline-block">Create Free User Account</span></a></li><li class='col-md-6 norpad sm-nopad nav'><a href='/join' id='link229'  class='btn btn-success btn-block'>Are You a Local Business? <span class="inline-block">List Your Company Now</span></a></li></ul><div class="clearfix"></div></div></form>
2311<script type="text/javascript">jQuery(document).ready(function() {		jQuery("#member_login_190-1").bind("submit", function() { 
2312		});}); </script>
2312                         <div class="clearfix"></div>
2313                    </div>
2314                
2315            
2316        </div>
2317    </div>
2318                        </div>
2319                    </div>
2320                </div>
2321            </div>
2322            
2323
2324
2325    <link rel="stylesheet" type="text/css" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/limonte-sweetalert2/6.11.2/sweetalert2.min.css">
2326<script src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/limonte-sweetalert2/6.11.2/sweetalert2.min.js"></script>
2326
2327
2328<script>
2329    function clearContent(thisObj){
2330        var size;
2331        if(thisObj.hasClass('input-sm') || thisObj.parents('.input-group').hasClass('input-group-sm')){
2332            size = "small";
2333        } else if (thisObj.hasClass('input-lg') || thisObj.parents('.input-group').hasClass('large-autosuggest')){
2334            size = "large";
2335        } else {
2336            size = "medium";
2337        }
2338        if(!thisObj.parent().hasClass('input_wrapper')){
2339            if(thisObj.parent().hasClass('input-group-sm')){
2340                thisObj.wrap('<span class="input-group-sm input_wrapper"></span>');
2341            } else if (thisObj.parent().hasClass('input-group-lg')){
2342                thisObj.wrap('<span class="input-group-lg input_wrapper"></span>');
2343            } else {
2344                thisObj.wrap('<span class="input_wrapper"></span>');
2345            }
2346        }
2347        if(thisObj.val() != ""){
2348            if(thisObj.hasClass('googleSuggest')){
2349                thisObj.parent().find('.fill_location').remove();
2350            }
2351            if (!thisObj.parent().find('.clear_content').length){
2352                thisObj.parent().append(`<span class="clear_content ${size}"><i class="fa fa-times-circle" aria-hidden="true"></i></span>`);
2353                if (thisObj.hasClass("tt-input")) {
2354            		thisObj.focus();
2355        		}
2356
2357            }
2358        }
2359            }
2360
2361    $(document).on('click', '.drp-buttons .applyBtn', function(){
2362        clearContent($(".dateRange input"));
2363    });
2364
2365    $('.sm-autosuggest input, .googleSuggest, .large-autosuggest input, .md-autosuggest input, .normal-autosuggest input, .google-writen-location, .dateRange input').keyup(function(){
2366        clearContent($(this));
2367    });
2368
2369    $(document).ready(function(){
2370        $('.sm-autosuggest input, input.googleSuggest, .large-autosuggest input, .md-autosuggest input, .normal-autosuggest input, .google-writen-location, .dateRange input').each(function(){
2371            clearContent($(this));
2372        })
2373    })
2374
2375    $(document).on('click', '.clear_content', function(){
2376        $(this).parent().find('input').val('');
2377        //tt-input its a class for typeahead auto-suggest
2378        if ($(this).parent().find('input').hasClass("tt-input")) {
2379            $(this).parent().find('input').typeahead('val','');
2380        }
2381        clearContent($(this).parent().find('input'));
2382        $(this).remove();
2383    });
2384
2385	$(window).on('load', function () {
2386		setTimeout(function() {
2387			// add missing href attribute to multi-category options in search modules
2388			$('.bootstrap-select.show-tick .dropdown-menu a').attr('href', '#');
2389		}, 2000);
2390        	});
2391</script>
2391
2392
2393
2394
2395<a href="#" class="scrollup" title="scrollup">
2396    <i class="fa fa-caret-up" aria-hidden="true"></i>
2397</a>
2398<script>
2399        $(document).ready(function () {
2400
2401        if ($('.navbar-default').length > 0) {
2402            var menu = $('.navbar-default');
2403            var origOffsetY = menu.offset().top;
2404
2405            function scroll() {
2406
2407                if ($(window).scrollTop() > origOffsetY) {
2408                    $('.navbar-default').addClass('navbar-fixed-top');
2409                    $('.navbar-default').addClass('transparent_menu');
2410
2411                } else {
2412                    $('.navbar-default').removeClass('navbar-fixed-top');
2413                    $('.navbar-default').removeClass('transparent_menu');
2414                }
2415            }
2416            document.onscroll = scroll;
2417        };
2418    });
2419        $(document).ready(function(){
2420        // .progressbar() comes from bootstrap-progressbar.min.js, loaded only by widgets 1236/1318.
2421        // Elsewhere it used to fall through to jQuery UI's; jQuery UI is no longer global, so an
2422        // unguarded call throws and kills the rest of this ready() handler (scrollup, crop button).
2423        if ($.fn.progressbar) {
2424            $('.progress .progress-bar').progressbar({
2425                display_text: 'fill'
2426            });
2427        }
2428        $(window).scroll(function(){
2429
2430            if ($(this).scrollTop() > 600) {
2431                $('.scrollup').fadeIn();
2432
2433            } else {
2434                $('.scrollup').fadeOut();
2435            }
2436        });
2437        $('.scrollup').click(function(){
2438            $("html, body").animate({
2439                scrollTop: 0
2440            }, 600);
2441            return false;
2442        });
2443        $('#cropButton').click(function(){
2444            var iframe = $("#cropiFrame");
2445            iframe.attr("src", iframe.data("src"));
2446        });
2447    });
2448</script>
vendor: 2 bytes, line 2448
2448
2449<script type="text/javascript">
2450(function () {
2451    try {
2452        var email = new URLSearchParams(window.location.search).get('email');
2453        if (!email) { return; }
2454        email = email.trim();
2455        if (email.indexOf('@') === -1) { return; }
2456        /* Sets the input value property (never HTML) -> XSS-safe regardless of the query value. */
2457        var fill = function () {
2458            var fields = document.querySelectorAll('input[name="email_r"]');
2459            for (var i = 0; i < fields.length; i++) {
2460                if (!fields[i].value) { fields[i].value = email; }
2461            }
2462        };
2463        if (document.readyState === 'loading') {
2464            document.addEventListener('DOMContentLoaded', fill);
2465        } else {
2466            fill();
2467        }
2468    } catch (e) {}
2469})();
2470</script>
vendor: 2 bytes, line 2470
2470
2471<script>
2472    $('#captchaContainer').removeClass('form-control ');
2473    $(".website_url_field").keyup(function(){
2474        var fieldName = $(this).attr('name');
2475        $(this).val($(this).val().replace(/\s+/g, ''));
2476        $('#myform').formValidation('revalidateField', fieldName);
2477    });
2478</script>
2478
2479                
2479<script src="https://www.optimizecdn.com/directory/cdn/bootstrap/formvalidation/current/dist/js/formValidation.min.js"></script>
2479
2480                
2480<script src="https://www.optimizecdn.com/directory/cdn/bootstrap/formvalidation/current/dist/js/framework/bootstrap.min.js"></script>
2480
2481                
2481<script type="text/javascript">
2482                    function decodeHtml(html) {
2483                        var txt = document.createElement("textarea");
2484                        txt.innerHTML = html;
2485                        return txt.value;
2486                    }
2487                    
2488                    // Override FormValidation URI validator to prevent recursion with URLs that contain @ characters
2489                    $(function() {
2490                        function applyFix() {
2491                            // Check if FormValidation library and URI validator are loaded
2492                            if (FormValidation && FormValidation.Validator && FormValidation.Validator.uri) {
2493                                FormValidation.Validator.uri.validate = function(validator, $field, options) {
2494                                    var value = validator.getFieldValue($field, 'uri').trim();
2495                                    return value === '' || new RegExp('^https?://[^\\s]+\\.[^\\s]{2,}').test(value);
2496                                };
2497                                return true;
2498                            }
2499                            return false;
2500                        }
2501                        
2502                        if (!applyFix()) {
2503                            setTimeout(applyFix, 50);
2504                        }
2505                    });
2506                </script>
2506
2507                        
2507<script type="text/javascript">
2508
2509        var counterSubmit = 0;
2510        $(document).ready(function() {
2511            /* grecaptcha.reset() with no argument always resets widget 0. On a page with two
2512               captcha holders that clears the wrong checkbox, so the widget the visitor solved
2513               keeps a token Google has already spent and every retry fails the security check.
2514               captchaHolders is published by widget 1995 keyed by "<formId>-google-recaptcha";
2515               an undefined id means no per-form id is known and the arg-less call is used,
2516               exactly as before. */
2517            function bdCaptchaWidgetId(formId) {
2518                if (typeof captchaHolders === "undefined" || !formId) {
2519                    return undefined;
2520                }
2521                /* recaptcha.php renames each holder to "<id>-<counter>" before render (recaptcha.php ~L84),
2522                   so captchaHolders is keyed by the RENAMED id - not "<formId>-google-recaptcha". Resolve from
2523                   the holder element itself so the counter never has to be reconstructed. */
2524                var form = document.getElementById(formId);
2525                var holder = form && form.querySelector(".g-recaptcha");
2526                return holder ? captchaHolders[holder.id] : undefined;
2527            }
2528
2529            function bdCaptchaReset(formId) {
2530                if (typeof grecaptcha === "undefined" || typeof grecaptcha.reset !== "function") {
2531                    return;
2532                }
2533                var widgetId = bdCaptchaWidgetId(formId);
2534                if (widgetId === undefined) {
2535                    grecaptcha.reset();
2536                } else {
2537                    grecaptcha.reset(widgetId);
2538                }
2539            }
2540
2541            // Ghost-field strip (card d4tk1CMp): the server-side validator config can carry
2542            // rules for fields that are NOT rendered in this form (conditionally-rendered or
2543            // duplicated form configs). Those phantom rules make formValidation mis-evaluate
2544            // isValid(), so an empty required field bypasses validation and submits natively.
2545            // Remove any rule whose field has no matching element before initializing.
2546            // NOTE: this is the ONLY layer re-applied from reverted PR #5902. It strictly
2547            // REMOVES rules (never adds validators, never overrides native submit, never
2548            // intercepts on capture phase, never re-validates on click) — so it cannot
2549            // reproduce the "Save button slides down / nav broken / no success message"
2550            // regression that caused #5902 to be rolled back on site 19413.
2551            var validatorConfig = {"framework":"bootstrap","addOns":{"reCaptcha2":{"element":"captchaContainer","language":"en","theme":"light","siteKey":"6LcQeq0UAAAAAFFJQUOxmpmtSN5vJaqfgNlY101p","timeout":"120","message":"The captcha is not valid"}},"fields":{"email":{"validators":{"notEmpty":{"message":"Please enter a value"},"emailAddress":{"message":"Please enter a valid email address"}}},"pass":{"validators":{"notEmpty":{"message":"Please enter a value"}}}}};
2552            var formElement = $(`form[name='member_login_190']`);
2553            if(validatorConfig && validatorConfig.fields) {
2554                Object.keys(validatorConfig.fields).forEach(function(fieldName) {
2555                    if(formElement.find('[name="' + fieldName + '"]').length === 0) {
2556                        delete validatorConfig.fields[fieldName];
2557                    }
2558                });
2559            }
2560
2561            // Scroll to the first invalid field when submit fails validation,
2562            // so the user can immediately see why the form will not submit
2563            formElement.on('err.form.fv', function(e) {
2564                var $firstError = $(e.target).find('.form-group.has-error').first();
2565                if ($firstError.length) {
2566                    $('html, body').animate({ scrollTop: $firstError.offset().top - 100 }, 700);
2567                }
2568            });
2569
2570            formElement.formValidation(validatorConfig).on('success.form.fv', function(e,fvdata) {
2571
2572                if('member_login' == 'unsubscribe_email'){
2573                    return true;
2574                }
2575                // Prevent form submission
2576                e.preventDefault();
2577                $form = $(e.target),
2578                fv = $form.data('formValidation');
2579
2580                // Check HTML5 required fields that FormValidation may not know about
2581                var requiredEmpty = false;
2582                $form.find('[required]').each(function() {
2583                    var val = $(this).val();
2584                    if (val === '' || val === null || (typeof val === 'string' && val.trim() === '')) {
2585                        requiredEmpty = true;
2586                        $(this).closest('.form-group').addClass('has-error');
2587                        if ($(this).siblings('.required-error').length === 0) {
2588                            $(this).after('<small class="required-error help-block" style="color:#a94442;">Please enter a value</small>');
2589                        }
2590                    } else {
2591                        var $reqGroup = $(this).closest('.form-group');
2592                        $(this).siblings('.required-error').remove();
2593                        // Keep has-error if another validator is still failing for this field
2594                        if ($reqGroup.find('small[data-fv-validator][data-fv-result="INVALID"]').length === 0) {
2595                            $reqGroup.removeClass('has-error');
2596                        }
2597                    }
2598                });
2599                if (requiredEmpty) {
2600                    fv.disableSubmitButtons(false);
2601                    counterSubmit = 0;
2602                    // Scroll to the first field with an error (HTML5-required scan does
2603                    // not trigger err.form.fv, so handle the scroll here too)
2604                    var $firstReqError = $form.find('.form-group.has-error').first();
2605                    if ($firstReqError.length) {
2606                        $('html, body').animate({ scrollTop: $firstReqError.offset().top - 100 }, 700);
2607                    }
2608                    return false;
2609                }
2610
2611                var values = $(this).serialize();
2612
2613                
2614                var locationFieldCorrect = true;
2615
2616                if($("#member_login_190 .location_required").length > 0){
2617                    $("#member_login_190 .location_required").each(function (index) {
2618                        if($(this).data('state') == 1){
2619                            if($('#member_login_190 input[name="lead_location"]').val() == "" || $('#member_login_190 input[name="lat"]').val() == "" || $('#member_login_190 input[name="lng"]').val() == "") {
2620                                locationFieldCorrect = false;
2621                            }
2622                        }
2623                    });
2624                }
2625
2626                if(locationFieldCorrect === false){
2627                    //check that there is a latitude or longitude
2628                    swal(`Whoops!`, `The location information is required to submit this form`, "error");
2629                    return false;
2630                }
2631                        
2632
2633                if (!$(this).attr("action")) {
2634                    var action = '';
2635
2636                } else {
2637                    var action = $(this).attr("action");
2638                }
2639                if (!$(this).attr("method")) {
2640                    var method = 'post';
2641
2642                } else {
2643                    var method = $(this).attr("method");
2644                }
2645                if (!$(this).attr("form_action_type")) {
2646                    var form_action_type = 'notification';
2647
2648                } else {
2649                    var form_action_type = $(this).attr("form_action_type");
2650                }
2651                if (!$(this).attr("form_action_div")) {
2652                    /* Empty "ID to Replace" default: prefer #main-content, fall back to legacy #first_container if absent */
2653                    var form_action_div = $('#main-content').length ? '#main-content' : '#first_container';
2654
2655                } else {
2656                    var form_action_div = $(this).attr("form_action_div");
2657                }
2658                if (!$(this).attr("return_data_type")) {
2659                    var return_data_type = 'json';
2660
2661                } else {
2662                    var return_data_type = $(this).attr("return_data_type");
2663                }
2664                var submitInFlight = counterSubmit != 0 || (Date.now() - ($form.data('bdLastSubmitAt') || 0) < 5000);
2665                if (!submitInFlight) {
2666                    if ($("#member_login_190-notification").html() != "") {
2667                        $("#member_login_190-notification").remove();
2668                    }
2669                    if ($(this).find('input[type="submit"]').length > 0) {
2670                        $(this).find('input[type="submit"]').before('<div id="member_login_190-notification" class="alert"></div>');
2671
2672                    } else {
2673                        $(this).prepend('<div id="member_login_190-notification" class="alert"></div>');
2674                    }
2675                }
2676                var notification = $("#member_login_190-notification");
2677
2678                if ((form_action_type == "" || form_action_type == "default") && action.indexOf("account") >= 0) {
2679                    notification.html(`Processing Request...`).addClass("alert-warning-subtle");
2680                    setTimeout(function(){
2681                        fv.defaultSubmit();
2682                    }, 100);
2683                } else {
2684                    notification.html(`Processing Request...`).addClass("alert-warning-subtle");
2685                    if(!submitInFlight) {
2686                        counterSubmit++;
2687                        $form.data('bdLastSubmitAt', Date.now());
2688
2689                        var fields      = $(this).serializeArray();
2690                        var formField   = [];
2691                        var processData = true;
2692                        var contentType = "application/x-www-form-urlencoded; charset=UTF-8";
2693                        
2694                        
2695
2696                        if($("#member_login_190 input[type=file]").length > 0){
2697                            
2698                            var formObject  = new FormData();
2699                            processData     = false;
2700                            contentType     = false;
2701
2702                            $(fields).each(function(index,field){
2703                                formField.push(field.name+"="+field.value);
2704                            });
2705
2706                            values  = formField.join("&");
2707
2708                            $(formField).each(function(index,fieldValue){
2709                                var fieldInfo = fieldValue.split('=');
2710                                formObject.append(fieldInfo[0],fieldInfo[1]);
2711                            });
2712
2713                            $("#member_login_190 input[type=file]").each(function(index,node){
2714                                var file = this.files[0];
2715                                if(typeof file != "undefined"){
2716                                    formObject.append("file_addon["+$(node).attr('name')+"]", file, file.name);
2717                                }
2718                            });
2719                        }else{
2720                            
2721                            $(fields).each(function(index,field){
2722                                formField.push(field.name+"="+encodeURIComponent(field.value));
2723                            });
2724
2725                            var formObject  = formField.join("&");
2726                        } 
2727                        
2728                        $.ajax({
2729                            url: action,
2730                            type: method,
2731                            data: formObject,
2732                            dataType: return_data_type,
2733                            processData: processData,
2734                            contentType: contentType,
2735                            success: function (data) {
2736                                // Re-query live node: success.form.fv fires twice, orphaning the closure ref captured above.
2737                                notification = $("#member_login_190-notification");
2738                                if (return_data_type == "html") {
2739                                    var result = 'success';
2740
2741                                    if (!data != "") {
2742                                        var result_widget = data['result_widget'];
2743                                    }
2744
2745                                } else {
2746
2747
2748                                    if (!data['result']) {
2749                                        var result = 'error';
2750                                    } else {
2751                                        var result = data['result'];
2752                                    }
2753                                    if (!data['result_widget']) {
2754                                        var result_widget = '';
2755
2756                                    } else {
2757                                        var result_widget = data['result_widget'];
2758                                    }
2759                                }
2760                                if (result == "success") {
2761
2762                                    if (!data['message']) {
2763                                        var message = `Your information has submitted successfully!`;
2764
2765                                    } else {
2766                                        var message = data['message'];
2767                                    }
2768                                    if (!data['redirect_url']) {
2769                                        var redirect_url = '';
2770
2771                                    } else {
2772                                        var redirect_url = data['redirect_url'];
2773                                    }
2774
2775
2776
2777                                    if (form_action_type == "notification") {
2778                                        if (redirect_url && (action.indexOf('Member%20Login%20Page') >= 0 || action.indexOf('Member Login Page') >= 0)) {
2779                                            if (redirect_url.substring(0, 1) != "/" && redirect_url.substring(0, 1) != "h") {
2780                                                redirect_url = "/" + redirect_url;
2781                                            }
2782                                            if (notification.parents('.modal').length) {
2783                                                $('.modal-backdrop').hide();
2784                                                $('.modal').modal('hide');
2785                                            }
2786                                            window.location.href = redirect_url;
2787                                            fv.resetForm(true);
2788                                        } else {
2789                                        notification.html(message + '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>')
2790                                            .addClass('alert-dismissible')
2791                                            .addClass("alert-success-subtle")
2792                                            .removeClass("alert-danger-subtle")
2793                                            .removeClass("alert-warning-subtle")
2794                                        
2795                                            
2796
2797                                        if(notification.parents('.modal').length && 'member_login_190' == 'whmcs_billing_address'){
2798                                            setTimeout(function(){
2799                                                notification.parents('.modal').modal('hide');
2800                                            }, 1000);
2801                                        }
2802                                        }
2803
2804                                    } else if (form_action_type == "widget") {
2805
2806                                        if (result_widget != '') {
2807
2808                                            setTimeout(function(){
2809                                                if(form_action_div != '.newsletter_modal_form_container'){
2810                                                    $("html, body").animate({ scrollTop: 0 }, 600);
2811                                                }                                                
2812                                                $(form_action_div).html(decodeHtml(result_widget)).text();
2813
2814                                            }, 1000);
2815                                        }
2816
2817                                    } else if (form_action_type == "redirect") {
2818
2819                                        if (redirect_url == "") {
2820                                            redirect_url = decodeURIComponent("");
2821                                        }
2822
2823                                        if (redirect_url.substring(0, 1) != "/" && redirect_url.substring(0, 1) != "h") {
2824                                            redirect_url = "/" + redirect_url;
2825                                        }
2826                                        current_location = "/login";
2827                                        refresh_pages_string = "/login";
2828                                        refresh_pages_string = refresh_pages_string.replace(/ /g,'');
2829                                        refresh_pages_array = refresh_pages_string.split(',');
2830                                        notification.html(message)
2831                                            .addClass("alert-success-subtle")
2832                                            .removeClass("alert-danger-subtle")
2833                                            .removeClass("alert-warning-subtle")
2834                                            .delay(2000).slideUp();
2835                                            if(action == "/api/widget/json/get/Bootstrap%20Theme%20-%20Member%20Login%20Page" && current_location.indexOf("/login") == -1 && refresh_pages_string != '' && (!refresh_pages_array.includes(current_location) || refresh_pages_string == "/login" )){
2836                                                                                                    window.location.href = window.location.href+'?logged';
2837                                                                                            } else {
2838                                                window.location.href = redirect_url;
2839                                            }
2840
2841                                        fv.resetForm(true);
2842                                    }
2843                                    if(form_action_div != '.newsletter_modal_form_container' && 'member_login_190' != 'whmcs_billing_address'){
2844                                        $('.modal-backdrop').hide();
2845                                    }
2846                                } else {
2847                                    bdCaptchaReset(formElement.attr('id'));
2848                                    if (!data['message']) {
2849                                        var message = `You entered invali
2849d data. Please try to save again.`;
2850
2851                                    } else {
2852                                        var message = data['message'];
2853                                    }
2854                                    $("#member_login_190-notification").html(message)
2855                                        .addClass("alert-danger-subtle")
2856                                        .removeClass("alert-success-subtle")
2857                                        .removeClass("alert-warning-subtle")
2858                                        .fadeIn();
2859                                    fv.disableSubmitButtons(false);
2860                                }
2861                                counterSubmit = 0;
2862                            },
2863                            error: function (e) {
2864                                
2865                                if(typeof grecaptcha !== "undefined" && typeof grecaptcha.reset === "function"){
2866                                        bdCaptchaReset(formElement.attr('id'));
2867                                        $("#member_login_190-notification").html(`Recaptcha Error`);
2868                                } else {
2869                                    $("#member_login_190-notification").html(`A connection error occurred while saving. Please try to save again.`);
2870                                }
2871                                $("#member_login_190-notification").addClass("alert-warning-subtle")
2872                                    .removeClass("alert-success-subtle")
2873                                    .removeClass("alert-warning-subtle")
2874                                    .fadeIn();
2875                                counterSubmit = 0;
2876                            }
2877                        });/// End Ajax
2878                    }
2879                }//END else
2880            }).bind('keydown', function(event) {
2881
2882                if (event.ctrlKey || event.metaKey) {
2883
2884                    switch (String.fromCharCode(event.which).toLowerCase()) {
2885
2886                        case 's':
2887                            var nativeForm = $(this)[0];
2888                            if (nativeForm && typeof nativeForm.reportValidity === 'function' && !nativeForm.reportValidity()) {
2889                                event.preventDefault();
2890                                return false;
2891                            }
2892                            $(this).submit();
2893                            break;
2894                    }
2895                }
2896            });
2897
2898            /// This will turn any select2 that are required in the form builder to being required elements.
2899            $('#member_login_190 select').each(function (i, obj) {
2900                setTimeout(function(){
2901                    if ($(obj).prop("required") && $(obj).attr("style") == "display: none;") {
2902                        $(obj).css("z-index","-999");
2903                        $(obj).css("height","0");
2904                        $(obj).css("width","0");
2905                        $(obj).css("display","block");  
2906                        $(obj).css("position","absolute");  
2907                    }
2908                }, 3000);
2909            });
2910
2911            // Clear required-error messages when user fills in a required field
2912            $('#member_login_190').on('keyup change', '[required]', function() {
2913                var val = $(this).val();
2914                if (val !== '' && val !== null && val.trim() !== '') {
2915                    var $group = $(this).closest('.form-group');
2916                    // Remove only this handler's own required message
2917                    $(this).siblings('.required-error').remove();
2918                    // Keep has-error if another FormValidation validator is still failing
2919                    // (e.g. stringLength, regexp). has-error is shared, so removing it
2920                    // wholesale would clobber other validators' red styling.
2921                    if ($group.find('small[data-fv-validator][data-fv-result="INVALID"]').length === 0) {
2922                        $group.removeClass('has-error');
2923                    }
2924                }
2925            });
2926
2927        });//END $('# echo $_SERVER[form_element_id]; ').formValidation(
2928    </script>
2928
2929        
2930        
2930<script type="text/javascript">
2931    /* CT dissolved its county governments in 1960, so Google returns its 8 counties as
2932       colloquial_area instead of administrative_area_level_2 — they must never reach a
2933       city field. Google translates the component name to the site language, so the
2934       language-stable place_id is checked first and the word list only backs it up. */
2935    if (typeof window.bdIsColloquialCounty !== 'function') {
2936        window.bdIsColloquialCounty = function (componentName, resultPlaceId) {
2937            var countyPlaceIds = [
2938                'ChIJWRM2Nakw5okRoTCxHvz_5xw', /* Middlesex County, CT */
2939                'ChIJmeTbuDYH6IkR3xgeNvszpgg', /* Fairfield County, CT */
2940                'ChIJiT24cvvP54kR2fSPHkp0Akc', /* New Haven County, CT */
2941                'ChIJvYe7N7eQ54kRL6nZaXRwPkI', /* Litchfield County, CT */
2942                'ChIJtxC3p6qs54kRIvK-2bctar0', /* Hartford County, CT */
2943                'ChIJj-lvZQli5okRGCuGRd6xKt0', /* Tolland County, CT */
2944                'ChIJRWKqeLdi5okRLXWDlSEGeTY', /* Windham County, CT */
2945                'ChIJwTIQbvVv5okRU5_gSJczUTQ'  /* New London County, CT */
2946            ];
2947
2948            if (typeof resultPlaceId === 'string' && resultPlaceId !== ''
2949                && countyPlaceIds.indexOf(resultPlaceId) !== -1) {
2950                return true;
2951            }
2952
2953            if (typeof componentName !== 'string' || componentName === '') {
2954                return false;
2955            }
2956
2957            var name = componentName.toLowerCase();
2958
2959            /* Only unambiguous county words — generic ones (region, district) would strip
2960               legitimate colloquial areas, and their languages already match on place_id.
2961               Word-boundary matched so names like "Countyline, OK" are left alone. */
2962            var wordTokens = ['county', 'condado', 'comté', 'contea',
2963                              'comitatul', 'hrabstwo', 'megye', 'konderria'];
2964            var isAlnum = function (ch) {
2965                return (ch >= 'a' && ch <= 'z') || (ch >= '0' && ch <= '9');
2966            };
2967
2968            for (var t = 0; t < wordTokens.length; t++) {
2969                var token = wordTokens[t];
2970                var from = 0;
2971                while (true) {
2972                    var at = name.indexOf(token, from);
2973                    if (at === -1) {
2974                        break;
2975                    }
2976                    var before = (at > 0) ? name.charAt(at - 1) : ' ';
2977                    var after = ((at + token.length) < name.length) ? name.charAt(at + token.length) : ' ';
2978                    if (!isAlnum(before) && !isAlnum(after)) {
2979                        return true;
2980                    }
2981                    from = at + 1;
2982                }
2983            }
2984
2985            /* Non-latin scripts have no alphanumeric word boundary. */
2986            var scriptTokens = ['каунти', 'کاؤنٹی', 'काउंटी', '카운티'];
2987            for (var s = 0; s < scriptTokens.length; s++) {
2988                if (name.indexOf(scriptTokens[s]) !== -1) {
2989                    return true;
2990                }
2991            }
2992
2993            return false;
2994        };
2995    }
2996
2997            // Try to load coordinates from sessionStorage on page load
2998            var vlat        = 0;
2999            var vlon        = 0;
3000            try {
3001                var savedLat = sessionStorage.getItem('bd_geolocation_lat');
3002                var savedLon = sessionStorage.getItem('bd_geolocation_lon');
3003                if (savedLat && savedLon) {
3004                    vlat = parseFloat(savedLat);
3005                    vlon = parseFloat(savedLon);
3006                }
3007            } catch(e) {}
3008            var isSubmit    = false;
3009            var isGettingLocation = false; // Flag to prevent multiple simultaneous geolocation requests
3010            
3011            // Function to save coordinates to sessionStorage
3012            function saveCoordinatesToSession(lat, lon) {
3013                try {
3014                    sessionStorage.setItem('bd_geolocation_lat', lat.toString());
3015                    sessionStorage.setItem('bd_geolocation_lon', lon.toString());
3016                } catch(e) {}
3017            }
3018            
3019            // Function to get coordinates from sessionStorage if current ones are 0
3020            function getCoordinatesFromSession() {
3021                if (vlat === 0 && vlon === 0) {
3022                    try {
3023                        var savedLat = sessionStorage.getItem('bd_geolocation_lat');
3024                        var savedLon = sessionStorage.getItem('bd_geolocation_lon');
3025                        if (savedLat && savedLon) {
3026                            vlat = parseFloat(savedLat);
3027                            vlon = parseFloat(savedLon);
3028                            return true;
3029                        }
3030                    } catch(e) {}
3031                }
3032                return false;
3033            }
3034            var cityTypes       = [
3035                'colloquial_area',
3036                'locality',
3037                'sublocality',
3038                'sublocality_level_1',
3039                'sublocality_level_2',
3040                'sublocality_level_3',
3041                'sublocality_level_4',
3042                'sublocality_level_5',
3043                'neighborhood',
3044                'ward',
3045                'postal_town'
3046            ];
3047
3048            var postalTypes = [
3049                'postal_code',
3050                'postal_code_prefix',
3051                'postal_code_suffix',
3052                'street_number',
3053                'premise',
3054                'subpremise',
3055                'route',
3056                'intersection',
3057                'street_address',
3058                'floor',
3059                'room',
3060                'post_box',
3061                'delivery_address'
3062            ];
3063
3064            var isSubmitting = false;
3065            window.cachedSelectedOption = [{ 'typed_location': '' }];
3066            window.isSubmittingMainSearch = false;
3067
3068            document.addEventListener('DOMContentLoaded', () => {
3069                let isSubmitting = false; // Add flag at the top level
3070
3071                setTimeout(()=>{
3072                    let googleSuggestForm = document.querySelectorAll('.googleSuggest,.google-writen-location,input[name="lead_location"],.fill_location');
3073                    if (typeof googleSuggestForm != "undefined") {
3074                        for (let i = 0; i < googleSuggestForm.length; i++) {
3075                            let closestForm = googleSuggestForm[i].closest('form');
3076                            if(typeof closestForm != "undefined" && closestForm != null){
3077                                closestForm.addEventListener('focusin', googleMapOnFormClick, false);
3078
3079                            }else{
3080                                googleSuggestForm[i].addEventListener('input', googleMapOnFormClick, false);
3081                            }
3082                                googleSuggestForm[i].addEventListener('click', googleMapOnFormClick, false);
3083                            }
3084                        }
3085                },200);
3086
3087                $('.website-search button[type=submit]').click(async function (e) {
3088                    e.preventDefault(); // Prevent the default submit action
3089                    var nativeForm = $(this).closest('form')[0];
3090                    if (nativeForm && typeof nativeForm.reportValidity === 'function' && !nativeForm.reportValidity()) {
3091                        return false;
3092                    }
3093                    await googleMapOnFormClick();
3094                    $(this).closest('form').submit();
3095                });
3096            });
3097             window['gmapClick'] = false;
3098            function googleMapOnFormClick() {
3099                if(window.gmapClick){
3100                    return;
3101                }
3102                window.gmapClick = true;
3103                
3104                return new Promise((resolve, reject) => {
3105                    window.isSubmittingMainSearch = false;
3106                    let googleSuggestForm = document.querySelectorAll('.googleSuggest, .google-writen-location, input[name="lead_location"], .fill_location');
3107                    let mapUri = "https://maps.googleapis.com/maps/api/js?v=quarterly&libraries=places&region=US&callback=initializeG&language=en&key=AIzaSyACwMn9sDO2mBCLTP-wwvGmVJJ5MS1bYwM";
3108                    
3109                    if (typeof google !== "undefined" && google.hasOwnProperty('maps')) {
3110                        resolve('already loaded');
3111                        return;
3112                    }
3113
3114                    let loadMapScriptAsync = function (uri) {
3115                        return new Promise((resolve, reject) => {
3116                            let script = document.createElement('script');
3117                            script.type = 'text/javascript';
3118                            script.src = uri;
3119                            script.async = true;
3120                            script.onload = function () {
3121                                resolve("ok");
3122                            };
3123                            script.onerror = function () {
3124                                reject("Failed to load Google Maps script.");
3125                            };
3126                            document.head.appendChild(script);
3127                        });
3128                    };
3129
3130                        loadMapScriptAsync(mapUri)
3131                            .then(() => {
3132                                resolve();
3133                            })
3134                            .catch((error) => {
3135                                console.error(error);
3136                                reject();
3137                            });
3138                  
3139                });
3140            }
3141
3142            function initializeG() {
3143                var geocoder;
3144                //This piece of code will create an autosuggest for every input with the class "googleSuggest"
3145                var counter = 1;
3146                var inputsArray = [];
3147                window.cachedSelectedOption = [{ 'typed_location': '' }];
3148                let mapExists = document.querySelectorAll('[id^="map"]').length > 0;
3149                const functionsToInvoke = {
3150                    setJsMap: true,
3151                    setJsMapOverview: mapExists,
3152                    setJsMapSR: mapExists,
3153                    setJsMapSidebar: mapExists
3154                };
3155                if (window['maps_loaded'] !== true) {
3156                    for (let func in functionsToInvoke) {
3157                        if (typeof window[func] === 'function' && functionsToInvoke[func]) {
3158                            window['maps_loaded'] = true;
3159                            window[func]();
3160                        }
3161                    }
3162                }
3163                $(".googleSuggest").each(function () {
3164                    //get the id from the input to be the unique identifier for each autocomplete
3165                    var inputId = $(this).attr("id");
3166                    var inputElement = $(this);
3167                    inputsArray[counter] = /** @type {HTMLInputElement} */(
3168                        document.getElementById('' + inputId));
3169                    const mainCountry = '';
3170                    const inputOptions = {
3171                        fields: ['address_components', 'adr_address','formatted_address', 'geometry', 'icon', 'name','place_id','plus_code','type'],
3172                        types: ['geocode']
3173                    }
3174                    const language = "en";
3175
3176                    if (language) {
3177                        inputOptions.language = language;
3178                    }
3179                    if (mainCountry) {
3180                        inputOptions.componentRestrictions = {country: mainCountry};
3181                        inputOptions.region = mainCountry;
3182                    }
3183
3184                    var autocomplete = new google.maps.places.Autocomplete(inputsArray[counter], inputOptions);
3185                    google.maps.event.addListener(autocomplete, 'place_changed', function () {
3186                        const place = autocomplete.getPlace();
3187
3188                        cachedSelectedOption = [];
3189                        cachedSelectedOption.push(place);
3190
3191                        cachedSelectedOption[0]['typed_location'] = inputElement.val();
3192                       /* if(cachedSelectedOption[0]['adr_address']){
3193                            let cleanLocation = cachedSelectedOption[0]['adr_address'].replace(/<[^>]*>/g, '');
3194                            cachedSelectedOption[0]['typed_location'] = cleanLocation;
3195                            inputElement.val(cleanLocation);
3196                        }*/
3197                        if (cachedSelectedOption[0]['address_components'] == undefined) {
3198                            cachedSelectedOption = [];
3199                            var emptyObj = {
3200                                'typed_location': ''
3201                            };
3202                            cachedSelectedOption.push(emptyObj);
3203                        }
3204                    });
3205                    //the code that prevents the submition when hit enter on a google location autocomplete item
3206                    inputElement.keydown( function (e) {
3207                        if (e.keyCode == 13) {
3208                            var pacCounter = 0;
3209                            //need to run a loop to check each pac container
3210                            $('.pac-container').each(function () {
3211
3212                                if ($(this).css("display") != "none") {
3213                                    pacCounter++;
3214                                }
3215                            });
3216                            if (pacCounter > 0) {
3217                                e.preventDefault();
3218                            }
3219                        }
3220                    });
3221                    counter++;
3222                });
3223
3224                //triggers every time a form with the id website-search is trigered
3225                $('.website-search').submit(function (e) {
3226
3227                    var currentForm = $(this);
3228                    var locationInput = $(this).find(".googleLocation");
3229                    var $submitButton = currentForm.find('input[type=submit], button[type=submit]');
3230
3231
3232                    if (locationInput.val() != "" && typeof locationInput.val() != 'undefined') {
3233
3234                        // Set submitting flag
3235                        window.isSubmittingMainSearch = true;
3236                        $submitButton.prop('disabled', true);
3237
3238                        e.preventDefault();
3239                        //this variable has the main country of the site
3240                        var form = currentForm;
3241                        var urlGET = form.serialize();
3242                        var formActionUrl = form.attr("action");
3243                        var locationValue = locationInput.val();
3244
3245
3246
3247                        const mainCountry = '';
3248                        const inputOptions = {
3249                            address:locationValue
3250                        }
3251                        const language = "en";
3252
3253                        if (language) {
3254                            inputOptions.language = language;
3255                        }
3256                        if (mainCountry) {
3257                            inputOptions.componentRestrictions = {country: mainCountry};
3258                            inputOptions.region = mainCountry;
3259                        }
3260
3261                        if (typeof cachedSelectedOption == 'undefined') {
3262                            var emptyForm = {
3263                                'typed_location': ''
3264                            };
3265                            cachedSelectedOption.push(emptyForm);
3266                        }
3267
3268                        if (locationValue != cachedSelectedOption[0]['typed_location']) {
3269                            geocoder = new google.maps.Geocoder();
3270                            geocoder.geocode(inputOptions, function (results, status) {
3271
3272                                //if the google response of the geocoding was successful it will use that info to build the url for the new search
3273                                if (status == google.maps.GeocoderStatus.OK) {
3274                                    parseInfoToSearch(results, urlGET, formActionUrl);
3275
3276                                } else {
3277                                    var urlPath = formActionUrl;
3278                                    var redirect = urlPath + "?" + urlGET;
3279                                    //will redirect the page using the new url that has been constructed
3280                                    window.location.href = redirect;
3281                                }
3282                            });
3283
3284                        } else {
3285                            parseInfoToSearch(cachedSelectedOption, urlGET, formActionUrl);
3286                        }
3287                    }
3288                });
3289
3290
3291                //check if a map has been loaded
3292                if ($('#map-canvas').length > 0) {
3293                    var cssHideLogo = "<style>.pac-container:after {  /* Disclaimer: not needed to show 'powered by Google' if also a Google Map is shown */background-image: none !important;height: 0px;}</style>";
3294                    $('body').append(cssHideLogo);
3295                } else {
3296                    var cssHideLogo = "<style>.pac-container:after {  /* Disclaimer: not needed to show 'powered by Google' if also a Google Map is shown */background-image: block !important;height: 16px;}</style>";
3297                    $('body').append(cssHideLogo);
3298                }
3299
3300                if (geocodeVisitorsSetting == 1 && geocodingMethod === "IP") {
3301                    populateSearchFields();
3302                }
3303
3304                if($('.googleSuggest').val() == ""){
3305                    populateSearchFields();
3306                }
3307                
3308                var geocodeVisitorsSetting = '0';
3309                var geocodingMethod = 'HTML5';
3310
3311                //check the advanced setting "geocode_visitor_default" if set to 1 will override the "location_value" values to the formatted desire address from the google reverse geocoding response
3312
3313                var vlon = '';
3314                var vlat = '';
3315            }
3316
3317            function switchPlaceID(placeId,urlGET, formActionUrl) {
3318                let request = {
3319                    placeId: placeId,
3320                    fields: ['address_components', 'adr_address', 'formatted_address', 'geometry', 'icon', 'name', 'place_id', 'plus_code', 'type'],
3321                };
3322
3323                let service = new google.maps.places.PlacesService(document.createElement('div'));
3324                service.getDetails(request, function(place, status) {
3325                    if (status === google.maps.places.PlacesServiceStatus.OK) {
3326                        let dataArray = [];
3327                        dataArray.push(place);
3328                        parseInfoToSearch(dataArray, urlGET, formActionUrl);
3329                    } else {
3330                        console.error('Place details request failed with status:', status);
3331                    }
3332                });
3333            }
3334
3335            function parseInfoToSearch(results, urlGET, formActionUrl) {
3336                var urlSearchParams = new URLSearchParams(urlGET);
3337                var parameters = {};
3338                var addressComponentsArray = [];
3339                if (results.length > 1) {
3340                    if(urlSearchParams.get("location_value")?.toLowerCase() === "nebraska" && results.length === 2){
3341                        let tempResult = results[0];
3342                        results[0] = results[1];
3343                        results[1] = tempResult;
3344                    }
3345                    for (let i = 0; i < results.length; i++) {
3346                        if (results[i].types[0] === 'natural_feature' ||
3347                            results[i].types[0] === 'airport' ||
3348                            results[i].types[0] === 'point_of_interest' ||
3349                            results[i].types[0] === 'establishment' ||
3350                            results[i].types[0] === 'political' ||
3351                            results[i].types[0] === 'park') {
3352                            results.splice(i, 1);
3353                        }
3354                    }
3355                }
3356                var adComLength = results[0].address_components.length;
3357
3358                if(results[0].place_id == 'ChIJmQrivHKsQjQR4MIK3c41aj8'){
3359                    switchPlaceID('ChIJi73bYWusQjQRgqQGXK260bw',urlGET, formActionUrl);
3360                    return;
3361                }
3362                sessionStorage.setItem("google_result",JSON.stringify(results));
3363
3364                
3365                var foundPostalType     = results[0].types.find(type => postalTypes.includes(type));
3366                var foundCityType       = results[0].types.find(type => cityTypes.includes(type));
3367
3368                //loop that will build the array with the address components and will get the short name of country and administrative area level 1
3369                for (var i = 0; i < adComLength; i++) {
3370
3371                    if (results[0].address_components[i]['types'][0] == "country") {
3372                        parameters.country_sn = results[0].address_components[i]['short_name'];
3373                    }
3374                    if (results[0].address_components[i]['types'][0] == "administrative_area_level_1") {
3375                        parameters.adm_lvl_1_sn = results[0].address_components[i]['short_name'];
3376                    }
3377                    if (results[0].address_components[i]['types'][0] == "administrative_area_level_1") {
3378                        parameters.stateSearchLN = results[0].address_components[i]['long_name'];
3379                    }
3380                    if (results[0].address_components[i]['types'][0] == "administrative_area_level_2") {
3381                        /* short_name is what the service-area writer stores in
3382                           service_areas.county_sn, so the search must send the same
3383                           form or county matching breaks wherever short != long. */
3384                        parameters.county_sn = results[0].address_components[i]['short_name'];
3385                    }
3386                    if ($.inArray(results[0].address_components[i]['types'][0], cityTypes) !== -1 && (foundCityType || foundPostalType ) ) {
3387                        var addrType = results[0].address_components[i]['types'][0];
3388                        var addrLong = results[0].address_components[i]['long_name'];
3389                        /* CT counties come back as colloquial_area — keep them out of parameters.city. */
3390                        if (addrType !== 'colloquial_area'
3391                            || !window.bdIsColloquialCounty(addrLong, results[0].place_id)) {
3392                            parameters.city = addrLong;
3393                        }
3394                    }
3395                    if (results[0].address_components[i]['types'][0] == "postal_code" || results[0].address_components[i]['types'][0] == "postal_code_prefix") {
3396                        parameters.postal_code = results[0].address_components[i]['long_name'];
3397                    }
3398                }
3399
3400
3401                // Filter out 'political' from result types - use more specific type when available
3402                // Same pattern as BD-directory-maps-typePolitical (PR #5642)
3403                if (results[0].types && results[0].types.length > 1 && results[0].types[0] === 'political') {
3404                    results[0].types.splice(0, 1);
3405                }
3406
3407                // Pick the most specific type from results, skip "political" (too generic)
3408                parameters.location_type = results[0].types[0];
3409                for (var t = 0; t < results[0].types.length; t++) {
3410                    if (results[0].types[t] != 'political') {
3411                        parameters.location_type = results[0].types[t];
3412                        break;
3413                    }
3414                }
3415
3416                // When searching by city/locality, omit postal_code — Google returns
3417                // a partial zip prefix that doesn't match all members in the city
3418                if (parameters.location_type == 'locality' && parameters.postal_code) {
3419                    delete parameters.postal_code;
3420                }
3421
3422                if (parameters.adm_lvl_1_sn != '') {
3423                    parameters.stateSearch = parameters.adm_lvl_1_sn;
3424                }
3425                if (parameters.country_sn == "GB") {
3426                    delete parameters.adm_lvl_1_sn;
3427                }
3428
3429                //will check if the response had the bounds parameters
3430                //if it had it will add the south west and north east parameters to the new url
3431                if (results[0].geometry.hasOwnProperty('bounds') || results[0].geometry.hasOwnProperty('viewport')) {
3432
3433                    if (results[0].geometry.hasOwnProperty('bounds')) {
3434                        var boundsResponse = results[0].geometry.bounds;
3435
3436                    } else {
3437                        var boundsResponse = results[0].geometry.viewport;
3438                    }
3439                    parameters.swlat = boundsResponse.getSouthWest
3439().lat();
3440                    parameters.nelat = boundsResponse.getNorthEast().lat();
3441                    parameters.swlng = boundsResponse.getSouthWest().lng();
3442                    parameters.nelng = boundsResponse.getNorthEast().lng();
3443
3444                    //if there were not bounds parameters in the response it will send the parameter fsearch as radius so a radius search will be performed because of lack of info for this location
3445                } else {
3446                    parameters.fsearch = "radius";
3447                }
3448                var locationCenterResponse = results[0].geometry.location;
3449                parameters.lat = locationCenterResponse.lat();
3450                parameters.lng = locationCenterResponse.lng();
3451                parameters.faddress = results[0].formatted_address;
3452                parameters.place_id = results[0].place_id;
3453                var formatParameters = $.param(parameters);
3454                urlGET = urlGET + "&" + formatParameters;
3455                var urlPath = formActionUrl;
3456                var redirect = urlPath + "?" + urlGET;
3457                //will redirect the page using the new url that has been constructed
3458                window.location.href = redirect;
3459            }
3460            function populateSearchFields() {
3461                var prePopulateLocationSetting = '0';
3462                var geolocationMethod = 'HTML5';
3463
3464                // If geolocation is in progress and we don't have coordinates yet, wait a bit
3465                if (isGettingLocation && (vlat === 0 || vlon === 0)) {
3466                    var waitStartTime = performance.now();
3467                    var waitInterval = setInterval(function() {
3468                        if (!isGettingLocation || (vlat !== 0 && vlon !== 0)) {
3469                            clearInterval(waitInterval);
3470                            // Retry after a short delay to ensure coordinates are set
3471                            setTimeout(function() {
3472                                populateSearchFields();
3473                            }, 100);
3474                        } else if ((performance.now() - waitStartTime) > 10000) {
3475                            // Timeout after 10 seconds - try sessionStorage
3476                            clearInterval(waitInterval);
3477                            if (getCoordinatesFromSession()) {
3478                                setTimeout(function() {
3479                                    populateSearchFields();
3480                                }, 100);
3481                            }
3482                        }
3483                    }, 200);
3484                    return;
3485                }
3486
3487                // If coordinates are 0, try to get from sessionStorage
3488                if (vlat === 0 || vlon === 0) {
3489                    getCoordinatesFromSession();
3490                }
3491
3492                // Validate coordinates first
3493                var hasValidCoordinates = (vlat !== '' && vlon !== '' && vlat != undefined && vlon != undefined && vlat != 0 && vlon != 0 && Math.abs(vlat) <= 90 && Math.abs(vlon) <= 180);
3494                
3495                if (!hasValidCoordinates) {
3496                    return;
3497                }
3498
3499                //if set to one will get the lat and lng to do reverse geocoding
3500                if (prePopulateLocationSetting == 1 && (geolocationMethod === "HTML5" || geolocationMethod === "IP")) {
3501                    var visitorLatLng = new google.maps.LatLng(parseFloat(vlat), parseFloat(vlon));
3502                    var visitorGeocoder = new google.maps.Geocoder();
3503                    var formattedAddress = [];
3504                    var preFormattedStructure = {
3505                        "locality": "long_name",
3506                        "administrative_area_level_2": "long_name",
3507                        "administrative_area_level_1": "long_name",
3508                        "country": "long_name"
3509                    };
3510                    visitorGeocoder.geocode({'latLng': visitorLatLng}, function (results, status) {
3511                        //if the google response of the geocoding was successful it will use that info to build the url for the new search
3512                        if (status == google.maps.GeocoderStatus.OK) {
3513                            window.cachedSelectedOption = results;
3514                            $.each(preFormattedStructure, function (findex, fvalue) {
3515                                $.each(results[0].address_components, function (rindex, rvalue) {
3516                                    if (rvalue.types[0] == findex) {
3517                                        formattedAddress.push(rvalue.long_name);
3518                                    }
3519                                });
3520                            });
3521                            $('.googleSuggest').each(function () {
3522                                if ($(this).val() == '') {
3523                                    if (formattedAddress.length > 0) {
3524                                        $(this).val(formattedAddress.join(', '));
3525                                        clearContent($(this));
3526                                    }
3527                                }
3528                            });
3529                        } else {
3530                            $('.googleSuggest').each(function () {
3531                                $(this).val('');
3532                            });
3533                        }
3534                    });
3535                }
3536            }
3537            function showError(error) {
3538                switch (error.code) {
3539                    case error.PERMISSION_DENIED:
3540                    case 1: // PERMISSION_DENIED
3541                        $('.fill_location.clicked').popover({
3542                            content: `Your local browser settings have prevented location targeting. Please enable location permissions in your browser settings.`,
3543                            container: 'body'
3544                        });
3545                        $('.fill_location.clicked').popover('toggle');
3546                        setTimeout(function () {
3547                            $('.fill_location.clicked').popover('hide');
3548                            $('.fill_location.clicked').removeClass('clicked');
3549                        }, 4000);
3550                        break;
3551                    case error.POSITION_UNAVAILABLE:
3552                    case 2: // POSITION_UNAVAILABLE
3553                        $('.fill_location.clicked').popover({
3554                            content: `Location information is unavailable. Please check your device location settings.`,
3555                            container: 'body'
3556                        });
3557                        $('.fill_location.clicked').popover('toggle');
3558                        setTimeout(function () {
3559                            $('.fill_location.clicked').popover('hide');
3560                            $('.fill_location.clicked').removeClass('clicked');
3561                        }, 4000);
3562                        break;
3563                    case error.TIMEOUT:
3564                    case 3: // TIMEOUT
3565                        $('.fill_location.clicked').popover({
3566                            content: `Location request timed out. Please ensure location services are enabled and try again.`,
3567                            container: 'body'
3568                        });
3569                        $('.fill_location.clicked').popover('toggle');
3570                        setTimeout(function () {
3571                            $('.fill_location.clicked').popover('hide');
3572                            $('.fill_location.clicked').removeClass('clicked');
3573                        }, 4000);
3574                        break;
3575                    case error.UNKNOWN_ERROR:
3576                    default:
3577                        $('.fill_location.clicked').popover({
3578                            content: `An error occurred while getting your location. Please try again.`,
3579                            container: 'body'
3580                        });
3581                        $('.fill_location.clicked').popover('toggle');
3582                        setTimeout(function () {
3583                            $('.fill_location.clicked').popover('hide');
3584                            $('.fill_location.clicked').removeClass('clicked');
3585                        }, 4000);
3586                        break;
3587                }
3588            }
3589            if (navigator.geolocation) {
3590                if ($(".googleSuggest")[0]) {
3591                    $(document).on('click', '.fill_location', function getCXPosition() {
3592                        // Prevent multiple simultaneous geolocation requests
3593                        if (isGettingLocation) {
3594                            return;
3595                        }
3596                        
3597                        var $button = $(this);
3598                        $button.addClass('clicked');
3599                        var startPos;
3600                        
3601                        // Set flag to prevent concurrent requests
3602                        isGettingLocation = true;
3603                        
3604                        // Function to actually get the position
3605                        var attemptGetPosition = function() {
3606                            // Try with shorter timeout first for faster response
3607                            var geoOptions = {
3608                                enableHighAccuracy: false, // Use false for faster response
3609                                timeout: 8000, // 8 second timeout (reduced for faster failure)
3610                                maximumAge: 300000 // Accept cached position up to 5 minutes old
3611                            };
3612                            
3613                            navigator.geolocation.getCurrentPosition(function (position) {
3614                                startPos = position;
3615                                vlat = startPos.coords.latitude;
3616                                vlon = startPos.coords.longitude;
3617                                
3618                                // Validate coordinates before proceeding
3619                                if (!vlat || !vlon || vlat === 0 || vlon === 0) {
3620                                    isGettingLocation = false;
3621                                    $button.removeClass('clicked');
3622                                    return;
3623                                }
3624                                
3625                                // Save coordinates to sessionStorage
3626                                saveCoordinatesToSession(vlat, vlon);
3627                                
3628                                $.get("/api/data/html/get/data_widgets/widget_name", {
3629                                    "vlat": vlat,
3630                                    "vlon": vlon,
3631                                    "name": "Website - Save Coordinates Session"
3632                                });
3633                                
3634                                populateSearchFields();
3635                                
3636                                // Clear flag
3637                                isGettingLocation = false;
3638                                $button.removeClass('clicked');
3639                            }, function(error) {
3640                                // Clear flag on error
3641                                isGettingLocation = false;
3642                                $button.removeClass('clicked');
3643                                
3644                                // For timeout errors, try sessionStorage as fallback
3645                                if (error.code === 3) {
3646                                    if (getCoordinatesFromSession()) {
3647                                        // Use cached coordinates
3648                                        $.get("/api/data/html/get/data_widgets/widget_name", {
3649                                            "vlat": vlat,
3650                                            "vlon": vlon,
3651                                            "name": "Website - Save Coordinates Session"
3652                                        });
3653                                        
3654                                        populateSearchFields();
3655                                        
3656                                        // Clear flag
3657                                        isGettingLocation = false;
3658                                        $button.removeClass('clicked');
3659                                    } else {
3660                                        $button.popover({
3661                                            content: `Location request timed out. Please ensure location services are enabled and grant permission when prompted.`,
3662                                            container: 'body'
3663                                        });
3664                                        $button.popover('show');
3665                                        setTimeout(function() {
3666                                            $button.popover('hide');
3667                                        }, 5000);
3668                                    }
3669                                } else {
3670                                    showError(error);
3671                                }
3672                            }, geoOptions);
3673                        };
3674                        
3675                        // Check if geolocation permission is already denied (but don't block if it's prompt)
3676                        if (navigator.permissions && navigator.permissions.query) {
3677                            navigator.permissions.query({name: 'geolocation'}).then(function(result) {
3678                                if (result.state === 'denied') {
3679                                    isGettingLocation = false;
3680                                    $button.removeClass('clicked');
3681                                    showError({code: 1, message: 'Permission denied'});
3682                                    return;
3683                                } else {
3684                                    // Permission is granted or prompt - proceed with geolocation
3685                                    attemptGetPosition();
3686                                }
3687                            }).catch(function(err) {
3688                                // If permission API not supported, proceed anyway
3689                                attemptGetPosition();
3690                            });
3691                        } else {
3692                            // Permission API not available, proceed with geolocation
3693                            attemptGetPosition();
3694                        }
3695                    })
3696                }
3697            } else {
3698                console.log('Geolocation is not supported for this Browser/OS version yet.');
3699            }
3700            function getUrlParameter(sParam) {
3701                var sPageURL = window.location.search.substring(1);
3702                var sURLVariables = sPageURL.split('&');
3703
3704                for (var i = 0; i < sURLVariables.length; i++) {
3705                    var sParameterName = sURLVariables[i].split('=');
3706
3707                    if (sParameterName[0] == sParam) {
3708                        return decodeURIComponent(sParameterName[1]);
3709                    }
3710                }
3711            }
3712        </script>
3712
3713        
3713<script>
3714	// switchClass() is jQuery UI (Effects), which is no longer loaded on every page.
3715	// removeClass().addClass() is the same class swap, applied immediately instead of
3716	// after animateClass()'s queued 400ms default.
3717	$(document).ready(function(){
3718		$('.navbar-header .navbar-toggle.main_menu').click(function(){
3719			$('.mobile-main-menu').toggleClass('opened');
3720		});
3721		$('.mobile-main-menu .sidebar-nav').find('li').each(function(){
3722			$(this).addClass('hasChildren');
3723			if ($(this).children('ul').length > 0){
3724				$(this).prepend('<i class="fa fa-plus" aria-hidden="true"></i>');
3725				$(this).find('a').after('<div class="clearfix"></div>');
3726				$(this).find('span').after('<div class="clearfix"></div>');
3727			}
3728			$(this).append('<div class="clearfix"></div>');
3729		});
3730
3731		$('.mobile-main-menu .sidebar-nav li i').click(function(){
3732			if ($(this).parent().children('ul').length > 0){
3733				$(this).parent().toggleClass('sub_open');
3734			}
3735			if ($(this).hasClass('fa-plus')){
3736				$(this).removeClass('fa-plus').addClass('fa-minus');
3737			} else {
3738				$(this).removeClass('fa-minus').addClass('fa-plus');
3739			}
3740		});
3741	})
3742
3743	if ($(window).width() > 740 && $(window).width() < 1100) {
3744
3745		$(document).ready(function(){
3746			$('.tablet-menu .tablet-menu-ul').find('li').each(function(){
3747
3748				if ($(this).children('ul').length > 0){
3749					$(this).prepend('<i class="fa fa-plus tablet-fa hidden-sm hidden-md hidden-lg" aria-hidden="true"></i>');
3750					$(this).find('a').after('<div class="clearfix"></div>');
3751					var this_link = $(this).children('a').text().replace(/[^\x00-\x7F]/g, "");;
3752					$(this).children('a').html(this_link);
3753					$(this).find('span').after('<div class="clearfix"></div>');
3754				}
3755				$(this).append('<div class="clearfix"></div>');
3756			});
3757
3758			$('.tablet-menu .tablet-menu-ul li i').click(function(){
3759
3760				if ($(this).parent().children('ul').length > 0){
3761					$(this).parent().toggleClass('sub_open');
3762
3763					if ($(this).siblings( "ul" ).hasClass('tablet-block')){
3764						$(this).siblings( "ul" ).removeClass('tablet-block').addClass('tablet-none');
3765					} else {
3766						$(this).siblings( "ul" ).addClass( "tablet-block" );
3767
3768						if ($(this).siblings( "ul" ).hasClass('tablet-none')){
3769							$(this).siblings( "ul" ).removeClass('tablet-none')
3770						}
3771
3772						if ($(this).parent().siblings().children('ul').hasClass('tablet-block')) {
3773							$(this).parent().siblings().children('ul').removeClass('tablet-block').addClass('tablet-none');
3774							$(this).parent().siblings().children('i').removeClass('fa-minus').addClass('fa-plus');
3775						}
3776
3777						if ($(this).parent().siblings().children('ul').children().children('ul').hasClass('tablet-block')) {
3778							$(this).parent().siblings().children('ul').children().children('ul').removeClass('tablet-block').addClass('tablet-none');
3779							$(this).parent().siblings().children('ul').children().children('i').removeClass('fa-minus').addClass('fa-plus');
3780						}
3781
3782						if ($(this).siblings('ul').children('ul').children().children('ul').hasClass('tablet-block')) {
3783							$(this).siblings('ul').children('ul').children().children('ul').removeClass('tablet-block').addClass('tablet-none');
3784							$(this).siblings('ul').children('ul').children().children('i').removeClass('fa-minus').addClass('fa-plus');
3785						}
3786
3787					}
3788
3789				}
3790
3791				if ($(this).hasClass('fa-plus')){
3792					$(this).removeClass('fa-plus').addClass('fa-minus');
3793				} else {
3794					$(this).removeClass('fa-minus').addClass('fa-plus');
3795				}
3796			});
3797		})
3798	}
3799	// Append unique ID attribute for mobile main menu links
3800	$('.mobile-main-menu a,.mobile-main-menu span').attr("id", function() { return $(this).attr("id") + "-mobile" });
3801</script>
3801
3802
3803<script>
3804/* Keeps the announcement bar flush with the navbar: this widget's CSS emits static 50px
3805   offsets that are blind to the hide-menu settings, so a hidden or fixed compact-logo
3806   navbar leaves a gap or an overlap. Measure the real navbar state and own the offset. */
3807(function () {
3808    function alignAnnouncementToNavbar() {
3809        var ann = document.querySelector('.announcement-bar');
3810        if (!ann) { return; }
3811        /* above the widget's own offset breakpoints: restore stylesheet values */
3812        if (window.innerWidth > 1100) {
3813            ann.style.removeProperty('margin-top');
3814            ann.style.removeProperty('top');
3815            return;
3816        }
3817        var navbar = document.querySelector('.header nav.navbar.navbar-default');
3818        var navStyle = navbar ? window.getComputedStyle(navbar) : null;
3819        /* navbar hidden: the 50px offsets have nothing to clear, sit flush */
3820        if (!navbar || navStyle.display === 'none') {
3821            ann.style.setProperty('margin-top', '0px', 'important');
3822            ann.style.setProperty('top', '0px', 'important');
3823            return;
3824        }
3825        if (window.innerWidth >= 768) { return; }
3826        /* only act while the navbar is pinned and showing the compact logo */
3827        if (navStyle.position !== 'fixed') { return; }
3828        var logo = navbar.querySelector('.mobile_website_logo');
3829        if (!logo || window.getComputedStyle(logo).display === 'none') { return; }
3830        var navRect = navbar.getBoundingClientRect();
3831        var annRect = ann.getBoundingClientRect();
3832        var delta = Math.round(navRect.bottom - annRect.top); /* >0 overlap, <0 gap */
3833        if (delta === 0) { return; }
3834        var currentMt = parseFloat(window.getComputedStyle(ann).marginTop) || 0;
3835        var nextMt = currentMt + delta;
3836        /* a transient element above the bar during load can inflate the measure; a
3837           negative margin would pull the bar behind the navbar, so clamp at 0 */
3838        if (nextMt < 0) { nextMt = 0; }
3839        /* !important to beat the widget's "margin-top: 50px !important" rule */
3840        ann.style.setProperty('margin-top', nextMt + 'px', 'important');
3841    }
3842
3843    function run() {
3844        alignAnnouncementToNavbar();
3845        /* re-run after late layout shifts (fonts, async embeds) */
3846        window.setTimeout(alignAnnouncementToNavbar, 250);
3847        window.setTimeout(alignAnnouncementToNavbar, 1200);
3848    }
3849
3850    if (document.readyState === 'loading') {
3851        document.addEventListener('DOMContentLoaded', run);
3852    } else {
3853        run();
3854    }
3855    window.addEventListener('load', alignAnnouncementToNavbar);
3856    var resizeTimer;
3857    window.addEventListener('resize', function () {
3858        window.clearTimeout(resizeTimer);
3859        resizeTimer = window.setTimeout(alignAnnouncementToNavbar, 150);
3860    });
3861})();
3862</script>
3862
3863        
3863<script type="text/javascript">
3864
3865        var counterSubmit = 0;
3866        $(document).ready(function() {
3867            /* grecaptcha.reset() with no argument always resets widget 0. On a page with two
3868               captcha holders that clears the wrong checkbox, so the widget the visitor solved
3869               keeps a token Google has already spent and every retry fails the security check.
3870               captchaHolders is published by widget 1995 keyed by "<formId>-google-recaptcha";
3871               an undefined id means no per-form id is known and the arg-less call is used,
3872               exactly as before. */
3873            function bdCaptchaWidgetId(formId) {
3874                if (typeof captchaHolders === "undefined" || !formId) {
3875                    return undefined;
3876                }
3877                /* recaptcha.php renames each holder to "<id>-<counter>" before render (recaptcha.php ~L84),
3878                   so captchaHolders is keyed by the RENAMED id - not "<formId>-google-recaptcha". Resolve from
3879                   the holder element itself so the counter never has to be reconstructed. */
3880                var form = document.getElementById(formId);
3881                var holder = form && form.querySelector(".g-recaptcha");
3882                return holder ? captchaHolders[holder.id] : undefined;
3883            }
3884
3885            function bdCaptchaReset(formId) {
3886                if (typeof grecaptcha === "undefined" || typeof grecaptcha.reset !== "function") {
3887                    return;
3888                }
3889                var widgetId = bdCaptchaWidgetId(formId);
3890                if (widgetId === undefined) {
3891                    grecaptcha.reset();
3892                } else {
3893                    grecaptcha.reset(widgetId);
3894                }
3895            }
3896
3897            // Ghost-field strip (card d4tk1CMp): the server-side validator config can carry
3898            // rules for fields that are NOT rendered in this form (conditionally-rendered or
3899            // duplicated form configs). Those phantom rules make formValidation mis-evaluate
3900            // isValid(), so an empty required field bypasses validation and submits natively.
3901            // Remove any rule whose field has no matching element before initializing.
3902            // NOTE: this is the ONLY layer re-applied from reverted PR #5902. It strictly
3903            // REMOVES rules (never adds validators, never overrides native submit, never
3904            // intercepts on capture phase, never re-validates on click) — so it cannot
3905            // reproduce the "Save button slides down / nav broken / no success message"
3906            // regression that caused #5902 to be rolled back on site 19413.
3907            var validatorConfig = {"framework":"bootstrap","addOns":{"reCaptcha2":{"element":"captchaContainer","language":"en","theme":"light","siteKey":"6LcQeq0UAAAAAFFJQUOxmpmtSN5vJaqfgNlY101p","timeout":"120","message":"The captcha is not valid"}},"fields":{"email":{"validators":{"notEmpty":{"message":"Please enter a value"},"emailAddress":{"message":"Please enter a valid email address"}}},"pass":{"validators":{"notEmpty":{"message":"Please enter a value"}}}}};
3908            var formElement = $(`form[name='member_login_190-1']`);
3909            if(validatorConfig && validatorConfig.fields) {
3910                Object.keys(validatorConfig.fields).forEach(function(fieldName) {
3911                    if(formElement.find('[name="' + fieldName + '"]').length === 0) {
3912                        delete validatorConfig.fields[fieldName];
3913                    }
3914                });
3915            }
3916
3917            // Scroll to the first invalid field when submit fails validation,
3918            // so the user can immediately see why the form will not submit
3919            formElement.on('err.form.fv', function(e) {
3920                var $firstError = $(e.target).find('.form-group.has-error').first();
3921                if ($firstError.length) {
3922                    $('html, body').animate({ scrollTop: $firstError.offset().top - 100 }, 700);
3923                }
3924            });
3925
3926            formElement.formValidation(validatorConfig).on('success.form.fv', function(e,fvdata) {
3927
3928                if('member_login' == 'unsubscribe_email'){
3929                    return true;
3930                }
3931                // Prevent form submission
3932                e.preventDefault();
3933                $form = $(e.target),
3934                fv = $form.data('formValidation');
3935
3936                // Check HTML5 required fields that FormValidation may not know about
3937                var requiredEmpty = false;
3938                $form.find('[required]').each(function() {
3939                    var val = $(this).val();
3940                    if (val === '' || val === null || (typeof val === 'string' && val.trim() === '')) {
3941                        requiredEmpty = true;
3942                        $(this).closest('.form-group').addClass('has-error');
3943                        if ($(this).siblings('.required-error').length === 0) {
3944                            $(this).after('<small class="required-error help-block" style="color:#a94442;">Please enter a value</small>');
3945                        }
3946                    } else {
3947                        var $reqGroup = $(this).closest('.form-group');
3948                        $(this).siblings('.required-error').remove();
3949                        // Keep has-error if another validator is still failing for this field
3950                        if ($reqGroup.find('small[data-fv-validator][data-fv-result="INVALID"]').length === 0) {
3951                            $reqGroup.removeClass('has-error');
3952                        }
3953                    }
3954                });
3955                if (requiredEmpty) {
3956                    fv.disableSubmitButtons(false);
3957                    counterSubmit = 0;
3958                    // Scroll to the first field with an error (HTML5-required scan does
3959                    // not trigger err.form.fv, so handle the scroll here too)
3960                    var $firstReqError = $form.find('.form-group.has-error').first();
3961                    if ($firstReqError.length) {
3962                        $('html, body').animate({ scrollTop: $firstReqError.offset().top - 100 }, 700);
3963                    }
3964                    return false;
3965                }
3966
3967                var values = $(this).serialize();
3968
3969                
3970                var locationFieldCorrect = true;
3971
3972                if($("#member_login_190-1 .location_required").length > 0){
3973                    $("#member_login_190-1 .location_required").each(function (index) {
3974                        if($(this).data('state') == 1){
3975                            if($('#member_login_190-1 input[name="lead_location"]').val() == "" || $('#member_login_190-1 input[name="lat"]').val() == "" || $('#member_login_190-1 input[name="lng"]').val() == "") {
3976                                locationFieldCorrect = false;
3977                            }
3978                        }
3979                    });
3980                }
3981
3982                if(locationFieldCorrect === false){
3983                    //check that there is a latitude or longitude
3984                    swal(`Whoops!`, `The location information is required to submit this form`, "error");
3985                    return false;
3986                }
3987                        
3988
3989                if (!$(this).attr("action")) {
3990                    var action = '';
3991
3992                } else {
3993                    var action = $(this).attr("action");
3994                }
3995                if (!$(this).attr("method")) {
3996                    var method = 'post';
3997
3998                } else {
3999                    var method = $(this).attr("method");
4000                }
4001                if (!$(this).attr("form_action_type")) {
4002                    var form_action_type = 'notification';
4003
4004                } else {
4005                    var form_action_type = $(this).attr("form_action_type");
4006                }
4007                if (!$(this).attr("form_action_div")) {
4008                    /* Empty "ID to Replace" default: prefer #main-content, fall back to legacy #first_container if absent */
4009                    var form_action_div = $('#main-content').length ? '#main-content' : '#first_container';
4010
4011                } else {
4012                    var form_action_div = $(this).attr("form_action_div");
4013                }
4014                if (!$(this).attr("return_data_type")) {
4015                    var return_data_type = 'json';
4016
4017                } else {
4018                    var return_data_type = $(this).attr("return_data_type");
4019                }
4020                var submitInFlight = counterSubmit != 0 || (Date.now() - ($form.data('bdLastSubmitAt') || 0) < 5000);
4021                if (!submitInFlight) {
4022                    if ($("#member_login_190-1-notification").html() != "") {
4023                        $("#member_login_190-1-notification").remove();
4024                    }
4025                    if ($(this).find('input[type="submit"]').length > 0) {
4026                        $(this).find('input[type="submit"]').before('<div id="member_login_190-1-notification" class="alert"></div>');
4027
4028                    } else {
4029                        $(this).prepend('<div id="member_login_190-1-notification" class="alert"></div>');
4030                    }
4031                }
4032                var notification = $("#member_login_190-1-notification");
4033
4034                if ((form_action_type == "" || form_action_type == "default") && action.indexOf("account") >= 0) {
4035                    notification.html(`Processing Request...`).addClass("alert-warning-subtle");
4036                    setTimeout(function(){
4037                        fv.defaultSubmit();
4038                    }, 100);
4039                } else {
4040                    notification.html(`Processing Request...`).addClass("alert-warning-subtle");
4041                    if(!submitInFlight) {
4042                        counterSubmit++;
4043                        $form.data('bdLastSubmitAt', Date.now());
4044
4045                        var fields      = $(this).serializeArray();
4046                        var formField   = [];
4047                        var processData = true;
4048                        var contentType = "application/x-www-form-urlencoded; charset=UTF-8";
4049                        
4050                        
4051
4052                        if($("#member_login_190-1 input[type=file]").length > 0){
4053                            
4054                            var formObject  = new FormData();
4055                            processData     = false;
4056                            contentType     = false;
4057
4058                            $(fields).each(function(index,field){
4059                                formField.push(field.name+"="+field.value);
4060                            });
4061
4062                            values  = formField.join("&");
4063
4064                            $(formField).each(function(index,fieldValue){
4065                                var fieldInfo = fieldValue.split('=');
4066                                formObject.append(fieldInfo[0],fieldInfo[1]);
4067                            });
4068
4069                            $("#member_login_190-1 input[type=file]").each(function(index,node){
4070                                var file = this.files[0];
4071                                if(typeof file != "undefined"){
4072                                    formObject.append("file_addon["+$(node).attr('name')+"]", file, file.name);
4073                                }
4074                            });
4075                        }else{
4076                            
4077                            $(fields).each(function(index,field){
4078                                formField.push(field.name+"="+encodeURIComponent(field.value));
4079                            });
4080
4081                            var formObject  = formField.join("&");
4082                        } 
4083                        
4084                        $.ajax({
4085                            url: action,
4086                            type: method,
4087                            data: formObject,
4088                            dataType: return_data_type,
4089                            processData: processData,
4090                            contentType: contentType,
4091                            success: function (data) {
4092                                // Re-query live node: success.form.fv fires twice, orphaning the closure ref captured above.
4093                                notification = $("#member_login_190-1-notification");
4094                                if (return_data_type == "html") {
4095                                    var result = 'success';
4096
4097                                    if (!data != "") {
4098                                        var result_widget = data['result_widget'];
4099                                    }
4100
4101                                } else {
4102
4103
4104                                    if (!data['result']) {
4105                                        var result = 'error';
4106                                    } else {
4107                                        var result = data['result'];
4108                                    }
4109                                    if (!data['result_widget']) {
4110                                        var result_widget = '';
4111
4112                                    } else {
4113                                        var result_widget = data['result_widget'];
4114                                    }
4115                                }
4116                                if (result == "success") {
4117
4118                                    if (!data['message']) {
4119                                        var message = `Your information has submitted successfully!`;
4120
4121                                    } else {
4122                                        var message = data['message'];
4123                                    }
4124                                    if (!data['redirect_url']) {
4125                                        var redirect_url = '';
4126
4127                                    } else {
4128                                        var redirect_url = data['redirect_url'];
4129                                    }
4130
4131
4132
4133                                    if (form_action_type == "notification") {
4134                                        if (redirect_url && (action.indexOf('Member%20Login%20Page') >= 0 || action.indexOf('Member Login Page') >= 0)) {
4135                                            if (redirect_url.substring(0, 1) != "/" && redirect_url.substring(0, 1) != "h") {
4136                                                redirect_url = "/" + redirect_url;
4137                                            }
4138                                            if (notification.parents('.modal').length) {
4139                                                $('.modal-backdrop').hide();
4140                                                $('.modal').modal('hide');
4141                                            }
4142                                            window.location.href = redirect_url;
4143                                            fv.resetForm(true);
4144                                        } else {
4145                                        notification.html(message + '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>')
4146                                            .addClass('alert-dismissible')
4147                                            .addClass("alert-success-subtle")
4148                                            .removeClass("alert-danger-subtle")
4149                                            .removeClass("alert-warning-subtle")
4150                                        
4151                                            
4152
4153                                        if(notification.parents('.modal').length && 'member_login_190-1' == 'whmcs_billing_address'){
4154                                            setTimeout(function(){
4155                                                notification.parents('.modal').modal('hide');
4156                                            }, 1000);
4157                                        }
4158                                        }
4159
4160                                    } else if (form_action_type == "widget") {
4161
4162                                        if (result_widget != '') {
4163
4164                                            setTimeout(function(){
4165                                                if(form_action_div != '.newsletter_modal_form_container'){
4166                                                    $("html, body").animate({ scrollTop: 0 }, 600);
4167                                                }                                                
4168                                                $(form_action_div).html(decodeHtml(result_widget)).text();
4169
4170                                            }, 1000);
4171                                        }
4172
4173                                    } else if (form_action_type == "redirect") {
4174
4175                                        if (redirect_url == "") {
4176                                            redirect_url = decodeURIComponent("");
4177                                        }
4178
4179                                        if (redirect_url.substring(0, 1) != "/" && redirect_url.substring(0, 1) != "h") {
4180                                            redirect_url = "/" + redirect_url;
4181                                        }
4182                                        current_location = "/login";
4183                                        refresh_pages_string = "/login";
4184                                        refresh_pages_string = refresh_pages_string.replace(/ /g,'');
4185                                        refresh_pages_array = refresh_pages_string.split(',');
4186                                        notification.html(message)
4187                                            .addClass("alert-success-subtle")
4188                                            .removeClass("alert-danger-subtle")
4189                                            .removeClass("alert-warning-subtle")
4190                                            .delay(2000).slideUp();
4191                                            if(action == "/api/widget/json/get/Bootstrap%20Theme%20-%20Member%20Login%20Page" && current_location.indexOf("/login") == -1 && refresh_pages_string != '' && (!refresh_pages_array.includes(current_location) || refresh_pages_string == "/login" )){
4192                                                                                                    window.location.href = window.location.href+'?logged';
4193                                                                                            } else {
4194                                                window.location.href = redirect_url;
4195                                            }
4196
4197                                        fv.resetForm(true);
4198                                    }
4199                                    if(form_action_div != '.newsletter_modal_form_container' && 'member_login_190-1' != 'whmcs_billing_address'){
4200                                        $('.modal-backdrop').hide();
4201                                    }
4202                                } else {
4203                                    bdCaptchaReset(formElement.attr('id'));
4204                                    if (!data['message']) {
4205                                        var message = `You entered invali
4205d data. Please try to save again.`;
4206
4207                                    } else {
4208                                        var message = data['message'];
4209                                    }
4210                                    $("#member_login_190-1-notification").html(message)
4211                                        .addClass("alert-danger-subtle")
4212                                        .removeClass("alert-success-subtle")
4213                                        .removeClass("alert-warning-subtle")
4214                                        .fadeIn();
4215                                    fv.disableSubmitButtons(false);
4216                                }
4217                                counterSubmit = 0;
4218                            },
4219                            error: function (e) {
4220                                
4221                                if(typeof grecaptcha !== "undefined" && typeof grecaptcha.reset === "function"){
4222                                        bdCaptchaReset(formElement.attr('id'));
4223                                        $("#member_login_190-1-notification").html(`Recaptcha Error`);
4224                                } else {
4225                                    $("#member_login_190-1-notification").html(`A connection error occurred while saving. Please try to save again.`);
4226                                }
4227                                $("#member_login_190-1-notification").addClass("alert-warning-subtle")
4228                                    .removeClass("alert-success-subtle")
4229                                    .removeClass("alert-warning-subtle")
4230                                    .fadeIn();
4231                                counterSubmit = 0;
4232                            }
4233                        });/// End Ajax
4234                    }
4235                }//END else
4236            }).bind('keydown', function(event) {
4237
4238                if (event.ctrlKey || event.metaKey) {
4239
4240                    switch (String.fromCharCode(event.which).toLowerCase()) {
4241
4242                        case 's':
4243                            var nativeForm = $(this)[0];
4244                            if (nativeForm && typeof nativeForm.reportValidity === 'function' && !nativeForm.reportValidity()) {
4245                                event.preventDefault();
4246                                return false;
4247                            }
4248                            $(this).submit();
4249                            break;
4250                    }
4251                }
4252            });
4253
4254            /// This will turn any select2 that are required in the form builder to being required elements.
4255            $('#member_login_190-1 select').each(function (i, obj) {
4256                setTimeout(function(){
4257                    if ($(obj).prop("required") && $(obj).attr("style") == "display: none;") {
4258                        $(obj).css("z-index","-999");
4259                        $(obj).css("height","0");
4260                        $(obj).css("width","0");
4261                        $(obj).css("display","block");  
4262                        $(obj).css("position","absolute");  
4263                    }
4264                }, 3000);
4265            });
4266
4267            // Clear required-error messages when user fills in a required field
4268            $('#member_login_190-1').on('keyup change', '[required]', function() {
4269                var val = $(this).val();
4270                if (val !== '' && val !== null && val.trim() !== '') {
4271                    var $group = $(this).closest('.form-group');
4272                    // Remove only this handler's own required message
4273                    $(this).siblings('.required-error').remove();
4274                    // Keep has-error if another FormValidation validator is still failing
4275                    // (e.g. stringLength, regexp). has-error is shared, so removing it
4276                    // wholesale would clobber other validators' red styling.
4277                    if ($group.find('small[data-fv-validator][data-fv-result="INVALID"]').length === 0) {
4278                        $group.removeClass('has-error');
4279                    }
4280                }
4281            });
4282
4283        });//END $('# echo $_SERVER[form_element_id]; ').formValidation(
4284    </script>
4284
4285            
4285<script>
4286        window.addEventListener('load', (event) => {
4287            setTimeout(() => {
4288                    }, 501);
4289        });
4290    </script>
vendor: 2 bytes, line 4290
4290
4291<script>
4292	function decision(message, url) {
4293		if (confirm(message)) {
4294			setTimeout(function () {
4295				window.location = url;
4296			}, 0);
4297		}
4298	}
4299</script>
vendor: 2 bytes, line 4299
4299
4300<script>
4301	// Function to add alt, width, and height attributes to <img> elements without them
4302	function addAttributesToImages() {
4303		var images = document.querySelectorAll('img:not([alt]), img:not([width]), img:not([height])');
4304		Array.prototype.forEach.call(images, function(img) {
4305			// Skip if we've already processed this image
4306			if (img.dataset.processed === 'true') {
4307				return;
4308			}
4309			
4310			// Mark this image as being processed
4311			img.dataset.processed = 'true';
4312			
4313			// Add alt attribute if missing
4314			if (!img.hasAttribute('alt')) {
4315				var src = img.getAttribute('src') || 'image';  // Default src to 'image' if missing
4316				var altText = src.split('/').pop().split('?')[0].replace(/\.\w+$/, '');
4317
4318				try {
4319					altText = decodeURIComponent(altText)
4320					.replace(/[_\-+,.:;]+/g, ' ')
4321					.replace(/\s+/g, ' ')
4322					.trim();
4323				} catch (e) {
4324					altText = 'image';  // Fallback to 'image' if decoding fails
4325				}
4326
4327				// Ensure altText is not empty, otherwise use 'image'
4328				altText = altText || 'image';
4329
4330				img.setAttribute('alt', altText);
4331			}
4332
4333			// Add width and height attributes if missing
4334			if (!img.hasAttribute('width') || !img.hasAttribute('height')) {
4335				// Handle SVG differently
4336				if (img.src && img.src.endsWith('.svg')) {
4337					// For SVG, use the viewBox to set width and height, if available
4338					fetch(img.src)
4339					.then(response => {
4340						if (!response.ok) {
4341							throw new Error('Failed to fetch SVG: ' + response.status);
4342						}
4343						return response.text();
4344					})
4345					.then(svgText => {
4346						var parser = new DOMParser();
4347						var svgDoc = parser.parseFromString(svgText, "image/svg+xml");
4348						var svgElement = svgDoc.querySelector('svg');
4349						
4350						if (svgElement) {
4351							var viewBox = svgElement.getAttribute('viewBox');
4352							if (viewBox) {
4353								var viewBoxValues = viewBox.split(' ');
4354								var width = viewBoxValues[2];
4355								var height = viewBoxValues[3];
4356
4357								if (!img.hasAttribute('width')) {
4358									img.setAttribute('width', width);
4359								}
4360								if (!img.hasAttribute('height')) {
4361									img.setAttribute('height', height);
4362								}
4363							}
4364						}
4365					})
4366					.catch(error => {
4367						// Fallback to default dimensions for SVG
4368						if (!img.hasAttribute('width')) {
4369							img.setAttribute('width', '100');
4370						}
4371						if (!img.hasAttribute('height')) {
4372							img.setAttribute('height', '100');
4373						}
4374					});
4375				} else {
4376					// For non-SVG images, use natural dimensions
4377					var tempImg = new Image();
4378					tempImg.src = img.src;
4379					
4380					tempImg.onload = function() {
4381						if (!img.hasAttribute('width')) {
4382							img.setAttribute('width', tempImg.naturalWidth);
4383						}
4384						if (!img.hasAttribute('height')) {
4385							img.setAttribute('height', tempImg.naturalHeight);
4386						}
4387					};
4388					
4389					tempImg.onerror = function() {
4390						// Fallback to default dimensions
4391						if (!img.hasAttribute('width')) {
4392							img.setAttribute('width', '100');
4393						}
4394						if (!img.hasAttribute('height')) {
4395							img.setAttribute('height', '100');
4396						}
4397					};
4398				}
4399			}
4400		});
4401	}
4402
4403	document.addEventListener('DOMContentLoaded', function() {
4404		// Run the function initially to catch images already in the DOM
4405		addAttributesToImages();
4406
4407		// Create a MutationObserver to monitor the DOM for added/changed images
4408		var observer = new MutationObserver(function(mutations) {
4409			mutations.forEach(function(mutation) {
4410				if (mutation.addedNodes.length > 0 || mutation.type === 'attributes') {
4411					// Only process if we have new images or src attribute changes
4412					var hasNewImages = false;
4413					
4414					if (mutation.addedNodes.length > 0) {
4415						mutation.addedNodes.forEach(function(node) {
4416							if (node.nodeType === 1) { // Element node
4417								if (node.tagName === 'IMG' || node.querySelectorAll) {
4418									hasNewImages = true;
4419								}
4420							}
4421						});
4422					}
4423					
4424					if (mutation.type === 'attributes' && mutation.attributeName === 'src') {
4425						hasNewImages = true;
4426					}
4427					
4428					if (hasNewImages) {
4429						addAttributesToImages();
4430					}
4431				}
4432			});
4433		});
4434
4435		// Start observing the document body for changes
4436		observer.observe(document.body, {
4437			childList: true, // Watch for added or removed nodes
4438			subtree: true, // Watch the entire subtree
4439			attributes: true, // Watch for attribute changes
4440			attributeFilter: ['src'] // Specifically watch for changes in the 'src' attribute
4441		});
4442	});
4443</script>
4443<style type='text/css'> select#sid[disabled], select#tid[disabled], select.combobox[disabled], select#bd-chained[disabled], select#category-chained[disabled], select.infinite-chained[disabled], select.subcategory-chained[disabled], select.search-chained[disabled], select#country-chained[disabled], select#state-chained[disabled], select#country-chained-2[disabled], select#state-chained-2[disabled], select#profession_id[disabled] {
4444    cursor: wait
4445}
4446select.select2-preload {
4447    line-height: initial;
4448}
4449
4450select#sid, select#tid, select#ttid, select.combobox, select#bd-chained, select#category-chained, select.infinite-chained, select.subcategory-chained, select.search-chained, select#country-chained, select#state-chained, select#country-chained-2, select#state-chained-2, select#profession_id, [name^="bd_phone_country_code"] {
4451    -webkit-appearance: none;
4452    -moz-appearance: none;
4453    appearance: none;
4454    background-image: url(/images/select2ArrowDown.png) !important;
4455    background-repeat: no-repeat !important;
4456    background-size: 10px 9px !important;
4457    background-position: 99% 16px;
4458    border-radius: 6px;
4459    overflow: hidden;
4460}
4461.module select#sid, .module select#tid, .module select.combobox, .module select#bd-chained, .module select#category-chained, .module select.infinite-chained, .module select.subcategory-chained, .module select.search-chained, .module select#country-chained, .module select#state-chained, .module select#country-chained-2, .module select#state-chained-2, .module select#profession_id, [name^="bd_phone_country_code"] {
4462    background-position: 98.2% 12px;
4463} </style>
4463<script>
4464    // Function to add aria-label to <select> elements without it, for better pagespeed accessibility score
4465    $(document).ready(function() {
4466        var ariaLabelCounter = {}; // Object to keep track of aria-label counts for uniqueness
4467
4468        // Iterate over each select element that does not have an aria-label
4469        $('select:not([aria-label])').each(function() {
4470            // Use the ID or placeholder as the base for the aria-label, stripping HTML tags
4471            var baseLabel = this.id || $(this).attr('placeholder') || 'select';
4472            baseLabel = baseLabel.replace(/<[^>]*>/g, '').trim(); // Remove HTML tags and trim
4473
4474            // Ensure uniqueness of each aria-label
4475            ariaLabelCounter[baseLabel] = (ariaLabelCounter[baseLabel] || 0) + 1;
4476            var ariaLabel = baseLabel + '-' + ariaLabelCounter[baseLabel];
4477
4478            // Truncate aria-label to 100 characters
4479            ariaLabel = ariaLabel.length > 100 ? ariaLabel.substring(0, 100) : ariaLabel;
4480
4481            // Set the aria-label attribute to the unique label
4482            $(this).attr('aria-label', ariaLabel);
4483        });
4484    });
4485</script>
vendor: 2 bytes, line 4485
4485
4486<script type="application/ld+json">
4487{
4488    "@context": "https://schema.org",
4489    "@graph": [
4490        {
4491            "@type": "WebSite",
4492            "@id": "https://www.storycrews.com/#website",
4493            "name": "StoryCrews ™️ Videographer and Video Expert Directory",
4494            "url": "https://www.storycrews.com/",
4495            "inLanguage": "en-US",
4496            "potentialAction": {
4497                "@type": "SearchAction",
4498                "target": "https://www.storycrews.com/sitesearch?q={search_term_string}",
4499                "query-input": "required name=search_term_string",
4500                "name": "Search Directory: StoryCrews ™️ Videographer and Video Expert Directory"
4501            },
4502            "publisher": {
4503                "@id": "https://www.storycrews.com/#organization"
4504            }
4505        },
4506        {
4507            "@type": "Organization",
4508            "@id": "https://www.storycrews.com/#organization",
4509            "name": "StoryCrews ™️ Videographer and Video Expert Directory",
4510            "description": "Looking for Business Videographers?  Find local filmmakers trained to achieve your business goals on Storycrews.com",
4511            "url": "https://www.storycrews.com/",
4512            "mainEntityOfPage": {
4513                "@type": "WebPage",
4514                "@id": "https://www.storycrews.com/#webpage"
4515            },
4516            "contactPoint": [
4517                {
4518                    "@type": "ContactPoint",
4519                    "email": "[email protected]",
4520                    "contactType": "customer support",
4521                    "availableLanguage": [
4522                        "en"
4523                    ],
4524                    "areaServed": "US"
4525                }
4526            ],
4527            "areaServed": {
4528                "@type": "Country",
4529                "name": "US"
4530            },
4531            "sameAs": [
4532                "https://www.facebook.com/STORYCREWS-466670094091350/"
4533            ],
4534            "logo": {
4535                "@type": "ImageObject",
4536                "@id": "https://www.storycrews.com/#logo",
4537                "url": "/images/storyCrewsLogo_website.jpg"
4538            },
4539            "image": {
4540                "@type": "ImageObject",
4541                "@id": "https://www.storycrews.com/#image",
4542                "url": "/images/storyCrewsLogo_website.jpg"
4543            },
4544            "keywords": [
4545                "Local VideographersLocal Business VideographersLocal Corporate Filmmakers",
4546                "StoryCrews ™️ Videographer and Video Expert Directory",
4547                "Videographer",
4548                "Local Video Production"
4549            ]
4550        }
4551    ]
4552}</script>
4552
4553
4554<script>
4555// Bootstrap Icons fallback loader - ensures Bootstrap Icons work even if HEAD widget is customized, do not delete
4556(function() {
4557    if (!document.querySelector('link[href*="bootstrap-icons"]')) {
4558        var link = document.createElement('link');
4559        link.rel = 'stylesheet';
4560        link.href = 'https://www.optimizecdn.com/directory/cdn/assets/bootstrap/fonts/bootstrap-icons.min.css?v=1.13.1';
4561        document.head.appendChild(link);
4562    }
4563})();
4564</script>
4564
4565<style type='text/css'> .input-group.normal-autosuggest input,.input-group.sm-autosuggest input, .input-group.md-autosuggest input {
4566	}
4567.normal-autosuggest .twitter-typeahead, .sm-autosuggest .twitter-typeahead, .md-autosuggest .twitter-typeahead, .large-autosuggest .twitter-typeahead {
4568	display: inline-block;
4569	height: 25px;
4570	position: relative;
4571	width: 100%;
4572}
4573.input-group.normal-autosuggest .twitter-typeahead, .input-group.sm-autosuggest .twitter-typeahead, .input-group.large-autosuggest .twitter-typeahead:not(.search_box .twitter-typeahead) {
4574	width: inherit;
4575}
4576.normal-autosuggest .twitter-typeahead .clear_content.medium{
4577	bottom: 0px;
4578}
4579.sm-autosuggest .twitter-typeahead .clear_content.small{
4580	bottom: -4px;
4581}
4582.md-autosuggest.input-group .twitter-typeahead .clear_content.medium  {
4583    bottom: -2px;
4584}
4585.md-autosuggest .twitter-typeahead {
4586	height: 32px;
4587}
4588.md-autosuggest .input-group-addon + .input_wrapper .twitter-typeahead {
4589	height: 38px;
4590	vertical-align: top;
4591}
4592.md-autosuggest-input + .clear_content.medium {
4593    bottom: 0px;
4594}
4595.large-autosuggest .twitter-typeahead {
4596	height: 40px;
4597}
4598.normal-autosuggest .twitter-typeahead{
4599	height: 38px;
4600}
4601.normal-autosuggest .twitter-typeahead .tt-hint, .sm-autosuggest .twitter-typeahead .tt-hint {
4602	background: #fff !important;
4603	border: 1px solid #ccc!important;
4604	border-radius: 0 8px 8px 0;
4605	box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset!important;
4606	color: transparent;
4607	left: 0;
4608	padding: 4px 11px;
4609	position: absolute;
4610	top: 0;
4611	width: 100%;
4612	font-size:12px;
4613}
4614.normal-autosuggest.input-group-addon .fa, .sm-autosuggest .input-group-addon .fa, .input-group-sm .input-group-addon .fa {font-size:12px}
4615.md-autosuggest .twitter-typeahead .tt-hint {
4616	height: 100%;
4617	background: #ffffff none repeat scroll 0 0 !important;
4618	border: 1px solid #cccccc !important;
4619	border-radius: 0 8px 8px 0;
4620	box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset !important;
4621	color: rgba(0, 0, 0, 0);
4622	left: 0;
4623	padding: 6px 11px;
4624	position: absolute;
4625	top: 0;
4626	width: 100%;
4627}
4628.large-autosuggest {background: #fff !important;border-radius:10px;}
4629.large-autosuggest input {width: 100%!important;box-shadow:none; border-radius: 10px;}
4630.large-autosuggest .twitter-typeahead .tt-hint {
4631	background: #fff !important;
4632	border: 1px solid #ccc!important;
4633	border-radius: 10px;
4634	box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset!important;
4635	color: transparent;
4636	left: 0;
4637	position: absolute;
4638	top: 0;
4639	width: 100%;
4640	font-size: 18px;
4641	height: 46px;
4642	line-height: 1.33333;
4643	padding: 10px 15px;
4644}	
4645.tt-dataset .empty-message {
4646	display: none !important;
4647}
4648.twitter-typeahead .tt-query {background-color:#fff!important}
4649.input-group.large-autosuggest span:first-child .tt-hint {border-radius: 0 !important;}
4650span.tt-dropdown-menu {
4651	border: 1px solid #FCFCFC;
4652	border-radius: 5px;
4653	box-shadow: 0 5px 10px rgba(0,0,0,.2);
4654	width: 100% !important;
4655}
4656.tt-is-under-cursor a.suggest-link {
4657	background: #55ACEE;
4658}
4659
4660.tt-is-under-cursor .media-heading,
4661.tt-is-under-cursor .suggest-origin,
4662.tt-is-under-cursor .location{
4663	color:#fff!important;
4664}
4665.tt-suggestion .media .media-body .suggest-origin {
4666		color: rgba(45, 91, 137,0.9);
4667	padding: 1px 0;
4668	border-radius: 6px;
4669	font-weight: bold;
4670	line-height: 12px;
4671}
4672.tt-suggestion {
4673	background: #fff;
4674	border-bottom: 1px solid #eee;
4675	-webkit-transition: all 0.3s ease-in-out;
4676	-moz-transition: all 0.3s ease-in-out;
4677	-o-transition: all 0.3s ease-in-out;
4678	transition: all 0.3s ease-in-out;
4679}
4680body .tt-suggestions .media.br-bottom img {
4681	max-width: 45px;
4682	height: auto;
4683}
4684body .tt-suggestions .media-body span {
4685	font-size: 10px;
4686}
4687body .tt-suggestions .media-body h4 {
4688	font-size: 12px;
4689	margin: 2px 0px;
4690	text-transform: capitalize;
4691}
4692a.suggest-link {
4693	padding: 5px;
4694	display: block;
4695}
4696a.suggest-link img {
4697	border-radius: 100px;
4698	display: block;
4699	margin: 0 auto;
4700	height: 100%!important;
4701	width: 100%;
4702	object-fit: cover;
4703}
4704.left-suggest-col {
4705	display: inline-block;
4706	vertical-align: middle;
4707	width: 44px;
4708	height: 44px;
4709}
4710.right-suggest-col {
4711	display: inline-block;
4712	padding-left: 1%;
4713	text-align: left;
4714	vertical-align: middle;
4715	width: calc(100% - 1% - 50px);
4716}
4717p.media-heading {
4718	color: #333;
4719	font-size: 12px;
4720	font-weight: 600;
4721	margin-bottom: 0;
4722}
4723p.suggest-origin {
4724	font-size: 10px;
4725	color: #333;
4726	margin:0;
4727}
4728p.location {
4729	color: #333;
4730	font-size: 10px;
4731	margin: 2px 0;
4732}
4733body .tt-is-under-cursor a.suggest-link {
4734	background: #F7F7F7;
4735}
4736body .tt-is-under-cursor .media-heading, body .tt-is-under-cursor .suggest-origin, body .tt-is-under-cursor .location {
4737	color: #333!important;
4738}
4739a.suggest-link[data-heading="heading"] {
4740	 pointer-events: none;
4741  	cursor: default;
4742  	text-decoration: none;
4743}
4744body .tt-is-under-cursor a.suggest-link[data-heading="heading"] {
4745	background: rgb(228, 234, 242);
4746}
4747/* --- all the novalue css --- */
4748a.suggest-link .suggest-origin[data-state="novalue"] {
4749	display: none;
4750}
4751a.suggest-link .location[data-state="novalue"] {
4752	display: none;
4753}
4754a.suggest-link img[data-state="novalue"] {
4755	display: none;
4756}
4757a.suggest-link .suggest-origin[data-state="heading"] {
4758	display: none;
4759}
4760a.suggest-link .media-heading[data-heading="heading"] {
4761	color:rgb(0, 0, 0)!important;
4762	font-weight: bold;
4763	padding: 4px;
4764	font-size: 13px;
4765}
4766.left-suggest-col[data-photo="novalue"], .left-suggest-col[data-photo="undefined"] {
4767	display: none;
4768}
4769.right-suggest-col[data-photo="novalue"], .right-suggest-col[data-photo="undefined"] {
4770	width: 100%;
4771}
4772a.suggest-link[href="novalue"] {
4773	cursor: default !important;
4774	pointer-events: none;
4775}
4776a.suggest-link[data-heading="heading"] {
4777	background-color: rgb(228, 234, 242);
4778}
4779div.content-shell {
4780	overflow: inherit;
4781}
4782span.tt-dropdown-menu div {
4783	float: none;
4784}
4785.tt-menu {
4786	border-radius: 0 0 6px 6px;
4787	box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);
4788	overflow: hidden;
4789	width: 100%;
4790	z-index: 150 !important;
4791}
4792.tt-menu .tt-dataset {
4793    overflow-y: auto;
4794    max-height: 200px;
4795} </style>
4795<script>
4796    window.addEventListener('load', () => {
4797        let embedlyClass = document.querySelector('.fr-embedly');
4798        if (typeof embedlyClass != "undefined" && embedlyClass != null) {
4799            let embedlyURI = "https://www.optimizecdn.com/directory/cdn/assets/bootstrap/js/embedly_widget.min.js";
4800            let head = document.getElementsByTagName("head")[0];
4801            let script = document.createElement('script');
4802            script.type = 'text/javascript';
4803            script.src = embedlyURI;
4804            script.async = true;
4805            script.onload = function() {
4806                setTimeout(function() {
4807                    if (typeof embedly !== 'undefined' && embedly.card) {
4808                        document.querySelectorAll('.embedly-card').forEach(function(card) {
4809                            embedly.card(card);
4810                        });
4811                    }
4812                }, 500);
4813            };
4814            head.appendChild(script);
4815        }
4816    });
4817</script>
4817<script type="text/javascript" src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/jquery.lazy/1.7.9/jquery.lazy.min.js"></script>
4817<script>
4818                            $(function () {
4819                                $(".lazyloader").Lazy({
4820                                    afterLoad: function(element) {
4821                                        $(".gridView.activeView").click();
4822                                    }
4823                                });
4824                                
4825                            });
4826                            $("button[class*='slick'],button[id*='slick']").click(function () {
4827                              $(this).parents(".row").find(".lazyloader").lazy({
4828                                    bind: "event",
4829                                    delay: 0
4830                                });
4831                            });
4832                            $("[class*='slick'],[id*='slick']").on("swipe",function(){
4833                              $(this).parents(".row").find(".lazyloader").lazy({
4834                                    bind: "event",
4835                                    delay: 0
4836                                });
4837                            });
4838                        </script>
4838<script defer src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/js/websiteScripts.min.js?v=8.0.0"></script>
4838
4839            </body>
4840        </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.