Compare commits

...

57 Commits

Author SHA1 Message Date
Alaguraj0361
73199b0b52 about section images size compressed 2025-10-07 22:26:48 +05:30
Alaguraj0361
229153b9e5 removed unwanted js file inside of public folder 2025-10-07 22:11:49 +05:30
Alaguraj0361
68732a0000 404 page issues fixed 2025-10-07 21:57:46 +05:30
akash
1d005cfba6 Mobile banner sliding updated & Home faq alignment issu fixed about.css bottom style un commented 2025-10-07 14:02:37 +05:30
Alaguraj0361
b3037ce050 about section performance updated 2025-10-03 18:42:12 +05:30
Alaguraj0361
18bee619e9 about section updated for performance issues 2025-10-03 17:18:55 +05:30
Alaguraj0361
d3cec426d3 unwanted css removed 2025-10-03 17:04:23 +05:30
Alaguraj0361
1055ca32ab performance updated 2025-10-03 13:56:31 +05:30
Alaguraj0361
7d9f00a43e perfomance issues fixed 2025-10-02 22:28:04 +05:30
Alaguraj0361
543c26d3e9 removed unwanted packages and unwanted js file 2025-10-02 22:10:11 +05:30
akash
023402f623 Conact form updation completed 2025-10-02 20:39:20 +05:30
Alaguraj0361
c8f24b2b12 banner updated 2025-10-02 17:25:45 +05:30
akash
0124c57991 Coverage checking retrived 2025-09-30 22:03:21 +05:30
akash
68f16697da Merge branch 'team' of https://git.metatroncube.in/MetatroncubeSoftwareSolutions/rapharehap into team 2025-09-30 21:55:41 +05:30
akash
a1fd0366a9 Coverage checking and deleted files gone wrong all style changed now all codes re updated 2025-09-30 21:55:21 +05:30
Alaguraj0361
c83efb2375 clarity id added 2025-09-30 21:54:40 +05:30
Alaguraj0361
8a5818e77a sitemap updated 2025-09-30 21:48:55 +05:30
Alaguraj0361
f260c8b47a sitemap url updated 2025-09-30 21:38:04 +05:30
Alaguraj0361
a7f4ba246c sitemap updated 2025-09-30 21:17:42 +05:30
Alaguraj0361
aa12c283c2 banner button and area of injury section animation updated 2025-09-30 18:07:50 +05:30
akash
5f8a7c7c97 Desktop 3rd new banner updated 2025-09-29 11:06:38 +05:30
akash
c4141617d1 3rd Banner Position changed into end 2025-09-27 18:24:19 +05:30
akash
db8b185a41 3rd Banner Position changed into end 2025-09-27 18:15:04 +05:30
akash
f7026ea7d5 3rd Banner new content updated 2025-09-27 18:03:34 +05:30
akash
3f9e2d35a0 3rd Banner content updated 2025-09-27 16:36:30 +05:30
akash
04a71f46e7 New banner 3 updated, testimonial updated 2025-09-27 14:56:30 +05:30
akash
cf1dc41fba Banner 3 new one updated, New peopel reviews updated in testimonial 2025-09-27 14:51:16 +05:30
c961317a30 unused css removed 2025-09-26 19:33:29 +05:30
af0e50eeaa unused css removed 2025-09-26 19:33:14 +05:30
Alaguraj0361
b56a3a3790 call to action section popup video commented 2025-09-26 11:24:46 +05:30
Alaguraj0361
5a86a8e123 testimonial updated 2025-09-26 11:12:41 +05:30
akash
44e3fe629a Coverage loading speed increased and non used codes are removed 2025-09-25 23:39:02 +05:30
akash
465019f1a8 Review button updated 2025-09-25 22:59:58 +05:30
f29ed1f9f7 corrections updated 2025-09-25 21:26:23 +05:30
akash
f82e4fa1a3 Faq heading updated 2025-09-25 17:04:14 +05:30
akash
d026cad5a8 Client Corrections updated 2025-09-25 16:11:00 +05:30
akash
b68ba7b168 Client Corrections updated 2025-09-25 15:10:53 +05:30
akash
80f84ca84f Correction images updated 2025-09-25 10:47:19 +05:30
akash
d1b3fa4fff Merge branch 'team' of https://git.metatroncube.in/MetatroncubeSoftwareSolutions/rapharehap into team 2025-09-24 22:44:02 +05:30
akash
8d6540a777 Area of injury, Rehabilitation , Accident in a row 4 cards updated 2025-09-24 22:43:47 +05:30
Alaguraj0361
b4ffa1d1dd next config updated 2025-09-24 22:14:39 +05:30
akash
67221864db Merge branch 'team' of https://git.metatroncube.in/MetatroncubeSoftwareSolutions/rapharehap into team 2025-09-24 22:05:05 +05:30
akash
ebcd435e1c Client updates completed 2025-09-24 22:04:49 +05:30
Alaguraj0361
01a23ea22c image optimizer convert png to webp format 2025-09-24 20:39:49 +05:30
Alaguraj0361
c1761a3d3b home page about section image updated 2025-09-24 19:41:15 +05:30
Alaguraj0361
e89197d89c image optimized 2025-09-24 19:13:05 +05:30
Alaguraj0361
4baf06cbdb contact form rechapcha sitekey updated 2025-09-24 17:55:38 +05:30
Alaguraj0361
104cfc2431 performence issues fixed 2025-09-24 17:47:05 +05:30
akash
8533a673f6 Meta title and Description duplication fixed 2025-09-24 15:06:13 +05:30
akash
2a423bd172 Merge branch 'team' of https://git.metatroncube.in/MetatroncubeSoftwareSolutions/rapharehap into team 2025-09-23 23:13:44 +05:30
akash
87ce64eeeb Team Members bottom social icon removed 2025-09-23 23:13:31 +05:30
Alaguraj0361
32d1af3d72 Merge branch 'team' of https://git.metatroncube.in/MetatroncubeSoftwareSolutions/rapharehap into team 2025-09-23 23:06:49 +05:30
Alaguraj0361
ab523c962a banner order updated 2025-09-23 23:06:32 +05:30
akash
14f447f31d Card icon widht updated 2025-09-23 23:05:35 +05:30
akash
77555f9a2c Payment insurence pages content updated 2025-09-23 23:03:31 +05:30
Alaguraj0361
451259c243 address , mobile banner order and content, service massage theropy add home page, doctors to change theropist, testimonial title change to google reviews updated 2025-09-23 22:59:42 +05:30
metatroncubeswdev
38ee0d866c updated the banner order and transition changes 2025-09-23 12:58:17 -04:00
114 changed files with 7584 additions and 28594 deletions

View File

