Files
Vula Builder aeb2124aad Deploy
2026-08-05 18:14:32 +00:00

614 lines
22 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"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 dont 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"
]
}
]
}