/* Property listing card — gold hairline frame, photo with protection gradient, serif name + price, sans spec row. Hover lifts + zooms. */ function ListingCard({ item, onOpen, href }) { const [hover, setHover] = React.useState(false); const cardBody = (
{item.tag}
{item.type}
{item.bairro} · {item.cidade}

{item.name}

{item.short.map(([ic, label]) => )}
{CARINA_FMT(item.price)} Ver detalhes
); const baseStyle = { width: "100%", height: "100%", textAlign: "left", background: "var(--bg-card)", border: "1px solid var(--border-gold)", borderRadius: "var(--r-md)", overflow: "hidden", cursor: "pointer", boxShadow: hover ? "var(--shadow-lg)" : "var(--shadow-sm)", transform: hover ? "translateY(-6px)" : "none", transition: "transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease)", borderColor: hover ? "var(--border-gold-strong)" : "var(--border-gold)", display: "flex", flexDirection: "column", padding: 0, color: "inherit", textDecoration: "none" }; return (
{href ? ( setHover(true)} onMouseLeave={() => setHover(false)} style={baseStyle}> {cardBody} ) : ( )}
); } function Spec({ icon, label }) { return ( {label} ); } Object.assign(window, { ListingCard, Spec });