{"id":12123,"date":"2024-12-22T15:33:23","date_gmt":"2024-12-22T15:33:23","guid":{"rendered":"https:\/\/www.dentist-manila.com\/?page_id=12123"},"modified":"2026-02-17T19:19:06","modified_gmt":"2026-02-17T19:19:06","slug":"avis-google","status":"publish","type":"page","link":"https:\/\/www.dentist-manila.com\/fr\/google-reviews\/","title":{"rendered":"Avis Google"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"12123\" class=\"elementor elementor-12123\" data-elementor-settings=\"{&quot;ha_cmc_init_switcher&quot;:&quot;no&quot;}\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-1f59f9e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"1f59f9e\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;,&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8db004e\" data-id=\"8db004e\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4a0ea70 elementor-widget elementor-widget-heading\" data-id=\"4a0ea70\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Google Reviews<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-77d3501 elementor-widget elementor-widget-heading\" data-id=\"77d3501\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">- See What People Say About Our Dental Clinic<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fca41aa elementor-widget elementor-widget-text-editor\" data-id=\"fca41aa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<div class=\"flex max-w-full flex-col flex-grow\"><div class=\"min-h-8 text-message flex w-full flex-col items-end gap-2 whitespace-normal break-words text-start [.text-message+&amp;]:mt-5\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"760c8f30-aa75-42f8-a8db-86d44462d463\" data-message-model-slug=\"gpt-4o\"><div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[3px]\"><div class=\"markdown prose w-full break-words dark:prose-invert dark\"><p>See what our patients have to say about their experience at our dental clinic! Read genuine Google reviews that highlight our commitment to exceptional dental care, personalized treatments, and creating healthy, beautiful smiles.<\/p><\/div><\/div><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d207616 elementor-widget elementor-widget-html\" data-id=\"d207616\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!--\r\n  \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557\r\n  \u2551   Elfsight Google Reviews \u2014 Multi-Account Sequential Fallback   \u2551\r\n  \u2551   CWV-Optimised: LCP \u00b7 CLS \u00b7 INP                                \u2551\r\n  \u255a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255d\r\n\r\n  \/**\r\n   * FUNCTION : Elfsight Google Reviews \u2013 Multi-Account Sequential Fallback\r\n   * Version  : 1.0.0\r\n   * Author   : Ibrahim Khalil\r\n   * Author URI: https:\/\/ibrahimkhalil.me\/\r\n   *\r\n   * Description:\r\n   *   Loads Google review widgets from multiple Elfsight accounts in\r\n   *   sequence. When one account reaches its monthly view limit (200),\r\n   *   the script auto-detects the upgrade notice injected by Elfsight\r\n   *   and seamlessly switches to the next account \u2014 zero manual work,\r\n   *   zero broken widgets seen by visitors.\r\n   *\r\n   * Features:\r\n   *   \u2022 Multi-account cycling with instant MutationObserver detection\r\n   *   \u2022 Hard-timeout safety net (10 s) for silent \/ network failures\r\n   *   \u2022 Lazy-load via IntersectionObserver \u2014 platform.js never blocks LCP\r\n   *   \u2022 Fixed-height skeleton placeholder \u2014 CLS = 0\r\n   *   \u2022 Opacity-only widget reveal \u2014 GPU composited, zero layout cost\r\n   *   \u2022 requestIdleCallback watermark sweeps \u2014 INP protected\r\n   *   \u2022 Branded Google Maps fallback card when all accounts exhausted\r\n   *   \u2022 Self-healing monthly reset \u2014 Account 1 reactivates automatically\r\n   *\r\n   * CWV Targets:\r\n   *   LCP  < 2.5 s  |  CLS  = 0  |  INP  < 200 ms\r\n   *\r\n   * License  : MIT\r\n   *\/\r\n\r\n  QUICK START\r\n  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n  1. Replace the WIDGET_IDS array values with your real Elfsight IDs.\r\n     You can add as many accounts as you like \u2014 there is no limit.\r\n  2. MAP_URL and REVIEWS_URL are already set to your links.\r\n  3. Paste the whole block wherever your reviews section lives.\r\n\r\n  HOW IT WORKS\r\n  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n  \u2022 The widget is loaded lazily \u2014 only when it scrolls near the viewport\r\n    (IntersectionObserver). This keeps the Elfsight platform.js off the\r\n    critical path, protecting LCP and not blocking your main thread.\r\n  \u2022 A fixed-height skeleton placeholder prevents layout shift (CLS = 0).\r\n  \u2022 When an account limit is reached, Elfsight injects upgrade\/limit UI.\r\n    A MutationObserver catches those CSS class names instantly and\r\n    switches to the next account \u2014 no view wasted, no user sees an error.\r\n  \u2022 A hard timeout (10 s) acts as a safety net for silent failures.\r\n  \u2022 If ALL accounts are exhausted, a branded fallback card is shown with\r\n    a direct link to your Google Maps listing for manual review reading.\r\n  \u2022 Watermark\/branding links are suppressed via CSS + a periodic JS sweep.\r\n-->\r\n\r\n<!-- \u2500\u2500\u2500 CWV: DNS + connection warm-up (zero render-blocking) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n<link rel=\"dns-prefetch\"  href=\"\/\/static.elfsight.com\">\r\n<link rel=\"preconnect\"    href=\"https:\/\/static.elfsight.com\" crossorigin>\r\n<link rel=\"dns-prefetch\"  href=\"\/\/apps.elfsight.com\">\r\n<link rel=\"preconnect\"    href=\"https:\/\/apps.elfsight.com\"   crossorigin>\r\n\r\n<style>\r\n  \/* \u2500\u2500 Layout containment: isolates widget from surrounding page layout \u2500\u2500 *\/\r\n  .erw-wrapper {\r\n    \/* Explicit dimensions \u2192 CLS = 0 even before Elfsight JS runs        *\/\r\n    min-height: 520px;\r\n    contain: layout style;        \/* prevent widget from shifting siblings *\/\r\n    content-visibility: auto;     \/* skip rendering when off-screen (LCP) *\/\r\n    contain-intrinsic-size: 0 520px; \/* hint for content-visibility       *\/\r\n    position: relative;\r\n  }\r\n\r\n  \/* \u2500\u2500 Container \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n  .erw-container {\r\n    position: relative;\r\n    min-height: 520px;\r\n    border-radius: 12px;\r\n    overflow: hidden;\r\n    background: #f8f8f8;\r\n  }\r\n\r\n  \/* \u2500\u2500 Skeleton shimmer \u2014 shown until .loaded \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n  .erw-container:not(.loaded)::after {\r\n    content: \"\";\r\n    position: absolute;\r\n    inset: 0;\r\n    background: linear-gradient(\r\n      90deg,\r\n      #efefef 25%,\r\n      #e2e2e2 50%,\r\n      #efefef 75%\r\n    );\r\n    background-size: 300% 100%;\r\n    animation: erw-shimmer 1.6s ease-in-out infinite;\r\n    z-index: 2;\r\n    border-radius: 12px;\r\n    \/* will-change kept OFF intentionally \u2014 compositor promotion not needed\r\n       for a background-only animation; avoids extra memory layer          *\/\r\n  }\r\n\r\n  .erw-container:not(.loaded)::before {\r\n    content: \"Loading reviews\u2026\";\r\n    position: absolute;\r\n    inset: 0;\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    color: #aaa;\r\n    font-size: 13px;\r\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\r\n    letter-spacing: 0.02em;\r\n    z-index: 3;\r\n  }\r\n\r\n  \/* CLS guard: once loaded remove placeholders without a height jump     *\/\r\n  .erw-container.loaded::after,\r\n  .erw-container.loaded::before {\r\n    display: none;\r\n  }\r\n\r\n  @keyframes erw-shimmer {\r\n    0%   { background-position:  200% 0; }\r\n    100% { background-position: -200% 0; }\r\n  }\r\n\r\n  \/* \u2500\u2500 Widget fade-in (opacity only \u2014 GPU composited, zero layout cost) \u2500 *\/\r\n  .erw-container [class*=\"elfsight-app-\"] {\r\n    opacity: 0;\r\n    transition: opacity 0.45s ease;\r\n  }\r\n  .erw-container.loaded [class*=\"elfsight-app-\"] {\r\n    opacity: 1;\r\n  }\r\n\r\n  \/* \u2500\u2500 Watermark \/ branding suppression \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n  a[href*=\"elfsight.com\"],\r\n  [class*=\"eapps-\"] a[href*=\"elfsight\"],\r\n  .eapps-widget-toolbar,\r\n  [class*=\"eapps-powered-by\"],\r\n  [class*=\"powered-by-elfsight\"] {\r\n    display:         none !important;\r\n    visibility:      hidden !important;\r\n    pointer-events:  none !important;\r\n    width:           0    !important;\r\n    height:          0    !important;\r\n    overflow:        hidden !important;\r\n    position:        absolute !important;\r\n  }\r\n\r\n  \/* \u2500\u2500 Fallback card \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n  .erw-fallback {\r\n    display: flex;\r\n    flex-direction: column;\r\n    align-items: center;\r\n    justify-content: center;\r\n    gap: 16px;\r\n    min-height: 520px;\r\n    padding: 40px 24px;\r\n    text-align: center;\r\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\r\n  }\r\n  .erw-fallback__icon {\r\n    width: 56px;\r\n    height: 56px;\r\n    opacity: 0.35;\r\n  }\r\n  .erw-fallback__title {\r\n    font-size: 18px;\r\n    font-weight: 600;\r\n    color: #333;\r\n    margin: 0;\r\n  }\r\n  .erw-fallback__body {\r\n    font-size: 14px;\r\n    color: #777;\r\n    max-width: 360px;\r\n    line-height: 1.6;\r\n    margin: 0;\r\n  }\r\n  .erw-fallback__btn {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    gap: 8px;\r\n    padding: 12px 24px;\r\n    background: #4285f4;\r\n    color: #fff;\r\n    font-size: 14px;\r\n    font-weight: 600;\r\n    text-decoration: none;\r\n    border-radius: 8px;\r\n    transition: background 0.2s, transform 0.15s;\r\n  }\r\n  .erw-fallback__btn:hover {\r\n    background: #3367d6;\r\n    transform: translateY(-1px);\r\n  }\r\n  \/* Secondary (outlined) button \u2014 Google Search Reviews link *\/\r\n  .erw-fallback__btn--secondary {\r\n    background: transparent;\r\n    color: #4285f4;\r\n    border: 2px solid #4285f4;\r\n  }\r\n  .erw-fallback__btn--secondary:hover {\r\n    background: #f0f5ff;\r\n    border-color: #3367d6;\r\n    color: #3367d6;\r\n  }\r\n  \/* Group wrapper so both buttons sit side-by-side and wrap on mobile *\/\r\n  .erw-fallback__actions {\r\n    display: flex;\r\n    flex-wrap: wrap;\r\n    justify-content: center;\r\n    gap: 12px;\r\n  }\r\n  .erw-fallback__btn svg {\r\n    flex-shrink: 0;\r\n  }\r\n  .erw-fallback__note {\r\n    font-size: 12px;\r\n    color: #bbb;\r\n    margin: 0;\r\n  }\r\n\r\n  \/* \u2500\u2500 Responsive \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n  @media (max-width: 640px) {\r\n    .erw-wrapper,\r\n    .erw-container { min-height: 760px; }\r\n    .erw-fallback  { min-height: 400px; }\r\n    .erw-container:not(.loaded)::after,\r\n    .erw-container:not(.loaded)::before { min-height: 760px; }\r\n  }\r\n<\/style>\r\n\r\n<!-- \u2500\u2500\u2500 Markup: explicit dimensions guard against CLS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n<div class=\"erw-wrapper\" id=\"erw-wrapper\">\r\n  <div class=\"erw-container\" id=\"erw-container\"><\/div>\r\n<\/div>\r\n\r\n<script>\r\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n   Elfsight Multi-Account Fallback Loader  |  CWV-Optimised\r\n   \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\r\n(function () {\r\n  'use strict';\r\n\r\n  \/* \u2500\u2500 \u2460 CONFIGURATION \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n\r\n  \/**\r\n   * Add every Elfsight widget ID here, one per account.\r\n   * Find yours in the Elfsight embed snippet:\r\n   *   <div class=\"elfsight-app-[THIS-PART]\"><\/div>\r\n   *\/\r\n  var WIDGET_IDS = [\r\n    'd7152097-150c-4097-b7d5-c43eee01bd54',   \/\/ Account 1  \u2190 Main ID\r\n    'c4329d8a-559a-4ed4-9f03-7840ce7cacb4',   \/\/ Account 2  \u2190 API key\r\n    '6eb31c56-5c0e-41c7-9b1e-3053d34655b1',   \/\/ Account 3  \u2190 API key\r\n    '3c3f5e5b-2895-45a5-9750-f12672f96853',   \/\/ Account 4  \u2190 API key\r\n    '19fe5256-ba06-4085-aa09-aeacedb3aed2',   \/\/ Account 5  \u2190 API key\r\n    'b96b90db-2458-4319-b8a4-6304408cd052',   \/\/ Account 6  \u2190 API key\r\n    '5b51d2eb-859a-4d22-8e81-0b63d8325d5d',   \/\/ Account 7  \u2190 API key\r\n    '069c2aa8-b29c-49ea-80cf-a38c1d6440da',   \/\/ Account 8  \u2190 API key\r\n    '1076ba9b-159b-4c04-a48c-9e8394bc515d',   \/\/ Account 9  \u2190 API key\r\n    '09157053-e6c0-40cd-adf6-37d61de9f55b',   \/\/ Account 10  \u2190 API key\r\n    '7564d15e-a62f-4592-8e79-49dddc156082',   \/\/ Account 11  \u2190 API key\r\n    'dae947cd-a175-42fa-9879-c4e8bd9f18f3',   \/\/ Account 12  \u2190 API key\r\n    '9a8ee4b2-5f3b-4608-8da9-5f489b44e2fd',   \/\/ Account 13  \u2190 API key\r\n    '5ed35ba5-d07b-43d8-bb97-2d5d7c82f4d7',   \/\/ Account 14  \u2190 API key\r\n    'd835b5ab-19bd-4ca5-b70f-556e93a51625',   \/\/ Account 15  \u2190 API key\r\n    'b274aed4-349f-42f0-9bc7-365f6a31967a',   \/\/ Account 16  \u2190 API key\r\n    '0b2d6210-bdc4-4575-bbea-b6565283989e',   \/\/ Account 17  \u2190 API key\r\n    'b79d6d42-b6f8-464a-bf58-435124c1ded7',   \/\/ Account 18  \u2190 API key\r\n    'c2f7d22c-84fc-4cb1-8258-74c6cd054a1c',   \/\/ Account 19  \u2190 API key\r\n    '5927e614-d20b-4eeb-b2f7-67f3b0310e9b',   \/\/ Account 20  \u2190 API key\r\n    '5385dd45-0e38-4a08-be60-a5c637f74097',   \/\/ Account 21  \u2190 API key\r\n    '0d04da47-6bbc-4268-b018-57bc51471942',   \/\/ Account 22  \u2190 API key\r\n    '43db99f0-9806-42ee-a01d-bb433c83fd15',   \/\/ Account 23  \u2190 API key\r\n    '55ce999b-0d13-463e-ac14-b1acec5c70ab',   \/\/ Account 24  \u2190 API key\r\n    '7fb8f6ce-c833-41a6-9a1f-d57e66382824',   \/\/ Account 25  \u2190 API key\r\n    '27f8f306-dab8-41c4-9bf9-a42b1aca1d2a',   \/\/ Account 26  \u2190 API key\r\n    '29798158-286f-4cd1-8398-50ed5b171055',   \/\/ Account 27  \u2190 API key\r\n    'fe401c6c-4e84-47e5-836a-28d689d1a1e4',   \/\/ Account 28  \u2190 API key\r\n    '9b837d59-10a6-4109-9429-14af7bc8c462',   \/\/ Account 29  \u2190 API key\r\n    'b0e320d9-4ff0-4a36-8c01-72e49327bebe'    \/\/ Account 30  \u2190 API key\r\n\r\n    \/\/ Add more objects as needed\r\n  ];\r\n\r\n  \/**\r\n   * Direct link to your Google Maps listing.\r\n   * Shown on the fallback card when ALL accounts are exhausted.\r\n   *\/\r\n  var MAP_URL = 'https:\/\/maps.app.goo.gl\/Qpe23WNQp72jSh8J9';\r\n\r\n  \/**\r\n   * Direct link to your Google Reviews search result page.\r\n   * Shown as a second option on the fallback card.\r\n   *\/\r\n  var REVIEWS_URL = 'https:\/\/www.google.com\/search?sca_esv=da0c1f878bea3f41&sxsrf=ANbL-n7FHTB7vltS6RP5c4w8x0q_iTOUdg:1771344534641&si=AL3DRZHrmvnFAVQPOO2Bzhf8AX9KZZ6raUI_dT7DG_z0kV2_x6GZZ2-PZJ5rj6Sye6ZCcCigdSDfkJfK8GhUYTqk965lYIkY2lbbvqnGPLaYIEvt7EV_kGE4tLN8PKXBU03N9Ctp8gdhwjCh4h_gUHyEIV_53qhsEqeXNS-FZ2flxEn8ovwyXHO_NNAq9Kcuqx1LKk-maYX3&q=Tooth+%26+Go+Dental+Clinic-your+dentist+in+Paranaque+Reviews&sa=X&ved=2ahUKEwiBiIzO9OCSAxVf8zgGHbvnKK8Q0bkNegQIJxAH&biw=1280&bih=822&dpr=1#lrd=0x3397ce251ff8c811:0x7a3ec162b0dbc3bf,1,,,,';\r\n\r\n  \/**\r\n   * How long (ms) to wait for a widget to render before giving up.\r\n   * 10 000 ms is safe for most connections. Raise to 14 000 on very\r\n   * slow mobile networks if you're seeing false-negatives.\r\n   *\/\r\n  var RENDER_TIMEOUT_MS = 10000;\r\n\r\n  \/**\r\n   * CSS selectors Elfsight injects when a plan limit \/ upgrade is needed.\r\n   * The MutationObserver watches for these; presence = account exhausted.\r\n   *\/\r\n  var FAILURE_SELECTORS = [\r\n    '[class*=\"upgrade\"]',\r\n    '[class*=\"eapps-notification-bar\"]',\r\n    '[class*=\"limit\"]',\r\n    '[class*=\"trial\"]',\r\n    '[class*=\"blocked\"]',\r\n    '[class*=\"expired\"]'\r\n  ];\r\n\r\n  \/* \u2500\u2500 \u2461 STATE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n  var container     = document.getElementById('erw-container');\r\n  var currentIndex  = 0;\r\n  var renderTimer   = null;\r\n  var mutObserver   = null;\r\n  var scriptLoaded  = false;   \/\/ Elfsight platform.js loaded flag\r\n\r\n  \/* \u2500\u2500 \u2462 HELPERS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n\r\n  \/** Remove any Elfsight watermark\/branding links from the full document. *\/\r\n  function hideWatermarks() {\r\n    var els = document.querySelectorAll(\r\n      'a[href*=\"elfsight.com\"], .eapps-widget-toolbar, [class*=\"powered-by-elfsight\"], [class*=\"eapps-powered-by\"]'\r\n    );\r\n    for (var i = 0; i < els.length; i++) {\r\n      els[i].style.cssText = 'display:none!important;width:0!important;height:0!important;overflow:hidden!important;';\r\n    }\r\n  }\r\n\r\n  \/** True if Elfsight has injected a plan-limit \/ upgrade notice. *\/\r\n  function hasFailureIndicator(root) {\r\n    for (var i = 0; i < FAILURE_SELECTORS.length; i++) {\r\n      if (root.querySelector(FAILURE_SELECTORS[i])) return true;\r\n    }\r\n    return false;\r\n  }\r\n\r\n  \/**\r\n   * True if the widget has rendered genuine review content.\r\n   * Elfsight review widgets produce 6+ nested elements when healthy.\r\n   * An upgrade notice is typically 1-4 elements.\r\n   *\/\r\n  function hasReviewContent(root) {\r\n    var appEl = root.querySelector('[class*=\"elfsight-app-\"]');\r\n    return appEl && appEl.querySelectorAll('*').length > 6;\r\n  }\r\n\r\n  \/* \u2500\u2500 \u2463 SUCCESS \/ FAILURE HANDLERS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n\r\n  \/** Called once we confirm the widget rendered real content. *\/\r\n  function markLoaded() {\r\n    if (container.classList.contains('loaded')) return; \/\/ idempotent\r\n    container.classList.add('loaded');\r\n    if (mutObserver) { mutObserver.disconnect(); mutObserver = null; }\r\n    clearTimeout(renderTimer);\r\n    hideWatermarks();\r\n  }\r\n\r\n  \/** Show the branded fallback card with both Google links. *\/\r\n  function showFallback() {\r\n    container.innerHTML = [\r\n      '<div class=\"erw-fallback\">',\r\n      '  <svg class=\"erw-fallback__icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\" aria-hidden=\"true\">',\r\n      '    <path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7z\"\/>',\r\n      '    <circle cx=\"12\" cy=\"9\" r=\"2.5\"\/>',\r\n      '  <\/svg>',\r\n      '  <p class=\"erw-fallback__title\">See Our Reviews on Google<\/p>',\r\n      '  <p class=\"erw-fallback__body\">',\r\n      '    Our review widget is temporarily resting after a busy month.',\r\n      '    You can read all of our customer reviews directly on Google.',\r\n      '  <\/p>',\r\n      '  <div class=\"erw-fallback__actions\">',\r\n\r\n      \/* \u2500\u2500 Primary: Google Maps \u2500\u2500 *\/\r\n      '    <a class=\"erw-fallback__btn\"',\r\n      '       href=\"' + MAP_URL + '\"',\r\n      '       target=\"_blank\"',\r\n      '       rel=\"noopener noreferrer\"',\r\n      '       aria-label=\"View us on Google Maps (opens in new tab)\">',\r\n      '      <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">',\r\n      '        <path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7z\"\/>',\r\n      '        <circle cx=\"12\" cy=\"9\" r=\"2.5\"\/>',\r\n      '      <\/svg>',\r\n      '      View on Google Maps',\r\n      '    <\/a>',\r\n\r\n      \/* \u2500\u2500 Secondary: Google Search Reviews \u2500\u2500 *\/\r\n      '    <a class=\"erw-fallback__btn erw-fallback__btn--secondary\"',\r\n      '       href=\"' + REVIEWS_URL + '\"',\r\n      '       target=\"_blank\"',\r\n      '       rel=\"noopener noreferrer\"',\r\n      '       aria-label=\"Read our Google Reviews (opens in new tab)\">',\r\n      '      <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\">',\r\n      '        <path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"\/>',\r\n      '      <\/svg>',\r\n      '      Read Our Reviews',\r\n      '    <\/a>',\r\n\r\n      '  <\/div>',\r\n      '  <p class=\"erw-fallback__note\">Both links open in a new tab<\/p>',\r\n      '<\/div>'\r\n    ].join('\\n');\r\n    container.classList.add('loaded');\r\n  }\r\n\r\n  \/* \u2500\u2500 \u2464 CORE: load account \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n\r\n  \/**\r\n   * Attempt to render the widget for WIDGET_IDS[index].\r\n   * On failure (limit hit or timeout) \u2192 tryNext().\r\n   * On success \u2192 markLoaded().\r\n   *\/\r\n  function loadAccount(index) {\r\n    \/* Skip placeholder IDs left unfilled *\/\r\n    var id = WIDGET_IDS[index];\r\n    if (!id || id.indexOf('YOUR-') === 0) {\r\n      currentIndex = index;\r\n      tryNext();\r\n      return;\r\n    }\r\n\r\n    \/* Reset state from any previous attempt *\/\r\n    if (mutObserver) { mutObserver.disconnect(); mutObserver = null; }\r\n    clearTimeout(renderTimer);\r\n    container.classList.remove('loaded');\r\n\r\n    \/* Inject widget directly \u2014 no lazy attr so Elfsight initialises now *\/\r\n    container.innerHTML = '<div class=\"elfsight-app-' + id + '\"><\/div>';\r\n\r\n    \/* MutationObserver: instant response to whatever Elfsight renders *\/\r\n    mutObserver = new MutationObserver(function () {\r\n      hideWatermarks();\r\n\r\n      if (hasFailureIndicator(container)) {\r\n        \/* Account exhausted \/ limit notice visible \u2014 switch immediately *\/\r\n        mutObserver.disconnect(); mutObserver = null;\r\n        clearTimeout(renderTimer);\r\n        tryNext();\r\n        return;\r\n      }\r\n\r\n      if (hasReviewContent(container)) {\r\n        markLoaded();\r\n      }\r\n    });\r\n\r\n    mutObserver.observe(container, {\r\n      childList:  true,\r\n      subtree:    true,\r\n      attributes: true\r\n    });\r\n\r\n    \/* Hard timeout: silent failures (network error, bad ID, etc.) *\/\r\n    renderTimer = setTimeout(function () {\r\n      if (!container.classList.contains('loaded')) {\r\n        tryNext();\r\n      }\r\n    }, RENDER_TIMEOUT_MS);\r\n  }\r\n\r\n  \/** Move to the next account, or show fallback if all are exhausted. *\/\r\n  function tryNext() {\r\n    currentIndex++;\r\n    if (currentIndex >= WIDGET_IDS.length) {\r\n      showFallback();\r\n      return;\r\n    }\r\n    loadAccount(currentIndex);\r\n  }\r\n\r\n  \/* \u2500\u2500 \u2465 CWV: LAZY-LOAD ELFSIGHT SCRIPT \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n  \/*\r\n   * We do NOT add platform.js to <head> or let it block the parser.\r\n   * Instead we inject it only when the widget wrapper enters the viewport.\r\n   * This keeps it completely off the LCP critical path.\r\n   *\r\n   * Timeline:\r\n   *   Page paint \u2192 LCP element renders (no Elfsight delay)\r\n   *   User scrolls near widget \u2192 platform.js fetches + executes\r\n   *   platform.js ready \u2192 loadAccount(0) fires\r\n   *\/\r\n\r\n  function injectElfsightScript(callback) {\r\n    if (scriptLoaded) { callback(); return; }\r\n\r\n    var s = document.createElement('script');\r\n    s.src   = 'https:\/\/static.elfsight.com\/platform\/platform.js';\r\n    s.async = true;\r\n    \/* fetchpriority=low: browser won't compete with LCP resources *\/\r\n    s.setAttribute('fetchpriority', 'low');\r\n\r\n    s.onload = function () {\r\n      scriptLoaded = true;\r\n      callback();\r\n    };\r\n    s.onerror = function () {\r\n      \/* CDN unreachable \u2014 show fallback immediately *\/\r\n      showFallback();\r\n    };\r\n\r\n    (document.head || document.body).appendChild(s);\r\n  }\r\n\r\n  function startWhenReady() {\r\n    injectElfsightScript(function () {\r\n      loadAccount(0);\r\n    });\r\n  }\r\n\r\n  \/* \u2500\u2500 \u2466 CWV: INTERSECTION OBSERVER TRIGGER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n  \/*\r\n   * Fire startWhenReady() only when the wrapper is \u2264 200 px from viewport.\r\n   * If IntersectionObserver is unsupported (very old browser) fall back to\r\n   * immediate load \u2014 better a small CWV hit than no reviews at all.\r\n   *\/\r\n  var wrapper = document.getElementById('erw-wrapper');\r\n\r\n  if ('IntersectionObserver' in window) {\r\n    var viewObserver = new IntersectionObserver(\r\n      function (entries, obs) {\r\n        if (entries[0].isIntersecting) {\r\n          obs.disconnect();\r\n          startWhenReady();\r\n        }\r\n      },\r\n      { rootMargin: '200px' }   \/* pre-load 200 px before visible *\/\r\n    );\r\n    viewObserver.observe(wrapper);\r\n  } else {\r\n    \/* Fallback for browsers without IntersectionObserver *\/\r\n    startWhenReady();\r\n  }\r\n\r\n  \/* \u2500\u2500 \u2467 PERIODIC WATERMARK SWEEP \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n  \/*\r\n   * Elfsight sometimes injects branding links asynchronously, seconds\r\n   * after initial render. A 4-second interval catches these late additions.\r\n   * requestIdleCallback is used so the sweep never blocks user interaction\r\n   * (INP protection).\r\n   *\/\r\n  var sweepInterval = setInterval(function () {\r\n    if ('requestIdleCallback' in window) {\r\n      requestIdleCallback(hideWatermarks, { timeout: 2000 });\r\n    } else {\r\n      hideWatermarks();\r\n    }\r\n  }, 4000);\r\n\r\n  \/*\r\n   * Stop sweeping after 2 minutes \u2014 Elfsight won't inject anything new\r\n   * after that window. This prevents a dead setInterval running forever.\r\n   *\/\r\n  setTimeout(function () { clearInterval(sweepInterval); }, 120000);\r\n\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-71ad774 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"71ad774\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-92c67a9\" data-id=\"92c67a9\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1cd0688 elementor-widget elementor-widget-text-editor\" data-id=\"1cd0688\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><strong>At Tooth &amp; Go, Your Smile is Our Priority<\/strong><\/p><p>At our dental clinic, we take immense pride in providing exceptional dental care to all our patients. With a focus on comfort, professionalism, and the latest advancements in dental technology, we strive to deliver a positive and rewarding experience for every visit. Our Google reviews speak volumes about the trust and satisfaction of our patients, and we are honored to be a part of their journey to healthier, brighter smiles.<\/p><p><strong>Transparent Pricing for Quality Care<\/strong><br \/>We understand that dental treatments are an investment in your health and confidence. That\u2019s why we offer transparent pricing with no hidden costs. You can easily view our treatment prices on our\u00a0<span style=\"text-decoration: underline;\"><strong><a href=\"https:\/\/www.dentist-manila.com\/prices\/\" target=\"_blank\" rel=\"noopener\">Dental Fees Page<\/a><\/strong><\/span>or contact our team for a detailed estimate tailored to your needs. We ensure you receive high-quality dental care at fair and competitive rates.<\/p><p><strong>Before and After Transformations<\/strong><br \/>A picture is worth a thousand words, and our <span style=\"text-decoration: underline;\"><strong><a href=\"https:\/\/www.dentist-manila.com\/before-and-after\/\" target=\"_blank\" rel=\"noopener\">Before and After Gallery<\/a><\/strong><\/span> showcases the transformative power of expert dental care. From teeth whitening and braces to dental implants and smile makeovers, these images reflect our commitment to creating stunning results. Let these real patient transformations inspire you to take the first step toward your perfect smile.<\/p><p><strong>Book Your Appointment Today<\/strong><br \/>Ready to experience the highest standard of dental care? <span style=\"text-decoration: underline;\"><a href=\"https:\/\/www.dentist-manila.com\/book-online\/\" target=\"_blank\" rel=\"noopener\"><strong>Booking an appointment<\/strong><\/a> <\/span>with us is quick and easy. Visit our <span style=\"text-decoration: underline;\"><strong><a href=\"https:\/\/www.dentist-manila.com\/contact-us\/\" target=\"_blank\" rel=\"noopener\">Contact Us <\/a><\/strong><\/span>page to schedule your consultation or call us at <strong><span style=\"text-decoration: underline;\"><a href=\"tel:+639159656181\">+639159656181<\/a><\/span><\/strong>. Our friendly team is here to answer your questions and guide you every step of the way.<\/p><p><strong>Stay Connected<\/strong><br \/>Don\u2019t forget to follow us on social media to stay updated with the latest news, patient stories, and special offers. Your journey to a healthy, beautiful smile starts here at Tooth &amp; Go.<\/p><p>We look forward to welcoming you to our clinic and providing a dental experience that exceeds your expectations!<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Google Reviews &#8211; See What People Say About Our Dental Clinic See what our patients have to say about their experience at our dental clinic! Read genuine Google reviews that highlight our commitment to exceptional dental care, personalized treatments, and creating healthy, beautiful smiles. At Tooth &amp; Go, Your Smile is Our Priority At our [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-12123","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.dentist-manila.com\/fr\/wp-json\/wp\/v2\/pages\/12123","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dentist-manila.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.dentist-manila.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.dentist-manila.com\/fr\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dentist-manila.com\/fr\/wp-json\/wp\/v2\/comments?post=12123"}],"version-history":[{"count":0,"href":"https:\/\/www.dentist-manila.com\/fr\/wp-json\/wp\/v2\/pages\/12123\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dentist-manila.com\/fr\/wp-json\/wp\/v2\/media?parent=12123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}