diff --git a/vula-index.json b/vula-index.json new file mode 100644 index 0000000..7f6021a --- /dev/null +++ b/vula-index.json @@ -0,0 +1,614 @@ +{ + "projectName": "Gumede & Partners", + "businessType": "appointment", + "industry": "appointment", + "tone": "", + "tier": 2, + "serviceType": "services", + "generatedAt": "2026-08-05T14:57:50.876Z", + "sections": [ + { + "name": "FirmWelcomeSection", + "importPath": "@/components/sections/FirmWelcomeSection", + "position": 0, + "role": "unknown", + "hasImage": false, + "hasForm": false, + "itemCount": 1, + "layout": "flex-row", + "headings": [ + "Gumede & Partners" + ], + "buttonLabels": [ + "Schedule a Consultation" + ], + "people": [], + "allText": [ + "next/link", + "@/components/ui/Button", + "firmwelcome", + "firm-welcome", + "min-h-[70vh] flex flex-col items-center justify-center bg-[#F0F8FF] px-6 py-24 text-center", + "text-6xl lg:text-7xl font-black text-[#1A2B3C] leading-tight tracking-tight", + "Gumede & Partners", + "text-xl text-[#1A2B3C]/70 mt-4 max-w-xl", + "Corporate law, real estate transactions, and business litigation — handled with precision in Pietermaritzburg.", + "mt-8", + "Schedule a consultation", + "lg", + "bg-[#FFD700] text-[#1A2B3C] hover:bg-[#FFD700]/90 border-transparent rounded-lg", + "Schedule a Consultation" + ] + }, + { + "name": "FirmOverviewSection", + "importPath": "@/components/sections/FirmOverviewSection", + "position": 1, + "role": "about", + "hasImage": false, + "hasForm": false, + "itemCount": 3, + "layout": "grid", + "headings": [ + "{item.title}" + ], + "buttonLabels": [ + "Book a Consultation" + ], + "people": [], + "allText": [ + "next/link", + "@/components/ui/Button", + "lucide-react", + "Senior attention on every file", + "Your matter is handled directly by an experienced attorney — not handed down to a junior associate.", + "Appointment-first practice", + "Consultations are scheduled around your diary at our Pietermaritzburg offices or virtually.", + "Local legal knowledge", + "Deep familiarity with KwaZulu-Natal property, planning, and commercial courts.", + "firmoverview", + "about-firm", + "bg-[#1A2B3C] text-[#F0F8FF] py-20 px-6", + "max-w-6xl mx-auto grid grid-cols-1 lg:grid-cols-[1.6fr_0.7fr] gap-12 lg:gap-16", + "border-b lg:border-b-0 lg:border-r border-white/15 pb-10 lg:pb-0 lg:pr-16", + "text-xs uppercase tracking-[0.14em] text-[#FFD700]", + "The firm", + "mt-4 text-4xl lg:text-5xl font-bold text-[#F0F8FF] tracking-tight leading-tight", + "Decades of trusted counsel,", + "text-[#FFD700]", + "without", + "the impersonal machinery.", + "mt-6 text-lg leading-relaxed text-[#F0F8FF]/80 max-w-xl", + "Gumede & Partners was founded in Pietermaritzburg to give established companies, property developers, and emerging entrepreneurs a different kind of legal experience — one built on direct access, disciplined preparation, and practical advice.", + "mt-4 text-lg leading-relaxed text-[#F0F8FF]/80 max-w-xl", + "Because consultations are appointment-based, every meeting gets the time it deserves. No long queues, no rushed advice — just clear direction from attorneys who know KwaZulu-Natal.", + "mt-8", + "lg", + "bg-[#FFD700] text-[#1A2B3C] hover:bg-[#FFD700]/90 border-transparent rounded-lg", + "Book a Consultation", + "flex flex-col justify-center divide-y divide-white/15", + "py-6", + "flex items-start gap-4", + "mt-1 h-6 w-6 text-[#FFD700]", + "font-semibold text-[#F0F8FF]", + "mt-1 text-sm leading-relaxed text-[#F0F8FF]/70" + ] + }, + { + "name": "PracticeAreasSection", + "importPath": "@/components/sections/PracticeAreasSection", + "position": 2, + "role": "portfolio", + "hasImage": false, + "hasForm": false, + "itemCount": 4, + "layout": "grid", + "headings": [ + "{area.title}" + ], + "buttonLabels": [], + "people": [], + "allText": [ + "lucide-react", + "@/components/ui/Card", + "Corporate Law", + "Company formation, governance, mergers, and shareholder agreements for growing and established enterprises.", + "Real Estate & Property Law", + "Commercial leases, property transfers, and development approvals guided through to registration.", + "Business Litigation", + "Commercial dispute resolution and court representation aimed at protecting your bottom line.", + "Commercial Contracts", + "Drafting, negotiation, and review of contracts that safeguard your commercial position.", + "practiceareas", + "practice-areas", + "bg-[#F0F8FF] py-20 px-6", + "max-w-6xl mx-auto", + "max-w-2xl", + "text-xs uppercase tracking-[0.14em] text-[#0077BE]", + "Practice areas", + "mt-3 text-4xl lg:text-5xl font-bold text-[#1A2B3C] tracking-tight", + "Legal expertise built around", + "text-[#0077BE]", + "Pietermaritzburg", + "business.", + "mt-4 text-[#1A2B3C]/70", + "Four core disciplines, one client-first standard — practical counsel for companies, developers, and individuals.", + "mt-12 grid grid-cols-1 md:grid-cols-2 gap-6", + "bg-transparent border border-[#1A2B3C]/15 rounded-lg hover:border-[#0077BE] transition-colors duration-200 shadow-none", + "p-6", + "h-8 w-8 text-[#0077BE]", + "mt-4 text-xl font-semibold text-[#1A2B3C]", + "mt-2 text-sm leading-relaxed text-[#1A2B3C]/70" + ] + }, + { + "name": "SpecialOffersSection", + "importPath": "@/components/sections/SpecialOffersSection", + "position": 3, + "role": "cms-campaigns", + "hasImage": true, + "hasForm": false, + "itemCount": -1, + "layout": "grid", + "headings": [ + "{d.headline}" + ], + "buttonLabels": [], + "people": [], + "allText": [ + "use client", + "next/link", + "next/image", + "@/components/ui/Button", + "@/components/ui/Card", + "@/hooks/useVulaContent", + "lucide-react", + "campaigns", + "flex justify-center py-16", + "w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin", + "special-offers", + "specialoffers", + "bg-[#F0F8FF] py-20 px-6", + "max-w-6xl mx-auto", + "grid md:grid-cols-[1.6fr_0.7fr] gap-8 md:gap-12", + "text-xs uppercase tracking-[0.14em] text-[#0077BE]", + "Current client incentives", + "mt-4 font-serif text-4xl lg:text-5xl font-black text-[#1A2B3C] leading-tight tracking-tight", + "Clear fees,", + "italic text-[#0077BE]", + "limited", + "windows.", + "mt-4 text-[#1A2B3C]/70 max-w-xl", + "Fixed-fee packages and introductory consultations, published when available.", + "md:border-l border-[#1A2B3C]/15 md:pl-10 flex items-end pb-1", + "text-sm text-[#1A2B3C]/60", + "Every campaign is vetted by a practising attorney before it reaches this page.", + "grid md:grid-cols-3 gap-6 mt-12", + "bg-transparent border border-[#1A2B3C]/15 rounded-lg hover:border-[#0077BE] transition-colors duration-200 shadow-none", + "p-6", + "relative h-44 w-full overflow-hidden rounded-md", + "(max-width: 768px) 100vw, 33vw", + "object-cover", + "flex h-44 items-center justify-center bg-[#1A2B3C]/5 text-[#1A2B3C]/30", + "text-xs uppercase tracking-[0.14em]", + "Campaign", + "mt-5", + "text-xs uppercase tracking-[0.14em] text-[#00A8CC]", + "mt-2 text-xl font-bold text-[#1A2B3C]", + "mt-2 text-sm leading-relaxed text-[#1A2B3C]/70", + "mt-4 inline-flex", + "outline", + "sm", + "transition-all duration-200 ease-out", + "Book consultation", + "ml-2 h-4 w-4" + ], + "cmsCollection": "campaigns" + }, + { + "name": "LegalTeamSection", + "importPath": "@/components/sections/LegalTeamSection", + "position": 4, + "role": "team", + "hasImage": true, + "hasForm": false, + "itemCount": -1, + "layout": "grid", + "headings": [ + "{d.name}" + ], + "buttonLabels": [], + "people": [], + "allText": [ + "use client", + "next/image", + "@/hooks/useVulaContent", + "lucide-react", + "team_members", + "flex justify-center py-16", + "w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin", + "legal-team", + "legalteam", + "bg-[#F0F8FF] py-20 px-6", + "max-w-6xl mx-auto", + "max-w-2xl", + "text-xs uppercase tracking-[0.14em] text-[#0077BE]", + "Attorneys & support", + "mt-4 font-serif text-4xl lg:text-5xl font-black text-[#1A2B3C] leading-tight tracking-tight", + "The people who", + "italic text-[#00A8CC]", + "carry", + "your matter.", + "grid md:grid-cols-3 gap-6 mt-12", + "group bg-transparent border border-[#1A2B3C]/15 rounded-lg hover:border-[#0077BE] transition-colors duration-200 overflow-hidden", + "relative aspect-[4/5] w-full overflow-hidden", + "Attorney", + "(max-width: 768px) 100vw, 33vw", + "object-cover transition-transform duration-500 ease-out group-hover:scale-105", + "flex h-full items-center justify-center bg-[#1A2B3C]/5 text-[#1A2B3C]/30", + "h-10 w-10", + "p-6", + "text-xl font-bold text-[#1A2B3C]", + "mt-1 text-xs uppercase tracking-[0.14em] text-[#00A8CC]", + "mt-3 text-sm leading-relaxed text-[#1A2B3C]/70 line-clamp-4" + ], + "cmsCollection": "team_members" + }, + { + "name": "ClientTestimonialsSection", + "importPath": "@/components/sections/ClientTestimonialsSection", + "position": 5, + "role": "blog", + "hasImage": false, + "hasForm": false, + "itemCount": -1, + "layout": "grid", + "headings": [ + "{d.title}" + ], + "buttonLabels": [], + "people": [], + "allText": [ + "use client", + "@/hooks/useVulaContent", + "posts", + "flex justify-center py-16", + "w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin", + "client-testimonials", + "clienttestimonials", + "bg-[#1A2B3C] py-20 px-6", + "max-w-6xl mx-auto", + "grid md:grid-cols-[0.8fr_1.4fr] gap-10 md:gap-16", + "text-xs uppercase tracking-[0.14em] text-[#FFD700]", + "Client outcomes", + "mt-4 font-serif text-4xl font-black text-[#F0F8FF] leading-tight tracking-tight", + "Matters that", + "italic text-[#00A8CC]", + "landed", + "mt-4 text-sm leading-relaxed text-[#F0F8FF]/60 max-w-xs", + "Unedited feedback from clients across corporate, property and dispute work.", + "divide-y divide-[#F0F8FF]/15 border-y border-[#F0F8FF]/15", + "py-8", + "text-xs uppercase tracking-[0.14em] text-[#00A8CC]", + "mt-2 text-xl font-bold text-[#F0F8FF]", + "mt-3 text-[#F0F8FF]/80 leading-relaxed", + "“", + "”", + "mt-4 text-sm font-semibold text-[#FFD700]" + ], + "cmsCollection": "posts" + }, + { + "name": "OfficeGallerySection", + "importPath": "@/components/sections/OfficeGallerySection", + "position": 6, + "role": "gallery", + "hasImage": true, + "hasForm": false, + "itemCount": -1, + "layout": "grid", + "headings": [], + "buttonLabels": [], + "people": [], + "allText": [ + "use client", + "next/image", + "@/hooks/useVulaContent", + "lucide-react", + "gallery", + "flex justify-center py-16", + "w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin", + "office-gallery", + "officegallery", + "bg-[#F0F8FF] py-20 px-6", + "max-w-6xl mx-auto", + "grid md:grid-cols-[1.6fr_0.7fr] gap-8 md:gap-12", + "text-xs uppercase tracking-[0.14em] text-[#0077BE]", + "The Pietermaritzburg office", + "mt-4 font-serif text-4xl lg:text-5xl font-black text-[#1A2B3C] leading-tight tracking-tight", + "A workspace built for", + "italic text-[#0077BE]", + "clear", + "counsel.", + "text-sm text-[#1A2B3C]/60 md:border-l border-[#1A2B3C]/15 md:pl-10 flex items-end pb-1", + "Boardroom, meeting rooms and reception — where clients are received with discretion.", + "grid md:grid-cols-12 gap-6 mt-12", + "md:col-span-7", + "md:col-span-5", + "relative aspect-[4/3] w-full", + "Office gallery", + "(max-width: 768px) 100vw, 50vw", + "object-cover transition-transform duration-500 ease-out group-hover:scale-105", + "flex h-full items-center justify-center bg-[#1A2B3C]/5 text-[#1A2B3C]/30", + "h-10 w-10", + "absolute inset-x-0 bottom-0 bg-gradient-to-t from-[#1A2B3C]/85 to-transparent p-4 text-[#F0F8FF]", + "font-semibold", + "text-sm text-[#F0F8FF]/70" + ], + "cmsCollection": "gallery" + }, + { + "name": "ConsultationCTASection", + "importPath": "@/components/sections/ConsultationCTASection", + "position": 7, + "role": "booking", + "hasImage": false, + "hasForm": false, + "itemCount": 3, + "layout": "flex-row", + "headings": [ + "Your Legal Solution Starts Here" + ], + "buttonLabels": [], + "people": [], + "allText": [ + "use client", + "next/link", + "lucide-react", + "Same-week consultation slots", + "45-minute focused sessions", + "Clear advice, no legal jargon", + "consultationcta", + "consultation-booking", + "bg-[#1A2B3C] px-6 py-20", + "mx-auto max-w-4xl text-center", + "text-xs uppercase tracking-[0.14em] text-[#FFD700]", + "Consultation booking", + "mt-4 text-4xl font-black tracking-tight text-[#F0F8FF] lg:text-5xl", + "Your Legal Solution Starts Here", + "mx-auto mt-4 max-w-xl text-lg text-[#F0F8FF]/80", + "Corporate structuring, property transfers, or a dispute that needs a firm hand — book a consultation and leave with a clear next step.", + "mt-8 inline-flex h-12 items-center justify-center rounded-lg bg-[#FFD700] px-8 text-base font-semibold text-[#1A2B3C] transition-all duration-200 ease-out hover:bg-[#FFD700]/90", + "Book a Consultation", + "mt-10 flex flex-wrap items-center justify-center gap-x-6 gap-y-3 text-sm text-[#F0F8FF]/70", + "inline-flex items-center gap-2", + "h-4 w-4 text-[#FFD700]" + ] + }, + { + "name": "FirmContactSection", + "importPath": "@/components/sections/FirmContactSection", + "position": 8, + "role": "contact", + "hasImage": true, + "hasForm": false, + "itemCount": 2, + "layout": "grid", + "headings": [ + "Find us in the capital of KwaZulu-Natal", + "Gumede and Partners — 251 Church Street, Pietermaritzburg" + ], + "buttonLabels": [], + "people": [], + "allText": [ + "@/components/ui/Card", + "lucide-react", + "Phone", + "+27 33 342 1155", + "tel:+27333421155", + "Email", + "info@gumedepartners.co.za", + "mailto:info@gumedepartners.co.za", + "firmcontact", + "firm-contact", + "bg-[#F0F8FF] px-6 py-20", + "mx-auto max-w-6xl", + "max-w-2xl", + "text-xs uppercase tracking-[0.14em] text-[#0077BE]", + "Contact", + "mt-3 text-4xl font-black tracking-tight text-[#1A2B3C]", + "Find us in the capital of KwaZulu-Natal", + "mt-3 text-lg text-[#1A2B3C]/70", + "Prefer to speak directly? Call, email, or visit our Church Street offices — we are based in Pietermaritzburg and serve all of KwaZulu-Natal.", + "mt-10 grid gap-8 lg:grid-cols-5", + "lg:col-span-2", + "h-full bg-transparent border-[#1A2B3C]/15 hover:border-[#0077BE] transition-colors duration-200", + "text-[#1A2B3C]", + "Contact details", + "space-y-5", + "flex items-start gap-3", + "mt-0.5 h-5 w-5 shrink-0 text-[#0077BE]", + "text-sm font-semibold text-[#1A2B3C]", + "Office", + "mt-1 text-sm text-[#1A2B3C]/70", + "2nd Floor, 251 Church Street", + "Pietermaritzburg, KwaZulu-Natal, 3201", + "mt-1 inline-block text-sm text-[#1A2B3C]/70 transition-colors duration-200 hover:text-[#0077BE]", + "relative min-h-[320px] overflow-hidden rounded-lg border border-[#1A2B3C]/15 lg:col-span-3", + "Gumede and Partners — 251 Church Street, Pietermaritzburg", + "absolute inset-0 h-full w-full", + "lazy", + "no-referrer-when-downgrade" + ] + }, + { + "name": "BusinessHoursSection", + "importPath": "@/components/sections/BusinessHoursSection", + "position": 9, + "role": "unknown", + "hasImage": false, + "hasForm": false, + "itemCount": -1, + "layout": "flex-row", + "headings": [ + "When to reach us" + ], + "buttonLabels": [], + "people": [], + "allText": [ + "use client", + "@/hooks/useVulaContent", + "lucide-react", + "business_hours", + "flex justify-center py-16", + "h-8 w-8 rounded-full border-2 border-current border-t-transparent animate-spin", + "business-hours", + "businesshours", + "bg-[#F0F8FF] px-6 py-20", + "mx-auto max-w-3xl", + "flex items-end justify-between border-b border-[#1A2B3C]/20 pb-4", + "text-xs uppercase tracking-[0.14em] text-[#0077BE]", + "Office hours", + "mt-3 text-3xl font-black tracking-tight text-[#1A2B3C] lg:text-4xl", + "When to reach us", + "h-8 w-8 text-[#00A8CC]", + "mt-6 overflow-hidden rounded-lg border border-[#1A2B3C]/15", + "w-full text-left text-sm", + "border-b border-[#1A2B3C]/15", + "px-4 py-3 text-xs uppercase tracking-[0.14em] text-[#1A2B3C]/60", + "Day", + "Hours", + "Note", + "border-b border-[#1A2B3C]/10 last:border-0", + "px-4 py-3 font-semibold text-[#1A2B3C]", + "px-4 py-3 text-[#1A2B3C]/80", + "font-medium text-[#B00020]", + "Closed", + "tabular-nums", + "px-4 py-3 text-[#1A2B3C]/60", + "mt-4 text-sm text-[#1A2B3C]/60", + "Consultations are by appointment. If the office is closed, email us and we will respond the next working day." + ], + "cmsCollection": "business_hours" + }, + { + "name": "GalleryBannerSection", + "importPath": "@/components/sections/GalleryBannerSection", + "position": 110, + "role": "hero", + "hasImage": true, + "hasForm": false, + "itemCount": 4, + "layout": "flex-row", + "headings": [ + "Gallery" + ], + "buttonLabels": [], + "people": [], + "allText": [ + "next/image", + "gallery-banner", + "gallerybanner", + "relative h-[350px] md:h-[400px] w-full overflow-hidden", + "Law firm office interior – Gumede & Partners gallery", + "object-cover", + "100vw", + "absolute inset-0 bg-gradient-to-r from-[#1A2B3C]/90 via-[#1A2B3C]/50 to-[#1A2B3C]/10", + "relative z-10 flex h-full items-center", + "mx-auto w-full max-w-6xl px-6 md:px-10", + "max-w-xl", + "text-xs uppercase tracking-[0.14em] text-white/70 font-medium mb-3", + "Photo gallery", + "font-[Fraunces] text-4xl md:text-5xl lg:text-6xl font-bold text-white leading-tight", + "Gallery", + "mt-6 max-w-md text-base md:text-lg text-white/80 leading-relaxed", + "A glimpse inside our practice — offices, team, and community moments from Pietermaritzburg and beyond." + ] + }, + { + "name": "FirmLifeGallerySection", + "importPath": "@/components/sections/FirmLifeGallerySection", + "position": 111, + "role": "gallery", + "hasImage": true, + "hasForm": false, + "itemCount": 8, + "layout": "grid", + "headings": [], + "buttonLabels": [], + "people": [], + "allText": [ + "use client", + "react", + "next/image", + "lucide-react", + "@/components/ui/Modal", + "Offices", + "Attorneys", + "Client Events", + "Community Outreach", + "law legal atmosphere interior", + "Gumede & Partners main office, Pietermaritzburg", + "10 Jun 2025", + "law professional", + "Senior partner Martha Gumede in consultation", + "18 May 2025", + "filterable photo grid firm life law", + "Annual client appreciation braai", + "5 Apr 2025", + "filterable photo grid firm life", + "Pro bono legal clinic at Imbali township", + "22 Mar 2025", + "Boardroom where key deals are closed", + "2 Mar 2025", + "Associate Thabo Dlamini preparing for court", + "28 Feb 2025", + "Real estate seminar with local investors", + "15 Jan 2025", + "Wills Week – free estate planning workshop", + "10 Dec 2024", + "All", + "Escape", + "ArrowLeft", + "ArrowRight", + "keydown", + "firm-life-gallery", + "bg-[#F0F8FF] px-6 py-20", + "mx-auto max-w-7xl", + "mb-10", + "text-3xl font-bold tracking-tight text-[#1A2B3C] lg:text-4xl font-serif", + "We don’t just practice law — we", + "italic text-secondary", + "serve", + "people", + "mb-10 flex flex-wrap gap-3", + "bg-primary text-primary-foreground border border-primary", + "bg-white text-[#1A2B3C] border border-[#1A2B3C]/15 hover:border-secondary hover:text-secondary", + "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6", + "button", + "Enter", + "group cursor-pointer rounded-lg border border-[#1A2B3C]/15 hover:border-secondary transition-all duration-200 ease-out overflow-hidden bg-white" + ] + } + ], + "navigationLinks": [ + "Home", + "Practice Areas", + "About", + "Team", + "Gallery", + "Contact", + "Book Consultation" + ], + "pages": [ + { + "route": "gallery", + "label": "Gallery", + "sections": [ + "GalleryBannerSection", + "FirmLifeGallerySection", + "ConsultationCTASection" + ] + } + ] +} \ No newline at end of file