PageSourceSearch

https://www.thetrainerdirectory.com/

html thetrainerdirectory.com collected 2026-10-08 05:53:29 UTC 243,316 bytes, 5,114 lines download raw bytes

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