@ -53,12 +53,12 @@ export default function Home() {
{
title: "Mission",
img: "/assets/images/about-us/section2/mission.webp",
text: "Physiotherapy etobicoke is committed to providing quality and innovative health care in a comfortable and professional environment. Our interdisciplinary team will work collaboratively to offer a comprehensive and patient centered approach to ensure the highest level of client experience through our evidence-based clinical practice"
text: "Physiotherapy etobicoke is committed to providing quality and innovative health care in a comfortable and professional environment. Our interdisciplinary team will work collaboratively to offer a comprehensive and patient centered approach to ensure the highest level of client experience through our evidence-based clinical practice."
},
{
title: "Vision",
img: "/assets/images/about-us/section2/vision.webp",
text: "To be regarded as the most reliable and effective health care therapy practice backed by the team of innovative healthcare professionals driven by passion"
text: "To be regarded as the most reliable and effective health care therapy practice backed by the team of innovative healthcare professionals driven by passion."
},
{
title: "Values",
@ -98,7 +98,7 @@ export default function Home() {
<h2>Comprehensive Physiotherapy & Rehabilitation Clinic in Etobicoke</h2>
</div>
<div className="text-box mb_40">
<p>Welcome to Rapha Rehab Physiotherapy Massage Therapy Clinic Etobicoke physiotherapy clinic in etobicoke managed by Registered Physiotherapists offering reliable physiotherapy treatment Services, Sports injury physiotherapy, Pelvic floor physiotherapy, Chiropractor, Massage therapy , Acupuncture treatment, Foot Reflexology, Osteopathy, custom knee braces, orthotics, spinal decompression therapy, concussion management, chronic pain management, workplace injury management, Naturopathy and home care physiotherapy Services in Etobicoke</p>
<p>Welcome to Rapha Rehab Physiotherapy Massage Therapy Clinic Etobicoke physiotherapy clinic in etobicoke managed by Registered Physiotherapists offering reliable physiotherapy treatment Services, Sports injury physiotherapy, Pelvic floor physiotherapy, Chiropractor, Massage therapy , Acupuncture treatment, Foot Reflexology, Osteopathy, custom knee braces, orthotics, spinal decompression therapy, concussion management, chronic pain management, workplace injury management, Naturopathy and home care physiotherapy Services in Etobicoke.</p>
</div>
<div className="btn-box">
<Link href="/contact" className="theme-btn btn-one"><span>Book Appointment</span></Link>
@ -178,7 +178,7 @@ export default function Home() {
<h2>Your Trusted Physiotherapy Team in Etobicoke</h2>
</div>
<div className="text-box mb_40">
<p className="tex-color-1">Physiotherapy etobicoke is a team of health care professionals working together to help get you better, faster. This helps us in rendering our best possible services to our clients</p>
<p className="tex-color-1">Physiotherapy etobicoke is a team of health care professionals working together to help get you better, faster. This helps us in rendering our best possible services to our clients.</p>
</div>
<div className="btn-box">
<Link href="/contact" className="theme-btn btn-one-new"><span>Book Appointment</span></Link>
@ -258,7 +258,7 @@ export default function Home() {
</section>
<section className="chooseus-section">
<div className="bg-layer" style={{ backgroundImage: 'url(/assets/images/about-us/section4/why-choose-right.webp)' }}></div>
<div className="pattern-layer" style={{ backgroundImage: 'url(/assets/images/shape/shape-12.png)' }}></div>
<div className="pattern-layer" style={{ backgroundImage: 'url(/assets/images/shape/shape-12.webp)' }}></div>
<div className="auto-container">
<div className="row clearfix">
<div className="col-lg-8 col-md-12 col-sm-12 content-column">
@ -274,7 +274,7 @@ export default function Home() {
<div className="inner-box">
<div className="icon-box"><img src="/assets/images/home/why-choose/expert-team.webp" alt="Expert team" /></div>
<h3>Expert Team</h3>
<p>At Etobicoke Physiotherapy, we have expert team of professionals</p>
<p>At Etobicoke Physiotherapy, we have expert team of professionals.</p>
</div>
</div>
</div>
@ -283,7 +283,7 @@ export default function Home() {
<div className="inner-box">
<div className="icon-box"><img src="/assets/images/about-us/section4/understand.webp" alt="Understand your pain" /></div>
<h3>Understand your Pain</h3>
<p>Etobicoke physiotherapy offer Treatment for faster recovery</p>
<p>Etobicoke physiotherapy offer Treatment for faster recovery.</p>
</div>
</div>
</div>
@ -292,7 +292,7 @@ export default function Home() {
<div className="inner-box">
<div className="icon-box"><img src="/assets/images/home/why-choose/ready.webp" alt="Ready to go" /></div>
<h3>Ready To Go</h3>
<p>Flexible opening hours conveniently located in etobicoke</p>
<p>Flexible opening hours conveniently located in etobicoke.</p>
</div>
</div>
</div>

View File

@ -3,7 +3,6 @@ import Link from "next/link";
import { notFound } from "next/navigation";
import Accident from "@/utils/Accident.utils";
// ✅ Generate static paths for export
export async function generateStaticParams() {
return Accident.map((item) => ({
slug: item.slug,
@ -22,7 +21,7 @@ export async function generateMetadata({ params }) {
return {
title: service.metaTitle || service.title,
description: service.metaDescription || service.shortDesc,
description: service.metaDiscription || service.shortDesc,
};
}

View File

@ -5,7 +5,7 @@ import Accident from "@/utils/Accident.utils";
export const metadata = {
title: "Accident Injury Rehab Services Rapharehab Experts",
description: "Recover confidently after an accident with Rapharehab. Our professional team provides personalized care to manage pain, restore mobility, and rebuild strength.",
description: "Recover confidently after an accident with Rapharehab. Our professional team provides personalized care to manage pain, restore mobility and rebuild strength.",
};
export default function AccidentPage() {
@ -15,31 +15,67 @@ export default function AccidentPage() {
<div className="auto-container">
<div className="row clearfix">
{Accident.map((service, index) => (
<div key={service.id} className="col-lg-4 col-md-6 col-sm-12 service-block">
<div
className="service-block-one wow fadeInUp animated"
data-wow-delay={`${index * 300}ms`}
data-wow-duration="1500ms"
>
<div className="inner-box">
// <div key={service.id} className="col-lg-4 col-md-6 col-sm-12 service-block">
// <div
// className="service-block-one wow fadeInUp animated"
// data-wow-delay={`${index * 300}ms`}
// data-wow-duration="1500ms"
// >
// <div className="inner-box">
// <div className="image-box">
// <figure className="image">
// <Link href={`/accident/${service.slug}`}>
// <img src={service.mainImage} alt={service.title} />
// </Link>
// </figure>
// </div>
// <div className="lower-content">
// <div className="icon-box">
// <img
// src={service.icon}
// alt={`${service.title}`}
// />
// </div>
// <h3>
// <Link href={`/accident/${service.slug}`}>{service.title}</Link>
// </h3>
// <p>{service.shortDesc}</p>
// </div>
// </div>
// </div>
// </div>
<div className="col-lg-3 col-md-4 col-sm-12 service-block d-flex">
<div className="service-block-one wow fadeInUp animated d-flex flex-column flex-grow-1" data-wow-delay="00ms" data-wow-duration="1500ms">
<div className="inner-box d-flex flex-column flex-grow-1">
<div className="image-box">
<figure className="image">
<Link href={`/accident/${service.slug}`}>
<img src={service.mainImage} alt={service.title} />
</Link>
<img src={service.mainImage} alt={service.title} />
</Link>
</figure>
</div>
<div className="lower-content">
<div className="icon-box">
<div className="lower-content-new">
<div className="icon-box-new">
<img
src={service.icon}
alt={`${service.title}`}
/>
</div>
<h3>
<h3 className='text-start'>
<Link href={`/accident/${service.slug}`}>{service.title}</Link>
</h3>
<p>{service.shortDesc}</p>
<p
className='text-start'
style={{
overflow: 'hidden',
textOverflow: 'ellipsis',
display: '-webkit-box',
WebkitLineClamp: 2,
WebkitBoxOrient: 'vertical',
}}
>
{service?.shortDesc}
</p>
</div>
</div>
</div>

View File

@ -21,7 +21,7 @@ export async function generateMetadata({ params }) {
return {
title: `${service.metaTitle} Rapharehab Clinic`,
description: service.metaDescription || "Expert physiotherapy and pain relief treatments.",
description: service.metaDiscription || "Expert physiotherapy and pain relief treatments.",
};
}

View File

@ -22,32 +22,66 @@ export default function AreaOfInjury() {
const altText = item.title ? item.title.toUpperCase() : "AREA OF INJURY";
return (
<div className="col-lg-4 col-md-6 col-sm-12 service-block" key={item.id}>
<div
className="service-block-one wow fadeInUp animated"
data-wow-delay="00ms"
data-wow-duration="1500ms"
>
<div className="inner-box">
<div className="image-box">
<figure className="image">
<Link href={`/area-of-injury/${item.slug}`}>
// <div className="col-lg-4 col-md-6 col-sm-12 service-block" key={item.id}>
// <div
// className="service-block-one wow fadeInUp animated"
// data-wow-delay="00ms"
// data-wow-duration="1500ms"
// >
// <div className="inner-box">
// <div className="image-box">
// <figure className="image">
// <Link href={`/area-of-injury/${item.slug}`}>
// <img src={item.image} alt={altText} />
// </Link>
// </figure>
// </div>
// <div className="lower-content new-height">
// <div className="icon-box">
// <img src={item.icon} alt={altText} />
// </div>
// <h3>
// <Link href={`/area-of-injury/${item.slug}`}>{item.title}</Link>
// </h3>
// <p>{item.shortDescription}</p>
// </div>
// </div>
// </div>
// </div>
<div className="col-lg-3 col-md-4 col-sm-12 service-block d-flex">
<div className="service-block-one wow fadeInUp animated d-flex flex-column flex-grow-1" data-wow-delay="00ms" data-wow-duration="1500ms">
<div className="inner-box d-flex flex-column flex-grow-1">
<div className="image-box">
<figure className="image">
<Link href={`/area-of-injury/${item.slug}`}>
<img src={item.image} alt={altText} />
</Link>
</figure>
</div>
<div className="lower-content new-height">
<div className="icon-box">
<img src={item.icon} alt={altText} />
</div>
<h3>
<Link href={`/area-of-injury/${item.slug}`}>{item.title}</Link>
</h3>
<p>{item.shortDescription}</p>
</Link>
</figure>
</div>
<div className="lower-content-new">
<div className="icon-box-new">
<img src={item.icon} alt={altText} />
</div>
<h3 className='text-start'>
<Link href={`/area-of-injury/${item.slug}`}>{item.title}</Link>
</h3>
<p
className='text-start'
style={{
overflow: 'hidden',
textOverflow: 'ellipsis',
display: '-webkit-box',
WebkitLineClamp: 2,
WebkitBoxOrient: 'vertical',
}}
>
{item.shortDescription}
</p>
</div>
</div>
</div>
</div>
)
})}
</div>

View File

@ -23,8 +23,8 @@ export default function Blog() {
<div key={i} className="col-lg-4 col-md-6 col-sm-12 news-block">
<div
className="news-block-one wow fadeInUp animated"
data-wow-delay={`${i * 300}ms`}
data-wow-duration="1500ms"
data-wow-delay={`${i * 20}ms`}
data-wow-duration="300ms"
>
<div className="inner-box">
<figure className="image-box">

View File

@ -4,14 +4,14 @@ import { useState, useEffect } from "react";
import ReCAPTCHA from "react-google-recaptcha";
import axios from "axios";
import Link from "next/link";
import { servicesList } from "@/utils/Services.utils";
export default function ContactClient() {
const [formData, setFormData] = useState({
username: "",
lname: "",
email: "",
phone: "",
subject: "",
service: "",
message: "",
});
@ -19,45 +19,47 @@ export default function ContactClient() {
const [captchaToken, setCaptchaToken] = useState(null);
const [alert, setAlert] = useState({ show: false, type: "", message: "" });
// Handle input changes
const handleChange = (e) => {
const { name, value } = e.target;
// console.log("Input Changed:", name, value);
setFormData((prev) => ({ ...prev, [name]: value }));
};
// Handle captcha
const handleCaptchaChange = (token) => {
// console.log("Captcha Token:", token);
setCaptchaToken(token);
};
// Form submit handler
const handleSubmit = async (e) => {
e.preventDefault();
// console.log("Form Submitted:", formData);
const errors = {};
if (!formData.username.trim()) errors.username = "First Name is required.";
if (!formData.lname.trim()) errors.lname = "Last Name is required.";
if (!formData.username.trim()) errors.username = "Name is required.";
if (!formData.email.trim()) errors.email = "Email is required.";
if (!formData.phone.trim()) errors.phone = "Phone is required.";
if (!formData.subject.trim()) errors.subject = "Subject is required.";
if (!formData.service.trim()) errors.service = "Please select a service.";
if (!formData.message.trim()) errors.message = "Message is required.";
if (!captchaToken) errors.captcha = "Please verify the CAPTCHA.";
setFormErrors(errors);
// console.log("Form Errors:", errors);
if (Object.keys(errors).length > 0) return;
const emailData = {
...formData,
message: `Subject: ${formData.subject}<br /><br />Message: ${formData.message}`,
message: `Service: ${formData.service}<br /><br />Message: ${formData.message}`,
to: "bloor@rapharehab.ca",
senderName: "Rapha Rehab Contact Page",
recaptchaToken: captchaToken,
};
try {
const res = await axios.post("https://mailserver.metatronnest.com/send", emailData, {
// console.log("Sending email:", emailData);
const res = await axios.post("/api/sendMail", emailData, {
headers: { "Content-Type": "application/json" },
});
// console.log("Email Response:", res.data);
setAlert({
show: true,
@ -67,16 +69,15 @@ export default function ContactClient() {
setFormData({
username: "",
lname: "",
email: "",
phone: "",
subject: "",
service: "",
message: "",
});
setCaptchaToken(null);
setFormErrors({});
} catch (error) {
console.error("❌ Error sending email:", error);
// console.error("❌ Error sending email:", error);
setAlert({
show: true,
type: "danger",
@ -85,7 +86,7 @@ export default function ContactClient() {
}
};
// Auto-hide alert
useEffect(() => {
if (alert.show) {
const timer = setTimeout(() => {
@ -97,7 +98,6 @@ export default function ContactClient() {
return (
<div>
{/* Contact Info Section */}
<section className="contact-info-section pt_90">
<div className="auto-container">
<div className="row clearfix">
@ -131,7 +131,7 @@ export default function ContactClient() {
<div className="icon-box">
<img src="/assets/images/icons/icon-2.png" alt="" />
</div>
<p>6 4335 Bloor Street West <br />Etobicoke, M9C5S2</p>
<p>5 4335 Bloor Street West <br />Etobicoke, M9C 2A5</p>
</div>
</div>
</div>
@ -139,7 +139,6 @@ export default function ContactClient() {
</div>
</section>
{/* Contact Form Section */}
<section className="contact-style-three pt_90 pb_90">
<div className="auto-container">
<div className="row clearfix">
@ -148,7 +147,7 @@ export default function ContactClient() {
<div className="sec-title mb_50">
<h2>How can we help?</h2>
<p className="mt-3">
Please complete the contact information below and let us know your needs.
Please complete the contact information below and let us know your needs.
Upon receipt of your information one of our team members will reach out.
</p>
</div>
@ -163,7 +162,7 @@ export default function ContactClient() {
<input
type="text"
name="username"
placeholder="First Name"
placeholder="Name"
value={formData.username}
onChange={handleChange}
/>
@ -173,12 +172,12 @@ export default function ContactClient() {
<div className="col-lg-6 col-md-6 col-sm-12 form-group">
<input
type="text"
name="lname"
placeholder="Last Name"
value={formData.lname}
name="phone"
placeholder="Phone"
value={formData.phone}
onChange={handleChange}
/>
{formErrors.lname && <small className="text-danger">{formErrors.lname}</small>}
{formErrors.phone && <small className="text-danger">{formErrors.phone}</small>}
</div>
<div className="col-lg-6 col-md-6 col-sm-12 form-group">
@ -193,28 +192,23 @@ export default function ContactClient() {
</div>
<div className="col-lg-6 col-md-6 col-sm-12 form-group">
<input
type="text"
name="phone"
placeholder="Phone"
value={formData.phone}
<select
name="service"
value={formData.service}
onChange={handleChange}
/>
{formErrors.phone && <small className="text-danger">{formErrors.phone}</small>}
className="form-control"
>
<option value="">Select Service</option>
{servicesList.map((service) => (
<option key={service.slug} value={service.shortTitle}>
{service.shortTitle}
</option>
))}
</select>
{formErrors.service && <small className="text-danger">{formErrors.service}</small>}
</div>
<div className="col-lg-12 col-md-12 col-sm-12 form-group">
<input
type="text"
name="subject"
placeholder="Subject"
value={formData.subject}
onChange={handleChange}
/>
{formErrors.subject && <small className="text-danger">{formErrors.subject}</small>}
</div>
<div className="col-lg-12 col-md-12 col-sm-12 form-group">
<div className="col-lg-12 col-md-6 col-sm-12 form-group">
<textarea
name="message"
placeholder="Message"
@ -226,7 +220,7 @@ export default function ContactClient() {
<div className="col-lg-12 mb-3">
<ReCAPTCHA
sitekey="6LekfpwrAAAAAOTwuP1d2gg-Fv9UEsAjE2gjOQJl"
sitekey="6Lckq9MrAAAAABjBD9rQYm19BMGFFWiwb9mPiw2K"
onChange={handleCaptchaChange}
/>
{formErrors.captcha && <small className="text-danger">{formErrors.captcha}</small>}
@ -251,7 +245,6 @@ export default function ContactClient() {
</div>
</section>
{/* Google Map */}
<section className="google-map-section">
<div className="map-inner">
<iframe
@ -266,4 +259,4 @@ export default function ContactClient() {
</section>
</div>
);
}
}

View File

@ -17,7 +17,7 @@ export default function ServiceDetailClient({ slug, service, servicesList }) {
return (
<div>
{/* service-section */}
<section className="service-details pt_90 .pb_90">
<section className="service-details pt_90 pb_90">
<div className="auto-container">
<div className="row clearfix">

View File

@ -14,7 +14,7 @@ export async function generateMetadata({ params }) {
return {
title: service.metaTitle || service.shortTitle || service.title,
description: service.metaDescription || service.shortDesc || "Explore this service in detail",
description: service.metaDiscription || service.shortDesc || "Explore this service in detail",
};
}

View File

@ -4,8 +4,8 @@ import Link from "next/link"
import { servicesList } from "@/utils/Services.utils"
export const metadata = {
title: "Our Professional Services Rapharehab Physiotherapy",
description: "Explore a full range of trusted services at Rapharehab, from physiotherapy to acupuncture, massage, osteopathy, chiropody, and more.",
title: "Our Professional Services Rapharehab Physiotherapy",
description: "Explore a full range of trusted services at Rapharehab, from physiotherapy to acupuncture, massage, osteopathy, chiropody, and more.",
};
export default function ServicesPage() {
@ -16,27 +16,37 @@ export default function ServicesPage() {
<div className="auto-container">
<div className="row clearfix">
{servicesList.map((item) => (
<div className="col-lg-4 col-md-6 col-sm-12 service-block" key={item.id}>
<div className="service-block-one wow fadeInUp animated" data-wow-delay="00ms" data-wow-duration="1500ms">
<div className="inner-box">
<div className="col-lg-3 col-md-4 col-sm-12 service-block d-flex">
<div className="service-block-one wow fadeInUp animated d-flex flex-column flex-grow-1" data-wow-delay="00ms" data-wow-duration="1500ms">
<div className="inner-box d-flex flex-column flex-grow-1">
<div className="image-box">
<figure className="image">
<Link href={`/etobicoke-treatment-service/${item.slug}`}>
<img src={item.image} alt={item.title} />
<img src={item?.image} alt={item.alt} />
</Link>
</figure>
</div>
<div className="lower-content">
<div className="icon-box">
<img
src={item.icon}
alt={`${item.title} Icon`}
/>
<div className="lower-content-new">
<div className="icon-box-new">
<img src={item?.icon} alt="" />
</div>
<h3>
<Link href={`/etobicoke-treatment-service/${item.slug}`}>{item.shortTitle}</Link>
<h3 className='text-start'>
<Link href={`/etobicoke-treatment-service/${item.slug}`}>
{item?.shortTitle}
</Link>
</h3>
<p>{item.shortDescription}</p>
<p
className='text-start'
style={{
overflow: 'hidden',
textOverflow: 'ellipsis',
display: '-webkit-box',
WebkitLineClamp: 2,
WebkitBoxOrient: 'vertical',
}}
>
{item?.shortDescription}
</p>
</div>
</div>
</div>

View File

@ -27,7 +27,7 @@ export default function Faq() {
<section className="faq-section pt_90 pb_90">
<div className="auto-container">
<div className="sec-title centred mb_50">
<span className="sub-title">FAQ'S</span>
<span className="sub-title">FAQs</span>
<h2>Do You Have Any Physiotherapy <br />Questions?</h2>
</div>
@ -97,7 +97,7 @@ export default function Faq() {
onClick={() => handleToggle(3)}
>
<div className="icon-box"><i className="icon-34"></i></div>
<h5>How Long Will Your session Take?</h5>
<h5>How long will your session take?</h5>
</div>
<div className={isActive.key === 3 ? "acc-content current" : "acc-content"}>
<div className="content">

View File

@ -12,7 +12,7 @@ export default function FaqPage() {
<Layout
headerStyle={1}
footerStyle={1}
breadcrumbTitle="Faq's"
breadcrumbTitle="FAQs"
bannerImage="/assets/images/faq/faq-banner.webp"
>
<FaqClient />

View File

@ -1,133 +1,96 @@
'use client'
import Layout from "@/components/layout/Layout"
import { useState } from 'react'
import { useState } from "react"
import Link from "next/link"
export default function WhyChooseUs() {
const [isActive, setIsActive] = useState({
status: false,
key: 1,
})
import { galleryImages } from "@/utils/constant.utils"
const handleToggle = (key) => {
if (isActive.key === key) {
setIsActive({
status: false,
})
} else {
setIsActive({
status: true,
key,
})
export default function WhyChooseUs() {
const itemsPerPage = 6
const [currentPage, setCurrentPage] = useState(1)
const indexOfLastImage = currentPage * itemsPerPage
const indexOfFirstImage = indexOfLastImage - itemsPerPage
const currentImages = galleryImages.slice(indexOfFirstImage, indexOfLastImage)
const totalPages = Math.ceil(galleryImages.length / itemsPerPage)
const handlePageChange = (page) => {
if (page > 0 && page <= totalPages) {
setCurrentPage(page)
}
}
return (
<>
{/* gallery */}
<section className="gallery-page-section sec-pad-2">
<div className="auto-container">
<div className="row clearfix">
<div className="col-lg-4 col-md-6 col-sm-12 gallery-block">
<section className="gallery-page-section sec-pad-2">
<div className="auto-container">
<div className="row clearfix">
{currentImages.map((src, index) => (
<div key={index} className="col-lg-4 col-md-6 col-sm-12 gallery-block">
<div className="gallery-block-one">
<div className="inner-box">
<figure className="image-box"><img src="/assets/images/gallery/gallery-6.jpg" alt="" /></figure>
<div className="view-btn"><Link href="/assets/images/gallery/gallery-6.jpg" className="lightbox-image" data-fancybox="gallery"><i className="icon-4"></i></Link></div>
<figure className="image-box">
<img src={src} alt={`gallery-${index}`} />
</figure>
<div className="view-btn">
<Link href={src} className="lightbox-image" data-fancybox="gallery">
<i className="icon-4"></i>
</Link>
</div>
</div>
</div>
</div>
{/* Repeat the above block for other gallery items */}
<div className="col-lg-4 col-md-6 col-sm-12 gallery-block">
<div className="gallery-block-one">
<div className="inner-box">
<figure className="image-box"><img src="/assets/images/gallery/gallery-7.jpg" alt="" /></figure>
<div className="view-btn"><Link href="/assets/images/gallery/gallery-7.jpg" className="lightbox-image" data-fancybox="gallery"><i className="icon-4"></i></Link></div>
</div>
</div>
</div>
{/* Repeat the above block for other gallery items */}
<div className="col-lg-4 col-md-6 col-sm-12 gallery-block">
<div className="gallery-block-one">
<div className="inner-box">
<figure className="image-box"><img src="/assets/images/gallery/gallery-8.jpg" alt="" /></figure>
<div className="view-btn"><Link href="/assets/images/gallery/gallery-8.jpg" className="lightbox-image" data-fancybox="gallery"><i className="icon-4"></i></Link></div>
</div>
</div>
</div>
{/* Repeat the above block for other gallery items */}
<div className="col-lg-4 col-md-6 col-sm-12 gallery-block">
<div className="gallery-block-one">
<div className="inner-box">
<figure className="image-box"><img src="/assets/images/gallery/gallery-9.jpg" alt="" /></figure>
<div className="view-btn"><Link href="/assets/images/gallery/gallery-9.jpg" className="lightbox-image" data-fancybox="gallery"><i className="icon-4"></i></Link></div>
</div>
</div>
</div>
{/* Repeat the above block for other gallery items */}
<div className="col-lg-4 col-md-6 col-sm-12 gallery-block">
<div className="gallery-block-one">
<div className="inner-box">
<figure className="image-box"><img src="/assets/images/gallery/gallery-10.jpg" alt="" /></figure>
<div className="view-btn"><Link href="/assets/images/gallery/gallery-10.jpg" className="lightbox-image" data-fancybox="gallery"><i className="icon-4"></i></Link></div>
</div>
</div>
</div>
{/* Repeat the above block for other gallery items */}
<div className="col-lg-4 col-md-6 col-sm-12 gallery-block">
<div className="gallery-block-one">
<div className="inner-box">
<figure className="image-box"><img src="/assets/images/gallery/gallery-11.jpg" alt="" /></figure>
<div className="view-btn"><Link href="/assets/images/gallery/gallery-11.jpg" className="lightbox-image" data-fancybox="gallery"><i className="icon-4"></i></Link></div>
</div>
</div>
</div>
{/* Repeat the above block for other gallery items */}
</div>
<div className="pagination-wrapper mt_20 centred">
<ul className="pagination clearfix">
<li><Link href="gallery" className="current">1</Link></li>
<li><Link href="gallery">2</Link></li>
<li><Link href="gallery">3</Link></li>
<li><Link href="gallery"><i className="icon-36"></i></Link></li>
</ul>
</div>
))}
</div>
</section>
{/* gallery end */}
{/* subscibe */}
{/* <section className="subscribe-section">
<div className="auto-container">
<div className="inner-container">
<div className="row align-items-center">
<div className="col-lg-6 col-md-12 col-sm-12 text-column">
<div className="text-box">
<h2><span>Subscribe</span> for the exclusive updates!</h2>
</div>
</div>
<div className="col-lg-6 col-md-12 col-sm-12 form-column">
<div className="form-inner">
<form method="post" action="contact">
<div className="form-group">
<input type="email" name="email" placeholder="Enter Your Email Address" required />
<button type="submit" className="theme-btn btn-one"><span>Subscribe Now</span></button>
</div>
<div className="form-group">
<div className="check-box">
<input className="check" type="checkbox" id="checkbox1" />
<label htmlFor="checkbox1">I agree to the <Link href="/">Privacy Policy.</Link></label>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<div className="pagination-wrapper mt_20 centred">
<ul className="pagination clearfix">
{currentPage > 1 && (
<li className="prev">
<Link
href="#"
onClick={(e) => {
e.preventDefault()
handlePageChange(currentPage - 1)
}}
>
<img src="/assets/images/gallery/left.png" alt="Previous" />
</Link>
</li>
)}
{[...Array(totalPages)].map((_, i) => (
<li key={i}>
<Link
href="#"
onClick={(e) => {
e.preventDefault()
handlePageChange(i + 1)
}}
className={currentPage === i + 1 ? "current" : ""}
>
{i + 1}
</Link>
</li>
))}
{currentPage < totalPages && (
<li className="next">
<Link
href="#"
onClick={(e) => {
e.preventDefault()
handlePageChange(currentPage + 1)
}}
>
<img src="/assets/images/gallery/right.png" alt="Previous" />
</Link>
</li>
)}
</ul>
</div>
</section> */}
{/* subscibe end */}
</div>
</section>
</>
)
}

View File

@ -1,14 +1,19 @@
import { poppins } from "@/lib/font";
// import dynamic from "next/dynamic";
// // Lazy load heavy components
// const ContactFloat = dynamic(() => import("@/components/ContactFloat"), { ssr: false });
// const AutoPopup = dynamic(() => import("@/components/AutoPopup"), { ssr: false });
// Import only necessary CSS for global layout
import "@/node_modules/react-modal-video/css/modal-video.css";
import "../public/assets/css/bootstrap.css";
import "../public/assets/css/color.css";
import "../public/assets/css/style.css";
import "swiper/css";
// import "swiper/css/navigation"
import "swiper/css/pagination";
import "swiper/css/free-mode";
import { poppins } from "@/lib/font";
import ContactFloat from "@/components/ContactFloat"
import AutoPopup from "@/components/AutoPopup";
import Head from "next/head";
export const metadata = {
title: "Best Pain Relief & Physiotherapy - Repharehab Clinic",
@ -18,9 +23,46 @@ export const metadata = {
export default function RootLayout({ children }) {
return (
<html lang="en" className={`${poppins.variable}`}>
<Head>
{/* Lazy load non-critical CSS */}
<link
rel="stylesheet"
href="/assets/css/style.css"
media="print"
onLoad="this.media='all'"
/>
<link
rel="stylesheet"
href="/assets/css/swiper.css"
media="print"
onLoad="this.media='all'"
/>
<link
rel="stylesheet"
href="/assets/css/swiper-pagination.css"
media="print"
onLoad="this.media='all'"
/>
{/* Microsoft Clarity Tracking */}
<script
dangerouslySetInnerHTML={{
__html: `
(function(c,l,a,r,i,t,y){
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/th7p0lr1ca";
y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
})(window, document, "clarity", "script", "th7p0lr1ca");
`,
}}
/>
</Head>
<body>
{children}
{/* <AutoPopup/> */}
{/* Lazy loaded components */}
{/* <ContactFloat /> */}
{/* <AutoPopup /> */}
</body>
</html>
);

View File

@ -36,13 +36,13 @@ export default function Home() {
<Link href={`/our-team-physiotherapy-etobicoke/${member.slug}`}>{member.name}</Link>
</h3>
<span className="designation">{member.designation}</span>
<ul className="social-links clearfix">
{/* <ul className="social-links clearfix">
{member.socials.map((social, idx) => (
<li key={idx}>
<Link href={social.link}><i className={social.icon}></i></Link>
</li>
))}
</ul>
</ul> */}
</div>
</div>
</div>

View File

@ -43,8 +43,8 @@ export default function Home() {
<AreaOfInjury />
<WhyChooseUsSection />
<CounterSection />
<Solution />
<Testimonial />
<Solution />
<Video />
</Layout>

View File

@ -0,0 +1,542 @@
"use client";
import Link from "next/link";
import Layout from "@/components/layout/Layout";
import { useState } from 'react';
export default function RefugeeIFHP() {
const [isActive, setIsActive] = useState({
status: false,
key: 1,
});
const handleToggle = (key) => {
if (isActive.key === key) {
setIsActive({
status: false,
});
} else {
setIsActive({
status: true,
key,
});
}
};
return (
<>
<Layout
headerStyle={1}
footerStyle={1}
breadcrumbTitle="Refugee Physiotherapy & IFHP Claims"
bannerImage="/assets/images/payment-insurance/payment-banner.webp"
>
<section className="solutions-section pb-0">
<div className="auto-container">
<div className="content-box full-width">
<div className="sec-title mb_15">
<h2>Refugee Physiotherapy & IFHP Claims (Canada)</h2>
<h4 className="mt-3">
<strong>Simple claims - No surprises.</strong>
</h4>
</div>
<div className="mb_30">
<p>
At Rapha Rehab, we make it easy for refugees and refugee
claimants to access physiotherapy using Canadas Interim
Federal Health Program (IFHP). We handle the paperwork, explain
your coverage in plain language, and focus on what matters
most - your recovery.
</p>
<div className="btn-box mt-4">
<Link href="/contact" className="theme-btn btn-one"><span>Book Your IFHP-Covered Visit</span></Link>
</div>
</div>
<div className=" mb_30">
<h4 className="mb-3">Whos eligible under IFHP?</h4>
<p>
IFHP is temporary health coverage for people in Canada who
arent yet eligible for provincial/territorial health insurance
- this includes refugee claimants, protected persons and many
resettled refugees. Its a payer of last resort while you wait
for provincial coverage.
</p>
</div>
<div className=" mb_30">
<h4 className="mb-3">Does IFHP cover physiotherapy?</h4>
<p>
Yes. IFHPs Supplemental Coverage includes physiotherapy, along
with other allied health services. For physiotherapy, the
official benefit grid specifies:
</p>
<ul className="list-style-one clearfix mt-3">
<li>
Initial assessment (in-clinic): 1 per calendar year
</li>
<li>
Subsequent physiotherapy visits (in-clinic): up to 12 per
calendar year
</li>
<li>
Home-based physio: available when a client cant attend a
clinic and shows clinical need (e.g., significant mobility
impairment), with specific criteria noted in the grid
</li>
<li>
Medical referral: services require a referral from a
physician or nurse practitioner
</li>
<li>
Fees/limits: reimbursed to the clinic per provincial fee
schedule set out in the grid
</li>
</ul>
<p className="mt-3">
We arrange any prior approval the grid requires before
treatment begins.
</p>
<p>
<strong>
Why this matters: you get a clear number of covered visits
and no out-of-pocket surprises for approved services.
</strong>
</p>
</div>
<div className="row mt-5">
<div className="col-lg-6 col-md-6 col-sm-12 mb_30">
<h4 className="mb-4">How IFHP claims work at Rapha Rehab (so its easy for you)?</h4>
<ul className="list-style-one clearfix mt-3">
<li>
IFHP eligibility document (with your UCI/Client ID and valid coverage dates)
</li>
<li>
A doctor or nurse practitioner referral for physiotherapy (we can help you understand whats needed)
</li>
<li>
<strong>We verify your eligibility & benefits</strong>
<p>
IFHP is administered by Medavie Blue Cross. Our team confirms your coverage and handles provider billing directly with them.
</p>
</li>
<li>
<strong>We obtain any required approvals</strong>
<p>
Some services have visit limits and prior-approval rules. We submit whats needed so your care is authorized before you start.
</p>
</li>
<li>
<strong>Start your care - no upfront cost for approved services</strong>
<p>
You focus on recovery. We direct the IFHP bill for covered treatments. (If something isnt covered, well tell you in advance so you can decide.)
</p>
</li>
</ul>
</div>
<div className="col-lg-6 col-md-6 col-sm-12 mb_30">
<h4>What your treatment includes?</h4>
<ul className="list-style-one clearfix mt-3">
<li>
A 45-60 minute initial visit with assessment, goal setting, and a simple home program
</li>
<li>
Evidence-based hands-on care (manual therapy, mobility work) and targeted exercise
</li>
<li>
Education on posture, safe activity, and self-care strategies
</li>
<li>
Progress reviews and reporting that align with IFHP documentation requirements (so your visits remain covered)
</li>
</ul>
</div>
</div>
<div className="content-column mb-5">
<div className="sec-title mb_30">
<span className="sub-title">Faq's</span>
<h4>Frequently Asked Questions</h4>
</div>
<div className="content-box">
<ul className="accordion-box">
<li className="accordion block">
<div
className={isActive.key === 1 ? "acc-btn active" : "acc-btn"}
onClick={() => handleToggle(1)}
>
<div className="icon-box"><i className="icon-34"></i></div>
<h5>Do I need a referral?</h5>
</div>
<div className={isActive.key === 1 ? "acc-content current" : "acc-content"}>
<div className="content">
<div className="text">
<p>
Yes - IFHP requires a referral from a physician or nurse
practitioner for physiotherapy services. Bring the referral
to your first visit (or send it to us securely beforehand).
</p>
</div>
</div>
</div>
</li>
<li className="accordion block">
<div
className={isActive.key === 2 ? "acc-btn active" : "acc-btn"}
onClick={() => handleToggle(2)}
>
<div className="icon-box"><i className="icon-34"></i></div>
<h5>How many physio sessions are covered?</h5>
</div>
<div className={isActive.key === 2 ? "acc-content current" : "acc-content"}>
<div className="content">
<div className="text">
<p>
Typically 1 initial assessment + up to 12 in-clinic treatment
visits per calendar year. Well review your case and handle
any approvals for home visits when medically necessary.
</p>
</div>
</div>
</div>
</li>
{/* FAQ 3 */}
<li className="accordion block">
<div
className={isActive.key === 3 ? "acc-btn active" : "acc-btn"}
onClick={() => handleToggle(3)}
>
<div className="icon-box"><i className="icon-34"></i></div>
<h5>What if I cant come to the clinic?</h5>
</div>
<div className={isActive.key === 3 ? "acc-content current" : "acc-content"}>
<div className="content">
<div className="text">
<p>
When a client cannot attend in person and shows clinical
signs of deterioration or impairment, home-based
physiotherapy may be covered under IFHP criteria. Well
assess and request approval where applicable.
</p>
</div>
</div>
</div>
</li>
{/* FAQ 4 */}
<li className="accordion block">
<div
className={isActive.key === 4 ? "acc-btn active" : "acc-btn"}
onClick={() => handleToggle(4)}
>
<div className="icon-box"><i className="icon-34"></i></div>
<h5>What happens when I get provincial coverage (like OHIP)?</h5>
</div>
<div className={isActive.key === 4 ? "acc-content current" : "acc-content"}>
<div className="content">
<div className="text">
<p>
IFHP is temporary. Once youre eligible for a provincial
plan, that plan becomes your primary coverage. Well help you
transition smoothly.
</p>
</div>
</div>
</div>
</li>
</ul>
</div>
</div>
<div className="row">
{/* Left Column */}
<div className="col-lg-6 col-md-6 col-sm-12 mb_0 mt-3">
<h4 className="mb-3">What to bring to your first appointment?</h4>
<ul className="list-style-one clearfix mt-3">
<li>Your IFHP eligibility document (with UCI)</li>
<li>Photo ID (if you have it)</li>
<li>Physiotherapy referral from an MD or NP</li>
<li>
Any medical reports (imaging, hospital notes) that may help
us tailor your care.
</li>
</ul>
</div>
{/* Right Column */}
<div className="col-lg-6 col-md-6 col-sm-12 mb_30 mt-3">
<h4>Why choose Rapha Rehab for IFHP-covered care?</h4>
<ul className="list-style-one clearfix mt-3">
<li>
<strong>Welcoming & culturally sensitive:</strong>{" "}
trauma-informed, dignity-first care
</li>
<li>
<strong>Direct billing & paperwork handled:</strong> we
manage Medavie Blue Cross claims for you
</li>
<li>
<strong>Clear communication:</strong> visit limits,
approvals, and coverage are explained upfront
</li>
<li>
<strong>Results-focused rehab:</strong> practical goals,
home programs, and steady progress tracking.
</li>
</ul>
</div>
</div>
<div className=" mb_30">
<h4 className="mb-3">Blue Cross: Trusted Partner in Refugee Health Coverage</h4>
<p>
The Interim Federal Health Program (IFHP) is administered
through Medavie Blue Cross, one of Canadas leading health
insurance providers. Their role is to process claims, reimburse
clinics, and ensure refugee clients receive timely access to
covered services like physiotherapy.
</p>
<p>
At Rapha Rehab, we work directly with Blue Cross to verify
eligibility, obtain approvals, and bill services on your behalf
- so you dont have to worry about navigating insurance
paperwork. This partnership allows us to focus on your healing,
while Blue Cross ensures that your care is supported and
covered.
</p>
</div>
<div className="mt-3">
<p className="mt-3">
Need help with a referral or paperwork? Message us - well
guide you step by step.
</p>
<div className="btn-box mt-3">
<Link href="/contact" className="theme-btn btn-one"><span>Book Your IFHP-Covered Visit</span></Link>
</div>
</div>
</div>
</div>
</section>
<section className="solutions-section pb-4">
<div className="auto-container">
<div className="row clearfix">
<div className="col-lg-6 col-md-12 col-sm-12 content-column">
<div className="content-box">
<div className="sec-title mb_15">
<h2>Payment & Insurance at Rapha Rehab Physiotherapy</h2>
</div>
<div className="progress-inner mb_50">
<p>At Rapha Rehab, we want your recovery journey to be smooth and worry-free. Thats why we make <b>payment and insurance</b> simple for everyone - whether you have a private health plan, coverage through work or auto insurance, or you are a refugee supported by the <b>Interim Federal Health Program (IFHP)</b>.</p>
<ul className="list-style-one clearfix mt-4">
<li>In case if you are injured in a motor vehicle accident (MVA), the auto insurance covers the cost of the treatment.</li>
<li>Please get in touch with rapharehab Physiotherapy clinic etobicoke for assistance to know about your coverage.</li>
<li>We Accept Cash/Cheque/Visa/Direct Payment.</li>
</ul>
</div>
</div>
</div>
<div className="col-lg-6 col-md-12 col-sm-12 image-column">
<div className="image_block_two">
<div className="image-box">
<figure className="image image-1-new"><img src="/assets/images/payment-insurance/back.webp" alt="Payment and Insurance" /></figure>
<figure className="image image-2-new"><img src="/assets/images/payment-insurance/front.webp" alt="Payment and Insurance" /></figure>
<div className="icon-box cart-icon"><img src="/assets/images/payment-insurance/icon.webp" alt="Payment and Insurance" /></div>
</div>
</div>
</div>
</div>
</div>
</section>
<section className="solutions-section pt-5">
<div className="auto-container">
<div className="row clearfix">
<div className="col-lg-12 col-md-12 col-sm-12 content-column">
<div className="content-box">
<div className="mb_30">
<h3>Coverage Options We Accept</h3>
<h4 className="mt-3 mb-3">For the General Public</h4>
<ul className="list-style-one clearfix mt-2">
<li>
<b>Extended Health Insurance Plans</b> - Most private insurance
providers cover physiotherapy, massage, chiropractic,
acupuncture, and related services.
</li>
<li>
<b>Workplace Injuries (WSIB)</b> - If youve been hurt on the
job, we accept WSIB claims for physiotherapy and rehab.
</li>
<li>
<b>Motor Vehicle Accident (MVA) Insurance</b> - If your injury
is from a car accident, your auto insurer may cover the cost of
your treatments.
</li>
</ul>
<h4 className="mt-4 mb-3">For Refugees</h4>
<ul className="list-style-one clearfix mt-2">
<li>
<b>IFHP (Interim Federal Health Program)</b> - Refugee
claimants, protected persons, and resettled refugees may receive
physiotherapy coverage under IFHP.
</li>
<li>
IFHP is administered by Medavie Blue Cross, which means we bill
them directly - so you dont need to worry about out-of-pocket
costs for approved services.
</li>
<li>
Coverage usually includes an initial physiotherapy assessment
and up to 12 treatment visits per year, with additional home
visits available in special cases.
</li>
<li>
A referral from a physician or nurse practitioner is required
for physiotherapy services under IFHP.
</li>
</ul>
</div>
<div className="mb_30 mt-5">
<h3 className="mb-2">How Billing & Payments Work</h3>
<div className="table-responsive billing-table">
<table className="table table-bordered mt-3">
<thead>
<tr>
<th>Step</th>
<th>For General Patients</th>
<th>For Refugee Patients</th>
</tr>
</thead>
<tbody>
<tr>
<td>1. Check Coverage</td>
<td>
Bring your insurance card or policy details. Well confirm
your coverage.
</td>
<td>
Bring your IFHP eligibility document (with UCI number) and a
doctors referral.
</td>
</tr>
<tr>
<td>2. Verification</td>
<td>
We confirm benefits with your private insurer, WSIB, or auto
insurance.
</td>
<td>
We verify IFHP eligibility and confirm coverage with Medavie
Blue Cross.
</td>
</tr>
<tr>
<td>3. Direct Billing</td>
<td>
We directly bill many insurers, WSIB, and auto insurers.
</td>
<td>
We bill Medavie Blue Cross directly for covered services.
</td>
</tr>
<tr>
<td>4. Out-of-Pocket Costs</td>
<td>
If your plan doesnt fully cover a service, well explain
the cost upfront.
</td>
<td>
If a service isnt covered, well let you know in advance so
there are no surprises.
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div className="mb_30 mt-4">
<h3>What To Bring To Your First Appointment?</h3>
<div className="row mt-3">
<div className="col-lg-6 col-md-6 col-sm-12">
<h4 className="mb-3">General Patients:</h4>
<ul className="list-style-one clearfix mt-2">
<li>Insurance card or plan details</li>
<li>Doctors referral (if required by your insurer)</li>
<li>
Any medical reports, X-rays, or imaging related to your condition
</li>
</ul>
</div>
<div className="col-lg-6 col-md-6 col-sm-12">
<h4 className="mb-3">Refugee Patients:</h4>
<ul className="list-style-one clearfix mt-2">
<li>IFHP eligibility document with UCI number</li>
<li>
Physician or nurse practitioner referral for physiotherapy
</li>
<li>Photo ID (if available)</li>
<li>
Any hospital or medical notes that may help guide your care
</li>
</ul>
</div>
</div>
</div>
<div className="mb_30">
<h3 className="mb-3">Why Choose Rapha Rehab?</h3>
<ul className="list-style-one clearfix mt-3">
<li>
<b>Stress-free insurance process</b> - we verify, submit, and
track claims so you dont have to.
</li>
<li>
<b>Direct billing available</b> - for private plans, WSIB, auto
insurance, and IFHP/Blue Cross.
</li>
<li>
<b>Clear communication</b> - we explain coverage, visit limits,
and approvals upfront.
</li>
<li>
<b>Inclusive care for all</b> - whether youre a local patient
or a newcomer to Canada, youll receive the same compassionate,
high-quality physiotherapy.
</li>
</ul>
</div>
<div className="">
<p>
Our team will review your insurance or IFHP eligibility and guide
you through every step of the process.
</p>
<div className="btn-box mt-4 mb-4">
<Link href="/contact" className="theme-btn btn-one"><span>Contact Us to Check Your Coverage</span></Link>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</Layout>
</>
);
}

View File

@ -1,82 +1,17 @@
import Link from "next/link"
import Layout from "@/components/layout/Layout"
import Layout from "@/components/layout/Layout";
import RefugeeIFHP from "./PaymentInsurence";
export const metadata = {
title: "Payment & Insurance at Physiotherapy Etobicoke - Rapharehab Physiotherapy clinic Etobicoke",
description:
"Explore flexible payment options and insurance coverage at Rapharehab Physiotherapy clinic and rehabilitation etobicoke. We accept a variety of insurance plans and offer convenient payment solutions to ensure you get the care you need without financial stress. Book your appointment today!",
title:
"Refugee Physiotherapy & IFHP Claims (Canada) - Rapharehab Physiotherapy Etobicoke",
description:
"Access refugee physiotherapy covered by Canada's Interim Federal Health Program (IFHP) at Rapha Rehab Etobicoke. We handle paperwork, explain coverage clearly, and focus on your recovery. Book your IFHP-covered physiotherapy visit today.",
};
export default function About() {
export default function FaqPage() {
return (
<>
<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">
<div className="row clearfix">
<div className="col-lg-6 col-md-12 col-sm-12 content-column">
<div className="content-box">
<div className="sec-title mb_15">
{/* <span className="sub-title">Better Solutions</span> */}
<h2>Payment and Insurance</h2>
</div>
<div className="progress-inner mb_50">
<p>At rapharehab Etobicoke Physiotherapy clinic, your treatments are partially or fully covered by health insurance plans and Workplace Safety and Insurance Board (WSIB). If you have medical health care coverage, we believe your treatment costs will be covered by health care plans. The treatments such as physiotherapy, massage therapy, chiropractic care, acupuncture, orthotics etc., all can be covered by health care insurance.</p>
<ul className="list-style-one clearfix mt-4">
<li>In case if you are injured in a motor vehicle accident (MVA), the auto insurance covers the cost of the treatment.</li>
<li>Please get in touch with rapharehab Physiotherapy clinic etobicoke for assistance to know about your coverage.</li>
<li>We Accept Cash/Cheque/Visa/Direct Payment.</li>
</ul>
</div>
</div>
</div>
<div className="col-lg-6 col-md-12 col-sm-12 image-column">
<div className="image_block_two">
<div className="image-box">
<figure className="image image-1-new"><img src="/assets/images/payment-insurance/back.webp" alt="Payment and Insurance" /></figure>
<figure className="image image-2-new"><img src="/assets/images/payment-insurance/front.webp" alt="Payment and Insurance" /></figure>
<div className="icon-box cart-icon"><img src="/assets/images/payment-insurance/icon.webp" alt="Payment and Insurance" /></div>
</div>
</div>
</div>
</div>
</div>
</section>
{/* chooseus-section end */}
{/* subscibe */}
{/* <section className="subscribe-section">
<div className="auto-container">
<div className="inner-container">
<div className="row align-items-center">
<div className="col-lg-6 col-md-12 col-sm-12 text-column">
<div className="text-box">
<h2><span>Subscribe</span> for the exclusive updates!</h2>
</div>
</div>
<div className="col-lg-6 col-md-12 col-sm-12 form-column">
<div className="form-inner">
<form method="post" action="contact">
<div className="form-group">
<input type="email" name="email" placeholder="Enter Your Email Address" required />
<button type="submit" className="theme-btn btn-one"><span>Subscribe Now</span></button>
</div>
<div className="form-group">
<div className="check-box">
<input className="check" type="checkbox" id="checkbox1" />
<label htmlFor="checkbox1">I agree to the <Link href="index">Privacy Policy.</Link></label>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</section> */}
{/* subscibe end */}
</Layout>
<RefugeeIFHP />
</>
)
);
}

View File

@ -3,7 +3,6 @@ import Link from "next/link";
import { notFound } from "next/navigation";
import Rehabilitation from "@/utils/Rehabilitation.utils";
// ✅ Generate static paths for export
export async function generateStaticParams() {
return Rehabilitation.map((item) => ({
slug: item.slug,
@ -17,7 +16,7 @@ export async function generateMetadata({ params }) {
return {
title: service.metaTitle || service.title,
description: service.metaDescription || service.shortDesc,
description: service.metaDiscription || service.shortDesc,
};
}

View File

@ -5,7 +5,7 @@ import Rehabilitation from "@/utils/Rehabilitation.utils";
export const metadata = {
title: "Comprehensive Rehabilitation Rapharehab Professionals",
description: "Rapharehab offers expert rehabilitation services tailored to your recovery needs. Regain strength, mobility, and independence with trusted.",
description: "Rapharehab offers expert rehabilitation services tailored to your recovery needs. Regain strength, mobility and independence with trusted.",
};
export default function RehabilitationPage() {
@ -15,13 +15,39 @@ export default function RehabilitationPage() {
<div className="auto-container">
<div className="row clearfix">
{Rehabilitation.map((service, index) => (
<div key={service.id} className="col-lg-4 col-md-6 col-sm-12 service-block">
<div
className="service-block-one wow fadeInUp animated"
data-wow-delay={`${index * 300}ms`}
data-wow-duration="1500ms"
>
<div className="inner-box">
// <div key={service.id} className="col-lg-4 col-md-6 col-sm-12 service-block">
// <div
// className="service-block-one wow fadeInUp animated"
// data-wow-delay={`${index * 300}ms`}
// data-wow-duration="1500ms"
// >
// <div className="inner-box">
// <div className="image-box">
// <figure className="image">
// <Link href={`/rehabilitation/${service.slug}`}>
// <img src={service.mainImage} alt={service.title} />
// </Link>
// </figure>
// </div>
// <div className="lower-content">
// <div className="icon-box">
// <img
// src={service.icon}
// alt={`${service.title} Icon`}
// />
// </div>
// <h3>
// <Link href={`/rehabilitation/${service.slug}`}>{service.title}</Link>
// </h3>
// <p>{service.shortDesc}</p>
// </div>
// </div>
// </div>
// </div>
<div className="col-lg-3 col-md-4 col-sm-12 service-block d-flex">
<div className="service-block-one wow fadeInUp animated d-flex flex-column flex-grow-1" data-wow-delay="00ms" data-wow-duration="1500ms">
<div className="inner-box d-flex flex-column flex-grow-1">
<div className="image-box">
<figure className="image">
<Link href={`/rehabilitation/${service.slug}`}>
@ -29,8 +55,8 @@ export default function RehabilitationPage() {
</Link>
</figure>
</div>
<div className="lower-content">
<div className="icon-box">
<div className="lower-content-new">
<div className="icon-box-new">
<img
src={service.icon}
alt={`${service.title} Icon`}
@ -39,7 +65,18 @@ export default function RehabilitationPage() {
<h3>
<Link href={`/rehabilitation/${service.slug}`}>{service.title}</Link>
</h3>
<p>{service.shortDesc}</p>
<p
className='text-start'
style={{
overflow: 'hidden',
textOverflow: 'ellipsis',
display: '-webkit-box',
WebkitLineClamp: 2,
WebkitBoxOrient: 'vertical',
}}
>
{service.shortDesc}
</p>
</div>
</div>
</div>

View File

@ -4,7 +4,7 @@ import Layout from "@/components/layout/Layout"
export const metadata = {
title: "What to expect at Physiotherapy Etobicoke - Rapha Physiotherapy etobicoke",
description:
"On the first day of your visit, you will receive a thorough assessment allows our healthcare professionals to understand your injury to determine how we can help. Following the initial assessment at our physiotherapy clinic etobicoke",
"Discover what to expect at Rapha Physiotherapy: from a comprehensive first-day assessment to your initial treatment and long-term plan for lasting recovery.",
};

View File

@ -32,7 +32,7 @@ export default function Team() {
<div className="auto-container">
<div className="sec-title mb_50">
<span className="sub-title">Why Choose Us</span>
<h2>We have licensed and experienced therapists with particular interests and expertise in</h2>
<h2>We have licensed and experienced therapists with particular interests and expertise in.</h2>
</div>
<div className="row clearfix">
{teamMembers.map((member, index) => (
@ -84,11 +84,11 @@ export default function Team() {
</div> */}
<div className="text-box mb_40">
<ul className="list-style-one clearfix">
<li>Team of health care professionals We are a team of health care professionals working together to help get you better, faster. This helps us in rendering our best possible services to our clients</li>
<li>Team of health care professionals We are a team of health care professionals working together to help get you better, faster. This helps us in rendering our best possible services to our clients.</li>
<li>Our health care team consists of Physiotherapists, Massage Therapists, acupuncture specialists & other health care professionals, each bringing you their distinctive skills and abilities to assist you in improving your health & providing you with the latest evidence-based treatments.</li>
<li>Health insurance If you have a health insurance, we treat you without asking for an upfront payment. Instead we bill your insurance company directly without creating a hassle for you.</li>
<li>Wide range of services and treatments We offer wide range of unique services such as physiotherapy, sports rehabilitation, acupuncture, manual therapy, motor vehicle accident rehabilitation, work related injury treatments, chronic injury management and other services so we can assist you in recovering to the best possible condition</li>
<li>Flexible opening hours Our clinic is conveniently located in etobicoke and scarborough and provide you the best services even in early mornings and late evenings</li>
<li>Wide range of services and treatments We offer wide range of unique services such as physiotherapy, sports rehabilitation, acupuncture, manual therapy, motor vehicle accident rehabilitation, work related injury treatments, chronic injury management and other services so we can assist you in recovering to the best possible condition.</li>
<li>Flexible opening hours Our clinic is conveniently located in etobicoke and scarborough and provide you the best services even in early mornings and late evenings.</li>
</ul>
</div>
</div>
@ -121,7 +121,7 @@ export default function Team() {
</div> */}
<div className="text-box mb_40">
<ul className="list-style-one clearfix">
<li>Top-Notch Treatment Under our care, you will be placed in a supportive and comfortable environment helping you receive care in comfortable and supportive environment designed to address your issues</li>
<li>Top-Notch Treatment Under our care, you will be placed in a supportive and comfortable environment helping you receive care in comfortable and supportive environment designed to address your issues.</li>
<li>Personalized Treatment Plan We offer One-on-one care with a skilled therapist allows us to develop a plan specific to your particular needs results in a faster recovery.</li>
<li>We listen & take time We listen & take time to get to know you properly Right from the start with your inquiry, we are here to listen and help find the root cause of your problem.</li>
<li>Our treatment rooms Our treatment rooms are fully equipped and private.</li>
@ -150,7 +150,7 @@ export default function Team() {
</div> */}
<p className="inner-box-new-color">Rapha rehab offers patients in etobicoke and scarborough exceptional care with a personalized treatment plan to suit your specific needs. If you are suffering from pain or have recently experienced an injury, our etobicoke and scarborough Physiotherapists will ensure you get back to the activities you enjoy and love. Call us at 647-722-3434 for an appointment today or email us at bloor@rapharehab.ca to book a consultation.</p>
<div className="btn-box mt-4">
<Link href="tel:647-722-3434" className="theme-btn btn-one-blue">
<Link href="/contact" className="theme-btn btn-one-blue">
<span>Make an Appointment</span>
</Link>
</div>

View File

@ -6,30 +6,36 @@ import axios from "axios";
export default function ContactFloat() {
const [open, setOpen] = useState(false);
const [showChat, setShowChat] = useState(false);
const [showSocial, setShowSocial] = useState(false); // 👈 NEW: toggle social icons
const [showSocial, setShowSocial] = useState(false);
/** Contact actions */
const extraIcons = [
{
href: "tel:647-722-3434",
src: "/assets/images/icons/call.png",
src: "/assets/images/icons/call.webp",
label: "Call",
newTab: true, // 👈 added
newTab: true,
},
{
action: () => setShowChat(true),
src: "/assets/images/chat.png",
src: "/assets/images/chat.webp",
label: "Chat",
},
{
href: "https://wa.me/14379934477",
src: "/assets/images/icons/WhatsApp.svg.webp",
label: "WhatsApp",
newTab: true,
},
{
href: "https://www.instagram.com/elrapharehab/",
src: "/assets/images/insta.png",
src: "/assets/images/insta.webp",
label: "Instagram",
newTab: true,
},
{
href: "https://www.facebook.com/ELRaphaRehabCenter/",
src: "/assets/images/fb.png",
src: "/assets/images/fb.webp",
label: "Facebook",
newTab: true,
},
@ -155,7 +161,7 @@ export default function ContactFloat() {
src={
open
? "/assets/images/cancel.png"
: "/assets/images/icons/call.png"
: "/assets/images/icons/call.webp"
}
alt="Contact"
style={{ width: "28px", height: "28px" }}
@ -213,10 +219,10 @@ export default function ContactFloat() {
function ChatForm({ onClose }) {
const [formData, setFormData] = useState({
username: "",
lname: "",
// lname: "",
email: "",
phone: "",
subject: "",
service: "",
message: "",
});
const [formErrors, setFormErrors] = useState({});
@ -229,27 +235,33 @@ function ChatForm({ onClose }) {
};
const handleCaptchaChange = (token) => {
// console.log("ReCAPTCHA token:", token);
setCaptchaToken(token);
};
const handleSubmit = async (e) => {
e.preventDefault();
// console.log("Form submitted:", formData);
const errors = {};
if (!formData.username.trim()) errors.username = "First Name is required.";
if (!formData.lname.trim()) errors.lname = "Last Name is required.";
// if (!formData.lname.trim()) errors.lname = "Last Name is required.";
if (!formData.email.trim()) errors.email = "Email is required.";
if (!formData.phone.trim()) errors.phone = "Phone is required.";
if (!formData.subject.trim()) errors.subject = "Subject is required.";
if (!formData.service.trim()) errors.service = "Please select a service.";
if (!formData.message.trim()) errors.message = "Message is required.";
if (!captchaToken) errors.captcha = "Please verify the CAPTCHA.";
setFormErrors(errors);
if (Object.keys(errors).length > 0) return;
if (Object.keys(errors).length > 0) {
// console.log("Form validation errors:", errors);
return;
}
const emailData = {
...formData,
message: `Subject: ${formData.subject}<br /><br />Message: ${formData.message}`,
message: `Service: ${formData.service}<br /><br />Message: ${formData.message}`,
to: "bloor@rapharehab.ca",
senderName: "Rapha Rehab Chat Form",
recaptchaToken: captchaToken,
@ -260,6 +272,8 @@ function ChatForm({ onClose }) {
headers: { "Content-Type": "application/json" },
});
// console.log("Server response:", res.data);
setAlert({
show: true,
type: "success",
@ -268,15 +282,16 @@ function ChatForm({ onClose }) {
setFormData({
username: "",
lname: "",
// lname: "",
email: "",
phone: "",
subject: "",
service: "",
message: "",
});
setCaptchaToken(null);
setFormErrors({});
} catch (error) {
// console.error("Error sending message:", error);
setAlert({
show: true,
type: "danger",
@ -315,14 +330,14 @@ function ChatForm({ onClose }) {
<input
type="text"
name="username"
placeholder="First Name"
placeholder="Name"
value={formData.username}
onChange={handleChange}
className="form-control mb-2"
/>
{formErrors.username && <small className="text-danger">{formErrors.username}</small>}
<input
{/* <input
type="text"
name="lname"
placeholder="Last Name"
@ -330,17 +345,7 @@ function ChatForm({ onClose }) {
onChange={handleChange}
className="form-control mb-2"
/>
{formErrors.lname && <small className="text-danger">{formErrors.lname}</small>}
<input
type="email"
name="email"
placeholder="Your Email"
value={formData.email}
onChange={handleChange}
className="form-control mb-2"
/>
{formErrors.email && <small className="text-danger">{formErrors.email}</small>}
{formErrors.lname && <small className="text-danger">{formErrors.lname}</small>} */}
<input
type="text"
@ -353,14 +358,30 @@ function ChatForm({ onClose }) {
{formErrors.phone && <small className="text-danger">{formErrors.phone}</small>}
<input
type="text"
name="subject"
placeholder="Subject"
value={formData.subject}
type="email"
name="email"
placeholder="Your Email"
value={formData.email}
onChange={handleChange}
className="form-control mb-2"
/>
{formErrors.subject && <small className="text-danger">{formErrors.subject}</small>}
{formErrors.email && <small className="text-danger">{formErrors.email}</small>}
<select
name="service"
value={formData.service}
onChange={handleChange}
className="form-control mb-2"
>
<option value="">Select Service</option>
<option value="Physio">Physio</option>
<option value="Chiro">Chiro</option>
<option value="Massage">Massage</option>
<option value="Acupuncture">Acupuncture</option>
<option value="Osteo">Osteo</option>
<option value="Orthotics">Orthotics</option>
</select>
{formErrors.service && <small className="text-danger">{formErrors.service}</small>}
<textarea
name="message"
@ -373,7 +394,7 @@ function ChatForm({ onClose }) {
<div className="mb-2">
<ReCAPTCHA
sitekey="6LekfpwrAAAAAOTwuP1d2gg-Fv9UEsAjE2gjOQJl"
sitekey="6Lckq9MrAAAAABjBD9rQYm19BMGFFWiwb9mPiw2K"
onChange={handleCaptchaChange}
/>
{formErrors.captcha && <small className="text-danger">{formErrors.captcha}</small>}
@ -397,4 +418,4 @@ function ChatForm({ onClose }) {
</div>
</div>
);
}
}

View File

@ -9,7 +9,6 @@ const WOW = dynamic(() => import('wowjs/dist/wow'));
import BackToTop from '../elements/BackToTop';
import DataBg from "../elements/DataBg";
import Breadcrumb from './Breadcrumb';
import SearchPopup from "./SearchPopup";
import Sidebar from "./Sidebar";
import Footer1 from './footer/Footer1';
import Footer2 from './footer/Footer2';
@ -57,7 +56,6 @@ export default function Layout({ headerStyle, footerStyle, headTitle, breadcrumb
{headerStyle === 4 && <Header4 scroll={scroll} isMobileMenu={isMobileMenu} handleMobileMenu={handleMobileMenu} handlePopup={handlePopup} isSidebar={isSidebar} handleSidebar={handleSidebar} />}
<Sidebar isSidebar={isSidebar} handleSidebar={handleSidebar} />
<SearchPopup isPopup={isPopup} handlePopup={handlePopup} />
{breadcrumbTitle && (
<Breadcrumb breadcrumbTitle={breadcrumbTitle} bannerImage={bannerImage} />

View File

@ -193,7 +193,7 @@ export default function MobileMenu({ isSidebar, handleMobileMenu, handleSidebar
<div className="contact-info">
<h4>Contact Info</h4>
<ul>
<li>6 4335 Bloor Street West Etobicoke, M9C5S2</li>
<li>5 4335 Bloor Street West Etobicoke, M9C 2A5</li>
<li>
<Link href="tel:+647-722-3434, +416-622-2873" onClick={closeMenu}>
+647-722-3434, +416-622-2873

View File

@ -1,33 +0,0 @@
import Link from "next/link"
export default function SearchPopup({ isPopup, handlePopup }) {
return (
<>
<div id="search-popup" className={`search-popup ${isPopup ? "popup-visible" : ""}`}>
<div className="popup-inner">
<div className="upper-box clearfix">
<div className="close-search pull-right" onClick={handlePopup}>
<span className="far fa-times"></span>
</div>
</div>
<div className="overlay-layer"></div>
<div className="auto-container">
<div className="search-form">
<form method="post" action="index.html">
<div className="form-group">
<fieldset>
<input type="search" className="form-control" name="search-input" placeholder="Search Here" required />
<button type="submit">
<i className="far fa-search"></i>
</button>
</fieldset>
</div>
</form>
</div>
</div>
</div>
</div>
</>
)
}

View File

@ -26,7 +26,7 @@ export default function Sidebar({ isSidebar, handleSidebar }) {
<h4>About Us</h4>
<p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi</p>
<p>Research oriented solutions for Data Science and Machine Learning business needs.</p>
<Link href="about.html" className="theme-btn btn-one"><span>About Us</span></Link>
<Link href="#" className="theme-btn btn-one"><span>About Us</span></Link>
</div>
<div className="contact-info">
<h4>Contact Info</h4>
@ -37,10 +37,10 @@ export default function Sidebar({ isSidebar, handleSidebar }) {
</ul>
</div>
<ul className="social-box">
<li><Link href="index-2.html"><i className="icon-4"></i></Link></li>
<li><Link href="index-2.html"><i className="icon-5"></i></Link></li>
<li><Link href="index-2.html"><i className="icon-6"></i></Link></li>
<li><Link href="index-2.html"><i className="icon-7"></i></Link></li>
<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>

View File

@ -9,7 +9,7 @@ export default function Footer2() {
const servicesCols = [
servicesList.slice(0, 13),
servicesList.slice(13, 25),
servicesList.slice(25, 36),
servicesList.slice(25, 37),
];
@ -158,7 +158,7 @@ export default function Footer2() {
<img
src="/assets/images/icons/icon-1.png"
alt="location"
/>6 4335 Bloor Street West Etobicoke, M9C5S2
/>5 4335 Bloor Street West Etobicoke, M9C 2A5
</li>
<li>
<i className="icon-2"></i>

View File

@ -9,7 +9,7 @@ export default function Footer2() {
const servicesCols = [
servicesList.slice(0, 13),
servicesList.slice(13, 25),
servicesList.slice(25, 36),
servicesList.slice(25, 37),
];
@ -158,7 +158,7 @@ export default function Footer2() {
<img
src="/assets/images/icons/icon-1.png"
alt="location"
/>6 4335 Bloor Street West Etobicoke, M9C5S2
/>5 4335 Bloor Street West Etobicoke, M9C 2A5
</li>
<li>
<i className="icon-2"></i>

View File

@ -14,7 +14,7 @@ export default function Header1({ scroll, isMobileMenu, handleMobileMenu, isSide
<ul className="info-list clearfix">
<li>
<img
src="/assets/images/icons/call.png"
src="/assets/images/icons/call.webp"
alt="Phone"
style={{ marginRight: "8px" }}
className="red-icon"
@ -46,7 +46,7 @@ export default function Header1({ scroll, isMobileMenu, handleMobileMenu, isSide
<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="/faq-physiotherapy-etobicoke">FAQs</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="/refugee-physiotherapy">Refugee Physiotherapy</Link></li> */}

View File

@ -22,7 +22,7 @@ export default function Header2({
<ul className="info-list clearfix">
<li>
<img
src="/assets/images/icons/call.png"
src="/assets/images/icons/call.webp"
alt="Phone"
className="contact-icon"
/>
@ -30,7 +30,7 @@ export default function Header2({
</li>
<li>
<img
src="/assets/images/icons/mail.png"
src="/assets/images/icons/mail.webp"
alt="Mail"
className="contact-icon"
/>
@ -40,7 +40,7 @@ export default function Header2({
<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="/faq-physiotherapy-etobicoke">FAQs</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="/refugee-physiotherapy">Refugee Physiotherapy</Link></li> */}

View File

@ -1,65 +1,144 @@
import Link from 'next/link';
import React from 'react';
import Image from "next/image";
import Link from "next/link";
import React from "react";
export default function AboutSection() {
return (
<section className="about-style-two pt_90 pb_90">
<div className="pattern-layer">
<div className="pattern-1 rotate-me" style={{ backgroundImage: 'url(/assets/images/shape/shape-8.webp)' }}></div>
<div className="pattern-2 rotate-me" style={{ backgroundImage: 'url(/assets/images/shape/shape-9.webp)' }}></div>
<div className="pattern-3" style={{ backgroundImage: 'url(/assets/images/shape/shape-11.webp)' }}></div>
</div>
<div className="auto-container">
<div className="row clearfix">
<div className="col-lg-6 col-md-12 col-sm-12 image-column">
<div className="image_block_one">
<div className="image-box">
{/* <div className="shape float-bob-x" style={{ backgroundImage: 'url(/assets/images/shape/shape-7.webp)' }}></div> */}
<div className="image-shape" style={{ backgroundImage: 'url(/assets/images/shape/shape-26.png)' }}></div>
<figure className="image-2"><img src="/assets/images/home/welcome/home-welcome.webp" alt="Physiotherapy" /></figure>
<div className="icon-one"><img src="/assets/images/home/welcome/top-icon.webp" alt="Physiotherapy icon" /></div>
<div className="icon-two"><img src="/assets/images/home/welcome/bottom-icon.webp" alt="Physiotherapy icon" /></div>
{/* <div className="text-box">
<h3>Wade Warren</h3>
<span>Medical Assistant</span>
</div> */}
</div>
</div>
</div>
<div className="col-lg-6 col-md-12 col-sm-12 content-column">
<div className="content_block_one">
<div className="content-box ml_30">
<div className="sec-title mb_15">
<span className="sub-title">Welcome to Rapha Rehab</span>
<h2>Your Trusted Etobicoke Physiotherapy Clinic!</h2>
</div>
<div className="text-box mb_40">
<p>At Rapha Rehab, we specialize in evidence-based physiotherapy tailored to your needs. Our expert care helps you recover, relieve pain, and regain strength for a better quality of life.</p>
<ul className="list-style-one clearfix">
<li>Chronic pain (back, neck, joints).</li>
<li>Sports injuries (sprains, strains, post-surgery rehab).</li>
<li>Work-related injuries (WCB claims supported).</li>
<li>Movement disorders (stroke rehab, mobility issues).</li>
</ul>
</div>
<div className="btn-box">
<Link href="/etobicoke-treatment-service" className="theme-btn btn-one"><span>Explore Our Service</span></Link>
</div>
{/* <div className="lower-box">
<div className="experience-box">
<div className="icon-box"><i className="icon-29"></i></div>
<h3>32 Years</h3>
<span className="designation">Of Medical Experience</span>
</div>
<figure className="author-thumb"><img src="assets/images/resource/author-1.jpg" alt="" /></figure>
<div className="signature"><img src="assets/images/icons/signature-1.png" alt="" /></div>
</div> */}
</div>
</div>
</div>
</div>
</div>
</section>
);
};
return (
<section className="about-style-two pt_90 pb_90 relative overflow-hidden">
{/* Pattern Layers with fixed sizes */}
<div className="pattern-layer">
<div className="pattern-1 rotate-me absolute w-[120px] h-[120px]">
<Image
src="/assets/images/shape/shape-8.webp"
alt="Decorative shape"
fill
sizes="120px"
style={{ objectFit: "contain" }}
priority={false}
/>
</div>
<div className="pattern-2 rotate-me absolute w-[140px] h-[140px]">
<Image
src="/assets/images/shape/shape-9.webp"
alt="Decorative shape"
fill
sizes="140px"
style={{ objectFit: "contain" }}
/>
</div>
<div className="pattern-3 absolute w-[150px] h-[150px]">
<Image
src="/assets/images/shape/shape-11.webp"
alt="Decorative shape"
fill
sizes="150px"
style={{ objectFit: "contain" }}
/>
</div>
</div>
<div className="auto-container">
<div className="row clearfix">
{/* Image Column */}
<div className="col-lg-6 col-md-12 col-sm-12 image-column">
<div className="image_block_one relative">
<div className="image-box relative">
{/* Background Shape */}
<div className="image-shape absolute inset-0 -z-10 w-[600px] h-[500px]">
<Image
src="/assets/images/shape/shape-26.webp"
alt="Background shape"
fill
sizes="50vw"
style={{ objectFit: "contain" }}
/>
</div>
{/* Main Hero Image (LCP) */}
<figure className="image-2 relative min-h-[420px]">
<Image
src="/assets/images/home/welcome/home-welcome.webp"
alt="Physiotherapy"
width={600}
height={420}
priority
sizes="(max-width: 768px) 100vw, 50vw"
placeholder="blur"
blurDataURL="/assets/images/home/welcome/home-welcome-blur.webp"
style={{
borderRadius: "8px",
width: "100%",
height: "auto",
}}
/>
</figure>
{/* Top Icon */}
<div className="icon-one absolute top-0 left-0 w-[40px] h-[40px]">
<Image
src="/assets/images/home/welcome/top-icon.webp"
alt="Top decorative icon"
fill
sizes="40px"
style={{ objectFit: "contain" }}
loading="lazy"
/>
</div>
{/* Bottom Icon */}
<div className="icon-two absolute bottom-0 right-0 w-[40px] h-[40px]">
<Image
src="/assets/images/home/welcome/bottom-icon.webp"
alt="Bottom decorative icon"
fill
sizes="40px"
style={{ objectFit: "contain" }}
loading="lazy"
/>
</div>
</div>
</div>
</div>
{/* Content Column */}
<div className="col-lg-6 col-md-12 col-sm-12 content-column">
<div className="content_block_one">
<div className="content-box ml_30">
<div className="sec-title mb_15">
<span className="sub-title">Welcome to Rapha Rehab</span>
<h2>Your Trusted Etobicoke Physiotherapy Clinic!</h2>
</div>
<div className="text-box mb_40">
<p>
At Rapha Rehab, we specialize in evidence-based
physiotherapy tailored to your needs. Our expert care helps
you recover, relieve pain, and regain strength for a better
quality of life.
</p>
<ul className="list-style-one clearfix">
<li>Chronic pain (back, neck, joints).</li>
<li>Sports injuries (sprains, strains, post-surgery rehab).</li>
<li>Work-related injuries (WCB claims supported).</li>
<li>Movement disorders (stroke rehab, mobility issues).</li>
</ul>
</div>
<div className="btn-box">
<Link
href="/etobicoke-treatment-service"
className="theme-btn btn-one"
>
<span>Explore Our Service</span>
</Link>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
);
}

View File

@ -35,7 +35,9 @@ export default function AreaOfInjury() {
<div className="row clearfix">
{areaOfInjuryData.slice(0, 8).map((area, index) => (
<div key={index} className="col-lg-3 col-md-6 col-6 team-block d-flex">
<div className="team-block-one wow fadeInUp animated d-flex flex-column flex-grow-1" data-wow-delay={`${index * 200}ms`} data-wow-duration="1500ms">
<div className="team-block-one wow fadeInUp animated d-flex flex-column flex-grow-1"
// data-wow-delay={`${index * 50}ms`} data-wow-duration="500ms"
>
<div className="inner-box d-flex flex-column flex-grow-1">
<div className="image-box">
<figure className="image">

View File

@ -3,7 +3,7 @@ import CounterUp from "@/components/elements/CounterUp"
export default function CounterSection() {
return (
<>
<section className="funfact-section centred" style={{paddingTop:"30px"}}>
<section className="funfact-section centred" style={{paddingTop:"30px",paddingBottom:"70px"}}>
<div className="auto-container">
<div className="inner-container">
<div className="row clearfix">

View File

@ -6,10 +6,10 @@ export default function MobileServices() {
return (
<>
<section className="team-section sec-pad centred bg-color-1">
<div className="pattern-layer">
<div className="pattern-1" style={{ backgroundImage: 'url(/assets/images/home/our-services/top-right.webp)' }}></div>
<div className="pattern-2" style={{ backgroundImage: 'url(/assets/images/home/our-services/bottom-left.webp)' }}></div>
</div>
<div className="pattern-layer">
<div className="pattern-1" style={{ backgroundImage: 'url(/assets/images/home/our-services/top-right.webp)' }}></div>
<div className="pattern-2" style={{ backgroundImage: 'url(/assets/images/home/our-services/bottom-left.webp)' }}></div>
</div>
<div className="auto-container">
<div className="sec-title mb_50 centred">
<span className="sub-title-1 new-color2">We Help You Move Better & <br />Live Healthier</span>
@ -27,7 +27,7 @@ export default function MobileServices() {
src={service.icon2}
alt={`${service.alt}`}
/>
</div> <h3><Link href="/"> {service?.title}</Link></h3>
</div> <h3><Link href="/"> {service?.shortTitle}</Link></h3>
<div className="btn-box">
<Link
href={`/etobicoke-treatment-service/${service.slug}`}

View File

@ -32,7 +32,7 @@ export default function ServicesSection() {
</div>
<h3 className='text-start'>
<Link href={`/etobicoke-treatment-service/${service.slug}`}>
{service?.title}
{service?.shortTitle}
</Link>
</h3>
<p

View File

@ -5,7 +5,7 @@ export default function WhyChooseUsSection() {
return (
<section className="chooseus-section">
<div className="bg-layer" style={{ backgroundImage: 'url(/assets/images/home/why-choose/why-choose-right.webp)' }}></div>
<div className="pattern-layer" style={{ backgroundImage: 'url(/assets/images/shape/shape-12.png)' }}></div>
<div className="pattern-layer" style={{ backgroundImage: 'url(/assets/images/shape/shape-12.webp)' }}></div>
<div className="auto-container">
<div className="row clearfix">
<div className="col-lg-8 col-md-12 col-sm-12 content-column">
@ -21,7 +21,7 @@ export default function WhyChooseUsSection() {
<div className="inner-box">
<div className="icon-box"><img src="/assets/images/home/why-choose/expert-team.webp" alt="Expert Team" /></div>
<h3>Expert Team</h3>
<p>At Etobicoke Physiotherapy, we have expert team of professionals</p>
<p>At Etobicoke Physiotherapy, we have expert team of professionals.</p>
</div>
</div>
</div>
@ -30,7 +30,7 @@ export default function WhyChooseUsSection() {
<div className="inner-box">
<div className="icon-box"><img src="/assets/images/home/why-choose/understand.webp" alt="Understand your Pain" /></div>
<h3>Understand your Pain</h3>
<p>Etobicoke physiotherapy offer Treatment for faster recovery</p>
<p>Etobicoke physiotherapy offer Treatment for faster recovery.</p>
</div>
</div>
</div>
@ -39,7 +39,7 @@ export default function WhyChooseUsSection() {
<div className="inner-box">
<div className="icon-box"><img src="/assets/images/home/why-choose/ready.webp" alt="Ready To Go" /></div>
<h3>Ready To Go</h3>
<p>Flexible opening hours conveniently located in etobicoke</p>
<p>Flexible opening hours conveniently located in etobicoke.</p>
</div>
</div>
</div>

View File

@ -1,28 +1,48 @@
import TestimonialSlider1 from '@/components/slider/TestimonialSlider1'
import Link from "next/link";
export default function Testimonial() {
return (
<>
<section className="testimonial-section sec-pad bg-color-1">
<div className="bg-layer" style={{ backgroundImage: 'url(/assets/images/home/testimonial-left.webp)' }}></div>
<div className="pattern-layer" style={{ backgroundImage: 'url(/assets/images/shape/shape-21.webp)' }}></div>
<div className="auto-container">
<div className="row clearfix">
<div className="col-xl-6 col-lg-12 col-md-12 offset-xl-6 content-column">
<div className="content-box p_relative ml_45">
<div className="sec-title-1 mb_50">
<span className="sub-title-1">Testimonials</span>
<h2>What Our Clients Say About Rapha Rehab</h2>
</div>
<div className="content-box">
<TestimonialSlider1 />
<div className="bg-layer" style={{ backgroundImage: 'url(/assets/images/home/testimonial-left.webp)' }}></div>
<div className="pattern-layer" style={{ backgroundImage: 'url(/assets/images/shape/shape-21.webp)' }}></div>
<div className="auto-container">
<div className="row clearfix">
<div className="col-xl-6 col-lg-12 col-md-12 offset-xl-6 content-column">
<div className="content-box p_relative ml_45">
<div className="sec-title-1 mb_50">
<span className="sub-title-1 mb-1">Google Reviews</span>
{/* Exact same stars as testimonial */}
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star-half-alt"></i></li>
</ul>
<h2>What Our Clients Say About Rapha Rehab</h2>
</div>
<div className="content-box">
<TestimonialSlider1 />
</div>
<div className="btn-box mt-3 mb-5">
<Link
href="https://g.page/r/CYOR2OnruwHpEAE/review"
target="_blank"
rel="noopener noreferrer"
className="theme-btn btn-one-new-raw"
>
<span>Review us on Google</span>
</Link>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</>
)

View File

@ -12,14 +12,14 @@ export default function Video() {
<div className="auto-container">
<div className="inner-box">
{/* <div className="shape" style={{ backgroundImage: 'url(/assets/images/shape/shape-17.png)' }}></div> */}
<div className="video-btn">
{/* <div className="video-btn">
<a onClick={() => setOpen(true)}><i className="fas fa-play"></i>
<span className="border-animation border-1"></span>
<span className="border-animation border-2"></span>
<span className="border-animation border-3"></span>
</a>
</div>
<h2>Expert Online Consultations <br />with Certified Doctors</h2>
</div> */}
<h2>Expert Online Consultations <br />with our therapists.</h2>
<div className="btn-box">
<Link href="/contact" className="theme-btn btn-one"><span>Schedule Your Consultation</span></Link>
</div>

View File

@ -5,7 +5,7 @@ export default function chooseus() {
return (
<section className="chooseus-section">
<div className="bg-layer" style={{ backgroundImage: 'url(assets/images/background/chooseus-bg.jpg)' }}></div>
<div className="pattern-layer" style={{ backgroundImage: 'url(assets/images/shape/shape-12.png)' }}></div>
<div className="pattern-layer" style={{ backgroundImage: 'url(assets/images/shape/shape-12.webp)' }}></div>
<div className="auto-container">
<div className="row clearfix">
<div className="col-lg-8 col-md-12 col-sm-12 content-column">

View File

@ -14,7 +14,7 @@ export default function About() {
<div className="image_block_one">
<div className="image-box">
<div className="shape float-bob-x" style={{ backgroundImage: 'url(assets/images/shape/shape-7.png)' }}></div>
<div className="image-shape" style={{ backgroundImage: 'url(assets/images/shape/shape-26.png)' }}></div>
<div className="image-shape" style={{ backgroundImage: 'url(assets/images/shape/shape-26.webp)' }}></div>
<figure className="image-2"><img src="assets/images/resource/about-1.png" alt="" /></figure>
<div className="icon-one"><i className="icon-13"></i></div>
<div className="icon-two"><i className="icon-14"></i></div>

View File

@ -1,216 +1,161 @@
'use client'
import React, { useState } from 'react';
import Link from "next/link";
import { Autoplay, Navigation, Pagination } from "swiper/modules";
import { Swiper, SwiperSlide } from "swiper/react";
import { motion, AnimatePresence } from "framer-motion";
"use client"
import React, { useState } from "react"
import Link from "next/link"
import { useKeenSlider } from "keen-slider/react"
import "keen-slider/keen-slider.min.css"
import "swiper/css";
import "swiper/css/navigation";
import "swiper/css/pagination";
const swiperOptions = {
modules: [Autoplay, Pagination, Navigation],
slidesPerView: 1,
spaceBetween: 0,
autoplay: {
delay: 5000,
disableOnInteraction: false,
pauseOnMouseEnter: true, // stops on hover for smooth UX
},
speed: 1500, // increase speed for smoother sliding
loop: true,
navigation: {
nextEl: '.h1n',
prevEl: '.h1p',
},
pagination: {
el: '.swiper-pagination',
clickable: true,
},
effect: "slide", // ensures smooth slide effect
};
const variants = {
topToBottom: {
initial: { y: '-100vh', opacity: 0 },
animate: { y: 0, opacity: 1 },
exit: { y: '100vh', opacity: 0 }
},
bottomToTop: {
initial: { y: '100vh', opacity: 0 },
animate: { y: 0, opacity: 1 },
exit: { y: '-100vh', opacity: 0 }
},
leftToRight: {
initial: { x: '-100vw', opacity: 0 },
animate: { x: 0, opacity: 1 },
exit: { x: '100vw', opacity: 0 }
},
rightToLeft: {
initial: { x: '100vw', opacity: 0 },
animate: { x: 0, opacity: 1 },
exit: { x: '-100vw', opacity: 0 }
},
};
const transition = {
type: "tween",
ease: [0.4, 0.0, 0.2, 1],
duration: 1.2
};
// Autoplay plugin
function AutoplaySlider(slider) {
let timeout
let mouseOver = false
function clearNextTimeout() {
clearTimeout(timeout)
}
function nextTimeout() {
clearTimeout(timeout)
if (mouseOver) return
timeout = setTimeout(() => {
slider.next()
}, 4000)
}
slider.on("created", () => {
slider.container.addEventListener("mouseover", () => {
mouseOver = true
clearNextTimeout()
})
slider.container.addEventListener("mouseout", () => {
mouseOver = false
nextTimeout()
})
nextTimeout()
})
slider.on("dragStarted", clearNextTimeout)
slider.on("animationEnded", nextTimeout)
slider.on("updated", nextTimeout)
}
export default function Banner() {
const [activeIndex, setActiveIndex] = useState(0);
const [isAnimating, setIsAnimating] = useState(false);
const [sliderLoaded, setSliderLoaded] = useState(false)
const handleSlideChange = (swiper) => {
setIsAnimating(true);
setActiveIndex(swiper.realIndex || 0);
setTimeout(() => setIsAnimating(false), 1200);
};
const [sliderRef] = useKeenSlider(
{
loop: true,
renderMode: "performance",
slides: { perView: 1, spacing: 0 },
duration: 1000, // increase for smoother transition
easing: (t) => t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2, // smooth cubic easing
created() {
setSliderLoaded(true)
},
},
[AutoplaySlider]
)
const slides = [
{
id: 0,
bg: "/assets/images/banner/desktopBanner/banner-4.webp",
upper: "Begin your",
title: "Recovery",
desc: "• Rehab • Strength Training • Personalized Care",
btn: { text: "Visit Our Location", link: "/contact" },
align: "start",
},
{
id: 1,
bg: "/assets/images/banner/desktopBanner/banner-1.webp",
upper: "Build Your Strength &",
title: "Endurance",
desc: "• Physiotherapy • Sports Therapy • Injury Prevention",
btn: { text: "Book Your Appointment", link: "tel:+647-722-3434" },
align: "center",
},
{
id: 2,
bg: "/assets/images/banner/desktopBanner/banner-3.webp",
upper: "Regain Your Strength",
title: "Heal",
desc: "• Pain Relief • Mobility • Wellness",
btn: { text: "Schedule a Massage", link: "/contact" },
align: "start",
},
{
id: 3,
bg: "/assets/images/banner/desktopBanner/banner-2.webp",
upper: "Build your Core",
title: "Performance",
desc: "• Pain Relief • Active Care • Long-Term Result",
btn: { text: "Explore Our Service", link: "/etobicoke-treatment-service" },
align: "space-evenly",
},
]
return (
<section className="banner-style-two p_relative">
<Swiper
{...swiperOptions}
className="banner-carousel owl-theme owl-carousel owl-nav-none owl-dots-none"
onSwiper={(swiper) => setActiveIndex(swiper.realIndex || 0)}
onSlideChange={handleSlideChange}
<div
ref={sliderRef}
className="keen-slider"
style={{ opacity: sliderLoaded ? 1 : 0, transition: "opacity 0.5s ease" }}
>
{/* 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}
{slides.map((s) => (
<div
key={s.id}
className="keen-slider__slide"
style={{
minHeight: "600px",
width: "100%",
backgroundImage: `url(${s.bg})`,
backgroundSize: "cover",
backgroundPosition: "center",
display: "flex",
alignItems: "end",
justifyContent:
s.align === "start"
? "flex-start"
: s.align === "end"
? "flex-end"
: s.align === "center"
? "center"
: s.align === "space-between"
? "space-between"
: s.align === "space-evenly"
? "space-evenly"
: "center",
padding: "0 150px 40px",
}}
>
<div
className="content-box custom-content-box"
style={{
color: "#bc0000",
textAlign:
s.align === "space-between" || s.align === "space-evenly"
? "center"
: s.align,
padding: "450px 0px 220px 0px",
}}
>
<span className="upper-text mb-2" style={{ fontSize: "22px" }}>{s.upper}</span>
<h1
style={{
color: "#bc0000",
fontWeight: "bold",
fontSize: "64px",
}}
>
<div className="bg-layer bg-slide-0"
style={{ backgroundImage: 'url(/assets/images/banner/desktopBanner/banner-1.png)' }}>
</div>
<div className="auto-container" style={{ height: "600px", display: "flex", alignItems: "end", justifyContent: "end", textAlign: "center" }}>
<div className="content-box custom-content-box">
<span className="upper-text mb-2 ">Renew your</span>
<h2 style={{ color: "#bc0000" }}>STRENGTH</h2>
<p className=' text-white'> Physiotherapy Sports Therapy Injury Prevention</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>
{/* 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/banner-2.png)' }}>
</div>
<div className="auto-container" style={{ height: "600px", display: "flex", alignItems: "end", justifyContent: "center", textAlign: "center" }}>
<div className="content-box custom-content-box">
<span className="upper-text mb-3">Restore your</span>
<h2 style={{ color: "#bc0000" }}>Mobility</h2>
<p className=' text-white'> Pain Relief Active Care Long-Term Result</p>
<div className="btn-box mt-3">
<Link href="/contact" className="theme-btn btn-one">
<span>Schedule a Massage</span>
</Link>
</div>
</div>
</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/banner-3.png)' }}>
</div>
<div className="auto-container" style={{ height: "600px", display: "flex", alignItems: "end", justifyContent: "start", textAlign: "start" }}>
<div className="content-box custom-content-box">
<span className="upper-text mb-2">Reclaim your</span>
<h2 style={{ color: "#bc0000" }}>Wellnes</h2>
<p className='text-white'> Pain Relief Strength Training Active Care </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/banner-4.png)' }}>
</div>
<div className="auto-container" style={{ height: "600px", display: "flex", alignItems: "end",justifyContent: "start", textAlign: "start" }}>
<div className="content-box custom-content-box">
<span className="upper-text mb-2">Begin your</span>
<h2 style={{ color: "#bc0000" }}>Recovery</h2>
<p className='text-white'> Rehab Strength Training Personalized Care </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>
{s.title}
</h1>
<p style={{ color: "#fff" }}>{s.desc}</p>
<div className="btn-box mt-3">
<Link href={s.btn.link} className="theme-btn btn-one">
<span>{s.btn.text}</span>
</Link>
</div>
</div>
</div>
))}
</div>
</section>
);
)
}

View File

@ -5,7 +5,7 @@ export default function Chooseus() {
return (
<section className="chooseus-style-two bg-color-1">
<div className="bg-layer" style={{ backgroundImage: "url(assets/images/background/chooseus-bg-2.jpg)" }}></div>
<div className="pattern-layer" style={{ backgroundImage: "url(assets/images/shape/shape-12.png)" }}></div>
<div className="pattern-layer" style={{ backgroundImage: "url(assets/images/shape/shape-12.webp)" }}></div>
<div className="auto-container">
<div className="row clearfix">
<div className="col-lg-8 col-md-12 col-sm-12 content-column offset-lg-4">

View File

@ -7,7 +7,7 @@ export default function Contact() {
<div className="row clearfix">
<div className="col-lg-6 col-md-12 col-sm-12 map-column">
<div className="map-inner mr_35">
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2643.6895046810805!2d-122.52642526124438!3d38.00014098339506!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x8085976736097a2f%3A0xbe014d20e6e22654!2sSan Rafael%2C California%2C Hoa Kỳ!5e0!3m2!1svi!2s!4v1678975266976!5m2!1svi!2s" height={570} style={{ border: 0, width: "100%" }} allowFullScreen loading="lazy" referrerPolicy="no-referrer-when-downgrade" />
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2886.848070642326!2d-79.57826378450145!3d43.6308386791466!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x882b3811bd400001%3A0x87ffabfe7d6aeeca!2s5%20-%204335%20Bloor%20St%20W%2C%20Etobicoke%2C%20ON%20M9C%202A5!5e0!3m2!1sen!2sca!4v1693224000000!5m2!1sen!2scaF" height={570} style={{ border: 0, width: "100%" }} allowFullScreen loading="lazy" referrerPolicy="no-referrer-when-downgrade" />
</div>
</div>
<div className="col-lg-6 col-md-12 col-sm-12 content-column">

View File

@ -25,7 +25,7 @@ export default function faq() {
<figure className="image-layer"><img src="assets/images/resource/faq-1.png" alt="" /></figure>
<div className="auto-container">
<div className="sec-title centred mb_50">
<span className="sub-title">FAQ'S</span>
<span className="sub-title">Faq's</span>
<h2>Do You Have Any Medical <br />Questions?</h2>
</div>
<div className="row clearfix">

View File

@ -1,191 +1,153 @@
'use client'
import React, { useState, useEffect } from 'react';
"use client";
import React, { useState } from "react";
import Link from "next/link";
import { Autoplay, Navigation, Pagination } from "swiper/modules";
import { Swiper, SwiperSlide } from "swiper/react";
import { motion, AnimatePresence } from "framer-motion";
import "swiper/css";
import "swiper/css/navigation";
import "swiper/css/pagination";
const swiperOptions = {
modules: [Autoplay, Pagination, Navigation],
slidesPerView: 1,
spaceBetween: 0,
autoplay: {
delay: 10000,
disableOnInteraction: false,
},
loop: true,
navigation: {
nextEl: '.h1n',
prevEl: '.h1p',
},
pagination: {
el: '.swiper-pagination',
clickable: true,
},
};
const variants = {
topToBottom: { initial: { y: '-100vh', opacity: 0 }, animate: { y: 0, opacity: 1 }, exit: { y: '100vh', opacity: 0 } },
bottomToTop: { initial: { y: '100vh', opacity: 0 }, animate: { y: 0, opacity: 1 }, exit: { y: '-100vh', opacity: 0 } },
leftToRight: { initial: { x: '-100vw', opacity: 0 }, animate: { x: 0, opacity: 1 }, exit: { x: '100vw', opacity: 0 } },
rightToLeft: { initial: { x: '100vw', opacity: 0 }, animate: { x: 0, opacity: 1 }, exit: { x: '-100vw', opacity: 0 } },
};
const transition = { type: "tween", ease: [0.4, 0.0, 0.2, 1], duration: 1.2 };
import { useKeenSlider } from "keen-slider/react";
import "keen-slider/keen-slider.min.css";
export default function MobileBanner() {
const [activeIndex, setActiveIndex] = useState(0);
const [isMobile, setIsMobile] = useState(false);
const [isMobile, setIsMobile] = useState(false);
useEffect(() => {
const handleResize = () => setIsMobile(window.innerWidth <= 768);
handleResize();
window.addEventListener('resize', handleResize);
return () => window.removeEventListener('resize', handleResize);
}, []);
React.useEffect(() => {
const handleResize = () => setIsMobile(window.innerWidth <= 768);
handleResize();
window.addEventListener("resize", handleResize);
return () => window.removeEventListener("resize", handleResize);
}, []);
const slides = [
{
id: 0,
variant: 'topToBottom',
bgImage: '/assets/images/banner/mobile-banner/1.webp',
upperText: 'Renew your',
title: 'Strength',
// 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: 1,
variant: 'bottomToTop',
bgImage: '/assets/images/banner/mobile-banner/2.webp',
upperText: 'Restore your ',
title: 'Mobility',
// 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'
},
{
id: 2,
variant: 'leftToRight',
bgImage: '/assets/images/banner/mobile-banner/3.webp',
upperText: 'Reclaim your',
title: 'Wellnes',
// 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'
},
{
id: 3,
variant: 'rightToLeft',
bgImage: '/assets/images/banner/mobile-banner/4.webp',
upperText: 'Begin your ',
title: ' Recovery',
// 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'
}
];
// ✅ Autoplay plugin added here
const autoplay = (slider) => {
let timeout;
const delay = 4000;
if (!isMobile) return null;
function clearNextTimeout() {
clearTimeout(timeout);
}
function nextTimeout() {
clearTimeout(timeout);
timeout = setTimeout(() => {
slider.next();
}, delay);
}
return (
<section
className="banner-style-two p_relative"
style={{ minHeight: '100vh', position: 'relative' }}
>
<Swiper
{...swiperOptions}
className="banner-carousel"
onSwiper={(swiper) => setActiveIndex(swiper.realIndex || 0)}
onSlideChange={(swiper) => setActiveIndex(swiper.realIndex || 0)}
slider.on("created", nextTimeout);
slider.on("dragStarted", clearNextTimeout);
slider.on("animationEnded", nextTimeout);
slider.on("updated", nextTimeout);
};
const [sliderRef] = useKeenSlider(
{
loop: true,
slides: { perView: 1, spacing: 0 },
},
[autoplay] // ✅ autoplay fixed here
);
const slides = [
{
id: 0,
bgImage: "/assets/images/banner/mobile-banner/4.webp",
upperText: "Begin your ",
title: "Recovery",
description:
"Discover holistic physiotherapy and rehab services designed to restore balance, ease pain, and support long-term recovery.",
buttonText: "Book Your Appointment",
buttonLink: "/contact",
},
{
id: 1,
bgImage: "/assets/images/banner/mobile-banner/1.webp",
upperText: "Build Your Strength & ",
title: "Endurance",
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",
},
{
id: 2,
bgImage: "/assets/images/banner/mobile-banner/3.webp",
upperText: "Regain your Flexibility & ",
title: "Balance",
description:
"Comprehensive physiotherapy and rehab services designed to restore your strength, mobility and long-term wellness.",
buttonText: "Explore Our Service",
buttonLink: "/etobicoke-treatment-service",
},
{
id: 3,
bgImage: "/assets/images/banner/mobile-banner/2.webp",
upperText: "Build your Core ",
title: "Performance",
description:
"Experience soothing massage techniques that release tension, promote circulation, and support your overall wellness.",
buttonText: "Schedule a Massage",
buttonLink: "/contact",
},
];
if (!isMobile) return null;
return (
<section
className="banner-style-two"
style={{ minHeight: "100vh", position: "relative" }}
>
<div ref={sliderRef} className="keen-slider">
{slides.map((slide) => (
<div
key={slide.id}
className="keen-slider__slide"
style={{
minHeight: "100vh",
position: "relative",
backgroundImage: `url(${slide.bgImage})`,
backgroundSize: "cover",
backgroundPosition: "center",
}}
>
<div
className="auto-container"
style={{
position: "relative",
zIndex: 1,
minHeight: "100vh",
display: "flex",
justifyContent: "center",
alignItems: "center",
paddingTop: "200px",
color: "#fff",
textAlign: "center",
}}
>
{slides.map((slide, index) => (
<SwiperSlide key={slide.id}>
<AnimatePresence mode="wait">
{activeIndex === index && (
<motion.div
key={`slide-${index}`}
className="slide-item"
style={{ minHeight: '100vh', position: 'relative' }}
variants={variants[slide.variant]}
initial="initial"
animate="animate"
exit="exit"
transition={transition}
>
{/* full-height background */}
<div
className="bg-layer"
style={{
position: 'absolute',
top: 0,
left: 0,
width: '100%',
height: '100%',
backgroundImage: `url(${slide.bgImage})`,
backgroundSize: 'cover',
backgroundPosition: 'center'
}}
/>
{/* centered content */}
<div
className="auto-container"
style={{
position: 'relative',
zIndex: 1,
minHeight: '100vh',
display: 'flex',
justifyContent: 'center',
alignItems: 'end',
paddingBottom: "20px"
}}
>
{!slide.hideContent && (
<div
className={`content-box custom-content-box ${slide.contentStyle || ''}`}
>
<span className="upper-text mb-2 ">{slide.upperText}</span>
<h2 style={{fontSize:"32px !important", lineHeight:"42px"}}>
{slide.title} {slide.titleSpan} {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-new">
<span>{slide.buttonText}</span>
</Link>
</div>
</div>
)}
</div>
</motion.div>
)}
</AnimatePresence>
</SwiperSlide>
))}
</Swiper>
</section>
);
};
<div className="content-box custom-content-box">
<span className="upper-text mb-2">{slide.upperText}</span>
<h2
style={{
fontSize: "32px",
lineHeight: "42px",
color: "#bc0000",
fontWeight: "bold",
}}
>
{slide.title}
</h2>
{/* {slide.subtitle && <p>{slide.subtitle}</p>} */}
{/* <p>{slide.description}</p> */}
<div className="btn-box mt-3">
<Link
href={slide.buttonLink}
className="theme-btn btn-one-new"
>
<span>{slide.buttonText}</span>
</Link>
</div>
</div>
</div>
</div>
))}
</div>
</section>
);
}

View File

@ -25,7 +25,7 @@ export default function Faq() {
<figure className="image-layer"><img src="assets/images/resource/faq-1.png" alt="" /></figure>
<div className="auto-container">
<div className="sec-title centred mb_50">
<span className="sub-title">FAQ'S</span>
<span className="sub-title">Faq's</span>
<h2>Do You Have Any Medical <br />Questions?</h2>
</div>
<div className="row clearfix">

View File

@ -4,7 +4,7 @@ export default function chooseus() {
return (
<section className="chooseus-section">
<div className="bg-layer" style={{ backgroundImage: 'url(assets/images/background/chooseus-bg.jpg)' }}></div>
<div className="pattern-layer" style={{ backgroundImage: 'url(assets/images/shape/shape-12.png)' }}></div>
<div className="pattern-layer" style={{ backgroundImage: 'url(assets/images/shape/shape-12.webp)' }}></div>
<div className="auto-container">
<div className="row clearfix">
<div className="col-lg-8 col-md-12 col-sm-12 content-column">

View File

@ -4,64 +4,73 @@ import { Autoplay, Navigation, Pagination } from "swiper/modules"
import { Swiper, SwiperSlide } from "swiper/react"
const swiperOptions = {
modules: [Autoplay, Pagination, Navigation],
slidesPerView: 1,
spaceBetween: 30,
autoplay: {
delay:2500,
disableOnInteraction: false,
},
loop: true,
modules: [Autoplay, Pagination, Navigation],
slidesPerView: 1,
spaceBetween: 30,
autoplay: {
delay: 2500,
disableOnInteraction: false,
},
loop: true,
// Navigation
navigation: {
nextEl: '.h1n',
prevEl: '.h1p',
},
// Navigation
navigation: {
nextEl: '.h1n',
prevEl: '.h1p',
},
// Pagination
pagination: {
el: '.swiper-pagination',
clickable: true,
},
// Pagination
pagination: {
el: '.swiper-pagination',
clickable: true,
},
breakpoints: {
320: {
slidesPerView: 1,
// spaceBetween: 30,
},
575: {
slidesPerView: 1,
// spaceBetween: 30,
},
767: {
slidesPerView: 1,
// spaceBetween: 30,
},
991: {
slidesPerView: 1,
// spaceBetween: 30,
},
1199: {
slidesPerView: 1,
// spaceBetween: 30,
},
1350: {
slidesPerView: 1,
// spaceBetween: 30,
},
}
breakpoints: {
320: {
slidesPerView: 1,
// spaceBetween: 30,
},
575: {
slidesPerView: 1,
// spaceBetween: 30,
},
767: {
slidesPerView: 1,
// spaceBetween: 30,
},
991: {
slidesPerView: 1,
// spaceBetween: 30,
},
1199: {
slidesPerView: 1,
// spaceBetween: 30,
},
1350: {
slidesPerView: 1,
// spaceBetween: 30,
},
}
}
export default function TestimonialSlider1() {
return (
<>
<Swiper {...swiperOptions} className="single-item-carousel owl-carousel owl-theme owl-dots-none owl-nav-none">
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<div className="icon-box"><i className="icon-23"></i></div>
<p>Rapha Rehab provided exceptional care and support throughout my physiotherapy sessions. The teams professionalism and personalized approach helped me recover faster than I expected.</p>
{/* <div className="author-box">
return (
<>
<Swiper {...swiperOptions} className="single-item-carousel owl-carousel owl-theme owl-dots-none owl-nav-none">
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
</ul>
{/* <div className="icon-box"><i className="icon-23"></i></div> */}
<p>Rapha Rehab provided exceptional care and support throughout my physiotherapy sessions. The teams professionalism and personalized approach helped me recover faster than I expected.</p>
{/* <div className="author-box">
<figure className="author-thumb"><img src="assets/images/resource/testimonial-1.png" alt="" /></figure>
<ul className="rating clearfix">
<li><i className="fas fa-star"></i></li>
@ -73,15 +82,22 @@ export default function TestimonialSlider1() {
<h3>Robert Fox</h3>
<span className="designation">Dog Trainer</span>
</div> */}
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<div className="icon-box"><i className="icon-23"></i></div>
<p>The hand massage therapy at Rapha Rehab was incredibly effective in relieving my pain and tension. The therapists are skilled and truly caring.</p>
{/* <div className="author-box">
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
</ul>
{/* <div className="icon-box"><i className="icon-23"></i></div> */}
<p>The hand massage therapy at Rapha Rehab was incredibly effective in relieving my pain and tension. The therapists are skilled and truly caring.</p>
{/* <div className="author-box">
<figure className="author-thumb"><img src="assets/images/resource/testimonial-1.png" alt="" /></figure>
<ul className="rating clearfix">
<li><i className="fas fa-star"></i></li>
@ -93,15 +109,22 @@ export default function TestimonialSlider1() {
<h3>Robert Fox</h3>
<span className="designation">Dog Trainer</span>
</div> */}
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<div className="icon-box"><i className="icon-23"></i></div>
<p>I highly recommend Rapha Rehab for anyone looking for top-quality physio services in Mississauga. The modern equipment and expert staff make a real difference.</p>
{/* <div className="author-box">
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
</ul>
{/* <div className="icon-box"><i className="icon-23"></i></div> */}
<p>I highly recommend Rapha Rehab for anyone looking for top-quality physio services in Mississauga. The modern equipment and expert staff make a real difference.</p>
{/* <div className="author-box">
<figure className="author-thumb"><img src="assets/images/resource/testimonial-1.png" alt="" /></figure>
<ul className="rating clearfix">
<li><i className="fas fa-star"></i></li>
@ -113,15 +136,22 @@ export default function TestimonialSlider1() {
<h3>Robert Fox</h3>
<span className="designation">Dog Trainer</span>
</div> */}
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<div className="icon-box"><i className="icon-23"></i></div>
<p>Excellent waterfront physio and rehab services. The calming environment combined with expert care made my rehabilitation a comfortable and successful experience.</p>
{/* <div className="author-box">
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
</ul>
{/* <div className="icon-box"><i className="icon-23"></i></div> */}
<p>Excellent waterfront physio and rehab services. The calming environment combined with expert care made my rehabilitation a comfortable and successful experience.</p>
{/* <div className="author-box">
<figure className="author-thumb"><img src="assets/images/resource/testimonial-1.png" alt="" /></figure>
<ul className="rating clearfix">
<li><i className="fas fa-star"></i></li>
@ -133,11 +163,410 @@ export default function TestimonialSlider1() {
<h3>Robert Fox</h3>
<span className="designation">Dog Trainer</span>
</div> */}
</div>
</div>
</SwiperSlide>
</Swiper>
</>
)
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
</ul>
{/* <div className="icon-box"><i className="icon-23"></i></div> */}
<p>This physiotherapy clinic has an excellent rate. I would give them even more than 5 stars if I could. I had neck and back injuries, and I can already see the improvement. Dhanya is patient and explains everything to me in detail. She also pays close attention to details and genuinely cares about her clients. I highly recommend them.</p>
{/* <div className="author-box">
<figure className="author-thumb"><img src="assets/images/resource/testimonial-1.png" alt="" /></figure>
<ul className="rating clearfix">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="far fa-star"></i></li>
</ul>
<h3>Robert Fox</h3>
<span className="designation">Dog Trainer</span>
</div> */}
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
</ul>
{/* <div className="icon-box"><i className="icon-23"></i></div> */}
<p>After a severe sciatica flare up, physiotherapist Dhanya Prashant was able to get me fully recovered within a few sessions! This was the fastest recovery time I had ever experienced, and I am incredibly grateful for the diligent and thorough follow up and long term management plan she put together for me. I highly recommend this clinic, the end to end experience was incredibly positive.</p>
{/* <div className="author-box">
<figure className="author-thumb"><img src="assets/images/resource/testimonial-1.png" alt="" /></figure>
<ul className="rating clearfix">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="far fa-star"></i></li>
</ul>
<h3>Robert Fox</h3>
<span className="designation">Dog Trainer</span>
</div> */}
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
</ul>
{/* <div className="icon-box"><i className="icon-23"></i></div> */}
<p>Excellent service by ChandraBabu. He has immense knowledge about muscles and nerves, I went for shoulder discomfort and he was able to cure it completely within few sessions.
I recommend everyone to consult him if you have any pain in shoulders 😊</p>
{/* <div className="author-box">
<figure className="author-thumb"><img src="assets/images/resource/testimonial-1.png" alt="" /></figure>
<ul className="rating clearfix">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="far fa-star"></i></li>
</ul>
<h3>Robert Fox</h3>
<span className="designation">Dog Trainer</span>
</div> */}
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
</ul>
{/* <div className="icon-box"><i className="icon-23"></i></div> */}
<p>Mr. Babu is the absolute best! If you suffer from acute/chronic pain and deep tissue massages are the only thing that give you relief, you must visit him! He actually listens to your needs and delivers every single time. Probably one of the very few RMTs that actually works on areas you ask them to and even focuses on areas that need more attention. He is truly gifted, extremely thorough and professional.</p>
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
</ul>
{/* <div className="icon-box"><i className="icon-23"></i></div> */}
<p>I have been coming here for years and the service is highly professional. The therapist is very knowledgeable and always seem to be able to treat my pain or discomfort with 100% success. Total confidence in what he does. Awesome, great customer service, great personality.</p>
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
</ul>
{/* <div className="icon-box"><i className="icon-23"></i></div> */}
<p>This is the only physio/massage place I recommend to anyone. I have referred many people here and theyre always happy. He WILL fix your problem, hes fantastic.</p>
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
</ul>
{/* <div className="icon-box"><i className="icon-23"></i></div> */}
<p>Excellent massage therapy experience on every visit with Babu at the Morningside location. Been with him for many years.I must say he is very professional and attacks the root cause of my pain issues.His expertise and knowledge shared as towards my self care after my mva has improved tremendously. I call him " gifted hands "Very best to you Babu with your TLC you share with your patients 🙏keep it up</p>
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
</ul>
{/* <div className="icon-box"><i className="icon-23"></i></div> */}
<p>I've been going to this clinic for years. They don't care at all about the money they are receiving, they care about getting you better. The masseuse and physiotherapist are amazing there. Very grateful to have found this place. Lovely people.</p>
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
</ul>
{/* <div className="icon-box"><i className="icon-23"></i></div> */}
<p>THE BEST! Excellent staff, very professional & great knowledge. The physiotherapist Dhanya was able to help me become pain free.
I am very happy I found this clinic.</p>
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
</ul>
{/* <div className="icon-box"><i className="icon-23"></i></div> */}
<p>I have had a number of massages done as well as physio to help with my backpain that I have received due to physical labor job. I felt improvements after a few sessions as well as less tension in my back. Staff is friendly, would recommend.</p>
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
</ul>
{/* <div className="icon-box"><i className="icon-23"></i></div> */}
<p>Exceptional service by Mr. Babu who has vast experience in pain management. I am the Founder & CEO of TDF Cricket Club and most of the players from my club are his clients.</p>
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
</ul>
{/* <div className="icon-box"><i className="icon-23"></i></div> */}
<p>Excellent service. (Massage therapy, physiotherapy and reflexology). Even though it's far for us my husband and I continue with Rapha physiotherapy due to their outstanding service.</p>
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
</ul>
{/* <div className="icon-box"><i className="icon-23"></i></div> */}
<p>I had shoulder and lower back pain, few massage sessions with Babu, should pain has gone and lower back pain has become less. Nice and friendly environment.
Highly recommend 👍🏻 </p>
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
</ul>
{/* <div className="icon-box"><i className="icon-23"></i></div> */}
<p>I highly recommended this clinic. Physiotherapist and Massage therapist with whom I have worked have been very knowledgeable and supportive. Clinic is also immaculate and effectively run. They have helped me to reduce pain and regain my overall strength and flexibility.
Thank you so much👍</p>
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
</ul>
{/* <div className="icon-box"><i className="icon-23"></i></div> */}
<p>I visited this place for lower back pain and the treatment was excellent. I am regular to gym now without any back pain issues. Thanks to the El Rapha team!!</p>
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
</ul>
{/* <div className="icon-box"><i className="icon-23"></i></div> */}
<p>Excellent clinic in Etobicoke. Friendly and knowledgeable staff. They actually treat you for an hour and not 10-15 minutes like another place I went to in Etobicoke, and for a lesser fee.</p>
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
</ul>
{/* <div className="icon-box"><i className="icon-23"></i></div> */}
<p>I really appreciate the service provided by all practitioners - Mr.Babu, Dhanya, Deepa.
You are all amazing, and I would not go anywhere else since I found this place. Big Thanks to all.</p>
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
</ul>
{/* <div className="icon-box"><i className="icon-23"></i></div> */}
<p>The therapist was excellent in his massage and he helped a lot with managing my wrist and whole body pain.</p>
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
</ul>
{/* <div className="icon-box"><i className="icon-23"></i></div> */}
<p>This place provided on-time service for an emergency and the doctor fixed my bad shoulder within an hour! Highly recommended highly knowledgeable in his field</p>
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
</ul>
{/* <div className="icon-box"><i className="icon-23"></i></div> */}
<p>My first time to do reflexology massage and the therapist did the great job 😉😊 i recommend you guys to come here,
And staff are very nice and helpful</p>
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
</ul>
{/* <div className="icon-box"><i className="icon-23"></i></div> */}
<p>Went to the Physiotherapist and was really pleased with both her knowledge and efforts. Going to return next week</p>
</div>
</div>
</SwiperSlide>
<SwiperSlide className="slide-item">
<div className="testimonial-block-one">
<div className="inner-box">
<ul className="rating clearfix mb_15 d-flex gap-2">
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
<li><i className="fas fa-star"></i></li>
</ul>
{/* <div className="icon-box"><i className="icon-23"></i></div> */}
<p>Excellent service, attention and results, friendly people, highly recommended</p>
</div>
</div>
</SwiperSlide>
</Swiper>
</>
)
}

View File

@ -1,10 +1,16 @@
/** @type {import('next').NextConfig} */
const nextConfig = {
output: "export",
trailingSlash: true,
images: {
unoptimized: true,
},
output: "export", // keep: needed for next export
trailingSlash: true,
images: {
unoptimized: true, // ✅ needed
},
swcMinify: true, // explicit SWC minify
// experimental: {
// forceSwcTransforms: true, // use SWC only
// modern: true, // ✅ enable modern build (ES6+ for modern browsers)
// polyfillsOptimization: true // ✅ remove unnecessary polyfills
// },
};
export default nextConfig;
module.exports = nextConfig;

3934
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -8,17 +8,22 @@
"start": "next start",
"lint": "next lint",
"sass": "sass --watch public/assets/scss/main.scss:public/assets/css/main.css",
"sitemap": "node scripts/generate-sitemap.cjs"
"sitemap": "node scripts/generate-sitemap.cjs",
"optimize-images": "node --experimental-modules scripts/optimize-images.mjs",
"postbuild": "npm run optimize-images"
},
"dependencies": {
"axios": "^1.11.0",
"bootstrap-touchspin": "^4.7.3",
"framer-motion": "^12.23.12",
"imagemin": "^9.0.1",
"imagemin-avif": "^0.1.6",
"imagemin-mozjpeg": "^10.0.0",
"imagemin-optipng": "^8.0.0",
"imagemin-webp": "^8.0.0",
"isotope-layout": "^3.0.6",
"lightgallery": "^2.7.2",
"keen-slider": "^6.8.6",
"next": "^14.0.4-canary.36",
"react": "18.2.0",
"react-curved-text": "^2.0.2",
"react-dom": "18.2.0",
"react-google-recaptcha": "^3.1.0",
"react-modal-video": "^2.0.1",
@ -28,5 +33,11 @@
},
"devDependencies": {
"sitemap": "^8.0.0"
}
}
},
"browserslist": [
"last 2 Chrome versions",
"last 2 Firefox versions",
"last 2 Safari versions",
"last 2 Edge versions"
]
}

View File

@ -3779,4 +3779,4 @@ service_hexagon_2{0%{-webkit-transform:rotateY(0deg);transform:rotateY(0deg)}100
service_hexagon{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes service_hexagon{0%{-moz-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-o-keyframes service_hexagon{0%{-o-transform:rotate(0deg);transform:rotate(0deg)}100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes service_hexagon{0%{-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}
@-webkit-keyframes animateBubble{0%{margin-top:20%}100%{margin-top:-30%}}@-moz-keyframes animateBubble{0%{margin-top:20%}100%{margin-top:-30%}}@keyframes animateBubble{0%{margin-top:20%}100%{margin-top:-30%}}@-webkit-keyframes sideWays{0%{margin-left:0}100%{margin-left:25px}}@-moz-keyframes sideWays{0%{margin-left:0}100%{margin-left:25px}}@keyframes sideWays{0%{margin-left:0}100%{margin-left:25px}}
@-webkit-keyframes animateBubble{0%{margin-top:20%}100%{margin-top:-30%}}@-moz-keyframes animateBubble{0%{margin-top:20%}100%{margin-top:-30%}}@keyframes animateBubble{0%{margin-top:20%}100%{margin-top:-30%}}@-webkit-keyframes sideWays{0%{margin-left:0}100%{margin-left:25px}}@-moz-keyframes sideWays{0%{margin-left:0}100%{margin-left:25px}}@keyframes sideWays{0%{margin-left:0}100%{margin-left:25px}}

File diff suppressed because it is too large Load Diff

View File

@ -4406,8 +4406,4 @@ Image Hover
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
}

View File

@ -6,7 +6,7 @@
/* Layout helpers
----------------------------------*/
.ui-helper-hidden {
/* .ui-helper-hidden {
display: none;
}
.ui-helper-hidden-accessible {
@ -45,7 +45,7 @@
left: 0;
position: absolute;
opacity: 0;
filter:Alpha(Opacity=0); /* support: IE8 */
filter:Alpha(Opacity=0);
}
.ui-front {
@ -53,16 +53,12 @@
}
/* Interaction Cues
----------------------------------*/
.ui-state-disabled {
cursor: default !important;
pointer-events: none;
}
/* Icons
----------------------------------*/
.ui-icon {
display: inline-block;
vertical-align: middle;
@ -79,18 +75,14 @@
display: block;
}
/* Misc visuals
----------------------------------*/
/* Overlays */
.ui-widget-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.ui-accordion .ui-accordion-header {
} */
/* .ui-accordion .ui-accordion-header {
display: block;
cursor: pointer;
position: relative;
@ -122,7 +114,6 @@
.ui-menu .ui-menu-item {
margin: 0;
cursor: pointer;
/* support: IE10, see #8844 */
list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
}
.ui-menu .ui-menu-item-wrapper {
@ -139,27 +130,27 @@
.ui-menu .ui-state-focus,
.ui-menu .ui-state-active {
margin: -1px;
}
} */
/* icon support */
.ui-menu-icons {
/* .ui-menu-icons {
position: relative;
}
.ui-menu-icons .ui-menu-item-wrapper {
padding-left: 2em;
}
} */
/* left-aligned */
.ui-menu .ui-icon {
/* .ui-menu .ui-icon {
position: absolute;
top: 0;
bottom: 0;
left: .2em;
margin: auto 0;
}
} */
/* right-aligned */
.ui-menu .ui-menu-icon {
/* .ui-menu .ui-menu-icon {
left: auto;
right: 0;
}
@ -176,34 +167,32 @@
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
/* Support: IE <= 11 */
overflow: visible;
}
} */
.ui-button,
/* .ui-button,
.ui-button:link,
.ui-button:visited,
.ui-button:hover,
.ui-button:active {
text-decoration: none;
}
} */
/* to make room for the icon, a width needs to be set here */
.ui-button-icon-only {
/* .ui-button-icon-only {
width: 2em;
box-sizing: border-box;
text-indent: -9999px;
white-space: nowrap;
}
} */
/* no icon support for input elements */
input.ui-button.ui-button-icon-only {
/* input.ui-button.ui-button-icon-only {
text-indent: 0;
}
} */
/* button icon element(s) */
.ui-button-icon-only .ui-icon {
/* .ui-button-icon-only .ui-icon {
position: absolute;
top: 50%;
left: 50%;
@ -226,11 +215,11 @@ input.ui-button.ui-icon-notext .ui-icon {
text-indent: 0;
white-space: normal;
padding: .4em 1em;
}
} */
/* workarounds */
/* Support: Firefox 5 - 40 */
input.ui-button::-moz-focus-inner,
/* input.ui-button::-moz-focus-inner,
button.ui-button::-moz-focus-inner {
border: 0;
padding: 0;
@ -276,12 +265,10 @@ button.ui-button::-moz-focus-inner {
}
.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content {
border-bottom: none;
}
} */
/* Spinner specific style fixes */
.ui-controlgroup-vertical .ui-spinner-input {
/* Support: IE8 only, Android < 4.4 only */
/* .ui-controlgroup-vertical .ui-spinner-input {
width: 75%;
width: calc( 100% - 2.4em );
}
@ -398,10 +385,10 @@ button.ui-button::-moz-focus-inner {
}
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
float: left;
}
} */
/* with multiple calendars */
.ui-datepicker.ui-datepicker-multi {
/* .ui-datepicker.ui-datepicker-multi {
width: auto;
}
.ui-datepicker-multi .ui-datepicker-group {
@ -433,7 +420,6 @@ button.ui-button::-moz-focus-inner {
font-size: 0;
}
/* RTL support */
.ui-datepicker-rtl {
direction: rtl;
}
@ -469,7 +455,6 @@ button.ui-button::-moz-focus-inner {
border-left-width: 1px;
}
/* Icons */
.ui-datepicker .ui-icon {
display: block;
text-indent: -99999px;
@ -642,8 +627,8 @@ button.ui-button::-moz-focus-inner {
height: 9px;
right: -5px;
top: -5px;
}
.ui-progressbar {
} */
/* .ui-progressbar {
height: 2em;
text-align: left;
overflow: hidden;
@ -655,7 +640,7 @@ button.ui-button::-moz-focus-inner {
.ui-progressbar .ui-progressbar-overlay {
background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");
height: 100%;
filter: alpha(opacity=25); /* support: IE8 */
filter: alpha(opacity=25);
opacity: 0.25;
}
.ui-progressbar-indeterminate .ui-progressbar-value {
@ -732,7 +717,6 @@ button.ui-button::-moz-focus-inner {
background-position: 0 0;
}
/* support: IE8 - See #6727 */
.ui-slider.ui-state-disabled .ui-slider-handle,
.ui-slider.ui-state-disabled .ui-slider-range {
filter: inherit;
@ -809,7 +793,6 @@ button.ui-button::-moz-focus-inner {
overflow: hidden;
right: 0;
}
/* more specificity required here to override default borders */
.ui-spinner a.ui-spinner-button {
border-top-style: none;
border-bottom-style: none;
@ -822,7 +805,7 @@ button.ui-button::-moz-focus-inner {
bottom: 0;
}
.ui-tabs {
position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
position: relative;
padding: .2em;
}
.ui-tabs .ui-tabs-nav {
@ -867,12 +850,11 @@ button.ui-button::-moz-focus-inner {
position: absolute;
z-index: 9999;
max-width: 300px;
}
body .ui-tooltip {
} */
/* body .ui-tooltip {
border-width: 2px;
}
/* Component containers
----------------------------------*/
.ui-widget {
font-family: Arial,Helvetica,sans-serif;
font-size: 1em;
@ -908,15 +890,11 @@ body .ui-tooltip {
color: #333333;
}
/* Interaction states
----------------------------------*/
.ui-state-default,
.ui-widget-content .ui-state-default,
.ui-widget-header .ui-state-default,
.ui-button,
/* We use html here because we need a greater specificity to make sure disabled
works properly when clicked or hovered */
html .ui-button.ui-state-disabled:hover,
html .ui-button.ui-state-disabled:active {
border: 1px solid #c5c5c5;
@ -985,8 +963,6 @@ a.ui-button:active,
text-decoration: none;
}
/* Interaction Cues
----------------------------------*/
.ui-state-highlight,
.ui-widget-content .ui-state-highlight,
.ui-widget-header .ui-state-highlight {
@ -1029,24 +1005,21 @@ a.ui-button:active,
.ui-widget-content .ui-priority-secondary,
.ui-widget-header .ui-priority-secondary {
opacity: .7;
filter:Alpha(Opacity=70); /* support: IE8 */
filter:Alpha(Opacity=70);
font-weight: normal;
}
.ui-state-disabled,
.ui-widget-content .ui-state-disabled,
.ui-widget-header .ui-state-disabled {
opacity: .35;
filter:Alpha(Opacity=35); /* support: IE8 */
filter:Alpha(Opacity=35);
background-image: none;
}
.ui-state-disabled .ui-icon {
filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
filter:Alpha(Opacity=35);
}
/* Icons
----------------------------------*/
/* states and images */
.ui-icon {
width: 16px;
height: 16px;
@ -1056,13 +1029,10 @@ a.ui-button:active,
.ui-state-focus .ui-icon,
.ui-button:hover .ui-icon,
.ui-button:focus .ui-icon {
/*background-image: url("images/ui-icons_555555_256x240.png");*/
}
.ui-state-active .ui-icon,
.ui-button:active .ui-icon {
/*background-image: url("images/ui-icons_ffffff_256x240.png");*/
}
/* positioning */
.ui-icon-blank { background-position: 16px 16px; }
.ui-icon-caret-1-n { background-position: 0 0; }
.ui-icon-caret-1-ne { background-position: -16px 0; }
@ -1200,7 +1170,6 @@ a.ui-button:active,
.ui-icon-seek-prev { background-position: -48px -160px; }
.ui-icon-seek-end { background-position: -64px -160px; }
.ui-icon-seek-start { background-position: -80px -160px; }
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
.ui-icon-seek-first { background-position: -80px -160px; }
.ui-icon-stop { background-position: -96px -160px; }
.ui-icon-eject { background-position: -112px -160px; }
@ -1238,14 +1207,14 @@ a.ui-button:active,
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
.ui-icon-grip-diagonal-se { background-position: -80px -224px; } */
/* Misc visuals
----------------------------------*/
/* Corner radius */
.ui-corner-all,
/* .ui-corner-all,
.ui-corner-top,
.ui-corner-left,
.ui-corner-tl {
@ -1270,11 +1239,10 @@ a.ui-button:active,
border-bottom-right-radius: 3px;
}
/* Overlays */
.ui-widget-overlay {
background: #aaaaaa;
opacity: .3;
filter: Alpha(Opacity=30); /* support: IE8 */
filter: Alpha(Opacity=30);
}
.ui-widget-shadow {
-webkit-box-shadow: 0px 0px 5px #666666;
@ -1282,17 +1250,11 @@ a.ui-button:active,
}
/* Icons
----------------------------------*/
/* states and images */
.ui-icon {
width: 16px;
height: 16px;
}
/* positioning */
.ui-icon-blank { background-position: 16px 16px; }
.ui-icon-carat-1-n { background-position: 0 0; }
.ui-icon-carat-1-ne { background-position: -16px 0; }
@ -1430,7 +1392,6 @@ a.ui-button:active,
.ui-icon-seek-prev { background-position: -48px -160px; }
.ui-icon-seek-end { background-position: -64px -160px; }
.ui-icon-seek-start { background-position: -80px -160px; }
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
.ui-icon-seek-first { background-position: -80px -160px; }
.ui-icon-stop { background-position: -96px -160px; }
.ui-icon-eject { background-position: -112px -160px; }
@ -1468,4 +1429,4 @@ a.ui-button:active,
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
.ui-icon-grip-diagonal-se { background-position: -80px -224px; } */

File diff suppressed because one or more lines are too long

View File

@ -1,9 +1,9 @@
/** about-section **/
/*
.about-section{
position: relative;
}
} */
.image_block_one .image-box{
position: relative;
@ -11,7 +11,7 @@
padding-left: 30px;
}
.image_block_one .image-box .image{
/* .image_block_one .image-box .image{
position: relative;
display: block;
filter: drop-shadow(0px 2px 70px rgba(0, 0, 0, 0.1));
@ -22,7 +22,7 @@
.image_block_one .image-box .image img{
width: 100%;
border-radius: 300px 0px 300px 300px;
}
} */
.image_block_one .image-box .icon-one{
position: absolute;
@ -53,7 +53,7 @@
border-radius: 15px;
}
.image_block_one .image-box .text-box{
/* .image_block_one .image-box .text-box{
position: absolute;
left: -70px;
bottom: 40px;
@ -89,7 +89,7 @@
width: 98px;
height: 27px;
background-repeat: no-repeat;
}
} */
.content_block_one .content-box{
position: relative;
@ -102,19 +102,19 @@
width: 100%;
}
.content_block_one .content-box h6{
/* .content_block_one .content-box h6{
display: block;
font-size: 16px;
line-height: 26px;
font-weight: 500;
margin-bottom: 30px;
}
} */
/* .content_block_one .content-box p{
margin-bottom: 30px;
} */
.about-section .pattern-layer .pattern-1{
/* .about-section .pattern-layer .pattern-1{
position: absolute;
left: 100px;
top: 164px;
@ -157,7 +157,7 @@
width: 105px;
height: 126px;
background-repeat: no-repeat;
}
} */
/** about-style-two **/
@ -203,7 +203,7 @@
background: #ffe6e6;
}
.content_block_one .content-box .lower-box{
/* .content_block_one .content-box .lower-box{
position: relative;
display: flex;
align-items: center;
@ -266,7 +266,7 @@
.content_block_one .content-box .lower-box .author-thumb img{
width: 100%;
border-radius: 50%;
}
} */
.about-style-two .pattern-layer .pattern-1{
position: absolute;
@ -294,18 +294,18 @@
background-repeat: no-repeat;
}
.about-style-two .pattern-layer .pattern-4{
/* .about-style-two .pattern-layer .pattern-4{
position: absolute;
top: 0px;
right: 0px;
width: 699px;
height: 341px;
background-repeat: no-repeat;
}
} */
/** about-style-three **/
/*
.about-style-three{
position: relative;
}
@ -313,7 +313,7 @@
.about-style-three .content_block_one .content-box .list-style-one li{
float: none;
width: 100%;
}
} */
.image_block_three .image-box{
position: relative;
@ -340,10 +340,25 @@
border-radius: 20px;
}
/*
@media (max-width: 768px) {
.billing-table table {
font-size: 12px;
line-height: 22px; }
}
@media (max-width: 426px) {
.billing-table table {
font-size: 9px;
line-height: 12px; }
}
.image_block_three .image-box .image-1-ho img{
width: 100%;
border-radius: 20px;
}
} */
.image_block_three .image-box .image-2{
position: absolute;
@ -409,14 +424,14 @@
background-repeat: no-repeat;
}
.image_block_three .image-box .image-shape .shape-3{
/* .image_block_three .image-box .image-shape .shape-3{
position: absolute;
left: -100px;
bottom: 25px;
width: 98px;
height: 27px;
background-repeat: no-repeat;
}
} */
.image_block_three .image-box .image-shape .shape-4{
position: absolute;
@ -435,7 +450,7 @@
height: 126px;
background-repeat: no-repeat;
}
/*
.about-style-three .pattern-layer{
position: absolute;
opacity: 0.8;
@ -444,7 +459,7 @@
width: 699px;
height: 341px;
background-repeat: no-repeat;
}
} */
@ -454,7 +469,7 @@
/** RTL-CSS **/
.rtl .image_block_one .image-box .text-box{
/* .rtl .image_block_one .image-box .text-box{
left: 0px;
}
@ -475,7 +490,7 @@
.rtl .image_block_three .image-box{
margin-right: 0px;
margin-left: 36px;
}
} */

View File

@ -1,7 +1,7 @@
/** appointment-section **/
.appointment-section{
/* .appointment-section{
position: relative;
}
@ -70,7 +70,7 @@
background-size: cover;
background-repeat: no-repeat;
background-position: center;
}
} */
@ -84,7 +84,7 @@
/** RESPONSIVE-CSS **/
@media only screen and (max-width: 1200px){
/* @media only screen and (max-width: 1200px){
.appointment-section .bg-layer{
width: 100%;
@ -114,7 +114,7 @@
@media only screen and (max-width: 499px){
}
} */

View File

@ -1,4 +1,4 @@
.nice-select {
/* .nice-select {
-webkit-tap-highlight-color: transparent;
background-color: #fff;
border-radius: 5px;
@ -111,4 +111,4 @@
display: none; }
.no-csspointerevents .nice-select.open .list {
display: block; }
display: block; } */

View File

@ -1,7 +1,7 @@
/*
* Owl Carousel - Animate Plugin
*/
.owl-carousel .animated {
/* .owl-carousel .animated {
-webkit-animation-duration: 1000ms;
animation-duration: 1000ms;
-webkit-animation-fill-mode: both;
@ -35,31 +35,31 @@
100% {
opacity: 0;
}
}
} */
/*
* Owl Carousel - Auto Height Plugin
*/
.owl-height {
/* .owl-height {
-webkit-transition: height 500ms ease-in-out;
-moz-transition: height 500ms ease-in-out;
-ms-transition: height 500ms ease-in-out;
-o-transition: height 500ms ease-in-out;
transition: height 500ms ease-in-out;
}
} */
/*
* Core Owl Carousel CSS File
*/
.owl-carousel {
display: ;
/* display: ; */
width: 100%;
-webkit-tap-highlight-color: transparent;
/* position relative and z-index fix webkit rendering fonts issue */
position: relative;
z-index: 1;
}
.owl-carousel .owl-stage {
/* .owl-carousel .owl-stage {
position: relative;
-ms-touch-action: pan-Y;
}
@ -74,7 +74,6 @@
.owl-carousel .owl-stage-outer {
position: relative;
overflow: hidden;
/* fix for flashing background */
-webkit-transform: translate3d(0px, 0px, 0px);
}
.owl-carousel .owl-controls .owl-nav .owl-prev,
@ -138,14 +137,10 @@
float: right;
}
/* No Js */
.no-js .owl-carousel {
display: block;
}
/*
* Owl Carousel - Lazy Load Plugin
*/
.owl-carousel .owl-item .owl-lazy {
opacity: 0;
-webkit-transition: opacity 400ms ease;
@ -158,9 +153,7 @@
transform-style: preserve-3d;
}
/*
* Owl Carousel - Video Plugin
*/
.owl-carousel .owl-video-wrapper {
position: relative;
height: 100%;
@ -249,4 +242,4 @@
}
.owl-theme .owl-dots .owl-dot.active span {
background: none repeat scroll 0 0 #cda274;
}
} */

View File

@ -1,13 +1,13 @@
.rtl {
/* .rtl {
direction: rtl;
}
} */
.ltr {
direction: ltr;
}
.rtl .switcher{
/* .rtl .switcher{
right: 60px;
left: inherit;
}
@ -134,7 +134,7 @@
.rtl .progress-box .count-text{
right: inherit;
left: 0px;
}
} */

View File

@ -492,6 +492,11 @@
color: #bc0000 !important;
}
.theme-btn.btn-one-new-raw {
background: #fff !important;
color: #bc0000 !important;
}
.theme-btn.btn-two {
background: var(--secondary-color);
}
@ -1172,6 +1177,12 @@
color: #fff;
}
.rating li i {
color: #FFDF00;
/* gold/yellow */
}
@ -3688,28 +3699,6 @@
}
}
.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);
@ -3736,11 +3725,20 @@
}
}
@media(max-width:1000px) {
@media(max-width:1000px) {
.main-menu .navigation>li {
margin: 0px 10px !important;
}
}
.color-white{
color: #fff !important;
.color-white {
color: #fff !important;
}
.pagination-wrapper .pagination li a img {
transition: filter 0.3s ease;
}
.pagination-wrapper .pagination li a:hover img {
filter: brightness(0) invert(1);
}

View File

@ -2,7 +2,7 @@
/*=============== Color-Layout =============*/
.switcher .switch_btn button {
/* .switcher .switch_btn button {
color: #fff;
width: 40px;
height: 40px;
@ -75,12 +75,12 @@
.switcher #styleOptions li a.orange-color {
background: var(--orange-color);
}
*/
/*=============== Boxed-Layout =============*/
.body_switcher .body_switch_btn button {
/* .body_switcher .body_switch_btn button {
width:50px;
height:50px;
line-height: 50px;
@ -167,4 +167,4 @@
background-repeat: repeat-x;
background-position: center;
overflow-x:hidden;
}
} */

View File

@ -10,7 +10,7 @@
*/
#ptTimeSelectCntr {
/* #ptTimeSelectCntr {
display: none;
font-size: 12px;
margin-left: 0;
@ -76,13 +76,13 @@
}
#ptTimeSelectCntr .ptTimeSelectRightPane.ui-widget-content {
border: none;
}
} */
/* content style and hover style */
#ptTimeSelectCntr .ptTimeSelectHrCntr a,
/* #ptTimeSelectCntr .ptTimeSelectHrCntr a,
#ptTimeSelectCntr .ptTimeSelectMinCntr a {
display: block;
float: left;
@ -97,20 +97,20 @@
#ptTimeSelectCntr .ptTimeSelectMinCntr a:hover{
background: #43c3ea !important;
border-color: #43c3ea !important;
}
} */
/* Hour min text style */
#ptTimeSelectCntr .ptTimeSelectTimeLabelsCntr {
/* #ptTimeSelectCntr .ptTimeSelectTimeLabelsCntr {
color: #252525;
font-size: 13px;
font-weight: 700;
}
} */
/* Cloase button style */
#ptTimeSelectCntr #ptTimeSelectCloseCntr a {
/* #ptTimeSelectCntr #ptTimeSelectCloseCntr a {
border-radius: 30%;
display: block;
height: 25px !important;
@ -123,7 +123,7 @@
}
/* am pm content style, hover bg */
#ptTimeSelectCntr .ui-state-default {
/* #ptTimeSelectCntr .ui-state-default {
background: #fff !important;
border: 1px solid #eaeaea !important;
border-radius: 0;
@ -141,11 +141,11 @@
#ptTimeSelectCntr .ui-state-default:hover{
background: #43c3ea !important;
border-color: #43c3ea !important;
}
} */
/* For time set button css */
#ptTimeSelectCntr #ptTimeSelectSetButton {
/* #ptTimeSelectCntr #ptTimeSelectSetButton {
padding: 0 15px 5px 0;
}
#ptTimeSelectSetButton .ui-state-hover{
@ -178,7 +178,7 @@
}
#ptTimeSelectCntr #ptTimeSelectSetButton a:hover{
background: #43c3ea !important;
}
} */

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 MiB

After

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 645 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 744 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 652 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,151 +0,0 @@
/*
* jQuery.appear
* https://github.com/bas2k/jquery.appear/
* http://code.google.com/p/jquery-appear/
* http://bas2k.ru/
*
* Copyright (c) 2009 Michael Hixson
* Copyright (c) 2012-2014 Alexander Brovikov
* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
*/
(function($) {
$.fn.appear = function(fn, options) {
var settings = $.extend({
//arbitrary data to pass to fn
data: undefined,
//call fn only on the first appear?
one: true,
// X & Y accuracy
accX: 0,
accY: 0
}, options);
return this.each(function() {
var t = $(this);
//whether the element is currently visible
t.appeared = false;
if (!fn) {
//trigger the custom event
t.trigger('appear', settings.data);
return;
}
var w = $(window);
//fires the appear event when appropriate
var check = function() {
//is the element hidden?
if (!t.is(':visible')) {
//it became hidden
t.appeared = false;
return;
}
//is the element inside the visible window?
var a = w.scrollLeft();
var b = w.scrollTop();
var o = t.offset();
var x = o.left;
var y = o.top;
var ax = settings.accX;
var ay = settings.accY;
var th = t.height();
var wh = w.height();
var tw = t.width();
var ww = w.width();
if (y + th + ay >= b &&
y <= b + wh + ay &&
x + tw + ax >= a &&
x <= a + ww + ax) {
//trigger the custom event
if (!t.appeared) t.trigger('appear', settings.data);
} else {
//it scrolled out of view
t.appeared = false;
}
};
//create a modified fn with some additional logic
var modifiedFn = function() {
//mark the element as visible
t.appeared = true;
//is this supposed to happen only once?
if (settings.one) {
//remove the check
w.unbind('scroll', check);
var i = $.inArray(check, $.fn.appear.checks);
if (i >= 0) $.fn.appear.checks.splice(i, 1);
}
//trigger the original fn
fn.apply(this, arguments);
};
//bind the modified fn to the element
if (settings.one) t.one('appear', settings.data, modifiedFn);
else t.bind('appear', settings.data, modifiedFn);
//check whenever the window scrolls
w.scroll(check);
//check whenever the dom changes
$.fn.appear.checks.push(check);
//check now
(check)();
});
};
//keep a queue of appearance checks
$.extend($.fn.appear, {
checks: [],
timeout: null,
//process the queue
checkAll: function() {
var length = $.fn.appear.checks.length;
if (length > 0) while (length--) ($.fn.appear.checks[length])();
},
//check the queue asynchronously
run: function() {
if ($.fn.appear.timeout) clearTimeout($.fn.appear.timeout);
$.fn.appear.timeout = setTimeout($.fn.appear.checkAll, 20);
}
});
//run checks when these methods are called
$.each(['append', 'prepend', 'after', 'before', 'attr',
'removeAttr', 'addClass', 'removeClass', 'toggleClass',
'remove', 'css', 'show', 'hide'], function(i, n) {
var old = $.fn[n];
if (old) {
$.fn[n] = function() {
var r = old.apply(this, arguments);
$.fn.appear.run();
return r;
}
}
});
})(jQuery);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
(function(e){var t,n={hasPreview:true,defaultThemeId:"jssDefault",fullPath:"css/",cookie:{expires:30,isManagingLoad:true}},r="jss_selected",i={};i={getItem:function(e){if(!e){return null}return decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*"+encodeURIComponent(e).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*([^;]*).*$)|^.*$"),"$1"))||null},setItem:function(e,t,n,r,i,s){if(!e||/^(?:expires|max\-age|path|domain|secure)$/i.test(e)){return false}var o="";if(n){switch(n.constructor){case Number:o=n===Infinity?"; expires=Fri, 31 Dec 9999 23:59:59 GMT":"; max-age="+n;break;case String:o="; expires="+n;break;case Date:o="; expires="+n.toUTCString();break}}document.cookie=encodeURIComponent(e)+"="+encodeURIComponent(t)+o+(i?"; domain="+i:"")+(r?"; path="+r:"")+(s?"; secure":"");return true},removeItem:function(e,t,n){if(!this.hasItem(e)){return false}document.cookie=encodeURIComponent(e)+"=; expires=Thu, 01 Jan 1970 00:00:00 GMT"+(n?"; domain="+n:"")+(t?"; path="+t:"");return true},hasItem:function(e){if(!e){return false}return(new RegExp("(?:^|;\\s*)"+encodeURIComponent(e).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=")).test(document.cookie)},keys:function(){var e=document.cookie.replace(/((?:^|\s*;)[^\=]+)(?=;|$)|^\s*|\s*(?:\=[^;]*)?(?:\1|$)/g,"").split(/\s*(?:\=[^;]*)?;\s*/);for(var t=e.length,n=0;n<t;n++){e[n]=decodeURIComponent(e[n])}return e}};t=function(e,t){return this.init(e,t)};t.prototype={$root:null,config:{},$themeCss:null,defaultTheme:null,init:function(e,t){this.$root=e;this.config=t?t:{};this.setDefaultTheme();if(this.defaultTheme){if(this.config.cookie){this.checkCookie()}if(this.config.hasPreview){this.addHoverEvents()}this.addClickEvents()}else{this.$root.addClass("jssError error level0")}},setDefaultTheme:function(){this.$themeCss=e("link[id="+this.config.defaultThemeId+"]");if(this.$themeCss.length){this.defaultTheme=this.$themeCss.attr("href")}},resetStyle:function(){this.updateStyle(this.defaultTheme)},updateStyle:function(e){this.$themeCss.attr("href",e)},getFullAssetPath:function(e){return this.config.fullPath+e+".css"},checkCookie:function(){var e;if(this.config.cookie&&this.config.cookie.isManagingLoad){e=i.getItem(r);if(e){newStyle=this.getFullAssetPath(e);this.updateStyle(newStyle);this.defaultTheme=newStyle}}},addHoverEvents:function(){var t=this;this.$root.find("a").hover(function(){var n=e(this).data("theme"),r=t.getFullAssetPath(n);t.updateStyle(r)},function(){t.resetStyle()})},addClickEvents:function(){var t=this;this.$root.find("a").click(function(){var n=e(this).data("theme"),s=t.getFullAssetPath(n);t.updateStyle(s);t.defaultTheme=s;if(t.config.cookie){i.setItem(r,n,t.config.cookie.expires)}})}};e.fn.styleSwitcher=function(r){return new t(this,e.extend(true,n,r))}})(jQuery)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,4 +0,0 @@
/* jQuery Nice Select - v1.0
https://github.com/hernansartorio/jquery-nice-select
Made by Hernán Sartorio */
!function(e){e.fn.niceSelect=function(t){function s(t){t.after(e("<div></div>").addClass("nice-select").addClass(t.attr("class")||"").addClass(t.attr("disabled")?"disabled":"").attr("tabindex",t.attr("disabled")?null:"0").html('<span class="current"></span><ul class="list"></ul>'));var s=t.next(),n=t.find("option"),i=t.find("option:selected");s.find(".current").html(i.data("display")||i.text()),n.each(function(t){var n=e(this),i=n.data("display");s.find("ul").append(e("<li></li>").attr("data-value",n.val()).attr("data-display",i||null).addClass("option"+(n.is(":selected")?" selected":"")+(n.is(":disabled")?" disabled":"")).html(n.text()))})}if("string"==typeof t)return"update"==t?this.each(function(){var t=e(this),n=e(this).next(".nice-select"),i=n.hasClass("open");n.length&&(n.remove(),s(t),i&&t.next().trigger("click"))}):"destroy"==t?(this.each(function(){var t=e(this),s=e(this).next(".nice-select");s.length&&(s.remove(),t.css("display",""))}),0==e(".nice-select").length&&e(document).off(".nice_select")):console.log('Method "'+t+'" does not exist.'),this;this.hide(),this.each(function(){var t=e(this);t.next().hasClass("nice-select")||s(t)}),e(document).off(".nice_select"),e(document).on("click.nice_select",".nice-select",function(t){var s=e(this);e(".nice-select").not(s).removeClass("open"),s.toggleClass("open"),s.hasClass("open")?(s.find(".option"),s.find(".focus").removeClass("focus"),s.find(".selected").addClass("focus")):s.focus()}),e(document).on("click.nice_select",function(t){0===e(t.target).closest(".nice-select").length&&e(".nice-select").removeClass("open").find(".option")}),e(document).on("click.nice_select",".nice-select .option:not(.disabled)",function(t){var s=e(this),n=s.closest(".nice-select");n.find(".selected").removeClass("selected"),s.addClass("selected");var i=s.data("display")||s.text();n.find(".current").text(i),n.prev("select").val(s.data("value")).trigger("change")}),e(document).on("keydown.nice_select",".nice-select",function(t){var s=e(this),n=e(s.find(".focus")||s.find(".list .option.selected"));if(32==t.keyCode||13==t.keyCode)return s.hasClass("open")?n.trigger("click"):s.trigger("click"),!1;if(40==t.keyCode){if(s.hasClass("open")){var i=n.nextAll(".option:not(.disabled)").first();i.length>0&&(s.find(".focus").removeClass("focus"),i.addClass("focus"))}else s.trigger("click");return!1}if(38==t.keyCode){if(s.hasClass("open")){var l=n.prevAll(".option:not(.disabled)").first();l.length>0&&(s.find(".focus").removeClass("focus"),l.addClass("focus"))}else s.trigger("click");return!1}if(27==t.keyCode)s.hasClass("open")&&s.trigger("click");else if(9==t.keyCode&&s.hasClass("open"))return!1});var n=document.createElement("a").style;return n.cssText="pointer-events:auto","auto"!==n.pointerEvents&&e("html").addClass("no-csspointerevents"),this}}(jQuery);

View File

@ -1,138 +0,0 @@
"use strict"; // Start of use strict
// 7. google map
function gMap () {
if ($('.google-map').length) {
$('.google-map').each(function () {
// getting options from html
var mapName = $(this).attr('id');
var mapLat = $(this).data('map-lat');
var mapLng = $(this).data('map-lng');
var iconPath = $(this).data('icon-path');
var mapZoom = $(this).data('map-zoom');
var mapTitle = $(this).data('map-title');
// defined default style
var styles = [
{
"featureType": "administrative",
"elementType": "labels.text.fill",
"stylers": [
{
"color": "#444444"
}
]
},
{
"featureType": "landscape",
"elementType": "all",
"stylers": [
{
"color": "#000"
}
]
},
{
"featureType": "poi",
"elementType": "all",
"stylers": [
{
"visibility": "off"
}
]
},
{
"featureType": "road",
"elementType": "all",
"stylers": [
{
"saturation": -100
},
{
"lightness": 45
}
]
},
{
"featureType": "road.highway",
"elementType": "all",
"stylers": [
{
"visibility": "simplified"
}
]
},
{
"featureType": "road.arterial",
"elementType": "labels.icon",
"stylers": [
{
"visibility": "off"
}
]
},
{
"featureType": "transit",
"elementType": "all",
"stylers": [
{
"visibility": "off"
}
]
},
{
"featureType": "water",
"elementType": "all",
"stylers": [
{
"color": "#f1f1f1"
},
{
"visibility": "on"
}
]
}
];
// if zoom not defined the zoom value will be 15;
if (!mapZoom) {
var mapZoom = 11;
};
// init map
var map;
map = new GMaps({
div: '#'+mapName,
scrollwheel: false,
lat: mapLat,
lng: mapLng,
styles: styles,
zoom: mapZoom
});
// if icon path setted then show marker
if(iconPath) {
map.addMarker({
icon: iconPath,
lat: mapLat,
lng: mapLng,
title: mapTitle
});
map.addMarker({
icon: iconPath,
lat: 40.700843, //you can
lng: 40.700843,
title: "New York"
});
}
});
};
}
// instance of fuction while Document ready event
jQuery(document).on('ready', function () {
(function ($) {
gMap();
})(jQuery);
});

View File

@ -1 +0,0 @@
"use strict";jQuery,jQuery(document).ready(function(o){0<o(".offset-side-bar").length&&o(".offset-side-bar").on("click",function(e){e.preventDefault(),e.stopPropagation(),o(".cart-group").addClass("isActive")}),0<o(".close-side-widget").length&&o(".close-side-widget").on("click",function(e){e.preventDefault(),o(".cart-group").removeClass("isActive")}),0<o(".navSidebar-button").length&&o(".navSidebar-button").on("click",function(e){e.preventDefault(),e.stopPropagation(),o(".info-group").addClass("isActive")}),0<o(".close-side-widget").length&&o(".close-side-widget").on("click",function(e){e.preventDefault(),o(".info-group").removeClass("isActive")}),o("body").on("click",function(e){o(".info-group").removeClass("isActive"),o(".cart-group").removeClass("isActive")}),o(".xs-sidebar-widget").on("click",function(e){e.stopPropagation()}),0<o(".xs-modal-popup").length&&o(".xs-modal-popup").magnificPopup({type:"inline",fixedContentPos:!1,fixedBgPos:!0,overflowY:"auto",closeBtnInside:!1,callbacks:{beforeOpen:function(){this.st.mainClass="my-mfp-slide-bottom xs-promo-popup"}}})});

File diff suppressed because it is too large Load Diff

View File

@ -1,223 +0,0 @@
/*
* jQuery One Page Nav Plugin
* http://github.com/davist11/jQuery-One-Page-Nav
*
* Copyright (c) 2010 Trevor Davis (http://trevordavis.net)
* Dual licensed under the MIT and GPL licenses.
* Uses the same license as jQuery, see:
* http://jquery.org/license
*
* @version 3.0.0
*
* Example usage:
* $('#nav').onePageNav({
* currentClass: 'current',
* changeHash: false,
* scrollSpeed: 750
* });
*/
(function($, window, document, undefined){
// our plugin constructor
var OnePageNav = function(elem, options){
this.elem = elem;
this.$elem = $(elem);
this.options = options;
this.metadata = this.$elem.data('plugin-options');
this.$win = $(window);
this.sections = {};
this.didScroll = false;
this.$doc = $(document);
this.docHeight = this.$doc.height();
};
// the plugin prototype
OnePageNav.prototype = {
defaults: {
navItems: 'a',
currentClass: 'current',
changeHash: false,
easing: 'swing',
filter: '',
scrollSpeed: 50,
scrollThreshold: 0.5,
begin: false,
end: false,
scrollChange: false
},
init: function() {
// Introduce defaults that can be extended either
// globally or using an object literal.
this.config = $.extend({}, this.defaults, this.options, this.metadata);
this.$nav = this.$elem.find(this.config.navItems);
//Filter any links out of the nav
if(this.config.filter !== '') {
this.$nav = this.$nav.filter(this.config.filter);
}
//Handle clicks on the nav
this.$nav.on('click.onePageNav', $.proxy(this.handleClick, this));
//Get the section positions
this.getPositions();
//Handle scroll changes
this.bindInterval();
//Update the positions on resize too
this.$win.on('resize.onePageNav', $.proxy(this.getPositions, this));
return this;
},
adjustNav: function(self, $parent) {
self.$elem.find('.' + self.config.currentClass).removeClass(self.config.currentClass);
$parent.addClass(self.config.currentClass);
},
bindInterval: function() {
var self = this;
var docHeight;
self.$win.on('scroll.onePageNav', function() {
self.didScroll = true;
});
self.t = setInterval(function() {
docHeight = self.$doc.height();
//If it was scrolled
if(self.didScroll) {
self.didScroll = false;
self.scrollChange();
}
//If the document height changes
if(docHeight !== self.docHeight) {
self.docHeight = docHeight;
self.getPositions();
}
}, 250);
},
getHash: function($link) {
return $link.attr('href').split('#')[1];
},
getPositions: function() {
var self = this;
var linkHref;
var topPos;
var $target;
self.$nav.each(function() {
linkHref = self.getHash($(this));
$target = $('#' + linkHref);
if($target.length) {
topPos = $target.offset().top;
self.sections[linkHref] = Math.round(topPos);
}
});
},
getSection: function(windowPos) {
var returnValue = null;
var windowHeight = Math.round(this.$win.height() * this.config.scrollThreshold);
for(var section in this.sections) {
if((this.sections[section] - windowHeight) < windowPos) {
returnValue = section;
}
}
return returnValue;
},
handleClick: function(e) {
var self = this;
var $link = $(e.currentTarget);
var $parent = $link.parent();
var newLoc = '#' + self.getHash($link);
if(!$parent.hasClass(self.config.currentClass)) {
//Start callback
if(self.config.begin) {
self.config.begin();
}
//Change the highlighted nav item
self.adjustNav(self, $parent);
//Removing the auto-adjust on scroll
self.unbindInterval();
//Scroll to the correct position
self.scrollTo(newLoc, function() {
//Do we need to change the hash?
if(self.config.changeHash) {
window.location.hash = newLoc;
}
//Add the auto-adjust on scroll back in
self.bindInterval();
//End callback
if(self.config.end) {
self.config.end();
}
});
}
e.preventDefault();
},
scrollChange: function() {
var windowTop = this.$win.scrollTop();
var position = this.getSection(windowTop);
var $parent;
//If the position is set
if(position !== null) {
$parent = this.$elem.find('a[href$="#' + position + '"]').parent();
//If it's not already the current section
if(!$parent.hasClass(this.config.currentClass)) {
//Change the highlighted nav item
this.adjustNav(this, $parent);
//If there is a scrollChange callback
if(this.config.scrollChange) {
this.config.scrollChange($parent);
}
}
}
},
scrollTo: function(target, callback) {
var offset = $(target).offset().top-70;
$('html, body').animate({
scrollTop: offset
}, this.config.scrollSpeed, this.config.easing, callback);
},
unbindInterval: function() {
clearInterval(this.t);
this.$win.unbind('scroll.onePageNav');
}
};
OnePageNav.defaults = OnePageNav.prototype.defaults;
$.fn.onePageNav = function(options) {
return this.each(function() {
new OnePageNav(this, options).init();
});
};
})( jQuery, window , document );

Some files were not shown because too many files have changed in this diff Show More