Merge version_2 into main #4

Merged
bender merged 2 commits from version_2 into main 2026-03-04 16:39:51 +00:00
2 changed files with 56 additions and 64 deletions

View File

@@ -1,59 +1,27 @@
import type { Metadata } from "next";
import { Halant } from "next/font/google";
import { Inter } from "next/font/google";
import { Source_Sans_3 } from "next/font/google";
import localFont from "next/font/local";
import "./globals.css";
import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
import "./styles/variables.css";
import "./styles/base.css";
const halant = Halant({
variable: "--font-halant", subsets: ["latin"],
weight: ["300", "400", "500", "600", "700"],
});
const inter = Inter({
variable: "--font-inter", subsets: ["latin"],
});
const sourceSans3 = Source_Sans_3({
variable: "--font-source-sans-3", subsets: ["latin"],
});
const geistSans = localFont({
src: "./fonts/GeistVF.woff2", variable: "--font-geist-sans", weight: "100 900"});
const geistMono = localFont({
src: "./fonts/GeistMonoVF.woff2", variable: "--font-geist-mono", weight: "100 900"});
export const metadata: Metadata = {
title: "Luxe Spa | Premium Wellness Experience", description: "Experience luxury redefined. Book seamless spa services with zero friction. Exclusive wellness treatments curated for affluent professionals seeking premium self-care.", keywords: "luxury spa, premium wellness, booking, facial, massage therapy, spa services, wellness retreat", metadataBase: new URL("https://luxespa.com"),
alternates: {
canonical: "https://luxespa.com"
},
openGraph: {
title: "Luxe Spa | Luxury Redefined Effortlessly", description: "Experience premium service with zero friction. Instant booking, curated exclusively for you.", url: "https://luxespa.com", siteName: "Luxe Spa", type: "website", images: [
{
url: "http://img.b2bpic.net/free-photo/spa-concept-with-woman-with-creme-face_23-2147817010.jpg", alt: "Luxury spa experience"
}
]
},
twitter: {
card: "summary_large_image", title: "Luxe Spa | Premium Wellness", description: "Luxury redefined. Book your spa experience instantly.", images: ["http://img.b2bpic.net/free-photo/candle-roses-cozy-interior-with-wide-space-calm-branding_169016-71507.jpg"]
},
robots: {
index: true,
follow: true
}
};
title: "Luxe Spa - Premium Luxury & Wellness", description: "Experience premium service with zero friction. Instant booking, curated exclusively for you. Seamless elegance in every interaction."};
export default function RootLayout({
children,
}: Readonly<{
}: {
children: React.ReactNode;
}>) {
}) {
return (
<html lang="en" suppressHydrationWarning>
<ServiceWrapper>
<body
className={`${halant.variable} ${inter.variable} ${sourceSans3.variable} antialiased`}
>
<Tag />
{children}
<html lang="en">
<body className={`${geistSans.variable} ${geistMono.variable}`}>
{children}
<script
dangerouslySetInnerHTML={{
__html: `
@@ -1421,7 +1389,6 @@ export default function RootLayout({
}}
/>
</body>
</ServiceWrapper>
</html>
);
}

View File

@@ -8,10 +8,15 @@ import FeatureCardMedia from '@/components/sections/feature/FeatureCardMedia';
import TestimonialCardOne from '@/components/sections/testimonial/TestimonialCardOne';
import ContactFaq from '@/components/sections/contact/ContactFaq';
import TeamCardFive from '@/components/sections/team/TeamCardFive';
import FooterCard from '@/components/sections/footer/FooterCard';
import { Sparkles, Crown, Zap, Heart, Calendar, Users, Instagram, Linkedin, Mail } from 'lucide-react';
import FooterBase from '@/components/sections/footer/FooterBase';
import { Sparkles, Crown, Zap, Heart, Calendar, Users, Instagram, Linkedin, Mail, Phone, MessageCircle } from 'lucide-react';
import { useCallback } from 'react';
export default function LandingPage() {
const handleBooking = useCallback(() => {
window.open('https://calendly.com/app/availability/schedules', '_blank');
}, []);
return (
<ThemeProvider
defaultButtonVariant="expand-hover"
@@ -29,14 +34,14 @@ export default function LandingPage() {
<NavbarStyleCentered
brandName="Luxe Spa"
navItems={[
{ name: "Home", id: "home" },
{ name: "Home", id: "/" },
{ name: "About", id: "about" },
{ name: "Services", id: "services" },
{ name: "Team", id: "team" },
{ name: "Testimonials", id: "testimonials" }
]}
button={{
text: "Book Your Experience", href: "booking"
text: "Book Your Experience", onClick: handleBooking
}}
/>
</div>
@@ -62,11 +67,11 @@ export default function LandingPage() {
{ imageSrc: "http://img.b2bpic.net/free-photo/senior-couple-relaxing-with-spa-treatment_53876-15222.jpg?_wi=1", imageAlt: "Professional services" }
]}
buttons={[
{ text: "Book Your Experience", href: "booking" },
{ text: "Book Your Experience", onClick: handleBooking },
{ text: "Learn More", href: "about" }
]}
buttonAnimation="slide-up"
ariaLabel="Hero section - Luxury Spa SPA"
ariaLabel="Hero section - Luxury Spa"
/>
</div>
@@ -78,8 +83,8 @@ export default function LandingPage() {
title="Curated Exclusively for the Discerning. Where Luxury Meets Wellness."
useInvertedBackground={false}
buttons={[
{ text: "Explore Our Philosophy", href: "#services" },
{ text: "Book a Consultation", href: "booking" }
{ text: "Explore Our Philosophy", href: "services" },
{ text: "Book a Consultation", onClick: handleBooking }
]}
/>
</div>
@@ -96,13 +101,13 @@ export default function LandingPage() {
animationType="slide-up"
features={[
{
id: "1", title: "Signature Facial Treatment", description: "Indulge in our signature facial featuring premium Swiss skincare with personalized serums and multi-step rejuvenation protocol.", tag: "90 Minutes", imageSrc: "http://img.b2bpic.net/free-photo/spa-concept-with-woman-with-creme-face_23-2147817003.jpg", buttons: [{ text: "Book Now", href: "booking" }]
id: "1", title: "Signature Facial Treatment", description: "Indulge in our signature facial featuring premium Swiss skincare with personalized serums and multi-step rejuvenation protocol.", tag: "90 Minutes", imageSrc: "http://img.b2bpic.net/free-photo/spa-concept-with-woman-with-creme-face_23-2147817003.jpg", buttons: [{ text: "Book Now", onClick: handleBooking }]
},
{
id: "2", title: "Holistic Massage Therapy", description: "Experience therapeutic massage blending ancient techniques with modern wellness science. Available in Swedish, deep tissue, and hot stone options.", tag: "60-120 Minutes", imageSrc: "http://img.b2bpic.net/free-photo/woman-relaxing-massage-bed-with-hot-stones-her-back_23-2147939928.jpg?_wi=2", buttons: [{ text: "Book Now", href: "booking" }]
id: "2", title: "Holistic Massage Therapy", description: "Experience therapeutic massage blending ancient techniques with modern wellness science. Available in Swedish, deep tissue, and hot stone options.", tag: "60-120 Minutes", imageSrc: "http://img.b2bpic.net/free-photo/woman-relaxing-massage-bed-with-hot-stones-her-back_23-2147939928.jpg?_wi=2", buttons: [{ text: "Book Now", onClick: handleBooking }]
},
{
id: "3", title: "Bespoke Wellness Retreat", description: "Tailored multi-service packages combining facials, massages, and meditative experiences designed to your precise wellness goals.", tag: "Half or Full Day", imageSrc: "http://img.b2bpic.net/free-photo/senior-couple-relaxing-with-spa-treatment_53876-15222.jpg?_wi=2", buttons: [{ text: "Book Now", href: "booking" }]
id: "3", title: "Bespoke Wellness Retreat", description: "Tailored multi-service packages combining facials, massages, and meditative experiences designed to your precise wellness goals.", tag: "Half or Full Day", imageSrc: "http://img.b2bpic.net/free-photo/senior-couple-relaxing-with-spa-treatment_53876-15222.jpg?_wi=2", buttons: [{ text: "Book Now", onClick: handleBooking }]
}
]}
/>
@@ -166,7 +171,7 @@ export default function LandingPage() {
]}
ctaTitle="Book Your Luxe Experience"
ctaDescription="Reserve your personalized appointment with our wellness experts. Instant calendar access, zero wait times."
ctaButton={{ text: "Open Calendly Booking", href: "booking" }}
ctaButton={{ text: "Open Calendly Booking", onClick: handleBooking }}
ctaIcon={Calendar}
useInvertedBackground={false}
animationType="slide-up"
@@ -208,14 +213,34 @@ export default function LandingPage() {
</div>
<div id="footer" data-section="footer">
<FooterCard
<FooterBase
logoText="Luxe Spa"
copyrightText="© 2025 Luxe Spa | Curated Luxury & Wellness"
socialLinks={[
{ icon: Instagram, href: "https://instagram.com/luxespa", ariaLabel: "Instagram" },
{ icon: Linkedin, href: "https://linkedin.com/company/luxespa", ariaLabel: "LinkedIn" },
{ icon: Mail, href: "mailto:hello@luxespa.com", ariaLabel: "Email" }
columns={[
{
title: "Company", items: [
{ label: "About", href: "about" },
{ label: "Services", href: "services" },
{ label: "Team", href: "team" },
{ label: "Testimonials", href: "testimonials" }
]
},
{
title: "Contact", items: [
{ label: "Book an Appointment", href: "https://calendly.com/app/availability/schedules" },
{ label: "Email: hello@luxespa.com", href: "mailto:hello@luxespa.com" },
{ label: "Phone: +1 (555) 123-4567", href: "tel:+15551234567" }
]
},
{
title: "Follow Us", items: [
{ label: "Instagram", href: "https://instagram.com/luxespa" },
{ label: "LinkedIn", href: "https://linkedin.com/company/luxespa" },
{ label: "Facebook", href: "https://facebook.com/luxespa" }
]
}
]}
onPrivacyClick={() => window.open('https://example.com/privacy', '_blank')}
/>
</div>
</ThemeProvider>