// ReservePage.jsx — Reservation form page const ReservePage = ({ onNavigate }) => { const [step, setStep] = React.useState(1); const [form, setForm] = React.useState({ service: '', date: '', people: '2', name: '', email: '', notes: '' }); const [submitted, setSubmitted] = React.useState(false); const services = [ { id: 'picking', label: 'ブルーベリー摘み取り', price: '¥1,500〜/名', season: '6月〜8月', color: '#1A3A6E' }, { id: 'workshop', label: '農業・加工体験', price: '¥2,500〜/名', season: '通年(要予約)', color: '#5E9252' }, { id: 'both', label: '摘み取り+加工体験セット', price: '¥3,500〜/名', season: '6月〜8月', color: '#C9920A' }, ]; const field = { fontFamily: "'Noto Sans JP', sans-serif", fontSize: '14px', fontWeight: 300, color: '#1C1410', background: 'white', border: '1.5px solid #E8E0D8', borderRadius: '8px', padding: '10px 14px', width: '100%', outline: 'none', boxSizing: 'border-box' }; const label = { display: 'block', fontFamily: "'Noto Sans JP', sans-serif", fontSize: '12px', fontWeight: 500, color: '#3D3028', marginBottom: '6px', letterSpacing: '0.3px' }; if (submitted) return (

ご予約を受け付けました

確認メールをお送りしております。ご来園をお待ちしております。

); return (
Reservation

体験を予約する

ご希望の体験・日程・人数をお選びください。

{/* Step indicator */}
{['体験選択', '日程・人数', 'お客様情報'].map((s, i) => (
i ? '#1A3A6E' : '#E8E0D8', marginBottom: '6px', transition: 'background 0.3s' }} />
i ? '#1A3A6E' : '#A89A90', fontWeight: step === i+1 ? 500 : 300 }}>{s}
))}
{step === 1 && (
{services.map(svc => (
setForm({...form, service: svc.id})} style={{ padding: '18px 20px', background: 'white', borderRadius: '12px', border: `2px solid ${form.service === svc.id ? svc.color : '#E8E0D8'}`, cursor: 'pointer', transition: 'all 0.2s', display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>
{svc.label}
{svc.season}
{svc.price}
{form.service === svc.id &&
選択中 ✓
}
))}
)} {step === 2 && (
setForm({...form, date: e.target.value})} />
)} {step === 3 && (
setForm({...form, name: e.target.value})} />
setForm({...form, email: e.target.value})} />