Merge version_1_1781553415432 into main #1
@@ -7,101 +7,56 @@ import { StyleProvider } from "@/components/ui/StyleProvider";
|
||||
|
||||
export default function Layout() {
|
||||
const navItems = [
|
||||
{
|
||||
"name": "About",
|
||||
"href": "#about"
|
||||
},
|
||||
{
|
||||
"name": "Services",
|
||||
"href": "#services"
|
||||
},
|
||||
{
|
||||
"name": "Pricing",
|
||||
"href": "#pricing"
|
||||
},
|
||||
{
|
||||
"name": "Reviews",
|
||||
"href": "#testimonials"
|
||||
},
|
||||
{
|
||||
"name": "Hero",
|
||||
"href": "#hero"
|
||||
},
|
||||
{
|
||||
"name": "Metrics",
|
||||
"href": "#metrics"
|
||||
},
|
||||
{
|
||||
"name": "Faq",
|
||||
"href": "#faq"
|
||||
}
|
||||
];
|
||||
{ name: "About", href: "#about" },
|
||||
{ name: "Services", href: "#services" },
|
||||
{ name: "Pricing", href: "#pricing" },
|
||||
{ name: "Reviews", href: "#testimonials" },
|
||||
{ name: "Hero", href: "#hero" },
|
||||
{ name: "Metrics", href: "#metrics" },
|
||||
{ name: "Faq", href: "#faq" }
|
||||
];
|
||||
|
||||
return (
|
||||
<StyleProvider buttonVariant="expand" siteBackground="aurora" heroBackground="horizonGlow">
|
||||
<SiteBackgroundSlot />
|
||||
<SectionErrorBoundary name="navbar">
|
||||
<NavbarFloatingLogo
|
||||
logo="ECC Lawn Mowing"
|
||||
ctaButton={{
|
||||
text: "Free Quote",
|
||||
href: "#contact",
|
||||
}}
|
||||
navItems={navItems} />
|
||||
logo="ECC Lawn Mowing"
|
||||
logoImageSrc="https://storage.googleapis.com/webild/default/no-image.jpg?id=cwevjb"
|
||||
ctaButton={{
|
||||
text: "Free Quote", href: "#contact"}}
|
||||
navItems={navItems}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
<main className="flex-grow">
|
||||
<Outlet />
|
||||
</main>
|
||||
<SectionErrorBoundary name="footer">
|
||||
<FooterBrand
|
||||
brand="ECC Lawn Mowing"
|
||||
columns={[
|
||||
{
|
||||
items: [
|
||||
brand="ECC Lawn Mowing"
|
||||
columns={[
|
||||
{
|
||||
label: "About Us",
|
||||
href: "#about",
|
||||
items: [
|
||||
{ label: "About Us", href: "#about" },
|
||||
{ label: "Services", href: "#services" },
|
||||
{ label: "Pricing", href: "#pricing" }
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "Services",
|
||||
href: "#services",
|
||||
items: [
|
||||
{ label: "Contact", href: "#contact" },
|
||||
{ label: "Book Now", href: "#contact" },
|
||||
{ label: "FAQs", href: "#faq" }
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "Pricing",
|
||||
href: "#pricing",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{
|
||||
label: "Contact",
|
||||
href: "#contact",
|
||||
},
|
||||
{
|
||||
label: "Book Now",
|
||||
href: "#contact",
|
||||
},
|
||||
{
|
||||
label: "FAQs",
|
||||
href: "#faq",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{
|
||||
label: "Privacy Policy",
|
||||
href: "#",
|
||||
},
|
||||
{
|
||||
label: "Terms of Service",
|
||||
href: "#",
|
||||
},
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
items: [
|
||||
{ label: "Privacy Policy", href: "#" },
|
||||
{ label: "Terms of Service", href: "#" }
|
||||
]
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</StyleProvider>
|
||||
);
|
||||
|
||||
@@ -11,252 +11,112 @@ import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
export default function HomePage() {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroCenteredLogos
|
||||
title="Professional Lawn Care, Hassle-Free"
|
||||
description="From one-time cuts to ongoing maintenance plans, ECC keeps your yard looking perfect year-round. Choose the service that fits your schedule."
|
||||
primaryButton={{
|
||||
text: "Get Your Free Quote",
|
||||
href: "#contact",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "View Services",
|
||||
href: "#services",
|
||||
}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/people-helping-neighbors-with-grass-lawn_23-2149139731.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
title="Professional Lawn Care, Hassle-Free"
|
||||
description="From one-time cuts to ongoing maintenance plans, ECC keeps your yard looking perfect year-round. Choose the service that fits your schedule."
|
||||
primaryButton={{
|
||||
text: "Get Your Free Quote", href: "#contact"}}
|
||||
secondaryButton={{
|
||||
text: "View Services", href: "#services"}}
|
||||
avatarsSrc={[]}
|
||||
avatarText=""
|
||||
names={[]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/people-helping-neighbors-with-grass-lawn_23-2149139731.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutText
|
||||
title="Reliable lawn maintenance for busy homeowners. We pride ourselves on attention to detail and consistent, high-quality results that you can trust every single week."
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutText title="Reliable lawn maintenance for busy homeowners. We pride ourselves on attention to detail and consistent, high-quality results that you can trust every single week." />
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="services" data-section="services">
|
||||
<SectionErrorBoundary name="services">
|
||||
<div id="services" data-section="services">
|
||||
<SectionErrorBoundary name="services">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="Our Services"
|
||||
title="Complete Lawn Care Solutions"
|
||||
description="Comprehensive maintenance packages tailored to keep your outdoor space thriving."
|
||||
items={[
|
||||
{
|
||||
title: "Regular Mowing",
|
||||
description: "Weekly or bi-weekly professional mowing for a manicured look.",
|
||||
href: "#contact",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-man-driving-lawn-mower_23-2149382194.jpg",
|
||||
},
|
||||
{
|
||||
title: "Trimming & Edging",
|
||||
description: "Precise detailing for sidewalks and garden borders.",
|
||||
href: "#contact",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/worker-is-cutting-grass-with-hose_7502-9835.jpg",
|
||||
},
|
||||
{
|
||||
title: "Seasonal Cleanup",
|
||||
description: "Spring and fall clearing for a pristine yard year-round.",
|
||||
href: "#contact",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/plastic-fan-rake-pile-dry-golden-leaves-autumn-season-view-from-raked-leaves-with_7502-10269.jpg",
|
||||
},
|
||||
{
|
||||
title: "Hedge Care",
|
||||
description: "Shaping and trimming to keep hedges healthy and neat.",
|
||||
href: "#contact",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/fork-harrows-grass_1339-7746.jpg",
|
||||
},
|
||||
{
|
||||
title: "Fertilization",
|
||||
description: "Professional treatments for lush, green, healthy grass.",
|
||||
href: "#contact",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/serrated-metal-rake-garden-cleaning_169016-10696.jpg",
|
||||
},
|
||||
{
|
||||
title: "Leaf Removal",
|
||||
description: "Efficient clearing to prevent damage and keep lawns clean.",
|
||||
href: "#contact",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/couple-collects-leaves-cleans-park_1157-27421.jpg",
|
||||
},
|
||||
{
|
||||
title: "Lawn Aeration",
|
||||
description: "Core aeration to promote deep root growth and nutrient health.",
|
||||
href: "#contact",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-plant-gardening-tools-with-copyspace_23-2148198727.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
tag="Our Services"
|
||||
title="Complete Lawn Care Solutions"
|
||||
description="Comprehensive maintenance packages tailored to keep your outdoor space thriving."
|
||||
items={[
|
||||
{ title: "Regular Mowing", description: "Weekly or bi-weekly professional mowing for a manicured look.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/full-shot-man-driving-lawn-mower_23-2149382194.jpg" },
|
||||
{ title: "Trimming & Edging", description: "Precise detailing for sidewalks and garden borders.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/worker-is-cutting-grass-with-hose_7502-9835.jpg" },
|
||||
{ title: "Seasonal Cleanup", description: "Spring and fall clearing for a pristine yard year-round.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/plastic-fan-rake-pile-dry-golden-leaves-autumn-season-view-from-raked-leaves-with_7502-10269.jpg" },
|
||||
{ title: "Hedge Care", description: "Shaping and trimming to keep hedges healthy and neat.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/fork-harrows-grass_1339-7746.jpg" },
|
||||
{ title: "Fertilization", description: "Professional treatments for lush, green, healthy grass.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/serrated-metal-rake-garden-cleaning_169016-10696.jpg" },
|
||||
{ title: "Leaf Removal", description: "Efficient clearing to prevent damage and keep lawns clean.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/couple-collects-leaves-cleans-park_1157-27421.jpg" },
|
||||
{ title: "Lawn Aeration", description: "Core aeration to promote deep root growth and nutrient health.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-plant-gardening-tools-with-copyspace_23-2148198727.jpg" }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="pricing" data-section="pricing">
|
||||
<SectionErrorBoundary name="pricing">
|
||||
<div id="pricing" data-section="pricing">
|
||||
<SectionErrorBoundary name="pricing">
|
||||
<PricingLayeredCards
|
||||
tag="Maintenance Plans"
|
||||
title="Flexible Service Options"
|
||||
description="Competitive pricing with no hidden fees."
|
||||
plans={[
|
||||
{
|
||||
tag: "Essential",
|
||||
price: "$45/cut",
|
||||
description: "Basic weekly mowing and trimming.",
|
||||
primaryButton: {
|
||||
text: "Book Now",
|
||||
href: "#contact",
|
||||
},
|
||||
features: [
|
||||
"Weekly Mowing",
|
||||
"Basic Edging",
|
||||
"Grass Clippings Removal",
|
||||
],
|
||||
},
|
||||
{
|
||||
tag: "Premier",
|
||||
price: "$85/visit",
|
||||
description: "Comprehensive care including seasonal cleanup.",
|
||||
primaryButton: {
|
||||
text: "Book Now",
|
||||
href: "#contact",
|
||||
},
|
||||
features: [
|
||||
"All Essential Features",
|
||||
"Hedge Shaping",
|
||||
"Monthly Fertilization",
|
||||
"Leaf Management",
|
||||
],
|
||||
},
|
||||
{
|
||||
tag: "Custom",
|
||||
price: "Contact Us",
|
||||
description: "Tailored plans for large estates and special requests.",
|
||||
primaryButton: {
|
||||
text: "Get Custom Quote",
|
||||
href: "#contact",
|
||||
},
|
||||
features: [
|
||||
"Tailored Scheduling",
|
||||
"Full Lawn Restoration",
|
||||
"Ongoing Consultations",
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
tag="Maintenance Plans"
|
||||
title="Flexible Service Options"
|
||||
description="Competitive pricing with no hidden fees."
|
||||
plans={[
|
||||
{ tag: "Essential", price: "$45/cut", description: "Basic weekly mowing and trimming.", primaryButton: { text: "Book Now", href: "#contact" }, features: ["Weekly Mowing", "Basic Edging", "Grass Clippings Removal"] },
|
||||
{ tag: "Premier", price: "$85/visit", description: "Comprehensive care including seasonal cleanup.", primaryButton: { text: "Book Now", href: "#contact" }, features: ["All Essential Features", "Hedge Shaping", "Monthly Fertilization", "Leaf Management"] },
|
||||
{ tag: "Custom", price: "Contact Us", description: "Tailored plans for large estates and special requests.", primaryButton: { text: "Get Custom Quote", href: "#contact" }, features: ["Tailored Scheduling", "Full Lawn Restoration", "Ongoing Consultations"] }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsSimpleCards
|
||||
tag="Our Impact"
|
||||
title="Quality You Can See"
|
||||
description="Trusted by hundreds of local homeowners to keep properties looking their best."
|
||||
metrics={[
|
||||
{
|
||||
value: "500+",
|
||||
description: "Lawns Maintained Weekly",
|
||||
},
|
||||
{
|
||||
value: "15+",
|
||||
description: "Years of Local Expertise",
|
||||
},
|
||||
{
|
||||
value: "100%",
|
||||
description: "Customer Satisfaction",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
tag="Our Impact"
|
||||
title="Quality You Can See"
|
||||
description="Trusted by hundreds of local homeowners to keep properties looking their best."
|
||||
metrics={[{ value: "500+", description: "Lawns Maintained Weekly" }, { value: "15+", description: "Years of Local Expertise" }, { value: "100%", description: "Customer Satisfaction" }]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialRatingCards
|
||||
tag="Trusted by Local Homeowners"
|
||||
title="What Our Clients Say"
|
||||
description="We treat every lawn like our own, and our customers notice the difference."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah J.",
|
||||
role: "Suburban Homeowner",
|
||||
quote: "ECC Lawn Mowing is the most reliable service we have used. Always on time and my lawn looks perfect every single week.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-walking-romantic-happy-holidays-holding-hand-boyfriend-following-her_1150-4660.jpg",
|
||||
},
|
||||
{
|
||||
name: "Mike R.",
|
||||
role: "Local Resident",
|
||||
quote: "Finally found a team that takes care of the small details like edging and hedge trimming. Exceptional quality.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-man-carrying-woman-with-wheelbarrow_23-2149382171.jpg",
|
||||
},
|
||||
{
|
||||
name: "Emily T.",
|
||||
role: "Busy Professional",
|
||||
quote: "I have no time for yard work, and ECC has been a lifesaver. Consistent, professional, and very easy to work with.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happy-attractive-male-gardener-glasses-posing-while-trimming-bush-with-electric-hedge-clippers_7502-10137.jpg",
|
||||
},
|
||||
{
|
||||
name: "David W.",
|
||||
role: "Homeowner",
|
||||
quote: "Very friendly team and the results are consistently great. Best lawn service I've ever booked.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-with-potted-plant_23-2149722633.jpg",
|
||||
},
|
||||
{
|
||||
name: "Jennifer L.",
|
||||
role: "Long-term Client",
|
||||
quote: "Trustworthy, efficient, and they always leave the yard spotless. Highly recommend for any homeowner.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/man-talking-smartphone-sitting-open-terrace_259150-59317.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
tag="Trusted by Local Homeowners"
|
||||
title="What Our Clients Say"
|
||||
description="We treat every lawn like our own, and our customers notice the difference."
|
||||
testimonials={[
|
||||
{ name: "Sarah J.", role: "Suburban Homeowner", quote: "ECC Lawn Mowing is the most reliable service we have used. Always on time and my lawn looks perfect every single week.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/woman-walking-romantic-happy-holidays-holding-hand-boyfriend-following-her_1150-4660.jpg" },
|
||||
{ name: "Mike R.", role: "Local Resident", quote: "Finally found a team that takes care of the small details like edging and hedge trimming. Exceptional quality.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/full-shot-man-carrying-woman-with-wheelbarrow_23-2149382171.jpg" },
|
||||
{ name: "Emily T.", role: "Busy Professional", quote: "I have no time for yard work, and ECC has been a lifesaver. Consistent, professional, and very easy to work with.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/happy-attractive-male-gardener-glasses-posing-while-trimming-bush-with-electric-hedge-clippers_7502-10137.jpg" },
|
||||
{ name: "David W.", role: "Homeowner", quote: "Very friendly team and the results are consistently great. Best lawn service I've ever booked.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-with-potted-plant_23-2149722633.jpg" },
|
||||
{ name: "Jennifer L.", role: "Long-term Client", quote: "Trustworthy, efficient, and they always leave the yard spotless. Highly recommend for any homeowner.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/man-talking-smartphone-sitting-open-terrace_259150-59317.jpg" }
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSimple
|
||||
tag="Need Help?"
|
||||
title="Frequently Asked Questions"
|
||||
description="Answers to common questions about our lawn care services."
|
||||
items={[
|
||||
{
|
||||
question: "What areas do you serve?",
|
||||
answer: "We currently provide lawn mowing services throughout the greater metro suburban region. Contact us with your address for a check.",
|
||||
},
|
||||
{
|
||||
question: "Do I need to be home for service?",
|
||||
answer: "No, you don't need to be home. As long as our crew has access to your yard, we can perform all services.",
|
||||
},
|
||||
{
|
||||
question: "Can I cancel or reschedule easily?",
|
||||
answer: "Yes, we offer flexible scheduling and easy cancellation with 24 hours notice.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
tag="Need Help?"
|
||||
title="Frequently Asked Questions"
|
||||
description="Answers to common questions about our lawn care services."
|
||||
items={[{ question: "What areas do you serve?", answer: "We currently provide lawn mowing services throughout the greater metro suburban region. Contact us with your address for a check." }, { question: "Do I need to be home for service?", answer: "No, you don't need to be home. As long as our crew has access to your yard, we can perform all services." }, { question: "Can I cancel or reschedule easily?", answer: "Yes, we offer flexible scheduling and easy cancellation with 24 hours notice." }]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Ready for a perfect lawn?"
|
||||
text="Get a free, no-obligation quote for your property today and experience hassle-free maintenance."
|
||||
primaryButton={{
|
||||
text: "Get Your Free Quote",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Call Now",
|
||||
href: "tel:5550100",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
tag="Ready for a perfect lawn?"
|
||||
text="Get a free, no-obligation quote for your property today and experience hassle-free maintenance."
|
||||
primaryButton={{ text: "Get Your Free Quote", href: "#" }}
|
||||
secondaryButton={{ text: "Call Now", href: "tel:5550100" }}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user