1<!DOCTYPE html> 2<html lang="en"> 3 <head> 4 <title></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=""> 9<meta property="og:url" content=""> 10<meta property="og:type" content=""> 11<meta property="og:description" content=""> 12<meta property="og:image" content=""> 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=G-2ZD2LPEQ4S'); 2111 window.dataLayer = window.dataLayer || []; 2112 google_tracking.gtag('js', new Date()); 2113 google_tracking.gtag('config', 'G-2ZD2LPEQ4S'); 2114 } 2115 javascript_deferred.prototype[get_deferred_id()] = function() { 2116 $.getScript('https://www.googletagmanager.com/gtag/js?id=G-65ED0KWQ5Y'); 2117 window.dataLayer = window.dataLayer || []; 2118 google_tracking.gtag('js', new Date()); 2119 google_tracking.gtag('config', 'G-65ED0KWQ5Y'); 2120 } 2121 javascript_deferred.prototype[get_deferred_id()] = function() { 2122 $.getScript('https://www.googletagmanager.com/gtag/js?id=G-6BRP1GT1L6'); 2123 window.dataLayer = window.dataLayer || []; 2124 google_tracking.gtag('js', new Date()); 2125 google_tracking.gtag('config', 'G-6BRP1GT1L6'); 2126 } 2127 javascript_deferred.prototype[get_deferred_id()] = function() { 2128 $.getScript('https://apps.elfsight.com/p/platform.js'); 2129 } 2130 javascript_deferred.prototype[get_deferred_id()] = function() { 2131 $.getScript('https://www.instagram.com/embed.js'); 2132 } 2133 2134 javascript_deferred.prototype[get_deferred_id()] = function() { 2135 !function(){var geq=window.geq=window.geq||[];if(geq.initialize) return;if (geq.invoked){if (window.console && console.error) {console.error("GE snippet included twice.");}return;}geq.invoked = true;geq.methods = ["page", "suppress", "trackOrder", "identify", "addToCart", "callBack", "event"];geq.factory = function(method){return function(){var args = Array.prototype.slice.call(arguments);args.unshift(method);geq.push(args);return geq;};};for (var i = 0; i < geq.methods.length; i++) {var key = geq.methods[i];geq[key] = geq.factory(key);} geq.load = function(key){var script = document.createElement("script");script.type = "text/javascript";script.async = true; if (location.href.includes("vge=true")) {script.src = "https://s3-us-west-2.amazonaws.com/jsstore/a/" + key + "/ge.js?v=" + Math.random();} else {script.src = "https://s3-us-west-2.amazonaws.com/jsstore/a/" + key + "/ge.js";} var first = document.getElementsByTagName("script")[0];first.parentNode.insertBefore(script, first);};geq.SNIPPET_VERSION = "1.6.1"; 2136 geq.load("020H7WR");}(); 2137 } 2138 javascript_deferred.prototype[get_deferred_id()] = function() { 2139 geq.page(); 2140 } 2141 javascript_deferred.prototype[get_deferred_id()] = function() { 2142 $.getScript('https://tag.pearldiver.io/ldc.js?pid=ba73cbbc01f1737685584857e5bd1010&aid=16de03f2'); 2143 } 2144 2145 javascript_deferred.prototype[get_deferred_id()] = function() {
vendor: 417 bytes, lines 2145-2154
2145 2146 !function(f,b,e,v,n,t,s) 2147 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 2148 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 2149 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 2150 n.queue=[];t=b.createElement(e);t.async=!0; 2151 t.src=v;s=b.getElementsByTagName(e)[0]; 2152 s.parentNode.insertBefore(t,s)}(window, document,'script', 2153 'https://connect.facebook.net/en_US/fbevents.js'); 2154 fbq('init', '
2154992356092447547
vendor: 33 bytes, lines 2154-2156
2154'); 2155 fbq('track', 'PageView'); 2156
2156} 2157 javascript_deferred.prototype[get_deferred_id()] = function() {
vendor: 338 bytes, lines 2157-2162
2157 2158 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 2159 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 2160 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 2161 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 2162 })(window,document,'script','dataLayer','
2162GTM-NRC5KRSQ
vendor: 5 bytes, lines 2162-2163
2162'); 2163
2163} 2164 2165</script>
vendor: 1 bytes, line 2165
2165
2166<script> 2167 javascript_deferred.prototype[get_deferred_id()] = function() { 2168 !function() { var t; if (t = window.webbot = window.webbot = window.webbot || [], !t.init) return t.invoked ? void (window.console && console.error && console.error("Snippet included twice.")) : ( t.load =function(e){ var o,n; o=document.createElement("script"); e.type="text/javscript"; o.async=!0; o.crossorigin="anonymous"; o.src="https://chat.doctorsinternet.com/web-bot/script/frame/"+e+"/webbot.js"; n=document.getElementsByTagName("script")[0]; n.parentNode.insertBefore(o,n); }); }(); webbot.load('JbpDlnQU4ZuRPE9ierkI7YUypPt8OQ8a0tT1bjb8'); 2169 } 2170</script>
2170 2171 2172 <link rel="canonical" href="https://iconicdentalarts.com/blog/"> 2173 2174 <meta name="description" content=""> 2175 <meta name="keywords" content=""> 2176
2176<script type="application/ld+json"></script>
2176 2177 <style>body { 2178 border: 0px; 2179 padding: 0px; 2180 margin: 0px; 2181 font-family: "arial"; 2182 font-size: 16px; 2183 letter-spacing: 0.25px; 2184 word-spacing: 0.5px; 2185 font-weight: normal; 2186 background: white; 2187 box-sizing: border-box; 2188 width: 100%; 2189 height: 100%; 2190 -webkit-tap-highlight-color: rgba(0,0,0,0); 2191 text-rendering: optimizeSpeed !important; 2192 display: flex; 2193 flex-wrap: wrap; 2194} 2195body::after { 2196 content: ''; 2197 clear: both; 2198 visibility: hidden; 2199 display: block; 2200} 2201@media (max-width: 360px) { 2202 body { 2203 overflow-x: hidden; 2204 } 2205} 2206body > section { 2207 float: left; 2208 width: 100%; 2209 position: relative; 2210 z-index: 10; 2211 box-sizing: border-box; 2212 display: inline-block; 2213 flex-basis: 100%; 2214} 2215body a { 2216 text-decoration: none; 2217 color: inherit; 2218 transition: color 0.4s; 2219} 2220body a:hover { 2221 color: #0a82d2; 2222} 2223body a svg { 2224 pointer-events: none; 2225} 2226body p { 2227 margin: 1rem 0px; 2228 line-height: 1.6rem; 2229} 2230body img { 2231 max-width: 100%; 2232 max-height: 100%; 2233 image-rendering: -webkit-optimize-contrast; 2234} 2235body picture { 2236 max-width: 100%; 2237 max-height: 100%; 2238} 2239body h1, 2240body h2, 2241body h3, 2242body h4, 2243body h5, 2244body h6 { 2245 margin: 1rem 0px; 2246} 2247body h1 { 2248 font-size: 5rem; 2249} 2250body h2 { 2251 font-size: 4rem; 2252} 2253body h3 { 2254 font-size: 3rem; 2255} 2256body h4 { 2257 font-size: 2rem; 2258} 2259body h5, 2260body h6 { 2261 font-size: 1rem; 2262} 2263body sup { 2264 font-size: 0.75rem; 2265 line-height: 0px; 2266} 2267body li { 2268 line-height: 1.6rem; 2269} 2270body iframe { 2271 width: 100%; 2272 margin: 0px; 2273 padding: 0px; 2274 border: 0px; 2275} 2276body iframe:not([height]) { 2277 height: 100%; 2278} 2279body picture { 2280 max-width: 100%; 2281 max-height: 100%; 2282} 2283body .button { 2284 padding: 20px 40px; 2285 display: inline-block; 2286 cursor: pointer; 2287 transition: background 0.4s, color 0.4s; 2288 margin: 1rem 0px; 2289 text-align: center; 2290 line-height: 1.6rem; 2291 box-sizing: border-box; 2292} 2293@media (max-width: 640px) { 2294 body .button { 2295 padding: 20px; 2296 } 2297} 2298body .float-left { 2299 float: left; 2300} 2301body .float-right { 2302 float: right; 2303} 2304body .position-center { 2305 display: inline-block; 2306 position: relative; 2307 left: 50%; 2308 transform: translate(-50%); 2309} 2310body .clear { 2311 clear: both; 2312} 2313body .inline-block { 2314 display: inline-block; 2315} 2316body .flex { 2317 display: flex; 2318} 2319body .background_container { 2320 position: relative; 2321 overflow: hidden; 2322} 2323body .background_container .background_image { 2324 position: absolute; 2325 min-width: 100%; 2326 min-height: 100%; 2327 transform: translate(-50%,-50%); 2328 left: 50%; 2329 top: 50%; 2330 object-fit: cover; 2331 height: inherit; 2332 width: 100%; 2333 height: 100%; 2334} 2335body .background_container .background_image * { 2336 width: 100%; 2337 object-fit: cover; 2338 object-position: inherit; 2339 height: inherit; 2340} 2341body section[data-type="system-lightbox-container"] { 2342 position: fixed; 2343 width: 100%; 2344 height: 100%; 2345 top: 0px; 2346 left: 0px; 2347 z-index: 99999; 2348 display: flex; 2349 opacity: 0; 2350 pointer-events: none; 2351 transition: opacity 0.4s; 2352 -webkit-user-select: none; 2353 -moz-user-select: none; 2354 -ms-user-select: none; 2355 user-select: none; 2356} 2357body section[data-type="system-lightbox-container"].show { 2358 opacity: 1; 2359 pointer-events: initial; 2360} 2361body section[data-module="ad_tracking"] { 2362 display: none; 2363} 2364body form input[type="submit"] { 2365 display: none; 2366} 2367body form section[data-type="system-lightbox-content"] { 2368 display: none; 2369} 2370body form [data-hidden="1"] { 2371 display: none; 2372} 2373body form input[type="file"] { 2374 display: none; 2375} 2376body form div[data-container="file"] { 2377 margin: 5px; 2378 transition: opacity 0.4s; 2379} 2380body form div[data-container="file"].disabled { 2381 opacity: 0.2; 2382 pointer-events: none; 2383} 2384body form [data-container="file"] label { 2385 display: inline-block; 2386 cursor: pointer; 2387 line-height: 1.6rem; 2388 box-sizing: border-box; 2389 border-radius: 3px; 2390 transition: all .75s ease; 2391 background-size: 500% 500%; 2392 background-position: -2px -2px; 2393 padding: 20px 40px; 2394 color: white; 2395 position: relative; 2396} 2397body form [data-container="file"] label:hover { 2398 background-position: bottom right; 2399} 2400body form [data-container="file"] label .remove_file { 2401 position: absolute; 2402 top: -5px; 2403 left: -5px; 2404 width: 24px; 2405 height: 24px; 2406 background-color: white; 2407 border-radius: 50%; 2408 display: flex; 2409 justify-content: center; 2410 align-items: center; 2411 color: black; 2412 box-shadow: 1px 1px 5px rgba(0,0,0,0.4); 2413 font-size: 1rem; 2414} 2415body form div[data-group="file"] { 2416 display: flex; 2417 flex: 0 0 auto; 2418 width: calc(100% - 20px); 2419 margin: 10px 10px; 2420 flex-wrap: wrap; 2421 justify-content: center; 2422 user-select: none; 2423 transition: opacity 0.4s; 2424} 2425body form div[data-group="file"] > div { 2426 display: flex; 2427 flex-wrap: wrap; 2428 justify-content: center; 2429} 2430body form div[data-group="file"] .max_size_container { 2431 width: 100%; 2432 display: flex; 2433 justify-content: center; 2434 padding: 10px 20px; 2435 box-sizing: border-box; 2436 border: 3px solid #fbfbfb; 2437 border-radius: 3px; 2438 transition: background-color 0.4s, border 0.4s; 2439 margin-top: 20px; 2440} 2441body form div[data-group="file"] .max_size_container .size_divider { 2442 display: inline-block; 2443 margin: 0px 5px; 2444} 2445body form div[data-group="file"] .max_size_container .current_size_warning { 2446 display: none; 2447 margin-right: 10px; 2448 font-size: 24px; 2449} 2450body form div[data-group="file"] .max_size_container .current_size_ok { 2451 display: inline-block; 2452 margin-right: 10px; 2453 font-size: 24px; 2454} 2455body form div[data-group="file"] .too_large { 2456 color: #c40000; 2457 font-weight: bold; 2458 box-sizing: border-box; 2459 border: 3px solid #c40000; 2460 background-color: #c40000; 2461 color: white; 2462} 2463body form div[data-group="file"] .too_large .current_size_warning { 2464 display: inline-block; 2465} 2466body form div[data-group="file"] .too_large .current_size_ok { 2467 display: none; 2468} 2469body form [data-type='submit'].disabled { 2470 opacity: 0.2; 2471 pointer-events: none; 2472} 2473body form[action="https://maps.google.com/maps"] input[type="submit"] { 2474 display: initial; 2475 padding: 5px 10px; 2476 font-size: 1rem; 2477 box-sizing: border-box; 2478 border: 1px solid grey; 2479}
2480body form[action="https://maps.google.com/maps"] input#saddr { 2481 border: 1px solid grey; 2482 margin: 0px 10px; 2483 font-size: 1rem; 2484 padding: 5px 10px; 2485 box-sizing: border-box; 2486} 2487body .ui-widget.ui-widget-content { 2488 border: 0px; 2489} 2490body .ui-datepicker-flex { 2491 display: flex !important; 2492 background-color: rgba(0,0,0,0.95); 2493 position: fixed !important; 2494 top: 0px !important; 2495 left: 0px !important; 2496 z-index: 1000 !important; 2497 width: 100%; 2498 height: 100%; 2499 color: white; 2500 display: none; 2501 flex-direction: column; 2502 justify-content: center; 2503 align-items: center; 2504} 2505body .ui-datepicker-flex th, 2506body .ui-datepicker-flex td { 2507 width: 50px; 2508 height: 50px; 2509 box-sizing: border-box; 2510 text-align: center; 2511 font-size: 1.25rem; 2512 padding: 0px; 2513} 2514body .ui-datepicker-flex th a, 2515body .ui-datepicker-flex td a { 2516 padding: 0px; 2517} 2518@media (max-width: 320px) { 2519 body .ui-datepicker-flex th, 2520 body .ui-datepicker-flex td { 2521 width: 40px; 2522 height: 40px; 2523 font-size: 1rem; 2524 } 2525} 2526body .ui-datepicker-flex .ui-datepicker-header { 2527 display: flex; 2528 justify-content: center; 2529 width: 350px; 2530 border: 0px; 2531 border-bottom: 1px solid white; 2532 border-radius: 0px; 2533 background: initial; 2534 color: white; 2535} 2536body .ui-datepicker-flex .ui-datepicker-header .ui-datepicker-prev { 2537 order: 0; 2538} 2539body .ui-datepicker-flex .ui-datepicker-header .ui-datepicker-title { 2540 order: 1; 2541} 2542body .ui-datepicker-flex .ui-datepicker-header .ui-datepicker-next { 2543 order: 2; 2544} 2545body .ui-datepicker-flex .ui-widget-header .ui-state-hover { 2546 background: white; 2547 border-radius: 0px; 2548} 2549body .ui-datepicker-flex .ui-datepicker-calendar { 2550 width: 350px; 2551} 2552body .ui-datepicker-flex .ui-datepicker-calendar .ui-state-default { 2553 background: initial; 2554 color: white; 2555 border: 0px; 2556 text-align: center; 2557} 2558body .ui-datepicker-flex .ui-datepicker-calendar .ui-datepicker-current-day { 2559 background-color: white; 2560 border-radius: 50%; 2561} 2562body .ui-datepicker-flex .ui-datepicker-calendar .ui-datepicker-current-day a { 2563 color: black; 2564} 2565body .sidebar[data-sidebar="false"] { 2566 display: none; 2567} 2568body .sidebar[data-sidebar="true"] { 2569 flex-basis: 280px; 2570 width: 100%; 2571 flex-grow: 1; 2572 flex-shrink: 0; 2573 margin-left: 40px; 2574 box-sizing: border-box; 2575} 2576body .sidebar[data-sidebar="true"] img, 2577body .sidebar[data-sidebar="true"] picture { 2578 border-radius: 5px; 2579} 2580body .sidebar[data-sidebar="true"] > .label { 2581 font-size: 1.25rem; 2582 margin: 1.5rem 0px 0.5rem; 2583 border-bottom: 1px solid #ececec; 2584 padding-bottom: 0.5rem; 2585} 2586body .sidebar[data-sidebar="true"] div[data-sidebar="address_all"] { 2587 padding: 1rem 0rem; 2588} 2589body .sidebar[data-sidebar="true"] div[data-sidebar="address_all"] > div { 2590 line-height: 1.6rem; 2591} 2592body .sidebar[data-sidebar="true"] div[data-sidebar="address_current"] { 2593 padding: 1rem 0rem; 2594} 2595body .sidebar[data-sidebar="true"] div[data-sidebar="address_current"] > div { 2596 line-height: 1.6rem; 2597} 2598body .sidebar[data-sidebar="true"] div[data-sidebar="social_current"], 2599body .sidebar[data-sidebar="true"] div[data-micro-template="social_icons_dynamic"] { 2600 display: flex; 2601} 2602body .sidebar[data-sidebar="true"] div[data-sidebar="social_current"] div.title, 2603body .sidebar[data-sidebar="true"] div[data-micro-template="social_icons_dynamic"] div.title { 2604 margin-bottom: 10px; 2605} 2606body .sidebar[data-sidebar="true"] div[data-sidebar="social_current"] div[data-micro-template="social_icons"], 2607body .sidebar[data-sidebar="true"] div[data-micro-template="social_icons_dynamic"] div[data-micro-template="social_icons"] { 2608 display: flex; 2609 width: 50px; 2610 height: 50px; 2611} 2612body .sidebar[data-sidebar="true"] div[data-sidebar="social_current"] div[data-micro-template="social_icons"] a, 2613body .sidebar[data-sidebar="true"] div[data-micro-template="social_icons_dynamic"] div[data-micro-template="social_icons"] a { 2614 font-size: 1.6rem; 2615 display: flex; 2616 width: 100%; 2617 height: 100%; 2618 justify-content: center; 2619 align-items: center; 2620} 2621body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours"], 2622body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours_dynamic"] { 2623 display: flex; 2624 flex-direction: row; 2625 flex-wrap: wrap; 2626 padding: 1rem 0px; 2627} 2628body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours"] > div.title, 2629body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours_dynamic"] > div.title { 2630 margin-bottom: 10px; 2631} 2632body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours"] .row, 2633body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours_dynamic"] .row { 2634 display: flex; 2635 flex: 1 0 100%; 2636} 2637body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours"] .row .day, 2638body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours_dynamic"] .row .day { 2639 flex: 1 0 40%; 2640 line-height: 1.6rem; 2641} 2642body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours"] .row .time, 2643body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours_dynamic"] .row .time { 2644 flex: 1 0 60%; 2645 text-align: right; 2646 line-height: 1.6rem; 2647} 2648body .sidebar[data-sidebar="true"] div[data-sidebar="blogs_by_year"] { 2649 padding: 1rem 20px; 2650} 2651body .sidebar[data-sidebar="true"] div[data-sidebar="blogs_by_year"] ul { 2652 list-style: initial; 2653 margin: initial; 2654 padding: initial; 2655} 2656body .sidebar[data-sidebar="true"] div[data-sidebar="blogs_by_year"] ul li:not(:last-of-type) { 2657 margin-bottom: 10px; 2658} 2659body .sidebar[data-sidebar="true"] div[data-sidebar="related_blogs"] { 2660 padding: 1rem 20px; 2661} 2662body .sidebar[data-sidebar="true"] div[data-sidebar="related_blogs"] ul { 2663 list-style: initial; 2664 margin: initial; 2665 padding: initial; 2666} 2667body .sidebar[data-sidebar="true"] div[data-sidebar="related_blogs"] ul li:not(:last-of-type) { 2668 margin-bottom: 10px; 2669} 2670@media (max-width: 920px) { 2671 body .sidebar[data-sidebar="true"] { 2672 flex-basis: 100%; 2673 max-width: 100%; 2674 margin-left: 0px; 2675 margin-top: 1rem; 2676 justify-content: center; 2677 text-align: center; 2678 } 2679 body .sidebar[data-sidebar="true"] div[data-sidebar] { 2680 justify-content: center; 2681 } 2682 body .sidebar[data-sidebar="true"] div[data-sidebar="related_blogs"] ul, 2683 body .sidebar[data-sidebar="true"] div[data-sidebar="blogs_by_year"] ul { 2684 list-style: none; 2685 } 2686 body .sidebar[data-sidebar="true"] div[data-sidebar="related_blogs"] ul, 2687 body .sidebar[data-sidebar="true"] div[data-sidebar="blogs_by_year"] ul { 2688 list-style: none; 2689 } 2690 body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours"] .row .day, 2691 body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours_dynamic"] .row .day { 2692 padding-right: 10px; 2693 box-sizing: border-box; 2694 flex: 1 0 50%; 2695 text-align: right; 2696 } 2697 body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours"] .row .time, 2698 body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours_dynamic"] .row .time { 2699 padding-left: 10px; 2700 box-sizing: border-box; 2701 flex: 1 0 50%; 2702 text-align: left; 2703 } 2704} 2705@media (max-width: 920px) and (max-width: 360px) { 2706 body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours"] .row .day, 2707 body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours_dynamic"] .row .day { 2708 flex: 1 0 40%; 2709 } 2710 body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours"] .row .time, 2711 body .sidebar[data-sidebar="true"] div[data-micro-template="office_hours_dynamic"] .row .time { 2712 flex: 1 0 60%; 2713 } 2714} 2715@media (max-width: 1080px) { 2716 body section[data-module="blog_content"] .content_container,
2717 body section[data-module="article_content"] .content_container { 2718 flex-wrap: wrap; 2719 } 2720} 2721@media (max-width: 920px) { 2722 body section[data-module="dynamic_content"] .content_container, 2723 body section[data-module="interior_content"] .content_container { 2724 flex-wrap: wrap; 2725 } 2726} 2727</style> 2728 <link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin=""><link href="https://fonts.googleapis.com/css?family=Montserrat:100,200,300,400,500&display=swap" rel="preload" as="style" onload="this.rel='stylesheet'"><link href="https://fonts.googleapis.com/css?family=Quicksand&display=swap" rel="preload" as="style" onload="this.rel='stylesheet'"><link href="https://fonts.googleapis.com/css?family=Poppins:100,200,300,400,500&display=swap" rel="preload" as="style" onload="this.rel='stylesheet'"></head> 2729 <body data-template-group="blog_list"> 2730 <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=992356092447547&ev=PageView&noscript=1" data-lazy-img="true" data-src="" alt="Iconic Dental Arts"></noscript> 2731 2732<!-- Google Tag Manager (noscript) --> 2733<noscript><iframe src="" height="0" width="0" style="display:none;visibility:hidden" data-src="https://www.googletagmanager.com/ns.html?id=GTM-NRC5KRSQ" aria-label="iframe"></iframe></noscript> 2734 <!-- End Google Tag Manager (noscript) --><style>body { 2735 background: #fff; 2736 color: #1A1A1A; 2737 font-family: "Montserrat"; 2738} 2739body a { 2740 color: #AB7F29; 2741} 2742body a:hover { 2743 color: #00FFFF; 2744} 2745body h1 { 2746 font-family: "Montserrat"; 2747} 2748body h2 { 2749 font-family: "Montserrat"; 2750} 2751body h3 { 2752 font-family: "Montserrat"; 2753} 2754body h1, 2755body h2, 2756body h3, 2757body h4, 2758body h5, 2759body h6 { 2760 color: #1A1A1A; 2761 font-weight: bold; 2762} 2763body input, 2764body textarea { 2765 font-family: "Montserrat"; 2766 border: 0px; 2767 border-radius: 0; 2768} 2769body input[type="text"], 2770body textarea { 2771 -webkit-appearance: none; 2772} 2773body .button { 2774 background: #1A1A1A; 2775 color: #1A1A1A; 2776 font-size: 16px; 2777} 2778body .button:hover { 2779 background: #00cccc; 2780 color: #1A1A1A; 2781} 2782body .text_background { 2783 color: #fff; 2784} 2785body .text_primary { 2786 color: #1A1A1A; 2787} 2788body .text_secondary { 2789 color: #00FFFF; 2790} 2791body .text_tertiary { 2792 color: #AB7F29; 2793} 2794body .background_background { 2795 background: #fff; 2796} 2797body .background_primary { 2798 background: #1A1A1A; 2799} 2800body .background_secondary { 2801 background: #00FFFF; 2802} 2803body .background_tertiary { 2804 background: #AB7F29; 2805} 2806body .item_float_right { 2807 float: right; 2808 margin: 0 0 15px 15px; 2809} 2810@media (max-width: 480px) { 2811 body .item_float_right { 2812 float: none; 2813 margin: 0 auto 10px; 2814 } 2815} 2816body .item_float_left { 2817 float: left; 2818 margin: 0 15px 15px 0; 2819} 2820@media (max-width: 480px) { 2821 body .item_float_left { 2822 float: none; 2823 margin: 0 auto 10px; 2824 } 2825} 2826body .margin_center { 2827 margin: 0 auto; 2828} 2829body .margin_left { 2830 margin: 0 auto 0 0; 2831} 2832body .margin_right { 2833 margin: 0 0 0 auto; 2834} 2835body .margin_bottom { 2836 margin: auto 0 0 0; 2837} 2838body .margin_top { 2839 margin: 0 0 auto 0; 2840} 2841body .sys_flex_container { 2842 display: flex; 2843 gap: 20px; 2844} 2845body .sys_flex_container.flex_wrap { 2846 flex-wrap: wrap; 2847} 2848@media (max-width: 1024px) { 2849 body .sys_flex_container.flex_wrap_tablet { 2850 flex-wrap: wrap; 2851 } 2852} 2853@media (max-width: 768px) { 2854 body .sys_flex_container.flex_wrap_phablet { 2855 flex-wrap: wrap; 2856 } 2857} 2858@media (max-width: 480px) { 2859 body .sys_flex_container.flex_wrap_phone { 2860 flex-wrap: wrap; 2861 } 2862} 2863body .sys_flex_container.justify_center { 2864 justify-content: center; 2865} 2866body .sys_flex_container.justify_start { 2867 justify-content: flex-start; 2868} 2869body .sys_flex_container.justify_end { 2870 justify-content: flex-end; 2871} 2872body .sys_flex_container.justify_around { 2873 justify-content: space-around; 2874} 2875body .sys_flex_container.justify_between { 2876 justify-content: space-between; 2877} 2878body .sys_flex_container.align_center { 2879 align-items: center; 2880} 2881body .sys_flex_container.align_start { 2882 align-items: flex-start; 2883} 2884body .sys_flex_container.align_end { 2885 align-items: flex-end; 2886} 2887body .sys_flex_container.align_stretch { 2888 align-items: stretch; 2889} 2890body .sys_flex_container > .full_width { 2891 flex-basis: 100%; 2892} 2893@media (max-width: 1024px) { 2894 body .sys_flex_container > .full_width_tablet { 2895 flex-basis: 100%; 2896 } 2897} 2898@media (max-width: 768px) { 2899 body .sys_flex_container > .full_width_phablet { 2900 flex-basis: 100%; 2901 } 2902} 2903@media (max-width: 480px) { 2904 body .sys_flex_container > .full_width_phone { 2905 flex-basis: 100%; 2906 } 2907} 2908body .sys_flex_container.flex_column { 2909 flex-direction: column; 2910} 2911@media (max-width: 1024px) { 2912 body .sys_flex_container.flex_column_tablet { 2913 flex-direction: column; 2914 } 2915} 2916@media (max-width: 768px) { 2917 body .sys_flex_container.flex_column_phablet { 2918 flex-direction: column; 2919 } 2920} 2921@media (max-width: 480px) { 2922 body .sys_flex_container.flex_column_phone { 2923 flex-direction: column; 2924 } 2925} 2926body .sys_grid_container { 2927 display: grid; 2928 gap: 20px; 2929} 2930body .sys_grid_container.two_wide { 2931 grid-template-columns: repeat(2,1fr); 2932} 2933body .sys_grid_container.three_wide { 2934 grid-template-columns: repeat(3,1fr); 2935} 2936body .sys_grid_container.four_wide { 2937 grid-template-columns: repeat(4,1fr); 2938} 2939body .sys_grid_container.five_wide { 2940 grid-template-columns: repeat(5,1fr); 2941} 2942@media (max-width: 1024px) { 2943 body .sys_grid_container.one_wide_tablet { 2944 grid-template-columns: repeat(1,1fr); 2945 } 2946} 2947@media (max-width: 1024px) { 2948 body .sys_grid_container.two_wide_tablet { 2949 grid-template-columns: repeat(2,1fr); 2950 } 2951} 2952@media (max-width: 1024px) { 2953 body .sys_grid_container.three_wide_tablet { 2954 grid-template-columns: repeat(3,1fr); 2955 } 2956} 2957@media (max-width: 1024px) { 2958 body .sys_grid_container.four_wide_tablet { 2959 grid-template-columns: repeat(4,1fr); 2960 } 2961} 2962@media (max-width: 1024px) { 2963 body .sys_grid_container.five_wide_tablet { 2964 grid-template-columns: repeat(5,1fr); 2965 } 2966} 2967@media (max-width: 768px) { 2968 body .sys_grid_container.one_wide_phablet { 2969 grid-template-columns: repeat(1,1fr); 2970 } 2971} 2972@media (max-width: 768px) { 2973 body .sys_grid_container.two_wide_phablet { 2974 grid-template-columns: repeat(2,1fr); 2975 } 2976} 2977@media (max-width: 768px) { 2978 body .sys_grid_container.three_wide_phablet { 2979 grid-template-columns: repeat(3,1fr); 2980 } 2981} 2982@media (max-width: 768px) { 2983 body .sys_grid_container.four_wide_phablet { 2984 grid-template-columns: repeat(4,1fr); 2985 } 2986} 2987@media (max-width: 768px) { 2988 body .sys_grid_container.five_wide_phablet { 2989 grid-template-columns: repeat(5,1fr); 2990 } 2991} 2992@media (max-width: 480px) { 2993 body .sys_grid_container.one_wide_phone { 2994 grid-template-columns: repeat(1,1fr); 2995 } 2996} 2997@media (max-width: 480px) { 2998 body .sys_grid_container.two_wide_phone { 2999 grid-template-columns: repeat(2,1fr); 3000 } 3001} 3002@media (max-width: 480px) { 3003 body .sys_grid_container.three_wide_phone { 3004 grid-template-columns: repeat(3,1fr); 3005 } 3006} 3007@media (max-width: 480px) { 3008 body .sys_grid_container.four_wide_phone { 3009 grid-template-columns: repeat(4,1fr); 3010 } 3011} 3012@media (max-width: 480px) { 3013 body .sys_grid_container.five_wide_phone { 3014 grid-template-columns: repeat(5,1fr); 3015 } 3016} 3017body .sys_grid_container > .full_width { 3018 grid-column: 1/-1; 3019} 3020@media (max-width: 1024px) { 3021 body .sys_grid_container > .full_width_tablet { 3022 grid-column: 1/-1; 3023 } 3024} 3025@media (max-width: 768px) { 3026 body .sys_grid_container > .full_width_phablet { 3027 grid-column: 1/-1; 3028 } 3029} 3030@media (max-width: 480px) { 3031 body .sys_grid_container > .full_width_phone { 3032 grid-column: 1/-1; 3033 } 3034} 3035body .sys_flex_container.no_gap, 3036body .sys_grid_container.no_gap { 3037 gap: 0; 3038} 3039body .sys_flex_container.medium_gap, 3040body .sys_grid_container.medium_gap { 3041 gap: 40px; 3042} 3043body .sys_flex_container.large_gap, 3044body .sys_grid_container.large_gap { 3045 gap: 80px; 3046} 3047@media (max-width: 1024px) { 3048 body .sys_flex_container.no_gap_tablet, 3049 body .sys_grid_container.no_gap_tablet { 3050 gap: 0px; 3051 } 3052} 3053@media (max-width: 1024px) { 3054 body .sys_flex_container.small_gap_tablet, 3055 body .sys_grid_container.small_gap_tablet { 3056 gap: 20px; 3057 } 3058} 3059@media (max-width: 1024px) { 3060 body .sys_flex_container.medium_gap_tablet, 3061 body .sys_grid_container.medium_gap_tablet { 3062 gap: 40px; 3063 } 3064} 3065@media (max-width: 1024px) { 3066 body .sys_flex_container.large_gap_tablet, 3067 body .sys_grid_container.large_gap_tablet { 3068 gap: 80px; 3069 } 3070} 3071@media (max-width: 768px) { 3072 body .sys_flex_container.no_gap_phablet, 3073 body .sys_grid_container.no_gap_phablet { 3074 gap: 0px; 3075 } 3076} 3077@media (max-width: 768px) { 3078 body .sys_flex_container.small_gap_phablet, 3079 body .sys_grid_container.small_gap_phablet { 3080 gap: 20px; 3081 } 3082} 3083@media (max-width: 768px) { 3084 body .sys_flex_container.medium_gap_phablet, 3085 body .sys_grid_container.medium_gap_phablet { 3086 gap: 40px; 3087 } 3088} 3089@media (max-width: 768px) { 3090 body .sys_flex_container.large_gap_phablet, 3091 body .sys_grid_container.large_gap_phablet { 3092 gap: 80px; 3093 } 3094} 3095@media (max-width: 480px) { 3096 body .sys_flex_container.no_gap_phone, 3097 body .sys_grid_container.no_gap_phone { 3098 gap: 0px; 3099 } 3100} 3101@media (max-width: 480px) { 3102 body .sys_flex_container.small_gap_phone, 3103 body .sys_grid_container.small_gap_phone { 3104 gap: 20px; 3105 } 3106} 3107@media (max-width: 480px) { 3108 body .sys_flex_container.medium_gap_phone, 3109 body .sys_grid_container.medium_gap_phone { 3110 gap: 40px; 3111 } 3112} 3113@media (max-width: 480px) { 3114 body .sys_flex_container.large_gap_phone, 3115 body .sys_grid_container.large_gap_phone { 3116 gap: 80px; 3117 } 3118} 3119body div[data-type="locations-social"] { 3120 color: white; 3121} 3122body div[data-type="locations-social"] a:hover {
3123 color: inherit; 3124} 3125body div[data-type="locations-social"] > div { 3126 transition: background 0.2s; 3127} 3128body div[data-type="locations-social"] div[data-type="facebook"] { 3129 background: #4267b2; 3130} 3131body div[data-type="locations-social"] div[data-type="facebook"]:hover { 3132 background: #6283c5; 3133 color: #ffffff; 3134} 3135body div[data-type="locations-social"] div[data-type="twitter"] { 3136 background: #1da1f2; 3137} 3138body div[data-type="locations-social"] div[data-type="twitter"]:hover { 3139 background: #4db5f5; 3140 color: #ffffff; 3141} 3142body div[data-type="locations-social"] div[data-type="google"] { 3143 background: #db4437; 3144} 3145body div[data-type="locations-social"] div[data-type="google"]:hover { 3146 background: #e36c62; 3147 color: #ffffff; 3148} 3149body div[data-type="locations-social"] div[data-type="instagram"] { 3150 background: #833ab4; 3151} 3152body div[data-type="locations-social"] div[data-type="instagram"]:hover { 3153 background: #9c58c9; 3154 color: #ffffff; 3155} 3156body div[data-type="locations-social"] div[data-type="blog"] { 3157 background: #833ab4; 3158} 3159body div[data-type="locations-social"] div[data-type="blog"]:hover { 3160 background: #9c58c9; 3161 color: #ffffff; 3162} 3163body .sidebar[data-sidebar="true"] > .label { 3164 font-size: 1.5rem; 3165 margin: 1.5rem 0px 0.5rem; 3166 border-bottom: 1px solid #1A1A1A; 3167 padding-bottom: 0.5rem; 3168 font-weight: bold; 3169 color: #1A1A1A; 3170 font-family: "Montserrat"; 3171} 3172body :-moz-placeholder { 3173 color: #1A1A1A; 3174 font-family: "Montserrat"; 3175 text-decoration: none; 3176 font-weight: normal; 3177 opacity: 0.8; 3178} 3179body ::-moz-placeholder { 3180 color: #1A1A1A; 3181 font-family: "Montserrat"; 3182 text-decoration: none; 3183 font-weight: normal; 3184 opacity: 0.8; 3185} 3186body ::-webkit-input-placeholder { 3187 color: #1A1A1A; 3188 font-family: "Montserrat"; 3189 text-decoration: none; 3190 font-weight: normal; 3191 opacity: 0.8; 3192} 3193body :-ms-input-placeholder { 3194 color: #1A1A1A; 3195 font-family: "Montserrat"; 3196 text-decoration: none; 3197 font-weight: normal; 3198 opacity: 0.8; 3199} 3200body form * { 3201 font-family: "Montserrat"; 3202 text-decoration: none; 3203 font-weight: normal; 3204 font-size: 1rem; 3205} 3206body form div[data-container="file"] { 3207 margin: 5px; 3208 transition: opacity 0.4s; 3209} 3210body form div[data-container="file"]:last-of-type label { 3211 background-image: linear-gradient(to bottom right,#1A1A1A 25%,#00FFFF 75%); 3212} 3213body form [data-container="file"] label { 3214 background-image: linear-gradient(to bottom right,#00FFFF 25%,#1A1A1A 75%); 3215} 3216body div[data-micro-template="accordion_container"] { 3217 width: 100%; 3218 max-width: 100%; 3219 font-family: "Montserrat"; 3220} 3221body div[data-micro-template="accordion_container"] div[data-micro-template="accordion"] .accordion_title { 3222 display: flex; 3223 justify-content: space-between; 3224 align-items: center; 3225 color: #1A1A1A; 3226 cursor: pointer; 3227 border-bottom: 1px solid #1A1A1A; 3228 padding-bottom: 0px; 3229} 3230body div[data-micro-template="accordion_container"] div[data-micro-template="accordion"] .accordion_title .accordion_title_text, 3231body div[data-micro-template="accordion_container"] div[data-micro-template="accordion"] .accordion_title .accordion_toggle { 3232 font-size: 1.5rem; 3233 font-weight: 400; 3234} 3235@media (max-width: 1024px) { 3236 body div[data-micro-template="accordion_container"] div[data-micro-template="accordion"] .accordion_title .accordion_title_text, 3237 body div[data-micro-template="accordion_container"] div[data-micro-template="accordion"] .accordion_title .accordion_toggle { 3238 font-size: 1.2rem; 3239 } 3240} 3241@media (max-width: 480px) { 3242 body div[data-micro-template="accordion_container"] div[data-micro-template="accordion"] .accordion_title .accordion_title_text, 3243 body div[data-micro-template="accordion_container"] div[data-micro-template="accordion"] .accordion_title .accordion_toggle { 3244 font-size: 1.1rem; 3245 } 3246} 3247body div[data-micro-template="accordion_container"] div[data-micro-template="accordion"] .accordion_title.active { 3248 border-color: #1A1A1A; 3249 color: #1A1A1A; 3250} 3251body div[data-micro-template="accordion_container"] div[data-micro-template="accordion"] .accordion_title.active .accordion_title_text { 3252 color: #1A1A1A; 3253} 3254body div[data-micro-template="accordion_container"] div[data-micro-template="accordion"] .accordion_body { 3255 display: none; 3256 padding: 20px 0; 3257 line-height: 1.35em; 3258 text-align: left; 3259} 3260body section[data-type="system-lightbox-container"] .close-icon { 3261 background-color: white; 3262 border-radius: 50%; 3263 box-sizing: border-box; 3264 border: 5px solid white; 3265 display: flex; 3266 justify-content: center; 3267 align-items: center; 3268 top: -10px; 3269 right: -10px; 3270} 3271body section[data-type="system-lightbox-container"] .next-icon { 3272 background-color: white; 3273 border-radius: 50%; 3274 box-sizing: border-box; 3275 border: 4px solid white; 3276 display: flex; 3277 justify-content: center; 3278 align-items: center; 3279 position: absolute; 3280 top: 50%; 3281 right: 0px; 3282 font-size: 2rem; 3283 transform: translate(10px,-50%); 3284 cursor: pointer; 3285} 3286body section[data-type="system-lightbox-container"] .prev-icon { 3287 background-color: white; 3288 border-radius: 50%; 3289 box-sizing: border-box; 3290 border: 4px solid white; 3291 display: flex; 3292 justify-content: center; 3293 align-items: center; 3294 position: absolute; 3295 top: 50%; 3296 left: 0px; 3297 font-size: 2rem; 3298 transform: translate(-10px,-50%); 3299 cursor: pointer; 3300} 3301body section[data-type="system-lightbox-container"] .gallery_grid_modal { 3302 display: none; 3303 position: fixed; 3304 height: 100vh; 3305 width: 100%; 3306 top: 0; 3307 left: 0; 3308 background-color: rgba(0,0,0,0.6); 3309 justify-content: center; 3310 align-items: center; 3311 opacity: 0; 3312 transition: all 0.4s ease-in-out; 3313 z-index: 99999999; 3314} 3315body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container { 3316 cursor: pointer; 3317 margin: 5%; 3318 position: relative; 3319} 3320body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container img { 3321 max-height: 80vh; 3322} 3323body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container .highlighted_image_content { 3324 display: flex; 3325 flex-direction: column; 3326} 3327body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container .highlighted_image_content .button { 3328 order: 5; 3329 margin: 0; 3330} 3331body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container .gallery_grid_arrow { 3332 position: absolute; 3333 top: 50%; 3334} 3335body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container .gallery_grid_arrow svg {
3336 color: #fff; 3337 font-size: 36px; 3338 transition: all 0.2s; 3339} 3340body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container .gallery_grid_arrow:hover svg { 3341 transform: scale(1.2); 3342} 3343body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container .gallery_grid_left { 3344 left: -50px; 3345} 3346body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container .gallery_grid_right { 3347 right: -50px; 3348} 3349body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_caption { 3350 position: absolute; 3351 bottom: 100px; 3352 width: 100%; 3353 text-align: center; 3354 background: rgba(0,0,0,0.6); 3355} 3356body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_caption .highlighted_image_text { 3357 color: #fff; 3358 font-size: 1.25em; 3359 margin: 0; 3360 font-family: "Montserrat"; 3361 padding: 15px 0; 3362} 3363body section[data-type="system-lightbox-container"] .gallery_grid_modal.show { 3364 display: flex; 3365 opacity: 1; 3366} 3367@media (max-width: 768px) { 3368 body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_caption { 3369 bottom: 75px; 3370 } 3371 body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_caption .highlighted_image_text { 3372 font-size: 1em; 3373 padding: 5px; 3374 } 3375 body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container .gallery_grid_left { 3376 left: -40px; 3377 } 3378 body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container .gallery_grid_right { 3379 right: -40px; 3380 } 3381 body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container .highlighted_image_content .button { 3382 padding: 10px; 3383 } 3384} 3385@media (max-width: 480px) { 3386 body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_caption { 3387 bottom: 50px; 3388 } 3389 body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container .gallery_grid_arrow { 3390 bottom: -40px; 3391 top: initial; 3392 } 3393 body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container .gallery_grid_left { 3394 left: 20%; 3395 } 3396 body section[data-type="system-lightbox-container"] .gallery_grid_modal .highlighted_image_container .gallery_grid_right { 3397 right: 20%; 3398 } 3399} 3400body .responsive_video { 3401 padding-bottom: 56.25%; 3402 position: relative; 3403} 3404body .responsive_video iframe, 3405body .responsive_video video { 3406 position: absolute; 3407 height: 100%; 3408 width: 100%; 3409 top: 0; 3410 left: 0; 3411} 3412body .ul_column { 3413 column-count: 2; 3414} 3415@media (max-width: 768px) { 3416 body .ul_column { 3417 column-count: 2; 3418 } 3419} 3420@media (max-width: 480px) { 3421 body .ul_column { 3422 column-count: 1; 3423 } 3424} 3425body section .content_container .content div[data-micro-template="invisalign_list_container"] { 3426 display: grid; 3427 grid-template-columns: repeat(4,1fr); 3428 gap: 40px 20px; 3429} 3430@media (max-width: 1366px) { 3431 body section .content_container .content div[data-micro-template="invisalign_list_container"] { 3432 grid-template-columns: repeat(3,1fr); 3433 } 3434} 3435@media (max-width: 768px) { 3436 body section .content_container .content div[data-micro-template="invisalign_list_container"] { 3437 grid-template-columns: repeat(2,1fr); 3438 } 3439} 3440@media (max-width: 480px) { 3441 body section .content_container .content div[data-micro-template="invisalign_list_container"] { 3442 grid-template-columns: repeat(1,1fr); 3443 gap: 20px 10px; 3444 } 3445} 3446@media (max-width: 480px) { 3447 body section .content_container .content div[data-micro-template="invisalign_list_container"] a[data-micro-template="invisalign_list"] .image { 3448 display: none; 3449 } 3450} 3451body section .content_container .content div[data-micro-template="invisalign_list_container"] a[data-micro-template="invisalign_list"] .text { 3452 text-align: center; 3453} 3454@media (max-width: 480px) { 3455 body section .content_container .content div[data-micro-template="invisalign_list_container"] a[data-micro-template="invisalign_list"] .text { 3456 text-align: left; 3457 } 3458} 3459body section .content_container .content div[data-micro-template="invisalign_list_container"] a[data-micro-template="invisalign_list"] .text p { 3460 margin: 0; 3461} 3462body section .content_container .content .invisalign_video_container { 3463 display: grid; 3464 grid-template-columns: repeat(2,1fr); 3465 gap: 40px; 3466} 3467@media (max-width: 480px) { 3468 body section .content_container .content .invisalign_video_container { 3469 grid-template-columns: repeat(1,1fr); 3470 gap: 20px; 3471 } 3472} 3473body section .content_container .content .invisalign_video_container .invisalign_list .text { 3474 text-align: center; 3475} 3476body section .content_container .content .invisalign_video_container .invisalign_list .text p { 3477 color: #00FFFF; 3478 font-size: 1.2rem; 3479} 3480@media (max-width: 480px) { 3481 body section .content_container .content .invisalign_video_container .invisalign_list .text p { 3482 font-size: 1.1rem; 3483 } 3484} 3485body section .content_container .content .service_video_container { 3486 margin: 60px auto; 3487 display: flex; 3488 border-bottom: 10px solid #00FFFF; 3489 box-shadow: 6px 5px 8px 0px #bfbfbf; 3490} 3491@media (max-width: 768px) { 3492 body section .content_container .content .service_video_container { 3493 flex-direction: column; 3494 } 3495} 3496body section .content_container .content .service_video_container > div { 3497 flex: 1; 3498} 3499body section .content_container .content .service_video_container .service_video_text { 3500 padding: 0 40px; 3501 background: #1A1A1A; 3502 box-sizing: border-box; 3503 display: flex; 3504 justify-content: center; 3505 align-items: center; 3506} 3507@media (max-width: 640px) { 3508 body section .content_container .content .service_video_container .service_video_text { 3509 padding: 0 20px; 3510 } 3511} 3512body section .content_container .content .service_video_container .service_video_text h4 { 3513 color: #fff; 3514 font-size: 1rem; 3515 font-style: italic; 3516 line-height: 1.4em; 3517 font-weight: 400; 3518} 3519body section .content_container .content .service_testimonial_videos { 3520 background: #1A1A1A; 3521 padding: 20px 40px; 3522 border-bottom: 10px solid #00FFFF; 3523 text-align: center; 3524 box-shadow: 6px 5px 8px 0px #bfbfbf; 3525} 3526@media (max-width: 640px) { 3527 body section .content_container .content .service_testimonial_videos { 3528 padding: 20px; 3529 } 3530} 3531body section .content_container .content .service_testimonial_videos .secondary_divider { 3532 display: inline-block; 3533 margin: 0 auto; 3534 height: 3px; 3535 background: #00FFFF; 3536 width: 150px; 3537} 3538body section .content_container .content .service_testimonial_videos h2 { 3539 color: #fff; 3540 font-size: 2rem; 3541 margin-bottom: 10px; 3542 padding: 0; 3543 font-weight: 400; 3544} 3545body section .content_container .content .service_testimonial_videos h2.text_center { 3546 text-align: center; 3547} 3548body section .content_container .content .service_testimonial_videos p { 3549 color: #fff; 3550} 3551body section .content_container .content .service_testimonial_videos .testimonial_videos_container { 3552 display: flex; 3553 flex-wrap: wrap; 3554 justify-content: space-between; 3555 text-align: center; 3556} 3557body section .content_container .content .service_testimonial_videos .testimonial_videos_container .testimonial_video { 3558 flex-basis: 48%; 3559 margin: 20px 0; 3560} 3561@media (max-width: 550px) { 3562 body section .content_container .content .service_testimonial_videos .testimonial_videos_container .testimonial_video { 3563 flex-basis: 100%; 3564 } 3565} 3566body section .content_container .content .alternating_service_container { 3567 margin-top: 20px; 3568} 3569body section .content_container .content .alternating_service_container .alternating_service { 3570 display: flex; 3571 justify-content: space-between; 3572 align-items: center; 3573 margin-bottom: 30px; 3574 flex-wrap: wrap; 3575} 3576body section .content_container .content .alternating_service_container .alternating_service .image, 3577body section .content_container .content .alternating_service_container .alternating_service .text { 3578 flex-basis: 48%; 3579} 3580@media (max-width: 768px) { 3581 body section .content_container .content .alternating_service_container .alternating_service .image, 3582 body section .content_container .content .alternating_service_container .alternating_service .text { 3583 flex-basis: 100%; 3584 } 3585} 3586body section .content_container .content .alternating_service_container .alternating_service .text h3 { 3587 font-size: 1.4rem; 3588} 3589@media (max-width: 768px) { 3590 body section .content_container .content .alternating_service_container .alternating_service .image { 3591 text-align: center; 3592 } 3593} 3594body section .content_container .content .alternating_service_container .alternating_service:nth-of-type(even) .image { 3595 order: 2; 3596 text-align: right; 3597} 3598@media (max-width: 768px) { 3599 body section .content_container .content .alternating_service_container .alternating_service:nth-of-type(even) .image { 3600 text-align: center; 3601 order: initial; 3602 } 3603} 3604</style><style>.section_1 { 3605 padding: 50px 100px; 3606 background: #fff; 3607 z-index: 30; 3608} 3609@media (max-width: 1366px) { 3610 .section_1 { 3611 padding: 40px; 3612 } 3613} 3614@media (max-width: 1024px) { 3615 .section_1 { 3616 padding: 20px 20px 10px; 3617 } 3618} 3619.section_1 .content_container .content { 3620 display: flex; 3621 align-items: center; 3622 justify-content: space-between; 3623} 3624.section_1 .content_container .content .logo a { 3625 display: flex; 3626 align-items: center; 3627} 3628.section_1 .content_container .content .right { 3629 display: flex; 3630 text-align: right; 3631} 3632@media (max-width: 1024px) { 3633 .section_1 .content_container .content .right { 3634 text-align: left; 3635 } 3636} 3637.section_1 .content_container .content .right .phone { 3638 margin-left: 50px; 3639} 3640@media (max-width: 1366px) { 3641 .section_1 .content_container .content .right .phone { 3642 margin-left: 25px; 3643 } 3644} 3645@media (max-width: 1024px) { 3646 .section_1 .content_container .content .right .phone { 3647 margin-left: 0px; 3648 } 3649} 3650@media (max-width: 768px) { 3651 .section_1 .content_container .content .right .phone { 3652 text-align: center; 3653 } 3654} 3655.section_1 .content_container .content .right .phone h4 { 3656 color: #1A1A1A; 3657 font-size: 1.15rem; 3658 margin: 0; 3659 font-weight: 500; 3660} 3661@media (max-width: 1366px) { 3662 .section_1 .content_container .content .right .phone h4 { 3663 font-size: 1rem; 3664 } 3665} 3666.section_1 .content_container .content .right .phone.hidden { 3667 display: none; 3668} 3669.section_1 .content_container .content .right div[data-micro-template="buttons_container"] { 3670 display: flex; 3671} 3672@media (max-width: 768px) { 3673 .section_1 .content_container .content .right div[data-micro-template="buttons_container"] { 3674 display: none; 3675 } 3676} 3677.section_1 .content_container .content .right div[data-micro-template="buttons_container"] .button { 3678 background: #00FFFF; 3679 color: #1A1A1A; 3680 text-align: center; 3681 display: flex; 3682 margin: 0; 3683 height: 100%; 3684 max-height: 100px; 3685 align-items: center; 3686 margin-right: 10px; 3687 text-transform: uppercase; 3688 font-weight: 500; 3689} 3690.section_1 .content_container .content .right div[data-micro-template="buttons_container"] .button:hover { 3691 background: #00cccc; 3692} 3693@media (max-width: 1024px) { 3694 .section_1 .content_container .content .right div[data-micro-template="buttons_container"] .button { 3695 font-size: 1rem; 3696 } 3697} 3698.section_1 .content_container .content .right div[data-micro-template="buttons_container"] div[data-micro-template="buttons"]:last-of-type .button { 3699 margin-right: 0; 3700} 3701@media (max-width: 1366px) { 3702 .section_1 .content_container .content .right div[data-micro-template="buttons_container"] div[data-micro-template="buttons"]:last-of-type .button { 3703 display: none; 3704 } 3705} 3706.section_1 .content_container .content div[data-micro-template="phone"] a { 3707 font-size: 3rem; 3708 color: #1A1A1A; 3709 font-weight: 300; 3710} 3711@media (max-width: 1366px) { 3712 .section_1 .content_container .content div[data-micro-template="phone"] a { 3713 font-size: 2.25rem; 3714 } 3715} 3716@media (max-width: 768px) { 3717 .section_1 .content_container .content div[data-micro-template="phone"] a { 3718 font-size: 2rem; 3719 } 3720} 3721@media (max-width: 768px) { 3722 .section_1 .content_container .content div[data-micro-template="phone"] { 3723 margin-right: 30px; 3724 } 3725} 3726.section_1 .content_container .content ul[data-micro-template="phone_list_container"] { 3727 margin: 0; 3728 padding: 0; 3729} 3730@media (max-width: 1024px) { 3731 .section_1 .content_container .content ul[data-micro-template="phone_list_container"] { 3732 display: flex; 3733 max-width: 500px; 3734 align-items: center; 3735 height: 100%; 3736 } 3737} 3738.section_1 .content_container .content ul[data-micro-template="phone_list_container"] li[data-micro-template="phone_list"] { 3739 list-style: none; 3740 margin-top: 10px; 3741} 3742@media (max-width: 1024px) { 3743 .section_1 .content_container .content ul[data-micro-template="phone_list_container"] li[data-micro-template="phone_list"] { 3744 margin-top: 0; 3745 margin-left: 20px; 3746 } 3747} 3748.section_1 .content_container .content ul[data-micro-template="phone_list_container"] li[data-micro-template="phone_list"] span, 3749.section_1 .content_container .content ul[data-micro-template="phone_list_container"] li[data-micro-template="phone_list"] a { 3750 color: #1A1A1A; 3751} 3752.section_1 .content_container .content ul[data-micro-template="phone_list_container"] li[data-micro-template="phone_list"] span { 3753 color: #1A1A1A; 3754 font-size: 1.1rem; 3755 margin: 0; 3756 font-weight: 500; 3757 display: block; 3758} 3759@media (max-width: 1366px) { 3760 .section_1 .content_container .content ul[data-micro-template="phone_list_container"] li[data-micro-template="phone_list"] span { 3761 font-size: 1rem; 3762 } 3763} 3764.section_1 .content_container .content ul[data-micro-template="phone_list_container"] li[data-micro-template="phone_list"] a { 3765 font-size: 2rem; 3766 color: #1A1A1A; 3767 font-weight: 300; 3768} 3769@media (max-width: 1024px) { 3770 .section_1 .content_container .content ul[data-micro-template="phone_list_container"] li[data-micro-template="phone_list"] a { 3771 font-size: 1.75rem; 3772 } 3773} 3774@media (max-width: 480px) { 3775 .section_1 .content_container .content ul[data-micro-template="phone_list_container"] li[data-micro-template="phone_list"] a { 3776 font-size: 1.25rem; 3777 } 3778} 3779.section_1 .content_container .content ul[data-micro-template="phone_list_container"] li[data-micro-template="phone_list"]:first-of-type { 3780 margin-top: 0; 3781 margin-left: 0; 3782} 3783@media (max-width: 1024px) { 3784 .section_1 .content_container .content { 3785 flex-direction: column; 3786 } 3787} 3788@media (max-width: 768px) { 3789 .section_1 .content_container .content .right { 3790 flex-direction: column; 3791 height: auto; 3792 } 3793 .section_1 .content_container .content .right .phone { 3794 margin-top: 5px; 3795 } 3796 .section_1 .content_container .content div[data-micro-template="phone"] { 3797 margin-right: 0px; 3798 margin-top: 5px; 3799 } 3800} 3801</style><style>.section_1 { 3802 padding: 19px 20px 5px 20px; 3803 background: #1A1A1A; 3804 z-index: 30; 3805 position: fixed; 3806 top: 0; 3807} 3808@media (max-width: 1024px) { 3809 .section_1 { 3810 padding: 0; 3811 } 3812} 3813.section_1 .content_container .content { 3814 display: flex; 3815 align-items: center; 3816 align-content: center; 3817 justify-content: space-between; 3818} 3819@media (max-width: 1024px) { 3820 .section_1 .content_container .content .logo { 3821 display: none; 3822 } 3823} 3824.section_1 .content_container .content .logo a { 3825 display: flex; 3826 align-items: center; 3827} 3828.section_1 .content_container .content .logo img, 3829.section_1 .content_container .content .logo picture { 3830 max-width: 305px; 3831} 3832@media (max-width: 480px) { 3833 .section_1 .content_container .content .logo img, 3834 .section_1 .content_container .content .logo picture { 3835 max-width: 150px; 3836 } 3837} 3838.section_1 .content_container .content .logo p { 3839 color: #fff; 3840 margin: 0; 3841 text-align: center; 3842 font-style: italic; 3843} 3844.section_1 .content_container .content .right { 3845 display: flex; 3846 text-align: left; 3847 font-weight: bold; 3848 align-items: center; 3849} 3850@media (max-width: 1024px) { 3851 .section_1 .content_container .content .right { 3852 text-align: left; 3853 width: 100%; 3854 } 3855} 3856@media (max-width: 1366px) { 3857 .section_1 .content_container .content .right .phone { 3858 margin-left: 10px; 3859 margin-right: 10px; 3860 } 3861} 3862@media (max-width: 1024px) { 3863 .section_1 .content_container .content .right .phone { 3864 text-align: left; 3865 } 3866} 3867@media (max-width: 1024px) { 3868 .section_1 .content_container .content .right .phone { 3869 width: 100%; 3870 margin: 0; 3871 } 3872} 3873.section_1 .content_container .content .right .phone h4 { 3874 color: #00FFFF; 3875 font-size: 1.25rem; 3876 margin: 0; 3877 font-weight: 500; 3878} 3879@media (max-width: 1366px) { 3880 .section_1 .content_container .content .right .phone h4 { 3881 font-siz
3881e: 1rem; 3882 } 3883} 3884.section_1 .content_container .content .right .phone.hidden { 3885 display: none; 3886} 3887.section_1 .content_container .content .right div[data-micro-template="buttons_container"] { 3888 display: flex; 3889} 3890@media (max-width: 1024px) { 3891 .section_1 .content_container .content .right div[data-micro-template="buttons_container"] div[data-micro-template="buttons"] { 3892 flex: 1; 3893 } 3894} 3895.section_1 .content_container .content .right div[data-micro-template="buttons_container"] .button { 3896 background: none; 3897 color: #00FFFF; 3898 text-align: center; 3899 display: flex; 3900 margin: 5px 0; 3901 height: 100%; 3902 max-height: 60px; 3903 align-items: center; 3904 margin-right: 10px; 3905 text-transform: uppercase; 3906 justify-content: center; 3907 font-weight: 500; 3908 font-size: 1rem; 3909 border: 2px solid #00FFFF; 3910} 3911@media (max-width: 1024px) { 3912 .section_1 .content_container .content .right div[data-micro-template="buttons_container"] .button { 3913 margin: 0; 3914 font-size: .90rem; 3915 } 3916} 3917@media (max-width: 500px) { 3918 .section_1 .content_container .content .right div[data-micro-template="buttons_container"] .button { 3919 margin: 0; 3920 font-size: .6rem; 3921 } 3922} 3923.section_1 .content_container .content .right div[data-micro-template="buttons_container"] .button:hover { 3924 background: #00FFFF; 3925 color: #1A1A1A; 3926} 3927.section_1 .content_container .content .right div[data-micro-template="buttons_container"] div[data-micro-template="buttons"]:last-of-type .button { 3928 margin-right: 0; 3929 background: none; 3930 color: #00FFFF; 3931} 3932.section_1 .content_container .content .right div[data-micro-template="buttons_container"] div[data-micro-template="buttons"]:last-of-type .button:hover { 3933 background: #00FFFF; 3934 color: #1A1A1A; 3935} 3936@media (max-width: 1366px) { 3937 .section_1 .content_container .content .right div[data-micro-template="buttons_container"] div[data-micro-template="buttons"]:last-of-type .button { 3938 display: flex; 3939 } 3940} 3941@media (max-width: 1024px) { 3942 .section_1 .content_container .content .right div[data-micro-template="buttons_container"] div[data-micro-template="buttons"]:last-of-type .button { 3943 display: flex; 3944 } 3945} 3946.section_1 .content_container .content .icon { 3947 width: 19%; 3948 box-sizing: border-box; 3949 padding: 12px; 3950 display: inline-block; 3951 vertical-align: top; 3952} 3953.section_1 .content_container .content .text { 3954 display: flex; 3955 flex-direction: column; 3956 font-size: 1.2rem; 3957 font-weight: 500; 3958 text-align: right; 3959} 3960.section_1 .content_container .content .text a { 3961 color: #AB7F29; 3962} 3963.section_1 .content_container .content .text a:hover { 3964 color: #00cccc; 3965} 3966@media (max-width: 1024px) { 3967 .section_1 .content_container .content .text { 3968 font-size: .9rem; 3969 text-align: center; 3970 } 3971} 3972@media (max-width: 1024px) { 3973 .section_1 .content_container .content .text { 3974 display: none; 3975 } 3976} 3977.section_1 .content_container .content div[data-micro-template="phone"] { 3978 display: inline; 3979} 3980.section_1 .content_container .content div[data-micro-template="phone"] a { 3981 font-size: 1rem; 3982 color: #1A1A1A; 3983 font-weight: bold; 3984} 3985@media (max-width: 768px) { 3986 .section_1 .content_container .content div[data-micro-template="phone"] a { 3987 font-size: .9rem; 3988 } 3989} 3990.section_1 .content_container .content ul[data-micro-template="phone_list_container"] { 3991 margin: 0; 3992 padding: 0; 3993} 3994@media (max-width: 1024px) { 3995 .section_1 .content_container .content ul[data-micro-template="phone_list_container"] { 3996 display: flex; 3997 max-width: 500px; 3998 align-items: center; 3999 height: 100%; 4000 } 4001} 4002.section_1 .content_container .content ul[data-micro-template="phone_list_container"] li[data-micro-template="phone_list"] { 4003 list-style: none; 4004 margin-top: 10px; 4005} 4006@media (max-width: 1024px) { 4007 .section_1 .content_container .content ul[data-micro-template="phone_list_container"] li[data-micro-template="phone_list"] { 4008 margin-top: 0; 4009 margin-left: 20px; 4010 } 4011} 4012.section_1 .content_container .content ul[data-micro-template="phone_list_container"] li[data-micro-template="phone_list"] span, 4013.section_1 .content_container .content ul[data-micro-template="phone_list_container"] li[data-micro-template="phone_list"] a { 4014 color: #1A1A1A; 4015} 4016.section_1 .content_container .content ul[data-micro-template="phone_list_container"] li[data-micro-template="phone_list"] span { 4017 color: #1A1A1A; 4018 font-size: 1.1rem; 4019 margin: 0; 4020 font-weight: 500; 4021 display: block; 4022} 4023@media (max-width: 1366px) { 4024 .section_1 .content_container .content ul[data-micro-template="phone_list_container"] li[data-micro-template="phone_list"] span { 4025 font-size: 1rem; 4026 } 4027} 4028.section_1 .content_container .content ul[data-micro-template="phone_list_container"] li[data-micro-template="phone_list"] a { 4029 font-size: 2rem; 4030 color: #1A1A1A; 4031 font-weight: 300; 4032} 4033@media (max-width: 1024px) { 4034 .section_1 .content_container .content ul[data-micro-template="phone_list_container"] li[data-micro-template="phone_list"] a { 4035 font-size: 1.75rem; 4036 } 4037} 4038@media (max-width: 480px) { 4039 .section_1 .content_container .content ul[data-micro-template="phone_list_container"] li[data-micro-template="phone_list"] a { 4040 font-size: 1.25rem; 4041 } 4042} 4043.section_1 .content_container .content ul[data-micro-template="phone_list_container"] li[data-micro-template="phone_list"]:first-of-type { 4044 margin-top: 0; 4045 margin-left: 0; 4046} 4047@media (max-width: 1024px) { 4048 .section_1 .content_container .content { 4049 flex-direction: column; 4050 } 4051} 4052</style> 4053<section class="section_1" data-module="manticore_header" data-html="/custom/modules/manticore_header/module.html" data-json="/custom/modules/manticore_header/module.json" data-page="blog" data-full-path="/blog/"> 4054 <div class="content_container"> 4055 <div class="content"> 4056 4057 <div class="logo"> 4058 <a href="/" aria-label="link"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/images/logo-5.png" alt="Iconic Dental Arts | Intraoral Camera, Dentures and CBCT"></a> 4059 4060</div> 4061<div class="right"> 4062 <div class="phone"> 4063 <div class="text"> 4064 <a href="https://goo.gl/maps/eHcnKGktzq22" aria-label="8200 N May Ave, Oklahoma City, OK 73120" rel="noopener" target="_blank">8200 N May Ave, Oklahoma City, OK 73120</a> 4065 </div> 4066 <div data-micro-template="buttons_container"> 4067 <div data-micro-template="buttons"> 4068 <a class="button" href="https://book.modento.io/joe-isaacson-dds" role="button" aria-label="Book Online" rel="noopener" target="_blank">Book Online</a> 4069</div><div data-micro-template="buttons"> 4070 <a class="button tel_14059438575" href="tel:+14059438575" role="button" aria-label="Call/Text: (405) 943-8575" data-click-call="0">Call/Text: (405) 943-8575</a> 4071</div><div data-micro-template="buttons"> 4072 <a class="button tel_14052130328" href="tel:+14052130328" role="button" aria-label="New Patients: (405) 213-0328" data-click-call="0">New Patients: (405) 213-0328</a> 4073</div> 4074</div> 4075 </div> 4076</div> 4077 4078 </div> 4079 </div> 4080</section><style>.section_2 { 4081 --group-menu-height: 600px; 4082 --group-menu-width: 1600px; 4083 --header-height: 36px; 4084 --mobile-menu-width: 450px; 4085 --nav-height: 100px; 4086 --mobile-menu-top-spacing: 10px; 4087 --mobile-menu-top-min-height: 75px; 4088 background: #1A1A1A; 4089 padding: 0px 20px; 4090 background: none; 4091 position: fixed; 4092 left: 0; 4093 top: var(--header-height); 4094 z-index: 500; 4095 transition: background 0.3s ease; 4096} 4097@media (max-width: 1024px) { 4098 .section_2 { 4099 --header-height: 0px; 4100 } 4101} 4102@media (max-width: 1366px) { 4103 .section_2 { 4104 --group-menu-height: 500px; 4105 --group-menu-width: 1600px; 4106 } 4107} 4108@media (max-width: 768px) { 4109 .section_2 { 4110 --header-height: 0px; 4111 --nav-height: 70px; 4112 } 4113} 4114.section_2.active:hover { 4115 background: none; 4116} 4117.section_2.active .logo { 4118 opacity: 0; 4119} 4120.section_2.background_toggle .logo { 4121 filter: brightness(0) invert(1); 4122 transition: filter 0.3s ease; 4123} 4124.section_2.background_toggle nav { 4125 color: #fff; 4126} 4127.section_2.background_toggle nav .menu_wrapper > ul > li a { 4128 color: #fff; 4129 transition: color 0.3s ease; 4130} 4131.section_2.background_toggle nav .menu_wrapper > ul > li i, 4132.section_2.background_toggle nav .menu_wrapper > ul > li svg {
4133 color: #fff; 4134 transition: color 0.3s ease; 4135} 4136.section_2.not_top { 4137 background: #fff; 4138 border-bottom: 1px solid rgba(26,26,26,0.2); 4139} 4140.section_2.not_top.active { 4141 background: none; 4142 border-bottom: none; 4143} 4144.section_2.not_top nav:after { 4145 content: ''; 4146 position: absolute; 4147 top: 0; 4148 left: 0; 4149 width: 100%; 4150 height: 100%; 4151 transition: all 0s; 4152} 4153.section_2.not_top nav.active:after { 4154 background: none; 4155} 4156.section_2.not_top.background_toggle .logo { 4157 filter: none; 4158} 4159.section_2.not_top.background_toggle nav { 4160 color: #1A1A1A; 4161} 4162.section_2.not_top.background_toggle nav .menu_wrapper > ul > li a { 4163 color: #1A1A1A; 4164} 4165.section_2.not_top.background_toggle nav .menu_wrapper > ul > li i, 4166.section_2.not_top.background_toggle nav .menu_wrapper > ul > li svg { 4167 color: #1A1A1A; 4168} 4169.section_2 .logo { 4170 position: absolute; 4171 top: 50%; 4172 left: 20px; 4173 transform: translate(0,-50%); 4174 height: var(--nav-height); 4175 transition: all 0.3s; 4176 box-sizing: border-box; 4177 padding: 5px; 4178 z-index: 150; 4179} 4180@media (max-width: 1024px) { 4181 .section_2 .logo { 4182 margin-right: 50px; 4183 } 4184} 4185.section_2 .logo a { 4186 height: 100%; 4187 width: 100%; 4188 display: flex; 4189 align-items: center; 4190} 4191.section_2 .logo img, 4192.section_2 .logo picture { 4193 height: 100%; 4194} 4195.section_2 .menu_buttons { 4196 position: absolute; 4197 right: 20px; 4198 top: 50%; 4199 transform: translate(0,-50%); 4200 z-index: 999; 4201} 4202.section_2 .menu_buttons div[data-micro-template="buttons_container"] { 4203 display: flex; 4204 gap: 0 10px; 4205} 4206.section_2 .menu_buttons div[data-micro-template="buttons_container"] div[data-micro-template="buttons"] a.button { 4207 padding: 15px; 4208} 4209.section_2 nav { 4210 display: flex; 4211 margin: 0px auto; 4212 z-index: 100; 4213 width: 100%; 4214 text-align: right; 4215 color: #fff; 4216 align-items: center; 4217 justify-content: space-between; 4218 height: var(--nav-height); 4219 box-sizing: border-box; 4220 font-size: 16px; 4221 font-family: "Montserrat"; 4222} 4223.section_2 nav a:hover { 4224 color: #D2AD63; 4225} 4226.section_2 nav.no_descriptions > .menu_wrapper > ul > li .submenu_wrapper { 4227 flex-wrap: wrap; 4228 overflow-y: auto; 4229} 4230.section_2 nav.no_descriptions > .menu_wrapper > ul > li .submenu_wrapper .submenu_description { 4231 flex-basis: 100%; 4232 text-align: center; 4233 line-height: 0; 4234 border-right: 0; 4235} 4236.section_2 nav.no_descriptions > .menu_wrapper > ul > li .submenu_wrapper .submenu_description h3 { 4237 display: inline-block; 4238 border-bottom: 1px solid rgba(26,26,26,0.5); 4239 margin-bottom: 20px; 4240 padding-bottom: 1rem; 4241} 4242.section_2 nav.no_descriptions > .menu_wrapper > ul > li .submenu_wrapper .submenu_description p { 4243 display: none; 4244} 4245.section_2 nav.no_descriptions > .menu_wrapper > ul > li .submenu_wrapper > ul { 4246 margin: 0 auto; 4247 flex-basis: min(100%,1000px); 4248 display: flex; 4249 gap: 20px 10px; 4250 justify-content: center; 4251 align-items: center; 4252 flex-wrap: wrap; 4253 flex-direction: row; 4254 padding: 0; 4255} 4256@media (max-width: 1024px) { 4257 .section_2 nav.no_descriptions > .menu_wrapper > ul > li .submenu_wrapper > ul { 4258 padding-bottom: 20px; 4259 display: grid; 4260 grid-template-columns: repeat(1,1fr); 4261 gap: 5px 0; 4262 } 4263} 4264.section_2 nav.no_descriptions > .menu_wrapper > ul > li .submenu_wrapper > ul.group_container { 4265 display: flex; 4266 flex-flow: column wrap; 4267 flex-basis: min(100%,var(--group-menu-width)); 4268 height: var(--group-menu-height); 4269 justify-content: flex-start; 4270 align-items: flex-start; 4271} 4272@media (max-width: 1024px) { 4273 .section_2 nav.no_descriptions > .menu_wrapper > ul > li .submenu_wrapper > ul.group_container { 4274 align-items: flex-start; 4275 } 4276} 4277.section_2 nav .mobile_menu { 4278 position: absolute; 4279 display: none; 4280 right: 0px; 4281 padding-right: inherit; 4282 font-size: 2rem; 4283 cursor: pointer; 4284} 4285.section_2 nav .menu_wrapper { 4286 display: flex; 4287 margin: 0px auto; 4288 z-index: 100; 4289 width: 100%; 4290 text-align: right; 4291 color: #fff; 4292 align-items: center; 4293 justify-content: space-between; 4294 height: 80px; 4295 box-sizing: border-box; 4296 font-size: 16px; 4297 font-family: "Montserrat"; 4298} 4299.section_2 nav .menu_wrapper .mobile_menu_top { 4300 display: none; 4301} 4302.section_2 nav .menu_wrapper .mobile_menu_buttons { 4303 display: none; 4304} 4305.section_2 nav .menu_wrapper .close_icon { 4306 display: none; 4307} 4308.section_2 nav .menu_wrapper .mobile_information { 4309 display: none; 4310 box-sizing: border-box; 4311 padding: 0 25px; 4312 color: #fff; 4313 text-align: left; 4314 margin-top: 20px; 4315} 4316.section_2 nav .menu_wrapper .mobile_information .mobile_address, 4317.section_2 nav .menu_wrapper .mobile_information .mobile_phone, 4318.section_2 nav .menu_wrapper .mobile_information .mobile_social { 4319 margin-bottom: 20px; 4320} 4321.section_2 nav .menu_wrapper .mobile_information .mobile_address span, 4322.section_2 nav .menu_wrapper .mobile_information .mobile_phone span, 4323.section_2 nav .menu_wrapper .mobile_information .mobile_social span { 4324 margin-bottom: 5px; 4325 display: none; 4326 font-size: .9rem; 4327} 4328.section_2 nav .menu_wrapper .mobile_information .mobile_address a, 4329.section_2 nav .menu_wrapper .mobile_information .mobile_phone a, 4330.section_2 nav .menu_wrapper .mobile_information .mobile_social a { 4331 color: #fff; 4332} 4333.section_2 nav .menu_wrapper .mobile_information .mobile_phone.tracking span { 4334 display: block; 4335} 4336.section_2 nav .menu_wrapper .mobile_information .mobile_social > div { 4337 display: flex; 4338 justify-content: space-around; 4339 font-size: 1.8rem; 4340} 4341.section_2 nav .menu_wrapper ul { 4342 padding: 0px; 4343 margin: 0px; 4344} 4345.section_2 nav .menu_wrapper ul .submenu_wrapper { 4346 position: fixed; 4347 left: 0; 4348 width: 100%; 4349 background: #1A1A1A; 4350 transform: none; 4351 flex-direction: row; 4352 justify-content: center; 4353 padding: 30px; 4354 display: flex; 4355 box-sizing: border-box; 4356} 4357.section_2 nav .menu_wrapper ul .submenu_wrapper .submenu_description { 4358 text-align: left; 4359 border-right: 1px solid rgba(26,26,26,0.5); 4360 flex: 0 1 400px; 4361 padding-right: 20px; 4362 opacity: 0; 4363 transition: opacity 1s; 4364} 4365.section_2 nav .menu_wrapper ul .submenu_wrapper .submenu_description.active { 4366 opacity: 1; 4367} 4368.section_2 nav .menu_wrapper ul .submenu_wrapper .submenu_description h3 { 4369 margin: 0; 4370 color: #fff; 4371 line-height: initial; 4372} 4373.section_2 nav .menu_wrapper ul .submenu_wrapper .submenu_description h3 p { 4374 font-size: 1.1rem; 4375 font-weight: 400; 4376} 4377.section_2 nav .menu_wrapper ul .submenu_wrapper > ul { 4378 flex: 0 1 200px; 4379 text-align: left; 4380 padding-left: 20px; 4381 display: block; 4382 opacity: 0; 4383 transition: opacity 0.5s ease-in, bottom 0.5s ease; 4384} 4385.section_2 nav .menu_wrapper ul .submenu_wrapper > ul.active { 4386 opacity: 1; 4387} 4388.section_2 nav .menu_wrapper ul .submenu_wrapper > ul li a { 4389 color: #fff; 4390} 4391.section_2 nav .menu_wrapper ul li { 4392 list-style-type: none; 4393} 4394.section_2 nav .menu_wrapper ul a { 4395 display: inline-block; 4396 width: 100%; 4397 height: 100%; 4398 color: #fff; 4399} 4400.section_2 nav .menu_wrapper ul ul { 4401 display: none; 4402 padding: 0px; 4403 flex-direction: column; 4404 position: relative; 4405 background: none; 4406} 4407.section_2 nav .menu_wrapper ul > li { 4408 padding: 0px 20px; 4409} 4410.section_2 nav .menu_wrapper ul > li > ul > ul.group_container { 4411 display: flex; 4412 flex-flow: column wrap; 4413} 4414.section_2 nav .menu_wrapper ul > li > ul > ul.group_container h3 { 4415 color: #fff; 4416 font-size: 1.5rem; 4417 margin-bottom: 10px; 4418} 4419.section_2 nav .menu_wrapper ul > li > ul > ul.group_container > li > ul { 4420 display: flex; 4421} 4422.section_2 nav .menu_wrapper ul > li > ul.group_container { 4423 width: 100%; 4424 box-sizing: border-box; 4425 max-width: 1000px; 4426 flex-direction: column; 4427 flex-wrap: wrap; 4428 left: 50%; 4429 transform: translate(-50%); 4430 max-height: 480px; 4431} 4432.section_2 nav .menu_wrapper ul > li > ul.group_container h3 { 4433 font-size: 1.25rem; 4434 font-weight: bold; 4435 margin: 0px 0px 0.5rem; 4436} 4437.section_2 nav .menu_wrapper ul > li > ul.group_container > li > ul { 4438 position: relative; 4439 display: block; 4440 background: none; 4441 margin-bottom: 0.5rem; 4442} 4443.section_2 nav .menu_wrapper ul > li > ul.group_container > li > ul > li { 4444 line-height: 40px; 4445 text-align: left; 4446} 4447.section_2 nav .menu_wrapper > ul { 4448 margin-left: auto; 4449 margin-right: auto; 4450} 4451.section_2 nav .menu_wrapper > ul > li { 4452 position: relative; 4453 transform: all 0.3s; 4454 display: inline-block; 4455 line-height: 80px; 4456 padding: 0px 20px; 4457} 4458.section_2 nav .menu_wrapper > ul > li > a { 4459 color: #fff; 4460} 4461.section_2 nav .menu_wrapper > ul > li i, 4462.section_2 nav .menu_wrapper > ul > li svg { 4463 position: absolute; 4464 right: 0; 4465 top: 50%; 4466 transform: translate(0,-50%); 4467 color: #fff; 4468 transition: transform 0.3s; 4469} 4470.section_2 nav .menu_wrapper > ul > li[data-url="/services/"] .submenu_wrapper { 4471 flex-wrap: wrap; 4472 overflow-y: auto; 4473} 4474.section_2 nav .menu_wrapper > ul > li[data-url="/services/"] .submenu_wrapper .submenu_description { 4475 flex-basis: 100%; 4476 text-align: center; 4477 line-height: 0; 4478 border-right: 0; 4479} 4480.section_2 nav .menu_wrapper > ul > li[data-url="/services/"] .submenu_wrapper .submenu_description h3 { 4481 display: inline-block; 4482 border-bottom: 1px solid rgba(26,26,26,0.5); 4483 margin-bottom: 20px; 4484} 4485.section_2 nav .menu_wrapper > ul > li[data-url="/services/"] .submenu_wrapper > ul { 4486 margin: 0 auto; 4487 flex-basis: min(100%,var(--group-menu-width)); 4488 display: grid; 4489 grid-template-columns: repeat(4,1fr); 4490 gap: 10px; 4491} 4492.section_2 nav .menu_wrapper > ul > li[data-url="/services/"] .submenu_wrapper > ul.group_container { 4493 display: flex; 4494 flex-flow: column wrap; 4495 flex-basis: min(100%,var(--group-menu-width)); 4496 height: var(--group-menu-height); 4497} 4498.section_2 nav .menu_wrapper > ul > li > ul { 4499 padding-top: 20px; 4500 padding-bottom: 20px; 4501 left: 50%; 4502 transform: translate(-50%); 4503} 4504.section_2 nav .menu_wrapper > ul > li > ul > li { 4505 line-height: 40px; 4506 width: 140px; 4507 text-align: left; 4508 text-align: center; 4509} 4510.section_2 nav .menu_wrapper > ul > li > ul > li > ul:not([data-group-container]) { 4511 position: absolute; 4512 left: 100%; 4513 padding-top: 20px; 4514 padding-bottom: 20px; 4515 transform: translate(0px,-60px); 4516} 4517.section_2 nav .menu_wrapper > ul > li > ul > li > ul:not([data-group-container]) > li { 4518 line-height: 40px; 4519 width: 140px; 4520} 4521@media (max-width: 1024px) { 4522 .section_2 .menu_buttons { 4523 right: 70px; 4524 } 4525 .section_2 .menu_buttons div[data-micro-template="buttons_container"] { 4526 display: flex; 4527 gap: 0 10px; 4528 } 4529 .section_2 nav { 4530 max-width: 100%; 4531 padding: 0px 20px; 4532 box-sizing: border-box; 4533 z-index: -1 !important; 4534 } 4535 .section_2 nav.active { 4536 z-index: 9999 !important; 4537 } 4538 .section_2 nav .mobile_menu { 4539 display: inline-block; 4540 top: 50%; 4541 transform: translate(0px,-50%); 4542 z-index: 4; 4543 } 4544 .section_2 nav ul { 4545 background: #1A1A1A; 4546 } 4547 .section_2 nav ul > li { 4548 box-sizing: border-box; 4549 } 4550 .section_2 nav ul ul { 4551 position: relative; 4552 transform: initial; 4553 } 4554 .section_2 nav .menu_wrapper { 4555 z-index: initial; 4556 position: fixed; 4557 height: 100%; 4558 width: min(90%,var(--mobile-menu-width)); 4559 top: 0; 4560 left: initial; 4561 transform: translateX(0); 4562 right: calc(var(--mobile-menu-width) * -1); 4563 text-align: center; 4564 display: flex; 4565 flex-direction: column; 4566 justify-content: flex-start;
4567 align-items: flex-end; 4568 opacity: 1; 4569 transition: transform 0.3s; 4570 box-sizing: border-box; 4571 padding: 0; 4572 overflow-y: auto; 4573 background: #1A1A1A; 4574 padding-bottom: 20px; 4575 } 4576 .section_2 nav .menu_wrapper.active { 4577 z-index: 1000; 4578 transform: translateX(calc(var(--mobile-menu-width) * -1)); 4579 } 4580 .section_2 nav .menu_wrapper .mobile_menu_top { 4581 position: sticky; 4582 background: #1A1A1A; 4583 width: 100%; 4584 top: 0; 4585 z-index: 99; 4586 border-bottom: 1px solid #fff; 4587 display: block; 4588 box-sizing: border-box; 4589 padding: 10px 0 0 0; 4590 min-height: var(--mobile-menu-top-min-height); 4591 } 4592 .section_2 nav .menu_wrapper .mobile_menu_top .mobile_logo { 4593 text-align: left; 4594 filter: brightness(0) invert(1); 4595 margin-left: 10px; 4596 display: block; 4597 } 4598 .section_2 nav .menu_wrapper .mobile_menu_top .mobile_logo img, 4599 .section_2 nav .menu_wrapper .mobile_menu_top .mobile_logo picture { 4600 width: min(100%,200px); 4601 } 4602 .section_2 nav .menu_wrapper .mobile_menu_buttons { 4603 display: block; 4604 width: 100%; 4605 } 4606 .section_2 nav .menu_wrapper .mobile_menu_buttons div[data-micro-template="buttons_container"] { 4607 display: flex; 4608 justify-content: flex-start; 4609 gap: 0 10px; 4610 padding: 0 25px; 4611 box-sizing: border-box; 4612 opacity: 0; 4613 transform: translateY(40px); 4614 transition: transform 0.5s ease, opacity 0.5s ease; 4615 position: relative; 4616 } 4617 .section_2 nav .menu_wrapper .mobile_menu_buttons div[data-micro-template="buttons_container"].active { 4618 opacity: 1; 4619 transform: translateY(0); 4620 } 4621 .section_2 nav .menu_wrapper .mobile_menu_buttons div[data-micro-template="buttons_container"] div[data-micro-template="buttons"] a.button { 4622 padding: 10px 15px; 4623 font-size: 1rem; 4624 } 4625 .section_2 nav .menu_wrapper .mobile_information { 4626 display: block; 4627 margin-top: auto; 4628 width: 100%; 4629 } 4630 .section_2 nav .menu_wrapper .mobile_information .mobile_social, 4631 .section_2 nav .menu_wrapper .mobile_information .mobile_phone, 4632 .section_2 nav .menu_wrapper .mobile_information .mobile_address { 4633 opacity: 0; 4634 transform: translateY(40px); 4635 position: relative; 4636 transition: transform 0.5s, opacity 0.5s; 4637 } 4638 .section_2 nav .menu_wrapper .mobile_information .mobile_social.active, 4639 .section_2 nav .menu_wrapper .mobile_information .mobile_phone.active, 4640 .section_2 nav .menu_wrapper .mobile_information .mobile_address.active { 4641 opacity: 1; 4642 transform: translateY(0); 4643 } 4644 .section_2 nav .menu_wrapper .mobile_information .mobile_social svg, 4645 .section_2 nav .menu_wrapper .mobile_information .mobile_social i, 4646 .section_2 nav .menu_wrapper .mobile_information .mobile_phone svg, 4647 .section_2 nav .menu_wrapper .mobile_information .mobile_phone i, 4648 .section_2 nav .menu_wrapper .mobile_information .mobile_address svg, 4649 .section_2 nav .menu_wrapper .mobile_information .mobile_address i { 4650 margin-right: 5px; 4651 } 4652 .section_2 nav .menu_wrapper .mobile_information .mobile_phone div[data-micro-template="phone"] { 4653 display: inline-block; 4654 } 4655 .section_2 nav .menu_wrapper .mobile_information .mobile_phone div[data-micro-template="tracking"] { 4656 display: inline-block; 4657 } 4658 .section_2 nav .menu_wrapper .close_icon { 4659 border: none; 4660 text-align: right; 4661 line-height: initial; 4662 padding: 10px 10px 10px 20px; 4663 display: block; 4664 cursor: pointer; 4665 box-sizing: border-box; 4666 opacity: 1; 4667 position: absolute; 4668 top: 50%; 4669 right: 0; 4670 transform: translate(0,-50%); 4671 } 4672 .section_2 nav .menu_wrapper .close_icon i, 4673 .section_2 nav .menu_wrapper .close_icon svg { 4674 font-size: 2.25rem; 4675 position: relative; 4676 color: #fff; 4677 transform: none; 4678 top: initial; 4679 right: initial; 4680 } 4681 .section_2 nav .menu_wrapper > ul { 4682 width: 100%; 4683 height: auto; 4684 padding: 0 25px; 4685 box-sizing: border-box; 4686 margin-top: var(--mobile-menu-top-spacing); 4687 } 4688 .section_2 nav .menu_wrapper > ul > li:not(:last-of-type) { 4689 margin: 0px; 4690 } 4691 .section_2 nav .menu_wrapper > ul > li:last-of-type { 4692 border-bottom: 1px solid #D2AD63; 4693 } 4694 .section_2 nav .menu_wrapper > ul > li:first-of-type { 4695 border-top: none; 4696 } 4697 .section_2 nav .menu_wrapper > ul > li { 4698 width: 100%; 4699 margin: 0px; 4700 border-top: 1px solid #D2AD63; 4701 line-height: 60px; 4702 padding: 0px; 4703 display: block; 4704 justify-content: space-between; 4705 align-items: center; 4706 opacity: 0; 4707 transition: transform 0.5s, opacity 0.5s; 4708 transform: translateY(40px); 4709 text-align: left; 4710 } 4711 .section_2 nav .menu_wrapper > ul > li svg, 4712 .section_2 nav .menu_wrapper > ul > li i { 4713 color: #fff; 4714 position: absolute; 4715 right: 0; 4716 top: 30px; 4717 transform: translate(0,-50%); 4718 transition: transform 0.3s; 4719 } 4720 .section_2 nav .menu_wrapper > ul > li.active { 4721 opacity: 1; 4722 transform: translateY(0); 4723 } 4724 .section_2 nav .menu_wrapper > ul > li .submenu_wrapper { 4725 position: relative; 4726 padding: 0; 4727 justify-content: flex-start; 4728 } 4729 .section_2 nav .menu_wrapper > ul > li .submenu_wrapper .submenu_description { 4730 display: none; 4731 } 4732 .section_2 nav .menu_wrapper > ul > li .submenu_wrapper > ul { 4733 transition: opacity 0.5s ease-in, bottom 0.5s ease; 4734 display: block; 4735 opacity: 0; 4736 padding: 0 0 20px 0; 4737 flex: 100%; 4738 } 4739 .section_2 nav .menu_wrapper > ul > li .submenu_wrapper.active > ul { 4740 opacity: 1; 4741 display: grid; 4742 grid-template-columns: repeat(1,1fr); 4743 gap: 5px 0; 4744 } 4745 .section_2 nav .menu_wrapper > ul > li[data-url="/services/"] .submenu_wrapper > ul.group_container { 4746 height: auto; 4747 } 4748 .section_2 nav .menu_wrapper > ul > li[data-url="/services/"] .submenu_wrapper > ul { 4749 grid-template-columns: repeat(1,1fr); 4750 gap: 5px 0; 4751 } 4752 .section_2 nav .menu_wrapper > ul > li a { 4753 display: inline-block; 4754 width: 100%; 4755 height: 100%; 4756 color: #fff; 4757 } 4758 .section_2 nav .menu_wrapper > ul > li > ul { 4759 padding-top: 0px; 4760 } 4761 .section_2 nav .menu_wrapper > ul > li > ul > li { 4762 width: 100%; 4763 text-align: center; 4764 } 4765 .section_2 nav .menu_wrapper > ul > li > ul > li > ul:not([data-group-container]) { 4766 position: initial; 4767 left: initial; 4768 padding-top: 20px; 4769 padding-bottom: 20px; 4770 transform: initial; 4771 text-align: center; 4772 } 4773 .section_2 nav .menu_wrapper > ul > li > ul > li > ul:not([data-group-container]) > li { 4774 line-height: 40px; 4775 width: 100%; 4776 } 4777 .section_2 nav .menu_wrapper > ul > li ul.group_container { 4778 max-width: 100%; 4779 max-height: initial; 4780 } 4781 .section_2 nav .menu_wrapper > ul > li ul.group_container > li { 4782 padding: 0; 4783 } 4784 .section_2 nav .menu_wrapper > ul > li ul.group_container > li > ul > li { 4785 text-align: left; 4786 font-size: 16px; 4787 } 4788 .section_2 nav .menu_wrapper > ul > li ul.group_container > li > ul > li h3 { 4789 font-size: 18px; 4790 margin: 0; 4791 border-bottom: 1px solid #fff; 4792 margin-bottom: 5px; 4793 padding-bottom: 5px; 4794 } 4795} 4796@media (max-width: 1024px) and (max-width: 768px) { 4797 .section_2 .menu_buttons { 4798 display: none; 4799 } 4800} 4801section[data-type="system-lightbox-container"] { 4802 transition: all 0s !important; 4803} 4804section[data-type="system-lightbox-container"].active { 4805 opacity: 1; 4806 background: rgba(0,0,0,0.6); 4807 z-index: 99; 4808} 4809</style><style>.section_2 { 4810 --group-menu-height: 320px; 4811 --group-menu-width: 1600px; 4812 --header-height: 119px; 4813 --mobile-menu-width: 450px; 4814 --nav-height: 50px; 4815 --mobile-menu-top-spacing: 10px; 4816 --mobile-menu-top-min-height: 75px; 4817 background: #1A1A1A; 4818 padding: 0px 20px; 4819 position: fixed; 4820 left: 0; 4821 top: var(--header-height); 4822 z-index: 500; 4823 transition: background 0.3s ease; 4824} 4825@media (max-width: 1024px) { 4826 .section_2 { 4827 --header-height: 60px; 4828 --nav-height: 80px; 4829 } 4830} 4831@media (max-width: 1366px) { 4832 .section_2 { 4833 --group-menu-height: 500px; 4834 --group-menu-width: 1600px; 4835 } 4836} 4837@media (max-width: 768px) { 4838 .section_2 { 4839 --header-height: 60px; 4840 --nav-height: 70px; 4841 } 4842} 4843.section_2.active:hover { 4844 background: none; 4845} 4846.section_2.active .logo { 4847 opacity: 0; 4848} 4849.section_2.background_toggle .logo { 4850 filter: brightness(0) invert(1); 4851 transition: filter 0.3s ease; 4852} 4853.section_2.background_toggle nav { 4854 color: #fff; 4855} 4856.section_2.background_toggle nav .menu_wrapper > ul > li a { 4857 color: #fff; 4858 transition: color 0.3s ease; 4859} 4860.section_2.background_toggle nav .menu_wrapper > ul > li i, 4861.section_2.background_toggle nav .menu_wrapper > ul > li svg {
4862 color: #fff; 4863 transition: color 0.3s ease; 4864} 4865.section_2.not_top { 4866 background: #1A1A1A; 4867 border-bottom: 1px solid rgba(26,26,26,0.2); 4868} 4869.section_2.not_top.active { 4870 background: none; 4871 border-bottom: none; 4872} 4873.section_2.not_top nav:after { 4874 content: ''; 4875 position: absolute; 4876 top: 0; 4877 left: 0; 4878 width: 100%; 4879 height: 100%; 4880 transition: all 0s; 4881} 4882.section_2.not_top nav.active:after { 4883 background: none; 4884} 4885.section_2.not_top.background_toggle .logo { 4886 filter: none; 4887} 4888.section_2.not_top.background_toggle nav { 4889 color: #1A1A1A; 4890} 4891.section_2.not_top.background_toggle nav .menu_wrapper > ul > li a { 4892 color: #1A1A1A; 4893} 4894.section_2.not_top.background_toggle nav .menu_wrapper > ul > li i, 4895.section_2.not_top.background_toggle nav .menu_wrapper > ul > li svg { 4896 color: #1A1A1A; 4897} 4898.section_2 .logo { 4899 position: absolute; 4900 top: 50%; 4901 left: 20px; 4902 transform: translate(0,-50%); 4903 height: var(--nav-height); 4904 transition: all 0.3s; 4905 box-sizing: border-box; 4906 padding: 5px; 4907 z-index: 150; 4908 display: none; 4909} 4910@media (max-width: 1024px) { 4911 .section_2 .logo { 4912 margin-right: 50px; 4913 display: block; 4914 } 4915} 4916.section_2 .logo a { 4917 height: 100%; 4918 width: 100%; 4919 display: flex; 4920 align-items: center; 4921} 4922.section_2 .logo img, 4923.section_2 .logo picture { 4924 height: 100%; 4925} 4926.section_2 .menu_buttons { 4927 position: absolute; 4928 right: 20px; 4929 top: 50%; 4930 transform: translate(0,-50%); 4931 z-index: 999; 4932 display: none; 4933} 4934.section_2 .menu_buttons div[data-micro-template="buttons_container"] { 4935 display: flex; 4936 gap: 0 10px; 4937} 4938.section_2 .menu_buttons div[data-micro-template="buttons_container"] div[data-micro-template="buttons"] a.button { 4939 padding: 15px; 4940} 4941.section_2 nav { 4942 display: flex; 4943 margin: 0px auto; 4944 z-index: 100; 4945 width: 100%; 4946 text-align: right; 4947 color: #fff; 4948 align-items: center; 4949 justify-content: space-between; 4950 height: var(--nav-height); 4951 box-sizing: border-box; 4952 font-size: 16px; 4953 font-family: "Montserrat"; 4954} 4955.section_2 nav a:hover { 4956 color: #D2AD63; 4957} 4958.section_2 nav.no_descriptions > .menu_wrapper > ul > li .submenu_wrapper { 4959 flex-wrap: wrap; 4960 overflow-y: auto; 4961} 4962.section_2 nav.no_descriptions > .menu_wrapper > ul > li .submenu_wrapper .submenu_description { 4963 flex-basis: 100%; 4964 text-align: center; 4965 line-height: 0; 4966 border-right: 0; 4967} 4968.section_2 nav.no_descriptions > .menu_wrapper > ul > li .submenu_wrapper .submenu_description h3 { 4969 display: inline-block; 4970 border-bottom: 1px solid rgba(171,127,41,0.5); 4971 margin-bottom: 20px; 4972 padding-bottom: 1rem; 4973 font-size: 1.5rem; 4974 text-transform: uppercase; 4975} 4976.section_2 nav.no_descriptions > .menu_wrapper > ul > li .submenu_wrapper .submenu_description p { 4977 display: none; 4978} 4979.section_2 nav.no_descriptions > .menu_wrapper > ul > li .submenu_wrapper > ul { 4980 margin: 0 auto; 4981 flex-basis: min(100%,var(--group-menu-width)); 4982 display: flex; 4983 gap: 20px 10px; 4984 justify-content: center; 4985 align-items: center; 4986 flex-wrap: wrap; 4987 flex-direction: row; 4988 padding: 0; 4989} 4990@media (max-width: 1024px) { 4991 .section_2 nav.no_descriptions > .menu_wrapper > ul > li .submenu_wrapper > ul { 4992 padding-bottom: 20px; 4993 display: grid; 4994 grid-template-columns: repeat(1,1fr); 4995 gap: 5px 0; 4996 } 4997} 4998.section_2 nav.no_descriptions > .menu_wrapper > ul > li .submenu_wrapper > ul.group_container { 4999 display: flex; 5000 flex-flow: column wrap; 5001 flex-basis: min(100%,var(--group-menu-width)); 5002 height: var(--group-menu-height); 5003 justify-content: flex-start; 5004 align-items: flex-start; 5005} 5006@media (max-width: 1024px) { 5007 .section_2 nav.no_descriptions > .menu_wrapper > ul > li .submenu_wrapper > ul.group_container { 5008 align-items: flex-start; 5009 } 5010} 5011.section_2 nav .mobile_menu { 5012 position: absolute; 5013 display: none; 5014 right: 0px; 5015 padding-right: inherit; 5016 font-size: 2rem; 5017 cursor: pointer; 5018 color: #AB7F29; 5019} 5020.section_2 nav .menu_wrapper { 5021 display: flex; 5022 margin: 0px auto; 5023 z-index: 100; 5024 width: 100%; 5025 text-align: right; 5026 color: #fff; 5027 align-items: center; 5028 justify-content: space-between; 5029 height: var(--nav-height); 5030 box-sizing: border-box; 5031 font-size: 16px; 5032 font-family: "Montserrat"; 5033} 5034.section_2 nav .menu_wrapper .mobile_menu_top { 5035 display: none; 5036} 5037.section_2 nav .menu_wrapper .mobile_menu_buttons { 5038 display: none; 5039} 5040.section_2 nav .menu_wrapper .close_icon { 5041 display: none; 5042} 5043.section_2 nav .menu_wrapper .mobile_information { 5044 display: none; 5045 box-sizing: border-box; 5046 padding: 0 25px; 5047 color: #fff; 5048 text-align: left; 5049 margin-top: 20px; 5050} 5051.section_2 nav .menu_wrapper .mobile_information .mobile_address, 5052.section_2 nav .menu_wrapper .mobile_information .mobile_phone, 5053.section_2 nav .menu_wrapper .mobile_information .mobile_social { 5054 margin-bottom: 20px; 5055} 5056.section_2 nav .menu_wrapper .mobile_information .mobile_address span, 5057.section_2 nav .menu_wrapper .mobile_information .mobile_phone span, 5058.section_2 nav .menu_wrapper .mobile_information .mobile_social span { 5059 margin-bottom: 5px; 5060 display: none; 5061 font-size: .9rem; 5062} 5063.section_2 nav .menu_wrapper .mobile_information .mobile_address a, 5064.section_2 nav .menu_wrapper .mobile_information .mobile_phone a, 5065.section_2 nav .menu_wrapper .mobile_information .mobile_social a { 5066 color: #fff; 5067} 5068.section_2 nav .menu_wrapper .mobile_information .mobile_phone.tracking span { 5069 display: block; 5070} 5071.section_2 nav .menu_wrapper .mobile_information .mobile_social > div { 5072 display: flex; 5073 justify-content: space-around; 5074 font-size: 1.8rem; 5075} 5076.section_2 nav .menu_wrapper ul { 5077 padding: 0px; 5078 margin: 0px; 5079} 5080.section_2 nav .menu_wrapper ul .submenu_wrapper { 5081 position: fixed; 5082 left: 0; 5083 width: 100%; 5084 background: #1A1A1A; 5085 transform: none; 5086 flex-direction: row; 5087 justify-content: center; 5088 padding: 30px; 5089 display: flex; 5090 box-sizing: border-box; 5091} 5092.section_2 nav .menu_wrapper ul .submenu_wrapper .submenu_description { 5093 text-align: left; 5094 border-right: 1px solid rgba(26,26,26,0.5); 5095 flex: 0 1 400px; 5096 padding-right: 20px; 5097 opacity: 0; 5098 transition: opacity 1s; 5099} 5100.section_2 nav .menu_wrapper ul .submenu_wrapper .submenu_description.active { 5101 opacity: 1; 5102} 5103.section_2 nav .menu_wrapper ul .submenu_wrapper .submenu_description h3 { 5104 margin: 0; 5105 color: #fff; 5106 line-height: initial; 5107} 5108.section_2 nav .menu_wrapper ul .submenu_wrapper .submenu_description h3 p { 5109 font-size: 1.1rem; 5110 font-weight: 400; 5111} 5112.section_2 nav .menu_wrapper ul .submenu_wrapper > ul { 5113 flex: 0 1 200px; 5114 text-align: left; 5115 padding-left: 20px; 5116 display: block; 5117 opacity: 0; 5118 transition: opacity 0.5s ease-in, bottom 0.5s ease; 5119} 5120.section_2 nav .menu_wrapper ul .submenu_wrapper > ul.active { 5121 opacity: 1; 5122} 5123.section_2 nav .menu_wrapper ul .submenu_wrapper > ul li a { 5124 color: #fff; 5125} 5126.section_2 nav .menu_wrapper ul .submenu_wrapper > ul li a:hover {
5127 color: #00FFFF; 5128} 5129.section_2 nav .menu_wrapper ul li { 5130 list-style-type: none; 5131} 5132.section_2 nav .menu_wrapper ul a { 5133 display: inline-block; 5134 width: 100%; 5135 height: 100%; 5136 color: #fff; 5137} 5138.section_2 nav .menu_wrapper ul ul { 5139 display: none; 5140 padding: 0px; 5141 flex-direction: column; 5142 position: relative; 5143 background: none; 5144} 5145.section_2 nav .menu_wrapper ul > li { 5146 padding: 0px 20px; 5147} 5148.section_2 nav .menu_wrapper ul > li > ul > ul.group_container { 5149 display: flex; 5150 flex-flow: column wrap; 5151} 5152.section_2 nav .menu_wrapper ul > li > ul > ul.group_container h3 { 5153 color: #fff; 5154 font-size: 1.5rem; 5155 margin-bottom: 10px; 5156} 5157.section_2 nav .menu_wrapper ul > li > ul > ul.group_container > li > ul { 5158 display: flex; 5159} 5160.section_2 nav .menu_wrapper ul > li > ul.group_container { 5161 width: 100%; 5162 box-sizing: border-box; 5163 max-width: 1000px; 5164 flex-direction: column; 5165 flex-wrap: wrap; 5166 left: 50%; 5167 transform: translate(-50%); 5168 max-height: 480px; 5169} 5170.section_2 nav .menu_wrapper ul > li > ul.group_container h3 { 5171 font-size: 1.25rem; 5172 font-weight: bold; 5173 margin: 0px 0px 0.5rem; 5174} 5175.section_2 nav .menu_wrapper ul > li > ul.group_container > li > ul { 5176 position: relative; 5177 display: block; 5178 background: none; 5179 margin-bottom: 0.5rem; 5180} 5181.section_2 nav .menu_wrapper ul > li > ul.group_container > li > ul > li { 5182 line-height: 40px; 5183 text-align: left; 5184} 5185.section_2 nav .menu_wrapper > ul { 5186 margin-left: auto; 5187 margin-right: auto; 5188} 5189.section_2 nav .menu_wrapper > ul > li { 5190 position: relative; 5191 transform: all 0.3s; 5192 display: inline-block; 5193 line-height: var(--nav-height); 5194 padding: 0px 20px; 5195} 5196.section_2 nav .menu_wrapper > ul > li.active { 5197 color: #00FFFF; 5198} 5199.section_2 nav .menu_wrapper > ul > li.active a { 5200 color: #00FFFF; 5201} 5202@media (max-width: 1024px) { 5203 .section_2 nav .menu_wrapper > ul > li.active a { 5204 color: #fff; 5205 } 5206} 5207.section_2 nav .menu_wrapper > ul > li.active i, 5208.section_2 nav .menu_wrapper > ul > li.active svg { 5209 color: #00FFFF; 5210} 5211@media (max-width: 1024px) { 5212 .section_2 nav .menu_wrapper > ul > li.active i, 5213 .section_2 nav .menu_wrapper > ul > li.active svg { 5214 color: #fff; 5215 } 5216} 5217.section_2 nav .menu_wrapper > ul > li > a { 5218 color: #fff; 5219 text-transform: uppercase; 5220} 5221.section_2 nav .menu_wrapper > ul > li i, 5222.section_2 nav .menu_wrapper > ul > li svg { 5223 position: absolute; 5224 right: 0; 5225 top: 50%; 5226 transform: translate(0,-50%); 5227 color: #fff; 5228 transition: transform 0.3s; 5229} 5230.section_2 nav .menu_wrapper > ul > li[data-url="/services/"] .submenu_wrapper { 5231 flex-wrap: wrap; 5232 overflow-y: auto; 5233} 5234.section_2 nav .menu_wrapper > ul > li[data-url="/services/"] .submenu_wrapper .submenu_description { 5235 flex-basis: 100%; 5236 text-align: center; 5237 line-height: 0; 5238 border-right: 0; 5239} 5240.section_2 nav .menu_wrapper > ul > li[data-url="/services/"] .submenu_wrapper .submenu_description h3 { 5241 display: inline-block; 5242 border-bottom: 1px solid rgba(171,127,41,0.5); 5243 margin-bottom: 20px; 5244} 5245.section_2 nav .menu_wrapper > ul > li[data-url="/services/"] .submenu_wrapper > ul { 5246 margin: 0 auto; 5247 flex-basis: min(100%,var(--group-menu-width)); 5248 display: grid; 5249 grid-template-columns: repeat(4,1fr); 5250 gap: 10px; 5251} 5252.section_2 nav .menu_wrapper > ul > li[data-url="/services/"] .submenu_wrapper > ul.group_container { 5253 display: flex; 5254 flex-flow: column wrap; 5255 flex-basis: min(100%,var(--group-menu-width)); 5256 height: var(--group-menu-height); 5257} 5258.section_2 nav .menu_wrapper > ul > li > ul { 5259 padding-top: 20px; 5260 padding-bottom: 20px; 5261 left: 50%; 5262 transform: translate(-50%); 5263} 5264.section_2 nav .menu_wrapper > ul > li > ul > li { 5265 line-height: 40px; 5266 width: 140px; 5267 text-align: left; 5268 text-align: center; 5269} 5270.section_2 nav .menu_wrapper > ul > li > ul > li > ul:not([data-group-container]) { 5271 position: absolute; 5272 left: 100%; 5273 padding-top: 20px; 5274 padding-bottom: 20px; 5275 transform: translate(0px,-60px); 5276} 5277.section_2 nav .menu_wrapper > ul > li > ul > li > ul:not([data-group-container]) > li { 5278 line-height: 40px; 5279 width: 140px; 5280} 5281@media (max-width: 1024px) { 5282 .section_2 .menu_buttons { 5283 right: 70px; 5284 } 5285 .section_2 .menu_buttons div[data-micro-template="buttons_container"] { 5286 display: flex; 5287 gap: 0 10px; 5288 } 5289 .section_2 nav { 5290 max-width: 100%; 5291 padding: 0px 20px; 5292 box-sizing: border-box; 5293 } 5294 .section_2 nav .mobile_menu { 5295 display: inline-block; 5296 top: 50%; 5297 transform: translate(0px,-50%); 5298 z-index: 4; 5299 } 5300 .section_2 nav ul { 5301 background: #1A1A1A; 5302 } 5303 .section_2 nav ul > li { 5304 box-sizing: border-box; 5305 } 5306 .section_2 nav ul ul { 5307 position: relative; 5308 transform: initial; 5309 } 5310 .section_2 nav .menu_wrapper { 5311 z-index: initial; 5312 position: fixed; 5313 height: 100%; 5314 width: min(90%,var(--mobile-menu-width)); 5315 top: 0; 5316 left: initial; 5317 transform: translateX(0); 5318 right: calc(var(--mobile-menu-width) * -1); 5319 text-align: center; 5320 display: flex; 5321 flex-direction: column; 5322 justify-content: flex-start;
5323 align-items: flex-end; 5324 opacity: 1; 5325 transition: transform 0.3s; 5326 box-sizing: border-box; 5327 padding: 0; 5328 overflow-y: auto; 5329 background: #1A1A1A; 5330 padding-bottom: 20px; 5331 } 5332 .section_2 nav .menu_wrapper.active { 5333 z-index: 1000; 5334 transform: translateX(calc(var(--mobile-menu-width) * -1)); 5335 } 5336 .section_2 nav .menu_wrapper .mobile_menu_top { 5337 position: sticky; 5338 background: #1A1A1A; 5339 width: 100%; 5340 top: 0; 5341 z-index: 99; 5342 border-bottom: 1px solid #AB7F29; 5343 display: block; 5344 box-sizing: border-box; 5345 padding: 10px 0 0 0; 5346 min-height: var(--mobile-menu-top-min-height); 5347 } 5348 .section_2 nav .menu_wrapper .mobile_menu_top .mobile_logo { 5349 text-align: left; 5350 filter: none; 5351 margin-left: 10px; 5352 } 5353 .section_2 nav .menu_wrapper .mobile_menu_top .mobile_logo img, 5354 .section_2 nav .menu_wrapper .mobile_menu_top .mobile_logo picture { 5355 width: min(100%,200px); 5356 } 5357 .section_2 nav .menu_wrapper .mobile_menu_buttons { 5358 display: none; 5359 width: 100%; 5360 } 5361 .section_2 nav .menu_wrapper .mobile_menu_buttons div[data-micro-template="buttons_container"] { 5362 display: flex; 5363 justify-content: flex-start; 5364 gap: 0 10px; 5365 padding: 0 25px; 5366 box-sizing: border-box; 5367 opacity: 0; 5368 transform: translateY(40px); 5369 transition: transform 0.5s ease, opacity 0.5s ease; 5370 position: relative; 5371 } 5372 .section_2 nav .menu_wrapper .mobile_menu_buttons div[data-micro-template="buttons_container"].active { 5373 opacity: 1; 5374 transform: translateY(0); 5375 } 5376 .section_2 nav .menu_wrapper .mobile_menu_buttons div[data-micro-template="buttons_container"] div[data-micro-template="buttons"] a.button { 5377 padding: 10px 15px; 5378 font-size: 1rem; 5379 } 5380 .section_2 nav .menu_wrapper .mobile_information { 5381 display: block; 5382 margin-top: auto; 5383 width: 100%; 5384 } 5385 .section_2 nav .menu_wrapper .mobile_information .mobile_social, 5386 .section_2 nav .menu_wrapper .mobile_information .mobile_phone, 5387 .section_2 nav .menu_wrapper .mobile_information .mobile_address { 5388 opacity: 0; 5389 transform: translateY(40px); 5390 position: relative; 5391 transition: transform 0.5s, opacity 0.5s; 5392 } 5393 .section_2 nav .menu_wrapper .mobile_information .mobile_social.active, 5394 .section_2 nav .menu_wrapper .mobile_information .mobile_phone.active, 5395 .section_2 nav .menu_wrapper .mobile_information .mobile_address.active { 5396 opacity: 1; 5397 transform: translateY(0); 5398 } 5399 .section_2 nav .menu_wrapper .mobile_information .mobile_social svg, 5400 .section_2 nav .menu_wrapper .mobile_information .mobile_social i, 5401 .section_2 nav .menu_wrapper .mobile_information .mobile_phone svg, 5402 .section_2 nav .menu_wrapper .mobile_information .mobile_phone i, 5403 .section_2 nav .menu_wrapper .mobile_information .mobile_address svg, 5404 .section_2 nav .menu_wrapper .mobile_information .mobile_address i { 5405 margin-right: 5px; 5406 } 5407 .section_2 nav .menu_wrapper .mobile_information .mobile_phone div[data-micro-template="phone"] { 5408 display: inline-block; 5409 } 5410 .section_2 nav .menu_wrapper .mobile_information .mobile_phone div[data-micro-template="tracking"] { 5411 display: inline-block; 5412 } 5413 .section_2 nav .menu_wrapper .close_icon { 5414 border: none; 5415 text-align: right; 5416 line-height: initial; 5417 padding: 10px 10px 10px 20px; 5418 display: block; 5419 cursor: pointer; 5420 box-sizing: border-box; 5421 opacity: 1; 5422 position: absolute; 5423 top: 50%; 5424 right: 0; 5425 transform: translate(0,-50%); 5426 } 5427 .section_2 nav .menu_wrapper .close_icon i, 5428 .section_2 nav .menu_wrapper .close_icon svg { 5429 font-size: 2.25rem; 5430 position: relative; 5431 color: #AB7F29; 5432 transform: none; 5433 top: initial; 5434 right: initial; 5435 } 5436 .section_2 nav .menu_wrapper > ul { 5437 width: 100%; 5438 height: auto; 5439 padding: 0 25px; 5440 box-sizing: border-box; 5441 margin-top: var(--mobile-menu-top-spacing); 5442 } 5443 .section_2 nav .menu_wrapper > ul > li:not(:last-of-type) { 5444 margin: 0px; 5445 } 5446 .section_2 nav .menu_wrapper > ul > li:last-of-type { 5447 border-bottom: 1px solid #D2AD63; 5448 } 5449 .section_2 nav .menu_wrapper > ul > li:first-of-type { 5450 border-top: none; 5451 } 5452 .section_2 nav .menu_wrapper > ul > li { 5453 width: 100%; 5454 margin: 0px; 5455 border-top: 1px solid #D2AD63; 5456 line-height: 60px; 5457 padding: 0px; 5458 display: block; 5459 justify-content: space-between; 5460 align-items: center; 5461 opacity: 0; 5462 transition: transform 0.5s, opacity 0.5s; 5463 transform: translateY(40px); 5464 text-align: left; 5465 } 5466 .section_2 nav .menu_wrapper > ul > li svg, 5467 .section_2 nav .menu_wrapper > ul > li i { 5468 color: #fff; 5469 position: absolute; 5470 right: 0; 5471 top: 30px; 5472 transform: translate(0,-50%); 5473 transition: transform 0.3s; 5474 } 5475 .section_2 nav .menu_wrapper > ul > li.active { 5476 opacity: 1; 5477 transform: translateY(0); 5478 } 5479 .section_2 nav .menu_wrapper > ul > li .submenu_wrapper { 5480 position: relative; 5481 padding: 0; 5482 justify-content: flex-start; 5483 } 5484 .section_2 nav .menu_wrapper > ul > li .submenu_wrapper .submenu_description { 5485 display: none; 5486 } 5487 .section_2 nav .menu_wrapper > ul > li .submenu_wrapper > ul { 5488 transition: opacity 0.5s ease-in, bottom 0.5s ease; 5489 display: block; 5490 opacity: 0; 5491 padding: 0 0 20px 0; 5492 flex: 100%; 5493 } 5494 .section_2 nav .menu_wrapper > ul > li .submenu_wrapper.active > ul { 5495 opacity: 1; 5496 display: grid; 5497 grid-template-columns: repeat(1,1fr); 5498 gap: 5px 0; 5499 } 5500 .section_2 nav .menu_wrapper > ul > li[data-url="/services/"] .submenu_wrapper > ul.group_container { 5501 height: auto; 5502 } 5503 .section_2 nav .menu_wrapper > ul > li[data-url="/services/"] .submenu_wrapper > ul { 5504 grid-template-columns: repeat(1,1fr); 5505 gap: 5px 0; 5506 } 5507 .section_2 nav .menu_wrapper > ul > li a { 5508 display: inline-block; 5509 width: 100%; 5510 height: 100%; 5511 color: #fff; 5512 } 5513 .section_2 nav .menu_wrapper > ul > li > ul { 5514 padding-top: 0px; 5515 } 5516 .section_2 nav .menu_wrapper > ul > li > ul > li { 5517 width: 100%; 5518 text-align: center; 5519 } 5520 .section_2 nav .menu_wrapper > ul > li > ul > li > ul:not([data-group-container]) { 5521 position: initial; 5522 left: initial; 5523 padding-top: 20px; 5524 padding-bottom: 20px; 5525 transform: initial; 5526 text-align: center; 5527 } 5528 .section_2 nav .menu_wrapper > ul > li > ul > li > ul:not([data-group-container]) > li { 5529 line-height: 40px; 5530 width: 100%; 5531 } 5532 .section_2 nav .menu_wrapper > ul > li ul.group_container { 5533 max-width: 100%; 5534 max-height: initial; 5535 } 5536 .section_2 nav .menu_wrapper > ul > li ul.group_container > li { 5537 padding: 0; 5538 } 5539 .section_2 nav .menu_wrapper > ul > li ul.group_container > li > ul > li { 5540 text-align: left; 5541 font-size: 16px; 5542 } 5543 .section_2 nav .menu_wrapper > ul > li ul.group_container > li > ul > li h3 { 5544 font-size: 18px; 5545 margin: 0; 5546 border-bottom: 1px solid #fff; 5547 margin-bottom: 5px; 5548 padding-bottom: 5px; 5549 } 5550} 5551@media (max-width: 1024px) and (max-width: 768px) { 5552 .section_2 .menu_buttons { 5553 display: none; 5554 } 5555} 5556section[data-type="system-lightbox-container"] { 5557 transition: all 0s !important; 5558} 5559section[data-type="system-lightbox-container"].active { 5560 opacity: 1; 5561 background: rgba(0,0,0,0.6); 5562 z-index: 99; 5563} 5564</style><section class="section_2" data-module="griffin_menu" data-html="" data-json="/custom/modules/griffin_menu/module.json" data-page="blog" data-full-path="/blog/"> 5565 <div class="logo"> 5566 <a href="/" aria-label="link"><img alt="Iconic Dental Arts | Intraoral Camera, Dentures and CBCT" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/images/logo-5.png"></a> 5567 </div> 5568 <nav> 5569 <div class="mobile_menu"><i class="fas fa-bars"></i></div><div class="menu_wrapper"><div class="mobile_menu_top"><a href="/" class="mobile_logo" aria-label="link"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/images/logo-5.png" alt="Iconic Dental Arts | Intraoral Camera, Dentures and CBCT"></a><div class="close_icon"><i class="fal fa-times"></i></div></div><ul><li data-url="/" data-label="About Us" data-new-window="" data-group="" data-group-label="" aria-haspopup="true">About Us<ul><li data-url="/our-office/" data-label="Our Office" data-new-window="" data-group="" data-group-label="">Our Office</li><li data-url="/team/" data-label="Our Team" data-new-window="" data-group="" data-group-label="">Our Team</li><li data-url="/tour/" data-label="Office Tour" data-new-window="" data-group="" data-group-label="">Office Tour</li><li data-url="/iconic-technology/" data-label="Iconic Technology" data-new-window="" data-group="" data-group-label="">Iconic Technology</li></ul></li><li data-url="/staff/dr-joe-isaacson/" data-label="Our Doctor" data-new-window="" data-group="" data-group-label="">Our Doctor</li><li data-url="/services/" data-label="Services" data-new-window="" data-group="" data-group-label="" aria-haspopup="true">Services<ul><li data-url="/services/dental-cleanings/" data-label="Dental Cleanings" data-group="general" data-group-label="General">Dental Cleanings</li><li data-url="/services/emergency-treatment/" data-label="Emergency Treatment" data-group="general" data-group-label="General">Emergency Treatment</li><li data-url="/services/night-guards/" data-label="Night Guards" data-group="general" data-group-label="General">Night Guards</li><li data-url="/services/oral-cancer-screening/" data-label="Oral Cancer Screening" data-group="general" data-group-label="General">Oral Cancer Screening</li><li data-url="/services/oral-exams/" data-label="Oral Exams" data-group="general" data-group-label="General">Oral Exams</li><li data-url="/services/pediatric-dentistry/" data-label="Pediatric Dentistry" data-group="general" data-group-label="General">
5569Pediatric Dentistry</li><li data-url="/services/periodontal-treatment/" data-label="Periodontal Treatment" data-group="general" data-group-label="General">Periodontal Treatment</li><li data-url="/services/preventative-program/" data-label="Preventative Program" data-group="general" data-group-label="General">Preventative Program</li><li data-url="/services/root-canals/" data-label="Root Canals" data-group="general" data-group-label="General">Root Canals</li><li data-url="/services/sedation-dentistry/" data-label="Sedation Dentistry" data-group="general" data-group-label="General">Sedation Dentistry</li><li data-url="/services/tmj-disorders/" data-label="TMJ Disorders" data-group="general" data-group-label="General">TMJ Disorders</li><li data-url="/services/all-on-4/" data-label="All-on-4®" data-group="restorative" data-group-label="Restorative">All-on-4®</li><li data-url="/services/dental-bridges/" data-label="Dental Bridges" data-group="restorative" data-group-label="Restorative">Dental Bridges</li><li data-url="/services/dental-fillings/" data-label="Dental Fillings" data-group="restorative" data-group-label="Restorative">Dental Fillings</li><li data-url="/services/dentures/" data-label="Dentures" data-group="restorative" data-group-label="Restorative">Dentures</li><li data-url="/services/implant-dentistry/" data-label="Implant Dentistry" data-group="restorative" data-group-label="Restorative">Implant Dentistry</li><li data-url="/services/implant-restorations/" data-label="Implant Restorations" data-group="restorative" data-group-label="Restorative">Implant Restorations</li><li data-url="/services/invisalign/" data-label="Invisalign®" data-group="cosmetic" data-group-label="Cosmetic">Invisalign®</li><li data-url="/services/smile-gallery/" data-label="Smile Gallery" data-group="cosmetic" data-group-label="Cosmetic">Smile Gallery</li><li data-url="/services/teeth-whitening/" data-label="Teeth Whitening" data-group="cosmetic" data-group-label="Cosmetic">Teeth Whitening</li><li data-url="/services/ovejet/" data-label="Overjet" data-group="technology2" data-group-label="Technology">Overjet</li></ul></li><li data-url="/technology/" data-label="Same Day Crowns" data-new-window="" data-group="" data-group-label="">Same Day Crowns</li><li data-url="/" data-label="For Patients" data-new-window="" data-group="" data-group-label="" aria-haspopup="true">For Patients<ul><li data-url="/new-patients/" data-label="New Patient Info" data-new-window="" data-group="" data-group-label="">New Patient Info</li><li data-url="/financing/" data-label="Financing Options" data-new-window="" data-group="" data-group-label="">Financing Options</li>
5569<li data-url="/post-op-instructions/" data-label="Post Op Instructions" data-new-window="" data-group="" data-group-label="">Post Op Instructions</li><li data-url="/smile-gallery/" data-label="Smile Gallery" data-new-window="" data-group="" data-group-label="">Smile Gallery</li><li data-url="/library/" data-label="Dental Health" data-new-window="" data-group="" data-group-label="">Dental Health</li><li data-url="/videos/" data-label="Dental Videos" data-new-window="" data-group="" data-group-label="">Dental Videos</li></ul></li><li data-url="https://joe-isaacson-dental.illumitrac.com/" data-label="Iconic Benefits" data-new-window="" data-group="" data-group-label="">Iconic Benefits</li><li data-url="/contact/" data-label="Contact" data-new-window="" data-group="" data-group-label="">Contact</li></ul><div class="mobile_menu_buttons"><div data-micro-template="buttons_container"> 5570 <div data-micro-template="buttons"> 5571 <a class="button" href="/appointments/" role="button" aria-label="Request Appointment">Request Appointment</a> 5572</div> 5573</div></div><div class="mobile_information"><div class="mobile_address"><span>Address:</span> <i class="fal fa-map-marker-alt"></i> 8200 N May Ave, Oklahoma City, OK 73120</div><div class="mobile_phone"><span>Phone:</span> <i class="fal fa-phone"></i> <div data-micro-template="phone"> 5574 <a href="tel:+14059438575" aria-label="(405) 943-8575" class="tel_14059438575" data-click-call="0">(405) 943-8575</a> 5575</div></div><div class="mobile_social"> <div data-micro-template="social_icons_dynamic"> 5576 <div data-micro-template="social_icons"> 5577 <a href="https://www.facebook.com/iconicdentalarts" aria-label="link" rel="noopener" target="_blank"><i class="fab fa-facebook-f"></i></a> 5578</div><div data-micro-template="social_icons"> 5579 <a href="https://www.google.com/maps/place/Joe+Isaacson+Dental/@35.554294,-97.566513,15z/data=!4m7!3m6!1s0x0:0x761eb4fe3d53e6c0!8m2!3d35.554294!4d-97.566513!9m1!1b1" aria-label="link" rel="noopener" target="_blank"><i class="fab fa-google"></i></a> 5580</div><div data-micro-template="social_icons"> 5581 <a href="https://twitter.com/BlendedDentist" aria-label="link" rel="noopener" target="_blank"><i class="fab fa-twitter"></i></a> 5582</div><div data-micro-template="social_icons"> 5583 <a href="https://www.instagram.com/iconicdentalarts" aria-label="link" rel="noopener" target="_blank"><i class="fab fa-instagram"></i></a> 5584</div><div data-micro-template="social_icons"> 5585 <a href="https://www.youtube.com/channel/UCmOTKQniQLiN6srHU8tiX4w" aria-label="link" rel="noopener" target="_blank"><i class="fab fa-youtube"></i></a> 5586</div><div data-micro-template="social_icons"> 5587 <a href="/blog/" aria-label="link"><i class="fas fa-blog"></i></a> 5588</div> 5589</div></div></div></div> </nav> 5590 <div class="menu_buttons"><div data-micro-template="buttons_container"> 5591 <div data-micro-template="buttons"> 5592 <a class="button" href="/appointments/" role="button" aria-label="Request Appointment">Request Appointment</a> 5593</div> 5594</div></div></section>
5594<script> 5595 javascript.prototype[get_id()] = function() { 5596 var json = {"settings":{"group_labels":{"group_1":"Group 1","group_2":"Group 2","group_3":"Group 3","group_4":"Group 4","group_5":"Group 5"},"submenu_icon":"fas fa-caret-down","background_color_toggle":false,"swipe_close_threshold":100,"use_descriptions":false,"mobile_logo":true,"mobile_address":true,"mobile_social":true,"mobile_phone":true,"mobile_tracking":false,"menu_buttons":true,"menu_buttons_content":[{"label":"Request Appointment","url":"\/appointments\/"}]},"content":{"menu":[{"label":"About Us","group":"","url":"\/","description":"This is a description that should not be displaying since I have use descriptions set to false.","menu":[{"label":"Our Office","url":"\/our-office\/"},{"label":"Our Team","url":"\/team\/"},{"label":"Office Tour","url":"\/tour\/"},{"label":"Iconic Technology","url":"\/iconic-technology\/"}]},{"label":"Our Doctor","url":"\/staff\/dr-joe-isaacson\/","description":"","group":""},{"label":"Services","url":"\/services\/","description":"","menu":"services","group":""},{"label":"Same Day Crowns","url":"\/technology\/","description":"","menu":"","group":""},{"label":"For Patients","group":"","description":"","url":"\/","menu":[{"label":"New Patient Info","url":"\/new-patients\/"},{"label":"Financing Options","url":"\/financing\/"}
5596,{"label":"Post Op Instructions","url":"\/post-op-instructions\/"},{"label":"Smile Gallery","url":"\/smile-gallery\/"},{"label":"Dental Health","url":"\/library\/"},{"label":"Dental Videos","url":"\/videos\/"}]},{"label":"Iconic Benefits","url":"https:\/\/joe-isaacson-dental.illumitrac.com\/"},{"label":"Contact","grouP":"","description":"","url":"\/contact\/"}]}}; 5597 var descriptionElements = []; 5598 var menuElements = []; 5599 var submenu_icon = json.settings.submenu_icon || "fas fa-caret-down"; 5600 var backgroundColorToggle = json.settings.background_color_toggle 5601 var menu_break = parseInt('1024px'.replace(/\D/g,'')); 5602 var useDescriptions = json.settings.use_descriptions; 5603 var menuWrapper = $('.section_2 nav > .menu_wrapper'); 5604 var mobileMenu = $('.section_2 .mobile_menu'); 5605 var baseNavElements = $('.section_2 nav > .menu_wrapper > ul > li'); 5606 var navElement = $('.section_2 nav'); 5607 var touchStartX; 5608 var touchStartY; 5609 var swipeCloseThreshold = json.settings.touch_threshold || 100; 5610 var openMenu = false; 5611 5612 // If background color toggle is true, make the logo + nav elements the background color until you scroll 5613 if(backgroundColorToggle) { 5614 $('.section_2').addClass('background_toggle'); 5615 } 5616 5617 // If the menu JSON is using the descriptions, this creates an array of them and sets a base class for styling 5618 if(!useDescriptions) { 5619 navElement.addClass('no_descriptions'); 5620 } 5621 $.each(json.content.menu, function(index, element) { 5622 if(element.hasOwnProperty('description')) { 5623 descriptionElements.push(element); 5624 } 5625 if(element.hasOwnProperty('menu') && element.menu.length) { 5626 menuElements.push(element); 5627 } 5628 }); 5629 5630 // Wrap all of the menu inner UL's with the submenu wrapper that houses the descriptions 5631 $('.section_2 > nav > .menu_wrapper > ul > li > ul').wrap("<ul class='submenu_wrapper' style='display: none'>"); 5632 5633 // Add the carrot icons to the side of nav items that have menus 5634 $('.section_2 > nav > .menu_wrapper > ul > li:has(> ul)').each(function () { 5635 var $fa = `<i class="menu_icon ${submenu_icon}">`; 5636 $(this).append($fa); 5637 }); 5638 5639 // Add the array of descriptions to the actual menu 5640 $('.submenu_wrapper').each(function(index) { 5641 $(this).prepend(` 5642 <div class="submenu_description"> 5643 <h3>${menuElements[index].label} 5644 <p>${descriptionElements[index].description} 5645 5646 `); 5647 }); 5648 5649 // Convert LI elements to links 5650 $('.section_2 nav *[data-url]:not([data-url=""])').each(function() { 5651 $(this).contents().filter(function() { 5652 return this.nodeType == 3; 5653 }) 5654 .replaceWith('<a href="'+$(this).attr('data-url')+'">'+$(this).attr('data-label')+''); 5655 if ($(this).attr('data-url').includes('http')) { 5656 $(this).children('a').attr('target', '_blank'); 5657 $(this).children('a').attr('rel', 'noopener'); 5658 } 5659 }); 5660 5661 // Find UL elements containing groups and categorize them 5662 $('.section_2 nav ul > li').each(function() { 5663 if ($(this).attr('data-group')) { 5664 var parent_ul = $(this).closest('ul'); 5665 var group = $(this).attr('data-group') 5666 5667 $(parent_ul).addClass('group_container'); 5668 5669 if ($(this).siblings('li[data-group-container="'+group+'"]').length == 0) { 5670 group_container_li = 5671 $('<li />') 5672 .attr('data-group-container', group) 5673 .appendTo(parent_ul); 5674 5675 group_container_ul = 5676 $('<ul />') 5677 .attr('data-group-container', group) 5678 .appendTo(group_container_li); 5679 5680 group_label = 5681 $('<li />') 5682 .appendTo(group_container_ul); 5683 5684 group_header = 5685 $('<h3 />') 5686 .html($(this).attr('data-group-label')) 5687 .appendTo(group_label); 5688 } 5689 5690 $(this).appendTo($(this).siblings('li[data-group-container="'+group+'"]').children('ul[data-group-container="'+group+'"]')); 5691 } 5692 }); 5693 5694 $('.section_2 nav > .menu_wrapper > ul > li > ul > li:not([data-group-container])').each(function() { 5695 $(this).closest('ul').closest('li').css('position', 'relative'); 5696 }); 5697 5698 // Set click and hover events 5699 {/* $('.section_2 nav li:not([data-group-container]):has(> ul)').mouseover(function(e) { 5700 if (mobileMenu.css('display') == 'none' && $(this).hasClass('active') == false) { 5701 let activeEl = $(this); 5702 $('.section_2 nav > .menu_wrapper > ul > li').each(function(el) { 5703 $(this).removeClass('active'); 5704 $(this).find('.menu_icon').css('transform', 'translate(0, -50%) rotate(0deg)'); 5705 $(this).find('.submenu_wrapper > ul').removeClass('active'); 5706 $(this).find('.submenu_description').removeClass('active'); 5707 $('> .submenu_wrapper', this).stop().slideUp(function() { 5708 }); 5709 }); 5710 5711 $(this).addClass('active'); 5712 $(this).find('.menu_icon').css('transform', 'translate(0, -50%) rotate(-180deg)'); 5713 $('> .submenu_wrapper', this).stop().slideDown(function() { 5714 $(this).css('display', 'flex'); 5715 }); 5716 $(this).find('.submenu_description').toggleClass('active'); 5717 setTimeout(function() { 5718 activeEl.find('.submenu_wrapper > ul').addClass('active'); 5719 }, 100); 5720 } 5721 }); */} 5722 5723 $('.section_2 nav li:not([data-group-container]):has(> ul)').click(function(e) { 5724 if (mobileMenu.css('display') == 'none' && $(this).hasClass('active') == false) { 5725 let activeEl = $(this); 5726 openMenu = true; 5727 $('.section_2 nav > .menu_wrapper > ul > li').each(function(el) { 5728 $(this).removeClass('active'); 5729 $(this).find('.menu_icon').css('transform', 'translate(0, -50%) rotate(0deg)'); 5730 $(this).find('.submenu_wrapper > ul').removeClass('active'); 5731 $(this).find('.submenu_description').removeClass('active'); 5732 $('> .submenu_wrapper', this).stop().slideUp(0, function() { 5733 }); 5734 }); 5735 5736 $(this).addClass('active'); 5737 $(this).find('.menu_icon').css('transform', 'translate(0, -50%) rotate(-180deg)'); 5738 $('> .submenu_wrapper', this).stop().slideDown(function() { 5739 $(this).css('display', 'flex'); 5740 }); 5741 $(this).find('.submenu_description').toggleClass('active'); 5742 setTimeout(function() { 5743 activeEl.find('.submenu_wrapper > ul').addClass('active'); 5744 }, 100); 5745 } 5746 else if (mobileMenu.css('display') == 'none' && $(this).hasClass('active') == true) { 5747 $(this).removeClass('active'); 5748 $(this).find('.submenu_wrapper > ul').removeClass('active'); 5749 $(this).find('.submenu_description').removeClass('active'); 5750 $(this).find('.menu_icon').css('transform', 'translate(0, -50%)'); 5751 $('> .submenu_wrapper', this).stop().slideUp(0); 5752 openMenu = false;
5753 } 5754 else { 5755 if(!$(this).find('.submenu_wrapper').hasClass('active')) { 5756 $('.section_2 nav > .menu_wrapper > ul > li > .submenu_wrapper').slideUp().removeClass('active'); 5757 $('.section_2 nav > .menu_wrapper > ul > li .menu_icon').css('transform', 'translate(0, -50%) rotate(0deg)'); 5758 let clicked = $(this); 5759 setTimeout(function() { 5760 clicked.find('.submenu_wrapper').slideToggle().toggleClass('active'); 5761 clicked.find('.menu_icon').css('transform', 'translate(0, -50%) rotate(-180deg)'); 5762 }, 10) 5763 } 5764 else { 5765 $(this).find('.submenu_wrapper').slideToggle().toggleClass('active'); 5766 $(this).find('.menu_icon').css('transform', 'translate(0, -50%) rotate(0deg)'); 5767 } 5768 } 5769 }); 5770 5771 // Set mobile events and click behavior 5772 $('.section_2 nav > .menu_wrapper .close_icon').click(function() { 5773 closeMobileMenu(); 5774 }); 5775 5776 $('.section_2 nav .mobile_menu').click(function() { 5777 openMobileMenu(); 5778 }); 5779 5780 $('.section_2 nav > .menu_wrapper > ul > li:has(>ul) > a').click(function(e) { 5781 if($(this).attr('href')) { 5782 e.preventDefault(); 5783 } 5784 }); 5785 5786 $('.section_2 nav li > ul > li').click(function(e) { 5787 e.stopPropagation(); 5788 }); 5789 5790 // Assign an event listener that sets up clicking outside the active mobile menu to close it 5791 window.addEventListener('click', function(e) { 5792 if(menuWrapper.hasClass('active') && !$(e.target).closest('.menu_wrapper').length && !$(e.target).closest('.mobile_menu').length) { 5793 closeMobileMenu(); 5794 } 5795 if (openMenu && (mobileMenu.css('display') == 'none') && !$(e.target).closest('.menu_wrapper').length) { 5796 baseNavElements.each(function(el) { 5797 if($(this).hasClass('active')) { 5798 $(this).removeClass('active'); 5799 $(this).find('.submenu_wrapper > ul').removeClass('active'); 5800 $(this).find('.submenu_description').removeClass('active'); 5801 $(this).find('.menu_icon').css('transform', 'translate(0, -50%)'); 5802 $('> .submenu_wrapper', this).stop().slideUp(0); 5803 } 5804 }); 5805 } 5806 }); 5807 5808 window.addEventListener('touchstart', function(e) { 5809 if(menuWrapper.hasClass('active') && !$(e.target).closest('.menu_wrapper').length && !$(e.target).closest('.mobile_menu').length) { 5810 closeMobileMenu(); 5811 } 5812 }) 5813 5814 // Assigns an event listener so you can use the escape key to close the mobile menu 5815 document.onkeydown = (e) => { 5816 if (menuWrapper.hasClass('active')) { 5817 if (e.keyCode == 27) { 5818 closeMobileMenu(); 5819 } 5820 } 5821 } 5822 5823 // Close the menu on horizontal resize 5824 var window_width = window.innerWidth; 5825 window.addEventListener('resize', function() { 5826 if (window.innerWidth == window_width) { 5827 return; 5828 } 5829 else { 5830 if ($('.section_2 nav .mobile_menu').css('display') == 'none' ) { 5831 removeActive(); 5832 baseNavElements.each(function(el) { 5833 $(this).removeClass('active'); 5834 $(this).find('.menu_icon').css('transform', 'translate(0, -50%) rotate(0deg)'); 5835 $('> ul', this).stop().fadeOut(200); 5836 }); 5837 } 5838 else { 5839 closeMobileMenu(); 5840 } 5841 } 5842 window_width = window.innerWidth; 5843 }); 5844 5845 // Iterate over elements and stagger adding active class 5846 function iterateActive(elements){ 5847 var i = 0; 5848 addActive(elements[i++]); 5849 var interval = setInterval(function(){ 5850 addActive(elements[i++]); 5851 if(i == elements.length) { 5852 clearInterval(interval); 5853 } 5854 }, 50); 5855 } 5856 5857 // Runs through the nav structure and removes all active classes 5858 function removeActive() { 5859 baseNavElements.removeClass('active'); 5860 baseNavElements.find('.submenu_description').removeClass('active'); 5861 baseNavElements.find('.submenu_wrapper > ul').removeClass('active'); 5862 } 5863 5864 // Add active class to element 5865 function addActive(element) { 5866 element.classList.add('active'); 5867 } 5868 5869 // Toggles the dark background for the page while the menu is open 5870 function toggleLightboxOverlay(remove) { 5871 if(remove && remove.length) { 5872 $('section[data-type="system-lightbox-container"]').removeClass('active'); 5873 } 5874 else { 5875 $('section[data-type="system-lightbox-container"]').toggleClass('active'); 5876 } 5877 } 5878 5879 // Closes mobile menu, removes neccessary classes, and toggles off the lightbox overlay 5880 function closeMobileMenu() { 5881 menuWrapper.removeClass('active'); 5882 navElement.removeClass('active'); 5883 $('.section_2').removeClass('active'); 5884 baseNavElements.find('.submenu_wrapper').removeClass('active') 5885 $('.section_2 nav > .menu_wrapper > .mobile_information > div').removeClass('active'); 5886 $('.section_2 nav > .menu_wrapper > .mobile_menu_buttons > div').removeClass('active'); 5887 baseNavElements.each(function(el) { 5888 $(this).removeClass('active'); 5889 $(this).find('.menu_icon').css('transform', 'translate(0, -50%) rotate(0deg)'); 5890 $('> ul', this).stop().fadeOut(200); 5891 }); 5892 toggleLightboxOverlay('remove'); 5893 $('html').css('overflow', 'visible'); 5894 window.removeEventListener('touchstart', swipeCloseStart, true); 5895 window.removeEventListener('touchend', swipeCloseEnd, true) 5896 } 5897 5898 // Opens the mobile menu, adds active class, and toggles the lightbox overlay 5899 function openMobileMenu() { 5900 toggleLightboxOverlay(); 5901 menuWrapper.toggleClass('active'); 5902 $('html').css('overflow', 'hidden'); 5903 $('.section_2').addClass('active'); 5904 navElement.addClass('active'); 5905 setTimeout(function() { 5906 iterateActive(document.querySelectorAll('.section_2 nav > .menu_wrapper > ul > li')); 5907 }, 200) 5908 if(json.settings.menu_buttons) { 5909 setTimeout(function() { 5910 $('.section_2 nav > .menu_wrapper > .mobile_menu_buttons > div').addClass('active'); 5911 }, 300) 5912 } 5913 if(json.settings.mobile_address || json.settings.mobile_social || json.settings.mobile_phone) { 5914 setTimeout(function() { 5915 iterateActive(document.querySelectorAll('.section_2 nav > .menu_wrapper > .mobile_information > div')); 5916 }, 400) 5917 } 5918 window.addEventListener('touchstart', swipeCloseStart, true); 5919 window.addEventListener('touchend', swipeCloseEnd, true) 5920 } 5921 5922 function swipeCloseStart(e) { 5923 touchStartX = e.touches[0].clientX; 5924 } 5925 5926 function swipeCloseEnd(e) { 5927 touchEnd = e.changedTouches[0].clientX; 5928 touchDiff = touchStartX - touchEnd; 5929 absDiff = Math.abs(touchStartX - touchEnd); 5930 5931 if (touchDiff < 0 && absDiff > swipeCloseThreshold) { 5932 closeMobileMenu(); 5933 } 5934 5935 touchStartX, touchEnd, touchDiff, absDiff = 0; 5936 } 5937 } 5938</script>
vendor: 1 bytes, line 5938
5938
5939<script> 5940 javascript.prototype[get_id()] = function() { 5941 $(document).scroll(function() { 5942 var position = $(document).scrollTop(); 5943 5944 if (position > 100) { 5945 if (!$('.section_2').hasClass('not_top')) { 5946 $('.section_2').addClass('not_top'); 5947 } 5948 } 5949 else { 5950 if ($('.section_2').hasClass('not_top')) { 5951 $('.section_2').removeClass('not_top'); 5952 } 5953 } 5954 }); 5955 } 5956</script>
5956<style>.section_3 .block_container .block { 5957 height: 620px; 5958 background-size: cover; 5959 background-position: center center; 5960 display: flex; 5961 justify-content: center; 5962 align-items: flex-end; 5963 padding: 0px 40px; 5964 box-sizing: border-box; 5965 text-align: center; 5966} 5967.section_3 .block_container .block h1 { 5968 color: white; 5969 position: relative; 5970 z-index: 30; 5971 margin-bottom: 60px; 5972} 5973.section_3 .block_container .block .background_gradient { 5974 overflow: hidden; 5975 width: 100%; 5976 height: 100%; 5977 position: absolute; 5978 z-index: 20; 5979 background-image: linear-gradient(to bottom right,rgba(26,26,26,0.4),rgba(26,26,26,0.3)); 5980} 5981.section_3 .block_container .block .background_container { 5982 overflow: hidden; 5983 width: 100%; 5984 height: 100%; 5985 position: absolute; 5986 z-index: 10; 5987} 5988@media (max-width: 1280px) { 5989 .section_3 .block_container .block h1 { 5990 font-size: 4rem; 5991 } 5992} 5993@media (max-width: 1024px) { 5994 .section_3 .block_container .block { 5995 height: 520px; 5996 } 5997 .section_3 .block_container .block h1 { 5998 font-size: 3.5rem; 5999 } 6000} 6001@media (max-width: 768px) { 6002 .section_3 .block_container .block { 6003 height: 420px; 6004 } 6005 .section_3 .block_container .block h1 { 6006 font-size: 2.5rem; 6007 } 6008} 6009@media (max-width: 640px) { 6010 .section_3 .block_container .block { 6011 height: 320px; 6012 padding: 0px 20px; 6013 } 6014 .section_3 .block_container .block h1 { 6015 font-size: 1.5rem; 6016 } 6017} 6018</style><style>.section_3 { 6019 margin-top: 165px; 6020} 6021.section_3 .block_container .block { 6022 height: 520px; 6023 background-size: cover; 6024 background-position: center center; 6025 display: flex; 6026 justify-content: center; 6027 align-items: flex-end; 6028 padding: 0px 40px; 6029 box-sizing: border-box; 6030 text-align: center; 6031} 6032.section_3 .block_container .block h1 { 6033 color: #00FFFF; 6034 position: relative; 6035 z-index: 30; 6036 margin-bottom: 60px; 6037} 6038.section_3 .block_container .block .background_gradient { 6039 overflow: hidden; 6040 width: 100%; 6041 height: 100%; 6042 position: absolute; 6043 z-index: 20; 6044 background-image: linear-gradient(to bottom right,rgba(26,26,26,0.4),rgba(26,26,26,0.3)); 6045} 6046.section_3 .block_container .block .background_container { 6047 overflow: hidden; 6048 width: 100%; 6049 height: 100%; 6050 position: absolute; 6051 z-index: 10; 6052} 6053@media (max-width: 1280px) { 6054 .section_3 .block_container .block h1 { 6055 font-size: 4rem; 6056 } 6057} 6058@media (max-width: 1024px) { 6059 .section_3 { 6060 margin-top: 140px; 6061 } 6062 .section_3 .block_container .block { 6063 height: 520px; 6064 } 6065 .section_3 .block_container .block h1 { 6066 font-size: 3.5rem; 6067 } 6068} 6069@media (max-width: 768px) { 6070 .section_3 { 6071 margin-top: 120px; 6072 } 6073 .section_3 .block_container .block { 6074 height: 420px; 6075 } 6076 .section_3 .block_container .block h1 { 6077 font-size: 2.5rem; 6078 } 6079} 6080@media (max-width: 640px) { 6081 .section_3 .block_container .block { 6082 height: 320px; 6083 padding: 0px 20px; 6084 } 6085 .section_3 .block_container .block h1 { 6086 font-size: 1.5rem; 6087 } 6088} 6089</style> 6090<section class="section_3" data-module="interior_banner" data-html="/system/modules/interior_banner/1.0.2/module.html" data-json="" data-page="blog" data-full-path="/blog/"> 6091 <div class="content_container"> 6092 <div class="content"> 6093 <div class="block_container"> 6094 <div class="block"> 6095 <div class="background_gradient"></div> 6096 <div class="background_container"> 6097 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/images/interior1.jpg" alt="Dentist in Oklahoma City"> 6098 </div> 6099 <h1>Blog</h1> 6100 </div> 6101</div> 6102 6103 </div> 6104 </div> 6105</section>
6105<script> 6106 javascript.prototype[get_id()] = function() { 6107 6108 } 6109</script>
6109<style>.section_4 .block *:first-of-type { 6110 margin-top: 0px; 6111} 6112</style><style>.section_4 { 6113 padding: 40px 40px; 6114} 6115.section_4 .button { 6116 border: 0px; 6117 color: #00FFFF; 6118 padding: 0px; 6119 text-transform: uppercase; 6120 font-weight: bold; 6121 background-color: rgba(255,255,255,0); 6122} 6123.section_4 .button:hover { 6124 background-color: rgba(255,255,255,0); 6125 color: #00cccc; 6126} 6127.section_4 .content_container { 6128 display: flex; 6129 max-width: 1200px; 6130 margin-left: auto; 6131 margin-right: auto; 6132} 6133.section_4 .content_container .content { 6134 display: flex; 6135 flex-direction: column; 6136 align-self: flex-start; 6137 width: 100%; 6138} 6139.section_4 .content_container .content .block_container:not(:last-of-type) { 6140 margin-bottom: 20px; 6141} 6142.section_4 .content_container .content .block_container[data-type="blog_list"] { 6143 flex-basis: auto; 6144 flex: 1; 6145 padding: 20px; 6146 box-sizing: border-box; 6147 border: 1px solid rgba(255,255,255,0.5); 6148 transition: border 0.4s, box-shadow 0.4s; 6149 box-shadow: 0px 0px 20px rgba(26,26,26,0.05); 6150} 6151.section_4 .content_container .content .block_container[data-type="blog_list"]:hover { 6152 border: 1px solid #1A1A1A; 6153 box-shadow: 0px 0px 40px rgba(26,26,26,0.2); 6154} 6155.section_4 .content_container .content .block_container[data-type="blog_list"]:hover a:hover { 6156 color: #1A1A1A; 6157} 6158.section_4 .content_container .content .block_container[data-type="blog_list"]:hover .button { 6159 color: #00cccc; 6160} 6161.section_4 .content_container .content .block_container[data-type="blog_list"] .block { 6162 display: flex; 6163 align-items: center; 6164} 6165.section_4 .content_container .content .block_container[data-type="blog_list"] .block .background_container { 6166 width: 100%; 6167 height: 300px; 6168 background-size: cover; 6169 background-position: center center; 6170 margin-right: 40px; 6171 flex: 1 0 300px; 6172} 6173.section_4 .content_container .content .block_container[data-type="blog_list"] .block h2 { 6174 font-size: 1.5rem; 6175} 6176.section_4 .content_container .content .block_container[data-type="blog_list"] .block h2 a:hover { 6177 color: #4d4d4d; 6178} 6179.section_4 .content_container .content .block_container[data-type="blog_list"] .block h3 { 6180 font-size: 1rem; 6181 margin: 0px; 6182 margin-bottom: 1rem; 6183} 6184@media (max-width: 1280px) { 6185 .section_4 .content_container .content { 6186 flex-wrap: wrap; 6187 justify-content: center; 6188 } 6189 .section_4 .content_container .content .block_container[data-type="blog_list"] { 6190 box-sizing: border-box; 6191 } 6192 .section_4 .content_container .content .block_container[data-type="blog_list"]:not(:last-of-type) { 6193 margin-right: 0px; 6194 } 6195 .section_4 .content_container .content .block_container[data-type="blog_list"]:nth-of-type(odd) { 6196 padding-right: 10px; 6197 } 6198 .section_4 .content_container .content .block_container[data-type="blog_list"]:nth-of-type(even) { 6199 padding-left: 10px; 6200 } 6201 .section_4 .content_container .content .block_container[data-type="blog_list"] .block .background_container { 6202 flex: 1 0 200px; 6203 } 6204} 6205@media (max-width: 768px) { 6206 .section_4 .button { 6207 line-height: 1rem; 6208 } 6209 .section_4 .content_container .content { 6210 justify-content: center; 6211 } 6212 .section_4 .content_container .content .block_container { 6213 margin-bottom: 20px; 6214 border-bottom: 1px dotted #00FFFF; 6215 flex: 1 0 100%; 6216 } 6217 .section_4 .content_container .content .block_container .block img { 6218 width: 100%; 6219 } 6220 .section_4 .content_container .content .block_container:nth-of-type(odd) { 6221 padding-right: 0px; 6222 } 6223 .section_4 .content_container .content .block_container:nth-of-type(even) { 6224 padding-left: 0px; 6225 } 6226} 6227@media (max-width: 720px) { 6228 .section_4 .content_container .content .block_container[data-type="blog_list"]:nth-of-type(even) { 6229 margin: 20px 0px; 6230 padding: 20px; 6231 } 6232 .section_4 .content_container .content .block_container[data-type="blog_list"]:nth-of-type(odd) { 6233 margin: 20px 0px; 6234 padding: 20px; 6235 } 6236 .section_4 .content_container .content .block_container[data-type="blog_list"] .block { 6237 flex-direction: column; 6238 } 6239 .section_4 .content_container .content .block_container[data-type="blog_list"] .block .background_container { 6240 height: 200px; 6241 margin-right: 0px; 6242 margin-bottom: 20px; 6243 } 6244} 6245@media (max-width: 640px) { 6246 .section_4 { 6247 padding: 20px; 6248 } 6249} 6250</style><style>.section_4 { 6251 padding: 40px 40px; 6252} 6253.section_4 .content_container { 6254 max-width: 1400px; 6255 justify-content: center; 6256 display: flex; 6257 margin-left: auto; 6258 margin-right: auto; 6259 box-sizing: border-box; 6260} 6261.section_4 .content_container .content { 6262 width: 100%; 6263} 6264.section_4 .content_container .content h2 { 6265 font-size: 2.4rem; 6266} 6267.section_4 .content_container .content h3 { 6268 font-size: 1.8rem; 6269} 6270.section_4 .content_container .content .flex-con { 6271 display: flex; 6272 flex-wrap: wrap; 6273 justify-content: center; 6274} 6275.section_4 .content_container .content .flex-con .flex-item { 6276 flex-basis: 50%; 6277 padding: 16px; 6278 box-sizing: border-box; 6279 text-align: center; 6280} 6281@media (max-width: 768px) { 6282 .section_4 .content_container .content .flex-con .flex-item { 6283 flex-basis: 100%; 6284 } 6285} 6286.section_4 .content_container .content .spacer { 6287 padding: 40px 0; 6288} 6289@media (max-width: 480px) { 6290 .section_4 .content_container .content .spacer { 6291 padding: 20px 0; 6292 } 6293} 6294.section_4 .content_container .content .img-center { 6295 display: block; 6296 margin: 16px auto; 6297} 6298.section_4 .content_container .content .image_grid { 6299 display: grid; 6300 gap: 20px; 6301} 6302@media (max-width: 768px) { 6303 .section_4 .content_container .content .image_grid { 6304 gap: 10px; 6305 } 6306} 6307.section_4 .content_container .content .image_grid .image { 6308 border: 4px solid #00FFFF; 6309} 6310.section_4 .content_container .content .image_grid .image img, 6311.section_4 .content_container .content .image_grid .image picture { 6312 display: block; 6313} 6314.section_4 .content_container .content .image_grid.two_wide { 6315 grid-template-columns: repeat(2,1fr); 6316} 6317@media (max-width: 480px) { 6318 .section_4 .content_container .content .image_grid.two_wide { 6319 grid-template-columns: repeat(1,1fr); 6320 } 6321} 6322.section_4 .content_container .content .image_grid.three_wide { 6323 grid-template-columns: repeat(3,1fr); 6324} 6325@media (max-width: 480px) { 6326 .section_4 .content_container .content .image_grid.three_wide { 6327 grid-template-columns: repeat(1,1fr); 6328 } 6329} 6330.section_4 .content_container .content div[data-micro-template="interior_fullwidth_cta"] {
6331 background: #E9E9E9; 6332} 6333.section_4 .content_container .content div[data-micro-template="interior_fullwidth_cta"]:nth-of-type(1) .fullwidth_cta_container .image { 6334 order: 2; 6335} 6336.section_4 .content_container .content div[data-micro-template="interior_fullwidth_cta"] .fullwidth_cta_container { 6337 width: min(100%,1400px); 6338 padding: 100px 20px; 6339 display: grid; 6340 grid-template-columns: repeat(2,1fr); 6341 gap: 60px; 6342} 6343@media (max-width: 768px) { 6344 .section_4 .content_container .content div[data-micro-template="interior_fullwidth_cta"] .fullwidth_cta_container { 6345 grid-template-columns: repeat(1,1fr); 6346 gap: 10px; 6347 } 6348} 6349.section_4 .content_container .content div[data-micro-template="interior_fullwidth_cta"] .fullwidth_cta_container .image { 6350 border: 4px solid #00FFFF; 6351} 6352@media (max-width: 768px) { 6353 .section_4 .content_container .content div[data-micro-template="interior_fullwidth_cta"] .fullwidth_cta_container .image { 6354 order: 2; 6355 } 6356} 6357.section_4 .content_container .content div[data-micro-template="interior_fullwidth_cta"] .fullwidth_cta_container .image img, 6358.section_4 .content_container .content div[data-micro-template="interior_fullwidth_cta"] .fullwidth_cta_container .image picture { 6359 display: block; 6360} 6361.section_4 .content_container .content div[data-micro-template="interior_fullwidth_cta"] .fullwidth_cta_container .text h3 { 6362 color: #AB7F29; 6363} 6364.section_4 .content_container .content div[data-micro-template="interior_fullwidth_cta"] .text h3 { 6365 color: #1A1A1A; 6366} 6367.section_4 .content_container .content div[data-micro-template="interior_fullwidth_cta"] .text p { 6368 color: #1A1A1A; 6369} 6370.section_4 .content_container .content div[data-micro-template="interior_image_split"] { 6371 grid-template-columns: repeat(2,1fr); 6372} 6373@media (max-width: 768px) { 6374 .section_4 .content_container .content div[data-micro-template="interior_image_split"] { 6375 grid-template-columns: repeat(1,1fr); 6376 } 6377} 6378.section_4 .content_container .content div[data-micro-template="interior_image_split"] .image { 6379 border: 4px solid #00FFFF; 6380} 6381.section_4 .content_container .content div[data-micro-template="interior_image_split"] .image img, 6382.section_4 .content_container .content div[data-micro-template="interior_image_split"] .image picture { 6383 display: block; 6384} 6385.section_4 .content_container .content h3 { 6386 font-size: 2rem; 6387 color: #AB7F29; 6388} 6389.section_4 .content_container .content h4 { 6390 font-size: 1.5rem; 6391} 6392.section_4 .content_container .content p, 6393.section_4 .content_container .content li { 6394 font-weight: 500; 6395} 6396.section_4 .content_container .content a { 6397 color: #AB7F29; 6398} 6399.section_4 .content_container .content a:hover { 6400 color: #00FFFF; 6401} 6402.section_4 .content_container .content .team_container { 6403 display: grid; 6404 grid-template-columns: repeat(1,1fr); 6405 gap: 40px; 6406} 6407@media (max-width: 768px) { 6408 .section_4 .content_container .content .team_container { 6409 gap: 0; 6410 } 6411} 6412.section_4 .content_container .content .team_container .team_member { 6413 display: block; 6414} 6415.section_4 .content_container .content .team_container .team_member .staff { 6416 width: 100%; 6417 text-align: center; 6418} 6419.section_4 .content_container .content .team_container .team_member .bio { 6420 width: 100%; 6421 text-align: center; 6422} 6423@media (max-width: 480px) { 6424 .section_4 .content_container .content .team_container .team_member .bio { 6425 padding-top: 0; 6426 } 6427} 6428.section_4 .content_container .content .team_container .team_member .bio h3 { 6429 margin: 0; 6430} 6431@media (max-width: 480px) { 6432 .section_4 .content_container .content .team_container .team_member .bio h3 { 6433 font-size: 1.25rem; 6434 } 6435} 6436@media (max-width: 480px) { 6437 .section_4 .content_container .content .team_container .team_member .bio h4 { 6438 font-size: 1rem; 6439 margin: 5px 0; 6440 } 6441} 6442.section_4 .content_container .content .doc-float { 6443 margin-top: 6px; 6444 margin-bottom: 12px; 6445 float: right; 6446 margin-left: 20px; 6447 max-width: 500px; 6448} 6449@media (max-width: 900px) { 6450 .section_4 .content_container .content .doc-float { 6451 float: none; 6452 margin: 10px auto; 6453 display: block; 6454 } 6455} 6456.section_4 .content_container .content .doc-float p { 6457 text-align: center; 6458 background: #00FFFF; 6459 color: #1A1A1A; 6460 padding: 15px 10px; 6461 margin-top: -10px; 6462} 6463.section_4 .content_container .content .doc-float img, 6464.section_4 .content_container .content .doc-float picture { 6465 margin: 0; 6466} 6467.section_4 .content_container .content .doc-float iframe { 6468 height: 280px; 6469} 6470.section_4 .content_container .content .staff { 6471 width: 39%; 6472 box-sizing: border-box; 6473 padding: 12px; 6474 display: inline-block; 6475 vertical-align: top; 6476} 6477@media (max-width: 900px) { 6478 .section_4 .content_container .content .staff { 6479 width: 100%; 6480 display: block; 6481 } 6482} 6483.section_4 .content_container .content .bio { 6484 width: 59%; 6485 box-sizing: border-box; 6486 padding: 12px; 6487 display: inline-block; 6488 vertical-align: top; 6489} 6490@media (max-width: 900px) { 6491 .section_4 .content_container .content .bio { 6492 width: 100%; 6493 display: block; 6494 } 6495} 6496.section_4 .content_container .content .half { 6497 width: 49%; 6498 box-sizing: border-box; 6499 padding: 12px; 6500 display: inline-block; 6501 vertical-align: top; 6502} 6503@media (max-width: 900px) { 6504 .section_4 .content_container .content .half { 6505 width: 100%; 6506 display: block; 6507 } 6508} 6509.section_4 .content_container .content .half iframe { 6510 height: 280px; 6511} 6512.section_4 .content_container .content form { 6513 display: flex; 6514 flex-wrap: wrap; 6515 justify-content: space-between;
6516 background: #E9E9E9; 6517 padding: 20px; 6518 margin-bottom: 20px; 6519} 6520.section_4 .content_container .content form input { 6521 flex-basis: 48%; 6522 margin-bottom: 10px; 6523} 6524.section_4 .content_container .content form textarea { 6525 flex-basis: 100%; 6526 height: 150px; 6527} 6528.section_4 .content_container .content form input, 6529.section_4 .content_container .content form textarea { 6530 padding: 15px; 6531 box-sizing: border-box; 6532 border-bottom: 2px solid #1A1A1A; 6533} 6534.section_4 .content_container .content .elfsight { 6535 max-width: 100%; 6536} 6537.section_4 .content_container .content a.button { 6538 color: #1A1A1A; 6539} 6540.section_4 .content_container .content .button { 6541 background: linear-gradient(94deg,#B98A2E -1.86%,#D2AD63 36.41%,#B98A2E 106.21%); 6542 text-transform: uppercase; 6543 font-weight: 500; 6544 font-size: 1rem; 6545 border: 2px solid #1A1A1A; 6546 padding: 10px 40px; 6547} 6548.section_4 .content_container .content .button:hover { 6549 background: linear-gradient(94deg,#D2AD63 -1.86%,#B98A2E 36.41%,#D2AD63 106.21%); 6550 color: #1A1A1A; 6551} 6552@media (max-width: 700px) { 6553 .section_4 .content_container .content .button { 6554 margin: 10px; 6555 } 6556} 6557.section_4 .sidebar[data-sidebar="true"] { 6558 flex-basis: 375px; 6559 font-weight: 500; 6560} 6561@media (max-width: 1280px) { 6562 .section_4 .sidebar[data-sidebar="true"] { 6563 flex-basis: 325px; 6564 } 6565} 6566@media (max-width: 920px) { 6567 .section_4 .sidebar[data-sidebar="true"] { 6568 margin-bottom: 1rem; 6569 text-align: left; 6570 } 6571} 6572.section_4 .sidebar[data-sidebar="true"] div[data-sidebar="video"] .video_container { 6573 position: relative; 6574 width: 100%; 6575 height: 100%; 6576 padding-bottom: 56.25%; 6577} 6578.section_4 .sidebar[data-sidebar="true"] div[data-sidebar="video"] .video_container iframe, 6579.section_4 .sidebar[data-sidebar="true"] div[data-sidebar="video"] .video_container video { 6580 position: absolute; 6581 top: 0; 6582 left: 0; 6583 width: 100%; 6584 height: 100%; 6585} 6586.section_4[data-page="videos"] .content_container .content div[data-micro-template="video"] { 6587 margin-bottom: 60px; 6588} 6589@media (max-width: 640px) { 6590 .section_4[data-page="videos"] .content_container .content div[data-micro-template="video"] { 6591 margin-bottom: 20px; 6592 } 6593} 6594.section_4[data-page="videos"] .content_container .content div[data-micro-template="video"] .video_content_container { 6595 display: flex; 6596} 6597@media (max-width: 640px) { 6598 .section_4[data-page="videos"] .content_container .content div[data-micro-template="video"] .video_content_container { 6599 flex-wrap: wrap; 6600 } 6601} 6602.section_4[data-page="videos"] .content_container .content div[data-micro-template="video"] .video_content_container .video_container { 6603 flex-basis: 400px; 6604} 6605@media (max-width: 1024px) { 6606 .section_4[data-page="videos"] .content_container .content div[data-micro-template="video"] .video_content_container .video_container { 6607 flex-basis: 250px; 6608 } 6609} 6610@media (max-width: 640px) { 6611 .section_4[data-page="videos"] .content_container .content div[data-micro-template="video"] .video_content_container .video_container { 6612 flex-basis: 400px; 6613 } 6614} 6615.section_4[data-page="videos"] .content_container .content div[data-micro-template="video"] .video_content_container .video_container .video { 6616 padding-bottom: 75%; 6617 position: relative; 6618} 6619.section_4[data-page="videos"] .content_container .content div[data-micro-template="video"] .video_content_container .video_container .video iframe { 6620 position: absolute; 6621 height: 100%; 6622 width: 100%; 6623 left: 0; 6624 top: 0; 6625} 6626.section_4[data-page="videos"] .content_container .content div[data-micro-template="video"] .video_content_container .video_content { 6627 flex: 1; 6628 padding-left: 40px; 6629} 6630@media (max-width: 640px) { 6631 .section_4[data-page="videos"] .content_container .content div[data-micro-template="video"] .video_content_container .video_content { 6632 flex-basis: 100%; 6633 padding-left: 0; 6634 margin-top: 20px; 6635 } 6636} 6637.section_4[data-page="videos"] .content_container .content div[data-micro-template="video"] .video_content_container .video_content p:first-of-type { 6638 margin-top: 0; 6639} 6640.section_4[data-module="services_list"] .content, 6641.section_4[data-module="invisalign_list"] .content { 6642 max-width: 1200px; 6643} 6644.section_4[data-module="services_list"] .content .block_container, 6645.section_4[data-module="invisalign_list"] .content .block_container { 6646 margin-bottom: 60px; 6647 flex-basis: 32%; 6648} 6649@media (max-width: 1024px) { 6650 .section_4[data-module="services_list"] .content .block_container, 6651 .section_4[data-module="invisalign_list"] .content .block_container { 6652 flex-basis: 48%; 6653 } 6654} 6655@media (max-width: 550px) { 6656 .section_4[data-module="services_list"] .content .block_container, 6657 .section_4[data-module="invisalign_list"] .content .block_container { 6658 flex-basis: 100%; 6659 box-shadow: none; 6660 border: none; 6661 margin-bottom: 20px; 6662 } 6663} 6664.section_4[data-module="services_list"] .content .block_container .block .service, 6665.section_4[data-module="invisalign_list"] .content .block_container .block .service { 6666 display: flex; 6667 flex-direction: column; 6668} 6669.section_4[data-module="services_list"] .content .block_container .block .service .background_container, 6670.section_4[data-module="invisalign_list"] .content .block_container .block .service .background_container { 6671 border-radius: 0px; 6672 order: 3; 6673} 6674@media (max-width: 768px) { 6675 .section_4[data-module="services_list"] .content .block_container .block .service .background_container, 6676 .section_4[data-module="invisalign_list"] .content .block_container .block .service .background_container { 6677 height: 180px; 6678 } 6679} 6680@media (max-width: 550px) { 6681 .section_4[data-module="services_list"] .content .block_container .block .service .background_container, 6682 .section_4[data-module="invisalign_list"] .content .block_container .block .service .background_container { 6683 display: none; 6684 } 6685} 6686.section_4[data-module="services_list"] .content .block_container .block .service .service_content, 6687.section_4[data-module="invisalign_list"] .content .block_container .block .service .service_content { 6688 margin: 0; 6689} 6690.section_4[data-module="services_list"] .content .block_container .block .service .service_content h3, 6691.section_4[data-module="invisalign_list"] .content .block_container .block .service .service_content h3 { 6692 margin-bottom: 15px; 6693 font-weight: 300; 6694 text-align: left; 6695 font-size: 1.5rem; 6696} 6697@media (max-width: 550px) { 6698 .section_4[data-module="services_list"] .content .block_container .block .service .service_content h3, 6699 .section_4[data-module="invisalign_list"] .content .block_container .block .service .service_content h3 { 6700 margin: 0; 6701 font-size: 1.3rem; 6702 } 6703} 6704.section_4[data-module="interior_content"] div[data-micro-template="staff_list"] { 6705 box-shadow: 0px 0px 20px rgba(26,26,26,0.1); 6706 margin-bottom: 40px; 6707} 6708.section_4[data-module="interior_content"] div[data-micro-template="staff_list"] h3 { 6709 background: #1A1A1A; 6710 color: #fff; 6711 margin: 0; 6712 padding: 20px; 6713} 6714.section_4[data-module="interior_content"] div[data-micro-template="staff_list"] .staff_image { 6715 padding: 10px; 6716} 6717.section_4[data-module="interior_content"] div[data-micro-template="staff_list"] .staff_content { 6718 padding: 0 20px; 6719} 6720.section_4[data-module="interior_content"] div[data-micro-template="staff_list"] .staff_content .button { 6721 color: #1A1A1A; 6722} 6723.section_4[data-module="library_list"] .content_container .content { 6724 display: grid; 6725 grid-template-columns: repeat(2,1fr); 6726 grid-gap: 3rem; 6727} 6728@media (max-width: 920px) { 6729 .section_4[data-module="library_list"] .content_container .content { 6730 grid-template-columns: repeat(1,1fr); 6731 grid-gap: 1rem; 6732 } 6733} 6734.section_4[data-module="library_list"] .content_container .content > div { 6735 display: flex; 6736 flex-direction: column; 6737} 6738@media (max-width: 920px) { 6739 .section_4[data-module="library_list"] .content_container .content > div { 6740 margin-bottom: 0; 6741 } 6742} 6743.section_4[data-module="library_list"] .content_container .content > div h2 { 6744 font-size: 1.5rem; 6745 border-bottom: 1px solid #808080; 6746 padding-bottom: 10px; 6747} 6748@media (max-width: 640px) { 6749 .section_4[data-module="library_list"] .content_container .content > div h2 { 6750 font-size: 1.35rem; 6751 } 6752} 6753.section_4[data-module="library_list"] .content_container .content > div .library_content p { 6754 display: flex; 6755 align-items: center; 6756} 6757.section_4[data-module="library_list"] .content_container .content > div .library_content svg {
6758 color: #00FFFF; 6759 width: .625rem; 6760 height: .625rem; 6761 margin-right: 10px; 6762} 6763@media (max-width: 640px) { 6764 .section_4 { 6765 padding: 20px 20px; 6766 } 6767} 6768</style> 6769<section class="section_4" data-module="blog_content" data-html="/system/modules/blog_content/1.0.0/module.html" data-json="" data-page="blog" data-full-path="/blog/"> 6770 <div class="content_container"> 6771 <div class="content"> 6772 <div class="block_container" data-type="blog_list"> 6773 <a href="/blog/our-office/2026/23763/aging-sensitive-teeth/" aria-label="Why Are My Teeth Becoming More Sensitive as I Get Older? September 16, 2026 A sip of ice water suddenly feels much colder than it used to. Hot coffee produces a quick jolt. Even breathing cold air can occasionally make a tooth uncomfortable. Read More"> 6774 <div class="block"> 6775 <div class="background_container"> 6776 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/6502/blog.674bkk9vk5yqshhd.jpeg" alt="Iconic Dental Arts"> 6777 </div> 6778 <div class="content"> 6779 <h2>Why Are My Teeth Becoming More Sensitive as I Get Older?</h2> 6780 <h3>September 16, 2026</h3> 6781 <div class="description"><p>A sip of ice water suddenly feels much colder than it used to. Hot coffee produces a quick jolt. Even breathing cold air can occasionally make a tooth uncomfortable.</p></div> 6782 <div class="button" role="button">Read More</div> 6783 </div> 6784 </div> 6785 </a> 6786</div><div class="block_container" data-type="blog_list"> 6787 <a href="/blog/our-office/2026/23487/revolutionizing-dental-care-with-laser-dentistry/" aria-label="Revolutionizing Dental Care: The Benefits of Laser Dentistry September 8, 2026 Laser dentistry is transforming dental care with minimally invasive procedures that reduce discomfort, accelerate healing, and lower infection risk. This advanced technology enables precise treatments for various dental issues, from routine cleanings to complex surgeries, making it an excellent choice for patients seeking efficient and comfortable dental experiences. By leveraging focused light beams, lasers offer unparalleled accuracy and versatility, enhancing both preventive care and cosmetic enhancements, and setting a new standard in oral health. Read More"> 6788 <div class="block"> 6789 <div class="background_container"> 6790 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://storage.aleso.ai/images/1775668385.64f19f9c.10160005668.md.jpg" alt="Iconic Dental Arts"> 6791 </div> 6792 <div class="content"> 6793 <h2>Revolutionizing Dental Care: The Benefits of Laser Dentistry</h2> 6794 <h3>September 8, 2026</h3> 6795 <div class="description"><p>Laser dentistry is transforming dental care with minimally invasive procedures that reduce discomfort, accelerate healing, and lower infection risk. This advanced technology enables precise treatments for various dental issues, from routine cleanings to complex surgeries, making it an excellent choice for patients seeking efficient and comfortable dental experiences. By leveraging focused light beams, lasers offer unparalleled accuracy and versatility, enhancing both preventive care and cosmetic enhancements, and setting a new standard in oral health.</p></div> 6796 <div class="button" role="button">Read More</div> 6797 </div> 6798 </div> 6799 </a> 6800</div><div class="block_container" data-type="blog_list"> 6801 <a href="/blog/our-office/2026/23481/professional-teeth-whitening-unlock-your-smiles-potential/" aria-label="Unlocking Your Smile's Potential: The Power of Professional Teeth Whitening August 31, 2026 Professional teeth whitening offers a transformative solution to restore vibrancy to your teeth, going beyond surface-level fixes to deliver lasting results. This article explores the science behind professional whitening, cutting-edge techniques like Zoom! Whitening, and tips for maintaining a bright smile. Learn how personalized care and advanced technologies can help you achieve your brightest smile yet. Read More"> 6802 <div class="block"> 6803 <div class="background_container"> 6804 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://storage.aleso.ai/images/1774887803.f7fb3e52.1061999164.md.jpg" alt="Iconic Dental Arts"> 6805 </div> 6806 <div class="content"> 6807 <h2>Unlocking Your Smile's Potential: The Power of Professional Teeth Whitening</h2> 6808 <h3>August 31, 2026</h3> 6809 <div class="description"><p>Professional teeth whitening offers a transformative solution to restore vibrancy to your teeth, going beyond surface-level fixes to deliver lasting results. This article explores the science behind professional whitening, cutting-edge techniques like Zoom! Whitening, and tips for maintaining a bright smile. Learn how personalized care and advanced technologies can help you achieve your brightest smile yet.</p></div> 6810 <div class="button" role="button">Read More</div> 6811 </div> 6812 </div> 6813 </a> 6814</div><div class="block_container" data-type="blog_list"> 6815 <a href="/blog/our-office/2026/23034/revolutionizing-your-smile-advanced-teeth-whitening/" aria-label="Revolutionizing Your Smile: Advanced Teeth Whitening Techniques August 24, 2026 Explore the fascinating evolution of teeth whitening technology, from simple abrasives to advanced LED-activated treatments. Learn about modern bleaching agents, what to expect during your treatment, and how to maintain your radiant smile long after. This article delves into the benefits beyond aesthetics, including improved self-esteem and overall oral wellness. Read More"> 6816 <div class="block"> 6817 <div class="background_container"> 6818 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://storage.aleso.ai/images/1766434080.38199052.10242974722.md.jpg" alt="Iconic Dental Arts"> 6819 </div> 6820 <div class="content"> 6821 <h2>Revolutionizing Your Smile: Advanced Teeth Whitening Techniques</h2> 6822 <h3>August 24, 2026</h3> 6823 <div class="description"><p>Explore the fascinating evolution of teeth whitening technology, from simple abrasives to advanced LED-activated treatments. Learn about modern bleaching agents, what to expect during your treatment, and how to maintain your radiant smile long after. This article delves into the benefits beyond aesthetics, including improved self-esteem and overall oral wellness.</p></div> 6824 <div class="button" role="button">Read More</div> 6825 </div> 6826 </div> 6827 </a> 6828</div><div class="block_container" data-type="blog_list"> 6829 <a href="/blog/our-office/2026/23033/mastering-tmj-disorders-guide-symptoms-diagnosis-treatment/" aria-label="Mastering TMJ Disorders: Your Guide to Symptoms, Diagnosis, and Treatment Options August 17, 2026
6829Unlock the secrets of temporomandibular joint (TMJ) disorders with our comprehensive guide. Learn about symptoms like jaw discomfort, clicking sounds, and headaches, as well as diagnostic approaches using imaging techniques and clinical examinations. Explore treatment options ranging from custom night guards to advanced procedures, all tailored to your unique needs for lasting relief. Read More"> 6830 <div class="block"> 6831 <div class="background_container"> 6832 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://storage.aleso.ai/images/1776882215.282084aa.10120118190.md.jpg" alt="Iconic Dental Arts"> 6833 </div> 6834 <div class="content"> 6835 <h2>Mastering TMJ Disorders: Your Guide to Symptoms, Diagnosis, and Treatment Options</h2> 6836 <h3>August 17, 2026</h3> 6837 <div class="description"><p>Unlock the secrets of temporomandibular joint (TMJ) disorders with our comprehensive guide. Learn about symptoms like jaw discomfort, clicking sounds, and headaches, as well as diagnostic approaches using imaging techniques and clinical examinations. Explore treatment options ranging from custom night guards to advanced procedures, all tailored to your unique needs for lasting relief.</p></div> 6838 <div class="button" role="button">Read More</div> 6839 </div> 6840 </div> 6841 </a> 6842</div><div class="block_container" data-type="blog_list"> 6843 <a href="/blog/our-office/2026/22454/food-in-teeth/" aria-label="Why Food Keeps Getting Stuck Between Your Teeth and When It Could Signal a Dental Problem August 12, 2026 Almost everyone occasionally gets a piece of food caught between their teeth, particularly after eating foods with fibrous textures. Read More"> 6844 <div class="block"> 6845 <div class="background_container"> 6846 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/6472/blog.xkrxai3lsqichyk5.jpeg" alt="Iconic Dental Arts"> 6847 </div> 6848 <div class="content"> 6849 <h2>Why Food Keeps Getting Stuck Between Your Teeth and When It Could Signal a Dental Problem</h2> 6850 <h3>August 12, 2026</h3> 6851 <div class="description"><p>Almost everyone occasionally gets a piece of food caught between their teeth, particularly after eating foods with fibrous textures.</p></div> 6852 <div class="button" role="button">Read More</div> 6853 </div> 6854 </div> 6855 </a> 6856</div><div class="block_container" data-type="blog_list"> 6857 <a href="/blog/our-office/2026/22374/sedation-dentistry-calm-comfortable-experience/" aria-label="Sedation Dentistry: Your Path to a Calm, Comfortable Dental Experience August 9, 2026 Sedation dentistry is an effective way to manage anxiety and discomfort during dental procedures. This approach uses various levels of sedation, from minimal relaxation to general anesthesia, tailored to individual needs. By understanding the different types of sedation available and the safety protocols in place, patients can receive necessary dental care with reduced stress and improved outcomes. Read More"> 6858 <div class="block"> 6859 <div class="background_container"> 6860 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://storage.aleso.ai/images/1778596080.ee9565b7.10185399087.md.jpg" alt="Iconic Dental Arts"> 6861 </div> 6862 <div class="content"> 6863 <h2>Sedation Dentistry: Your Path to a Calm, Comfortable Dental Experience</h2> 6864 <h3>August 9, 2026</h3> 6865 <div class="description"><p>Sedation dentistry is an effective way to manage anxiety and discomfort during dental procedures. This approach uses various levels of sedation, from minimal relaxation to general anesthesia, tailored to individual needs. By understanding the different types of sedation available and the safety protocols in place, patients can receive necessary dental care with reduced stress and improved outcomes.</p></div> 6866 <div class="button" role="button">Read More</div> 6867 </div> 6868 </div> 6869 </a> 6870</div><div class="block_container" data-type="blog_list"> 6871 <a href="/blog/our-office/2026/22093/revolutionizing-your-smile-with-dental-bridges/" aria-label="Revolutionizing Your Smile: The Advantages of Dental Bridges August 2, 2026 Dental bridges offer a reliable solution for replacing missing teeth, providing both functional and aesthetic benefits. This comprehensive guide explores the types of dental bridges available, including traditional, cantilever, Maryland, and implant-supported options, as well as modern techniques like same-day bridges that enhance patient comfort and convenience. Learn about the process of getting a dental bridge at Iconic Dental Arts, from consultation to recovery, and understand why this restorative dentistry solution is an excellent choice for maintaining oral health. Read More"> 6872 <div class="block"> 6873 <div class="background_container"> 6874 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://storage.aleso.ai/images/1773761727.65637400.10181924847.md.jpg" alt="Iconic Dental Arts"> 6875 </div> 6876 <div class="content"> 6877 <h2>Revolutionizing Your Smile: The Advantages of Dental Bridges</h2> 6878 <h3>August 2, 2026</h3> 6879 <div class="description"><p>Dental bridges offer a reliable solution for replacing missing teeth, providing both functional and aesthetic benefits. This comprehensive guide explores the types of dental bridges available, including traditional, cantilever, Maryland, and implant-supported options, as well as modern techniques like same-day bridges that enhance patient comfort and convenience. Learn about the process of getting a dental bridge at Iconic Dental Arts, from consultation to recovery, and understand why this restorative dentistry solution is an excellent choice for maintaining oral health.</p></div> 6880 <div class="button" role="button">Read More</div> 6881 </div> 6882 </div> 6883 </a> 6884</div><div class="block_container" data-type="blog_list">
6885 <a href="/blog/our-office/2026/21440/oral-inflammation/" aria-label="Understanding Oral Inflammation: The Hidden Connection Between Your Mouth and Your Overall Health July 15, 2026 When people think about inflammation, they often picture a swollen ankle after an injury or a sore muscle after exercise. Read More"> 6886 <div class="block"> 6887 <div class="background_container"> 6888 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/6437/blog.ndty9npx3mvxxohz.jpeg" alt="Iconic Dental Arts"> 6889 </div> 6890 <div class="content"> 6891 <h2>Understanding Oral Inflammation: The Hidden Connection Between Your Mouth and Your Overall Health</h2> 6892 <h3>July 15, 2026</h3> 6893 <div class="description"><p>When people think about inflammation, they often picture a swollen ankle after an injury or a sore muscle after exercise.</p></div> 6894 <div class="button" role="button">Read More</div> 6895 </div> 6896 </div> 6897 </a> 6898</div><div class="block_container" data-type="blog_list"> 6899 <a href="/blog/our-office/2026/20396/overall-health-teeth/" aria-label="The Connection Between Oral Health and Overall Health June 16, 2026 Preventive dental care is one of the most important investments a person can make in their long-term oral health. Read More"> 6900 <div class="block"> 6901 <div class="background_container"> 6902 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/6407/blog.piyj7rwsembr4mie.jpeg" alt="Iconic Dental Arts"> 6903 </div> 6904 <div class="content"> 6905 <h2>The Connection Between Oral Health and Overall Health</h2> 6906 <h3>June 16, 2026</h3> 6907 <div class="description"><p>Preventive dental care is one of the most important investments a person can make in their long-term oral health.</p></div> 6908 <div class="button" role="button">Read More</div> 6909 </div> 6910 </div> 6911 </a> 6912</div><div class="block_container" data-type="blog_list"> 6913 <a href="/blog/our-office/2026/18965/mouth-breathing/" aria-label="Why Mouth Breathing Can Affect Your Oral Health More Than You Think May 10, 2026 Most people rarely think about how they breathe throughout the day, but the difference between breathing through the nose and breathing through the mouth can have a significant impact on oral health. Read More"> 6914 <div class="block"> 6915 <div class="background_container"> 6916 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/6344/blog.ddh9tcruqngztjui.jpeg" alt="Iconic Dental Arts"> 6917 </div> 6918 <div class="content"> 6919 <h2>Why Mouth Breathing Can Affect Your Oral Health More Than You Think</h2> 6920 <h3>May 10, 2026</h3> 6921 <div class="description"><p>Most people rarely think about how they breathe throughout the day, but the difference between breathing through the nose and breathing through the mouth can have a significant impact on oral health.</p></div> 6922 <div class="button" role="button">Read More</div> 6923 </div> 6924 </div> 6925 </a> 6926</div><div class="block_container" data-type="blog_list"> 6927 <a href="/blog/our-office/2026/17819/enhancing-your-smile/" aria-label="How Cosmetic Dentistry Can Enhance Your Smile and Confidence April 13, 2026 A smile is one of the most powerful forms of communication. It is often one of the first things people notice and can leave a lasting impression in both personal and professional interactions. Read More"> 6928 <div class="block"> 6929 <div class="background_container"> 6930 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/6275/blog.kx0vdjc70l4okj3b.jpeg" alt="Iconic Dental Arts"> 6931 </div> 6932 <div class="content"> 6933 <h2>How Cosmetic Dentistry Can Enhance Your Smile and Confidence</h2> 6934 <h3>April 13, 2026</h3> 6935 <div class="description"><p>A smile is one of the most powerful forms of communication. It is often one of the first things people notice and can leave a lasting impression in both personal and professional interactions.</p></div> 6936 <div class="button" role="button">Read More</div> 6937 </div> 6938 </div> 6939 </a> 6940</div><div class="block_container" data-type="blog_list"> 6941 <a href="/blog/our-office/2026/16530/healthy-gums/" aria-label="The Importance of Healthy Gums for a Strong Smile March 11, 2026 When people think about dental health, they often focus primarily on their teeth. However, the gums play an equally important role in maintaining a healthy and stable smile. Read More"> 6942 <div class="block"> 6943 <div class="background_container"> 6944 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/6226/blog.mqq0ebijkjzzda7a.jpeg" alt="Iconic Dental Arts"> 6945 </div> 6946 <div class="content"> 6947 <h2>The Importance of Healthy Gums for a Strong Smile</h2> 6948 <h3>March 11, 2026</h3> 6949 <div class="description"><p>
6949When people think about dental health, they often focus primarily on their teeth. However, the gums play an equally important role in maintaining a healthy and stable smile.</p></div> 6950 <div class="button" role="button">Read More</div> 6951 </div> 6952 </div> 6953 </a> 6954</div><div class="block_container" data-type="blog_list"> 6955 <a href="/blog/our-office/2026/15460/overall-wellness/" aria-label="The Connection Between Oral Health and Overall Wellness February 5, 2026 Oral health is deeply connected to overall wellness, even though it is often treated as separate from the rest of the body. Read More"> 6956 <div class="block"> 6957 <div class="background_container"> 6958 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/6201/blog.ancqg9wzno2uy0tg.jpeg" alt="Iconic Dental Arts"> 6959 </div> 6960 <div class="content"> 6961 <h2>The Connection Between Oral Health and Overall Wellness</h2> 6962 <h3>February 5, 2026</h3> 6963 <div class="description"><p>Oral health is deeply connected to overall wellness, even though it is often treated as separate from the rest of the body.</p></div> 6964 <div class="button" role="button">Read More</div> 6965 </div> 6966 </div> 6967 </a> 6968</div><div class="block_container" data-type="blog_list"> 6969 <a href="/blog/our-office/2026/14577/tooth-sensitivity/" aria-label="Tooth Sensitivity: Causes, Treatments, and How Dentists Help Restore Comfort January 5, 2026 Tooth sensitivity is a common dental concern that affects people of all ages and can significantly impact daily comfort. Read More"> 6970 <div class="block"> 6971 <div class="background_container"> 6972 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/6144/blog.l204oqs9nxdr4n3i.jpeg" alt="Iconic Dental Arts"> 6973 </div> 6974 <div class="content"> 6975 <h2>Tooth Sensitivity: Causes, Treatments, and How Dentists Help Restore Comfort</h2> 6976 <h3>January 5, 2026</h3> 6977 <div class="description"><p>Tooth sensitivity is a common dental concern that affects people of all ages and can significantly impact daily comfort.</p></div> 6978 <div class="button" role="button">Read More</div> 6979 </div> 6980 </div> 6981 </a> 6982</div><div class="block_container" data-type="blog_list"> 6983 <a href="/blog/our-office/2025/14119/overall-health/" aria-label="Understanding the Link Between Oral Health and Overall Wellness December 10, 2025 Modern dentistry recognizes that oral health is deeply connected to overall health. Read More"> 6984 <div class="block"> 6985 <div class="background_container"> 6986 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/6122/blog.pjxgvw5qrbtnfhym.jpeg" alt="Iconic Dental Arts"> 6987 </div> 6988 <div class="content"> 6989 <h2>Understanding the Link Between Oral Health and Overall Wellness</h2> 6990 <h3>December 10, 2025</h3> 6991 <div class="description"><p>Modern dentistry recognizes that oral health is deeply connected to overall health.</p></div> 6992 <div class="button" role="button">Read More</div> 6993 </div> 6994 </div> 6995 </a> 6996</div><div class="block_container" data-type="blog_list"> 6997 <a href="/blog/our-office/2025/13598/gum-disease/" aria-label="Understanding and Treating Gum Disease November 11, 2025 Gum disease, or periodontal disease, is one of the most common yet often overlooked dental conditions. Read More"> 6998 <div class="block"> 6999 <div class="background_container"> 7000 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/6097/blog.vfuaojsmdi6qcxzs.jpeg" alt="Iconic Dental Arts"> 7001 </div> 7002 <div class="content"> 7003 <h2>Understanding and Treating Gum Disease</h2> 7004 <h3>November 11, 2025</h3> 7005 <div class="description"><p>Gum disease, or periodontal disease, is one of the most common yet often overlooked dental conditions.</p></div> 7006 <div class="button" role="button">Read More</div> 7007 </div> 7008 </div> 7009 </a> 7010</div><div class="block_container" data-type="blog_list"> 7011 <a href="/blog/our-office/2025/12969/restore-your-smile/" aria-label="Restoring Your Smile with Dental Crowns and Bridges October 6, 2025 A healthy smile does more than make a good first impressionâit helps you eat comfortably, speak clearly, and maintain overall confidence. Read More"> 7012 <div class="block"> 7013 <div class="background_container"> 7014 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/6066/blog.d2imct1spjzurgpd.jpeg" alt="Iconic Dental Arts"> 7015 </div> 7016 <div class="content"> 7017 <h2>Restoring Your Smile with Dental Crowns and Bridges</h2> 7018 <h3>October 6, 2025</h3> 7019 <div class="description"><p>A healthy smile does more than make a good first impressionâit helps you eat comfortably, speak clearly, and maintain overall confidence.</p></div> 7020 <div class="button" role="button">Read More</div> 7021 </div> 7022 </div> 7023 </a> 7024</div><div class="block_container" data-type="blog_list"> 7025 <a href="/blog/our-office/2025/11849/brightening-smiles/" aria-label="Teeth Whitening: Brightening Smiles with Professional Care September 4, 2025 A bright, radiant smile has always been associated with confidence, youth, and good health. Yet over time, many people notice their teeth begin to lose their sparkle. Read More"> 7026 <div class="block"> 7027 <div class="background_container"> 7028 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/6009/blog.fbuxb8jm1lqbjmye.jpeg" alt="Iconic Dental Arts"> 7029 </div> 7030 <div class="content"> 7031 <h2>Teeth Whitening: Brightening Smiles with Professional Care</h2> 7032 <h3>September 4, 2025</h3> 7033 <div class="description"><p>A bright, radiant smile has always been associated with confidence, youth, and good health. Yet over time, many people notice their teeth begin to lose their sparkle.</p></div> 7034 <div class="button" role="button">Read More</div> 7035 </div> 7036 </div> 7037 </a> 7038</div><div class="block_container" data-type="blog_list"> 7039 <a href="/blog/our-office/2025/11092/clear-aligners/" aria-label="Enhance Your Smile with Clear Aligners: A Modern Alternative to Braces August 5, 2025 Crooked teeth or bite issues used to mean years of wearing metal braces, but todayâs patients have a better optionâclear aligners. Read More"> 7040 <div class="block"> 7041 <div class="background_container"> 7042 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/5902/blog.baqgnjayzftddi2c.jpeg" alt="Iconic Dental Arts"> 7043 </div> 7044 <div class="content"> 7045 <h2>Enhance Your Smile with Clear Aligners: A Modern Alternative to Braces</h2> 7046 <h3>August 5, 2025</h3> 7047 <div class="description"><p>Crooked teeth or bite issues used to mean years of wearing metal braces, but todayâs patients have a better optionâclear aligners.</p></div> 7048 <div class="button" role="button">Read More</div> 7049 </div> 7050 </div> 7051 </a> 7052</div><div class="block_container" data-type="blog_list"> 7053 <a href="/blog/our-office/2025/10643/dental-crowns/" aria-label="Restoring Your Smile with Dental Crowns July 7, 2025 Teeth are remarkably strong, but life happens â and sometimes, a tooth needs extra help to look and function its best. Read More"> 7054 <div class="block"> 7055 <div class="background_container"> 7056 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/5842/blog.u9bhprlqdqv1yvlv.jpeg" alt="Iconic Dental Arts"> 7057 </div> 7058 <div class="content"> 7059 <h2>Restoring Your Smile with Dental Crowns</h2> 7060 <h3>July 7, 2025</h3> 7061 <div class="description"><p>Teeth are remarkably strong, but life happens â and sometimes, a tooth needs extra help to look and function its best.</p></div> 7062 <div class="button" role="button">Read More</div> 7063 </div> 7064 </div> 7065 </a> 7066</div><div class="block_container" data-type="blog_list"> 7067 <a href="/blog/our-office/2025/10448/all-on-4-revolutionizing-dental-restoration/" aria-label="Revolutionizing Dental Restoration: The All-On-4 Implant System June 20, 2025 The All-On-4 implant system is transforming dental restoration with its innovative approach to full mouth reconstruction. This method uses just four strategically placed implants to support an entire arch of prosthetic teeth, offering a stable and natural-looking solution for patients experiencing significant tooth loss. Unlike traditional methods, the All-On-4 system minimizes invasive procedures and recovery times, providing immediate results and improved oral health with long-lasting benefits. Read More"> 7068 <div class="block"> 7069 <div class="background_container"> 7070 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://storage.aleso.ai/images/1743445412.62ae62a2.1069006767.md.jpg" alt="Iconic Dental Arts"> 7071 </div> 7072 <div class="content"> 7073 <h2>Revolutionizing Dental Restoration: The All-On-4 Implant System</h2> 7074 <h3>June 20, 2025</h3> 7075 <div class="description"><p>The All-On-4 implant system is transforming dental restoration with its innovative approach to full mouth reconstruction. This method uses just four strategically placed implants to support an entire arch of prosthetic teeth, offering a stable and natural-looking solution for patients experiencing significant tooth loss. Unlike traditional methods, the All-On-4 system minimizes invasive procedures and recovery times, providing immediate results and improved oral health with long-lasting benefits.</p></div> 7076 <div class="button" role="button">Read More</div> 7077 </div> 7078 </div> 7079 </a> 7080</div><div class="block_container" data-type="blog_list"> 7081 <a href="/blog/our-office/2025/10221/same-day-crowns/" aria-label="Same-Day Crowns: Quick,
7081Convenient Smile Solutions for Your Summer June 5, 2025 Summer is the season for travel, family barbecues, weddings, and spontaneous weekend getaways. Read More"> 7082 <div class="block"> 7083 <div class="background_container"> 7084 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/5786/blog.zwnrvyvvsjkuy6mp.jpeg" alt="Iconic Dental Arts"> 7085 </div> 7086 <div class="content"> 7087 <h2>Same-Day Crowns: Quick, Convenient Smile Solutions for Your Summer</h2> 7088 <h3>June 5, 2025</h3> 7089 <div class="description"><p>Summer is the season for travel, family barbecues, weddings, and spontaneous weekend getaways.</p></div> 7090 <div class="button" role="button">Read More</div> 7091 </div> 7092 </div> 7093 </a> 7094</div><div class="block_container" data-type="blog_list"> 7095 <a href="/blog/our-office/2025/9342/care-without-fear/" aria-label="Redefining the Dental ExperienceâCare Without Fear May 1, 2025 Dental anxiety is more common than most people realize. Read More"> 7096 <div class="block"> 7097 <div class="background_container"> 7098 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/5701/blog.bdzoke5ctbdwsems.jpeg" alt="Iconic Dental Arts"> 7099 </div> 7100 <div class="content"> 7101 <h2>Redefining the Dental ExperienceâCare Without Fear</h2> 7102 <h3>May 1, 2025</h3> 7103 <div class="description"><p>Dental anxiety is more common than most people realize.</p></div> 7104 <div class="button" role="button">Read More</div> 7105 </div> 7106 </div> 7107 </a> 7108</div><div class="block_container" data-type="blog_list"> 7109 <a href="/blog/our-office/2025/9126/overcoming-dental-anxiety/" aria-label="Overcoming Dental Anxiety: Tips for a Stress-Free Visit April 1, 2025 For many people, visiting the dentist can be a source of anxiety. Read More"> 7110 <div class="block"> 7111 <div class="background_container"> 7112 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/5643/blog.xadofmzzwibjwjua.jpeg" alt="Iconic Dental Arts"> 7113 </div> 7114 <div class="content"> 7115 <h2>Overcoming Dental Anxiety: Tips for a Stress-Free Visit</h2> 7116 <h3>April 1, 2025</h3> 7117 <div class="description"><p>For many people, visiting the dentist can be a source of anxiety.</p></div> 7118 <div class="button" role="button">Read More</div> 7119 </div> 7120 </div> 7121 </a> 7122</div><div class="block_container" data-type="blog_list"> 7123 <a href="/blog/our-office/2025/8758/importance-of-regular-dental-visits/" aria-label="Why Regular Dental Visits Are Essential for Your Health March 3, 2025 Most people know they should visit the dentist, but many delay or skip appointments altogether. Read More"> 7124 <div class="block"> 7125 <div class="background_container"> 7126 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/5503/blog.x1kx1ejtscaqktyc.jpeg" alt="Iconic Dental Arts"> 7127 </div> 7128 <div class="content"> 7129 <h2>Why Regular Dental Visits Are Essential for Your Health</h2> 7130 <h3>March 3, 2025</h3> 7131 <div class="description"><p>Most people know they should visit the dentist, but many delay or skip appointments altogether.</p></div> 7132 <div class="button" role="button">Read More</div> 7133 </div> 7134 </div> 7135 </a> 7136</div><div class="block_container" data-type="blog_list"> 7137 <a href="/blog/our-office/2025/8489/permanent-solution-for-missing-teeth/" aria-label="Dental Implants: A Permanent Solution for Missing Teeth February 3, 2025 Missing teeth can impact more than just your appearanceâthey affect your ability to chew, speak, and maintain oral health. Read More"> 7138 <div class="block"> 7139 <div class="background_container"> 7140 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/5392/blog.jczpwxumji51uzzl.jpeg" alt="Iconic Dental Arts"> 7141 </div> 7142 <div class="content"> 7143 <h2>Dental Implants: A Permanent Solution for Missing Teeth</h2> 7144 <h3>February 3, 2025</h3> 7145 <div class="description"><p>Missing teeth can impact more than just your appearanceâthey affect your ability to chew, speak, and maintain oral health.</p></div> 7146 <div class="button" role="button">Read More</div> 7147 </div> 7148 </div> 7149 </a> 7150</div><div class="block_container" data-type="blog_list"> 7151 <a href="/blog/our-office/2025/8249/cosmetic-dentistry/" aria-label="Enhance Your Smile with Cosmetic Dentistry January 2, 2025 A confident smile is one of the most powerful tools for making a great first impression. Our cosmetic dentistry services are designed to help you achieve the smile youâve always wanted. Read More"> 7152 <div class="block"> 7153 <div class="background_container"> 7154 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/5237/blog.jxgvsv2l0542yysb.jpeg" alt="Iconic Dental Arts"> 7155 </div> 7156 <div class="content"> 7157 <h2>Enhance Your Smile with Cosmetic Dentistry 7158</h2> 7159 <h3>January 2, 2025</h3> 7160 <div class="description"><p>A confident smile is one of the most powerful tools for making a great first impression. Our cosmetic dentistry services are designed to help you achieve the smile youâve always wanted.</p></div> 7161 <div class="button" role="button">Read More</div> 7162 </div> 7163 </div> 7164 </a> 7165</div><div class="block_container" data-type="blog_list"> 7166 <a href="/blog/our-office/2024/8133/gum-health/" aria-label="Understanding Gum Health and Its Impact on Overall Wellness November 28, 2024 Healthy gums are the foundation of a healthy smile, yet many people overlook their importance. Gum disease, or periodontal disease, is a common condition that can lead to tooth loss if untreated. Read More"> 7167 <div class="block"> 7168 <div class="background_container"> 7169 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/5211/blog.pctv8vfti0bwsqq3.jpeg" alt="Iconic Dental Arts"> 7170 </div> 7171 <div class="content"> 7172 <h2>Understanding Gum Health and Its Impact on Overall Wellness</h2> 7173 <h3>November 28, 2024</h3> 7174 <div class="description"><p>Healthy gums are the foundation of a healthy smile, yet many people overlook their importance. Gum disease, or periodontal disease, is a common condition that can lead to tooth loss if untreated.</p></div> 7175 <div class="button" role="button">Read More</div> 7176 </div> 7177 </div> 7178 </a> 7179</div><div class="block_container" data-type="blog_list"> 7180 <a href="/blog/our-office/2024/7936/heart-health/" aria-label="The Connection Between Oral Health and Heart Health October 28, 2024 Did you know your oral health is closely linked to your heart health? Read More"> 7181 <div class="block"> 7182 <div class="background_container"> 7183 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/5083/blog.rnhmfbv1ytig8cel.jpeg" alt="Iconic Dental Arts"> 7184 </div> 7185 <div class="content"> 7186 <h2>The Connection Between Oral Health and Heart Health</h2> 7187 <h3>October 28, 2024</h3> 7188 <div class="description"><p>Did you know your oral health is closely linked to your heart health?</p></div> 7189 <div class="button" role="button">Read More</div> 7190 </div> 7191 </div> 7192 </a> 7193</div><div class="block_container" data-type="blog_list"> 7194 <a href="/blog/our-office/2024/7728/perfect-time-for-a-dental-visit/" aria-label="Why Now is the Perfect Time for Your Dental Check-Up September 30, 2024 As we approach the end of the year, now is the perfect time to prioritize your dental health. Read More"> 7195 <div class="block"> 7196 <div class="background_container"> 7197 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/4957/blog.zcjrblsxcgomqdsj.jpeg" alt="Iconic Dental Arts"> 7198 </div> 7199 <div class="content"> 7200 <h2>Why Now is the Perfect Time for Your Dental Check-Up</h2> 7201 <h3>September 30, 2024</h3> 7202 <div class="description"><p>As we approach the end of the year, now is the perfect time to prioritize your dental health.</p></div> 7203 <div class="button" role="button">Read More</div> 7204 </div> 7205 </div> 7206 </a> 7207</div><div class="block_container" data-type="blog_list"> 7208 <a href="/blog/our-office/2024/7569/maintaining-a-radiant-smile/" aria-label="The Importance of Regular Dental Check-Ups: More Than Just a Cleaning August 27, 2024 Regular dental check-ups are vital for maintaining good oral health, but they offer much more than just a rout
7208ine cleaning. Read More"> 7209 <div class="block"> 7210 <div class="background_container"> 7211 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/4861/blog.zqdbu9na1cshlg8y.jpeg" alt="Iconic Dental Arts"> 7212 </div> 7213 <div class="content"> 7214 <h2>The Importance of Regular Dental Check-Ups: More Than Just a Cleaning</h2> 7215 <h3>August 27, 2024</h3> 7216 <div class="description"><p>Regular dental check-ups are vital for maintaining good oral health, but they offer much more than just a routine cleaning.</p></div> 7217 <div class="button" role="button">Read More</div> 7218 </div> 7219 </div> 7220 </a> 7221</div><div class="block_container" data-type="blog_list"> 7222 <a href="/blog/our-office/2024/7407/palliative-care/" aria-label="Palliative Care Patients Need Extra Dental Attention July 30, 2024 Palliative care, also known as supportive care, is medical treatment for someone with a serious illness. Read More"> 7223 <div class="block"> 7224 <div class="background_container"> 7225 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/4864/blog.jixol2ldrtjjsrvj.jpeg" alt="Iconic Dental Arts"> 7226 </div> 7227 <div class="content"> 7228 <h2>Palliative Care Patients Need Extra Dental Attention</h2> 7229 <h3>July 30, 2024</h3> 7230 <div class="description"><p>Palliative care, also known as supportive care, is medical treatment for someone with a serious illness.</p></div> 7231 <div class="button" role="button">Read More</div> 7232 </div> 7233 </div> 7234 </a> 7235</div><div class="block_container" data-type="blog_list"> 7236 <a href="/blog/our-office/2024/7288/summer-smile/" aria-label="Achieve a Radiant Summer Smile June 28, 2024 Summer is the perfect time to flaunt a bright, beautiful smile. A dazzling smile not only enhances your appearance but also boosts your confidence. Read More"> 7237 <div class="block"> 7238 <div class="background_container"> 7239 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/4705/blog.wralabfkkbmvpweq.jpeg" alt="Iconic Dental Arts"> 7240 </div> 7241 <div class="content"> 7242 <h2>Achieve a Radiant Summer Smile</h2> 7243 <h3>June 28, 2024</h3> 7244 <div class="description"><p>Summer is the perfect time to flaunt a bright, beautiful smile. A dazzling smile not only enhances your appearance but also boosts your confidence.</p></div> 7245 <div class="button" role="button">Read More</div> 7246 </div> 7247 </div> 7248 </a> 7249</div><div class="block_container" data-type="blog_list"> 7250 <a href="/blog/our-office/2024/6921/responding-to-dental-emergencies-what-you-should-know/" aria-label="Responding to Dental Emergencies: What You Should Know June 10, 2024 Nobody likes thinking about dental emergencies, but they do happen! Read More"> 7251 <div class="block"> 7252 <div class="background_container"> 7253 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/4656/blog.yrnewfhbtknnxujg.jpeg" alt="Iconic Dental Arts"> 7254 </div> 7255 <div class="content"> 7256 <h2>Responding to Dental Emergencies: What You Should Know</h2> 7257 <h3>June 10, 2024</h3> 7258 <div class="description"><p>Nobody likes thinking about dental emergencies, but they do happen!</p></div> 7259 <div class="button" role="button">Read More</div> 7260 </div> 7261 </div> 7262 </a> 7263</div><div class="block_container" data-type="blog_list"> 7264 <a href="/blog/our-office/2024/7241/exceptional-dental-care/" aria-label="Discover Exceptional Dental Care in Oklahoma City June 5, 2024 Welcome to Iconic Dental Arts, your premier destination for top-notch dental care in the heart of Oklahoma City. Read More"> 7265 <div class="block"> 7266 <div class="background_container"> 7267 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/4682/blog.hpshfeadet6njvd9.jpeg" alt="Iconic Dental Arts"> 7268 </div> 7269 <div class="content"> 7270 <h2>Discover Exceptional Dental Care in Oklahoma City</h2> 7271 <h3>June 5, 2024</h3> 7272 <div class="description"><p>Welcome to Iconic Dental Arts, your premier destination for top-notch dental care in the heart of Oklahoma City.</p></div> 7273 <div class="button" role="button">Read More</div> 7274 </div> 7275 </div> 7276 </a> 7277</div><div class="block_container" data-type="blog_list"> 7278 <a href="/blog/our-office/2024/6561/make-your-teeth-white/" aria-label="How to Make Your Teeth Look White May 30, 2024 Achieving a bright, white smile is a common goal for many people, and there are several effective ways to enhance the whiteness of your teeth. Read More"> 7279 <div class="block"> 7280 <div class="background_container"> 7281 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/4614/blog.bit4f8weprnaz3fm.jpeg" alt="Iconic Dental Arts"> 7282 </div> 7283 <div class="content"> 7284 <h2>How to Make Your Teeth Look White 7285</h2> 7286 <h3>May 30, 2024</h3> 7287 <div class="description"><p>Achieving a bright, white smile is a common goal for many people, and there are several effective ways to enhance the whiteness of your teeth.</p></div> 7288 <div class="button" role="button">Read More</div> 7289 </div> 7290 </div> 7291 </a> 7292</div><div class="block_container" data-type="blog_list"> 7293 <a href="/blog/our-office/2024/6201/responding-to-dental-emergencie
7293s-what-you-need-to-know/" aria-label="Responding to Dental Emergencies: What You Need to Know April 30, 2024 Dental emergencies can happen unexpectedly, and itâs always wise to have a trusted dental office you can rely on for quick and effective care. Read More"> 7294 <div class="block"> 7295 <div class="background_container"> 7296 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/4562/blog.8xmysqdibjia0reo.jpeg" alt="Iconic Dental Arts"> 7297 </div> 7298 <div class="content"> 7299 <h2>Responding to Dental Emergencies: What You Need to Know</h2> 7300 <h3>April 30, 2024</h3> 7301 <div class="description"><p>Dental emergencies can happen unexpectedly, and itâs always wise to have a trusted dental office you can rely on for quick and effective care.</p></div> 7302 <div class="button" role="button">Read More</div> 7303 </div> 7304 </div> 7305 </a> 7306</div><div class="block_container" data-type="blog_list"> 7307 <a href="/blog/our-office/2024/5843/eating-candy/" aria-label="Itâs not just candy! These sneaky suspects can ruin your smile April 29, 2024 By now, most people are well aware that sugary treats like chocolates, hard candies, caramels, cakes and pies are the leading culprits on the most-unwanted list for your teeth. Read More"> 7308 <div class="block"> 7309 <div class="background_container"> 7310 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/4528/blog.hsw6meqgggi4e1jw.jpeg" alt="Iconic Dental Arts"> 7311 </div> 7312 <div class="content"> 7313 <h2>Itâs not just candy! These sneaky suspects can ruin your smile</h2> 7314 <h3>April 29, 2024</h3> 7315 <div class="description"><p>By now, most people are well aware that sugary treats like chocolates, hard candies, caramels, cakes and pies are the leading culprits on the most-unwanted list for your teeth.</p></div> 7316 <div class="button" role="button">Read More</div> 7317 </div> 7318 </div> 7319 </a> 7320</div><div class="block_container" data-type="blog_list"> 7321 <a href="/blog/our-office/2024/5711/dental-visit/" aria-label="Your Dentist Wants To Know Where Youâve Been! March 29, 2024 Your friendly dentist at Iconic Dental Arts has a question: Where have you been? Read More"> 7322 <div class="block"> 7323 <div class="background_container"> 7324 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/1892/blog.hou43sdctkmurrai.jpeg" alt="Iconic Dental Arts"> 7325 </div> 7326 <div class="content"> 7327 <h2>Your Dentist Wants To Know Where Youâve Been!</h2> 7328 <h3>March 29, 2024</h3> 7329 <div class="description"><p>Your friendly dentist at Iconic Dental Arts has a question: Where have you been?</p></div> 7330 <div class="button" role="button">Read More</div> 7331 </div> 7332 </div> 7333 </a> 7334</div><div class="block_container" data-type="blog_list"> 7335 <a href="/blog/our-office/2024/4598/protect-your-enamel/" aria-label="Protect Your Enamel At All Costs February 26, 2024 Enamel is crucial to the protection of everything that lies under it. Itâs robust enough to hold up over decades of chewing and biting. Read More"> 7336 <div class="block"> 7337 <div class="background_container"> 7338 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/4334/blog.bnyttorqjyrl4ovl.jpeg" alt="Iconic Dental Arts"> 7339 </div> 7340 <div class="content"> 7341 <h2>Protect Your Enamel At All Costs</h2> 7342 <h3>February 26, 2024</h3> 7343 <div class="description"><p>Enamel is crucial to the protection of everything that lies under it. Itâs robust enough to hold up over decades of chewing and biting.</p></div> 7344 <div class="button" role="button">Read More</div> 7345 </div> 7346 </div> 7347 </a> 7348</div><div class="block_container" data-type="blog_list"> 7349 <a href="/blog/our-office/2024/4435/transform-your-smile/" aria-label="Transform Your Smile Today January 2, 2024 Your journey to a better smile begins right now. At our dental office, we understand the transformative power of a confident smile, and we're here to guide you through the steps to achieve it. Read More"> 7350 <div class="block"> 7351 <div class="background_container"> 7352 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/4237/blog.jguqbvmhophtrenv.jpeg" alt="Iconic Dental Arts"> 7353 </div> 7354 <div class="content"> 7355 <h2>Transform Your Smile Today</h2> 7356 <h3>January 2, 2024</h3> 7357 <div class="description"><p>Your journey to a better smile begins right now. At our dental office, we understand the transformative power of a confident smile, and we're here to guide you through the steps to achieve it.</p></div> 7358 <div class="button" role="button">Read More</div> 7359 </div> 7360 </div> 7361 </a> 7362</div><div class="block_container" data-type="blog_list"> 7363 <a href="/blog/our-office/2023/4349/thanksgiving-tips/" aria-label="Thanksgiving tips from your friendly family dentist November 27, 2023 What c
7363ould be more comforting than gathering around the Thanksgiving table with family and friends? Read More"> 7364 <div class="block"> 7365 <div class="background_container"> 7366 <img class="background_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="https://www.thedoctorsinternet.com/stockimages/uploads/2/4157/blog.fsktoxyeklbskidb.jpeg" alt="Iconic Dental Arts"> 7367 </div> 7368 <div class="content"> 7369 <h2>Thanksgiving tips from your friendly family dentist</h2> 7370 <h3>November 27, 2023</h3> 7371 <div class="description"><p>What could be more comforting than gathering around the Thanksgiving table with family and friends?</p></div> 7372 <div class="button" role="button">Read More</div> 7373 </div> 7374 </div> 7375 </a> 7376</div> 7377 </div> 7378 <div class="sidebar" data-sidebar="true"> 7379 <div class="label">Blog Archive</div><div data-sidebar="blogs_by_year"><ul><li><a rel="nofollow" href="/blog/2026/" aria-label="2026">2026</a></li><li><a rel="nofollow" href="/blog/2025/" aria-label="2025">2025</a></li><li><a rel="nofollow" href="/blog/2024/" aria-label="2024">2024</a></li><li><a rel="nofollow" href="/blog/2023/" aria-label="2023">2023</a></li></ul></div> 7380 </div> 7381 </div> 7382</section>
7382<script> 7383 javascript.prototype[get_id()] = function() { 7384 var title = ( 7385 $('.section_4 [data-meta-title]').length > 0 && 7386 $('.section_4 [data-meta-title]').attr('data-meta-title').length > 0 7387 ? $('.section_4 [data-meta-title]').attr('data-meta-title') 7388 : ($('h1').length > 0 7389 ? $('h1:first-of-type').text() 7390 : '' 7391 ) 7392 ); 7393 7394 var description = ( 7395 $('.section_4 [data-meta-description]').length > 0 && 7396 $('.section_4 [data-meta-description]').attr('data-meta-description').length > 0 7397 ? $('.section_4 [data-meta-description]').attr('data-meta-description') 7398 : '' 7399 ); 7400 7401 var keywords = ( 7402 $('.section_4 [data-meta-keywords]').length > 0 && 7403 $('.section_4 [data-meta-keywords]').attr('data-meta-keywords').length > 0 7404 ? $('.section_4 [data-meta-keywords]').attr('data-meta-keywords') 7405 : '' 7406 ); 7407 7408 /* document.title = title; 7409 $('meta[name=description]').attr('content', description); 7410 $('meta[name=keywords]').attr('content', keywords); */ 7411 } 7412</script>
7412<style>.section_5 .block_container { 7413 display: flex; 7414 flex-direction: column; 7415} 7416.section_5 .block_container .block { 7417 display: flex; 7418 flex-wrap: wrap; 7419} 7420.section_5 .block_container .block .background_container { 7421 width: 100%; 7422 height: 680px; 7423 display: flex; 7424 justify-content: center; 7425 align-items: center; 7426} 7427.section_5 .block_container .block .background_container .background_content { 7428 position: relative; 7429 z-index: 20; 7430 width: 100%; 7431 height: 100%; 7432 display: flex; 7433 align-items: center; 7434 justify-content: center; 7435} 7436.section_5 .block_container .block .background_container .background_image { 7437 max-height: initial; 7438} 7439</style><style>.section_5 .content_container .content .block_container .block { 7440 display: flex; 7441 justify-content: space-between; 7442} 7443.section_5 .content_container .content .block_container .block .map, 7444.section_5 .content_container .content .block_container .block .text { 7445 flex: 1; 7446} 7447@media (max-width: 1024px) { 7448 .section_5 .content_container .content .block_container .block .map, 7449 .section_5 .content_container .content .block_container .block .text { 7450 flex-basis: 100%; 7451 } 7452} 7453.section_5 .content_container .content .block_container .block .map { 7454 position: relative; 7455} 7456@media (max-width: 1024px) { 7457 .section_5 .content_container .content .block_container .block .map { 7458 height: 300px; 7459 } 7460} 7461.section_5 .content_container .content .block_container .block .map div[data-micro-template="map"] { 7462 height: 100%; 7463} 7464.section_5 .content_container .content .block_container .block .map .responsive_iframe { 7465 position: relative; 7466} 7467.section_5 .content_container .content .block_container .block .map .responsive_iframe.sixteen-9 { 7468 padding-bottom: 56.25%; 7469} 7470.section_5 .content_container .content .block_container .block .map .responsive_iframe iframe { 7471 position: absolute; 7472 top: 0; 7473 left: 0; 7474 width: 100%; 7475 height: 100%; 7476} 7477.section_5 .content_container .content .block_container .block .text { 7478 padding: 80px 20px; 7479 background: linear-gradient(94deg,#B98A2E -1.86%,#D2AD63 36.41%,#B98A2E 106.21%); 7480 display: flex; 7481 align-items: center; 7482 justify-content: center; 7483} 7484@media (max-width: 1024px) { 7485 .section_5 .content_container .content .block_container .block .text { 7486 padding: 40px 20px; 7487 } 7488} 7489.section_5 .content_container .content .block_container .block .text .text_container { 7490 max-width: 700px; 7491 display: flex; 7492 flex-wrap: wrap; 7493 color: #1A1A1A; 7494 font-weight: 500; 7495} 7496.section_5 .content_container .content .block_container .block .text h2 { 7497 font-size: 3rem; 7498 text-transform: capitalize; 7499 margin: 0; 7500 flex-basis: 100%; 7501 color: #1A1A1A; 7502 margin-bottom: 20px; 7503} 7504@media (max-width: 1024px) { 7505 .section_5 .content_container .content .block_container .block .text h2 { 7506 font-size: 2rem; 7507 } 7508} 7509@media (max-width: 550px) { 7510 .section_5 .content_container .content .block_container .block .text h2 { 7511 font-size: 1.65rem; 7512 } 7513} 7514.section_5 .content_container .content .block_container .block .text h3 { 7515 flex-basis: 100%; 7516 font-size: 1.5rem; 7517 text-transform: uppercase; 7518 margin: 0; 7519 font-weight: 400; 7520 color: #fff; 7521} 7522@media (max-width: 1024px) { 7523 .section_5 .content_container .content .block_container .block .text h3 { 7524 font-size: 1.2rem; 7525 } 7526} 7527.section_5 .content_container .content .block_container .block .text p { 7528 flex-basis: 100%; 7529} 7530.section_5 .content_container .content .block_container .block .text a { 7531 font-weight: 700; 7532 cursor: pointer; 7533 color: #1A1A1A; 7534} 7535.section_5 .content_container .content .block_container .block .text a:hover { 7536 color: #1A1A1A; 7537} 7538.section_5 .content_container .content .block_container .block .text .hours, 7539.section_5 .content_container .content .block_container .block .text .address { 7540 flex-basis: 50%; 7541 text-transform: none; 7542} 7543@media (max-width: 768px) { 7544 .section_5 .content_container .content .block_container .block .text .hours, 7545 .section_5 .content_container .content .block_container .block .text .address { 7546 flex-basis: 100%; 7547 } 7548} 7549.section_5 .content_container .content .block_container .block .text .hours .row, 7550.section_5 .content_container .content .block_container .block .text .address .row { 7551 display: flex; 7552 justify-content: space-between; 7553} 7554@media (max-width: 768px) { 7555 .section_5 .content_container .content .block_container .block .text .hours .row, 7556 .section_5 .content_container .content .block_container .block .text .address .row { 7557 justify-content: flex-start; 7558 } 7559 .section_5 .content_container .content .block_container .block .text .hours .row .day, 7560 .section_5 .content_container .content .block_container .block .text .address .row .day { 7561 margin-right: 20px; 7562 } 7563} 7564@media (max-width: 768px) { 7565 .section_5 .content_container .content .block_container .block .text .hours { 7566 margin-top: 20px; 7567 } 7568} 7569.section_5 .content_container .content .block_container .block .text div[data-micro-template="buttons_container"] { 7570 display: flex; 7571 flex-wrap: wrap; 7572} 7573.section_5 .content_container .content .block_container .block .text div[data-micro-template="buttons_container"] .button { 7574 color: #1A1A1A; 7575 background: #00FFFF; 7576 margin: 5px 10px 5px 0; 7577 text-transform: uppercase; 7578 font-weight: 500; 7579 font-size: 1rem; 7580 border: 2px solid #1A1A1A; 7581 padding: 10px 40px; 7582 box-sizing: border-box; 7583 transition: all 0.3s; 7584} 7585.section_5 .content_container .content .block_container .block .text div[data-micro-template="buttons_container"] .button:hover { 7586 background: #00cccc; 7587 color: #1A1A1A; 7588 border: 2px solid #1A1A1A; 7589} 7590</style> 7591<section class="section_5" data-module="parallax_image" data-html="/custom/modules/basilisk_split_contact/module.html" data-json="/custom/modules/basilisk_split_contact/module.json" data-page="blog" data-full-path="/blog/"> 7592 <div class="content_container"> 7593 <div class="content"> 7594 <div class="block_container"> 7595 <div class="block"> 7596 <div class="map"> 7597 <div data-micro-template="map"> 7598 <iframe src="" allowfullscreen="" data-src="https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d4725.039146238709!2d-97.56982471074556!3d35.553893029216326!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x87b21ae5b00a0765%3A0x761eb4fe3d53e6c0!2sJoe%20Isaacson%20Dental!5e0!3m2!1sen!2sus!4v1698861467087!5m2!1sen!2sus" aria-label="iframe"></iframe> 7599</div> 7600 </div> 7601 <div class="text"> 7602 <div class="text_container"> 7603 <h2>Iconic Dental Arts</h2> 7604 <div class="address"> 7605 <div data-micro-template="full_address_dynamic"> 7606 7607 7608 <div>8200 N May Ave</div> 7609 7610 <div><span>Oklahoma City</span>, <span>OK</span> <span>73120</span></div> 7611 7612 7613 <div class="tracking_number"><a href="tel:+14052130328" aria-label="New Patients: (405) 213-0328" class="tel_14052130328" data-click-call="0"><span class="phone_label">New Patients:</span> (405) 213-0328</a></div> 7614 <div class="existing_number"><a href="tel:+14059438575" aria-label="Existing Patients: (405) 943-8575" class="tel_14059438575" data-click-call="0"><span class="phone_label">Existing Patients:</span> (405) 943-8575</a></div> 7615 7616 7617</div> 7618 </div> 7619 <div class="hours"> 7620 <div data-micro-template="office_hours"> 7621 <div class="row"><div class="day">Monday</div><div class="time">8:30 am - 5:00 pm</div></div> 7622 <div class="row"><div class="day">Tuesday</div><div class="time">8:30 am - 6:00 pm</div></div> 7623 <div class="row"><div class="day">Wednesday</div><div class="time">8:30 am - 5:00 pm</div></div> 7624 <div class="row"><div class="day">Thursday</div><div class="time">7:30 am - 4:00 pm</div></div> 7625 <div class="row"><div class="day">Friday</div><div class="time">8:30 am - 2:00 pm</div></div> 7626 <div class="row"><div class="day">Saturday</div><div class="time">Closed</div></div> 7627 <div class="row"><div class="day">Sunday</div><div class="time">Closed</div></div> 7628</div> 7629 </div> 7630 <p></p> 7631 <div data-micro-template="buttons_container"> 7632 <div data-micro-template="buttons"> 7633 <a class="button" href="/contact/" role="button" aria-label="Contact Us">Contact Us</a> 7634</div> 7635</div> 7636 </div> 7637 </div> 7638 </div> 7639</div> 7640 7641 </div> 7642 </div> 7643</section>
7643<script> 7644 javascript.prototype[get_id()] = function() { 7645 var json = {"settings":{"parallax":false},"content":[{"title":"Iconic Dental Arts","text":"","button":[{"label":"Contact Us","url":"\/contact\/"}]}]}; 7646 7647 function shift_image() { 7648 if ( 7649 json.settings.hasOwnProperty('parallax') && 7650 json.settings.parallax 7651 ) { 7652 $('.section_5 .background_image').each(function() { 7653 var elementHeight = $(this).height(); 7654 var startEffect = $(this).offset().top - $(window).height(); 7655 var endEffect = $(this).offset().top + elementHeight; 7656 7657 var pageHeight = $(document).height(); 7658 7659 var scrollDistance = endEffect - startEffect; 7660 var scrollPosition = $(document).scrollTop(); 7661 7662 if (scrollPosition > startEffect && scrollPosition < endEffect) { 7663 scrollPercent = ((scrollPosition - startEffect) / scrollDistance * 100).toFixed(4); 7664 /* $(this).css('transform', 'translate(-50%, -'+(100 - scrollPercent)+'%)'); */ 7665 $(this).css('object-position', 'center '+(100 - scrollPercent)+'%'); 7666 } 7667 }); 7668 } 7669 else { 7670 $('.section_5 .background_image').addClass('static'); 7671 } 7672 } 7673 7674 shift_image(); 7675 7676 $(window).resize(function() { 7677 shift_image(); 7678 }); 7679 7680 $(document).scroll(function() { 7681 shift_image(); 7682 }); 7683 } 7684</script>
7684<style>.section_6 { 7685 padding: 40px 40px; 7686} 7687.section_6 .content_container { 7688 max-width: 100%; 7689 justify-content: center; 7690 display: flex; 7691 margin-left: auto; 7692 margin-right: auto; 7693 box-sizing: border-box; 7694} 7695.section_6 .content_container .content { 7696 width: 100%; 7697} 7698.section_6 .content_container .content h2 { 7699 text-align: center; 7700} 7701.section_6 .content_container .content h3 { 7702 font-size: 1.5rem; 7703} 7704@media (max-width: 640px) { 7705 .section_6 { 7706 padding: 20px 20px; 7707 } 7708} 7709</style><style>.section_6 { 7710 padding: 60px 10px 20px; 7711 background-color: #1A1A1A; 7712} 7713.section_6 .content { 7714 text-align: center; 7715 color: #fff; 7716} 7717.section_6 .content .logo { 7718 margin-bottom: 20px; 7719} 7720.section_6 .content .logo img, 7721.section_6 .content .logo picture { 7722 max-width: 300px; 7723} 7724.section_6 .content .associations { 7725 margin: 40px 0; 7726} 7727.section_6 .content .associations img, 7728.section_6 .content .associations picture { 7729 margin: 0 20px; 7730 vertical-align: middle; 7731} 7732@media (max-width: 1280px) { 7733 .section_6 .content .associations img, 7734 .section_6 .content .associations picture { 7735 margin: 20px; 7736 } 7737} 7738.section_6 .content .phone { 7739 color: #fff; 7740 font-size: 1.4rem; 7741} 7742.section_6 .content .social { 7743 margin-bottom: 20px; 7744} 7745.section_6 .content .social div[data-micro-template='social_icons_container'] { 7746 display: flex; 7747 justify-content: center; 7748} 7749.section_6 .content .social div[data-micro-template='social_icons_container'] > div { 7750 margin: 0 15px; 7751} 7752.section_6 .content .social div[data-micro-template='social_icons_container'] > div svg { 7753 color: #fff; 7754 font-size: 1.5rem; 7755 transition: all 0.3s; 7756} 7757.section_6 .content .social div[data-micro-template='social_icons_container'] > div svg:hover { 7758 color: #00FFFF; 7759} 7760.section_6 .copyright { 7761 margin: 40px 0px 60px; 7762 text-align: center; 7763 font-size: 0.75rem; 7764 color: #fff; 7765} 7766.section_6 .copyright a { 7767 color: #fff; 7768} 7769.section_6 .copyright div { 7770 margin-bottom: 5px; 7771} 7772.section_6 .copyright div:first-of-type { 7773 margin-bottom: 5px; 7774} 7775</style> 7776<section class="section_6" data-module="content" data-html="/custom/modules/manticore_footer/module.html" data-json="" data-page="blog" data-full-path="/blog/"> 7777 <div class="content_container"> 7778 <div class="content"> 7779 <div class="logo"> 7780 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/images/logo-5.png" alt="Iconic Dental Arts | Intraoral Camera, Dentures and CBCT"> 7781</div> 7782<div class="associations"> 7783 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/images/associations/logo-oda.png" alt="Oklahoma City Cosmetic Dentist"> 7784 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/images/associations/logo-oklahoma-county-dental-society.png" alt="Cosmetic Dental Office 73120"> 7785 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/images/associations/logo-aacd.png" alt="Emergency Dentist Oklahoma City"> 7786 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/images/associations/logo-lvi.png" alt="Family Dentist in Oklahoma City"> 7787 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/images/associations/logo-resnik-implant-institute.png" alt="Dental Implants Dentist Oklahoma City"> 7788 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/images/associations/logo-icoi.png" alt="Dentist 73120"> 7789 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" data-lazy-img="true" data-src="/custom/images/associations/logo-americas-top-dentists.png" alt="Pediatric Dentist Oklahoma City"> 7790</div> 7791<div class="social"> 7792 <div><div data-micro-template="social_icons_container"> 7793 <div data-micro-template="social_icons"> 7794 <a href="https://www.facebook.com/iconicdentalarts" aria-label="link" rel="noopener" target="_blank"><i class="fab fa-facebook-f"></i></a> 7795</div><div data-micro-template="social_icons"> 7796 <a href="https://www.google.com/maps/place/Joe+Isaacson+Dental/@35.554294,-97.566513,15z/data=!4m7!3m6!1s0x0:0x761eb4fe3d53e6c0!8m2!3d35.554294!4d-97.566513!9m1!1b1" aria-label="link" rel="noopener" target="_blank"><i class="fab fa-google"></i></a> 7797</div><div data-micro-template="social_icons"> 7798 <a href="https://twitter.com/BlendedDentist" aria-label="link" rel="noopener" target="_blank"><i class="fab fa-twitter"></i></a> 7799</div><div data-micro-template="social_icons"> 7800 <a href="https://www.instagram.com/iconicdentalarts" aria-label="link" rel="noopener" target="_blank"><i class="fab fa-instagram"></i></a> 7801</div><div data-micro-template="social_icons"> 7802 <a href="https://www.youtube.com/channel/UCmOTKQniQLiN6srHU8tiX4w" aria-label="link" rel="noopener" target="_blank"><i class="fab fa-youtube"></i></a> 7803</div><div data-micro-template="social_icons"> 7804 <a href="/blog/" aria-label="link"><i class="fas fa-blog"></i></a> 7805</div> 7806</div></div> 7807</div> 7808<div class="copyright"> 7809 <div> 7810 © 2026 Iconic Dental Arts. All Rights Reserved. | <a href="/accessibility/" aria-label="Accessibility Policy">Accessibility Policy</a> 7811</div> 7812<div> 7813 <a href="https://doctorsinternet.com/dentistry/" aria-label="Dentist Marketing" rel="noopener" target="_blank">Dentist Marketing</a> 7814</div> 7815<div> 7816 Oklahoma City Dentist | Dentist 73120 | Cosmetic Dentist Oklahoma City 7817</div> 7818</div> 7819 </div> 7820 </div> 7821</section><style>section[data-module="faq"] div[data-micro-template="faq_container"] { 7822 max-width: 1400px; 7823 padding: 0 0px 40px 0px; 7824} 7825.img-center { 7826 display: block; 7827 margin: 16px auto; 7828} 7829body section[data-type="system-lightbox-container"].show { 7830 background: rgba(255,255,255,0.9); 7831} 7832body section[data-type="system-lightbox-container"].show section[data-form-name="contact"] { 7833 display: flex; 7834 align-items: center; 7835 justify-content: center; 7836 flex-basis: 100%; 7837} 7838body section[data-type="system-lightbox-container"].show section[data-form-name="contact"] .container { 7839 padding: 20px; 7840 box-sizing: border-box; 7841} 7842body section[data-type="system-lightbox-container"].show section[data-form-name="contact"] .container .button { 7843 background: #00FFFF; 7844 color: #1A1A1A; 7845} 7846body section[data-type="system-lightbox-container"].show section[data-form-name="contact"] .container .button:hover { 7847 background: #00cccc; 7848} 7849</style> 7850<section class="section_8" data-module="ad_tracking" data-html="" data-json="/custom/modules/ad_tracking/module.json" data-page="blog" data-full-path="/blog/"></section>
7850<script> 7851 javascript.prototype[get_id()] = function() { 7852 var json = {"settings":{"google_conversion_enabled":true,"facebook_conversion_enabled":true,"replacements":[{"number_to_replace":"(405) 213-0328","phone_numbers":{"source":{"google_ads":"(405) 561-3003"},"campaign":{}}}]},"content":[{}]}; 7853 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"},"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"},"example_campaign":{"example":"Example"},"prosthodontist":{"prosthodontist":"Prosthodontist"}},"ad_location_labels":{}}; 7854 var metadata = {}; 7855 7856 console.log(metadata); 7857 console.log('Tracking'); 7858 7859 var ad_grouping = []; 7860 7861 function find_childless_elements(selector) { 7862 var parent = $(selector); 7863 var found = []; 7864 7865 recursive_search($(parent)); 7866 7867 function recursive_search(element) { 7868 7869 if($(element).children().length > 0) { 7870 $(element).children().each(function (index, child) { 7871 recursive_search($(child)) 7872 }); 7873 } else { 7874 found.push($(element)[0]) 7875 } 7876 } 7877 7878 return found; 7879 } 7880 7881 function find_closest_parent_of_content(selector, find = []) { 7882 var parent = $(selector); 7883 var found = []; 7884 7885 if (find.length) { 7886 if ($(parent).children().length > 0) { 7887 recursive_search($(parent)); 7888 } else { 7889 var text = $(parent).text(); 7890 $.each(find, function (index, string) { 7891 if (text.includes(string) && found.length === 0) { 7892 found.push($(parent)[0]); 7893 } 7894 }); 7895 } 7896 } 7897 7898 return (found.length)? found : false; 7899 7900 7901 function recursive_search(element, parent = null, ) { 7902 7903 var html = $(element).html(); 7904 $.each(find, function (index, string) { 7905 if (html.includes(string)) { 7906 if ($(element).children().length > 0) { 7907 var found_in_children = false; 7908 $(element).children().each(function (index, child) { 7909 var child_html = $(child).html() 7910 $.each(find, function (index, string) {
7911 if (child_html.includes(string)) { 7912 recursive_search($(child), $(element)); 7913 found_in_children = true; 7914 } 7915 }); 7916 }); 7917 7918 if (!found_in_children) { 7919 found.push($(element)[0]) 7920 } 7921 7922 } else { 7923 found.push($(element)[0]) 7924 } 7925 7926 7927 } 7928 }); 7929 } 7930 } 7931 7932 function find_replace(find, replace) { 7933 var rFilter = [ 7934 find 7935 ]; 7936 7937 var instanceLimit = 20; 7938 7939 for (var i = 0; i < rFilter.length; i++) { 7940 var instanceCounter = 0; 7941 $('*').contents().filter(function() { 7942 return this.nodeType === 3; 7943 }).replaceWith(function() { 7944 var to_replace = new RegExp(rFilter[i]); 7945 if ((this.nodeValue.indexOf(rFilter[i]) >= 0) && (instanceCounter < instanceLimit)) { 7946 instanceCounter++; 7947 return this.nodeValue.replace(to_replace, replace); 7948 } 7949 else { 7950 return this.nodeValue; 7951 } 7952 }); 7953 } 7954 } 7955 7956 function find_replace_links(find, replace, find_texts = []) { 7957 find_link = find.replace(/[^a-zA-Z0-9+]/g, ''); 7958 replace_link = replace.replace(/[^a-zA-Z0-9+]/g, ''); 7959 7960 7961 $('*[href^="tel:+1'+find_link+'"]').each(function() { 7962 $(this).attr('href', 'tel:+1'+replace_link); 7963 var elements_with_find_text = find_closest_parent_of_content($(this), [find, ...find_texts]); 7964 console.log(elements_with_find_text) 7965 if (elements_with_find_text) { 7966 $(elements_with_find_text).each(function(index, element) { 7967 if (!$(this).is('script')) { 7968 var html = $(this).html(); 7969 7970 if (html.includes(find)) { 7971 html = html.replaceAll(find, replace); 7972 } 7973 7974 if(find_texts.length) { 7975 $.each(find_texts, function (index, find_text) { 7976 if (html.includes(find_text)) { 7977 html = html.replaceAll(find_text, replace); 7978 } 7979 }); 7980 } 7981 7982 if ($(this).html() !== html) { 7983 $(this).html(html); 7984 } 7985 } 7986 }); 7987 } 7988 7989 $(this).attr('data-click-call', 1); 7990 }); 7991 7992 // $('*[href^="tel:+1'+find_link+'"]').each(function() { 7993 // $(this).attr('href', 'tel:+1'+replace_link); 7994 7995 // if (!$(this).is('script')) { 7996 // var html = $(this).html(); 7997 7998 // if (html.includes(find)) { 7999 // html = html.replaceAll(find, replace); 8000 // } 8001 8002 // if(find_texts.length) { 8003 // $.each(find_texts, function (index, find_text) { 8004 // if (html.includes(find_text)) { 8005 // html = html.replaceAll(find_text, replace); 8006 // } 8007 // }); 8008 // } 8009 8010 // if ($(this).html() !== html) { 8011 // $(this).html(html); 8012 // } 8013 // } 8014 // }); 8015 } 8016 8017 function fill_tags_with_metadata(metadata) { 8018 var data = metadata; 8019 8020 $.each(data, function (attribute, value) { 8021 if (attribute !== "json_ld") { 8022 if (attribute === "tags") { 8023 $.each(value, function (tag, content) { 8024 tag_tag = $(`${tag}`); 8025 if (tag_tag.length) { 8026 console.log(`<${tag}/> updated with ${content}.`) 8027 $(tag_tag).text(content) 8028 } else { 8029 console.log(`<${tag}/> failed.`) 8030 } 8031 }); 8032 } else { 8033 $.each(value, function (type, content) { 8034 meta_tag = $(`meta[${attribute}="${type}"]`); 8035 if (meta_tag.length) { 8036 console.log(`<meta ${attribute}="${type}"/> updated with ${content}.`) 8037 $(meta_tag).attr('content', content) 8038 } else { 8039 console.log(`<meta ${attribute}="${type}"/> failed.`); 8040 } 8041 }); 8042 } 8043 } 8044 }); 8045 } 8046 8047 fill_tags_with_metadata(metadata); 8048 8049 var source = null; 8050 var campaign = null; 8051 var ad_location = null; 8052 8053 if (get_cookie('source')) { 8054 source = get_cookie('source'); 8055 $('select[data-ad-tracking="source"] option[name="'+source+'"]').attr('selected', true); 8056 } 8057 else { 8058 $('select[data-ad-tracking="source"]').val('None'); 8059 } 8060 8061 if (get_cookie('campaign')) { 8062 campaign = get_cookie('campaign'); 8063 $('select[data-ad-tracking="campaign"] option[name="'+campaign+'"]').attr('selected', true); 8064 } 8065 else { 8066 $('select[data-ad-tracking="campaign"]').val('None'); 8067 } 8068 8069 if (get_cookie('location')) { 8070 console.log(ad_location); 8071 ad_location = get_cookie('location'); 8072 $('select[data-ad-tracking="ad_location"] option[name="'+ad_location+'"]').attr('selected', true); 8073 } 8074 else { 8075 $('select[data-ad-tracking="ad_location"]').val('None'); 8076 } 8077 8078 8079 8080 prioritize_source = ( 8081 json.settings.hasOwnProperty('prioritize_source') && 8082 json.settings.prioritize_source 8083 ? true 8084 : false 8085 ); 8086 8087 google_conversion = ( 8088 json.settings.hasOwnProperty('google_conversion_enabled') && 8089 json.settings.google_conversion_enabled && 8090 source == 'google' 8091 ? true 8092 : false 8093 ); 8094 8095 facebook_conversion = ( 8096 json.settings.hasOwnProperty('facebook_conversion_enabled') && 8097 json.settings.facebook_conversion_enabled && 8098 source == 'facebook' 8099 ? true 8100 : false 8101 ); 8102 8103 if ( 8104 source != null && campaign != null && 8105 source.length && campaign.length 8106 ) { 8107 if (ad_management.hasOwnProperty('ad_campaigns')) { 8108 $.each(ad_management.ad_campaigns, function(key, val) { 8109 if (val.hasOwnProperty(campaign)) { 8110 ad_grouping.push(key); 8111 } 8112 }); 8113 } 8114 8115 if ( 8116 ad_grouping.length && 8117 ad_management.hasOwnProperty('ad_campaign_labels') && 8118 ad_management.ad_campaign_labels.hasOwnProperty(ad_grouping[0]) && 8119 ad_management.ad_campaign_labels[ad_grouping[0]].length 8120 ) { 8121 var new_label = ad_management.ad_campaign_labels[ad_grouping[0]]; 8122 $('form').each(function() { 8123 var current_label = $(this).attr('data-category') || ''; 8124 if (current_label.length) { 8125 $(this).attr('data-category', current_label+' ('+new_label+')'); 8126 } 8127 }); 8128 } 8129 8130 if ( 8131 $('body').attr('data-template-group')?.includes('landing') && 8132 window.location.pathname !== '/' 8133 ) { 8134 8135 let current_url_params = new URLSearchParams(window.location.search); 8136 current_url_params.delete('location'); 8137 current_url_params.delete('source'); 8138 current_url_params.delete('campaign'); 8139 8140 console.log(ad_location); 8141 console.log(current_url_params.toString()); 8142 8143 8144 if (ad_location !== null && ad_location.length) { 8145 // history.pushState(null, null, ad_location + '/' + source.replaceAll('_', '-') + '/' + campaign.replaceAll('_', '-') + '/'); 8146 history.pushState(null, null, `${ad_location}/${source.replaceAll('_', '-')}
8146/${campaign.replaceAll('_', '-')}/${current_url_params.toString()? '?'+current_url_params.toString():'' }`); 8147 } else { 8148 // history.pushState(null, null, source.replaceAll('_', '-')+'/'+campaign.replaceAll('_', '-')+'/'); 8149 history.pushState(null, null, `${source.replaceAll('_', '-')}/${campaign.replaceAll('_', '-')}/${current_url_params.toString()? '?'+current_url_params.toString():'' }`); 8150 } 8151 } 8152 } 8153 8154 if (json.settings.hasOwnProperty('replacements')) { 8155 8156 if (json.settings.replacements.hasOwnProperty('convirza')) { 8157 // Enable if convirza.dni exists and is truthy, unless enable is explicitly false 8158 const convirza = json.settings.replacements.convirza; 8159 if ( 8160 convirza.hasOwnProperty('dni') && convirza.dni && 8161 (!convirza.hasOwnProperty('enable') || convirza.enable !== false) 8162 ) { 8163 console.log('Enabling Convirza DNI with ID: ' + convirza.dni); 8164 } 8165 } 8166 8167 8168 $.each(json.settings.replacements, function(key, val) { 8169 8170 var number_to_replace = ( 8171 val.hasOwnProperty('number_to_replace') && 8172 val.hasOwnProperty('phone_numbers') && 8173 val.number_to_replace.length > 0 8174 ? val.number_to_replace 8175 : false 8176 ); 8177 8178 var text_to_replace = ( 8179 val.hasOwnProperty('text_to_replace') && 8180 val.hasOwnProperty('phone_numbers') && 8181 val.text_to_replace.length > 0 8182 ? val.text_to_replace 8183 : false 8184 ); 8185 8186 if (number_to_replace) { 8187 8188 var has_source = ( 8189 val.hasOwnProperty('phone_numbers') && 8190 val.phone_numbers.hasOwnProperty('source') 8191 ? true 8192 : false 8193 ); 8194 8195 var has_campaign = ( 8196 val.hasOwnProperty('phone_numbers') && 8197 val.phone_numbers.hasOwnProperty('campaign') 8198 ? true 8199 : false 8200 ); 8201 8202 var has_grouping = ( 8203 val.hasOwnProperty('phone_numbers') && 8204 val.phone_numbers.hasOwnProperty('grouping') 8205 ); 8206 8207 if (prioritize_source) { 8208 if (has_source && val.phone_numbers.source.hasOwnProperty(source)) { 8209 var number_replacement = val.phone_numbers.source[source]; 8210 } 8211 else if (has_campaign && val.phone_numbers.campaign.hasOwnProperty(campaign)) { 8212 var number_replacement = val.phone_numbers.campaign[campaign]; 8213 } 8214 else if ( 8215 has_grouping && 8216 ad_grouping.length && 8217 val.phone_numbers.grouping.hasOwnProperty(ad_grouping[0]) 8218 ) { 8219 var number_replacement = val.phone_numbers.grouping[ad_grouping[0]]; 8220 } 8221 else { 8222 number_replacement = null; 8223 } 8224 8225 if (number_replacement) { 8226 if (text_to_replace) { 8227 find_replace_links(number_to_replace, number_replacement, text_to_replace); 8228 } else { 8229 find_replace_links(number_to_replace, number_replacement ); 8230 } 8231 } 8232 } 8233 else { 8234 if (has_campaign && val.phone_numbers.campaign.hasOwnProperty(campaign)) { 8235 var number_replacement = val.phone_numbers.campaign[campaign]; 8236 } 8237 else if ( 8238 has_grouping && 8239 ad_grouping.length && 8240 val.phone_numbers.grouping.hasOwnProperty(ad_grouping[0]) 8241 ) { 8242 var number_replacement = val.phone_numbers.grouping[ad_grouping[0]]; 8243 } 8244 else if (has_source && val.phone_numbers.source.hasOwnProperty(source)) { 8245 var number_replacement = val.phone_numbers.source[source]; 8246 } 8247 else { 8248 number_replacement = null; 8249 } 8250 8251 if (number_replacement) { 8252 if (text_to_replace) { 8253 find_replace_links(number_to_replace, number_replacement, text_to_replace); 8254 } else { 8255 find_replace_links(number_to_replace, number_replacement); 8256 } 8257 } 8258 } 8259 } 8260 }); 8261 } 8262 8263 $('[data-click-call="1"]').click(function(e) { 8264 e.preventDefault(); 8265 var request = {}; 8266 request.action = 'log_click_to_call'; 8267 request.number = $(this).attr('href'); 8268 request.source = source; 8269 request.campaign = campaign; 8270 request.domain = window.location.hostname; 8271 request.path = window.location.pathname; 8272 8273 $.post('https://referrals.di-api.com/', { 8274 'action': JSON.stringify(request) 8275 }) 8276 .done(function() { 8277 let link = document.createElement('a'); 8278 link.href = request.number; 8279 link.click(); 8280 URL.revokeObjectURL(link.href); 8281 }); 8282 }); 8283 8284 function initDNIIntercept(key, host) { 8285 return new Promise((resolve, reject) => { 8286 var script = document.createElement('script'); 8287 script.src = 'https://dni.logmycalls.com/dni.js?app_id=CT'; 8288 script.onerror = () => reject(new Error('Failed to load DNI script')); 8289 script.onload = function () { 8290 // Script loaded â CZADNI is now on window. 8291 // Replace their DOM-swapping function with a no-op that also captures the phone number and resolves the promise. 8292 const originalChangeNumber = CZADNI.changeTheNumberOnScreen.changeNumber; 8293 CZADNI.changeTheNumberOnScreen.changeNumber = function (mappings) { 8294 const mapping = mappings?.[0]; 8295 if (mapping?.phone_number && mapping.phone_number !== 'not_exist') { 8296 const formatted = CZADNI.changeTheNumberOnScreen.formatNumber( 8297 mapping.phone_number, 8298 mapping.dni_number_format 8299 ); 8300 resolve({ 8301 raw: mapping.phone_number, 8302 formatted: formatted.phone 8303 }); 8304 } 8305 }; 8306 8307 // init the DNI script 8308 getDNIRecord(key, host); 8309 }; 8310 document.head.appendChild(script); 8311 }); 8312 } 8313 } 8314</script>
8314 8315 8316 <section data-type="system-lightbox-container"></section> 8317
8317<script src="/system/js/jquery-3.5.1.min.js"></script>
8317 8318
8318<script src="https://kit.fontawesome.com/10cd9403cd.js" async></script>
8318 8319
8319<script> 8320 var scroll_disabled = false; 8321 var extras_loaded = false; 8322 var form_button_lock = false; 8323 var click_lock = false; 8324 var _userway_config = { position: 5, color: "#053e67", language: "en", account: "72Ve6c8l9z" }; 8325 var timeout = false; 8326 var window_width = null; 8327 var window_height = null; 8328 var google_conversion = false; 8329 var facebook_conversion = false; 8330 var file_field_counter = 0; 8331 const api = 'https://referrals.di-api.com/'; 8332 var newSession = false; 8333 var newVisitor = false; 8334 let socket = null; 8335 const pageID = uuid(); 8336 8337 function gtag(arguments) { 8338 dataLayer.push(arguments); 8339 } 8340 8341 google_tracking = { 8342 gtag: function () { 8343 dataLayer.push(arguments); 8344 } 8345 }; 8346 8347 facebook_tracking = { 8348 fbq: function () { 8349 n.queue.push(arguments); 8350 } 8351 }; 8352 8353 function Socket(visitorId, sessionId, pageId) { 8354 const ws = "wss://socket.di-api.com/analytics" 8355 this.promise = new Promise((resolve, reject) => { 8356 this.visitorId = visitorId; 8357 this.sessionId = sessionId; 8358 this.pageId = pageId; 8359 this.connection = null; 8360 8361 this.attempts = 0; 8362 this.interval = 1000; 8363 this.has_reconnect = false; 8364 var multiplier = 1.25; 8365 8366 var connect = () => { 8367 this.connection = new WebSocket(`${ws}?visitor_id=${visitorId}&session_id=${sessionId}&page_id=${pageId}`); 8368 this.attempts++; 8369 8370 this.connection.onopen = (e) => { 8371 {/* console.log(this.connection); 8372 console.log(e); */} 8373 this.attempts = 0; 8374 this.interval = 1000; 8375 console.log('Connection established'); 8376 8377 resolve(1) 8378 } 8379 8380 this.connection.onclose = (e) => { 8381 console.log('Connection closed'); 8382 this.connection = null; 8383 8384 if (this.has_reconnect) { 8385 this.interval *= multiplier; 8386 setTimeout(function () { 8387 reconnect(); 8388 }, this.interval); 8389 } 8390 } 8391 8392 this.connection.onerror = (e) => { 8393 console.log('%cConnection error ', 'color: red; display: block; width: 100%;', e); 8394 this.connection.close(); 8395 resolve(-1) 8396 } 8397 8398 this.connection.onmessage = (e) => { 8399 if (e.data) { 8400 8401 } 8402 } 8403 } 8404 8405 var reconnect = () => { 8406 if (this.connection === null && this.id !== null) { 8407 console.log('Reconnecting...') 8408 connect(ws); 8409 return 1; 8410 } else { 8411 console.log('Needs to Reconnect...') 8412 return -1; 8413 } 8414 } 8415 8416 8417 if (this.id !== null) { 8418 connect() 8419 } 8420 }) 8421 } 8422 8423 Socket.prototype.kill = function () { 8424 if (this.connection !== null) { 8425 if (this.connection.readyState) { 8426 this.has_reconnect = false; 8427 this.connection.close(); 8428 return 1; 8429 } else { 8430 return -1; 8431 } 8432 } else { 8433 return -1; 8434 } 8435 } 8436 8437 Socket.prototype.get_state = function () { 8438 if (this.connection !== null) { 8439 return this.connection.readyState; 8440 } else { 8441 return null; 8442 } 8443 } 8444 8445 function get_visitor_id() { 8446 let visitorID = localStorage.getItem('visitorID'); 8447 if (!visitorID) { 8448 newVisitor = true; 8449 visitorID = uuid(); 8450 localStorage.setItem('visitorID', visitorID); 8451 } 8452 return visitorID; 8453 } 8454 8455 function get_session_id() { 8456 let sessionID = sessionStorage.getItem('sessionID'); 8457 if (!sessionID) { 8458 newSession = true; 8459 sessionID = uuid(); 8460 sessionStorage.setItem('sessionID', sessionID); 8461 } 8462 return sessionID; 8463 } 8464 8465 function get_tracking_permitted() { 8466 const consent = window.DiPrivacy.consent ?? null; 8467 if (consent === 'granted') { 8468 return 1; 8469 } else if (consent === 'denied') { 8470 return 0; 8471 } else { 8472 return null; 8473 } 8474 } 8475 8476 8477 function is_valid_interaction_type(type) { 8478 // Array of patterns (including static strings as patterns) 8479 const patterns = [ 8480 /^call$/, // Exact match of 'call' 8481 /^click$/, // Exact match of 'click' 8482 /^form_submission$/, // Exact match of 'form_submission' 8483 /^landing$/, // Exact match of 'landing' 8484 /^page$/, // Exact match of 'page' 8485 /^question_\d+$/, // Matches 'question_' followed by one or more digits 8486 /^tracking_permitted$/, // Exact match of 'tracking_permitted' 8487 ]; 8488 8489 // Iterate over the patterns and check if the type matches any of them 8490 for (let pattern of patterns) { 8491 if (pattern.test(type)) { 8492 return true; 8493 } 8494 } 8495 8496 return false; 8497 } 8498 8499 function track_submit(elem) { 8500 return new Promise((resolve, reject) => { 8501 8502 const visitorID = get_visitor_id(); 8503 const sessionID = get_session_id() 8504 8505 let aios_module = elem.closest('[data-mid]'); 8506 let aios_content = elem.closest('[data-cid]') 8507
8508 if (aios_module instanceof jQuery) { 8509 if (aios_module.length) { 8510 aios_module = aios_module[0] 8511 } else { 8512 aios_module = null; 8513 } 8514 } 8515 8516 if (aios_content instanceof jQuery) { 8517 if (aios_content.length) { 8518 aios_content = aios_content[0]; 8519 } else { 8520 aios_content = null; 8521 } 8522 } 8523 8524 8525 8526 let request = {}; 8527 request.action = 'page_interaction'; 8528 request.type = 'form_submission'; 8529 request.visitor_id = visitorID; 8530 request.session_id = sessionID; 8531 request.page_id = pageID; 8532 request.mid = (aios_module !== null) ? aios_module.getAttribute('data-mid') : null; 8533 request.cid = (aios_content !== null) ? aios_content.getAttribute('data-cid') : null; 8534 request.domain = window.location.hostname; 8535 request.page = window.location.pathname; 8536 request.href = null; 8537 request.source = (get_cookie('source') ? get_cookie('source') : null); 8538 request.campaign = (get_cookie('campaign') ? get_cookie('campaign') : null); 8539 request.location = (get_cookie('location') ? get_cookie('location') : null); 8540 request.category = (aios_content !== null) ? aios_content.getAttribute('data-category') : null; 8541 request.subcategory = (aios_content !== null) ? aios_content.getAttribute('data-subcategory') : null; 8542 request.referrer = document.referrer; 8543 request.tracking_permitted = get_tracking_permitted(); 8544 8545 if (get_tracking_permitted() === 1) { } 8546 else { 8547 request.visitor_id = null; 8548 if (document.referrer) { 8549 request.referrer = (new URL(document.referrer)).hostname || null; 8550 } 8551 } 8552 8553 8554 8555 // console.log(request) 8556 8557 let xhr = new XMLHttpRequest(); 8558 xhr.open('POST', api); 8559 xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 8560 xhr.onreadystatechange = function () { 8561 // console.log(xhr.readyState) 8562 if (xhr.readyState == 2) { 8563 resolve(true); 8564 } 8565 if (xhr.readyState == 4) { 8566 if (xhr.status == 200) { 8567 } else { 8568 } 8569 } 8570 } 8571 xhr.onerror = function () { 8572 reject(xhr.status); 8573 } 8574 xhr.send(encodeURI('action=' + JSON.stringify(request))); 8575 }); 8576 } 8577 8578 function track_click(elem) { 8579 return new Promise((resolve, reject) => { 8580 8581 const visitorID = get_visitor_id(); 8582 const sessionID = get_session_id() 8583 8584 let click_type = 'click'; 8585 let aios_module = elem.closest('[data-mid]'); 8586 let aios_content = elem.closest('[data-cid]') 8587 8588 if (aios_module instanceof jQuery) { 8589 if (aios_module.length) { 8590 aios_module = aios_module[0] 8591 } else { 8592 aios_module = null; 8593 } 8594 } 8595 8596 if (aios_content instanceof jQuery) { 8597 if (aios_content.length) { 8598 aios_content = aios_content[0]; 8599 } else { 8600 aios_content = null; 8601 } 8602 } 8603 8604 if (elem.hasAttribute('href')) { 8605 if (elem.getAttribute('href').indexOf('tel:') > -1) { 8606 click_type = 'call' 8607 } 8608 } 8609 8610 if (elem.tagName === 'BUTTON') { 8611 if (elem.hasAttribute('data-click-tracking-type') || elem.hasAttribute('data-event')) { 8612 const elem_type = elem.getAttribute('data-click-tracking-type') || elem.getAttribute('data-event'); 8613 if (elem_type === 'consent_accept' || elem_type === 'consent_reject') { 8614 click_type = 'tracking_permitted'; 8615 } else if (is_valid_interaction_type(elem_type)) { 8616 click_type = elem_type; 8617 } 8618 } 8619 } 8620 8621 if (elem.hasAttribute('data-click-tracking')) { 8622 if (elem.hasAttribute('data-click-tracking-type') || elem.hasAttribute('data-event')) { 8623 const elem_type = elem.getAttribute('data-click-tracking-type') || elem.getAttribute('data-event'); 8624 if (is_valid_interaction_type(elem_type)) { 8625 click_type = elem_type; 8626 } 8627 } 8628 } 8629 8630 let request = {}; 8631 request.action = 'page_interaction'; 8632 request.type = click_type; 8633 request.visitor_id = visitorID; 8634 request.session_id = sessionID; 8635 request.page_id = pageID; 8636 request.mid = (aios_module !== null) ? aios_module.getAttribute('data-mid') : null; 8637 request.cid = (aios_content !== null) ? aios_content.getAttribute('data-cid') : null; 8638 request.domain = window.location.hostname; 8639 request.page = window.location.pathname; 8640 request.href = elem.getAttribute('href'); 8641 request.source = (get_cookie('source') ? get_cookie('source') : null); 8642 request.campaign = (get_cookie('campaign') ? get_cookie('campaign') : null); 8643 request.location = (get_cookie('location') ? get_cookie('location') : null); 8644 request.category = (aios_content !== null) ? aios_content.getAttribute('data-category') : null; 8645 request.subcategory = (aios_content !== null) ? aios_content.getAttribute('data-subcategory') : null; 8646 request.referrer = document.referrer; 8647 request.tracking_permitted = get_tracking_permitted(); 8648 8649 if (get_tracking_permitted() === 1) { } 8650 else { 8651 request.visitor_id = null; 8652 if (document.referrer) { 8653 request.referrer = (new URL(document.referrer)).hostname || null; 8654 } 8655 } 8656 8657 console.log(request); 8658 8659 let xhr = new XMLHttpRequest(); 8660 xhr.open('POST', api); 8661 xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 8662 xhr.onreadystatechange = function () { 8663 // console.log(xhr.readyState) 8664 if (xhr.readyState == 2) { 8665 resolve(true); 8666 } 8667 if (xhr.readyState == 4) { 8668 if (xhr.status == 200) { 8669 } else { 8670 } 8671 } 8672 } 8673 xhr.onerror = function () { 8674 reject(xhr.status); 8675 } 8676 xhr.send(encodeURI('action=' + JSON.stringify(request))); 8677 }); 8678 } 8679 8680 function track_load() { 8681 return new Promise((resolve, reject) => { 8682 const visitorID = get_visitor_id(); 8683 const sessionID = get_session_id() 8684 {/* pageID = uuid(); */ } 8685 8686 let request = {}; 8687 request.action = 'page_interaction'; 8688 request.type = (newSession) ? 'landing' : 'page'; 8689 request.visitor_id = visitorID; 8690 request.session_id = sessionID; 8691 request.page_id = pageID; 8692 request.domain = window.location.hostname; 8693 request.page = window.location.pathname; 8694 request.source = (get_cookie('source') ? get_cookie('source') : null); 8695 request.campaign = (get_cookie('campaign') ? get_cookie('campaign') : null); 8696 request.location = (get_cookie('location') ? get_cookie('location') : null); 8697 request.referrer = document.referrer; 8698 request.tracking_permitted = get_tracking_permitted(); 8699 8700 if (get_tracking_permitted() === 1) { } 8701 else { 8702 request.visitor_id = null; 8703 if (document.referrer) { 8704 request.referrer = (new URL(document.referrer)).hostname || null; 8705 } 8706 } 8707 8708 let xhr = new XMLHttpRequest(); 8709 xhr.open('POST', api); 8710 xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 8711 xhr.onreadystatechange = function () { 8712 if (xhr.readyState == 2) { 8713 resolve(true); 8714 } 8715 if (xhr.readyState == 4) { 8716 if (xhr.status == 200) { 8717 } else { 8718 } 8719 } 8720 } 8721 xhr.onerror = function () { 8722 reject(xhr.status); 8723 } 8724 xhr.send(encodeURI('action=' + JSON.stringify(request))); 8725 }); 8726 } 8727 8728 function deferred_websocket() { 8729 return new Promise((resolve, reject) => { 8730 let visitorID = get_visitor_id(); 8731 const sessionID = get_session_id(); 8732 8733 if (get_tracking_permitted() !== 1) { 8734 visitorID = null; 8735 } 8736 8737 window.addEventListener('scroll', function () { 8738 if (socket === null) { 8739 socket = new Socket(visitorID, sessionID, pageID); 8740 resolve(true); 8741 } 8742 }); 8743 8744 window.addEventListener('mousemove', function () { 8745 if (socket === null) { 8746 socket = new Socket(visitorID, sessionID, pageID); 8747 resolve(true); 8748 } 8749 }); 8750 8751 window.addEventListener('click', function () { 8752 if (socket === null) { 8753 socket = new Socket(visitorID, sessionID, pageID); 8754 resolve(true); 8755 } 8756 }); 8757 }); 8758 } 8759 8760 function clone_lightbox(selected, dom, section, settings) { 8761 var counter = 0; 8762 clonedDom = dom.cloneNode(true); 8763 document.querySelector('section[data-type="system-lightbox-container"]').appendChild(clonedDom); 8764 document.querySelector('section[data-type="system-lightbox-container"] > [data-action="lightbox"]').setAttribute('data-origin', section); 8765 var lightboxItems = document.querySelectorAll('section[data-type="system-lightbox-container"] [data-action="lightbox_item"]'); 8766 lightboxItems[selected].classList.add('selected'); 8767 8768 var closeLightboxElement = document.createElement('div'); 8769 closeLightboxElement.classList.add('close-icon'); 8770 closeLightboxElement.innerHTML = ` 8771 <i class="fal fa-times-circle"> 8772 `; 8773 closeLightboxElement.addEventListener('click', function (e) { 8774 e.preventDefault(); 8775 close_lightbox(); 8776 }); 8777 8778 var nextLightboxElement = document.createElement('div'); 8779 nextLightboxElement.classList.add('next-icon'); 8780 nextLightboxElement.innerHTML = ` 8781 <i class="fal fa-chevron-circle-right"> 8782 `; 8783 8784 var prevLightboxElement = document.createElement('div'); 8785 prevLightboxElement.classList.add('prev-icon'); 8786 prevLightboxElement.innerHTML = ` 8787 <i class="fal fa-chevron-circle-left"> 8788 `; 8789 8790 lightboxItems[selected].appendChild(closeLightboxElement); 8791 lightboxItems[selected].appendChild(nextLightboxElement); 8792 lightboxItems[selected].appendChild(prevLightboxElement); 8793 8794 $('section[data-type="system-lightbox-container"] [data-action="lightbox_item"]').each(function () { 8795 $(this).attr('data-index', counter), 8796 counter++; 8797 }); 8798 8799 open_lightbox(); 8800 } 8801 8802 function open_lightbox() { 8803 $('section[data-type="system-lightbox-container"]').addClass('show'); 8804 setTimeout(function () { 8805 $('*[data-type="system-lightbox-close"]').click(close_lightbox); 8806 }, 400); 8807 8808 $('section[data-type="system-lightbox-container"] [data-lazy-picture="true"]').each(function () { 8809 var data_srcset = $(this).attr('data-srcset'); 8810 var srcset = $(this).attr('srcset'); 8811
8812 if (data_srcset !== '') { 8813 $(this).attr('srcset', data_srcset); 8814 } 8815 }); 8816 8817 $('section[data-type="system-lightbox-container"] [data-lazy-img="true"]').each(function () { 8818 var src = $(this).attr('data-src'); 8819 if (src) { 8820 $(this).attr('src', src); 8821 } 8822 }); 8823 } 8824 8825 function close_lightbox() { 8826 $('*[data-type="system-lightbox-close"]').unbind(); 8827 $('section[data-type="system-lightbox-container"]').removeClass('show'); 8828 setTimeout(function () { 8829 $('section[data-type="system-lightbox-container"]').empty(); 8830 }, 0); 8831 } 8832 8833 function reset_lightbox_container() { 8834 const $container = $('section[data-type="system-lightbox-container"]'); 8835 8836 // Remove only injected lightbox-content clones 8837 $container.find('section[data-type="system-lightbox-content"]').remove(); 8838 8839 // Remove container click handlers (or at least the ones you add via namespace) 8840 $container.off('click.autoOutsideClose'); 8841 } 8842 8843 (function wrapOpenLightbox() { 8844 if (window.__openLightboxWrapped2) return; 8845 window.__openLightboxWrapped2 = true; 8846 8847 function wait() { 8848 if (typeof window.open_lightbox !== 'function') { 8849 setTimeout(wait, 25); 8850 return; 8851 } 8852 8853 const originalOpen = window.open_lightbox; 8854 8855 // Global config 8856 window.override_lightbox = window.override_lightbox || false; 8857 window.lightbox_allowed_source = window.lightbox_allowed_source || null; 8858 window.lightbox_call_source = null; // ephemeral, set right before allowed opens 8859 8860 // Helper: run a function while temporarily marking the caller 8861 window.with_lightbox_source = function (sourceId, fn) { 8862 const prev = window.lightbox_call_source; 8863 window.lightbox_call_source = sourceId; 8864 try { 8865 return fn(); 8866 } finally { 8867 window.lightbox_call_source = prev; 8868 } 8869 }; 8870 8871 window.open_lightbox = function () { 8872 // If override is active, only allow calls tagged by the allowed source 8873 if (window.override_lightbox) { 8874 if (!window.lightbox_allowed_source) return; // locked down hard 8875 if (window.lightbox_call_source !== window.lightbox_allowed_source) { 8876 return; // ignore everyone else 8877 } 8878 } 8879 8880 return originalOpen.apply(this, arguments); 8881 }; 8882 } 8883 8884 wait(); 8885 })(); 8886 8887 function uuid(verbose = false) { 8888 let id = ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c => 8889 (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16) 8890 ) 8891 if (verbose) { 8892 console.log(id); 8893 } 8894 return id 8895 } 8896 8897 function set_cookie(name, value, days, domain) { 8898 var expires = ''; 8899 if (domain == null) { 8900 var domain = window.location.hostname; 8901 domain = domain.split('.'); 8902 8903 if (domain.length == 2) { 8904 domain = domain.join('.'); 8905 } 8906 8907 if (domain.length == 3) { 8908 domain = domain.slice(Math.max(domain.length - 2, 1)); 8909 domain = domain.join('.'); 8910 } 8911 } 8912 if (days) { 8913 var date = new Date(); 8914 date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 8915 expires = '; expires=' + date.toUTCString(); 8916 } 8917 document.cookie = name + '=' + (value || '') + expires + '; domain=' + domain + '; path=/'; 8918 } 8919 8920 function get_cookie(name) { 8921 var name_eq = name + '='; 8922 var ca = document.cookie.split(';'); 8923 for (var i = 0; i < ca.length; i++) { 8924 var c = ca[i]; 8925 while (c.charAt(0) == ' ') c = c.substring(1, c.length); 8926 if (c.indexOf(name_eq) == 0) return c.substring(name_eq.length, c.length); 8927 } 8928 return null; 8929 } 8930 8931 function disable_scroll() { 8932 if (scroll_disabled) { 8933 return; 8934 } 8935 8936 scroll_disabled = true; 8937 scrollTop = $(window).scrollTop(); 8938 8939 $('body') 8940 .css({ 8941 'top': -1 * scrollTop, 8942 'position': 'fixed', 8943 'overflow': 'hidden', 8944 'pointer-events': 'none', 8945 }); 8946 } 8947 8948 function load_extras() { 8949 $.getScript('https://cdn.userway.org/widget.js'); 8950 javascript_deferred.load.forEach(function (v) { 8951 javascript_deferred.prototype[v](); 8952 }); 8953 8954 $('iframe[data-src]').each(function () { 8955 var src = $(this).attr('data-src'); 8956 if (!(src == null || src == '')) { 8957 $(this).attr('src', src); 8958 } 8959 }); 8960 8961 $('iframe[data-srcdoc]').each(function () { 8962 var srcdoc = atob($(this).attr('data-srcdoc')); 8963 if (!(srcdoc == null || srcdoc == '')) { 8964 $(this).attr('srcdoc', srcdoc); 8965 } 8966 }); 8967 } 8968 8969 function update_deferred_images() { 8970 $('[data-lazy-picture="false"]').each(function () { 8971 var data_srcset = $(this).attr('data-srcset'); 8972 var srcset = $(this).attr('srcset'); 8973
8974 if (data_srcset !== '') { 8975 $(this).attr('srcset', data_srcset); 8976 } 8977 }); 8978 8979 $('[data-lazy-img="false"]').each(function () { 8980 var src = $(this).attr('data-src'); 8981 if (src) { 8982 $(this).attr('src', src); 8983 } 8984 }); 8985 8986 /* $('source[data-srcset]').each(function() { 8987 if ($('body').attr('data-width') > 360) { 8988 var src = $(this).attr('data-srcset'); 8989 $(this).attr('srcset', src); 8990 } 8991 else { 8992 var src = $(this).attr('data-srcset-sm'); 8993 $(this).attr('srcset', src); 8994 } 8995 }); */ 8996 8997 8998 $('video source[data-src]').each(function () { 8999 if ($('body').attr('data-width') > 360) { 9000 var src = $(this).attr('data-src'); 9001 $(this).attr('src', src); 9002 $(this).closest('video')[0].load(); 9003 9004 if ($(this).closest('video')[0].hasAttribute('muted')) { 9005 $(this).closest('video')[0].play(); 9006 } 9007 } 9008 }); 9009 } 9010 9011 function lazy_load_deferred_images() { 9012 const lazySections = document.querySelectorAll('body > section') 9013 9014 lazySections.forEach(section => { 9015 // section.classList.add('lazying'); 9016 createObserver(section); 9017 }); 9018 9019 9020 function createObserver(el) { 9021 let observer; 9022 9023 let options = { 9024 root: null, 9025 rootMargin: "100px 0px", 9026 threshold: 0 9027 }; 9028 9029 observer = new window.IntersectionObserver(handleIntersect, options); 9030 observer.observe(el); 9031 } 9032 9033 function handleIntersect(entries, o) { 9034 entries.forEach((entry) => { 9035 if (entry.isIntersecting) { 9036 const lazyAssets = entry.target.querySelectorAll('[data-lazy-picture="true"], [data-lazy-img="true"]'); 9037 // console.log('Lazy Assets', lazyAssets); 9038 9039 lazyAssets.forEach((asset) => { 9040 load(asset); 9041 }); 9042 9043 o.unobserve(entry.target) 9044 9045 } else { 9046 } 9047 }); 9048 } 9049 9050 function load(asset) { 9051 9052 if (asset.tagName === 'IMG') { 9053 if (asset.hasAttribute('data-src')) { 9054 const source = asset.getAttribute('data-src'); 9055 if (source) { 9056 asset.setAttribute('src', source); 9057 asset.removeAttribute('data-src') 9058 } 9059 } else { 9060 } 9061 } 9062 9063 if (asset.tagName === 'SOURCE') { 9064 if (asset.hasAttribute('data-srcset')) { 9065 const source = asset.getAttribute('data-srcset'); 9066 if (source) { 9067 asset.setAttribute('srcset', source); 9068 asset.removeAttribute('data-srcset') 9069 } 9070 } else { 9071 } 9072 } 9073 } 9074 9075 // document.addEventListener('scroll', function () { 9076 9077 // }); 9078 } 9079 9080 9081 function set_resize_listeners() { 9082 window.addEventListener('resize', function () { 9083 if ($(window).width() == window_width) { 9084 return; 9085 } 9086 else { 9087 clearTimeout(timeout); 9088 timeout = setTimeout(get_viewport_size, 50); 9089 } 9090 window_width = $(window).width(); 9091 }); 9092 9093 window.addEventListener('resize', function () { 9094 if ($(window).height() == window_height) { 9095 return; 9096 } 9097 else { 9098 clearTimeout(timeout); 9099 timeout = setTimeout(get_viewport_size, 50); 9100 } 9101 window_height = $(window).height(); 9102 }); 9103 } 9104 9105 function set_scroll_listeners() { 9106 $(document).one('scroll', function () { 9107 if (!extras_loaded) { 9108 extras_loaded = true; 9109 load_extras(); 9110 } 9111 }); 9112 9113 $(document).one('mousemove', function () { 9114 if (!extras_loaded) { 9115 extras_loaded = true; 9116 load_extras(); 9117 } 9118 }); 9119 } 9120 9121 function set_accordion_listeners() { 9122 if ($('div[data-micro-template="accordion"]')) { 9123 $('div[data-accordion="title"').click(function () { 9124 var $container = $(this).closest($('div[data-micro-template="accordion_container"]')); 9125 var $toggles = $container.find('.accordion_toggle'); 9126 var $bodies = $container.find('.accordion_body'); 9127 var $titles = $container.find('.accordion_title'); 9128 9129 $titles.removeClass('active'); 9130 $toggles.text("+"); 9131 $bodies.slideUp(); 9132 9133 if (!$(this).next().is(":visible")) { 9134 $(this).addClass('active'); 9135 $(this).next().slideDown(); 9136 $(this).children('.accordion_toggle').text('-'); 9137 } 9138 }); 9139 } 9140 } 9141 9142 9143 function get_form_info(form) { 9144 const el = $(form)[0]; 9145 return { 9146 page: window.location.pathname, 9147 form: { 9148 id: el.getAttribute('data-form-id') || null, 9149 type: el.getAttribute('data-type') || null, 9150 category: el.getAttribute('data-category') || null, 9151 }, 9152 }; 9153 } 9154 9155 function dispatch_form_event(name, form, response, form_data) { 9156 const detail = get_form_info(form); 9157 detail.response = response; 9158 detail.form_data = form_data ?? null; 9159 $(form)[0].dispatchEvent(new CustomEvent(name, { bubbles: true, detail: detail })); 9160 } 9161 9162 function form_actions() { 9163 if ($('form').length) { 9164 if ($('input[data-toggle="datepicker"]').length) { 9165 $.getScript('/system/js/datepicker/datepicker.js', function () { 9166 $('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/system/js/datepicker/datepicker.css')); 9167 $('input[data-toggle="datepicker"]').each(function () { 9168 9169 let start_date; 9170 9171 if ($(this).attr('name') == 'dob' || $(this).attr('name') == 'birthdate' || $(this).attr('data-email-label').includes('Birth')) { 9172 start_date = '1907-03-04'; 9173 } 9174 9175 const data_start_date = $(this).attr('data-start-date'); 9176 9177 if (data_start_date) { 9178 start_date = data_start_date; 9179 } 9180 9181 if (start_date) { 9182 const match = /^([+-])(\d+)([dwy])$/.exec(start_date); 9183 if (match) { 9184 const [, sign, amountStr, unit] = match; 9185 const amount = parseInt(amountStr, 10) * (sign === '-' ? -1 : 1); 9186 start_date = new Date(); 9187 if (unit === 'd') start_date.setDate(start_date.getDate() + amount); 9188 else if (unit === 'w') start_date.setDate(start_date.getDate() + amount * 7); 9189 else if (unit === 'y') start_date.setFullYear(start_date.getFullYear() + amount); 9190 } else { 9191 start_date = new Date(start_date); 9192 } 9193 } else { 9194 start_date = new Date(); 9195 } 9196 9197 var disabled = { 9198 'mon': $(this).attr('data-mon'),
9199 'tue': $(this).attr('data-tue'), 9200 'wed': $(this).attr('data-wed'), 9201 'thu': $(this).attr('data-thu'), 9202 'fri': $(this).attr('data-fri'), 9203 'sat': $(this).attr('data-sat'), 9204 'sun': $(this).attr('data-sun'), 9205 }; 9206 9207 $(this).datepicker({ 9208 'autoHide': true, 9209 'startDate': start_date, 9210 'filter': function (date, view) { 9211 if (disabled['mon'] == true) { if (date.getDay() === 1 && view === 'day') { return false; } } 9212 if (disabled['tue'] == true) { if (date.getDay() === 2 && view === 'day') { return false; } } 9213 if (disabled['wed'] == true) { if (date.getDay() === 3 && view === 'day') { return false; } } 9214 if (disabled['thu'] == true) { if (date.getDay() === 4 && view === 'day') { return false; } } 9215 if (disabled['fri'] == true) { if (date.getDay() === 5 && view === 'day') { return false; } } 9216 if (disabled['sat'] == true) { if (date.getDay() === 6 && view === 'day') { return false; } } 9217 if (disabled['sun'] == true) { if (date.getDay() === 0 && view === 'day') { return false; } } 9218 } 9219 }); 9220 }); 9221 }); 9222 } 9223 9224 $('form input[type="file"]').change(function () { 9225 var max_file_size = $(this).closest('[data-group="file"]').attr('data-max-size'); 9226 var current_label = $(this).closest('label').find('.label_name').text(); 9227 console.log(current_label); 9228 var current_form = $(this).closest('form'); 9229 var container = $(this).closest('[data-container="file"]'); 9230 var selected_file = $(this).val().split('/').pop().split('\\').pop(); 9231 9232 $(this).closest('label').find('.label_name').text(selected_file); 9233 $(this).closest('label').find('.label_name').append('<div class="remove_file"><i class="fal fa-times">'); 9234 9235 var total_file_size = 0; 9236 9237 $(current_form).find('input[type="file"]').each(function () { 9238 if ($(this).val().length > 0) { 9239 total_file_size += $(this).prop('files')[0].size; 9240 } 9241 }); 9242 9243 $(current_form).find('.max_size_container .dynamic_size').text((total_file_size / 1024 / 1024).toFixed(2)); 9244 9245 if ($(container).next('[data-container="file"]').length < 1) { 9246 file_field_counter++; 9247 var current_name = $(container).attr('data-name'); 9248 var next_container = $(container).clone(true).insertAfter(container); 9249 $(next_container).find('input').attr('name', current_name + '_' + file_field_counter); 9250 $(next_container).find('input').val(''); 9251 $(next_container).find('label .label_name').text(current_label); 9252 } 9253 9254 if ((total_file_size / 1024 / 1024).toFixed(2) > parseInt(max_file_size)) { 9255 $(current_form).find('.max_size_container').addClass('too_large'); 9256 $(current_form).find('[data-group="file"] > div [data-container="file"]:last-of-type').addClass('disabled'); 9257 $(current_form).find('[data-type="submit"]').addClass('disabled'); 9258 $(current_form).addClass('disabled'); 9259 } 9260 else { 9261 $(current_form).find('.max_size_container').removeClass('too_large'); 9262 $(current_form).find('[data-group="file"] > div [data-container="file"]:last-of-type').removeClass('disabled'); 9263 $(current_form).find('[data-type="submit"]').removeClass('disabled'); 9264 $(current_form).removeClass('disabled'); 9265 } 9266 9267 $(container).find('.remove_file').click(function (e) { 9268 e.preventDefault(); 9269 $(container).remove(); 9270 9271 total_file_size = 0; 9272 9273 $(current_form).find('input[type="file"]').each(function () { 9274 if ($(this).val().length > 0) { 9275 total_file_size += $(this).prop('files')[0].size; 9276 } 9277 }); 9278 9279 if ((total_file_size / 1024 / 1024).toFixed(2) > parseInt(max_file_size)) { 9280 $(current_form).find('.max_size_container').addClass('too_large'); 9281 $(current_form).find('[data-group="file"] > div [data-container="file"]:last-of-type').addClass('disabled'); 9282 $(current_form).find('[data-type="submit"]').addClass('disabled'); 9283 $(current_form).addClass('disabled'); 9284 } 9285 else { 9286 $(current_form).find('.max_size_container').removeClass('too_large'); 9287 $(current_form).find('[data-group="file"] > div [data-container="file"]:last-of-type').removeClass('disabled'); 9288 $(current_form).find('[data-type="submit"]').removeClass('disabled'); 9289 $(current_form).removeClass('disabled'); 9290 } 9291 9292 if ($('form.disabled').length > 0) { 9293 $('form [data-type="submit_multi"]').addClass('disabled'); 9294 } 9295 else { 9296 $('form [data-type="submit_multi"]').removeClass('disabled'); 9297 } 9298
9299 $(current_form).find('.max_size_container .dynamic_size').text((total_file_size / 1024 / 1024).toFixed(2)); 9300 }); 9301 }); 9302 9303 $('form *[data-required="true"], form *[data-required="1"]').each(function () { 9304 var placeholder = $(this).attr('placeholder'); 9305 $(this).attr('required', true); 9306 $(this).attr('placeholder', placeholder + ' *'); 9307 $(this).find('option[value=""]').text($(this).find('option[value=""]').text() + ' *'); 9308 }); 9309 9310 $('form fieldset').each(function () { 9311 var field_name = $(this).attr('name'); 9312 var default_value = $(this).attr('value'); 9313 9314 if (default_value !== '') { 9315 $(this).find('input[data-type="radio"][name="' + field_name + '"][value="' + default_value + '"]').attr('checked', true); 9316 $(this).find('input[data-type="radio"][id="' + field_name + '_' + default_value + '"]').attr('checked', true); 9317 $(this).find('input[data-type="checkbox"][name="' + default_value + '"]').attr('checked', true); 9318 $(this).find('input[data-type="checkbox"][id="' + field_name + '_' + default_value + '"]').attr('checked', true); 9319 } 9320 }); 9321 9322 $('form *[data-readonly="true"], form *[data-readonly="1"]').each(function () { 9323 $(this).attr('readonly', true); 9324 }); 9325 9326 $('form *[data-hidden="true"], form *[data-hidden="1"]').each(function () { 9327 $(this).css('display', 'none'); 9328 }); 9329 9330 $('form[data-dynamic="true"]').on('submit', function (e) { 9331 console.time('Click 2 Submit') 9332 e.preventDefault(); 9333 var submitted_form = $(this); 9334 var submitted_form_data = null; // ADD 9335 var recaptcha_site_key = $(this).attr('data-recaptcha-site-key'); 9336 var recaptcha_secret_key = $(this).attr('data-recaptcha-secret-key'); 9337 var recaptcha_processor = $(this).attr('data-recaptcha-processor'); 9338 9339 if ( 9340 recaptcha_site_key !== '' && 9341 recaptcha_secret_key !== '' && 9342 recaptcha_processor !== '' 9343 ) { 9344 if (this.checkValidity()) { 9345 grecaptcha.ready(function () { 9346 grecaptcha.execute(recaptcha_site_key, { action: 'submit' }).then(function (token) { 9347 $.post(recaptcha_processor, { 9348 secret: recaptcha_secret_key, 9349 response: token 9350 }) 9351 .done(function (recaptcha) { 9352 prepare_submission(submitted_form, recaptcha).then((val) => { 9353 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
9353y, val.ad_location_key, val.submission_url); 9354 }).then((val) => { 9355 // Done 9356 submitted_form_data = val.form_data; 9357 track_submit(submitted_form); 9358 9359 // Custom Event 9360 dispatch_form_event("tdi:form:success", submitted_form, val, submitted_form_data); 9361 9362 }); 9363 }) 9364 }); 9365 }); 9366 } 9367 } 9368 else { 9369 if (this.checkValidity()) { 9370 prepare_submission(submitted_form, null).then((val) => { 9371 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); 9372 }).then((val) => { 9373 // Done 9374 submitted_form_data = val.form_data; 9375 track_submit(submitted_form); 9376 9377 // Custom Event 9378 dispatch_form_event("tdi:form:success", submitted_form, val, submitted_form_data); 9379 9380 }); 9381 } 9382 } 9383 }); 9384 9385 $('form .button.submit[data-dynamic="true"]').click(function () { 9386 if (!form_button_lock && !click_lock) { 9387 click_lock = true; 9388 $(this).closest('form').find('input[type="submit"]')[0].click(); 9389 } 9390 setTimeout(function () { 9391 click_lock = false; 9392 }, 1000); 9393 }); 9394 9395 $('form select[name="location"]').change(function (e) { 9396 $(this).closest('form').find('input[name="date"').val(''); 9397 if ($(this).find(':selected').data('datesDisabled')) { 9398 var $selectedOption = $(this).find(':selected').data('datesDisabled'); 9399 $selectedOption = atob($selectedOption); 9400 9401 $(this).closest('form').find('input[data-toggle="datepicker"]').each(function () { 9402 var disabled = JSON.parse($selectedOption); 9403 $(this).datepicker('destroy'); 9404 $(this).datepicker({ 9405 'autoHide': true, 9406 'filter': function (date, view) { 9407 if (disabled['mon'] == true) { if (date.getDay() === 1 && view === 'day') { return false; } } 9408 if (disabled['tue'] == true) { if (date.getDay() === 2 && view === 'day') { return false; } } 9409 if (disabled['wed'] == true) { if (date.getDay() === 3 && view === 'day') { return false; } } 9410 if (disabled['thu'] == true) { if (date.getDay() === 4 && view === 'day') { return false; } } 9411 if (disabled['fri'] == true) { if (date.getDay() === 5 && view === 'day') { return false; } } 9412 if (disabled['sat'] == true) { if (date.getDay() === 6 && view === 'day') { return false; } } 9413 if (disabled['sun'] == true) { if (date.getDay() === 0 && view === 'day') { return false; } } 9414 } 9415 }); 9416 $(this).datepicker('update'); 9417 }); 9418 } 9419 }); 9420 9421 9422 9423 $('form input[name^="phone"][data-type="text"]').on('input', function () { 9424 var el = this; 9425 var oldValue = el.value; 9426 var selStart = el.selectionStart; 9427 9428 // digits to the left of the caret in the OLD value 9429 var digitsLeft = oldValue.slice(0, selStart).replace(/\D/g, '').length; 9430 9431 var digits = oldValue.replace(/\D/g, ''); 9432 9433 9434 var intl = digits.length > 10; 9435 9436 var formatted; 9437 if (!intl) { 9438 var m = digits.slice(0, 10).match(/^(\d{0,3})(\d{0,3})(\d{0,4})$/); 9439 formatted = !m[2] ? m[1] : '(' + m[1] + ') ' + m[2] + (m[3] ? '-' + m[3] : ''); 9440 } else { 9441 formatted = '+' + digits.slice(0, 15); 9442 } 9443 9444 el.value = formatted; 9445 9446 if (el === document.activeElement) { 9447 var pos = 0, seen = 0; 9448 while (pos < formatted.length && seen < digitsLeft) { 9449 if (/\d/.test(formatted[pos])) seen++; 9450 pos++; 9451 } 9452 el.setSelectionRange(pos, pos); 9453 } 9454 }); 9455 } 9456 } 9457 9458 function prepare_submission(form_submit, recaptcha) { 9459 return new Promise((resolve, reject) => { 9460 console.time('prepare_submission()'); 9461 form_button_lock = true; 9462 $(form_submit).find('.button.submit[data-dynamic="true"]').text('Sending...'); 9463 9464 const appendLocation = $(form_submit).attr('data-append-location') === '1' ? true : false;
9465 const locationSelected = $(form_submit).find('select[name="location"] option:selected') ? $(form_submit).find('select[name="location"] option:selected').text() : null; 9466 9467 var form_data = {}; 9468 var recipients_add = []; 9469 var cc_add = []; 9470 var db_only = $(form_submit).attr('data-db-only'); 9471 var recipients = $(form_submit).attr('data-recipients'); 9472 var ad_recipients = $(form_submit).attr('data-ad-recipients'); 9473 var cc = $(form_submit).attr('data-cc'); 9474 var subject = $(form_submit).attr('data-subject'); 9475 var category = $(form_submit).attr('data-category') + (appendLocation && locationSelected ? ` (${locationSelected})` : ''); 9476 var is_hipaa = $(form_submit).attr('data-hipaa'); 9477 var reply_to = $(form_submit).attr('data-reply-to'); 9478 var pdf = $(form_submit).attr('data-pdf'); 9479 var submission_url = $(form_submit).attr('data-submission-url'); 9480 9481 var ad_source = $(form_submit).find('[data-ad-tracking="source"]').val(); 9482 var ad_campaign = $(form_submit).find('[data-ad-tracking="campaign"]').val(); 9483 var ad_location = $(form_submit).find('[data-ad-tracking="ad_location"]').val(); 9484 9485 var ad_source_key = (get_cookie('source') ? get_cookie('source') : null);
9486 var ad_campaign_key = (get_cookie('campaign') ? get_cookie('campaign') : null); 9487 var ad_location_key = (get_cookie('location') ? get_cookie('location') : null); 9488 9489 $(form_submit).find('input, textarea, select, fieldset').each(function () { 9490 if ( 9491 $(this).is('input:not([type="file"])') && 9492 $(this)[0].hasAttribute('name') && 9493 $(this)[0].hasAttribute('data-email-label') 9494 ) { 9495 value_obj = { 9496 'label': $(this).attr('data-email-label'), 9497 'name': $(this).attr('name'), 9498 'value': $(this).val(), 9499 'type': 'text' 9500 }; 9501 form_data[$(this).attr('name')] = value_obj; 9502 } 9503 9504 if ( 9505 $(this).is('textarea') && 9506 $(this)[0].hasAttribute('name') && 9507 $(this)[0].hasAttribute('data-email-label') 9508 ) { 9509 value_obj = { 9510 'label': $(this).attr('data-email-label'), 9511 'name': $(this).attr('name'), 9512 'value': $(this).val(), 9513 'type': 'textarea' 9514 }; 9515 form_data[$(this).attr('name')] = value_obj; 9516 } 9517 9518 if ( 9519 $(this).is('select') && 9520 $(this)[0].hasAttribute('name') && 9521 $(this)[0].hasAttribute('data-email-label') 9522 ) { 9523 value_obj = { 9524 'label': $(this).attr('data-email-label'), 9525 'name': $(this).attr('name'), 9526 'value': $(this).val(), 9527 'type': 'select' 9528 }; 9529 form_data[$(this).attr('name')] = value_obj; 9530 9531 if ( 9532 $(this).find(':selected').length > 0 && 9533 $(this).find(':selected')[0].hasAttribute('data-recipients') && 9534 $(this).find(':selected').attr('data-recipients').length 9535 ) { 9536 recipients_add.push($(this).find(':selected').attr('data-recipients')); 9537 } 9538 9539 if ( 9540 $(this).find(':selected').length > 0 && 9541 $(this).find(':selected')[0].hasAttribute('data-cc') && 9542 $(this).find(':selected').attr('data-cc').length 9543 ) { 9544 cc_add.push($(this).find(':selected').attr('data-cc')); 9545 } 9546 } 9547 9548 if ( 9549 $(this).is('fieldset') && 9550 $(this)[0].hasAttribute('name') && 9551 $(this)[0].hasAttribute('data-email-label') 9552 ) { 9553 var val = []; 9554 var keys = []; 9555 $(this).find('input:checked').each(function () { 9556 val.push($(this).attr('value')); 9557 keys.push($(this).attr('name')); 9558 }); 9559 value_obj = { 9560 'label': $(this).attr('data-email-label'), 9561 'name': $(this).attr('name'), 9562 'keys': keys.join('; '), 9563 'value': val.join('; '), 9564 'type': $(this).attr('type') 9565 }; 9566 form_data[$(this).attr('name')] = value_obj; 9567 } 9568 }); 9569 9570 console.timeEnd('prepare_submission()'); 9571 console.time('submit_form()'); 9572 resolve({ 9573 "form_submit": form_submit, 9574 "recaptcha": recaptcha, 9575 "form_data": form_data, 9576 "db_only": db_only, 9577 "recipients": recipients, 9578 "recipients_add": recipients_add, 9579 "ad_recipients": ad_recipients, 9580 "cc": cc, 9581 "cc_add": cc_add, 9582 "subject": subject, 9583 "category": category, 9584 "is_hipaa": is_hipaa, 9585 "reply_to": reply_to, 9586 "pdf": pdf, 9587 "ad_source": ad_source, 9588 "ad_campaign": ad_campaign, 9589 "ad_location": ad_location, 9590 "ad_source_key": ad_source_key,
9591 "ad_campaign_key": ad_campaign_key, 9592 "ad_location_key": ad_location_key, 9593 "submission_url": submission_url 9594 }) 9595 }); 9596 } 9597 9598 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) { 9599 return new Promise((resolve, reject) => { 9600 var email_list = []; 9601 var first_name = null; 9602 var last_name = null; 9603 9604 var file_size_total = 0; 9605 var files_uploaded = []; 9606 var files_selected = 0; 9607 9608 if ( 9609 form_submit[0].hasAttribute('data-google-conversion') && 9610 google_conversion 9611 ) { 9612 const conversion_code = $(form_submit[0]).attr('data-google-conversion'); 9613 if (conversion_code.length > 0) { 9614 google_tracking.gtag('event', 'conversion', { 'send_to': conversion_code }); 9615 } 9616 } 9617 9618 if ( 9619 form_submit[0].hasAttribute('data-facebook-conversion') && 9620 facebook_conversion 9621 ) { 9622 const conversion_type = $(form_submit[0]).attr('data-facebook-conversion'); 9623 if (conversion_type.length > 0) { 9624 facebook_tracking.fbq('track', conversion_type); 9625 } 9626 } 9627 9628 $(form_submit).find('input[type="file"]').each(function () { 9629 var file_selected = $(this).val(); 9630 if (file_selected.length > 0) { 9631 files_selected++; 9632 } 9633 }); 9634 9635 $(form_submit).find('input[type="file"]').each(function () { 9636 var file_to_upload = $(this).val(); 9637 var submit_promise = new Promise((res, rej) => { 9638 if (file_to_upload.length > 0) { 9639 var xhr = new XMLHttpRequest(); 9640 var file = $(this).prop('files')[0]; 9641 var formData = new FormData(); 9642 formData.append('file', file); 9643 9644 xhr.onreadystatechange = function () { 9645 if (xhr.readyState == 4) { 9646 files_uploaded.push(xhr.responseText); 9647 res(xhr.responseText); 9648 } 9649 } 9650 9651 xhr.open('POST', '/system/processors/file_upload/processor.php', true); 9652 xhr.send(formData); 9653 } else { 9654 res('') 9655 } 9656 }).then((file) => { 9657 if (file) { 9658 return file; 9659 } else { 9660 return ''; 9661 } 9662 }); 9663 files_uploaded.push(submit_promise); 9664 }); 9665 9666 $(form_submit).find('input[type="email"]').each(function () { 9667 email_list.push($(this).val()); 9668 }); 9669 9670 $(form_submit).find('input[type="text"][data-email-label="First Name"]').each(function () { 9671 first_name = $(this).val(); 9672 }); 9673 9674 $(form_submit).find('input[type="text"][data-email-label="Last Name"]').each(function () { 9675 last_name = $(this).val(); 9676 }); 9677 9678 9679 if ((first_name === null || first_name === '') && (last_name === null || last_name === '')) { 9680 $(form_submit).find('input[type="text"][data-email-label="Full Name"], input[type="text"][data-email-label="Name"]').each(function () { 9681 const full_name = $(this).val(); 9682 first_name = full_name; 9683 }); 9684 } 9685 9686 9687 console.time('POST to processor.php') 9688 $.post('/system/processors/validation/processor.php', { 9689 type: 'date_time', 9690 val: null 9691 }) 9692 .done(function (validation) { 9693 console.timeEnd('POST to processor.php') 9694 console.time('Wait For Files') 9695 9696 Promise.all(files_uploaded).then((value) => { 9697 console.timeEnd('Wait For Files') 9698 let uploaded_files = value.filter(file => file); 9699 console.log(JSON.stringify(uploaded_files)); 9700 console.log('Files Uploaded'); 9701 console.time('POST to submission_url') 9702 $.post(submission_url, { 9703 validation: validation, 9704 db_only: db_only, 9705 recipients: recipients, 9706 recipients_add: JSON.stringify(recipients_add), 9707 ad_recipients: ad_recipients, 9708 recaptcha: recaptcha, 9709 cc: cc, 9710 cc_add: JSON.stringify(cc_add), 9711 subject: subject, 9712 category: category, 9713 first_name: first_name, 9714 last_name: last_name, 9715 is_hipaa: is_hipaa, 9716 reply_to: reply_to, 9717 pdf: pdf, 9718 ad_source: ad_source, 9719 ad_campaign: ad_campaign, 9720 ad_location: ad_location, 9721 ad_source_key: ad_source_key,
9722 ad_campaign_key: ad_campaign_key, 9723 ad_location_key: ad_location_key, 9724 files: JSON.stringify(uploaded_files), 9725 data: JSON.stringify(form_data), 9726 email_list: JSON.stringify(email_list) 9727 }) 9728 .done(function (data) { 9729 console.timeEnd('POST to submission_url') 9730 9731 form_button_lock = false; 9732 form_submit[0].reset(); 9733 $(form_submit).find('.remove_file').click(); 9734 $('form .button.submit[data-dynamic="true"]').each(function () { 9735 var placeholder = $(this).attr('placeholder'); 9736 $(this).text(placeholder); 9737 }); 9738 9739 if ($(form_submit).attr('data-action') !== '') { 9740 var action = $(form_submit).attr('data-action'); 9741 9742 if (action == 'close_lightbox') { 9743 close_lightbox(); 9744 } 9745 9746 if (action == 'redirect') { 9747 var redirect = $(form_submit).attr('data-confirmation'); 9748 window.location.replace(redirect); 9749 } 9750 9751 if (action == 'function') { 9752 var form_complete_function = $(form_submit).attr('data-confirmation'); 9753 window[form_complete_function](form_data); 9754 } 9755 9756 if (action == 'none') { } 9757 } 9758 else { 9759 var confirmation = $(form_submit).children('section[data-type="system-lightbox-content"]'); 9760 $(confirmation).clone().appendTo('section[data-type="system-lightbox-container"]'); 9761 open_lightbox(); 9762 } 9763 resolve(false); 9764 }); 9765 }); 9766 }); 9767 }); 9768 } 9769 9770 function get_viewport_size() { 9771 viewport_size = viewport(); 9772 $('body').attr('data-width', viewport_size.width); 9773 $('body').attr('data-height', viewport_size.height); 9774 } 9775 9776 function viewport() { 9777 var e = window, a = 'inner'; 9778 if (!('innerWidth' in window)) { 9779 a = 'client'; 9780 e = document.documentElement || document.body; 9781 } 9782 return { width: e[a + 'Width'], height: e[a + 'Height'] }; 9783 } 9784 9785 function set_tracking() { 9786 const url_parameters = new URLSearchParams(window.location.search); 9787 const source = url_parameters.get('source'); 9788 const campaign = url_parameters.get('campaign'); 9789 const location = url_parameters.get('location'); 9790 9791 if (source) { 9792 set_cookie('source', source, 90, null); 9793 } 9794 9795 if (campaign) { 9796 set_cookie('campaign', campaign, 90, null); 9797 } 9798 9799 if (location) { 9800 set_cookie('location', location, 90, null); 9801 } 9802 } 9803 9804 function load_functions() { 9805 javascript.load.forEach(function (v) { 9806 javascript.prototype[v](); 9807 }); 9808 } 9809 9810 function load_fa() { 9811 /* $.getScript('https://kit.fontawesome.com/10cd9403cd.js'); */ 9812 } 9813 9814 function load_default_subs() { 9815 $('video:not(.no_subs)').each(function () { 9816 var found_video = $(this); 9817 9818 if ($(this).find('source').length) { 9819 var video_source = $(this).find('source').attr('src').split('/').pop(); 9820 } 9821 else { 9822 var video_source = $(this).attr('src').split('/').pop(); 9823 } 9824 9825 $.get('/custom/content/subs/' + video_source + '.vtt', function (data) { 9826 if (data === 'Error') { 9827 $('<track/>') 9828 .attr('label', 'English') 9829 .attr('kind', 'subtitles') 9830 .attr('srclang', 'en') 9831 .attr('src', '/system/content/subs/no_audio.vtt') 9832 .appendTo(found_video); 9833 } 9834 else { 9835 $('<track/>') 9836 .attr('label', 'English') 9837 .attr('kind', 'subtitles') 9838 .attr('srclang', 'en') 9839 .attr('src', '/custom/content/subs/' + video_source + '.vtt') 9840 .appendTo(found_video); 9841 } 9842 }) 9843 .fail(function (data) { 9844 $('<track/>') 9845 .attr('label', 'English') 9846 .attr('kind', 'subtitles') 9847 .attr('srclang', 'en') 9848 .attr('src', '/system/content/subs/no_audio.vtt') 9849 .appendTo(found_video); 9850 }); 9851 }); 9852 } 9853 9854 function stalling(ms) { 9855 return setTimeout(() => { 9856 }, ms); 9857 } 9858 9859 function initialize() { 9860 console.log('Initializing...'); 9861 window_width = $(window).width(); 9862 window_height = $(window).height(); 9863 get_viewport_size(); 9864 viewport_size = viewport(); 9865 update_deferred_images(); 9866 set_resize_listeners(); 9867 set_scroll_listeners(); 9868 set_accordion_listeners(); 9869 form_actions(); 9870 set_tracking(); 9871 load_functions(); 9872 load_fa(); 9873 load_default_subs(); 9874 9875 track_load(); 9876 deferred_websocket(); 9877 lazy_load_deferred_images(); 9878 9879 // Add Tracking to each button 9880 const selection = document.querySelectorAll('section[class^="section_"], #di-consent-banner, #di-cookie-pref-dialog'); 9881 for (var i = 0; i < selection.length; i++) { 9882 var found_buttons = selection[i].querySelectorAll("a[href], [data-click-tracking]:not(a[href]), button:not(a[href])"); 9883 found_buttons = Array.from(new Set(found_buttons)); 9884 found_buttons.forEach(element => { 9885 element.addEventListener('click', function (e) { 9886 var stall = false;
9887 if (this.tagName === 'A' && this.getAttribute('href') !== '#') { 9888 stall = stalling(500); 9889 } 9890 9891 track_click(this).then(() => { 9892 if (stall !== false) { 9893 clearTimeout(stall); 9894 } 9895 }) 9896 }) 9897 }); 9898 } 9899 } 9900 9901 $(document).ready(initialize); 9902</script>
9902 9903 9904
9904<script> 9905 // Override any default global variables from SYSTEM_JS 9906 (function() { 9907 var overrides = { 9908 }; 9909 9910 // Apply overrides to global scope 9911 for (var key in overrides) { 9912 if (overrides.hasOwnProperty(key)) { 9913 window[key] = overrides[key]; 9914 } 9915 } 9916 })(); 9917 </script>
9917 9918 9919
9919<script src="https://api.aleso.ai/aleso.js" async></script>
9919 9920 </body> 9921 </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.