// Villa Mesochori — "Getting here": step-by-step directions with photos and the exact pin. const ghNS = window.VillaMesochoriDesignSystem_9e1a21; const { Button: GhButton, LucideIcon: GhIcon } = ghNS; function GhMap({ lat, lng, steps }) { const ref = React.useRef(null); React.useEffect(() => { if (!window.L || !ref.current) return; const map = L.map(ref.current, { scrollWheelZoom: false }); L.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png", { attribution: '© OpenStreetMap contributors', }).addTo(map); const pts = []; (steps || []).forEach((s, i) => { if (!s.lat || !s.lng) return; L.marker([s.lat, s.lng], { icon: L.divIcon({ className: "", html: `
${i + 1}
`, iconSize: [24, 24], iconAnchor: [12, 12], }), }).addTo(map).bindPopup(`${i + 1}. ${s.title}
${s.body || ""}`); pts.push([s.lat, s.lng]); }); L.circleMarker([lat, lng], { radius: 10, color: "#FAF6EF", weight: 2, fillColor: "#C05E37", fillOpacity: 1 }) .addTo(map).bindPopup("Villa Mesochori
The house").openPopup(); pts.push([lat, lng]); if (pts.length > 1) { L.polyline(pts, { color: "#C05E37", weight: 3, opacity: 0.55, dashArray: "6 8" }).addTo(map); map.fitBounds(L.latLngBounds(pts).pad(0.25)); } else { map.setView([lat, lng], 15); } return () => map.remove(); }, [lat, lng]); return
; } function GhStepPhoto({ src, n }) { const [failed, setFailed] = React.useState(false); if (!src || failed) { return (
Photo of step {n} — coming soon
); } return {`Step setFailed(true)} style={{ width: "100%", height: "100%", objectFit: "cover", display: "block", background: "var(--surface-sunken)" }} />; } function GettingHere() { const c = window.VMContent.get(); const steps = c.arriveSteps || []; const mapsUrl = `https://www.google.com/maps/search/?api=1&query=${c.houseLat},${c.houseLng}`; return (
Getting here

{c.arriveTitle}

{c.arriveIntro}

window.open(mapsUrl, "_blank")}>Open in Google Maps {c.arriveAddress}
{/* Step-by-step photo trail */}
{steps.map((s, i) => (
{i + 1}

{s.title}

{s.body}

))}
The exact spot

Right here

The green numbers are the turns from the cards above; the terracotta dot is the house.

Kalos irthate — welcome. — Maria & the family

); } window.VMGettingHere = GettingHere;