// Decorative SVG "placeholder" imagery for listings — each is a stylized // architectural silhouette in tones that match the sand/cream palette. // These are intentionally minimal — no photo slop, just calm placeholders // that signal "this is where a real property photo goes". const ListingArt = ({ tone = 'warm', sold = false }) => { const palettes = { warm: { sky: '#d6c4a8', a: '#b89e7a', b: '#8a7052', c: '#5d4a34' }, sage: { sky: '#c5c8b4', a: '#9aa186', b: '#6f7a60', c: '#4a523c' }, clay: { sky: '#d2b89f', a: '#a88063', b: '#7c5a42', c: '#4f3a28' }, mist: { sky: '#c2bfb4', a: '#908c80', b: '#615e55', c: '#3d3b35' }, }; const p = palettes[tone] || palettes.warm; return ( {/* distant trees */} {/* house silhouette */} {/* ground */} ); }; // Tiny inline icons (stroke-only) const Ico = ({ name }) => { const paths = { bed: 'M3 12v6M21 12v6M3 14h18M5 14v-3a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v3', bath: 'M4 12h16v4a3 3 0 0 1-3 3H7a3 3 0 0 1-3-3v-4zM6 12V7a2 2 0 0 1 2-2h1', area: 'M3 9V3h6M21 15v6h-6M3 3l7 7M21 21l-7-7', mail: 'M4 6h16v12H4zM4 6l8 7 8-7', phone: 'M5 4h4l2 5-3 2a12 12 0 0 0 5 5l2-3 5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2z', pin: 'M12 22s7-6 7-12a7 7 0 0 0-14 0c0 6 7 12 7 12z M12 10a2 2 0 1 1 0-4 2 2 0 0 1 0 4z', arrow: 'M5 12h14M13 5l7 7-7 7', }; return ( ); }; Object.assign(window, { ListingArt, Ico });