"use client" import { useEffect, useRef, useState } from "react" import { Button } from "@/components/ui/button" import Link from "next/link" import { ServicesMobileOnly } from "@/components/services-mobile-only" const services = [ { title: "Black & Grey Realism", description: "Photorealistic tattoos with incredible depth and detail using black and grey shading techniques.", features: ["Lifelike portraits", "Detailed shading", "3D effects"], price: "Starting at $250", bgColor: "bg-gray-100", }, { title: "Cover-ups & Blackout", description: "Transform old tattoos into stunning new pieces with expert cover-up techniques or bold blackout designs.", features: ["Free consultation", "Creative solutions", "Complete coverage"], price: "Starting at $300", bgColor: "bg-black", }, { title: "Fine Line & Micro Realism", description: "Delicate, precise linework and tiny realistic designs that showcase incredible detail.", features: ["Single needle work", "Intricate details", "Minimalist aesthetic"], price: "Starting at $150", bgColor: "bg-purple-100", }, { title: "Traditional & Neo-Traditional", description: "Bold American traditional and neo-traditional styles with vibrant colors and strong lines.", features: ["Classic designs", "Bold color palettes", "Timeless appeal"], price: "Starting at $200", bgColor: "bg-red-100", }, { title: "Anime & Watercolor", description: "Vibrant anime characters and painterly watercolor effects that bring art to life on skin.", features: ["Character designs", "Soft color blends", "Artistic techniques"], price: "Starting at $250", bgColor: "bg-blue-100", }, ] export function ServicesSection() { const [activeService, setActiveService] = useState(0) const [visibleItems, setVisibleItems] = useState([]) const sectionRef = useRef(null) useEffect(() => { const observer = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const itemIndex = Number.parseInt(entry.target.getAttribute("data-service-index") || "0") setVisibleItems((prev) => [...new Set([...prev, itemIndex])]) setActiveService(itemIndex) } }) }, { threshold: 0.5, rootMargin: "0px 0px -50% 0px" }, ) const items = sectionRef.current?.querySelectorAll("[data-service-index]") items?.forEach((item) => observer.observe(item)) return () => observer.disconnect() }, []) return (
What We Offer

SERVICES

From custom designs to cover-ups, we offer comprehensive tattoo services with the highest standards of quality and safety.

Tattoo Equipment
{/* Left Side - Enhanced with split composition styling */}
Our Services

Choose Your Style

{services.map((service, index) => (
{ const element = document.querySelector(`[data-service-index="${index}"]`) element?.scrollIntoView({ behavior: "smooth" }) }} >

{service.title}

{service.price}

))}
{/* Right Side - Enhanced with split composition styling */}
{services.map((service, index) => (
Service {String(index + 1).padStart(2, "0")}

{service.title.split(" ").map((word, i) => ( {word} ))}

{service.description}

{service.features.map((feature, idx) => (

{feature}

))}

{service.price}

{service.title}
))}
) }