// 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 (
);
};
// 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 });