Compare commits

..

13 Commits

Author SHA1 Message Date
akash
77bcd5b1c8 site map links updated & new 3rd member and member details updated 2025-09-20 22:13:14 +05:30
akash
b8c0d41e8c site map links updated & new 3rd member and member details updated 2025-09-20 22:10:00 +05:30
Alaguraj0361
d97bd390a2 mobile banner updated 2025-09-20 22:09:45 +05:30
Alaguraj0361
2ac6b353d0 Merge branch 'team' of https://git.metatroncube.in/MetatroncubeSoftwareSolutions/rapharehap into team 2025-09-20 20:46:00 +05:30
Alaguraj0361
bb23a60d5e banner section updated 2025-09-20 20:45:05 +05:30
akash
fd5f320ebd Banner responisive updated 2025-09-20 20:30:27 +05:30
akash
a8cb2f150f Header responsive updated 2025-09-20 19:45:36 +05:30
akash
5852a9f058 Header responsive updated 2025-09-20 19:45:15 +05:30
Alaguraj0361
5a719ec317 expand remove for home banner 2025-09-20 17:39:26 +05:30
akash
33446ed58c Header colored logo updated 2025-09-20 17:28:01 +05:30
akash
d7809d0ead Home and mobile new banner updated 2025-09-20 17:24:10 +05:30
akash
7eefd03dba Hedaer top transprent updated new banners updated 2025-09-20 17:17:05 +05:30
b21e729bf5 meta title, dis and banner updated 2025-09-19 17:16:45 +05:30
68 changed files with 903 additions and 532 deletions

View File

