{"id":1603,"date":"2025-03-31T09:58:02","date_gmt":"2025-03-31T09:58:02","guid":{"rendered":"https:\/\/gocuris.com\/?page_id=1603"},"modified":"2025-09-30T10:51:04","modified_gmt":"2025-09-30T15:51:04","slug":"providers","status":"publish","type":"page","link":"https:\/\/gocuris.com\/providers\/","title":{"rendered":"Providers"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1603\" class=\"elementor elementor-1603\" data-elementor-post-type=\"page\">\n\t\t\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-6b7243a e-flex e-con-boxed e-con e-parent\" data-id=\"6b7243a\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0088bb1 elementor-widget elementor-widget-heading\" data-id=\"0088bb1\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Providers<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-cf91c4f e-flex e-con-boxed e-con e-parent\" data-id=\"cf91c4f\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9769365 elementor-widget elementor-widget-html\" data-id=\"9769365\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script src=\"https:\/\/maps.googleapis.com\/maps\/api\/js?key=AIzaSyAocZIP0FFtGb2W8LpahfcwIGpdQTerRt0&libraries=places,geometry&callback=initGoogleMap&loading=async\"  async defer><\/script>\n\n\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d572d5f e-n-tabs-mobile elementor-widget elementor-widget-n-tabs\" data-id=\"d572d5f\" data-element_type=\"widget\" data-settings=\"{&quot;tabs_justify_horizontal&quot;:&quot;start&quot;,&quot;tabs_justify_horizontal_laptop&quot;:&quot;start&quot;,&quot;tabs_justify_horizontal_tablet&quot;:&quot;start&quot;,&quot;tabs_justify_horizontal_mobile_extra&quot;:&quot;center&quot;,&quot;tabs_justify_horizontal_mobile&quot;:&quot;start&quot;,&quot;horizontal_scroll&quot;:&quot;disable&quot;}\" data-widget_type=\"nested-tabs.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"e-n-tabs\" data-widget-number=\"223817055\" aria-label=\"Tabs. Open items with Enter or Space, close with Escape and navigate using the Arrow keys.\">\n\t\t\t<div class=\"e-n-tabs-heading\" role=\"tablist\">\n\t\t\t\t\t<button id=\"e-n-tab-title-2238170551\" class=\"e-n-tab-title\" aria-selected=\"true\" data-tab-index=\"1\" role=\"tab\" tabindex=\"0\" aria-controls=\"e-n-tab-content-2238170551\" style=\"--n-tabs-title-order: 1;\">\n\t\t\t\t\t<span class=\"e-n-tab-icon\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-search\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z\"><\/path><\/svg>\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-search\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z\"><\/path><\/svg>\t\t<\/span>\n\t\t\t\t\t<span class=\"e-n-tab-title-text\">\n\t\t\t\tSearch for provider by name\t\t\t<\/span>\n\t\t<\/button>\n\t\t\t\t<button id=\"e-n-tab-title-2238170552\" class=\"e-n-tab-title\" aria-selected=\"false\" data-tab-index=\"2\" role=\"tab\" tabindex=\"-1\" aria-controls=\"e-n-tab-content-2238170552\" style=\"--n-tabs-title-order: 2;\">\n\t\t\t\t\t<span class=\"e-n-tab-icon\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-search\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z\"><\/path><\/svg>\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-search\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z\"><\/path><\/svg>\t\t<\/span>\n\t\t\t\t\t<span class=\"e-n-tab-title-text\">\n\t\t\t\tSearch for providers near you\t\t\t<\/span>\n\t\t<\/button>\n\t\t\t\t\t<\/div>\n\t\t\t<div class=\"e-n-tabs-content\">\n\t\t\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" id=\"e-n-tab-content-2238170551\" role=\"tabpanel\" aria-labelledby=\"e-n-tab-title-2238170551\" data-tab-index=\"1\" style=\"--n-tabs-title-order: 1;\" class=\"e-active elementor-element elementor-element-fff230d e-flex e-con-boxed e-con e-child\" data-id=\"fff230d\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ef7f60a elementor-widget elementor-widget-html\" data-id=\"ef7f60a\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"provider-name-container\">\n  <input type=\"text\" id=\"provider-name-search\" placeholder=\"Search by name...\" \/>\n  <button id=\"provider-name-btn\">Search<\/button>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" id=\"e-n-tab-content-2238170552\" role=\"tabpanel\" aria-labelledby=\"e-n-tab-title-2238170552\" data-tab-index=\"2\" style=\"--n-tabs-title-order: 2;\" class=\" elementor-element elementor-element-c16c863 e-con-full e-flex e-con e-child\" data-id=\"c16c863\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0350c08 elementor-widget elementor-widget-html\" data-id=\"0350c08\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<!-- \u2705 FILTER BAR -->\n<div id=\"provider-filters\" style=\"display: flex; flex-wrap: wrap; gap: 1rem;\">\n  <input id=\"provider-search\" type=\"text\" placeholder=\"Enter city, ZIP, or address...\" style=\"padding: 0.5rem; flex: 1;\">\n\n  <select id=\"filter-service\"><option value=\"\" disabled selected>Service<\/option><\/select>\n  <select id=\"filter-specialties\"><option value=\"\" disabled selected>Specialty<\/option><\/select>\n  <select id=\"filter-payments\"><option value=\"\" disabled selected>Payment<\/option><\/select>\n\n  <!-- \u2705 Virtual Only Checkbox -->\n<!-- \u2705 SORT + RESET CONTROLS -->\n<div style=\"extraFilters\">  <label style=\"display: flex; align-items: center; gap: 0.5rem;\">\n    <input type=\"checkbox\" id=\"filter-virtual\">\n    Virtual\n  <\/label>\n\n  <label style=\"display: flex; gap: 0rem;\">\n<\/label>\n  <button id=\"reset-provider-filters\" style=\"border:0px;\">Reset Filters<\/button>\n<\/div><button id=\"provider-search-btn\" style=\"padding: 0.5rem 1rem;\">Search<\/button>\n<\/div>\n\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5c6854a elementor-widget elementor-widget-html\" data-id=\"5c6854a\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n\n<div id=\"provider-results\" style=\"display: grid;\"><\/div>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/fuse.js\/dist\/fuse.min.js\"><\/script>\n\n<script>\nlet mapCenter = null;\nlet currentPage = 1;\nconst perPage = 10;\nlet fuse;\nlet lastFocusedSearchType = null; \/\/ 'name' or 'geo'\n\nfunction initFuse() {\n  const options = {\n    keys: ['name'],\n    threshold: 0.2,           \/\/ tighter score threshold\n    includeScore: true,\n    ignoreLocation: true,     \/\/ match tokens regardless of order\n    useExtendedSearch: true   \/\/ enables exact prefix filtering\n  };\n\n  fuse = new Fuse(window.providerData, options);\n}\n\nfunction decodeHTMLEntities(str) {\n  const txt = document.createElement('textarea');\n  txt.innerHTML = str;\n  return txt.value;\n}\n\nfunction initProviderFilters() {\n  let lastFocusedSearchType = null; \/\/ 'name' or 'geo'\n\n  \/\/ === \ud83d\udd0d TRACK FOCUS ===\n  document.getElementById('provider-name-search')?.addEventListener('focus', () => {\n    lastFocusedSearchType = 'name';\n  });\n\n  document.getElementById('provider-search')?.addEventListener('focus', () => {\n    lastFocusedSearchType = 'geo';\n  });\n\n  \/\/ === \ud83d\udd0d NAME SEARCH BUTTON HANDLER ===\n  const nameSearchBtn = document.getElementById('provider-name-btn');\n  if (nameSearchBtn) {\n    nameSearchBtn.addEventListener('click', () => {\n      document.getElementById('provider-search').value = '';\n      mapCenter = null;\n      currentPage = 1;\n      renderFilteredResults('name');\n    });\n  }\n\n  \/\/ === \ud83d\udccd GEO SEARCH HANDLER ===\n  const geoSearchInput = document.getElementById('provider-search');\n  const geoSearchBtn = document.getElementById('provider-search-btn');\n  if (geoSearchBtn && geoSearchInput) {\n    const autocomplete = new google.maps.places.Autocomplete(geoSearchInput);\n    autocomplete.addListener('place_changed', () => {\n      const place = autocomplete.getPlace();\n      if (place.geometry && place.geometry.location) {\n        mapCenter = place.geometry.location;\n        currentPage = 1;\n        renderFilteredResults('geo');\n      }\n    });\n\n    geoSearchBtn.addEventListener('click', () => {\n      const address = geoSearchInput.value;\n      const geocoder = new google.maps.Geocoder();\n      geocoder.geocode({ address }, function (results, status) {\n        if (status === 'OK' && results[0].geometry) {\n          mapCenter = results[0].geometry.location;\n          currentPage = 1;\n          renderFilteredResults('geo');\n        } else {\n          alert('Location not found. Please enter a city, ZIP, or address.');\n        }\n      });\n    });\n  }\n\n  \/\/ === \u2328\ufe0f GLOBAL ENTER KEY HANDLER ===\n  document.addEventListener('keydown', function (e) {\n    if (e.key === 'Enter') {\n      const nameQuery = document.getElementById('provider-name-search')?.value.trim();\n      const geoQuery = document.getElementById('provider-search')?.value.trim();\n\n      \/\/ \u2705 Prioritize name search if there's input\n      if (nameQuery) {\n        document.getElementById('provider-search').value = '';\n        mapCenter = null;\n        currentPage = 1;\n        renderFilteredResults('name');\n      } else if (geoQuery) {\n        const geocoder = new google.maps.Geocoder();\n        geocoder.geocode({ address: geoQuery }, function (results, status) {\n          if (status === 'OK' && results[0].geometry) {\n            mapCenter = results[0].geometry.location;\n            currentPage = 1;\n            renderFilteredResults('geo');\n          } else {\n            alert('Location not found. Please enter a city, ZIP, or address.');\n          }\n        });\n      }\n\n      e.preventDefault(); \/\/ block default enter behavior\n    }\n  });\n\n  \/\/ === \ud83e\udde0 TAXONOMY FILTERS ===\n  const allowedMainServices = ['chiropractic', 'mental-health', 'nutrition', 'weight-loss'];\n  const taxonomies = {\n    services: new Set(),\n    specialties: new Set(),\n    payments: new Set()\n  };\n  const serviceToSpecialties = {};\n\n  (window.providerData || []).forEach(p => {\n    (p.services || []).forEach(s => {\n      const serviceSlug = s.slug;\n      taxonomies.services.add(JSON.stringify(s));\n\n      if (!serviceToSpecialties[serviceSlug]) {\n        serviceToSpecialties[serviceSlug] = new Set();\n      }\n\n      (p.specialties || []).forEach(spec => {\n        taxonomies.specialties.add(JSON.stringify(spec));\n        serviceToSpecialties[serviceSlug].add(JSON.stringify(spec));\n      });\n    });\n\n    (p.payments || []).forEach(t => taxonomies.payments.add(JSON.stringify(t)));\n  });\n\n  const populate = (set, selectId, defaultLabel) => {\n    const select = document.getElementById(selectId);\n    if (!select) return;\n    select.innerHTML = '';\n    const defaultOpt = document.createElement('option');\n    defaultOpt.value = '';\n    defaultOpt.textContent = defaultLabel;\n    defaultOpt.disabled = true;\n    defaultOpt.selected = true;\n    select.appendChild(defaultOpt);\n\n    set.forEach(json => {\n      const { title, slug } = JSON.parse(json);\n      if (selectId === 'filter-service' && !allowedMainServices.includes(slug)) return;\n      const opt = document.createElement('option');\n      opt.value = slug;\n      opt.textContent = decodeHTMLEntities(title);\n      select.appendChild(opt);\n    });\n  };\n\n  populate(taxonomies.services, 'filter-service', 'Service');\n  populate(taxonomies.specialties, 'filter-specialties', 'Specialty');\n  populate(taxonomies.payments, 'filter-payments', 'Payment');\n\n  const serviceSelect = document.getElementById('filter-service');\n  if (serviceSelect) {\n    serviceSelect.addEventListener('change', function () {\n      const selectedService = this.value;\n      const specialties = selectedService ? (serviceToSpecialties[selectedService] || new Set()) : taxonomies.specialties;\n      populate(specialties, 'filter-specialties', 'Specialty');\n      currentPage = 1;\n      renderFilteredResults('geo');\n    });\n  }\n\n  ['filter-specialties', 'filter-payments', 'filter-virtual'].forEach(id => {\n    const el = document.getElementById(id);\n    if (el) {\n      el.addEventListener('change', () => {\n        currentPage = 1;\n        renderFilteredResults('geo');\n      });\n    }\n  });\n\n  const resetBtn = document.getElementById('reset-provider-filters');\n  if (resetBtn) {\n    resetBtn.addEventListener('click', () => {\n      document.getElementById('provider-search').value = '';\n      document.getElementById('provider-name-search').value = '';\n      mapCenter = null;\n      document.getElementById('filter-service').value = '';\n      document.getElementById('filter-specialties').value = '';\n      document.getElementById('filter-payments').value = '';\n      document.getElementById('filter-virtual').checked = false;\n      populate(taxonomies.specialties, 'filter-specialties', 'Specialty');\n      currentPage = 1;\n      renderFilteredResults('geo');\n    });\n  }\n}\n\n\nfunction renderFilteredResults(mode = 'geo') {\n  const selected = {\n    service: document.getElementById('filter-service')?.value || '',\n    virtualOnly: document.getElementById('filter-virtual')?.checked,\n    specialties: document.getElementById('filter-specialties')?.value || '',\n    payments: document.getElementById('filter-payments')?.value || '',\n    sortAZ: true\n  };\n\n  const nameQuery = document.getElementById('provider-name-search')?.value.trim();\n  let filtered = [...window.providerData];\n\n  \/\/ \ud83d\udd0d Name Search Mode\nif (mode === 'name' && nameQuery && fuse) {\n  const fuzzyResults = fuse.search(`${nameQuery}`);\n  filtered = fuzzyResults\n    .sort((a, b) => a.score - b.score)\n    .map(r => r.item);\n}\n\n\n  \/\/ \ud83c\udf10 Geo\/Filters Mode\n  if (mode === 'geo') {\n    filtered = filtered.filter(p => {\n      const match = (field, val) => !val || (p[field] || []).some(t => t.slug === val);\n      const hasLatLng = p.locations?.[0]?.lat && p.locations?.[0]?.lng;\n      let inDistance = true;\n\n      if (mapCenter && hasLatLng) {\n        const latLng = new google.maps.LatLng(p.locations[0].lat, p.locations[0].lng);\n        const distance = google.maps.geometry.spherical.computeDistanceBetween(mapCenter, latLng) * 0.000621371;\n        inDistance = distance <= 50;\n      }\n\n      return match('services', selected.service) &&\n             match('specialties', selected.specialties) &&\n             match('payments', selected.payments) &&\n            (!selected.virtualOnly || p.virtual.some(v => ['Virtual \/ In-Person', 'Virtual Only'].includes(v)))\n &&\n             inDistance;\n    });\n  }\n\n  if (selected.sortAZ) {\n    filtered.sort((a, b) => a.name.localeCompare(b.name));\n  }\n\n  renderProviderPagination(filtered);\n  enableDragScroll('.specialties');\n  enableDragScroll('.focus');\n}\n\n\n\nfunction renderProviderPagination(filtered) {\n  const container = document.getElementById('provider-results');\n  const total = filtered.length;\n  const totalPages = Math.ceil(total \/ perPage);\n  const start = (currentPage - 1) * perPage;\n  const pageItems = filtered.slice(start, start + perPage);\n\n  \/\/ Fade out current results\n  container.classList.remove('fade-in');\n  container.classList.add('fade-out');\n\n  setTimeout(() => {\n    if (pageItems.length > 0) {\n      document.querySelector('.no-results')?.remove();\n      container.innerHTML = pageItems.map(renderProviderCard).join('');\n    } else {\n      container.innerHTML = '<div class=\"no-results\">Sorry, no available providers. Please adjust your filters.<\/div>';\n    }\n\n    \/\/ Trigger card fade-in after DOM is updated\n    requestAnimationFrame(() => {\n      const cards = container.querySelectorAll('.provider-card');\n      cards.forEach((card, i) => {\n        setTimeout(() => {\n          card.classList.add('show');\n        }, i * 50); \/\/ slight stagger\n      });\n\n      container.classList.remove('fade-out');\n      container.classList.add('fade-in');\n    });\n\n    renderPaginationControls(totalPages);\n  }, 150); \/\/ sync with CSS fade-out\n}\n\n\nfunction renderPaginationControls(totalPages) {\n  let controls = '';\n  if (totalPages > 1) {\n    for (let i = 1; i <= totalPages; i++) {\n      controls += `<button class=\"pagination-btn\" data-page=\"${i}\" ${i === currentPage ? 'disabled' : ''}>${i}<\/button>`;\n    }\n  }\n\n  const existing = document.getElementById('pagination-controls');\n  if (existing) existing.remove();\n\n  const wrapper = document.createElement('div');\n  wrapper.id = 'pagination-controls';\n  wrapper.style = 'display: flex; gap: 0.5rem; margin-top: 2rem; flex-wrap: wrap;';\n  wrapper.innerHTML = controls;\n\n  document.getElementById('provider-results').after(wrapper);\n\n  wrapper.querySelectorAll('.pagination-btn').forEach(btn => {\n    btn.addEventListener('click', () => {\n      currentPage = parseInt(btn.dataset.page);\n      renderFilteredResults();\n    });\n  });\n}\n\nfunction renderProviderCard(p) {\n    const pill = t => `<span class=\"pill\">${t.title}<\/span>`;\n    const pillRow = (arr) => (arr || []).map(pill).join('');\n    \n    const locationPart = p.location_name || '';\n    const statePart = p.state || '';\n    \n    const locationLine =\n      locationPart && statePart\n        ? `${locationPart}, ${statePart.toUpperCase()}`\n        : locationPart || statePart.toUpperCase() || '';\n\n  \/\/ \ud83d\udfe1 Safe virtual badge handling\n  const v = (p.virtual ?? '').toString().trim();\n  const virtualBadge = v !== ''\n    ? `<div style=\"display:inline; font-size:12px; background-color:#efefef; text-transform:capitalize; padding:2px 15px; border-radius:30px;\">${v}<\/div>`\n    : '';\n    \/\/ build location div only if locationLine has content\n    const locationDiv = locationLine\n      ? `<div class=\"location\" style=\"display:inline; margin-right:10px;\">${locationLine}<\/div>`\n      : '';\n\n    return `\n      <a class=\"providerLinkWrapper\" href=\"${p.permalink}\">\n        <div class=\"provider-card\">\n          <div class=\"card-top\">\n            <img decoding=\"async\" class=\"provider-img\" src=\"${p.image}\" alt=\"${p.name}\" \/>\n            <div>\n              <h3>${p.name}<\/h3>\n              <p class=\"professional-title\">${p.professional_title || ''}<\/p>\n              <div class=\"location-virtual-wrapper\" style=\"display:flex; flex-wrap:wrap; gap:8px; align-items:center;\">\n                ${locationDiv}\n                ${virtualBadge}\n              <\/div>\n            <\/div>\n          <\/div>\n          <div class=\"right-wrapper\">\n            <div class=\"scroll-pills\">\n              <div class=\"specialties\">${pillRow(p.specialties)}<\/div>\n              <div class=\"focus\">${pillRow(p.focus)}<\/div>\n            <\/div>\n            <div class=\"bottom-bar\">\n              ${p.payments && p.payments.length ? `<p class=\"payments\">Accepts: ${p.payments.map(t => t.title).join(', ')}<\/p>` : ''}\n              <svg class=\"arrow\" width=\"12\" height=\"12\" viewBox=\"0 0 18 18\"><path d=\"M.96,18c-.25,0-.49-.09-.68-.28-.38-.38-.38-.99,0-1.36L16.35.28c.38-.38.99-.38,1.36,0,.38.38.38.99,0,1.36L1.65,17.72c-.19.19-.43.28-.68.28h0Z\"\/><path d=\"M17.04,18c-.53,0-.96-.43-.96-.96V1.93H.96c-.53,0-.96-.43-.96-.96s.43-.96.96-.96h16.07c.53,0,.96.43.96.96v16.07c0,.53-.43.96-.96.96Z\"\/><\/svg>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/a>\n    `;\n    }\nfunction initGoogleMap() {\n  if (window.providerData) {\n      initFuse();\n    initProviderFilters();\n    renderFilteredResults();\n  }\n}\n\nfunction enableDragScroll(selector) {\n  document.querySelectorAll(selector).forEach(el => {\n    const updateScrollable = () => {\n      if (el.scrollWidth > el.clientWidth) {\n        el.classList.add('scrollable');\n      } else {\n        el.classList.remove('scrollable');\n      }\n    };\n\n    updateScrollable();\n    window.addEventListener('resize', updateScrollable);\n\n    let isDragging = false;\n    let startX = 0;\n    let scrollLeft = 0;\n    let velocity = 0;\n    let momentumID;\n\n    const onMouseMove = (e) => {\n      if (!isDragging) return;\n      const x = e.pageX;\n      const dx = x - startX;\n      el.scrollLeft = scrollLeft - dx;\n      velocity = dx;\n    };\n\n    const onMouseUp = () => {\n      if (!isDragging) return;\n      isDragging = false;\n      el.classList.remove('dragging');\n      momentumScroll();\n    };\n\n    const momentumScroll = () => {\n      cancelAnimationFrame(momentumID);\n      velocity *= 0.5;\n      if (Math.abs(velocity) > 0.25) {\n        el.scrollLeft -= velocity;\n        momentumID = requestAnimationFrame(momentumScroll);\n      }\n    };\n\n    el.addEventListener('mousedown', (e) => {\n      isDragging = true;\n      startX = e.pageX;\n      scrollLeft = el.scrollLeft;\n      el.classList.add('dragging');\n      cancelAnimationFrame(momentumID);\n    });\n\n    window.addEventListener('mousemove', onMouseMove);\n    window.addEventListener('mouseup', onMouseUp);\n\n    el.addEventListener('touchstart', (e) => {\n      isDragging = true;\n      startX = e.touches[0].pageX;\n      scrollLeft = el.scrollLeft;\n      cancelAnimationFrame(momentumID);\n    });\n\n    el.addEventListener('touchmove', (e) => {\n      if (!isDragging) return;\n      const x = e.touches[0].pageX;\n      const dx = x - startX;\n      el.scrollLeft = scrollLeft - dx;\n      velocity = dx;\n    });\n\n    el.addEventListener('touchend', () => {\n      isDragging = false;\n      momentumScroll();\n    });\n  });\n}\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-1e00916 animated-slow e-flex e-con-boxed elementor-invisible e-con e-parent\" data-id=\"1e00916\" data-element_type=\"container\" data-settings=\"{&quot;animation&quot;:&quot;fadeInUp&quot;,&quot;animation_delay&quot;:300}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-73d859b e-con-full e-grid e-con e-child\" data-id=\"73d859b\" data-element_type=\"container\">\n\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-3f0d842 e-con-full e-flex e-con e-child\" data-id=\"3f0d842\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9800a5a elementor-widget elementor-widget-heading\" data-id=\"9800a5a\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Find a Provider<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9feec67 large-btn elementor-mobile-align-justify elementor-widget elementor-widget-button\" data-id=\"9feec67\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"\/providers\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Search<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-772410e e-con-full e-flex e-con e-child\" data-id=\"772410e\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-d5ab9e7 e-con-full e-flex e-con e-child\" data-id=\"d5ab9e7\" data-element_type=\"container\">\n\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-b626da2 e-con-full e-flex e-con e-child\" data-id=\"b626da2\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a06ef98 elementor-widget__width-initial elementor-widget elementor-widget-heading\" data-id=\"a06ef98\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Find out about services<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-73d456c e-con-full e-flex e-con e-child\" data-id=\"73d456c\" data-element_type=\"container\">\n\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-7fe85d5 e-con-full e-flex e-con e-child\" data-id=\"7fe85d5\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8293071 large-btn elementor-mobile-align-justify elementor-widget elementor-widget-button\" data-id=\"8293071\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"\/functional-health-services\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Learn More<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Search for provider by name Search for providers near you Search Service Specialty Payment Virtual Reset Filters Search Search Service Specialty Payment Virtual Reset Filters Search Find a Provider Search Find out about services Learn More<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_searchwp_excluded":"","footnotes":""},"class_list":["post-1603","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/gocuris.com\/wp-json\/wp\/v2\/pages\/1603","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gocuris.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gocuris.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gocuris.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gocuris.com\/wp-json\/wp\/v2\/comments?post=1603"}],"version-history":[{"count":952,"href":"https:\/\/gocuris.com\/wp-json\/wp\/v2\/pages\/1603\/revisions"}],"predecessor-version":[{"id":9864,"href":"https:\/\/gocuris.com\/wp-json\/wp\/v2\/pages\/1603\/revisions\/9864"}],"wp:attachment":[{"href":"https:\/\/gocuris.com\/wp-json\/wp\/v2\/media?parent=1603"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}