9 Commits

Author SHA1 Message Date
kudinDmitriyUp
416568b53d Bob AI (stub): connect the services page to the navigation bar services but 2026-06-03 04:00:40 +00:00
b0e96f10ed Merge version_4_1780456996051 into main
Merge version_4_1780456996051 into main
2026-06-03 03:24:51 +00:00
kudinDmitriyUp
618c6342dd Bob AI: Populate src/pages/ServicesPage.tsx (snippet builder, 3 sections) 2026-06-03 03:24:48 +00:00
kudinDmitriyUp
262c8b5123 Bob AI: Add services page 2026-06-03 03:24:02 +00:00
5740deaa4b Merge version_3_1780443569169 into main
Merge version_3_1780443569169 into main
2026-06-02 23:41:00 +00:00
kudinDmitriyUp
a273e965d7 Bob AI: style the FAQ section to match the rest of the site 2026-06-02 23:40:24 +00:00
bd0b5bd65b Merge version_2_1780442960765 into main
Merge version_2_1780442960765 into main
2026-06-02 23:30:49 +00:00
kudinDmitriyUp
496058fc48 Bob AI: Added FAQ section to address common customer concerns 2026-06-02 23:30:08 +00:00
1acc4b522e Merge version_1_1780442704980 into main
Merge version_1_1780442704980 into main
2026-06-02 23:28:02 +00:00
15 changed files with 399 additions and 189 deletions

View File

