diff --git a/src/components/sections/PrivateReserveContactSection.tsx b/src/components/sections/PrivateReserveContactSection.tsx new file mode 100644 index 0000000..81cea53 --- /dev/null +++ b/src/components/sections/PrivateReserveContactSection.tsx @@ -0,0 +1,152 @@ +'use client' + +import { useState } from 'react' +import Image from 'next/image' +import Button from '@/components/ui/Button' +import Input from '@/components/ui/Input' +import { Mail, Phone, Plane } from 'lucide-react' + +const CURRENCY_SYMBOLS: Record = { zar: 'R', usd: '$', eur: '€', gbp: '£', kes: 'KSh', ngn: '₦', ghs: '₵' } + +const formatPrice = (amount: number, code?: string) => { + const sym = CURRENCY_SYMBOLS[(code ?? '').toLowerCase()] ?? (code?.toUpperCase() ?? '') + return `${sym}${(amount / 100).toFixed(2)}` +} + +export default function PrivateReserveContactSection() { + const [formData, setFormData] = useState({ name: '', email: '', message: '', interest: 'Suites' }) + const [submitted, setSubmitted] = useState(false) + + const handleChange = (e: React.ChangeEvent) => { + setFormData(prev => ({ ...prev, [e.target.name]: e.target.value })) + } + + const handleSubmit = (e: React.FormEvent) => { + e.preventDefault() + setSubmitted(true) + // In production, send to Medusa or backend + } + + return ( +
+
+ {/* Eyebrow */} +
+ + Your Journey Awaits + +
+

+ Reach the Wild Seamlessly +

+ +
+ {/* Left: Map + Transfer Details */} +
+
+ Greater Kruger landscape – private reserve location +
+
+

33 km north-east of Hoedspruit

+

Molten Rock Private Reserve

+
+
+ +
+

+ + Private Arrival +

+
+

Charter from Johannesburg (1.5 hr flight)

+

Direct helicopter transfer from Kruger Mpumalanga

+

Luxury vehicle collection from Hoedspruit Eastgate

+
+
+

+27 83 456 7890

+

concierge@moltenrock.com

+
+
+
+ + {/* Right: Enquiry Form */} +
+ {submitted ? ( +
+

Thank you

+

+ A personal host will respond within 24 hours. +

+
+ ) : ( +
+
+ + +
+
+ + +
+
+ + +
+
+ +