fix: update routes to avoid conflicts

Remove old `/movement` route and update links to `/movement-workshops`.

#VERCEL_SKIP

Co-authored-by: Jeff Emmett <46964190+Jeff-Emmett@users.noreply.github.com>
This commit is contained in:
v0 2025-10-22 20:44:13 +00:00
parent c7b21b2d4e
commit 76dbb4e7b1
7 changed files with 626 additions and 12 deletions

View File

@ -13,7 +13,7 @@ export default function Footer() {
<p>A boutique wellness sanctuary. One client, one space, one transformative experience at a time.</p>
<div className="rmt-badge-footer">
<Image
src="./images/rmt-certification.png"
src="/images/rmt-certification.png"
alt="Registered Massage Therapist - Professional Hands You Can Trust"
width={200}
height={100}
@ -63,7 +63,7 @@ export default function Footer() {
<Link href="/what-to-expect">What to Expect</Link>
</li>
<li>
<Link href="/movement">Movement Workshops</Link>
<Link href="/movement-workshops">Movement Workshops</Link>
</li>
</ul>
</div>

View File

@ -15,7 +15,7 @@ export default function Navigation() {
<div className="container">
<nav>
<Link href="/" className="logo">
<Image src="./images/logo.jpg" alt="Ebb'nFlow Therapeutics Logo" width={100} height={100} />
<Image src="/images/logo.jpg" alt="Ebb'nFlow Therapeutics Logo" width={100} height={100} />
<span className="logo-text">
Ebb&apos;nFlow <span className="highlight">Therapeutics</span>
</span>

181
app/contact/page.tsx Normal file
View File

@ -0,0 +1,181 @@
import Image from "next/image"
import Navigation from "../components/Navigation"
import Footer from "../components/Footer"
export const metadata = {
title: "Contact Us - Ebb'nFlow Therapeutics",
description:
"Get in touch with Ebb'nFlow Therapeutics. Visit us in downtown St. Catharines or book your appointment online.",
}
export default function Contact() {
return (
<>
<Navigation />
{/* Hero Section */}
<section className="page-hero">
<div className="container">
<span className="badge">Get in Touch</span>
<h1>Contact Us</h1>
<p className="hero-subtitle">&quot;A place to unwind, a place to heal, a place to grow&quot;</p>
<p className="hero-description">
Ready to experience boutique wellness? Let&apos;s chat about creating your personalized sanctuary for
healing and self-care.
</p>
</div>
</section>
{/* Clinic Images */}
<section className="clinic-images">
<div className="container">
<div className="image-grid">
<div className="image-card">
<Image
src="/images/clinic-exterior.jpg"
alt="Ebb'nFlow Therapeutics clinic exterior"
width={500}
height={250}
style={{ objectFit: "cover", borderRadius: "1rem" }}
/>
<div className="image-caption">Our Welcoming Exterior</div>
</div>
<div className="image-card">
<Image
src="/images/yellow-door.jpg"
alt="Distinctive yellow entrance door"
width={500}
height={250}
style={{ objectFit: "cover", borderRadius: "1rem" }}
/>
<div className="image-caption">Find Our Yellow Door</div>
</div>
</div>
</div>
</section>
{/* Contact Section */}
<section className="contact-section">
<div className="container">
<div className="contact-grid-simple">
{/* Email Us Card */}
<div className="email-card">
<div className="icon-header-large">
<span className="large-icon"></span>
<h2>Email Us</h2>
</div>
<p className="email-description">
Have questions or want to book an appointment? Send us an email and we&apos;ll get back to you within 24
hours.
</p>
<a href="mailto:info@ebbnflowtherapeutics.com" className="email-link">
info@ebbnflowtherapeutics.com
</a>
</div>
{/* Contact Info */}
<div className="contact-info-wrapper">
<div className="info-card">
<h3>Visit Our Clinic</h3>
<div className="contact-item">
<span className="icon">📍</span>
<div>
<p className="item-title">Address</p>
<p>
59 Wellington Street
<br />
St. Catharines, ON L2R 5P9
</p>
</div>
</div>
<div className="contact-item">
<span className="icon">📞</span>
<div>
<p className="item-title">Phone</p>
<p>
<a href="tel:2899693219" className="phone-link">
(289) 969-3219
</a>
</p>
</div>
</div>
<div className="contact-item">
<span className="icon"></span>
<div>
<p className="item-title">Email</p>
<p>
<a href="mailto:info@ebbnflowtherapeutics.com" className="email-link-small">
info@ebbnflowtherapeutics.com
</a>
</p>
</div>
</div>
</div>
<div className="info-card">
<h3>Office Hours</h3>
<div className="hours-list">
<div className="hours-item">
<span>Monday - Thursday</span>
<span>9:00 AM - 7:00 PM</span>
</div>
<div className="hours-item">
<span>Friday</span>
<span>9:00 AM - 5:00 PM</span>
</div>
<div className="hours-item">
<span>Saturday</span>
<span>10:00 AM - 4:00 PM</span>
</div>
<div className="hours-item">
<span>Sunday</span>
<span>Closed</span>
</div>
</div>
</div>
<div className="info-card emergency">
<div className="contact-item">
<span className="icon"></span>
<div>
<p className="item-title">Emergency Contact</p>
<p className="small">
For urgent matters outside of business hours, please call our emergency line at (289) 969-3220 or
visit your nearest emergency room.
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
{/* CTA Section */}
<section className="cta">
<div className="container">
<h2>Ready for Your Personal Wellness Experience?</h2>
<p>
Book your private session in our cozy, boutique space. Experience what it means to have dedicated time and
space just for your wellness journey.
</p>
<div className="cta-buttons">
<a
href="https://ebbnflowmassage.clinicsense.com"
target="_blank"
rel="noopener noreferrer"
className="btn btn-primary"
>
Book Appointment
</a>
<a href="tel:2899693219" className="btn btn-primary">
Call for Personal Consultation
</a>
</div>
</div>
</section>
<Footer />
</>
)
}

View File

@ -0,0 +1,212 @@
import Image from "next/image"
import Link from "next/link"
import Navigation from "../components/Navigation"
import Footer from "../components/Footer"
export const metadata = {
title: "Movement & Mobility Workshops - Ebb'nFlow Therapeutics",
description:
"Discover movement education and mobility training. Fun, liberating, and educational workshops for adults and seniors.",
}
export default function MovementWorkshops() {
return (
<>
<Navigation />
{/* Hero Section */}
<section className="page-hero">
<div className="container">
<span className="badge">Movement Education</span>
<h1>Movement & Mobility</h1>
<p className="hero-description">
Free form/improvisational movement and mobility training as a form of personal and artistic expression and
wellness is what ultimately drives Dahlia to continue to learn about our amazing bodies and how we can all
move more gracefully as we age.
</p>
</div>
</section>
{/* Movement Options */}
<section className="content-section">
<div className="container">
<h2 className="section-title">Movement Education Options</h2>
<div className="info-card large">
<p>
Remedial exercise aka &quot;Rem-Ex&quot; instruction involves teaching a few targeted strength, stretch or
mobility exercises that are aimed at furthering the benefits of massage therapy long term, which is an
intrinsic component of a comprehensive treatment.
</p>
<p>
Although this often comes highly recommended, not everyone is interested in learning a new exercise
immediately after having a massage. This makes a lot of sense, and yet Dahlia will still do her best to
encourage you, within reason.
</p>
<p>
<strong>That said, clients have a few options:</strong>
</p>
</div>
<div className="three-col-grid">
<div className="numbered-card">
<div className="number">1</div>
<h3>Personal Choice</h3>
<p>
Clients may request or deny remedial exercise instruction as part of treatment, based on their personal
goals.
</p>
</div>
<div className="numbered-card">
<div className="number">2</div>
<h3>Extended Sessions</h3>
<p>
Clients can request to allot up to 50% of their treatment time (15 to 45 minutes) for Rem-Ex instruction
before or after their massage.
</p>
</div>
<div className="numbered-card">
<div className="number">3</div>
<h3>Group Workshops</h3>
<p>
Clients can also sign up for upcoming movement workshops for a more comprehensive group learning
experience.
</p>
</div>
</div>
</div>
</section>
{/* Origin Story */}
<section className="content-section bg-alt">
<div className="container">
<h2 className="section-title">The Ebb&apos;nFlow Origin Story</h2>
<div className="info-card large">
<p>
The original concept of Ebb&apos;nFlow Massage (now Ebb&apos;nFlow Therapeutics) was born out of
Dahlia&apos;s initial work as a yoga instructor, before she became a massage therapist. Dahlia taught
private, one-on-one sessions as well as classes around the GTA from 2004-2009.
</p>
<p>
She recognized the need to meet students where they were instead of insisting that they push through their
pain and fatigue similarly to the approach of a personal trainer. Some days they would arrive in a lot of
pain and would need a gentler approach such as more periods of rest or &quot;ebb&quot; between exercises
or hands on work such as massage at the end of their sessions.
</p>
<p>
Dahlia&apos;s natural talent for massage as a component of her sessions enabled students to show up more
consistently for practice instead of skipping practice out of concern that they would not be able to make
it through a session.
</p>
<p className="emphasis">
Since consistency is key to success, a more fluid and compassionate approach to teaching one-on-one was
born and clients were given permission to move as they needed through periods of &quot;ebb&quot; or
&quot;flow&quot; with grace and freedom from the need to over achieve.
</p>
</div>
</div>
</section>
{/* Workshops */}
<section className="content-section">
<div className="container">
<h2 className="section-title">Movement & Mobility Workshops</h2>
<div className="two-col-grid">
<div className="workshop-content">
<div className="info-card">
<div className="icon-header">
<span className="large-icon">💚</span>
<h3>Fun, Liberating & Educational</h3>
</div>
<p>
Dahlia&apos;s movement and mobility workshops are aimed towards adults and seniors and offer
opportunities to gain greater strength, flexibility, mobility and balance as well as to embrace the
discovery of one&apos;s own unique expression through movement and dance.
</p>
</div>
<div className="info-card highlight-card">
<h3>Workshop Benefits</h3>
<ul className="check-list">
<li>Greater strength and flexibility</li>
<li>Improved mobility and balance</li>
<li>Unique personal expression through movement</li>
<li>Discovery of dance and creative movement</li>
</ul>
</div>
</div>
<div className="content-image">
<Image
src="/images/dahlia-portrait.jpg"
alt="Dahlia Steinberg - Movement and wellness educator"
width={500}
height={600}
style={{ objectFit: "cover", borderRadius: "1rem" }}
/>
<div className="image-caption">Dahlia - Your Movement Guide</div>
</div>
</div>
</div>
</section>
{/* Continuing the Dance */}
<section className="content-section bg-alt">
<div className="container">
<div className="centered-content">
<h2>Continuing the Dance</h2>
<p>
Free form/improvisational movement and mobility training as a form of personal and artistic expression and
wellness is what ultimately drives Dahlia to continue to learn about our amazing bodies and how we can all
move more gracefully as we age.
</p>
<p>
She continues to dance for her own enjoyment and can be found performing or choreographing for community
arts-based projects when opportunities arise.
</p>
<p>
<strong>
Dahlia is working towards offering more movement and mobility classes and workshops in the future so
please stay tuned for updates by checking the Movement section of this website.
</strong>
</p>
</div>
</div>
</section>
{/* CTA Section */}
<section className="cta">
<div className="container">
<h2>Ready to Move with More Freedom?</h2>
<p>
If long lasting improvement is your goal than you may want to consider how Dahlia&apos;s skills as a teacher
could benefit you through either one-on-one instruction sessions that can be combined with massage therapy
or group workshops.
</p>
<div className="cta-buttons">
<a
href="https://ebbnflowmassage.clinicsense.com"
target="_blank"
rel="noopener noreferrer"
className="btn btn-primary"
>
Book Appointment
</a>
<Link href="/contact" className="btn btn-primary">
Ask About Workshops
</Link>
</div>
</div>
</section>
<Footer />
</>
)
}

View File

@ -37,7 +37,7 @@ export default function Home() {
</div>
<div className="hero-image">
<Image
src="./images/reception-area.jpg"
src="/images/reception-area.jpg"
alt="Welcoming reception area at Ebb'nFlow Therapeutics"
width={600}
height={500}
@ -80,7 +80,7 @@ export default function Home() {
{/* Massage Therapy */}
<div className="service-card">
<Image
src="./images/treatment-room.jpg"
src="/images/treatment-room.jpg"
alt="Professional massage therapy treatment room"
width={400}
height={200}
@ -89,11 +89,11 @@ export default function Home() {
<div className="service-content">
<h3>Massage Therapy Treatment</h3>
<p>
General Swedish Massage combined with specialized techniques including Myofascial Deep Tissue, all
tailored to your specific needs and wellness goals.
General Swedish Massage combined with specialized techniques including Deep Tissue and Myofascial
Release, all tailored to your specific needs and wellness goals.
</p>
<button className="btn btn-outline" data-modal="massage">
Learn More About Massage
Learn More About Massage Therapy
</button>
<a
href="https://ebbnflowmassage.clinicsense.com"
@ -109,7 +109,7 @@ export default function Home() {
{/* Laser Therapy */}
<div className="service-card">
<Image
src="./images/bioflex-laser.png"
src="/images/bioflex-laser.png"
alt="BioFlex Laser Therapy"
width={400}
height={200}
@ -119,7 +119,7 @@ export default function Home() {
<h3>Laser Therapy Treatment</h3>
<p>
Laser therapy provides accelerated healing for musculoskeletal injury, arthritis, and nerve injury.
Stand alone or combine with Massage Therapy.
Stand alone or recommended to combine with Massage Therapy.
</p>
<button className="btn btn-outline" data-modal="laser">
Learn More About Laser Therapy
@ -138,7 +138,7 @@ export default function Home() {
{/* Movement Education */}
<div className="service-card">
<Image
src="./images/movement-class.png"
src="/images/movement-class.png"
alt="Movement education class"
width={400}
height={200}
@ -150,7 +150,7 @@ export default function Home() {
Remedial exercise instruction involves teaching targeted strength, stretch or mobility exercises that
further the benefits of massage therapy long term.
</p>
<Link href="/movement" className="btn btn-outline">
<Link href="/movement-workshops" className="btn btn-outline">
See Movement Workshops
</Link>
<a

220
app/what-to-expect/page.tsx Normal file
View File

@ -0,0 +1,220 @@
import Image from "next/image"
import Link from "next/link"
import Navigation from "../components/Navigation"
import Footer from "../components/Footer"
export const metadata = {
title: "What to Expect - Ebb'nFlow Therapeutics",
description:
"Learn what to expect during your first visit to Ebb'nFlow Therapeutics. Comprehensive assessment and personalized treatment.",
}
export default function WhatToExpect() {
return (
<>
<Navigation />
{/* Hero Section */}
<section className="page-hero">
<div className="container">
<span className="badge">Your First Visit</span>
<h1>What to Expect</h1>
<p className="hero-description">
Once you have successfully booked your initial appointment, you will receive a confirmation email with a few
forms to fill out ahead of time.
</p>
</div>
</section>
{/* Initial Appointment */}
<section className="content-section">
<div className="container">
<h2 className="section-title">The Initial Appointment</h2>
<div className="two-col-grid">
<div className="info-card">
<div className="icon-header">
<span className="large-icon">📋</span>
<h3>Pre-Appointment Forms</h3>
</div>
<ul className="check-list">
<li>Contact Information</li>
<li>Reason for Visit</li>
<li>Health History</li>
<li>Consent to Policies, Assessment and Treatment</li>
</ul>
</div>
<div className="info-card">
<div className="icon-header">
<span className="large-icon"></span>
<h3>Assessment Process</h3>
</div>
<p>
Your initial appointment begins with an in-person review of forms and an assessment that can range from
simple to more involved, depending on the complexity or severity of your condition.
</p>
<p>
This allows your therapist to ascertain whether there are any contraindications or modifications that
may need to be considered for safe and effective treatment.
</p>
</div>
</div>
<div className="info-card large highlight-card">
<h3>First Session Components</h3>
<div className="two-col-list">
<ul className="bullet-list">
<li>Forms review</li>
<li>Intake discussion</li>
<li>Initial assessment</li>
<li>Treatment plan development</li>
</ul>
<ul className="bullet-list">
<li>Treatment of sensitive areas (if indicated)</li>
<li>Diagnostics and referrals</li>
<li>Ongoing assessment planning</li>
<li>Treatment plan maintenance</li>
</ul>
</div>
</div>
</div>
</section>
{/* Assessment Details */}
<section className="content-section bg-alt">
<div className="container">
<h2 className="section-title">Comprehensive Assessment</h2>
<div className="centered-content">
<div className="info-card large">
<p>
The first treatment session requires additional time to go over the forms and perform an initial
assessment that may include postural observations, range of motion testing, and/or neurological and
special orthopaedic testing.
</p>
</div>
<div className="info-card large">
<p>
With numerous tools available to her, Dahlia continuously discerns which techniques may be most
effective and regularly reassesses client responses to ensure that treatments continue to be beneficial.
</p>
</div>
</div>
</div>
</section>
{/* Treatment Experience */}
<section className="content-section">
<div className="container">
<h2 className="section-title">Your Treatment Experience</h2>
<div className="two-col-grid">
<div className="experience-content">
<div className="info-card">
<div className="icon-header">
<span className="large-icon">💚</span>
<h3>Personalized Approach</h3>
</div>
<p>
Dahlia meets clients where they are, and is able to offer either a quiet retreat or a fun, friendly
conversational interaction during treatments. She prioritizes client&apos;s goals, with the utmost
respect for their comfort, time and resources.
</p>
</div>
<div className="info-card">
<h3>Communication & Consent</h3>
<p>
She encourages an atmosphere of open, two-way communication that respects privacy, autonomy and
preferences such as depth of pressure and special consent for the treatment of sensitive areas if
indicated, guided strictly by the principles of ethical practice adhered to by all registrants of the
CMTO.
</p>
</div>
</div>
<div className="experience-visual">
<div className="content-image">
<Image
src="/images/treatment-room.jpg"
alt="Professional treatment room setup"
width={500}
height={400}
style={{ objectFit: "cover", borderRadius: "1rem" }}
/>
<div className="image-caption">Your Private Treatment Space</div>
</div>
</div>
</div>
</div>
</section>
{/* Science and Art */}
<section className="content-section bg-alt">
<div className="container">
<div className="info-card large highlight-card">
<h3>A Science and an Art Form</h3>
<p>
A massage from Dahlia is an experience and often also an education. Her approach is intuitive,
evidence-based and trauma-informed. Her own personal experiences with injury and chronic pain has
instilled a high level of empathy for and understanding of clients&apos; complaints as well as her
insistence on professionalism and excellence of care.
</p>
<p>
There&apos;s always a unique and inspiring playlist in the background. Clients can also request music that
they enjoy, adding to an experience that is tailored just for them. Complimentary aromatherapy is also
available by request.
</p>
</div>
<div className="info-card large">
<h3>Education & Home Care</h3>
<p>
Dahlia is a teacher at heart, so you likely won&apos;t be able to walk away without being encouraged to
learn a stretch or strengthening exercise or about how to incorporate a home care practice into your
routine to enhance the long term effects of treatment between sessions.
</p>
</div>
</div>
</section>
{/* Holistic Treatment */}
<section className="content-section">
<div className="container">
<div className="centered-content">
<h2>Holistic Treatment Approach</h2>
<p className="large-text">
You can expect to have your primary area of concern addressed directly, within a treatment that aims to
treat the body holistically as an interconnected system.
</p>
</div>
</div>
</section>
{/* CTA Section */}
<section className="cta">
<div className="container">
<h2>Ready to Experience Holistic Care?</h2>
<p>Begin your wellness journey with a comprehensive assessment and personalized treatment plan.</p>
<div className="cta-buttons">
<a
href="https://ebbnflowmassage.clinicsense.com"
target="_blank"
rel="noopener noreferrer"
className="btn btn-primary"
>
Book Appointment
</a>
<Link href="/contact" className="btn btn-primary">
Have Questions?
</Link>
</div>
</div>
</section>
<Footer />
</>
)
}

View File

@ -2,6 +2,7 @@ import type { NextConfig } from "next"
const nextConfig: NextConfig = {
output: "export",
basePath: "",
eslint: {
ignoreDuringBuilds: true,
},