const { Button, IconButton, Icon, Badge, Tag, Rating, MetadataRow, Tabs, Breadcrumbs, PackageCard, PhotoFrame, Alert } = window.VE; function Gallery({ photos, alt }) { return (
{alt}
{photos.slice(1, 5).map((p, i) => (
{i === 3 ? ( ) : null}
))}
); } function FAQList({ faqs }) { const [open, setOpen] = React.useState(0); return (
{faqs.map((f, i) => (
{open === i ?

{f.a}

: null}
))}
); } function DestinationDetailScreen({ destination, onOpen, onPlanTrip }) { const D = window.VE_DATA; const d = destination || D.destinations[0]; const [tab, setTab] = React.useState('overview'); const photos = [d.photo, 'coast', 'market', 'food', 'viewpoint']; const things = [ { title: 'Sunrise at the viewpoint', body: 'Leave before six, have the cliff to yourselves for an hour.', photo: 'viewpoint' }, { title: 'A morning market walk', body: 'Breakfast where the sellers eat, with a guide who knows them.', photo: 'market' }, { title: 'One long, slow dinner', body: 'A table booked for the whole evening, no second sitting.', photo: 'food' } ]; return (

{d.name}

Why go

{d.name} rewards a slower plan. We build days that start early, leave the afternoons open, and put you somewhere with a view for the evening. Our specialists have driven these routes, stayed in these rooms and eaten in these kitchens.

{d.style.map((s) => {s})} {d.season}

Best time to visit

{['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'].map((m, i) => { const good = d.season.toLowerCase().indexOf(m.toLowerCase()) > -1 || (i > 9 || i < 4); return (
{m}
); })}
Shoulder season is quieter and about 20% cheaper. Ask us which weeks are worth it.

Things to do

{things.map((t) => (

{t.title}

{t.body}

))}

Packages in {d.name}

{D.packages.slice(0, 2).map((p) => (
onOpen('package', p)} style={{ cursor: 'pointer' }}>
))}

Questions travellers ask

); } Object.assign(window, { DestinationDetailScreen });