1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 6 <!--SEOMetaTagPHStarts--> 7 <title>Retailing products in the Implants Guru office | Dr. Keerthi Senthil</title> 8 <meta name="description" content="Retailing products in the Implants Guru office - what would you do."> 9 <meta name="Keywords" content="Dr. Keerthi Senthil" /> 10 <meta name="robots" content="index, follow" /> 11 <meta name="robots" content="noodp,noydir" /> 12 <link rel="alternate" href="https://www.implantsguru.dentist/products" hreflang="en-us" /> 13 <link rel="canonical" href="https://www.implantsguru.dentist/products" /> 14 <meta name="Author" content="Implants Guru" /> 15 <meta name="google-site-verification" content="0moFyua2m1Md5B8CpiKjPcQR8sAboFw9nGHaLs8MvDA" /> 16 17 <meta name="language" content="en_US" /> 18 <meta property="og:url" content="https://www.implantsguru.dentist/products" /> 19 <meta property="og:type" content="website" /> 20 <meta property="og:title" content="Retailing products in the Implants Guru office | Dr. Keerthi Senthil" /> 21 <meta property="og:description" content="Retailing products in the Implants Guru office - what would you do." /> 22 <meta property="og:image" content="https://www.implantsguru.dentist/img/Implantsguru-logo-open-graph.jpg" /> 23 <meta property="og:image:width" content="600" /> 24 <meta property="og:image:height" content="314" /> 25 26 <meta name="twitter:card" content="summary" /> 27 <meta property="twitter:title" content="Retailing products in the Implants Guru office | Dr. Keerthi Senthil" /> 28 <meta property="twitter:description" content="Retailing products in the Implants Guru office - what would you do." /> 29 <meta property="twitter:url" content="https://www.implantsguru.dentist/products" /> 30 <meta property="twitter:image" content="https://www.implantsguru.dentist/img/Implantsguru-logo-open-graph.jpg" /> 31 32 <!--C2C Begin--> 33 34 <!--C2C End--> 35 <!--Favicon--> 36 <!-- Bootstrap core CSS --> 37 <link href="/Content/bootstrap.min.css" rel="stylesheet"> 38 <!-- Custom styles for this template --> 39 <link href="/Content/ADS-Styles.css?v=20260930-contact-panels-2" rel="stylesheet"> 40 <link href="/Content/easy-buttons.css" rel="stylesheet" /> 41 <!--Fancy Box--> 42 <link href="/Content/jquery.fancybox.css" rel="stylesheet" /> 43 <!-- Fonts --> 44 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css" integrity="sha512-Evv84Mr4kqVGRNSgIGL/F/aIDqQb7xQ2vcrdIwxfjThSH8CSR7PBEakCr51Ck+w+/U6swU2Im1vVX0SVk9ABhg==" crossorigin="anonymous" referrerpolicy="no-referrer" /> 45 <link href="/fonts/font-awesome-4.7.0/css/font-awesome.min.css" rel="stylesheet"> 46 <!--owl.carousel--> 47 <link href="/Content/owl.carousel.css" rel="stylesheet" /> 48 <link href="/Content/owl.theme.css" rel="stylesheet" /> 49 <link href="/Content/owl.transitions.css" rel="stylesheet" /> 50 <!-- vertical-navbar --> 51 <link href="/Content/vertical-navbar.css" rel="stylesheet" /> 52 <!-- twentytwenty for Smile-Gallery-5 --> 53 <link rel="stylesheet" type="text/css" href="/Content/twentytwenty.css" /> 54 <!-- Contact Form with Recaptcha and intlTelInput CSS--> 55 <link rel="stylesheet" href="/ADS-CF/library/intl-tel-input/css/intlTelInput.css"> 56 <!-- Styles for PE --> 57 <link href="https://www.americandentalwebsites.com/PE/pe_web/css/ads-pe.css" rel="stylesheet"> 58 <link href="https://www.americandentalwebsites.com/PE/pe_web/css/ads-pe-plyr-3.5.6.css" rel="stylesheet"> 59 60 <link rel="preload" type="font/woff" as="font" href="/fonts/glyphicons-halflings-regular.woff" crossorigin /> 61 <link rel="preload" type="font/woff2" as="font" href="/fonts/raleway-v17-latin/raleway-v17-latin-regular.woff2" crossorigin /> 62 <link rel="preload" type="font/woff2" as="font" href="/fonts/dancing-script-v15-latin/dancing-script-v15-latin-regular.woff2" crossorigin /> 63 <link rel="preload" type="font/woff2" as="font" href="/fonts/raleway-v17-latin/raleway-v17-latin-700.woff2" crossorigin> 64 <link rel="preload" type="font/woff2" as="font" href="/fonts/raleway-v17-latin/raleway-v17-latin-300.woff2" crossorigin> 65 <link rel="preload" type="font/ttf" as="font" href="/fonts/Flanella.ttf" crossorigin /> 66 <link rel="preload" type="font/otf" as="font" href="/fonts/Montserrat-Bold.otf" crossorigin /> 67 <link rel="preload" type="font/otf" as="font" href="/fonts/Montserrat-SemiBold.otf" crossorigin /> 68 <link rel="preload" type="font/otf" as="font" href="/fonts/Montserrat-Regular.otf" crossorigin /> 69 <link rel="preload" type="font/woff2" as="font" href="/fonts/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2?v=4.7.0" crossorigin /> 70 71 <link rel="preload" as="image" href="/img/main-slider/slide06-xs.webp" media="(max-width: 767px)" fetchpriority="high"> 72 <link rel="preload" as="image" href="/img/main-slider/slide06.webp" media="(min-width: 768px)" fetchpriority="high"> 73 <link rel="preload" as="image" href="/img/logo.svg"> 74 75 76 77 78 79 <link rel="apple-touch-icon" sizes="57x57" href="/img/favicon/apple-icon-57x57.png"> 80 <link rel="apple-touch-icon" sizes="60x60" href="/img/favicon/apple-icon-60x60.png"> 81 <link rel="apple-touch-icon" sizes="72x72" href="/img/favicon/apple-icon-72x72.png"> 82 <link rel="apple-touch-icon" sizes="76x76" href="/img/favicon/apple-icon-76x76.png"> 83 <link rel="apple-touch-icon" sizes="114x114" href="/img/favicon/apple-icon-114x114.png"> 84 <link rel="apple-touch-icon" sizes="120x120" href="/img/favicon/apple-icon-120x120.png"> 85 <link rel="apple-touch-icon" sizes="144x144" href="/img/favicon/apple-icon-144x144.png"> 86 <link rel="apple-touch-icon" sizes="152x152" href="/img/favicon/apple-icon-152x152.png"> 87 <link rel="apple-touch-icon" sizes="180x180" href="/img/favicon/apple-icon-180x180.png"> 88 <link rel="icon" type="image/png" sizes="192x192" href="/img/favicon/android-icon-192x192.png"> 89 <link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png"> 90 <link rel="icon" type="image/png" sizes="96x96" href="/img/favicon/favicon-96x96.png"> 91 <link rel="icon" type="image/png" sizes="16x16" href="/img/favicon/favicon-16x16.png"> 92 <link rel="manifest" href="/img/favicon/manifest.json"> 93 <meta name="msapplication-TileColor" content="#ffffff"> 94 <meta name="msapplication-TileImage" content="/img/favicon/ms-icon-144x144.png"> 95 <meta name="theme-color" content="#ffffff"> 96 97 <!-- Google tag (gtag.js) -->
vendor: 69 bytes, lines 97-98
97 98 <script async src="https://www.googletagmanager.com/gtag/js?id=
98AW-11370109345
vendor: 17 bytes, lines 98-99
98"></script> 99
99<script> 100
vendor: 159 bytes, lines 100-104
100window.dataLayer = window.dataLayer || []; 101 function gtag() { dataLayer.push(arguments); } 102 gtag('js', new Date()); 103 104 gtag('config', '
104AW-11370109345
vendor: 9 bytes, lines 104-105
104'); 105
105</script>
105 106 107 <link rel="stylesheet" href="/Content/chat-booking.css?v=20261007-audit-fixes" /> 108
108<script src="/Scripts/chat-booking.js?v=20261007-audit-fixes" defer></script>
108� 109</head> 110<body class="sub-page"> 111 112 113 <!-- header-sec --> 114 <header id="header-sec"> 115 116 117 118 <div class="container"> 119 <!-- Menu 1 --> 120 <nav class="navbar navbar-default navbar-static-top"> 121 <div class="navbar-header"> 122 <button aria-controls="navbar" aria-expanded="false" data-target="#navbar" data-toggle="collapse" class="navbar-toggle collapsed" type="button"> 123 <span class="sr-only">Toggle navigation</span> 124 <span class="icon-bar"></span> 125 <span class="icon-bar"></span> 126 <span class="icon-bar"></span> 127 </button> 128 <div> 129 <a href="/" class="navbar-brand"> 130 <div class="logo_img"> 131 <img alt="Implants Guru" title="Implants Guru" class="logo_image_one" src="/img/logo.svg" width="270" height="143" /> 132 </div> 133 </a> 134 </div> 135 <div class="clearfix"></div> 136 </div> 137 138 <div class="top-social-icons-buttons"> 139 <!-- Start Search --> 140 <div class="search-side"> 141 <a href="#" class="show-search" title="Search"><i class="fa fa-search" aria-hidden="true"></i></a> 142 <div class="search-form"> 143 <form autocomplete="off" role="search" method="get" class="searchform" action="/Search"> 144 <input type="text" value="" name="zoom_query" id="s" placeholder="Search the site..."> 145 </form> 146 </div> 147 </div> 148 <!-- End Search --> 149 <div> 150 <ul class="social-icons"> 151 <li><a title="Facebook" class="facebook" href="#/" target="_blank" rel="noreferrer" aria-label="Facebook Link"><i class="fa fa-2x fa-facebook-square" aria-hidden="true"></i><span class="sr-only">Facebook</span></a></li> 152 <li><a title="Instagram" href="https://www.instagram.com/dr.keerthisenthil/" target="_blank" rel="noreferrer"><i class="fa fa-2x fa-instagram" rel="noreferrer" aria-hidden="true"></i><span class="sr-only">Instagram</span></a></li> 153 154 <li><a title="Twitter" href="https://twitter.com/ImplantsGuru" target="_blank" rel="noreferrer"><i class="fa-brands fa-square-x-twitter"></i></a></li> 155 156 <li><a title="Youtube" href="https://www.youtube.com/channel/UCmC6YM3a3V4rrnz5VACiloA" target="_blank" rel="noreferrer"><i class="fa-brands fa-square-youtube"></i><span class="sr-only">youtube</span></a></li> 157 <li><a title="LinkedIn" href="https://www.linkedin.com/company/implants-guru" target="_blank" rel="noreferrer"><i class="fa fa-2x fa-linkedin-square" aria-hidden="true"></i><span class="sr-only">linkedin</span></a></li> 158 <li><a title="Pinterest" href="https://in.pinterest.com/implantsguru/" target="_blank" rel="noreferrer"><i class="fa fa-2x fa-pinterest-square" aria-hidden="true"></i><span class="sr-only">pinterest</span></a></li> 159 </ul> 160 </div> 161 <p class="contactNumberH"><i class="fa fa-phone-square" aria-hidden="true"></i><a href="tel:760-340-5107" title="Call - 760-340-5107">760-340-5107</a> <span class="chat-booking-header chat-booking-inline"><button type="button" class="chat-booking-button" data-open-booking-chat>Book a visit</button><span class="chat-booking-status" role="status"></span></span></p> 162 </div> 163 164 <div class="navbar-collapse collapse" id="navbar"> 165 <ul class="nav navbar-nav"> 166 <li><a href="/">Home</a></li> 167 <li class="dropdown"> 168 <a href=/about class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">About<span class="caret"></span></a> 169 <ul class="dropdown-menu"> 170 <li><a href=/dr-keerthi-senthil>Dr. Keerthi Senthil</a></li> 171 172 173 <li><a href=/dr-aimee-montgomery>Dr. Aimee Montgomery</a></li> 174 <li><a href=/dr-kiddee-poomprakobsri>Dr. Kiddee Poomprakobsri</a></li> 175 176 <li><a href=/our-philosophy>Our Philosophy</a></li> 177 <li><a href=/our-office>Our Office</a></li> 178 <li><a href=/media>Media</a></li> 179 <li><a href="https://proceeddental.com" target="_blank" rel="noopener noreferrer">Proceed Dental Savings Plan</a></li> 180 </ul> 181 </li> 182 <li class="visible-xs-block"><a href=/our-services>Our Services</a></li> 183 <li><a href=/beautiful-smiles>Beautiful Smiles</a></li> 184 <li><a href=/forms>Forms</a></li> 185 <li class="dropdown"> 186 <a href=/misc class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Misc<span class="caret"></span></a> 187 <ul class="dropdown-menu"> 188 <li><a href=/faqs>FAQs</a></li> 189 <li><a href=/glossary>Glossary</a></li> 190 <li><a href=/offers>Offers</a></li> 191 <li><a href=/dental-patient-education>Dental Patient Education</a></li> 192 <li><a href=/patient-survey>Patient Survey</a></li> 193 <li><a href=/referrals>Referrals</a></li> 194 <li><a href=/testimonials>Testimonials</a></li> 195 <li><a href=/products>Products</a></li> 196 </ul> 197 </li> 198 <li><a href=/blog>Blog</a></li> 199 <li><a href=/contact>Contact</a></li> 200 </ul> 201 </div> 202 </nav> 203 </div> 204 </header> 205 206 <!-- Main Slider --> 207 <div id="main-slider"> 208 <div class="container-fluid"> 209 <div class="row"> 210 <div class="col-xs-12"> 211 <div data-ride="carousel" class="carousel slide carousel-fade" id="main-carousal"> 212 <div role="listbox" class="carousel-inner"> 213 <div class="item active"> 214 <div class="carousel-content"> 215 <div class="container"> 216 <div class="row doc-quote"> 217 <div class="col-xs-12 col-sm-6 col-md-5 lt"> 218 <p class="page-name">Implants Guru</p> 219 <p class="page-slogan">Products | Dental Solutions</p> 220 </div> 221 222 <div class="hidden-xs col-sm-6 col-md-7 rt"> 223 224 <a href="#" data-target="#appointment2" data-toggle="modal" class="btn btn-lg btn-default btn1">Make an appointment</a> 225 <a href="tel:760-456-7699" class="btn btn-lg btn-default btn2 green">Click to call</a> 226 </div> 227 </div> 228 </div> 229 </div> 230 </div> 231 232 </div> 233 </div> 234 </div> 235 </div> 236 </div> 237 </div> 238 <!-- Service Menu --> 239 <div id="service-menu"> 240 <div class="container"> 241 <!-- Menu 2 --> 242 <nav class="navbar navbar-default navbar-static-top"> 243 <div class="navbar-header"> 244 <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#services" aria-expanded="false" aria-controls="navbar">
245 <span class="sr-only">Toggle navigation</span> 246 <span class="icon-bar"></span> 247 <span class="icon-bar"></span> 248 <span class="icon-bar"></span> 249 </button> 250 <a class="navbar-brand" href="#/">Our Services</a> 251 </div> 252 <div id="services" class="navbar-collapse collapse"> 253 254 <ul class="nav navbar-nav service-menu-horizontal"> 255 <li><a href=/dental-implants-rancho-mirage>Dental Implants</a></li> 256 <li><a href=/general-dentistry>General Dentistry</a></li> 257 <li><a href=/oral-surgery-rancho-mirage>Oral Surgery</a></li> 258 <li><a href=/cosmetic-dentistry-rancho-mirage>Cosmetic Dentistry</a></li> 259 <li><a href=/periodontal-care-rancho-mirage>Periodontal Care</a></li> 260 <li class="dropdown"> 261 <a href=/our-services class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Our services<span class="caret"></span></a> 262 <ul class="dropdown-menu"> 263 <li><a href=/technology>Technology</a></li> 264 <li><a href=/root-canal-treatment-rancho-mirage>Endodontics</a></li> 265 <li><a href=/emergency-dentistry>Emergency Dentistry</a></li> 266 <li><a href=/teeth-whitening-rancho-mirage>Teeth Whitening</a></li> 267 <li><a href=/dentures-rancho-mirage>Dentures</a></li> 268 <li><a href=/sedation-dentistry-rancho-mirage>Sedation Dentistry</a></li> 269 <li><a href=/general-anesthesia-rancho-mirage>General Anesthesia</a></li> 270 271 </ul> 272 </li> 273 </ul> 274 </div> 275 </nav> 276 </div> 277 </div> 278 <!-- Circle slider --> 279 <div id="circle-silder"> 280 <div class="container"> 281 <div class="row"> 282 <div class="col-xs-12"> 283 <img class="img-responsive up-shadow" alt="" src="/img/slider-shadow.webp" width="1140" height="48" /> 284 <div class="circles-quotes"> 285 <p>Your Smile is our Best Advertisement</p> 286 </div> 287 </div> 288 </div> 289 </div> 290 </div> 291 <!-- content --> 292 <div id="content"> 293 <div class="container" id="fontsize"> 294 <div class="row"> 295 <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12"> 296 297 <h1>Products</h1> 298 299
299<script type="application/ld+json"> 300 {"@context": "https://schema.org/","@type": "BreadcrumbList","itemListElement": [{"@type":"ListItem","position": 1,"name": "Miscellaneous","item": "https://www.implantsguru.dentist/misc"}, {"@type":"ListItem","position": 2,"name": "Products","item": "https://www.implantsguru.dentist/products"}]} 301 </script>
301 302 303<div class="row"> 304 <div class="col-xs-12"> 305 <ol class="breadcrumb"> 306 <li class="breadcrumb-item"> 307 <a href="/"> 308 <span><i class="fa fa-home" aria-hidden="true"></i></span> 309 </a> 310 </li> 311 <li class="breadcrumb-item active"> 312 <a href="/misc"> 313 <span>Miscellaneous</span> 314 </a> 315 </li> 316<li class="breadcrumb-item active"> 317 <a href="/products"> 318 <span>Products</span> 319 </a> 320 </li> 321 </ol> 322 </div> 323</div> 324 325 326 327<div class="row" id="testimonials"> 328 329 <div class="col-xs-12 testimonials-div"> 330 <div class="col-xs-12- col-sm-3 col-md-2 col-lg-2 testimonials-thumb"> 331 <center> 332 <img class="img-responsive" src="/img/products/zoom.jpg" title="Zoom Whitening" alt="Zoom Whitening" /> 333 </center> 334 </div> 335 <div class="testimonials-quotes col-xs-12- col-sm-9 col-md-10 col-lg-10 products"> 336 <h4 class="testimonials-author">Zoom Whitening <span></span></h4> 337 <p><b>Zoom Whitening Chairside treatment in the office - A Cosmetic treatment</b></p> 338 <p>The complete procedure takes less than an hour, but a regular teeth cleaning is recommended prior to the actual Zoom teeth whitening session.The procedure begins with a short preparation to cover the lips and gums, leaving the teeth exposed. The dentist or dental assistant then applies the Zoom hydrogen peroxide whitening gel, which works together with the Zoom light to penetrate the teeth and break up the stains and discoloration. The gel remains in place for 15 minutes while the light is activated. During this time, you can relax, watch TV or listen to music.</p> 339 <p>The gel is applied for three 15-minute sessions of light activation, for a total treatment time of 45 minutes. Individuals with a strong gag reflex or anxiety may have difficulty undergoing the entire procedure. Immediately afterwards, a sensitivity-reducing fluoride paste-gel is applied to the teeth.</p> 340 </div> 341 </div> 342 343 <div class="col-xs-12 testimonials-div"> 344 <div class="col-xs-12- col-sm-3 col-md-2 col-lg-2 testimonials-thumb"> 345 <center> 346 <img class="img-responsive" src="/img/products/ice.jpg" title="Ice chips" alt="Ice chips" /> 347 </center> 348 </div> 349 <div class="testimonials-quotes col-xs-12- col-sm-9 col-md-10 col-lg-10 products"> 350 <h4 class="testimonials-author">Ice chips <span></span></h4> 351 <p><b>Ice Chips prevents tooth decay. We have two kinds, Cherry Candy and Peppermint.</b></p> 352 <ul> 353 <li>Tart and tangy Sour Cherry Ice Chips our newest flavor is bound to make you pucker with delight.</li> 354 <li>Ice Chips candies, while healthy, sugar-free, and safe for diabetics, are nothing like healthful candy you have tried in the past. Healthy has never been as much fun as it is with âThe Good for You Candy!â</li> 355 <li>Enjoy Ice Chips throughout your day to keep breath fresh, and teeth healthier! Allow Ice Chips to dissolve slowly in mouth, coating teeth. Dentists recommend four to eight servings a day to receive full oral health benefits of Xylitol.</li> 356 <li>Strengthens teeth, Reduces new tooth decay, Reduces cavity-causing bacteria</li> 357 <li>They burst with flavor and grab your attention.</li> 358 </ul> 359 </div> 360 </div> 361 362 <div class="col-xs-12 testimonials-div"> 363 <div class="col-xs-12- col-sm-3 col-md-2 col-lg-2 testimonials-thumb"> 364 <center> 365 <img class="img-responsive" src="/img/products/tcs.jpg" title="TCS Cleaner" alt="TCS Cleaner" /> 366 </center> 367 </div> 368 <div class="testimonials-quotes col-xs-12- col-sm-9 col-md-10 col-lg-10 products"> 369 <h4 class="testimonials-author">TCS Cleaner <span></span></h4> 370 <p>TCS Cleaner safely and effectively removes coffee, tea, tobacco, fruit and iron stains, tartar, plaque, calcium and calculus.</p> 371 <p>
371Safe for cleaning: Dentures, Partials, Orthodontics, Nightguards, Retainers, Thermoplastics and more.</p> 372 <div class="clearfix"></div> 373 <p> 374 Use TCS to clean your appliance once a day to: 375 <ul> 376 <li>Kill germs that cause odour</li> 377 <li>Reduce plaque buildup</li> 378 <li>Remove food particles</li> 379 <li>Dissolve tough stains</li> 380 <li>Keep appliance fresh and clean</li> 381 </ul> 382 </p> 383 </div> 384 </div> 385 386 <div class="col-xs-12 testimonials-div"> 387 <div class="col-xs-12- col-sm-3 col-md-2 col-lg-2 testimonials-thumb"> 388 <center> 389 <img class="img-responsive" src="/img/products/drymouth.jpg" title="Prevident Dry Mouth" alt="Prevident Dry Mouth" /> 390 </center> 391 </div> 392 <div class="testimonials-quotes col-xs-12- col-sm-9 col-md-10 col-lg-10 products"> 393 <h4 class="testimonials-author">Prevident Dry Mouth <span></span></h4> 394 395 <p>Sodium fluoride makes teeth more resistant to decay and bacteria that cause cavities. This medication is used to prevent cavities.</p> 396 <h4>How to use PreviDent Dry Mouth?</h4> 397 <p>This is best used once daily just before bedtime instead of your regular toothpaste or as directed by your healthcare professional.</p> 398 <p>Apply a thin ribbon of medicine to a toothbrush and brush thoroughly for 2 minutes or as directed.</p> 399 <p>Spit out the medication after use. Do not swallow. Children should rinse their mouth thoroughly right away. For adults, do not rinse your mouth, eat, or drink for at least 30 minutes after use to get the best results.</p> 400 </div> 401 </div> 402 403 404 <div class="col-xs-12 testimonials-div"> 405 <div class="col-xs-12- col-sm-3 col-md-2 col-lg-2 testimonials-thumb"> 406 <center> 407 <img class="img-responsive" src="/img/products/enamelon-premier.jpg" title="Enamelon - Premier" alt="Enamelon - Premier" /> 408 </center> 409 </div> 410 <div class="testimonials-quotes col-xs-12- col-sm-9 col-md-10 col-lg-10 products"> 411 <h4 class="testimonials-author">Enamelon - Premier <span></span></h4> 412 <p>Enamelon® can be used daily to help prevent and treat sensitivity. The ingredients in Enamelon® uniquely build increasing protection against tooth sensitivity.</p> 413 414 <h4>Product description:</h4> 415 416 <p>0.45% Stannous Fluoride (1150 ppm F) Clinically Proven Active Ingredient For Anticavity, Antigingivitis and Sensitive Teeth Ultramulsion is a patented saliva-soluble coating that moisturizes and soothes soft tissues of the mouth. Mint Breeze flavor enhanced with spilanthes, a natural herb which can boost saliva flow and flavor No Sodium Lauryl Sulfate (SLS), No Gluten, No Dyes.</p> 417 418 <h4>Enamelon® is an effective toothpaste that addresses specific needs:</h4> 419 420 <h4>Uses:</h4> 421 422 <ul> 423 <li>Aids in the prevention of cavities</li> 424 <li>Builds increasing protection against painful sensitivity of the teeth of cold, heat, acids, sweets, or contact</li> 425 <li>Helps prevent gingivitis (gum disease)</li> 426 <li>Helps interfere with the harmful effects of plaque associated with gingivitis</li> 427 </ul> 428 429 <h4>Additional benefits:</h4> 430 431 <ul> 432 <li>Mild cleaning to remove debris and residual surface stains</li> 433 <li>Mint breeze flavor</li> 434 <li>SLS-free (sodium laurel sulfate)</li> 435 <li>Gluten-free</li> 436 <li>Dye-free</li> 437 <li>Triclosan-free</li> 438 </ul> 439 440 </div> 441 </div> 442 443 <div class="col-xs-12 testimonials-div"> 444 <div class="col-xs-12- col-sm-3 col-md-2 col-lg-2 testimonials-thumb"> 445 <center> 446 <img class="img-responsive" src="/img/products/prevident-varnish.jpg" title="Prevident â Varnish" alt="Prevident â Varnish" /> 447 </center> 448 </div> 449 <div class="testimonials-quotes col-xs-12- col-sm-9 col-md-10 col-lg-10 products"> 450 <h4 class="testimonials-author">Prevident â Varnish <span></span></h4> 451 <p>
451PreviDent® 5% Sodium Fluoride Varnish contains 22,600 ppm fluoride. It has a strong desensitizing action when applied to dental surfaces, treating hypersensitivity quickly and easily. This product sets rapidly on contact with saliva, resulting in patient comfort and acceptance. PreviDent® Varnish will leave a thin film on the teeth after application.</p> 452 453 <h4>Directions for use</h4> 454 455 <p>Please observe when treating hypersensitive teeth</p> 456 <ul> 457 <li>Wash and dry tooth surface.</li> 458 <li>Mix well prior to application.</li> 459 <li>Apply product with supplied brush in the conventional manner.</li> 460 <li>Thin excess varnish on the tooth's surface until the varnish surface is dry.</li> 461 <li>Covers even moist teeth with a coating of varnish film for several hours which occludes the openings of the dentinal tubules.</li> 462 <li>Hardens on contact with saliva so the patient may leave immediately after application of the product.</li> 463 <li>It is recommended that the patient be instructed to eat only soft foods for 2 hours after treatment.</li> 464 </ul> 465 </div> 466 </div> 467 468 469 <div class="col-xs-12 testimonials-div"> 470 <div class="col-xs-12- col-sm-3 col-md-2 col-lg-2 testimonials-thumb"> 471 <center> 472 <img class="img-responsive" src="/img/products/polident-overnight-whitening.jpg" title="Polident - Antibacterial Denture Cleanser- Overnight whitening" alt="Polident - Antibacterial Denture Cleanser- Overnight whitening" /> 473 </center> 474 </div> 475 <div class="testimonials-quotes col-xs-12- col-sm-9 col-md-10 col-lg-10 products"> 476 <h4 class="testimonials-author">Polident - Antibacterial Denture Cleanser- Overnight whitening</h4> 477 <p>Cleaner, fresher dentures with one daily overnight cleanser. Polident® Overnight whitening kills 99.99% of more odor-causing bacteria, helps remove plaque buildup, and helps remove stains while maintaining the original color of your dentures.</p> 478 479 <p>Unlike toothpaste, Polident® Overnight Whitening has a non-abrasive formula, so it cleans without scratching and leaves fewer places for unwanted bacteria and other microorganisms to grow. </p> 480 481 <ul> 482 <li>Deep cleans to help restore dentures to their original color.</li> 483 <li>Kills more bacteria than toothpaste.</li> 484 <li>Kills 99.99% of odor-causing bacteria in laboratory tests.</li> 485 <li>When used as directed, helps to reduce plaque and also removes tough stains.</li> 486 <li>Gentle on denture material.</li> 487 </ul> 488 </div> 489 </div> 490 491 <div class="col-xs-12 testimonials-div"> 492 <div class="col-xs-12- col-sm-3 col-md-2 col-lg-2 testimonials-thumb"> 493 <center> 494 <img class="img-responsive" src="/img/products/polident-for-partials.jpg" title="Polident - Antibacterial Denture Cleanser - For Partials" alt="Polident - Antibacterial Denture Cleanser - For Partials" /> 495 </center> 496 </div> 497 <div class="testimonials-quotes col-xs-12- col-sm-9 col-md-10 col-lg-10 products"> 498 <h4 class="testimonials-author">Polident - Antibacterial Denture Cleanser - For Partials</h4> 499 <p>Polident for Partials Antibacterial Denture Cleanser Tablets 40 count kills 99.9 percent of odor-causing bacteria and help reduce plaque. A clean partial reduces the risk of gum irritation, helping to protect remaining natural teeth as part of a good oral care routine. Polident for Partials Antibacterial Denture Cleanser Tablets are an essential element of a good oral cleansing routine, as the metal clasps of your partial are in danger of corroding over time from the acids of food and the oral environment, as well as the wear and tear of use. Now you can protect them from corrosion, which ensures they will be in optimal condition for longer.</p> 500 501 <ul> 502 <li>Polident for Partials Antibacterial Denture Cleanser Tablets, 40 count:</li> 503 <li>Cleans and protects</li> 504 <li>Kills 99.9% of odor causing bacteria</li> 505 <li>Protects metal clasps from corrosion</li> 506 <li>Protects from staining and plaque build up</li> 507 </ul> 508 509 <h4>Directions:</h4> 510 <p>Instructions: Use as directed on package</p> 511 </div> 512 </div> 513 514 <div class="col-xs-12 testimonials-div"> 515 <div class="col-xs-12- col-sm-3 col-md-2 col-lg-2 testimonials-thumb"> 516 <center> 517 <img class="img-responsive" src="/img/products/gc-dry-mouth-gel.jpg" title="GC Dry Mouth Gel - Lemon, Raspberry, Fruit Salad, Orange" alt="GC Dry Mouth Gel - Lemon, Raspberry, Fruit Salad, Orange" /> 518 </center> 519 </div> 520 <div class="testimonials-quotes col-xs-12- col-sm-9 col-md-10 col-lg-10 products"> 521 <h4 class="testimonials-author">
521GC Dry Mouth Gel - Lemon, Raspberry, Fruit Salad, Orange <span></span></h4> 522 523 <h4>Product features:</h4> 524 <ul> 525 <li>GC Dry Mouth Gel For Discomfort due to Dry Mouth</li> 526 <li>Each case contains five delicious flavors - 2 x fruit salad, 2 x lemon, 2 x mint, 2 x orange and 2 x raspberry.</li> 527 <li>GC Dry Mouth Gel can be applied easily express a generous amount of GC Dry Mouth Gel from the tube onto a clean finger or tongue. Smear the gel over the buccal and lingual surfaces of teeth and oral mucosal tissues. GC Dry Mouth Gel should be applied anytime during the day as needed or at night before bed after normal tooth brushing.</li> 528 <li>Caution: Not for patients with Hydroxybenzoates Allergy</li> 529 </ul> 530 531 <h4>Product description:</h4> 532 <p>GC Dry Mouth Gel is designed to ease the symptoms of dry mouth for patients who may be suffering from impaired production of saliva due to medications, radiation treatment or diseases that can damage the salivary glands. This product provides a protective coating for teeth and oral tissue. This pleasant-tasting, sugar-free product is available in five delicious flavors (raspberry, fruit salad, mint, lemon and orange).</p> 533 </div> 534 </div> 535 536 <div class="col-xs-12 testimonials-div"> 537 <div class="col-xs-12- col-sm-3 col-md-2 col-lg-2 testimonials-thumb"> 538 <center> 539 <img class="img-responsive" src="/img/products/oracare.jpg" title="Oracare - Oral Cleanser" alt="Oracare - Oral Cleanser" /> 540 </center> 541 </div> 542 <div class="testimonials-quotes col-xs-12- col-sm-9 col-md-10 col-lg-10 products"> 543 <h4 class="testimonials-author">Oracare <span></span></h4> 544 <p>OraCare is a prescription strength mouth cleanser dispensed by dentists. It's safe for patients 8 years of age and older, vegans, and for use during pregnancy. OraCare is a two-bottle (16 ounces each) system in which stabilized chlorine dioxide is converted into active chlorine dioxide gas by a complex chemical reaction created and mediated by catalysts. When combined, the two formulas equal 32 ounces of effective product.</p> 545 546 <p>True chlorine dioxide is one of the most powerful antimicrobials known. It does not remain dissolved in liquid so it must be mixed and released in a chemical reaction every time it's used. When OraCare's formula 1 and formula 2 are combined, the resulting chlorine dioxide gas is toxic to bacteria, viruses, and fungi.</p> 547 548 <p>OraCare's ability to inhibit bacterial growth was tested during a study at the University of Iowa College of Dentistry. It was found to not only inhibit bacterial growth, but it killed the following bacteria: Lactobacillus acidophilus, Pseudomonas aeruginosa, Proteus mirabilis, Streptococcus mutans, Prevotella intermedia, Porphyromonas gingivalis, Treponema denticola, Tannerella forsythia, Treponema socranskii, and Aggregatibacter actinomycetemcomitans. In addition, OraCare inhibited the growth of Candida albicans. Since OraCare is such a powerful oxidizing agent, it can also help maintain a white smile after whitening procedures.</p> 549 550 <p>According to the manufacturer, OraCare is effective in the treatment of:</p> 551 552 <ul> 553 <li>Periodontal disease</li> 554 <li>Peri-implantitis</li> 555 <li>ANUG</li> 556 <li>Viral infections</li> 557 <li>Candida infections</li> 558 <li>Extraction site wound healing</li> 559 <li>Mucocitis ulcers</li> 560 <li>Halitosis</li> 561 </ul> 562 </div> 563 </div> 564 565 <div class="col-xs-12 testimonials-div"> 566 <div class="col-xs-12- col-sm-3 col-md-2 col-lg-2 testimonials-thumb"> 567 <center> 568 <img class="img-responsive" src="/img/products/clo-sys.jpg" title="Clo Sys - Alcohol Free oral health rinse" alt="Clo Sys - Alcohol Free oral health rinse" /> 569 </center> 570 </div> 571 <div class="testimonials-quotes col-xs-12- col-sm-9 col-md-10 col-lg-10 products"> 572 <h4 class="testimonials-author">Clo Sys - Alcohol Free oral health rinse</h4> 573 <p>With its strong performance against the oral bacteria that causes infections of the peridontium and endodontium, as well as dental caries and staph infections, and its favorable behavior toward healing cells (fibroblasts), Cloys addresses a spectrum of clinical oral hygiene concerns. Finally, its agreeable taste and non-tooth-staining characteristics encourage patients to be fully compliant. As a non-prescription oral rinse, Cloys not only meets and may surpass CHX in post-procedure applications, it also can be recommended for twice-daily regular oral care as a maintenance and preventative measure. Cloys is now a premium standard for daily oral care.</p> 574 575 <h4>About the Product</h4> 576 <ul> 577 <li>Contains 2 - 32oz bottles of CloSYS Mouthwash</li> 578 <li>Works gently but efficiently; no alcohol to burn your mouth</li> 579 <li>Kills 99% of harmful bacteria in 10 seconds</li> 580 <li>Long-lasting breath protection</li> 581 <li>A refreshingly clean taste</li> 582 </ul> 583 </div> 584 </div> 585 586 <div class="col-xs-12 testimonials-div"> 587 <div class="col-xs-12- col-sm-3 col-md-2 col-lg-2 testimonials-thumb"> 588 <center> 589 <img class="img-responsive" src="/img/products/gum-paroex.jpg" title="Gum Paroex Chlorhexidine Gluconate Oral Rinse USP, 0.12% Alcohol Free" alt="Gum Paroex Chlorhexidine Gluconate Oral Rinse USP, 0.12% Alcohol Free" /> 590 </center> 591 </div> 592 <div class="testimonials-quotes col-xs-12- col-sm-9 col-md-10 col-lg-10 products"> 593 <h4 class="testimonials-author">Gum Paroex Chlorhexidine Gluconate Oral Rinse USP, 0.12% Alcohol Free</h4> 594 <p>Gum Paroex Chlorhexidine Gluconate Oral Rinse 0.12%</p> 595 <p>Alcohol-Free chlorhexidine gluconate oral rinse USP, 0.12% from GUM helps all your patients gain from their gingivitis treatment - without alcohol.</p> 596 597 <ul> 598 <li>A fresh alternative for effective gingivitis care</li> 599 <li>Therapeutically equivalent to Peridex®</li> 600 <li>Contains 0% alcohol vs 11.6% alcohol in other chlorhexidine rinses marketed in the U.S.</li> 601 <li>Alcohol is present in all other chlorhexidine oral rinses sold in the U.S. -- in a concentration of 11.6%!</li> 602 <li>If you want to avoid alcohol, choose Paroex alcohol-free Chlorhexidine Gluconate Oral Rinse USP, 0.12% from GUM® for all patients.</li> 603 </ul> 604 </div> 605 </div> 606 607</div> 608 </div> 609 </div> 610 </div> 611 </div> 612 613 614 615
616 <!-- Circle slider --> 617 <div id="circle-silder"> 618 <div class="container"> 619 <div class="row"> 620 <div class="col-xs-12"> 621 <img class="img-responsive up-shadow" alt="" src="/img/slider-shadow.webp" width="1140" height="48" /> 622 </div> 623 </div> 624 <div class="row"> 625 <div class="col-xs-12 col-sm-6 col-md-3 col-lg-3"> 626 <div class="thumbnail red"> 627 <a href="/case-of-the-month"> 628 <img class="img-responsive lazyload" alt="Case of the Month" title="Case of the Month" src="/img/pixel.jpg" data-src="/img/case-of-month/case-of-the-month.webp" width="319" height="200" loading="lazy"> 629 <div class="beautifulSmile"> 630 Case of the Month 631 </div> 632 <p>Explore our case of the month, featuring advanced dental care and remarkable patient results. </p> 633 634 635 </a> 636 <a href="/case-of-the-month" class="btn btn-mb btn-default">View more</a> 637 </div> 638 </div> 639 <div class="col-xs-12 col-sm-6 col-md-3 col-lg-3"> 640 <div class="thumbnail blue"> 641 <a href="/testimonials"> 642 <img class="img-responsive lazyload" alt="Implants Guru Patient Testimonials" title="Implants Guru Patient Testimonials" data-src="/img/testimonials.webp" width="319" height="200" loading="lazy" /> 643 644 <div class="beautifulSmile">Testimonials</div> 645 <p>Our testimonials reflect our quality dental care. Read what patients have to say about our dental services.</p> 646 <a href="/testimonials" class="btn btn-mb btn-default">View more</a> 647 </a> 648 </div> 649 </div> 650 <div class="col-xs-12 col-sm-6 col-md-3 col-lg-3"> 651 <div class="thumbnail green"> 652 <a href="/our-office"> 653 <img class="img-responsive lazyload" alt="Implants Guru Office Tour" title="Implants Guru Office Tour" data-src="/img/virtual-tour.webp" width="319" height="200" loading="lazy" /> 654 655 <div class="beautifulSmile">Our Office</div> 656 <p>We are equipped with latest technological devices. Patient comfort comes first at our fully furnished office.</p> 657 <a href="/our-office" class="btn btn-mb btn-default"> Office Tours</a> 658 </a> 659 </div> 660 </div> 661 662 <div class="col-xs-12 col-sm-6 col-md-3 col-lg-3"> 663 <div class="thumbnail yellow"> 664 <a href="https://proceeddental.com" target="_blank" rel="noopener noreferrer"> 665 <img class="img-responsive lazyload" alt="Proceed Dental Savings Plan" title="Proceed Dental Savings Plan" src="/img/In-House-Dental-Savings-Plan.webp" data-src="/img/In-House-Dental-Savings-Plan.webp" width="319" height="200"> 666 <div class="beautifulSmile">Proceed Dental Savings Plan</div> 667 <p>Our plan offers affordable, hassle-free dental care for you and your family.</p> 668 </a> 669 <a href="https://proceeddental.com" class="btn btn-mb btn-default" target="_blank" rel="noopener noreferrer"> View more</a> 670 </div> 671 </div> 672 673 674 </div> 675 </div> 676 </div> 677 <!-- Blocks --> 678 <div id="blocks" class="lazyload"> 679 <div class="container"> 680 <div class="row"> 681 <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12"> 682 <p class="servicesTagName">Services</p> 683 <div id="service-images"> 684 685 <div class="item"> 686 <a href="/dental-implants-rancho-mirage"> 687 <div class="centerSer"> 688 <div class="imgholder "> 689 <div class="outer1 circle"></div> 690 <div class="outer2 circle"></div> 691 <figure> 692 <img data-src="/img/services/dental-implants.webp" width="300" height="300" alt="Dental Implants Rancho Mirage" title="Dental Implants" class="lazyload"> 693 </figure> 694 </div> 695 </div> 696 Dental Implants 697 </a> 698 <p class="desc">When a tooth is lost the gap left behind initiates...</p> 699 <a href=/dental-implants-rancho-mirage class="btn btn-default read-more">Read more</a> 700 </div> 701 <div class="item"> 702 <a href="/general-dentistry"> 703 <div class="centerSer"> 704 <div class="imgholder "> 705 <div class="outer1 circle"></div> 706 <div class="outer2 circle"></div> 707 <figure> 708 <img data-src="/img/services/general-dentistry.webp" width="300" height="300" alt="General Dentistry Mirage" title="General Dentistry" class="lazyload"> 709 </figure> 710 </div> 711 </div> 712 General Dentistry 713 </a> 714 <p class="desc">Oral care plays a crucial role in overall...</p> 715 <a href=/general-dentistry class="btn btn-default read-more">Read more</a> 716 </div> 717 <div class="item"> 718 <a href="/oral-surgery-rancho-mirage"> 719 <div class="centerSer"> 720 <div class="imgholder "> 721 <div class="outer1 circle"></div> 722 <div class="outer2 circle"></div> 723 <figure> 724 <img data-src="/img/services/oral-surgery.webp" width="300" height="300" alt="Oral Surgery Rancho Mirage" title="Oral Surgery" class="lazyload"> 725 </figure> 726 </div> 727 </div> 728 Oral Surgery 729 </a> 730 <p class="desc">Surgery is one word patients do not wish to...</p> 731 <a href=/oral-surgery-rancho-mirage class="btn btn-default read-more">Read more</a> 732 </div> 733 734 <div class="item"> 735 <a href="/cosmetic-dentistry-rancho-mirage"> 736 <div class="centerSer"> 737 <div class="imgholder "> 738 <div class="outer1 circle"></div> 739 <div class="outer2 circle"></div> 740 <figure> 741 <img data-src="/img/services/cosmetic-dentistry.webp" width="300" height="300" alt="Cosmetic Dentistry Rancho Mirage" title="Cosmetic Dentistry" class="lazyload"> 742 </figure> 743 </div> 744 </div> 745 Cosmetic Dentistry 746 </a> 747 <p class="desc">A beautiful smile can be confidence booster...</p> 748 <a href=/cosmetic-dentistry-rancho-mirage class="btn btn-default read-more">Read more</a> 749 </div> 750 <div class="item"> 751 <a href="/periodontal-care-rancho-mirage"> 752 <div class="centerSer"> 753 <div class="imgholder "> 754 <div class="outer1 circle"></div> 755 <div class="outer2 circle"></div> 756 <figure> 757 <img data-src="/img/services/periodontal-care.webp" width="300" height="300" alt="Periodontal Care Rancho Mirage" title="Periodontal Care" class="lazyload"> 758 </figure> 759 </div> 760 </div>
761 Periodontal Care 762 </a> 763 <p class="desc">The periodontium comprising of the...</p> 764 <a href=/periodontal-care-rancho-mirage class="btn btn-default read-more">Read more</a> 765 </div> 766 <div class="item"> 767 <a href="/our-services"> 768 <div class="centerSer"> 769 <div class="imgholder "> 770 <div class="outer1 circle"></div> 771 <div class="outer2 circle"></div> 772 <figure> 773 <img data-src="/img/services/our-services.webp" width="300" height="300" alt="Dentist Rancho Mirage" title="Our Services" class="lazyload"> 774 </figure> 775 </div> 776 </div> 777 Our Services 778 </a> 779 <p class="desc">To know more on all the services we provide...</p> 780 <a href=/our-services class="btn btn-default read-more">Read more</a> 781 </div> 782 </div> 783 </div> 784 </div> 785 </div> 786 </div> 787 <div id="social-ratings"> 788 <div class="container"> 789 <div class="row"> 790 <div class="col-xs-12 col-sm-6 col-md-3 thumbnail"> 791 <a href="https://goo.gl/4oBWY5" target="_blank" rel="noreferrer"> 792 <img alt="google-plus" title="" data-src="/img/social-reviews/google-plus.webp" width="160" height="65" class="lazyload"> 793 <div class="stars"> 794 <i class="fa fa-star" aria-hidden="true"></i> 795 <i class="fa fa-star" aria-hidden="true"></i> 796 <i class="fa fa-star" aria-hidden="true"></i> 797 <i class="fa fa-star" aria-hidden="true"></i> 798 <i class="fa fa-star" aria-hidden="true"></i> 799 </div> 800 801 <review-count business-id="ccc7bbfbc4b8403aa6ea0475131b41d5"></review-count> 802 </a> 803 </div> 804 <div class="col-xs-12 col-sm-6 col-md-3 thumbnail"> 805 <a class="facebookReviews" href="#/" target="_blank" rel="noreferrer"> 806 <img alt="facebook" title="" data-src="/img/social-reviews/facebook.webp" width="160" height="65" class="lazyload"> 807 <div class="stars"> 808 <i class="fa fa-thumbs-up"></i> <span style="color: #fff !important;"> Recommends</span> 809 </div> 810 <div class="ratings"> 811 <span>90%</span> Recommend<br> 812 based on <span>17</span> reviews 813 </div> 814 </a> 815 </div> 816 817 <div class="col-xs-12 col-sm-6 col-md-3 thumbnail"> 818 <a href="https://goo.gl/jgChu2" target="_blank" rel="noreferrer"> 819 <img alt="health-grade" title="" data-src="/img/social-reviews/health-grade.webp" width="160" height="65" class="lazyload"> 820 <div class="stars"> 821 <i class="fa fa-star" aria-hidden="true"></i> 822 <i class="fa fa-star" aria-hidden="true"></i> 823 <i class="fa fa-star" aria-hidden="true"></i> 824 <i class="fa fa-star" aria-hidden="true"></i> 825 <i class="fa fa-star" aria-hidden="true"></i> 826 827 </div> 828 <div class="ratings">
829 <span>4.9</span> Stars<br> 830 based on <span>75</span> reviews 831 </div> 832 </a> 833 </div> 834 </div> 835 </div> 836 </div> 837 <!--Contact section--> 838 <div id="contact"> 839 <div class="container"> 840 <div class="row contact-panel-grid"> 841 <div class="col-xs-12 col-sm-6 col-md-4 col-lg-4 red"> 842 <div class="thumbnail"> 843 <p role="heading" class="footerSecHeader" aria-level="2">Our Address</p> 844 </div> 845 <div class="caption"> 846 <div class="ig-contact-logo"><img src="/img/logo.svg" width="270" height="143" alt="Implants Guru - Implants done right the first time" loading="lazy" /></div> 847 <address> 848 <div> 849 <p> 850 <span> 851 <strong> 852 Implants Guru - Keerthi Senthil <span class="info">DDS, MS</span> 853 </strong> 854 </span> 855 </p> 856 <div> 857 <p> 858 <a href="https://www.google.com/maps?saddr=My+Location&daddr=Implants+Guru+72027+Desert+Drive+Rancho+Mirage+California+92270" title="Our Contact Location" target="_blank"> 859 <i class="fa fa-map-marker" aria-hidden="true"></i> 860 <span> 861 <span>72027 Desert Drive</span><br> 862 <span>Rancho Mirage</span>, 863 <span>CA</span> 864 <span> 92270</span> 865 </span> 866 </a> 867 </p><br /> 868 <p> 869 <a href="tel:760-340-5107" title="Phone"> 870 <i class="fa fa-phone-square" aria-hidden="true"></i> 871 <span>760-340-5107</span> 872 </a> 873 </p> 874 </div> 875 </div> 876 </address> 877 <div class="map-route"> 878 <p><strong>Get Directions To Our Practice</strong></p> 879 <div class="center_Image_Offer"> 880 <a href="https://www.google.com/maps?saddr=My+Location&daddr=Implants+Guru+72027+Desert+Drive+Rancho+Mirage+California+92270" target="_blank"><img class="img-responsive" data-src="/img/easy-buttons/directions.webp" width="180" height="90" alt="Implants guru" title="Get Directions" src="/img/easy-buttons/directions.webp"></a> 881 882 <iframe src="https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d106176.88372548374!2d-116.40763399999999!3d33.734102!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x80dafdf01d778c5d%3A0xa8e84e24cd1b0e80!2sImplants%20Guru%20-%20Keerthi%20Senthil%20DDS%2C%20MS!5e0!3m2!1sen!2sin!4v1733986013095!5m2!1sen!2sin" width="100%" height="300" style="border:0;" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade" title="Directions"></iframe> 883 </div> 884 </div> 885 </div> 886 </div> 887 <div class="col-xs-12 col-sm-6 col-md-4 col-lg-4 yellow"> 888 <div> 889 <div class="thumbnail"> 890 <p role="heading" class="footerSecHeader" aria-level="3">Office Hours</p> 891 </div> 892 893 <div class="caption"> 894 <link rel="stylesheet" href="/Content/contact-panels.css?v=20261007-office-cards-v3" /> 895<div class="ig-office-hours"> 896 <p class="ig-hours-location">Rancho Mirage office</p>
897 <dl class="ig-open-days"> 898 <div> 899 <dt>Monday</dt> 900 <dd>8:30 AM <span>–</span> 5:00 PM</dd> 901 </div> 902 <div> 903 <dt>Wednesday</dt> 904 <dd>8:30 AM <span>–</span> 5:00 PM</dd> 905 </div> 906 </dl> 907 <div class="ig-closed-days"> 908 <p>Closed</p> 909 <p>Tuesday, Thursday, Friday, Saturday and Sunday.</p> 910 </div> 911 <div class="office-hours-note"> 912 <img class="ig-hours-note-logo" src="/img/smile-guru-logo.png" width="132" height="85" alt="Smile Guru" loading="lazy" /> 913 <p>On <strong class="ig-hours-highlight">Tuesday and Friday</strong> we see patients at our <a href="https://www.smileguru.dentist/">Smile Guru office</a> in Cathedral City.</p> 914 </div> 915 <div class="ig-office-access"> 916 <img src="/img/access-ramp-and-accessible-entrance-new.webp" width="48" height="49" alt="" loading="lazy" /> 917 <p>Access Ramp and<br />Accessible Entrance</p> 918 </div> 919</div> 920 921 </div> 922 </div> 923 </div> 924 925 <div class="col-xs-12 col-sm-12 col-md-4 col-lg-4 green"> 926 <div class="thumbnail"> 927 <p role="heading" class="footerSecHeader" aria-level="4">Contact Us</p> 928 </div> 929 <div class="caption"> 930 <div class="contact-form"> 931 <form class="lead-form le-lead-form" id="leadForm1" method="POST"> 932<input type="text" name="website" tabindex="-1" autocomplete="off" aria-hidden="true" style="position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden;" /> 933 934 <!-- Hidden field for GCLID - REQUIRED for Google Ads tracking --> 935 <input type="hidden" class="gclidField" name="ext_lead_ref" value=""> 936 937 <!-- Required Fields --> 938 <div class="form-group"> 939 <label for="firstName1" class="form-label">First Name *</label> 940 <input type="text" id="firstName1" name="first_name" required placeholder="First name" class="form-control"> 941 </div> 942 943 <div class="form-group"> 944 <label for="lastName1" class="form-label">Last Name *</label> 945 <input type="text" id="lastName1" name="last_name" required placeholder="Last name" class="form-control"> 946 </div> 947 948 <div class="form-group"> 949 <label for="email1" class="form-label">Email *</label> 950 <input type="email" id="email1" name="email" required placeholder="Email address" class="form-control"> 951 </div> 952 953 <div class="form-group"> 954 <label for="phone1" class="form-label">Phone *</label> 955 <input type="tel" id="phone1" name="phone" required placeholder="Phone number" pattern="[0-9\s\-\(\)\+]+" class="form-control"> 956 </div> 957 958 <div class="form-group"> 959 <!-- CHANGED from col-md-3 --> 960 <label for="zipCode1" class="form-label">ZIP Code *</label> 961 <input type="text" id="zipCode1" name="zip_code" placeholder="ZIP code" 962 pattern="[0-9]{5}" class="form-control" required> 963 </div> 964 965 <div class="form-group"> 966 <label for="notes1" class="form-label">How can we help with your dental care?</label> 967 <textarea id="notes1" name="notes" rows="2" placeholder="Please describe your dental concern?" class="form-control"></textarea> 968 </div> 969 970 <!-- Consent Checkboxes (REQUIRED for compliance) --> 971 972 973 974 <div class="form-group"> 975 <div class="form-group checkbox form-check privacyConsent"> 976 977 <label class="form-check-label" for="privacyConsent1"><span><input class="form-check-input" type="checkbox" id="privacyConsent1" name="privacy_consent"></span><span><span data-call-consent-version="20261005-ai-calls-v1">
977I agree to receive calls, text messages and emails from Implants Guru about my inquiry and appointments, including calls or texts made with automated technology or an AI voice assistant. Consent is not a condition of purchase. Message and data rates may apply. Reply STOP to opt out of texts at any time.</span> I agree to the <a href="#" data-toggle="modal" data-target="#termsConditionsModal">Terms & Conditions</a> and <a href="#" data-toggle="modal" data-target="#privacyModal">Privacy Policy</a>.</span></label> 978 <p id="privacyWarning" 979 class="privacyWarning text-danger d-none" style="font-size: 1.2rem ;padding-left: 10px;"> 980 Please check this box to agree and continue. 981 </p> 982 </div> 983 </div> 984 <!-- reCAPTCHA (Frontend validation only) --> 985 <div class="form-group"> 986 <div class="g-recaptcha-widget" data-sitekey="6LfJv0EsAAAAAAWSo-GwlbZW5fX3sv8zG1Dl5S4g"></div> 987 <div id="recaptchaMessage" class="recaptchaMessage" style="display: none; font-weight: 400; "></div> 988 </div> 989 990 <!-- Submit Button --> 991 <div class="form-bottom-section"> 992 <div class="row appointment-container text-center"> 993 <button type="submit" id="submitBtn" class="submit-btn btn btn-primary btn-mb"> 994 Request an appointment 995 </button> 996 </div> 997 </div> 998 999 <!-- Loading/Success Messages --> 1000 <div class="form-group text-center"> 1001 <div id="formMessage" class="formMessage" style="display: none; margin-top: 15px; font-weight: 500;"></div> 1002 </div> 1003 1004 1005 </form> 1006 </div> 1007 </div> 1008 </div> 1009 </div> 1010 </div> 1011 </div> 1012 <!-- Accreditation --> 1013 <div id="accreditation-sec"> 1014 <div class="container"> 1015 <div class="row"> 1016 <div class="col-xs-12"> 1017 <div id="accreditations"> 1018 1019 <div class="item"> 1020 <div class="center_Image_Offer"> 1021 <div class="side-panel"> 1022 <a href="https://www.aboi.org/diplomate/447/keerthi-senthil" target="_blank" rel="noreferrer"> 1023 <img data-src="/img/Accreditations/ABOI_org.png" width="600" height="225" title="American Board Of Oral Implantology" alt="American Board Of Oral Implantology" class="img-responsive lazyload"> 1024 </a> 1025 </div> 1026 </div> 1027 </div> 1028 <div class="item"> 1029 <div class="center_Image_Offer"> 1030 <div class="side-panel"> 1031 <a href="https://www.gotoapro.org/prosthodontic-resources/" target="_blank" rel="noreferrer"> 1032 <img data-src="/img/Accreditations/acp.webp" width="600" height="225" title="American College Of Prosthodontists" alt="American College Of Prosthodontists" class="img-responsive lazyload"> 1033 </a> 1034 </div> 1035 </div> 1036 </div> 1037 <div class="item"> 1038 <div class="center_Image_Offer"> 1039 <div class="side-panel"> 1040 <a href="https://www.aaid-implant.org/avectra/customers/detail/?CustomerId=gWw72Wp%2bTp%2fF5SQEmx1EfazttKtR4UXNP5LJ3OXsB3Q%3d" target="_blank"> 1041 <img data-src="/img/Accreditations/AAID_com.webp" title="American Academy of Implant Dentistry" alt="American Academy of Implant Dentistry" class="img-responsive lazyload" width="600" height="225"> 1042 </a> 1043 </div> 1044 </div> 1045 </div> 1046 1047 </div> 1048 </div> 1049 </div> 1050 </div> 1051 </div> 1052 1053 1054 <!-- footer --> 1055 <footer> 1056 <div class="container"> 1057 <div class="row"> 1058 <div class="col-xs-12 col-sm-4 col-md-3 col-lg-2"> 1059 <div class="center_Image_Offer"> 1060 <a href="/"><img alt="Implants Guru Rancho Mirage" title="Implants Guru Rancho Mirage" class="img-responsive img-footer lazyload" data-src="/img/logo-footer.webp" width="160" height="86" /></a> 1061 </div> 1062 </div> 1063 <div class="col-xs-12 col-sm-8 col-md-9 col-lg-6"> 1064 1065 <ul class="footer-menu-h"> 1066 <li><a href="/">Home</a></li> 1067 <li>|</li> 1068 <li><a href="/about">About</a></li> 1069 <li>|</li> 1070 <li class="visible-xs-inline"><a href=/our-services>Our Services</a></li> 1071 <li class="visible-xs-inline">|</li> 1072 <li><a href="/beautiful-smiles">Beautiful Smiles</a></li> 1073 <li>|</li> 1074 <li><a href="/forms">Forms</a></li> 1075 <li>|</li> 1076 <li><a href="/misc">Misc</a></li> 1077 <li>|</li> 1078 <li><a href="/contact">Contact</a></li> 1079 <li>|</li> 1080 <li><a href="/blog">Blog</a></li> 1081 <li>|</li> 1082 <li><a href="/sitemap">Sitemap</a></li> 1083 </ul> 1084 <ul class="footer-menu-h"> 1085 <li><a href="/privacy-policy">Privacy Policy</a></li> 1086 <li>|</li> 1087 <li><a href="/terms-of-use">Terms of Use</a></li> 1088 </ul> 1089 1090 </div> 1091 <div class="col-xs-12 col-sm-12 col-md-12 col-lg-4"> 1092 <ul class="social-icons"> 1093 <li><a title="Facebook" class="facebook" href="#/" target="_blank" rel="noreferrer" aria-label="Facebook Link"><i class="fa fa-2x fa-facebook-square" aria-hidden="true"></i><span class="sr-only">Facebook</span></a></li> 1094 <li><a title="Instagram" href="https://www.instagram.com/dr.keerthisenthil/" target="_blank" rel="noreferrer"><i class="fa fa-2x fa-instagram" rel="noreferrer" aria-hidden="true"></i><span class="sr-only">Instagram</span></a></li> 1095 1096 <li><a title="Twitter" href="https://twitter.com/ImplantsGuru" target="_blank" rel="noreferrer"><i class="fa-brands fa-square-x-twitter"></i></a></li> 1097 1098 <li><a title="Youtube" href="https://www.youtube.com/channel/UCmC6YM3a3V4rrnz5VACiloA" target="_blank" rel="noreferrer"><i class="fa-brands fa-square-youtube"></i><span class="sr-only">youtube</span></a></li> 1099 <li><a title="LinkedIn" href="https://www.linkedin.com/company/implants-guru" target="_blank" rel="noreferrer"><i class="fa fa-2x fa-linkedin-square" aria-hidden="true"></i><span class="sr-only">linkedin</span></a></li> 1100 <li><a title="Pinterest" href="https://in.pinterest.com/implantsguru/" target="_blank" rel="noreferrer"><i class="fa fa-2x fa-pinterest-square" aria-hidden="true"></i><span class="sr-only">pinterest</span></a></li> 1101 </ul> 1102 <div id="AggregateRatingSection"> 1103 <div> 1104 <p>
1105 <span>Implants Guru</span> - 1106 <span> 1107 <i class="fa fa-star" aria-hidden="true"></i> 1108 <i class="fa fa-star" aria-hidden="true"></i> 1109 <i class="fa fa-star" aria-hidden="true"></i> 1110 <i class="fa fa-star" aria-hidden="true"></i> 1111 <i class="fa fa-star" aria-hidden="true"></i><br /> 1112 <a href="https://goo.gl/4oBWY5" target="_blank" class="footer_google_review" rel="noreferrer"> 1113 <img src="/img/pixel.jpg" data-src="/img/googleLogoFooter.webp" width="60" height="29" class="img-responsive logoFooterGoogle lazyload" alt="Google Logo" title="Google"> <span class="sr-only">(opens in a new tab)</span> <review-count business-id="ccc7bbfbc4b8403aa6ea0475131b41d5"></review-count> 1114 </a> 1115 </span> 1116 </p> 1117 </div> 1118 </div> 1119 </div> 1120 </div> 1121 </div> 1122 <div class="hr"></div> 1123 <div class="copyright"> 1124 © 2004 - 2026 <a href="https://www.americandentalsoftware.com" target="_Blank" rel="noreferrer">American Dental Software </a> All rights reserved • Site Designed, Maintained & Hosted by <a href="https://www.sivasolutions.com" target="_Blank" rel="noreferrer">Siva Solutions Inc., </a> 1125 </div> 1126 </footer> 1127 <!-- Offers Switcher --> 1128 <a data-toggle="modal" data-target="#appointment2" href="#" title="Make an Appointment" id="Quick-Contact-switcher" class="quick-contact-tab"> 1129 <div id="toggle-switcher"> 1130 <p> 1131 Q<br /> 1132 U<br /> 1133 I<br /> 1134 C<br /> 1135 K<br /> 1136 <br /> 1137 C<br /> 1138 O<br /> 1139 N<br /> 1140 T<br /> 1141 A<br /> 1142 C<br /> 1143 T 1144 </p> 1145 </div> 1146 </a> 1147 <!-- Back to top --> 1148 <a href="#" title="Scroll to top" class="back-to-top">Top</a> 1149 1150 <!-- pe-modal Window Starts --> 1151 <div class="modal fade" id="pe-modal" tabindex="-1" role="dialog" aria-labelledby="pe-modalLabel"> 1152 <div class="modal-dialog modal-lg" role="document"> 1153 <div class="modal-content"> 1154 <div class="modal-header"> 1155 <button type="button" class="close" data-dismiss="modal"> 1156 <span aria-hidden="true"><i class="fa fa-times-circle" aria-hidden="true"></i></span> 1157 <span class="sr-only">Close</span> 1158 </button> 1159 <p class="modal-title" id="pe-modalLabel">Dental Procedure Name</p> 1160 </div> 1161 <div class="modal-body"> 1162 <div class="row"> 1163 <div class="col-xs-12 col-sm-7"> 1164 <div class="player-div"></div> 1165 1166 <style> 1167 1168 .player-div { 1169 display: inline-block; 1170 width: 100%; 1171 height: 100%; 1172 border-radius: 0; 1173 /* box-shadow: 0 0 20px -7px #000; */ 1174 border: 5px solid #e2e2e2; 1175 } 1176 1177 .plyr--full-ui input[type=range] { 1178 color: #f0ae0f; 1179 } 1180 1181 .plyr--video .plyr__control.plyr__tab-focus, 1182 .plyr--video .plyr__control:hover, 1183 .plyr--video .plyr__control[aria-expanded=true] { 1184 background: #f0ae0f; 1185 color: #fff; 1186 } 1187 1188 .plyr__control.plyr__tab-focus { 1189 box-shadow: 0 0 0 5px rgba(240, 174, 15, 0.5); 1190 } 1191 1192 .plyr__control--overlaid { 1193 background: rgba(240, 174, 15, 0.8); 1194 } 1195 1196 .plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]::before { 1197 background: #f0ae0f; 1198 } 1199 </style> 1200 </div> 1201 <div class="col-xs-12 col-sm-5"> 1202 <div class="pe-content"> 1203 <p class="heading">Text Transcription</p> 1204 <div class="modal-description"> 1205 <div> 1206 Video Description 1207 </div> 1208 </div> 1209 </div> 1210 </div> 1211 </div> 1212 </div> 1213 </div> 1214 </div> 1215 </div> 1216 <!-- pe-modal Window Ends --> 1217 1218 <!-- Modal for video pop up --> 1219 <div id="video-pop-up"> 1220 <div class="modal fade modal-fullscreen videoModalone" id="modal-fullscreen" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 1221 <div class="modal-dialog modal-dialog-centered opacity-animate3"> 1222 <div class="modal-content"> 1223 1224 <div class="modal-body" id="yt-player"> 1225 <div class=""> 1226 <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> 1227 1228 </div>
1229 <video autoplay controls class="vidbacking_full_screen" id="htmlVideo"> 1230 <source src="#/" type="video/mp4"> 1231 </video> 1232 </div> 1233 1234 </div> 1235 </div> 1236 </div> 1237 </div> 1238 <!--bottom _widget--> 1239 1240 <!--bottom _widget ends--> 1241 1242 <!--easy-buttons--> 1243 <div id="share-wrapper"> 1244 <ul class="share-inner-wrp"> 1245 <li class="phone button-wrap"><a class="phone" href="tel:760-340-5107" title="Call - 760-340-5107">760-340-5107</a></li> 1246 <li class="Appointment button-wrap"><a class="Appointment" data-toggle="modal" data-target="#appointment2" href="#" title="Make an Appointment">Make an Appointment</a></li> 1247 <li class="Directions button-wrap"><a href="https://www.google.com/maps?saddr=My+Location&daddr=Implants+Guru+72027+Desert+Drive+Rancho+Mirage+California+92270" target="_blank" class="get-directions Directions" title="Directions" rel="noreferrer">Directions</a></li> 1248 <li class="Refer button-wrap"><a class="Refer" href="sms:?body=Keerthi Senthil DDS, MS, 72027 Desert Drive, Rancho Mirage, CA 92270. Phone : 760-340-5107 , Website : https://www.implantsguru.dentist" title="Refer">Refer</a></li> 1249 </ul> 1250 1251 </div> 1252 1253 <div class="modal fade" id="handwrittenOne" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 1254 <div class="modal-dialog"> 1255 <div class="modal-content"> 1256 <div class="modal-header"> 1257 <button type="button" class="close" data-dismiss="modal"> 1258 <span aria-hidden="true"><i class="fa fa-times-circle" aria-hidden="true"></i></span> 1259 <span class="sr-only">Close</span> 1260 </button> 1261 </div> 1262 <div class="modal-body"> 1263 <img alt="handwritten testimonial image" title="handwritten testimonial" src="/img/handwritten/IG-Testimonial-Barton-King.jpg" class="img-responsive" /> 1264 </div> 1265 </div> 1266 </div> 1267 </div> 1268 1269 <div class="modal fade" id="handwrittenTwo" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 1270 <div class="modal-dialog"> 1271 <div class="modal-content"> 1272 <div class="modal-header"> 1273 <button type="button" class="close" data-dismiss="modal"> 1274 <span aria-hidden="true"><i class="fa fa-times-circle" aria-hidden="true"></i></span> 1275 <span class="sr-only">Close</span> 1276 </button> 1277 </div> 1278 <div class="modal-body"> 1279 <img alt="handwritten testimonial image" title="handwritten testimonial" src="/img/handwritten/IG-Testimonial-Beverly-Bethea.jpg" class="img-responsive" /> 1280 </div> 1281 </div> 1282 </div> 1283 </div> 1284 <!-- Free Dental Implant --> 1285 1286 <!-- accessibility functions -- data-placement-position: bottom-left, bottom-right, top-left, top-right / data-widget-color="#ff0000" --> 1287 <div class=acess-container data-placement-position=bottom-left data-widget-color=#f64350><div id=accessibility-button title="Accessibility button"><i aria-hidden=true class="fa fa-universal-access"></i></div><div id=acess-icons><p class=accessibility-title>Accessibility Menu <button class=close type=button><span aria-hidden=true><i aria-hidden=true class="fa fa-times-circle"></i></span> <span class=sr-only>Close</span></button><ul><li id=keyboardNav title="Keyboard Nav"><i aria-hidden=true class="fa fa-keyboard-o"></i> Keyboard Nav<li id=bigCursor title="Big Cursor"><i aria-hidden=true class="fa fa-mouse-pointer"></i> Big Cursor<li id=darkContrast title="Dark Contrast"><i aria-hidden=true class="fa fa-circle"></i> Dark Contrast<li id=lightContrast title="Light Contrast"><i aria-hidden=true class="fa fa-circle-o"></i> Light Contrast<li id=invertColors title="Invert Colors"><i aria-hidden=true class="fa fa-adjust"></i> Invert Colors<li id=desaturate title=Desaturate><i aria-hidden=true class="fa fa-sun-o"></i> Desaturate<li id=increaseFont title="Increase Font"><i aria-hidden=true class="fa fa-font"><span><i aria-hidden=true class="fa fa-plus"></i></span></i> Increase Font<li id=decreaseFont title="Decrease Font"><i aria-hidden=true class="fa fa-font"><span><i aria-hidden=true class="fa fa-minus"></i></span></i> Decrease Font<li id=legibleFont title="Legible Font"><i aria-hidden=true class="fa fa-font"><span><i aria-hidden=true class="fa fa-bold"></i></span></i> Legible Font<li id=highlightLinks title="Highlight Links"><i aria-hidden=true class="fa fa-link"></i> Highlight Links<li id=zoomPage title="Zoom Page"><i aria-hidden=true class="fa fa-search-plus"></i> Zoom Page<li id=readPage title="Read Page"><i aria-hidden=true class="fa fa-volume-up"></i> Read Page<li id=resetAll title="Reset All" class=resetAllDeactivated><i aria-hidden=true class="fa fa-refresh"></i> Reset All</ul><div class=accessibility-footer><a class="btn btn-link" href="/accessibility" title="Accessibility Statement">Accessibility statement</a></div></div></div> 1288 1289 <!-- JavaScript --> 1290 1291
1291<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="" crossorigin="anonymous"></script>
1291 1292
1292<script> 1293 jQuery.event.special.touchstart = { 1294 setup: function (_, ns, handle) { 1295 this.addEventListener("touchstart", handle, { passive: true }); 1296 } 1297 };</script>
1297 1298
1298<script src="/Scripts/bootstrap.min.js"></script>
1298 1299
1299<script src="/Scripts/ADS.js?v=20261002-combined-consent"></script>
1299 1300 <!-- vertical-navbar --> 1301
1301<script src="/Scripts/vertical-navbar.js"></script>
1301 1302 <!--owl.carousel--> 1303
1303<script src="/Scripts/owl.carousel.js"></script>
1303 1304
1304<script src="/Scripts/jquery.fancybox.js"></script>
1304 1305
1305<script src="/Scripts/easy-buttons.js"></script>
1305 1306
1306<script defer src="/Scripts/lazysizes.min.js"></script>
1306 1307 <!-- jquery.validate --> 1308 1309 <!-- custom scripts for forms --> 1310 1311 1312 <!-- intlTelInput JS --> 1313 1314 1315 <div class="modal fade" id="appointment2" tabindex="-1" role="dialog" aria-labelledby="myModalLabelBanner" aria-hidden="true"> 1316 <div class="modal-dialog"> 1317 <div class="modal-content"> 1318 <div class="modal-header"> 1319 <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> 1320 <p class="modal-title modelForm2" id="myModalLabelBanner">Request an Appointment</p> 1321 </div> 1322 <div class="modal-body"> 1323 <div class="contact-form"> 1324 <form class="lead-form le-lead-form" id="leadForm3" method="POST"> 1325<input type="text" name="website" tabindex="-1" autocomplete="off" aria-hidden="true" style="position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden;" /> 1326 1327 <!-- Hidden field for GCLID - REQUIRED for Google Ads tracking --> 1328 <input type="hidden" class="gclidField" name="ext_lead_ref" value=""> 1329 1330 <!-- Required Fields --> 1331 <div class="form-group"> 1332 <label for="firstName3" class="form-label">First Name *</label> 1333 <input type="text" id="firstName3" name="first_name" required placeholder="First name" class="form-control"> 1334 </div> 1335 1336 <div class="form-group"> 1337 <label for="lastName3" class="form-label">Last Name *</label> 1338 <input type="text" id="lastName3" name="last_name" required placeholder="Last name" class="form-control"> 1339 </div> 1340 1341 <div class="form-group"> 1342 <label for="email3" class="form-label">Email *</label> 1343 <input type="email" id="email3" name="email" required placeholder="Email address" class="form-control"> 1344 </div> 1345 1346 <div class="form-group"> 1347 <label for="phone3" class="form-label">Phone *</label> 1348 <input type="tel" id="phone3" name="phone" required placeholder="Phone number" pattern="[0-9\s\-\(\)\+]+" class="form-control"> 1349 </div> 1350 1351 <div class="form-group"> 1352 <label for="zipCode3" class="form-label">ZIP Code *</label> 1353 <input type="text" id="zipCode3" name="zip_code" placeholder="ZIP code" 1354 pattern="[0-9]{5}" class="form-control" required> 1355 </div> 1356 1357 <div class="form-group"> 1358 <label for="notes3" class="form-label">How can we help with your dental care?</label> 1359 <textarea id="notes3" name="notes" rows="2" placeholder="Please describe your dental concern?" class="form-control"></textarea> 1360 </div> 1361 1362 1363 <div class="form-group"> 1364 <div class="form-group checkbox form-check privacyConsent"> 1365 1366 <label class="form-check-label" for="privacyConsent3"><span><input class="form-check-input" type="checkbox" id="privacyConsent3" name="privacy_consent"></span><span><span data-call-consent-version="20261005-ai-calls-v1">I agree to receive calls, text messages and emails from Implants Guru about my inquiry and appointments, including calls or texts made with automated technology or an AI voice assistant. Consent is not a condition of purchase. Message and data rates may apply. Reply STOP to opt out of texts at any time.</span> I agree to the <a href="#" data-toggle="modal" data-target="#termsConditionsModal">Terms & Conditions</a> and <a href="#" data-toggle="modal" data-target="#privacyModal">Privacy Policy</a>.</span></label> 1367 <p id="privacyWarning" 1368 class="privacyWarning text-danger d-none" style="font-size: 1.2rem ;padding-left: 10px;"> 1369 Please check this box to agree and continue. 1370 </p> 1371 </div> 1372 </div> 1373 <div class="form-group"> 1374 <div class="g-recaptcha-widget" data-sitekey="6LfJv0EsAAAAAAWSo-GwlbZW5fX3sv8zG1Dl5S4g"></div> 1375 <div id="recaptchaMessage" class="recaptchaMessage" style="display: none; font-weight: 400; "></div> 1376 </div> 1377 1378 <!-- Submit Button --> 1379 <div class="form-bottom-section"> 1380 <div class="row appointment-container text-center"> 1381 <button type="submit" id="submitBtn" class="submit-btn btn btn-primary btn-mb"> 1382 Request an appointment 1383 </button> 1384 1385 </div> 1386 </div> 1387 1388 <!-- Loading/Success Messages --> 1389 <div class="form-group text-center"> 1390 <div id="formMessage" class="formMessage" style="display: none; margin-top: 15px; font-weight: 500;"></div> 1391 </div> 1392 1393 1394 </form> 1395 </div> 1396 </div> 1397 </div> 1398 </div> 1399</div> 1400<div class="modal fade" id="appointment" tabindex="-1" role="dialog" aria-labelledby="myModalLabelEsyBtn" aria-hidden="true"> 1401 <div class="modal-dialog"> 1402 <div class="modal-content"> 1403 <div class="modal-header"> 1404 <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> 1405 <p class="modal-title modelOne" id="myModalLabelEsyBtn">Request an Appointment</p> 1406 </div> 1407 <div class="modal-body"> 1408 1409 <div class="contact-form"> 1410 <form class="lead-form le-lead-form" id="leadForm2" method="POST"> 1411<input type="text" name="website" tabindex="-1" autocomplete="off" aria-hidden="true" style="position:absolute;
1411left:-10000px;width:1px;height:1px;overflow:hidden;" /> 1412 1413 <!-- Hidden field for GCLID - REQUIRED for Google Ads tracking --> 1414 <input type="hidden" class="gclidField" name="ext_lead_ref" value=""> 1415 1416 <!-- Required Fields --> 1417 <div class="form-group"> 1418 <label for="firstName2" class="form-label">First Name *</label> 1419 <input type="text" id="firstName2" name="first_name" required placeholder="First name" class="form-control"> 1420 </div> 1421 1422 <div class="form-group"> 1423 <label for="lastName2" class="form-label">Last Name *</label> 1424 <input type="text" id="lastName2" name="last_name" required placeholder="Last name" class="form-control"> 1425 </div> 1426 1427 <div class="form-group"> 1428 <label for="email2" class="form-label">Email *</label> 1429 <input type="email" id="email2" name="email" required placeholder="Email address" class="form-control"> 1430 </div> 1431 1432 <div class="form-group"> 1433 <label for="phone2" class="form-label">Phone *</label> 1434 <input type="tel" id="phone2" name="phone" required placeholder="Phone number" pattern="[0-9\s\-\(\)\+]+" class="form-control"> 1435 </div> 1436 1437 <div class="form-group"> 1438 <label for="zipCode2" class="form-label">ZIP Code *</label> 1439 <input type="text" id="zipCode2" name="zip_code" placeholder="ZIP code" 1440 pattern="[0-9]{5}" class="form-control" required> 1441 </div> 1442 1443 <div class="form-group"> 1444 <label for="notes2" class="form-label">How can we help with your dental care?</label> 1445 <textarea id="notes2" name="notes" rows="2" placeholder="Please describe your dental concern?" class="form-control"></textarea> 1446 </div> 1447 1448 <div class="form-group"> 1449 <div class="form-group checkbox form-check privacyConsent"> 1450 1451 <label class="form-check-label" for="privacyConsent2"><span><input class="form-check-input" type="checkbox" id="privacyConsent2" name="privacy_consent"></span><span><span data-call-consent-version="20261005-ai-calls-v1">I agree to receive calls, text messages and emails from Implants Guru about my inquiry and appointments, including calls or texts made with automated technology or an AI voice assistant. Consent is not a condition of purchase. Message and data rates may apply. Reply STOP to opt out of texts at any time.</span> I agree to the <a href="#" data-toggle="modal" data-target="#termsConditionsModal">Terms & Conditions</a> and <a href="#" data-toggle="modal" data-target="#privacyModal">Privacy Policy</a>.</span></label> 1452 <p id="privacyWarning" 1453 class="privacyWarning text-danger d-none" style="font-size: 1.2rem ;padding-left: 10px;"> 1454 Please check this box to agree and continue. 1455 </p> 1456 </div> 1457 </div> 1458 <!-- reCAPTCHA (Frontend validation only) --> 1459 <div class="form-group"> 1460 <div class="g-recaptcha-widget" data-sitekey="6LfJv0EsAAAAAAWSo-GwlbZW5fX3sv8zG1Dl5S4g"></div> 1461 <div id="recaptchaMessage" class="recaptchaMessage" style="display: none; font-weight: 400; "></div> 1462 </div> 1463 1464 <!-- Submit Button --> 1465 <div class="form-bottom-section"> 1466 <div class="row appointment-container text-center"> 1467 <button type="submit" id="submitBtn" class="submit-btn btn btn-primary btn-mb"> 1468 Request an appointment 1469 </button> 1470 </div> 1471 </div> 1472 1473 <!-- Loading/Success Messages --> 1474 <div class="form-group text-center"> 1475 <div id="formMessage" class="formMessage" style="display: none; margin-top: 15px; font-weight: 500;"></div> 1476 </div> 1477 1478 1479 </form> 1480 </div> 1481 </div> 1482 </div> 1483 </div> 1484</div> 1485<div class="modal fade" 1486 id="privacyModal" 1487 tabindex="-1" 1488 role="dialog" 1489 aria-labelledby="privacyModalLabel" 1490 aria-hidden="true"> 1491 1492 <div class="modal-dialog modal-lg" role="document"> 1493 <div class="modal-content"> 1494 1495 <div class="modal-header"> 1496 <button type="button" 1497 class="close" 1498 data-dismiss="modal" 1499 aria-label="Close">
1500 <span aria-hidden="true">×</span> 1501 </button> 1502 1503 <h4 class="modal-title" id="privacyModalLabel"> 1504 Privacy Policy 1505 </h4> 1506 </div> 1507 1508 <div class="modal-body"> 1509 1510 1511 1512 <p> 1513 This Privacy Policy describes how <b>Implants Guru</b> ("Implants Guru," "we," "us," or "our") 1514 collects, uses, discloses, and safeguards personal information and health information obtained through our website 1515 https://www.implantsguru.dentist, including consultation forms, landing pages, and related digital services. 1516 </p> 1517 1518 <p>This Privacy Policy is intended to comply with:</p> 1519 <ul> 1520 <li>The <b>California Consumer Privacy Act (CCPA)</b> as amended by the <b>California Privacy Rights Act (CPRA)</b>, and</li> 1521 <li>Applicable U.S. healthcare privacy laws, including the <b>Health Insurance Portability and Accountability Act of 1996 (HIPAA)</b>.</li> 1522 </ul> 1523 1524 <p>This document serves as both:</p> 1525 <ol> 1526 <li>A <b>HIPAA Notice of Privacy Practices</b> (for patients and Protected Health Information), and</li> 1527 <li>A <b>California Website Privacy Policy</b> (for website visitors, leads, and non-patients).</li> 1528 </ol> 1529 1530 <hr /> 1531 1532 <h4>1. Who We Are (Data Controller)</h4> 1533 <p> 1534 <b>Implants Guru</b><br> 1535 Location: 72027 Desert Drive, 1536 Rancho Mirage, CA 92270<br> 1537 Website: https://www.implantsguru.dentist<br> 1538 Phone: (760) 456-7699 1539 </p> 1540 <p> 1541 Implants Guru is the <b>data controller</b> for personal information collected through this website. 1542 </p> 1543 1544 <hr /> 1545 1546 <h4>2. Information We Collect</h4> 1547 1548 <h5>A. Personal Information (Website Visitors & Leads)</h5> 1549 <p>We may collect personal information that you voluntarily provide, including:</p> 1550 <ul> 1551 <li>Full name</li> 1552 <li>Email address</li> 1553 <li>Phone number</li> 1554 <li>City and state of residence</li> 1555 <li>Communication preferences</li> 1556 <li>Messages, inquiries, or form submissions</li> 1557 </ul> 1558 1559 <h5>B. Health-Related Information (Voluntarily Submitted)</h5> 1560 <p> 1561 If you request a dental implant consultation, you may voluntarily provide information such as: 1562 </p> 1563 <ul> 1564 <li>Dental or oral health details</li> 1565 <li>Treatment-related questions</li> 1566 <li>Medical information you choose to disclose</li> 1567 </ul> 1568 <p> 1569 Submission of health information through the website is <b>voluntary</b> and does not establish a patient-provider relationship 1570 unless and until care is formally initiated. 1571 </p> 1572 1573 <h5>C. Automatically Collected Information</h5> 1574 <p>When you visit our website, we may automatically collect:</p> 1575 <ul> 1576 <li>IP address</li> 1577 <li>Browser type and device information</li> 1578 <li>Pages viewed and time spent on the website</li> 1579 <li>Referring or exit URLs</li> 1580 </ul> 1581 1582 <hr /> 1583 1584 <h4>3. How We Use Your Information</h4> 1585 <p>We use the information we collect to:</p> 1586 <ul> 1587 <li>Respond to inquiries and consultation requests</li> 1588 <li>Communicate regarding services, appointments, or follow-ups</li> 1589 <li>Improve website performance and user experience</li> 1590 <li>Comply with legal, regulatory, and professional obligations</li> 1591 <li>Send informational or marketing communications where permitted by law and consent<
1591/li> 1592 </ul> 1593 1594 <hr /> 1595 1596 <h4>4. HIPAA Notice of Privacy Practices (Patients & PHI)</h4> 1597 <p> 1598 If you become a patient of Implants Guru, your Protected Health Information (PHI) is handled in accordance with HIPAA. 1599 </p> 1600 1601 <h5>Permitted Uses and Disclosures of PHI</h5> 1602 <p>We may use and disclose PHI for:</p> 1603 <ul> 1604 <li>Treatment and coordination of care</li> 1605 <li>Payment and billing activities</li> 1606 <li>Healthcare operations</li> 1607 <li>Compliance with legal or regulatory requirements</li> 1608 <li>Public health, safety, and law enforcement purposes as permitted by law</li> 1609 </ul> 1610 1611 <h5>Your Rights Under HIPAA</h5> 1612 <p>You have the right to:</p> 1613 <ul> 1614 <li>Access and obtain copies of your health records</li> 1615 <li>Request corrections or amendments to your records</li> 1616 <li>Request restrictions on certain uses or disclosures</li> 1617 <li>Receive an accounting of disclosures</li> 1618 <li>Request confidential communications</li> 1619 <li>Receive notification in the event of a data breach involving your PHI</li> 1620 <li>File a complaint with us or with the <b>U.S. Department of Health and Human Services (HHS)</b></li> 1621 </ul> 1622 <p> 1623 We are legally required to maintain the privacy and security of your PHI and to provide you with this Notice of Privacy Practices. 1624 </p> 1625 1626 <hr /> 1627 1628 <h4>5. California Privacy Rights (CCPA / CPRA)</h4> 1629 <p>If you are a California resident, you have the following rights:</p> 1630 <ul> 1631 <li><b>Right to Know:</b> Request details about the personal information we collect, use, and disclose</li> 1632 <li><b>Right to Delete:</b> Request deletion of personal information, subject to medical record retention and legal requirements</li> 1633 <li><b>Right to Correct:</b> Request correction of inaccurate personal information</li> 1634 <li><b>Right to Limit Use of Sensitive Personal Information:</b> Where applicable under CPRA</li> 1635 <li><b>Right to Opt-Out of Sale or Sharing:</b> We <b>do not sell or share</b> personal information for cross-context behavioral advertising</li> 1636 <li><b>Right to Non-Discrimination:</b> You will not be discriminated against for exercising your privacy rights</li> 1637 </ul> 1638 <p>To exercise these rights, contact us using the details in the <b>Contact Us</b> section.</p> 1639 1640 <hr /> 1641 1642 <h4>6. Categories of Personal Information Collected (California Disclosure)</h4> 1643 <p>Within the past 12 months, we may have collected the following categories:</p> 1644 <ul> 1645 <li>Identifiers (name, email, phone number, IP address)</li> 1646 <li>Internet or network activity (website usage and analytics)</li> 1647 <li>Customer records (communications and inquiries)</li> 1648 <li>Sensitive personal information (health-related information voluntarily submitted)</li> 1649 </ul> 1650 <p> 1651 Information is collected directly from you or automatically through your use of the website. 1652 </p> 1653 1654 <hr /> 1655 1656 <h4>7. Cookies & Tracking Technologies</h4> 1657 <p>We use cookies and similar technologies to:</p> 1658 <ul> 1659 <li>Analyze website traffic and usage patterns</li> 1660 <li>Improve website performance and functionality</li> 1661 <li>Support analytics and marketing efforts</li> 1662 </ul> 1663 <p> 1664 You may control cookies through your browser settings. Disabling cookies may affect website functionality. 1665 </p> 1666 1667 <hr /> 1668 1669 <h4>8. Third-Party Service Providers</h4> 1670 <p>We may use trusted third-party vendors for services such as:</p> 1671 <ul> 1672 <li>Website hosting</li> 1673 <li>Online forms and scheduling</li> 1674 <li>Customer relationship management (CRM)</li> 1675 <li>Email and SMS communications</li> 1676 <li>Website analytics and performance monitoring</li> 1677 </ul> 1678 <p> 1679 These providers are contractually required to safeguard personal information and use it only for authorized purposes. 1680 </p> 1681 1682 <hr /> 1683 1684 <h4>9. Data Retention</h4> 1685 <p>We retain personal information only for as long as necessary to:</p> 1686 <ul> 1687 <li>Fulfill the purposes outlined in this Privacy Policy</li> 1688 <li>Comply with legal, healthcare, and regulatory requirements</li> 1689 <li>Resolve disputes and enforce agreements</li> 1690 </ul> 1691 1692 <hr /> 1693 1694 <h4>10. Data Security</h4> 1695 <p>We implement reasonable administrative, technical, and physical safeguards, including:</p> 1696 <ul> 1697 <li>Encryption of data in transit and at rest</li> 1698 <li>Access controls and authentication measures</li> 1699 <li>Secure data storage systems</li> 1700 </ul> 1701 <p> 1702 While no system can guarantee absolute security, we take appropriate measures to protect your information. 1703 </p> 1704 1705 <hr /> 1706 1707 <h4>11. Marketing Communications & SMS</h4> 1708 <p> 1709 By providing your phone number or email address, you consent to receive communications related to your inquiry or services. 1710 </p> 1711 <p>You may opt out at any time by:</p> 1712 <ul> 1713 <li>Clicking the unsubscribe link in emails</li> 1714 <li>Replying <b>STOP</b> to SMS messages</li> 1715 <li>Contacting us directly</li> 1716 </ul> 1717 <p>Message and data rates may apply.</p> 1718 1719 <hr /> 1720 1721 <h4>12. Children's Privacy</h4> 1722 <p> 1723 Our website and services are not intended for children under the age of 13. We do not knowingly collect personal information from children. 1724 </p> 1725 1726 <hr /> 1727 1728 <h4>13. Changes to This Privacy Policy</h4> 1729 <p> 1730 We may update this Privacy Policy periodically. Any changes will be posted on this page with an updated effective date. 1731 </p> 1732 1733 <hr /> 1734 1735 <h4>14. Contact Us</h4> 1736 <p> 1737 If you have questions about this Privacy Policy or wish to exercise your privacy rights, contact: 1738 </p> 1739 <p> 1740 Privacy Officer<br> 1741 Implants Guru<br> 1742 Phone: (760) 456-7699 1743 </p> 1744 1745 <hr /> 1746 1747 <p> 1748 <b>By using this website or submitting information through any form, you acknowledge that you have read and understood this Privacy Policy.</b> 1749 </p> 1750 </div> 1751 1752 </div> 1753 </div> 1754</div> 1755<div class="modal fade" 1756 id="termsConditionsModal" 1757 tabindex="-1" 1758 role="dialog" 1759 aria-labelledby="termsConditionsModalLabel" 1760 aria-hidden="true"> 1761 1762 <div class="modal-dialog" role="document"> 1763 <div class="modal-content"> 1764 1765 <div class="modal-header"> 1766 <button type="button" 1767 class="close" 1768 data-dismiss="modal" 1769 aria-label="Close">
1770 <span aria-hidden="true">×</span> 1771 </button> 1772 1773 <h4 class="modal-title" id="termsConditionsModalLabel"> 1774 Terms & Conditions 1775 </h4> 1776 </div> 1777 1778 <div class="modal-body"> 1779 1780 1781 <p> 1782 Welcome to Implants Guru (the "Website"), accessible at https://www.implantsguru.dentist. 1783 These Terms & Conditions ("Terms") govern your access to and use 1784 of the Website, including consultation forms, landing pages, SMS/email 1785 communications, and related services. 1786 </p> 1787 1788 <p> 1789 By accessing or using the Website, you agree to these Terms and our Privacy Policy. 1790 If you do not agree, do not use the Website. 1791 </p> 1792 1793 <h5>1. Eligibility & Age Requirement</h5> 1794 <p>The Website is intended for individuals 18 years of age or older.</p> 1795 1796 <h5>2. No Medical or Dental Advice; No Dentist-Patient Relationship</h5> 1797 <p> 1798 All information on this Website is for general informational purposes only 1799 and does not constitute medical or dental advice. 1800 No dentist-patient relationship is created by using this Website. 1801 </p> 1802 1803 <h5>3. Permitted Use</h5> 1804 <p>You agree to use the Website lawfully and not misuse or disrupt services.</p> 1805 1806 <h5>4. Consultation Requests & Communications</h5> 1807 <p> 1808 By submitting forms, you consent to receive communications via phone, email, or SMS. 1809 Message and data rates may apply. 1810 </p> 1811 1812 <h5>5. Intellectual Property</h5> 1813 <p>All content is the property of Implants Guru and protected by law.</p> 1814 1815 <h5>6. Third-Party Links</h5> 1816 <p>We are not responsible for third-party websites.</p> 1817 1818 <h5>7. Disclaimer of Warranties</h5> 1819 <p>The Website is provided "as is" without warranties.</p> 1820 1821 <h5>8. Limitation of Liability</h5> 1822 <p>Liability is limited to the maximum extent permitted by California law.</p> 1823 1824 <h5>9. Indemnification</h5> 1825 <p>You agree to indemnify Implants Guru against claims arising from misuse.</p> 1826 1827 <h5>10. Privacy</h5> 1828 <p>Use of this Website is governed by our Privacy Policy.</p> 1829 1830 <h5>11. Changes</h5> 1831 <p>We may update these Terms at any time.</p> 1832 1833 <h5>12. Governing Law</h5> 1834 <p>California law governs these Terms.</p> 1835 1836 <h5>13. Contact Information</h5> 1837 <p>Phone: (760) 456-7699</p> 1838 1839 </div> 1840 1841 </div> 1842 </div> 1843</div> 1844 1845<div class="modal fade" id="thankYouModal" tabindex="-1" aria-labelledby="thankYouModalLabel" aria-hidden="true"> 1846 <div class="modal-dialog modal-dialog-centered modal-sm"> 1847 <div class="modal-content" style="border-radius: 16px;"> 1848 <div class="modal-body text-center"> 1849 <div style="font-size: 48px; color: #28a745; margin-bottom: 15px;">✓</div> 1850 <h3 id="thankYouModalLabel" class="mb-2">Thank you!</h3> 1851 <p class="mb-2" style="color: #555; font-size: 18px;"> 1852 We'll call you within the hour during office hours, otherwise first thing the next business day (office opens 8:30). 1853 </p> 1854 <div class="progress-bar-wrap"> 1855 <div class="progress-bar-inner" id="progressBar"></div> 1856 </div> 1857 <p class="mb-0" style="color: #4f4e4e; font-size: 14px;"> 1858 Checking financing options for you... 1859 </p> 1860 </div> 1861 </div> 1862 </div> 1863</div> 1864
1865<script src="/Scripts/chat-widget-loader.js?v=20261007-audit-fixes" defer></script>
1865 1866<style> 1867 .le-lead-form .custom-validation-error, 1868 .le-lead-form .privacyWarning, 1869 .le-lead-form .recaptchaMessage { 1870 font-size: 16px !important; 1871 line-height: 1.5 !important; 1872 font-style: normal !important; 1873 white-space: normal; 1874 overflow-wrap: break-word; 1875 } 1876 .le-lead-form .custom-validation-error { margin-top: 6px; } 1877 .le-lead-form .is-invalid { scroll-margin-top: 100px; } 1878</style>
1879<script> 1880 document.addEventListener('DOMContentLoaded', function () { 1881 const forms = document.querySelectorAll('.le-lead-form'); 1882 if (!forms.length) return; 1883 1884 function onlyDigits(value) { 1885 return (value || '').replace(/\D/g, ''); 1886 } 1887 1888 function getField(form, selector) { 1889 return form.querySelector(selector); 1890 } 1891 1892 function getErrorEl(field) { 1893 let errorEl = field.parentElement.querySelector('.custom-validation-error'); 1894 1895 if (!errorEl) { 1896 errorEl = document.createElement('div'); 1897 errorEl.className = 'custom-validation-error text-danger'; 1898 errorEl.style.fontSize = '16px'; 1899 errorEl.setAttribute('aria-live', 'polite'); 1900 errorEl.setAttribute('aria-atomic', 'true'); 1901 errorEl.style.display = 'none'; 1902 field.parentElement.appendChild(errorEl); 1903 } 1904 1905 return errorEl; 1906 } 1907 1908 function showFieldError(field, message) { 1909 if (!field) return; 1910 const errorEl = getErrorEl(field); 1911 errorEl.textContent = message; 1912 errorEl.style.display = 'block'; 1913 field.classList.add('is-invalid'); 1914 field.setAttribute('aria-invalid', 'true'); 1915 } 1916 1917 function clearFieldError(field) { 1918 if (!field) return; 1919 const errorEl = field.parentElement.querySelector('.custom-validation-error'); 1920 if (errorEl) { 1921 errorEl.textContent = ''; 1922 errorEl.style.display = 'none'; 1923 } 1924 field.classList.remove('is-invalid'); 1925 field.removeAttribute('aria-invalid'); 1926 } 1927 1928 function showPrivacyError(form, message) { 1929 const privacyWarning = form.querySelector('.privacyWarning'); 1930 const privacyCheckbox = form.querySelector('[name="privacy_consent"]'); 1931 1932 if (privacyWarning) { 1933 privacyWarning.textContent = message; 1934 privacyWarning.classList.remove('d-none'); 1935 privacyWarning.style.display = 'block'; 1936 } 1937 1938 if (privacyCheckbox) { 1939 privacyCheckbox.classList.add('is-invalid'); 1940 privacyCheckbox.setAttribute('aria-invalid', 'true'); 1941 } 1942 } 1943 1944 function clearPrivacyError(form) { 1945 const privacyWarning = form.querySelector('.privacyWarning'); 1946 const privacyCheckbox = form.querySelector('[name="privacy_consent"]'); 1947 1948 if (privacyWarning) { 1949 privacyWarning.classList.add('d-none'); 1950 privacyWarning.style.display = 'none'; 1951 } 1952 1953 if (privacyCheckbox) { 1954 privacyCheckbox.classList.remove('is-invalid'); 1955 privacyCheckbox.removeAttribute('aria-invalid'); 1956 } 1957 } 1958 1959 function showRecaptchaError(form, message) { 1960 const recaptchaMessage = form.querySelector('.recaptchaMessage'); 1961 const captchaWidget = form.querySelector('.g-recaptcha-widget, .g-recaptcha'); 1962 1963 if (recaptchaMessage) { 1964 // Keep the notice immediately below the checkbox on every screen size. 1965 if (captchaWidget) captchaWidget.insertAdjacentElement('afterend', recaptchaMessage); 1966 recaptchaMessage.setAttribute('role', 'alert'); 1967 recaptchaMessage.setAttribute('aria-live', 'assertive'); 1968 recaptchaMessage.setAttribute('aria-atomic', 'true'); 1969 recaptchaMessage.style.cssText = 'display:block!important;font-size:16px!important;line-height:1.5!important;font-weight:600!important;color:#a51d2d!important;background:#fff3f3;padding:12px 16px;margin:12px 0 0;border:1px solid #d99099;border-radius:6px;width:100%;box-sizing:border-box;flex-basis:100%;white-space:normal;text-align:left;'; 1970 recaptchaMessage.textContent = message; 1971 recaptchaMessage.classList.add('recaptcha-error', 'show'); 1972 } 1973 } 1974 1975 function clearRecaptchaError(form) { 1976 const recaptchaMessage = form.querySelector('.recaptchaMessage'); 1977 1978 if (recaptchaMessage) { 1979 recaptchaMessage.textContent = ''; 1980 recaptchaMessage.style.display = 'none'; 1981 recaptchaMessage.classList.remove('recaptcha-error', 'show'); 1982 } 1983 } 1984 1985 function validateFirstName(form) { 1986 const field = getField(form, '[name="first_name"]'); 1987 if (!field) return true; 1988 1989 const value = field.value.trim(); 1990 field.value = value; 1991 1992 if (!value) { 1993 showFieldError(field, 'Please enter your first name.'); 1994 return false; 1995 } 1996 1997 clearFieldError(field); 1998 return true; 1999 } 2000 2001 function validateLastName(form) { 2002 const field = getField(form, '[name="last_name"]'); 2003 if (!field) return true; 2004 2005 const value = field.value.trim(); 2006 field.value = value; 2007 2008 if (!value) { 2009 showFieldError(field, 'Please enter your last name.'); 2010 return false; 2011 } 2012 2013 clearFieldError(field); 2014 return true; 2015 } 2016 2017 function validateEmail(form) { 2018 const field = getField(form, '[name="email"]'); 2019 if (!field) return true; 2020 2021 const value = field.value.trim(); 2022 field.value = value; 2023 2024 if (!value) { 2025 showFieldError(field, 'Please enter a valid email address.'); 2026 return false; 2027 } 2028 2029 if (!/^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test(value)) { 2030 showFieldError(field, 'Please enter a valid email address.'); 2031 return false; 2032 } 2033 2034 clearFieldError(field); 2035 return true; 2036 } 2037 2038 function validatePhone(form) { 2039 const field = getField(form, '[name="phone"]'); 2040 if (!field) return true; 2041 2042 const digits = onlyDigits(field.value); 2043 2044 if (!digits) { 2045 showFieldError(field, 'Please enter a valid phone number.'); 2046 return false; 2047 } 2048 2049 if (digits.length !== 10) { 2050 showFieldError(field, 'Please enter a valid phone number.'); 2051 return false; 2052 } 2053 2054 clearFieldError(field); 2055 return true; 2056 } 2057 2058 function validateZip(form) { 2059 const field = getField(form, '[name="zip_code"]'); 2060 if (!field) return true; 2061 2062 const value = field.value.trim(); 2063 field.value = value; 2064 2065 if (!value) { 2066 showFieldError(field, 'Please enter a valid ZIP code.'); 2067 return false; 2068 } 2069 2070 if (!/^\d{5}$/.test(value)) { 2071 showFieldError(field, 'Please enter a valid ZIP code.'); 2072 return false; 2073 } 2074 2075 clearFieldError(field); 2076 return true; 2077 } 2078 2079 function validatePrivacy(form) { 2080 const field = getField(form, '[name="privacy_consent"]'); 2081 if (!field) return true; 2082 2083 field.required = true; 2084 2085 if (!field.checked) { 2086 showPrivacyError(form, 'Please check this box to agree and continue.'); 2087 return false; 2088 } 2089 2090 clearPrivacyError(form); 2091 return true; 2092 } 2093 2094 function validateRecaptcha(form) { 2095 // Token creation and verification happen during the secure submission. 2096 return true; 2097 } 2098 2099 function validateForm(form) { 2100 clearRecaptchaError(form); 2101 2102 const results = [ 2103 validateFirstName(form), 2104 validateLastName(form), 2105 validateEmail(form), 2106 validatePhone(form), 2107 validateZip(form), 2108 validatePrivacy(form), 2109 validateRecaptcha(form) 2110 ]; 2111 2112 return results.every(Boolean); 2113 } 2114 2115 function focusFirstInvalid(form) { 2116 const firstInvalid = form.querySelector('.is-invalid') || 2117 form.querySelector('.recaptchaMessage[style*="block"]'); 2118 if (!firstInvalid) return; 2119 2120 const isCaptcha = firstInvalid.classList.contains('recaptchaMessage'); 2121 const target = isCaptcha 2122 ? form.querySelector('.g-recaptcha-widget, .g-recaptcha') || firstInvalid 2123 : firstInvalid; 2124 if (isCaptcha) target.setAttribute('tabindex', '-1'); 2125 target.style.scrollMarginTop = '100px'; 2126 2127 // Focus first so the mobile keyboard opens before positioning the field.
2128 if (typeof target.focus === 'function') target.focus({ preventScroll: true }); 2129 const reducedMotion = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches; 2130 if (target.scrollIntoView) { 2131 target.scrollIntoView({ behavior: reducedMotion ? 'auto' : 'smooth', block: 'center', inline: 'nearest' }); 2132 } 2133 } 2134 2135 function validateSingleField(form, field) { 2136 if (!field || !field.name) return; 2137 2138 switch (field.name) { 2139 case 'first_name': 2140 validateFirstName(form); 2141 break; 2142 2143 case 'last_name': 2144 validateLastName(form); 2145 break; 2146 2147 case 'email': 2148 validateEmail(form); 2149 break; 2150 2151 case 'phone': 2152 validatePhone(form); 2153 break; 2154 2155 case 'zip_code': 2156 validateZip(form); 2157 break; 2158 2159 case 'privacy_consent': 2160 validatePrivacy(form); 2161 break; 2162 } 2163 } 2164 2165 forms.forEach(function (form) { 2166 2167 const privacyCheckbox = form.querySelector('[name="privacy_consent"]'); 2168 2169 if (privacyCheckbox) { 2170 privacyCheckbox.checked = false; 2171 privacyCheckbox.defaultChecked = false; 2172 privacyCheckbox.required = true; 2173 privacyCheckbox.setAttribute('required', 'required'); 2174 2175 privacyCheckbox.addEventListener('change', function () { 2176 validatePrivacy(form); 2177 }); 2178 } 2179 2180 form.setAttribute('novalidate', 'novalidate'); 2181 form.noValidate = true; 2182 2183 form.querySelectorAll('input, textarea, select').forEach(function (field) { 2184 field.addEventListener('invalid', function (e) { 2185 e.preventDefault(); 2186 }); 2187 2188 field.addEventListener('input', function () { 2189 if (form.dataset.validationStarted === 'true') { 2190 validateSingleField(form, field); 2191 } 2192 }); 2193 2194 field.addEventListener('change', function () { 2195 if (form.dataset.validationStarted === 'true') { 2196 validateSingleField(form, field); 2197 } 2198 }); 2199 }); 2200 2201 form.addEventListener('submit', function (e) { 2202 const valid = validateForm(form); 2203 2204 if (!valid) { 2205 form.dataset.validationStarted = 'true'; 2206 2207 e.preventDefault(); 2208 e.stopImmediatePropagation(); 2209 focusFirstInvalid(form); 2210 } 2211 }, true); 2212 }); 2213 }); 2214</script>
2214 2215
2216<script> 2217 (function () { 2218 2219 2220 2221 window.recaptchaWidgets = window.recaptchaWidgets || {}; 2222 const recaptchaWidgets = window.recaptchaWidgets; 2223 2224 function getForms() { 2225 return Array.from(document.querySelectorAll('.le-lead-form')); 2226 } 2227 2228 function getFormKey(form, index) { 2229 if (form.id) return form.id; 2230 if (!form.dataset.formKey) { 2231 form.dataset.formKey = 'form_' + (index + 1); 2232 } 2233 return form.dataset.formKey; 2234 } 2235 2236 function findInForm(form, selectors) { 2237 const parts = selectors.split(',').map(s => s.trim()).filter(Boolean); 2238 for (const selector of parts) { 2239 const el = form.querySelector(selector); 2240 if (el) return el; 2241 } 2242 return null; 2243 } 2244 2245 function captureGCLID() { 2246 const urlParams = new URLSearchParams(window.location.search); 2247 const gclid = urlParams.get('gclid'); 2248 2249 if (gclid) { 2250 sessionStorage.setItem('gclid', gclid); 2251 console.log('GCLID captured:', gclid); 2252 return gclid; 2253 } 2254 2255 const storedGclid = sessionStorage.getItem('gclid'); 2256 if (storedGclid) { 2257 console.log('GCLID retrieved from session:', storedGclid); 2258 return storedGclid; 2259 } 2260 2261 return null; 2262 } 2263 2264 function populateGCLIDForForm(form) { 2265 const gclid = captureGCLID(); 2266 const gclidField = findInForm(form, '.gclidField, #gclidField, input[name="ext_lead_ref"]'); 2267 2268 if (gclid && gclidField) { 2269 gclidField.value = 'GCLID:' + gclid; 2270 } 2271 } 2272 2273 function formatUSPhone(digits) { 2274 const d = digits.slice(0, 10); 2275 if (d.length === 0) return ''; 2276 if (d.length <= 3) return `(${d}`; 2277 if (d.length <= 6) return `(${d.slice(0, 3)}) ${d.slice(3)}`; 2278 return `(${d.slice(0, 3)}) ${d.slice(3, 6)}-${d.slice(6)}`; 2279 } 2280 2281 function onlyDigits(value) { 2282 return (value || '').replace(/\D/g, '').slice(0, 10); 2283 } 2284 2285 function setCursorToEnd(el) { 2286 const len = el.value.length; 2287 try { 2288 el.setSelectionRange(len, len); 2289 } catch (e) { } 2290 } 2291 2292 function hidePrivacyWarning(privacyWarning) { 2293 if (privacyWarning) privacyWarning.classList.add('d-none'); 2294 } 2295 2296 function clearRecaptchaMessage(recaptchaMessage) { 2297 if (!recaptchaMessage) return; 2298 recaptchaMessage.style.display = 'none'; 2299 recaptchaMessage.textContent = ''; 2300 } 2301 2302 function clearFormMessage(formMessage) { 2303 if (!formMessage) return; 2304 formMessage.style.display = 'none'; 2305 formMessage.textContent = ''; 2306 } 2307 2308 function showFormError(formMessage, msg) { 2309 if (!formMessage) return; 2310 formMessage.style.display = 'block'; 2311 formMessage.style.color = 'red'; 2312 formMessage.textContent = msg; 2313 } 2314 2315 //function collectUTMFields() { 2316 // const urlParams = new URLSearchParams(window.location.search); 2317 // const utmFields = {}; 2318 2319 // ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content'].forEach(param => { 2320 // const val = urlParams.get(param); 2321 // if (val) utmFields[param] = val; 2322 // }); 2323 2324 // return utmFields; 2325 //} 2326 2327 const ATTRIBUTION_STORAGE_KEY = 'crm_lead_source_medium_v1'; 2328 2329 initLeadSourceMedium(); 2330 2331 function initLeadSourceMedium() { 2332 const urlParams = new URLSearchParams(window.location.search); 2333 const currentHost = cleanHost(window.location.hostname); 2334 2335 // 1. If URL has source/medium, store only source + medium 2336 // Example: Google Ads UTM
2337 if (urlParams.get('utm_source') || urlParams.get('utm_medium')) { 2338 saveLeadSourceMedium({ 2339 source: urlParams.get('utm_source') || 'unknown', 2340 medium: urlParams.get('utm_medium') || 'none', 2341 term: urlParams.get('utm_term') || '', 2342 content: urlParams.get('utm_content') || '' 2343 }); 2344 2345 return; 2346 } 2347 2348 // 2. Do not overwrite already stored source/medium 2349 if (getStoredLeadSourceMedium()) return; 2350 2351 // 3. Google Ads without UTM, only auto-tagging 2352 if ( 2353 urlParams.get('gclid') || 2354 urlParams.get('gbraid') || 2355 urlParams.get('wbraid') 2356 ) { 2357 saveLeadSourceMedium({ 2358 source: 'google', 2359 medium: 'cpc', 2360 term: '', 2361 content: '' 2362 }); 2363 2364 return; 2365 } 2366 2367 // 4. Microsoft Ads without UTM 2368 if (urlParams.get('msclkid')) { 2369 saveLeadSourceMedium({ 2370 source: 'bing', 2371 medium: 'cpc', 2372 term: '', 2373 content: '' 2374 }); 2375 2376 return; 2377 } 2378 2379 // 5. Facebook / Instagram click without UTM 2380 if (urlParams.get('fbclid')) { 2381 saveLeadSourceMedium({ 2382 source: 'facebook', 2383 medium: 'paid-social', 2384 term: '', 2385 content: '' 2386 }); 2387 2388 return; 2389 } 2390 2391 // 6. Organic / social / referral / direct fallback 2392 saveLeadSourceMedium(detectLeadSourceMedium(currentHost)); 2393 } 2394 2395 function collectUTMFields() { 2396 const data = getStoredLeadSourceMedium(); 2397 2398 if (!data) return {}; 2399 2400 const urlParams = new URLSearchParams(window.location.search); 2401 2402 const utmFields = { 2403 utm_source: data.source, 2404 utm_medium: data.medium, 2405 2406 // Campaign is always the form-submit page slug, 2407 // unless a real URL utm_campaign exists. 2408 utm_campaign: urlParams.get('utm_campaign') || getPageSlug() 2409 }; 2410 2411 if (data.term) utmFields.utm_term = data.term; 2412 if (data.content) utmFields.utm_content = data.content; 2413 2414 return utmFields; 2415 } 2416 2417 function detectLeadSourceMedium(currentHost) { 2418 let source = 'direct'; 2419 let medium = 'none'; 2420 2421 const ref = document.referrer || ''; 2422 2423 if (ref) { 2424 try { 2425 const refHost = cleanHost(new URL(ref).hostname); 2426 2427 // Ignore same website/internal referrer 2428 if (refHost !== currentHost && !refHost.endsWith('.' + currentHost)) { 2429 if (/google\./i.test(refHost)) { 2430 source = 'google'; 2431 medium = 'organic'; 2432 } else if (/bing\./i.test(refHost)) { 2433 source = 'bing'; 2434 medium = 'organic'; 2435 } else if (/yahoo\./i.test(refHost)) { 2436 source = 'yahoo'; 2437 medium = 'organic'; 2438 } else if (/duckduckgo\./i.test(refHost)) { 2439 source = 'duckduckgo'; 2440 medium = 'organic'; 2441 } else if (/facebook\./i.test(refHost)) { 2442 source = 'facebook'; 2443 medium = 'social'; 2444 } else if (/instagram\./i.test(refHost)) { 2445 source = 'instagram'; 2446 medium = 'social'; 2447 } else { 2448 source = refHost; 2449 medium = 'referral'; 2450 } 2451 } 2452 } catch (e) { } 2453 } 2454 2455 return { 2456 source: source, 2457 medium: medium, 2458 term: '', 2459 content: '' 2460 }; 2461 } 2462 2463 function saveLeadSourceMedium(data) { 2464 try { 2465 sessionStorage.setItem(ATTRIBUTION_STORAGE_KEY, JSON.stringify(data)); 2466 } catch (e) { } 2467 } 2468 2469 function getStoredLeadSourceMedium() { 2470 try { 2471 const stored = sessionStorage.getItem(ATTRIBUTION_STORAGE_KEY); 2472 return stored ? JSON.parse(stored) : null; 2473 } catch (e) { 2474 return null; 2475 } 2476 } 2477 2478 function getPageSlug() { 2479 const path = window.location.pathname.replace(/^\/|\/$/g, ''); 2480 return path ? path.replace(/\//g, '-') : 'home'; 2481 } 2482 2483 function cleanHost(host) { 2484 return (host || '').replace(/^www\./, '').toLowerCase(); 2485 } 2486 2487 2488 function resetFormAndState(form, widgetId) { 2489 form.reset(); 2490 2491 if (typeof grecaptcha !== 'undefined' && widgetId !== undefined) { 2492 try { 2493 grecaptcha.reset(widgetId); 2494 } catch (e) { } 2495 } 2496 2497 populateGCLIDForForm(form); 2498 2499 const privacyWarning = findInForm(form, '#privacyWarning, .privacyWarning'); 2500 const recaptchaMessage = findInForm(form, '#recaptchaMessage, .recaptchaMessage'); 2501 const formMessage = findInForm(form, '#formMessage, .formMessage'); 2502 2503 hidePrivacyWarning(privacyWarning); 2504 clearRecaptchaMessage(recaptchaMessage); 2505 clearFormMessage(formMessage); 2506 } 2507 2508 2509 2510 document.addEventListener('DOMContentLoaded', function () { 2511 const forms = getForms();
2512 if (!forms.length) return; 2513 2514 forms.forEach((form, index) => { 2515 getFormKey(form, index); 2516 populateGCLIDForForm(form); 2517 2518 const phoneInput = findInForm(form, 'input[name="phone"], #phone'); 2519 const privacyWarning = findInForm(form, '#privacyWarning, .privacyWarning'); 2520 const recaptchaMessage = findInForm(form, '#recaptchaMessage, .recaptchaMessage'); 2521 const submitBtn = findInForm(form, '#submitBtn, .submit-btn, button[type="submit"]'); 2522 const formMessage = findInForm(form, '#formMessage, .formMessage'); 2523 2524 if (phoneInput) { 2525 phoneInput.addEventListener('input', function () { 2526 const digits = onlyDigits(phoneInput.value); 2527 phoneInput.value = formatUSPhone(digits); 2528 setCursorToEnd(phoneInput); 2529 }); 2530 2531 phoneInput.addEventListener('keydown', function (e) { 2532 const allowed = [ 2533 'Backspace', 'Delete', 'ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 2534 'Tab', 'Home', 'End' 2535 ]; 2536 2537 if (allowed.includes(e.key) || e.ctrlKey || e.metaKey) return; 2538 if (/^\d$/.test(e.key)) return; 2539 2540 e.preventDefault(); 2541 }); 2542 } 2543 2544 form.addEventListener('submit', async function (e) { 2545 if (form.dataset.leadBusy === 'true') { e.preventDefault(); return; } 2546 e.preventDefault(); 2547 2548 hidePrivacyWarning(privacyWarning); 2549 clearRecaptchaMessage(recaptchaMessage); 2550 clearFormMessage(formMessage); 2551 2552 const originalBtnHTML = submitBtn ? submitBtn.innerHTML : ''; 2553 if (submitBtn) { 2554 submitBtn.disabled = true; 2555 submitBtn.textContent = 'Submitting...'; 2556 } 2557 2558 const firstNameEl = findInForm(form, '[name="first_name"], #firstName'); 2559 const lastNameEl = findInForm(form, '[name="last_name"], #lastName'); 2560 const emailEl = findInForm(form, '[name="email"], #email'); 2561 const phoneEl = findInForm(form, '[name="phone"], #phone'); 2562 const zipEl = findInForm(form, '[name="zip_code"], #zipCode'); 2563 const notesEl = findInForm(form, '[name="notes"], #notes'); 2564 const privacyConsentEl = findInForm(form, '[name="privacy_consent"], #privacyConsent'); 2565 const gclidFieldEl = findInForm(form, '.gclidField, #gclidField, input[name="ext_lead_ref"]'); 2566 const offerEl = findInForm(form, '[name="offer"]'); 2567 2568 const formData = { 2569 first_name: firstNameEl ? firstNameEl.value : '', 2570 last_name: lastNameEl ? lastNameEl.value : '', 2571 email: emailEl ? emailEl.value : '', 2572 phone: phoneEl ? phoneEl.value : '', 2573 zip: zipEl ? zipEl.value : '', 2574 notes: notesEl ? notesEl.value : '', 2575 sms_consent: privacyConsentEl ? privacyConsentEl.checked : false, 2576 email_consent: privacyConsentEl ? privacyConsentEl.checked : false, 2577 ...collectUTMFields(), 2578 ...(offerEl && offerEl.value ? { offer: offerEl.value } : {}) 2579 }; 2580 2581 const gclidValue = gclidFieldEl ? gclidFieldEl.value : ''; 2582 if (gclidValue) { 2583 formData.notes = (formData.notes ? formData.notes + ' | ' : '') + gclidValue; 2584 } 2585 2586 const formKey = form.id || form.dataset.formKey; 2587 const widgetId = recaptchaWidgets[formKey]; 2588 2589 2590 try { 2591 const response = await window.LeadCaptcha.send(form, { 2592 method: 'POST', 2593 headers: { 2594 'Content-Type': 'application/json' 2595 }, 2596 body: JSON.stringify(formData) 2597 }); 2598 2599 const rawText = await response.text(); 2600 let result = {}; 2601 2602 try { 2603 result = rawText ? JSON.parse(rawText) : {}; 2604 } catch (parseError) { 2605 result = { message: rawText || 'Submission failed' }; 2606 } 2607 2608 if (response.ok) { 2609 if (result.accepted && result.financing_url) { 2610 const firstName = firstNameEl ? firstNameEl.value : ''; 2611 2612 const thankYouLabel = document.getElementById('thankYouModalLabel'); 2613 if (thankYouLabel) { 2614 thankYouLabel.textContent = firstName ? `Thank y
2614ou, ${firstName}!` : 'Thank you!'; 2615 } 2616 2617 const thankYouModalEl = document.getElementById('thankYouModal'); 2618 const progressBar = document.getElementById('progressBar'); 2619 const freeConsultModalEl = document.getElementById('free-consult-form'); 2620 2621 const showThankYou = function () { 2622 const successHTML = ` 2623 <div style="background: #d4edda; border: 1px solid #c3e6cb; padding: 25px; border-radius: 12px; text-align: center;"> 2624 <a href="${result.financing_url}" target="_blank" 2625 style="color: #155724; font-weight: bold; text-decoration: underline; font-size: 16px;"> 2626 → Click here if the page didn't open 2627 </a> 2628 </div> 2629 `; 2630 2631 const formMessageBox = form.querySelector('.formMessage, #formMessage'); 2632 2633 if (formMessageBox) { 2634 formMessageBox.style.display = 'block'; 2635 formMessageBox.innerHTML = successHTML; 2636 } 2637 2638 if (thankYouModalEl && progressBar && window.jQuery && $.fn.modal) { 2639 progressBar.style.transition = 'none'; 2640 progressBar.style.width = '0%'; 2641 2642 $(thankYouModalEl).one('shown.bs.modal', function () { 2643 progressBar.offsetWidth; 2644 progressBar.style.transition = 'width 3s linear'; 2645 progressBar.style.width = '100%'; 2646 2647 setTimeout(function () { 2648 window.location.href = result.financing_url; 2649 }, 3000); 2650 }); 2651 2652 $(thankYouModalEl).modal('show'); 2653 } else { 2654 setTimeout(function () { 2655 window.location.href = result.financing_url; 2656 }, 3000); 2657 } 2658 }; 2659 2660 2661 2662 if (freeConsultModalEl && $(freeConsultModalEl).hasClass('in')) { 2663 $(freeConsultModalEl).one('hidden.bs.modal', function () { 2664 showThankYou(); 2665 2666 form.reset(); 2667 2668 if (typeof grecaptcha !== 'undefined' && widgetId !== undefined) { 2669 try { 2670 grecaptcha.reset(widgetId); 2671 } catch (e) { } 2672 } 2673 2674 populateGCLIDForForm(form); 2675 }); 2676 2677 $(freeConsultModalEl).modal('hide'); 2678 } else { 2679 showThankYou(); 2680 2681 form.reset(); 2682 2683 if (typeof grecaptcha !== 'undefined' && widgetId !== undefined) { 2684 try { 2685 grecaptcha.reset(widgetId); 2686 } catch (e) { } 2687 } 2688 2689 populateGCLIDForForm(form); 2690 } 2691 2692 return; 2693 } else { 2694 if (result.dedup) {
2695 alert('Thank you! We already have your information and will contact you shortly.'); 2696 } else { 2697 alert('Thank you! We will contact you shortly.'); 2698 } 2699 2700 resetFormAndState(form, widgetId); 2701 } 2702 } else { 2703 throw new Error(result.message || 'Submission failed'); 2704 } 2705 } catch (error) { 2706 console.error('Error:', error); 2707 if (!error.leadMessageShown) showFormError(formMessage, error.message); 2708 } finally { 2709 if (submitBtn) { 2710 submitBtn.disabled = false; 2711 submitBtn.innerHTML = originalBtnHTML || 'Get my consultation'; 2712 } 2713 } 2714 }); 2715 }); 2716 }); 2717 })(); 2718</script>
2718 2719 2720 2721<link rel="stylesheet" href="/Content/appointment-form.css?v=20261007-professional-form-v3" /> 2722<style> 2723 /* Keep the badge above the left accessibility control and clear of the chat window. */ 2724 body > .g-recaptcha-widget .grecaptcha-badge, 2725 body > .g-recaptcha .grecaptcha-badge { 2726 bottom: 180px !important; 2727 bottom: calc(180px + env(safe-area-inset-bottom, 0px)) !important; 2728 } 2729 /* One aligned row for each optional communication preference. */ 2730 form.lead-form .lead-consent-option { 2731 display: grid !important; 2732 grid-template-columns: 18px minmax(0, 1fr); 2733 align-items: start; 2734 gap: 10px; 2735 padding: 10px 12px !important; 2736 margin: 0 0 10px !important; 2737 border-radius: 5px; 2738 text-align: left; 2739 } 2740 form.lead-form .lead-consent-option input[type="checkbox"] { 2741 position: static !important; 2742 float: none !important; 2743 width: 16px !important; 2744 height: 16px !important; 2745 min-width: 16px; 2746 margin: 3px 0 0 !important; 2747 padding: 0 !important; 2748 transform: none !important; 2749 cursor: pointer; 2750 accent-color: #007fa9; 2751 } 2752 form.lead-form .lead-consent-option label { 2753 display: block !important; 2754 min-width: 0; 2755 width: auto !important; 2756 padding: 0 !important; 2757 margin: 0 !important; 2758 background: transparent !important; 2759 color: #414141 !important; 2760 font-size: 14px !important; 2761 font-weight: 400 !important; 2762 line-height: 1.5 !important; 2763 white-space: normal !important; 2764 overflow-wrap: break-word; 2765 cursor: pointer; 2766 } 2767 2768 /* Align the combined consent checkbox with its wrapping agreement text. */ 2769 form.lead-form .privacyConsent > label.form-check-label:has(input[type="checkbox"]) { 2770 display: grid !important; 2771 grid-template-columns: 18px minmax(0, 1fr); 2772 align-items: start; 2773 gap: 8px; 2774 padding: 0 !important; 2775 margin: 0 !important; 2776 width: 100% !important; 2777 background: transparent !important; 2778 text-align: left; 2779 white-space: normal; 2780 font-size: 13px !important; 2781 font-weight: 400 !important; 2782 line-height: 1.5 !important; 2783 } 2784 form.lead-form .privacyConsent > label.form-check-label > span { min-width: 0; } 2785 form.lead-form .privacyConsent input[type="checkbox"] { 2786 position: static !important; 2787 float: none !important; 2788 width: 16px !important; 2789 height: 16px !important; 2790 margin: 2px 0 0 !important; 2791 padding: 0 !important; 2792 transform: none !important; 2793 accent-color: #007fa9; 2794 } 2795 2796 /* Landing forms have the checkbox beside (not inside) the label. */ 2797 form.lead-form .privacyConsent:has(> input[type="checkbox"]) { 2798 display: grid; 2799 grid-template-columns: 18px minmax(0, 1fr); 2800 align-items: start; 2801 gap: 8px; 2802 padding-left: 0; 2803 text-align: left; 2804 } 2805 form.lead-form .privacyConsent > input[type="checkbox"] + label.form-check-label { 2806 display: block !important; 2807 min-width: 0; 2808 width: auto !important; 2809 margin: 0 !important; 2810 padding: 0 !important; 2811 font-size: 14px !important; 2812 line-height: 1.5 !important; 2813 font-weight: 400 !important; 2814 white-space: normal; 2815 } 2816 form.lead-form .privacyConsent > .privacyWarning { 2817 grid-column: 1 / -1; 2818 } 2819 2820 /* Offer banner: all three consent rows share the field's left edge. */ 2821 #main-slider.ig-offer-banner form.lead-form .lead-consent-option { 2822 grid-template-columns: 16px minmax(0, 1fr); 2823 gap: 10px; 2824 padding: 6px 0 !important; 2825 margin: 0 0 6px !important; 2826 } 2827 #main-slider.ig-offer-banner form.lead-form .privacyConsent { 2828 padding: 6px 0 0 !important; 2829 margin: 0 0 12px !important; 2830 } 2831 #main-slider.ig-offer-banner form.lead-form .privacyConsent > label.form-check-label:has(input[type="checkbox"]) { 2832 grid-template-columns: 16px minmax(0, 1fr); 2833 gap: 10px; 2834 font-size: 14px !important; 2835 } 2836 #main-slider.ig-offer-banner form.lead-form .privacyConsent > label.form-check-label > span { 2837 padding: 0 !important; 2838 margin: 0 !important; 2839 font-size: inherit !important; 2840 line-height: inherit !important; 2841 color: #173c4e !important; 2842 } 2843 #main-slider.ig-offer-banner form.lead-form .lead-consent-option label { 2844 color: #173c4e !important; 2845 } 2846 #main-slider.ig-offer-banner form.lead-form .privacyConsent input[type="checkbox"], 2847 #main-slider.ig-offer-banner form.lead-form .lead-consent-option input[type="checkbox"] { 2848 margin: 3px 0 0 !important; 2849 border-radius: 3px !important; 2850 } 2851</style> 2852<div id="lead-security-config" hidden data-site-key="6Lc2HdctAAAAAHg2KHkMnFkABWE71P5SYExMu6pT" data-endpoint="/lead-submit"> 2853 <input name="__RequestVerificationToken" type="hidden" value="Vmfu4Tupq6WW7Dqovyaj4lrlK79GRmkAY5b1Z
2853DemM6TdsbnxlAH9w-dwAR-N6ytbgHHHrf4-rq9oI8At99-mYj3ikl6an0SUoX0KNY1lWRE1" /> 2854</div>
2855<script src="/Scripts/lead-captcha.js?v=20261006-call-consent-approved-v1"></script>
vendor: 129 bytes, lines 2855-2859
2855 2856<script src="https://www.google.com/recaptcha/api.js?onload=initLeadCaptcha&render=explicit" async defer></script> 2857 2858 2859
2859<!-- Scripts for PE --> 2860
2860<script src="https://www.americandentalwebsites.com/pe/pe_web/js/ads-pe-plyr-3.5.6.js"></script>
2860 2861
2861<script src="https://www.americandentalwebsites.com/pe/pe_web/js/ads-pe.js"></script>
2861 2862
2862<script src="https://www.americandentalwebsites.com/pe/pe_web/js/lazysizes.min.js"></script>
2862 2863 2864 2865 <!--covid video--> 2866
2866<script> 2867 $(window).on('load', function () { 2868 $('#video-pop-up').on('shown.bs.modal', function () { 2869 var html5Video = document.getElementById("htmlVideo"); 2870 if (html5Video != null) { 2871 html5Video.src = "../video/Covid-19-Safety-Edited-Voice.mp4"; 2872 html5Video.play(); 2873 html5Video.currentTime = 0; 2874 2875 } 2876 }); 2877 $('#video-pop-up').on('hidden.bs.modal', function () { 2878 var html5Video = document.getElementById("htmlVideo"); 2879 if (html5Video != null) { 2880 html5Video.pause(); 2881 html5Video.currentTime = 0; 2882 } 2883 }); 2884 }); 2885 </script>
2885 2886 2887 2888
2888<script type='application/ld+json'> 2889 { 2890 "@context": "https://schema.org", 2891 "@type": "Organization", 2892 "url": "https://www.implantsguru.dentist/", 2893 "logo": "https://www.implantsguru.dentist/img/logo.png", 2894 "contactPoint": [{ 2895 "@type": "ContactPoint", 2896 "telephone": "+1 760-456-7699", 2897 "contactType": "Reservations"}] 2898 } 2899 </script>
2899 2900 2901
2901<script type='application/ld+json'> 2902 { 2903 "@context": "http://www.schema.org", 2904 "@type": "Dentist", 2905 "name": "Implants Guru - Keerthi Senthil DDS, MS", 2906 "url": "https://www.implantsguru.dentist/", 2907 "logo": "https://www.implantsguru.dentist/img/logo.png", 2908 "image": "https://www.implantsguru.dentist/img/about-us/Dr-Keerthi-Senthil.png", 2909 "description": "Dentist Rancho Mirage Dr. Senthil is Implant Dentist in Rancho Mirage offering Dental Implants Our office is 2 - 5 Mins away from Palm Desert and Cathedral City", 2910 "telephone": "+1 760-456-7699", 2911 "potentialAction": { 2912 "@type": "ReserveAction", 2913 "target": { 2914 "@type": "EntryPoint", 2915 "urlTemplate": "https://www.implantsguru.dentist/contact", 2916 "inLanguage": "en-US", 2917 "actionPlatform": [ 2918 "http://schema.org/DesktopWebPlatform", 2919 "http://schema.org/IOSPlatform", 2920 "http://schema.org/AndroidPlatform"]}, 2921 "result": { 2922 "@type": "Reservation", 2923 "name": "Make an Appointment"} 2924 }, 2925 "isAcceptingNewPatients":"true", 2926 "areaServed": { 2927 "@type": "State", 2928 "name": "California"}, 2929 "address": { 2930 "@type": "PostalAddress", 2931 "streetAddress": "72027 Desert Drive", 2932 "addressLocality": "Rancho Mirage", 2933 "addressRegion": "CA", 2934 "postalCode": "92270", 2935 "addressCountry": "USA", 2936 "telephone": "+1 760-456-7699"}, 2937 "sameAs": [ 2938 "https://www.facebook.com/Implants.Guru.Keerthi.Senthil.DDS.MS/", 2939 "https://twitter.com/ImplantsGuru", 2940 "https://www.youtube.com/channel/UCmC6YM3a3V4rrnz5VACiloA", 2941 "https://www.linkedin.com/company/implants-guru", 2942 "https://in.pinterest.com/implantsguru/"], 2943 "geo": { 2944 "@type": "GeoCoordinates", 2945 "latitude": "33.734102", 2946 "longitude": "-116.4098217,17" 2947 }, 2948 "priceRange": "Varies with Dental Treatment Requirements.", 2949 "hasMap": "https://www.google.com/maps/search/Implants+Guru++Keerthi+Senthil+DDS,+MS+72027+Desert+Drive+Rancho+Mirage+California+92270+USA/@33.734102,-116.4098217,17z", 2950 "openingHoursSpecification": [ 2951 { 2952 "@type": "OpeningHoursSpecification", 2953 "dayOfWeek": ["Monday", "Wednesday"], 2954 "opens": "08:30", 2955 "closes": "17:00" 2956 }, 2957 { 2958 "@type": "OpeningHoursSpecification", 2959 "dayOfWeek": ["Tuesday", "Thursday", "Friday", "Saturday", "Sunday"], 2960 "opens": "00:00", 2961 "closes": "00:00" 2962 }], 2963 "contactPoint": { 2964 "@type": "ContactPoint", 2965 "contactType": "reservations", 2966 "telephone": "+1 760-456-7699"}, 2967 "aggregateRating": { 2968 "@type": "AggregateRating", 2969 "ratingCount": 39, 2970 "ratingValue": 4.9} 2971 } 2972 </script>
2972 2973 2974 <!-- Google Tag Manager --> 2975
2975<script>
vendor: 495 bytes, lines 2975-2983
2975 2976 (function (w, d, s, l, i) { 2977 w[l] = w[l] || []; w[l].push({ 2978 'gtm.start': 2979 new Date().getTime(), event: 'gtm.js' 2980 }); var f = d.getElementsByTagName(s)[0], 2981 j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 2982 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); 2983 })(window, document, 'script', 'dataLayer', '
2983GTM-P2PJM8S
vendor: 3 bytes, line 2983
2983');
2983</script>
2983 2984 <!-- End Google Tag Manager --> 2985 <!-- Google Tag Manager (noscript) -->
vendor: 83 bytes, lines 2985-2987
2985 2986 <noscript> 2987 <iframe src="https://www.googletagmanager.com/ns.html?id=
2987GTM-P2PJM8S
vendor: 111 bytes, lines 2987-2990
2987" 2988 height="0" width="0" style="display:none;visibility:hidden"></iframe> 2989 </noscript> 2990
2990<!-- End Google Tag Manager (noscript) --> 2991 2992</body> 2993</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.