@ -2,15 +2,15 @@ import Layout from "@/components/layout/Layout";
import AboutClient from "../about-us/AboutClient";
export const metadata = {
title: "About Us Rapharehab Clinic",
title: "The Best Physiotherapy in Etobicoke - Rapha Rehab Clinic",
description:
"Learn more about Rapha Rehab Physiotherapy and Rehabilitation Clinic in Etobicoke. Discover our mission, vision, values, and experienced physiotherapy team.",
"Rapha Rehab offers top physiotherapy, osteopath & massage therapy in Etobicoke, Mississauga. Trusted physio & hand massage specialists.",
};
export default function AboutPage() {
return (
<Layout
headerStyle={2}
headerStyle={1}
footerStyle={1}
breadcrumbTitle="About Us"
bannerImage="/assets/images/about-us/about-us-banner.webp"

View File

@ -33,7 +33,7 @@ export default function AccidentDetailsPage({ params }) {
return (
<Layout
headerStyle={2}
headerStyle={1}
footerStyle={1}
breadcrumbTitle={`${service.title}`}
bannerImage={service.bannerImage}

View File

@ -10,7 +10,7 @@ export const metadata = {
export default function AccidentPage() {
return (
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle="Accident" bannerImage="/assets/images/accident/accident-banner.webp">
<Layout headerStyle={1} footerStyle={1} breadcrumbTitle="Accident" bannerImage="/assets/images/accident/accident-banner.webp">
<section className="service-section sec-pad-2">
<div className="auto-container">
<div className="row clearfix">

View File

@ -34,7 +34,7 @@ export default function AreaOfInjuryDetails({ params }) {
return (
<Layout
headerStyle={2}
headerStyle={1}
footerStyle={1}
breadcrumbTitle={service.title}
bannerImage={service.bannerImage}

View File

@ -10,7 +10,7 @@ export const metadata = {
export default function AreaOfInjury() {
return (
<Layout
headerStyle={2}
headerStyle={1}
footerStyle={1}
breadcrumbTitle="Areas of Injury"
bannerImage="/assets/images/areas-of-injury/area-of-injury-banner.webp"

View File

@ -36,7 +36,7 @@ export default function BlogDetails({ params }) {
return (
<Layout
headerStyle={2}
headerStyle={1}
footerStyle={1}
breadcrumbTitle={blog.title}
bannerImage={blog.bannerImage}

View File

@ -10,7 +10,7 @@ export const metadata = {
export default function Blog() {
return (
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle="Blog" bannerImage="/assets/images/blog/blog-banner.webp">
<Layout headerStyle={1} footerStyle={1} breadcrumbTitle="Blog" bannerImage="/assets/images/blog/blog-banner.webp">
<section className="news-section sec-pad">
<div className="auto-container">
<div className="sec-title mb_50 centred">

View File

@ -24,7 +24,7 @@ export default function Home() {
}
return (
<>
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle="Caregivers" bannerImage="/assets/images/caregivers/caregivers-banner.webp">
<Layout headerStyle={1} footerStyle={1} breadcrumbTitle="Caregivers" bannerImage="/assets/images/caregivers/caregivers-banner.webp">
<section className="feature-section pt_90 pb_90">
<div className="shape" style={{ backgroundImage: 'url(/assets/images/shape/shape-6.png)' }}></div>
<div className="auto-container">

View File

@ -10,7 +10,7 @@ export const metadata = {
export default function ContactPage() {
return (
<Layout
headerStyle={2}
headerStyle={1}
footerStyle={1}
breadcrumbTitle="Contact Us"
bannerImage="/assets/images/contact/contact-us-banner.webp"

View File

@ -10,7 +10,7 @@ export const metadata = {
export default function CovidPage() {
return (
<Layout
headerStyle={2}
headerStyle={1}
footerStyle={1}
breadcrumbTitle="COVID-19 Updates"
bannerImage="/assets/images/covid/covid-19-banner.webp"

View File

@ -34,7 +34,7 @@ export default function ServiceDetailPage({ params }) {
}
return (
<Layout headerStyle={2} footerStyle={1}
<Layout headerStyle={1} footerStyle={1}
breadcrumbTitle={service.shortTitle}
bannerImage={service.bannerImage}>
<ServiceDetailClient slug={slug} service={service} servicesList={servicesList} />

View File

@ -10,7 +10,7 @@ export const metadata = {
export default function ServicesPage() {
return (
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle="Services"
<Layout headerStyle={1} footerStyle={1} breadcrumbTitle="Services"
bannerImage="/assets/images/areas-of-injury/area-of-injury-banner.webp">
<section className="service-section sec-pad-2">
<div className="auto-container">

View File

@ -10,7 +10,7 @@ export const metadata = {
export default function FaqPage() {
return (
<Layout
headerStyle={2}
headerStyle={1}
footerStyle={1}
breadcrumbTitle="Faq's"
bannerImage="/assets/images/faq/faq-banner.webp"

View File

@ -10,7 +10,7 @@ export const metadata = {
export default function GalleryPage() {
return (
<Layout
headerStyle={2}
headerStyle={1}
footerStyle={1}
breadcrumbTitle="Gallery"
bannerImage="/assets/images/gallery-page/gallery-banner.webp"

View File

@ -3,14 +3,14 @@ const PortfolioFilter1 = dynamic(() => import('@/components/elements/Locations')
import Layout from "@/components/layout/Layout"
export const metadata = {
title: "Locations - rapharehab",
title: "Rapha Rehab Locations - The Best Physiotherapy Clinic ",
description:
"Learn more about Rapha Rehab Physiotherapy and Rehabilitation Clinic in Etobicoke. Discover our mission, vision, values, and experienced physiotherapy team.",
"Explore Rapha Rehab locations across Chicago, Kansas, New Mexico, Nevada, New York & Texas. Find expert physiotherapy near you.",
};
export default function Gallery() {
return (
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle="Locations" bannerImage="/assets/images/location/location-banner.webp">
<Layout headerStyle={1} footerStyle={1} breadcrumbTitle="Locations" bannerImage="/assets/images/location/location-banner.webp">
<section className="gallery-section sec-pad">
<div className="outer-container">
<div className="sec-title centred mb_30">

View File

@ -6,7 +6,7 @@ import { teamMembers } from "@/utils/constant.utils";
export default function Home() {
return (
<>
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle="Our Team" bannerImage="/assets/images/our-team/our-team-banner.webp">
<Layout headerStyle={1} footerStyle={1} breadcrumbTitle="Our Team" bannerImage="/assets/images/our-team/our-team-banner.webp">
<section className="team-section pt_90 pb_90 centred">
<div className="auto-container">
<div className="sec-title mb_50">
@ -24,7 +24,11 @@ export default function Home() {
<div className="inner-box">
<div className="image-box">
<figure className="image">
<img src={member.image} alt={member.name} />
<img
src={member.image}
alt={member.name}
style={{ width: "410px", height: "444px", objectFit: "cover" }}
/>
</figure>
</div>
<div className="lower-content">

View File

@ -29,8 +29,8 @@ export async function generateMetadata({ params }) {
}
return {
title: `${member.name} Rapha Rehab Clinic`,
description: member.description || `Learn more about ${member.name}, their experience, expertise, and services at Rapha Rehab Clinic in Etobicoke and Scarborough.`,
title: member.metaTitle || `${member.name} Rapha Rehab Clinic`,
description: member.metaDis || `Learn more about ${member.name}, their experience, expertise, and services at Rapha Rehab Clinic in Etobicoke and Scarborough.`,
};
}
@ -39,7 +39,7 @@ export default function TeamDetails({ params }) {
if (!member) {
return (
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle="Not Found">
<Layout headerStyle={1} footerStyle={1} breadcrumbTitle="Not Found">
<div className="auto-container">
<h2>Team member not found!</h2>
<Link href="/" className="theme-btn btn-one">Go Back</Link>
@ -50,7 +50,7 @@ export default function TeamDetails({ params }) {
return (
<Layout
headerStyle={2}
headerStyle={1}
footerStyle={1}
breadcrumbTitle={member.name}
bannerImage={member.bannerImage}

View File

@ -10,7 +10,7 @@ export const metadata = {
export default function About() {
return (
<>
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle="Our Approach" bannerImage="/assets/images/our-approach/our-approach-banner.webp">
<Layout headerStyle={1} footerStyle={1} breadcrumbTitle="Our Approach" bannerImage="/assets/images/our-approach/our-approach-banner.webp">
{/* about-section */}
<section className="about-style-two pt_90 pb_90">
<div className="pattern-layer">

View File

@ -11,7 +11,7 @@ export const metadata = {
export default function About() {
return (
<>
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle="Payment And Insurance" bannerImage="/assets/images/payment-insurance/payment-banner.webp">
<Layout headerStyle={1} footerStyle={1} breadcrumbTitle="Payment And Insurance" bannerImage="/assets/images/payment-insurance/payment-banner.webp">
{/* chooseus-section */}
<section className="solutions-section">
<div className="auto-container">

View File

@ -28,7 +28,7 @@ export default function RehabilitationDetailsPage({ params }) {
return (
<Layout
headerStyle={2}
headerStyle={1}
footerStyle={1}
breadcrumbTitle={`${service.title}`}
bannerImage={service.bannerImage}

View File

@ -10,7 +10,7 @@ export const metadata = {
export default function RehabilitationPage() {
return (
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle="Rehabilitation" bannerImage="/assets/images/rehabilitation/rehabilation-banner.webp">
<Layout headerStyle={1} footerStyle={1} breadcrumbTitle="Rehabilitation" bannerImage="/assets/images/rehabilitation/rehabilation-banner.webp">
<section className="service-section sec-pad-2">
<div className="auto-container">
<div className="row clearfix">

View File

@ -10,7 +10,7 @@ export default function Home() {
return (
<Layout
headerStyle={2}
headerStyle={1}
footerStyle={1}
breadcrumbTitle="Shortcodes"
bannerImage="/assets/images/shortcodes/shortcodes-banner.webp"

View File

@ -2,9 +2,9 @@ import Layout from "@/components/layout/Layout";
import ShortcodesClient from "../shortcodes/ShortcodesClient";
export const metadata = {
title: "Shortcodes - rapharehab",
title: "Rapha Rehab Shortcodes - Helpful Service Snippets",
description:
"Explore all available shortcodes for Rapha Rehab Clinic, including icon lists, care steps, team members, testimonials, and interactive content.",
"Explore Rapha Rehabs service snippets: FAQs, payment & insurance, areas of injury, and more - quick access to key info in one place.",
};
export default function ShortcodesPage() {

View File

@ -11,7 +11,7 @@ export const metadata = {
export default function About() {
return (
<>
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle=" What To Expect" bannerImage="/assets/images/what-we-expect/expect-banner.webp">
<Layout headerStyle={1} footerStyle={1} breadcrumbTitle=" What To Expect" bannerImage="/assets/images/what-we-expect/expect-banner.webp">
{/* chooseus-section */}
<section className="about-style-three pt_90 pb_90">
<div className="pattern-layer" style={{ backgroundImage: 'url(/assets/images/shape/shape-35.webp)' }}></div>

View File

@ -18,7 +18,7 @@ export default function Team() {
{ name: 'Pre/Post Surgical Management', image: '/assets/images/why-us/img/surgical.webp' },
];
return (
<Layout headerStyle={2} footerStyle={1} breadcrumbTitle="Why Us" bannerImage="/assets/images/why-us/why-us-banner.webp">
<Layout headerStyle={1} footerStyle={1} breadcrumbTitle="Why Us" bannerImage="/assets/images/why-us/why-us-banner.webp">
<section className="team-section pt_90 centred pb-0">
<div className="pattern-layer">
<div className="pattern-1" style={{ backgroundImage: 'url(/assets/images/shape/shape-13.webp)' }}></div>

View File

@ -1,14 +1,29 @@
'use client'
import { useEffect, useState } from "react";
export default function Preloader() {
return (
<>
<div className="loader-wrap">
<div className="preloader"><div className="preloader-close">Preloader Close</div></div>
<div className="layer layer-one"><span className="overlay" /></div>
<div className="layer layer-two"><span className="overlay" /></div>
<div className="layer layer-three"><span className="overlay" /></div>
</div>
const [loading, setLoading] = useState(true);
useEffect(() => {
</>
)
const timer = setTimeout(() => {
setLoading(false);
}, 2000);
return () => clearTimeout(timer);
}, []);
if (!loading) return null;
return (
<div className="loader-wrap">
<div className="preloader">
<img src="/assets/images/logo.png" alt="rapharehab" className="preloader-icon" />
{/* <div className="preloader-close">Preloader Close</div> */}
</div>
<div className="layer layer-one"><span className="overlay" /></div>
<div className="layer layer-two"><span className="overlay" /></div>
<div className="layer layer-three"><span className="overlay" /></div>
</div>
);
}

View File

@ -15,7 +15,7 @@ export default function Menu() {
<Link className={router.pathname == "/index-2" ? "active" : ""}>Home Interior</Link>
</ul> */}
<ul className="navigation clearfix">
<ul className="navigation new-nav clearfix">
<li className="dropdown"><Link href="/">Home</Link>
{/* <ul>
<li><Link href="/">Home Page One</Link></li>

View File

@ -4,107 +4,101 @@ import Menu from "../Menu"
import MobileMenu from "../MobileMenu"
export default function Header1({ scroll, isMobileMenu, handleMobileMenu, isSidebar, handlePopup, handleSidebar }) {
return (
<>
<header className={`main-header ${scroll ? "fixed-header" : ""}`}>
{/* Header Top */}
<div className="header-top">
<div className="auto-container">
<div className="top-inner">
<ul className="info-list clearfix">
<li>
<i className="icon-1"></i>Mon - Fri 8:00 - 18:00 / Sunday 8:00 - 14:00
</li>
<li>
<i className="icon-2"></i>Email: <Link href="tel:01989526503">0198-9526503</Link>
</li>
<li>
<img src="assets/images/icons/icon-1.png" alt="location" /> 47 Bakery Street, London, UK
</li>
</ul>
<ul className="social-links clearfix">
<li>
<Link href="/">
<i className="icon-4"></i>
</Link>
</li>
<li>
<Link href="/">
<i className="icon-5"></i>
</Link>
</li>
<li>
<Link href="/">
<i className="icon-6"></i>
</Link>
</li>
<li>
<Link href="/">
<i className="icon-7"></i>
</Link>
</li>
</ul>
</div>
</div>
</div>
{/* Header Upper */}
<div className="header-lower">
<div className="outer-container">
<div className="auto-container">
<div className="outer-box">
<div className="logo-box">
<figure className="logo">
<Link href="/"><img src="/assets/images/logo.png" alt="rapharehab" /></Link>
</figure>
</div>
<div className="menu-area">
<div className="mobile-nav-toggler" onClick={handleMobileMenu}>
<i className="icon-bar"></i>
<i className="icon-bar"></i>
<i className="icon-bar"></i>
</div>
<nav className="main-menu navbar-expand-md navbar-light clearfix">
<div className="collapse navbar-collapse show clearfix" id="navbarSupportedContent">
<Menu/>
</div>
</nav>
</div>
<div className="btn-box">
<Link href="/" className="theme-btn btn-one"><span>Request A Pickup</span></Link>
return (
<>
<header className={`main-header ${scroll ? "fixed-header" : ""}`}>
{/* Header Top */}
<div className="header-top">
<div className="auto-container">
<div className="top-inner">
<ul className="info-list clearfix">
<li>
<img
src="/assets/images/icons/call.png"
alt="Phone"
style={{ marginRight: "8px" }}
className="red-icon"
/>
<Link href="tel:647-722-3434">647-722-3434</Link>
</li>
<li>
<img
src="/assets/images/icons/mail.png"
alt="Mail"
style={{ marginRight: "8px" }}
className="red-icon"
/>
<Link href="mailto:bloor@rapharehab.ca">bloor@rapharehab.ca</Link>
</li>
</ul>
<ul className="social-links clearfix">
<li><Link href="/why-rapha-physiotherapy-etobicoke">Why Us</Link></li>
<li><Link href="/faq-physiotherapy-etobicoke">Faq</Link></li>
<li><Link href="/what-to-expect">What To Expect</Link></li>
<li><Link href="/payment-insurance">Payment And Insurance</Link></li>
<li>
<Link href="https://www.instagram.com/elrapharehab/" target="_blank" rel="noopener noreferrer">
<i className="icon-4"></i>
</Link>
</li>
<li>
<Link href="https://www.facebook.com/ELRaphaRehabCenter/" target="_blank" rel="noopener noreferrer">
<i className="icon-7"></i>
</Link>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
{/* Sticky Header */}
<div className="sticky-header">
<div className="auto-container">
<div className="outer-box">
<div className="logo-box">
<figure className="logo"><Link href="/"><img src="/assets/images/logo.png" alt="rapharehab" /></Link></figure>
</div>
<nav className="main-menu navbar-expand-md navbar-light clearfix">
<div className="collapse navbar-collapse show clearfix" id="navbarSupportedContent">
<Menu/>
</div>
</nav>
<ul className="menu-right-content">
<div className="btn-box">
<Link href="/" className="theme-btn btn-one"><span>Request A Pickup</span></Link>
</div>
</ul>
</div>
</div>
</div>{/* End Sticky Menu */}
{/* Mobile Menu */}
<MobileMenu handleMobileMenu={handleMobileMenu} />
</header>
</>
)
{/* Header Upper */}
<div className="header-lower">
<div className="outer-container">
<div className="outer-box new">
<div className="logo-box">
<figure className="logo">
<Link href="/"><img src="/assets/images/logo.png" alt="rapharehab" /></Link>
</figure>
</div>
<div className="menu-area">
<div className="mobile-nav-toggler" onClick={handleMobileMenu}>
<i className="icon-bar"></i>
<i className="icon-bar"></i>
<i className="icon-bar"></i>
</div>
<nav className="main-menu new-menu navbar-expand-md navbar-light clearfix">
<div className="collapse navbar-collapse show clearfix" id="navbarSupportedContent">
<Menu />
</div>
</nav>
</div>
</div>
</div>
</div>
<div className="sticky-header">
<div className="auto-container">
<div className="outer-box">
<div className="logo-box">
<figure className="logo">
<Link href="/"><img src="/assets/images/logo.png" alt="rapharehab" /></Link>
</figure>
</div>
<nav className="main-menu navbar-expand-md navbar-light clearfix">
<div className="collapse navbar-collapse show clearfix" id="navbarSupportedContent">
<Menu />
</div>
</nav>
</div>
</div>
</div>
<MobileMenu handleMobileMenu={handleMobileMenu} />
</header>
</>
)
}

View File

@ -1,120 +1,114 @@
'use client'
import Link from "next/link";
import Menu from "../Menu"
import MobileMenu from "../MobileMenu"
import Sidebar from "../Sidebar"
import Menu from "../Menu";
import MobileMenu from "../MobileMenu";
export default function Header2({ scroll, isMobileMenu, handleMobileMenu, isSidebar, handlePopup, handleSidebar }) {
return (
<>
<header className={`main-header header-style-two ${scroll ? "fixed-header" : ""}`}>
{/* Header Top */}
<div className="header-top">
export default function Header2({
scroll,
isMobileMenu,
handleMobileMenu,
handlePopup,
handleSidebar,
isHome = false,
}) {
return (
<>
<header
className={`main-header header-style-two ${scroll ? "fixed-header" : ""} ${isHome ? "home-page" : ""}`}
>
{/* Header Top */}
<div className="header-top">
<div className="top-inner">
<ul className="info-list clearfix">
<li>
<img
src="/assets/images/icons/call.png"
alt="Phone"
style={{ marginRight: "8px" }}
className="red-icon"
/>
<Link href="tel:647-722-3434">647-722-3434</Link>
</li>
<li>
<img
src="/assets/images/icons/mail.png"
alt="Mail"
style={{ marginRight: "8px" }}
className="red-icon"
/>
<Link href="mailto:bloor@rapharehab.ca">bloor@rapharehab.ca</Link>
</li>
</ul>
<div className="top-inner">
<ul className="info-list clearfix">
<li>
<img src="/assets/images/icons/call.png" alt="Phone" style={{ marginRight: "8px" }} />
<Link href="tel:647-722-3434">647-722-3434</Link>
</li>
<li>
<img src="/assets/images/icons/mail.png" alt="Mail" style={{ marginRight: "8px" }} />
<Link href="mailto:bloor@rapharehab.ca">bloor@rapharehab.ca</Link>
</li>
</ul>
<ul className="social-links clearfix">
<li><Link href="/why-rapha-physiotherapy-etobicoke">Why Us</Link></li>
<li><Link href="/faq-physiotherapy-etobicoke">Faq</Link></li>
<li><Link href="/what-to-expect">What To Expect</Link></li>
<li><Link href="/payment-insurance">Payment And Insurance</Link></li>
<li>
<Link href="https://www.instagram.com/elrapharehab/" target="_blank" rel="noopener noreferrer">
<i className="icon-4"></i>
</Link>
</li>
<li>
<Link href="https://www.facebook.com/ELRaphaRehabCenter/" target="_blank" rel="noopener noreferrer">
<i className="icon-7"></i>
</Link>
</li>
</ul>
</div>
</div>
<ul className="social-links clearfix">
<li>
<Link href="/why-rapha-physiotherapy-etobicoke">Why Us</Link>
</li>
<li>
<Link href="/faq-physiotherapy-etobicoke">Faq</Link>
</li>
<li>
<Link href="/what-to-expect">What To Expect</Link>
</li>
<li>
<Link href="/payment-insurance">Payment And Insurance</Link>
</li>
<li><Link href="https://www.instagram.com/elrapharehab/" target="_blank"
rel="noopener noreferrer"><i className="icon-4"></i></Link></li>
{/* <li><Link href="/"><i className="icon-5"></i></Link></li> */}
{/* <li><Link href="/"><i className="icon-6"></i></Link></li> */}
<li><Link href="https://www.facebook.com/ELRaphaRehabCenter/" target="_blank"
rel="noopener noreferrer"><i className="icon-7"></i></Link></li>
</ul>
</div>
{/* Header Lower */}
<div className="header-lower">
<div className="outer-container">
<div className="outer-box">
<div className="logo-box">
<figure className="logo">
<Link href="/"><img src="/assets/images/logo.png" alt="rapharehab" /></Link>
</figure>
</div>
<div className="menu-area">
<div className="mobile-nav-toggler" onClick={handleMobileMenu}>
<i className="icon-bar"></i>
<i className="icon-bar"></i>
<i className="icon-bar"></i>
</div>
{/* Header Upper */}
<div className="header-lower">
<div className="outer-container">
<div className="outer-box">
<div className="logo-box">
<figure className="logo"><Link href="/"><img src="/assets/images/logo.png" alt="rapharehab" /></Link></figure>
</div>
<nav className="main-menu navbar-expand-md navbar-light clearfix">
<div className="collapse navbar-collapse show clearfix" id="navbarSupportedContent">
<Menu />
</div>
</nav>
</div>
</div>
</div>
</div>
{/* Menu Right Content */}
{/* <ul className="menu-right-content">
{/* Sticky Header */}
<div className="sticky-header">
<div className="auto-container">
<div className="outer-box">
<div className="logo-box">
<figure className="logo">
<Link href="/"><img src="/assets/images/logo.png" alt="rapharehab" /></Link>
</figure>
</div>
<li className="search-box-outer search-toggler" onClick={handlePopup}>
<i className="icon-27"></i>
</li>
<li className="nav-btn nav-toggler navSidebar-button clearfix" onClick={handleSidebar}>
<i className="icon-28"></i>
</li>
</ul> */}
<div className="menu-area">
{/* Mobile Navigation Toggler */}
<div className="mobile-nav-toggler" onClick={handleMobileMenu}>
<i className="icon-bar"></i>
<i className="icon-bar"></i>
<i className="icon-bar"></i>
</div>
{/* Main Menu */}
<nav className="main-menu navbar-expand-md navbar-light clearfix">
<div className="collapse navbar-collapse show clearfix" id="navbarSupportedContent">
<Menu />
</div>
</nav>
</div>
</div>
</div>
<nav className="main-menu navbar-expand-md navbar-light clearfix">
<div className="collapse navbar-collapse show clearfix" id="navbarSupportedContent">
<Menu />
</div>
{/*End Header Upper*/}
{/* Sticky Header */}
<div className="sticky-header">
<div className="auto-container">
<div className="outer-box">
<div className="logo-box">
<figure className="logo"><Link href="/"><img src="/assets/images/logo.png" alt="rapharehab" /></Link></figure>
</div>
</nav>
</div>
</div>
</div>
<nav className="main-menu navbar-expand-md navbar-light clearfix">
<div className="collapse navbar-collapse show clearfix" id="navbarSupportedContent">
<Menu />
</div>
</nav>
<ul className="menu-right-content">
{/* <li className="search-box-outer search-toggler" onClick={handlePopup}>
<i className="icon-27"></i>
</li> */}
{/* <li className="nav-btn nav-toggler navSidebar-button clearfix" onClick={handleSidebar}>
<i className="icon-28"></i>
</li> */}
</ul>
</div>
</div>
</div>{/* End Sticky Menu */}
{/* Mobile Menu */}
<MobileMenu handleMobileMenu={handleMobileMenu} />
</header>
</>
)
{/* Mobile Menu */}
<MobileMenu handleMobileMenu={handleMobileMenu} />
</header>
</>
);
}

View File

@ -1,5 +1,5 @@
'use client'
import React, { useState, useEffect } from 'react';
import React, { useState } from 'react';
import Link from "next/link";
import { Autoplay, Navigation, Pagination } from "swiper/modules";
import { Swiper, SwiperSlide } from "swiper/react";
@ -61,71 +61,10 @@ export default function Banner() {
const [activeIndex, setActiveIndex] = useState(0);
const [isAnimating, setIsAnimating] = useState(false);
const slides = [
{
id: 0,
variant: 'topToBottom',
bgImage: '/assets/images/home/banner/home-banner-1.webp',
upperText: 'The Journey to Better Health Begins here',
title: 'Your Path to',
titleSpan: 'Recovery',
titleEnd: 'Starts Today',
subtitle: 'Expert Physiotherapy in Mississauga for You.',
description: 'Our skilled team provides physiotherapy in Mississauga to help you regain mobility and live pain-free. Compassionate care designed around your needs.',
buttonText: 'Book Your Appointment',
buttonLink: 'tel:+647-722-3434',
contentStyle: 'mobile-style'
},
{
id: 1,
variant: 'bottomToTop',
bgImage: '/assets/images/home/banner/home-banner-2.webp',
upperText: 'Compassionate Care, Delivered with Expertise',
title: 'Healing Touch,',
titleSpan: 'Fresh',
titleEnd: 'Inner Strength',
subtitle: 'Expert Hand Massage Techniques for Relief',
description: 'Experience targeted hand massage therapy to ease tension and promote healing, delivered by experienced therapists focused on your comfort and well-being.',
buttonText: 'Schedule a Massage',
buttonLink: '/contact',
contentStyle: 'with-background'
},
{
id: 2,
variant: 'leftToRight',
bgImage: '/assets/images/home/banner/home-banner-3.webp',
upperText: 'Your Path to Complete Wellness Starts Here',
title: 'Local Physio',
titleSpan: 'Experts',
titleEnd: 'Near You',
subtitle: 'Physiotherapy Etobicoke & Rehab Care.',
description: 'Offering comprehensive physiotherapy and rehabilitation services in Etobicoke to support your wellness journey and help restore your strength efficiently.',
buttonText: 'Explore Our Service',
buttonLink: '/etobicoke-treatment-service',
contentStyle: 'with-background'
},
{
id: 3,
variant: 'rightToLeft',
bgImage: '/assets/images/home/banner/home-banner-4.webp',
upperText: 'Healing Hands, Caring Hearts in Action',
title: 'Wellness',
titleSpan: 'by the',
titleEnd: 'Waterfront',
subtitle: 'Waterfront Physio and Rehab Services.',
description: 'Find peace and true healing with our specialized waterfront physio and rehab programs carefully designed for lasting wellness and a better quality of life.',
buttonText: 'Visit Our Location',
buttonLink: '/contact',
contentStyle: 'with-background'
}
];
const handleSlideChange = (swiper) => {
setIsAnimating(true);
setActiveIndex(swiper.realIndex || 0);
setTimeout(() => {
setIsAnimating(false);
}, 1200);
setTimeout(() => setIsAnimating(false), 1200);
};
return (
@ -133,69 +72,142 @@ export default function Banner() {
<Swiper
{...swiperOptions}
className="banner-carousel owl-theme owl-carousel owl-nav-none owl-dots-none"
onSwiper={(swiper) => {
setActiveIndex(swiper.realIndex || 0);
}}
onSwiper={(swiper) => setActiveIndex(swiper.realIndex || 0)}
onSlideChange={handleSlideChange}
>
{slides.map((slide, index) => (
<SwiperSlide key={slide.id}>
<AnimatePresence mode="wait">
{activeIndex === index && (
<motion.div
key={`slide-${index}`}
className="slide-item banner-slide"
variants={variants[slide.variant]}
initial="initial"
animate="animate"
exit="exit"
transition={transition}
>
<div
className={`bg-layer ${slide.id === 0 ? "bg-slide-0" : ""}`}
style={{
backgroundImage: `url(${slide.bgImage})`,
}}
></div>
<div className="auto-container">
<div
className={`content-box custom-content-box ${slide.contentStyle || ''}`}
style={slide.contentStyle === 'with-background' ? {
backgroundColor: '#fff',
opacity: 0.8,
borderRadius: '20px',
padding: '30px'
} : {}}
>
<span className="upper-text">
{slide.upperText}
</span>
{/* Slide 1 */}
<SwiperSlide>
<AnimatePresence mode="wait">
{activeIndex === 0 && (
<motion.div
key="slide-0"
className="slide-item banner-slide"
variants={variants.topToBottom}
initial="initial"
animate="animate"
exit="exit"
transition={transition}
>
<div className="bg-layer bg-slide-0"
style={{ backgroundImage: 'url(/assets/images/banner/desktopBanner/home-banner-1.webp)' }}>
</div>
<div className="auto-container" style={{height:"600px"}}>
{/* <div className="content-box custom-content-box">
<span className="upper-text">Begin Your Health Journey</span>
<h2>Better <span>health</span> Forever</h2>
<p>Our expert physiotherapists help you restore movement, reduce pain, and live healthier with personalized care in Mississauga.</p>
<div className="btn-box mt-3">
<Link href="tel:+647-722-3434" className="theme-btn btn-one">
<span>Book Your Appointment</span>
</Link>
</div>
</div> */}
</div>
</motion.div>
)}
</AnimatePresence>
</SwiperSlide>
<h2>
{slide.title} <span>{slide.titleSpan}</span> {slide.titleEnd}
</h2>
<p>
{slide.subtitle}
</p>
<p>
{slide.description}
</p>
<div className="btn-box mt-3">
<Link href={slide.buttonLink} className="theme-btn btn-one">
<span>{slide.buttonText}</span>
</Link>
</div>
{/* Slide 2 */}
<SwiperSlide>
<AnimatePresence mode="wait">
{activeIndex === 1 && (
<motion.div
key="slide-1"
className="slide-item banner-slide"
variants={variants.bottomToTop}
initial="initial"
animate="animate"
exit="exit"
transition={transition}
>
<div className="bg-layer"
style={{ backgroundImage: 'url(/assets/images/banner/desktopBanner/home-banner-2.webp)' }}>
</div>
<div className="auto-container" style={{height:"600px", display:"flex", alignItems:"end"}}>
<div className="content-box custom-content-box" style={{ backgroundColor: '#ffffff8a', opacity: 0.8, borderRadius: '20px', padding: '30px' }}>
<span className="upper-text">Care That Heals Gently</span>
<h2>Relaxing <span>Massage</span> Therapy</h2>
<p>Experience soothing massage techniques that release tension, promote circulation, and support your overall wellness.</p>
<div className="btn-box mt-3">
<Link href="/contact" className="theme-btn btn-one">
<span>Schedule a Massage</span>
</Link>
</div>
</div>
</motion.div>
)}
</AnimatePresence>
</SwiperSlide>
))}
</div>
</motion.div>
)}
</AnimatePresence>
</SwiperSlide>
{/* Slide 3 */}
<SwiperSlide>
<AnimatePresence mode="wait">
{activeIndex === 2 && (
<motion.div
key="slide-2"
className="slide-item banner-slide"
variants={variants.leftToRight}
initial="initial"
animate="animate"
exit="exit"
transition={transition}
>
<div className="bg-layer"
style={{ backgroundImage: 'url(/assets/images/banner/desktopBanner/home-banner-3.webp)' }}>
</div>
<div className="auto-container" style={{height:"600px", display:"flex", alignItems:"end"}}>
<div className="content-box custom-content-box" style={{ backgroundColor: '#ffffff8a', opacity: 0.8, borderRadius: '20px', padding: '30px' }}>
<span className="upper-text">Wellness Near You Always</span>
<h2>Trusted <span>Physio</span> Experts</h2>
<p>Comprehensive physiotherapy and rehab services designed to restore your strength, mobility, and long-term wellness.</p>
<div className="btn-box mt-3">
<Link href="/etobicoke-treatment-service" className="theme-btn btn-one">
<span>Explore Our Service</span>
</Link>
</div>
</div>
</div>
</motion.div>
)}
</AnimatePresence>
</SwiperSlide>
{/* Slide 4 */}
<SwiperSlide>
<AnimatePresence mode="wait">
{activeIndex === 3 && (
<motion.div
key="slide-3"
className="slide-item banner-slide"
variants={variants.rightToLeft}
initial="initial"
animate="animate"
exit="exit"
transition={transition}
>
<div className="bg-layer"
style={{ backgroundImage: 'url(/assets/images/banner/desktopBanner/home-banner-4.webp)' }}>
</div>
<div className="auto-container" style={{height:"600px", display:"flex", alignItems:"end"}}>
<div className="content-box custom-content-box" style={{ backgroundColor: '#ffffff8a', opacity: 0.8, borderRadius: '20px', padding: '30px' }}>
<span className="upper-text">Healing With Caring Hands</span>
<h2>Holistic <span>Wellness</span> Care</h2>
<p>Discover holistic physiotherapy and rehab services designed to restore balance, ease pain, and support long-term recovery.</p>
<div className="btn-box mt-3">
<Link href="/contact" className="theme-btn btn-one">
<span>Visit Our Location</span>
</Link>
</div>
</div>
</div>
</motion.div>
)}
</AnimatePresence>
</SwiperSlide>
</Swiper>
</section>
);
};
}

View File

@ -49,61 +49,67 @@ export default function MobileBanner() {
}, []);
const slides = [
// {
// id: 0,
// variant: 'topToBottom',
// bgImage: '/assets/images/banner/mobile-banner/mbl-view-banner-1.png',
// upperText: 'Begin Your Health Journey',
// title: 'Better',
// titleSpan: 'health',
// titleEnd: 'Forever',
// subtitle: 'Expert Physiotherapy in Mississauga for You.',
// description: 'Our expert physiotherapists help you restore movement, reduce pain, and live healthier with personalized care in Mississauga.',
// buttonText: 'Book Your Appointment',
// buttonLink: 'tel:+647-722-3434',
// contentStyle: 'mobile-style'
// },
{
id: 0,
variant: 'topToBottom',
bgImage: '/assets/images/banner/mobile-banner/banner-1.webp',
upperText: 'The Journey to Better Health Begins here',
title: 'Your Path to',
titleSpan: 'Recovery',
titleEnd: 'Starts Today',
subtitle: 'Expert Physiotherapy in Mississauga for You.',
description: 'Our skilled team provides physiotherapy in Mississauga to help you regain mobility and live pain-free. Compassionate care designed around your needs.',
buttonText: 'Book Your Appointment',
buttonLink: 'tel:+647-722-3434',
contentStyle: 'mobile-style'
bgImage: '/assets/images/banner/mobile-banner/1.jpg',
hideContent: true
},
{
id: 1,
variant: 'bottomToTop',
bgImage: '/assets/images/banner/mobile-banner/banner-2.webp',
upperText: 'Compassionate Care, Delivered with Expertise',
title: 'Healing Touch,',
titleSpan: 'Fresh',
titleEnd: 'Inner Strength',
subtitle: 'Expert Hand Massage Techniques for Relief',
description: 'Experience targeted hand massage therapy to ease tension and promote healing, delivered by experienced therapists focused on your comfort and well-being.',
bgImage: '/assets/images/banner/mobile-banner/2.jpg',
upperText: 'Care That Heals Gently',
title: 'Relaxing',
titleSpan: 'Massage',
titleEnd: 'Therapy',
// subtitle: 'Expert Hand Massage Techniques for Relief',
description: 'Experience soothing massage techniques that release tension, promote circulation, and support your overall wellness.',
buttonText: 'Schedule a Massage',
buttonLink: '/contact',
contentStyle: 'with-background'
// contentStyle: 'with-background'
},
{
id: 2,
variant: 'leftToRight',
bgImage: '/assets/images/banner/mobile-banner/banner-3.webp',
upperText: 'Your Path to Complete Wellness Starts Here',
title: 'Local Physio',
titleSpan: 'Experts',
titleEnd: 'Near You',
subtitle: 'Physiotherapy Etobicoke & Rehab Care.',
description: 'Offering comprehensive physiotherapy and rehabilitation services in Etobicoke to support your wellness journey and help restore your strength efficiently.',
bgImage: '/assets/images/banner/mobile-banner/3.jpg',
upperText: 'Wellness Near You Always',
title: 'Trusted',
titleSpan: 'Physio',
titleEnd: 'Experts',
// subtitle: 'Physiotherapy Etobicoke & Rehab Care.',
description: 'Comprehensive physiotherapy and rehab services designed to restore your strength, mobility, and long-term wellness.',
buttonText: 'Explore Our Service',
buttonLink: '/etobicoke-treatment-service',
contentStyle: 'with-background'
// contentStyle: 'with-background'
},
{
id: 3,
variant: 'rightToLeft',
bgImage: '/assets/images/banner/mobile-banner/banner-4.webp',
upperText: 'Healing Hands, Caring Hearts in Action',
title: 'Wellness',
titleSpan: 'by the',
titleEnd: 'Waterfront',
subtitle: 'Waterfront Physio and Rehab Services.',
description: 'Find peace and true healing with our specialized waterfront physio and rehab programs carefully designed for lasting wellness and a better quality of life.',
bgImage: '/assets/images/banner/mobile-banner/4.jpg',
upperText: 'Healing With Caring Hands',
title: 'Holistic',
titleSpan: 'Wellness',
titleEnd: 'Care',
// subtitle: 'Waterfront Physio and Rehab Services.',
description: 'Discover holistic physiotherapy and rehab services designed to restore balance, ease pain, and support long-term recovery.',
buttonText: 'Visit Our Location',
buttonLink: '/contact',
contentStyle: 'with-background'
// contentStyle: 'with-background'
}
];
@ -159,7 +165,7 @@ export default function MobileBanner() {
display: 'flex',
justifyContent: 'center',
alignItems: 'end',
paddingBottom:"20px"
paddingBottom: "20px"
}}
>
{!slide.hideContent && (

View File

@ -177,12 +177,12 @@
height: 70%;
}
} */
/*
.banner-carousel .swiper-slide-active .bg-layer {
-webkit-transform: scale(1.25);
-ms-transform: scale(1.25);
transform: scale(1.25);
}
} */
.banner-carousel .content-box {
position: relative;
@ -722,37 +722,37 @@
}
@media (max-width: 1440px) {
.bg-layer.bg-slide-0 {
background-position: left -350px center !important;
/* @media (max-width: 1440px) {
.bg-layer.bg-slide-0 {
background-position: left -350px center !important;
}
}
}
@media (max-width: 1200px) {
.bg-layer.bg-slide-0 {
background-position: left -550px center !important;
@media (max-width: 1200px) {
.bg-layer.bg-slide-0 {
background-position: left -550px center !important;
}
}
}
@media (max-width: 1024px) {
.bg-layer.bg-slide-0 {
background-position: left -720px center !important;
@media (max-width: 1024px) {
.bg-layer.bg-slide-0 {
background-position: left -720px center !important;
}
}
}
@media (max-width: 992px) {
.bg-layer.bg-slide-0 {
background-position: left -780px center !important;
@media (max-width: 992px) {
.bg-layer.bg-slide-0 {
background-position: left -780px center !important;
}
}
}
@media (max-width: 768px) and (min-width: 500px) {
.bg-layer.bg-slide-0 {
background-position: left -500px center !important;
}
}
@media (max-width: 768px) and (min-width: 500px) {
.bg-layer.bg-slide-0 {
background-position: left -500px center !important;
}
} */
@media screen and (min-width: 500px) and (max-width: 768px) {
/* @media screen and (min-width: 500px) and (max-width: 768px) {
.banner-slide:nth-child(1) .custom-content-box.mobile-style, .custom-content-box.with-background, h2 {
font-size: 50px !important;
line-height: 1 !important;
@ -766,4 +766,4 @@
font-size: 16px;
padding: 15px 20px !important;
}
}
} */

View File

@ -114,7 +114,7 @@
@media only screen and (max-width: 767px){
.page-title{
padding: 80px 0px;
padding: 190px 0px;
}
.page-title h1{

View File

@ -1014,6 +1014,35 @@
padding: 15.5px 0;
}
/* Fully transparent header */
.header-style-two,
.header-style-two .header-top,
.header-style-two .header-area {
background: transparent !important;
box-shadow: none !important;
border: none !important;
position: absolute;
top: 0;
left: 0;
width: 100%;
z-index: 999;
}
.header-style-two .header-top a,
.header-style-two .header-top .logo {
color: #bc0000 !important;
}
.header-style-two .header-top .top-inner {
display: flex;
justify-content: space-between;
align-items: center;
padding-left: 100px;
padding-right: 100px;
position: relative;
}
.header-top .top-inner {
position: relative;
display: flex;
@ -1021,7 +1050,7 @@
justify-content: space-between;
flex-wrap: nowrap;
gap: 15px;
overflow-x: auto;
/* overflow-x: auto; */
}
.header-top .top-inner .info-list {
@ -1047,6 +1076,11 @@
height: auto;
}
.red-icon {
filter: brightness(0) saturate(100%) invert(14%) sepia(94%) saturate(7476%) hue-rotate(356deg) brightness(94%) contrast(108%);
}
.header-top .top-inner .info-list li a {
display: inline-block;
color: #fff;
@ -1176,7 +1210,7 @@
}
.header-top .top-inner {
flex-direction: column;
flex-direction: row;
align-items: center;
text-align: center;
gap: 8px;
@ -1228,6 +1262,13 @@
width: 100%;
}
/* .main-header .header-lower .outer-container {
position: absolute;
left: 0px;
top: 0px;
width: 100%;
} */
.main-header .header-lower .outer-container {
position: absolute;
left: 0px;
@ -1237,13 +1278,20 @@
.main-header .header-lower .outer-box {
position: relative;
background: #fff;
/* background: #fff; */
border-top: 1px solid #1025487a;
}
.new {
background-color: #fff !important;
}
.main-header .header-lower .outer-box:before {
position: absolute;
content: '';
background: #fff;
/* background: #fff; */
width: 5000px;
height: 100%;
left: -80px;
@ -1424,7 +1472,7 @@
font-family: var(--soleil);
letter-spacing: 0.8px;
opacity: 1;
color: #101A30;
color: #bc0000;
z-index: 1;
-webkit-transition: all 500ms ease;
-moz-transition: all 500ms ease;
@ -1433,6 +1481,12 @@
transition: all 500ms ease;
}
.new-menu .new-nav>li>a {
color: #bc0000 !important;
}
@media (max-width: 1200px) {
.main-menu .navigation>li>a {
font-size: 17px;
@ -1446,7 +1500,7 @@
.main-menu .navigation>li.current>a,
.main-menu .navigation>li:hover>a {
color: #101A30;
color: #bc0000;
}
.main-menu .navigation>li>a:before {
@ -1672,7 +1726,7 @@
font-size: 40px;
line-height: 50px;
cursor: pointer;
background: var(--theme-color);
/* background: #ffffff; */
display: none;
}
@ -1686,7 +1740,7 @@
width: 30px;
display: block;
margin-bottom: 5px;
background-color: #fff;
background-color: #bc0000;
-webkit-transition: all 300ms ease;
-moz-transition: all 300ms ease;
-ms-transition: all 300ms ease;
@ -1719,6 +1773,7 @@
.sticky-header .main-menu .navigation>li>a {
padding-top: 27px;
padding-bottom: 27px;
color: #bc0000;
}
.sticky-header .main-menu .navigation>li>a:before {
@ -2705,6 +2760,7 @@
position: relative;
padding-left: 100px;
padding-right: 100px;
/* background: #bc000036 !important; */
}
@media only screen and (max-width: 1200px) {
@ -2717,10 +2773,10 @@
}
.header-style-two .header-lower .outer-container {
position: relative;
/* position: relative; */
padding-left: 100px;
padding-right: 100px;
background: #fff;
/* background: #fff; */
}
@media (max-width: 1440px) {
@ -2744,8 +2800,8 @@
margin-left: 6px;
width: 6px;
height: 6px;
border-left: 2px solid #000;
border-bottom: 2px solid #000;
border-left: 2px solid #bc0000;
border-bottom: 2px solid #bc0000;
transform: rotate(-45deg);
vertical-align: middle;
}
@ -3302,33 +3358,33 @@
}
}
.custom-content-box.mobile-style {
/* .custom-content-box.mobile-style {
background: none;
}
} */
@media (min-width: 768px) and (max-width: 1024px) {
.custom-content-box.mobile-style {
top: 190px;
background: white;
border-radius: 15%;
opacity: 0.8;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.custom-content-box.with-background {
top: 170px;
}
}
@media (max-width: 425px) {
@media (min-width: 768px) and (max-width: 1024px) {
.custom-content-box.mobile-style {
/* background: white; */
top: 190px;
background: white;
border-radius: 15%;
opacity: 0.8;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.custom-content-box.with-background {
top: 170px;
}
}
/* @media (max-width: 425px) {
.custom-content-box.mobile-style {
background: white;
border-radius: 15%;
opacity: 0.8;
}
} */
.contact-icon-container {
position: fixed;
bottom: 60px;
@ -3417,12 +3473,36 @@
}
@media (max-width: 1024px) and (min-width: 769px) {
.header-style-two .header-top .top-inner {
display: flex;
justify-content: space-between;
align-items: center;
padding-left: 0px !important;
padding-right: 0px !important;
position: relative;
/* Needed for flex children alignment */
}
.info-block-one {
padding: 30px 7px !important;
}
}
@media (max-width: 768px) {
.header-style-two .header-top .top-inner {
display: flex;
justify-content: space-between;
justify-content: center;
align-items: center;
padding-left: 100px;
padding-right: 100px;
position: relative;
/* Needed for flex children alignment */
}
.blog-details-content .news-block-one .inner-box .lower-content h2 {
font-size: 38px !important;
line-height: 36px;
@ -3473,4 +3553,36 @@
padding-top: 30px !important;
padding-bottom: 30px !important;
}
}
.loader-wrap {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #ffffff;
display: flex;
align-items: center;
justify-content: center;
z-index: 9999;
}
.preloader {
text-align: center;
}
.preloader-icon {
font-size: 50px;
animation: spin 1.5s linear infinite;
}
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 636 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 618 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 560 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

File diff suppressed because one or more lines are too long

View File

@ -3,86 +3,225 @@ const path = require("path");
const { SitemapStream, streamToPromise } = require("sitemap");
const { pathToFileURL } = require("url");
const hostname = "https://rapharehap.metatronnest.com";
const appDir = path.join(process.cwd(), "app");
const outputPath = path.join(process.cwd(), "public", "sitemap.xml");
const hostname = "https://rapharehap.metatronnest.com";
const addTrailingSlash = true; // ✅ Set this true if your Next.js uses trailingSlash: true
function getRoutesFromApp(dir = appDir, basePath = "") {
let routes = [];
if (!fs.existsSync(dir)) return routes;
// // 🔧 Utility to format URLs based on config
// const formatUrl = (url) => {
// if (addTrailingSlash && !url.endsWith('/')) return url + '/';
// if (!addTrailingSlash && url.endsWith('/') && url !== '/') return url.slice(0, -1);
// return url;
// };
// Add a trailing slash only for “directory-like” URLs
const shouldAddSlash = (url) => {
// keep "/" as is
if (url === '/') return false;
// don't touch file-like URLs (has extension)
if (/\.[a-z0-9]{2,6}(\?.*)?$/i.test(url)) return false;
return true;
};
const entries = fs.readdirSync(dir, { withFileTypes: true });
for (const entry of entries) {
if (entry.name.startsWith("_") || entry.name === "api" || entry.name.startsWith(".")) continue;
const fullPath = path.join(dir, entry.name);
const formatUrl = (url) => {
// normalize to leading slash
if (!url.startsWith('/')) url = '/' + url;
if (entry.isDirectory()) {
if (!entry.name.startsWith("[")) {
const hasPage =
fs.existsSync(path.join(fullPath, "page.js")) ||
fs.existsSync(path.join(fullPath, "page.jsx")) ||
fs.existsSync(path.join(fullPath, "index.js")) ||
fs.existsSync(path.join(fullPath, "index.jsx"));
if (hasPage) {
const cleaned = path.join(basePath, entry.name).replace(/\\/g, "/");
routes.push(`/${cleaned}/`);
}
}
routes = routes.concat(getRoutesFromApp(fullPath, path.join(basePath, entry.name)));
} else if (entry.isFile()) {
if (["page.js", "page.jsx", "index.js", "index.jsx"].includes(entry.name)) {
const cleaned = basePath.replace(/\\/g, "/");
const route = "/" + (cleaned ? `${cleaned}/` : "");
routes.push(route);
}
}
if (addTrailingSlash && shouldAddSlash(url) && !url.endsWith('/')) {
return url + '/';
}
if (!addTrailingSlash && url.endsWith('/') && url !== '/') {
return url.slice(0, -1);
}
return url;
};
return [...new Set(routes.map(r => r.replace(/\/{2,}/g, "/")))];
}
// ✅ Static pages
const staticLinks = [
{ url: '/', changefreq: 'daily', priority: 1.0 },
{ url: '/why-rapha-physiotherapy-etobicoke/', changefreq: 'weekly', priority: 0.7 },
{ url: '/faq-physiotherapy-etobicoke/', changefreq: 'weekly', priority: 0.7 },
{ url: '/what-to-expect/', changefreq: 'weekly', priority: 0.7 },
{ url: '/payment-insurance/', changefreq: 'weekly', priority: 0.7 },
{ url: '/locations/', changefreq: 'weekly', priority: 0.7 },
{ url: '/about-us/', changefreq: 'monthly', priority: 0.5 },
{ url: '/ourapproach-physiotherapy-etobicoke/', changefreq: 'monthly', priority: 0.5 },
{ url: '/our-team-physiotherapy-etobicoke/', changefreq: 'weekly', priority: 0.6 },
{ url: '/gallery-physiotherapy-etobicoke/', changefreq: 'weekly', priority: 0.6 },
{ url: '/covid-19-updates/', changefreq: 'weekly', priority: 0.6 },
{ url: '/etobicoke-treatment-service/', changefreq: 'weekly', priority: 0.6 },
{ url: '/area-of-injury/', changefreq: 'weekly', priority: 0.6 },
{ url: '/rehabilitation/', changefreq: 'weekly', priority: 0.6 },
{ url: '/accident/', changefreq: 'weekly', priority: 0.6 },
{ url: '/blog/', changefreq: 'weekly', priority: 0.6 },
{ url: '/contact/', changefreq: 'weekly', priority: 0.6 },
{ url: '/caregivers/', changefreq: 'weekly', priority: 0.6 },
{ url: '/gallery-physiotherapy-etobicoke/', changefreq: 'weekly', priority: 0.6 },
{ url: '/shortcodes/', changefreq: 'weekly', priority: 0.6 },
];
async function loadESModule(relativePath) {
const fullPath = path.join(process.cwd(), relativePath);
if (!fs.existsSync(fullPath)) return null;
const mod = await import(pathToFileURL(fullPath).href);
return mod.default ?? mod.Blogs ?? [];
}
// ✅ Dynamic blog posts
const blogPosts = [
{ slug: '/blog/chronic-pain-treatment-etobicoke/' },
{ slug: '/blog/top-rehab-wellness-etobicoke-hand-massage/' },
{ slug: '/blog/osteopath-near-me-first-visit-rapha-rehab/' },
{ slug: '/blog/strength-training-rehabilitation-rapha-rehab/' },
{ slug: '/blog/biceps-triceps-back-workouts-rapha-rehab/' },
{ slug: '/beginner-workouts-rehab-wellness-rapha-rehab/' },
{ slug: '/blog/recover-strong-post-surgery-rehabilitation-exercises/' },
{ slug: '/blog/benefits-massage-therapy-sports-injuries/' },
{ slug: '/blog/shockwave-therapy-etobicoke-chronic-pain/' },
];
// Convert blog slugs to sitemap entries
const blogLinks = blogPosts.map(post => ({
url: `/${post.slug}`,
changefreq: 'weekly',
priority: 0.6
}));
// ✅ Dynamic Services
const services = [
{ slug: '/etobicoke-treatment-service/physiotherapy-clinic-etobicoke/' },
{ slug: '/etobicoke-treatment-service/sportsinjury-physiotherapy-clinic-etobicoke/' },
{ slug: '/etobicoke-treatment-service/pelvic-floor-physiotherapy-clinic-etobicoke/' },
{ slug: '/etobicoke-treatment-service/massage-therapy-clinic-etobicoke/' },
{ slug: '/etobicoke-treatment-service/chiropractic-clinic-etobicoke/' },
{ slug: '/etobicoke-treatment-service/chiropdist-clinic-etobicoke/' },
{ slug: '/etobicoke-treatment-service/acupuncture-clinic-etobicoke/' },
{ slug: '/etobicoke-treatment-service/osteopathy-clinic-etobicoke/' },
{ slug: '/etobicoke-treatment-service/foot-reflexology-clinic-etobicoke/' },
{ slug: '/etobicoke-treatment-service/custom-knee-braces-clinic-etobicoke/' },
{ slug: '/etobicoke-treatment-service/laser-therapy-electrical-modalities/' },
{ slug: '/etobicoke-treatment-service/naturopathy-clinic-etobicoke/' },
{ slug: '/etobicoke-treatment-service/orthotics-etobicoke/' },
{ slug: '/etobicoke-treatment-service/spinal-decompression-therapy-clinic-etobicoke/' },
{ slug: '/etobicoke-treatment-service/concussion-management-clinic-etobicoke/' },
{ slug: '/etobicoke-treatment-service/chronic-pain-management-clinic-etobicoke/' },
{ slug: '/etobicoke-treatment-service/pre-post-operative-management-etobicoke/' },
{ slug: '/etobicoke-treatment-service/exercisetherapy-clinic-etobicoke/' },
{ slug: '/etobicoke-treatment-service/workplace-injury-management-clinic-etobicoke/' },
{ slug: '/etobicoke-treatment-service/home-care-physiotherapy-clinic-etobicoke/' },
{ slug: '/etobicoke-treatment-service/virtual-care-physiotherapy-clinic-etobicoke/' },
{ slug: '/etobicoke-treatment-service/gait-assessment-etobicoke/' },
{ slug: '/etobicoke-treatment-service/kids-physiotherapy-etobicoke/' },
{ slug: '/etobicoke-treatment-service/surgical-rehab-etobicoke/' },
{ slug: '/etobicoke-treatment-service/fascial-stretch-therapy-etobicoke/' },
{ slug: '/etobicoke-treatment-service/cupping-therapy-etobicoke/' },
{ slug: '/etobicoke-treatment-service/shiatsu-therapy-etobicoke/' },
{ slug: '/etobicoke-treatment-service/deep-tissue-massage-etobicoke/' },
{ slug: '/etobicoke-treatment-service/neuro-fascial-therapy-etobicoke/' },
{ slug: '/etobicoke-treatment-service/cranio-sacral-therapy-etobicoke/' },
{ slug: '/etobicoke-treatment-service/motor-vehicle-accident-rehabilitation-etobicoke/' },
{ slug: '/etobicoke-treatment-service/compression-stockings-etobicoke/' },
{ slug: '/etobicoke-treatment-service/cardiac-rehabilitation-etobicoke/' },
{ slug: '/etobicoke-treatment-service/intramuscular-stimulation-ims-etobicoke/' },
{ slug: '/etobicoke-treatment-service/psychotherapy-etobicoke/' },
{ slug: '/etobicoke-treatment-service/shockwave-therapy-etobicoke/' },
];
// Convert services slugs to sitemap entries
const servicesLinks = services.map(post => ({
url: `/${post.slug}`,
changefreq: 'weekly',
priority: 0.6
}));
// ✅ Dynamic area-of-injury
const areas = [
{ slug: '/area-of-injury/head-injury-physiotherapy-management-etobicoke/' },
{ slug: '/area-of-injury/neck-injury-physiotherapy-management-etobicokeneck-injury-physiotherapy-management-etobicoke/' },
{ slug: '/area-of-injury/shoulder-injury-physiotherapy-management-etobicoke/' },
{ slug: '/area-of-injury/elbow-injury-physiotherapy-management-etobicoke/' },
{ slug: '/area-of-injury/wristhand-injury-physiotherapy-management-etobicoke/' },
{ slug: '/area-of-injury/lowback-injury-physiotherapy-management-etobicoke/' },
{ slug: '/area-of-injury/hip-injury-physiotherapy-management-etobicoke/' },
{ slug: '/area-of-injury/legknee-injury-physiotherapy-management-etobicoke/' },
{ slug: '/area-of-injury/anklefoot-injury-physiotherapy-management-etobicoke/' },
];
// Convert Areas of Injury slugs to sitemap entries
const areasLinks = areas.map(post => ({
url: `/${post.slug}`,
changefreq: 'weekly',
priority: 0.6
}));
// ✅ Dynamic Rehabilitation
const rehabilitation = [
{ slug: '/rehabilitation/spinalcord-rehabilitation-clinic-etobicoke/' },
{ slug: '/rehabilitation/amputee-rehabilitation-clinic-etobicoke/' },
{ slug: '/rehabilitation/fracture-rehabilitation-clinic-etobicoke/' },
{ slug: '/rehabilitation/neurological-rehabilitation-clinic-etobicoke/' },
];
// Convert Areas of Injury slugs to sitemap entries
const rehabilitationLinks = rehabilitation.map(post => ({
url: `/${post.slug}`,
changefreq: 'weekly',
priority: 0.6
}));
// ✅ Dynamic Accident
const accident = [
{ slug: '/accident/minor-injury-etobicoke/' },
{ slug: '/accident/catastropic-injury-etobicoke/' },
{ slug: '/accident/slip-and-fall-injury-etobicoke/' },
{ slug: '/accident/concussion-management-etobicoke/' },
{ slug: '/accident/psychotherapy-management-etobicoke/' },
{ slug: '/accident/hydrotherapy-etobicoke/' },
{ slug: '/accident/chronic-pain-management-etobicoke/' },
];
// Convert Accident slugs to sitemap entries
const accidentLinks = accident.map(post => ({
url: `/${post.slug}`,
changefreq: 'weekly',
priority: 0.6
}));
// ✅ Dynamic Our Team
const ourteam = [
{ slug: '/our-team-physiotherapy-etobicoke/dhanya-prashant/' },
{ slug: '/our-team-physiotherapy-etobicoke/chandra-babu/' },
{ slug: '/our-team-physiotherapy-etobicoke/jo-anne/' },
];
// Convert Our Team slugs to sitemap entries
const ourteamLinks = ourteam.map(post => ({
url: `/${post.slug}`,
changefreq: 'weekly',
priority: 0.6
}));
const allLinks = [...staticLinks, ...blogLinks, ...servicesLinks, ...areasLinks, ...rehabilitationLinks, ...accidentLinks, ...ourteamLinks].map(link => ({
...link,
url: formatUrl(link.url),
}));
async function generateSitemap() {
try {
const staticRoutes = getRoutesFromApp();
const staticLinks = staticRoutes.map(route => ({
url: route,
changefreq: "weekly",
priority: route === "/" ? 1.0 : 0.8,
}));
const sitemap = new SitemapStream({ hostname: hostname });
const writeStream = fs.createWriteStream(path.resolve(__dirname, '../out/sitemap.xml'));
const Blogs = await loadESModule("utils/Blog.utils.js");
const blogLinks = (Blogs || []).map(post => ({
url: `/blog/${post.slug}/`,
changefreq: "weekly",
priority: 0.8,
}));
const allLinks = [...staticLinks, ...blogLinks];
const sitemap = new SitemapStream({ hostname });
const writeStream = fs.createWriteStream(outputPath);
sitemap.pipe(writeStream);
console.log('📦 Writing URLs to sitemap:');
allLinks.forEach(link => {
console.log(' -', hostname + link.url);
sitemap.write(link);
console.log("✅ writing:", link.url);
});
sitemap.end();
await streamToPromise(sitemap);
console.log(`🎉 sitemap.xml generated at ${outputPath} (${allLinks.length} URLs)`);
} catch (err) {
console.error("❌ Failed to generate sitemap:", err);
process.exit(1);
console.log('✅ sitemap.xml created successfully!');
} catch (error) {
console.error('❌ Error creating sitemap.xml:', error);
}
}

View File

@ -76,6 +76,11 @@ const Blogs = [
<span class="designation"> 6 - 4335 Bloor Street West, Etobicoke, M9C5S2<br/> 647-722-3434<br/>bloor@rapharehab.ca</span>
</blockquote>
`,
meta: {
title: "Chronic Pain Treatment in Etobicoke - Best Physio Solutions",
description:
"Discover how Rapharehab in Etobicoke treats chronic pain with physiotherapy, osteopathy & hands-on care. Relief, recovery, results near you.",
},
},
{
id: 2,
@ -155,6 +160,11 @@ const Blogs = [
<span class="designation"> 6 - 4335 Bloor Street West, Etobicoke, M9C5S2<br/> 647-722-3434<br/>bloor@rapharehab.ca</span>
</blockquote>
`,
meta: {
title: "The Best Hand Massage & Physiotherapy in Etobicoke",
description:
"Explore the benefits of hand massage paired with physiotherapy in Etobicoke. Relief, strength & mobility from expert physio, osteopathy & massage.",
},
},
{
id: 3,
@ -243,6 +253,11 @@ const Blogs = [
<span class="designation"> 6 - 4335 Bloor Street West, Etobicoke, M9C5S2<br/> 647-722-3434<br/>bloor@rapharehab.ca</span>
</blockquote>
`,
meta: {
title: "The Best Osteopath Near Me: Rapha Rehab in Etobicoke",
description:
"Find out what to expect at your first osteopathy visit at Rapha Rehab Etobicoke - from assessment to gentle treatment, physiotherapy & care.",
},
},
{
id: 4,
@ -336,6 +351,11 @@ const Blogs = [
<span class="designation"> 6 - 4335 Bloor Street West, Etobicoke, M9C5S2<br/> 647-722-3434<br/>bloor@rapharehab.ca</span>
</blockquote>
`,
meta: {
title: "Strength Training Rehab in Etobicoke - Build Muscle Safely",
description:
"Discover safe strength training rehab at Rapha Rehab Etobicoke. Expert physiotherapy & osteopathy to build muscle & speed recovery.",
},
},
{
id: 5,
@ -442,6 +462,11 @@ const Blogs = [
<span class="designation"> 6 - 4335 Bloor Street West, Etobicoke, M9C5S2<br/> 647-722-3434<br/>bloor@rapharehab.ca</span>
</blockquote>
`,
meta: {
title: "Best Back & Arms Workouts by Rapha Rehab's in Etobicoke",
description:
"Build stronger biceps, triceps & back safely with Rapha Rehabs expert physio & osteopathy-led workouts in Etobicoke. Injury aware, results driven.",
},
},
{
id: 6,
@ -525,6 +550,11 @@ const Blogs = [
<span class="designation"> 6 - 4335 Bloor Street West, Etobicoke, M9C5S2<br/> 647-722-3434<br/>bloor@rapharehab.ca</span>
</blockquote>
`,
meta: {
title: "Beginner Rehab Workouts in Etobicoke - Gentle Physio Fitness",
description:
"Kick-start your wellness journey with beginner-friendly rehab workouts in Etobicoke. Guided physiotherapy & osteopathy to safely rebuild strength.",
},
},
{
id: 7,

View File

@ -708,7 +708,7 @@ export const servicesList = [
bannerImage: "/assets/images/services/osteopathy/osteopathy-banner.webp",
image: "/assets/images/services/osteopathy/left.webp",
sidebarImg: "/assets/images/services/osteopathy/left.webp",
bigImg: "/assets/images/service/osteopathy/big-img.webp",
bigImg: "/assets/images/services/osteopathy/big-img.webp",
icon: "/assets/images/services/icons/osteopathy.webp",
icon2: "/assets/images/mobile-view/services/osteopathy.webp",
metaTitle: "Best Osteopathy Services Rapharehab Experts",
@ -1160,8 +1160,8 @@ export const servicesList = [
sidebarImg: "/assets/images/services/orthotics/left.webp",
bigImg: "/assets/images/services/orthotics/big-img.webp",
icon: "/assets/images/services/icons/orthotics.webp",
metaTitle: "Ankle & Foot Injury Rehab Rapharehab Clinic",
metaDiscription: "Rapharehab offers expert treatment for ankle and foot injuries. Get back on your feet with our personalized, professional recovery plans.",
metaTitle: "Best Orthotics in Etobicoke - Foot & Physio Support Near Me",
metaDiscription: "Get custom orthotics in Etobicoke to correct biomechanics, ease foot, knee & lower-back pain. Certified orthotists, gait analysis & expert physio care.",
shortDescription: "Etobicoke Orthotics are custom-designed shoe inserts to correct foot biomechanics, improve alignment, alleviate pain, support posture, and promote overall lower-limb function.",
description: `<div>
<div class="text-box ">
@ -1297,8 +1297,8 @@ export const servicesList = [
sidebarImg: "/assets/images/services/concussion-management/left.webp",
bigImg: "/assets/images/services/concussion-management/big-img.webp",
icon: "/assets/images/services/icons/concussion-management.webp",
metaTitle: "Ankle & Foot Injury Rehab Rapharehab Clinic",
metaDiscription: "Rapharehab offers expert treatment for ankle and foot injuries. Get back on your feet with our personalized, professional recovery plans.",
metaTitle: "Concussion Management in Etobicoke - Best Physio Near Me",
metaDiscription: "Specialized concussion management in Etobicoke - expert physiotherapy, osteopathy & massage to help recovery from head injuries fast & safely.",
shortDescription: "Concussion is a brain injury that can cause lasting effects on brain tissue occurs when the brain is violently shaken and changes the chemical.",
description: `<div>
<div class="text-box ">
@ -1514,8 +1514,8 @@ export const servicesList = [
sidebarImg: "/assets/images/services/operative-management/left.webp",
bigImg: "/assets/images/services/operative-management/big-img.webp",
icon: "/assets/images/services/icons/operative-management.webp",
metaTitle: "Ankle & Foot Injury Rehab Rapharehab Clinic",
metaDiscription: "Rapharehab offers expert treatment for ankle and foot injuries. Get back on your feet with our personalized, professional recovery plans.",
metaTitle: "Top Pre & Post-Operative Physio Management in Etobicoke",
metaDiscription: "Prepare for surgery & recover confidently in Etobicoke. Expert physiotherapy, osteopathy & hands-on care to reduce risk, speed healing.",
shortDescription: "Etobicoke Pre and Post Operative Management is a physiotherapy service designed to optimize surgical outcomes.",
description: `<div>
<div class="text-box ">
@ -2033,6 +2033,8 @@ export const servicesList = [
bigImg: "/assets/images/services/gait/big-img.webp",
icon: "/assets/images/services/icons/gait.webp",
shortDescription: "Etobicoke Gait Assessment is a comprehensive evaluation that analyzes how you walk and move to identify patterns, detect abnormalities, and optimize mobility.",
metaTitle: "Gait Assessment in Etobicoke - Physio & Osteopath Near Me",
metaDiscription: "Get expert gait assessment in Etobicoke from top physiotherapists & osteopaths. Improve walking, reduce pain - the best physio & rehab near you.",
description: `<div>
<div class="text-box ">
<h2>Gait Assessment Etobicoke</h2>
@ -2106,6 +2108,8 @@ export const servicesList = [
bigImg: "/assets/images/services/kids/big-img.webp",
icon: "/assets/images/services/icons/kids.webp",
shortDescription: "Etobicoke Kids Physiotherapy focuses on the assessment, treatment, and development of infants, children, and adolescents from birth to 19 years old.",
metaTitle: "Kids Physiotherapy in Etobicoke - Best Child Physio Near Me",
metaDiscription: "Specialized kids physio in Etobicoke to support growth, motor skills & recovery. Experienced pediatric physiotherapy & osteopathy near you.",
description: `<div>
<div class="text-box ">
<h2>Kids Physiotherapy Etobicoke</h2>
@ -2182,6 +2186,8 @@ export const servicesList = [
bigImg: "/assets/images/services/surgical/big-img.webp",
icon: "/assets/images/services/icons/sururgical.webp",
shortDescription: "Etobicoke Surgical Rehab is a specialized, comprehensive, evidence-based rehabilitation program designed to optimize recovery before and after surgical procedures.",
metaTitle: "Surgical Rehab Etobicoke - The Best Physiotherapy Near Me",
metaDiscription: "Top surgical rehab in Etobicoke - expert physiotherapy, osteopathy & massage care post-surgery. Trusted physio & rehab near you.",
description: `<div>
<div class="text-box ">
<h2>Surgical Rehab Etobicoke</h2>
@ -2259,6 +2265,8 @@ export const servicesList = [
bigImg: "/assets/images/services/facial/big-img.webp",
icon: "/assets/images/services/icons/fascial-stretch.webp",
shortDescription: "Etobicoke Fascial Stretch Therapy is a gentle, assisted stretching method targeting the bodys fascial network - the connective tissue surrounding muscles, joints, and organs.",
metaTitle: "Fascial Stretch Therapy in Etobicoke - Rehab Near Me",
metaDiscription: "Experience fascial stretch therapy in Etobicoke. Expert physiotherapy & osteopathy to improve mobility, reduce pain & restore function near you.",
description: `<div>
<div class="text-box ">
<h2>Fascial Stretch Therapy Etobicoke</h2>
@ -2332,6 +2340,8 @@ export const servicesList = [
bigImg: "/assets/images/services/cupping/big-img.webp",
icon: "/assets/images/services/icons/cupping.webp",
shortDescription: "Cupping and Dry Needling Etobicoke are physiotherapy techniques designed to relieve muscle tension, improve circulation, deactivate trigger points, and restore function.",
metaTitle: "The Best Cupping Therapy in Etobicoke - Physio Near Me",
metaDiscription: "Try cupping therapy in Etobicoke for muscle relief, improved circulation & reduced pain. Physio, osteopathy & massage from experts nearby.",
description: `<div>
<div class="text-box ">
<h2>Cupping Therapy Etobicoke</h2>
@ -2430,6 +2440,8 @@ export const servicesList = [
bigImg: "/assets/images/services/shiatsu/big-img.webp",
icon: "/assets/images/services/icons/shiatsu.webp",
shortDescription: "Etobicoke Shiatsu Therapy is a traditional Japanese bodywork technique that gently applies rhythmic pressure along the bodys energy meridians to promote balance, relaxation, and natural healing.",
metaTitle: "Shiatsu Therapy in Etobicoke - The Best Physio Near Me",
metaDiscription: "Experience shiatsu therapy in Etobicoke - expert physio & osteopath support to ease tension & restore balance.",
description: `<div>
<div class="text-box ">
<h2>Shiatsu Therapy Etobicoke</h2>
@ -2500,6 +2512,8 @@ export const servicesList = [
bigImg: "/assets/images/services/deep-tissue/big-img.webp",
icon: "/assets/images/services/icons/deep-tissue.webp",
shortDescription: "Etobicoke Deep Tissue Massage is a therapeutic bodywork technique that uses firm, sustained pressure and slow strokes to access deeper layers of muscle and fascia.",
metaTitle: "The Best Deep Tissue Massage in Etobicoke - Physio &Rehab ",
metaDiscription: "Rapha Rehab offers deep tissue massage in Etobicoke to relieve chronic muscle tension & pain. Trusted physio, osteopathy near you.",
description: `<div>
<div class="text-box ">
<h2>Deep Tissue Massage Etobicoke</h2>
@ -2569,6 +2583,8 @@ export const servicesList = [
bigImg: "/assets/images/services/neuro/big-img.webp",
icon: "/assets/images/services/icons/neuro-fascial.webp",
shortDescription: "Etobicoke Neuro Fascial Therapy is an advanced technique targeting the nervous system and fascia to alleviate pain, restore mobility, and improve function.",
metaTitle: "Neuro Fascial Therapy in Etobicoke - Best Physio & Osteopath",
metaDiscription: "Neuro fascial therapy near you in Etobicoke - expert physiotherapy & osteopathy to relieve nerve pain, restore mobility & heal fascia.",
description: `<div>
<div class="text-box ">
<h2>Neuro Fascial Therapy Etobicoke</h2>
@ -2639,6 +2655,8 @@ export const servicesList = [
bigImg: "/assets/images/services/cranio/big-img.webp",
icon: "/assets/images/services/icons/cranio.webp",
shortDescription: "Cranio Sacral Therapy Etobicoke is a hands-on technique that evaluates and enhances the craniosacral rhythm to alleviate pain and support the bodys natural healing processes.",
metaTitle: "Cranio-Sacral Therapy in Etobicoke - Gentle Healing Physio",
metaDiscription: "Gentle Cranio-Sacral Therapy in Etobicoke - osteopathy & physiotherapy combining hands-on care, massage, and rehab to ease pain.",
description: `<div>
<div class="text-box ">
<h2>Cranio Sacral Therapy Etobicoke</h2>
@ -2708,6 +2726,8 @@ export const servicesList = [
bigImg: "/assets/images/services/mva/big-img.webp",
icon: "/assets/images/services/icons/mva.webp",
shortDescription: "Etobicoke Motor Vehicle Accident Rehabilitation is a specialized physiotherapy program tailored for individuals recovering from injuries sustained in car, motorcycle, and pedestrian accidents.",
metaTitle: "Motor Vehicle Accident Rehab Etobicoke - Physio & Osteopathy",
metaDiscription: "Recover from car or motorcycle accidents with expert MVA rehabilitation in Etobicoke. Physiotherapy, osteopath care & massage near you.",
description: `<div>
<div class="text-box ">
<h2>Motor Vehicle Accident Rehabilitation Etobicoke</h2>
@ -2769,6 +2789,8 @@ export const servicesList = [
bigImg: "/assets/images/services/compression/big-img.webp",
icon: "/assets/images/services/icons/compression.webp",
shortDescription: "Etobicoke Compression Stockings provide graduated compression to improve blood flow, reduce swelling, and support vascular health in the legs.",
metaTitle: "Compression Stockings in Etobicoke - Physio for Leg Health",
metaDiscription: "Medical-grade compression stockings in Etobicoke fitted by experts. Improve blood flow, reduce swelling & support vascular health.",
description: `<div>
<div class="text-box ">
<h2>Compression Stockings Etobicoke</h2>
@ -2824,6 +2846,8 @@ export const servicesList = [
bigImg: "/assets/images/services/cardiac/big-img.webp",
icon: "/assets/images/services/icons/cardiac.webp",
shortDescription: "Etobicoke Cardiac Rehabilitation is a structured, multidisciplinary program designed to support individuals recovering from heart-related conditions and procedures.",
metaTitle: "Cardiac Rehabilitation in Etobicoke - Physio & Osteopath",
metaDiscription: "Recover strong with cardiac rehab in Etobicoke. Expert physio, osteopathy & exercise programs tailored for heart health near you.",
description: `<div>
<div class="text-box ">
<h2>Cardiac Rehabilitation Etobicoke</h2>
@ -2893,6 +2917,8 @@ export const servicesList = [
bigImg: "/assets/images/services/ims/big-img.webp",
icon: "/assets/images/services/icons/ims.webp",
shortDescription: "Etobicoke Intramuscular Stimulation (IMS) is an electrotherapeutic technique to treat chronic muscle pain using fine needle electrodes.",
metaTitle: "Intramuscular Stimulation (IMS) in Etobicoke -Physio Near Me",
metaDiscription: "The Best IMS therapy at Rapha Rehab -using fine-needle stimulation for chronic muscle pain, trigger points & functional recovery.",
description: `<div>
<div class="text-box ">
<h2>Intramuscular Stimulation (IMS) Etobicoke</h2>
@ -2953,6 +2979,8 @@ export const servicesList = [
bigImg: "/assets/images/services/psychotherapy/big-img.webp",
icon: "/assets/images/services/icons/psychotherapy.webp",
shortDescription: "Etobicoke Psychotherapy offers evidence-based talk therapy services delivered by licensed therapists to support mental health and emotional well-being.",
metaTitle: "Psychotherapy in Etobicoke | Best Mental Health Care Near Me",
metaDiscription: "Best psychotherapy in Etobicoke - licensed therapists offering individual, couples & group therapy to improve mental health & emotional wellness.",
description: `<div>
<div class="text-box ">
<h2>Psychotherapy Etobicoke</h2>
@ -3013,6 +3041,8 @@ export const servicesList = [
bigImg: "/assets/images/services/shockwave/big-img.webp",
icon: "/assets/images/services/icons/shockwave.webp",
shortDescription: "Etobicoke Shockwave Therapy provides advanced treatment using acoustic waves to accelerate healing, relieve pain, and restore mobility.",
metaTitle: "Shockwave Therapy in Etobicoke - Best Physiotherapy Near Me",
metaDiscription: "Relieve pain & heal faster with shockwave therapy in Etobicoke. Expert physio & osteopathy treatment for tendinopathy, plantar fasciitis & more.",
description: `<div>
<div class="text-box ">
<h2>Shockwave Therapy Etobicoke</h2>

View File

@ -8,6 +8,8 @@ export const teamMembers = [
image: "/assets/images/our-team/dhanya.webp",
imageDetail: "/assets/images/our-team/details/dhanya.webp",
bannerImage: "/assets/images/our-team/details/our-team-details-banner-1.webp",
metaTitle: "Dhanya Prashant - Registered Physiotherapist in Etobicoke",
metaDis: "Meet Dhanya Prashant, experienced physiotherapist at Rapha Rehab Etobicoke. Expert in back pain, vestibular therapy & rehab.",
description: "Dhanya Prashant is a registered physiotherapist with 10+ years of clinical experience helping people move with comfort and confidence. She has special interests in the McKenzie method for back pain, vestibular rehabilitation for dizziness and balance issues, and complex musculoskeletal injuries. At Rapha Rehab in Etobicoke, Dhanya blends targeted exercise prescription with gentle, hands-on manual therapy to restore function and prevent re-injury. Her approach is collaborative, goal-driven, and tailored to each persons lifestyle.",
about1:
"Dhanya began her career in outpatient orthopedic care and quickly developed a reputation for meticulous assessments and clear patient education. She has guided hundreds of clients through recovery from low-back and neck pain, rotator-cuff and shoulder conditions, knee and ankle injuries, and post-operative rehabilitation. Her additional training in vestibular therapy allows her to effectively treat vertigo, post-concussion symptoms, and balance deficits-prioritizing safety and gradual exposure to movement.",
@ -36,6 +38,8 @@ export const teamMembers = [
bannerImage: "/assets/images/our-team/details/our-team-details-banner-2.webp",
image: "/assets/images/our-team/chandra.webp",
imageDetail: "/assets/images/our-team/details/chandra.webp",
metaTitle: "Chandra Babu - Registered Massage Therapist | Rapha Rehab",
metaDis: "Meet Chandra Babu, Registered Massage Therapist at Rapha Rehab Etobicoke. Expert in deep tissue, reflexology & massage therapy.",
description: " Chandra Babu is a registered massage therapist with eight years of professional experience helping clients relieve tension, recover from injury, and enhance overall wellness. At Rapha Rehab in Etobicoke, Chandra specializes in deep tissue techniques, reflexology, and wellness-focused massage programs. His treatments are designed to ease muscle tightness, improve circulation, and complement physiotherapy or rehabilitation plans for a complete approach to care.",
about1:
"Chandra began his career working alongside physiotherapists and chiropractors in multidisciplinary clinics, where he gained valuable insight into injury recovery and preventative care. Over the years, he has refined his ability to identify areas of muscle imbalance and tension, using tailored massage techniques to help clients restore movement and reduce discomfort. His calm, attentive manner puts patients at ease, making each session a positive and restorative experience.",
@ -56,6 +60,37 @@ export const teamMembers = [
{ label: "Wellness Coaching", percent: 80 },
],
},
{
id: 3,
slug: "jo-anne",
name: "Jo-Anne",
designation: "Diet & Nutrition Consultant",
bannerImage: "/assets/images/our-team/details/our-team-details-banner-2.webp",
image: "/assets/images/our-team/Jo-Anne.png",
imageDetail: "/assets/images/our-team/Jo-Anne.png",
metaTitle: "Jo-Anne - Diet & Nutrition Consultant | Rapha Rehab",
metaDis: "Meet Jo-Anne, a Diet & Nutrition Consultant with over 45 years of experience in hospitals, consulting, and online internationally since Covid.",
description: "Jo-Anne has over 45 years of diet and nutrition experience in hospitals, her consulting business, and since Covid, on-line internationally. Growing up, Jo-Anne saw the health burden of extra body weight for a family member and then for herself in her early twenties. This inspired her to go into the field of diet and nutrition. Jo-Anne graduated in 1979 with a college honors diploma in Dietary from the Northern Alberta Institute of Technology (NAIT) in Edmonton, Alberta, Canada. And since has strived to encourage others and to foster her own healthy eating active lifestyle. Her personalized healthy active lifestyle approach can work for anyone because it is adaptable to individual needs and preferences. No one-size-fits-all, each person is different, and thats why your program is customized to suit you plus you get supportive accountability to keep you going. Look, Feel, Move, & Think Better with Winning Healthy Lifestyle Programs. Get Results that last so you look, feel, move and think your best, have more energy, prevent premature aging, reduce serious health risks like diabetes and heart disease and truly enhance your overall quality of life. Discover which program works best for you and your goals, start with a free no obligation consultation. Call Jo-Anne at 832-273-2131.",
about1:
"Individual and group options available to fit your schedule and budget. Minimum group size is 6. Individual programs available by appointment. Program length varies depending on goals. Day & time varies daytime and evening programs available. Fee per program: Based on number of meetings plus program guide.",
about2:
"Winning-Edge for Weight-loss: a doable healthy lifestyle approach to losing weight and keeping it off. This program is informative, supportive and fun. Not only do participants look and feel better as they lose weight, but they feel more empowered to manage their Healthy Weight Zone forever. OPTION #2: Optimizing Health (OH) is an active lifestyle program focused on personal optimization of healthy eating, active living and thoughtful habits (HEALTH). Get science-based information on nutrition/food, fitness and habits so, you can make more thoughtful healthier choices. Learn to separate fact, myth and fiction. Then implement what works for you into your active lifestyle to optimize your health. Habits like eating nutritiously and being physically active are foundational for an overall healthy lifestyle. You will look, feel, move and think your best by optimizing your health with OH tools, information and practice.",
experience: "45+ Years",
email: " jo-anne@rapharehab.ca",
phone: " 832-273-2131",
socials: [
{ icon: "icon-7", link: "/" },
{ icon: "icon-4", link: "/" },
{ icon: "icon-6", link: "/" },
],
skills: [
{ label: "Diet & Nutrition Consulting", percent: 95 },
{ label: "Healthy Lifestyle Coaching", percent: 90 },
{ label: "Weight Management Programs", percent: 92 },
],
}
];