This commit is contained in:
Vula Builder
2026-07-14 18:35:14 +00:00
parent 2a1566a7f4
commit 21944df415
+548
View File
@@ -0,0 +1,548 @@
{
"projectName": "Molten Rock Private Reserve",
"businessType": "salon",
"industry": "salon",
"tone": "",
"tier": 2,
"serviceType": "services",
"generatedAt": "2026-07-13T09:41:31.132Z",
"sections": [
{
"name": "MoltenRockHeroSection",
"importPath": "@/components/sections/MoltenRockHeroSection",
"position": 0,
"role": "hero",
"hasImage": true,
"hasForm": false,
"itemCount": 5,
"layout": "flex-row",
"headings": [],
"buttonLabels": [
"Explore Experiences"
],
"people": [],
"allText": [
"use client",
"next/image",
"@/components/ui/Button",
"moltenrockhero",
"hero",
"relative min-h-screen flex items-center overflow-hidden bg-[#17170f]",
"absolute inset-0",
"Dawn over volcanic rock formations and untouched bush",
"100vw",
"object-cover opacity-70",
"absolute inset-0 bg-gradient-to-t from-[#17170f]/90 via-[#17170f]/50 to-transparent",
"relative container mx-auto px-6 text-center py-32",
"inline-flex items-center gap-4 mb-8",
"block w-14 h-px bg-[#6b8e23]",
"font-sans uppercase tracking-[0.2em] text-[#6b8e23] text-sm",
"Molten Rock Private Reserve",
"font-serif font-light text-5xl md:text-7xl text-[#f5f5dc] leading-tight",
"Where the Earth Breathes",
"italic text-[#6b8e23]",
"Fire",
"and Silence",
"mt-6 max-w-2xl mx-auto text-lg md:text-xl text-[#eeeee7]/80 font-light",
"An intimate, exclusive retreat in the Greater Kruger — 6 volcanic suites, private game drives, and a primal connection to the wild.",
"mt-10 flex gap-4 justify-center",
"default",
"lg",
"Explore Experiences"
]
},
{
"name": "BespokeSafariExperiencesSection",
"importPath": "@/components/sections/BespokeSafariExperiencesSection",
"position": 1,
"role": "unknown",
"hasImage": true,
"hasForm": false,
"itemCount": 13,
"layout": "grid",
"headings": [],
"buttonLabels": [
"Book Now",
"View All Experiences"
],
"people": [],
"allText": [
"use client",
"@/hooks/useMedusaProducts",
"next/image",
"@/components/ui/Card",
"@/components/ui/Button",
"lucide-react",
"bespokesafariexperiences",
"safari-experiences",
"py-24 bg-[#17170f]",
"max-w-7xl mx-auto px-6 text-center",
"text-[#eeeee7]/60",
"Loading experiences…",
"No experiences available at the moment.",
"max-w-7xl mx-auto px-6",
"text-center mb-16",
"inline-flex items-center gap-4 mb-6",
"block w-14 h-px bg-[#6b8e23]",
"font-sans uppercase tracking-[0.2em] text-[#6b8e23] text-sm",
"Bespoke Safari Experiences",
"font-serif font-light text-4xl md:text-5xl text-[#f5f5dc] leading-tight",
"Tailored to",
"italic text-[#6b8e23]",
"you",
"and the wild",
"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6",
"bg-[#1a1a11] border-[#404030] hover:border-[#6b8e23]/50 transition-all duration-200",
"relative h-48 overflow-hidden",
"Safari experience",
"(max-width: 768px) 100vw, 25vw",
"object-cover",
"text-[#f5f5dc] font-serif text-lg",
"text-[#eeeee7]/70 text-sm leading-relaxed line-clamp-2",
"mt-3 font-sans text-[#6b8e23] tracking-wider",
"From R",
"default",
"sm",
"w-full",
"Book Now",
"text-center mt-12",
"secondary",
"lg",
"View All Experiences"
]
},
{
"name": "SixSanctuarySuitesSection",
"importPath": "@/components/sections/SixSanctuarySuitesSection",
"position": 2,
"role": "unknown",
"hasImage": true,
"hasForm": false,
"itemCount": 6,
"layout": "grid",
"headings": [],
"buttonLabels": [],
"people": [
"Magma Suite",
"Obsidian Suite",
"Cinder Suite",
"Basalt Suite",
"Pumice Suite",
"Tephra Suite"
],
"allText": [
"next/image",
"@/components/ui/Card",
"Magma Suite",
"Private plunge pool bathed in volcanic warmth, outdoor shower under an endless sky.",
"Obsidian Suite",
"Deep charcoal stone interiors, floor-to-ceiling glass, and a fire pit overlooking the bushveld.",
"Cinder Suite",
"Intimate loft with suspended hammock, private terrace, and sunrise-facing outdoor shower.",
"Basalt Suite",
"Two-bedroom sanctuary with a shared infinity pool and an open-plan lounge under thatch.",
"Pumice Suite",
"Minimalist design with natural textures, a secluded boma for stargazing, and a private butler.",
"Tephra Suite",
"Perched on a ridge with panoramic views, outdoor bath carved from a single rock.",
"sixsanctuarysuites",
"luxury-suites",
"py-24 bg-[#0d0d08]",
"max-w-7xl mx-auto px-6",
"text-center mb-16",
"inline-flex items-center gap-4 mb-6",
"block w-14 h-px bg-[#6b8e23]",
"font-sans uppercase tracking-[0.2em] text-[#6b8e23] text-sm",
"Six Sanctuary Suites",
"font-serif font-light text-4xl md:text-5xl text-[#f5f5dc] leading-tight",
"Named after",
"italic text-[#6b8e23]",
"volcanic",
"elements",
"mt-4 max-w-2xl mx-auto text-[#eeeee7]/70",
"Each suite is a private sanctuary with plunge pool, outdoor shower, and panoramic bush views — designed for intimacy and exclusivity.",
"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",
"bg-[#1a1a11] border-[#404030] hover:border-[#6b8e23]/50 transition-all duration-200",
"relative h-56 overflow-hidden",
"(max-width: 768px) 100vw, 33vw",
"object-cover",
"text-[#f5f5dc] font-serif text-xl",
"text-[#eeeee7]/70 text-sm leading-relaxed",
"text-center mt-12",
"font-sans uppercase tracking-wider text-[#6b8e23] text-sm",
"Starting from R12 500 per night"
]
},
{
"name": "MoltenRockOriginsSection",
"importPath": "@/components/sections/MoltenRockOriginsSection",
"position": 3,
"role": "unknown",
"hasImage": true,
"hasForm": false,
"itemCount": 7,
"layout": "grid",
"headings": [],
"buttonLabels": [],
"people": [],
"allText": [
"next/image",
"@/components/ui/Button",
"moltenrockorigins",
"our-story",
"py-24 bg-[#17170f]",
"max-w-7xl mx-auto px-6",
"grid md:grid-cols-2 gap-12 items-center",
"relative h-96 md:h-[500px] overflow-hidden rounded-md border border-[#404030]",
"Ancient volcanic landscape of the Greater Kruger",
"(max-width: 768px) 100vw, 50vw",
"object-cover",
"absolute inset-0 bg-gradient-to-r from-[#17170f]/30 to-transparent",
"inline-flex items-center gap-4 mb-6",
"block w-14 h-px bg-[#6b8e23]",
"font-sans uppercase tracking-[0.2em] text-[#6b8e23] text-sm",
"Origins",
"font-serif font-light text-4xl md:text-5xl text-[#f5f5dc] leading-tight mb-6",
"Born from",
"italic text-[#6b8e23]",
"fire",
", rooted in conservation",
"text-[#eeeee7]/80 leading-relaxed mb-6",
"Molten Rock Private Reserve was carved from an ancient volcanic ridge by the Moloi family — a legacy of custodianship passed down through three generations. Where molten lava once scarred the earth, nutrient-rich soils now sustain an astonishing density of wildlife: lion, leopard, elephant, and over 340 bird species.",
"text-[#eeeee7]/70 leading-relaxed mb-8",
"We chose to build only six suites — not for scarcity, but for intimacy. Every game drive is private, every meal is a conversation with the bush, every guest leaves knowing they belong to this land. Our foundation is conservation-led hospitality: 15% of every booking directly funds anti-poaching patrols and community education in neighbouring villages.",
"flex flex-wrap gap-6 text-sm font-sans uppercase tracking-wider",
"text-[#6b8e23]",
"24,000 acres",
"text-[#eeeee7]/40",
"6 exclusive suites",
"3rd generation stewards"
]
},
{
"name": "ExclusiveRetreatOffersSection",
"importPath": "@/components/sections/ExclusiveRetreatOffersSection",
"position": 4,
"role": "cms-offers",
"hasImage": true,
"hasForm": false,
"itemCount": -1,
"layout": "grid",
"headings": [
"Lasting Impressions, Timely Invitations",
"{d.title}"
],
"buttonLabels": [
"Reserve Now"
],
"people": [],
"allText": [
"use client",
"@/hooks/useEmDashContent",
"next/image",
"@/components/ui/Button",
"offers",
"flex justify-center py-16",
"w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin text-[#f5f5dc]",
"exclusive-offers",
"exclusiveretreatoffers",
"py-24 bg-[#17170f]",
"max-w-7xl mx-auto px-6",
"flex items-center justify-center gap-4 mb-4",
"w-14 h-px bg-[#f5f5dc]",
"text-[#6b8e23] font-sans uppercase tracking-[0.15em] text-sm",
"Curated Escapes",
"text-4xl md:text-5xl font-light text-[#eeeee7] text-center mb-4 font-serif",
"Lasting Impressions, Timely Invitations",
"text-[#eeeee7]/80 text-center max-w-2xl mx-auto mb-12 font-sans text-sm leading-relaxed",
"Handpicked packages for those who seek the extraordinary.",
"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",
"group rounded-[8px] border border-white/10 bg-[#17170f] overflow-hidden hover:border-[#f5f5dc]/30 transition-all duration-200",
"relative aspect-video overflow-hidden",
"Retreat offer",
"(max-width: 768px) 100vw, 33vw",
"object-cover transition-transform duration-500 ease-out group-hover:scale-105",
"p-5",
"text-xl font-serif font-light text-[#eeeee7] mb-2",
"text-sm text-[#eeeee7]/70 mb-3 font-sans leading-relaxed",
"flex items-center justify-between text-sm",
"text-[#f5f5dc] font-semibold font-sans",
"text-[#6b8e23] font-sans uppercase tracking-wider text-xs",
"text-xs text-[#eeeee7]/50 mt-2 font-sans",
"Valid until",
"default",
"sm",
"mt-4 w-full",
"Reserve Now"
],
"cmsCollection": "offers"
},
{
"name": "MoltenMomentsGallerySection",
"importPath": "@/components/sections/MoltenMomentsGallerySection",
"position": 5,
"role": "gallery",
"hasImage": true,
"hasForm": false,
"itemCount": -1,
"layout": "grid",
"headings": [
"A Gallery of Light and Shadow",
"{d.title}"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"@/hooks/useEmDashContent",
"next/image",
"gallery",
"flex justify-center py-16",
"w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin text-[#f5f5dc]",
"photo-gallery",
"moltenmomentsgallery",
"py-24 bg-[#1a1a12]",
"max-w-7xl mx-auto px-6",
"flex items-center justify-center gap-4 mb-4",
"w-14 h-px bg-[#f5f5dc]",
"text-[#6b8e23] font-sans uppercase tracking-[0.15em] text-sm",
"Moments Captured",
"text-4xl md:text-5xl font-light text-[#eeeee7] text-center mb-4 font-serif",
"A Gallery of Light and Shadow",
"text-[#eeeee7]/80 text-center max-w-2xl mx-auto mb-12 font-sans text-sm leading-relaxed",
"Golden-hour game drives, candlelit dinners, and the silent luxury of the suites.",
"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4",
"group relative aspect-square overflow-hidden rounded-[6px] border border-white/10",
"Molten Rock moment",
"(max-width: 768px) 50vw, 25vw",
"object-cover transition-transform duration-500 ease-out group-hover:scale-105",
"absolute inset-0 bg-gradient-to-t from-black/60 via-transparent to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-200",
"absolute bottom-0 left-0 right-0 p-3 opacity-0 group-hover:opacity-100 transition-opacity duration-200",
"text-sm font-serif text-[#eeeee7] leading-tight"
],
"cmsCollection": "gallery"
},
{
"name": "GuestReverieTestimonialsSection",
"importPath": "@/components/sections/GuestReverieTestimonialsSection",
"position": 6,
"role": "testimonials",
"hasImage": false,
"hasForm": false,
"itemCount": 3,
"layout": "grid",
"headings": [
"Whispers from the Wild"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"Eleanor Vance",
"Guest from London",
"Waking to the roar of a lion across the river — I have never felt so alive.",
"Mateo Silva",
"Travel writer, São Paulo",
"The ranger knew every bird by its call. That kind of intimacy with the bush is rare.",
"Yuki Tanaka",
"Bespoke travel curator, Tokyo",
"Six suites, infinite privacy. Every detail whispers care.",
"guest-testimonials",
"guesttestimonials",
"py-20 bg-[#17170f] border-t border-white/10",
"max-w-5xl mx-auto px-6 text-center",
"flex items-center justify-center gap-4 mb-4",
"w-14 h-px bg-[#f5f5dc]",
"text-[#6b8e23] font-sans uppercase tracking-[0.15em] text-sm",
"Guest Reverie",
"text-3xl md:text-4xl font-light text-[#eeeee7] font-serif mb-12",
"Whispers from the Wild",
"grid grid-cols-1 md:grid-cols-3 gap-8",
"border border-white/10 rounded-[8px] p-6 bg-[#17170f] text-left",
"text-[#eeeee7]/85 font-sans text-sm leading-relaxed mb-4",
"“",
"”",
"text-[#eeeee7] font-serif text-base",
"text-[#6b8e23] font-sans uppercase tracking-wider text-xs mt-1"
]
},
{
"name": "FieldNotesJournalSection",
"importPath": "@/components/sections/FieldNotesJournalSection",
"position": 7,
"role": "blog",
"hasImage": true,
"hasForm": false,
"itemCount": -1,
"layout": "grid",
"headings": [
"Notes from the Bush",
"{d.title}"
],
"buttonLabels": [
"Read More",
"Read the Journal"
],
"people": [],
"allText": [
"use client",
"@/hooks/useEmDashContent",
"next/image",
"@/components/ui/Button",
"posts",
"flex justify-center py-16",
"w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin text-[#f5f5dc]",
"field-notes",
"fieldnotesjournal",
"py-24 bg-[#17170f]",
"max-w-7xl mx-auto px-6",
"flex items-center justify-center gap-4 mb-4",
"w-14 h-px bg-[#f5f5dc]",
"text-[#6b8e23] font-sans uppercase tracking-[0.15em] text-sm",
"Field Journal",
"text-4xl md:text-5xl font-light text-[#eeeee7] text-center mb-4 font-serif",
"Notes from the Bush",
"text-[#eeeee7]/80 text-center max-w-2xl mx-auto mb-12 font-sans text-sm leading-relaxed",
"Rangers’ diaries, conservation updates, and the quiet stories of the reserve.",
"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",
"group rounded-[8px] border border-white/10 overflow-hidden hover:border-[#f5f5dc]/30 transition-all duration-200",
"relative aspect-video overflow-hidden",
"Journal post",
"(max-width: 768px) 100vw, 33vw",
"object-cover transition-transform duration-500 ease-out group-hover:scale-105",
"p-5",
"flex items-center gap-2 mb-2",
"text-[#6b8e23] font-sans uppercase tracking-wider text-xs",
"text-lg font-serif font-light text-[#eeeee7] mb-2",
"text-sm text-[#eeeee7]/70 mb-3 font-sans leading-relaxed line-clamp-3",
"text-xs text-[#eeeee7]/50 font-sans",
"By",
"outline",
"sm",
"mt-4",
"Read More",
"mt-12 text-center",
"default",
"md",
"inline-flex items-center",
"Read the Journal"
],
"cmsCollection": "posts"
},
{
"name": "DirectBookingCTASection",
"importPath": "@/components/sections/DirectBookingCTASection",
"position": 8,
"role": "booking",
"hasImage": false,
"hasForm": false,
"itemCount": 4,
"layout": "flex-row",
"headings": [],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"next/link",
"KSh",
"directbookingcta",
"direct-booking-cta",
"relative py-24 lg:py-28 bg-[#17170f] overflow-hidden",
"absolute inset-0 opacity-30",
"relative container mx-auto px-4 text-center",
"flex items-center justify-center gap-4 mb-6",
"h-px w-14 bg-[#6b8e23]",
"text-[#6b8e23] text-sm uppercase tracking-[0.2em]",
"var(--font-jost, Jost, sans-serif)",
"Book Direct",
"text-5xl lg:text-6xl text-[#eeeee7] font-light leading-tight mb-4",
"var(--font-cormorant, \"Cormorant Garamond\", serif)",
"Reserve Your",
"italic text-[#6b8e23]",
"Sanctuary",
"text-[#eeeee7]/70 max-w-2xl mx-auto mb-8 text-sm uppercase tracking-widest",
"The best rates and most personal touches await when you book direct.",
"mb-4",
"inline-block bg-[#6b8e23] hover:bg-[#5a7a1c] text-[#eeeee7] px-10 py-4 text-lg uppercase tracking-widest transition-all duration-200 ease-out",
"Reserve Your Sanctuary",
"text-[#eeeee7]/50 text-xs uppercase tracking-wider",
"Only 2 suites remaining for February — secure your stay"
]
},
{
"name": "PrivateReserveContactSection",
"importPath": "@/components/sections/PrivateReserveContactSection",
"position": 9,
"role": "contact",
"hasImage": true,
"hasForm": true,
"itemCount": 16,
"layout": "grid",
"headings": [],
"buttonLabels": [
"Send Enquiry"
],
"people": [],
"allText": [
"use client",
"react",
"next/image",
"@/components/ui/Button",
"@/components/ui/Input",
"lucide-react",
"KSh",
"Suites",
"privatereservecontact",
"contact",
"py-24 lg:py-28 bg-[#1a1a12] border-t border-[#404030]",
"container mx-auto px-4",
"flex items-center justify-center gap-4 mb-8",
"h-px w-14 bg-[#6b8e23]",
"text-[#6b8e23] text-sm uppercase tracking-[0.2em]",
"var(--font-jost, Jost, sans-serif)",
"Your Journey Awaits",
"text-4xl lg:text-5xl text-[#eeeee7] font-light text-center mb-12",
"var(--font-cormorant, \"Cormorant Garamond\", serif)",
"Reach the",
"italic text-[#6b8e23]",
"Wild",
"Seamlessly",
"grid grid-cols-1 lg:grid-cols-2 gap-12",
"space-y-6",
"relative h-72 rounded-sm overflow-hidden border border-[#404030]",
"Greater Kruger landscape private reserve location",
"(max-width: 1024px) 100vw, 50vw",
"object-cover",
"absolute inset-0 bg-gradient-to-t from-[#17170f]/60 to-transparent",
"absolute bottom-4 left-4 right-4 text-[#eeeee7]",
"text-xs uppercase tracking-wider",
"33 km north-east of Hoedspruit",
"text-lg font-light",
"Molten Rock Private Reserve",
"bg-[#17170f] p-6 rounded-sm border border-[#404030]",
"text-[#f5f5dc] text-xs uppercase tracking-wider mb-4",
"inline w-4 h-4 mr-2 text-[#6b8e23]",
"Private Arrival",
"space-y-2 text-sm text-[#eeeee7]/80",
"text-[#6b8e23]",
"Charter from Johannesburg (1.5 hr flight)",
"Direct helicopter transfer from Kruger Mpumalanga",
"Luxury vehicle collection from Hoedspruit Eastgate",
"mt-4 space-y-1 text-[#eeeee7]/60 text-xs",
"inline w-3 h-3 mr-1",
"+27 83 456 7890",
"concierge@moltenrock.com",
"bg-[#17170f] p-8 rounded-sm border border-[#404030]",
"flex flex-col items-center justify-center h-full text-center"
]
}
],
"navigationLinks": [
"Home",
"Six Sanctuary Suites",
"Molten Rock Origins",
"Molten Moments Gallery",
"Private Reserve Contact",
"Services"
]
}