Queue-North-Website/src/pages/Services.jsx

118 lines
6.0 KiB
JavaScript

import { Helmet } from 'react-helmet-async'
import { services } from '@/data/services'
import { MessageCircle, Users, LifeBuoy, GraduationCap, Link as LinkIcon, Wifi, Network } from 'lucide-react'
import { Link } from 'react-router-dom'
const serviceLd = {
'@context': 'https://schema.org',
'@type': 'Service',
serviceType: 'Business Communications and IT Services',
provider: {
'@type': 'Organization',
name: 'Queue North Technologies',
url: 'https://queuenorth.com',
},
areaServed: {
'@type': 'Place',
name: 'United States',
},
}
const Services = () => {
return (
<>
<Helmet>
<title>Business Phone, UCaaS & IT Services | Queue North Technologies</title>
<meta name="description" content="Explore Queue North Technologies services: unified communications, contact center, managed IT support, consulting & training, infrastructure cabling, wireless access, and local networking." />
<meta property="og:title" content="Business Phone, UCaaS & IT Services | Queue North Technologies" />
<meta property="og:description" content="Unified communications, contact center, managed IT support, consulting, cabling, wireless, and networking solutions." />
<meta property="og:url" content="https://queuenorth.com/services" />
<meta property="og:type" content="website" />
<meta property="og:image" content="https://queuenorth.com/assets/og-image.png" />
<meta property="og:site_name" content="Queue North Technologies" />
<script type="application/ld+json">{JSON.stringify(serviceLd)}</script>
</Helmet>
{/* Page Hero */}
<section className="bg-background py-16 lg:py-24">
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div>
<h1 className="text-4xl md:text-5xl font-bold text-primary-navy mb-6">Our Services</h1>
<p className="text-xl text-soft-text max-w-3xl">
Comprehensive communications and infrastructure solutions designed to help your business thrive in today's digital landscape.
</p>
</div>
</div>
</section>
{/* Services Grid */}
<section className="bg-background py-16">
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
{services.map((service) => (
<div key={service.id} className="group">
<div className="rounded-md overflow-hidden shadow-sm hover:shadow-md transition-shadow bg-card border border-border">
<div className="p-6">
<div className="flex items-center gap-4 mb-4">
<div className="h-12 w-12 rounded-md bg-section-alt flex items-center justify-center flex-shrink-0">
{service.icon === 'message-circle' && <MessageCircle className="h-6 w-6 text-primary-navy" />}
{service.icon === 'users' && <Users className="h-6 w-6 text-primary-navy" />}
{service.icon === 'life-buoy' && <LifeBuoy className="h-6 w-6 text-primary-navy" />}
{service.icon === 'graduation-cap' && <GraduationCap className="h-6 w-6 text-primary-navy" />}
{service.icon === 'link' && <LinkIcon className="h-6 w-6 text-primary-navy" />}
{service.icon === 'wifi' && <Wifi className="h-6 w-6 text-primary-navy" />}
{service.icon === 'network' && <Network className="h-6 w-6 text-primary-navy" />}
</div>
<h2 className="text-xl font-semibold text-primary-navy group-hover:text-primary-navy-dark transition-colors">
{service.name}
</h2>
</div>
<p className="text-soft-text mb-4">{service.shortDesc}</p>
<div className="space-y-2 mb-4">
{service.benefits.slice(0, 3).map((benefit, index) => (
<div key={index} className="flex items-center gap-2 text-sm text-soft-text">
<div className="h-4 w-4 rounded-full bg-primary-navy text-white flex items-center justify-center flex-shrink-0">
<svg className="h-2 w-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M5 13l4 4L19 7" />
</svg>
</div>
<span>{benefit}</span>
</div>
))}
</div>
<Link to={`/services/${service.id}`} className="inline-flex items-center gap-1 text-primary-navy font-medium hover:underline mt-2">
Learn more
<svg className="h-4 w-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M9 5l7 7-7 7" />
</svg>
</Link>
</div>
</div>
</div>
))}
</div>
</div>
</section>
{/* CTA */}
<section className="bg-section-alt py-16">
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center">
<div>
<h2 className="text-3xl md:text-4xl font-bold text-primary-navy mb-6">Looking for Something Specific?</h2>
<p className="text-xl text-soft-text mb-8 max-w-2xl mx-auto">
Don't see exactly what you're looking for? We can help you find the right solution.
</p>
<Link
to="/contact"
className="inline-block bg-primary-navy text-white px-8 py-3 rounded-md font-bold text-lg hover:bg-primary-navy-dark transition-colors"
>
Request Consultation
</Link>
</div>
</div>
</section>
</>
)
}
export default Services