1<!DOCTYPE html> 2<html lang="en"> 3 <head> 4 <title>Best Dentist Near Me in Stamford and Bridgeport | McLeanSmiles</title> 5 <meta charset="utf-8"> 6<meta name="viewport" content="width=device-width, initial-scale=1"> 7<meta name="robots" content="index, follow"> 8<meta property="og:title" content="Best Dentist in Stamford and Bridgeport | McLeanSmiles"> 9<meta property="og:url" content="https://mcleansmiles.com/"> 10<meta property="og:type" content="website"> 11<meta property="og:description" content="At McleanSmiles, you can rest assured that your smile is in the very best of hands. Call (203) 916-5539 or (203) 364-5081 to schedule an appointment."> 12<meta property="og:image" content="https://mcleansmiles.com/custom/images/logo.png"> 13<meta http-equiv="expires" content="never"> 14<meta http-equiv="cache-control" content="public"> 15<link rel="preload" as="script" href="https://api.aleso.ai/aleso.js"> 16<link rel="preload" as="script" href="/system/js/jquery-3.5.1.min.js">
17<script> 18 var javascript; 19 var javascript_deferred; 20 21 var js_id = 0; 22 var jsd_id = 0; 23 24 var viewport_size = 0; 25 26 javascript.load = []; 27 javascript_deferred.load = []; 28 29 30 function javascript() { }; 31 function javascript_deferred() { }; 32 33 function get_id() { 34 var uid = 'js_' + js_id; 35 javascript.load.push(uid); 36 js_id++; 37 return uid; 38 } 39 40 function get_deferred_id() { 41 var uid = 'jsd_' + jsd_id; 42 javascript_deferred.load.push(uid); 43 jsd_id++; 44 return uid; 45 } 46 47 // *** ADDED â Consent Mode v2 bootstrap *** 48 // Must run BEFORE the privacy IIFE installs its stubs. 49 // Uses the real gtag() function call (not raw array push) so that gtag.js 50 // registers consent state via its consent API â this is what makes hits 51 // report pscdl=granted/denied instead of pscdl=noapi. 52 53 var DI_CONSENT_MODE_V2 = (typeof window.DiConsentMode === 'boolean') ? window.DiConsentMode : true; 54 55 window.dataLayer = window.dataLayer || []; 56 window.gtag = function () { window.dataLayer.push(arguments); }; 57 58 window.google_tracking = window.google_tracking || {}; 59 window.google_tracking.gtag = window.gtag; 60 61 // Default: deny everything. Must be called before any Google tag loads. 62 window.gtag('consent', 'default', { 63 analytics_storage: 'denied', 64 ad_storage: 'denied', 65 ad_user_data: 'denied', 66 ad_personalization: 'denied', 67 wait_for_update: 500 68 }); 69 70 // Returning visitor with stored consent: update immediately so GTM/GA 71 // initialize already knowing consent is granted. 72 (function () { 73 try { 74 var name = 'di_privacy_consent'; 75 var match = document.cookie.match(new RegExp('(?:^|;\\s*)' + name + '=([^;]*)')); 76 if (match && decodeURIComponent(match[1]) === 'granted') { 77 window.gtag('consent', 'update', { 78 analytics_storage: 'granted', 79 ad_storage: 'granted', 80 ad_user_data: 'granted', 81 ad_personalization: 'granted' 82 }); 83 } 84 } catch (e) { } 85 })(); 86 // *** END ADDED â Consent Mode v2 bootstrap *** 87 88 89 (function (window, document) { 90 'use strict'; 91 92 /* 93 Privacy / Consent Tracking Controller 94 95 Purpose: 96 - Pending consent: hold known/curated tracking scripts and API calls. 97 - Accepted consent: release held tracking scripts/calls immediately. 98 - Rejected consent: discard held tracking scripts/calls. 99 - GPC / Do Not Track: always treat as denied. 100 - Unknown third-party scripts are not held client-side; they are controlled by the server-side CSP policy. 101 102 Important: 103 - This script intentionally distinguishes between: 104 1) Non-essential trackers / analytics / pixels / session replay tools. 105 2) Functional third-party services that are required for the site experience. 106 3) Unknown third-party resources, which should be blocked by server-side CSP while consent is pending/denied. 107 */ 108 109 var CONSENT_KEY = 'di_privacy_consent'; 110 var COOKIE_MAX_AGE = 60 * 60 * 24 * 180; 111 112 var heldScripts = []; 113 var heldCalls = []; 114 var heldSockets = []; 115 116 function _logBlocked() { 117 console.log.apply(console, arguments); 118 } 119 120 function detectGPC() { 121 try { 122 // Global Privacy Control, where supported. 123 if (navigator && typeof navigator.globalPrivacyControl !== 'undefined') { 124 if (navigator.globalPrivacyControl) return true; 125 } 126 127 if (window.matchMedia && window.matchMedia('(global-privacy-control: 1)').matches) { 128 return true; 129 } 130 131 // Legacy browser "Do Not Track" support. 132 var dnt = navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack; 133 if (dnt === '1' || dnt === 'yes') { 134 return true; 135 } 136 } catch (e) { } 137 138 return false; 139 } 140 141 function getStoredConsent() { 142 try { 143 var name = CONSENT_KEY.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); 144 var match = document.cookie.match(new RegExp('(?:^|;\\s*)' + name + '=([^;]*)')); 145 146 if (!match) { 147 return null; 148 } 149 150 var v = decodeURIComponent(match[1]); 151 152 if (v === 'granted' || v === 'denied') { 153 return v; 154 } 155 } catch (e) { } 156 157 return null; 158 } 159 160 function setStoredConsent(v) { 161 if (v !== 'granted' && v !== 'denied') { 162 return; 163 } 164 165 /* 166 The consent cookie is the single source of truth. 167 168 It controls: 169 - Server-side CSP mode 170 - JavaScript consent state 171 - Whether the banner appears 172 173 When this cookie expires, consent returns to "pending" and the banner 174 will be shown again. 175 */ 176 try { 177 document.cookie = 178 CONSENT_KEY + '=' + encodeURIComponent(v) + 179 '; Path=/' + 180 '; Max-Age=' + COOKIE_MAX_AGE + 181 '; SameSite=Lax' + 182 (window.location.protocol === 'https:' ? '; Secure' : ''); 183 } catch (e) { } 184 } 185 186 function clearStoredConsent() { 187 try { 188 document.cookie = 189 CONSENT_KEY + '=; Path=/; Max-Age=0; SameSite=Lax' + 190 (window.location.protocol === 'https:' ? '; Secure' : ''); 191 } catch (e) { } 192 } 193 194 function clearLegacyStoredConsent() { 195 try { 196 localStorage.removeItem(CONSENT_KEY); 197 } catch (e) { } 198 } 199 200 clearLegacyStoredConsent(); 201 202 var gpcEnabled = detectGPC(); 203 var storedConsent = getStoredConsent(); 204 var consent = storedConsent || null; 205 206 function getConsentState() { 207 if (gpcEnabled) return 'denied'; 208 return consent || 'pending'; 209 } 210 211 function trackingAllowed() { 212 return !gpcEnabled && consent === 'granted'; 213 } 214 215 function shouldHold() { 216 return !gpcEnabled && getConsentState() === 'pending'; 217 } 218 219 function shouldDrop() { 220 return gpcEnabled || getConsentState() === 'denied'; 221 } 222 223 /* 224 Early static script guard. 225 226 This catches hard-coded parser-discovered
226<script src="..."> tags that appear 227 later in the HTML, before the browser has a chance to execute them. 228 229 This is especially important for trackers added as normal static HTML tags, 230 such as Cloudflare Web Analytics / Browser Insights. 231 232 Note: 233 - This is not meant to replace CSP. 234 - CSP is still the hard server-side fallback. 235 - This guard exists so known static tracker scripts can be held/released 236 on the same page after consent. 237 */ 238 var earlyStaticScriptPatterns = [ 239 /static\.cloudflareinsights\.com\/beacon\.min\.js/i, 240 /js\.zi-scripts\.com\/zi-tag\.js/i 241 ]; 242 243 function earlyMatchesStaticScript(src) { 244 if (!src) return false; 245 246 var s = String(src); 247 248 for (var i = 0; i < earlyStaticScriptPatterns.length; i++) { 249 if (earlyStaticScriptPatterns[i].test(s)) { 250 return true; 251 } 252 } 253 254 return false; 255 } 256 257 function earlyCloneScriptForRelease(original) { 258 var clone = document.createElement('script'); 259 260 for (var i = 0; i < original.attributes.length; i++) { 261 var attr = original.attributes[i]; 262 263 try { 264 clone.setAttribute(attr.name, attr.value); 265 } catch (e) { } 266 } 267 268 return clone; 269 } 270 271 function earlyHoldStaticScript(script) { 272 if (!script || !script.src) return false; 273 274 var src = script.src; 275 276 if (!earlyMatchesStaticScript(src)) { 277 return false; 278 } 279 280 for (var i = 0; i < heldScripts.length; i++) { 281 if (heldScripts[i].src === src) { 282 return true; 283 } 284 } 285 286 if (shouldHold()) { 287 heldScripts.push({ 288 src: src, 289 node: earlyCloneScriptForRelease(script), 290 parent: document.head || document.documentElement, 291 method: 'appendChild', 292 refNode: null 293 }); 294 295 try { 296 if (script.parentNode) { 297 script.parentNode.removeChild(script); 298 } 299 } catch (e) { } 300 301 _logBlocked('[Privacy] Early-held static tracker script until consent â', src); 302 return true; 303 } 304 305 if (shouldDrop()) { 306 try { 307 if (script.parentNode) { 308 script.parentNode.removeChild(script); 309 } 310 } catch (e) { } 311 312 _logBlocked('[Privacy] Early-removed static tracker script â', src); 313 return true; 314 } 315 316 return false; 317 } 318 319 function installEarlyStaticScriptGuard() { 320 function scanExistingScriptsEarly() { 321 var scripts = document.querySelectorAll('script[src]'); 322 323 for (var i = 0; i < scripts.length; i++) { 324 earlyHoldStaticScript(scripts[i]); 325 } 326 } 327 328 scanExistingScriptsEarly(); 329 330 if (window.MutationObserver && document.documentElement) { 331 try { 332 var earlyObserver = new MutationObserver(function (mutations) { 333 for (var i = 0; i < mutations.length; i++) { 334 var added = mutations[i].addedNodes; 335 336 for (var j = 0; j < added.length; j++) { 337 var node = added[j]; 338 339 if (node && node.tagName === 'SCRIPT') { 340 earlyHoldStaticScript(node); 341 } 342 343 if (node && node.querySelectorAll) { 344 var scripts = node.querySelectorAll('script[src]'); 345 346 for (var k = 0; k < scripts.length; k++) { 347 earlyHoldStaticScript(scripts[k]); 348 } 349 } 350 } 351 } 352 }); 353 354 earlyObserver.observe(document.documentElement, { 355 childList: true, 356 subtree: true 357 }); 358 } catch (e) { } 359 } 360 } 361 362 installEarlyStaticScriptGuard(); 363 364 /* 365 Beacon/network endpoints. 366 367 These are non-essential analytics, ads, attribution, session replay, 368 heatmap, call tracking, fingerprinting, and marketing automation endpoints. 369 370 While consent is pending or denied, requests matching these patterns are 371 blocked client-side. This prevents known trackers from sending data even if 372 a script tries to fire a fetch/XHR/sendBeacon/image beacon. 373 */ 374 var beaconPatterns = [ 375 376 // Google Ads / AdSense / remarketing / conversion endpoints 377 /:\/\/ssl\.google-analytics\.com\//i, 378 /:\/\/stats\.g\.doubleclick\.net\//i, 379 /:\/\/www\.google\.com\/pagead\/1p-user-list/i, 380 /:\/\/www\.google\.com\/pagead\/conversion/i, 381 /:\/\/googleads\.g\.doubleclick\.net\//i, 382 /:\/\/pagead2\.googlesyndication\.com\//i, 383 /:\/\/www\.googlesyndication\.com\/pagead\//i, 384 /:\/\/www\.googleadservices\.com\/pagead\//i, 385 /:\/\/www\.google\.com\/pagead\//i, 386 387 // Meta / Facebook 388 /:\/\/www\.facebook\.com\/tr\?/i, 389 /:\/\/graph\.facebook\.com\/v\d+\.\d+\/events/i, 390 391 // TikTok 392 /:\/\/business\.tiktok\.com\/bt\//i, 393 /:\/\/s\.tiktok\.com\//i, 394 395 // Pinterest 396 /:\/\/log\.pinterest\.com\//i, 397 /:\/\/analytics\.pinterest\.com\//i, 398 399 // LinkedIn 400 /:\/\/px\.ads\.linkedin\.com/i, 401 402 // Snapchat 403 /:\/\/tr\.snapchat\.com\//i, 404 405 // Twitter / X 406 /:\/\/analytics\.twitter\.com\//i, 407 /:\/\/t\.co\/i\/collect/i, 408 409 // Reddit Ads 410 /:\/\/events\.redditmedia\.com\//i, 411 /:\/\/www\.redditstatic\.com\/ads\/pixel\.js/i, 412 /:\/\/alb\.reddit\.com\//i, 413 414 // Heatmaps / session replay / behavior tracking 415 /:\/\/static\.hotjar\.com\/c\/hotjar-/i, 416 /:\/\/track\.hotjar\.com\//i, 417 /:\/\/script\.crazyegg\.com\/pages\//i, 418 /:\/\/rs\.fullstory\.com/i, 419 /:\/\/api\.mouseflow\.com\//i, 420 /:\/\/www\.clarity\.ms\/collect/i, 421 /:\/\/tools\.luckyorange\.com\//i, 422 423 // Marketing automation / CRM / attribution 424 /:\/\/track\.hubspot\.com\//i, 425 /:\/\/api\.hsforms\.com\/submissions/i, 426 /:\/\/piwik\.pardot\.com\//i, 427 /:\/\/go\.pardot\.com\//i, 428 /:\/\/cdn\.segment\.com\/v1\/p\//i, 429 /:\/\/api\.mixpanel\.com\//i, 430 /:\/\/api\.amplitude\.com/i, 431 /:\/\/plausible\.io\/api\/event/i, 432 /:\/\/matomo\.cloud\/matomo\.php/i, 433 /:\/\/.*\/matomo\.php/i, 434 /:\/\/analytics\.liine\.com\//i, 435 /:\/\/instantleadcapture\.com\//i, 436 /:\/\/px\.premion\.com\//i, 437 /:\/\/js\.adsrvr\.org\//i, 438 /:\/\/cdn\.raek\.net\//i, 439 /:\/\/s1\.revenuewell\.com\//i, 440 /:\/\/diffuser-cdn\.app-us1\.com\//i, 441 /:\/\/chimpstatic\.com\//i, 442 443 // Fingerprinting-style endpoints or libraries. 444 /fingerprint/i, 445 /\.fpjs\.io/i, 446 447 // AdRoll 448 /:\/\/s\.adroll\.com\//i, 449 /:\/\/d\.adroll\.com\//i, 450 /:\/\/pixel\.adroll\.com\//i, 451 452 // ZoomInfo 453 /:\/\/ws\.zoominfo\.com\/pixel\//i, 454 /:\/\/ws\.zoominfo\.com\//i, 455 456 // VigLink / affiliate tracking 457 /:\/\/vigl\.us\//i, 458 459 // Trovo tag 460 /:\/\/tag\.trovo-tag\.com\//i, 461
462 // Programmatic adtech / cookie-sync / audience matching 463 /:\/\/x\.bidswitch\.net\/sync/i, 464 /:\/\/pixel\.tapad\.com\/idsync/i, 465 /:\/\/ml314\.com\/utsync\.ashx/i, 466 /:\/\/ps\.eyeota\.net\/match/i, 467 /:\/\/cm\.g\.doubleclick\.net\/pixel/i, 468 /:\/\/dsum-sec\.casalemedia\.com\/rum/i, 469 /:\/\/image2\.pubmatic\.com\/AdServer\/Pug/i, 470 /:\/\/pixel\.rubiconproject\.com\/tap\.php/i, 471 /:\/\/us-u\.openx\.net\/w\/1\.0\/sd/i, 472 /:\/\/sync\.outbrain\.com\/cookie-sync/i, 473 /:\/\/sync\.taboola\.com\//i, 474 /:\/\/eb2\.3lift\.com\/xuid/i, 475 /:\/\/ib\.adnxs\.com\/setuid/i, 476 477 // Patient Prism / call intelligence 478 /:\/\/next-api\.patientprism\.com\/v1\/snippet\//i, 479 480 // First-party legacy referral / page interaction tracking 481 // /:\/\/referrals\.di-api\.com\//i, 482 483 // Identity / ad targeting / profiling 484 /:\/\/pro\.ip-api\.com\/json\//i, 485 /:\/\/alocdn\.com\/.*\/xtarget\/p\.json/i, 486 /:\/\/tag\.link-url\.io\//i, 487 /:\/\/idx\.liadm\.com\//i, 488 489 // Cloudflare Web Analytics / Browser Insights 490 /:\/\/static\.cloudflareinsights\.com\/beacon/i, 491 /:\/\/cloudflareinsights\.com\//i, 492 493 // Additional tracker / analytics / adtech beacon endpoints 494 /:\/\/dni\.logmycalls\.com\//i, 495 /:\/\/insight\.adsrvr\.org\//i, 496 /:\/\/bat\.bing\.com\//i, 497 /:\/\/settings\.luckyorange\.com\//i, 498 /:\/\/app\.operadds\.com\//i, 499 /:\/\/js\.zi-scripts\.com\//i, 500 /:\/\/analytics-[0-9]+\.kxcdn\.com\//i, 501 /:\/\/alice\.liine\.com\//i, 502 /:\/\/data\.hockeystack\.com\/send/i,
503 /:\/\/jelly\.mdhv\.io\//i, 504 /:\/\/tag\.simpli\.fi\//i, 505 /:\/\/i\.simpli\.fi\/p/i, 506 /:\/\/um\.simpli\.fi\//i, 507 /:\/\/www\.redditstatic\.com\/ads\/pixel\.js/i, 508 /:\/\/dni\.logmycalls\.com\//i, 509 /:\/\/a\.usbrowserspeed\.com\/cs/i, 510 /:\/\/.*\.usbrowserspeed\.com\/cs/i, 511 512 // Pendo product analytics 513 /:\/\/cdn\.pendo\.io\//i, 514 /:\/\/data\.pendo\.io\//i, 515 /:\/\/app\.pendo\.io\//i, 516 517 // Piwik PRO analytics / tag manager 518 /:\/\/.*\.piwik\.pro\//i, 519 520 // Leadpages analytics 521 /:\/\/api\.leadpages\.io\/analytics\//i, 522 523 // BrandCDN / conversion pixel 524 /:\/\/adservices\.brandcdn\.com\/pixel\//i, 525 526 // LiveRamp / identity sync 527 /:\/\/idsync\.rlcdn\.com\//i, 528 529 // Kissmetrics analytics 530 /:\/\/i\.kissmetrics\.io\//i, 531 /:\/\/scripts\.kissmetrics\.io\//i, 532 /:\/\/trk\.kissmetrics\.io\//i, 533 /:\/\/et\.kissmetrics\.io\//i, 534 535 // RLETS / call tracking / attribution storage iframe 536 /:\/\/[^\/]+\.rlets\.com\/static\/storage\.html/i, 537 538 // ReachLocal / LocaliQ capture, attribution, geolocation enrichment 539 /:\/\/capture-api\.reachlocalservices\.com\//i, 540 541 // EXTENDED LIST --- 542 // Scheduling / booking widgets 543 /:\/\/[^\/]*calendly\.com\//i, 544 /:\/\/assets\.calendly\.com\//i, 545 /:\/\/[^\/]*localmed\.com\//i, 546 /:\/\/frontend\.assets\.nexhealth\.com\//i, 547 /:\/\/schedule\.jarvisanalytics\.com\//i, 548 /:\/\/embed\.acuityscheduling\.com\//i, 549 /:\/\/cdn\.timetrade\.com\//i, 550 /:\/\/book\.getweave\.com\//i, 551 /:\/\/book2\.getweave\.com\//i, 552 /:\/\/book\.gke1-west3\.wsf-prod-1\.wstack\.net\//i, 553 /:\/\/nextgen\.clixondental\.com\//i, 554 /:\/\/olb\.saloniris\.com\//i, 555 /:\/\/plugin\.mysalononline\.com\//i, 556 557 // Zocdoc 558 /:\/\/api\.zocdoc\.com\//i, 559 /:\/\/api2\.zocdoc\.com\//i, 560 /:\/\/bob\.zocdoc\.com\//i, 561 /:\/\/static\.zocdoc\.com\//i, 562 /:\/\/www\.zocdoc\.com\//i, 563 /:\/\/book\.zocdoc\.com\//i, 564 /:\/\/offsiteschedule\.zocdoc\.com\//i, 565 /:\/\/[^\/]+\.zocdoc\.com\//i, 566 567 // Chat / chatbot / AI assistant widgets 568 /:\/\/connect\.podium\.com\//i, 569 /:\/\/platform\.swellcx\.com\//i, 570 /:\/\/cdn\.apigateway\.co\//i, 571 /:\/\/chat\.gocloudgain\.com\//i, 572 /:\/\/chat\.dentina\.ai\//i, 573 /:\/\/static\.ai\.getdeardoc\.com\//i, 574 /:\/\/chat\.getdeardoc\.com\//i, 575 /:\/\/api\.chat\.getdeardoc\.com\//i, 576 /:\/\/app\.dasconsultantsusa\.com\//i, 577 /:\/\/server\.dasconsultantsusa\.com\//i, 578 /:\/\/app\.purechat\.com\//i, 579 /:\/\/widgetapi\.purechat\.com\//i, 580 /:\/\/[^\/]*botsrv\.com\//i, 581 /:\/\/botsrv2\.com\//i, 582 /:\/\/static\.botsrv2\.com\//i, 583 /:\/\/app\.botsify\.com\//i, 584 /:\/\/widget\.botsify\.com\//i, 585 /:\/\/embed\.tawk\.to\//i, 586 /:\/\/static-v\.tawk\.to\//i, 587 /:\/\/va\.tawk\.to\//i, 588 /:\/\/[^\/]+\.tawk\.to\//i, 589 /:\/\/[^\/]*formilla\.com\//i, 590 /:\/\/widgets\.leadconnectorhq\.com\//i, 591 /:\/\/services\.leadconnectorhq\.com\//i, 592 /:\/\/services\.msgsndr\.com\//i, 593 /:\/\/app\.chatsupport\.co\//i, 594 /:\/\/[^\/]*truelark\.com\//i, 595 /:\/\/ops\.truelark\.com\//i, 596 /:\/\/[^\/]*247aireceptionist\.com\//i, 597 /:\/\/code\.jivosite\.com\//i, 598 /:\/\/[^\/]+\.jivosite\.com\//i, 599 /:\/\/api\.livechatinc\.com\//i, 600 /:\/\/cdn\.livechatinc\.com\//i, 601 /:\/\/[^\/]+\.livechatinc\.com\//i, 602 /:\/\/chat\.doctorsinternet\.com\/web-bot\//i, 603 604 // Forms / lead capture / embedded form systems 605 /:\/\/webform\.adit\.com\//i, 606 /:\/\/embed\.lpcontent\.net\//i, 607 /:\/\/api\.leadpages\.io\//i, 608 /:\/\/app-widgets\.jotform\.io\//i, 609 /:\/\/widgets\.jotform\.io\//i, 610 /:\/\/forms\.liine\.com\//i, 611 /:\/\/dim\.dentalimplantmachine\.co\//i, 612 /:\/\/[^\/]+\.kit\.com\//i, 613 /:\/\/[^\/]+\.ck\.page\//i, 614 /:\/\/[^\/]*convertkit\.com\//i, 615 /:\/\/app\.convertkit\.com\//i, 616 /:\/\/f\.convertkit\.com\//i, 617 /:\/\/api\.hsforms\.com\//i, 618 /:\/\/forms\.hsforms\.com\//i, 619 /:\/\/js\.hsforms\.net\//i, 620 621 // Reviews / reputation / social proof widgets 622 /:\/\/go\.doctorsinternet\.com\//i, 623 /:\/\/go\.pimm-usa\.com\//i, 624 /:\/\/widgets-v7\.birdeye\.com\//i, 625 /:\/\/webchat\.birdeye\.com\//i, 626 /:\/\/widget-v7-cdn\.birdeye\.com\//i, 627 /:\/\/[^\/]*birdeye\.com\//i, 628 /:\/\/widgets\.revue\.us\//i, 629 /:\/\/widgets\.thereviewsplace\.com\//i, 630 /:\/\/assets\.thereviewsplace\.com\//i, 631 /:\/\/api\.thereviewsplace\.com\//i, 632 /:\/\/providers\.doctor\.com\//i, 633 /:\/\/app\.operadds\.com\//i, 634 /:\/\/reviewsonmywebsite\.com\//i, 635 /:\/\/localimpact\.com\//i, 636 /:\/\/local\.demandforce\.com\//i, 637 /:\/\/www\.demandforced3\.com\//i, 638 /:\/\/[^\/]*elfsight\.com\//i, 639 /:\/\/[^\/]*elfsightcdn\.com\//i, 640 641 // Social widgets / embeds 642 /:\/\/www\.instagram\.com\//i, 643 /:\/\/www\.tiktok\.com\//i, 644 /:\/\/lf16-tiktok-web\.tiktokcdn-us\.com\//i, 645 /:\/\/www\.facebook\.com\/plugins\//i, 646 /:\/\/widgets\.pinterest\.com\//i, 647 /:\/\/www\.yelp\.com\//i, 648 649 // Financing / payment / membership widgets 650 /:\/\/files\.withcherry\.com\//i, 651 /:\/\/gql\.withcherry\.com\//i, 652 /:\/\/master-cherry-storage\.s3\.us-west-2\.amazonaws\.com\//i, 653 /:\/\/member\.kleer\.com\//i, 654 /:\/\/member\.clerri\.com\//i, 655 /:\/\/checkout\.staxpayments\.com\//i, 656 /:\/\/goblueswipe\.transactiongateway\.com\//i, 657 /:\/\/secure\.networkmerchants\.com\//i, 658 /:\/\/apply\.sunbit\.com\//i, 659 /:\/\/www\.paypal\.com\//i, 660 /:\/\/www\.paypalobjects\.com\//i, 661 /:\/\/www\.carecredit\.com\//i, 662 663 // Patient / health / practice widgets that may create sessions or lead context 664 /:\/\/patient\.phreesia\.com\//i, 665 /:\/\/patient\.klara\.com\//i, 666 /:\/\/widget\.klara\.com\//i, 667 /:\/\/patient-api\.speareducation\.com\//i, 668 /:\/\/api\.modento\.io\//i, 669 /:\/\/app\.neuralityhealth\.ai\//i, 670 /:\/\/www\.smilevirtual\.com\//i, 671 /:\/\/[^\/]*doctible\.com\//i, 672 /:\/\/[^\/]*yapiapp\.io\//i, 673 674 // Intake / scheduling / patient forms 675 /:\/\/[^\/]*intakeq\.com\//i, 676 /:\/\/app\.prod\.intelibly\.com\//i, 677 /:\/\/app\.intelibly\.com\//i, 678 /:\/\/sc-widget\.prod\.intelibly\.com\//i, 679 /:\/\/clients-cdn\.pplpractice\.com\//i, 680 /:\/\/webrefillplugin\.bestrxconnect\.com\//i, 681 /:\/\/view\.implantsmiles\.co\//i, 682 683 // Simplifeye / patient communication 684 /:\/\/embed\.simplifeye\.co\//i, 685 /:\/\/api\.simplifeye\.co\//i, 686 687 // AI chat / chatbot / web assistant widgets 688 /:\/\/aichatbotweb\.revenuewell\.com\//i, 689 /:\/\/[^\/]+\.web-assistant\.tensorlinks\.app\//i, 690 /:\/\/[^\/]*tensorlinks\.app\//i, 691 /:\/\/api\.heygent\.ai\//i, 692 /:\/\/lexicon-prod\.apigateway\.co\//i, 693 /:\/\/conversation-prod\.apigateway\.co\//i, 694 /:\/\/widget\.osam\.one\//i, 695 696 // Local marketing / lead widgets 697 /:\/\/www\.localmarketingmanager\.com\//i, 698 /:\/\/[^\/]*localmarketingmanager\.com\//i, 699 700 // Health / patient commerce / referral widgets 701 /:\/\/assets\.fullscript\.com\//i, 702 /:\/\/www\.opencare\.com\//i, 703 /:\/\/[^\/]*opencare\.com\//i 704 // END EXTENDED LIST --- 705 ]; 706 707 if (!DI_CONSENT_MODE_V2) { 708 beaconPatterns.push( 709 /:\/\/www\.google-analytics\.com\/collect/i, 710 /:\/\/www\.google-analytics\.com\/g\/collect/i, 711 /:\/\/www\.googletagmanager\.com\/collect/i, 712 /:\/\/region1\.google-analytics\.com\/g\/collect/i, 713 /:\/\/region2\.google-analytics\.com\/g\/collect/i, 714 /:\/\/analytics\.google\.com\/g\/collect/i 715 ); 716 } 717 /* 718 Script loader patterns. 719 720 These are known non-essential tracker scripts. While consent is pending, 721 the script is held instead of loaded. If consent is accepted, held scripts 722 are released on the same page. If consent is denied, held scripts are discarded. 723 */ 724 var blockUrls = [ 725 726 // Google Ads / AdSense / remarketing scripts 727 /google\.com\/pagead\/tag\/js/i, 728 /googleads\.g\.doubleclick\.net\//i, 729 /pagead2\.googlesyndication\.com\//i, 730 /pagead2\.googlesyndication\.com\/pagead\//i, 731 /www\.googlesyndication\.com\/pagead\//i, 732 /www\.googleadservices\.com\/pagead\//i, 733 734 // Meta / Facebook 735 /connect\.facebook\.net\/.*\/fbevents\.js/i, 736 /facebook\.com\/tr\/?/i, 737 738 // TikTok 739 /business\.tiktok\.com\/widget/i, 740 /s\.tiktok\.com\//i, 741 /analytics\.tiktok\.com\/i18n\/pixel\/events\.js/i, 742 743 // LinkedIn 744 /snap\.licdn\.com\/li\.js/i, 745 /snap\.licdn\.com\/li\.lms-analytics\/insight\.min\.js/i, 746 747 // Twitter / X 748 /static\.ads-twitter\.com\/uwt\.js/i, 749 750 // Pinterest 751 /assets\.pinterest\.com\/js\/pinit\.js/i, 752 753 // Snapchat 754 /sc-static\.net\/connect\.js/i, 755 756 // Heatmaps / session replay / user behavior analytics 757 /static\.hotjar\.com\/c\/hotjar-/i, 758 /tools\.luckyorange\.com\/core\/lo\.js/i, 759 /fullstory\.com\/s\/fs\.js/i, 760 /clarity\.ms\/tag/i, 761 /script\.crazyegg\.com\/pages\//i, 762 /mouseflow\.com\/projects\//i, 763 764 // Analytics / CDP / product analytics 765 /cdn\.mixpanel\.com\/lib/i, 766 /cdn\.amplitude\.com\/js/i, 767 /cdn\.segment\.com\/analytics/i, 768 /plausible\.io\/js\/script/i, 769 770 // Call tracking / DNI / lead capture / attribution 771 /tctm\.co\/t\.js/i, 772 /appcontent\.practicenumbers\.com\/phone_number_replace_/i, 773 /cdn\.callrail\.com\/companies\/.+\/swap\.js/i, 774 /cdn\.calltrk\.com\/companies\/.+\/swap\.js/i, 775 /cdn\.rlets\.com\/capture_configs\//i, 776 /analytics\.liine\.com\/v1\/bootstrapped/i, 777 /instantleadcapture\.com\/px\.min\.js/i, 778 /js\.adsrvr\.org\/up_loader/i, 779 /px\.premion\.com\/pixel\.js/i, 780 781 // Anti-fraud / visitor ID / attribution-style scripts 782 /www\.clickcease\.com\/monitor\/.+\.js/i, 783 /cdn\.raek\.net\/js\/raek\.min\.js/i, 784 /hockeystack(@latest)?\/hockeystack\.min\.js/i, 785 786 // Chat/CX scripts that include explicit tracking behavior. 787 /cdn\.livechatinc\.com\/tracking\.js/i, 788 /static\.mobilemonkey\.com\/js\/business_/i, 789 /static\.zdassets\.com\/ekr\/snippet\.js/i,
790 /platform\.swellcx\.com\/widget\/js\/chat\.js/i, 791 /cdn\.apigateway\.co\/webchat-client/i, 792 793 // Marketing automation / email / CRM 794 /js\.hubspot\.com\/analytics/i, 795 /js\.hs-scripts\.com\/\d+\.js/i, 796 /js\.hsforms\.net\/forms\/embed\/v2\.js/i, 797 /chimpstatic\.com\/mcjs-connected\/js\//i, 798 /diffuser-cdn\.app-us1\.com\/diffuser\/diffuser\.js/i, 799 /tag\.brandcdn\.com\/autoscript\//i, 800 /tag\.validate\.audio\/validate\.js/i, 801 /s1\.revenuewell\.com\/scripts\/js-api\.js/i, 802 803 // BrandCDN conversion pixel script 804 /adservices\.brandcdn\.com\/pixel\/cv_pixel\.js/i, 805 806 // AdRoll 807 /s\.adroll\.com\/j\/[^\/]+\/roundtrip\.js/i, 808 809 // ZoomInfo pixel 810 /ws\.zoominfo\.com\/pixel\//i, 811 812 // Trovo tag iframe/script 813 /tag\.trovo-tag\.com\//i, 814 815 // Patient Prism / call intelligence 816 /next-api\.patientprism\.com\/v1\/snippet\//i, 817 818 // Cloudflare Web Analytics / Browser Insights 819 /static\.cloudflareinsights\.com\/beacon\.min\.js/i, 820 821 // Additional tracker scripts 822 /dni\.logmycalls\.com\/dni\.js/i, 823 /insight\.adsrvr\.org\//i, 824 /bat\.bing\.com\/bat\.js/i, 825 /settings\.luckyorange\.com\//i, 826 /app\.operadds\.com\//i, 827 /js\.zi-scripts\.com\/zi-tag\.js/i, 828 /analytics-[0-9]+\.kxcdn\.com\/analytics\.js/i, 829 /tag\.simpli\.fi\//i, 830 /i\.simpli\.fi\/p/i, 831 /www\.redditstatic\.com\/ads\/pixel\.js/i, 832 /dni\.logmycalls\.com\/dni\.js/i, 833 834 // Pendo product analytics 835 /cdn\.pendo\.io\/agent\/static\/[^\/]+\/pendo\.js/i, 836 837 // Piwik PRO container / analytics 838 /containers\.piwik\.pro\/[^\/]+\.js/i, 839 840 // Kissmetrics analytics scripts 841 /i\.kissmetrics\.io\/i\.js/i, 842 /scripts\.kissmetrics\.io\/.*\.js/i, 843 844 // EXTENDED LIST --- 845 // Scheduling / booking widgets 846 /calendly\.com/i, 847 /assets\.calendly\.com/i, 848 /localmed\.com/i, 849 /frontend\.assets\.nexhealth\.com/i, 850 /schedule\.jarvisanalytics\.com/i, 851 /embed\.acuityscheduling\.com/i, 852 /cdn\.timetrade\.com/i, 853 /book\.getweave\.com/i, 854 /book2\.getweave\.com/i, 855 /book\.gke1-west3\.wsf-prod-1\.wstack\.net/i, 856 /nextgen\.clixondental\.com/i, 857 /olb\.saloniris\.com/i, 858 /plugin\.mysalononline\.com/i, 859 860 // Zocdoc 861 /zocdoc\.com/i, 862 /zocdocstatic\.com/i, 863 /static\.zocdoc\.com/i, 864 /offsiteschedule\.zocdoc\.com/i, 865 /book\.zocdoc\.com/i, 866 867 // Chat / chatbot / AI assistant widgets 868 /connect\.podium\.com/i, 869 /platform\.swellcx\.com/i, 870 /cdn\.apigateway\.co/i, 871 /chat\.gocloudgain\.com/i, 872 /chat\.dentina\.ai/i, 873 /static\.ai\.getdeardoc\.com/i, 874 /chat\.getdeardoc\.com/i, 875 /api\.chat\.getdeardoc\.com/i, 876 /app\.dasconsultantsusa\.com/i, 877 /server\.dasconsultantsusa\.com/i, 878 /app\.purechat\.com/i, 879 /widgetapi\.purechat\.com/i, 880 /botsrv\.com/i, 881 /botsrv2\.com/i, 882 /static\.botsrv2\.com/i, 883 /app\.botsify\.com/i, 884 /widget\.botsify\.com/i, 885 /embed\.tawk\.to/i, 886 /static-v\.tawk\.to/i, 887 /va\.tawk\.to/i, 888 /formilla\.com/i, 889 /widgets\.leadconnectorhq\.com/i, 890 /services\.leadconnectorhq\.com/i, 891 /services\.msgsndr\.com/i, 892 /app\.chatsupport\.co/i, 893 /truelark\.com/i, 894 /ops\.truelark\.com/i, 895 /247aireceptionist\.com/i, 896 /code\.jivosite\.com/i, 897 /jivosite\.com/i, 898 /api\.livechatinc\.com/i, 899 /cdn\.livechatinc\.com/i, 900 /chat\.doctorsinternet\.com/i, 901 902 // Forms / lead capture / embedded form systems 903 /webform\.adit\.com/i, 904 /embed\.lpcontent\.net/i, 905 /api\.leadpages\.io/i, 906 /app-widgets\.jotform\.io/i, 907 /widgets\.jotform\.io/i, 908 /forms\.liine\.com/i, 909 /dim\.dentalimplantmachine\.co/i, 910 /kit\.com/i, 911 /ck\.page/i, 912 /convertkit\.com/i, 913 /app\.convertkit\.com/i, 914 /f\.convertkit\.com/i, 915 /api\.hsforms\.com/i, 916 /forms\.hsforms\.com/i, 917 /js\.hsforms\.net/i, 918 919 // Reviews / reputation / social proof widgets 920 /go\.doctorsinternet\.com/i, 921 /go\.pimm-usa\.com/i, 922 /widgets-v7\.birdeye\.com/i, 923 /webchat\.birdeye\.com/i, 924 /widget-v7-cdn\.birdeye\.com/i, 925 /birdeye\.com/i, 926 /widgets\.revue\.us/i, 927 /widgets\.thereviewsplace\.com/i, 928 /assets\.thereviewsplace\.com/i, 929 /api\.thereviewsplace\.com/i, 930 /providers\.doctor\.com/i, 931 /app\.operadds\.com/i, 932 /reviewsonmywebsite\.com/i, 933 /localimpact\.com/i, 934 /local\.demandforce\.com/i, 935 /demandforced3\.com/i, 936 /elfsight\.com/i, 937 /elfsightcdn\.com/i, 938 939 // Social widgets / embeds 940 /instagram\.com/i, 941 /tiktok\.com/i, 942 /lf16-tiktok-web\.tiktokcdn-us\.com/i, 943 /facebook\.com\/plugins/i, 944 /widgets\.pinterest\.com/i, 945 /www\.yelp\.com/i, 946 947 // Financing / payment / membership widgets 948 /files\.withcherry\.com/i, 949 /gql\.withcherry\.com/i, 950 /master-cherry-storage\.s3\.us-west-2\.amazonaws\.com/i, 951 /member\.kleer\.com/i, 952 /member\.clerri\.com/i, 953 /checkout\.staxpayments\.com/i, 954 /goblueswipe\.transactiongateway\.com/i, 955 /secure\.networkmerchants\.com/i, 956 /apply\.sunbit\.com/i, 957 /www\.paypal\.com/i, 958 /www\.paypalobjects\.com/i, 959 /www\.carecredit\.com/i, 960 961 // Patient / health / practice widgets that may create sessions or lead context 962 /patient\.phreesia\.com/i, 963 /patient\.klara\.com/i, 964 /widget\.klara\.com/i, 965 /patient-api\.speareducation\.com/i, 966 /api\.modento\.io/i, 967 /app\.neuralityhealth\.ai/i, 968 /www\.smilevirtual\.com/i, 969 /doctible\.com/i, 970 /yapiapp\.io/i, 971 972 // Intake / scheduling / patient forms 973 /intakeq\.com/i, 974 /app\.prod\.intelibly\.com/i, 975 /app\.intelibly\.com/i, 976 /sc-widget\.prod\.intelibly\.com/i, 977 /clients-cdn\.pplpractice\.com/i, 978 /webrefillplugin\.bestrxconnect\.com/i, 979 /view\.implantsmiles\.co/i, 980 981 // Simplifeye / patient communication 982 /embed\.simplifeye\.co/i, 983 /api\.simplifeye\.co/i, 984 985 // AI chat / chatbot / web assistant widgets 986 /aichatbotweb\.revenuewell\.com/i, 987 /web-assistant\.tensorlinks\.app/i, 988 /tensorlinks\.app/i, 989 /api\.heygent\.ai/i, 990 /lexicon-prod\.apigateway\.co/i, 991 /conversation-prod\.apigateway\.co/i, 992 /widget\.osam\.one/i, 993 994 // Local marketing / lead widgets 995 /www\.localmarketingmanager\.com/i, 996 /localmarketingmanager\.com/i, 997 998 // Health / patient commerce / referral widgets 999 /assets\.fullscript\.com/i, 1000 /www\.opencare\.com/i, 1001 /opencare\.com/i 1002 // END EXTENDED LIST --- 1003 ]; 1004 1005 1006 if (!DI_CONSENT_MODE_V2) { 1007 blockUrls.push( 1008 /googletagmanager\.com\/gtag\/js/i, 1009 /googletagmanager\.com\/gtm\.js/i 1010 ); 1011 } 1012 1013 /* 1014 First-party analytics websocket. 1015 */ 1016 var socketPatterns = [ 1017 // /^wss:\/\/socket\.di-api\.com\/analytics/i 1018 ]; 1019 1020 function matchesPattern(url, patterns) { 1021 if (!url) return false;
1022 1023 var s = String(url); 1024 1025 return patterns.some(function (r) { 1026 return r.test(s); 1027 }); 1028 } 1029 1030 function shouldBlockUrl(url) { 1031 return matchesPattern(url, beaconPatterns); 1032 } 1033 1034 function shouldBlockScript(url) { 1035 return matchesPattern(url, blockUrls); 1036 } 1037 1038 function shouldHoldSocket(url) { 1039 return matchesPattern(url, socketPatterns); 1040 } 1041 1042 function holdScript(src, node, parent, method, refNode) { 1043 if (!src) return; 1044 1045 for (var i = 0; i < heldScripts.length; i++) { 1046 if (heldScripts[i].src === src) return; 1047 } 1048 1049 heldScripts.push({ 1050 src: src, 1051 node: node || null, 1052 parent: parent || null, 1053 method: method || 'appendChild', 1054 refNode: refNode || null 1055 }); 1056 1057 _logBlocked('[Privacy] Held tracker script until consent â', src); 1058 } 1059 1060 function holdCall(type, args) { 1061 heldCalls.push({ 1062 type: type, 1063 args: Array.prototype.slice.call(args) 1064 }); 1065 1066 _logBlocked('[Privacy] Held tracker call until consent â', type); 1067 } 1068 1069 function holdSocket(url, protocols) { 1070 for (var i = 0; i < heldSockets.length; i++) { 1071 if (heldSockets[i].url === url) return; 1072 } 1073 1074 heldSockets.push({ 1075 url: url, 1076 protocols: protocols 1077 }); 1078 1079 _logBlocked('[Privacy] Held analytics WebSocket until consent â', url); 1080 } 1081 1082 function blockOrHoldScript(src, node, parent, method, refNode) { 1083 if (!shouldBlockScript(src)) return false; 1084 1085 if (shouldHold()) { 1086 holdScript(src, node, parent, method, refNode); 1087 return true; 1088 } 1089 1090 if (shouldDrop()) { 1091 _logBlocked('[Privacy] Blocked tracker script â', src); 1092 return true; 1093 } 1094 1095 return false; 1096 } 1097 1098 function blockOrHoldCall(type, args) { 1099 if (trackingAllowed()) return false; 1100 1101 if (shouldHold()) { 1102 holdCall(type, args); 1103 return true; 1104 } 1105 1106 if (shouldDrop()) { 1107 _logBlocked('[Privacy] Blocked tracker call â', type); 1108 return true; 1109 } 1110 1111 return false; 1112 } 1113 1114 var origCreateElement = document.createElement; 1115 var proto = Element.prototype; 1116 var origAppend = proto.appendChild; 1117 var origInsert = proto.insertBefore; 1118 var origAppendMethod = proto.append; 1119 var origPrependMethod = proto.prepend; 1120 var OrigWebSocket = window.WebSocket || null; 1121 1122 function cloneScriptForRelease(original) { 1123 var clone = origCreateElement.call(document, 'script'); 1124 1125 for (var i = 0; i < original.attributes.length; i++) { 1126 var attr = original.attributes[i]; 1127 1128 if (attr.name === 'src') { 1129 continue; 1130 } 1131 1132 try { 1133 clone.setAttribute(attr.name, attr.value); 1134 } catch (e) { } 1135 } 1136 1137 clone.src = original.src; 1138 1139 return clone; 1140 } 1141 1142 function holdStaticScriptTag(script) { 1143 if (!script || !script.src) return false; 1144 1145 var src = script.src; 1146 1147 if (!shouldBlockScript(src)) { 1148 return false; 1149 } 1150 1151 for (var i = 0; i < heldScripts.length; i++) { 1152 if (heldScripts[i].src === src) { 1153 return true; 1154 } 1155 } 1156 1157 if (shouldHold()) { 1158 heldScripts.push({ 1159 src: src, 1160 node: cloneScriptForRelease(script), 1161 parent: document.head || document.documentElement, 1162 method: 'appendChild', 1163 refNode: null 1164 }); 1165 1166 try { 1167 if (script.parentNode) { 1168 script.parentNode.removeChild(script); 1169 } 1170 } catch (e) { } 1171 1172 _logBlocked('[Privacy] Held static tracker script until consent â', src); 1173 return true; 1174 } 1175 1176 if (shouldDrop()) { 1177 try { 1178 if (script.parentNode) { 1179 script.parentNode.removeChild(script); 1180 } 1181 } catch (e) { } 1182 1183 _logBlocked('[Privacy] Removed static tracker script â', src); 1184 return true; 1185 } 1186 1187 return false; 1188 } 1189 1190 function scanStaticTrackerScripts() { 1191 var scripts = document.querySelectorAll('script[src]'); 1192 1193 for (var i = 0; i < scripts.length; i++) { 1194 holdStaticScriptTag(scripts[i]); 1195 } 1196 } 1197 1198 function restoreDataLayerPush() { 1199 window.dataLayer = window.dataLayer || []; 1200 1201 try { 1202 window.dataLayer.push = Array.prototype.push; 1203 } catch (e) { } 1204 } 1205 1206 function releaseHeldScripts() { 1207 var scripts = heldScripts.slice(); 1208 heldScripts = []; 1209 1210 for (var i = 0; i < scripts.length; i++) { 1211 var item = scripts[i]; 1212 1213 try { 1214 var node = item.node;
1215 1216 if (!node) { 1217 node = origCreateElement.call(document, 'script'); 1218 node.src = item.src; 1219 node.async = true; 1220 } 1221 1222 if (item.method === 'insertBefore' && item.parent && item.refNode) { 1223 origInsert.call(item.parent, node, item.refNode); 1224 } else if (item.parent) { 1225 origAppend.call(item.parent, node); 1226 } else { 1227 origAppend.call(document.head || document.documentElement, node); 1228 } 1229 1230 _logBlocked('[Privacy] Released tracker script after consent â', item.src); 1231 } catch (e) { 1232 _logBlocked('[Privacy] Failed to release tracker script â', item.src, e); 1233 } 1234 } 1235 } 1236 1237 function releaseHeldSockets() { 1238 var sockets = heldSockets.slice(); 1239 heldSockets = []; 1240 1241 if (!OrigWebSocket) return; 1242 1243 for (var i = 0; i < sockets.length; i++) { 1244 try { 1245 if (sockets[i].protocols !== undefined) { 1246 new OrigWebSocket(sockets[i].url, sockets[i].protocols); 1247 } else { 1248 new OrigWebSocket(sockets[i].url); 1249 } 1250 1251 _logBlocked('[Privacy] Released analytics WebSocket after consent â', sockets[i].url); 1252 } catch (e) { 1253 _logBlocked('[Privacy] Failed to release analytics WebSocket â', sockets[i].url, e); 1254 } 1255 } 1256 } 1257 1258 function replayHeldCalls() { 1259 var calls = heldCalls.slice(); 1260 heldCalls = []; 1261 1262 restoreDataLayerPush(); 1263 1264 for (var i = 0; i < calls.length; i++) { 1265 var item = calls[i]; 1266 1267 try { 1268 if (item.type === 'dataLayer.push') { 1269 Array.prototype.push.apply(window.dataLayer, item.args); 1270 continue; 1271 } 1272 1273 if (item.type === 'gtag' || item.type === 'google_tracking.gtag') { 1274 window.dataLayer = window.dataLayer || []; 1275 Array.prototype.push.call(window.dataLayer, item.args); 1276 continue; 1277 } 1278 1279 if ((item.type === 'fbq' || item.type === 'facebook_tracking.fbq') && typeof window.fbq === 'function') { 1280 window.fbq.apply(window, item.args); 1281 continue; 1282 } 1283 1284 if (item.type === 'analytics.track' && window.analytics && typeof window.analytics.track === 'function') { 1285 window.analytics.track.apply(window.analytics, item.args); 1286 continue; 1287 } 1288 1289 if (item.type === 'analytics.identify' && window.analytics && typeof window.analytics.identify === 'function') { 1290 window.analytics.identify.apply(window.analytics, item.args); 1291 continue; 1292 } 1293 1294 if (item.type === 'analytics.page' && window.analytics && typeof window.analytics.page === 'function') { 1295 window.analytics.page.apply(window.analytics, item.args); 1296 continue; 1297 } 1298 1299 if (item.type === 'mixpanel.track' && window.mixpanel && typeof window.mixpanel.track === 'function') { 1300 window.mixpanel.track.apply(window.mixpanel, item.args); 1301 continue; 1302 } 1303 1304 if (item.type === 'amplitude.logEvent' && window.amplitude && typeof window.amplitude.logEvent === 'function') { 1305 window.amplitude.logEvent.apply(window.amplitude, item.args); 1306 continue; 1307 } 1308 1309 if (item.type === 'plausible' && typeof window.plausible === 'function') { 1310 window.plausible.apply(window, item.args); 1311 continue; 1312 } 1313 } catch (e) { 1314 _logBlocked('[Privacy] Failed to replay tracker call â', item.type, e); 1315 } 1316 } 1317 } 1318 1319 function acceptTracking() { 1320 if (gpcEnabled) { 1321 _logBlocked('[Privacy] Consent grant ignored because GPC/DNT is enabled.'); 1322 return; 1323 } 1324 1325 consent = 'granted'; 1326 setStoredConsent('granted'); 1327 1328 // *** ADDED â Consent Mode v2 update signal *** 1329 // Use the real gtag() function (defined before the IIFE) so gtag.js 1330 // registers consent via its API. Must fire before releaseHeldScripts 1331 // so GA loads already knowing consent is granted. 1332 try { 1333 if (typeof window.gtag === 'function') { 1334 console.log('[Privacy] Updating Consent Mode v2 signals for granted consent.'); 1335 window.gtag('consent', 'update', { 1336 analytics_storage: 'granted', 1337 ad_storage: 'granted', 1338 ad_user_data: 'granted', 1339 ad_personalization: 'granted' 1340 }); 1341 } 1342 } catch (e) { } 1343 // *** END ADDED â Consent Mode v2 update signal *** 1344 1345 restoreDataLayerPush(); 1346 releaseHeldScripts(); 1347 releaseHeldSockets(); 1348 1349 setTimeout(function () { 1350 replayHeldCalls(); 1351 }, 800); 1352 1353 _logBlocked('[Privacy] Tracking accepted. Held trackers released.'); 1354 } 1355 1356 function denyTracking() { 1357 consent = 'denied'; 1358 setStoredConsent('denied'); 1359 1360 heldScripts = []; 1361 heldCalls = []; 1362 heldSockets = []; 1363 1364 _logBlocked('[Privacy] Tracking denied. Held trackers discarded.'); 1365 } 1366 1367 var privacy = { 1368 gpcEnabled: gpcEnabled, 1369 1370 get consent() { 1371 return getConsentState(); 1372 }, 1373 1374 get trackingAllowed() { 1375 return trackingAllowed(); 1376 }, 1377 1378 get heldScripts() { 1379 return heldScripts.slice(); 1380 }, 1381 1382 get heldCalls() { 1383 return heldCalls.slice(); 1384 }, 1385 1386 get heldSockets() { 1387 return heldSockets.slice(); 1388 }, 1389 1390 setConsent: function (value) { 1391 if (value === 'granted') { 1392 acceptTracking(); 1393 return; 1394 } 1395 1396 if (value === 'denied') { 1397 denyTracking(); 1398 } 1399 }, 1400 1401 accept: acceptTracking, 1402 deny: denyTracking, 1403 release: acceptTracking, 1404 1405 reset: function () { 1406 clearStoredConsent(); 1407 consent = null; 1408 heldScripts = []; 1409 heldCalls = []; 1410 heldSockets = []; 1411 } 1412 }; 1413 1414 window.DiPrivacy = privacy; 1415 1416 // *** ADDED â Early return for granted users *** 1417 // If user has already granted consent, skip installing all the stubs and blockers. 1418 // The Consent Mode v2 default + update was already pushed via the real gtag() 1419 // before the IIFE started, so GTM/GA will read granted state on init. 1420 if (trackingAllowed()) { 1421 return; 1422 } 1423 // *** END ADDED â Early return for granted users *** 1424 1425 console.log('[Privacy] Tracking is held/blocked. Consent state â', getConsentState()); 1426 1427 // sendBeacon is commonly used for analytics hits and page-unload beacons. 1428 if (navigator.sendBeacon) { 1429 var origBeacon = navigator.sendBeacon; 1430 1431 navigator.sendBeacon = function (url, data) { 1432 if (!trackingAllowed() && shouldBlockUrl(url)) { 1433 _logBlocked('[Privacy] Blocked sendBeacon â', url); 1434 return true; 1435 } 1436 1437 return origBeacon.apply(this, arguments); 1438 }; 1439 } 1440
1441 // fetch() is commonly used by modern analytics, CDPs, pixels, and session replay tools. 1442 if (window.fetch) { 1443 var origFetch = window.fetch; 1444 1445 window.fetch = function (input, init) { 1446 var url = (typeof input === 'string') ? input : (input && input.url); 1447 1448 if (!trackingAllowed() && shouldBlockUrl(url)) { 1449 _logBlocked('[Privacy] Blocked fetch â', url); 1450 return Promise.resolve(new Response(null, { status: 204 })); 1451 } 1452 1453 return origFetch.apply(this, arguments).catch(function () { 1454 return new Response(null, { status: 204 }); 1455 }); 1456 }; 1457 } 1458 1459 // XHR is still used by older analytics and marketing scripts. 1460 if (window.XMLHttpRequest) { 1461 var OrigXHR = XMLHttpRequest; 1462 1463 function WrappedXHR() { 1464 var xhr = new OrigXHR(); 1465 var _open = xhr.open; 1466 var _send = xhr.send; 1467 1468 xhr.open = function (method, url) { 1469 xhr._blockedUrl = url; 1470 xhr._blockThis = !trackingAllowed() && shouldBlockUrl(url); 1471 return _open.apply(xhr, arguments); 1472 }; 1473 1474 xhr.send = function () { 1475 if (xhr._blockThis) { 1476 _logBlocked('[Privacy] Blocked XHR â', xhr._blockedUrl); 1477 1478 try { 1479 xhr.abort(); 1480 } catch (e) { } 1481 1482 return; 1483 } 1484 1485 return _send.apply(xhr, arguments); 1486 }; 1487 1488 return xhr; 1489 } 1490 1491 WrappedXHR.prototype = OrigXHR.prototype; 1492 window.XMLHttpRequest = WrappedXHR; 1493 } 1494 1495 // Some trackers still fire using image beacon URLs. 1496 if (window.HTMLImageElement) { 1497 var imgProto = HTMLImageElement.prototype; 1498 var desc = Object.getOwnPropertyDescriptor(imgProto, 'src'); 1499 1500 if (desc && desc.set) { 1501 Object.defineProperty(imgProto, 'src', { 1502 get: desc.get, 1503 set: function (url) { 1504 if (!trackingAllowed() && shouldBlockUrl(url)) { 1505 _logBlocked('[Privacy] Blocked Image â', url); 1506 return url; 1507 } 1508 1509 return desc.set.call(this, url); 1510 }, 1511 configurable: true, 1512 enumerable: true 1513 }); 1514 } 1515 } 1516 1517 // Consent-gated WebSockets. Only matching socketPatterns are held before consent. 1518 if (OrigWebSocket) { 1519 window.WebSocket = function (url, protocols) { 1520 if (!trackingAllowed() && shouldHoldSocket(url)) { 1521 if (shouldHold()) { 1522 holdSocket(url, protocols); 1523 } else { 1524 _logBlocked('[Privacy] Blocked analytics WebSocket â', url); 1525 } 1526 1527 return { 1528 close: function () { }, 1529 send: function () { }, 1530 addEventListener: function () { }, 1531 removeEventListener: function () { }, 1532 dispatchEvent: function () { return false; }, 1533 readyState: 3, 1534 bufferedAmount: 0, 1535 url: String(url || '') 1536 }; 1537 } 1538 1539 if (protocols !== undefined) { 1540 return new OrigWebSocket(url, protocols); 1541 } 1542 1543 return new OrigWebSocket(url); 1544 }; 1545 1546 window.WebSocket.prototype = OrigWebSocket.prototype; 1547 } 1548 1549 // jQuery.getScript() is used by many older site snippets to load trackers dynamically. 1550 if (window.jQuery && window.jQuery.getScript) { 1551 var $ = window.jQuery; 1552 var origGetScript = $.getScript; 1553 1554 $.getScript = function (url, cb) { 1555 if (blockOrHoldScript(url, null, null, 'jqueryGetScript', null)) { 1556 return; 1557 } 1558 1559 return origGetScript.apply(this, arguments); 1560 }; 1561 } 1562 1563 // Dynamically inserted
1563<script src> trackers are held or blocked. 1564 (function () { 1565 proto.appendChild = function (node) { 1566 if (node && node.tagName === 'SCRIPT') { 1567 var src = node.src || node.getAttribute('src'); 1568 1569 if (blockOrHoldScript(src, node, this, 'appendChild', null)) { 1570 return node; 1571 } 1572 } 1573 1574 return origAppend.call(this, node); 1575 }; 1576 1577 proto.insertBefore = function (node, ref) { 1578 if (node && node.tagName === 'SCRIPT') { 1579 var src = node.src || node.getAttribute('src'); 1580 1581 if (blockOrHoldScript(src, node, this, 'insertBefore', ref)) { 1582 return node; 1583 } 1584 } 1585 1586 return origInsert.call(this, node, ref); 1587 }; 1588 1589 if (origAppendMethod) { 1590 proto.append = function () { 1591 for (var i = 0; i < arguments.length; i++) { 1592 var node = arguments[i]; 1593 1594 if (node && node.tagName === 'SCRIPT') { 1595 var src = node.src || node.getAttribute('src'); 1596 1597 if (blockOrHoldScript(src, node, this, 'appendChild', null)) { 1598 return; 1599 } 1600 } 1601 } 1602 1603 return origAppendMethod.apply(this, arguments); 1604 }; 1605 } 1606 1607 if (origPrependMethod) { 1608 proto.prepend = function () { 1609 for (var i = 0; i < arguments.length; i++) { 1610 var node = arguments[i]; 1611 1612 if (node && node.tagName === 'SCRIPT') { 1613 var src = node.src || node.getAttribute('src'); 1614 1615 if (blockOrHoldScript(src, node, this, 'appendChild', null)) { 1616 return; 1617 } 1618 } 1619 } 1620 1621 return origPrependMethod.apply(this, arguments); 1622 }; 1623 } 1624 })(); 1625 1626 // Static/parser-inserted tracker scripts are scanned separately. 1627 // This helps catch hard-coded
1627<script src="..."> tags that are not loaded through appendChild/insertBefore. 1628 scanStaticTrackerScripts(); 1629 1630 if (document.readyState === 'loading') { 1631 document.addEventListener('DOMContentLoaded', scanStaticTrackerScripts); 1632 } 1633 1634 // Watch for tracker scripts added later by widgets or inline code. 1635 // This catches scripts that are inserted into the page after our initial scan. 1636 if (window.MutationObserver) { 1637 try { 1638 var trackerScriptObserver = new MutationObserver(function (mutations) { 1639 for (var i = 0; i < mutations.length; i++) { 1640 var added = mutations[i].addedNodes; 1641 1642 for (var j = 0; j < added.length; j++) { 1643 var node = added[j]; 1644 1645 if (node && node.tagName === 'SCRIPT') { 1646 holdStaticScriptTag(node); 1647 } 1648 1649 if (node && node.querySelectorAll) { 1650 var scripts = node.querySelectorAll('script[src]'); 1651 1652 for (var k = 0; k < scripts.length; k++) { 1653 holdStaticScriptTag(scripts[k]); 1654 } 1655 } 1656 } 1657 } 1658 }); 1659 1660 trackerScriptObserver.observe(document.documentElement, { 1661 childList: true, 1662 subtree: true 1663 }); 1664 } catch (e) { } 1665 } 1666 1667 function trackerStub(name) { 1668 return function () { 1669 blockOrHoldCall(name, arguments); 1670 }; 1671 } 1672 1673 /* 1674 Common tracker APIs. 1675 1676 These stubs prevent known trackers from firing before consent. 1677 When consent is pending, calls are held. When consent is denied or GPC/DNT 1678 is active, calls are discarded. When accepted, held calls are replayed. 1679 */ 1680 window.dataLayer = window.dataLayer || []; 1681 1682 window.dataLayer.push = function () { 1683 // *** ADDED â Consent Mode v2 / GTM / gtag bypass *** 1684 // Allow consent signals, GTM internals, and gtag config/js/set/get 1685 // through unconditionally. GTM needs unobstructed dataLayer.push 1686 // to initialize itself and read consent state. Consent signals 1687 // must never be held or dropped. 1688 var arg = arguments[0]; 1689 1690 // Always allow consent signals through â Consent Mode v2 must not be gated. 1691 // gtag('consent', 'default'|'update', {...}) arrives as arguments where arg[0] === 'consent'. 1692 var isConsentCommand = arg && ( 1693 arg[0] === 'consent' || 1694 arg['0'] === 'consent' 1695 ); 1696 1697 // Always allow GTM internal events through (gtm.start, gtm.js, gtm.dom, gtm.load, etc.) 1698 var isGtmInternal = arg && typeof arg === 'object' && !Array.isArray(arg) && ( 1699 'gtm.start' in arg || 1700 'gtm.uniqueEventId' in arg || 1701 (arg.event && typeof arg.event === 'string' && arg.event.indexOf('gtm.') === 0) 1702 ); 1703 1704 // Allow gtag config/js/set/get commands so gtag.js can initialize properly. 1705 // gtag('js', new Date()) and gtag('config', 'G-XXX') need to reach dataLayer. 1706 var isGtagInternal = arg && ( 1707 arg[0] === 'js' || 1708 arg[0] === 'config' || 1709 arg[0] === 'set' || 1710 arg[0] === 'get' || 1711 arg['0'] === 'js' || 1712 arg['0'] === 'config' || 1713 arg['0'] === 'set' || 1714 arg['0'] === 'get' 1715 ); 1716 1717 if (isConsentCommand || isGtmInternal || isGtagInternal) { 1718 return Array.prototype.push.apply(window.dataLayer, arguments); 1719 } 1720 // *** END ADDED â Consent Mode v2 / GTM / gtag bypass *** 1721 1722 if (blockOrHoldCall('dataLayer.push', arguments)) { 1723 return; 1724 } 1725 1726 return Array.prototype.push.apply(window.dataLayer, arguments); 1727 }; 1728 1729 // *** ADDED â gtag stubs intentionally not installed *** 1730 // NOTE: window.gtag and window.google_tracking.gtag were defined as real 1731 // functions BEFORE this IIFE ran (in the Consent Mode v2 bootstrap block). 1732 // We do NOT overwrite them with stubs here â they need to remain real so 1733 // that gtag.js can register consent via its API (which is what produces 1734 // pscdl=denied/granted on hits instead of pscdl=noapi). 1735 // 1736 // Tracking gating for gtag still happens via the wrapped dataLayer.push 1737 // above: consent/gtm/gtag-internal commands pass through, everything else 1738 // (e.g. gtag('event', 'conversion', {...})) goes through blockOrHoldCall. 1739 // *** END ADDED â gtag stubs intentionally not installed *** 1740 1741 window.fbq = trackerStub('fbq'); 1742 window.facebook_tracking = window.facebook_tracking || {}; 1743 window.facebook_tracking.fbq = trackerStub('facebook_tracking.fbq'); 1744 1745 window.FB = window.FB || { AppEvents: {} }; 1746 window.FB.AppEvents.logEvent = trackerStub('FB.AppEvents.logEvent'); 1747 window.FB.AppEvents.logPurchase = trackerStub('FB.AppEvents.logPurchase'); 1748 1749 window.twttr = window.twttr || {}; 1750 window.twttr.track = trackerStub('twttr.track'); 1751 window.twttr.load = trackerStub('twttr.load'); 1752 1753 window._linkedin_data_partner_ids = []; 1754 window.linkedinData = trackerStub('linkedinData'); 1755 1756 window.pintrk = trackerStub('pintrk'); 1757 window.ttq = trackerStub('ttq'); 1758 window.snaptr = trackerStub('snaptr'); 1759 window.hj = trackerStub('hj'); 1760 1761 window.mixpanel = window.mixpanel || {}; 1762 window.mixpanel.track = trackerStub('mixpanel.track'); 1763 window.mixpanel.identify = trackerStub('mixpanel.identify'); 1764 window.mixpanel.register = trackerStub('mixpanel.register'); 1765 1766 window.amplitude = window.amplitude || {}; 1767 window.amplitude.logEvent = trackerStub('amplitude.logEvent'); 1768 window.amplitude.setUserProperties = trackerStub('amplitude.setUserProperties'); 1769 1770 window.analytics = window.analytics || {}; 1771 window.analytics.track = trackerStub('analytics.track'); 1772 window.analytics.identify = trackerStub('analytics.identify'); 1773 window.analytics.page = trackerStub('analytics.page'); 1774 1775 window.plausible = trackerStub('plausible'); 1776 1777 })(window, document); 1778</script>
vendor: 1 bytes, line 1778
1778
1779<script> 1780 (function () { 1781 1782 // Set window.privacy_allow = { disabled: true } before this script to suppress the banner entirely 1783 var privacy_allow = Object.assign({ disabled: false }, window.privacy_allow || {}); 1784 window.privacy_allow = privacy_allow; 1785 1786 // Per-site override API â call before or after this script: 1787 // privacy_config.set('variant', 'manage'); 1788 if (!window.privacy_config || typeof window.privacy_config !== 'object') window.privacy_config = {}; 1789 Object.defineProperty(window.privacy_config, 'set', { 1790 enumerable: false, configurable: true, 1791 value: function (key, val) { window.privacy_config[key] = val; } 1792 }); 1793 1794 // variant: 'simple' â Decline / Accept All banner (no modal) 1795 // variant: 'manage' â Manage / Accept All banner + preferences modal 1796 var privacy_config_defaults = { 1797 primaryColor: '#1e3a5f', 1798 bgColor: '#ffffff', 1799 textColor: '#374151', 1800 // fontFamily: 'inherit', 1801 fontFamily: 'system-ui, -apple-system, "Segoe UI", Roboto, sans-serif', 1802 buttonRadius: '4px', 1803 privacyPolicyUrl: '/privacy/', 1804 variant: 'manage', 1805 bannerText: 'We use cookies and tracking technologies to improve your browsing experience on our website, to show you personalized content, and to analyze our website traffic. Read our [privacy policy] to learn more.', 1806 declineLabel: 'Decline', 1807 manageLabel: 'Manage', 1808 acceptLabel: 'Accept All', 1809 modalTitle: 'Your tracking preferences.', 1810 modalDesc: 'We use tracking technologies, including scripts that may not set cookies, to understand how you use our site and deliver relevant content. You can learn more in our', 1811 submitLabel: 'Submit Preferences', 1812 rejectLabel: 'Reject all', 1813 cancelLabel: 'Cancel', 1814 categories: [ 1815 { 1816 id: 'tracking', 1817 label: 'Tracking & Analytics', 1818 description: 'Scripts and technologies that help us understand how visitors interact with our site, measure performance, and serve relevant content and ads.', 1819 defaultOn: true, 1820 } 1821 ] 1822 }; 1823 var privacy_config; 1824 1825 // âââ helpers âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 1826 1827 function privacy_cb_el(tag, props) { 1828 var node = document.createElement(tag); 1829 if (props) Object.keys(props).forEach(function (k) { node[k] = props[k]; }); 1830 return node; 1831 } 1832 1833 function privacy_cb_removeBanner() { 1834 var el = document.getElementById('di-consent-banner'); 1835 if (el) el.parentNode.removeChild(el); 1836 } 1837 1838 function privacy_cb_removeModal() { 1839 var el = document.getElementById('di-cookie-pref-dialog'); 1840 if (!el) return; 1841 try { el.close(); } catch (e) { } 1842 } 1843 1844 function privacy_cb_accept() { 1845 try { if (window.DiPrivacy && typeof window.DiPrivacy.accept === 'function') window.DiPrivacy.accept(); } catch (e) { } 1846 privacy_cb_removeModal(); privacy_cb_removeBanner(); 1847 } 1848 1849 function privacy_cb_reject() { 1850 try { if (window.DiPrivacy && typeof window.DiPrivacy.deny === 'function') window.DiPrivacy.deny(); } catch (e) { } 1851 privacy_cb_removeModal(); privacy_cb_removeBanner(); 1852 } 1853 1854 function privacy_cb_rejectAll() { 1855 privacy_config.categories.forEach(function (cat) { 1856 var t = document.getElementById('di-cm-' + cat.id + '-toggle'); 1857 if (t) t.checked = false; 1858 }); 1859 privacy_cb_reject(); 1860 } 1861 1862 function privacy_cb_savePreferences() { 1863 var anyOff = privacy_config.categories.some(function (cat) { 1864 var t = document.getElementById('di-cm-' + cat.id + '-toggle'); 1865 return t && !t.checked; 1866 }); 1867 anyOff ? privacy_cb_reject() : privacy_cb_accept(); 1868 } 1869 1870 // âââ styles ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 1871 1872 function privacy_cb_injectStyles() { 1873 console.log('Injecting consent banner styles...'); 1874 var existing = document.getElementById('di-consent-banner-styles'); 1875 if (existing) existing.parentNode.removeChild(existing); 1876 var style = document.createElement('style'); 1877 style.id = 'di-consent-banner-styles'; 1878 var css = ''; 1879 1880 // css += '#di-consent-banner{position:fixed;bottom:0;left:0;right:0;z-index:9999999999;background:var(--di-cb-bg);box-shadow:0 -4px 16px rgba(0,0,0,.10);padding:20px 24px;font-family:var(--di-cb-font);box-sizing:border-box;}'; 1881 css += '#di-consent-banner{position:fixed;bottom:0;left:0;right:0;z-index:2147483647;background:var(--di-cb-bg);box-shadow:0 -4px 16px rgba(0,0,0,.10);padding:20px 24px;box-sizing:border-box;}'; 1882 css += '#di-consent-banner,#di-consent-banner *{font-family:var(--di-cb-font,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif)!important;letter-spacing:normal!important;}'; 1883 css += '#di-consent-banner .di-cb__text{font-size:14px!important;line-height:1.5!important;color:var(--di-cb-text);margin:0;}'; 1884 css += '@media(max-width:420px){#di-consent-banner{min-height:270px;}}'; 1885 css += '#di-consent-banner .di-cb__inner{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:32px;max-width:1280px;margin:0 auto;}'; 1886 css += '@media(min-width:640px){#di-consent-banner .di-cb__inner{flex-direction:row;}}'; 1887 css += '#di-consent-banner .di-cb__text{font-size:14px;color:var(--di-cb-text);margin:0;}'; 1888 css += '#di-consent-banner .di-cb__learn{color:var(--di-cb-primary);text-decoration:underline;transition:opacity .2s ease;}'; 1889 css += '#di-consent-banner .di-cb__learn:hover{opacity:.8;}'; 1890 css += '#di-consent-banner .di-cb__actions{display:flex;gap:8px!important;flex-shrink:0;}'; 1891 css += '@media(max-width:639px){#di-consent-banner .di-cb__actions{width:100%;flex-direction:column-reverse;}}'; 1892 css += '#di-consent-banner .di-cb__btn{cursor:pointer;font-size:16px;font-weight:500;padding:12px 24px;border-radius:var(--di-cb-radius);border:1px solid transparent;line-height:1;white-space:nowrap;transition:background .2s ease,color .2s ease,opacity .2s ease;}'; 1893 css += '#di-consent-banner .di-cb__btn--secondary{background:transparent;border-color:var(--di-cb-primary);color:var(--di-cb-primary);}'; 1894 css += '#di-consent-banner .di-cb__btn--secondary:hover{background:var(--di-cb-primary);color:#fff;}'; 1895 css += '#di-consent-banner .di-cb__btn--primary{background:var(--di-cb-primary);border-color:var(--di-cb-primary);color:#fff;}'; 1896 css += '#di-consent-banner .di-cb__btn--primary:hover{opacity:.88;}'; 1897 1898 css += '@keyframes di-cm-fadein{from{opacity:0}
1898to{opacity:1}}'; 1899 css += '@keyframes di-cm-slidein{from{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}'; 1900 css += '#di-cookie-pref-dialog{border:none;padding:0;margin:auto;background:#fff;border-radius:10px;box-shadow:0 8px 40px rgba(0,0,0,.22);max-width:480px;width:calc(100vw - 32px);box-sizing:border-box;overflow:hidden;font-family:var(--di-cb-font);animation:di-cm-slidein .2s ease;}'; 1901 css += '#di-cookie-pref-dialog::backdrop{background:rgba(0,0,0,.45);animation:di-cm-fadein .18s ease;}'; 1902 css += '#di-cookie-pref-dialog .di-cm__header{padding:22px 24px 0;}'; 1903 css += '#di-cookie-pref-dialog .di-cm__title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;}'; 1904 css += '#di-cookie-pref-dialog .di-cm__title{font-size:19px;font-weight:700;color:#111827;margin:0 0 8px;line-height:1.3;}'; 1905 css += '#di-cookie-pref-dialog .di-cm__close{background:none;border:none;cursor:pointer;color:#9ca3af;font-size:22px;line-height:1;padding:0;flex-shrink:0;margin-top:2px;transition:color .15s ease;}'; 1906 css += '#di-cookie-pref-dialog .di-cm__close:hover{color:#374151;}'; 1907 css += '#di-cookie-pref-dialog .di-cm__desc{font-size:13px;color:#6b7280;margin:0;line-height:1.55;padding:0 24px;}'; 1908 css += '#di-cookie-pref-dialog .di-cm__desc a{color:var(--di-cb-primary);text-decoration:underline;}'; 1909 css += '#di-cookie-pref-dialog .di-cm__rows{margin-top:16px;border-top:1px solid #f3f4f6;}'; 1910 css += '#di-cookie-pref-dialog .di-cm__item{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 24px;border-bottom:1px solid #f3f4f6;}'; 1911 css += '#di-cookie-pref-dialog .di-cm__item-info{flex:1;}'; 1912 css += '#di-cookie-pref-dialog .di-cm__item-label{font-size:14px;font-weight:600;color:#111827;margin:0 0 4px;}'; 1913 css += '#di-cookie-pref-dialog .di-cm__item-desc{font-size:12px;color:#6b7280;margin:0;line-height:1.5;}'; 1914 css += '#di-cookie-pref-dialog .di-cm__toggle-wrap{flex-shrink:0;position:relative;width:44px;height:24px;margin-top:2px;}'; 1915 css += '#di-cookie-pref-dialog .di-cm__toggle-wrap input{opacity:0;width:0;height:0;position:absolute;}'; 1916 css += '#di-cookie-pref-dialog .di-cm__toggle-track{position:absolute;inset:0;background:#d1d5db;border-radius:999px;cursor:pointer;transition:background .2s ease;}'; 1917 css += '#di-cookie-pref-dialog .di-cm__toggle-track::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .2s ease;}'; 1918 css += '#di-cookie-pref-dialog .di-cm__toggle-wrap input:checked+.di-cm__toggle-track{background:var(--di-cb-primary);}'; 1919 css += '#di-cookie-pref-dialog .di-cm__toggle-wrap input:checked+.di-cm__toggle-track::after{transform:translateX(20px);}'; 1920 css += '#di-cookie-pref-dialog .di-cm__footer{display:flex;gap:8px;padding:16px 24px;flex-wrap:wrap;}'; 1921 css += '#di-cookie-pref-dialog .di-cm__btn{cursor:pointer;font-size:14px;font-weight:500;padding:10px 16px;border-radius:var(--di-cb-radius);border:1px solid transparent;line-height:1;white-space:nowrap;flex:1;transition:background .2s ease,color .2s ease,opacity .2s ease;}'; 1922 css += '#di-cookie-pref-dialog .di-cm__btn--cancel{background:transparent;border-color:#d1d5db;color:#374151;}'; 1923 css += '#di-cookie-pref-dialog .di-cm__btn--cancel:hover{background:#f9fafb;}'; 1924 css += '#di-cookie-pref-dialog .di-cm__btn--reject{background:transparent;border-color:var(--di-cb-primary);color:var(--di-cb-primary);}'; 1925 css += '#di-cookie-pref-dialog .di-cm__btn--reject:hover{background:var(--di-cb-primary);color:#fff;}'; 1926 css += '#di-cookie-pref-dialog .di-cm__btn--submit{background:var(--di-cb-primary);border-color:var(--di-cb-primary);color:#fff;}'; 1927 css += '#di-cookie-pref-dialog .di-cm__btn--submit:hover{opacity:.88;}'; 1928 css += '#di-cookie-pref-dialog .di-cm__policy{padding:0 24px 16px;font-size:11px;color:#9ca3af;}'; 1929 css += '#di-cookie-pref-dialog .di-cm__policy a{color:#9ca3af;text-decoration:underline;}'; 1930 css += '#di-cookie-pref-dialog .di-cm__policy a:hover{color:#6b7280;}'; 1931 1932 style.textContent = css; 1933 document.head.appendChild(style); 1934 } 1935 1936 // âââ modal âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 1937 1938 function privacy_cb_createDialog() { 1939 1940 var dialog = privacy_cb_el('dialog', { id: 'di-cookie-pref-dialog' }); 1941 dialog.style.setProperty('--di-cb-primary', privacy_config.primaryColor); 1942 dialog.style.setProperty('--di-cb-radius', privacy_config.buttonRadius); 1943 dialog.style.setProperty('--di-cb-font', privacy_config.fontFamily); 1944 1945 dialog.addEventListener('click', function (e) { 1946 var r = dialog.getBoundingClientRect(); 1947 if (e.clientX < r.left || e.clientX > r.right || e.clientY < r.top || e.clientY > r.bottom) privacy_cb_removeModal(); 1948 }); 1949 dialog.addEventListener('cancel', function (e) { e.preventDefault(); privacy_cb_removeModal(); }); 1950 1951 var titleRow = privacy_cb_el('div', { className: 'di-cm__title-row' }); 1952 var titleEl = privacy_cb_el('p', { className: 'di-cm__title', textContent: privacy_config.modalTitle }); 1953 var closeBtn = privacy_cb_el('button', { className: 'di-cm__close', type: 'button', innerHTML: 'Ã' }); 1954 closeBtn.setAttribute('aria-label', 'Close'); 1955 closeBtn.addEventListener('click', privacy_cb_removeModal); 1956 titleRow.appendChild(titleEl); 1957 titleRow.appendChild(closeBtn); 1958 1959 var header = privacy_cb_el('div', { className: 'di-cm__header' }); 1960 header.appendChild(titleRow); 1961 1962 var desc = privacy_cb_el('p', { className: 'di-cm__desc' }); 1963 desc.appendChild(document.createTextNode(privacy_config.modalDesc + ' ')); 1964 desc.appendChild(privacy_cb_el('a', { href: privacy_config.privacyPolicyUrl, textContent: 'Privacy Policy' })); 1965 desc.appendChild(document.createTextNode('.')); 1966 1967 var rows = privacy_cb_el('div', { className: 'di-cm__rows' }); 1968 var toggleInputs = [];
1969 privacy_config.categories.forEach(function (cat) { 1970 var row = privacy_cb_el('div', { className: 'di-cm__item' }); 1971 var info = privacy_cb_el('div', { className: 'di-cm__item-info' }); 1972 var lbl = privacy_cb_el('p', { className: 'di-cm__item-label', textContent: cat.label }); 1973 var dsc = privacy_cb_el('p', { className: 'di-cm__item-desc', textContent: cat.description }); 1974 var wrap = privacy_cb_el('label', { className: 'di-cm__toggle-wrap' }); 1975 var input = privacy_cb_el('input', { type: 'checkbox', id: 'di-cm-' + cat.id + '-toggle', checked: cat.defaultOn !== false }); 1976 var track = privacy_cb_el('span', { className: 'di-cm__toggle-track' }); 1977 toggleInputs.push(input); 1978 info.appendChild(lbl); info.appendChild(dsc); 1979 wrap.appendChild(input); wrap.appendChild(track); 1980 row.appendChild(info); row.appendChild(wrap); 1981 rows.appendChild(row); 1982 }); 1983 1984 var footer = privacy_cb_el('div', { className: 'di-cm__footer' }); 1985 var cancelBtn = privacy_cb_el('button', { className: 'di-cm__btn di-cm__btn--cancel', type: 'button', textContent: privacy_config.cancelLabel }); 1986 var rejectBtn = privacy_cb_el('button', { className: 'di-cm__btn di-cm__btn--reject', type: 'button', textContent: privacy_config.rejectLabel }); 1987 rejectBtn.setAttribute('data-event', 'consent_reject'); 1988 var submitBtn = privacy_cb_el('button', { className: 'di-cm__btn di-cm__btn--submit', type: 'button', textContent: privacy_config.submitLabel }); 1989 function privacy_cb_updateSubmitEvent() { 1990 var anyOff = toggleInputs.some(function (t) { return !t.checked; }); 1991 submitBtn.setAttribute('data-event', anyOff ? 'consent_reject' : 'consent_accept'); 1992 } 1993 privacy_cb_updateSubmitEvent(); 1994 toggleInputs.forEach(function (t) { t.addEventListener('change', privacy_cb_updateSubmitEvent); }); 1995 cancelBtn.addEventListener('click', privacy_cb_removeModal); 1996 rejectBtn.addEventListener('click', privacy_cb_rejectAll); 1997 submitBtn.addEventListener('click', privacy_cb_savePreferences); 1998 footer.appendChild(cancelBtn); footer.appendChild(rejectBtn); footer.appendChild(submitBtn); 1999 2000 var policyFooter = privacy_cb_el('div', { className: 'di-cm__policy' }); 2001 policyFooter.appendChild(privacy_cb_el('a', { href: privacy_config.privacyPolicyUrl, textContent: 'Privacy Policy' })); 2002 2003 dialog.appendChild(header); 2004 dialog.appendChild(desc); 2005 dialog.appendChild(rows); 2006 dialog.appendChild(footer); 2007 dialog.appendChild(policyFooter); 2008 return dialog; 2009 } 2010 2011 function privacy_cb_openModal() { 2012 var dialog = document.getElementById('di-cookie-pref-dialog'); 2013 if (dialog) dialog.showModal(); 2014 } 2015 2016 // âââ banner ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 2017 2018 function privacy_cb_createBanner() { 2019 2020 var wrap = privacy_cb_el('div', { id: 'di-consent-banner' }); 2021 var inner = privacy_cb_el('div', { className: 'di-cb__inner' }); 2022 var p = privacy_cb_el('p', { className: 'di-cb__text' }); 2023 2024 var match = privacy_config.bannerText.match(/^([\s\S]*?)\[([^\]]+)\]([\s\S]*)$/); 2025 if (match) { 2026 p.appendChild(document.createTextNode(match[1])); 2027 p.appendChild(privacy_cb_el('a', { className: 'di-cb__learn', href: privacy_config.privacyPolicyUrl, textContent: match[2] })); 2028 p.appendChild(document.createTextNode(match[3])); 2029 } else { 2030 p.textContent = privacy_config.bannerText; 2031 } 2032 2033 var actions = privacy_cb_el('div', { className: 'di-cb__actions' }); 2034 var secondary = privacy_config.variant === 'manage' 2035 ? privacy_cb_el('button', { className: 'di-cb__btn di-cb__btn--secondary', type: 'button', textContent: privacy_config.manageLabel }) 2036 : privacy_cb_el('button', { className: 'di-cb__btn di-cb__btn--secondary', type: 'button', textContent: privacy_config.declineLabel }); 2037 if (privacy_config.variant !== 'manage') secondary.setAttribute('data-event', 'consent_reject'); 2038 var acceptBtn = privacy_cb_el('button', { className: 'di-cb__btn di-cb__btn--primary', type: 'button', textContent: privacy_config.acceptLabel }); 2039 acceptBtn.setAttribute('data-event', 'consent_accept'); 2040 2041 secondary.addEventListener('click', privacy_config.variant === 'manage' ? privacy_cb_openModal : privacy_cb_reject); 2042 acceptBtn.addEventListener('click', privacy_cb_accept); 2043 2044 actions.appendChild(secondary); 2045 actions.appendChild(acceptBtn); 2046 inner.appendChild(p); 2047 inner.appendChild(actions); 2048 wrap.appendChild(inner); 2049 return wrap; 2050 } 2051 2052 // âââ init ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 2053 2054 function privacy_cb_init() { 2055 2056 if (!document.body) { 2057 document.addEventListener('DOMContentLoaded', privacy_cb_init, { once: true }); 2058 return; 2059 } 2060 2061 privacy_config = Object.assign({}, privacy_config_defaults, window.privacy_config || {}); 2062 if (window.privacy_allow && window.privacy_allow.disabled === true) return; 2063 if (!window.DiPrivacy || window.DiPrivacy.consent !== 'pending' || window.DiPrivacy.gpcEnabled) { 2064 var signals = []; 2065 2066 if (navigator.globalPrivacyControl === true) { 2067 signals.push('navigator.globalPrivacyControl'); 2068 } 2069 if (window.matchMedia && window.matchMedia('(global-privacy-control: 1)').matches) { 2070 signals.push('matchMedia(global-privacy-control: 1)'); 2071 } 2072 var dnt = navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack; 2073 if (dnt === '1' || dnt === 'yes') { 2074 signals.push('doNotTrack (' + dnt + ')'); 2075 } 2076 2077 if (signals.length) { 2078 console.log('[Privacy] GPC/DNT active via: ' + signals.join(', ')); 2079 } else { 2080 console.log('[Privacy] No GPC/DNT signals active â early return triggered by DiPrivacy state (consent=' + 2081 (window.DiPrivacy && window.DiPrivacy.consent) + ', gpcEnabled=' + 2082 (window.DiPrivacy && window.DiPrivacy.gpcEnabled) + ')'); 2083 } 2084 return; 2085 } 2086 privacy_cb_injectStyles(); 2087 document.body.appendChild(privacy_cb_createDialog()); 2088 var banner = privacy_cb_createBanner(); 2089 banner.style.setProperty('--di-cb-primary', privacy_config.primaryColor); 2090 banner.style.setProperty('--di-cb-bg', privacy_config.bgColor); 2091 banner.style.setProperty('--di-cb-text', privacy_config.textColor); 2092 banner.style.setProperty('--di-cb-font', privacy_config.fontFamily); 2093 banner.style.setProperty('--di-cb-radius', privacy_config.buttonRadius); 2094 document.body.appendChild(banner); 2095 } 2096 2097 if (document.readyState === 'loading') { 2098 document.addEventListener('DOMContentLoaded', privacy_cb_init, { once: true }); 2099 } else if (document.body) { 2100 privacy_cb_init(); 2101 } else { 2102 document.addEventListener('DOMContentLoaded', privacy_cb_init, { once: true }); 2103 } 2104 2105 })(); 2106</script>
2106 2107<!--
2107<script>FontAwesomeConfig = {searchPseudoElements: true};</script>
2107 -->
2108<script> 2109 javascript_deferred.prototype[get_deferred_id()] = function() { 2110 $.getScript('https://www.googletagmanager.com/gtag/js?id=UA-115059782-1'); 2111 window.dataLayer = window.dataLayer || []; 2112 google_tracking.gtag('js', new Date()); 2113 google_tracking.gtag('config', 'UA-115059782-1'); 2114 } 2115 javascript_deferred.prototype[get_deferred_id()] = function() { 2116 $.getScript('https://www.googletagmanager.com/gtag/js?id=UA-159383978-1'); 2117 window.dataLayer = window.dataLayer || []; 2118 google_tracking.gtag('js', new Date()); 2119 google_tracking.gtag('config', 'UA-159383978-1'); 2120 } 2121 javascript_deferred.prototype[get_deferred_id()] = function() {
vendor: 362 bytes, lines 2121-2126
2121 2122 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 2123 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 2124 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 2125 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 2126 })(window,document,'script','dataLayer','
2126GTM-MTXCMGL
vendor: 7 bytes, lines 2126-2127
2126'); 2127
2127} 2128 javascript_deferred.prototype[get_deferred_id()] = function() { 2129 $.getScript('https://apps.elfsight.com/p/platform.js'); 2130 } 2131 javascript.prototype[get_id()] = function() { 2132 $.getScript('/custom/js/jquery.waypoints.min.js').done(function() { 2133 2134 var animated = $('.animate'); 2135 2136 animated.waypoint(function(direction) { 2137 if (direction === 'down') { 2138 this.element.classList.add('active'); 2139 } 2140 }, { 2141 offset: '60% from top' 2142 }); 2143 2144 animated.waypoint(function(direction) { 2145 if (direction === 'down') { 2146 this.element.classList.remove('active'); 2147 } 2148 }, { 2149 offset: '-10% from top' 2150 }); 2151 2152 animated.waypoint(function(direction) { 2153 if (direction === 'up') { 2154 this.element.classList.add('active'); 2155 } 2156 }, { 2157 offset: '5% from top' 2158 }); 2159 2160 animated.waypoint(function(direction) { 2161 if (direction === 'up') { 2162 this.element.classList.remove('active'); 2163 } 2164 }, { 2165 offset: '90% from top' 2166 }); 2167 }) 2168 } 2169 javascript_deferred.prototype[get_deferred_id()] = function() { 2170 (function(d, s, id) { 2171 var js, fjs = d.getElementsByTagName(s)[0]; 2172 if (d.getElementById(id)) return; 2173 js = d.createElement(s); 2174 js.id = id; js.src = 'https://www.localmed.com/assets/web/js/widget.js'; 2175 fjs.parentNode.insertBefore(js, fjs); 2176 }(document, 'script', 'localmed-wjs')); 2177 } 2178 javascript_deferred.prototype[get_deferred_id()] = function() { 2179 window.chatBotData = { id: '1c1df4a7-e3a7-4af6-b1eb-6b6d139a65e9', width: '450px', height: '850px' } 2180 $.getScript('https://app.dasconsultantsusa.com/chat.script.js'); 2181 } 2182</script>
2182 2183 2184<!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 2184-2185
2184 2185<script async src="https://www.googletagmanager.com/gtag/js?id=
2185G-82MJ3H2Z6H
vendor: 12 bytes, line 2185
2185"></script>
2186<script> 2187
vendor: 134 bytes, lines 2187-2191
2187window.dataLayer = window.dataLayer || []; 2188 function gtag(){dataLayer.push(arguments);} 2189 gtag('js', new Date()); 2190 2191 gtag('config', '
2191G-82MJ3H2Z6H
vendor: 4 bytes, line 2191
2191');
2192</script>
2192 2193 2194 2195 <link rel="canonical" href="https://mcleansmiles.com/"> 2196 2197 <meta name="description" content="At McleanSmiles, you can rest assured that your smile is in the very best of hands. Call (203) 916-5539 or (203) 364-5081 to schedule an appointment."> 2198 <meta name="keywords" content="Dentist in Bridgeport, Dental Office in Bridgeport, Stamford Cosmetic Dentist, Dentist 06604, Cosmetic Dentist near Bridgeport, Implants Dentist Bridgeport, Bridgeport Emergency Dentist, Pediatric Dentist Bridgeport, Family Dentist near Bridgeport, Laser Dentist Bridgeport, Bridgeport Same Day Dentures, ClearCorrect Braces near Bridgeport, Dental Office 06604, Dentist 06905, Stamford Cosmetic Dentist, Implants Dentist near Stamford, Emergency Dentist Stamford, Pediatric Dentist near Stamford, Family Dentist near Stamford, Laser Dentist Stamford, Stamford Same Day Dentures, ClearCorrect Braces near Stamford, Dental Office 06905"> 2199
2199<script type="application/ld+json">{"@context":"http:\/\/schema.org","@graph":[{"@type":"Dentist","name":"McLeanSmiles","contactPoint":[{"@type":"ContactPoint","areaServed":"McLeanSmiles - Stamford","telephone":"+12033276717"},{"@type":"ContactPoint","areaServed":"McLeanSmiles - Bridgeport","telephone":"+12035499099"}],"image":"https:\/\/mcleansmiles.com\/custom\/images\/logo.png","url":"https:\/\/mcleansmiles.com\/","priceRange":"$$$","location":[{"@type":"Dentist","parentOrganization":{"name":"McLeanSmiles"},"name":"McLeanSmiles - Stamford","image":"https:\/\/mcleansmiles.com\/custom\/images\/logo.png","address":{"@type":"PostalAddress","streetAddress":"23 Hoyt St Suite 2","addressLocality":"Stamford","addressRegion":"CT","postalCode":"06905"},"hasMap":"https:\/\/www.google.com\/maps?cid=10401270431249404763","openingHoursSpecification":[{"@type":"OpeningHoursSpecification","dayOfWeek":["Monday","Thursday"],"opens":"08:30","closes":"17:30"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Tuesday","opens":"07:00","closes":"19:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Wednesday","opens":"08:00","closes":"19:00"}],"location":{"@type":"Place","geo":{"@type":"GeoCoordinates","latitude":"41.0604949","longitude":"-73.5396974"}},"telephone":"+12033276717","url":"https:\/\/mcleansmiles.com\/locations\/stamford\/","priceRange":"$$$"},{"@type":"Dentist","parentOrganization":{"name":"McLeanSmiles"},"name":"McLeanSmiles - Bridgeport","image":"https:\/\/mcleansmiles.com\/custom\/images\/logo.png","address":{"@type":"PostalAddress","streetAddress":"3738 Park Ave","addressLocality":"Bridgeport","addressRegion":"CT","postalCode":"06604"},"hasMap":"https:\/\/www.google.com\/maps?cid=17745529936675503172","openingHoursSpecification":[{"@type":"OpeningHoursSpecification","dayOfWeek":["Monday","Thursday"],"opens":"08:00","closes":"17:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Thursday","opens":"09:00","closes":"18:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Friday","opens":"07:00","closes":"12:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Saturday","opens":"08:00","closes":"13:00"}],"location":{"@type":"Place","geo":{"@type":"GeoCoordinates","latitude":"41.20647","longitude":"-73.2261391"}},"telephone":"+12035499099","url":"https:\/\/mcleansmiles.com\/locations\/bridgeport\/","priceRange":"$$$"}]}]}</script>
2199 2200 <style>body { 2201 border: 0px; 2202 padding: 0px; 2203 margin: 0px; 2204 font-family: "arial"; 2205 font-size: 16px; 2206 letter-spacing: 0.25px; 2207 word-spacing: 0.5px; 2208 font-weight: normal; 2209 background: white; 2210 box-sizing: border-box; 2211 width: 100%; 2212 height: 100%; 2213 -webkit-tap-highlight-color: rgba(0,0,0,0); 2214 text-rendering: optimizeSpeed !important; 2215 display: flex; 2216 flex-wrap: wrap; 2217} 2218body::after { 2219 content: ''; 2220 clear: both; 2221 visibility: hidden; 2222 display: block; 2223} 2224@media (max-width: 360px) { 2225 body { 2226 overflow-x: hidden; 2227 } 2228} 2229body > section { 2230 float: left; 2231 width: 100%; 2232 position: relative; 2233 z-index: 10; 2234 box-sizing: border-box; 2235 display: inline-block; 2236 flex-basis: 100%; 2237} 2238body a { 2239 text-decoration: none; 2240 color: inherit; 2241 transition: color 0.4s; 2242} 2243body a:hover { 2244 color: #0a82d2; 2245} 2246body a svg { 2247 pointer-events: none; 2248} 2249body p { 2250 margin: 1rem 0px; 2251 line-height: 1.6rem; 2252} 2253body img { 2254 max-width: 100%; 2255 max-height: 100%; 2256 image-rendering: -webkit-optimize-contrast; 2257} 2258body picture { 2259 max-width: 100%; 2260 max-height: 100%; 2261} 2262body h1, 2263body h2, 2264body h3, 2265body h4, 2266body h5, 2267body h6 { 2268 margin: 1rem 0px; 2269} 2270body h1 { 2271 font-size: 5rem; 2272} 2273body h2 { 2274 font-size: 4rem; 2275} 2276body h3 { 2277 font-size: 3rem; 2278} 2279body h4 { 2280 font-size: 2rem; 2281} 2282body h5, 2283body h6 { 2284 font-size: 1rem; 2285} 2286body sup { 2287 font-size: 0.75rem; 2288 line-height: 0px; 2289} 2290body li { 2291 line-height: 1.6rem; 2292} 2293body iframe { 2294 width: 100%; 2295 margin: 0px; 2296 padding: 0px; 2297 border: 0px; 2298} 2299body iframe:not([height]) { 2300 height: 100%; 2301} 2302body picture { 2303 max-width: 100%; 2304 max-height: 100%; 2305} 2306body .button { 2307 padding: 20px 40px; 2308 display: inline-block; 2309 cursor: pointer; 2310 transition: background 0.4s, color 0.4s; 2311 margin: 1rem 0px; 2312 text-align: center; 2313 line-height: 1.6rem; 2314 box-sizing: border-box; 2315} 2316@media (max-width: 640px) { 2317 body .button { 2318 padding: 20px; 2319 } 2320} 2321body .float-left { 2322 float: left; 2323} 2324body .float-right { 2325 float: right; 2326} 2327body .position-center { 2328 display: inline-block; 2329 position: relative; 2330 left: 50%; 2331 transform: translate(-50%); 2332} 2333body .clear { 2334 clear: both; 2335} 2336body .inline-block { 2337 display: inline-block; 2338} 2339body .flex { 2340 display: flex; 2341} 2342body .background_container { 2343 position: relative; 2344 overflow: hidden; 2345} 2346body .background_container .background_image { 2347 position: absolute; 2348 min-width: 100%; 2349 min-height: 100%; 2350 transform: translate(-50%,-50%); 2351 left: 50%; 2352 top: 50%; 2353 object-fit: cover; 2354 height: inherit; 2355 width: 100%; 2356 height: 100%; 2357} 2358body .background_container .background_image * { 2359 width: 100%; 2360 object-fit: cover; 2361 object-position: inherit; 2362 height: inherit; 2363} 2364body section[data-type="system-lightbox-container"] { 2365 position: fixed; 2366 width: 100%; 2367 height: 100%; 2368 top: 0px; 2369 left: 0px; 2370 z-index: 99999; 2371 display: flex; 2372 opacity: 0; 2373 pointer-events: none; 2374 transition: opacity 0.4s; 2375 -webkit-user-select: none; 2376 -moz-user-select: none; 2377 -ms-user-select: none; 2378 user-select: none; 2379} 2380body section[data-type="system-lightbox-container"].show { 2381 opacity: 1; 2382 pointer-events: initial; 2383} 2384body section[data-module="ad_tracking"] { 2385 display: none; 2386} 2387body form input[type="submit"] { 2388 display: none; 2389} 2390body form section[data-type="system-lightbox-content"] { 2391 display: none; 2392} 2393body form [data-hidden="1"] { 2394 display: none; 2395} 2396body form input[type="file"] { 2397 display: none; 2398} 2399body form div[data-container="file"] { 2400 margin: 5px; 2401 transition: opacity 0.4s; 2402} 2403body form div[data-container="file"].disabled { 2404 opacity: 0.2; 2405 pointer-events: none; 2406} 2407body form [data-container="file"] label { 2408 display: inline-block; 2409 cursor: pointer; 2410 line-height: 1.6rem; 2411 box-sizing: border-box; 2412 border-radius: 3px; 2413 transition: all .75s ease; 2414 background-size: 500% 500%; 2415 background-position: -2px -2px; 2416 padding: 20px 40px; 2417 color: white; 2418 position: relative; 2419} 2420body form [data-container="file"] label:hover { 2421 background-position: bottom right; 2422} 2423body form [data-container="file"] label .remove_file { 2424 position: absolute; 2425 top: -5px; 2426 left: -5px; 2427 width: 24px; 2428 height: 24px; 2429 background-color: white; 2430 border-radius: 50%; 2431 display: flex; 2432 justify-content: center; 2433 align-items: center; 2434 color: black; 2435 box-shadow: 1px 1px 5px rgba(0,0,0,0.4); 2436 font-size: 1rem; 2437} 2438body form div[data-group="file"] { 2439 display: flex; 2440 flex: 0 0 auto; 2441 width: calc(100% - 20px); 2442 margin: 10px 10px; 2443 flex-wrap: wrap; 2444 justify-content: center; 2445 user-select: none; 2446 transition: opacity 0.4s; 2447} 2448body form div[data-group="file"] > div { 2449 display: flex; 2450 flex-wrap: wrap; 2451 justify-content: center; 2452} 2453body form div[data-group="file"] .max_size_container { 2454 width: 100%; 2455 display: flex; 2456 justify-content: center; 2457 padding: 10px 20px; 2458 box-sizing: border-box; 2459 border: 3px solid #fbfbfb; 2460 border-radius: 3px; 2461 transition: background-color 0.4s, border 0.4s; 2462 margin-top: 20px; 2463} 2464body form div[data-group="file"] .max_size_container .size_divider { 2465 display: inline-block; 2466 margin: 0px 5px; 2467} 2468body form div[data-group="file"] .max_size_container .current_size_warning { 2469 display: none; 2470 margin-right: 10px; 2471 font-size: 24px; 2472} 2473body form div[data-group="file"] .max_size_container .current_size_ok { 2474 display: inline-block; 2475 margin-right: 10px; 2476 font-size: 24px; 2477} 2478body form div[data-group="file"] .too_large { 2479 color: #c40000; 2480 font-weight: bold; 2481 box-sizing: border-box; 2482 border: 3px solid #c40000; 2483 background-color: #c40000; 2484 color: white; 2485} 2486body form div[data-group="file"] .too_large .current_size_warning { 2487 display: inline-block; 2488} 2489body form div[data-group="file"] .too_large .current_size_ok { 2490 display: none; 2491} 2492body form [data-type='submit'].disabled { 2493 opacity: 0.2; 2494 pointer-events: none; 2495} 2496body form[action="https://maps.google.com/maps"] input[type="submit"] { 2497 display: initial; 2498 padding: 5px 10px; 2499 font-size: 1rem; 2500 box-sizing: border-box; 2501 border: 1px solid grey; 2502}
2503body form[action="https://maps.google.com/maps"] input#saddr { 2504 border: 1px solid grey; 2505 margin: 0px 10px; 2506 font-size: 1rem; 2507 padding: 5px 10px; 2508 box-sizing: border-box; 2509} 2510body .ui-widget.ui-widget-content { 2511 border: 0px; 2512} 2513body .ui-datepicker-flex { 2514 display: flex !important; 2515 background-color: rgba(0,0,0,0.95); 2516 position: fixed !important; 2517 top: 0px !important; 2518 left: 0px !important; 2519 z-index: 1000 !important; 2520 width: 100%; 2521 height: 100%; 2522 color: white; 2523 display: none; 2524 flex-direction: column; 2525 justify-content: center; 2526 align-items: center; 2527} 2528body .ui-datepicker-flex th, 2529body .ui-datepicker-flex td { 2530 width: 50px; 2531 height: 50px; 2532 box-sizing: border-box; 2533 text-align: center; 2534 font-size: 1.25rem; 2535 padding: 0px; 2536} 2537body .ui-datepicker-flex th a, 2538body .ui-datepicker-flex td a { 2539 padding: 0px; 2540} 2541@media (max-width: 320px) { 2542 body .ui-datepicker-flex th, 2543 body .ui-datepicker-flex td { 2544 width: 40px; 2545 height: 40px; 2546 font-size: 1rem; 2547 } 2548} 2549body .ui-datepicker-flex .ui-datepicker-header { 2550 display: flex; 2551 justify-content: center; 2552 width: 350px; 2553 border: 0px; 2554 border-bottom: 1px solid white; 2555 border-radius: 0px; 2556 background: initial; 2557 color: white; 2558} 2559body .ui-datepicker-flex .ui-datepicker-header .ui-datepicker-prev { 2560 order: 0; 2561} 2562body .ui-datepicker-flex .ui-datepicker-header .ui-datepicker-title { 2563 order: 1; 2564} 2565body .ui-datepicker-flex .ui-datepicker-header .ui-datepicker-next { 2566 order: 2; 2567} 2568body .ui-datepicker-flex .ui-widget-header .ui-state-hover { 2569 background: white; 2570 border-radius: 0px; 2571} 2572body .ui-datepicker-flex .ui-datepicker-calendar { 2573 width: 350px; 2574} 2575body .ui-datepicker-flex .ui-datepicker-calendar .ui-state-default { 2576 background: initial; 2577 color: white; 2578 border: 0px; 2579 text-align: center; 2580} 2581body .ui-datepicker-flex .ui-datepicker-calendar .ui-datepicker-current-day { 2582 background-color: white; 2583 border-radius: 50%; 2584} 2585body .ui-datepicker-flex .ui-datepicker-calendar .ui-datepicker-current-day a { 2586 color: black; 2587} 2588body .sidebar[data-sidebar="false"] { 2589 display: none; 2590} 2591body .sidebar[data-sidebar="true"] { 2592 flex-basis: 280px; 2593 width: 100%; 2594 flex-grow: 1; 2595 flex-shrink: 0; 2596 margin-left: 40px; 2597 box-sizing: border-box; 2598} 2599body .sidebar[data-sidebar="true"] img, 2600body .sidebar[data-sidebar="true"] picture { 2601 border-radius: 5px; 2602} 2603body .sidebar[data-sidebar="true"] > .label { 2604 font-size: 1.25rem; 2605 margin: 1.5rem 0px 0.5rem; 2606 border-bottom: 1px solid #ececec; 2607 padding-bottom: 0.5rem; 2608} 2609body .sidebar[data-sidebar="true"] div[data-sidebar="address_all"] { 2610 padding: 1rem 0rem; 2611} 2612body .sidebar[data-sidebar="true"] div[data-sidebar="address_all"] > div { 2613 line-height: 1.6rem; 2614} 2615body .sidebar[data-sidebar="true"] div[data-sidebar="address_current"] { 2616 padding: 1rem 0rem; 2617} 2618body .sidebar[data-sidebar="true"] div[data-sidebar="address_current"] > div { 2619 line-height: 1.6rem; 2620} 2621body .sidebar[data-sidebar="true"] div[data-sidebar="social_current"], 2622body .sidebar[data-sidebar="true"] div[data-micro-template="social_icons_dynamic"] { 2623 display: flex; 2624} 2625body .sidebar[data-sidebar="true"] div[data-sidebar="social_current"] div.title, 2626body .sidebar[data-sidebar="true"] div[data-micro-template="social_icons_dynamic"] div.title { 2627 margin-bottom: 10px; 2628} 2629body .sidebar[data-sidebar="true"] div[data-sidebar="social_current"] div[data-micro-template="social_icons"], 2630body .sidebar[data-sidebar="true"] div[data-micro-template="social_icons_dynamic"] div[data-micro-template="social_icons"] { 2631 display: flex; 2632 width: 50px; 2633 height: 50px; 2634} 2635body .sidebar[data-sidebar="true"] div[data-sidebar="social_current"] div[data-micro-template="social_icons"] a, 2636body .sidebar[data-sidebar="true"] div[data-micro-template="social_icons_dynamic"] div[data-micro-template="social_icons"] a { 2637 font-size: 1.6rem; 2638 display: flex; 2639 width: 100%; 2640 height: 100%; 2641 justify-content: center; 2642 align-items: center; 2643} 2644body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours"], 2645body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours_dynamic"] { 2646 display: flex; 2647 flex-direction: row; 2648 flex-wrap: wrap; 2649 padding: 1rem 0px; 2650} 2651body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours"] > div.title, 2652body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours_dynamic"] > div.title { 2653 margin-bottom: 10px; 2654} 2655body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours"] .row, 2656body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours_dynamic"] .row { 2657 display: flex; 2658 flex: 1 0 100%; 2659} 2660body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours"] .row .day, 2661body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours_dynamic"] .row .day { 2662 flex: 1 0 40%; 2663 line-height: 1.6rem; 2664} 2665body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours"] .row .time, 2666body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours_dynamic"] .row .time { 2667 flex: 1 0 60%; 2668 text-align: right; 2669 line-height: 1.6rem; 2670} 2671body .sidebar[data-sidebar="true"] div[data-sidebar="blogs_by_year"] { 2672 padding: 1rem 20px; 2673} 2674body .sidebar[data-sidebar="true"] div[data-sidebar="blogs_by_year"] ul { 2675 list-style: initial; 2676 margin: initial; 2677 padding: initial; 2678} 2679body .sidebar[data-sidebar="true"] div[data-sidebar="blogs_by_year"] ul li:not(:last-of-type) { 2680 margin-bottom: 10px; 2681} 2682body .sidebar[data-sidebar="true"] div[data-sidebar="related_blogs"] { 2683 padding: 1rem 20px; 2684} 2685body .sidebar[data-sidebar="true"] div[data-sidebar="related_blogs"] ul { 2686 list-style: initial; 2687 margin: initial; 2688 padding: initial; 2689} 2690body .sidebar[data-sidebar="true"] div[data-sidebar="related_blogs"] ul li:not(:last-of-type) { 2691 margin-bottom: 10px; 2692} 2693@media (max-width: 920px) { 2694 body .sidebar[data-sidebar="true"] { 2695 flex-basis: 100%; 2696 max-width: 100%; 2697 margin-left: 0px; 2698 margin-top: 1rem; 2699 justify-content: center; 2700 text-align: center; 2701 } 2702 body .sidebar[data-sidebar="true"] div[data-sidebar] { 2703 justify-content: center; 2704 } 2705 body .sidebar[data-sidebar="true"] div[data-sidebar="related_blogs"] ul, 2706 body .sidebar[data-sidebar="true"] div[data-sidebar="blogs_by_year"] ul { 2707 list-style: none; 2708 } 2709 body .sidebar[data-sidebar="true"] div[data-sidebar="related_blogs"] ul, 2710 body .sidebar[data-sidebar="true"] div[data-sidebar="blogs_by_year"] ul { 2711 list-style: none; 2712 } 2713 body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours"] .row .day, 2714 body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours_dynamic"] .row .day { 2715 padding-right: 10px; 2716 box-sizing: border-box; 2717 flex: 1 0 50%; 2718 text-align: right; 2719 } 2720 body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours"] .row .time, 2721 body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours_dynamic"] .row .time { 2722 padding-left: 10px; 2723 box-sizing: border-box; 2724 flex: 1 0 50%; 2725 text-align: left; 2726 } 2727} 2728@media (max-width: 920px) and (max-width: 360px) { 2729 body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours"] .row .day, 2730 body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours_dynamic"] .row .day { 2731 flex: 1 0 40%; 2732 } 2733 body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours"] .row .time, 2734 body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours_dynamic"] .row .time { 2735 flex: 1 0 60%; 2736 } 2737} 2738@media (max-width: 1080px) { 2739 body section[data-module="blog_content"] .content_container,
2740 body section[data-module="article_content"] .content_container { 2741 flex-wrap: wrap; 2742 } 2743} 2744@media (max-width: 920px) { 2745 body section[data-module="dynamic_content"] .content_container, 2746 body section[data-module="interior_content"] .content_container { 2747 flex-wrap: wrap; 2748 } 2749} 2750</style> 2751 <link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin=""><link href="https://fonts.googleapis.com/css2?family=Rubik:wght@400;500;600&display=swap" rel="preload" as="style" onload="this.rel='stylesheet'"><link href="https://fonts.googleapis.com/css2?family=Yrsa:wght@400;600&display=swap" rel="preload" as="style" onload="this.rel='stylesheet'"><link href="https://fonts.googleapis.com/css?family=Poppins:400,700&display=swap" rel="preload" as="style" onload="this.rel='stylesheet'"></head> 2752 <body data-template-group="homepage"> 2753 <!-- Google Tag Manager (noscript) --> 2754<noscript><iframe src="" height="0" width="0" style="display:none;visibility:hidden" data-src="https://www.googletagmanager.com/ns.html?id=GTM-MTXCMGL" aria-label="iframe"></iframe></noscript> 2755 <!-- End Google Tag Manager (noscript) --><style>body { 2756 background: #fff; 2757 color: #6C675C; 2758 font-family: "Arial"; 2759} 2760body a { 2761 color: #4bc9f8; 2762} 2763body a:hover { 2764 color: #4bc9f8; 2765} 2766body h1 { 2767 font-family: "Helvetica"; 2768} 2769body h2 { 2770 font-family: "Helvetica"; 2771} 2772body h3 { 2773 font-family: "Helvetica"; 2774} 2775body h1, 2776body h2, 2777body h3, 2778body h4, 2779body h5, 2780body h6 { 2781 color: #09B0EE; 2782 font-weight: bold; 2783} 2784body input, 2785body textarea { 2786 font-family: "Arial"; 2787 border: 0px; 2788 border-radius: 0; 2789} 2790body input[type="text"], 2791body textarea { 2792 -webkit-appearance: none; 2793} 2794body .button { 2795 background: #09B0EE; 2796 color: #ff6000; 2797 font-size: 15px; 2798} 2799body .button:hover { 2800 background: #09B0EE; 2801 color: #4bc9f8; 2802} 2803body .text_background { 2804 color: #fff; 2805} 2806body .text_primary { 2807 color: #09B0EE; 2808} 2809body .text_secondary { 2810 color: #4bc9f8; 2811} 2812body .text_tertiary { 2813 color: #09B0EE; 2814} 2815body .background_background { 2816 background: #fff; 2817} 2818body .background_primary { 2819 background: #09B0EE; 2820} 2821body .background_secondary { 2822 background: #4bc9f8; 2823} 2824body .background_tertiary { 2825 background: #09B0EE; 2826} 2827body .item_float_right { 2828 float: right; 2829 margin: 0 0 15px 15px; 2830} 2831@media (max-width: 480px) { 2832 body .item_float_right { 2833 float: none; 2834 margin: 0 auto 10px; 2835 } 2836} 2837body .item_float_left { 2838 float: left; 2839 margin: 0 15px 15px 0; 2840} 2841@media (max-width: 480px) { 2842 body .item_float_left { 2843 float: none; 2844 margin: 0 auto 10px; 2845 } 2846} 2847body .margin_center { 2848 margin: 0 auto; 2849} 2850body .margin_left { 2851 margin: 0 auto 0 0; 2852} 2853body .margin_right { 2854 margin: 0 0 0 auto; 2855} 2856body .margin_bottom { 2857 margin: auto 0 0 0; 2858} 2859body .margin_top { 2860 margin: 0 0 auto 0; 2861} 2862body .sys_flex_container { 2863 display: flex; 2864 gap: 20px; 2865} 2866body .sys_flex_container.flex_wrap { 2867 flex-wrap: wrap; 2868} 2869@media (max-width: 1024px) { 2870 body .sys_flex_container.flex_wrap_tablet { 2871 flex-wrap: wrap; 2872 } 2873} 2874@media (max-width: 768px) { 2875 body .sys_flex_container.flex_wrap_phablet { 2876 flex-wrap: wrap; 2877 } 2878} 2879@media (max-width: 480px) { 2880 body .sys_flex_container.flex_wrap_phone { 2881 flex-wrap: wrap; 2882 } 2883} 2884body .sys_flex_container.justify_center { 2885 justify-content: center; 2886} 2887body .sys_flex_container.justify_start { 2888 justify-content: flex-start; 2889} 2890body .sys_flex_container.justify_end { 2891 justify-content: flex-end; 2892} 2893body .sys_flex_container.justify_around { 2894 justify-content: space-around; 2895} 2896body .sys_flex_container.justify_between { 2897 justify-content: space-between; 2898} 2899body .sys_flex_container.align_center { 2900 align-items: center; 2901} 2902body .sys_flex_container.align_start { 2903 align-items: flex-start; 2904} 2905body .sys_flex_container.align_end { 2906 align-items: flex-end; 2907} 2908body .sys_flex_container.align_stretch { 2909 align-items: stretch; 2910} 2911body .sys_flex_container > .full_width { 2912 flex-basis: 100%; 2913} 2914@media (max-width: 1024px) { 2915 body .sys_flex_container > .full_width_tablet { 2916 flex-basis: 100%; 2917 } 2918} 2919@media (max-width: 768px) { 2920 body .sys_flex_container > .full_width_phablet { 2921 flex-basis: 100%; 2922 } 2923} 2924@media (max-width: 480px) { 2925 body .sys_flex_container > .full_width_phone { 2926 flex-basis: 100%; 2927 } 2928} 2929body .sys_flex_container.flex_column { 2930 flex-direction: column; 2931} 2932@media (max-width: 1024px) { 2933 body .sys_flex_container.flex_column_tablet { 2934 flex-direction: column; 2935 } 2936} 2937@media (max-width: 768px) { 2938 body .sys_flex_container.flex_column_phablet { 2939 flex-direction: column; 2940 } 2941} 2942@media (max-width: 480px) { 2943 body .sys_flex_container.flex_column_phone { 2944 flex-direction: column; 2945 } 2946} 2947body .sys_grid_container { 2948 display: grid; 2949 gap: 20px; 2950} 2951body .sys_grid_container.two_wide { 2952 grid-template-columns: repeat(2,1fr); 2953} 2954body .sys_grid_container.three_wide { 2955 grid-template-columns: repeat(3,1fr); 2956} 2957body .sys_grid_container.four_wide { 2958 grid-template-columns: repeat(4,1fr); 2959} 2960body .sys_grid_container.five_wide { 2961 grid-template-columns: repeat(5,1fr); 2962} 2963@media (max-width: 1024px) { 2964 body .sys_grid_container.one_wide_tablet { 2965 grid-template-columns: repeat(1,1fr); 2966 } 2967} 2968@media (max-width: 1024px) { 2969 body .sys_grid_container.two_wide_tablet { 2970 grid-template-columns: repeat(2,1fr); 2971 } 2972} 2973@media (max-width: 1024px) { 2974 body .sys_grid_container.three_wide_tablet { 2975 grid-template-columns: repeat(3,1fr); 2976 } 2977} 2978@media (max-width: 1024px) { 2979 body .sys_grid_container.four_wide_tablet { 2980 grid-template-columns: repeat(4,1fr); 2981 } 2982} 2983@media (max-width: 1024px) { 2984 body .sys_grid_container.five_wide_tablet { 2985 grid-template-columns: repeat(5,1fr); 2986 } 2987} 2988@media (max-width: 768px) { 2989 body .sys_grid_container.one_wide_phablet { 2990 grid-template-columns: repeat(1,1fr); 2991 } 2992} 2993@media (max-width: 768px) { 2994 body .sys_grid_container.two_wide_phablet { 2995 grid-template-columns: repeat(2,1fr); 2996 } 2997} 2998@media (max-width: 768px) { 2999 body .sys_grid_container.three_wide_phablet { 3000 grid-template-columns: repeat(3,1fr); 3001 } 3002} 3003@media (max-width: 768px) { 3004 body .sys_grid_container.four_wide_phablet { 3005 grid-template-columns: repeat(4,1fr); 3006 } 3007} 3008@media (max-width: 768px) { 3009 body .sys_grid_container.five_wide_phablet { 3010 grid-template-columns: repeat(5,1fr); 3011 } 3012} 3013@media (max-width: 480px) { 3014 body .sys_grid_container.one_wide_phone { 3015 grid-template-columns: repeat(1,1fr); 3016 } 3017} 3018@media (max-width: 480px) { 3019 body .sys_grid_container.two_wide_phone { 3020 grid-template-columns: repeat(2,1fr); 3021 } 3022} 3023@media (max-width: 480px) { 3024 body .sys_grid_container.three_wide_phone { 3025 grid-template-columns: repeat(3,1fr); 3026 } 3027} 3028@media (max-width: 480px) { 3029 body .sys_grid_container.four_wide_phone { 3030 grid-template-columns: repeat(4,1fr); 3031 } 3032} 3033@media (max-width: 480px) { 3034 body .sys_grid_container.five_wide_phone { 3035 grid-template-columns: repeat(5,1fr); 3036 } 3037} 3038body .sys_grid_container > .full_width { 3039 grid-column: 1/-1; 3040} 3041@media (max-width: 1024px) { 3042 body .sys_grid_container > .full_width_tablet { 3043 grid-column: 1/-1; 3044 } 3045} 3046@media (max-width: 768px) { 3047 body .sys_grid_container > .full_width_phablet { 3048 grid-column: 1/-1; 3049 } 3050} 3051@media (max-width: 480px) { 3052 body .sys_grid_container > .full_width_phone { 3053 grid-column: 1/-1; 3054 } 3055} 3056body .sys_flex_container.no_gap, 3057body .sys_grid_container.no_gap { 3058 gap: 0; 3059} 3060body .sys_flex_container.medium_gap, 3061body .sys_grid_container.medium_gap { 3062 gap: 40px; 3063} 3064body .sys_flex_container.large_gap, 3065body .sys_grid_container.large_gap { 3066 gap: 80px; 3067} 3068@media (max-width: 1024px) { 3069 body .sys_flex_container.no_gap_tablet, 3070 body .sys_grid_container.no_gap_tablet { 3071 gap: 0px; 3072 } 3073} 3074@media (max-width: 1024px) { 3075 body .sys_flex_container.small_gap_tablet, 3076 body .sys_grid_container.small_gap_tablet { 3077 gap: 20px; 3078 } 3079} 3080@media (max-width: 1024px) { 3081 body .sys_flex_container.medium_gap_tablet, 3082 body .sys_grid_container.medium_gap_tablet { 3083 gap: 40px; 3084 } 3085} 3086@media (max-width: 1024px) { 3087 body .sys_flex_container.large_gap_tablet, 3088 body .sys_grid_container.large_gap_tablet { 3089 gap: 80px; 3090 } 3091} 3092@media (max-width: 768px) { 3093 body .sys_flex_container.no_gap_phablet, 3094 body .sys_grid_container.no_gap_phablet { 3095 gap: 0px; 3096 } 3097} 3098@media (max-width: 768px) { 3099 body .sys_flex_container.small_gap_phablet, 3100 body .sys_grid_container.small_gap_phablet { 3101 gap: 20px; 3102 } 3103} 3104@media (max-width: 768px) { 3105 body .sys_flex_container.medium_gap_phablet, 3106 body .sys_grid_container.medium_gap_phablet { 3107 gap: 40px; 3108 } 3109} 3110@media (max-width: 768px) { 3111 body .sys_flex_container.large_gap_phablet, 3112 body .sys_grid_container.large_gap_phablet { 3113 gap: 80px; 3114 } 3115} 3116@media (max-width: 480px) { 3117 body .sys_flex_container.no_gap_phone, 3118 body .sys_grid_container.no_gap_phone { 3119 gap: 0px; 3120 } 3121} 3122@media (max-width: 480px) { 3123 body .sys_flex_container.small_gap_phone, 3124 body .sys_grid_container.small_gap_phone { 3125 gap: 20px; 3126 } 3127} 3128@media (max-width: 480px) { 3129 body .sys_flex_container.medium_gap_phone, 3130 body .sys_grid_container.medium_gap_phone { 3131 gap: 40px; 3132 } 3133} 3134@media (max-width: 480px) { 3135 body .sys_flex_container.large_gap_phone, 3136 body .sys_grid_container.large_gap_phone { 3137 gap: 80px; 3138 } 3139} 3140body div[data-type="locations-social"] { 3141 color: white; 3142} 3143body div[data-type="locations-social"] a:hover {
3144 color: inherit; 3145} 3146body div[data-type="locations-social"] > div { 3147 transition: background 0.2s; 3148} 3149body div[data-type="locations-social"] div[data-type="facebook"] { 3150 background: #4267b2; 3151} 3152body div[data-type="locations-social"] div[data-type="facebook"]:hover { 3153 background: #6283c5; 3154 color: #ffffff; 3155} 3156body div[data-type="locations-social"] div[data-type="twitter"] { 3157 background: #1da1f2; 3158} 3159body div[data-type="locations-social"] div[data-type="twitter"]:hover { 3160 background: #4db5f5; 3161 color: #ffffff; 3162} 3163body div[data-type="locations-social"] div[data-type="google"] { 3164 background: #db4437; 3165} 3166body div[data-type="locations-social"] div[data-type="google"]:hover { 3167 background: #e36c62; 3168 color: #ffffff; 3169} 3170body div[data-type="locations-social"] div[data-type="instagram"] { 3171 background: #833ab4; 3172} 3173body div[data-type="locations-social"] div[data-type="instagram"]:hover { 3174 background: #9c58c9; 3175 color: #ffffff; 3176} 3177body div[data-type="locations-social"] div[data-type="blog"] { 3178 background: #833ab4; 3179} 3180body div[data-type="locations-social"] div[data-type="blog"]:hover { 3181 background: #9c58c9; 3182 color: #ffffff; 3183} 3184body .sidebar[data-sidebar="true"] > .label { 3185 font-size: 1.5rem; 3186 margin: 1.5rem 0px 0.5rem; 3187 border-bottom: 1px solid #09B0EE; 3188 padding-bottom: 0.5rem; 3189 font-weight: bold; 3190 color: #09B0EE; 3191 font-family: "Helvetica"; 3192} 3193body :-moz-placeholder { 3194 color: #6C675C; 3195 font-family: "Arial"; 3196 text-decoration: none; 3197 font-weight: normal; 3198 opacity: 0.8; 3199} 3200body ::-moz-placeholder { 3201 color: #6C675C; 3202 font-family: "Arial"; 3203 text-decoration: none; 3204 font-weight: normal; 3205 opacity: 0.8; 3206} 3207body ::-webkit-input-placeholder { 3208 color: #6C675C; 3209 font-family: "Arial"; 3210 text-decoration: none; 3211 font-weight: normal; 3212 opacity: 0.8; 3213} 3214body :-ms-input-placeholder { 3215 color: #6C675C; 3216 font-family: "Arial"; 3217 text-decoration: none; 3218 font-weight: normal; 3219 opacity: 0.8; 3220} 3221body form * { 3222 font-family: "Arial"; 3223 text-decoration: none; 3224 font-weight: normal; 3225 font-size: 1rem; 3226} 3227body form div[data-container="file"] { 3228 margin: 5px; 3229 transition: opacity 0.4s; 3230} 3231body form div[data-container="file"]:last-of-type label { 3232 background-image: linear-gradient(to bottom right,#09B0EE 25%,#4bc9f8 75%); 3233} 3234body form [data-container="file"] label { 3235 background-image: linear-gradient(to bottom right,#4bc9f8 25%,#09B0EE 75%); 3236} 3237body div[data-micro-template="accordion_container"] { 3238 width: 100%; 3239 max-width: 100%; 3240 font-family: "Arial"; 3241} 3242body div[data-micro-template="accordion_container"] div[data-micro-template="accordion"] .accordion_title { 3243 display: flex; 3244 justify-content: space-between; 3245 align-items: center; 3246 color: #09B0EE; 3247 cursor: pointer; 3248 border-bottom: 1px solid #6C675C; 3249 padding-bottom: 0px; 3250} 3251body div[data-micro-template="accordion_container"] div[data-micro-template="accordion"] .accordion_title .accordion_title_text, 3252body div[data-micro-template="accordion_container"] div[data-micro-template="accordion"] .accordion_title .accordion_toggle { 3253 font-size: 1.5rem; 3254 font-weight: 400; 3255} 3256@media (max-width: 1024px) { 3257 body div[data-micro-template="accordion_container"] div[data-micro-template="accordion"] .accordion_title .accordion_title_text, 3258 body div[data-micro-template="accordion_container"] div[data-micro-template="accordion"] .accordion_title .accordion_toggle { 3259 font-size: 1.2rem; 3260 } 3261} 3262@media (max-width: 480px) { 3263 body div[data-micro-template="accordion_container"] div[data-micro-template="accordion"] .accordion_title .accordion_title_text, 3264 body div[data-micro-template="accordion_container"] div[data-micro-template="accordion"] .accordion_title .accordion_toggle { 3265 font-size: 1.1rem; 3266 } 3267} 3268body div[data-micro-template="accordion_container"] div[data-micro-template="accordion"] .accordion_title.active { 3269 border-color: #ff6000; 3270 color: #ff6000; 3271} 3272body div[data-micro-template="accordion_container"] div[data-micro-template="accordion"] .accordion_title.active .accordion_title_text { 3273 color: #ff6000; 3274} 3275body div[data-micro-template="accordion_container"] div[data-micro-template="accordion"] .accordion_body { 3276 display: none; 3277 padding: 20px 0; 3278 line-height: 1.35em; 3279 text-align: left; 3280} 3281body section[data-type="system-lightbox-container"] .close-icon { 3282 background-color: white; 3283 border-radius: 50%; 3284 box-sizing: border-box; 3285 border: 5px solid white; 3286 display: flex; 3287 justify-content: center; 3288 align-items: center; 3289 top: -10px; 3290 right: -10px; 3291} 3292body section[data-type="system-lightbox-container"] .next-icon { 3293 background-color: white; 3294 border-radius: 50%; 3295 box-sizing: border-box; 3296 border: 4px solid white; 3297 display: flex; 3298 justify-content: center; 3299 align-items: center; 3300 position: absolute; 3301 top: 50%; 3302 right: 0px; 3303 font-size: 2rem; 3304 transform: translate(10px,-50%); 3305 cursor: pointer; 3306} 3307body section[data-type="system-lightbox-container"] .prev-icon { 3308 background-color: white; 3309 border-radius: 50%; 3310 box-sizing: border-box; 3311 border: 4px solid white; 3312 display: flex; 3313 justify-content: center; 3314 align-items: center; 3315 position: absolute; 3316 top: 50%; 3317 left: 0px; 3318 font-size: 2rem; 3319 transform: translate(-10px,-50%); 3320 cursor: pointer; 3321} 3322body section[data-type="system-lightbox-container"] .gallery_grid_modal { 3323 display: none; 3324 position: fixed; 3325 height: 100vh; 3326 width: 100%; 3327 top: 0; 3328 left: 0; 3329 background-color: rgba(0,0,0,0.6); 3330 justify-content: center; 3331 align-items: center; 3332 opacity: 0; 3333 transition: all 0.4s ease-in-out; 3334 z-index: 99999999; 3335} 3336body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container { 3337 cursor: pointer; 3338 margin: 5%; 3339 position: relative; 3340} 3341body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container img { 3342 max-height: 80vh; 3343} 3344body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container .highlighted_image_content { 3345 display: flex; 3346 flex-direction: column; 3347} 3348body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container .highlighted_image_content .button { 3349 order: 5; 3350 margin: 0; 3351} 3352body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container .gallery_grid_arrow { 3353 position: absolute; 3354 top: 50%; 3355} 3356body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container .gallery_grid_arrow svg {
3357 color: #fff; 3358 font-size: 36px; 3359 transition: all 0.2s; 3360} 3361body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container .gallery_grid_arrow:hover svg { 3362 transform: scale(1.2); 3363} 3364body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container .gallery_grid_left { 3365 left: -50px; 3366} 3367body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container .gallery_grid_right { 3368 right: -50px; 3369} 3370body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_caption { 3371 position: absolute; 3372 bottom: 100px; 3373 width: 100%; 3374 text-align: center; 3375 background: rgba(0,0,0,0.6); 3376} 3377body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_caption .highlighted_image_text { 3378 color: #fff; 3379 font-size: 1.25em; 3380 margin: 0; 3381 font-family: "Arial"; 3382 padding: 15px 0; 3383} 3384body section[data-type="system-lightbox-container"] .gallery_grid_modal.show { 3385 display: flex;
3386 opacity: 1; 3387} 3388@media (max-width: 768px) { 3389 body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_caption { 3390 bottom: 75px; 3391 } 3392 body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_caption .highlighted_image_text { 3393 font-size: 1em; 3394 padding: 5px; 3395 } 3396 body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container .gallery_grid_left { 3397 left: -40px; 3398 } 3399 body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container .gallery_grid_right { 3400 right: -40px; 3401 } 3402 body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container .highlighted_image_content .button { 3403 padding: 10px; 3404 } 3405} 3406@media (max-width: 480px) { 3407 body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_caption { 3408 bottom: 50px; 3409 } 3410 body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container .gallery_grid_arrow { 3411 bottom: -40px; 3412 top: initial; 3413 } 3414 body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container .gallery_grid_left { 3415 left: 20%; 3416 } 3417 body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container .gallery_grid_right { 3418 right: 20%; 3419 } 3420} 3421body .responsive_video { 3422 padding-bottom: 56.25%; 3423 position: relative; 3424} 3425body .responsive_video iframe, 3426body .responsive_video video { 3427 position: absolute; 3428 height: 100%; 3429 width: 100%; 3430 top: 0; 3431 left: 0; 3432} 3433body .ul_column { 3434 column-count: 2; 3435} 3436@media (max-width: 768px) { 3437 body .ul_column { 3438 column-count: 2; 3439 } 3440} 3441@media (max-width: 480px) { 3442 body .ul_column { 3443 column-count: 1; 3444 } 3445} 3446body section .content_container .content div[data-micro-template="invisalign_list_container"] { 3447 display: grid; 3448 grid-template-columns: repeat(4,1fr); 3449 gap: 40px 20px; 3450} 3451@media (max-width: 1366px) { 3452 body section .content_container .content div[data-micro-template="invisalign_list_container"] { 3453 grid-template-columns: repeat(3,1fr); 3454 } 3455} 3456@media (max-width: 768px) { 3457 body section .content_container .content div[data-micro-template="invisalign_list_container"] { 3458 grid-template-columns: repeat(2,1fr); 3459 } 3460} 3461@media (max-width: 480px) { 3462 body section .content_container .content div[data-micro-template="invisalign_list_container"] { 3463 grid-template-columns: repeat(1,1fr); 3464 gap: 20px 10px; 3465 } 3466} 3467@media (max-width: 480px) { 3468 body section .content_container .content div[data-micro-template="invisalign_list_container"] a[data-micro-template="invisalign_list"] .image { 3469 display: none; 3470 } 3471} 3472body section .content_container .content div[data-micro-template="invisalign_list_container"] a[data-micro-template="invisalign_list"] .text { 3473 text-align: center; 3474} 3475@media (max-width: 480px) { 3476 body section .content_container .content div[data-micro-template="invisalign_list_container"] a[data-micro-template="invisalign_list"] .text { 3477 text-align: left; 3478 } 3479} 3480body section .content_container .content div[data-micro-template="invisalign_list_container"] a[data-micro-template="invisalign_list"] .text p { 3481 margin: 0; 3482} 3483body section .content_container .content .invisalign_video_container { 3484 display: grid; 3485 grid-template-columns: repeat(2,1fr); 3486 gap: 40px; 3487} 3488@media (max-width: 480px) { 3489 body section .content_container .content .invisalign_video_container { 3490 grid-template-columns: repeat(1,1fr); 3491 gap: 20px; 3492 } 3493} 3494body section .content_container .content .invisalign_video_container .invisalign_list .text { 3495 text-align: center; 3496} 3497body section .content_container .content .invisalign_video_container .invisalign_list .text p { 3498 color: #4bc9f8; 3499 font-size: 1.2rem; 3500} 3501@media (max-width: 480px) { 3502 body section .content_container .content .invisalign_video_container .invisalign_list .text p { 3503 font-size: 1.1rem; 3504 } 3505} 3506body section .content_container .content .service_video_container { 3507 margin: 60px auto; 3508 display: flex; 3509 border-bottom: 10px solid #4bc9f8; 3510 box-shadow: 6px 5px 8px 0px #bfbfbf; 3511} 3512@media (max-width: 768px) { 3513 body section .content_container .content .service_video_container { 3514 flex-direction: column; 3515 } 3516} 3517body section .content_container .content .service_video_container > div { 3518 flex: 1; 3519} 3520body section .content_container .content .service_video_container .service_video_text { 3521 padding: 0 40px; 3522 background: #09B0EE; 3523 box-sizing: border-box; 3524 display: flex; 3525 justify-content: center; 3526 align-items: center; 3527} 3528@media (max-width: 640px) { 3529 body section .content_container .content .service_video_container .service_video_text { 3530 padding: 0 20px; 3531 } 3532} 3533body section .content_container .content .service_video_container .service_video_text h4 { 3534 color: #fff; 3535 font-size: 1rem; 3536 font-style: italic; 3537 line-height: 1.4em; 3538 font-weight: 400; 3539} 3540body section .content_container .content .service_testimonial_videos { 3541 background: #09B0EE; 3542 padding: 20px 40px; 3543 border-bottom: 10px solid #4bc9f8; 3544 text-align: center; 3545 box-shadow: 6px 5px 8px 0px #bfbfbf; 3546} 3547@media (max-width: 640px) { 3548 body section .content_container .content .service_testimonial_videos { 3549 padding: 20px; 3550 } 3551} 3552body section .content_container .content .service_testimonial_videos .secondary_divider { 3553 display: inline-block; 3554 margin: 0 auto; 3555 height: 3px; 3556 background: #4bc9f8; 3557 width: 150px; 3558} 3559body section .content_container .content .service_testimonial_videos h2 { 3560 color: #fff; 3561 font-size: 2rem; 3562 margin-bottom: 10px; 3563 padding: 0; 3564 font-weight: 400; 3565} 3566body section .content_container .content .service_testimonial_videos h2.text_center { 3567 text-align: center; 3568} 3569body section .content_container .content .service_testimonial_videos p { 3570 color: #fff; 3571} 3572body section .content_container .content .service_testimonial_videos .testimonial_videos_container { 3573 display: flex; 3574 flex-wrap: wrap; 3575 justify-content: space-between; 3576 text-align: center; 3577} 3578body section .content_container .content .service_testimonial_videos .testimonial_videos_container .testimonial_video { 3579 flex-basis: 48%; 3580 margin: 20px 0; 3581} 3582@media (max-width: 550px) { 3583 body section .content_container .content .service_testimonial_videos .testimonial_videos_container .testimonial_video { 3584 flex-basis: 100%; 3585 } 3586} 3587body section .content_container .content .alternating_service_container { 3588 margin-top: 20px; 3589} 3590body section .content_container .content .alternating_service_container .alternating_service { 3591 display: flex; 3592 justify-content: space-between; 3593 align-items: center; 3594 margin-bottom: 30px; 3595 flex-wrap: wrap; 3596} 3597body section .content_container .content .alternating_service_container .alternating_service .image, 3598body section .content_container .content .alternating_service_container .alternating_service .text { 3599 flex-basis: 48%; 3600} 3601@media (max-width: 768px) { 3602 body section .content_container .content .alternating_service_container .alternating_service .image, 3603 body section .content_container .content .alternating_service_container .alternating_service .text { 3604 flex-basis: 100%; 3605 } 3606} 3607body section .content_container .content .alternating_service_container .alternating_service .text h3 { 3608 font-size: 1.4rem; 3609} 3610@media (max-width: 768px) { 3611 body section .content_container .content .alternating_service_container .alternating_service .image { 3612 text-align: center; 3613 } 3614} 3615body section .content_container .content .alternating_service_container .alternating_service:nth-of-type(even) .image { 3616 order: 2; 3617 text-align: right; 3618} 3619@media (max-width: 768px) { 3620 body section .content_container .content .alternating_service_container .alternating_service:nth-of-type(even) .image { 3621 text-align: center; 3622 order: initial; 3623 } 3624} 3625</style><style>.section_1 { 3626 height: 96px; 3627 position: fixed; 3628 left: 0px; 3629 top: 0px; 3630 z-index: 500; 3631 transition: height 0.2s, background-color 0.4s; 3632 display: flex; 3633 text-transform: uppercase; 3634 align-items: center; 3635 justify-content: space-between; 3636 padding: 0px 65px; 3637} 3638@media (max-width: 1366px) { 3639 .section_1 { 3640 position: sticky; 3641 background: #fff; 3642 } 3643} 3644@media (max-width: 1024px) { 3645 .section_1 { 3646 padding: 0 25px; 3647 } 3648} 3649.section_1 .flex_point { 3650 margin-left: auto; 3651} 3652.section_1 .content_container { 3653 display: flex; 3654 align-items: center; 3655 justify-content: flex-start; 3656 width: 100%; 3657} 3658.section_1 .content_container .logo { 3659 flex: 0 0 auto; 3660 line-height: 0px; 3661 margin-right: 20px; 3662} 3663.section_1 .content_container .logo img, 3664.section_1 .content_container .logo picture { 3665 max-height: 75px; 3666 transition: max-height 0.2s; 3667 z-index: 20; 3668 position: relative; 3669} 3670.section_1 .content_container .detail_container .social { 3671 position: absolute; 3672 top: 20px; 3673 left: 20px; 3674 color: #09B0EE; 3675} 3676.section_1 .content_container .detail_container .social a:hover {
3677 color: #4bc9f8; 3678} 3679.section_1 .content_container .detail_container .social a:not(:last-of-type) { 3680 display: inline-block; 3681 margin-right: 10px; 3682} 3683.section_1 .content_container .detail_container .contact { 3684 position: absolute; 3685 top: 20px; 3686 right: 20px; 3687 color: #09B0EE; 3688 font-family: "Arial"; 3689} 3690.section_1 .content_container .detail_container .contact svg { 3691 position: absolute; 3692 left: -20px; 3693} 3694.section_1 .content_container .detail_container .contact a:hover { 3695 color: #4bc9f8; 3696} 3697.section_1 .content_container nav { 3698 display: flex; 3699 margin: 0px; 3700 z-index: 100; 3701 width: 100%; 3702 text-align: right; 3703 box-sizing: border-box; 3704 color: #09B0EE; 3705 align-items: center; 3706 justify-content: space-between; 3707 height: 50px; 3708 margin-left: auto; 3709 margin-right: auto; 3710 font-size: 15px; 3711 font-family: "Arial"; 3712 letter-spacing: initial; 3713 text-transform: none; 3714 font-weight: 500; 3715} 3716.section_1 .content_container nav a { 3717 letter-spacing: initial; 3718 color: #6C675C; 3719} 3720.section_1 .content_container nav a:hover { 3721 color: #4bc9f8; 3722} 3723.section_1 .content_container nav .mobile_menu { 3724 position: absolute; 3725 display: none; 3726 padding-right: inherit; 3727 font-size: 2rem; 3728 cursor: pointer; 3729} 3730.section_1 .content_container nav .mobile_menu .hamburger { 3731 width: 30px; 3732 height: 20px; 3733 position: relative; 3734 margin: auto; 3735} 3736.section_1 .content_container nav .mobile_menu .hamburger .line { 3737 display: block; 3738 width: 100%; 3739 height: 3px; 3740 background: #09B0EE; 3741 position: absolute; 3742 transition: all 200ms; 3743} 3744.section_1 .content_container nav .mobile_menu .hamburger .line:nth-child(1) { 3745 top: 0; 3746} 3747.section_1 .content_container nav .mobile_menu .hamburger .line:nth-child(2) { 3748 top: 50%; 3749 transform: translateY(-50%); 3750} 3751.section_1 .content_container nav .mobile_menu .hamburger .line:nth-child(3) { 3752 bottom: 0; 3753} 3754.section_1 .content_container nav .mobile_menu .hamburger.close .line:nth-child(1), 3755.section_1 .content_container nav .mobile_menu .hamburger.close .line:nth-child(2) { 3756 top: 0; 3757 transform: translateY(9px) rotate(45deg); 3758} 3759.section_1 .content_container nav .mobile_menu .hamburger.close .line:nth-child(3) { 3760 transform: translateY(-9px) rotate(-45deg); 3761} 3762.section_1 .content_container nav ul { 3763 padding: 0px; 3764 margin: 0px; 3765 width: 100%; 3766 display: flex; 3767} 3768.section_1 .content_container nav ul li { 3769 list-style-type: none; 3770 letter-spacing: 1.5px; 3771} 3772.section_1 .content_container nav ul li.white_menu_item a { 3773 color: #fff; 3774} 3775.section_1 .content_container nav ul a { 3776 display: inline-block; 3777 width: 100%; 3778 height: 100%; 3779} 3780.section_1 .content_container nav ul ul { 3781 display: none; 3782 position: absolute; 3783 padding: 0px; 3784 flex-direction: column; 3785} 3786.section_1 .content_container nav ul > li li { 3787 font-family: "Arial"; 3788} 3789.section_1 .content_container nav ul > li > ul.group_container { 3790 box-sizing: border-box; 3791 flex-direction: row; 3792 flex-wrap: wrap; 3793 max-height: 480px; 3794 min-width: 1200px; 3795 max-width: 1200px; 3796 justify-content: center; 3797 background-color: rgba(255,255,255,0); 3798 width: initial; 3799} 3800.section_1 .content_container nav ul > li > ul.group_container h3 { 3801 font-size: 0.75rem; 3802 font-weight: bold; 3803 margin: 0px 0px 0.5rem; 3804 color: #4bc9f8; 3805 font-family: "Arial"; 3806 text-transform: uppercase; 3807} 3808.section_1 .content_container nav ul > li > ul.group_container > li.large_list { 3809 min-width: 580px; 3810} 3811.section_1 .content_container nav ul > li > ul.group_container > li.very_large_list { 3812 min-width: 860px; 3813} 3814.section_1 .content_container nav ul > li > ul.group_container > li:nth-of-type(1) { 3815 background-color: rgba(32,32,32,0.9); 3816} 3817.section_1 .content_container nav ul > li > ul.group_container > li:nth-of-type(2) { 3818 background-color: rgba(64,64,64,0.9); 3819} 3820.section_1 .content_container nav ul > li > ul.group_container > li:nth-of-type(3) { 3821 background-color: rgba(64,64,64,0.9); 3822} 3823.section_1 .content_container nav ul > li > ul.group_container > li:nth-of-type(3) { 3824 background-color: rgba(64,64,64,0.9); 3825} 3826.section_1 .content_container nav ul > li > ul.group_container > li { 3827 min-width: 300px; 3828 padding-top: 20px; 3829 padding-bottom: 20px; 3830 width: 140px; 3831} 3832.section_1 .content_container nav ul > li > ul.group_container > li > ul { 3833 position: relative; 3834 display: block; 3835 background: none; 3836 margin-bottom: 0.5rem; 3837 padding: 0px 0px 0px 20px; 3838 display: flex; 3839 flex-direction: row; 3840 flex-wrap: wrap; 3841} 3842.section_1 .content_container nav ul > li > ul.group_container > li > ul > li { 3843 line-height: 40px; 3844 text-align: left; 3845 flex-basis: 260px; 3846 margin-right: 20px; 3847} 3848.section_1 .content_container nav ul > li > ul.group_container > li > ul > li:first-of-type { 3849 border-bottom: 2px solid white; 3850 flex-basis: 100%; 3851} 3852.section_1 .content_container nav ul > li > ul.group_container > li > ul > li:not(:first-of-type) { 3853 border-bottom: 1px solid white; 3854} 3855.section_1 .content_container nav > ul { 3856 align-items: center; 3857} 3858.section_1 .content_container nav > ul > li:last-of-type { 3859 padding-right: 0px; 3860 padding: 12px 20px; 3861 background: #4bc9f8; 3862 border-radius: 100px; 3863 font-weight: 400; 3864 text-transform: uppercase; 3865 box-sizing: border-box; 3866 transition: all 0.3s ease;
3867 color: #fff; 3868} 3869.section_1 .content_container nav > ul > li:last-of-type:hover { 3870 background: #32c2f7; 3871} 3872.section_1 .content_container nav > ul > li:last-of-type:hover a { 3873 color: #f2f2f2; 3874} 3875.section_1 .content_container nav > ul > li:last-of-type a { 3876 color: #fff; 3877 letter-spacing: .12em; 3878} 3879.section_1 .content_container nav > ul > li { 3880 display: inline-block; 3881 line-height: normal; 3882 padding: 0px 20px; 3883 font-family: "Arial"; 3884} 3885.section_1 .content_container nav > ul > li > ul { 3886 left: 50%; 3887 transform: translate(-50%); 3888 background-image: linear-gradient(#fff,rgba(255,255,255,0.9)); 3889 width: 100%; 3890 min-width: 220px; 3891 padding-top: 10px; 3892} 3893.section_1 .content_container nav > ul > li > ul > li { 3894 line-height: 40px; 3895 width: 100%; 3896 text-align: center; 3897} 3898.section_1 .content_container nav > ul > li > ul > li > ul:not([data-group-container]) { 3899 position: absolute; 3900 left: 100%; 3901 transform: translate(0px,-40px); 3902 background-color: rgba(60,60,60,0.9); 3903} 3904.section_1 .content_container nav > ul > li > ul > li > ul:not([data-group-container]) > li { 3905 line-height: 40px; 3906 width: 140px; 3907} 3908@media (max-width: 1280px) { 3909 .section_1 .content_container nav { 3910 max-width: 100%; 3911 padding: 0px 20px; 3912 box-sizing: border-box; 3913 margin: 20px 0px 0px 0px; 3914 height: initial; 3915 } 3916 .section_1 .content_container nav .mobile_menu { 3917 display: inline-block; 3918 top: 50%; 3919 right: 0px; 3920 transform: translate(0px,-50%); 3921 padding-left: inherit; 3922 margin-right: 20px; 3923 } 3924 .section_1 .content_container nav ul { 3925 background: #fff; 3926 } 3927 .section_1 .content_container nav ul > li { 3928 box-sizing: border-box; 3929 } 3930 .section_1 .content_container nav ul > li > ul.group_container { 3931 max-height: initial; 3932 } 3933 .section_1 .content_container nav ul ul { 3934 position: relative; 3935 transform: initial; 3936 } 3937 .section_1 .content_container nav > ul { 3938 position: absolute; 3939 left: 0px; 3940 display: none; 3941 max-height: calc(100vh - 200px); 3942 overflow: auto; 3943 width: 100%; 3944 top: 96px; 3945 text-align: center; 3946 box-sizing: border-box; 3947 color: #333333; 3948 background-color: rgba(255,255,255,0.97); 3949 padding: 0px; 3950 box-shadow: 10px 10px 40px rgba(0,0,0,0.25); 3951 } 3952 .section_1 .content_container nav > ul > li:not(:last-of-type) { 3953 margin: 0px; 3954 } 3955 .section_1 .content_container nav > ul > li:last-of-type { 3956 border-bottom: 1px solid #4bc9f8; 3957 } 3958 .section_1 .content_container nav > ul > li { 3959 width: 100%; 3960 margin: 0px; 3961 border-top: 1px solid #4bc9f8; 3962 font-size: 1rem; 3963 padding: 0px; 3964 line-height: 40px; 3965 } 3966 .section_1 .content_container nav > ul > li:first-of-type { 3967 border-top: 0px; 3968 } 3969 .section_1 .content_container nav > ul > li:last-of-type { 3970 border-bottom: 0px; 3971 border-radius: 0px; 3972 padding: 0 10px; 3973 } 3974 .section_1 .content_container nav > ul > li a { 3975 display: inline-block; 3976 width: 100%; 3977 height: 100%; 3978 } 3979 .section_1 .content_container nav > ul > li > ul { 3980 padding-top: 0px; 3981 background-color: white; 3982 } 3983 .section_1 .content_container nav > ul > li > ul > li { 3984 width: 100%; 3985 padding: 0px 20px; 3986 box-sizing: border-box; 3987 text-align: center; 3988 background-color: white; 3989 } 3990 .section_1 .content_container nav > ul > li > ul > li > ul:not([data-group-container]) { 3991 position: initial; 3992 left: initial; 3993 padding-top: 20px; 3994 padding-bottom: 20px; 3995 transform: initial; 3996 text-align: center; 3997 } 3998 .section_1 .content_container nav > ul > li > ul > li > ul:not([data-group-container]) > li { 3999 line-height: 40px; 4000 width: 100%; 4001 } 4002 .section_1 .content_container nav > ul > li > ul.group_container { 4003 max-width: 100%; 4004 max-height: initial; 4005 min-width: 100%; 4006 } 4007 .section_1 .content_container nav > ul > li > ul.group_container h3 { 4008 margin: 0px; 4009 } 4010 .section_1 .content_container nav > ul > li > ul.group_container > li:nth-of-type(1), 4011 .section_1 .content_container nav > ul > li > ul.group_container > li:nth-of-type(2), 4012 .section_1 .content_container nav > ul > li > ul.group_container > li:nth-of-type(3), 4013 .section_1 .content_container nav > ul > li > ul.group_container > li:nth-of-type(4) { 4014 background-color: white; 4015 } 4016 .section_1 .content_container nav > ul > li > ul.group_container > li { 4017 padding: 0px; 4018 min-width: 100%; 4019 } 4020 .section_1 .content_container nav > ul > li > ul.group_container > li > ul { 4021 padding-left: 0px; 4022 } 4023 .section_1 .content_container nav > ul > li > ul.group_container > li > ul > li { 4024 text-align: center; 4025 flex-basis: 100%; 4026 text-align: left; 4027 } 4028} 4029@media (max-width: 640px) { 4030 .section_1 { 4031 padding: 0px 20px; 4032 } 4033 .section_1 .content_container nav .mobile_menu { 4034 margin-right: 0px; 4035 } 4036} 4037.section_1.not_top, 4038.section_1.condensed { 4039 background: #fff; 4040 height: 96px; 4041} 4042.section_1.not_top nav ul li.white_menu_item a, 4043.section_1.condensed nav ul li.white_menu_item a { 4044 color: #6C675C; 4045} 4046.section_1.not_top nav > ul > li:last-of-type.white_menu_item a, 4047.section_1.condensed nav > ul > li:last-of-type.white_menu_item a { 4048 color: #fff; 4049} 4050.section_1.condensed { 4051 background-color: #fff; 4052} 4053.section_1.not_top { 4054 height: 72px; 4055} 4056.section_1.not_top .content_container nav > ul { 4057 top: 72px; 4058} 4059</style><style>.section_1 { 4060 height: 96px; 4061 position: fixed; 4062 left: 0px; 4063 top: 0px; 4064 z-index: 500; 4065 transition: height 0.2s, background-color 0.4s; 4066 display: flex; 4067 text-transform: uppercase; 4068 align-items: center; 4069 justify-content: space-between; 4070 padding: 0px 65px; 4071} 4072@media (max-width: 1366px) { 4073 .section_1 { 4074 position: sticky; 4075 background: #fff; 4076 } 4077} 4078@media (max-width: 1024px) { 4079 .section_1 { 4080 padding: 0 25px; 4081 } 4082} 4083.section_1 .flex_point { 4084 margin-left: auto; 4085} 4086.section_1 .content_container { 4087 display: flex; 4088 align-items: center; 4089 justify-content: flex-start; 4090 width: 100%; 4091} 4092.section_1 .content_container .logo { 4093 flex: 0 0 auto; 4094 line-height: 0px; 4095 margin-right: 20px; 4096} 4097.section_1 .content_container .logo img, 4098.section_1 .content_container .logo picture { 4099 max-height: 65px; 4100 transition: max-height 0.2s; 4101 z-index: 20; 4102 position: relative; 4103} 4104.section_1 .content_container .detail_container .social { 4105 position: absolute; 4106 top: 20px; 4107 left: 20px; 4108 color: #09B0EE; 4109} 4110.section_1 .content_container .detail_container .social a:hover {
4111 color: #4bc9f8; 4112} 4113.section_1 .content_container .detail_container .social a:not(:last-of-type) { 4114 display: inline-block; 4115 margin-right: 10px; 4116} 4117.section_1 .content_container .detail_container .contact { 4118 position: absolute; 4119 top: 20px; 4120 right: 20px; 4121 color: #09B0EE; 4122 font-family: "Arial"; 4123} 4124.section_1 .content_container .detail_container .contact svg { 4125 position: absolute; 4126 left: -20px; 4127} 4128.section_1 .content_container .detail_container .contact a:hover { 4129 color: #4bc9f8; 4130} 4131.section_1 .content_container nav { 4132 display: flex; 4133 margin: 0px; 4134 z-index: 100; 4135 width: 100%; 4136 text-align: right; 4137 box-sizing: border-box; 4138 color: #09B0EE; 4139 align-items: center; 4140 justify-content: space-between; 4141 height: 50px; 4142 margin-left: auto; 4143 margin-right: auto; 4144 font-size: 15px; 4145 font-family: "Arial"; 4146 letter-spacing: initial; 4147 text-transform: none; 4148 font-weight: 500; 4149} 4150.section_1 .content_container nav a { 4151 letter-spacing: initial; 4152 color: #6C675C; 4153} 4154.section_1 .content_container nav a:hover { 4155 color: #4bc9f8; 4156} 4157.section_1 .content_container nav .mobile_menu { 4158 position: absolute; 4159 display: none; 4160 padding-right: inherit; 4161 font-size: 2rem; 4162 cursor: pointer; 4163} 4164.section_1 .content_container nav .mobile_menu .hamburger { 4165 width: 30px; 4166 height: 20px; 4167 position: relative; 4168 margin: auto; 4169} 4170.section_1 .content_container nav .mobile_menu .hamburger .line { 4171 display: block; 4172 width: 100%; 4173 height: 3px; 4174 background: #09B0EE; 4175 position: absolute; 4176 transition: all 200ms; 4177} 4178.section_1 .content_container nav .mobile_menu .hamburger .line:nth-child(1) { 4179 top: 0; 4180} 4181.section_1 .content_container nav .mobile_menu .hamburger .line:nth-child(2) { 4182 top: 50%; 4183 transform: translateY(-50%); 4184} 4185.section_1 .content_container nav .mobile_menu .hamburger .line:nth-child(3) { 4186 bottom: 0; 4187} 4188.section_1 .content_container nav .mobile_menu .hamburger.close .line:nth-child(1), 4189.section_1 .content_container nav .mobile_menu .hamburger.close .line:nth-child(2) { 4190 top: 0; 4191 transform: translateY(9px) rotate(45deg); 4192} 4193.section_1 .content_container nav .mobile_menu .hamburger.close .line:nth-child(3) { 4194 transform: translateY(-9px) rotate(-45deg); 4195} 4196.section_1 .content_container nav ul { 4197 padding: 0px; 4198 margin: 0px; 4199 width: 100%; 4200 display: flex; 4201} 4202.section_1 .content_container nav ul li { 4203 list-style-type: none; 4204 letter-spacing: 1.5px; 4205} 4206.section_1 .content_container nav ul li.white_menu_item a { 4207 color: #fff; 4208} 4209@media (max-width: 1366px) { 4210 .section_1 .content_container nav ul li.white_menu_item a { 4211 color: #6C675C; 4212 } 4213} 4214.section_1 .content_container nav ul a { 4215 display: inline-block; 4216 width: 100%; 4217 height: 100%; 4218} 4219.section_1 .content_container nav ul ul { 4220 display: none; 4221 position: absolute; 4222 padding: 0px; 4223 flex-direction: column; 4224} 4225.section_1 .content_container nav ul > li li { 4226 font-family: "Arial"; 4227} 4228.section_1 .content_container nav ul > li > ul.group_container { 4229 box-sizing: border-box; 4230 flex-direction: row; 4231 flex-wrap: wrap; 4232 max-height: 480px; 4233 min-width: 1200px; 4234 max-width: 1200px; 4235 justify-content: center; 4236 background-color: rgba(255,255,255,0); 4237 width: initial; 4238} 4239.section_1 .content_container nav ul > li > ul.group_container h3 { 4240 font-size: 0.75rem; 4241 font-weight: bold; 4242 margin: 0px 0px 0.5rem; 4243 color: #4bc9f8; 4244 font-family: "Arial"; 4245 text-transform: uppercase; 4246} 4247.section_1 .content_container nav ul > li > ul.group_container > li.large_list { 4248 min-width: 580px; 4249} 4250.section_1 .content_container nav ul > li > ul.group_container > li.very_large_list { 4251 min-width: 860px; 4252} 4253.section_1 .content_container nav ul > li > ul.group_container > li:nth-of-type(1) { 4254 background-color: rgba(32,32,32,0.9); 4255} 4256.section_1 .content_container nav ul > li > ul.group_container > li:nth-of-type(2) { 4257 background-color: rgba(64,64,64,0.9); 4258} 4259.section_1 .content_container nav ul > li > ul.group_container > li:nth-of-type(3) { 4260 background-color: rgba(64,64,64,0.9); 4261} 4262.section_1 .content_container nav ul > li > ul.group_container > li:nth-of-type(3) { 4263 background-color: rgba(64,64,64,0.9); 4264} 4265.section_1 .content_container nav ul > li > ul.group_container > li { 4266 min-width: 300px; 4267 padding-top: 20px; 4268 padding-bottom: 20px; 4269 width: 140px; 4270} 4271.section_1 .content_container nav ul > li > ul.group_container > li > ul { 4272 position: relative; 4273 display: block; 4274 background: none; 4275 margin-bottom: 0.5rem; 4276 padding: 0px 0px 0px 20px; 4277 display: flex; 4278 flex-direction: row; 4279 flex-wrap: wrap; 4280} 4281.section_1 .content_container nav ul > li > ul.group_container > li > ul > li { 4282 line-height: 40px; 4283 text-align: left; 4284 flex-basis: 260px; 4285 margin-right: 20px; 4286} 4287.section_1 .content_container nav ul > li > ul.group_container > li > ul > li:first-of-type { 4288 border-bottom: 2px solid white; 4289 flex-basis: 100%; 4290} 4291.section_1 .content_container nav ul > li > ul.group_container > li > ul > li:not(:first-of-type) { 4292 border-bottom: 1px solid white; 4293} 4294.section_1 .content_container nav > ul { 4295 align-items: center; 4296} 4297.section_1 .content_container nav > ul > li:last-of-type { 4298 padding-right: 0px; 4299 padding: 12px 20px; 4300 background: #4bc9f8; 4301 border-radius: 100px; 4302 font-weight: 400; 4303 text-transform: uppercase; 4304 box-sizing: border-box; 4305 transition: all 0.3s ease;
4306 color: #fff; 4307} 4308.section_1 .content_container nav > ul > li:last-of-type:hover { 4309 background: #32c2f7; 4310} 4311.section_1 .content_container nav > ul > li:last-of-type:hover a { 4312 color: #f2f2f2; 4313} 4314.section_1 .content_container nav > ul > li:last-of-type a { 4315 color: #fff; 4316 letter-spacing: .12em; 4317} 4318.section_1 .content_container nav > ul > li { 4319 display: inline-block; 4320 line-height: normal; 4321 padding: 0px 15px; 4322 font-family: "Arial"; 4323} 4324.section_1 .content_container nav > ul > li > ul { 4325 left: 50%; 4326 transform: translate(-50%); 4327 background-image: linear-gradient(#fff,rgba(255,255,255,0.9)); 4328 width: 100%; 4329 min-width: 220px; 4330 padding-top: 10px; 4331} 4332.section_1 .content_container nav > ul > li > ul > li { 4333 line-height: 40px; 4334 width: 100%; 4335 text-align: center; 4336} 4337.section_1 .content_container nav > ul > li > ul > li > ul:not([data-group-container]) { 4338 position: absolute; 4339 left: 100%; 4340 transform: translate(0px,-40px); 4341 background-color: rgba(60,60,60,0.9); 4342} 4343.section_1 .content_container nav > ul > li > ul > li > ul:not([data-group-container]) > li { 4344 line-height: 40px; 4345 width: 140px; 4346} 4347@media (max-width: 1280px) { 4348 .section_1 .content_container nav { 4349 max-width: 100%; 4350 padding: 0px 20px; 4351 box-sizing: border-box; 4352 margin: 20px 0px 0px 0px; 4353 height: initial; 4354 } 4355 .section_1 .content_container nav .mobile_menu { 4356 display: inline-block; 4357 top: 50%; 4358 right: 0px; 4359 transform: translate(0px,-50%); 4360 padding-left: inherit; 4361 margin-right: 20px; 4362 } 4363 .section_1 .content_container nav ul { 4364 background: #fff; 4365 } 4366 .section_1 .content_container nav ul > li { 4367 box-sizing: border-box; 4368 } 4369 .section_1 .content_container nav ul > li > ul.group_container { 4370 max-height: initial; 4371 } 4372 .section_1 .content_container nav ul ul { 4373 position: relative; 4374 transform: initial; 4375 } 4376 .section_1 .content_container nav > ul { 4377 position: absolute; 4378 left: 0px; 4379 display: none; 4380 max-height: calc(100vh - 200px); 4381 overflow: auto; 4382 width: 100%; 4383 top: 96px; 4384 text-align: center; 4385 box-sizing: border-box; 4386 color: #333333; 4387 background-color: rgba(255,255,255,0.97); 4388 padding: 0px; 4389 box-shadow: 10px 10px 40px rgba(0,0,0,0.25); 4390 } 4391 .section_1 .content_container nav > ul > li:not(:last-of-type) { 4392 margin: 0px; 4393 } 4394 .section_1 .content_container nav > ul > li:last-of-type { 4395 border-bottom: 1px solid #4bc9f8; 4396 } 4397 .section_1 .content_container nav > ul > li { 4398 width: 100%; 4399 margin: 0px; 4400 border-top: 1px solid #4bc9f8; 4401 font-size: 1rem; 4402 padding: 0px; 4403 line-height: 40px; 4404 } 4405 .section_1 .content_container nav > ul > li:first-of-type { 4406 border-top: 0px; 4407 } 4408 .section_1 .content_container nav > ul > li:last-of-type { 4409 border-bottom: 0px; 4410 border-radius: 0px; 4411 padding: 0 10px; 4412 } 4413 .section_1 .content_container nav > ul > li a { 4414 display: inline-block; 4415 width: 100%; 4416 height: 100%; 4417 } 4418 .section_1 .content_container nav > ul > li > ul { 4419 padding-top: 0px; 4420 background-color: white; 4421 } 4422 .section_1 .content_container nav > ul > li > ul > li { 4423 width: 100%; 4424 padding: 0px 20px; 4425 box-sizing: border-box; 4426 text-align: center; 4427 background-color: white; 4428 } 4429 .section_1 .content_container nav > ul > li > ul > li > ul:not([data-group-container]) { 4430 position: initial; 4431 left: initial; 4432 padding-top: 20px; 4433 padding-bottom: 20px; 4434 transform: initial; 4435 text-align: center; 4436 } 4437 .section_1 .content_container nav > ul > li > ul > li > ul:not([data-group-container]) > li { 4438 line-height: 40px; 4439 width: 100%; 4440 } 4441 .section_1 .content_container nav > ul > li > ul.group_container { 4442 max-width: 100%; 4443 max-height: initial; 4444 min-width: 100%; 4445 } 4446 .section_1 .content_container nav > ul > li > ul.group_container h3 { 4447 margin: 0px; 4448 } 4449 .section_1 .content_container nav > ul > li > ul.group_container > li:nth-of-type(1), 4450 .section_1 .content_container nav > ul > li > ul.group_container > li:nth-of-type(2), 4451 .section_1 .content_container nav > ul > li > ul.group_container > li:nth-of-type(3), 4452 .section_1 .content_container nav > ul > li > ul.group_container > li:nth-of-type(4) { 4453 background-color: white; 4454 } 4455 .section_1 .content_container nav > ul > li > ul.group_container > li { 4456 padding: 0px; 4457 min-width: 100%; 4458 } 4459 .section_1 .content_container nav > ul > li > ul.group_container > li > ul { 4460 padding-left: 0px; 4461 } 4462 .section_1 .content_container nav > ul > li > ul.group_container > li > ul > li { 4463 text-align: center; 4464 flex-basis: 100%; 4465 text-align: left; 4466 } 4467} 4468@media (max-width: 640px) { 4469 .section_1 { 4470 padding: 0px 20px; 4471 } 4472 .section_1 .content_container nav .mobile_menu { 4473 margin-right: 0px; 4474 } 4475} 4476.section_1.not_top, 4477.section_1.condensed { 4478 background: #fff; 4479 height: 96px; 4480} 4481.section_1.not_top nav ul li.white_menu_item a, 4482.section_1.condensed nav ul li.white_menu_item a { 4483 color: #6C675C; 4484} 4485.section_1.not_top nav > ul > li:last-of-type.white_menu_item a, 4486.section_1.condensed nav > ul > li:last-of-type.white_menu_item a { 4487 color: #fff; 4488} 4489.section_1.condensed { 4490 background-color: #fff; 4491} 4492.section_1.not_top { 4493 height: 72px; 4494} 4495.section_1.not_top .content_container nav > ul { 4496 top: 72px; 4497} 4498</style> 4499<section class="section_1" data-module="hydra_menu" data-html="" data-json="/custom/modules/hydra_menu/module.json" data-page="" data-full-path="/"> 4500 <div class="content_container"> 4501 <div class="logo"> 4502 <a href="/" aria-label="link"><picture><source srcset="/cache/custom_images_logo.webp 330w" sizes="330px" data-lazy-picture="false" type="image/webp"><img alt="Cosmetic Dentist in Bridgeport" class="" src="/custom/images/logo.png" data-lazy-img="false" data-src="/custom/images/logo.png"></picture></a> 4503 </div> 4504 <nav> 4505 4506 <div class="mobile_menu"> 4507 <div class="hamburger"> 4508 <span class="line"></span> 4509 <span class="line"></span> 4510 <span class="line"></span>
4511 </div> 4512 </div> 4513 <ul><li data-url="/" data-label="Home" data-new-window="" data-group="" data-group-label="">Home</li><li data-url="/" data-label="Locations" data-new-window="" data-group="" data-group-label="" aria-haspopup="true">Locations<ul><li data-url="/locations/stamford/" data-label="Stamford Office" data-new-window="">Stamford Office</li><li data-url="/locations/bridgeport/" data-label="Bridgeport Office" data-new-window="">Bridgeport Office</li></ul></li><li data-url="/" data-label="About Us" data-new-window="" data-group="" data-group-label="" aria-haspopup="true">About Us<ul><li data-url="/staff/" data-label="Meet Our Doctors" data-new-window="" data-group="" data-group-label="">Meet Our Doctors</li><li data-url="/team/" data-label="Meet Our Team" data-new-window="" data-group="" data-group-label="">Meet Our Team</li><li data-url="/new-patients/" data-label="New Patients" data-new-window="" data-group="" data-group-label="">New Patients</li><li data-url="/financial/" data-label="Financial Information" data-new-window="" data-group="" data-group-label="">Financial Information</li><li data-url="/smile-gallery/" data-label="Smile Gallery" data-new-window="" data-group="" data-group-label="">Smile Gallery</li><li data-url="/testimonials/" data-label="Check Out Our Reviews" data-new-window="" data-group="" data-group-label="">Check Out Our Reviews</li><li data-url="/videos/" data-label="Dental Videos" data-new-window="" data-group="" data-group-label="">Dental Videos</li><li data-url="/library/" data-label="Dental Health" data-new-window="" data-group="" data-group-label="">Dental Health</li></ul></li><li data-url="/services/" data-label="Services" data-new-window="" data-group="" data-group-label="">Services</li><li data-url="/specials/" data-label="Specials" data-new-window="" data-group="" data-group-label="">Specials</li></ul> </nav> 4514 </div> 4515</section>
4515<script> 4516 javascript.prototype[get_id()] = function() { 4517 var json = {"settings":{"group_labels":{"group_1":"Group 1","group_2":"Group 2"},"use_flex":true,"flex_point":4},"content":{"menu":[{"label":"Home","group":"","url":"\/"},{"label":"Locations","group":"","url":"\/","menu":"locations"},{"label":"About Us","group":"","url":"\/","menu":[{"label":"Meet Our Doctors","url":"\/staff\/"},{"label":"Meet Our Team","url":"\/team\/"},{"label":"New Patients","url":"\/new-patients\/"},{"label":"Financial Information","url":"\/financial\/"},{"label":"Smile Gallery","url":"\/smile-gallery\/"},{"label":"Check Out Our Reviews","url":"\/testimonials\/"},{"label":"Dental Videos","url":"\/videos\/"},{"label":"Dental Health","grouP":"","url":"\/library\/"}]},{"label":"Services","group":"","url":"\/services\/"},{"label":"Specials","group":"","url":"\/specials\/"}]}}; 4518 var display_type = ( 4519 json.hasOwnProperty('settings') && 4520 json.settings.hasOwnProperty('use_flex') && 4521 json.settings.use_flex 4522 ? 'flex' : 'block' 4523 ); 4524 4525 var scroll_disabled = false; 4526 var scrollbar_width = scrollbar_width(); 4527 4528 var flex_point = json.settings.flex_point; 4529 4530 function open_menu() { 4531 $('.section_1 nav') 4532 .addClass('open'); 4533 4534 if (scroll_disabled) { 4535 return; 4536 } 4537 4538 scroll_disabled = true; 4539 scrollTop = $(window).scrollTop(); 4540 4541 document.querySelector('.section_1').scrollIntoView({ 4542 behavior: "smooth", 4543 block: "start" 4544 }); 4545 4546 $('body') 4547 .css({ 4548 'top': -1 * scrollTop, 4549 'overflow': 'hidden', 4550 'padding-right': scrollbar_width+'px' 4551 }); 4552 4553 $('.section_1 .mobile_menu') 4554 .css({ 4555 'transform': 'translate(-'+scrollbar_width+'px, -50%)' 4556 }); 4557 4558 $('.section_1') 4559 .addClass('condensed'); 4560 4561 setTimeout(function() { 4562 $('.section_1 nav > ul').animate({ 4563 height: 'toggle', 4564 opacity: 'toggle' 4565 }, 200).css('display', 'block'); 4566 }, 200); 4567 } 4568 4569 function close_menu(resize) { 4570 setTimeout(function() { 4571 $('.section_1 nav').removeClass('open'); 4572 $('.section_1').removeClass('condensed'); 4573 4574 if (!scroll_disabled) { 4575 return; 4576 } 4577 4578 $('body') 4579 .css({ 4580 'top': -1 * scrollTop, 4581 'position': 'initial', 4582 'overflow': 'initial', 4583 'pointer-events': 'initial', 4584 'padding-right': 'initial' 4585 }); 4586 4587 $('.section_1 .mobile_menu') 4588 .css({ 4589 'transform': 'translate(0px, -50%)' 4590 }); 4591 4592 scroll_disabled = false; 4593 $(window).scrollTop(scrollTop); 4594 }, 200); 4595 4596 if (!resize) { 4597 $('.section_1 nav > ul').animate({ 4598 height: 'toggle', 4599 opacity: 'toggle' 4600 }, 200).css('display', 'block'); 4601 } 4602 } 4603 4604 function scrollbar_width() { 4605 var div = $('<div style="width: 50px; height: 50px; overflow: hidden; position: absolute; top:-200px; left: -200px ;"><div style="height: 100px;">'); 4606 $('body').append(div); 4607 var w1 = $('div', div).innerWidth(); 4608 div.css('overflow-y', 'scroll'); 4609 var w2 = $('div', div).innerWidth(); 4610 $(div).remove(); 4611 return (w1 - w2); 4612 } 4613 4614 // Convert LI elements to links 4615 $('.section_1 nav *[data-url]:not([data-url=""])').each(function() { 4616 var url = $(this).attr('data-url'); 4617 var label = $(this).attr('data-label'); 4618 var is_phone_number = url.startsWith("tel:"); 4619 4620 if(is_phone_number) { 4621 url = 'tel:+' + parseInt(url.replace(/[^0-9]/g, '')); 4622 } 4623 4624 $(this).contents().filter(function() { 4625 return this.nodeType == 3; 4626 }) 4627 .replaceWith('<a href="'+ url +'">' + label + ''); 4628 if ($(this).attr('data-url').includes('http')) { 4629 $(this).children('a').attr('target', '_blank'); 4630 $(this).children('a').attr('rel', 'noopener'); 4631 } 4632 if(is_phone_number) { 4633 $(this).children('a').addClass(url.replace(':+', '_')); 4634 } 4635 }); 4636 4637 // Find UL elements containing groups and categorize them 4638 $('.section_1 nav ul > li').each(function() { 4639 if ($(this).attr('data-group')) { 4640 var parent_ul = $(this).closest('ul'); 4641 var group = $(this).attr('data-group') 4642 4643 $(parent_ul).addClass('group_container'); 4644 4645 if ($(this).siblings('li[data-group-container="'+group+'"]').length == 0) { 4646 group_container_li = 4647 $('<li />') 4648 .attr('data-group-container', group) 4649 .appendTo(parent_ul); 4650 4651 group_container_ul = 4652 $('<ul />') 4653 .attr('data-group-container', group) 4654 .appendTo(group_container_li); 4655 4656 group_label = 4657 $('<li />') 4658 .appendTo(group_container_ul); 4659 4660 group_header = 4661 $('<h3 />') 4662 .html($(this).attr('data-group-label')) 4663 .appendTo(group_label); 4664 } 4665 4666 $(this).appendTo($(this).siblings('li[data-group-container="'+group+'"]').children('ul[data-group-container="'+group+'"]')); 4667 } 4668 }); 4669 4670 $('.section_1 nav > ul > li > ul > li:not([data-group-container])').each(function() { 4671 $(this).closest('ul').closest('li').css('position', 'relative'); 4672 }); 4673 4674 // Set click and hover events 4675 $('.section_1 nav li:not([data-group-container]):has(> ul)').mouseover(function() { 4676 if ($('.section_1 .mobile_menu').css('display') == 'none') { 4677 $('> ul', this).stop().fadeIn(200).css('display', 'flex'); 4678 } 4679 }); 4680 4681 // Adjust columns based on the menu height specified in the CSS (Desktop only) 4682 $('.section_1 nav > ul > li').mouseover(function() { 4683 if ($('.section_1 .mobile_menu').css('display') == 'none') { 4684 $('ul[data-group-container]').each(function() { 4685 if ($(this).height() > $(this).closest('ul.group_container').height()) { 4686 var large_list = $(this).closest($('li[data-group-container]')); 4687 4688 if (!$(large_list).hasClass('large_list')) { 4689 $(large_list).addClass('large_list'); 4690 4691 if ($(this).height() > $(this).closest('ul.group_container').height()) { 4692 $(large_list).addClass('very_large_list'); 4693 } 4694 } 4695 } 4696 }); 4697 } 4698 }); 4699 4700 $('.section_1 nav li:not([data-group-container]):has(> ul)').mouseout(function() { 4701 if ($('.section_1 .mobile_menu').css('display') == 'none') { 4702 $('> ul', this).stop().fadeOut(200); 4703 } 4704 }); 4705 4706 $('.section_1 nav .mobile_menu').click(function() { 4707 if ($('.section_1 .overlay').hasClass('display')) { 4708 $('.section_1 .overlay').removeClass('display'); 4709 } 4710 else { 4711 $('.section_1 .overlay').addClass('display'); 4712 } 4713 4714 if ($('.section_1 nav').hasClass('open')) { 4715 close_menu(false); 4716 $(this).add('.hamburger').toggleClass('close'); 4717 } 4718 else { 4719 open_menu(); 4720 $(this).add('.hamburger').toggleClass('close'); 4721 } 4722 }); 4723 4724 $('.section_1 nav li:has(> ul)').click(function(e) { 4725 e.preventDefault(); 4726 if ($('.section_1 .mobile_menu').css('display') != 'none') { 4727 $(this).children('ul').animate({ 4728 height: 'toggle', 4729 opacity: 'toggle' 4730 }, 200, function() { 4731 // Add code here to display scroll arrow 4732 }).css('display', 'block'); 4733 } 4734 }); 4735 4736 $('.section_1 nav li > ul > li').click(function(e) { 4737 e.stopPropagation(); 4738 }); 4739 4740 // Close the menu on horizontal resize 4741 var window_width = $(window).width(); 4742 4743 window.addEventListener('resize', function() { 4744 if ($(window).width() == window_width) { 4745 return; 4746 } 4747 else { 4748 close_menu(true); 4749 $('.section_1 .overlay').removeClass('display'); 4750 $('.large_list').removeClass('large_list'); 4751 $('.very_large_list').removeClass('very_large_list'); 4752 if ($('.section_1 .mobile_menu').css('display') == 'none') { 4753 $('.section_1 nav > ul').css('display', display_type); 4754 } 4755 else { 4756 $('.section_1 nav > ul').fadeOut(0); 4757 $('.section_1 nav > ul > li > ul').fadeOut(0); 4758 } 4759 } 4760 window_width = $(window).width(); 4761 }); 4762 4763 4764 // Determine flex point and incorporate 4765 $('.section_1 nav > ul > li').each(function(i) { 4766 currentEl = $(this); 4767 if(i >= flex_point && document.location.pathname === "/") { 4768 currentEl.addClass('white_menu_item'); 4769 } 4770 if(i === flex_point) { 4771 currentEl.addClass('flex_point') 4772 } 4773 4774 }) 4775 } 4776</script>
vendor: 1 bytes, line 4776
4776
4777<script> 4778 javascript.prototype[get_id()] = function() { 4779 $(document).scroll(function() { 4780 var position = $(document).scrollTop(); 4781 4782 if (position > 250) { 4783 if (!$('.section_1').hasClass('not_top')) { 4784 $('.section_1').addClass('not_top'); 4785 } 4786 } 4787 else if (position < 50) { 4788 if ($('.section_1').hasClass('not_top')) { 4789 $('.section_1').removeClass('not_top'); 4790 } 4791 } 4792 }); 4793 } 4794</script>
4794<style>.section_2 { 4795 height: 680px; 4796 display: flex; 4797 align-items: center; 4798 justify-content: center; 4799} 4800@media (max-width: 480px) { 4801 .section_2 { 4802 align-items: flex-end; 4803 } 4804} 4805.section_2 div[data-action="prev"], 4806.section_2 div[data-action="next"] { 4807 font-size: 24px; 4808 padding: 10px; 4809 width: 65px; 4810 height: 65px; 4811 background: #fff; 4812 cursor: pointer; 4813 position: absolute; 4814 display: flex; 4815 box-sizing: border-box; 4816 justify-content: center; 4817 align-items: center; 4818 z-index: 999; 4819} 4820@media (max-width: 1024px) { 4821 .section_2 div[data-action="prev"], 4822 .section_2 div[data-action="next"] { 4823 font-size: 22px; 4824 width: 48px; 4825 height: 48px; 4826 } 4827} 4828@media (max-width: 480px) { 4829 .section_2 div[data-action="prev"], 4830 .section_2 div[data-action="next"] { 4831 bottom: 20px; 4832 } 4833} 4834.section_2 div[data-action="prev"] { 4835 left: 0; 4836} 4837.section_2 div[data-action="next"] { 4838 right: 0; 4839} 4840.section_2 .content_container { 4841 width: 100%; 4842 height: 100%; 4843} 4844.section_2 .content_container .content { 4845 width: 100%; 4846 height: 100%; 4847} 4848.section_2 .content_container .content .block_container { 4849 position: absolute; 4850 width: 100%; 4851 height: 100%; 4852 opacity: 0; 4853 transition: opacity 2s; 4854 overflow: hidden; 4855} 4856.section_2 .content_container .content .block_container .block { 4857 height: 100%; 4858} 4859.section_2 .content_container .content .block_container .block .background_container { 4860 width: 100%; 4861 height: 100%; 4862} 4863.section_2 .content_container .content .block_container .block .background_container.expand { 4864 transition: transform 8s; 4865 transform: scale(1.1); 4866 transform-origin: center center; 4867} 4868.section_2 .content_container .content .block_container.start { 4869 transition: opacity 0s; 4870 opacity: 1; 4871} 4872.section_2 .content_container .content .block_container.show { 4873 opacity: 1; 4874} 4875</style><style>@media (max-width: 1280px) { 4876 .section_2 .content_container .content .block_container .block .background_container .background_image { 4877 object-position: 75%; 4878 } 4879} 4880@media (max-width: 980px) { 4881 .section_2 .content_container .content .block_container .block .background_container .background_image { 4882 object-position: right; 4883 } 4884} 4885.section_2 .content_container .content .block_container .block .background_container.expand { 4886 transform: scale(1.05); 4887} 4888@media (max-width: 980px) { 4889 .section_2 .content_container .content .block_container .block .background_container.expand { 4890 transform: initial; 4891 } 4892} 4893.section_2 .content_container .content .block_container .block .slide_content { 4894 width: 700px; 4895 height: 100%; 4896 padding: 0px 80px; 4897 box-sizing: border-box; 4898 position: absolute; 4899 z-index: 20; 4900 display: flex; 4901 flex-direction: column; 4902 justify-content: center; 4903 background-image: radial-gradient(#fff,rgba(255,255,255,0.9)); 4904} 4905.section_2 .content_container .content .block_container .block .slide_content hr { 4906 border: 0px; 4907 border-bottom: 1px solid white; 4908} 4909.section_2 .content_container .content .block_container .block .slide_content h2 { 4910 font-size: 3rem; 4911 line-height: 3rem; 4912 text-shadow: 1px 1px 0px #ffffff; 4913 color: #09B0EE; 4914 font-weight: 100; 4915 transition: opacity 0.75s, filter 2s; 4916 filter: blur(10px); 4917 opacity: 0; 4918} 4919@media (max-width: 1280px) { 4920 .section_2 .content_container .content .block_container .block .slide_content h2 { 4921 font-size: 3rem; 4922 } 4923} 4924@media (max-width: 980px) { 4925 .section_2 .content_container .content .block_container .block .slide_content h2 { 4926 font-size: 3rem; 4927 line-height: 3rem; 4928 margin: 0; 4929 } 4930} 4931.section_2 .content_container .content .block_container .block .slide_content h3 { 4932 font-size: 1.75rem; 4933 line-height: 2.25rem; 4934 color: #6C675C; 4935 font-weight: 100; 4936 text-shadow: 1px 1px 0px #ffffff; 4937 margin: 1.2em 0; 4938 transition: opacity 0.75s, filter 2s; 4939 filter: blur(20px); 4940 opacity: 0; 4941} 4942@media (max-width: 1280px) { 4943 .section_2 .content_container .content .block_container .block .slide_content h3 { 4944 font-size: 1.55rem; 4945 } 4946} 4947@media (max-width: 980px) { 4948 .section_2 .content_container .content .block_container .block .slide_content h3 { 4949 line-height: 1.75em; 4950 margin: 1em 0; 4951 } 4952} 4953@media (max-width: 420px) { 4954 .section_2 .content_container .content .block_container .block .slide_content h3 { 4955 line-height: 1.25em; 4956 } 4957} 4958.section_2 .content_container .content .block_container .block .slide_content div[data-micro-template="buttons_container"] { 4959 display: flex; 4960} 4961@media (max-width: 980px) { 4962 .section_2 .content_container .content .block_container .block .slide_content div[data-micro-template="buttons_container"] { 4963 justify-content: center; 4964 } 4965} 4966.section_2 .content_container .content .block_container .block .slide_content div[data-micro-template="buttons_container"] .button { 4967 color: white; 4968 font-size: 16px; 4969 background-color: #4bc9f8; 4970 margin-right: 10px; 4971 text-transform: uppercase; 4972 font-weight: 400; 4973 font-size: 1rem; 4974} 4975.section_2 .content_container .content .block_container .block .slide_content div[data-micro-template="buttons_container"] .button:hover { 4976 background: #09B0EE; 4977} 4978@media (max-width: 980px) { 4979 .section_2 .content_container .content .block_container .block .slide_content div[data-micro-template="buttons_container"] .button { 4980 margin: 0 5px; 4981 font-size: 1rem; 4982 } 4983} 4984@media (max-width: 480px) { 4985 .section_2 .content_container .content .block_container .block .slide_content div[data-micro-template="buttons_container"] .button { 4986 display: none; 4987 } 4988} 4989.section_2 .content_container .content .block_container .block .slide_content div[data-micro-template="buttons_container"] div[data-micro-template="buttons"]:last-of-type .button { 4990 margin-right: 0; 4991} 4992@media (max-width: 980px) { 4993 .section_2 .content_container .content .block_container .block .slide_content div[data-micro-template="buttons_container"] div[data-micro-template="buttons"]:last-of-type .button { 4994 margin: 0 5px; 4995 } 4996} 4997@media (max-width: 480px) { 4998 .section_2 .content_container .content .block_container .block .slide_content div[data-micro-template="buttons_container"] div[data-micro-template="buttons"]:first-of-type .button { 4999 display: block; 5000 } 5001} 5002@media (max-width: 1280px) { 5003 .section_2 .content_container .content .block_container .block .slide_content { 5004 width: 600px; 5005 } 5006} 5007@media (max-width: 980px) { 5008 .section_2 .content_container .content .block_container .block .slide_content { 5009 width: 100%; 5010 padding: 0px 40px; 5011 display: flex; 5012 align-items: center; 5013 background: rgba(255,255,255,0.7); 5014 display: none; 5015 justify-content: center; 5016 } 5017 .section_2 .content_container .content .block_container .block .slide_content > div { 5018 max-width: 480px; 5019 display: flex; 5020 flex-direction: column; 5021 justify-content: center; 5022 } 5023 .section_2 .content_container .content .block_container .block .slide_content h1, 5024 .section_2 .content_container .content .block_container .block .slide_content h2, 5025 .section_2 .content_container .content .block_container .block .slide_content h3 { 5026 text-align: center; 5027 } 5028} 5029@media (max-width: 480px) { 5030 .section_2 .content_container .content .block_container .block .slide_content { 5031 padding: 0 20px; 5032 } 5033} 5034.section_2 .content_container .content .block_container.active.show .block .slide_content div h2, 5035.section_2 .content_container .content .block_container.active.show .block .slide_content div h3 { 5036 opacity: 1; 5037 filter: blur(0px); 5038} 5039.section_2 .content_container .content .block_container.start .block .slide_content div h2, 5040.section_2 .content_container .content .block_container.start .block .slide_content div h3 { 5041 opacity: 1; 5042 filter: blur(0px); 5043} 5044@media (max-width: 1280px) { 5045 .section_2 { 5046 height: 540px; 5047 } 5048} 5049@media (max-width: 980px) { 5050 .section_2 { 5051 height: 520px; 5052 } 5053} 5054@media (max-width: 480px) { 5055 .section_2 { 5056 height: 280px; 5057 } 5058} 5059</style> 5060<section class="section_2" data-module="simple_fader" data-html="/custom/modules/manticore_banner/module.html" data-json="/custom/modules/manticore_banner/module.json" data-page="" data-full-path="/"> 5061 <div class="content_container"> 5062 <div class="content_above"> 5063 5064 </div> 5065 <div class="content"> 5066 <div class="block_container"> 5067 <div class="block"> 5068 <div class="slide_content"> 5069 <div> 5070 <h2>Experience the difference</h2> 5071 <h3>Get the dental care you need with the understanding & comfort you deserve</h3> 5072 5073 <div data-micro-template="buttons_container"> 5074 <div data-micro-template="buttons"> 5075 <a class="button" href="/services/" role="button" aria-label="View Our Services">View Our Services</a> 5076</div> 5077</div> 5078 </div> 5079 </div> 5080 <div class="background_container"> 5081 <picture class="background_image"><source srcset="/cache/sm-custom_modules_manticore_banner_images_5.webp 420w, /cache/md-custom_modules_manticore_banner_images_5.webp 640w, /cache/lg-custom_modules_manticore_banner_images_5.webp 1024w, /cache/xl-custom_modules_manticore_banner_images_5.webp 1366w, /cache/custom_modules_manticore_banner_images_5.webp 1900w" sizes="(max-width: 420px) 100v
5081w, (max-width: 640px) 100vw, (max-width: 1024px) 100vw, (max-width: 1366px) 100vw, 1900px" data-lazy-picture="false" type="image/webp"><img alt="Cosmetic Dentist in Bridgeport" class="background_image" src="/custom/modules/manticore_banner/images/5.jpg" data-lazy-img="false" data-src="/custom/modules/manticore_banner/images/5.jpg"></picture> 5082 </div> 5083 </div> 5084</div> 5085 </div> 5086 <div class="content_below"> 5087 5088 </div> 5089 </div> 5090</section>
5090<script> 5091 javascript.prototype[get_id()] = function() { 5092 var json = {"settings":{"slide_duration":8,"auto_slide":true,"arrows":false,"parallax":false,"expand":false},"content":[{"image":"\/custom\/modules\/manticore_banner\/images\/5.jpg","title":"Experience the difference","subtitle":"Get the dental care you need with the understanding & comfort you deserve","text":"","button":[{"label":"View Our Services","url":"\/services\/"}]}]}; 5093 5094 var banner_fade_counter = 1; 5095 var banner_fade_duration = json.settings.slide_duration * 1000; 5096 var auto_slide = json.settings.auto_slide; 5097 var arrows_enabled = json.settings.arrows; 5098 5099 $('.section_2 .block_container:first-of-type').addClass('active'); 5100 $('.section_2 .block_container:first-of-type').addClass('start'); 5101 5102 function shift_image() { 5103 if ( 5104 json.settings.hasOwnProperty('parallax') && 5105 json.settings.parallax 5106 ) { 5107 var elementHeight = $('.section_2 .block_container.active .background_image').height(); 5108 var startEffect = $('.section_2 .block_container.active .background_image').offset().top - $(window).height(); 5109 var endEffect = $('.section_2 .block_container.active .background_image').offset().top + elementHeight; 5110 5111 var pageHeight = $(document).height(); 5112 5113 var scrollDistance = endEffect - startEffect; 5114 var scrollPosition = $(document).scrollTop(); 5115 5116 if (scrollPosition > startEffect && scrollPosition < endEffect) { 5117 scrollPercent = ((scrollPosition - startEffect) / scrollDistance * 100).toFixed(4); 5118 5119 $('.section_2 .background_image').css('object-position', 'center '+(100 - scrollPercent)+'%'); 5120 } 5121 } 5122 else { 5123 $('.section_2 .background_image').addClass('static'); 5124 } 5125 } 5126 5127 if(json.settings.hasOwnProperty('auto_slide') && auto_slide) { 5128 setInterval(function() { 5129 if ($('.section_2 .block_container').length > 1) { 5130 $('.section_2 .block_container.active').removeClass('active'); 5131 $('.section_2 .block_container:nth-of-type('+banner_fade_counter+')').css('z-index', '10'); 5132 banner_fade_counter++; 5133 5134 5135 if (banner_fade_counter > $('.section_2 .block_container').length) { 5136 banner_fade_counter = 1; 5137 } 5138 $('.section_2 .block_container:nth-of-type('+banner_fade_counter+')').addClass('active'); 5139 $('.section_2 .block_container:nth-of-type('+banner_fade_counter+')').css('z-index', '20'); 5140 if ( 5141 json.settings.hasOwnProperty('expand') && 5142 json.settings.expand 5143 ) { 5144 $('.section_2 .block_container:nth-of-type('+banner_fade_counter+') .background_container').addClass('expand'); 5145 } 5146 $('.section_2 .block_container:nth-of-type('+banner_fade_counter+')').addClass('show'); 5147 setTimeout(function() { 5148 $('.section_2 .block_container:not(:nth-of-type('+banner_fade_counter+'))').css('z-index', '10'); 5149 $('.section_2 .block_container:not(:nth-of-type('+banner_fade_counter+'))').removeClass('show'); 5150 $('.section_2 .block_container:not(:nth-of-type('+banner_fade_counter+')) .background_container').removeClass('expand'); 5151 $('.section_2 .block_container.start').removeClass('start'); 5152 }, 3000); 5153 } 5154 }, banner_fade_duration); 5155 } 5156 5157 if(json.settings.hasOwnProperty('arrows') && arrows_enabled) { 5158 $('.section_2 .content_container').before('<div data-action="prev"><i class="fal fa-chevron-left">'); 5159 $('.section_2 .content_container').after('<div data-action="next"><i class="fal fa-chevron-right">'); 5160 5161 $('.section_2 div[data-action="prev"]').click(function() { 5162 console.log(`Counter started at ${banner_fade_counter}`); 5163 if ($('.section_2 .block_container').length > 1) { 5164 $('.section_2 .block_container.active').removeClass('active'); 5165 $('.section_2 .block_container:nth-of-type('+banner_fade_counter+')').css('z-index', '10'); 5166 banner_fade_counter--; 5167 console.log(`Counter ended at ${banner_fade_counter}`); 5168 5169 5170 5171 if (banner_fade_counter <= 0) { 5172 banner_fade_counter = $('.section_2 .block_container').length; 5173 } 5174 $('.section_2 .block_container:nth-of-type('+banner_fade_counter+')').addClass('active'); 5175 $('.section_2 .block_container:nth-of-type('+banner_fade_counter+')').css('z-index', '20'); 5176 if ( 5177 json.settings.hasOwnProperty('expand') && 5178 json.settings.expand 5179 ) { 5180 $('.section_2 .block_container:nth-of-type('+banner_fade_counter+') .background_container').addClass('expand'); 5181 } 5182 $('.section_2 .block_container:nth-of-type('+banner_fade_counter+')').addClass('show'); 5183 setTimeout(function() { 5184 $('.section_2 .block_container:not(:nth-of-type('+banner_fade_counter+'))').css('z-index', '10'); 5185 $('.section_2 .block_container:not(:nth-of-type('+banner_fade_counter+'))').removeClass('show'); 5186 $('.section_2 .block_container:not(:nth-of-type('+banner_fade_counter+')) .background_container').removeClass('expand'); 5187 $('.section_2 .block_container.start').removeClass('start'); 5188 }, 3000); 5189 } 5190 }); 5191 5192 $('.section_2 div[data-action="next"]').click(function() { 5193 console.log(`Counter started at ${banner_fade_counter}`); 5194 if ($('.section_2 .block_container').length > 1) { 5195 $('.section_2 .block_container.active').removeClass('active'); 5196 $('.section_2 .block_container:nth-of-type('+banner_fade_counter+')').css('z-index', '10'); 5197 banner_fade_counter++; 5198 console.log(`Counter ended at ${banner_fade_counter}`); 5199 5200 5201 if (banner_fade_counter > $('.section_2 .block_container').length) { 5202 banner_fade_counter = 1; 5203 } 5204 $('.section_2 .block_container:nth-of-type('+banner_fade_counter+')').addClass('active'); 5205 $('.section_2 .block_container:nth-of-type('+banner_fade_counter+')').css('z-index', '20'); 5206 if ( 5207 json.settings.hasOwnProperty('expand') && 5208 json.settings.expand 5209 ) { 5210 $('.section_2 .block_container:nth-of-type('+banner_fade_counter+') .background_container').addClass('expand'); 5211 } 5212 $('.section_2 .block_container:nth-of-type('+banner_fade_counter+')').addClass('show'); 5213 setTimeout(function() { 5214 $('.section_2 .block_container:not(:nth-of-type('+banner_fade_counter+'))').css('z-index', '10'); 5215 $('.section_2 .block_container:not(:nth-of-type('+banner_fade_counter+'))').removeClass('show'); 5216 $('.section_2 .block_container:not(:nth-of-type('+banner_fade_counter+')) .background_container').removeClass('expand'); 5217 $('.section_2 .block_container.start').removeClass('start'); 5218 }, 3000); 5219 } 5220 }); 5221 } 5222 5223 shift_image(); 5224 5225 $(window).resize(function() { 5226 shift_image(); 5227 }); 5228 5229 $(document).scroll(function() { 5230 shift_image(); 5231 }); 5232 } 5233</script>
5233<style>.section_3 { 5234 padding: 40px 40px; 5235} 5236.section_3 .content_container { 5237 max-width: 100%; 5238 justify-content: center; 5239 display: flex; 5240 margin-left: auto; 5241 margin-right: auto; 5242 box-sizing: border-box; 5243} 5244.section_3 .content_container .content { 5245 width: 100%; 5246} 5247.section_3 .content_container .content h2 { 5248 text-align: center; 5249} 5250.section_3 .content_container .content h3 { 5251 font-size: 1.5rem; 5252} 5253@media (max-width: 640px) { 5254 .section_3 { 5255 padding: 20px 20px; 5256 } 5257} 5258</style><style>.section_3 .content_container .content { 5259 text-align: center; 5260} 5261.section_3 .content_container .content h2 { 5262 font-size: 3rem; 5263} 5264.section_3 .content_container .content .address i, 5265.section_3 .content_container .content .address svg { 5266 color: #09B0EE; 5267 display: inline-block; 5268} 5269.section_3 .content_container .content .address div[data-micro-template="one_line_address"] { 5270 display: inline-block; 5271 margin-left: 6px; 5272} 5273.section_3 .content_container .content .address .localmed-button img { 5274 margin-top: -2px !important; 5275 border: 0 !important; 5276 vertical-align: middle !important; 5277 display: inline !important; 5278 max-height: 100% !important; 5279} 5280</style> 5281<section class="section_3" data-module="content" data-html="/custom/modules/home_addresses/module.html" data-json="" data-page="" data-full-path="/"> 5282 <div class="content_container"> 5283 <div class="content"> 5284 <h2>We Welcome Adults and Children!</h2> 5285<div class="address"> 5286 <i class="fas fa-map-marker-alt"></i><div data-micro-template="one_line_address"> 5287 23 Hoyt Street, Suite 2, <span>Stamford</span>, <span>CT</span> <span>06905</span> 5288</div> 5289</div> 5290<p><!--New Patients: <a href='tel:+1 '></a><br>Existing Patients: --><a href="tel:+12033276717" aria-label="(203) 327-6717" class="tel_12033276717" data-click-call="0">(203) 327-6717</a></p> 5291<div class="address"> 5292 <i class="fas fa-map-marker-alt"></i><div data-micro-template="one_line_address"> 5293 3738 Park Avenue, <span>
5293Bridgeport</span>, <span>CT</span> <span>06604</span> 5294</div> 5295</div> 5296<p><!--New Patients: <a href='tel:+1 '></a><br>Existing Patients: --><a href="tel:+12035499099" aria-label="(203) 549-9099" class="tel_12035499099" data-click-call="0">(203) 549-9099</a></p> 5297<!--<a href="https://www.localmed.com/offices/e6e2faff-db89-401f-9ae7-dc2b4a297f7e/widget/?chrome=&hidePartnerLogo=true&partnerId=&referringWidgetId=73fb58f7-e737-43fc-97ed-2d1af11da018&scheduling=in_widget&utm_campaign=button_widget&utm_content=Website&utm_medium=widget&utm_source=www.mcleansmiles.com" target="_blank" class="localmed-button" data-localmed-toggle="modal"> 5298 Schedule Online 5299 <img src="/custom/images/localmed-icon-tiny.png" alt="LocalMed Icon" width="16" height="16"> 5300 </a>--> 5301 </div> 5302 </div> 5303</section><style></style><style>.section_4 { 5304 box-sizing: border-box; 5305} 5306.section_4 .content_container .content { 5307 max-width: 1600px; 5308 margin: 0 auto; 5309 padding: 0 65px; 5310 box-sizing: border-box; 5311 display: flex; 5312 justify-content: space-between; 5313 flex-wrap: wrap; 5314} 5315@media (max-width: 1024px) { 5316 .section_4 .content_container .content { 5317 padding: 0 25px; 5318 } 5319} 5320.section_4 .content_container .content h2 { 5321 font-size: 40px; 5322 line-height: 1.2; 5323 font-weight: 600; 5324 border-top: 2px solid #6C675C; 5325 padding: 40px 0; 5326 margin: 0; 5327} 5328@media (max-width: 1024px) { 5329 .section_4 .content_container .content h2 { 5330 font-size: 32px; 5331 padding: 25px 0; 5332 } 5333} 5334.section_4 .content_container .content h3 { 5335 font-size: 24px; 5336 font-weight: 400; 5337 line-height: 1.35; 5338 margin: 0; 5339 padding: 0; 5340 text-align: left; 5341 color: #6C675C; 5342} 5343@media (max-width: 1024px) { 5344 .section_4 .content_container .content h3 { 5345 font-size: 20px; 5346 } 5347} 5348.section_4 .content_container .content h3.title { 5349 font-weight: 600; 5350 padding: 25px 0 15px; 5351 font-size: 24px; 5352} 5353.section_4 .content_container .content h3 a { 5354 color: #4bc9f8; 5355} 5356.section_4 .content_container .content h3 a:hover { 5357 color: #4bc9f8; 5358 text-decoration: underline; 5359} 5360@media (max-width: 1024px) { 5361 .section_4 .content_container .content h3 { 5362 font-size: 20px; 5363 } 5364} 5365.section_4 .content_container .content .hydra_repeated_blocks_above, 5366.section_4 .content_container .content .hydra_repeated_blocks_below { 5367 flex-basis: 100%; 5368} 5369.section_4 .content_container .content .repeated_block { 5370 margin-bottom: 40px; 5371 border-top: 1px solid #ceccc6; 5372} 5373@media (max-width: 768px) { 5374 .section_4 .content_container .content .repeated_block { 5375 margin-bottom: 30px; 5376 } 5377} 5378.section_4 .content_container .content .repeated_block.two { 5379 flex-basis: 48%; 5380} 5381.section_4 .content_container .content .repeated_block.three { 5382 flex-basis: 31%; 5383} 5384@media (max-width: 768px) { 5385 .section_4 .content_container .content .repeated_block.three { 5386 flex-basis: 100%; 5387 } 5388} 5389.section_4 .content_container .content .repeated_block.four { 5390 flex-basis: 23%; 5391} 5392@media (max-width: 1024px) { 5393 .section_4 .content_container .content .repeated_block.four { 5394 flex-basis: 48%; 5395 } 5396} 5397@media (max-width: 768px) { 5398 .section_4 .content_container .content .repeated_block.four { 5399 flex-basis: 100%; 5400 } 5401} 5402.section_4 .content_container .content .repeated_block.five { 5403 flex-basis: 18%; 5404} 5405.section_4 .content_container .content .repeated_block .text { 5406 max-width: 85%; 5407} 5408@media (max-width: 1024px) { 5409 .section_4 .content_container .content .repeated_block .text { 5410 max-width: 95%; 5411 } 5412} 5413@media (maxa-width: 768px) { 5414 .section_4 .content_container .content .repeated_block .text { 5415 max-width: 100%; 5416 } 5417} 5418</style> 5419<section class="section_4" data-module="html_module" data-html="/custom/modules/hydra_repeated_blocks/module.html" data-json="/custom/modules/hydra_repeated_blocks/module.json" data-page="" data-full-path="/"> 5420 <div class="content_container"> 5421 <div class="content"> 5422 <div class="hydra_repeated_blocks_above"> 5423 <h2>Skilled & dedicated professional team</h2> 5424</div> 5425 <div class="repeated_block three"> 5426 <div class="text"> 5427 <h3 class="title">Value patient input </h3> 5428 <h3>Excellent treatment outcomes depend on trusting partnerships in care. Tell us about your smile. Weâre listening.</h3> 5429 </div> 5430</div> 5431<div class="repeated_block three"> 5432 <div class="text"> 5433 <h3 class="title">A commitment to excellence </h3> 5434 <h3>Providing personalized solutions using the most advanced technology and treatment methods.</h3> 5435 </div> 5436</div> 5437<div class="repeated_block three"> 5438 <div class="text"> 5439 <h3 class="title">Integrated, comprehensive care</h3> 5440 <h3>Helping patients maintain healthy, beautiful smiles with care that supports overall wellness.</h3> 5441 </div> 5442</div> 5443 5444 <div class="hydra_repeated_blocks_below"> 5445 <h3><a href="/staff/" aria-label="Learn more">Learn more</a></h3> 5446</div> 5447 </div> 5448 <div class="sidebar" data-sidebar="false"> 5449 5450 </div> 5451 </div> 5452</section><style></style><style>.section_5 { 5453 box-sizing: border-box; 5454 padding: 40px 0; 5455} 5456.section_5 .content_container { 5457 padding: 0 65px; 5458} 5459@media (max-width: 1024px) { 5460 .section_5 .content_container { 5461 padding: 0 25px; 5462 } 5463} 5464.section_5 .content_container .content { 5465 display: flex; 5466 flex-wrap: wrap; 5467 justify-content: space-between; 5468} 5469.section_5 .content_container .content .tall_block { 5470 flex-basis: 23%; 5471 display: flex; 5472 flex-direction: column; 5473 margin-bottom: 40px; 5474} 5475@media (max-width: 1024px) { 5476 .section_5 .content_container .content .tall_block { 5477 flex-basis: 48%; 5478 } 5479} 5480@media (max-width: 480px) { 5481 .section_5 .content_container .content .tall_block { 5482 flex-basis: 100%; 5483 } 5484} 5485.section_5 .content_container .content .tall_block .image { 5486 display: flex; 5487 height: 600px; 5488} 5489@media (max-width: 1600px) { 5490 .section_5 .content_container .content .tall_block .image { 5491 height: 400px; 5492 } 5493} 5494@media (max-width: 768px) { 5495 .section_5 .content_container .content .tall_block .image { 5496 height: 325px; 5497 } 5498} 5499.section_5 .content_container .content .tall_block .image ) 5500 5501 @media(max-width:@phone) { 5502 height: 275px; 5503} 5504.section_5 .content_container .content .tall_block .image img, 5505.section_5 .content_container .content .tall_block .image picture { 5506 object-fit: cover; 5507 display: block; 5508 width: 100%; 5509 height: 100%; 5510} 5511.section_5 .content_container .content .tall_block .text { 5512 display: flex; 5513 flex-direction: column; 5514} 5515.section_5 .content_container .content .tall_block .text h3 { 5516 text-transform: capitalize; 5517 font-size: 22px; 5518 line-height: 1.2; 5519} 5520@media (max-width: 1024px) { 5521 .section_5 .content_container .content .tall_block .text h3 { 5522 font-size: 24px; 5523 } 5524} 5525.section_5 .content_container .content .tall_block .text p { 5526 font-size: 24px; 5527 font-weight: 400; 5528 line-height: 1.35; 5529 margin: 0 0 20px 0; 5530 text-align: left; 5531 color: #6C675C; 5532 font-family: "Helvetica"; 5533} 5534@media (max-width: 1024px) { 5535 .section_5 .content_container .content .tall_block .text p { 5536 font-size: 20px; 5537 margin-bottom: 15px; 5538 } 5539} 5540.section_5 .content_container .content .tall_block .text div[data-micro-template="buttons_container"] { 5541 display: flex; 5542} 5543.section_5 .content_container .content .tall_block .text div[data-micro-template="buttons_container"] div[data-micro-template="buttons"] .button { 5544 font-size: 16px; 5545 background: none; 5546 text-transform: uppercase; 5547 transition: all 0.3s; 5548 margin: 0; 5549 height: 48px; 5550 display: flex; 5551 align-items: center; 5552 justify-content: center; 5553 border-radius: 100px; 5554 background: #4bc9f8; 5555 color: #fff; 5556 font-weight: 400; 5557 box-sizing: border-box; 5558 transition: all 0.3s ease; 5559 letter-spacing: .12em; 5560 border: 1px solid #4bc9f8; 5561} 5562.section_5 .content_container .content .tall_block .text div[data-micro-template="buttons_container"] div[data-micro-template="buttons"] .button:hover { 5563 background: #32c2f7; 5564 color: #f2f2f2; 5565} 5566@media (max-width: 1024px) { 5567 .section_5 .content_container .content .tall_block .text div[data-micro-template="buttons_container"] div[data-micro-template="buttons"] .button { 5568 padding: 12px 18px; 5569 height: 48px; 5570 box-sizing: border-box; 5571 font-size: 14px; 5572 } 5573} 5574.section_5 .content_container .content .tall_block .text div[data-micro-template="buttons_container"] div[data-micro-template="buttons"]:not(:first-of-type) { 5575 display: none; 5576} 5577@media (max-width: 1024px) { 5578 .section_5 .content_container .content .tall_block .text div[data-micro-template="buttons_container"] div[data-micro-template="buttons"]:not(:first-of-type) { 5579 display: flex; 5580 margin-left: 10px; 5581 } 5582} 5583.section_5 .content_container .content .tall_block .text div[data-micro-template="buttons_container"] div[data-micro-template="buttons"]:not(:first-of-type) .button { 5584 background: #fff; 5585 color: #4bc9f8; 5586} 5587.section_5 .content_container .content .tall_block .text div[data-micro-template="buttons_container"] div[data-micro-template="buttons"]:not(:first-of-type) .button:hover { 5588 background: #32c2f7; 5589 color: #f2f2f2; 5590} 5591</style> 5592<section class="section_5" data-module="html_module" data-html="/custom/modules/hydra_tall_blocks/module.html" data-json="/custom/modules/hydra_tall_blocks/module.json" data-page="" data-full-path="/"> 5593 <div class="content_container"> 5594 <div class="content"> 5595 5596 <div class="tall_block"> 5597 <div class="image"> 5598 <picture><source srcset="/cache/sm-custom_modules_hydra_tall_blocks_images_1.webp 420w, /cache/custom_modules_hydra_tall_blocks_images_1.webp 612w" sizes="(max-width: 420px) 100v
5598w, 612px" data-lazy-picture="false" type="image/webp"><img alt="Dentist in Stamford" class="" src="/custom/modules/hydra_tall_blocks/images/1.jpg" data-lazy-img="false" data-src="/custom/modules/hydra_tall_blocks/images/1.jpg"></picture> 5599 </div> 5600 <div class="text"> 5601 <h3>Invisalign®</h3> 5602 <p>The clear way to a straight smile!</p> 5603 <div data-micro-template="buttons_container"> 5604 <div data-micro-template="buttons"> 5605 <a class="button" href="/services/invisalign/" role="button" aria-label="Learn more">Learn more</a> 5606</div> 5607</div> 5608 </div> 5609</div> 5610<div class="tall_block"> 5611 <div class="image"> 5612 <picture><source srcset="/cache/sm-custom_modules_hydra_tall_blocks_images_2.webp 420w, /cache/custom_modules_hydra_tall_blocks_images_2.webp 612w" sizes="(max-width: 420px) 100vw, 612px" data-lazy-picture="false" type="image/webp"><img alt="Dental Office in Bridgeport" class="" src="/custom/modules/hydra_tall_blocks/images/2.jpg" data-lazy-img="false" data-src="/custom/modules/hydra_tall_blocks/images/2.jpg"></picture> 5613 </div> 5614 <div class="text"> 5615 <h3>Dental Implants</h3> 5616 <p>The most advanced solution for replacing missing teeth.</p> 5617 <div data-micro-template="buttons_container"> 5618 <div data-micro-template="buttons"> 5619 <a class="button" href="/services/implant-dentistry/" role="button" aria-label="Learn more">Learn more</a> 5620</div> 5621</div> 5622 </div> 5623</div> 5624<div class="tall_block"> 5625 <div class="image"> 5626 <picture><source srcset="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8Xw8AAoMBgDTD2qgAAAAASUVORK5CYII=" data-srcset="/cache/sm-custom_modules_hydra_tall_blocks_images_3.webp 420w, /cache/custom_modules_hydra_tall_blocks_images_3.webp 612w" sizes="(max-width: 420px) 100vw, 612px" data-lazy-picture="true" type="image/webp"><img alt="Dentist in Bridgeport" class="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8Xw8AAoMBgDTD2qgAAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_tall_blocks/images/3.jpg"></picture> 5627 </div> 5628 <div class="text"> 5629 <h3>Emergencies welcome</h3> 5630 <p>Weâre here for you when you need us most!</p> 5631 <div data-micro-template="buttons_container"> 5632 <div data-micro-template="buttons"> 5633 <a class="button" href="/services/emergency-treatment/" role="button" aria-label="Learn more">Learn more</a> 5634</div> 5635</div> 5636 </div> 5637</div> 5638<div class="tall_block"> 5639 <div class="image"> 5640 <picture><source srcset="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8Xw8AAoMBgDTD2qgAAAAASUVORK5CYII=" data-srcset="/cache/sm-custom_modules_hydra_tall_blocks_images_4.webp 420w, /cache/custom_modules_hydra_tall_blocks_images_4.webp 612w" sizes="(max-width: 420px) 100vw, 612px" data-lazy-picture="true" type="image/webp"><img alt="Cosmetic Dentist in Stamford" class="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8Xw8AAoMBgDTD2qgAAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_tall_blocks/images/4.jpg"></picture> 5641 </div> 5642 <div class="text"> 5643 <h3>Comprehensive care</h3> 5644 <p>Our broad range of services is designed to address all your family's dental needs.</p> 5645 <div data-micro-template="buttons_container"> 5646 <div data-micro-template="buttons"> 5647 <a class="button" href="/services/" role="button" aria-label="Learn more">Learn more</a> 5648</div> 5649</div> 5650 </div> 5651</div> 5652 5653 5654 </div> 5655 <div class="sidebar" data-sidebar="false"> 5656 5657 </div> 5658 </div> 5659</section><style>.section_6 { 5660 display: flex; 5661 justify-content: center; 5662 align-items: center; 5663 padding: 40px 0px; 5664} 5665.section_6 div[data-action="prev"], 5666.section_6 div[data-action="next"] { 5667 font-size: 32px; 5668 padding: 10px; 5669 cursor: pointer; 5670} 5671.section_6 div[data-action="lightbox"] { 5672 display: none; 5673} 5674.section_6 .content_container { 5675 max-width: 1100px; 5676 height: 240px; 5677 overflow: hidden; 5678} 5679.section_6 .content_container .content { 5680 display: flex; 5681 transition: transform 1s; 5682 height: 100%; 5683 align-items: center; 5684} 5685.section_6 .content_container .content .block_container { 5686 flex: 0 0 220px; 5687 display: flex; 5688 justify-content: center; 5689 padding: 10px; 5690 box-sizing: border-box; 5691} 5692.section_6 .content_container .content .block_container .block { 5693 width: 200px; 5694 height: 200px; 5695 padding: 0px; 5696 box-sizing: border-box; 5697 transition: transform 0.4s; 5698} 5699.section_6 .content_container .content .block_container .block:hover { 5700 transform: scale(1.1); 5701} 5702.section_6 .content_container .content .block_container .block .background_container { 5703 width: 100%; 5704 height: 100%; 5705} 5706.section_6 .content_container .content .block_container:hover .block { 5707 transform: scale(1.1); 5708} 5709@media (max-width: 1366px) { 5710 .section_6 .content_container { 5711 max-width: 880px; 5712 } 5713} 5714@media (max-width: 1024px) { 5715 .section_6 .content_container { 5716 max-width: 660px; 5717 } 5718} 5719@media (max-width: 840px) { 5720 .section_6 .content_container { 5721 max-width: 440px; 5722 } 5723} 5724@media (max-width: 560px) { 5725 .section_6 .content_container { 5726 max-width: 220px; 5727 } 5728} 5729.section_6 div[data-action="prev"], 5730.section_6 div[data-action="next"] { 5731 user-select: none; 5732} 5733.section_6[data-center-hightlight="true"] div[data-action="prev"], 5734.section_6[data-center-hightlight="true"] div[data-action="next"] { 5735 font-size: 32px; 5736 padding: 10px; 5737 cursor: pointer; 5738} 5739.section_6[data-center-hightlight="true"] .content_container { 5740 max-width: 1100px; 5741 height: 240px; 5742 overflow: hidden; 5743} 5744.section_6[data-center-hightlight="true"] .content_container .content .block_container { 5745 transition: transform 0.4s; 5746} 5747.section_6[data-center-hightlight="true"] .content_container .content .selected + .block_container + .block_container { 5748 transform: scale(1.1); 5749} 5750.section_6[data-center-hightlight="true"] .content_container .content .selected + .block_container + .block_container .block:hover { 5751 transform: initial; 5752} 5753@media (max-width: 1366px) { 5754 .section_6[data-center-hightlight="true"] .content_container { 5755 max-width: 660px; 5756 } 5757 .section_6[data-center-hightlight="true"] .content_container .content .selected + .block_container + .block_container { 5758 transform: initial; 5759 } 5760 .section_6[data-center-hightlight="true"] .content_container .content .selected + .block_container + .block_container .block:hover { 5761 transform: scale(1.1); 5762 } 5763 .section_6[data-center-hightlight="true"] .content_container .content .selected + .block_container { 5764 transform: scale(1.1); 5765 } 5766 .section_6[data-center-hightlight="true"] .content_container .content .selected + .block_container .block:hover { 5767 transform: initial; 5768 } 5769} 5770@media (max-width: 840px) { 5771 .section_6[data-center-hightlight="true"] .content_container { 5772 max-width: 220px; 5773 } 5774 .section_6[data-center-hightlight="true"] .content_container .content .selected + .block_container { 5775 transform: initial; 5776 } 5777 .section_6[data-center-hightlight="true"] .content_container .content .selected + .block_container .block:hover { 5778 transform: scale(1.1); 5779 } 5780} 5781.section_6[data-center-hightlight="true"] div[data-action="prev"], 5782.section_6[data-center-hightlight="true"] div[data-action="next"] { 5783 user-select: none; 5784} 5785section[data-type="system-lightbox-container"] *[data-origin=".section_6"] { 5786 position: fixed; 5787 height: 100vh; 5788 width: 100%; 5789 box-sizing: border-box; 5790 top: 0px; 5791 left: 0px; 5792 background-color: rgba(0,0,0,0.8); 5793 justify-content: center; 5794 align-items: center; 5795 z-index: 9999; 5796 display: flex; 5797 padding: 20px; 5798} 5799section[data-type="system-lightbox-container"] *[data-origin=".section_6"] [data-action="lightbox_item"] { 5800 display: none; 5801 position: relative; 5802} 5803section[data-type="system-lightbox-container"] *[data-origin=".section_6"] [data-action="lightbox_item"] img, 5804section[data-type="system-lightbox-container"] *[data-origin=".section_6"] [data-action="lightbox_item"] picture { 5805 max-height: 90vh; 5806} 5807section[data-type="system-lightbox-container"] *[data-origin=".section_6"] [data-action="lightbox_item"] .close-icon { 5808 position: absolute; 5809 top: -10px; 5810 right: -10px; 5811 cursor: pointer; 5812 font-size: 2.5rem; 5813} 5814section[data-type="system-lightbox-container"] *[data-origin=".section_6"] [data-action="lightbox_item"] .close-icon, 5815section[data-type="system-lightbox-container"] *[data-origin=".section_6"] [data-action="lightbox_item"] .next-icon, 5816section[data-type="system-lightbox-container"] *[data-origin=".section_6"] [data-action="lightbox_item"] .prev-icon { 5817 color: #09B0EE; 5818} 5819section[data-type="system-lightbox-container"] *[data-origin=".section_6"] [data-action="lightbox_item"].selected { 5820 display: block; 5821} 5822.section_6 { 5823 display: flex; 5824 padding: 40px 0px; 5825 flex-wrap: wrap; 5826 max-width: 100%; 5827} 5828.section_6 div[data-action="prev"], 5829.section_6 div[data-action="next"] { 5830 font-size: 24px; 5831 padding: 10px; 5832 width: 65px; 5833 height: 65px; 5834 background: #fff; 5835 cursor: pointer; 5836 position: absolute; 5837 display: flex; 5838 box-sizing: border-box; 5839 justify-content: center; 5840 align-items: center; 5841 z-index: 999; 5842} 5843@media (max-width: 1024px) { 5844 .section_6 div[data-action="prev"], 5845 .section_6 div[data-action="next"] { 5846 width: 48px; 5847 height: 48px; 5848 font-size: 22px; 5849 } 5850} 5851.section_6 div[data-action="prev"] { 5852 left: 0; 5853} 5854.section_6 div[data-action="next"] { 5855 right: 0; 5856} 5857.section_6 .hydra_testimonial_header { 5858 max-width: 1600px; 5859 margin: 0 auto; 5860 padding: 0 65px; 5861 box-sizing: border-box; 5862 flex-basis: 100%; 5863} 5864@media (max-width: 1024px) { 5865 .section_6 .hydra_testimonial_header { 5866 padding: 0 25px; 5867 } 5868} 5869.section_6 .hydra_testimonial_header h2 { 5870 font-size: 40px; 5871 line-height: 1.2; 5872 font-weight: 600; 5873 border-top: 2px solid #6C675C; 5874 padding-top: 40px; 5875 margin: 0; 5876} 5877@media (max-width: 1024px) { 5878 .section_6 .hydra_testimonial_header h2 { 5879 font-size: 32px; 5880 padding-top: 25px; 5881 } 5882} 5883.section_6 .content_container { 5884 width: 100%; 5885 max-width: 100%; 5886 box-sizing: border-box; 5887 height: auto; 5888 overflow: hidden; 5889 margin: 40px 20px 0px 20px; 5890} 5891.section_6 .content_container .content { 5892 display: flex; 5893 transition: transform 1s; 5894 height: 100%; 5895 align-items: flex-start; 5896 justify-content: space-between; 5897} 5898.section_6 .content_container .content .block_container { 5899 flex-basis: 20%; 5900 display: flex; 5901 justify-content: center; 5902 box-sizing: border-box; 5903} 5904@media (max-width: 1600px) { 5905 .section_6 .content_container .content .block_container { 5906 flex-basis: 25%; 5907 } 5908} 5909@media (max-width: 1366px) { 5910 .section_6 .content_container .content .block_container { 5911 flex-basis: 33.33%; 5912 } 5913} 5914@media (max-width: 1024px) { 5915 .section_6 .content_container .content .block_container { 5916 flex-basis: 50%; 5917 } 5918} 5919@media (max-width: 768px) { 5920 .section_6 .content_container .content .block_container { 5921 flex-basis: 100%; 5922 } 5923} 5924.section_6 .content_container .content .block_container .block { 5925 padding: 0px; 5926 box-sizing: border-box; 5927 transition: transform 0.4s; 5928 width: 100%; 5929 padding: 20px 40px 40px 40px; 5930 height: 100%; 5931 background: #EFEDE9; 5932 color: #6C675C; 5933} 5934.section_6 .content_container .content .block_container .block:hover { 5935 transform: none; 5936} 5937.section_6 .content_container .content .block_container .block .background_container { 5938 width: 100%; 5939 height: 100%; 5940} 5941.section_6 .content_container .content .block_container .block h3 { 5942 font-size: 24px; 5943 line-height: 1.5; 5944 margin: 0; 5945 color: #6C675C; 5946 font-weight: 400; 5947} 5948.section_6 .content_container .content .block_container .block .subtext { 5949 font-size: 17px; 5950 line-height: 1.5; 5951 margin: 0; 5952} 5953.section_6 .content_container .content .block_container .block .stars { 5954 margin: 10px 0 45px 0; 5955} 5956@media (max-width: 768px) { 5957 .section_6 .content_container .content .block_container .block .stars { 5958 margin-bottom: 20px; 5959 } 5960} 5961.section_6 .content_container .content .block_container .block p { 5962 margin: 0; 5963 font-size: 15px; 5964} 5965.section_6 .content_container .content .block_container .block .image { 5966 margin-top: 25px; 5967 filter: grayscale(1); 5968} 5969@media (max-width: 1024px) { 5970 .section_6 .content_container .content .block_container .block .image { 5971 display: none; 5972 } 5973} 5974.section_6 .content_container .content .block_container:hover .block { 5975 transform: none; 5976} 5977.section_6 div[data-action="prev"], 5978.section_6 div[data-action="next"] { 5979 user-select: none; 5980} 5981.section_6[data-center-hightlight="true"] div[data-action="prev"], 5982.section_6[data-center-hightlight="true"] div[data-action="next"] { 5983 font-size: 32px; 5984 padding: 10px; 5985 cursor: pointer; 5986} 5987.section_6[data-center-hightlight="true"] .content_container { 5988 max-width: 1100px; 5989 height: 240px; 5990 overflow: hidden; 5991} 5992.section_6[data-center-hightlight="true"] .content_container .content .block_container { 5993 transition: transform 0.4s; 5994} 5995.section_6[data-center-hightlight="true"] .content_container .content .selected + .block_container + .block_container { 5996 transform: scale(1.1); 5997} 5998.section_6[data-center-hightlight="true"] .content_container .content .selected + .block_container + .block_container .block:hover { 5999 transform: initial; 6000} 6001@media (max-width: 1366px) { 6002 .section_6[data-center-hightlight="true"] .content_container { 6003 max-width: 660px; 6004 } 6005 .section_6[data-center-hightlight="true"] .content_container .content .selected + .block_container + .block_container { 6006 transform: initial; 6007 } 6008 .section_6[data-center-hightlight="true"] .content_container .content .selected + .block_container + .block_container .block:hover { 6009 transform: scale(1.1); 6010 } 6011 .section_6[data-center-hightlight="true"] .content_container .content .selected + .block_container { 6012 transform: scale(1.1); 6013 } 6014 .section_6[data-center-hightlight="true"] .content_container .content .selected + .block_container .block:hover { 6015 transform: initial; 6016 } 6017} 6018@media (max-width: 840px) { 6019 .section_6[data-center-hightlight="true"] .content_container { 6020 max-width: 220px; 6021 } 6022 .section_6[data-center-hightlight="true"] .content_container .content .selected + .block_container { 6023 transform: initial; 6024 } 6025 .section_6[data-center-hightlight="true"] .content_container .content .selected + .block_container .block:hover { 6026 transform: scale(1.1); 6027 } 6028} 6029.section_6[data-center-hightlight="true"] div[data-action="prev"], 6030.section_6[data-center-hightlight="true"] div[data-action="next"] { 6031 user-select: none; 6032} 6033</style><style>.section_6 { 6034 display: flex; 6035 padding: 40px 0px; 6036 flex-wrap: wrap; 6037 max-width: 100%; 6038} 6039.section_6 div[data-action="prev"], 6040.section_6 div[data-action="next"] { 6041 font-size: 24px; 6042 padding: 10px; 6043 width: 65px; 6044 height: 65px; 6045 background: #fff; 6046 cursor: pointer; 6047 position: absolute; 6048 display: flex; 6049 box-sizing: border-box; 6050 justify-content: center; 6051 align-items: center; 6052 z-index: 999; 6053} 6054@media (max-width: 1024px) { 6055 .section_6 div[data-action="prev"], 6056 .section_6 div[data-action="next"] { 6057 width: 48px; 6058 height: 48px; 6059 font-size: 22px; 6060 } 6061} 6062.section_6 div[data-action="prev"] { 6063 left: 0; 6064} 6065.section_6 div[data-action="next"] { 6066 right: 0; 6067} 6068.section_6 .hydra_testimonial_header { 6069 max-width: 1600px; 6070 margin: 0 auto; 6071 padding: 0 65px; 6072 box-sizing: border-box; 6073 flex-basis: 100%; 6074} 6075@media (max-width: 1024px) { 6076 .section_6 .hydra_testimonial_header { 6077 padding: 0 25px; 6078 } 6079} 6080.section_6 .hydra_testimonial_header h2 { 6081 font-size: 40px; 6082 line-height: 1.2; 6083 font-weight: 600; 6084 border-top: 2px solid #6C675C; 6085 padding-top: 40px; 6086 margin: 0; 6087} 6088@media (max-width: 1024px) { 6089 .section_6 .hydra_testimonial_header h2 { 6090 font-size: 32px; 6091 padding-top: 25px; 6092 } 6093} 6094.section_6 .content_container { 6095 width: 100%; 6096 max-width: 100%; 6097 box-sizing: border-box; 6098 height: auto; 6099 overflow: hidden; 6100 margin: 40px 20px 0px 20px; 6101} 6102.section_6 .content_container .content { 6103 display: flex; 6104 transition: transform 1s; 6105 height: 100%; 6106 align-items: flex-start; 6107 justify-content: space-between; 6108} 6109.section_6 .content_container .content .block_container { 6110 flex-basis: 20%; 6111 display: flex; 6112 justify-content: center; 6113 box-sizing: border-box; 6114} 6115@media (max-width: 1600px) { 6116 .section_6 .content_container .content .block_container { 6117 flex-basis: 25%; 6118 } 6119} 6120@media (max-width: 1366px) { 6121 .section_6 .content_container .content .block_container { 6122 flex-basis: 33.33%; 6123 } 6124} 6125@media (max-width: 1024px) { 6126 .section_6 .content_contai
6126ner .content .block_container { 6127 flex-basis: 50%; 6128 } 6129} 6130@media (max-width: 768px) { 6131 .section_6 .content_container .content .block_container { 6132 flex-basis: 100%; 6133 } 6134} 6135.section_6 .content_container .content .block_container:nth-of-type(even) .block { 6136 background: linear-gradient(to top,#4bc9f8,rgba(75,201,248,0.6)); 6137} 6138.section_6 .content_container .content .block_container .block { 6139 padding: 0px; 6140 box-sizing: border-box; 6141 transition: transform 0.4s; 6142 width: 100%; 6143 padding: 20px 40px 40px 40px; 6144 height: 100%; 6145 background: linear-gradient(to top,#09B0EE,rgba(9,176,238,0.6)); 6146 color: #fff; 6147} 6148.section_6 .content_container .content .block_container .block:hover { 6149 transform: none; 6150} 6151.section_6 .content_container .content .block_container .block .background_container { 6152 width: 100%; 6153 height: 100%; 6154} 6155.section_6 .content_container .content .block_container .block h3 { 6156 font-size: 24px; 6157 line-height: 1.5; 6158 margin: 0; 6159 color: #fff; 6160 font-weight: 400; 6161} 6162.section_6 .content_container .content .block_container .block .subtext { 6163 font-size: 17px; 6164 line-height: 1.5; 6165 margin: 0; 6166} 6167.section_6 .content_container .content .block_container .block .stars { 6168 margin: 10px 0 45px 0; 6169} 6170@media (max-width: 768px) { 6171 .section_6 .content_container .content .block_container .block .stars { 6172 margin-bottom: 20px; 6173 } 6174} 6175.section_6 .content_container .content .block_container .block p { 6176 margin: 0; 6177 font-size: 15px; 6178} 6179.section_6 .content_container .content .block_container .block .image { 6180 margin-top: 25px; 6181 filter: brightness(0) invert(1); 6182} 6183@media (max-width: 1024px) { 6184 .section_6 .content_container .content .block_container .block .image { 6185 display: none; 6186 } 6187} 6188.section_6 .content_container .content .block_container:hover .block { 6189 transform: none; 6190} 6191.section_6 div[data-action="prev"], 6192.section_6 div[data-action="next"] { 6193 user-select: none; 6194} 6195.section_6[data-center-hightlight="true"] div[data-action="prev"], 6196.section_6[data-center-hightlight="true"] div[data-action="next"] { 6197 font-size: 32px; 6198 padding: 10px; 6199 cursor: pointer; 6200} 6201.section_6[data-center-hightlight="true"] .content_container { 6202 max-width: 1100px; 6203 height: 240px; 6204 overflow: hidden; 6205} 6206.section_6[data-center-hightlight="true"] .content_container .content .block_container { 6207 transition: transform 0.4s; 6208} 6209.section_6[data-center-hightlight="true"] .content_container .content .selected + .block_container + .block_container { 6210 transform: scale(1.1); 6211} 6212.section_6[data-center-hightlight="true"] .content_container .content .selected + .block_container + .block_container .block:hover { 6213 transform: initial; 6214} 6215@media (max-width: 1366px) { 6216 .section_6[data-center-hightlight="true"] .content_container { 6217 max-width: 660px; 6218 } 6219 .section_6[data-center-hightlight="true"] .content_container .content .selected + .block_container + .block_container { 6220 transform: initial; 6221 } 6222 .section_6[data-center-hightlight="true"] .content_container .content .selected + .block_container + .block_container .block:hover { 6223 transform: scale(1.1); 6224 } 6225 .section_6[data-center-hightlight="true"] .content_container .content .selected + .block_container { 6226 transform: scale(1.1); 6227 } 6228 .section_6[data-center-hightlight="true"] .content_container .content .selected + .block_container .block:hover { 6229 transform: initial; 6230 } 6231} 6232@media (max-width: 840px) { 6233 .section_6[data-center-hightlight="true"] .content_container { 6234 max-width: 220px; 6235 } 6236 .section_6[data-center-hightlight="true"] .content_container .content .selected + .block_container { 6237 transform: initial; 6238 } 6239 .section_6[data-center-hightlight="true"] .content_container .content .selected + .block_container .block:hover { 6240 transform: scale(1.1); 6241 } 6242} 6243.section_6[data-center-hightlight="true"] div[data-action="prev"], 6244.section_6[data-center-hightlight="true"] div[data-action="next"] { 6245 user-select: none; 6246} 6247</style> 6248<section class="section_6" data-module="hydra_testimonials" data-html="/system/modules/hydra/testimonials/1.0.0/module.html" data-json="/custom/modules/hydra_testimonials/module.json" data-page="" data-full-path="/" data-center-hightlight="false"> 6249 <div class="hydra_testimonial_header"> 6250 <h2>What our patients are saying</h2> 6251</div> 6252 <div class="content_container"> 6253 <div class="content"> 6254 <div class="block_container"> 6255 <div class="block"> 6256 <h3>Lita</h3>
6257 <p class="subtext">Google</p> 6258 <div class="stars"> 6259 <i class="fas fa-star"></i> 6260 <i class="fas fa-star"></i> 6261 <i class="fas fa-star"></i> 6262 <i class="fas fa-star"></i> 6263 <i class="fas fa-star"></i> 6264 </div> 6265 <p>In one visit Dr. Mclean and her staff have laid all my worries to rest. They are so friendly, warm, welcoming, and professional. The office is modern, clean, and nicely decorated This was the best visit I've had with a dentist ever.</p> 6266 <div class="image"> 6267 <picture><source srcset="/cache/custom_modules_hydra_testimonials_images_google.webp 150w" sizes="150px" data-lazy-picture="false" type="image/webp"><img alt="Stamford Top Dentist" class="" src="/custom/modules/hydra_testimonials/images/google.png" data-lazy-img="false" data-src="/custom/modules/hydra_testimonials/images/google.png"></picture> 6268 </div> 6269 </div> 6270</div><div class="block_container"> 6271 <div class="block"> 6272 <h3>Kendra</h3> 6273 <p class="subtext">Google</p> 6274 <div class="stars"> 6275 <i class="fas fa-star"></i> 6276 <i class="fas fa-star"></i> 6277 <i class="fas fa-star"></i> 6278 <i class="fas fa-star"></i> 6279 <i class="fas fa-star"></i> 6280 </div> 6281 <p>What an amazing dentist! A great dentist is not easy to come by these days and I received wonderful service. Itâs a blessing to find someone you trust. The staff is very pleasant. Highly recommended!</p> 6282 <div class="image"> 6283 <picture><source srcset="/cache/custom_modules_hydra_testimonials_images_google.webp 150w" sizes="150px" data-lazy-picture="false" type="image/webp"><img alt="Stamford Top Dentist" class="" src="/custom/modules/hydra_testimonials/images/google.png" data-lazy-img="false" data-src="/custom/modules/hydra_testimonials/images/google.png"></picture> 6284 </div> 6285 </div> 6286</div><div class="block_container"> 6287 <div class="block"> 6288 <h3>Joshua</h3> 6289 <p class="subtext">Google</p> 6290 <div class="stars"> 6291 <i class="fas fa-star"></i> 6292 <i class="fas fa-star"></i> 6293 <i class="fas fa-star"></i> 6294 <i class="fas fa-star"></i> 6295 <i class="fas fa-star"></i> 6296 </div> 6297 <p>Awesome experience: they take their time: please take your time to come by this place! I needed a clean and they did me good! MALE SURE YOU GO THERE!</p> 6298 <div class="image"> 6299 <picture><source srcset="/cache/custom_modules_hydra_testimonials_images_google.webp 150w" sizes="150px" data-lazy-picture="false" type="image/webp"><img alt="Stamford Top Dentist" class="" src="/custom/modules/hydra_testimonials/images/google.png" data-lazy-img="false" data-src="/custom/modules/hydra_testimonials/images/google.png"></picture> 6300 </div> 6301 </div> 6302</div><div class="block_container"> 6303 <div class="block"> 6304 <h3>Bini</h3> 6305 <p class="subtext">Google</p> 6306 <div class="stars"> 6307 <i class="fas fa-star"></i> 6308 <i class="fas fa-star"></i> 6309 <i class="fas fa-star"></i> 6310 <i class="fas fa-star"></i> 6311 <i class="fas fa-star"></i> 6312 </div> 6313 <p>I just had my first visit at the clinic. I like how friendly the people are from front desk to the doctor. I would highly recommend the place.</p> 6314 <div class="image"> 6315 <picture><source srcset="/cache/custom_modules_hydra_testimonials_images_google.webp 150w" sizes="150px" data-lazy-picture="false" type="image/webp"><img alt="Stamford Top Dentist" class="" src="/custom/modules/hydra_testimonials/images/google.png" data-lazy-img="false" data-src="/custom/modules/hydra_testimonials/images/google.png"></picture> 6316 </div> 6317 </div> 6318</div><div class="block_container"> 6319 <div class="block"> 6320 <h3>Kelly</h3> 6321 <p class="subtext">Google</p> 6322 <div class="stars"> 6323 <i class="fas fa-star"></i> 6324 <i class="fas fa-star"></i> 6325 <i class="fas fa-star"></i> 6326 <i class="fas fa-star"></i> 6327 <i class="fas fa-star"></i> 6328 </div> 6329 <p>I just had dental work at McLean Smiles in Stamford, Connecticut. The staff was professional; but more importantly, my dentist, Dr. Jacqueline McLean is outstanding! She is the only dentist that I trust wholeheartedly and I highly recommend her professional services to anyone who needs dental care.</p> 6330 <div class="image"> 6331 <picture><source srcset="/cache/custom_modules_hydra_testimonials_images_google.webp 150w" sizes="150px" data-lazy-picture="false" type="image/webp"><img alt="Stamford Top Dentist" class="" src="/custom/modules/hydra_testimonials/images/google.png" data-lazy-img="false" data-src="/custom/modules/hydra_testimonials/images/google.png"></picture> 6332 </div> 6333 </div> 6334</div><div class="block_container"> 6335 <div class="block"> 6336 <h3>Jack</h3>
6337 <p class="subtext">Google</p> 6338 <div class="stars"> 6339 <i class="fas fa-star"></i> 6340 <i class="fas fa-star"></i> 6341 <i class="fas fa-star"></i> 6342 <i class="fas fa-star"></i> 6343 <i class="fas fa-star"></i> 6344 </div> 6345 <p>Appointment started on time. Excellent job. All professionalism. Iâm happy customer.</p> 6346 <div class="image"> 6347 <picture><source srcset="/cache/custom_modules_hydra_testimonials_images_google.webp 150w" sizes="150px" data-lazy-picture="false" type="image/webp"><img alt="Stamford Top Dentist" class="" src="/custom/modules/hydra_testimonials/images/google.png" data-lazy-img="false" data-src="/custom/modules/hydra_testimonials/images/google.png"></picture> 6348 </div> 6349 </div> 6350</div><div class="block_container"> 6351 <div class="block"> 6352 <h3>Adrian</h3> 6353 <p class="subtext">Google</p> 6354 <div class="stars"> 6355 <i class="fas fa-star"></i> 6356 <i class="fas fa-star"></i> 6357 <i class="fas fa-star"></i> 6358 <i class="fas fa-star"></i> 6359 <i class="fas fa-star"></i> 6360 </div> 6361 <p>Mclean smiles is a great place all of the staff is so kind, Dr Spaulding looks out for your best interest and gives good honest advice she also is very receptive to how you are feeling. The Overall experience was warm and welcoming they are Friendly and welcoming from front desk to dental assistance to dentist 10 out of 10 would recommend.</p> 6362 <div class="image"> 6363 <picture><source srcset="/cache/custom_modules_hydra_testimonials_images_google.webp 150w" sizes="150px" data-lazy-picture="false" type="image/webp"><img alt="Stamford Top Dentist" class="" src="/custom/modules/hydra_testimonials/images/google.png" data-lazy-img="false" data-src="/custom/modules/hydra_testimonials/images/google.png"></picture> 6364 </div> 6365 </div> 6366</div><div class="block_container"> 6367 <div class="block"> 6368 <h3>Phillip</h3> 6369 <p class="subtext">Google</p> 6370 <div class="stars"> 6371 <i class="fas fa-star"></i> 6372 <i class="fas fa-star"></i> 6373 <i class="fas fa-star"></i> 6374 <i class="fas fa-star"></i> 6375 <i class="fas fa-star"></i> 6376 </div> 6377 <p>I have been using Dr.McLean for over 15 years. Amazing friendly and personal experience, with amazing results. I highly recommend!</p> 6378 <div class="image"> 6379 <picture><source srcset="/cache/custom_modules_hydra_testimonials_images_google.webp 150w" sizes="150px" data-lazy-picture="false" type="image/webp"><img alt="Stamford Top Dentist" class="" src="/custom/modules/hydra_testimonials/images/google.png" data-lazy-img="false" data-src="/custom/modules/hydra_testimonials/images/google.png"></picture> 6380 </div> 6381 </div> 6382</div><div class="block_container"> 6383 <div class="block"> 6384 <h3>Corey</h3> 6385 <p class="subtext">Google</p> 6386 <div class="stars"> 6387 <i class="fas fa-star"></i> 6388 <i class="fas fa-star"></i> 6389 <i class="fas fa-star"></i> 6390 <i class="fas fa-star"></i> 6391 <i class="fas fa-star"></i> 6392 </div> 6393 <p>Truly the best dental experience every time! I always appreciate the care and expertise I receive here. Today, like always, I'm leaving with super clean teeth and encouragement to keep up with healthy routines! I'm so glad to have been referred to you and your team years ago, Dr. McLean!!</p> 6394 <div class="image"> 6395 <picture><source srcset="/cache/custom_modules_hydra_testimonials_images_google.webp 150w" sizes="150px" data-lazy-picture="false" type="image/webp"><img alt="Stamford Top Dentist" class="" src="/custom/modules/hydra_testimonials/images/google.png" data-lazy-img="false" data-src="/custom/modules/hydra_testimonials/images/google.png"></picture> 6396 </div> 6397 </div> 6398</div> 6399 </div> 6400 </div> 6401 6402 6403</section>
6403<script> 6404 javascript.prototype[get_id()] = function() { 6405 var json = {"settings":{"gallery":false,"center_highlight":false,"lightbox_template":"","above":"\/custom\/modules\/hydra_testimonials\/above.html"},"content":[{"autofill":"!\/autofills\/builder\/list\/testimonials->content->*[hydra_testimonials]"}]}; 6406 var counter = 0; 6407 var selected = 0; 6408 var shift = 0; 6409 var total_images = $('.section_6 .block_container').length; 6410 var slide_duration = json.settings.slide_duration * 1000 || 5000; 6411 var auto_slide = json.settings.auto_slide; 6412 6413 $('.section_6 .block_container').each(function() { 6414 $(this).attr('data-order', counter); 6415 counter++; 6416 }); 6417 6418 $('.section_6 .content_container').before('<div data-action="prev" role="button" aria-label="Previous Slide"><i class="fal fa-chevron-left">'); 6419 $('.section_6 .content_container').after('<div data-action="next" role="button" aria-label="Next Slide"><i class="fal fa-chevron-right">'); 6420 6421 $('.section_6 .block_container[data-order="'+selected+'"]').addClass('selected'); 6422 6423 $('.section_6 div[data-action="prev"]').click(function() { 6424 clearInterval(slideTimer); 6425 previousSlide(); 6426 }); 6427 6428 $('.section_6 div[data-action="next"]').click(function() { 6429 clearInterval(slideTimer); 6430 nextSlide(); 6431 }); 6432 6433 function nextSlide() { 6434 var current_selected = $('.section_6 .selected'); 6435 var current_width = parseFloat($(current_selected).outerWidth()); 6436 // var current_container = parseInt($('.section_6 .content_container').css('max-width').replace('px', '')); 6437 var current_container = parseFloat($('.section_6 .content_container').outerWidth()); 6438 6439 if ($('.section_6 .selected').attr('data-order') == 0) { 6440 shift = 0; 6441 } 6442 6443 var number_displayed = current_container / current_width; 6444 var offset = parseInt($(current_selected).attr('data-order')) + number_displayed; 6445 6446 if ($(current_selected).next().length && offset < total_images) { 6447 $(current_selected).next().addClass('selected'); 6448 $(current_selected).removeClass('selected'); 6449 shift -= current_width; 6450 $('.section_6 .content').css('transform', 'translate('+shift+'px)'); 6451 } 6452 6453 else { 6454 $('.section_6 .content .block_container').each(function() { 6455 $(this).removeClass('selected'); 6456 }) 6457 $('.section_6 .content .block_container[data-order=0]').addClass('selected'); 6458 $('.section_6 .content').css('transform', 'translate(0%)'); 6459 } 6460 } 6461 6462 function previousSlide() { 6463 var current_selected = $('.section_6 .selected'); 6464 var current_width = parseFloat($(current_selected).outerWidth()); 6465 6466 if ($('.section_6 .selected').attr('data-order') == 0) { 6467 shift = 0; 6468 } 6469 6470 if ($(current_selected).prev().length) { 6471 $(current_selected).prev().addClass('selected'); 6472 $(current_selected).removeClass('selected'); 6473 shift += current_width; 6474 $('.section_6 .content').css('transform', 'translate(0%)'); 6475 $('.section_6 .content').css('transform', 'translate('+shift+'px)'); 6476 } 6477 } 6478 6479 $('.section_6 .block_container').click(function() { 6480 if ($('.section_6 div[data-action="lightbox"]').length) { 6481 var selected = $(this).attr('data-order'); 6482 var clone = $('.section_6 div[data-action="lightbox"]')[0]; 6483 var section = '.section_6'; 6484 6485 clone_lightbox(selected, clone, section, null); 6486 assignArrowListeners(); 6487 } 6488 }); 6489 6490 document.onkeydown = (e) => { 6491 if (document.querySelector('section[data-type="system-lightbox-container"]').classList.contains('show')) { 6492 if (e.keyCode == 27) { 6493 close_lightbox(); 6494 } 6495 if (e.keyCode == 37) { 6496 changeImage('previous'); 6497 } 6498 if (e.keyCode == 39) { 6499 changeImage('next'); 6500 } 6501 } 6502 } 6503 6504 function assignArrowListeners() { 6505 $('section[data-type="system-lightbox-container"] .next-icon').click(function(e) { 6506 e.preventDefault(); 6507 changeImage('next'); 6508 }); 6509 6510 $('section[data-type="system-lightbox-container"] .prev-icon').click(function(e) { 6511 e.preventDefault(); 6512 changeImage('previous'); 6513 }); 6514 } 6515 6516 function changeImage(direction) { 6517 var current = $('section[data-type="system-lightbox-container"] [data-action="lightbox_item"].selected'); 6518 current.removeClass('selected'); 6519 6520 if (direction === 'previous') { 6521 if (current.prev().length) { 6522 current.prev().addClass('selected'); 6523 } 6524 else { 6525 $('section[data-type="system-lightbox-container"] [data-action="lightbox_item"]:last-of-type').addClass('selected'); 6526 } 6527 } 6528 else if (direction === 'next') { 6529 if (current.next().length) { 6530 current.next().addClass('selected'); 6531 } 6532 else { 6533 $('section[data-type="system-lightbox-container"] [data-action="lightbox_item"]:first-of-type').addClass('selected'); 6534 } 6535 } 6536 6537 current = $('section[data-type="system-lightbox-container"] [data-action="lightbox_item"].selected'); 6538 $('section[data-type="system-lightbox-container"] [data-action="lightbox_item"] .close-icon').prependTo(current); 6539 $('section[data-type="system-lightbox-container"] [data-action="lightbox_item"] .next-icon').prependTo(current); 6540 $('section[data-type="system-lightbox-container"] [data-action="lightbox_item"] .prev-icon').prependTo(current); 6541 } 6542 6543 if(auto_slide) { 6544 var slideTimer = setInterval(() => { 6545 nextSlide(); 6546 }, slide_duration); 6547 } 6548 } 6549</script>
6549<style>.section_7 { 6550 display: flex; 6551 justify-content: center; 6552 align-items: center; 6553 padding: 40px 0px; 6554} 6555.section_7 div[data-action="prev"], 6556.section_7 div[data-action="next"] { 6557 font-size: 32px; 6558 padding: 10px; 6559 cursor: pointer; 6560} 6561.section_7 div[data-action="lightbox"] { 6562 display: none; 6563} 6564.section_7 .content_container { 6565 max-width: 1100px; 6566 height: 240px; 6567 overflow: hidden; 6568} 6569.section_7 .content_container .content { 6570 display: flex; 6571 transition: transform 1s; 6572 height: 100%; 6573 align-items: center; 6574} 6575.section_7 .content_container .content .block_container { 6576 flex: 0 0 220px; 6577 display: flex; 6578 justify-content: center; 6579 padding: 10px; 6580 box-sizing: border-box; 6581 cursor: pointer; 6582} 6583.section_7 .content_container .content .block_container .block { 6584 width: 200px; 6585 height: 200px; 6586 padding: 0px; 6587 box-sizing: border-box; 6588 transition: transform 0.4s; 6589} 6590.section_7 .content_container .content .block_container .block:hover { 6591 transform: scale(1.1); 6592} 6593.section_7 .content_container .content .block_container .block .background_container { 6594 width: 100%; 6595 height: 100%; 6596} 6597.section_7 .content_container .content .block_container:hover .block { 6598 transform: scale(1.1); 6599} 6600@media (max-width: 1366px) { 6601 .section_7 .content_container { 6602 max-width: 880px; 6603 } 6604} 6605@media (max-width: 1024px) { 6606 .section_7 .content_container { 6607 max-width: 660px; 6608 } 6609} 6610@media (max-width: 840px) { 6611 .section_7 .content_container { 6612 max-width: 440px; 6613 } 6614} 6615@media (max-width: 560px) { 6616 .section_7 .content_container { 6617 max-width: 220px; 6618 } 6619} 6620.section_7 div[data-action="prev"], 6621.section_7 div[data-action="next"] { 6622 user-select: none; 6623} 6624.section_7[data-center-hightlight="true"] div[data-action="prev"], 6625.section_7[data-center-hightlight="true"] div[data-action="next"] { 6626 font-size: 32px; 6627 padding: 10px; 6628 cursor: pointer; 6629} 6630.section_7[data-center-hightlight="true"] .content_container { 6631 max-width: 1100px; 6632 height: 240px; 6633 overflow: hidden; 6634} 6635.section_7[data-center-hightlight="true"] .content_container .content .block_container { 6636 transition: transform 0.4s; 6637} 6638.section_7[data-center-hightlight="true"] .content_container .content .selected + .block_container + .block_container { 6639 transform: scale(1.1); 6640} 6641.section_7[data-center-hightlight="true"] .content_container .content .selected + .block_container + .block_container .block:hover { 6642 transform: initial; 6643} 6644@media (max-width: 1366px) { 6645 .section_7[data-center-hightlight="true"] .content_container { 6646 max-width: 660px; 6647 } 6648 .section_7[data-center-hightlight="true"] .content_container .content .selected + .block_container + .block_container { 6649 transform: initial; 6650 } 6651 .section_7[data-center-hightlight="true"] .content_container .content .selected + .block_container + .block_container .block:hover { 6652 transform: scale(1.1); 6653 } 6654 .section_7[data-center-hightlight="true"] .content_container .content .selected + .block_container { 6655 transform: scale(1.1); 6656 } 6657 .section_7[data-center-hightlight="true"] .content_container .content .selected + .block_container .block:hover { 6658 transform: initial; 6659 } 6660} 6661@media (max-width: 840px) { 6662 .section_7[data-center-hightlight="true"] .content_container { 6663 max-width: 220px; 6664 } 6665 .section_7[data-center-hightlight="true"] .content_container .content .selected + .block_container { 6666 transform: initial; 6667 } 6668 .section_7[data-center-hightlight="true"] .content_container .content .selected + .block_container .block:hover { 6669 transform: scale(1.1); 6670 } 6671} 6672.section_7[data-center-hightlight="true"] div[data-action="prev"], 6673.section_7[data-center-hightlight="true"] div[data-action="next"] { 6674 user-select: none; 6675} 6676section[data-type="system-lightbox-container"] *[data-origin=".section_7"] { 6677 position: fixed; 6678 height: 100vh; 6679 width: 100%; 6680 box-sizing: border-box; 6681 top: 0px; 6682 left: 0px; 6683 background-color: rgba(0,0,0,0.8); 6684 justify-content: center; 6685 align-items: center; 6686 z-index: 9999; 6687 display: flex; 6688 padding: 20px; 6689} 6690section[data-type="system-lightbox-container"] *[data-origin=".section_7"] [data-action="lightbox_item"] { 6691 display: none; 6692 position: relative; 6693} 6694section[data-type="system-lightbox-container"] *[data-origin=".section_7"] [data-action="lightbox_item"] img, 6695section[data-type="system-lightbox-container"] *[data-origin=".section_7"] [data-action="lightbox_item"] picture { 6696 max-height: 90vh; 6697} 6698section[data-type="system-lightbox-container"] *[data-origin=".section_7"] [data-action="lightbox_item"] .close-icon { 6699 position: absolute; 6700 top: -10px; 6701 right: -10px; 6702 cursor: pointer; 6703 font-size: 2.5rem; 6704} 6705section[data-type="system-lightbox-container"] *[data-origin=".section_7"] [data-action="lightbox_item"] .close-icon, 6706section[data-type="system-lightbox-container"] *[data-origin=".section_7"] [data-action="lightbox_item"] .next-icon, 6707section[data-type="system-lightbox-container"] *[data-origin=".section_7"] [data-action="lightbox_item"] .prev-icon { 6708 color: #09B0EE; 6709} 6710section[data-type="system-lightbox-container"] *[data-origin=".section_7"] [data-action="lightbox_item"].selected { 6711 display: block; 6712} 6713</style><style>.section_7 { 6714 display: flex; 6715 padding: 40px 0px; 6716 flex-wrap: wrap; 6717} 6718.section_7 div[data-action="prev"], 6719.section_7 div[data-action="next"] { 6720 font-size: 24px; 6721 padding: 10px; 6722 width: 65px; 6723 height: 65px; 6724 background: #fff; 6725 cursor: pointer; 6726 position: absolute; 6727 display: flex; 6728 box-sizing: border-box; 6729 justify-content: center; 6730 align-items: center; 6731 z-index: 999; 6732} 6733@media (max-width: 1024px) { 6734 .section_7 div[data-action="prev"], 6735 .section_7 div[data-action="next"] { 6736 width: 48px; 6737 height: 48px; 6738 font-size: 22px; 6739 } 6740} 6741.section_7 div[data-action="prev"] { 6742 left: 0; 6743} 6744.section_7 div[data-action="next"] { 6745 right: 0; 6746} 6747.section_7 .content_container { 6748 width: 100%; 6749 max-width: 100%; 6750 box-sizing: border-box; 6751 height: auto; 6752 overflow: hidden; 6753 margin: 40px 20px 0px 20px; 6754} 6755.section_7 .content_container .content { 6756 display: flex; 6757 transition: transform 1s; 6758 height: 100%; 6759 align-items: flex-start; 6760 justify-content: space-between; 6761} 6762.section_7 .content_container .content .block_container { 6763 flex-basis: 95%; 6764 display: flex; 6765 justify-content: center; 6766 box-sizing: border-box; 6767} 6768.section_7 .content_container .content .block_container .block { 6769 padding: 0px; 6770 box-sizing: border-box; 6771 transition: transform 0.4s; 6772 width: 100%; 6773 height: 600px; 6774} 6775@media (max-width: 1366px) { 6776 .section_7 .content_container .content .block_container .block { 6777 height: 500px; 6778 } 6779} 6780@media (max-width: 768px) { 6781 .section_7 .content_container .content .block_container .block { 6782 height: 400px; 6783 } 6784} 6785@media (max-width: 480px) { 6786 .section_7 .content_container .content .block_container .block { 6787 height: 300px; 6788 } 6789} 6790.section_7 .content_container .content .block_container .block:hover { 6791 transform: none; 6792} 6793.section_7 .content_container .content .block_container:hover .block { 6794 transform: none; 6795} 6796.section_7 div[data-action="prev"], 6797.section_7 div[data-action="next"] { 6798 user-select: none; 6799} 6800.section_7[data-center-hightlight="true"] div[data-action="prev"], 6801.section_7[data-center-hightlight="true"] div[data-action="next"] { 6802 font-size: 32px; 6803 padding: 10px; 6804 cursor: pointer; 6805} 6806.section_7[data-center-hightlight="true"] .content_container { 6807 max-width: 1100px; 6808 height: 240px; 6809 overflow: hidden; 6810} 6811.section_7[data-center-hightlight="true"] .content_container .content .block_container { 6812 transition: transform 0.4s; 6813} 6814.section_7[data-center-hightlight="true"] .content_container .content .selected + .block_container + .block_container { 6815 transform: scale(1.1); 6816} 6817.section_7[data-center-hightlight="true"] .content_container .content .selected + .block_container + .block_container .block:hover { 6818 transform: initial; 6819} 6820@media (max-width: 1366px) { 6821 .section_7[data-center-hightlight="true"] .content_container { 6822 max-width: 660px; 6823 } 6824 .section_7[data-center-hightlight="true"] .content_container .content .selected + .block_container + .block_container { 6825 transform: initial; 6826 } 6827 .section_7[data-center-hightlight="true"] .content_container .content .selected + .block_container + .block_container .block:hover { 6828 transform: scale(1.1); 6829 } 6830 .section_7[data-center-hightlight="true"] .content_container .content .selected + .block_container { 6831 transform: scale(1.1); 6832 } 6833 .section_7[data-center-hightlight="true"] .content_container .content .selected + .block_container .block:hover { 6834 transform: initial; 6835 } 6836} 6837@media (max-width: 840px) { 6838 .section_7[data-center-hightlight="true"] .content_container { 6839 max-width: 220px; 6840 } 6841 .section_7[data-center-hightlight="true"] .content_container .content .selected + .block_container { 6842 transform: initial; 6843 } 6844 .section_7[data-center-hightlight="true"] .content_container .content .selected + .block_container .block:hover { 6845 transform: scale(1.1); 6846 } 6847} 6848.section_7[data-center-hightlight="true"] div[data-action="prev"], 6849.section_7[data-center-hightlight="true"] div[data-action="next"] { 6850 user-select: none; 6851} 6852</style> 6853<section class="section_7" data-module="small_image_slider" data-html="/custom/modules/hydra_slider/module.html" data-json="/custom/modules/hydra_slider/module.json" data-page="" data-full-path="/" data-center-hightlight="false"> 6854 6855 <div class="content_container"> 6856 <div class="content"> 6857 <div class="block_container"> 6858 <div class="block"> 6859 <div class="background_container"> 6860 <picture class="background_image"><source srcset="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8Xw8AAoMBgDTD2qgAAAAASUVORK5CYII=" data-srcset="/cache/sm-custom_modules_hydra_slider_images_6.webp 420w, /cache/md-custom_modules_hydra_slider_images_6.webp 640w, /cache/lg-custom_modules_hydra_slider_images_6.webp 1024w, /cache/custom_modules_hydra_slider_images_6.webp 1080w" sizes="(max-width: 420px) 100v
6860w, (max-width: 640px) 100vw, (max-width: 1024px) 100vw, 1080px" data-lazy-picture="true" type="image/webp"><img alt="Dental Office in Stamford" class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8Xw8AAoMBgDTD2qgAAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_slider/images/6.jpg"></picture> 6861 </div> 6862 </div> 6863</div><div class="block_container"> 6864 <div class="block"> 6865 <div class="background_container"> 6866 <picture class="background_image"><source srcset="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8Xw8AAoMBgDTD2qgAAAAASUVORK5CYII=" data-srcset="/cache/sm-custom_modules_hydra_slider_images_1.webp 420w, /cache/md-custom_modules_hydra_slider_images_1.webp 640w, /cache/lg-custom_modules_hydra_slider_images_1.webp 1024w, /cache/custom_modules_hydra_slider_images_1.webp 1080w" sizes="(max-width: 420px) 100vw, (max-width: 640px) 100vw, (max-width: 1024px) 100vw, 1080px" data-lazy-picture="true" type="image/webp"><img alt="Dentist in Stamford" class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8Xw8AAoMBgDTD2qgAAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_slider/images/1.jpg"></picture> 6867 </div> 6868 </div> 6869</div><div class="block_container"> 6870 <div class="block"> 6871 <div class="background_container"> 6872 <picture class="background_image"><source srcset="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8Xw8AAoMBgDTD2qgAAAAASUVORK5CYII=" data-srcset="/cache/sm-custom_modules_hydra_slider_images_2.webp 420w, /cache/md-custom_modules_hydra_slider_images_2.webp 640w, /cache/lg-custom_modules_hydra_slider_images_2.webp 1024w, /cache/custom_modules_hydra_slider_images_2.webp 1080w" sizes="(max-width: 420px) 100vw, (max-width: 640px) 100vw, (max-width: 1024px) 100vw, 1080px" data-lazy-picture="true" type="image/webp"><img alt="Dental Office in Bridgeport" class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8Xw8AAoMBgDTD2qgAAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_slider/images/2.jpg"></picture> 6873 </div> 6874 </div> 6875</div><div class="block_container"> 6876 <div class="block"> 6877 <div class="background_container"> 6878 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_slider/images/3.jpg" alt="Dentist in Bridgeport"> 6879 </div> 6880 </div> 6881</div><div class="block_container"> 6882 <div class="block"> 6883 <div class="background_container"> 6884 <picture class="background_image"><source srcset="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8Xw8AAoMBgDTD2qgAAAAASUVORK5CYII=" data-srcset="/cache/sm-custom_modules_hydra_slider_images_4.webp 420w, /cache/md-custom_modules_hydra_slider_images_4.webp 640w, /cache/custom_modules_hydra_slider_images_4.webp 860w" sizes="(max-width: 420px) 100vw, (max-width: 640px) 100vw, 860px" data-lazy-picture="true" type="image/webp"><img alt="Cosmetic Dentist in Stamford" class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8Xw8AAoMBgDTD2qgAAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_slider/images/4.jpg"></picture> 6885 </div> 6886 </div> 6887</div> 6888 </div> 6889 </div> 6890 6891 6892</section>
6892<script> 6893 javascript.prototype[get_id()] = function() { 6894 var counter = 0; 6895 var selected = 0; 6896 var shift = 0; 6897 var total_images = $('.section_7 .block_container').length; 6898 var json = {"settings":{"gallery":false,"center_highlight":false,"lightbox_template":""},"content":[{"autofill":"!\/autofills\/builder\/list\/hydra_slider->content->*[hydra_slider]"}]}; 6899 6900 $('.section_7 .block_container').each(function() { 6901 $(this).attr('data-order', counter); 6902 counter++; 6903 }); 6904 6905 $('.section_7 .content_container').before('<div data-action="prev"><i class="fal fa-chevron-left">'); 6906 $('.section_7 .content_container').after('<div data-action="next"><i class="fal fa-chevron-right">'); 6907 6908 $('.section_7 .block_container[data-order="'+selected+'"]').addClass('selected'); 6909 6910 $('.section_7 div[data-action="prev"]').click(function() { 6911 var current_selected = $('.section_7 .selected'); 6912 var current_width = parseFloat($(current_selected).outerWidth()); 6913 6914 if ($('.section_7 .selected').attr('data-order') == 0) { 6915 shift = 0; 6916 } 6917 6918 if ($(current_selected).prev().length) { 6919 $(current_selected).prev().addClass('selected'); 6920 $(current_selected).removeClass('selected'); 6921 shift += current_width; 6922 $('.section_7 .content').css('transform', 'translate(0%)'); 6923 $('.section_7 .content').css('transform', 'translate('+shift+'px)'); 6924 } 6925 }); 6926 6927 $('.section_7 div[data-action="next"]').click(function() { 6928 var current_selected = $('.section_7 .selected'); 6929 var current_width = parseFloat($(current_selected).outerWidth()); 6930 // var current_container = parseInt($('.section_7 .content_container').css('max-width').replace('px', '')); 6931 var current_container = parseFloat($('.section_7 .content_container').outerWidth()); 6932 6933 if ($('.section_7 .selected').attr('data-order') == 0) { 6934 shift = 0; 6935 } 6936 6937 var number_displayed = current_container / current_width; 6938 var offset = parseInt($(current_selected).attr('data-order')) + number_displayed; 6939 6940 if ($(current_selected).next().length && offset < total_images) { 6941 $(current_selected).next().addClass('selected'); 6942 $(current_selected).removeClass('selected'); 6943 shift -= current_width; 6944 $('.section_7 .content').css('transform', 'translate('+shift+'px)'); 6945 } 6946 6947 else { 6948 $('.section_7 .content .block_container').each(function() { 6949 $(this).removeClass('selected'); 6950 }) 6951 $('.section_7 .content .block_container[data-order=0]').addClass('selected'); 6952 $('.section_7 .content').css('transform', 'translate(0%)'); 6953 } 6954 }); 6955 6956 $('.section_7 .block_container').click(function() { 6957 if ($('.section_7 div[data-action="lightbox"]').length) { 6958 var selected = $(this).attr('data-order'); 6959 var clone = $('.section_7 div[data-action="lightbox"]')[0]; 6960 var section = '.section_7'; 6961 6962 clone_lightbox(selected, clone, section, null); 6963 assignArrowListeners(); 6964 } 6965 }); 6966 6967 document.onkeydown = (e) => { 6968 if (document.querySelector('section[data-type="system-lightbox-container"]').classList.contains('show')) { 6969 if (e.keyCode == 27) { 6970 close_lightbox(); 6971 } 6972 if (e.keyCode == 37) { 6973 changeImage('previous'); 6974 } 6975 if (e.keyCode == 39) { 6976 changeImage('next'); 6977 } 6978 } 6979 } 6980 6981 function assignArrowListeners() { 6982 $('section[data-type="system-lightbox-container"] .next-icon').click(function(e) { 6983 e.preventDefault(); 6984 changeImage('next'); 6985 }); 6986 6987 $('section[data-type="system-lightbox-container"] .prev-icon').click(function(e) { 6988 e.preventDefault(); 6989 changeImage('previous'); 6990 }); 6991 } 6992 6993 function changeImage(direction) { 6994 var current = $('section[data-type="system-lightbox-container"] [data-action="lightbox_item"].selected'); 6995 current.removeClass('selected'); 6996 6997 if (direction === 'previous') { 6998 if (current.prev().length) { 6999 current.prev().addClass('selected'); 7000 } 7001 else { 7002 $('section[data-type="system-lightbox-container"] [data-action="lightbox_item"]:last-of-type').addClass('selected'); 7003 } 7004 } 7005 else if (direction === 'next') { 7006 if (current.next().length) { 7007 current.next().addClass('selected'); 7008 } 7009 else { 7010 $('section[data-type="system-lightbox-container"] [data-action="lightbox_item"]:first-of-type').addClass('selected'); 7011 } 7012 } 7013 7014 current = $('section[data-type="system-lightbox-container"] [data-action="lightbox_item"].selected'); 7015 $('section[data-type="system-lightbox-container"] [data-action="lightbox_item"] .close-icon').prependTo(current); 7016 $('section[data-type="system-lightbox-container"] [data-action="lightbox_item"] .next-icon').prependTo(current); 7017 $('section[data-type="system-lightbox-container"] [data-action="lightbox_item"] .prev-icon').prependTo(current); 7018 } 7019 } 7020</script>
7020<style></style><style>.section_8 { 7021 padding: 40px 0; 7022} 7023.section_8 .content_container .content { 7024 max-width: 1600px; 7025 margin: 0 auto; 7026 padding: 0 65px; 7027 box-sizing: border-box; 7028 flex-basis: 100%; 7029} 7030@media (max-width: 1024px) { 7031 .section_8 .content_container .content { 7032 padding: 0 25px; 7033 } 7034} 7035.section_8 .content_container .content .block_container .block { 7036 display: flex; 7037 border-top: 2px solid #6C675C; 7038 padding-top: 40px; 7039 justify-content: space-between; 7040} 7041@media (max-width: 1024px) { 7042 .section_8 .content_container .content .block_container .block { 7043 flex-direction: column; 7044 padding-top: 25px; 7045 } 7046} 7047.section_8 .content_container .content .block_container .block .title { 7048 flex-basis: 48%; 7049} 7050.section_8 .content_container .content .block_container .block .title h2 { 7051 font-size: 40px; 7052 line-height: 1.2; 7053 font-weight: 600; 7054 margin: 0; 7055} 7056@media (max-width: 1024px) { 7057 .section_8 .content_container .content .block_container .block .title h2 { 7058 font-size: 32px; 7059 margin-bottom: 25px; 7060 } 7061} 7062@media (max-width: 1024px) { 7063 .section_8 .content_container .content .block_container .block .title h3 { 7064 font-size: 20px; 7065 margin-bottom: 28px; 7066 } 7067} 7068.section_8 .content_container .content .block_container .block .body_container { 7069 flex-basis: 48%; 7070} 7071.section_8 .content_container .content .block_container .block .body_container .body { 7072 max-width: 500px; 7073} 7074@media (max-width: 1024px) { 7075 .section_8 .content_container .content .block_container .block .body_container .body { 7076 max-width: 100%; 7077 } 7078} 7079.section_8 .content_container .content .block_container .block .body_container .body h3 { 7080 font-size: 24px; 7081 font-weight: 400; 7082 line-height: 1.35; 7083 margin: 0; 7084 margin-bottom: 40px; 7085 text-align: left; 7086 color: #6C675C; 7087} 7088@media (max-width: 1024px) { 7089 .section_8 .content_container .content .block_container .block .body_container .body h3 { 7090 font-size: 20px; 7091 margin-bottom: 28px; 7092 } 7093} 7094.section_8 .content_container .content .block_container .block .hydra_buttons { 7095 max-width: 350px; 7096 display: flex; 7097 flex-direction: column; 7098 align-items: center; 7099} 7100.section_8 .content_container .content .block_container .block div[data-micro-template="buttons_container"] { 7101 display: flex; 7102 width: 100%; 7103} 7104.section_8 .content_container .content .block_container .block div[data-micro-template="buttons_container"] div[data-micro-template="buttons"] { 7105 width: 100%; 7106} 7107.section_8 .content_container .content .block_container .block div[data-micro-template="buttons_container"] div[data-micro-template="buttons"] .button { 7108 font-size: 18px; 7109 background: none; 7110 text-transform: uppercase; 7111 transition: all 0.3s; 7112 margin: 0; 7113 height: 64px; 7114 display: flex; 7115 align-items: center; 7116 justify-content: center; 7117 border-radius: 100px; 7118 background: #4bc9f8; 7119 color: #fff; 7120 font-weight: 400; 7121 box-sizing: border-box; 7122 transition: all 0.3s ease; 7123 letter-spacing: .12em; 7124 border: 1px solid #4bc9f8; 7125} 7126.section_8 .content_container .content .block_container .block div[data-micro-template="buttons_container"] div[data-micro-template="buttons"] .button:hover { 7127 background: #32c2f7; 7128 color: #f2f2f2; 7129} 7130@media (max-width: 1024px) { 7131 .section_8 .content_container .content .block_container .block div[data-micro-template="buttons_container"] div[data-micro-template="buttons"] .button { 7132 padding: 12px 18px; 7133 height: 48px; 7134 box-sizing: border-box; 7135 font-size: 14px; 7136 } 7137} 7138.section_8 .content_container .content .block_container .block div[data-micro-template="buttons_container"] div[data-micro-template="buttons"]:not(:first-of-type) { 7139 display: none; 7140} 7141@media (max-width: 1024px) { 7142 .section_8 .content_container .content .block_container .block div[data-micro-template="buttons_container"] div[data-micro-template="buttons"]:not(:first-of-type) { 7143 display: flex; 7144 margin-left: 10px; 7145 } 7146} 7147.section_8 .content_container .content .block_container .block div[data-micro-template="buttons_container"] div[data-micro-template="buttons"]:not(:first-of-type) .button { 7148 background: #fff; 7149 color: #4bc9f8; 7150} 7151.section_8 .content_container .content .block_container .block div[data-micro-template="buttons_container"] div[data-micro-template="buttons"]:not(:first-of-type) .button:hover { 7152 background: #32c2f7; 7153 color: #f2f2f2; 7154} 7155</style> 7156<section class="section_8" data-module="html_module" data-html="/custom/modules/hydra_cta/module.html" data-json="/custom/modules/hydra_cta/module.json" data-page="" data-full-path="/"> 7157 <div class="content_container"> 7158 <div class="content"> 7159 7160 <div class="block_container"> 7161 <div class="block"> 7162 <div class="title"> 7163 <h3>Welcome and thank you for choosing McleanSmiles, your dentist in Stamford and Bridgeport, CT.</h3> 7164 <p>As a premier resource for a comprehensive range of family and cosmetic dental services, we pride ourselves on providing high quality care utilizing the latest and most effective treatment methods.</p> 7165 </div> 7166 <div class="body_container"> 7167 <div class="body"> 7168 <p>At McleanSmiles, you can rest assured that your smile is in the very best of hands. Whether you require a dental checkup, cosmetic smile makeover, dental restorations, root canal, dental implant or emergency care, we can help. Welcoming patients of all ages for care; McleanSmiles is a convenient one-stop destination for all of your family's dental needs.</p> 7169 <p>As a leading dentist in Stamford and Bridgeport, CT, we've earned a reputation for excellence by establishing relationships built on trust with every patient and delivering outstanding outcomes of care. Feel free to browse our website, where you will find an abundance of information about our office and all of the services that we provide. For any additional details on how we
7169can help you achieve and maintain excellent oral health, call our office today.</p> 7170 <!--<div class="hydra_buttons"> 7171 <div data-micro-template="buttons_container"> 7172 <div data-micro-template="buttons"> 7173 <a data-localmed-button href="https://www.localmed.com/widgets/73fb58f7-e737-43fc-97ed-2d1af11da018/">Schedule Online</a> 7174</div> 7175</div> 7176 </div>--> 7177 </div> 7178 </div> 7179 </div> 7180</div> 7181 7182 7183 </div> 7184 <div class="sidebar" data-sidebar="false"> 7185 7186 </div> 7187 </div> 7188</section><style></style><style>.section_9 { 7189 padding: 50px 0; 7190} 7191@media (max-width: 768px) { 7192 .section_9 { 7193 padding: 20px 0; 7194 } 7195} 7196.section_9 .content_container .content .block_container .block { 7197 display: flex; 7198 justify-content: space-between; 7199 align-items: center; 7200 height: 750px; 7201} 7202@media (max-width: 1600px) { 7203 .section_9 .content_container .content .block_container .block { 7204 height: 600px; 7205 } 7206} 7207@media (max-width: 1024px) { 7208 .section_9 .content_container .content .block_container .block { 7209 height: 450px; 7210 } 7211} 7212@media (max-width: 768px) { 7213 .section_9 .content_container .content .block_container .block { 7214 flex-wrap: wrap; 7215 height: auto; 7216 } 7217} 7218.section_9 .content_container .content .block_container .block .left, 7219.section_9 .content_container .content .block_container .block .right { 7220 flex-basis: 48%; 7221 height: 100%; 7222 margin: 20px; 7223} 7224@media (max-width: 768px) { 7225 .section_9 .content_container .content .block_container .block .left, 7226 .section_9 .content_container .content .block_container .block .right { 7227 flex-basis: 100%; 7228 display: none; 7229 } 7230} 7231@media (max-width: 768px) { 7232 .section_9 .content_container .content .block_container .block .left { 7233 height: 350px; 7234 } 7235} 7236.section_9 .content_container .content .block_container .block .right { 7237 flex-direction: column; 7238 display: flex; 7239 justify-content: center; 7240} 7241.section_9 .content_container .content .block_container .block .text { 7242 max-width: 500px; 7243} 7244@media (max-width: 1024px) { 7245 .section_9 .content_container .content .block_container .block .text { 7246 max-width: 100%; 7247 } 7248} 7249@media (max-width: 768px) { 7250 .section_9 .content_container .content .block_container .block .text { 7251 padding: 0 25px; 7252 } 7253} 7254.section_9 .content_container .content .block_container .block h2 { 7255 font-size: 40px; 7256 line-height: 1.2; 7257 font-weight: 600; 7258 margin: 0 0 40px 0; 7259} 7260@media (max-width: 1024px) { 7261 .section_9 .content_container .content .block_container .block h2 { 7262 font-size: 32px; 7263 margin-bottom: 25px; 7264 } 7265} 7266@media (max-width: 768px) { 7267 .section_9 .content_container .content .block_container .block h2 { 7268 margin-top: 25px; 7269 } 7270} 7271.section_9 .content_container .content .block_container .block h3 { 7272 font-size: 24px; 7273 font-weight: 400; 7274 line-height: 1.35; 7275 margin: 0; 7276 margin-bottom: 40px; 7277 text-align: left; 7278 color: #6C675C; 7279} 7280.section_9 .content_container .content .block_container .block h3 a { 7281 color: #4bc9f8; 7282} 7283.section_9 .content_container .content .block_container .block h3 a:hover { 7284 color: #4bc9f8; 7285 text-decoration: underline; 7286} 7287@media (max-width: 1024px) { 7288 .section_9 .content_container .content .block_container .block h3 { 7289 font-size: 20px; 7290 margin-bottom: 28px; 7291 } 7292} 7293.section_9 .content_container .content .block_container .block .map_container { 7294 width: 100%; 7295 height: 100%; 7296 position: relative; 7297} 7298.section_9 .content_container .content .block_container .block .map_container .responsive_iframe { 7299 position: relative; 7300} 7301.section_9 .content_container .content .block_container .block .map_container iframe { 7302 position: absolute; 7303 height: 100%; 7304 width: 100%; 7305 left: 0; 7306 top: 0; 7307} 7308.section_9 .content_container .content .block_container .block .map_container .sixteen-9 { 7309 padding-bottom: 56.25%; 7310} 7311</style> 7312<section class="section_9" data-module="html_module" data-html="/custom/modules/hydra_map/module.html" data-json="/custom/modules/hydra_map/module.json" data-page="" data-full-path="/"> 7313 <div class="content_container"> 7314 <div class="content"> 7315 7316 <div class="block_container"> 7317 <div class="block"> 7318 <div class="left"> 7319 <div class="map_container"> 7320 <iframe src="" frameborder="0" data-src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3008.3887237488693!2d-73.5396974!3d41.060494899999995!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x89c2a1ebde20a52f%3A0x9058bc595365135b!2sMcLeanSmiles%20Family%20%26%20Cosmetic%20Dentistry!5e0!3m2!1sen!2sus!4v1723493840292!5m2!1sen!2sus" aria-label="iframe"></iframe> 7321 </div> 7322 </div> 7323 <div class="right"> 7324 <div class="map_container"> 7325 <iframe src="" frameborder="0" data-src="https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d24013.61895159286!2d-73.226105!3d41.206462!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x0%3A0xf644c975229a7c44!2sMcLeanSmiles!5e0!3m2!1sen!2sus!4v1582565487798!5m2!1sen!2sus" aria-label="iframe"></iframe> 7326 </div> 7327 </div> 7328 <div class="text"> 7329 <h2>Two Convenient Locations!</h2> 7330 <h3>We are located in Stamford and Bridgeport (1.5 miles from Exit 47 Merritt Parkway). We offer ample on-site parking for those traveling by car.</h3> 7331 <h3><a href="/locations/stamford/" aria-label="Explore our Stamford office">Explore our Stamford office</a></h3> 7332 <h3><a href="/locations/bridgeport/" aria-label="Explore our Bridgeport office">Explore our Bridgeport office</a></h3> 7333 </div> 7334 </div> 7335</div> 7336 7337 7338 </div> 7339 <div class="sidebar" data-sidebar="false"> 7340 7341 </div> 7342 </div> 7343</section><style></style><style>.section_10 { 7344 box-sizing: border-box; 7345 padding: 40px 0; 7346} 7347.section_10 .content_container .content { 7348 max-width: 100%; 7349 margin: 0 auto; 7350 box-sizing: border-box; 7351 display: grid; 7352 grid-gap: 8px; 7353 grid-template-rows: 266px 190px 345px; 7354 grid-template-areas: "one one two two four four six six six nine nine nine" "three three three three four four six six six nine nine nine" "three three three three five five seven seven eight eight ten ten"; 7355} 7356@media (max-width: 1366px) { 7357 .section_10 .content_container .content { 7358 grid-template-areas: "one one two two four four six six six nine nine nine" "three three three three four four six six six nine nine nine" "three three three three five five seven seven eight eight ten ten"; 7359 grid-gap: 4px; 7360 grid-template-rows: 200px 175px 250px; 7361 } 7362} 7363@media (max-width: 1024px) { 7364 .section_10 .content_container .content { 7365 grid-template-areas: "one two four six" "three three four six" "three three five seven"; 7366 grid-template-rows: 175px 150px 200px; 7367 } 7368 .section_10 .content_container .content .fading_block:nth-child(n+8) { 7369 display: none; 7370 } 7371} 7372@media (max-width: 768px) { 7373 .section_10 .content_container .content { 7374 grid-template-rows: 175px 150px 150px; 7375 } 7376 .section_10 .content_container .content .fading_block:nth-child(n+4) { 7377 display: none; 7378 } 7379} 7380.section_10 .content_container .content .fading_block:nth-of-type(1) { 7381 grid-area: one; 7382} 7383.section_10 .content_container .content .fading_block:nth-of-type(2) { 7384 grid-area: two; 7385} 7386.section_10 .content_container .content .fading_block:nth-of-type(3) { 7387 grid-area: three; 7388} 7389.section_10 .content_container .content .fading_block:nth-of-type(4) { 7390 grid-area: four; 7391} 7392.section_10 .content_container .content .fading_block:nth-of-type(5) { 7393 grid-area: five; 7394} 7395.section_10 .content_container .content .fading_block:nth-of-type(6) { 7396 grid-area: six; 7397} 7398.section_10 .content_container .content .fading_block:nth-of-type(7) { 7399 grid-area: seven; 7400} 7401.section_10 .content_container .content .fading_block:nth-of-type(8) { 7402 grid-area: eight; 7403} 7404.section_10 .content_container .content .fading_block:nth-of-type(9) { 7405 grid-area: nine; 7406} 7407.section_10 .content_container .content .fading_block:nth-of-type(10) { 7408 grid-area: ten; 7409} 7410.section_10 .content_container .content .fading_block { 7411 position: relative; 7412} 7413.section_10 .content_container .content .fading_block .starting_image { 7414 position: relative; 7415 height: 100%; 7416 transition: opacity 1.5s ease; 7417} 7418.section_10 .content_container .content .fading_block .alt_image { 7419 position: absolute; 7420 top: 0; 7421 left: 0; 7422 opacity: 0; 7423 height: 100%; 7424 transition: opacity 1.5s ease; 7425} 7426.section_10 .content_container .content .fading_block .alt_image.visible { 7427 opacity: 1; 7428} 7429.section_10 .content_container .content .fading_block:nth-of-type(even) .alt_image { 7430 transition: opacity 3s ease; 7431} 7432.section_10 .content_container .content .fading_block img, 7433.section_10 .content_container .content .fading_block picture { 7434 object-fit: cover; 7435 height: 100%; 7436 width: 100%; 7437} 7438.section_10 .content_container .content .fading_block .caption { 7439 position: absolute; 7440 top: 0; 7441 left: 0; 7442 width: 100%; 7443 height: 100%; 7444 display: flex; 7445 align-items: center; 7446 justify-content: center; 7447 padding: 20px; 7448 box-sizing: border-box; 7449 opacity: 0; 7450 transition: all 0.5s ease; 7451 text-align: center; 7452} 7453.section_10 .content_container .content .fading_block .caption p { 7454 font-size: 1.3rem; 7455} 7456@media (max-width: 768px) { 7457 .section_10 .content_container .content .fading_block .caption p { 7458 font-size: 1.1rem; 7459 } 7460} 7461.section_10 .content_container .content .fading_block:hover .caption { 7462 opacity: 1; 7463} 7464</style> 7465<section class="section_10" data-module="html_module" data-html="/custom/modules/hydra_fading_grid/module.html" data-json="/custom/modules/hydra_fading_grid/module.json" data-page="" data-full-path="/"> 7466 <div class="content_container"> 7467 <div class="content"> 7468 7469 <div class="fading_block"> 7470 <div class="starting_image"> 7471 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_fading_grid/images/1.jpg" alt="Dentist in Stamford"> 7472 </div> 7473 <div class="alt_image"> 7474 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_fading_grid/images/1alt.jpg" alt="Bridgeport Top Dentist"> 7475 </div> 7476 <div class="caption"> 7477 <p>Testing captions that are longer than others</p> 7478 </div> 7479</div> 7480<div class="fading_block"> 7481 <div class="starting_image"> 7482 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_fading_grid/images/2.jpg" alt="Dental Office in Bridgeport"> 7483 </div> 7484 <div class="alt_image"> 7485 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_fading_grid/images/2alt.jpg" alt="Cosmetic Dentist in Bridgeport"> 7486 </div> 7487 <div class="caption"> 7488 <p>Testing captions</p> 7489 </div> 7490</div> 7491<div class="fading_block"> 7492 <div class="starting_image"> 7493 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_fading_grid/images/3.jpg" alt="Dentist in Bridgeport"> 7494 </div> 7495 <div class="alt_image"> 7496 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_fading_grid/images/3alt.jpg" alt="Stamford Top Dentist"> 7497 </div> 7498 <div class="caption"> 7499 <p>Testing captions</p> 7500 </div> 7501</div> 7502<div class="fading_block"> 7503 <div class="starting_image"> 7504 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_fading_grid/images/4c.jpg" alt="McleanSmiles | Invisalign®, Sports Mouthguards and Teeth Whitening"> 7505 </div> 7506 <div class="alt_image"> 7507 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_fading_grid/images/4alt.jpg" alt="Dentist in Bridgeport"> 7508 </div> 7509 <div class="caption"> 7510 <p>Testing captions</p> 7511 </div> 7512</div> 7513<div class="fading_block"> 7514 <div class="starting_image"> 7515 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_fading_grid/images/5.jpg" alt="Cosmetic Dentist in Bridgeport"> 7516 </div> 7517 <div class="alt_image"> 7518 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_fading_grid/images/5altb.jpg" alt="McleanSmiles | Digital Radiogra
7518phy, Night Guards and Sports Mouthguards"> 7519 </div> 7520 <div class="caption"> 7521 <p>Testing captions</p> 7522 </div> 7523</div> 7524<div class="fading_block"> 7525 <div class="starting_image"> 7526 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_fading_grid/images/6.jpg" alt="Dental Office in Stamford"> 7527 </div> 7528 <div class="alt_image"> 7529 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_fading_grid/images/6.jpg" alt="Dental Office in Stamford"> 7530 </div> 7531 <div class="caption"> 7532 <p>Testing captions</p> 7533 </div> 7534</div> 7535<div class="fading_block"> 7536 <div class="starting_image"> 7537 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_fading_grid/images/7.jpg" alt="Dental Office in Stamford"> 7538 </div> 7539 <div class="alt_image"> 7540 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_fading_grid/images/7alt.jpg" alt="Dental Office in Stamford"> 7541 </div> 7542 <div class="caption"> 7543 <p>Testing captions</p> 7544 </div> 7545</div> 7546<div class="fading_block"> 7547 <div class="starting_image"> 7548 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_fading_grid/images/8.jpg" alt="Cosmetic Dentist in Bridgeport"> 7549 </div> 7550 <div class="alt_image"> 7551 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_fading_grid/images/8alt.jpg" alt="Dentist in Stamford"> 7552 </div> 7553 <div class="caption"> 7554 <p>Testing captions</p> 7555 </div> 7556</div> 7557<div class="fading_block"> 7558 <div class="starting_image"> 7559 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_fading_grid/images/9.jpg" alt="Cosmetic Dentist in Stamford"> 7560 </div> 7561 <div class="alt_image"> 7562 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_fading_grid/images/9alt.jpg" alt="Dental Office in Bridgeport"> 7563 </div> 7564 <div class="caption"> 7565 <p>Testing captions</p> 7566 </div> 7567</div> 7568<div class="fading_block"> 7569 <div class="starting_image"> 7570 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_fading_grid/images/10.jpg" alt="Dentist in Stamford"> 7571 </div> 7572 <div class="alt_image"> 7573 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_fading_grid/images/10alt.jpg" alt="Cosmetic Dentist in Stamford"> 7574 </div> 7575 <div class="caption"> 7576 <p>Testing captions</p> 7577 </div> 7578</div> 7579 7580 7581 </div> 7582 <div class="sidebar" data-sidebar="false"> 7583 7584 </div> 7585 </div> 7586</section>
7586<script> 7587 javascript.prototype[get_id()] = function() { 7588 var json = {"settings":{"interval":5000,"number_changed":3,"captions":false,"caption_background":"rgba(22, 22, 22, 0.8)","caption_text":"#fff"},"content":[{"image":"\/custom\/modules\/hydra_fading_grid\/images\/1.jpg","alt_image":"\/custom\/modules\/hydra_fading_grid\/images\/1alt.jpg","caption":"Testing captions that are longer than others"},{"image":"\/custom\/modules\/hydra_fading_grid\/images\/2.jpg","alt_image":"\/custom\/modules\/hydra_fading_grid\/images\/2alt.jpg","caption":"Testing captions"},{"image":"\/custom\/modules\/hydra_fading_grid\/images\/3.jpg","alt_image":"\/custom\/modules\/hydra_fading_grid\/images\/3alt.jpg","caption":"Testing captions"},{"image":"\/custom\/modules\/hydra_fading_grid\/images\/4c.jpg","alt_image":"\/custom\/modules\/hydra_fading_grid\/images\/4alt.jpg","caption":"Testing captions"},{"image":"\/custom\/modules\/hydra_fading_grid\/images\/5.jpg","alt_image":"\/custom\/modules\/hydra_fading_grid\/images\/5altb.jpg","caption":"Testing captions"},{"image":"\/custom\/modules\/hydra_fading_grid\/images\/6.jpg","alt_image":"\/custom\/modules\/hydra_fading_grid\/images\/6.jpg","caption":"Testing captions"},{"image":"\/custom\/modules\/hydra_fading_grid\/images\/7.jpg","alt_image":"\/custom\/modules\/hydra_fading_grid\/images\/7alt.jpg","caption":"Testing captions"},{"image":"\/custom\/modules\/hydra_fading_grid\/images\/8.jpg","alt_image":"\/custom\/modules\/hydra_fading_grid\/images\/8alt.jpg","caption":"Testing captions"},{"image":"\/custom\/modules\/hydra_fading_grid\/images\/9.jpg","alt_image":"\/custom\/modules\/hydra_fading_grid\/images\/9alt.jpg","caption":"Testing captions"},{"image":"\/custom\/modules\/hydra_fading_grid\/images\/10.jpg","alt_image":"\/custom\/modules\/hydra_fading_grid\/images\/10alt.jpg","caption":"Testing captions"}]}; 7589 var altImages = $('.alt_image'); 7590 var imageCount = altImages.length; 7591 var numberChanged = json.settings.number_changed; 7592 var interval = json.settings.interval; 7593 var queue = []; 7594 var captions = json.settings.captions; 7595 var caption_elements = $('.fading_block .caption'); 7596 var caption_background = json.settings.caption_background; 7597 var caption_text = json.settings.caption_text; 7598 7599 if(!captions) { 7600 caption_elements.each(function() { 7601 $(this).hide(); 7602 }) 7603 } 7604 7605 if(captions) { 7606 caption_elements.each(function() { 7607 $(this).css(`background-color`, `${caption_background}`); 7608 $(this).css(`color`, `${caption_text}`); 7609 }) 7610 } 7611 7612 var changeImages = function(queue, times, images) { 7613 var changedIndexes = gatherRandom(); 7614 7615 changedIndexes.forEach(function(item) { 7616 queue.push(images[item]); 7617 }); 7618 } 7619 7620 function gatherRandom() { 7621 var randomElements = []; 7622 var randomElement; 7623 7624 do { 7625 randomElement = generateRandom(imageCount); 7626 7627 if(!randomElements.includes(randomElement)) { 7628 randomElements.push(randomElement); 7629 } 7630 } 7631 7632 while (randomElements.length < numberChanged); 7633 return randomElements; 7634 } 7635 7636 function generateRandom(count) { 7637 return Math.floor(Math.random() * count); 7638 } 7639 7640 7641 changeImages(queue, numberChanged, altImages); 7642 7643 setInterval(function() { 7644 queue.forEach(function(item){ 7645 if(!item.classList.contains('visible')) { 7646 item.classList.add('visible'); 7647 } 7648 else { 7649 item.classList.remove('visible'); 7650 } 7651 }); 7652 queue = []; 7653 changeImages(queue, numberChanged, altImages); 7654 }, interval) 7655 7656 } 7657</script>
7657 7658<style></style><style>.section_11 { 7659 box-sizing: border-box; 7660} 7661.section_11 .content_container .content { 7662 max-width: 1600px; 7663 margin: 0 auto; 7664 padding: 40px 65px; 7665 box-sizing: border-box; 7666 display: flex; 7667 justify-content: space-between; 7668 flex-wrap: wrap; 7669} 7670@media (max-width: 1024px) { 7671 .section_11 .content_container .content { 7672 padding: 0 25px; 7673 } 7674} 7675.section_11 .content_container .content .association { 7676 flex-basis: 17%; 7677 padding: 20px; 7678 box-sizing: border-box; 7679 filter: grayscale(1); 7680} 7681@media (max-width: 768px) { 7682 .section_11 .content_container .content .association { 7683 flex-basis: 48%; 7684 } 7685} 7686</style> 7687<section class="section_11" data-module="html_module" data-html="/custom/modules/hydra_associations/module.html" data-json="/custom/modules/hydra_associations/module.json" data-page="" data-full-path="/"> 7688 <div class="content_container"> 7689 <div class="content"> 7690 7691 <div class="association"> 7692 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_associations/images/invisalign.png" alt="Invisalign in Stamford"> 7693</div><div class="association"> 7694 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_associations/images/agd.png" alt="Dental Office in Stamford"> 7695</div><div class="association"> 7696 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_associations/images/ada.png" alt="Cosmetic Dentist in Bridgeport"> 7697</div><div class="association"> 7698 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_associations/images/csda.png" alt="Dental Office in Bridgeport"> 7699</div> 7700 7701 </div> 7702 <div class="sidebar" data-sidebar="false"> 7703 7704 </div> 7705 </div> 7706</section><style>.section_12 { 7707 padding: 40px 40px; 7708} 7709.section_12 .content_container { 7710 max-width: 100%; 7711 justify-content: center; 7712 display: flex; 7713 margin-left: auto; 7714 margin-right: auto; 7715 box-sizing: border-box; 7716} 7717.section_12 .content_container .content { 7718 width: 100%; 7719} 7720.section_12 .content_container .content h2 { 7721 text-align: center; 7722} 7723.section_12 .content_container .content h3 { 7724 font-size: 1.5rem; 7725} 7726@media (max-width: 640px) { 7727 .section_12 { 7728 padding: 20px 20px; 7729 } 7730} 7731</style><style>.section_12 .content_container .content { 7732 margin: 40px 0px 50px; 7733} 7734.section_12 .content_container .content h3 { 7735 text-align: center; 7736} 7737.section_12 .content_container .content h4 { 7738 text-align: center; 7739} 7740.section_12 .content_container .content p { 7741 text-align: center; 7742} 7743.section_12 .content_container .content .elfsight { 7744 max-width: 100%; 7745} 7746</style> 7747<section class="section_12" data-module="content" data-html="/custom/modules/elfsight/module.html" data-json="" data-page="" data-full-path="/"> 7748 <div class="content_container"> 7749 <div class="content"> 7750 <center> 7751<div class="elfsight-app-5cf6ee79-3309-4648-86e1-0688e72698c6"></div> 7752</center> 7753 </div> 7754 </div> 7755</section><style></style><style>.section_13 { 7756 box-sizing: border-box; 7757} 7758.section_13 .content_container .content { 7759 max-width: 1600px; 7760 margin: 0 auto; 7761 padding: 0 65px; 7762 box-sizing: border-box; 7763 display: flex; 7764 justify-content: space-between; 7765 flex-wrap: wrap; 7766} 7767@media (max-width: 1024px) { 7768 .section_13 .content_container .content { 7769 padding: 0 25px; 7770 } 7771} 7772.section_13 .content_container .content h2 { 7773 font-size: 40px; 7774 line-height: 1.2; 7775 font-weight: 600; 7776 border-top: 2px solid #6C675C; 7777 padding: 40px 0; 7778 margin: 0; 7779} 7780@media (max-width: 1024px) { 7781 .section_13 .content_container .content h2 { 7782 font-size: 32px; 7783 padding: 25px 0; 7784 } 7785} 7786.section_13 .content_container .content h3 { 7787 font-size: 24px; 7788 font-weight: 400; 7789 line-height: 1.35; 7790 margin: 0; 7791 padding: 0; 7792 text-align: left; 7793 color: #6C675C; 7794} 7795@media (max-width: 1024px) { 7796 .section_13 .content_container .content h3 { 7797 font-size: 20px; 7798 } 7799} 7800.section_13 .content_container .content h3.title { 7801 font-weight: 600; 7802 padding: 25px 0 15px; 7803 font-size: 24px; 7804} 7805.section_13 .content_container .content h3 a { 7806 color: #4bc9f8; 7807} 7808.section_13 .content_container .content h3 a:hover {
7809 color: #4bc9f8; 7810 text-decoration: underline; 7811} 7812@media (max-width: 1024px) { 7813 .section_13 .content_container .content h3 { 7814 font-size: 20px; 7815 } 7816} 7817.section_13 .content_container .content .hydra_repeated_blocks_above, 7818.section_13 .content_container .content .hydra_repeated_blocks_below { 7819 flex-basis: 100%; 7820} 7821.section_13 .content_container .content .repeated_block { 7822 margin-bottom: 40px; 7823 border-top: 1px solid #ceccc6; 7824} 7825@media (max-width: 768px) { 7826 .section_13 .content_container .content .repeated_block { 7827 margin-bottom: 30px; 7828 } 7829} 7830.section_13 .content_container .content .repeated_block.two { 7831 flex-basis: 48%; 7832} 7833.section_13 .content_container .content .repeated_block.three { 7834 flex-basis: 31%; 7835} 7836@media (max-width: 768px) { 7837 .section_13 .content_container .content .repeated_block.three { 7838 flex-basis: 100%; 7839 } 7840} 7841.section_13 .content_container .content .repeated_block.four { 7842 flex-basis: 23%; 7843} 7844@media (max-width: 1024px) { 7845 .section_13 .content_container .content .repeated_block.four { 7846 flex-basis: 48%; 7847 } 7848} 7849@media (max-width: 768px) { 7850 .section_13 .content_container .content .repeated_block.four { 7851 flex-basis: 100%; 7852 } 7853} 7854.section_13 .content_container .content .repeated_block.five { 7855 flex-basis: 18%; 7856} 7857.section_13 .content_container .content .repeated_block .text { 7858 max-width: 85%; 7859} 7860@media (max-width: 1024px) { 7861 .section_13 .content_container .content .repeated_block .text { 7862 max-width: 95%; 7863 } 7864} 7865@media (maxa-width: 768px) { 7866 .section_13 .content_container .content .repeated_block .text { 7867 max-width: 100%; 7868 } 7869} 7870</style> 7871<section class="section_13" data-module="html_module" data-html="/custom/modules/hydra_repeated_blocks/module.html" data-json="/custom/modules/hydra_repeated_blocks/module2.json" data-page="" data-full-path="/"> 7872 <div class="content_container"> 7873 <div class="content"> 7874 <div class="hydra_repeated_blocks_above"> 7875 <h2>Dental Care that supports your overall well-being.</h2> 7876</div> 7877 <div class="repeated_block four"> 7878 <div class="text"> 7879 <h3 class="title">Personalized solutions</h3> 7880 <h3>We recognize that every smile is unique and provide customized care to address individual needs.</h3> 7881 </div> 7882</div> 7883<div class="repeated_block four"> 7884 <div class="text"> 7885 <h3 class="title">Compassionate care</h3> 7886 <h3>Your comfort and care are our top priorities. We provide skilled, compassionate treatment in a relaxing and comfortable setting.</h3> 7887 </div> 7888</div> 7889<div class="repeated_block four"> 7890 <div class="text"> 7891 <h3 class="title">Advanced technology</h3> 7892 <h3>We offer the latest solutions while providing safe and comfortable care.</h3> 7893 </div> 7894</div> 7895<div class="repeated_block four"> 7896 <div class="text"> 7897 <h3 class="title">Accessible, affordable treatment</h3> 7898 <h3>Begin care without additional stress or delay. Our office accepts many dental insurances and dental savings plans.</h3> 7899 </div> 7900</div> 7901 7902 7903 </div> 7904 <div class="sidebar" data-sidebar="false"> 7905 7906 </div> 7907 </div> 7908</section><style></style><style>.section_14 { 7909 padding: 40px 0; 7910} 7911.section_14 .content_container .content { 7912 max-width: 1600px; 7913 margin: 0 auto; 7914 padding: 0 65px; 7915 box-sizing: border-box; 7916 flex-basis: 100%; 7917} 7918@media (max-width: 1024px) { 7919 .section_14 .content_container .content { 7920 padding: 0; 7921 } 7922} 7923.section_14 .content_container .content h2 { 7924 font-size: 40px; 7925 line-height: 1.2; 7926 font-weight: 400; 7927 margin: 0 0 40px 0; 7928 max-width: 400px; 7929 color: #09B0EE; 7930} 7931@media (max-width: 1024px) { 7932 .section_14 .content_container .content h2 { 7933 font-size: 32px; 7934 margin-bottom: 25px; 7935 } 7936} 7937.section_14 .content_container .content .border_box { 7938 position: relative; 7939} 7940.section_14 .content_container .content .border_box img, 7941.section_14 .content_container .content .border_box picture { 7942 object-fit: cover; 7943 position: absolute; 7944 left: 0; 7945 top: 0; 7946 width: 100%; 7947 height: 100%; 7948 z-index: -1; 7949} 7950.section_14 .content_container .content .border_box .border_box_main { 7951 padding: 15px; 7952 box-sizing: border-box; 7953 display: flex; 7954 z-index: 9; 7955} 7956@media (max-width: 768px) { 7957 .section_14 .content_container .content .border_box .border_box_main { 7958 flex-direction: column; 7959 } 7960} 7961.section_14 .content_container .content .border_box .border_box_main .left { 7962 background: #ffffff; 7963 flex: 1; 7964 padding: 60px; 7965 box-sizing: border-box; 7966} 7967@media (max-width: 1024px) { 7968 .section_14 .content_container .content .border_box .border_box_main .left { 7969 padding: 30px; 7970 } 7971} 7972.section_14 .content_container .content .border_box .border_box_main .left .message { 7973 display: block; 7974 padding: 20px 0; 7975 max-width: 550px; 7976 border-top: 1px solid #c6eefd; 7977 border-bottom: 1px solid #c6eefd; 7978 font-size: 20px; 7979} 7980@media (max-width: 1024px) { 7981 .section_14 .content_container .content .border_box .border_box_main .left .message { 7982 font-size: 18px; 7983 } 7984} 7985.section_14 .content_container .content .border_box .border_box_main .left .subtext { 7986 align-items: center; 7987 margin-top: 10px; 7988} 7989.section_14 .content_container .content .border_box .border_box_main .left .subtext p { 7990 margin: 0 5px 0 0; 7991 display: inline; 7992} 7993@media (max-width: 1024px) { 7994 .section_14 .content_container .content .border_box .border_box_main .left .subtext p { 7995 font-size: 14px; 7996 } 7997} 7998.section_14 .content_container .content .border_box .border_box_main .left .subtext div[data-micro-template="phone"] { 7999 display: inline; 8000} 8001.section_14 .content_container .content .border_box .border_box_main .right { 8002 background: #fff; 8003 flex: 1; 8004 padding: 60px; 8005 box-sizing: border-box; 8006 display: flex; 8007 align-items: center; 8008} 8009@media (max-width: 1024px) { 8010 .section_14 .content_container .content .border_box .border_box_main .right { 8011 padding: 30px; 8012 } 8013} 8014.section_14 .content_container .content .border_box .border_box_main .right ul { 8015 list-style: none; 8016 margin: 0; 8017 padding: 0; 8018} 8019.section_14 .content_container .content .border_box .border_box_main .right ul li { 8020 font-size: 24px; 8021 color: #09B0EE; 8022 margin: 30px 0; 8023 line-height: 1.5em; 8024} 8025@media (max-width: 1024px) { 8026 .section_14 .content_container .content .border_box .border_box_main .right ul li { 8027 font-size: 20px; 8028 margin: 20px 0; 8029 } 8030} 8031</style> 8032<section class="section_14" data-module="html_module" data-html="/custom/modules/hydra_border_box/module.html" data-json="/custom/modules/hydra_border_box/module.json" data-page="" data-full-path="/"> 8033 <div class="content_container"> 8034 <div class="content"> 8035 8036 <div class="border_box"> 8037 <div class="border_box_main"> 8038 <div class="left"> 8039 <h2>Meeting the highest standards for sterilization and the safe provision of care</h2> 8040 <a class="message" href="/contact/" aria-label="Protecting your health and providing peace of mind">Protecting your health and providing peace of mind</a> 8041 <div class="subtext"> 8042 <p><a href="/contact/" aria-label="Contact us with your questions">Contact us with your questions</a></p> 8043</div> 8044 </div> 8045 <div class="right"> 8046 <ul> 8047 <li>To protect everyoneâs health and safety, we follow the infection control practices recommended by the American Dental Association (ADA) and The Centers For Disease Control and Prevention (CDC).</li> 8048</ul> 8049 </div> 8050 </div> 8051 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_border_box/images/background.jpg" alt="Stamford Top Dentist"> 8052</div> 8053 8054 </div> 8055 <div class="sidebar" data-sidebar="false"> 8056 8057 </div> 8058 </div> 8059</section><style></style><style>.section_15 { 8060 height: 50px; 8061} 8062.section_15 img, 8063.section_15 picture { 8064 object-fit: cover; 8065 position: absolute; 8066 left: 0; 8067 top: 0; 8068 width: 100%; 8069 height: 100%; 8070 z-index: -1; 8071} 8072</style> 8073<section class="section_15" data-module="html_module" data-html="/custom/modules/hydra_background_strip/module.html" data-json="/custom/modules/hydra_background_strip/module.json" data-page="" data-full-path="/"> 8074 <div class="content_container"> 8075 <div class="content"> 8076 8077 <div class="hydra_background_strip_container"> 8078 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/modules/hydra_border_box/images/background.jpg" alt="Stamford Top Dentist"> 8079</div> 8080 8081 </div> 8082 <div class="sidebar" data-sidebar="false"> 8083 8084 </div> 8085 </div> 8086</section><style></style><style>.section_16 { 8087 padding: 40px 20px 80px 20px; 8088 border-top: 3px solid #fff; 8089 background: linear-gradient(#09B0EE,#4bc9f8); 8090} 8091@media (max-width: 768px) { 8092 .section_16 { 8093 padding: 30px 20px; 8094 } 8095} 8096.section_16 .content { 8097 max-width: 1280px; 8098 display: flex; 8099 margin: 0 auto; 8100 justify-content: space-between; 8101 flex-wrap: wrap; 8102} 8103.section_16 .content .img-center { 8104 display: block; 8105 margin: 0 auto; 8106} 8107.section_16 .content .link, 8108.section_16 .content .info, 8109.section_16 .content .association { 8110 flex-basis: 30%; 8111} 8112@media (max-width: 780px) { 8113 .section_16 .content .link, 8114 .section_16 .content .info, 8115 .section_16 .content .association { 8116 flex-basis: 100%; 8117 margin-bottom: 20px; 8118 } 8119} 8120.section_16 .content .link p, 8121.section_16 .content .info p, 8122.section_16 .content .association p { 8123 color: #fff; 8124} 8125.section_16 .content .link a, 8126.section_16 .content .info a, 8127.section_16 .content .association a { 8128 color: #fff; 8129} 8130.section_16 .content .link h3, 8131.section_16 .content .info h3, 8132.section_16 .content .association h3 { 8133 font-size: 1.5rem; 8134 text-transform: uppercase; 8135 font-weight: 400; 8136 color: #fff; 8137} 8138@media (max-width: 1024px) { 8139 .section_16 .content .link h3, 8140 .section_16 .content .info h3, 8141 .section_16 .content .association h3 { 8142 font-size: 1.2rem; 8143 } 8144} 8145.section_16 .content .link .links { 8146 display: flex; 8147 flex-wrap: wrap; 8148} 8149.section_16 .content .link .links a { 8150 flex-basis: 100%; 8151 color: #fff; 8152 margin-bottom: 7px; 8153} 8154.section_16 .content .info { 8155 color: #fff; 8156} 8157.section_16 .content .info div[data-micro-template="social_icons_container"] { 8158 display: flex; 8159 font-size: 22px; 8160 flex-wrap: wrap; 8161} 8162.section_16 .content .info div[data-micro-template="social_icons_container"] div[data-micro-template="social_icons"] { 8163 margin-right: 20px; 8164 margin-bottom: 10px; 8165} 8166.section_16 .content .info div[data-micro-template="social_icons_container"] div[data-micro-template="social_icons"]:last-of-type { 8167 margin-right: 0px; 8168} 8169.section_16 .content .info div[data-micro-template="full_address"] > div:nth-of-type(4) { 8170 font-weight: 700; 8171 margin: 10px 0; 8172} 8173.section_16 .content .info div[data-micro-template="full_address"] > div:last-of-type { 8174 font-weight: 700; 8175 margin: 10px 0; 8176} 8177.section_16 .content .info .hours, 8178.section_16 .content .info .address { 8179 flex-basis: 50%; 8180 text-transform: none; 8181 color: #fff; 8182} 8183@media (max-width: 768px) { 8184 .section_16 .content .info .hours, 8185 .section_16 .content .info .address { 8186 flex-basis: 100%; 8187 } 8188} 8189.section_16 .content .info .hours .row, 8190.section_16 .content .info .address .row { 8191 display: flex; 8192 justify-content: space-between; 8193} 8194@media (max-width: 768px) { 8195 .section_16 .content .info .hours { 8196 margin-top: 20px; 8197 } 8198} 8199.section_16 .content .association div[data-micro-template="social_icons_container"] { 8200 display: flex; 8201 font-size: 22px; 8202 flex-wrap: wrap; 8203} 8204.section_16 .content .association div[data-micro-template="social_icons_container"] div[data-micro-template="social_icons"] { 8205 margin-right: 20px; 8206 margin-bottom: 10px; 8207} 8208.section_16 .content .association div[data-micro-template="social_icons_container"] div[data-micro-template="social_icons"]:last-of-type { 8209 margin-right: 0px; 8210} 8211.section_16 .content .association div[data-micro-template="full_address"] { 8212 color: #fff; 8213} 8214.section_16 .content .association div[data-micro-template="full_address"] > div:nth-of-type(4) { 8215 font-weight: 700; 8216 margin: 10px 0; 8217} 8218.section_16 .content .association div[data-micro-template="full_address"] > div:last-of-type { 8219 font-weight: 700; 8220 margin: 10px 0; 8221} 8222.section_16 .content .association .hours, 8223.section_16 .content .association .address { 8224 flex-basis: 50%; 8225 text-transform: none; 8226 color: #fff; 8227} 8228@media (max-width: 768px) { 8229 .section_16 .content .association .hours, 8230 .section_16 .content .association .address { 8231 flex-basis: 100%; 8232 } 8233} 8234.section_16 .content .association .hours .row, 8235.section_16 .content .association .address .row { 8236 display: flex; 8237 justify-content: space-between; 8238} 8239@media (max-width: 768px) { 8240 .section_16 .content .association .hours { 8241 margin-top: 20px; 8242 } 8243} 8244.section_16 .content .association .associations { 8245 display: flex; 8246 flex-direction: column; 8247 justify-content: flex-start; 8248 align-items: flex-start; 8249} 8250.section_16 .content .association .associations img, 8251.section_16 .content .association .associations picture { 8252 margin-bottom: 10px; 8253} 8254.section_16 .copyright { 8255 margin: 20px 0px 60px; 8256 text-align: center; 8257 font-size: 0.75rem; 8258 color: #6C675C; 8259 margin-bottom: 10px; 8260} 8261.section_16 .copyright div:first-of-type { 8262 margin-bottom: 10px; 8263} 8264</style> 8265<section class="section_16" data-module="html_module" data-html="/custom/modules/hydra_footer/module.html" data-json="/custom/modules/hydra_footer/module.json" data-page="" data-full-path="/"> 8266 <div class="content_container"> 8267 <div class="content"> 8268 8269 <div class="link"> 8270 <h3>About Us</h3> 8271 <p>Our goal is to help every patient experience the benefits of good oral health and a beautiful smile. We value the trust you have placed in our office and strive to provide solutions that meet your dental needs and expectations of care.</p> 8272 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" alt="McleanSmiles | ClearCorrect®, Emergency Treatment and Dental Fillings" class="img-center" data-lazy-img="true" data-src="/custom/images/top2023.jpg"> 8273</div> 8274<div class="info"> 8275 <h3>Stamford Office</h3> 8276 <div data-micro-template="full_address"> 8277 <div>23 Hoyt Street, Suite 2</div> 8278 <div></div> 8279 <div><span>Stamford</span>, <span>CT</span> <span>06905</span></div> 8280 8281 <div><a href="tel:+12033276717" aria-label="(203) 327-6717" class="tel_12033276717" data-click-call="0">(203) 327-6717</a></div> 8282</div> 8283 <div data-micro-template="social_icons_container"> 8284 <div data-micro-template="social_icons"> 8285 <a href="https://www.facebook.com/Mcleansmiles" aria-label="link" rel="noopener" target="_blank"><i class="fab fa-facebook-f"></i></a> 8286</div><div data-micro-template="social_icons"> 8287 <a href="https://www.google.com/maps?cid=10401270431249404763" aria-label="link" rel="noopener" target="_blank"><i class="fab fa-google"></i></a> 8288</div><div data-micro-template="social_icons"> 8289 <a href="/blog/stamford/" aria-label="link"><i class="fas fa-blog"></i></a> 8290</div> 8291</div> 8292 <div class="hours"> 8293 <div data-micro-template="office_hours"> 8294 <div class="row"><div class="day">Monday</div><div class="time">7:00 am - 5:00 pm</div></div> 8295 <div class="row"><div class="day">Tuesday</div><div class="time">7:00 am - 7:00 pm</div></div> 8296 <div class="row"><div class="day">Wednesday</div><div class="time">9:00 am - 7:00 pm</div></div> 8297 <div class="row"><div class="day">Thursday</div><div class="time">8:00 am - 5:00 pm</div></div> 8298 <div class="row"><div class="day">Friday</div><div class="time">8:00 am - 12:00 pm</div></div> 8299 <div class="row"><div class="day">Saturday</div><div class="time">Closed</div></div> 8300 <div class="row"><div class="day">Sunday</div><div class="time">Closed</div></div> 8301</div> 8302 </div> 8303</div> 8304<div class="association"> 8305 <h3>Bridgeport Office</h3> 8306 8307 <div data-micro-template="full_address"> 8308 <div>
83083738 Park Avenue</div> 8309 <div></div> 8310 <div><span>Bridgeport</span>, <span>CT</span> <span>06604</span></div> 8311 8312 <div><a href="tel:+12035499099" aria-label="(203) 549-9099" class="tel_12035499099" data-click-call="0">(203) 549-9099</a></div> 8313</div><div data-micro-template="social_icons_container"> 8314 <div data-micro-template="social_icons"> 8315 <a href="https://www.facebook.com/Mcleansmiles" aria-label="link" rel="noopener" target="_blank"><i class="fab fa-facebook-f"></i></a> 8316</div><div data-micro-template="social_icons"> 8317 <a href="https://www.google.com/maps?cid=17745529936675503172" aria-label="link" rel="noopener" target="_blank"><i class="fab fa-google"></i></a> 8318</div><div data-micro-template="social_icons"> 8319 <a href="/blog/bridgeport/" aria-label="link"><i class="fas fa-blog"></i></a> 8320</div> 8321</div> 8322 <div class="hours"> 8323 <div data-micro-template="office_hours"> 8324 <div class="row"><div class="day">Monday</div><div class="time">8:00 am - 5:00 pm</div></div> 8325 <div class="row"><div class="day">Tuesday</div><div class="time">8:00 am - 5:00 pm</div></div> 8326 <div class="row"><div class="day">Wednesday</div><div class="time">Closed</div></div> 8327 <div class="row"><div class="day">Thursday</div><div class="time">8:00 am - 5:00 pm</div></div> 8328 <div class="row"><div class="day">Friday</div><div class="time">7:00 am - 12:00 pm</div></div> 8329 <div class="row"><div class="day">Saturday</div><div class="time">8:00 am - 1:00 pm</div></div> 8330 <div class="row"><div class="day">Sunday</div><div class="time">Closed</div></div> 8331</div> 8332 </div> 8333</div> 8334 8335 </div> 8336 <div class="sidebar" data-sidebar="false"> 8337 8338 </div> 8339 </div> 8340</section><style>.section_17 { 8341 padding: 40px 40px; 8342} 8343.section_17 .content_container { 8344 max-width: 100%; 8345 justify-content: center; 8346 display: flex; 8347 margin-left: auto; 8348 margin-right: auto; 8349 box-sizing: border-box; 8350} 8351.section_17 .content_container .content { 8352 width: 100%; 8353} 8354.section_17 .content_container .content h2 { 8355 text-align: center; 8356} 8357.section_17 .content_container .content h3 { 8358 font-size: 1.5rem; 8359} 8360@media (max-width: 640px) { 8361 .section_17 { 8362 padding: 20px 20px; 8363 } 8364} 8365</style><style>.section_17 { 8366 background-color: #09B0EE; 8367 padding: 20px; 8368} 8369.section_17 .copyright { 8370 text-align: center; 8371 font-size: 0.75rem; 8372 color: #fff; 8373} 8374.section_17 .copyright div { 8375 margin-bottom: 10px; 8376} 8377.section_17 .copyright div a { 8378 color: #fff; 8379} 8380.section_17 .copyright div a:hover { 8381 color: #4bc9f8; 8382} 8383</style> 8384<section class="section_17" data-module="content" data-html="/custom/modules/hydra_copyright/module.html" data-json="" data-page="" data-full-path="/"> 8385 <div class="content_container"> 8386 <div class="content"> 8387 <div class="copyright"> 8388 <div> 8389 © 2026 McleanSmiles. All Rights Reserved. | <a href="/accessibility/" aria-label="Accessibility Policy">Accessibility Policy</a> 8390</div> 8391<div> 8392 <a href="https://doctorsinternet.com/dentistry/" aria-label="Dentist Website Design" rel="noopener" target="_blank">Dentist Website Design</a> 8393</div> 8394<div> 8395 Dentist in Bridgeport | Cosmetic Dentist Bridgeport | Dentist Stamford 8396</div> 8397</div> 8398 </div> 8399 </div> 8400</section><style>section { 8401 flex-basis: 100%; 8402} 8403.center-award { 8404 text-align: center; 8405} 8406@media (max-width: 550px) { 8407 section[data-module="gorgon_menu"] .content_container .logo img, 8408 section[data-module="gorgon_menu"] .content_container .logo picture { 8409 max-height: 65px; 8410 } 8411} 8412.animate { 8413 transition: transform 2s ease; 8414} 8415.slideInLeft { 8416 transform: translateX(-50px); 8417} 8418.slideInLeft.active { 8419 transform: translateX(0); 8420} 8421.slideInRight { 8422 transform: translateX(50px); 8423} 8424.slideInRight.active { 8425 transform: translateX(0); 8426} 8427@media (max-width: 550px) { 8428 .slideInLeft, 8429 .slideInRight { 8430 transform: none; 8431 } 8432} 8433</style><style>body section[data-type="system-lightbox-container"].show { 8434 background: rgba(255,255,255,0.9); 8435} 8436body section[data-type="system-lightbox-container"].show section[data-form-name="contact"], 8437body section[data-type="system-lightbox-container"].show section[data-form-name="appointment"] { 8438 display: flex; 8439 align-items: center; 8440 justify-content: center; 8441 flex-basis: 100%; 8442} 8443body section[data-type="system-lightbox-container"].show section[data-form-name="contact"] .container, 8444body section[data-type="system-lightbox-container"].show section[data-form-name="appointment"] .container { 8445 padding: 20px; 8446 box-sizing: border-box; 8447} 8448body section[data-type="system-lightbox-container"].show section[data-form-name="contact"] .container .button, 8449body section[data-type="system-lightbox-container"].show section[data-form-name="appointment"] .container .button { 8450 border: 1px solid #09B0EE; 8451 color: #09B0EE; 8452 font-size: 1rem; 8453 padding: 10px 20px; 8454 background: none; 8455 text-transform: uppercase; 8456 transition: all 0.3s; 8457 margin: 15px 0 0 0; 8458} 8459body section[data-type="system-lightbox-container"].show section[data-form-name="contact"] .container .button:first-of-type, 8460body section[data-type="system-lightbox-container"].show section[data-form-name="appointment"] .container .button:first-of-type { 8461 margin-right: 10px; 8462} 8463body section[data-type="system-lightbox-container"].show section[data-form-name="contact"] .container .button:hover, 8464body section[data-type="system-lightbox-container"].show section[data-form-name="appointment"] .container .button:hover { 8465 background: #09B0EE; 8466 color: #fff; 8467} 8468</style> 8469<section class="section_19" data-module="ad_tracking" data-html="" data-json="/custom/modules/ad_tracking/module.json" data-page="" data-full-path="/"></section>
8469<script> 8470 javascript.prototype[get_id()] = function() { 8471 var json = {"settings":{"google_conversion_enabled":true,"facebook_conversion_enabled":true,"replacements":[{"number_to_replace":"(203) 327-6717","phone_numbers":{"source":{"google_ads":"(203) 418-4739"},"campaign":{}}},{"number_to_replace":"(203) 549-9099","phone_numbers":{"source":{"google_ads":"(203) 418-4739"},"campaign":{}}}]},"content":[{}]}; 8472 var ad_management = {"ad_sources":{"none":"None","aleso":"Aleso","aleso_ads":"Aleso Ads","email":"Email","google":"Google","google_ads":"Google Ads","youtube":"YouTube","youtube_ads":"YouTube Ads","facebook":"Facebook","facebook_ads":"Facebook Ads","linkedin":"LinkedIn","linkedin_ads":"LinkedIn Ads","bing":"Bing Ads","bing_ads":"Bing Ads","adroll":"AdRoll","chatgpt_ads":"ChatGPT Ads","performance_max":"Performance Max","email_capture":"Email Capture","other":"Other","example_source":"Example Source"},"ad_campaign_labels":{"cosmetic":"Cosmetic","emergency":"Emergency","extractions":"Extractions","general":"General","implants":"Implants","orthodontics":"Orthodontics","pediatrics":"Pediatrics","example_campaign":"Example Campaign"},"ad_campaigns":{"default":{"default":"Default","general":"General","none":"None","other":"Other"},"cosmetic":{"clear_aligners":"Clear Aligners","cosmetic_dentist":"Cosmetic Dentist","cosmetic_dentistry":"Cosmetic Dentistry","smile_design":"Smile Design","smile_makeover":"Smile Makeover","teeth_whitening":"Teeth Whitening","veneers":"Veneers"},"emergency":{"cracked_tooth":"Cracked Tooth","dental_emergency":"Dental Emergency","emergency":"Emergency","emergency_dentist":"Emergency Dentist","endodontics":"Endodontics","endodontist":"Endodontist","root_canal":"Root Canal","root_canals":"Root Canals"},"extractions":{"extractions":"Extractions","tooth_extraction":"Tooth Extraction","tooth_extractions":"Tooth Extractions","wisdom_tooth_extraction":"Wisdom Tooth Extraction","wisdom_tooth_extractions":"Wisdom Tooth Extractions"},"general":{"branding":"Branding","cerec":"CEREC","dental_crowns":"Dental Crowns","dentist_near_me":"Dentist Near Me","family_dentist":"Family Dentist","family_dentistry":"Family Dentistry","same_day_crowns":"Same Day Crowns","tmj":"TMJ","periodontics":"Periodontics","periodontist":"Periodontist","oral_surgeon":"Oral Surgeon","oral_surgery":"Oral Surgery","sleep_apnea":"Sleep Apnea","sedation_dentistry":"Sedation Dentistry","dentist_in_bridgeport":"Dentist In Bridgeport","dentist_in_fairfield":"Dentist In Fairfield","general_dentistry":"General Dentistry"},"implants":{"all_on_four":"All On Four","dental_implants":"Dental Implants","full_mouth_rehabilitation":"Full Mouth Rehabilitation","implant_dentist":"Implant Dentist"},"orthodontics":{"invisalign":"Invisalign","orthodontist":"Orthodontist"},"pediatrics":{"pediatric_dentist":"Pediatric Dentist","pediatric_dentistry":"Pediatric Dentistry"},"prosthodontist":{"prosthodontist":"Prosthodontist"}}}; 8473 var metadata = {}; 8474 8475 console.log(metadata); 8476 console.log('Tracking'); 8477 8478 var ad_grouping = []; 8479 8480 function find_childless_elements(selector) { 8481 var parent = $(selector); 8482 var found = []; 8483 8484 recursive_search($(parent)); 8485 8486 function recursive_search(element) { 8487 8488 if($(element).children().length > 0) { 8489 $(element).children().each(function (index, child) { 8490 recursive_search($(child)) 8491 }); 8492 } else { 8493 found.push($(element)[0]) 8494 } 8495 } 8496 8497 return found; 8498 } 8499 8500 function find_closest_parent_of_content(selector, find = []) { 8501 var parent = $(selector); 8502 var found = []; 8503 8504 if (find.length) { 8505 if ($(parent).children().length > 0) { 8506 recursive_search($(parent)); 8507 } else { 8508 var text = $(parent).text(); 8509 $.each(find, function (index, string) { 8510 if (text.includes(string) && found.length === 0) { 8511 found.push($(parent)[0]); 8512 } 8513 }); 8514 } 8515 } 8516 8517 return (found.length)? found : false; 8518 8519 8520 function recursive_search(element, parent = null, ) { 8521 8522 var html = $(element).html(); 8523 $.each(find, function (index, string) { 8524 if (html.includes(string)) { 8525 if ($(element).children().length > 0) { 8526 var found_in_children = false;
8527 $(element).children().each(function (index, child) { 8528 var child_html = $(child).html() 8529 $.each(find, function (index, string) { 8530 if (child_html.includes(string)) { 8531 recursive_search($(child), $(element)); 8532 found_in_children = true; 8533 } 8534 }); 8535 }); 8536 8537 if (!found_in_children) { 8538 found.push($(element)[0]) 8539 } 8540 8541 } else { 8542 found.push($(element)[0]) 8543 } 8544 8545 8546 } 8547 }); 8548 } 8549 } 8550 8551 function find_replace(find, replace) { 8552 var rFilter = [ 8553 find 8554 ]; 8555 8556 var instanceLimit = 20; 8557 8558 for (var i = 0; i < rFilter.length; i++) { 8559 var instanceCounter = 0; 8560 $('*').contents().filter(function() { 8561 return this.nodeType === 3; 8562 }).replaceWith(function() { 8563 var to_replace = new RegExp(rFilter[i]); 8564 if ((this.nodeValue.indexOf(rFilter[i]) >= 0) && (instanceCounter < instanceLimit)) { 8565 instanceCounter++; 8566 return this.nodeValue.replace(to_replace, replace); 8567 } 8568 else { 8569 return this.nodeValue; 8570 } 8571 }); 8572 } 8573 } 8574 8575 function find_replace_links(find, replace, find_texts = []) { 8576 find_link = find.replace(/[^a-zA-Z0-9+]/g, ''); 8577 replace_link = replace.replace(/[^a-zA-Z0-9+]/g, ''); 8578 8579 8580 $('*[href^="tel:+1'+find_link+'"]').each(function() { 8581 $(this).attr('href', 'tel:+1'+replace_link); 8582 var elements_with_find_text = find_closest_parent_of_content($(this), [find, ...find_texts]); 8583 console.log(elements_with_find_text) 8584 if (elements_with_find_text) { 8585 $(elements_with_find_text).each(function(index, element) { 8586 if (!$(this).is('script')) { 8587 var html = $(this).html(); 8588 8589 if (html.includes(find)) { 8590 html = html.replaceAll(find, replace); 8591 } 8592 8593 if(find_texts.length) { 8594 $.each(find_texts, function (index, find_text) { 8595 if (html.includes(find_text)) { 8596 html = html.replaceAll(find_text, replace); 8597 } 8598 }); 8599 } 8600 8601 if ($(this).html() !== html) { 8602 $(this).html(html); 8603 } 8604 } 8605 }); 8606 } 8607 8608 $(this).attr('data-click-call', 1); 8609 }); 8610 8611 // $('*[href^="tel:+1'+find_link+'"]').each(function() { 8612 // $(this).attr('href', 'tel:+1'+replace_link); 8613 8614 // if (!$(this).is('script')) { 8615 // var html = $(this).html(); 8616 8617 // if (html.includes(find)) { 8618 // html = html.replaceAll(find, replace); 8619 // } 8620 8621 // if(find_texts.length) { 8622 // $.each(find_texts, function (index, find_text) { 8623 // if (html.includes(find_text)) { 8624 // html = html.replaceAll(find_text, replace); 8625 // } 8626 // }); 8627 // } 8628 8629 // if ($(this).html() !== html) { 8630 // $(this).html(html); 8631 // } 8632 // } 8633 // }); 8634 } 8635 8636 function fill_tags_with_metadata(metadata) { 8637 var data = metadata; 8638 8639 $.each(data, function (attribute, value) { 8640 if (attribute !== "json_ld") { 8641 if (attribute === "tags") { 8642 $.each(value, function (tag, content) { 8643 tag_tag = $(`${tag}`); 8644 if (tag_tag.length) { 8645 console.log(`<${tag}/> updated with ${content}.`) 8646 $(tag_tag).text(content) 8647 } else { 8648 console.log(`<${tag}/> failed.`) 8649 } 8650 }); 8651 } else { 8652 $.each(value, function (type, content) { 8653 meta_tag = $(`meta[${attribute}="${type}"]`); 8654 if (meta_tag.length) { 8655 console.log(`<meta ${attribute}="${type}"/> updated with ${content}.`) 8656 $(meta_tag).attr('content', content) 8657 } else { 8658 console.log(`<meta ${attribute}="${type}"/> failed.`); 8659 } 8660 }); 8661 } 8662 } 8663 }); 8664 } 8665 8666 fill_tags_with_metadata(metadata); 8667 8668 var source = null; 8669 var campaign = null; 8670 var ad_location = null; 8671 8672 if (get_cookie('source')) { 8673 source = get_cookie('source'); 8674 $('select[data-ad-tracking="source"] option[name="'+source+'"]').attr('selected', true); 8675 } 8676 else { 8677 $('select[data-ad-tracking="source"]').val('None'); 8678 } 8679 8680 if (get_cookie('campaign')) { 8681 campaign = get_cookie('campaign'); 8682 $('select[data-ad-tracking="campaign"] option[name="'+campaign+'"]').attr('selected', true); 8683 } 8684 else { 8685 $('select[data-ad-tracking="campaign"]').val('None'); 8686 } 8687 8688 if (get_cookie('location')) { 8689 console.log(ad_location); 8690 ad_location = get_cookie('location'); 8691 $('select[data-ad-tracking="ad_location"] option[name="'+ad_location+'"]').attr('selected', true); 8692 } 8693 else { 8694 $('select[data-ad-tracking="ad_location"]').val('None'); 8695 } 8696 8697 8698 8699 prioritize_source = ( 8700 json.settings.hasOwnProperty('prioritize_source') && 8701 json.settings.prioritize_source 8702 ? true 8703 : false 8704 ); 8705 8706 google_conversion = ( 8707 json.settings.hasOwnProperty('google_conversion_enabled') && 8708 json.settings.google_conversion_enabled && 8709 source == 'google' 8710 ? true 8711 : false 8712 ); 8713 8714 facebook_conversion = ( 8715 json.settings.hasOwnProperty('facebook_conversion_enabled') && 8716 json.settings.facebook_conversion_enabled && 8717 source == 'facebook' 8718 ? true 8719 : false 8720 ); 8721 8722 if ( 8723 source != null && campaign != null && 8724 source.length && campaign.length 8725 ) { 8726 if (ad_management.hasOwnProperty('ad_campaigns')) { 8727 $.each(ad_management.ad_campaigns, function(key, val) { 8728 if (val.hasOwnProperty(campaign)) { 8729 ad_grouping.push(key); 8730 } 8731 }); 8732 } 8733 8734 if ( 8735 ad_grouping.length && 8736 ad_management.hasOwnProperty('ad_campaign_labels') && 8737 ad_management.ad_campaign_labels.hasOwnProperty(ad_grouping[0]) && 8738 ad_management.ad_campaign_labels[ad_grouping[0]].length 8739 ) { 8740 var new_label = ad_management.ad_campaign_labels[ad_grouping[0]]; 8741 $('form').each(function() { 8742 var current_label = $(this).attr('data-category') || ''; 8743 if (current_label.length) { 8744 $(this).attr('data-category', current_label+' ('+new_label+')'); 8745 } 8746 }); 8747 } 8748 8749 if ( 8750 $('body').attr('data-template-group')?.includes('landing') && 8751 window.location.pathname !== '/' 8752 ) { 8753 8754 let current_url_params = new URLSearchParams(window.location.search); 8755 current_url_params.delete('location'); 8756 current_url_params.delete('source'); 8757 current_url_params.delete('campaign'); 8758 8759 console.log(ad_location); 8760 console.log(current_url_params.toString()); 8761 8762 8763 if (ad_location !== null && ad_location.length) { 8764 // history.pushState(null, null, ad_location + '/' + source.replaceAll('_', '-') + '/' + campaign.replaceAll('_', '-') + '/'); 8765 history.pushState(null, null, `${ad_location}/${source.replaceAll('_', '-')}
8765/${campaign.replaceAll('_', '-')}/${current_url_params.toString()? '?'+current_url_params.toString():'' }`); 8766 } else { 8767 // history.pushState(null, null, source.replaceAll('_', '-')+'/'+campaign.replaceAll('_', '-')+'/'); 8768 history.pushState(null, null, `${source.replaceAll('_', '-')}/${campaign.replaceAll('_', '-')}/${current_url_params.toString()? '?'+current_url_params.toString():'' }`); 8769 } 8770 } 8771 } 8772 8773 if (json.settings.hasOwnProperty('replacements')) { 8774 8775 if (json.settings.replacements.hasOwnProperty('convirza')) { 8776 // Enable if convirza.dni exists and is truthy, unless enable is explicitly false 8777 const convirza = json.settings.replacements.convirza; 8778 if ( 8779 convirza.hasOwnProperty('dni') && convirza.dni && 8780 (!convirza.hasOwnProperty('enable') || convirza.enable !== false) 8781 ) { 8782 console.log('Enabling Convirza DNI with ID: ' + convirza.dni); 8783 } 8784 } 8785 8786 8787 $.each(json.settings.replacements, function(key, val) { 8788 8789 var number_to_replace = ( 8790 val.hasOwnProperty('number_to_replace') && 8791 val.hasOwnProperty('phone_numbers') && 8792 val.number_to_replace.length > 0 8793 ? val.number_to_replace 8794 : false 8795 ); 8796 8797 var text_to_replace = ( 8798 val.hasOwnProperty('text_to_replace') && 8799 val.hasOwnProperty('phone_numbers') && 8800 val.text_to_replace.length > 0 8801 ? val.text_to_replace 8802 : false 8803 ); 8804 8805 if (number_to_replace) { 8806 8807 var has_source = ( 8808 val.hasOwnProperty('phone_numbers') && 8809 val.phone_numbers.hasOwnProperty('source') 8810 ? true 8811 : false 8812 ); 8813 8814 var has_campaign = ( 8815 val.hasOwnProperty('phone_numbers') && 8816 val.phone_numbers.hasOwnProperty('campaign') 8817 ? true 8818 : false 8819 ); 8820 8821 var has_grouping = ( 8822 val.hasOwnProperty('phone_numbers') && 8823 val.phone_numbers.hasOwnProperty('grouping') 8824 ); 8825 8826 if (prioritize_source) { 8827 if (has_source && val.phone_numbers.source.hasOwnProperty(source)) { 8828 var number_replacement = val.phone_numbers.source[source]; 8829 } 8830 else if (has_campaign && val.phone_numbers.campaign.hasOwnProperty(campaign)) { 8831 var number_replacement = val.phone_numbers.campaign[campaign]; 8832 } 8833 else if ( 8834 has_grouping && 8835 ad_grouping.length && 8836 val.phone_numbers.grouping.hasOwnProperty(ad_grouping[0]) 8837 ) { 8838 var number_replacement = val.phone_numbers.grouping[ad_grouping[0]]; 8839 } 8840 else { 8841 number_replacement = null; 8842 } 8843 8844 if (number_replacement) { 8845 if (text_to_replace) { 8846 find_replace_links(number_to_replace, number_replacement, text_to_replace); 8847 } else { 8848 find_replace_links(number_to_replace, number_replacement ); 8849 } 8850 } 8851 } 8852 else { 8853 if (has_campaign && val.phone_numbers.campaign.hasOwnProperty(campaign)) { 8854 var number_replacement = val.phone_numbers.campaign[campaign]; 8855 } 8856 else if ( 8857 has_grouping && 8858 ad_grouping.length && 8859 val.phone_numbers.grouping.hasOwnProperty(ad_grouping[0]) 8860 ) { 8861 var number_replacement = val.phone_numbers.grouping[ad_grouping[0]]; 8862 } 8863 else if (has_source && val.phone_numbers.source.hasOwnProperty(source)) { 8864 var number_replacement = val.phone_numbers.source[source]; 8865 } 8866 else { 8867 number_replacement = null; 8868 } 8869 8870 if (number_replacement) { 8871 if (text_to_replace) { 8872 find_replace_links(number_to_replace, number_replacement, text_to_replace); 8873 } else { 8874 find_replace_links(number_to_replace, number_replacement); 8875 } 8876 } 8877 } 8878 } 8879 }); 8880 } 8881 8882 $('[data-click-call="1"]').click(function(e) { 8883 e.preventDefault(); 8884 var request = {}; 8885 request.action = 'log_click_to_call'; 8886 request.number = $(this).attr('href'); 8887 request.source = source; 8888 request.campaign = campaign; 8889 request.domain = window.location.hostname; 8890 request.path = window.location.pathname; 8891 8892 $.post('https://referrals.di-api.com/', { 8893 'action': JSON.stringify(request) 8894 }) 8895 .done(function() { 8896 let link = document.createElement('a'); 8897 link.href = request.number; 8898 link.click(); 8899 URL.revokeObjectURL(link.href); 8900 }); 8901 }); 8902 8903 function initDNIIntercept(key, host) { 8904 return new Promise((resolve, reject) => { 8905 var script = document.createElement('script'); 8906 script.src = 'https://dni.logmycalls.com/dni.js?app_id=CT'; 8907 script.onerror = () => reject(new Error('Failed to load DNI script')); 8908 script.onload = function () { 8909 // Script loaded â CZADNI is now on window. 8910 // Replace their DOM-swapping function with a no-op that also captures the phone number and resolves the promise. 8911 const originalChangeNumber = CZADNI.changeTheNumberOnScreen.changeNumber; 8912 CZADNI.changeTheNumberOnScreen.changeNumber = function (mappings) { 8913 const mapping = mappings?.[0]; 8914 if (mapping?.phone_number && mapping.phone_number !== 'not_exist') { 8915 const formatted = CZADNI.changeTheNumberOnScreen.formatNumber( 8916 mapping.phone_number, 8917 mapping.dni_number_format 8918 ); 8919 resolve({ 8920 raw: mapping.phone_number, 8921 formatted: formatted.phone 8922 }); 8923 } 8924 }; 8925 8926 // init the DNI script 8927 getDNIRecord(key, host); 8928 }; 8929 document.head.appendChild(script); 8930 }); 8931 } 8932 } 8933</script>
8933 8934 8935 <section data-type="system-lightbox-container"></section> 8936
8936<script src="/system/js/jquery-3.5.1.min.js"></script>
8936 8937
8937<script src="https://kit.fontawesome.com/10cd9403cd.js" async></script>
8937 8938
8938<script> 8939 var scroll_disabled = false; 8940 var extras_loaded = false; 8941 var form_button_lock = false; 8942 var click_lock = false; 8943 var _userway_config = { position: 5, color: "#053e67", language: "en", account: "72Ve6c8l9z" }; 8944 var timeout = false; 8945 var window_width = null; 8946 var window_height = null; 8947 var google_conversion = false; 8948 var facebook_conversion = false; 8949 var file_field_counter = 0; 8950 const api = 'https://referrals.di-api.com/'; 8951 var newSession = false; 8952 var newVisitor = false; 8953 let socket = null; 8954 const pageID = uuid(); 8955 8956 function gtag(arguments) { 8957 dataLayer.push(arguments); 8958 } 8959 8960 google_tracking = { 8961 gtag: function () { 8962 dataLayer.push(arguments); 8963 } 8964 }; 8965 8966 facebook_tracking = { 8967 fbq: function () { 8968 n.queue.push(arguments); 8969 } 8970 }; 8971 8972 function Socket(visitorId, sessionId, pageId) { 8973 const ws = "wss://socket.di-api.com/analytics" 8974 this.promise = new Promise((resolve, reject) => { 8975 this.visitorId = visitorId; 8976 this.sessionId = sessionId; 8977 this.pageId = pageId; 8978 this.connection = null; 8979 8980 this.attempts = 0; 8981 this.interval = 1000; 8982 this.has_reconnect = false; 8983 var multiplier = 1.25; 8984 8985 var connect = () => { 8986 this.connection = new WebSocket(`${ws}?visitor_id=${visitorId}&session_id=${sessionId}&page_id=${pageId}`); 8987 this.attempts++; 8988 8989 this.connection.onopen = (e) => { 8990 {/* console.log(this.connection); 8991 console.log(e); */} 8992 this.attempts = 0; 8993 this.interval = 1000; 8994 console.log('Connection established'); 8995 8996 resolve(1) 8997 } 8998 8999 this.connection.onclose = (e) => { 9000 console.log('Connection closed'); 9001 this.connection = null; 9002 9003 if (this.has_reconnect) { 9004 this.interval *= multiplier; 9005 setTimeout(function () { 9006 reconnect(); 9007 }, this.interval); 9008 } 9009 } 9010 9011 this.connection.onerror = (e) => { 9012 console.log('%cConnection error ', 'color: red; display: block; width: 100%;', e); 9013 this.connection.close(); 9014 resolve(-1) 9015 } 9016 9017 this.connection.onmessage = (e) => { 9018 if (e.data) { 9019 9020 } 9021 } 9022 } 9023 9024 var reconnect = () => { 9025 if (this.connection === null && this.id !== null) { 9026 console.log('Reconnecting...') 9027 connect(ws); 9028 return 1; 9029 } else { 9030 console.log('Needs to Reconnect...') 9031 return -1; 9032 } 9033 } 9034 9035 9036 if (this.id !== null) { 9037 connect() 9038 } 9039 }) 9040 } 9041 9042 Socket.prototype.kill = function () { 9043 if (this.connection !== null) { 9044 if (this.connection.readyState) { 9045 this.has_reconnect = false; 9046 this.connection.close(); 9047 return 1; 9048 } else { 9049 return -1; 9050 } 9051 } else { 9052 return -1; 9053 } 9054 } 9055 9056 Socket.prototype.get_state = function () { 9057 if (this.connection !== null) { 9058 return this.connection.readyState; 9059 } else { 9060 return null; 9061 } 9062 } 9063 9064 function get_visitor_id() { 9065 let visitorID = localStorage.getItem('visitorID'); 9066 if (!visitorID) { 9067 newVisitor = true; 9068 visitorID = uuid(); 9069 localStorage.setItem('visitorID', visitorID); 9070 } 9071 return visitorID; 9072 } 9073 9074 function get_session_id() { 9075 let sessionID = sessionStorage.getItem('sessionID'); 9076 if (!sessionID) { 9077 newSession = true; 9078 sessionID = uuid(); 9079 sessionStorage.setItem('sessionID', sessionID); 9080 } 9081 return sessionID; 9082 } 9083 9084 function get_tracking_permitted() { 9085 const consent = window.DiPrivacy.consent ?? null; 9086 if (consent === 'granted') { 9087 return 1; 9088 } else if (consent === 'denied') { 9089 return 0; 9090 } else { 9091 return null; 9092 } 9093 } 9094 9095 9096 function is_valid_interaction_type(type) { 9097 // Array of patterns (including static strings as patterns) 9098 const patterns = [ 9099 /^call$/, // Exact match of 'call' 9100 /^click$/, // Exact match of 'click' 9101 /^form_submission$/, // Exact match of 'form_submission' 9102 /^landing$/, // Exact match of 'landing' 9103 /^page$/, // Exact match of 'page' 9104 /^question_\d+$/, // Matches 'question_' followed by one or more digits 9105 /^tracking_permitted$/, // Exact match of 'tracking_permitted' 9106 ]; 9107 9108 // Iterate over the patterns and check if the type matches any of them 9109 for (let pattern of patterns) { 9110 if (pattern.test(type)) { 9111 return true; 9112 } 9113 } 9114 9115 return false; 9116 } 9117 9118 function track_submit(elem) { 9119 return new Promise((resolve, reject) => { 9120 9121 const visitorID = get_visitor_id(); 9122 const sessionID = get_session_id() 9123 9124 let aios_module = elem.closest('[data-mid]'); 9125 let aios_content = elem.closest('[data-cid]') 9126
9127 if (aios_module instanceof jQuery) { 9128 if (aios_module.length) { 9129 aios_module = aios_module[0] 9130 } else { 9131 aios_module = null; 9132 } 9133 } 9134 9135 if (aios_content instanceof jQuery) { 9136 if (aios_content.length) { 9137 aios_content = aios_content[0]; 9138 } else { 9139 aios_content = null; 9140 } 9141 } 9142 9143 9144 9145 let request = {}; 9146 request.action = 'page_interaction'; 9147 request.type = 'form_submission'; 9148 request.visitor_id = visitorID; 9149 request.session_id = sessionID; 9150 request.page_id = pageID; 9151 request.mid = (aios_module !== null) ? aios_module.getAttribute('data-mid') : null; 9152 request.cid = (aios_content !== null) ? aios_content.getAttribute('data-cid') : null; 9153 request.domain = window.location.hostname; 9154 request.page = window.location.pathname; 9155 request.href = null; 9156 request.source = (get_cookie('source') ? get_cookie('source') : null); 9157 request.campaign = (get_cookie('campaign') ? get_cookie('campaign') : null); 9158 request.location = (get_cookie('location') ? get_cookie('location') : null); 9159 request.category = (aios_content !== null) ? aios_content.getAttribute('data-category') : null; 9160 request.subcategory = (aios_content !== null) ? aios_content.getAttribute('data-subcategory') : null; 9161 request.referrer = document.referrer; 9162 request.tracking_permitted = get_tracking_permitted(); 9163 9164 if (get_tracking_permitted() === 1) { } 9165 else { 9166 request.visitor_id = null; 9167 if (document.referrer) { 9168 request.referrer = (new URL(document.referrer)).hostname || null; 9169 } 9170 } 9171 9172 9173 9174 // console.log(request) 9175 9176 let xhr = new XMLHttpRequest(); 9177 xhr.open('POST', api); 9178 xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 9179 xhr.onreadystatechange = function () { 9180 // console.log(xhr.readyState) 9181 if (xhr.readyState == 2) { 9182 resolve(true); 9183 } 9184 if (xhr.readyState == 4) { 9185 if (xhr.status == 200) { 9186 } else { 9187 } 9188 } 9189 } 9190 xhr.onerror = function () { 9191 reject(xhr.status); 9192 } 9193 xhr.send(encodeURI('action=' + JSON.stringify(request))); 9194 }); 9195 } 9196 9197 function track_click(elem) { 9198 return new Promise((resolve, reject) => { 9199 9200 const visitorID = get_visitor_id(); 9201 const sessionID = get_session_id() 9202 9203 let click_type = 'click'; 9204 let aios_module = elem.closest('[data-mid]'); 9205 let aios_content = elem.closest('[data-cid]') 9206 9207 if (aios_module instanceof jQuery) { 9208 if (aios_module.length) { 9209 aios_module = aios_module[0] 9210 } else { 9211 aios_module = null; 9212 } 9213 } 9214 9215 if (aios_content instanceof jQuery) { 9216 if (aios_content.length) { 9217 aios_content = aios_content[0]; 9218 } else { 9219 aios_content = null; 9220 } 9221 } 9222 9223 if (elem.hasAttribute('href')) { 9224 if (elem.getAttribute('href').indexOf('tel:') > -1) { 9225 click_type = 'call' 9226 } 9227 } 9228 9229 if (elem.tagName === 'BUTTON') { 9230 if (elem.hasAttribute('data-click-tracking-type') || elem.hasAttribute('data-event')) { 9231 const elem_type = elem.getAttribute('data-click-tracking-type') || elem.getAttribute('data-event'); 9232 if (elem_type === 'consent_accept' || elem_type === 'consent_reject') { 9233 click_type = 'tracking_permitted'; 9234 } else if (is_valid_interaction_type(elem_type)) { 9235 click_type = elem_type; 9236 } 9237 } 9238 } 9239 9240 if (elem.hasAttribute('data-click-tracking')) { 9241 if (elem.hasAttribute('data-click-tracking-type') || elem.hasAttribute('data-event')) { 9242 const elem_type = elem.getAttribute('data-click-tracking-type') || elem.getAttribute('data-event'); 9243 if (is_valid_interaction_type(elem_type)) { 9244 click_type = elem_type; 9245 } 9246 } 9247 } 9248 9249 let request = {}; 9250 request.action = 'page_interaction'; 9251 request.type = click_type; 9252 request.visitor_id = visitorID; 9253 request.session_id = sessionID; 9254 request.page_id = pageID; 9255 request.mid = (aios_module !== null) ? aios_module.getAttribute('data-mid') : null; 9256 request.cid = (aios_content !== null) ? aios_content.getAttribute('data-cid') : null; 9257 request.domain = window.location.hostname; 9258 request.page = window.location.pathname; 9259 request.href = elem.getAttribute('href'); 9260 request.source = (get_cookie('source') ? get_cookie('source') : null); 9261 request.campaign = (get_cookie('campaign') ? get_cookie('campaign') : null); 9262 request.location = (get_cookie('location') ? get_cookie('location') : null); 9263 request.category = (aios_content !== null) ? aios_content.getAttribute('data-category') : null; 9264 request.subcategory = (aios_content !== null) ? aios_content.getAttribute('data-subcategory') : null; 9265 request.referrer = document.referrer; 9266 request.tracking_permitted = get_tracking_permitted(); 9267 9268 if (get_tracking_permitted() === 1) { } 9269 else { 9270 request.visitor_id = null; 9271 if (document.referrer) { 9272 request.referrer = (new URL(document.referrer)).hostname || null; 9273 } 9274 } 9275 9276 console.log(request); 9277 9278 let xhr = new XMLHttpRequest(); 9279 xhr.open('POST', api); 9280 xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 9281 xhr.onreadystatechange = function () { 9282 // console.log(xhr.readyState) 9283 if (xhr.readyState == 2) { 9284 resolve(true); 9285 } 9286 if (xhr.readyState == 4) { 9287 if (xhr.status == 200) { 9288 } else { 9289 } 9290 } 9291 } 9292 xhr.onerror = function () { 9293 reject(xhr.status); 9294 } 9295 xhr.send(encodeURI('action=' + JSON.stringify(request))); 9296 }); 9297 } 9298 9299 function track_load() { 9300 return new Promise((resolve, reject) => { 9301 const visitorID = get_visitor_id(); 9302 const sessionID = get_session_id() 9303 {/* pageID = uuid(); */ } 9304 9305 let request = {}; 9306 request.action = 'page_interaction'; 9307 request.type = (newSession) ? 'landing' : 'page'; 9308 request.visitor_id = visitorID; 9309 request.session_id = sessionID; 9310 request.page_id = pageID; 9311 request.domain = window.location.hostname; 9312 request.page = window.location.pathname; 9313 request.source = (get_cookie('source') ? get_cookie('source') : null); 9314 request.campaign = (get_cookie('campaign') ? get_cookie('campaign') : null); 9315 request.location = (get_cookie('location') ? get_cookie('location') : null); 9316 request.referrer = document.referrer; 9317 request.tracking_permitted = get_tracking_permitted(); 9318 9319 if (get_tracking_permitted() === 1) { } 9320 else { 9321 request.visitor_id = null; 9322 if (document.referrer) { 9323 request.referrer = (new URL(document.referrer)).hostname || null; 9324 } 9325 } 9326 9327 let xhr = new XMLHttpRequest(); 9328 xhr.open('POST', api); 9329 xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 9330 xhr.onreadystatechange = function () { 9331 if (xhr.readyState == 2) { 9332 resolve(true); 9333 } 9334 if (xhr.readyState == 4) { 9335 if (xhr.status == 200) { 9336 } else { 9337 } 9338 } 9339 } 9340 xhr.onerror = function () { 9341 reject(xhr.status); 9342 } 9343 xhr.send(encodeURI('action=' + JSON.stringify(request))); 9344 }); 9345 } 9346 9347 function deferred_websocket() { 9348 return new Promise((resolve, reject) => { 9349 let visitorID = get_visitor_id(); 9350 const sessionID = get_session_id(); 9351 9352 if (get_tracking_permitted() !== 1) { 9353 visitorID = null; 9354 } 9355 9356 window.addEventListener('scroll', function () { 9357 if (socket === null) { 9358 socket = new Socket(visitorID, sessionID, pageID); 9359 resolve(true); 9360 } 9361 }); 9362 9363 window.addEventListener('mousemove', function () { 9364 if (socket === null) { 9365 socket = new Socket(visitorID, sessionID, pageID); 9366 resolve(true); 9367 } 9368 }); 9369 9370 window.addEventListener('click', function () { 9371 if (socket === null) { 9372 socket = new Socket(visitorID, sessionID, pageID); 9373 resolve(true); 9374 } 9375 }); 9376 }); 9377 } 9378 9379 function clone_lightbox(selected, dom, section, settings) { 9380 var counter = 0; 9381 clonedDom = dom.cloneNode(true); 9382 document.querySelector('section[data-type="system-lightbox-container"]').appendChild(clonedDom); 9383 document.querySelector('section[data-type="system-lightbox-container"] > [data-action="lightbox"]').setAttribute('data-origin', section); 9384 var lightboxItems = document.querySelectorAll('section[data-type="system-lightbox-container"] [data-action="lightbox_item"]'); 9385 lightboxItems[selected].classList.add('selected'); 9386 9387 var closeLightboxElement = document.createElement('div'); 9388 closeLightboxElement.classList.add('close-icon'); 9389 closeLightboxElement.innerHTML = ` 9390 <i class="fal fa-times-circle"> 9391 `; 9392 closeLightboxElement.addEventListener('click', function (e) { 9393 e.preventDefault(); 9394 close_lightbox(); 9395 }); 9396 9397 var nextLightboxElement = document.createElement('div'); 9398 nextLightboxElement.classList.add('next-icon'); 9399 nextLightboxElement.innerHTML = ` 9400 <i class="fal fa-chevron-circle-right"> 9401 `; 9402 9403 var prevLightboxElement = document.createElement('div'); 9404 prevLightboxElement.classList.add('prev-icon'); 9405 prevLightboxElement.innerHTML = ` 9406 <i class="fal fa-chevron-circle-left"> 9407 `; 9408 9409 lightboxItems[selected].appendChild(closeLightboxElement); 9410 lightboxItems[selected].appendChild(nextLightboxElement); 9411 lightboxItems[selected].appendChild(prevLightboxElement); 9412 9413 $('section[data-type="system-lightbox-container"] [data-action="lightbox_item"]').each(function () { 9414 $(this).attr('data-index', counter), 9415 counter++; 9416 }); 9417 9418 open_lightbox(); 9419 } 9420 9421 function open_lightbox() { 9422 $('section[data-type="system-lightbox-container"]').addClass('show'); 9423 setTimeout(function () { 9424 $('*[data-type="system-lightbox-close"]').click(close_lightbox); 9425 }, 400); 9426 9427 $('section[data-type="system-lightbox-container"] [data-lazy-picture="true"]').each(function () { 9428 var data_srcset = $(this).attr('data-srcset'); 9429 var srcset = $(this).attr('srcset'); 9430
9431 if (data_srcset !== '') { 9432 $(this).attr('srcset', data_srcset); 9433 } 9434 }); 9435 9436 $('section[data-type="system-lightbox-container"] [data-lazy-img="true"]').each(function () { 9437 var src = $(this).attr('data-src'); 9438 if (src) { 9439 $(this).attr('src', src); 9440 } 9441 }); 9442 } 9443 9444 function close_lightbox() { 9445 $('*[data-type="system-lightbox-close"]').unbind(); 9446 $('section[data-type="system-lightbox-container"]').removeClass('show'); 9447 setTimeout(function () { 9448 $('section[data-type="system-lightbox-container"]').empty(); 9449 }, 0); 9450 } 9451 9452 function reset_lightbox_container() { 9453 const $container = $('section[data-type="system-lightbox-container"]'); 9454 9455 // Remove only injected lightbox-content clones 9456 $container.find('section[data-type="system-lightbox-content"]').remove(); 9457 9458 // Remove container click handlers (or at least the ones you add via namespace) 9459 $container.off('click.autoOutsideClose'); 9460 } 9461 9462 (function wrapOpenLightbox() { 9463 if (window.__openLightboxWrapped2) return; 9464 window.__openLightboxWrapped2 = true; 9465 9466 function wait() { 9467 if (typeof window.open_lightbox !== 'function') { 9468 setTimeout(wait, 25); 9469 return; 9470 } 9471 9472 const originalOpen = window.open_lightbox; 9473 9474 // Global config 9475 window.override_lightbox = window.override_lightbox || false; 9476 window.lightbox_allowed_source = window.lightbox_allowed_source || null; 9477 window.lightbox_call_source = null; // ephemeral, set right before allowed opens 9478 9479 // Helper: run a function while temporarily marking the caller 9480 window.with_lightbox_source = function (sourceId, fn) { 9481 const prev = window.lightbox_call_source; 9482 window.lightbox_call_source = sourceId; 9483 try { 9484 return fn(); 9485 } finally { 9486 window.lightbox_call_source = prev; 9487 } 9488 }; 9489 9490 window.open_lightbox = function () { 9491 // If override is active, only allow calls tagged by the allowed source 9492 if (window.override_lightbox) { 9493 if (!window.lightbox_allowed_source) return; // locked down hard 9494 if (window.lightbox_call_source !== window.lightbox_allowed_source) { 9495 return; // ignore everyone else 9496 } 9497 } 9498 9499 return originalOpen.apply(this, arguments); 9500 }; 9501 } 9502 9503 wait(); 9504 })(); 9505 9506 function uuid(verbose = false) { 9507 let id = ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c => 9508 (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16) 9509 ) 9510 if (verbose) { 9511 console.log(id); 9512 } 9513 return id 9514 } 9515 9516 function set_cookie(name, value, days, domain) { 9517 var expires = ''; 9518 if (domain == null) { 9519 var domain = window.location.hostname; 9520 domain = domain.split('.'); 9521 9522 if (domain.length == 2) { 9523 domain = domain.join('.'); 9524 } 9525 9526 if (domain.length == 3) { 9527 domain = domain.slice(Math.max(domain.length - 2, 1)); 9528 domain = domain.join('.'); 9529 } 9530 } 9531 if (days) { 9532 var date = new Date(); 9533 date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 9534 expires = '; expires=' + date.toUTCString(); 9535 } 9536 document.cookie = name + '=' + (value || '') + expires + '; domain=' + domain + '; path=/'; 9537 } 9538 9539 function get_cookie(name) { 9540 var name_eq = name + '='; 9541 var ca = document.cookie.split(';'); 9542 for (var i = 0; i < ca.length; i++) { 9543 var c = ca[i]; 9544 while (c.charAt(0) == ' ') c = c.substring(1, c.length); 9545 if (c.indexOf(name_eq) == 0) return c.substring(name_eq.length, c.length); 9546 } 9547 return null; 9548 } 9549 9550 function disable_scroll() { 9551 if (scroll_disabled) { 9552 return; 9553 } 9554 9555 scroll_disabled = true; 9556 scrollTop = $(window).scrollTop(); 9557 9558 $('body') 9559 .css({ 9560 'top': -1 * scrollTop, 9561 'position': 'fixed', 9562 'overflow': 'hidden', 9563 'pointer-events': 'none', 9564 }); 9565 } 9566 9567 function load_extras() { 9568 $.getScript('https://cdn.userway.org/widget.js'); 9569 javascript_deferred.load.forEach(function (v) { 9570 javascript_deferred.prototype[v](); 9571 }); 9572 9573 $('iframe[data-src]').each(function () { 9574 var src = $(this).attr('data-src'); 9575 if (!(src == null || src == '')) { 9576 $(this).attr('src', src); 9577 } 9578 }); 9579 9580 $('iframe[data-srcdoc]').each(function () { 9581 var srcdoc = atob($(this).attr('data-srcdoc')); 9582 if (!(srcdoc == null || srcdoc == '')) { 9583 $(this).attr('srcdoc', srcdoc); 9584 } 9585 }); 9586 } 9587 9588 function update_deferred_images() { 9589 $('[data-lazy-picture="false"]').each(function () { 9590 var data_srcset = $(this).attr('data-srcset'); 9591 var srcset = $(this).attr('srcset'); 9592
9593 if (data_srcset !== '') { 9594 $(this).attr('srcset', data_srcset); 9595 } 9596 }); 9597 9598 $('[data-lazy-img="false"]').each(function () { 9599 var src = $(this).attr('data-src'); 9600 if (src) { 9601 $(this).attr('src', src); 9602 } 9603 }); 9604 9605 /* $('source[data-srcset]').each(function() { 9606 if ($('body').attr('data-width') > 360) { 9607 var src = $(this).attr('data-srcset'); 9608 $(this).attr('srcset', src); 9609 } 9610 else { 9611 var src = $(this).attr('data-srcset-sm'); 9612 $(this).attr('srcset', src); 9613 } 9614 }); */ 9615 9616 9617 $('video source[data-src]').each(function () { 9618 if ($('body').attr('data-width') > 360) { 9619 var src = $(this).attr('data-src'); 9620 $(this).attr('src', src); 9621 $(this).closest('video')[0].load(); 9622 9623 if ($(this).closest('video')[0].hasAttribute('muted')) { 9624 $(this).closest('video')[0].play(); 9625 } 9626 } 9627 }); 9628 } 9629 9630 function lazy_load_deferred_images() { 9631 const lazySections = document.querySelectorAll('body > section') 9632 9633 lazySections.forEach(section => { 9634 // section.classList.add('lazying'); 9635 createObserver(section); 9636 }); 9637 9638 9639 function createObserver(el) { 9640 let observer; 9641 9642 let options = { 9643 root: null, 9644 rootMargin: "100px 0px", 9645 threshold: 0 9646 }; 9647 9648 observer = new window.IntersectionObserver(handleIntersect, options); 9649 observer.observe(el); 9650 } 9651 9652 function handleIntersect(entries, o) { 9653 entries.forEach((entry) => { 9654 if (entry.isIntersecting) { 9655 const lazyAssets = entry.target.querySelectorAll('[data-lazy-picture="true"], [data-lazy-img="true"]'); 9656 // console.log('Lazy Assets', lazyAssets); 9657 9658 lazyAssets.forEach((asset) => { 9659 load(asset); 9660 }); 9661 9662 o.unobserve(entry.target) 9663 9664 } else { 9665 } 9666 }); 9667 } 9668 9669 function load(asset) { 9670 9671 if (asset.tagName === 'IMG') { 9672 if (asset.hasAttribute('data-src')) { 9673 const source = asset.getAttribute('data-src'); 9674 if (source) { 9675 asset.setAttribute('src', source); 9676 asset.removeAttribute('data-src') 9677 } 9678 } else { 9679 } 9680 } 9681 9682 if (asset.tagName === 'SOURCE') { 9683 if (asset.hasAttribute('data-srcset')) { 9684 const source = asset.getAttribute('data-srcset'); 9685 if (source) { 9686 asset.setAttribute('srcset', source); 9687 asset.removeAttribute('data-srcset') 9688 } 9689 } else { 9690 } 9691 } 9692 } 9693 9694 // document.addEventListener('scroll', function () { 9695 9696 // }); 9697 } 9698 9699 9700 function set_resize_listeners() { 9701 window.addEventListener('resize', function () { 9702 if ($(window).width() == window_width) { 9703 return; 9704 } 9705 else { 9706 clearTimeout(timeout); 9707 timeout = setTimeout(get_viewport_size, 50); 9708 } 9709 window_width = $(window).width(); 9710 }); 9711 9712 window.addEventListener('resize', function () { 9713 if ($(window).height() == window_height) { 9714 return; 9715 } 9716 else { 9717 clearTimeout(timeout); 9718 timeout = setTimeout(get_viewport_size, 50); 9719 } 9720 window_height = $(window).height(); 9721 }); 9722 } 9723 9724 function set_scroll_listeners() { 9725 $(document).one('scroll', function () { 9726 if (!extras_loaded) { 9727 extras_loaded = true; 9728 load_extras(); 9729 } 9730 }); 9731 9732 $(document).one('mousemove', function () { 9733 if (!extras_loaded) { 9734 extras_loaded = true; 9735 load_extras(); 9736 } 9737 }); 9738 } 9739 9740 function set_accordion_listeners() { 9741 if ($('div[data-micro-template="accordion"]')) { 9742 $('div[data-accordion="title"').click(function () { 9743 var $container = $(this).closest($('div[data-micro-template="accordion_container"]')); 9744 var $toggles = $container.find('.accordion_toggle'); 9745 var $bodies = $container.find('.accordion_body'); 9746 var $titles = $container.find('.accordion_title'); 9747 9748 $titles.removeClass('active'); 9749 $toggles.text("+"); 9750 $bodies.slideUp(); 9751 9752 if (!$(this).next().is(":visible")) { 9753 $(this).addClass('active'); 9754 $(this).next().slideDown(); 9755 $(this).children('.accordion_toggle').text('-'); 9756 } 9757 }); 9758 } 9759 } 9760 9761 9762 function get_form_info(form) { 9763 const el = $(form)[0]; 9764 return { 9765 page: window.location.pathname, 9766 form: { 9767 id: el.getAttribute('data-form-id') || null, 9768 type: el.getAttribute('data-type') || null, 9769 category: el.getAttribute('data-category') || null, 9770 }, 9771 }; 9772 } 9773 9774 function dispatch_form_event(name, form, response) { 9775 const detail = get_form_info(form); 9776 detail.response = response; 9777 $(form)[0].dispatchEvent(new CustomEvent(name, { bubbles: true, detail: detail })); 9778 } 9779 9780 function form_actions() { 9781 if ($('form').length) { 9782 if ($('input[data-toggle="datepicker"]').length) { 9783 $.getScript('/system/js/datepicker/datepicker.js', function () { 9784 $('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/system/js/datepicker/datepicker.css')); 9785 $('input[data-toggle="datepicker"]').each(function () { 9786 9787 let start_date; 9788 9789 if ($(this).attr('name') == 'dob' || $(this).attr('name') == 'birthdate' || $(this).attr('data-email-label').includes('Birth')) { 9790 start_date = '1907-03-04'; 9791 } 9792 9793 const data_start_date = $(this).attr('data-start-date'); 9794 9795 if (data_start_date) { 9796 start_date = data_start_date; 9797 } 9798 9799 if (start_date) { 9800 const match = /^([+-])(\d+)([dwy])$/.exec(start_date); 9801 if (match) { 9802 const [, sign, amountStr, unit] = match; 9803 const amount = parseInt(amountStr, 10) * (sign === '-' ? -1 : 1); 9804 start_date = new Date(); 9805 if (unit === 'd') start_date.setDate(start_date.getDate() + amount); 9806 else if (unit === 'w') start_date.setDate(start_date.getDate() + amount * 7); 9807 else if (unit === 'y') start_date.setFullYear(start_date.getFullYear() + amount); 9808 } else { 9809 start_date = new Date(start_date); 9810 } 9811 } else { 9812 start_date = new Date(); 9813 } 9814 9815 var disabled = { 9816 'mon': $(this).attr('data-mon'),
9817 'tue': $(this).attr('data-tue'), 9818 'wed': $(this).attr('data-wed'), 9819 'thu': $(this).attr('data-thu'), 9820 'fri': $(this).attr('data-fri'), 9821 'sat': $(this).attr('data-sat'), 9822 'sun': $(this).attr('data-sun'), 9823 }; 9824 9825 $(this).datepicker({ 9826 'autoHide': true, 9827 'startDate': start_date, 9828 'filter': function (date, view) { 9829 if (disabled['mon'] == true) { if (date.getDay() === 1 && view === 'day') { return false; } } 9830 if (disabled['tue'] == true) { if (date.getDay() === 2 && view === 'day') { return false; } } 9831 if (disabled['wed'] == true) { if (date.getDay() === 3 && view === 'day') { return false; } } 9832 if (disabled['thu'] == true) { if (date.getDay() === 4 && view === 'day') { return false; } } 9833 if (disabled['fri'] == true) { if (date.getDay() === 5 && view === 'day') { return false; } } 9834 if (disabled['sat'] == true) { if (date.getDay() === 6 && view === 'day') { return false; } } 9835 if (disabled['sun'] == true) { if (date.getDay() === 0 && view === 'day') { return false; } } 9836 } 9837 }); 9838 }); 9839 }); 9840 } 9841 9842 $('form input[type="file"]').change(function () { 9843 var max_file_size = $(this).closest('[data-group="file"]').attr('data-max-size'); 9844 var current_label = $(this).closest('label').find('.label_name').text(); 9845 console.log(current_label); 9846 var current_form = $(this).closest('form'); 9847 var container = $(this).closest('[data-container="file"]'); 9848 var selected_file = $(this).val().split('/').pop().split('\\').pop(); 9849 9850 $(this).closest('label').find('.label_name').text(selected_file); 9851 $(this).closest('label').find('.label_name').append('<div class="remove_file"><i class="fal fa-times">'); 9852 9853 var total_file_size = 0; 9854 9855 $(current_form).find('input[type="file"]').each(function () { 9856 if ($(this).val().length > 0) { 9857 total_file_size += $(this).prop('files')[0].size; 9858 } 9859 }); 9860 9861 $(current_form).find('.max_size_container .dynamic_size').text((total_file_size / 1024 / 1024).toFixed(2)); 9862 9863 if ($(container).next('[data-container="file"]').length < 1) { 9864 file_field_counter++; 9865 var current_name = $(container).attr('data-name'); 9866 var next_container = $(container).clone(true).insertAfter(container); 9867 $(next_container).find('input').attr('name', current_name + '_' + file_field_counter); 9868 $(next_container).find('input').val(''); 9869 $(next_container).find('label .label_name').text(current_label); 9870 } 9871 9872 if ((total_file_size / 1024 / 1024).toFixed(2) > parseInt(max_file_size)) { 9873 $(current_form).find('.max_size_container').addClass('too_large'); 9874 $(current_form).find('[data-group="file"] > div [data-container="file"]:last-of-type').addClass('disabled'); 9875 $(current_form).find('[data-type="submit"]').addClass('disabled'); 9876 $(current_form).addClass('disabled'); 9877 } 9878 else { 9879 $(current_form).find('.max_size_container').removeClass('too_large'); 9880 $(current_form).find('[data-group="file"] > div [data-container="file"]:last-of-type').removeClass('disabled'); 9881 $(current_form).find('[data-type="submit"]').removeClass('disabled'); 9882 $(current_form).removeClass('disabled'); 9883 } 9884 9885 $(container).find('.remove_file').click(function (e) { 9886 e.preventDefault(); 9887 $(container).remove(); 9888 9889 total_file_size = 0; 9890 9891 $(current_form).find('input[type="file"]').each(function () { 9892 if ($(this).val().length > 0) { 9893 total_file_size += $(this).prop('files')[0].size; 9894 } 9895 }); 9896 9897 if ((total_file_size / 1024 / 1024).toFixed(2) > parseInt(max_file_size)) { 9898 $(current_form).find('.max_size_container').addClass('too_large'); 9899 $(current_form).find('[data-group="file"] > div [data-container="file"]:last-of-type').addClass('disabled'); 9900 $(current_form).find('[data-type="submit"]').addClass('disabled'); 9901 $(current_form).addClass('disabled'); 9902 } 9903 else { 9904 $(current_form).find('.max_size_container').removeClass('too_large'); 9905 $(current_form).find('[data-group="file"] > div [data-container="file"]:last-of-type').removeClass('disabled'); 9906 $(current_form).find('[data-type="submit"]').removeClass('disabled'); 9907 $(current_form).removeClass('disabled'); 9908 } 9909 9910 if ($('form.disabled').length > 0) { 9911 $('form [data-type="submit_multi"]').addClass('disabled'); 9912 } 9913 else { 9914 $('form [data-type="submit_multi"]').removeClass('disabled'); 9915 } 9916
9917 $(current_form).find('.max_size_container .dynamic_size').text((total_file_size / 1024 / 1024).toFixed(2)); 9918 }); 9919 }); 9920 9921 $('form *[data-required="true"], form *[data-required="1"]').each(function () { 9922 var placeholder = $(this).attr('placeholder'); 9923 $(this).attr('required', true); 9924 $(this).attr('placeholder', placeholder + ' *'); 9925 $(this).find('option[value=""]').text($(this).find('option[value=""]').text() + ' *'); 9926 }); 9927 9928 $('form fieldset').each(function () { 9929 var field_name = $(this).attr('name'); 9930 var default_value = $(this).attr('value'); 9931 9932 if (default_value !== '') { 9933 $(this).find('input[data-type="radio"][name="' + field_name + '"][value="' + default_value + '"]').attr('checked', true); 9934 $(this).find('input[data-type="radio"][id="' + field_name + '_' + default_value + '"]').attr('checked', true); 9935 $(this).find('input[data-type="checkbox"][name="' + default_value + '"]').attr('checked', true); 9936 $(this).find('input[data-type="checkbox"][id="' + field_name + '_' + default_value + '"]').attr('checked', true); 9937 } 9938 }); 9939 9940 $('form *[data-readonly="true"], form *[data-readonly="1"]').each(function () { 9941 $(this).attr('readonly', true); 9942 }); 9943 9944 $('form *[data-hidden="true"], form *[data-hidden="1"]').each(function () { 9945 $(this).css('display', 'none'); 9946 }); 9947 9948 $('form[data-dynamic="true"]').on('submit', function (e) { 9949 console.time('Click 2 Submit') 9950 e.preventDefault(); 9951 var submitted_form = $(this); 9952 var recaptcha_site_key = $(this).attr('data-recaptcha-site-key'); 9953 var recaptcha_secret_key = $(this).attr('data-recaptcha-secret-key'); 9954 var recaptcha_processor = $(this).attr('data-recaptcha-processor'); 9955 9956 if ( 9957 recaptcha_site_key !== '' && 9958 recaptcha_secret_key !== '' && 9959 recaptcha_processor !== '' 9960 ) { 9961 if (this.checkValidity()) { 9962 grecaptcha.ready(function () { 9963 grecaptcha.execute(recaptcha_site_key, { action: 'submit' }).then(function (token) { 9964 $.post(recaptcha_processor, { 9965 secret: recaptcha_secret_key, 9966 response: token 9967 }) 9968 .done(function (recaptcha) { 9969 prepare_submission(submitted_form, recaptcha).then((val) => { 9970 return submit_form(val.form_submit, val.recaptcha, val.form_data, val.db_only, val.recipients, val.recipients_add, val.ad_recipients, val.cc, val.cc_add, val.subject, val.category, val.is_hipaa, val.reply_to, val.pdf, val.ad_source, val.ad_campaign, val.ad_location, val.ad_source_key, val.ad_campaign_ke
9970y, val.ad_location_key, val.submission_url); 9971 }).then((val) => { 9972 // Done 9973 track_submit(submitted_form); 9974 9975 // Custom Event 9976 dispatch_form_event("tdi:form:success", submitted_form, val); 9977 9978 }); 9979 }) 9980 }); 9981 }); 9982 } 9983 } 9984 else { 9985 if (this.checkValidity()) { 9986 prepare_submission(submitted_form, null).then((val) => { 9987 return submit_form(val.form_submit, val.recaptcha, val.form_data, val.db_only, val.recipients, val.recipients_add, val.ad_recipients, val.cc, val.cc_add, val.subject, val.category, val.is_hipaa, val.reply_to, val.pdf, val.ad_source, val.ad_campaign, val.ad_location, val.ad_source_key, val.ad_campaign_key, val.ad_location_key, val.submission_url); 9988 }).then((val) => { 9989 // Done 9990 track_submit(submitted_form); 9991 9992 // Custom Event 9993 dispatch_form_event("tdi:form:success", submitted_form, val); 9994 9995 }); 9996 } 9997 } 9998 }); 9999 10000 $('form .button.submit[data-dynamic="true"]').click(function () { 10001 if (!form_button_lock && !click_lock) { 10002 click_lock = true; 10003 $(this).closest('form').find('input[type="submit"]')[0].click(); 10004 } 10005 setTimeout(function () { 10006 click_lock = false; 10007 }, 1000); 10008 }); 10009 10010 $('form select[name="location"]').change(function (e) { 10011 $(this).closest('form').find('input[name="date"').val(''); 10012 if ($(this).find(':selected').data('datesDisabled')) { 10013 var $selectedOption = $(this).find(':selected').data('datesDisabled'); 10014 $selectedOption = atob($selectedOption); 10015 10016 $(this).closest('form').find('input[data-toggle="datepicker"]').each(function () { 10017 var disabled = JSON.parse($selectedOption); 10018 $(this).datepicker('destroy'); 10019 $(this).datepicker({ 10020 'autoHide': true, 10021 'filter': function (date, view) { 10022 if (disabled['mon'] == true) { if (date.getDay() === 1 && view === 'day') { return false; } } 10023 if (disabled['tue'] == true) { if (date.getDay() === 2 && view === 'day') { return false; } } 10024 if (disabled['wed'] == true) { if (date.getDay() === 3 && view === 'day') { return false; } } 10025 if (disabled['thu'] == true) { if (date.getDay() === 4 && view === 'day') { return false; } } 10026 if (disabled['fri'] == true) { if (date.getDay() === 5 && view === 'day') { return false; } } 10027 if (disabled['sat'] == true) { if (date.getDay() === 6 && view === 'day') { return false; } } 10028 if (disabled['sun'] == true) { if (date.getDay() === 0 && view === 'day') { return false; } } 10029 } 10030 }); 10031 $(this).datepicker('update'); 10032 }); 10033 } 10034 }); 10035 10036 10037 10038 $('form input[name^="phone"][data-type="text"]').on('input', function () { 10039 var el = this; 10040 var oldValue = el.value; 10041 var selStart = el.selectionStart; 10042 10043 // digits to the left of the caret in the OLD value 10044 var digitsLeft = oldValue.slice(0, selStart).replace(/\D/g, '').length; 10045 10046 var digits = oldValue.replace(/\D/g, ''); 10047 10048 10049 var intl = digits.length > 10; 10050 10051 var formatted; 10052 if (!intl) { 10053 var m = digits.slice(0, 10).match(/^(\d{0,3})(\d{0,3})(\d{0,4})$/); 10054 formatted = !m[2] ? m[1] : '(' + m[1] + ') ' + m[2] + (m[3] ? '-' + m[3] : ''); 10055 } else { 10056 formatted = '+' + digits.slice(0, 15); 10057 } 10058 10059 el.value = formatted; 10060 10061 if (el === document.activeElement) { 10062 var pos = 0, seen = 0; 10063 while (pos < formatted.length && seen < digitsLeft) { 10064 if (/\d/.test(formatted[pos])) seen++; 10065 pos++; 10066 } 10067 el.setSelectionRange(pos, pos); 10068 } 10069 }); 10070 } 10071 } 10072 10073 function prepare_submission(form_submit, recaptcha) { 10074 return new Promise((resolve, reject) => { 10075 console.time('prepare_submission()'); 10076 form_button_lock = true; 10077 $(form_submit).find('.button.submit[data-dynamic="true"]').text('Sending...'); 10078 10079 const appendLocation = $(form_submit).attr('data-append-location') === '1' ? true : false;
10080 const locationSelected = $(form_submit).find('select[name="location"] option:selected') ? $(form_submit).find('select[name="location"] option:selected').text() : null; 10081 10082 var form_data = {}; 10083 var recipients_add = []; 10084 var cc_add = []; 10085 var db_only = $(form_submit).attr('data-db-only'); 10086 var recipients = $(form_submit).attr('data-recipients'); 10087 var ad_recipients = $(form_submit).attr('data-ad-recipients'); 10088 var cc = $(form_submit).attr('data-cc'); 10089 var subject = $(form_submit).attr('data-subject'); 10090 var category = $(form_submit).attr('data-category') + (appendLocation && locationSelected ? ` (${locationSelected})` : ''); 10091 var is_hipaa = $(form_submit).attr('data-hipaa'); 10092 var reply_to = $(form_submit).attr('data-reply-to'); 10093 var pdf = $(form_submit).attr('data-pdf'); 10094 var submission_url = $(form_submit).attr('data-submission-url'); 10095 10096 var ad_source = $(form_submit).find('[data-ad-tracking="source"]').val(); 10097 var ad_campaign = $(form_submit).find('[data-ad-tracking="campaign"]').val(); 10098 var ad_location = $(form_submit).find('[data-ad-tracking="ad_location"]').val(); 10099 10100 var ad_source_key = (get_cookie('source') ? get_cookie('source') : null);
10101 var ad_campaign_key = (get_cookie('campaign') ? get_cookie('campaign') : null); 10102 var ad_location_key = (get_cookie('location') ? get_cookie('location') : null); 10103 10104 $(form_submit).find('input, textarea, select, fieldset').each(function () { 10105 if ( 10106 $(this).is('input:not([type="file"])') && 10107 $(this)[0].hasAttribute('name') && 10108 $(this)[0].hasAttribute('data-email-label') 10109 ) { 10110 value_obj = { 10111 'label': $(this).attr('data-email-label'), 10112 'name': $(this).attr('name'), 10113 'value': $(this).val(), 10114 'type': 'text' 10115 }; 10116 form_data[$(this).attr('name')] = value_obj; 10117 } 10118 10119 if ( 10120 $(this).is('textarea') && 10121 $(this)[0].hasAttribute('name') && 10122 $(this)[0].hasAttribute('data-email-label') 10123 ) { 10124 value_obj = { 10125 'label': $(this).attr('data-email-label'), 10126 'name': $(this).attr('name'), 10127 'value': $(this).val(), 10128 'type': 'textarea' 10129 }; 10130 form_data[$(this).attr('name')] = value_obj; 10131 } 10132 10133 if ( 10134 $(this).is('select') && 10135 $(this)[0].hasAttribute('name') && 10136 $(this)[0].hasAttribute('data-email-label') 10137 ) { 10138 value_obj = { 10139 'label': $(this).attr('data-email-label'), 10140 'name': $(this).attr('name'), 10141 'value': $(this).val(), 10142 'type': 'select' 10143 }; 10144 form_data[$(this).attr('name')] = value_obj; 10145 10146 if ( 10147 $(this).find(':selected').length > 0 && 10148 $(this).find(':selected')[0].hasAttribute('data-recipients') && 10149 $(this).find(':selected').attr('data-recipients').length 10150 ) { 10151 recipients_add.push($(this).find(':selected').attr('data-recipients')); 10152 } 10153 10154 if ( 10155 $(this).find(':selected').length > 0 && 10156 $(this).find(':selected')[0].hasAttribute('data-cc') && 10157 $(this).find(':selected').attr('data-cc').length 10158 ) { 10159 cc_add.push($(this).find(':selected').attr('data-cc')); 10160 } 10161 } 10162 10163 if ( 10164 $(this).is('fieldset') && 10165 $(this)[0].hasAttribute('name') && 10166 $(this)[0].hasAttribute('data-email-label') 10167 ) { 10168 var val = []; 10169 var keys = []; 10170 $(this).find('input:checked').each(function () { 10171 val.push($(this).attr('value')); 10172 keys.push($(this).attr('name')); 10173 }); 10174 value_obj = { 10175 'label': $(this).attr('data-email-label'), 10176 'name': $(this).attr('name'), 10177 'keys': keys.join('; '), 10178 'value': val.join('; '), 10179 'type': $(this).attr('type') 10180 }; 10181 form_data[$(this).attr('name')] = value_obj; 10182 } 10183 }); 10184 10185 console.timeEnd('prepare_submission()'); 10186 console.time('submit_form()'); 10187 resolve({ 10188 "form_submit": form_submit, 10189 "recaptcha": recaptcha, 10190 "form_data": form_data, 10191 "db_only": db_only, 10192 "recipients": recipients, 10193 "recipients_add": recipients_add, 10194 "ad_recipients": ad_recipients, 10195 "cc": cc, 10196 "cc_add": cc_add, 10197 "subject": subject, 10198 "category": category, 10199 "is_hipaa": is_hipaa, 10200 "reply_to": reply_to, 10201 "pdf": pdf, 10202 "ad_source": ad_source, 10203 "ad_campaign": ad_campaign, 10204 "ad_location": ad_location, 10205 "ad_source_key": ad_source_key,
10206 "ad_campaign_key": ad_campaign_key, 10207 "ad_location_key": ad_location_key, 10208 "submission_url": submission_url 10209 }) 10210 }); 10211 } 10212 10213 function submit_form(form_submit, recaptcha, form_data, db_only, recipients, recipients_add, ad_recipients, cc, cc_add, subject, category, is_hipaa, reply_to, pdf, ad_source, ad_campaign, ad_location, ad_source_key, ad_campaign_key, ad_location_key, submission_url) { 10214 return new Promise((resolve, reject) => { 10215 var email_list = []; 10216 var first_name = null; 10217 var last_name = null; 10218 10219 var file_size_total = 0; 10220 var files_uploaded = []; 10221 var files_selected = 0; 10222 10223 if ( 10224 form_submit[0].hasAttribute('data-google-conversion') && 10225 google_conversion 10226 ) { 10227 const conversion_code = $(form_submit[0]).attr('data-google-conversion'); 10228 if (conversion_code.length > 0) { 10229 google_tracking.gtag('event', 'conversion', { 'send_to': conversion_code }); 10230 } 10231 } 10232 10233 if ( 10234 form_submit[0].hasAttribute('data-facebook-conversion') && 10235 facebook_conversion 10236 ) { 10237 const conversion_type = $(form_submit[0]).attr('data-facebook-conversion'); 10238 if (conversion_type.length > 0) { 10239 facebook_tracking.fbq('track', conversion_type); 10240 } 10241 } 10242 10243 $(form_submit).find('input[type="file"]').each(function () { 10244 var file_selected = $(this).val(); 10245 if (file_selected.length > 0) { 10246 files_selected++; 10247 } 10248 }); 10249 10250 $(form_submit).find('input[type="file"]').each(function () { 10251 var file_to_upload = $(this).val(); 10252 var submit_promise = new Promise((res, rej) => { 10253 if (file_to_upload.length > 0) { 10254 var xhr = new XMLHttpRequest(); 10255 var file = $(this).prop('files')[0]; 10256 var formData = new FormData(); 10257 formData.append('file', file); 10258 10259 xhr.onreadystatechange = function () { 10260 if (xhr.readyState == 4) { 10261 files_uploaded.push(xhr.responseText); 10262 res(xhr.responseText); 10263 } 10264 } 10265 10266 xhr.open('POST', '/system/processors/file_upload/processor.php', true); 10267 xhr.send(formData); 10268 } else { 10269 res('') 10270 } 10271 }).then((file) => { 10272 if (file) { 10273 return file; 10274 } else { 10275 return ''; 10276 } 10277 }); 10278 files_uploaded.push(submit_promise); 10279 }); 10280 10281 $(form_submit).find('input[type="email"]').each(function () { 10282 email_list.push($(this).val()); 10283 }); 10284 10285 $(form_submit).find('input[type="text"][data-email-label="First Name"]').each(function () { 10286 first_name = $(this).val(); 10287 }); 10288 10289 $(form_submit).find('input[type="text"][data-email-label="Last Name"]').each(function () { 10290 last_name = $(this).val(); 10291 }); 10292 10293 10294 if ((first_name === null || first_name === '') && (last_name === null || last_name === '')) { 10295 $(form_submit).find('input[type="text"][data-email-label="Full Name"], input[type="text"][data-email-label="Name"]').each(function () { 10296 const full_name = $(this).val(); 10297 first_name = full_name; 10298 }); 10299 } 10300 10301 10302 console.time('POST to processor.php') 10303 $.post('/system/processors/validation/processor.php', { 10304 type: 'date_time', 10305 val: null 10306 }) 10307 .done(function (validation) { 10308 console.timeEnd('POST to processor.php') 10309 console.time('Wait For Files') 10310 10311 Promise.all(files_uploaded).then((value) => { 10312 console.timeEnd('Wait For Files') 10313 let uploaded_files = value.filter(file => file); 10314 console.log(JSON.stringify(uploaded_files)); 10315 console.log('Files Uploaded'); 10316 console.time('POST to submission_url') 10317 $.post(submission_url, { 10318 validation: validation, 10319 db_only: db_only, 10320 recipients: recipients, 10321 recipients_add: JSON.stringify(recipients_add), 10322 ad_recipients: ad_recipients, 10323 recaptcha: recaptcha, 10324 cc: cc, 10325 cc_add: JSON.stringify(cc_add), 10326 subject: subject, 10327 category: category, 10328 first_name: first_name, 10329 last_name: last_name, 10330 is_hipaa: is_hipaa, 10331 reply_to: reply_to, 10332 pdf: pdf, 10333 ad_source: ad_source, 10334 ad_campaign: ad_campaign, 10335 ad_location: ad_location, 10336 ad_source_key: ad_source_key,
10337 ad_campaign_key: ad_campaign_key, 10338 ad_location_key: ad_location_key, 10339 files: JSON.stringify(uploaded_files), 10340 data: JSON.stringify(form_data), 10341 email_list: JSON.stringify(email_list) 10342 }) 10343 .done(function (data) { 10344 console.timeEnd('POST to submission_url') 10345 10346 form_button_lock = false; 10347 form_submit[0].reset(); 10348 $(form_submit).find('.remove_file').click(); 10349 $('form .button.submit[data-dynamic="true"]').each(function () { 10350 var placeholder = $(this).attr('placeholder'); 10351 $(this).text(placeholder); 10352 }); 10353 10354 if ($(form_submit).attr('data-action') !== '') { 10355 var action = $(form_submit).attr('data-action'); 10356 10357 if (action == 'close_lightbox') { 10358 close_lightbox(); 10359 } 10360 10361 if (action == 'redirect') { 10362 var redirect = $(form_submit).attr('data-confirmation'); 10363 window.location.replace(redirect); 10364 } 10365 10366 if (action == 'function') { 10367 var form_complete_function = $(form_submit).attr('data-confirmation'); 10368 window[form_complete_function](form_data); 10369 } 10370 10371 if (action == 'none') { } 10372 } 10373 else { 10374 var confirmation = $(form_submit).children('section[data-type="system-lightbox-content"]'); 10375 $(confirmation).clone().appendTo('section[data-type="system-lightbox-container"]'); 10376 open_lightbox(); 10377 } 10378 resolve(false); 10379 }); 10380 }); 10381 }); 10382 }); 10383 } 10384 10385 function get_viewport_size() { 10386 viewport_size = viewport(); 10387 $('body').attr('data-width', viewport_size.width); 10388 $('body').attr('data-height', viewport_size.height); 10389 } 10390 10391 function viewport() { 10392 var e = window, a = 'inner'; 10393 if (!('innerWidth' in window)) { 10394 a = 'client'; 10395 e = document.documentElement || document.body; 10396 } 10397 return { width: e[a + 'Width'], height: e[a + 'Height'] }; 10398 } 10399 10400 function set_tracking() { 10401 const url_parameters = new URLSearchParams(window.location.search); 10402 const source = url_parameters.get('source'); 10403 const campaign = url_parameters.get('campaign'); 10404 const location = url_parameters.get('location'); 10405 10406 if (source) { 10407 set_cookie('source', source, 90, null); 10408 } 10409 10410 if (campaign) { 10411 set_cookie('campaign', campaign, 90, null); 10412 } 10413 10414 if (location) { 10415 set_cookie('location', location, 90, null); 10416 } 10417 } 10418 10419 function load_functions() { 10420 javascript.load.forEach(function (v) { 10421 javascript.prototype[v](); 10422 }); 10423 } 10424 10425 function load_fa() { 10426 /* $.getScript('https://kit.fontawesome.com/10cd9403cd.js'); */ 10427 } 10428 10429 function load_default_subs() { 10430 $('video:not(.no_subs)').each(function () { 10431 var found_video = $(this); 10432 10433 if ($(this).find('source').length) { 10434 var video_source = $(this).find('source').attr('src').split('/').pop(); 10435 } 10436 else { 10437 var video_source = $(this).attr('src').split('/').pop(); 10438 } 10439 10440 $.get('/custom/content/subs/' + video_source + '.vtt', function (data) { 10441 if (data === 'Error') { 10442 $('<track/>') 10443 .attr('label', 'English') 10444 .attr('kind', 'subtitles') 10445 .attr('srclang', 'en') 10446 .attr('src', '/system/content/subs/no_audio.vtt') 10447 .appendTo(found_video); 10448 } 10449 else { 10450 $('<track/>') 10451 .attr('label', 'English') 10452 .attr('kind', 'subtitles') 10453 .attr('srclang', 'en') 10454 .attr('src', '/custom/content/subs/' + video_source + '.vtt') 10455 .appendTo(found_video); 10456 } 10457 }) 10458 .fail(function (data) { 10459 $('<track/>') 10460 .attr('label', 'English') 10461 .attr('kind', 'subtitles') 10462 .attr('srclang', 'en') 10463 .attr('src', '/system/content/subs/no_audio.vtt') 10464 .appendTo(found_video); 10465 }); 10466 }); 10467 } 10468 10469 function stalling(ms) { 10470 return setTimeout(() => { 10471 }, ms); 10472 } 10473 10474 function initialize() { 10475 console.log('Initializing...'); 10476 window_width = $(window).width(); 10477 window_height = $(window).height(); 10478 get_viewport_size(); 10479 viewport_size = viewport(); 10480 update_deferred_images(); 10481 set_resize_listeners(); 10482 set_scroll_listeners(); 10483 set_accordion_listeners(); 10484 form_actions(); 10485 set_tracking(); 10486 load_functions(); 10487 load_fa(); 10488 load_default_subs(); 10489 10490 track_load(); 10491 deferred_websocket(); 10492 lazy_load_deferred_images(); 10493 10494 // Add Tracking to each button 10495 const selection = document.querySelectorAll('section[class^="section_"], #di-consent-banner, #di-cookie-pref-dialog'); 10496 for (var i = 0; i < selection.length; i++) { 10497 var found_buttons = selection[i].querySelectorAll("a[href], [data-click-tracking]:not(a[href]), button:not(a[href])"); 10498 found_buttons = Array.from(new Set(found_buttons)); 10499 found_buttons.forEach(element => { 10500 element.addEventListener('click', function (e) { 10501 var stall = false;
10502 if (this.tagName === 'A' && this.getAttribute('href') !== '#') { 10503 stall = stalling(500); 10504 } 10505 10506 track_click(this).then(() => { 10507 if (stall !== false) { 10508 clearTimeout(stall); 10509 } 10510 }) 10511 }) 10512 }); 10513 } 10514 } 10515 10516 $(document).ready(initialize); 10517</script>
10517 10518 10519
10519<script> 10520 // Override any default global variables from SYSTEM_JS 10521 (function() { 10522 var overrides = { 10523 }; 10524 10525 // Apply overrides to global scope 10526 for (var key in overrides) { 10527 if (overrides.hasOwnProperty(key)) { 10528 window[key] = overrides[key]; 10529 } 10530 } 10531 })(); 10532 </script>
10532 10533 10534
10534<script src="https://api.aleso.ai/aleso.js" async></script>
10534 10535 </body> 10536 </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.