/* eslint-disable react/prop-types */ /** * FichaBody · Cuerpo de la ficha de distrito. * * - Resumen expandido en columna izquierda * - Sidebar derecha con datos clave (year, types, region, estado, tags) * - Sección "Otros distritos" con 3 cards relacionadas (misma región o tipología) * - CTA al ContactSection (en la composición de la página) */ const { useMemo: uM_FB } = React; function FichaBody({ d }) { if (!d) return null; const all = window.DISTRITOS_DATA || []; // Relacionados: mismo region + tipología, hasta 3 distintos al actual const related = uM_FB(() => { const matches = all.filter(x => x.slug !== d.slug && (x.region === d.region || x.types?.some(t => d.types?.includes(t))) ); // Priorizar: mismo region Y misma tipología primero matches.sort((a, b) => { const aRegion = a.region === d.region ? 1 : 0; const bRegion = b.region === d.region ? 1 : 0; const aType = a.types?.some(t => d.types?.includes(t)) ? 1 : 0; const bType = b.types?.some(t => d.types?.includes(t)) ? 1 : 0; return (bRegion + bType) - (aRegion + aType); }); return matches.slice(0, 3); }, [d.slug]); return ( {/* Resumen + Datos clave */}
{/* Resumen */}
RESUMEN

{d.summary}

{/* Descripción extendida (si existe) */} {d.description && (

{d.description}

)} {/* Métricas concretas (si existen) */} {d.metrics && d.metrics.length > 0 && (
EN NÚMEROS
{d.metrics.map((m, i) => (
{m.label}
{m.value}
))}
)} {/* Premios y reconocimientos */} {d.awards && d.awards.length > 0 && (
RECONOCIMIENTOS
    {d.awards.map((a, i) => (
  • ))}
)} {/* Publicaciones / referencias externas */} {d.publications && d.publications.length > 0 && (
PUBLICADO EN
)} {/* Fallback note solo si NO hay description (placeholder) */} {!d.description && ( d.verified ? (

Este es uno de los distritos emblemáticos del portafolio Prosperia — el método DIGO® lo estructuró desde la pregunta de demanda, y su evidencia se sigue calibrando contra el resultado real del proyecto.

) : (

Este distrito es parte del portafolio +1,900 proyectos originados. La ficha completa con cifras detalladas — superficie, inversión, IRR, mezcla de usos, fases — se compartió bajo confidencialidad con el cliente original. Si quieres más detalle, escríbenos.

) )}
{/* Datos clave / sidebar */}
{/* Otros distritos relacionados */} {related.length > 0 && (
OTROS DISTRITOS

Cerca, o con la misma tesis de demanda.

{related.map((r, i) => (
{(r.types || []).slice(0, 2).map(t => ( {t} ))}

{r.name}

{r.location}

))}
)}
); } const fbStyles = { section: { background: 'var(--color-cream)', paddingTop: 'var(--space-3xl)', paddingBottom: 'var(--space-3xl)', }, grid: { display: 'grid', gridTemplateColumns: '1fr', gap: 'var(--space-2xl)', alignItems: 'start', }, col: { maxWidth: 720 }, lead: { margin: '20px 0 0', fontSize: 'clamp(19px, 1.8vw, 24px)', lineHeight: 1.55, color: 'var(--color-navy-deep)', letterSpacing: '-0.003em', textWrap: 'pretty', }, descBlock: { marginTop: 32 }, descText: { margin: 0, fontSize: 16, lineHeight: 1.75, color: 'var(--color-navy-medium)', textWrap: 'pretty', }, subEyebrow: { marginBottom: 16, display: 'block' }, metricsBlock: { marginTop: 40 }, metricsDl: { margin: 0, padding: 0, display: 'grid', gridTemplateColumns: '1fr', gap: 0, borderTop: '1px solid rgba(33,52,64,0.12)', }, metricRow: { display: 'grid', gridTemplateColumns: '1fr auto', gap: 16, paddingBlock: 14, borderBottom: '1px solid rgba(33,52,64,0.08)', alignItems: 'baseline', }, metricLabel: { margin: 0, fontSize: 13, fontWeight: 600, color: 'var(--color-navy-medium)', letterSpacing: '0.02em', }, metricValue: { margin: 0, fontSize: 15, fontWeight: 700, color: 'var(--color-navy-deep)', fontFamily: 'ui-monospace, Menlo, Consolas, monospace', textAlign: 'right', }, awardsBlock: { marginTop: 40 }, awardsList: { listStyle: 'none', margin: 0, padding: 0, display: 'flex', flexDirection: 'column', gap: 10, }, awardItem: { display: 'flex', alignItems: 'flex-start', gap: 14, fontSize: 14, lineHeight: 1.55, color: 'var(--color-navy-deep)', }, awardDot: { width: 6, height: 6, borderRadius: 999, background: 'var(--color-copper-fallback)', flexShrink: 0, marginTop: 8, }, pubsBlock: { marginTop: 40 }, pubsList: { listStyle: 'none', margin: 0, padding: 0, display: 'flex', flexDirection: 'column', gap: 8, }, pubLink: { display: 'inline-flex', alignItems: 'center', gap: 8, fontSize: 14, fontWeight: 600, color: 'var(--color-copper-fallback)', transition: 'gap 220ms ease, color 220ms ease', }, note: { margin: '28px 0 0', paddingLeft: 20, borderLeft: '3px solid var(--color-copper-fallback)', fontSize: 15, lineHeight: 1.7, color: 'var(--color-navy-medium)', fontStyle: 'italic', }, sidebar: { background: '#fff', border: '1px solid rgba(33,52,64,0.1)', padding: 'clamp(24px, 3vw, 36px)', borderRadius: 2, position: 'relative', }, sbEyebrow: { marginBottom: 20, display: 'block' }, dl: { margin: 0, padding: 0 }, dlRow: { display: 'flex', flexDirection: 'column', gap: 4, paddingBlock: 14, borderBottom: '1px solid rgba(33,52,64,0.08)', }, dt: { margin: 0, fontSize: 11, fontWeight: 700, letterSpacing: '0.14em', textTransform: 'uppercase', color: 'var(--color-navy-medium)', }, dd: { margin: 0, fontSize: 15, color: 'var(--color-navy-deep)', fontWeight: 500, lineHeight: 1.4, }, tagWrap: { display: 'flex', flexWrap: 'wrap', gap: 6, marginTop: 4 }, tag: { fontSize: 10, fontWeight: 700, letterSpacing: '0.1em', color: 'var(--color-copper-fallback)', background: 'rgba(168,107,45,0.08)', border: '1px solid rgba(168,107,45,0.25)', padding: '3px 8px', borderRadius: 2, fontFamily: 'ui-monospace, Menlo, Consolas, monospace', }, creditsList: { listStyle: 'none', margin: '4px 0 0', padding: 0, display: 'flex', flexDirection: 'column', gap: 8, }, creditItem: { display: 'flex', flexDirection: 'column', gap: 2, }, creditRole: { fontSize: 10, fontWeight: 700, letterSpacing: '0.14em', color: 'var(--color-navy-medium)', textTransform: 'uppercase', }, creditName: { fontSize: 14, fontWeight: 600, color: 'var(--color-navy-deep)', lineHeight: 1.35, }, websiteLink: { display: 'inline-flex', alignItems: 'center', gap: 7, fontSize: 14, fontWeight: 600, color: 'var(--color-copper-fallback)', marginTop: 4, wordBreak: 'break-all', transition: 'gap 220ms ease', }, sbCta: { marginTop: 28, display: 'flex', flexDirection: 'column', gap: 14 }, sbBack: { display: 'inline-flex', alignItems: 'center', gap: 8, color: 'var(--color-navy-medium)', fontWeight: 600, fontSize: 13, textAlign: 'center', justifyContent: 'center', transition: 'color 200ms', }, relatedSection: { background: 'var(--color-cream-soft)', paddingTop: 'var(--space-3xl)', paddingBottom: 'var(--space-3xl)', }, relatedHeader: { maxWidth: 720, marginBottom: 'var(--space-xl)' }, relatedTitle: { margin: '16px 0 0', fontWeight: 800, fontSize: 'clamp(28px, 3.6vw, 44px)', lineHeight: 1.15, color: 'var(--color-navy-deep)', letterSpacing: '-0.005em', }, relatedTitleSoft: { color: 'var(--color-navy-medium)', fontWeight: 500 }, relGrid: { display: 'grid', gridTemplateColumns: '1fr', gap: 'var(--space-md)', }, relCard: { position: 'relative', display: 'flex', flexDirection: 'column', background: '#fff', border: '1px solid rgba(33,52,64,0.08)', borderRadius: 2, overflow: 'hidden', color: 'inherit', textDecoration: 'none', transition: 'transform 360ms cubic-bezier(0.16,1,0.3,1), border-color 360ms ease, box-shadow 360ms ease', }, relImgWrap: { position: 'relative', aspectRatio: '4/3', overflow: 'hidden' }, relBody: { padding: 24 }, relChips: { display: 'flex', flexWrap: 'wrap', gap: 6, marginBottom: 12 }, relChip: { fontSize: 10, fontWeight: 700, letterSpacing: '0.14em', textTransform: 'uppercase', color: 'var(--color-navy-deep)', background: 'rgba(33,52,64,0.06)', padding: '4px 10px', borderRadius: 2, }, relName: { margin: 0, fontSize: 20, fontWeight: 800, color: 'var(--color-navy-deep)', letterSpacing: '-0.005em', }, relLoc: { margin: '6px 0 0', fontSize: 13, color: 'var(--color-navy-medium)', }, relArrow: { position: 'absolute', top: 18, right: 18, width: 36, height: 36, background: 'rgba(255,255,255,0.92)', backdropFilter: 'blur(8px)', borderRadius: 999, display: 'flex', alignItems: 'center', justifyContent: 'center', color: 'var(--color-navy-deep)', transition: 'background 240ms ease, color 240ms ease, transform 240ms ease', }, }; const fbMQ = document.createElement('style'); fbMQ.textContent = ` @media (min-width: 900px) { section[data-screen-label="02 Ficha Resumen"] > div { grid-template-columns: minmax(0, 1.45fr) minmax(280px, 1fr) !important; gap: var(--space-3xl) !important; } } @media (min-width: 700px) { section[data-screen-label="03 Otros Distritos"] > div > div:last-child { grid-template-columns: 1fr 1fr !important; } } @media (min-width: 1024px) { section[data-screen-label="03 Otros Distritos"] > div > div:last-child { grid-template-columns: 1fr 1fr 1fr !important; } } section[data-screen-label="03 Otros Distritos"] a[style*="overflow: hidden"]:hover { transform: translateY(-3px); border-color: rgba(168,107,45,0.4) !important; box-shadow: 0 16px 40px rgba(33,52,64,0.08); } section[data-screen-label="03 Otros Distritos"] a[style*="overflow: hidden"]:hover > span:last-child { background: var(--color-copper-fallback) !important; color: #fff !important; transform: translate(2px, -2px); } section[data-screen-label="02 Ficha Resumen"] a[style*="margin-top: 0"]:hover { color: var(--color-navy-deep) !important; } section[data-screen-label="02 Ficha Resumen"] a[target="_blank"]:hover { gap: 12px !important; } `; document.head.appendChild(fbMQ); window.FichaBody = FichaBody;