PageSourceSearch

https://www.familydentaldirectory.com/about/contact

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