{"id":25,"date":"2024-12-15T04:28:57","date_gmt":"2024-12-15T04:28:57","guid":{"rendered":"https:\/\/ipaphysio.arelidev.com\/orange-county\/?page_id=25"},"modified":"2026-05-08T19:04:15","modified_gmt":"2026-05-08T19:04:15","slug":"home","status":"publish","type":"page","link":"https:\/\/ipaphysio.arelidev.com\/orange-county\/","title":{"rendered":"Home"},"content":{"rendered":"\n<div  class=\"ipa-hero-block relative flex flex-col justify-center\">\n            \n                    <!-- Default Layout -->\n            <div class=\"ipa-hero-block-inner relative z-10 h-[505px] md:h-[680px] md:w-[45%] h-[340px] md:h-[680px] slide-in-left flex items-center justify-center md:justify-start\">\n                <div class=\"text-white bg-primary\/80 px-10 pt-40 pb-16 md:pb-20 md:px-14 w-full h-full flex items-center\">\n                    <div class=\"content-inner max-w-xl\">\n                        <h1 class=\"text-[2.625rem] md:text-[4.6875rem] mb-8 mt-8 leading-tight\">\n                            IPA Physio Orange County                        <\/h1>\n                        <div class=\"text-[1.125rem] md:text-[1.5rem] mb-5 md:max-w-[30rem]\">\n                            <p>Providing the Highest Quality Personalized Physical Therapy<\/p>\n                        <\/div>\n                        <a href=\"https:\/\/ipaphysio.arelidev.com\/orange-county\/contact\/\" target=\"_self\" class=\"button button-white\">Get Started<\/a>                    <\/div>\n                <\/div>\n            <\/div>\n        \n                    <div class=\"w-full absolute h-full top-0 \">\n                <img loading=\"lazy\" decoding=\"async\" width=\"1440\" height=\"680\" src=\"https:\/\/ipaphysio.arelidev.com\/orange-county\/wp-content\/uploads\/sites\/3\/2025\/01\/eb7f58773bba85ad69c95f87614b80ef-1440x680.jpg\" class=\"object-cover w-full h-full\" alt=\"\" \/>            <\/div>\n        \n    <\/div>\n\n<style>.wp-block-kadence-spacer.kt-block-spacer-25_a103c2-2b .kt-block-spacer{height:60px;}.wp-block-kadence-spacer.kt-block-spacer-25_a103c2-2b .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:80%;border-top-style:solid;}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-25_a103c2-2b\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><\/div><\/div>\n\n\n\n<div class=\"wp-block-group sm:px-4 slide-in-right is-layout-constrained wp-container-core-group-is-layout-62c66622 wp-block-group sm:px-4-is-layout-constrained\"><!-- Adjust the top value below if your nav\/header height changes -->\n<aside  class=\"sticky-cta sticky top-20 bg-[#1D2224] shadow-lg z-50 rounded-md\" aria-label=\"Call to action\">\n    <div class=\"max-w-7xl mx-auto flex flex-col md:flex-row items-center px-[50px] py-[30px] gap-4\">\n        <div class=\"w-full md:w-3\/4 flex items-center text-white mb-6 md:mb-0\">\n                            <div class=\"prose max-w-none m-0 !text-white font-sans text-[20px] md:text-[28px] not-italic font-normal leading-[2rem] prose-a:!text-white prose-p:mb-0\">\n                    <p>Are you new to IPA Physio? <a style=\"#ffffff!important\" href=\"mailto:http:\/\/oc@ipa.physio\">Email oc@ipa.physio<\/a> to set up your free 15-minute phone consultation.<\/p>\n                <\/div>\n                    <\/div>\n        <div class=\"w-full md:w-1\/4 flex items-center cta-content justify-center md:justify-end\">\n                            <a\n                    href=\"\/contact-us\/\"\n                    class=\"tracking-[0.8px] md:tracking-[0.9px] button !text-white\"\n                    target=\"_self\"\n                                    >\n                    SCHEDULE                                    <\/a>\n                    <\/div>\n    <\/div>\n<\/aside>\n\n<\/div>\n\n\n\n<div class=\"wp-block-group sm:px-4 slide-in-bottom is-layout-constrained wp-container-core-group-is-layout-36904630 wp-block-group sm:px-4-is-layout-constrained\" style=\"padding-right:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)\">\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h1 class=\"wp-block-heading has-text-align-center\" style=\"font-size:48px\">Getting Started<\/h1>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\" style=\"font-size:24px\"><em>Get answers to some of the most common questions about our physical therapy methods and treatments while also learning about our rates and sessions. We\u2019ll also provide you with a list of what we will need you to bring on your first visit. Learn about what you can expect from the IPA experience!<\/em><\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div  class=\"ipa-button-block text-center\">\n    <a href=\"https:\/\/ipaphysio.arelidev.com\/orange-county\/#oc-contact\"\n       target=\"_self\"       class=\"tracking-[0.8px] md:tracking-[0.9px] button\">\n        Contact Us            <\/a>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group sm:px-4 is-layout-constrained wp-block-group sm:px-4-is-layout-constrained\">\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center has-h-3-font-size\">Proud to be a Partner<\/h3>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<section  class=\"w-full py-8\" aria-label=\"Our partners\">\n            <ul class=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-8 justify-items-center items-center list-none p-0 m-0\">\n                            <li class=\"flex flex-col items-center text-center list-none\">\n                    <img decoding=\"async\"\n                        src=\"https:\/\/ipaphysio.arelidev.com\/orange-county\/wp-content\/uploads\/sites\/3\/2025\/01\/hoag-icon.png\"\n                        alt=\"Hoag Concierge Medicine is the membership-based alternative to traditional primary care.\"\n                        class=\"max-h-24 object-contain\"\n                    \/>\n                                            <p class=\"mt-10 text-sm text-gray-800\">Hoag Concierge Medicine is the membership-based alternative to traditional primary care.<\/p>\n                                    <\/li>\n                            <li class=\"flex flex-col items-center text-center list-none\">\n                    <img decoding=\"async\"\n                        src=\"https:\/\/ipaphysio.arelidev.com\/orange-county\/wp-content\/uploads\/sites\/3\/2025\/01\/hoag-exec.png\"\n                        alt=\"Hoag Executive Health is offers a heightened experience for company executives\"\n                        class=\"max-h-24 object-contain\"\n                    \/>\n                                            <p class=\"mt-10 text-sm text-gray-800\">Hoag Executive Health is offers a heightened experience for company executives<\/p>\n                                    <\/li>\n                            <li class=\"flex flex-col items-center text-center list-none\">\n                    <img decoding=\"async\"\n                        src=\"https:\/\/ipaphysio.arelidev.com\/orange-county\/wp-content\/uploads\/sites\/3\/2025\/01\/oc-soccer.png\"\n                        alt=\"OCSC is Orange County\u2019s only professional soccer team\"\n                        class=\"max-h-24 object-contain\"\n                    \/>\n                                            <p class=\"mt-10 text-sm text-gray-800\">OCSC is Orange County\u2019s only professional soccer team<\/p>\n                                    <\/li>\n                            <li class=\"flex flex-col items-center text-center list-none\">\n                    <img decoding=\"async\"\n                        src=\"https:\/\/ipaphysio.arelidev.com\/orange-county\/wp-content\/uploads\/sites\/3\/2025\/01\/radical-wellness.png\"\n                        alt=\"Radical Wellness is a female-focused comprehensive wellness group\"\n                        class=\"max-h-24 object-contain\"\n                    \/>\n                                            <p class=\"mt-10 text-sm text-gray-800\">Radical Wellness is a female-focused comprehensive wellness group<\/p>\n                                    <\/li>\n                    <\/ul>\n    <\/section>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group sm:px-4 is-layout-flow wp-block-group sm:px-4-is-layout-flow\">\n<section class=\"ipa-split-content-block\"  aria-labelledby=\"split-content-title-block_bfdfce092ec94ce323a11da2fca23538\">\n    <div class=\"ipa-split-content-block-inner md:flex\">\n                    \n    <div class=\"content-column md:w-1\/2 text-gray-800 bg-gray-100 py-20 px-10 md:py-44 md:px-24 flex flex-col items-center relative\">\n        <div class=\"slide-in-bottom absolute inset-0 bg-cover bg-no-repeat hidden md:flex\" style=\"background-image: url('https:\/\/ipaphysio.arelidev.com\/orange-county\/wp-content\/themes\/ipa-physio\/img\/ipa-bg-icon.png'); background-position: 32% center;\" aria-hidden=\"true\"><\/div>\n        <div class=\"max-w-md relative\">\n            <h3 id=\"split-content-title-block_bfdfce092ec94ce323a11da2fca23538\" class=\"text-[40px] md:text-[40px] mb-8\">About IPA Physio OC<\/h3>\n            <div class=\"mb-8 block\"><p>IPA Physio OC specializes in managing complex conditions that may have not been solved by other medical interventions. If you feel like you have lost your quality of life, come to IPA Physio to discover how we can help you regain the quality of life you deserve.<\/p>\n<p>Your journey to a new you begins here.<br \/>\nView our extensive treatment list and click on diagnoses to explore general information, causes, treatments and latest research:<\/p>\n<\/div><a href=\"https:\/\/ipaphysio.arelidev.com\/treatments\/\" target=\"_self\"\n       class=\"button button-primary\">What We Treat<\/a>\n        <\/div>\n    <\/div>            <div class=\"media-column md:w-1\/2 relative overflow-hidden\"><img loading=\"lazy\" decoding=\"async\" width=\"716\" height=\"577\" src=\"https:\/\/ipaphysio.arelidev.com\/orange-county\/wp-content\/uploads\/sites\/3\/2025\/01\/what-we-treat.png\" class=\"object-cover h-60 md:h-full w-full md:absolute\" alt=\"\" srcset=\"https:\/\/ipaphysio.arelidev.com\/orange-county\/wp-content\/uploads\/sites\/3\/2025\/01\/what-we-treat.png 716w, https:\/\/ipaphysio.arelidev.com\/orange-county\/wp-content\/uploads\/sites\/3\/2025\/01\/what-we-treat-300x242.png 300w\" sizes=\"auto, (max-width: 716px) 100vw, 716px\" \/><\/div>            <\/div>\n<\/section>\n\n\n<section class=\"ipa-split-content-block\"  aria-labelledby=\"split-content-title-block_b38212023d0f29a0eea848c32b3f70e8\">\n    <div class=\"ipa-split-content-block-inner md:flex\">\n                    <div class=\"media-column md:w-1\/2 relative overflow-hidden\"><img loading=\"lazy\" decoding=\"async\" width=\"765\" height=\"1020\" src=\"https:\/\/ipaphysio.arelidev.com\/orange-county\/wp-content\/uploads\/sites\/3\/2025\/01\/about-our-team-of-experts.jpg\" class=\"object-cover h-60 md:h-full w-full md:absolute\" alt=\"\" srcset=\"https:\/\/ipaphysio.arelidev.com\/orange-county\/wp-content\/uploads\/sites\/3\/2025\/01\/about-our-team-of-experts.jpg 765w, https:\/\/ipaphysio.arelidev.com\/orange-county\/wp-content\/uploads\/sites\/3\/2025\/01\/about-our-team-of-experts-225x300.jpg 225w\" sizes=\"auto, (max-width: 765px) 100vw, 765px\" \/><\/div>            \n    <div class=\"content-column md:w-1\/2 text-white bg-primary py-20 px-10 md:py-44 md:px-24 flex flex-col items-center relative\">\n        <div class=\"slide-in-bottom absolute inset-0 bg-cover bg-no-repeat hidden md:flex\" style=\"background-image: url('https:\/\/ipaphysio.arelidev.com\/orange-county\/wp-content\/themes\/ipa-physio\/img\/ipa-bg-icon.png'); background-position: 32% center;\" aria-hidden=\"true\"><\/div>\n        <div class=\"max-w-md relative\">\n            <h3 id=\"split-content-title-block_b38212023d0f29a0eea848c32b3f70e8\" class=\"text-[40px] md:text-[40px] mb-8\">About Our Team of Expert Clinicians<\/h3>\n            <div class=\"mb-8 block\"><p>Our knowledgeable expert clinicians and administrative team are highly trained not only to help you resolve any pain or discomfort, but more importantly, identify the true cause of the issue. Let us help restore the movement you have lost and regain the quality of life you deserve.<\/p>\n<p>For our Orange County staff, your well-being and positive experience are our top priorities.<\/p>\n<\/div><a href=\"https:\/\/ipaphysio.arelidev.com\/orange-county\/meet-the-team\/\" target=\"_self\"\n       class=\"button button-white\">Meet the Team<\/a>\n        <\/div>\n    <\/div>            <\/div>\n<\/section><\/div>\n\n\n\n<div class=\"wp-block-group sm:px-4 is-layout-constrained wp-block-group sm:px-4-is-layout-constrained\">\n<div style=\"height:38px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group sm:px-4 sm:px-4 slide-in-top is-layout-constrained wp-block-group sm:px-4 sm:px-4-is-layout-constrained\">\n<h3 class=\"wp-block-heading has-text-align-center\" style=\"font-size:40px\">Life-Changing Stories<\/h3>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-text-align-center has-regular-font-size wp-block-paragraph\">Helping people is our passion and motivation to go to work each day. Hear from a number of our patients why IPA Physio is the best choice to help you eliminate pain, improve your body\u2019s function, and achieve your goals.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n    <div class=\"ipa-stories-slider-widget\" >\n        <div class=\"ipa-stories-slider-widget-inner relative\">\n            <!-- Swiper -->\n            <div class=\"swiper-container stories-swiper \">\n                <div class=\"swiper-wrapper\">\n                                                                    <div class=\"swiper-slide flex-shrink-0\">\n                            <div class=\"h-full text-center flex items-center justify-center rounded-md\">\n                                                                    <button type=\"button\"\n                                        class=\"story-video-trigger relative cursor-pointer p-0 border-0 bg-transparent\"\n                                        data-video-url=\"https:\/\/youtu.be\/d_xyD3nNQuo?si=Iu10sO7nCIsH3rUw\"\n                                        aria-haspopup=\"dialog\"\n                                        aria-label=\"Play video: OC Story 4\"\n                                    >\n                                        <img decoding=\"async\" src=\"https:\/\/ipaphysio.arelidev.com\/orange-county\/wp-content\/uploads\/sites\/3\/2025\/01\/before-your-visit-hero-711x400.jpg\" class=\"w-[100vh] h-[245px] md:h-[400px] object-cover story-image rounded-md\" alt=\"\" \/>\n                                        <span class=\"play-button-overlay absolute inset-0 flex items-center justify-center\" aria-hidden=\"true\">\n                                            <svg aria-hidden=\"true\" focusable=\"false\" width=\"64\" height=\"64\" viewBox=\"0 0 64 64\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                                                <circle cx=\"32\" cy=\"32\" r=\"32\" fill=\"rgba(0,0,0,0.5)\"\/>\n                                                <polygon points=\"26,20 48,32 26,44\" fill=\"#fff\"\/>\n                                            <\/svg>\n                                        <\/span>\n                                    <\/button>\n                                                            <\/div>\n                        <\/div>\n                                                                    <div class=\"swiper-slide flex-shrink-0\">\n                            <div class=\"h-full text-center flex items-center justify-center rounded-md\">\n                                                                    <a href=\"https:\/\/ipaphysio.arelidev.com\/orange-county\/?stories=oc-story-3\" class=\"story-link\" aria-label=\"Read story: OC Story 3\">\n                                        <img loading=\"lazy\" decoding=\"async\" width=\"711\" height=\"400\" src=\"https:\/\/ipaphysio.arelidev.com\/orange-county\/wp-content\/uploads\/sites\/3\/2025\/04\/OC-story-3-711x400.jpg\" class=\"w-[100vh] h-[245px] md:h-[400px] object-cover story-image wp-post-image\" alt=\"\" \/>                                    <\/a>\n                                                            <\/div>\n                        <\/div>\n                                                                    <div class=\"swiper-slide flex-shrink-0\">\n                            <div class=\"h-full text-center flex items-center justify-center rounded-md\">\n                                                                    <a href=\"https:\/\/ipaphysio.arelidev.com\/orange-county\/?stories=oc-story-2\" class=\"story-link\" aria-label=\"Read story: OC Story-2\">\n                                        <img loading=\"lazy\" decoding=\"async\" width=\"711\" height=\"400\" src=\"https:\/\/ipaphysio.arelidev.com\/orange-county\/wp-content\/uploads\/sites\/3\/2025\/04\/Oc-story-2-711x400.jpg\" class=\"w-[100vh] h-[245px] md:h-[400px] object-cover story-image wp-post-image\" alt=\"\" \/>                                    <\/a>\n                                                            <\/div>\n                        <\/div>\n                                                                    <div class=\"swiper-slide flex-shrink-0\">\n                            <div class=\"h-full text-center flex items-center justify-center rounded-md\">\n                                                                    <button type=\"button\"\n                                        class=\"story-video-trigger relative cursor-pointer p-0 border-0 bg-transparent\"\n                                        data-video-url=\"https:\/\/youtu.be\/LXb3EKWsInQ\"\n                                        aria-haspopup=\"dialog\"\n                                        aria-label=\"Play video: OC Story 1\"\n                                    >\n                                        <img decoding=\"async\" src=\"https:\/\/ipaphysio.arelidev.com\/orange-county\/wp-content\/uploads\/sites\/3\/2025\/04\/OC-story-1-711x400.jpg\" class=\"w-[100vh] h-[245px] md:h-[400px] object-cover story-image rounded-md\" alt=\"\" \/>\n                                        <span class=\"play-button-overlay absolute inset-0 flex items-center justify-center\" aria-hidden=\"true\">\n                                            <svg aria-hidden=\"true\" focusable=\"false\" width=\"64\" height=\"64\" viewBox=\"0 0 64 64\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                                                <circle cx=\"32\" cy=\"32\" r=\"32\" fill=\"rgba(0,0,0,0.5)\"\/>\n                                                <polygon points=\"26,20 48,32 26,44\" fill=\"#fff\"\/>\n                                            <\/svg>\n                                        <\/span>\n                                    <\/button>\n                                                            <\/div>\n                        <\/div>\n                                    <\/div>\n\n                <div class=\"md:hidden swiper-pagination stories-pagination\"><\/div>\n            <\/div>\n        <\/div>\n\n    <\/div>\n\n    <script>\n        document.addEventListener('DOMContentLoaded', function() {\n            var swiper = new Swiper('.stories-swiper', {\n                slidesPerView: 3,\n                spaceBetween: 0,\n                centeredSlides: true,\n                loop: true,\n                a11y: {\n                    enabled: true,\n                    paginationBulletMessage: 'Go to slide {{index}}',\n                    prevSlideMessage: 'Previous story',\n                    nextSlideMessage: 'Next story'\n                },\n                keyboard: { enabled: true },\n                pagination: {\n                    el: '.stories-pagination',\n                    clickable: true,\n                    dynamicBullets: true,\n                },\n                breakpoints: {\n                    320: { slidesPerView: 1, spaceBetween: 5 },\n                    768: { slidesPerView: 1.5, spaceBetween: 5 },\n                    1024: { slidesPerView: 1.75, spaceBetween: 25 },\n                },\n            });\n\n            \/\/ Video modal logic \u2014 wired through window.IpaModal for focus trap, Escape, focus restore.\n            const modal = document.getElementById('story-video-modal');\n            const modalContent = document.getElementById('story-video-modal-content');\n            if (!modal || !modalContent) return;\n\n            function buildEmbed(videoUrl) {\n                const ytMatch = videoUrl.match(\/(?:youtube\\.com\\\/watch\\?v=|youtu\\.be\\\/)([A-Za-z0-9_-]+)\/);\n                if (ytMatch) {\n                    return `<iframe loading=\"lazy\" title=\"Story video\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/${ytMatch[1]}?autoplay=1&#038;cc_load_policy=1\" frameborder=\"0\" allowfullscreen><\/iframe>`;\n                }\n                const vimeoMatch = videoUrl.match(\/vimeo\\.com\\\/(\\d+)\/);\n                if (vimeoMatch) {\n                    return `<iframe loading=\"lazy\" title=\"Story video\" width=\"560\" height=\"315\" src=\"https:\/\/player.vimeo.com\/video\/${vimeoMatch[1]}?autoplay=1\" frameborder=\"0\" allowfullscreen><\/iframe>`;\n                }\n                return `<video title=\"Story video\" width=\"560\" height=\"315\" controls autoplay><source src=\"${videoUrl}\"><\/video>`;\n            }\n\n            document.querySelectorAll('.story-video-trigger').forEach(function(trigger) {\n                trigger.addEventListener('click', function(event) {\n                    event.preventDefault();\n                    event.stopPropagation();\n                    modalContent.innerHTML = buildEmbed(trigger.getAttribute('data-video-url'));\n                    if (window.IpaModal) {\n                        window.IpaModal.open(modal, { trigger });\n                    } else {\n                        modal.classList.remove('hidden');\n                    }\n                });\n            });\n\n            \/\/ Clear embed (and stop audio) whenever the modal closes.\n            const observer = new MutationObserver(function() {\n                if (modal.classList.contains('hidden')) {\n                    modalContent.innerHTML = '';\n                }\n            });\n            observer.observe(modal, { attributes: true, attributeFilter: ['class'] });\n        });\n    <\/script>\n    <style>\n        \/* Image dimensions *\/\n        .story-image {\n            \/*width: 374px;*\/\n            \/*height: 245px;*\/\n        }\n\n        @media (min-width: 1024px) {\n            .story-image {\n                \/*width: 711.111px;*\/\n                \/*width: 100vh;*\/\n                \/*height: 400px;*\/\n            }\n        }\n\n        \/* Pagination styling *\/\n        .stories-pagination {\n            position: absolute;\n            bottom: -30px !important;\n            left: 0;\n            right: 0;\n            z-index: 10;\n        }\n        .swiper-pagination-bullet {\n            width: 12px;\n            height: 12px;\n            background: #D9D9D9; \/* Non-active color *\/\n            opacity: 1;\n            margin: 0 5px !important;\n        }\n        .swiper-pagination-bullet-active {\n            background: #7DA1F2; \/* Active color *\/\n        }\n        .play-button-overlay {\n            pointer-events: none;\n        }\n        .story-video-trigger:hover .play-button-overlay {\n            filter: brightness(1.2);\n        }\n        #story-video-modal {\n            display: none;\n        }\n        #story-video-modal.flex {\n            display: flex;\n        }\n        #story-video-modal .bg-white {\n            animation: modalFadeIn 0.2s;\n        }\n        @keyframes modalFadeIn {\n            from { transform: scale(0.95); opacity: 0; }\n            to { transform: scale(1); opacity: 1; }\n        }\n        #story-video-modal-content iframe,\n        #story-video-modal-content video {\n            width: 90vw;\n            max-width: 800px;\n            height: 50vw;\n            max-height: 450px;\n            border-radius: 0.75rem;\n            background: #000;\n            box-shadow: 0 4px 32px rgba(0,0,0,0.25);\n        }\n        @media (max-width: 600px) {\n            #story-video-modal-content iframe,\n            #story-video-modal-content video {\n                max-width: 98vw;\n                height: 56vw;\n                max-height: 60vw;\n            }\n            #story-video-modal .bg-white {\n                padding: 0.5rem;\n            }\n        }\n        #close-story-video-modal {\n            transition: background 0.2s, color 0.2s;\n        }\n        #close-story-video-modal:hover {\n            background: #f87171;\n            color: #fff;\n        }\n        .custom-modal-bg {\n            background-color: rgb(59 87 149 \/ var(--tw-bg-opacity,1));\n        }\n    <\/style>\n\n    <!-- Video Modal -->\n    <div id=\"story-video-modal\"\n        class=\"fixed inset-0 z-50 hidden items-center justify-center\"\n        role=\"dialog\"\n        aria-modal=\"true\"\n        aria-labelledby=\"story-video-modal-title\"\n    >\n        <div class=\"modal-overlay absolute inset-0 bg-black\/75\" data-modal-close aria-hidden=\"true\"><\/div>\n        <div class=\"relative custom-modal-bg bg-opacity-95 rounded-xl shadow-xl p-0 md:p-6 flex flex-col items-center justify-center max-w-3xl w-[95vw] max-h-[90vh]\">\n            <h2 id=\"story-video-modal-title\" class=\"sr-only\">Story video player<\/h2>\n            <button type=\"button\"\n                id=\"close-story-video-modal\"\n                class=\"absolute top-2 right-2 text-gray-100 hover:text-red-300 text-4xl font-bold leading-none z-10 bg-white bg-opacity-20 rounded-full w-10 h-10 flex items-center justify-center shadow-md\"\n                data-modal-close\n                aria-label=\"Close video\"\n            >&times;<\/button>\n            <div id=\"story-video-modal-content\" class=\"w-full flex items-center justify-center\">\n                <!-- Video will be injected here -->\n            <\/div>\n        <\/div>\n    <\/div>\n\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div  class=\"ipa-button-block text-center\">\n    <a href=\"\/stories\/\"\n       target=\"_self\"       class=\"tracking-[0.8px] md:tracking-[0.9px] button\">\n        Read More Life-Changing Stories            <\/a>\n<\/div>\n\n\n\n<div style=\"height:75px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n<\/div>\n\n\n\n\n<div id=\"oc-contact\" 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: 7 AM\u2013 5 PM<\/div><div class=\"text-sm md:text-base\">Tuesday: 8 AM\u2013 5 PM<\/div><div class=\"text-sm md:text-base\">Wednesday: 8 AM\u2013 5 PM<\/div><div class=\"text-sm md:text-base\">Thursday: Closed<\/div><div class=\"text-sm md:text-base\">Friday: 8 AM\u2013 5 PM<\/div><div class=\"text-sm md:text-base\">Saturday &amp; Sunday: Closed<\/div><\/div>\n        <div class=\"w-full flex justify-start max-w-sm\">\n            <script charset=\"utf-8\" type=\"text\/javascript\" src=\"\/\/js-na2.hsforms.net\/forms\/embed\/v2.js\"><\/script>\r\n<script>\r\n  hbspt.forms.create({\r\n    portalId: \"47487699\",\r\n    formId: \"81ca69f6-a7fd-428c-ada4-61e6a7a8e4f0\",\r\n    region: \"na2\"\r\n  });\r\n<\/script>\r\n\n        <\/div>\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\"\n             class=\"absolute inset-0 bg-white bg-opacity-90 items-center justify-center z-10 p-4 hidden\"\n             role=\"dialog\"\n             aria-modal=\"true\"\n             aria-labelledby=\"zip-lookup-title\"\n        >\n            <div class=\"bg-white p-6 md:p-8 rounded-lg shadow-lg text-center max-w-sm w-full\">\n                <h2 id=\"zip-lookup-title\" class=\"text-xl md:text-2xl font-semibold mb-2 text-gray-900 leading-tight\">FIND THE IPA PHYSIO LOCATION NEAR YOU.<\/h2>\n                <label for=\"zip-code-input\" class=\"block text-base md:text-lg mb-4 md:mb-6 text-gray-700\">ENTER YOUR ZIP CODE<\/label>\n                <input\n                    type=\"text\"\n                    id=\"zip-code-input\"\n                    placeholder=\"Postal Code\"\n                    autocomplete=\"postal-code\"\n                    inputmode=\"numeric\"\n                    aria-describedby=\"zip-code-error\"\n                    aria-invalid=\"false\"\n                    class=\"w-full px-4 py-3 border border-gray-300 rounded-lg mb-2 text-center text-base md:text-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500\"\n                >\n                <p id=\"zip-code-error\" role=\"alert\" aria-live=\"assertive\" class=\"text-sm text-red-700 mb-2 min-h-[1.25rem]\"><\/p>\n                <button type=\"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\"\n             class=\"absolute inset-0 bg-white z-10 hidden md:hidden\"\n             role=\"region\"\n             aria-label=\"Nearby locations\"\n        >\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 type=\"button\" id=\"close-mobile-slider\" class=\"text-[#3B5795] font-medium\" aria-label=\"Close nearby locations\">\n                        <span aria-hidden=\"true\">\u2715<\/span>\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 type=\"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 type=\"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\\\/orange-county\\\/wp-content\\\/uploads\\\/sites\\\/3\\\/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: 0.75rem;\">\n                        ${leftColumn.join('<br>')}\n                    <\/div>\n                    <div class=\"flex-1 leading-tight text-gray-600\" style=\"font-size: 0.75rem;\">\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 setZipError(message) {\n    const errorEl = document.getElementById('zip-code-error');\n    const input = document.getElementById('zip-code-input');\n    if (errorEl) errorEl.textContent = message || '';\n    if (input) input.setAttribute('aria-invalid', message ? 'true' : 'false');\n}\n\nfunction handleZipCodeLookup() {\n    const zipCode = document.getElementById('zip-code-input').value.trim();\n\n    if (!zipCode) {\n        setZipError('Please enter a ZIP code.');\n        document.getElementById('zip-code-input').focus();\n        return;\n    }\n\n    setZipError('');\n\n    geocoder.geocode({ address: zipCode }, (results, status) => {\n        if (status === 'OK') {\n            const userLocation = results[0].geometry.location;\n\n            const overlay = document.getElementById('zip-lookup-overlay');\n            overlay.classList.add('hidden');\n            overlay.classList.remove('flex');\n\n            if (isMobileDevice()) {\n                showMobileLocationCards(userLocation);\n            } else {\n                findClosestLocation(userLocation);\n            }\n\n        } else {\n            setZipError('Unable to find location for ZIP code: ' + zipCode);\n            document.getElementById('zip-code-input').focus();\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: 0.875rem;\">\n                            ${leftColumn.join('<br>')}\n                        <\/div>\n                        <div class=\"flex-1 leading-tight text-gray-600\" style=\"font-size: 0.875rem;\">\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    const input = document.getElementById('zip-code-input');\n    if (input) {\n        input.value = '';\n        setZipError('');\n        \/\/ Defer focus until the overlay is laid out.\n        requestAnimationFrame(() => input.focus());\n    }\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":"<p>Getting Started Get answers to some of the most common questions about our physical therapy methods and treatments while also learning about our rates and sessions. We\u2019ll also provide you with a list of what we will need you to bring on your first visit. Learn about what you can expect from the IPA experience! [&hellip;]<\/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,"footnotes":""},"class_list":["post-25","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/ipaphysio.arelidev.com\/orange-county\/wp-json\/wp\/v2\/pages\/25","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ipaphysio.arelidev.com\/orange-county\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ipaphysio.arelidev.com\/orange-county\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ipaphysio.arelidev.com\/orange-county\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ipaphysio.arelidev.com\/orange-county\/wp-json\/wp\/v2\/comments?post=25"}],"version-history":[{"count":49,"href":"https:\/\/ipaphysio.arelidev.com\/orange-county\/wp-json\/wp\/v2\/pages\/25\/revisions"}],"predecessor-version":[{"id":437,"href":"https:\/\/ipaphysio.arelidev.com\/orange-county\/wp-json\/wp\/v2\/pages\/25\/revisions\/437"}],"wp:attachment":[{"href":"https:\/\/ipaphysio.arelidev.com\/orange-county\/wp-json\/wp\/v2\/media?parent=25"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}