{"id":12,"date":"2024-12-13T05:09:46","date_gmt":"2024-12-13T05:09:46","guid":{"rendered":"https:\/\/ipaphysio.arelidev.com\/lbc\/?page_id=12"},"modified":"2025-10-17T21:39:18","modified_gmt":"2025-10-17T21:39:18","slug":"contact-us","status":"publish","type":"page","link":"https:\/\/ipaphysio.arelidev.com\/lbc\/contact-us\/","title":{"rendered":"Contact Us"},"content":{"rendered":"\n<script charset=\"utf-8\" type=\"text\/javascript\" src=\"\/\/js-na2.hsforms.net\/forms\/embed\/v2.js\"><\/script>\n<script>\n  hbspt.forms.create({\n    portalId: \"47487699\",\n    formId: \"81ca69f6-a7fd-428c-ada4-61e6a7a8e4f0\",\n    region: \"na2\"\n  });\n<\/script>\n\n\n\n\n<div id=\"fmt-blocks-block_529f201c829c1caeb7d6a023573b9cde\" class=\"location-selector-block w-full flex flex-col md:flex-row min-h-[500px] md:min-h-[400px]\">\n            <!-- Form Column First (Left), Map Column Second (Right) -->\n        \n<div class=\"hidden md:flex md:w-1\/2 w-full bg-[#2B2F36] md:pl-[11rem] md:pr-[4rem] px-6 py-8 md:py-12 items-center justify-center\">\n    <div class=\"w-full flex flex-col items-start\">\n        <h3 class=\"text-2xl md:text-3xl text-white mb-2 font-sans\" style=\"font-family: Inter, sans-serif;\">Contact<\/h3>\n        <div class=\"text-gray-200 mb-4 md:mb-6\">\n                <div class=\"my-2\">HOURS<\/div><div class=\"text-sm md:text-base\">Monday: Closed<\/div><div class=\"text-sm md:text-base\">Tuesday: Closed<\/div><div class=\"text-sm md:text-base\">Wednesday: 9 \u2013 12<\/div><div class=\"text-sm md:text-base\">Thursday: Closed<\/div><div class=\"text-sm md:text-base\">Friday: 7 \u2013 5<\/div><div class=\"text-sm md:text-base\">Saturday &amp; Sunday: Closed<\/div><\/div>\n        <p class=\"text-gray-300 w-full\">No form HTML provided.<\/p>\n    <\/div>\n<\/div>        \n<div class=\"w-full md:w-1\/2 h-[500px] md:h-auto flex flex-col items-center justify-center relative overflow-hidden\">\n    <!-- Google Maps View - Full Column -->\n    <div id=\"map-container\" class=\"absolute inset-0 w-full h-full\">\n        <div id=\"map\" class=\"w-full h-full\"><\/div>\n        \n        <!-- ZIP Code Lookup Overlay (hidden by default) -->\n        <div id=\"zip-lookup-overlay\" class=\"absolute inset-0 bg-white bg-opacity-90 items-center justify-center z-10 p-4 hidden\">\n            <div class=\"bg-white p-6 md:p-8 rounded-lg shadow-lg text-center max-w-sm w-full\">\n                <h2 class=\"text-xl md:text-2xl font-semibold mb-2 text-gray-900 leading-tight\">FIND THE IPA PHYSIO LOCATION NEAR YOU.<\/h2>\n                <h3 class=\"text-base md:text-lg mb-4 md:mb-6 text-gray-700\">ENTER YOUR ZIP CODE<\/h3>\n                <input \n                    type=\"text\" \n                    id=\"zip-code-input\" \n                    placeholder=\"Postal Code\"\n                    class=\"w-full px-4 py-3 border border-gray-300 rounded-lg mb-4 text-center text-base md:text-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500\"\n                >\n                <button \n                    id=\"update-location-btn\"\n                    class=\"w-full bg-[#3B5795] text-white py-3 px-6 rounded-lg font-semibold hover:bg-[#2A4278] transition-colors text-base md:text-lg\"\n                >\n                    UPDATE\n                <\/button>\n            <\/div>\n        <\/div>\n        \n        <!-- Mobile Location Cards Slider (hidden initially) -->\n        <div id=\"mobile-location-slider\" class=\"absolute inset-0 bg-white z-10 hidden md:hidden\">\n            <div class=\"flex flex-col h-full\">\n                <div class=\"flex items-center justify-between p-4 border-b border-gray-200\">\n                    <h3 class=\"text-lg font-semibold text-gray-900\">Nearby Locations<\/h3>\n                    <button id=\"close-mobile-slider\" class=\"text-[#3B5795] font-medium\">\n                        \u2715\n                    <\/button>\n                <\/div>\n                <div class=\"flex-1 overflow-hidden\">\n                    <div id=\"location-cards-container\" class=\"flex h-full overflow-x-auto snap-x snap-mandatory\">\n                        <!-- Location cards will be dynamically inserted here -->\n                    <\/div>\n                <\/div>\n                <div class=\"p-4 text-center\">\n                    <button \n                        id=\"mobile-search-again-btn\"\n                        class=\"bg-[#3B5795] text-white px-6 py-2 rounded-lg font-medium hover:bg-[#2A4278] transition-colors\"\n                    >\n                        Search Again\n                    <\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n        \n        <!-- Find Nearest Location Button (visible by default) -->\n        <button \n            id=\"search-again-btn\"\n            class=\"absolute bottom-4 right-4 md:bottom-6 md:right-6 bg-[#3B5795] text-white px-3 py-2 md:px-4 md:py-2 rounded-lg shadow-lg font-medium hover:bg-[#2A4278] transition-colors z-10 text-sm md:text-base\"\n        >\n            Find Nearest Location\n        <\/button>\n    <\/div>\n<\/div>        <\/div>\n<\/div>\n\n<!-- Google Maps JavaScript -->\n<script>\nlet map;\nlet geocoder;\nlet infoWindow;\nlet markers = [];\n\n\/\/ Location data\nconst locations = [{\"name\":\"IPA Physio Orange County\",\"url\":\"https:\\\/\\\/ipaphysio.arelidev.com\\\/orange-county\\\/\",\"address\":\"\",\"phone\":\"\",\"site_logo\":\"\",\"source\":\"subsite\"},{\"name\":\"IPA Physio Steamboat Springs\",\"url\":\"https:\\\/\\\/ipaphysio.arelidev.com\\\/steamboat\\\/\",\"address\":\"\",\"phone\":\"\",\"site_logo\":\"\",\"source\":\"subsite\"},{\"name\":\"IPA Physio Dallas\",\"url\":\"https:\\\/\\\/ipaphysio.arelidev.com\\\/dallas\\\/\",\"address\":\"\",\"phone\":\"\",\"site_logo\":\"\",\"source\":\"subsite\"},{\"name\":\"IPA Physio NYC\",\"url\":\"https:\\\/\\\/ipaphysio.arelidev.com\\\/nyc\\\/\",\"address\":\"\",\"phone\":\"\",\"site_logo\":\"\",\"source\":\"subsite\"},{\"name\":\"IPA Physio Portland\",\"url\":\"https:\\\/\\\/ipaphysio.arelidev.com\\\/portland\\\/\",\"address\":\"\",\"phone\":\"\",\"site_logo\":\"\",\"source\":\"subsite\"},{\"name\":\"IPA Physio Long Beach\",\"url\":\"https:\\\/\\\/ipaphysio.arelidev.com\\\/lbc\\\/\",\"address\":\"\",\"phone\":\"\",\"site_logo\":\"\",\"source\":\"subsite\"},{\"name\":\"Newport Beach\",\"url\":\"\\\/orange-county\\\/\",\"address\":\"500 Superior Avenue Suite 200 Newport Beach, CA 92663\",\"phone\":\"(949) 232-1955\",\"hours\":\"Monday: 7 AM\\u2013 5 PM\\r\\n\\r\\nTuesday: 8 AM\\u2013 5 PM\\r\\n\\r\\nWednesday: 8 AM\\u2013 5 PM\\r\\n\\r\\nThursday: Closed\\r\\n\\r\\nFriday: 8 AM\\u2013 5 PM\\r\\n\\r\\nSaturday & Sunday: Closed\",\"description\":\"\",\"latitude\":\"33.630102736120904\",\"longitude\":\"-117.92930688988679\",\"site_logo\":\"https:\\\/\\\/ipaphysio.arelidev.com\\\/lbc\\\/wp-content\\\/uploads\\\/sites\\\/9\\\/2025\\\/06\\\/site_logo.png\",\"source\":\"theme_options\"},{\"name\":\"Long Beach\",\"url\":\"\",\"address\":\"4918 2nd St Long Beach, CA 90803\",\"phone\":\"(949) 232-1955\",\"hours\":\"Monday: Closed\\r\\n\\r\\nTuesday: Closed\\r\\n\\r\\nWednesday: 9 \\u2013 12\\r\\n\\r\\nThursday: Closed\\r\\n\\r\\nFriday: 7 \\u2013 5\\r\\n\\r\\nSaturday & Sunday: Closed\",\"description\":\"\",\"latitude\":\"33.76117368378233\",\"longitude\":\"-118.13710948851826\",\"site_logo\":\"\",\"source\":\"theme_options\"}];\n\n\/\/ Debug: Log locations data to see if logos are included\nconsole.log('Locations data:', locations);\n\n\/\/ Mobile detection\nfunction isMobileDevice() {\n    return window.innerWidth <= 768;\n}\n\nfunction initMap() {\n    \/\/ Initialize map centered on US with grey\/white styling\n    map = new google.maps.Map(document.getElementById(\"map\"), {\n        zoom: 4,\n        center: { lat: 39.8283, lng: -98.5795 }, \/\/ Center of US\n        styles: [\n            {\n                \"featureType\": \"all\",\n                \"elementType\": \"geometry\",\n                \"stylers\": [{\"color\": \"#f5f5f5\"}]\n            },\n            {\n                \"featureType\": \"all\",\n                \"elementType\": \"labels.icon\",\n                \"stylers\": [{\"visibility\": \"off\"}]\n            },\n            {\n                \"featureType\": \"all\",\n                \"elementType\": \"labels.text.fill\",\n                \"stylers\": [{\"color\": \"#616161\"}]\n            },\n            {\n                \"featureType\": \"all\",\n                \"elementType\": \"labels.text.stroke\",\n                \"stylers\": [{\"color\": \"#f5f5f5\"}]\n            },\n            {\n                \"featureType\": \"administrative.land_parcel\",\n                \"elementType\": \"labels.text.fill\",\n                \"stylers\": [{\"color\": \"#bdbdbd\"}]\n            },\n            {\n                \"featureType\": \"poi\",\n                \"elementType\": \"geometry\",\n                \"stylers\": [{\"color\": \"#eeeeee\"}]\n            },\n            {\n                \"featureType\": \"poi\",\n                \"elementType\": \"labels.text.fill\",\n                \"stylers\": [{\"color\": \"#757575\"}]\n            },\n            {\n                \"featureType\": \"poi.park\",\n                \"elementType\": \"geometry\",\n                \"stylers\": [{\"color\": \"#e5e5e5\"}]\n            },\n            {\n                \"featureType\": \"poi.park\",\n                \"elementType\": \"labels.text.fill\",\n                \"stylers\": [{\"color\": \"#9e9e9e\"}]\n            },\n            {\n                \"featureType\": \"road\",\n                \"elementType\": \"geometry\",\n                \"stylers\": [{\"color\": \"#ffffff\"}]\n            },\n            {\n                \"featureType\": \"road.arterial\",\n                \"elementType\": \"labels.text.fill\",\n                \"stylers\": [{\"color\": \"#757575\"}]\n            },\n            {\n                \"featureType\": \"road.highway\",\n                \"elementType\": \"geometry\",\n                \"stylers\": [{\"color\": \"#dadada\"}]\n            },\n            {\n                \"featureType\": \"road.highway\",\n                \"elementType\": \"labels.text.fill\",\n                \"stylers\": [{\"color\": \"#616161\"}]\n            },\n            {\n                \"featureType\": \"road.local\",\n                \"elementType\": \"labels.text.fill\",\n                \"stylers\": [{\"color\": \"#9e9e9e\"}]\n            },\n            {\n                \"featureType\": \"transit.line\",\n                \"elementType\": \"geometry\",\n                \"stylers\": [{\"color\": \"#e5e5e5\"}]\n            },\n            {\n                \"featureType\": \"transit.station\",\n                \"elementType\": \"geometry\",\n                \"stylers\": [{\"color\": \"#eeeeee\"}]\n            },\n            {\n                \"featureType\": \"water\",\n                \"elementType\": \"geometry\",\n                \"stylers\": [{\"color\": \"#c9c9c9\"}]\n            },\n            {\n                \"featureType\": \"water\",\n                \"elementType\": \"labels.text.fill\",\n                \"stylers\": [{\"color\": \"#9e9e9e\"}]\n            }\n        ]\n    });\n    \n    geocoder = new google.maps.Geocoder();\n    infoWindow = new google.maps.InfoWindow();\n    \n    \/\/ Add markers for all locations (you'll need to geocode these or store coordinates)\n    addLocationMarkers();\n    \n    \/\/ Handle ZIP code lookup\n    document.getElementById('update-location-btn').addEventListener('click', handleZipCodeLookup);\n    document.getElementById('zip-code-input').addEventListener('keypress', function(e) {\n        if (e.key === 'Enter') {\n            handleZipCodeLookup();\n        }\n    });\n    \n    \/\/ Handle search again button\n    document.getElementById('search-again-btn').addEventListener('click', showSearchOverlay);\n    \n    \/\/ Handle mobile slider controls\n    document.getElementById('close-mobile-slider').addEventListener('click', showSearchOverlay);\n    document.getElementById('mobile-search-again-btn').addEventListener('click', showSearchOverlay);\n}\n\nfunction addLocationMarkers() {\n    locations.forEach((location, index) => {\n        \/\/ Use manual coordinates if available, otherwise geocode address\n        if (location.latitude && location.longitude) {\n            \/\/ Use manual coordinates\n            const position = new google.maps.LatLng(parseFloat(location.latitude), parseFloat(location.longitude));\n            createMarker(location, position);\n        } else if (location.address && location.address.trim()) {\n            \/\/ Geocode the address\n            geocoder.geocode({ address: location.address }, (results, status) => {\n                if (status === 'OK') {\n                    const position = results[0].geometry.location;\n                    createMarker(location, position);\n                }\n            });\n        }\n    });\n}\n\nfunction createMarker(location, position) {\n    const marker = new google.maps.Marker({\n        position: position,\n        map: map,\n        title: location.name,\n        icon: {\n            url: 'data:image\/svg+xml;charset=UTF-8,' + encodeURIComponent(`\n                <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <circle cx=\"20\" cy=\"20\" r=\"16\" fill=\"#3B5795\" stroke=\"white\" stroke-width=\"3\"\/>\n                    <circle cx=\"20\" cy=\"20\" r=\"6\" fill=\"white\"\/>\n                <\/svg>\n            `),\n            scaledSize: new google.maps.Size(40, 40),\n            anchor: new google.maps.Point(20, 20)\n        }\n    });\n    \n    \/\/ Create clean info window content with Tailwind CSS\n    let infoContent = `\n        <div class=\"w-72 font-sans p-5 bg-white rounded-lg shadow-md\">\n            <h3 class=\"m-0 mb-3 text-lg font-semibold text-gray-900\">${location.name}<\/h3>\n    `;\n    \n    if (location.address) {\n        \/\/ Create Google Maps link\n        const mapsUrl = `https:\/\/www.google.com\/maps\/search\/?api=1&query=${encodeURIComponent(location.address)}`;\n        infoContent += `<div class=\"mb-2\"><a href=\"${mapsUrl}\" target=\"_blank\" class=\"text-gray-900 underline text-xs leading-relaxed\">${location.address}<\/a><\/div>`;\n    }\n    \n    if (location.phone) {\n        infoContent += `<div class=\"mb-3\"><a href=\"tel:${location.phone}\" class=\"text-gray-900 underline text-xs\">${location.phone}<\/a><\/div>`;\n    }\n    \n    if (location.hours) {\n        \/\/ Parse hours into two columns like the design\n        const hoursLines = location.hours.split('\\n').filter(line => line.trim());\n        let leftColumn = [];\n        let rightColumn = [];\n        \n        hoursLines.forEach(line => {\n            const day = line.toLowerCase();\n            if (day.includes('monday') || day.includes('tuesday') || day.includes('wednesday') || day.includes('thursday')) {\n                leftColumn.push(line);\n            } else {\n                rightColumn.push(line);\n            }\n        });\n        \n        infoContent += `\n            <div>\n                <h4 class=\"m-0 mb-2 text-sm font-semibold text-gray-900\">Hours of Operation<\/h4>\n                <div class=\"flex gap-5\">\n                    <div class=\"flex-1 leading-tight text-gray-600\" style=\"font-size: 8px;\">\n                        ${leftColumn.join('<br>')}\n                    <\/div>\n                    <div class=\"flex-1 leading-tight text-gray-600\" style=\"font-size: 8px;\">\n                        ${rightColumn.join('<br>')}\n                    <\/div>\n                <\/div>\n            <\/div>\n        `;\n    }\n    \n    infoContent += `<\/div>`;\n    \n    marker.addListener('click', () => {\n        infoWindow.setContent(infoContent);\n        infoWindow.open(map, marker);\n    });\n    \n    markers.push(marker);\n    \n    \/\/ Auto-fit map bounds to include all markers\n    updateMapBounds();\n}\n\nfunction updateMapBounds() {\n    if (markers.length > 0) {\n        const bounds = new google.maps.LatLngBounds();\n        markers.forEach(marker => bounds.extend(marker.getPosition()));\n        map.fitBounds(bounds);\n        \n        \/\/ Ensure minimum zoom level for single markers\n        if (markers.length === 1) {\n            google.maps.event.addListenerOnce(map, 'bounds_changed', function() {\n                if (map.getZoom() > 15) {\n                    map.setZoom(15);\n                }\n            });\n        }\n    }\n}\n\nfunction handleZipCodeLookup() {\n    const zipCode = document.getElementById('zip-code-input').value.trim();\n    \n    if (!zipCode) {\n        alert('Please enter a ZIP code');\n        return;\n    }\n    \n    geocoder.geocode({ address: zipCode }, (results, status) => {\n        if (status === 'OK') {\n            const userLocation = results[0].geometry.location;\n            \n            \/\/ Hide the overlay\n            const overlay = document.getElementById('zip-lookup-overlay');\n            overlay.classList.add('hidden');\n            overlay.classList.remove('flex');\n            \n            if (isMobileDevice()) {\n                \/\/ Show mobile location cards slider\n                showMobileLocationCards(userLocation);\n            } else {\n                \/\/ Show desktop map with pins and find closest\n                findClosestLocation(userLocation);\n            }\n            \n        } else {\n            alert('Unable to find location for ZIP code: ' + zipCode);\n        }\n    });\n}\n\nfunction showMobileLocationCards(userLocation) {\n    \/\/ Calculate distances and sort locations\n    const locationsWithDistance = [];\n    let processedCount = 0;\n    \n    locations.forEach((location, index) => {\n        if (location.latitude && location.longitude) {\n            \/\/ Use manual coordinates\n            const locationPos = new google.maps.LatLng(parseFloat(location.latitude), parseFloat(location.longitude));\n            const distance = google.maps.geometry.spherical.computeDistanceBetween(userLocation, locationPos);\n            locationsWithDistance.push({ ...location, distance, index });\n            processedCount++;\n            \n            if (processedCount === locations.length) {\n                displayMobileCards(locationsWithDistance);\n            }\n        } else if (location.address && location.address.trim()) {\n            \/\/ Geocode the address\n            geocoder.geocode({ address: location.address }, (results, status) => {\n                if (status === 'OK') {\n                    const locationPos = results[0].geometry.location;\n                    const distance = google.maps.geometry.spherical.computeDistanceBetween(userLocation, locationPos);\n                    locationsWithDistance.push({ ...location, distance, index });\n                }\n                processedCount++;\n                \n                if (processedCount === locations.length) {\n                    displayMobileCards(locationsWithDistance);\n                }\n            });\n        } else {\n            processedCount++;\n            if (processedCount === locations.length) {\n                displayMobileCards(locationsWithDistance);\n            }\n        }\n    });\n}\n\nfunction displayMobileCards(locationsWithDistance) {\n    \/\/ Sort by distance\n    locationsWithDistance.sort((a, b) => a.distance - b.distance);\n    \n    \/\/ Generate cards HTML\n    const cardsContainer = document.getElementById('location-cards-container');\n    cardsContainer.innerHTML = '';\n    \n    locationsWithDistance.forEach((location, index) => {\n        const cardHtml = createLocationCard(location, index, locationsWithDistance.length);\n        cardsContainer.appendChild(cardHtml);\n    });\n    \n    \/\/ Show the mobile slider\n    document.getElementById('mobile-location-slider').classList.remove('hidden');\n    \n    \/\/ Set up pagination dots functionality\n    setupPaginationDots(locationsWithDistance.length);\n}\n\nfunction createLocationCard(location, index, totalCards) {\n    const card = document.createElement('div');\n    card.className = 'flex-shrink-0 w-full snap-center p-4';\n    card.setAttribute('data-card-index', index);\n    \n    \/\/ Parse hours into two columns\n    const hoursLines = location.hours ? location.hours.split('\\n').filter(line => line.trim()) : [];\n    let leftColumn = [];\n    let rightColumn = [];\n    \n    hoursLines.forEach(line => {\n        const day = line.toLowerCase();\n        if (day.includes('monday') || day.includes('tuesday') || day.includes('wednesday') || day.includes('thursday')) {\n            leftColumn.push(line);\n        } else {\n            rightColumn.push(line);\n        }\n    });\n    \n    \/\/ Create maps URL\n    const mapsUrl = location.address ? `https:\/\/www.google.com\/maps\/search\/?api=1&query=${encodeURIComponent(location.address)}` : '#';\n    \n    \/\/ Create pagination dots\n    let paginationDots = '';\n    for (let i = 0; i < totalCards; i++) {\n        const opacity = i === index ? 'opacity-100' : 'opacity-40';\n        paginationDots += `<div class=\"w-2 h-2 bg-white rounded-full ${opacity} transition-opacity duration-300\"><\/div>`;\n    }\n    \n    card.innerHTML = `\n        <div class=\"bg-white rounded-lg shadow-lg overflow-hidden h-full flex flex-col\">\n            <!-- Header with Location Name and Logo -->\n            <div class=\"bg-gradient-to-br from-[#3B5795] to-[#5A72B5] h-24 relative overflow-hidden\">\n                <div class=\"absolute inset-0 flex flex-col items-center justify-center px-4 pt-2 pb-8\">\n                    <!-- Logo centered at top -->\n                    ${location.site_logo ? \n                        `<div class=\"mb-2\">\n                            <img decoding=\"async\" src=\"${location.site_logo}\" alt=\"${location.name} logo\" class=\"object-contain\" style=\"width: 132.275px; height: 50px;\">\n                        <\/div>` : \n                        `<div class=\"mb-2\">\n                            <svg width=\"40\" height=\"40\" viewBox=\"0 0 32 32\" class=\"text-white\">\n                                <path fill=\"currentColor\" d=\"M16 2L8 8v12l8 6 8-6V8l-8-6zm0 2.5L22.5 9v10L16 24.5 9.5 19V9L16 4.5z\"\/>\n                                <path fill=\"currentColor\" d=\"M12 12h8v2h-8v-2zm0 3h8v2h-8v-2z\"\/>\n                            <\/svg>\n                        <\/div>`\n                    }\n                    <!-- Location name centered below logo -->\n                    <div class=\"text-white text-center\">\n                        <div class=\"text-lg font-bold leading-tight\">${location.name}<\/div>\n                    <\/div>\n                <\/div>\n                <!-- Pagination dots -->\n                <div class=\"absolute bottom-2 left-1\/2 transform -translate-x-1\/2 flex space-x-2 pagination-dots\">\n                    ${paginationDots}\n                <\/div>\n            <\/div>\n            \n            <!-- Content -->\n            <div class=\"flex-1 p-5\">\n                <!-- Location Name with IPA Physio prefix -->\n                <div class=\"mb-3\">\n                    <h3 class=\"text-gray-900\" style=\"font-family: var(--font-mirage, mirage, serif); font-size: 18px;\">\n                        IPA Physio ${location.name}\n                    <\/h3>\n                <\/div>\n                \n                ${location.address ? `<div class=\"mb-2\">\n                    <a href=\"${mapsUrl}\" target=\"_blank\" class=\"text-gray-900 underline text-sm leading-relaxed block\">\n                        ${location.address}\n                    <\/a>\n                <\/div>` : ''}\n                \n                ${location.phone ? `<div class=\"mb-4\">\n                    <a href=\"tel:${location.phone}\" class=\"text-gray-900 underline text-sm\">\n                        ${location.phone}\n                    <\/a>\n                <\/div>` : ''}\n                \n                ${location.hours ? `<div>\n                    <h4 class=\"text-sm font-semibold text-gray-900 mb-2\">Hours of Operation<\/h4>\n                    <div class=\"flex gap-4\">\n                        <div class=\"flex-1 leading-tight text-gray-600\" style=\"font-size: 10px;\">\n                            ${leftColumn.join('<br>')}\n                        <\/div>\n                        <div class=\"flex-1 leading-tight text-gray-600\" style=\"font-size: 10px;\">\n                            ${rightColumn.join('<br>')}\n                        <\/div>\n                    <\/div>\n                <\/div>` : ''}\n            <\/div>\n        <\/div>\n    `;\n    \n    return card;\n}\n\nfunction setupPaginationDots(totalCards) {\n    const container = document.getElementById('location-cards-container');\n    \n    \/\/ Update pagination dots on scroll\n    container.addEventListener('scroll', () => {\n        const scrollLeft = container.scrollLeft;\n        const cardWidth = container.offsetWidth;\n        const currentIndex = Math.round(scrollLeft \/ cardWidth);\n        \n        \/\/ Update all pagination dots\n        const allCards = container.querySelectorAll('[data-card-index]');\n        allCards.forEach((card, index) => {\n            const dots = card.querySelectorAll('.pagination-dots div');\n            dots.forEach((dot, dotIndex) => {\n                if (dotIndex === currentIndex) {\n                    dot.classList.remove('opacity-40');\n                    dot.classList.add('opacity-100');\n                } else {\n                    dot.classList.remove('opacity-100');\n                    dot.classList.add('opacity-40');\n                }\n            });\n        });\n    });\n}\n\nfunction showSearchOverlay() {\n    \/\/ Hide all result views and show overlay\n    document.getElementById('mobile-location-slider').classList.add('hidden');\n    const overlay = document.getElementById('zip-lookup-overlay');\n    overlay.classList.remove('hidden');\n    overlay.classList.add('flex');\n    \n    \/\/ Clear the input and focus\n    document.getElementById('zip-code-input').value = '';\n    document.getElementById('zip-code-input').focus();\n}\n\nfunction findClosestLocation(userLocation) {\n    let closestMarker = null;\n    let closestDistance = Infinity;\n    \n    markers.forEach(marker => {\n        const distance = google.maps.geometry.spherical.computeDistanceBetween(\n            userLocation,\n            marker.getPosition()\n        );\n        \n        if (distance < closestDistance) {\n            closestDistance = distance;\n            closestMarker = marker;\n        }\n    });\n    \n    if (closestMarker) {\n        \/\/ Center the map on the closest location\n        map.setCenter(closestMarker.getPosition());\n        map.setZoom(12);\n        \n        \/\/ Animate the closest marker\n        closestMarker.setAnimation(google.maps.Animation.BOUNCE);\n        setTimeout(() => {\n            closestMarker.setAnimation(null);\n        }, 2000);\n    }\n}\n\n\/\/ Initialize map when Google Maps API is loaded\n\/\/ The API is enqueued by functions.php\nfunction waitForGoogleMaps() {\n    if (typeof google !== 'undefined' && \n        typeof google.maps !== 'undefined' && \n        typeof google.maps.Map !== 'undefined') {\n        initMap();\n    } else {\n        setTimeout(waitForGoogleMaps, 100);\n    }\n}\nwaitForGoogleMaps();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-12","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/ipaphysio.arelidev.com\/lbc\/wp-json\/wp\/v2\/pages\/12","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ipaphysio.arelidev.com\/lbc\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ipaphysio.arelidev.com\/lbc\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ipaphysio.arelidev.com\/lbc\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ipaphysio.arelidev.com\/lbc\/wp-json\/wp\/v2\/comments?post=12"}],"version-history":[{"count":5,"href":"https:\/\/ipaphysio.arelidev.com\/lbc\/wp-json\/wp\/v2\/pages\/12\/revisions"}],"predecessor-version":[{"id":423,"href":"https:\/\/ipaphysio.arelidev.com\/lbc\/wp-json\/wp\/v2\/pages\/12\/revisions\/423"}],"wp:attachment":[{"href":"https:\/\/ipaphysio.arelidev.com\/lbc\/wp-json\/wp\/v2\/media?parent=12"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}