Merge version_2_1782173917549 into main #1

Merged
bender merged 2 commits from version_2_1782173917549 into main 2026-06-23 00:21:56 +00:00
11 changed files with 542 additions and 301 deletions

View File

@@ -8,12 +8,12 @@
--background: #f5faff;
--card: #ffffff;
--foreground: #001122;
--primary-cta: #15479c;
--primary-cta: #ea580c;
--primary-cta-text: #f5faff;
--secondary-cta: #ffffff;
--secondary-cta-text: #001122;
--accent: #a8cce8;
--background-accent: #7ba3cf;
--accent: #fdba74;
--background-accent: #f97316;
/* @layout/border-radius/rounded */
--radius: 0.5rem;

View File

@@ -1,310 +1,38 @@
import AboutFeaturesSplit from '@/components/sections/about/AboutFeaturesSplit';
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqTabbedAccordion from '@/components/sections/faq/FaqTabbedAccordion';
import FeaturesDetailedSteps from '@/components/sections/features/FeaturesDetailedSteps';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import HeroSplitVerticalMarquee from '@/components/sections/hero/HeroSplitVerticalMarquee';
import MetricsIconCards from '@/components/sections/metrics/MetricsIconCards';
import TestimonialQuoteCards from '@/components/sections/testimonial/TestimonialQuoteCards';
import { Award, Building2, CheckCircle, Layers, Paintbrush, Zap } from "lucide-react";
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
// AUTO-GENERATED shell by per-section-migrate.
// Section bodies live in ./<PageBase>/sections/<X>.tsx. Edit the section
// files directly. Non-block content (wrappers, non-inlinable sections) is
// preserved inline; extracted section blocks become <XSection/> refs.
export default function HomePage() {
import React from 'react';
import HeroSection from './HomePage/sections/Hero';
import AboutSection from './HomePage/sections/About';
import ServicesSection from './HomePage/sections/Services';
import GallerySection from './HomePage/sections/Gallery';
import MetricsSection from './HomePage/sections/Metrics';
import TestimonialsSection from './HomePage/sections/Testimonials';
import FaqSection from './HomePage/sections/Faq';
import ContactSection from './HomePage/sections/Contact';
import LocationSection from './HomePage/sections/Location';export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroSplitVerticalMarquee
tag="Transforming Spaces, Elevating Lives"
title="Professional General Contracting in Florida"
description="OA General Contracting specializes in high-quality remodeling, painting, flooring, and home improvements. We bring craftsmanship to every detail."
primaryButton={{
text: "Free Estimate",
href: "#contact",
}}
secondaryButton={{
text: "Our Services",
href: "#services",
}}
leftItems={[
{
imageSrc: "http://img.b2bpic.net/free-photo/elegant-matte-black-faucet-dark-kitchen-premium-interior-design-with-minimalist-furniture_169016-72709.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-kitchen-interior-design_23-2150976527.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/contemporary-kitchen_1048-11323.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/young-family-painting-apartment-wall-while-redecorating-with-roller-brush-apartment-redecoration-home-construction-while-renovating-improving-repair-decorating_482257-14144.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/low-angle-man-tiling-floor_23-2149344004.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/woman-street-wear-going-down-steps_23-2147910872.jpg",
},
]}
rightItems={[
{
imageSrc: "http://img.b2bpic.net/free-photo/plumbing-professional-doing-his-job_23-2150721539.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/japanese-house-entrance_23-2149445336.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/portrait-person-working-construction-field_23-2151349737.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/people-renovating-house-concept_53876-20670.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/modern-kitchen-island-with-fluted-glass-cabinets-stylish-interior-with-builtin-appliances_169016-72717.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/tanner-with-gadget_1098-12745.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutFeaturesSplit
tag="About Us"
title="Commitment to Quality Craftsmanship"
description="With years of experience, OA General Contracting LLC is dedicated to enhancing the beauty and functionality of your home. We focus on cost-effective alternatives and precision workmanship to turn your vision into reality."
items={[
{
icon: Building2,
title: "Home Remodeling",
description: "Kitchen and bathroom expert renovations.",
},
{
icon: Paintbrush,
title: "Expert Painting",
description: "Flawless finishes for interior and exterior.",
},
{
icon: Layers,
title: "Flooring Solutions",
description: "Professional flooring installations.",
},
]}
imageSrc="http://img.b2bpic.net/free-photo/top-view-steel-hammer-with-other-construction-elements-tools_23-2150576405.jpg"
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="services" data-section="services">
<SectionErrorBoundary name="services">
<FeaturesDetailedSteps
tag="Our Expertise"
title="Comprehensive Contracting Services"
description="From small fixes to major transformations, our team provides reliable, top-tier services."
steps={[
{
tag: "01",
title: "Plumbing",
subtitle: "Reliable Systems",
description: "Expert installations, upgrades, and sink piping repairs.",
imageSrc: "http://img.b2bpic.net/free-photo/man-with-coffee-seaking-phone_23-2147769508.jpg",
},
{
tag: "02",
title: "Fencing",
subtitle: "Secure & Stylish",
description: "Quality fence installations that elevate your property.",
imageSrc: "http://img.b2bpic.net/free-photo/portrait-smiling-man-factory-worker-standing-industrial-production-hall_342744-87.jpg",
},
{
tag: "03",
title: "Pressure Washing",
subtitle: "Surface Care",
description: "Restoring the longevity of your exterior surfaces.",
imageSrc: "http://img.b2bpic.net/free-photo/builder-with-construction-tools-construction-site-looking-blueprint_169016-5269.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<ServicesSection />
<div id="gallery" data-section="gallery">
<SectionErrorBoundary name="gallery">
<FeaturesImageBento
tag="Our Work"
title="Showcase of Craftsmanship"
description="Browse our latest projects transforming spaces across Florida."
items={[
{
title: "Kitchen Remodel",
description: "Full kitchen renovation in Weston.",
imageSrc: "http://img.b2bpic.net/free-photo/man-sitting-front-dinning-table-having-juice-using-mobile-phone_23-2148195253.jpg",
},
{
title: "Exterior Painting",
description: "Premium exterior paint finish.",
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-painting-wall-home_23-2149098981.jpg",
},
{
title: "Luxury Flooring",
description: "Seamless tile flooring installation.",
imageSrc: "http://img.b2bpic.net/free-photo/wood-warm-texture-empty-background_1194-287534.jpg",
},
{
title: "Pressure Washing",
description: "Cleaning driveways and stairs.",
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-working-with-helmet_23-2149343698.jpg",
},
{
title: "Plumbing Repair",
description: "Precision sink and pipe installation.",
imageSrc: "http://img.b2bpic.net/free-photo/male-plumber-working-with-client-fix-kitchen-problems_23-2150990686.jpg",
},
{
title: "Fence Installation",
description: "Beautiful garden white fencing.",
imageSrc: "http://img.b2bpic.net/free-photo/fashion-bearded-hipster-posing-fence-style-diversity_482257-36988.jpg",
},
{
title: "Home Renovation",
description: "General remodeling service project.",
imageSrc: "http://img.b2bpic.net/free-photo/smart-attractive-handy-glasses-asian-male-craftman-interior-designer-focus-wood-working-site-constrution-home-interior-design-house-renovation-improvement-concept_609648-1009.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<GallerySection />
<LocationSection />
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsIconCards
tag="Our Impact"
title="Quality by the Numbers"
description="We pride ourselves on efficiency and customer-first results."
metrics={[
{
icon: Award,
title: "Professional Experience",
value: "10+ Years",
},
{
icon: CheckCircle,
title: "Satisfied Clients",
value: "500+",
},
{
icon: Zap,
title: "Average Response Time",
value: "<24h",
},
]}
/>
</SectionErrorBoundary>
</div>
<MetricsSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialQuoteCards
tag="Testimonials"
title="What Clients Say"
description="Building trust through excellence in every remodel."
testimonials={[
{
name: "Oswaldo Ramos Arantes Neto",
role: "Client",
quote: "They did an excellent job on my kitchen in Weston and I recommend them 100%!",
imageSrc: "http://img.b2bpic.net/free-photo/two-successful-male-architect-have-conversation-office_23-2147843005.jpg",
},
{
name: "Maria Garcia",
role: "Homeowner",
quote: "Professional, quick, and the quality is unmatched. Very happy.",
imageSrc: "http://img.b2bpic.net/free-photo/young-smiling-couple-renovating-remodeling-their-new-apartment-man-is-painting-walls-with-roller-woman-is-connecting-with-laptop_496169-761.jpg",
},
{
name: "John Smith",
role: "Client",
quote: "Transformed our home completely. Highly recommended contractor.",
imageSrc: "http://img.b2bpic.net/free-photo/scenery-designers-work_23-2149741777.jpg",
},
{
name: "Alice Brown",
role: "Homeowner",
quote: "Great communication and fair pricing for our renovations.",
imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-female-dentist-dentistry-concept-dental-treatment_169016-66975.jpg",
},
{
name: "David Miller",
role: "Client",
quote: "Amazing attention to detail. Will work with them again.",
imageSrc: "http://img.b2bpic.net/free-photo/smiling-man-showing-female-colleague-tablet-screen-stairs_1262-20432.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqTabbedAccordion
tag="Support"
title="Common Questions"
description="Everything you need to know about our contracting process."
categories={[
{
name: "General",
items: [
{
question: "What areas do you serve?",
answer: "We serve a 60-mile radius around Summerville, SC, and also Weston, FL areas.",
},
{
question: "Do you offer free estimates?",
answer: "Yes, we provide free, no-obligation estimates for all home improvement projects.",
},
{
question: "What types of remodeling do you handle?",
answer: "We specialize in kitchen, bathroom, and complete home makeovers.",
},
],
},
{
name: "Services",
items: [
{
question: "Do you do plumbing?",
answer: "Yes, we offer expert plumbing installations, repairs, and upgrades.",
},
{
question: "Can you pressure wash driveways?",
answer: "Absolutely, our pressure washing services restore exterior surfaces effectively.",
},
],
},
]}
/>
</SectionErrorBoundary>
</div>
<FaqSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Contact Us"
text="Ready to transform your home? Reach out to OA General Contracting today for a free, no-obligation estimate."
primaryButton={{
text: "Call (754) 715-6001",
href: "tel:7547156001",
}}
secondaryButton={{
text: "Email Us",
href: "mailto:oa@oageneralcontracting.com",
}}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}

View File

@@ -0,0 +1,39 @@
// 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 AboutFeaturesSplit from '@/components/sections/about/AboutFeaturesSplit';
import { Award, Building2, CheckCircle, Layers, Paintbrush, Zap } from "lucide-react";
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutFeaturesSplit
tag="About Us"
title="Commitment to Quality Craftsmanship"
description="With years of experience, OA General Contracting LLC is dedicated to enhancing the beauty and functionality of your home. We focus on cost-effective alternatives and precision workmanship to turn your vision into reality."
items={[
{
icon: Building2,
title: "Home Remodeling",
description: "Kitchen and bathroom expert renovations.",
},
{
icon: Paintbrush,
title: "Expert Painting",
description: "Flawless finishes for interior and exterior.",
},
{
icon: Layers,
title: "Flooring Solutions",
description: "Professional flooring installations.",
},
]}
imageSrc="http://img.b2bpic.net/free-photo/top-view-steel-hammer-with-other-construction-elements-tools_23-2150576405.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,27 @@
// 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="Contact Us"
text="Ready to transform your home? Reach out to OA General Contracting today for a free, no-obligation estimate."
primaryButton={{
text: "Call (754) 715-6001",
href: "tel:7547156001",
}}
secondaryButton={{
text: "Email Us",
href: "mailto:oa@oageneralcontracting.com",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,52 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "faq" section.
import React from 'react';
import FaqTabbedAccordion from '@/components/sections/faq/FaqTabbedAccordion';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FaqSection(): React.JSX.Element {
return (
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqTabbedAccordion
tag="Support"
title="Common Questions"
description="Everything you need to know about our contracting process."
categories={[
{
name: "General",
items: [
{
question: "What areas do you serve?",
answer: "We serve a 60-mile radius around Summerville, SC, and also Weston, FL areas.",
},
{
question: "Do you offer free estimates?",
answer: "Yes, we provide free, no-obligation estimates for all home improvement projects.",
},
{
question: "What types of remodeling do you handle?",
answer: "We specialize in kitchen, bathroom, and complete home makeovers.",
},
],
},
{
name: "Services",
items: [
{
question: "Do you do plumbing?",
answer: "Yes, we offer expert plumbing installations, repairs, and upgrades.",
},
{
question: "Can you pressure wash driveways?",
answer: "Absolutely, our pressure washing services restore exterior surfaces effectively.",
},
],
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,57 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "gallery" section.
import React from 'react';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function GallerySection(): React.JSX.Element {
return (
<div id="gallery" data-section="gallery">
<SectionErrorBoundary name="gallery">
<FeaturesImageBento
tag="Our Work"
title="Showcase of Craftsmanship"
description="Browse our latest projects transforming spaces across Florida."
items={[
{
title: "Kitchen Remodel",
description: "Full kitchen renovation in Weston.",
imageSrc: "http://img.b2bpic.net/free-photo/man-sitting-front-dinning-table-having-juice-using-mobile-phone_23-2148195253.jpg",
},
{
title: "Exterior Painting",
description: "Premium exterior paint finish.",
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-painting-wall-home_23-2149098981.jpg",
},
{
title: "Luxury Flooring",
description: "Seamless tile flooring installation.",
imageSrc: "http://img.b2bpic.net/free-photo/wood-warm-texture-empty-background_1194-287534.jpg",
},
{
title: "Pressure Washing",
description: "Cleaning driveways and stairs.",
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-working-with-helmet_23-2149343698.jpg",
},
{
title: "Plumbing Repair",
description: "Precision sink and pipe installation.",
imageSrc: "http://img.b2bpic.net/free-photo/male-plumber-working-with-client-fix-kitchen-problems_23-2150990686.jpg",
},
{
title: "Fence Installation",
description: "Beautiful garden white fencing.",
imageSrc: "http://img.b2bpic.net/free-photo/fashion-bearded-hipster-posing-fence-style-diversity_482257-36988.jpg",
},
{
title: "Home Renovation",
description: "General remodeling service project.",
imageSrc: "http://img.b2bpic.net/free-photo/smart-attractive-handy-glasses-asian-male-craftman-interior-designer-focus-wood-working-site-constrution-home-interior-design-house-renovation-improvement-concept_609648-1009.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,136 @@
/* eslint-disable */
// @ts-nocheck — generated by catalog-eject; runtime-correct but TS strict-mode false-positives on inlined catalog body
import Button from "@/components/ui/Button";
import HeroBackgroundSlot from "@/components/ui/HeroBackgroundSlot";
import TextAnimation from "@/components/ui/TextAnimation";
import ImageOrVideo from "@/components/ui/ImageOrVideo";
const primaryButton = {
text: "Free Estimate",
href: "#contact"
};
const secondaryButton = {
text: "Our Services",
href: "#services"
};
const leftItems = [
{
imageSrc: "https://storage.googleapis.com/webild/users/user_3FVvm8wEysRPV9bC25IuulDoP5E/uploaded-1782173916306-ot0xaffo.png"
},
{
imageSrc: "https://storage.googleapis.com/webild/users/user_3FVvm8wEysRPV9bC25IuulDoP5E/uploaded-1782173916308-6uc1r648.png"
},
{
imageSrc: "https://storage.googleapis.com/webild/users/user_3FVvm8wEysRPV9bC25IuulDoP5E/uploaded-1782173916311-e0vskvd2.png"
},
{
imageSrc: "https://storage.googleapis.com/webild/users/user_3FVvm8wEysRPV9bC25IuulDoP5E/uploaded-1782173916313-7eb8k1s3.png"
},
{
imageSrc: "https://storage.googleapis.com/webild/users/user_3FVvm8wEysRPV9bC25IuulDoP5E/uploaded-1782173916314-7gr8bq0c.png"
},
{
imageSrc: "https://storage.googleapis.com/webild/users/user_3FVvm8wEysRPV9bC25IuulDoP5E/uploaded-1782173916306-ot0xaffo.png"
}
];
const rightItems = [
{
imageSrc: "https://storage.googleapis.com/webild/users/user_3FVvm8wEysRPV9bC25IuulDoP5E/uploaded-1782173916314-7gr8bq0c.png"
},
{
imageSrc: "https://storage.googleapis.com/webild/users/user_3FVvm8wEysRPV9bC25IuulDoP5E/uploaded-1782173916313-7eb8k1s3.png"
},
{
imageSrc: "https://storage.googleapis.com/webild/users/user_3FVvm8wEysRPV9bC25IuulDoP5E/uploaded-1782173916311-e0vskvd2.png"
},
{
imageSrc: "https://storage.googleapis.com/webild/users/user_3FVvm8wEysRPV9bC25IuulDoP5E/uploaded-1782173916308-6uc1r648.png"
},
{
imageSrc: "https://storage.googleapis.com/webild/users/user_3FVvm8wEysRPV9bC25IuulDoP5E/uploaded-1782173916306-ot0xaffo.png"
},
{
imageSrc: "https://storage.googleapis.com/webild/users/user_3FVvm8wEysRPV9bC25IuulDoP5E/uploaded-1782173916314-7gr8bq0c.png"
}
];
type HeroSplitVerticalMarqueeProps = {
tag: string;
title: string;
description: string;
primaryButton: { text: string; href: string };
secondaryButton: { text: string; href: string };
leftItems: ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never })[];
rightItems: ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never })[];
};
const HeroInline = () => {
const duplicatedLeft = [...leftItems, ...leftItems, ...leftItems, ...leftItems];
const duplicatedRight = [...rightItems, ...rightItems, ...rightItems, ...rightItems];
return (
<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>{"Transforming Spaces, Elevating Lives"}</p>
</div>
<TextAnimation
text={"Professional General Contracting in Florida"}
variant="fade"
gradientText={true}
tag="h1"
className="text-7xl 2xl:text-8xl leading-[1.15] font-semibold text-center md:text-left text-balance"
/>
<TextAnimation
text={"OA General Contracting specializes in high-quality remodeling, painting, flooring, and home improvements. We bring craftsmanship to every detail."}
variant="fade"
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={primaryButton.text} href={primaryButton.href} variant="primary"/>
<Button text={secondaryButton.text} href={secondaryButton.href} variant="secondary"animationDelay={0.1} />
</div>
</div>
</div>
<div className="w-full md:w-1/2 h-100 md:h-[75vh] flex gap-2 xl:gap-3 2xl:gap-4 overflow-hidden">
<div className="flex-1 overflow-hidden mask-fade-y-medium">
<div className="flex flex-col gap-2 xl:gap-3 2xl:gap-4 animate-marquee-vertical">
{duplicatedLeft.map((item, index) => (
<div key={index} className="shrink-0 aspect-square p-2 xl:p-3 2xl:p-4 card rounded overflow-hidden">
<ImageOrVideo imageSrc={item.imageSrc} videoSrc={item.videoSrc} />
</div>
))}
</div>
</div>
<div className="flex-1 overflow-hidden mask-fade-y-medium">
<div className="flex flex-col gap-2 xl:gap-3 2xl:gap-4 animate-marquee-vertical-reverse">
{duplicatedRight.map((item, index) => (
<div key={index} className="shrink-0 aspect-square p-2 xl:p-3 2xl:p-4 card rounded overflow-hidden">
<ImageOrVideo imageSrc={item.imageSrc} videoSrc={item.videoSrc} />
</div>
))}
</div>
</div>
</div>
</div>
</section>
);
};
export default function HeroSection() {
return (
<div data-webild-section="hero" id="hero">
<HeroInline />
</div>
);
}

View File

@@ -0,0 +1,69 @@
import React from 'react';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
import TextAnimation from "@/components/ui/TextAnimation";
import ScrollReveal from "@/components/ui/ScrollReveal";
export default function LocationSection(): React.JSX.Element {
return (
<div id="location" data-webild-section="location">
<SectionErrorBoundary name="location">
<section className="relative w-full py-24 bg-background">
<div className="w-content-width mx-auto">
<div className="text-center mb-16">
<TextAnimation
text="Location"
variant="slide-up"
tag="h2"
gradientText={false}
className="text-4xl md:text-5xl font-bold text-primary-cta mb-4"
/>
</div>
<div className="grid grid-cols-1 lg:grid-cols-2 gap-0 rounded-lg overflow-hidden shadow-lg">
<div className="bg-foreground text-background p-12 flex flex-col justify-center">
<ScrollReveal variant="fade">
<p className="text-lg mb-8 text-background/90">
Contact OA General Contracting LLC for all your home improvement needs in Summerville, SC, and surrounding areas reaching a 60-mile radius.
</p>
<h3 className="text-xl font-semibold text-primary-cta mb-4">Areas we serve</h3>
<div className="grid grid-cols-2 gap-x-4 gap-y-2 text-background/80">
<span>Seabrook</span>
<span>Kingstre</span>
<span>Tomotley</span>
<span>Pine Needles</span>
<span>Cameron</span>
<span>Edisto</span>
<span>Varnville</span>
<span>Wilson</span>
<span>Sampit</span>
<span>Dale</span>
<span>Belser Crossroads</span>
<span>Blakely</span>
<span>Sheldon</span>
<span>Salters</span>
<span>Ehrhardt</span>
</div>
</ScrollReveal>
</div>
<div className="h-[400px] lg:h-auto relative">
<iframe
src="https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d14333.91423403247!2d-80.3934599!3d26.083232!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x88d9a6c7c4c4c4c5%3A0x4c4c4c4c4c4c4c4c!2s167%20Bayridge%20Ln%2C%20Weston%2C%20FL%2033326!5e1!3m2!1sen!2sus!4v1716480000000!5m2!1sen!2sus"
width="100%"
height="100%"
style={{ border: 0 }}
allowFullScreen={false}
loading="lazy"
referrerPolicy="no-referrer-when-downgrade"
className="absolute inset-0"
title="OA General Contracting Location Map"
></iframe>
</div>
</div>
</div>
</section>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,38 @@
// 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 MetricsIconCards from '@/components/sections/metrics/MetricsIconCards';
import { Award, Building2, CheckCircle, Layers, Paintbrush, Zap } from "lucide-react";
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function MetricsSection(): React.JSX.Element {
return (
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsIconCards
tag="Our Impact"
title="Quality by the Numbers"
description="We pride ourselves on efficiency and customer-first results."
metrics={[
{
icon: Award,
title: "Professional Experience",
value: "10+ Years",
},
{
icon: CheckCircle,
title: "Satisfied Clients",
value: "500+",
},
{
icon: Zap,
title: "Average Response Time",
value: "<24h",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,43 @@
// 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 FeaturesDetailedSteps from '@/components/sections/features/FeaturesDetailedSteps';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ServicesSection(): React.JSX.Element {
return (
<div id="services" data-section="services">
<SectionErrorBoundary name="services">
<FeaturesDetailedSteps
tag="Our Expertise"
title="Comprehensive Contracting Services"
description="From small fixes to major transformations, our team provides reliable, top-tier services."
steps={[
{
tag: "01",
title: "Plumbing",
subtitle: "Reliable Systems",
description: "Expert installations, upgrades, and sink piping repairs.",
imageSrc: "http://img.b2bpic.net/free-photo/man-with-coffee-seaking-phone_23-2147769508.jpg",
},
{
tag: "02",
title: "Fencing",
subtitle: "Secure & Stylish",
description: "Quality fence installations that elevate your property.",
imageSrc: "http://img.b2bpic.net/free-photo/portrait-smiling-man-factory-worker-standing-industrial-production-hall_342744-87.jpg",
},
{
tag: "03",
title: "Pressure Washing",
subtitle: "Surface Care",
description: "Restoring the longevity of your exterior surfaces.",
imageSrc: "http://img.b2bpic.net/free-photo/builder-with-construction-tools-construction-site-looking-blueprint_169016-5269.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,52 @@
// 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 Clients Say"
description="Building trust through excellence in every remodel."
testimonials={[
{
name: "Oswaldo Ramos Arantes Neto",
role: "Client",
quote: "They did an excellent job on my kitchen in Weston and I recommend them 100%!",
imageSrc: "http://img.b2bpic.net/free-photo/two-successful-male-architect-have-conversation-office_23-2147843005.jpg",
},
{
name: "Maria Garcia",
role: "Homeowner",
quote: "Professional, quick, and the quality is unmatched. Very happy.",
imageSrc: "http://img.b2bpic.net/free-photo/young-smiling-couple-renovating-remodeling-their-new-apartment-man-is-painting-walls-with-roller-woman-is-connecting-with-laptop_496169-761.jpg",
},
{
name: "John Smith",
role: "Client",
quote: "Transformed our home completely. Highly recommended contractor.",
imageSrc: "http://img.b2bpic.net/free-photo/scenery-designers-work_23-2149741777.jpg",
},
{
name: "Alice Brown",
role: "Homeowner",
quote: "Great communication and fair pricing for our renovations.",
imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-female-dentist-dentistry-concept-dental-treatment_169016-66975.jpg",
},
{
name: "David Miller",
role: "Client",
quote: "Amazing attention to detail. Will work with them again.",
imageSrc: "http://img.b2bpic.net/free-photo/smiling-man-showing-female-colleague-tablet-screen-stairs_1262-20432.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}