Schedule
Recall/Hygiene
Appointment

Dentist Near Oakridge

Need an expert dentist near Oakridge with a heart of gold and innovative treatment methods? At our easily accessible dental clinic, we are honored to be able to provide Oakridge and other local communities with our services. We do everything in our power to make your dental health visit as comfortable and stress-free as possible.

Your Trusted Oakridge Dentist for Personalized Dental Care

Your dental concerns are one-of-a-kind, and so should your treatment. Our staff at City Square Dental Center takes the time to learn about your needs and desires before developing a tailored treatment plan. No matter if you’re just due for a routine checkup or thinking about brightening your smile with a cosmetic touch-up, we’re here to make sure you get the kind of care that feels right for you, personal, comfortable, and thoughtfully tailored.

We’re not your average Oakridge dentist, we want to be your oral health partner for the long term.

dentist near oakridge at city square dental center

Complete Dental Services for All Ages

We offer a wide range of dental services to meet the needs of patients at every stage of life. Some of our top services are:

  • Preventive Dentistry – Check-ups, cleanings, digital x-rays, fluoride treatment
  • Restorative Treatment – Tooth fillings, crowns, bridges, and root canals
  • Cosmetic Dentistry – Revamp your smile with teeth whitening, veneers, or a complete makeover.
  • Dental Implants – Replacing missing teeth with cutting-edge implant dentistry
  • Emergency Dentistry – Same-day appointment for intense pain, swelling, or trauma
  • Orthodontics – Invisalign and metal braces for children, teenagers, and adults

Why Our Patients Around Oakridge Choose Us?

Finding the right Oakridge dentist can feel overwhelming, but we’re here to take the stress out of it and make your experience simple, reassuring, and genuinely welcoming. We’re renowned for:

  • A friendly, welcoming family environment
  • Flexible appointment scheduling and reminder phone calls
  • The latest technology for more accurate diagnoses
  • Straightforward, honest communication and advanced cost estimates
  • A gentle, caring approach to put you at ease when dealing with dental anxiety

If you’ve been searching for a dentist near Oakridge who treats you like family, you’ve come to the right place. – City Square Dental Center.

Your Smile Deserves VIP Treatment – Let’s Get Started With Us In Oakridge Today!

Perhaps you’re overdue for an annual checkup, a cosmetic treatment inquiry, or a sudden, unplanned dental crisis; we’ll have your back. City Square Dental Center is equipped with training and technology to simplify the process as much and as tailored as possible for any of our patients. Begin your journey toward a healthier, whiter smile today.

📍Find us easily on Google Map.

tag on yout theme's header.php Read the detailed step-by-step at https://humbertosilva.com/visual-composer-infinite-image-carousel/ */ // auxiliary code to create triggers for the add and remove class for later use (function($){ $.each(["addClass","removeClass"],function(i,methodname){ var oldmethod = $.fn[methodname]; $.fn[methodname] = function(){ oldmethod.apply( this, arguments ); this.trigger(methodname+"change"); return this; } }); })(jQuery); // main function for the infinite loop function vc_custominfiniteloop_init(vc_cil_element_id){ var vc_element = '#' + vc_cil_element_id; // because we're using this more than once let's create a variable for it window.maxItens = jQuery(vc_element).data('per-view'); // max visible items defined window.addedItens = 0; // auxiliary counter for added itens to the end // go to slides and duplicate them to the end to fill space jQuery(vc_element).find('.vc_carousel-slideline-inner').find('.vc_item').each(function(){ // we only need to duplicate the first visible images if (window.addedItens < window.maxItens) { if (window.addedItens == 0 ) { // the fisrt added slide will need a trigger so we know it ended and make it "restart" without animation jQuery(this).clone().addClass('vc_custominfiniteloop_restart').removeClass('vc_active').appendTo(jQuery(this).parent()); } else { jQuery(this).clone().removeClass('vc_active').appendTo(jQuery(this).parent()); } window.addedItens++; } }); // add the trigger so we know when to "restart" the animation without the user knowing about it jQuery('.vc_custominfiniteloop_restart').bind('addClasschange', null, function(){ // navigate to the carousel element , I know, its ugly ... var vc_carousel = jQuery(this).parent().parent().parent().parent(); // first we temporarily change the animation speed to zero jQuery(vc_carousel).data('vc.carousel').transition_speed = 0; // make the slider go to the first slide without animation and because the fist set of images shown // are the same that are being shown now the slider is now "restarted" without that being visible jQuery(vc_carousel).data('vc.carousel').to(0); // allow the carousel to go to the first image and restore the original speed setTimeout("vc_cil_restore_transition_speed('"+jQuery(vc_carousel).prop('id')+"')",100); }); } // restore original speed setting of vc_carousel function vc_cil_restore_transition_speed(element_id){ // after inspecting the original source code the value of 600 is defined there so we put back the original here jQuery('#' + element_id).data('vc.carousel').transition_speed = 600; } // init jQuery(document).ready(function(){ // find all vc_carousel with the defined class and turn them into infine loop jQuery('.vc_custominfiniteloop').find('div[data-ride="vc_carousel"]').each(function(){ // allow time for the slider to be built on the page // because the slider is "long" we can wait a bit before adding images and events needed var vc_cil_element = jQuery(this).prop("id"); setTimeout("vc_custominfiniteloop_init('"+vc_cil_element+"')",2000); }); }); });