@@ -2,11 +2,13 @@ import { Routes, Route } from 'react-router-dom';
import Layout from './components/Layout'; import Layout from './components/Layout';
import HomePage from './pages/HomePage'; import HomePage from './pages/HomePage';
import ServicesPage from "@/pages/ServicesPage";
export default function App() { export default function App() {
return ( return (
<Routes> <Routes>
<Route element={<Layout />}> <Route element={<Layout />}>
<Route path="/" element={<HomePage />} /> <Route path="/" element={<HomePage />} />
<Route path="/services" element={<ServicesPage />} />
</Route> </Route>
</Routes> </Routes>
); );

View File

@@ -34,7 +34,9 @@ export default function Layout() {
{ {
"name": "Metrics", "name": "Metrics",
"href": "#metrics" "href": "#metrics"
} },
{ name: "Services", href: "/services" },
]; ];
return ( return (

View File

@@ -1,194 +1,35 @@
import AboutTestimonial from '@/components/sections/about/AboutTestimonial'; // AUTO-GENERATED shell by per-section-migrate.
import ContactCta from '@/components/sections/contact/ContactCta'; // Section bodies live in ./<PageBase>/sections/<X>.tsx. Edit the section
import FeaturesDetailedSteps from '@/components/sections/features/FeaturesDetailedSteps'; // files directly; this shell only fixes render order.
import FeaturesRevealCardsBentoSharp from '@/components/sections/features/FeaturesRevealCardsBentoSharp';
import HeroOverlayMarquee from '@/components/sections/hero/HeroOverlayMarquee';
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
import PricingLayeredCards from '@/components/sections/pricing/PricingLayeredCards';
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
import TestimonialQuoteCards from '@/components/sections/testimonial/TestimonialQuoteCards';
import { Cloud, Gauge, Leaf } from "lucide-react";
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HomePage() { import React from 'react';
import HeroSection from './HomePage/sections/Hero';
import AboutSection from './HomePage/sections/About';
import ProcessSection from './HomePage/sections/Process';
import ServicesSection from './HomePage/sections/Services';
import PricingSection from './HomePage/sections/Pricing';
import MetricsSection from './HomePage/sections/Metrics';
import TestimonialsSection from './HomePage/sections/Testimonials';
import SocialProofSection from './HomePage/sections/SocialProof';
import ContactSection from './HomePage/sections/Contact';
{/* webild-stub @2026-06-03T04:00:39.005Z: connect the services page to the navigation bar services button */}
import FaqSection from './HomePage/sections/Faq';export default function HomePage(): React.JSX.Element {
return ( return (
<> <>
<div id="hero" data-section="hero"> <HeroSection />
<SectionErrorBoundary name="hero"> <AboutSection />
<HeroOverlayMarquee <ProcessSection />
tag="Your Comfort, Our Priority" <ServicesSection />
title="Expert HVAC Solutions for Every Season" <PricingSection />
description="Arctic Air Solutions provides reliable heating, ventilation, and air conditioning services to keep your home or business comfortable year-round." <MetricsSection />
primaryButton={{ <TestimonialsSection />
text: "Schedule Service", href: "#contact"}} <SocialProofSection />
secondaryButton={{ <FaqSection />
text: "Learn More", href: "#about"}} <ContactSection />
items={[
{
text: "Efficient Cooling", icon: Cloud,
},
{
text: "Reliable Heating", icon: Gauge,
},
{
text: "Healthy Air", icon: Leaf,
},
]}
imageSrc="http://img.b2bpic.net/free-photo/mechanic-holding-manometers-close-up_482257-90625.jpg"
/>
</SectionErrorBoundary>
</div>
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTestimonial
tag="Our Story"
quote="Arctic Air Solutions transformed our home's comfort. Their team was professional, efficient, and truly cared about our needs. Highly recommend!"
author="Jane Doe"
role="Satisfied Homeowner"
imageSrc="http://img.b2bpic.net/free-photo/happy-man-woman-holding-speech-bubble-with-various-type-emoticans_23-2147842263.jpg"
/>
</SectionErrorBoundary>
</div>
<div id="process" data-section="process">
<SectionErrorBoundary name="process">
<FeaturesDetailedSteps
tag="Our Process"
title="Simple Steps to Perfect Climate Control"
description="We make HVAC services easy and transparent. Here's how we ensure your comfort."
steps={[
{
tag: "Step 1", title: "Initial Assessment", subtitle: "Understanding Your Needs", description: "We start with a thorough inspection of your current HVAC system and discuss your specific requirements to tailor the best solution.", imageSrc: "http://img.b2bpic.net/free-photo/learning-map_1098-14838.jpg"},
{
tag: "Step 2", title: "Customized Planning", subtitle: "Tailored to Your Property", description: "Based on our assessment, we design a personalized solution that fits your budget and optimizes energy efficiency for long-term savings.", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-woman-working-as-engineer_23-2150290083.jpg"},
{
tag: "Step 3", title: "Expert Implementation", subtitle: "Seamless Setup & Testing", description: "Our certified technicians handle the installation with precision, followed by rigorous testing to ensure optimal performance and immediate comfort.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-ventilation-system_23-2149388996.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<div id="services" data-section="services">
<SectionErrorBoundary name="services">
<FeaturesRevealCardsBentoSharp
tag="Our Services"
title="Comprehensive HVAC Solutions"
description="From routine maintenance to emergency repairs and new installations, we cover all your heating and cooling needs with expertise."
items={[
{
title: "AC Repair", description: "Fast and reliable air conditioning repair services to restore your comfort quickly.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/specialist-phone-with-home-owner_482257-80143.jpg"},
{
title: "Heating Installation", description: "Professional heating system installation for efficient warmth during colder months.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/electrical-technician-looking-focused-while-working-switchboard-with-fuses_169016-23718.jpg"},
{
title: "Preventative Maintenance", description: "Regular check-ups to extend the life of your system and prevent costly breakdowns.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/tilt-up-shot-out-service-condenser-unit-with-protection-cover-removed-need-fixing-with-damaged-electric-internal-parts-outside-hvac-system-working-anymore-ready-be-fixed_482257-64976.jpg"},
{
title: "Duct Cleaning", description: "Improve indoor air quality and system efficiency with our thorough duct cleaning services.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/close-up-ventilation-system_23-2149388959.jpg"},
{
title: "Thermostat Installation", description: "Upgrade to smart thermostats for enhanced control and energy savings.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/man-using-tablet-his-smart-home_23-2149036902.jpg"},
{
title: "Emergency Service", description: "24/7 emergency HVAC services for unexpected breakdowns.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/coworkers-refill-air-conditioner-freon_482257-90737.jpg"},
{
title: "Air Quality Solutions", description: "Solutions for better indoor air quality, including purifiers and humidifiers.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/white-metallic-building-pipes_250224-254.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<div id="pricing" data-section="pricing">
<SectionErrorBoundary name="pricing">
<PricingLayeredCards
tag="Our Plans"
title="Flexible HVAC Service Plans"
description="Choose a plan that best fits your needs, ensuring year-round comfort and peace of mind for your home or business."
plans={[
{
tag: "Basic", price: "$49/month", description: "Covers routine checks and basic repairs for essential system care.", primaryButton: {
text: "Select Basic", href: "#contact"},
features: [
"1 Annual Tune-up", "Priority Scheduling", "10% Parts Discount", "24/7 Phone Support"],
},
{
tag: "Standard", price: "$79/month", description: "Comprehensive coverage for optimal performance and extended system life.", primaryButton: {
text: "Select Standard", href: "#contact"},
features: [
"2 Annual Tune-ups", "Priority Scheduling", "15% Parts Discount", "Emergency Service Call Discount", "Diagnostic Fee Waived"],
},
{
tag: "Premium", price: "$119/month", description: "All-inclusive care for complete peace of mind, maximum savings, and top-tier service.", primaryButton: {
text: "Select Premium", href: "#contact"},
features: [
"2 Annual Tune-ups", "Guaranteed Same-Day Service", "20% Parts Discount", "No-Cost Emergency Service Calls", "Indoor Air Quality Check", "Thermostat Calibration"],
},
]}
/>
</SectionErrorBoundary>
</div>
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsMediaCards
tag="Our Impact"
title="Decades of Dedicated Service"
description="Proudly serving our community with reliable and efficient HVAC solutions. See our achievements and commitment to excellence."
metrics={[
{
value: "15+", title: "Years of Service", description: "Proudly serving homes and businesses since 2008, building lasting relationships.", imageSrc: "http://img.b2bpic.net/free-photo/reach-out-social-platform-connected-arrow_53876-127611.jpg"},
{
value: "98%", title: "Customer Satisfaction", description: "Our unwavering commitment to quality ensures happy clients and repeat business.", imageSrc: "http://img.b2bpic.net/free-photo/positive-customer-feedback_23-2151952993.jpg"},
{
value: "24/7", title: "Emergency Support", description: "Always here when you need us most, providing rapid response day or night for critical issues.", imageSrc: "http://img.b2bpic.net/free-photo/anxious-young-call-center-girl-wearing-headset-sitting-desk-holding-alarm-clock-showing-empty-hand-isolated-orange_141793-76551.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialQuoteCards
tag="Testimonials"
title="What Our Clients Say"
description="Hear directly from homeowners and businesses who trust Arctic Air Solutions for their comfort and climate control needs."
testimonials={[
{
name: "Robert Miller", role: "Homeowner", quote: "Arctic Air Solutions provided exceptional service. They fixed our AC quickly and professionally. Our home has never been more comfortable!", imageSrc: "http://img.b2bpic.net/free-photo/young-smiley-man-looking-camera_23-2148306634.jpg"},
{
name: "Sarah Chen", role: "Property Manager", quote: "Their team handles all our commercial properties. Reliable, efficient, and always on time. A true partner in maintaining our buildings.", imageSrc: "http://img.b2bpic.net/free-photo/portrait-cheerful-man-sitting-desk_329181-15290.jpg"},
{
name: "David Wilson", role: "Small Business Owner", quote: "The new heating system they installed is fantastic. Energy bills are down, and our staff are much happier. Highly recommend their expertise.", imageSrc: "http://img.b2bpic.net/free-photo/smiling-mature-loving-couple-family-using-laptop-computer_171337-8326.jpg"},
{
name: "Emily White", role: "Residential Client", quote: "I called for emergency service, and they were here within hours. Professional and reassuring. Couldn't ask for better service.", imageSrc: "http://img.b2bpic.net/free-photo/front-view-smiley-architect-looking-camera_23-2148242889.jpg"},
{
name: "Michael Brown", role: "Facility Director", quote: "Arctic Air Solutions takes care of our complex HVAC needs. Their preventative maintenance plans save us a lot of headaches and money.", imageSrc: "http://img.b2bpic.net/free-photo/young-pretty-woman-outdoors_624325-737.jpg"}
]}
/>
</SectionErrorBoundary>
</div>
<div id="social-proof" data-section="social-proof">
<SectionErrorBoundary name="social-proof">
<SocialProofMarquee
tag="Trusted Partners"
title="Serving Leading Businesses & Homes"
description="We've had the privilege of working with a diverse range of clients, ensuring their comfort and satisfaction across various sectors."
names={[
"EcoBuild", "SmartHome Innovations", "Urban Living Corp", "GreenPeak Hotels", "Retail Hub Group", "Family Eatery", "Local Business Alliance", "Community Health Clinic"]}
/>
</SectionErrorBoundary>
</div>
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Get Started"
text="Ready for Reliable HVAC Service? Contact Us Today!"
primaryButton={{
text: "Request a Quote", href: "#contact"}}
secondaryButton={{
text: "Call Us Now", href: "tel:123-456-7890"}}
/>
</SectionErrorBoundary>
</div>
</> </>
); );
} }

View File

@@ -0,0 +1,22 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "about" section.
import React from 'react';
import AboutTestimonial from '@/components/sections/about/AboutTestimonial';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTestimonial
tag="Our Story"
quote="Arctic Air Solutions transformed our home's comfort. Their team was professional, efficient, and truly cared about our needs. Highly recommend!"
author="Jane Doe"
role="Satisfied Homeowner"
imageSrc="http://img.b2bpic.net/free-photo/happy-man-woman-holding-speech-bubble-with-various-type-emoticans_23-2147842263.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,23 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "contact" section.
import React from 'react';
import ContactCta from '@/components/sections/contact/ContactCta';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ContactSection(): React.JSX.Element {
return (
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Get Started"
text="Ready for Reliable HVAC Service? Contact Us Today!"
primaryButton={{
text: "Request a Quote", href: "#contact"}}
secondaryButton={{
text: "Call Us Now", href: "tel:123-456-7890"}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,61 @@
// Created by create_section tool.
import React from 'react';
import Tag from '@/components/ui/Tag';
import ScrollReveal from '@/components/ui/ScrollReveal';
export default function FaqSection(): React.JSX.Element {
return (
<div data-webild-section="faq" className="py-24 bg-background">
<div className="container mx-auto px-4 sm:px-6 lg:px-8 max-w-6xl">
<div className="text-center mb-16">
<Tag text="FAQ" className="mb-4" />
<h2 className="text-3xl md:text-4xl font-bold text-foreground mb-4">
Frequently Asked Questions
</h2>
<p className="text-lg text-muted-foreground max-w-2xl mx-auto">
Find answers to common questions about our HVAC services, maintenance, and more.
</p>
</div>
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
{[
{
question: "How often should I have my HVAC system serviced?",
answer: "We recommend having your HVAC system serviced at least twice a year—once in the spring for your AC and once in the fall for your heating system. Regular maintenance helps prevent breakdowns and ensures optimal efficiency."
},
{
question: "What are the signs that my AC needs repair?",
answer: "Common signs include unusual noises, weak airflow, warm air blowing from vents, frequent cycling, and unexpected increases in your energy bills. If you notice any of these, it's best to call a professional."
},
{
question: "Do you offer emergency HVAC services?",
answer: "Yes, we offer 24/7 emergency repair services. HVAC emergencies don't always happen during business hours, so our team is ready to help restore your comfort whenever you need us."
},
{
question: "How can I improve my home's indoor air quality?",
answer: "Improving indoor air quality can be achieved by regularly changing air filters, installing air purifiers or UV lamps, ensuring proper ventilation, and keeping your ductwork clean."
},
{
question: "What is the average lifespan of an HVAC system?",
answer: "Most HVAC systems last between 15 to 20 years, depending on the model, usage, and how well they are maintained. Regular servicing can significantly extend the life of your unit."
},
{
question: "Are your technicians licensed and insured?",
answer: "Absolutely. All of our technicians are fully licensed, insured, and undergo regular training to stay up-to-date with the latest HVAC technologies and safety standards."
}
].map((faq, index) => (
<div key={index} className="bg-card p-8 rounded-2xl shadow-sm border border-border flex flex-col h-full hover:shadow-md transition-shadow duration-300">
<h3 className="text-xl font-semibold text-foreground mb-4">
{faq.question}
</h3>
<p className="text-muted-foreground leading-relaxed mt-auto">
{faq.answer}
</p>
</div>
))}
</div>
</div>
</div>
);
}

View File

@@ -0,0 +1,37 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "hero" section.
import React from 'react';
import HeroOverlayMarquee from '@/components/sections/hero/HeroOverlayMarquee';
import { Cloud, Gauge, Leaf } from "lucide-react";
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroOverlayMarquee
tag="Your Comfort, Our Priority"
title="Expert HVAC Solutions for Every Season"
description="Arctic Air Solutions provides reliable heating, ventilation, and air conditioning services to keep your home or business comfortable year-round."
primaryButton={{
text: "Schedule Service", href: "#contact"}}
secondaryButton={{
text: "Learn More", href: "#about"}}
items={[
{
text: "Efficient Cooling", icon: Cloud,
},
{
text: "Reliable Heating", icon: Gauge,
},
{
text: "Healthy Air", icon: Leaf,
},
]}
imageSrc="http://img.b2bpic.net/free-photo/mechanic-holding-manometers-close-up_482257-90625.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,28 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "metrics" section.
import React from 'react';
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function MetricsSection(): React.JSX.Element {
return (
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsMediaCards
tag="Our Impact"
title="Decades of Dedicated Service"
description="Proudly serving our community with reliable and efficient HVAC solutions. See our achievements and commitment to excellence."
metrics={[
{
value: "15+", title: "Years of Service", description: "Proudly serving homes and businesses since 2008, building lasting relationships.", imageSrc: "http://img.b2bpic.net/free-photo/reach-out-social-platform-connected-arrow_53876-127611.jpg"},
{
value: "98%", title: "Customer Satisfaction", description: "Our unwavering commitment to quality ensures happy clients and repeat business.", imageSrc: "http://img.b2bpic.net/free-photo/positive-customer-feedback_23-2151952993.jpg"},
{
value: "24/7", title: "Emergency Support", description: "Always here when you need us most, providing rapid response day or night for critical issues.", imageSrc: "http://img.b2bpic.net/free-photo/anxious-young-call-center-girl-wearing-headset-sitting-desk-holding-alarm-clock-showing-empty-hand-isolated-orange_141793-76551.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,40 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "pricing" section.
import React from 'react';
import PricingLayeredCards from '@/components/sections/pricing/PricingLayeredCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function PricingSection(): React.JSX.Element {
return (
<div id="pricing" data-section="pricing">
<SectionErrorBoundary name="pricing">
<PricingLayeredCards
tag="Our Plans"
title="Flexible HVAC Service Plans"
description="Choose a plan that best fits your needs, ensuring year-round comfort and peace of mind for your home or business."
plans={[
{
tag: "Basic", price: "$49/month", description: "Covers routine checks and basic repairs for essential system care.", primaryButton: {
text: "Select Basic", href: "#contact"},
features: [
"1 Annual Tune-up", "Priority Scheduling", "10% Parts Discount", "24/7 Phone Support"],
},
{
tag: "Standard", price: "$79/month", description: "Comprehensive coverage for optimal performance and extended system life.", primaryButton: {
text: "Select Standard", href: "#contact"},
features: [
"2 Annual Tune-ups", "Priority Scheduling", "15% Parts Discount", "Emergency Service Call Discount", "Diagnostic Fee Waived"],
},
{
tag: "Premium", price: "$119/month", description: "All-inclusive care for complete peace of mind, maximum savings, and top-tier service.", primaryButton: {
text: "Select Premium", href: "#contact"},
features: [
"2 Annual Tune-ups", "Guaranteed Same-Day Service", "20% Parts Discount", "No-Cost Emergency Service Calls", "Indoor Air Quality Check", "Thermostat Calibration"],
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,28 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "process" section.
import React from 'react';
import FeaturesDetailedSteps from '@/components/sections/features/FeaturesDetailedSteps';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ProcessSection(): React.JSX.Element {
return (
<div id="process" data-section="process">
<SectionErrorBoundary name="process">
<FeaturesDetailedSteps
tag="Our Process"
title="Simple Steps to Perfect Climate Control"
description="We make HVAC services easy and transparent. Here's how we ensure your comfort."
steps={[
{
tag: "Step 1", title: "Initial Assessment", subtitle: "Understanding Your Needs", description: "We start with a thorough inspection of your current HVAC system and discuss your specific requirements to tailor the best solution.", imageSrc: "http://img.b2bpic.net/free-photo/learning-map_1098-14838.jpg"},
{
tag: "Step 2", title: "Customized Planning", subtitle: "Tailored to Your Property", description: "Based on our assessment, we design a personalized solution that fits your budget and optimizes energy efficiency for long-term savings.", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-woman-working-as-engineer_23-2150290083.jpg"},
{
tag: "Step 3", title: "Expert Implementation", subtitle: "Seamless Setup & Testing", description: "Our certified technicians handle the installation with precision, followed by rigorous testing to ensure optimal performance and immediate comfort.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-ventilation-system_23-2149388996.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,36 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "services" section.
import React from 'react';
import FeaturesRevealCardsBentoSharp from '@/components/sections/features/FeaturesRevealCardsBentoSharp';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ServicesSection(): React.JSX.Element {
return (
<div id="services" data-section="services">
<SectionErrorBoundary name="services">
<FeaturesRevealCardsBentoSharp
tag="Our Services"
title="Comprehensive HVAC Solutions"
description="From routine maintenance to emergency repairs and new installations, we cover all your heating and cooling needs with expertise."
items={[
{
title: "AC Repair", description: "Fast and reliable air conditioning repair services to restore your comfort quickly.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/specialist-phone-with-home-owner_482257-80143.jpg"},
{
title: "Heating Installation", description: "Professional heating system installation for efficient warmth during colder months.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/electrical-technician-looking-focused-while-working-switchboard-with-fuses_169016-23718.jpg"},
{
title: "Preventative Maintenance", description: "Regular check-ups to extend the life of your system and prevent costly breakdowns.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/tilt-up-shot-out-service-condenser-unit-with-protection-cover-removed-need-fixing-with-damaged-electric-internal-parts-outside-hvac-system-working-anymore-ready-be-fixed_482257-64976.jpg"},
{
title: "Duct Cleaning", description: "Improve indoor air quality and system efficiency with our thorough duct cleaning services.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/close-up-ventilation-system_23-2149388959.jpg"},
{
title: "Thermostat Installation", description: "Upgrade to smart thermostats for enhanced control and energy savings.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/man-using-tablet-his-smart-home_23-2149036902.jpg"},
{
title: "Emergency Service", description: "24/7 emergency HVAC services for unexpected breakdowns.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/coworkers-refill-air-conditioner-freon_482257-90737.jpg"},
{
title: "Air Quality Solutions", description: "Solutions for better indoor air quality, including purifiers and humidifiers.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/white-metallic-building-pipes_250224-254.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,22 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "social-proof" section.
import React from 'react';
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function SocialProofSection(): React.JSX.Element {
return (
<div id="social-proof" data-section="social-proof">
<SectionErrorBoundary name="social-proof">
<SocialProofMarquee
tag="Trusted Partners"
title="Serving Leading Businesses & Homes"
description="We've had the privilege of working with a diverse range of clients, ensuring their comfort and satisfaction across various sectors."
names={[
"EcoBuild", "SmartHome Innovations", "Urban Living Corp", "GreenPeak Hotels", "Retail Hub Group", "Family Eatery", "Local Business Alliance", "Community Health Clinic"]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,32 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "testimonials" section.
import React from 'react';
import TestimonialQuoteCards from '@/components/sections/testimonial/TestimonialQuoteCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialQuoteCards
tag="Testimonials"
title="What Our Clients Say"
description="Hear directly from homeowners and businesses who trust Arctic Air Solutions for their comfort and climate control needs."
testimonials={[
{
name: "Robert Miller", role: "Homeowner", quote: "Arctic Air Solutions provided exceptional service. They fixed our AC quickly and professionally. Our home has never been more comfortable!", imageSrc: "http://img.b2bpic.net/free-photo/young-smiley-man-looking-camera_23-2148306634.jpg"},
{
name: "Sarah Chen", role: "Property Manager", quote: "Their team handles all our commercial properties. Reliable, efficient, and always on time. A true partner in maintaining our buildings.", imageSrc: "http://img.b2bpic.net/free-photo/portrait-cheerful-man-sitting-desk_329181-15290.jpg"},
{
name: "David Wilson", role: "Small Business Owner", quote: "The new heating system they installed is fantastic. Energy bills are down, and our staff are much happier. Highly recommend their expertise.", imageSrc: "http://img.b2bpic.net/free-photo/smiling-mature-loving-couple-family-using-laptop-computer_171337-8326.jpg"},
{
name: "Emily White", role: "Residential Client", quote: "I called for emergency service, and they were here within hours. Professional and reassuring. Couldn't ask for better service.", imageSrc: "http://img.b2bpic.net/free-photo/front-view-smiley-architect-looking-camera_23-2148242889.jpg"},
{
name: "Michael Brown", role: "Facility Director", quote: "Arctic Air Solutions takes care of our complex HVAC needs. Their preventative maintenance plans save us a lot of headaches and money.", imageSrc: "http://img.b2bpic.net/free-photo/young-pretty-woman-outdoors_624325-737.jpg"}
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,35 @@
import Button from "@/components/ui/Button";
import HeroBackgroundSlot from "@/components/ui/HeroBackgroundSlot";
import TextAnimation from "@/components/ui/TextAnimation";
import ImageOrVideo from "@/components/ui/ImageOrVideo";
import ScrollReveal from "@/components/ui/ScrollReveal";
import { cls } from "@/lib/utils";
import { Check } from "lucide-react";
import GridOrCarousel from "@/components/ui/GridOrCarousel";
export default function ServicesPage() {
return (
<>
<div data-webild-section="HeroSplit"><section aria-label="Hero section" className="relative flex items-center h-fit md:h-svh pt-25 pb-20 md:py-0"><HeroBackgroundSlot /><div className="flex flex-col md:flex-row items-center gap-12 md:gap-20 w-content-width mx-auto"><div className="w-full md:w-1/2"><div className="flex flex-col items-center md:items-start gap-3"><div className="px-3 py-1 mb-1 text-sm card rounded w-fit"><p>Our Services</p></div><TextAnimation text="Comprehensive Solutions for Your Business Needs" variant="fade-blur" gradientText={true} tag="h1" className="text-7xl 2xl:text-8xl leading-[1.15] font-semibold text-center md:text-left text-balance" /><TextAnimation text="Discover our range of professional services designed to elevate your brand and streamline operations. We partner with you to deliver tailored strategies and measurable results. Explore how our expertise can help you achieve your business objectives." variant="fade-blur" gradientText={false} tag="p" className="md:max-w-8/10 text-lg md:text-xl leading-snug text-center md:text-left text-balance" /><div className="flex flex-wrap max-md:justify-center gap-3 mt-2 md:mt-3"><Button text="Explore Services" href="/services#all-services" variant="primary" /><Button text="Contact Us" href="/contact" variant="secondary" animationDelay={0.1} /></div></div></div><ScrollReveal variant="slide-up" delay={0.2} className="w-full md:w-1/2 h-100 md:h-[65vh] md:max-h-[75svh] p-2 xl:p-3 2xl:p-4 card rounded overflow-hidden"><ImageOrVideo imageSrc="https://img.freepik.com/premium-photo/business-team-working-together-modern-office-setting-showcasing-collaboration-innovation_965042-108703.jpg" /></ScrollReveal></div></section></div>
<div data-webild-section="FeaturesAlternatingSplit"><section aria-label="Features section" className="py-20"><div className="flex flex-col gap-8 md:gap-10"><div className="flex flex-col items-center w-content-width mx-auto gap-2"><div className="px-3 py-1 mb-1 text-sm card rounded w-fit"><p>Our Services</p></div><TextAnimation text="Tailored Services to Drive Your Success" variant="fade-blur" gradientText={true} tag="h2" className="md:max-w-8/10 text-6xl 2xl:text-7xl leading-[1.15] font-semibold text-center text-balance" /><TextAnimation text="We offer expert services designed to help your business thrive. Our solutions are crafted to meet your unique challenges, from strategic planning to implementation." variant="fade-blur" gradientText={false} tag="p" className="md:max-w-7/10 text-lg md:text-xl leading-snug text-center text-balance" /><div className="flex flex-wrap justify-center gap-3 mt-2 md:mt-3"><Button text="Explore All Services" href="/services#all-services" variant="primary" /><Button text="Contact Us" href="/contact" variant="secondary" animationDelay={0.1} /></div></div><div className="flex flex-col gap-5 w-content-width mx-auto"><ScrollReveal variant="slide-up" key="Strategic Business Consulting" className="flex flex-col gap-6 md:gap-10 p-6 md:p-10 card rounded md:flex-row-reverse"><div className="flex flex-col justify-center w-full md:w-1/2 gap-2"><div className="flex items-center justify-center size-9 mb-1 text-sm rounded primary-button text-primary-cta-text"><p>1</p></div><h3 className="text-4xl md:text-5xl font-semibold leading-[1.15] text-balance">Strategic Business Consulting</h3><p className="text-base md:text-lg leading-snug text-balance">Gain clarity and direction with our expert strategic consulting. We help define goals and develop actionable plans for sustainable growth.</p><div className="flex flex-wrap gap-3 mt-2 md:mt-3"><Button text="Learn More" href="/services#consulting" variant="primary" /></div></div><div className="w-full md:w-1/2 aspect-square rounded overflow-hidden"><ImageOrVideo imageSrc="https://img.freepik.com/premium-photo/business-strategy-planning-concept-with-businessman-pointing-chart_1000574-12345.jpg" /></div></ScrollReveal>
<ScrollReveal variant="slide-up" key="Digital Transformation Solutions" className="flex flex-col gap-6 md:gap-10 p-6 md:p-10 card rounded md:flex-row-reverse"><div className="flex flex-col justify-center w-full md:w-1/2 gap-2"><div className="flex items-center justify-center size-9 mb-1 text-sm rounded primary-button text-primary-cta-text"><p>2</p></div><h3 className="text-4xl md:text-5xl font-semibold leading-[1.15] text-balance">Digital Transformation Solutions</h3><p className="text-base md:text-lg leading-snug text-balance">Modernize operations and enhance efficiency with our digital transformation services. Embrace new technologies to stay competitive.</p><div className="flex flex-wrap gap-3 mt-2 md:mt-3"><Button text="Discover How" href="/services#digital" variant="primary" /></div></div><div className="w-full md:w-1/2 aspect-square rounded overflow-hidden"><ImageOrVideo imageSrc="https://img.freepik.com/premium-photo/digital-transformation-concept-with-abstract-data-flow_1000574-12346.jpg" /></div></ScrollReveal>
<ScrollReveal variant="slide-up" key="Integrated Marketing & Branding" className="flex flex-col gap-6 md:gap-10 p-6 md:p-10 card rounded md:flex-row-reverse"><div className="flex flex-col justify-center w-full md:w-1/2 gap-2"><div className="flex items-center justify-center size-9 mb-1 text-sm rounded primary-button text-primary-cta-text"><p>3</p></div><h3 className="text-4xl md:text-5xl font-semibold leading-[1.15] text-balance">Integrated Marketing & Branding</h3><p className="text-base md:text-lg leading-snug text-balance">Build a powerful brand presence and reach your target audience effectively. Our strategies drive engagement and deliver measurable results.</p><div className="flex flex-wrap gap-3 mt-2 md:mt-3"><Button text="View Case Studies" href="/services#marketing" variant="primary" /></div></div><div className="w-full md:w-1/2 aspect-square rounded overflow-hidden"><ImageOrVideo imageSrc="https://img.freepik.com/premium-photo/marketing-strategy-and-branding-concept-with-creative-elements_1000574-12347.jpg" /></div></ScrollReveal>
<ScrollReveal variant="slide-up" key="Operational Efficiency & Optimization" className="flex flex-col gap-6 md:gap-10 p-6 md:p-10 card rounded md:flex-row-reverse"><div className="flex flex-col justify-center w-full md:w-1/2 gap-2"><div className="flex items-center justify-center size-9 mb-1 text-sm rounded primary-button text-primary-cta-text"><p>4</p></div><h3 className="text-4xl md:text-5xl font-semibold leading-[1.15] text-balance">Operational Efficiency & Optimization</h3><p className="text-base md:text-lg leading-snug text-balance">Streamline processes and boost productivity. We analyze operations to identify bottlenecks and implement best practices.</p><div className="flex flex-wrap gap-3 mt-2 md:mt-3"><Button text="Improve Operations" href="/services#operations" variant="primary" /></div></div><div className="w-full md:w-1/2 aspect-square rounded overflow-hidden"><ImageOrVideo imageSrc="https://img.freepik.com/premium-photo/business-process-optimization-concept-with-gears-and-data_1000574-12348.jpg" /></div></ScrollReveal></div></div></section></div>
<div data-webild-section="PricingSimpleCards"><section aria-label="Pricing section" className="py-20"><div className="flex flex-col gap-8 md:gap-10"><div className="flex flex-col items-center w-content-width mx-auto gap-2"><div className="px-3 py-1 mb-1 text-sm card rounded w-fit"><p>Our Services</p></div><TextAnimation text="Flexible Service Plans for Your Business" variant="fade" gradientText={true} tag="h2" className="md:max-w-8/10 text-6xl 2xl:text-7xl leading-[1.15] font-semibold text-center text-balance" /><TextAnimation text="Explore our tailored service plans designed to meet diverse business needs. Each plan offers a unique set of features to help you achieve your goals efficiently and effectively. For comprehensive projects, custom quotes are available." variant="fade" gradientText={false} tag="p" className="md:max-w-7/10 text-lg md:text-xl leading-snug text-center text-balance" /><div className="flex flex-wrap justify-center gap-3 mt-2 md:mt-3"><Button text="Get Started" href="/contact" variant="primary" /><Button variant="secondary" animationDelay={0.1} /></div></div><ScrollReveal variant="fade"><GridOrCarousel><div key="Foundational Strategy" className="flex flex-col gap-4 xl:gap-5 2xl:gap-6 p-6 xl:p-7 2xl:p-8 h-full card rounded"><div className="px-3 py-1 text-sm card rounded w-fit"><p>Foundational Strategy</p></div><div className="flex flex-col gap-1"><span className="text-5xl md:text-6xl font-semibold">$199/mo</span><span className="text-base font-medium">Ideal for businesses seeking initial strategic direction and foundational support across our service areas.</span></div><div className="w-full h-px bg-foreground/20" /><div className="flex flex-col gap-3"><div key="Initial strategic assessment & roadmap" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Initial strategic assessment & roadmap</span></div>
<div key="1-hour monthly consultation (virtual)" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">1-hour monthly consultation (virtual)</span></div>
<div key="Basic performance insights & recommendations" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Basic performance insights & recommendations</span></div>
<div key="Email support for strategic queries" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Email support for strategic queries</span></div></div></div>
<div key="Growth Accelerator" className="flex flex-col gap-4 xl:gap-5 2xl:gap-6 p-6 xl:p-7 2xl:p-8 h-full card rounded"><div className="px-3 py-1 text-sm card rounded w-fit"><p>Growth Accelerator</p></div><div className="flex flex-col gap-1"><span className="text-5xl md:text-6xl font-semibold">$499/mo</span><span className="text-base font-medium">Designed for growing businesses ready to implement advanced strategies and optimize key initiatives.</span></div><div className="w-full h-px bg-foreground/20" /><div className="flex flex-col gap-3"><div key="Dedicated strategic advisor" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Dedicated strategic advisor</span></div>
<div key="Comprehensive strategic planning & quarterly reviews" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Comprehensive strategic planning & quarterly reviews</span></div>
<div key="Support for 1-2 key service initiatives (e.g., marketing campaign planning, process review)" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Support for 1-2 key service initiatives (e.g., marketing campaign planning, process review)</span></div>
<div key="Bi-weekly progress meetings & priority support" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Bi-weekly progress meetings & priority support</span></div>
<div key="Custom analytics dashboard access" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Custom analytics dashboard access</span></div></div></div>
<div key="Enterprise Partnership" className="flex flex-col gap-4 xl:gap-5 2xl:gap-6 p-6 xl:p-7 2xl:p-8 h-full card rounded"><div className="px-3 py-1 text-sm card rounded w-fit"><p>Enterprise Partnership</p></div><div className="flex flex-col gap-1"><span className="text-5xl md:text-6xl font-semibold">Custom</span><span className="text-base font-medium">Tailored, integrated solutions for large organizations requiring extensive, scalable, and ongoing strategic and implementation support.</span></div><div className="w-full h-px bg-foreground/20" /><div className="flex flex-col gap-3"><div key="Fully customized service package across all offerings" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Fully customized service package across all offerings</span></div>
<div key="Dedicated on-site/remote expert team" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Dedicated on-site/remote expert team</span></div>
<div key="Continuous strategic partnership & implementation" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Continuous strategic partnership & implementation</span></div>
<div key="Advanced security, compliance & risk management" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Advanced security, compliance & risk management</span></div>
<div key="Exclusive access to new methodologies & tools" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Exclusive access to new methodologies & tools</span></div>
<div key="Regular executive reviews & strategic workshops" className="flex items-start gap-3"><div className="flex items-center justify-center shrink-0 size-6 primary-button rounded"><Check className="size-3 text-primary-cta-text" strokeWidth={2} /></div><span className="text-base">Regular executive reviews & strategic workshops</span></div></div></div></GridOrCarousel></ScrollReveal></div></section></div>
</>
);
}

View File

@@ -6,4 +6,5 @@ export interface Route {
export const routes: Route[] = [ export const routes: Route[] = [
{ path: '/', label: 'Home', pageFile: 'HomePage' }, { path: '/', label: 'Home', pageFile: 'HomePage' },
{ path: '/services', label: 'Services', pageFile: 'ServicesPage' },
]; ];