// Shared data: services, projects, typologies, i18n
const I18N = {
  es: {
    nav: { work: "Portafolio", services: "Servicios", about: "Estudio", contact: "Contacto" },
    tagline: "Coordinacion BIM",
    heroKicker: "Estudio de coordinacion BIM",
    heroTitle1: "Construir antes de construir.",
    heroTitle2: "Modelos 3D que resuelven obras reales.",
    heroTitle3: "Precision digital. Decisiones concretas.",
    heroBody: "Somos asesores BIM para proyectos de arquitectura, MEP y estructura: desde la definicion de estandares y metodologias de trabajo y la revision de modelos, hasta cubrir todo el espectro de aplicaciones BIM a lo largo del ciclo de diseno y obra — desde el primer modelo hasta el as-built.",
    ctaWork: "Ver portafolio",
    ctaContact: "Agendar llamada",
    stats: [
      { n: "+76", l: "Proyectos coordinados" },
      { n: "33", l: "Anos de experiencia" },
      { n: "10", l: "Tipologias" },
      { n: "2.4M", l: "m2 modelados" },
    ],
    expKicker: "Experiencia",
    expTitle: "33 años de trayectoria, 22 dedicados a las asesorías BIM",
    expBody: "coordina Bim Consulting nace como oficina de diseno y, a lo largo de mas de 33 anos de trayectoria, evoluciona hacia una consultora especializada en asesorias BIM aplicadas a proyectos de arquitectura e ingenieria en todas sus etapas. Ese recorrido nos ha permitido participar en proyectos emblematicos como los modelos iniciales del Aeropuerto Internacional de Santiago, el Centro Cultural GAM, la asesoria y definicion de la politica BIM del Banco Central para su proyecto Central de Efectivo, y hospitales de alta complejidad a lo largo de Chile.",
    expComplex: "Tipologias que dominamos",
    expComplexList: ["Salud", "Vivienda", "Oficinas", "Retail", "Infraestructura", "Educacional", "Cultural", "Hoteleria", "Industrial", "Deportivo"],
    expHighlights: [
      { n: "33", l: "Anos de experiencia" },
      { n: "75", l: "Proyectos coordinados" },
      { n: "1.9M", l: "m2 modelados" },
    ],
    summaryKicker: "Resumen",
    summaryTitle: "Numeros reales de todos los proyectos coordinados hasta la fecha.",
    summaryTotalLabel: "M2 totales coordinados",
    summaryProjLabel: "proyectos",
    servicesTitle: "Servicios",
    servicesSubtitle: "Ocho lineas de trabajo integradas bajo una sola metodologia.",
    worksTitle: "Portafolio",
    worksSubtitle: "Diez tipologias. Cada una con sus propios desafios de coordinacion.",
    filterAll: "Todos",
    closeLabel: "Cerrar",
    viewProject: "Ver ficha tecnica",
    sheet: "Ficha tecnica",
    client: "Mandante",
    location: "Ubicacion",
    year: "Ano",
    area: "Superficie",
    typology: "Tipologia",
    services: "Servicios",
    status: "Estado",
    software: "Software",
    photos: "Fotografias",
    contactTitle: "Partamos el proyecto",
    contactBody: "Cuentanos que estas coordinando. Respondemos en 24h habiles.",
    footer: "Santiago de Chile - Coordinacion BIM desde 2011",
  },
  en: {
    nav: { work: "Portfolio", services: "Services", about: "Studio", contact: "Contact" },
    tagline: "BIM Coordination",
    heroKicker: "BIM coordination studio",
    heroTitle1: "Build before building.",
    heroTitle2: "3D models that solve real construction.",
    heroTitle3: "Digital precision. Concrete decisions.",
    heroBody: "We are BIM advisors for architecture, MEP and structural projects: from defining work standards and methodologies and reviewing models, to covering the full spectrum of BIM applications across the design-to-construction cycle — from the first model to as-built.",
    ctaWork: "See portfolio",
    ctaContact: "Book a call",
    stats: [
      { n: "+76", l: "Coordinated projects" },
      { n: "33", l: "Years of experience" },
      { n: "10", l: "Typologies" },
      { n: "2.4M", l: "m2 modeled" },
    ],
    expKicker: "Experience",
    expTitle: "33 years, 22 dedicated to BIM advisory",
    expBody: "coordina Bim Consulting began as a design office and, over more than 33 years, evolved into a firm specialized in BIM advisory applied to architecture and engineering projects at every stage. That track record has included landmark projects such as the initial models for Santiago International Airport, the GAM Cultural Center, BIM policy advisory and definition for the Central Bank's Centro de Efectivo project, and highly complex hospitals across Chile.",
    expComplex: "Typologies we master",
    expComplexList: ["Healthcare", "Residential", "Offices", "Retail", "Infrastructure", "Education", "Cultural", "Hospitality", "Industrial", "Sports"],
    summaryKicker: "Summary",
    summaryTitle: "Real numbers across every project coordinated to date.",
    summaryTotalLabel: "Total m2 coordinated",
    summaryProjLabel: "projects",
    expHighlights: [
      { n: "33", l: "Years of experience" },
      { n: "75", l: "Coordinated projects" },
      { n: "1.9M", l: "m2 modeled" },
    ],
    servicesTitle: "Services",
    servicesSubtitle: "Eight integrated service lines under a single methodology.",
    worksTitle: "Portfolio",
    worksSubtitle: "Ten typologies. Each with its own coordination challenges.",
    filterAll: "All",
    closeLabel: "Close",
    viewProject: "Open datasheet",
    sheet: "Datasheet",
    client: "Client",
    location: "Location",
    year: "Year",
    area: "Area",
    typology: "Typology",
    services: "Services",
    status: "Status",
    software: "Software",
    photos: "Photos",
    contactTitle: "Let's start the project",
    contactBody: "Tell us what you're coordinating. We reply in 24 business hours.",
    footer: "Santiago, Chile - BIM Coordination since 2011",
  },
};

const SERVICES = [
  { num: "01", es: "Asesoria BIM", en: "BIM Advisory", tag: "BIM Management", desc_es: "BEP, roles y flujos de informacion desde el kickoff.", desc_en: "BEP, roles and information flows from kickoff.",
    long_es: "Acompanamiento a empresas en sus procesos BIM, desde definicion de objetivos y estandares hasta el rol de Gestion BIM y BIM Manager dentro de la organizacion. Incluye revision de modelos y entregables, validando cumplimiento de estandares y calidad antes de avanzar en el proyecto. Orientado a equipos que ya ejecutan BIM y buscan un asesor senior externo que oriente decisiones y controle resultados." },
  { num: "02", es: "Modelado BIM - Arquitectura / MEP / Civil", en: "BIM Modeling - Architecture / MEP / Civil", tag: "Modelado MEP", desc_es: "Modelos LOD 200-400 multidisciplina, federados y auditados.", desc_en: "Multi-discipline LOD 200-400 models, federated and audited.",
    long_es: "Desarrollo de modelos en LOD 200 a 400, multidisciplina, federados y auditados. Este modelado se realiza tanto como parte de un encargo de coordinacion, donde asumimos el modelado de todas las especialidades de un proyecto (o las que se requieran), como en encargos puntuales de modelado de una sola especialidad." },
  { num: "03", es: "Deteccion de conflictos", en: "Clash detection", tag: "Coordinacion BIM", desc_es: "Clash detection sistematico con reportes y seguimiento semanal.", desc_en: "Systematic clash detection with reports and weekly tracking.",
    long_es: "Aplicamos una metodologia propia, desarrollada durante los ultimos anos, para registrar y documentar sistematicamente los puntos de conflicto entre especialidades. El proceso genera documentacion planimetrica del resultado final coordinado del proyecto, materializada en fichas especiales y en el trabajo directo mediante los modulos de coordinacion de la plataforma." },
  { num: "04", es: "Coordinacion BIM", en: "BIM Coordination", tag: "Coordinacion BIM", desc_es: "Reuniones, matriz de responsabilidades y resolucion en modelo.", desc_en: "Meetings, responsibility matrix and in-model resolution.",
    long_es: "Actuamos como asesores y coordinadores generales del proyecto, integrando en un entorno comun de datos los modelos que desarrollan las distintas especialidades. Tambien asumimos este rol cuando el encargo incluye el modelado de todas las especialidades: en ese caso, la deteccion de conflictos y el modelado avanzan en paralelo, realizando una coordinacion inicial durante el proceso para luego continuar con los modelos integrados en los modulos de coordinacion." },
  { num: "05", es: "Cubicaciones y cantidades", en: "Quantities & takeoffs", tag: null, desc_es: "Extraccion parametrica, control de partidas y presupuestos.", desc_en: "Parametric extraction, cost control and budgeting.",
    long_es: "Trabajamos con este alcance cuando el cliente requiere modelos orientados especificamente a cubicacion, lo que exige que el nivel de detalle del modelado y de las soluciones constructivas sea muy preciso, reflejando fielmente cada elemento a cuantificar." },
  { num: "06", es: "Escaneo laser 3D", en: "3D Laser Scanning", tag: "Escaneo laser 3D", desc_es: "Nubes de puntos de alta precision para obra y patrimonio.", desc_en: "High-precision point clouds for construction and heritage.",
    long_es: "Contamos con escaner laser movil y estatico, de largo alcance y alta precision, y experiencia en levantamientos de infraestructura como aeropuertos, instalaciones hospitalarias y edificios de distinta categoria. Cada levantamiento se planifica pensando en el modelado posterior a partir de la nube de puntos, por lo que nuestra experiencia en BIM aporta una mirada critica sobre como ejecutarlo." },
  { num: "07", es: "Modelos As-Built", en: "As-Built Models", tag: "Modelado As-Built", desc_es: "Modelos post-construccion verificables contra realidad.", desc_en: "Post-construction models verifiable against reality.",
    long_es: "Consecuencia directa del escaneo laser: estos levantamientos se realizan pensando en la generacion de informacion As-Built, tanto modelos como planos. Contamos con casos emblematicos que respaldan esta experiencia, como el Aeropuerto Internacional de Santiago, donde se genero el modelo As-Built del terminal y de todas sus instalaciones —central termica, planta de tratamiento de agua— a partir de un levantamiento con escaner laser; y el Teatro GAM Etapa 2, cuya obra inconclusa fue levantada integramente con tecnologia laser, generando un modelo As-Built real desde el cual se desarrollo el proyecto ejecutivo." },
  { num: "08", es: "Soporte en terreno", en: "On-site Support", tag: "Asesoria en Obra", desc_es: "Acompanamiento continuo en obra, resolucion en tiempo real.", desc_en: "Continuous on-site support, real-time resolution.",
    long_es: "Asesoria remota o con personal instalado en obra, para el seguimiento de los modelos de coordinacion y la resolucion de problemas de coordinacion que surgen dia a dia. El trabajo se resume en fichas y planos especificos de coordinacion." },
];

const TYPOLOGIES = [
  { id: "salud",          es: "Salud",               en: "Healthcare" },
  { id: "vivienda",       es: "Edificio Vivienda",    en: "Residential" },
  { id: "oficinas",       es: "Oficinas",             en: "Offices" },
  { id: "retail",         es: "Retail",               en: "Retail" },
  { id: "infraestructura",es: "Infraestructura",      en: "Infrastructure" },
  { id: "educacional",    es: "Educacional",          en: "Education" },
  { id: "cultural",       es: "Cultural",             en: "Cultural" },
  { id: "hoteleria",      es: "Hoteleria",            en: "Hospitality" },
  { id: "industrial",     es: "Industrial",           en: "Industrial" },
  { id: "deportivo",      es: "Deportivo",            en: "Sports" },
];

const PROJECTS_FALLBACK = [
  {
    code: "EDU-01", typology: "educacional", name: "Sede Duoc Lastarria",
    location: "Chile", year: "2025-2026", client: "Cecilia Puga - Paula Velasco", area: "2,000 m²",
    desc: "Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [],
  },
  {
    code: "CUL-01", typology: "cultural", name: "Archivo Regional de Valparaíso",
    location: "Chile", year: "2025-2026", client: "Cecilia Puga - Paula Velasco", area: "5,300 m²",
    desc: "Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [
      { url: 'uploads/CUL-01-02.png', cap: 'Vista general edificio' },
      { url: 'uploads/CUL-01-01.png', cap: 'Modelo MEP coordinado' },
      { url: 'uploads/CUL-01-03.png', cap: 'Cubierta y equipos técnicos' },
      { url: 'uploads/CUL-01-04.png', cap: 'Corte transversal coordinado' },
      { url: 'uploads/CUL-01-05.png', cap: 'Planta de climatización' },
    ],
  },
  {
    code: "SAL-01", typology: "salud", name: "Hospital Cordillera - Coordinación Pasillos, Auditorio y Jardín Infantil",
    location: "Chile", year: "2024-2026", client: "Concesionaria Sacyr", area: "98,305 m²",
    desc: "Coordinación de pasillos de todo el hospital, auditorio y jardín infantil. Generación de entrega de planos de Clima desde modelo.",
    services: ["Coordinacion BIM"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "lg",
    images: [
      { url: 'uploads/HPC-BIM-NEU-GEN-XXX-AZ0-M3D-2.png', cap: 'Modelo 3D completo' },
      { url: 'uploads/HPC-BIM-NEU-GEN-XXX-AZ0-M3D-2-12b9ed86.png', cap: 'Vista isométrica coordinada' },
      { url: 'uploads/hospital-mep.avif', cap: 'Sistema MEP hospitalario' },
    ],
  },
  {
    code: "CUL-02", typology: "cultural", name: "Cenro Antártico Internacional",
    location: "Chile", year: "2025", client: "Alberto Moletto Arquitectos", area: "20,000 m²",
    desc: "Modelación y coordinación de especialidades ajuste nueva versión de proeycto",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [],
  },
  {
    code: "OFI-01", typology: "oficinas", name: "Edificio Corporativo EFE",
    location: "Chile", year: "2024", client: "TORUM", area: "12,600 m²",
    desc: "Escaneo láser, Modelado Asbuilt, Modelación y coordinación de especialidades,",
    services: ["Coordinacion BIM", "Modelado MEP", "Modelado As-Built", "Escaneo laser 3D"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [
      { url: 'uploads/Corte Long.jpg', cap: 'Corte longitudinal coordinado' },
      { url: 'uploads/Corte Long-71f89e25.jpg', cap: 'Corte detallado especialidades' },
      { url: 'uploads/Corte Long-e08cee1a.jpg', cap: 'Sección transversal' },
    ],
  },
  {
    code: "INF-01", typology: "infraestructura", name: "Teleférico Bicentenario Metropolitano",
    location: "Chile", year: "2022-2024", client: "Icafal", area: "15,263 m²",
    desc: "BIM Manager y Coordinación BIM. Creación de Plataforma ACC, definición de estructura de administración, grupos de trabajo colaborativo y coordinación de especialidades. Modelación de especialidad sanitaria, micropilotes.",
    services: ["Coordinacion BIM", "Modelado MEP", "BIM Management"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [],
  },
  {
    code: "SAL-02", typology: "salud", name: "Hospital Buin Paine",
    location: "Chile", year: "2021-2024", client: "Bbats Consulting / Sacyr", area: "56,000 m²",
    desc: "Coordinador BIM. Modelado especialdiades",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "lg",
    images: [],
  },
  {
    code: "CUL-03", typology: "cultural", name: "Centro Cultural GAM 2",
    location: "Chile", year: "2023", client: "Cristian Fernández Arquitectos", area: "15,263 m²",
    desc: "BIM Manager. Levantamiento de edificio existente mediante escáner láser, generación de modelos As Built, coordinación de proyectos. Configuración y administración de plataforma BIM 360.",
    services: ["Coordinacion BIM", "BIM Management", "Modelado As-Built", "Escaneo laser 3D"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [
      { url: 'uploads/CBC_GAM_BIM_MD_001.png', cap: 'Modelo As-Built GAM' },
      { url: 'uploads/CBC_GAM_BIM_MD_001-e4c0baf4.png', cap: 'Nube de puntos procesada' },
    ],
  },
  {
    code: "SAL-03", typology: "salud", name: "Hospital La Florida - Ampliación Sistema Clima",
    location: "Chile", year: "2022", client: "JG Ingenieros", area: "67,504 m²",
    desc: "Coordinación BIM General del equipo de diseño.",
    services: ["Coordinacion BIM", "BIM Management"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "lg",
    images: [],
  },
  {
    code: "RET-01", typology: "retail", name: "Locales Starbucks Aeropuerto Nuevo Pudahuel",
    location: "Chile", year: "2022", client: "Constructora CNC", area: "976 m²",
    desc: "Modelación Asbuilt de arquitectura, estructura y especialidades. Planimetría desde modelo según Plan NPU.",
    services: ["Modelado MEP", "Modelado As-Built"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [],
  },
  {
    code: "SAL-04", typology: "salud", name: "Hospital Maipú - Ampliación Sistema Clima",
    location: "Chile", year: "2022", client: "JG Ingenieros", area: "70,301 m²",
    desc: "Coordinación BIM General del equipo de diseño.",
    services: ["Coordinacion BIM", "BIM Management"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "lg",
    images: [],
  },
  {
    code: "CUL-04", typology: "cultural", name: "Museo Regional de Ñuble",
    location: "Chile", year: "2021/2022", client: "Tirado Arquitectos", area: "5,827 m²",
    desc: "Modelación y coordinación BIM de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [],
  },
  {
    code: "CUL-05", typology: "cultural", name: "Centro Artesanal Coyhaique",
    location: "Chile", year: "2021/2022", client: "Tirado Arquitectos", area: "2,200 m²",
    desc: "Modelación y coordinación BIM de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [],
  },
  {
    code: "CUL-06", typology: "cultural", name: "Archivo Regional Tarapacá",
    location: "Chile", year: "2021", client: "Moletto Arquitectos", area: "4,500 m²",
    desc: "Coordinación BIM Obra. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP", "Asesoria en Obra"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [],
  },
  {
    code: "OFI-02", typology: "oficinas", name: "Edificio Diagonal Puerto Montt",
    location: "Chile", year: "2021", client: "Real Assets", area: "16,131 m²",
    desc: "Coordinador BIM. Modelación y coordinación BIM de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [],
  },
  {
    code: "VIV-01", typology: "vivienda", name: "Edificio Puerto Chico - Puerto Varas",
    location: "Chile", year: "2021", client: "Real Assets", area: "16,386 m²",
    desc: "Modelación y coordinación BIM de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [],
  },
  {
    code: "INF-02", typology: "infraestructura", name: "Comisaría Providencia Sur",
    location: "Chile", year: "2020-2021", client: "Iglesis Arquitectos", area: "4,000 m²",
    desc: "Coordinación BIM , Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [],
  },
  {
    code: "INF-03", typology: "infraestructura", name: "Banco Central - Centro Logístico (Contraparte Técnica)",
    location: "Chile", year: "2018-2022", client: "Banco Central de Chile", area: "20,000 m²",
    desc: "BIM Manager. Definición de plan BIM, estándares y metodologías. Contraparte técnica de oficinas de ingeniería para IB e ID.",
    services: ["BIM Management", "Asesoria BIM"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [],
  },
  {
    code: "IND-01", typology: "industrial", name: "Centro Importaciones Carga Aeropuerto Santiago - Aerosan, Depocargo y Fastair (Etapa A)",
    location: "Chile", year: "2018/2020", client: "Optimiza Gerenciamiento", area: "27,562 m²",
    desc: "Coordinación BIM Obra. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP", "Asesoria en Obra"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [],
  },
  {
    code: "SAL-05", typology: "salud", name: "Hospital Alto Hospicio",
    location: "Chile", year: "2019", client: "Bbats Consulting & Projects S.L.P.", area: "37,000 m²",
    desc: "Coordinación BIM Obra. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP", "Asesoria en Obra"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [],
  },
  {
    code: "VIV-02", typology: "vivienda", name: "Edificio de Viviendas Rosas",
    location: "Chile", year: "2019", client: "Inmobiliaria Torina", area: "9,101 m²",
    desc: "Coordinación BIM, Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [],
  },
  {
    code: "VIV-03", typology: "vivienda", name: "Edificio de Viviendas Studio +",
    location: "Chile", year: "2019", client: "Inmo B Spa", area: "6,900 m²",
    desc: "Coordinación BIM, Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [],
  },
  {
    code: "VIV-04", typology: "vivienda", name: "Edificio Vivienda Plaza Candelaria",
    location: "Chile", year: "2018/2019", client: "Real Assets", area: "3,105 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [],
  },
  {
    code: "VIV-05", typology: "vivienda", name: "Edificio Mar Jónico",
    location: "Chile", year: "2018/2019", client: "Montalva Quindos", area: "5,739 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [],
  },
  {
    code: "CUL-07", typology: "cultural", name: "Centro Antártico Internacional",
    location: "Chile", year: "2018/2019", client: "Alberto Moletto Arquitectos", area: "21,000 m²",
    desc: "Coordinación BIM Obra. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP", "Asesoria en Obra"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [],
  },
  {
    code: "RET-02", typology: "retail", name: "Mall Paseo Alerce Etapa I",
    location: "Chile", year: "2018/2019", client: "Grupo Pasmar", area: "34,628 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.Asesori aen Obra",
    services: ["Coordinacion BIM", "Modelado MEP", "Asesoria BIM", "Asesoria en Obra"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [],
  },
  {
    code: "RET-03", typology: "retail", name: "Homecenter Vallenar",
    location: "Chile", year: "2018", client: "Rentas Falabella S.A.", area: "10,000 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [],
  },
  {
    code: "RET-04", typology: "retail", name: "Tottus Coquimbo",
    location: "Chile", year: "2018", client: "Rentas Falabella S.A.", area: "11,444 m²",
    desc: "Coordinación BIM Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [],
  },
  {
    code: "RET-05", typology: "retail", name: "Ampliación Homecenter Valdivia",
    location: "Chile", year: "2018", client: "Rentas Falabella S.A.", area: "3,000 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [
      { url: 'uploads/RET-05-1.png', cap: 'Vista general Sodimac Homecenter' },
      { url: 'uploads/RET-05-2.jpg', cap: 'Nube de puntos escaneo láser' },
      { url: 'uploads/RET-05-3.jpg', cap: 'Modelo estructural federado' },
      { url: 'uploads/RET-05-4.jpg', cap: 'Fachada con nube de puntos' },
      { url: 'uploads/RET-05-5.jpg', cap: 'Corte longitudinal coordinado' },
      { url: 'uploads/RET-05-6.jpg', cap: 'Detalle estructura de techumbre' },
      { url: 'uploads/RET-05-7.jpg', cap: 'Fachada principal escaneada' },
      { url: 'uploads/RET-05-8.png', cap: 'Interior de bodega escaneado' },
      { url: 'uploads/RET-05-9.png', cap: 'Vista interior pasillo principal' },
      { url: 'uploads/RET-05-11.jpg', cap: 'Corredor de sala de ventas' },
      { url: 'uploads/RET-05-12.jpg', cap: 'Cubierta y estructura interior' },
      { url: 'uploads/RET-05-13.jpg', cap: 'Vista general del vehículo de escaneo' },
    ],
  },
  {
    code: "SAL-06", typology: "salud", name: "Hospital Quillota Petorca",
    location: "Chile", year: "2017/2018", client: "Bbats + Tirado Arquitectos", area: "70,534 m²",
    desc: "Asesoría BIM, coordinación BIM y revisión de criterios.",
    services: ["Coordinacion BIM", "Asesoria BIM"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "lg",
    images: [],
  },
  {
    code: "INF-04", typology: "infraestructura", name: "Banco Central - Centro Logístico (Worley Parsons)",
    location: "Chile", year: "2017/2018", client: "Worley Parsons", area: "20,000 m²",
    desc: "BIM Manager, Definición de plan de implementación BIM, estándares y metodologías de trabajo para oficinas consultoras y auditorías.",
    services: ["BIM Management", "Asesoria BIM"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [],
  },
  {
    code: "VIV-06", typology: "vivienda", name: "Edificio Aires de Recoleta",
    location: "Chile", year: "2017/2018", client: "BAU Ingenieros Consultores", area: "13,886 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [],
  },
  {
    code: "SAL-07", typology: "salud", name: "Consultoría BIM Hospital El Salvador / Instituto de Geriatría CSSO",
    location: "Chile", year: "2015/2018", client: "CSSO", area: "160,000 m²",
    desc: "Revisión de proyectos, auditoría y revisión de criterios BIM.",
    services: ["Asesoria BIM"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "lg",
    images: [],
  },
  {
    code: "OFI-03", typology: "oficinas", name: "Edificio Centenario - Mutual de Carabineros",
    location: "Chile", year: "2017", client: "Kronos Ltda.", area: "20,000 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [],
  },
  {
    code: "OFI-04", typology: "oficinas", name: "Edificio Hannover",
    location: "Chile", year: "2017", client: "MJ Gestión", area: "19,030 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [],
  },
  {
    code: "OFI-05", typology: "oficinas", name: "Edificio de Oficinas y Centro de Eventos Hyatt",
    location: "Chile", year: "2016", client: "BAU Ingenieros Consultores", area: "29,000 m²",
    desc: "Coordinación BIM. Modelación y especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [],
  },
  {
    code: "INF-05", typology: "infraestructura", name: "Aeropuerto Nuevo Pudahuel",
    location: "Chile", year: "2016", client: "Concesionaria Nuevo Pudahuel", area: "110,000 m²",
    desc: "Trabajo con plataforma C4R para integrar modelo a sistema BIM de concesionaria y unificación de modelos. Puesta en marcha sistema, modelacion as built edificios existentes.",
    services: ["Modelado MEP", "BIM Management", "Modelado As-Built"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "lg",
    images: [],
  },
  {
    code: "INF-06", typology: "infraestructura", name: "Ampliación Aeropuerto Carriel Sur - Terminal + Obras Exteriores",
    location: "Chile", year: "2016", client: "Icafal", area: "30,000 m²",
    desc: "Modelación as built, Modelación BIM especialdaides , escáner láser y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP", "Modelado As-Built", "Escaneo laser 3D"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [
      { url: 'uploads/INF-06-02.png', cap: 'Vista general terminal' },
      { url: 'uploads/INF-06-03.png', cap: 'Modelo federado estructura y MEP' },
    ],
  },
  {
    code: "HOT-01", typology: "hoteleria", name: "Edificio OMR y Centro de Eventos Hyatt OMR",
    location: "Chile", year: "2016", client: "BAU Ingenieros Consultores", area: "24,420 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [],
  },
  {
    code: "INF-07", typology: "infraestructura", name: "Modelación Nuevo Proyecto Clima Banco Central",
    location: "Chile", year: "2015/2016", client: "Banco Central", area: "6,994 m²",
    desc: "Coordinación BIM. Modelación y especialidades sistema de climatización.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [],
  },
  {
    code: "OFI-06", typology: "oficinas", name: "Edificio de Oficinas Synergy",
    location: "Chile", year: "2015/2016", client: "BAU Ingenieros Consultores", area: "15,654 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [],
  },
  {
    code: "SAL-08", typology: "salud", name: "Clínica Indisa",
    location: "Chile", year: "2015", client: "Clínica Indisa", area: "7,300 m²",
    desc: "Coordinación BIM en obra. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP", "Asesoria en Obra"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [
      { url: 'uploads/SAL-09-1.jpg', cap: 'Modelo coordinado isométrico' },
      { url: 'uploads/SAL-09-3.jpg', cap: 'Vista transparente MEP' },
      { url: 'uploads/SAL-09-8.JPG', cap: 'Detalle instalaciones interior' },
      { url: 'uploads/SAL-09-9.JPG', cap: 'Vista cubierta y equipos' },
      { url: 'uploads/SAL-09-10.JPG', cap: 'Modelo completo federado' },
      { url: 'uploads/SAL-09-11.jpg', cap: 'Corte con instalaciones' },
      { url: 'uploads/SAL-09-15.jpg', cap: 'Fachada con especialidades' },
    ],
  },
  {
    code: "VIV-07", typology: "vivienda", name: "Edificio Residencial Ochoa",
    location: "Chile", year: "2015", client: "Inmobiliaria Santa Isabel", area: "10,400 m²",
    desc: "Coordinación BIM. Modelación y especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [],
  },
  {
    code: "EDU-02", typology: "educacional", name: "Facultad de Medicina UNAB Concepción (segunda etapa)",
    location: "Chile", year: "2015", client: "Laureate Spa", area: "9,000 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [
      { url: 'uploads/EDU-02-2.jpg', cap: 'Vista general edificios coordinados' },
      { url: 'uploads/EDU-02-5.jpg', cap: 'Modelo MEP fachada' },
      { url: 'uploads/EDU-02-8.jpg', cap: 'Corte transversal instalaciones' },
      { url: 'uploads/EDU-02-9.jpg', cap: 'Vista fachada interior con MEP' },
      { url: 'uploads/EDU-02-10.jpg', cap: 'Vista general campus' },
      { url: 'uploads/EDU-02-12.jpg', cap: 'Detalle instalaciones cubierta' },
      { url: 'uploads/EDU-02-13.jpg', cap: 'Vista interior especialidades' },
      { url: 'uploads/EDU-02-14.jpg', cap: 'Fachada con instalaciones expuestas' },
    ],
  },
  {
    code: "VIV-08", typology: "vivienda", name: "Edificio Miguel Claro",
    location: "Chile", year: "2015", client: "Felipe Soffia Arquitectos", area: "4,923 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [],
  },
  {
    code: "HOT-02", typology: "hoteleria", name: "Hotel Court Yard by Marriott",
    location: "Chile", year: "2014", client: "Integra Proyectos", area: "25,900 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [
      { url: 'https://drive.google.com/thumbnail?id=116sTHa4_LadIl_4x1HPbNmmhF0q-qJtS&sz=w1920', cap: 'Vista general hotel' },
      { url: 'https://drive.google.com/thumbnail?id=10DUEQbxNvlnW4gjEOpobrB-is-fvwzWO&sz=w1920', cap: 'Modelo MEP coordinado' },
      { url: 'https://drive.google.com/thumbnail?id=1i361ODH00E1KsyDx1YHNx3fwQ7xS1kW4&sz=w1920', cap: 'Coordinación instalaciones' },
      { url: 'https://drive.google.com/thumbnail?id=1O8789q3brrMAVo5vzJC6RHNLHfjNmLXi&sz=w1920', cap: 'Detalle MEP nivel' },
      { url: 'https://drive.google.com/thumbnail?id=1af79n_xYQ6JET03dF_tRQKoiujIbR-Em&sz=w1920', cap: 'Perspectiva estructural' },
      { url: 'https://drive.google.com/thumbnail?id=1uwIcVZOzhVjVphCzHrMi5gwLVPgR0l7P&sz=w1920', cap: 'Modelo federado completo' },
      { url: 'https://drive.google.com/thumbnail?id=1t7L0fX5ui1eUdl7S_Qzf9AITGm0kowbw&sz=w1920', cap: 'Vista isométrica' },
    ],
  },
  {
    code: "CUL-08", typology: "cultural", name: "Teatro Municipal Pudahuel",
    location: "Chile", year: "2014", client: "Bis Arquitectos", area: "2,000 m²",
    desc: "Asesoría de coordinación espacial BIM para proyecto de arquitectura.",
    services: ["Coordinacion BIM", "Asesoria BIM"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [],
  },
  {
    code: "SAL-09", typology: "salud", name: "Cesfam Copiapó",
    location: "Chile", year: "2014", client: "Empresa RR y Cía Ltda", area: "2,267 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [],
  },
  {
    code: "SAL-10", typology: "salud", name: "Asesoría BIM Hospital de San Bernardo",
    location: "Chile", year: "2014", client: "De Iruarrizaga Arquitectos", area: "6,000 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [
      { url: 'uploads/SAL-10-6.jpg', cap: 'Modelo federado especialidades' },
      { url: 'uploads/SAL-10-4.jpg', cap: 'Vista general modelo coordinado' },
      { url: 'uploads/SAL-10-5.jpg', cap: 'Modelo MEP fondo negro' },
      { url: 'uploads/SAL-10-7.jpg', cap: 'Vista aérea cuerpos del hospital' },
      { url: 'uploads/SAL-10-9.jpg', cap: 'Detalle instalaciones interior' },
    ],
  },
  {
    code: "VIV-09", typology: "vivienda", name: "Edificio Canto del Agua",
    location: "Chile", year: "2014", client: "BAU Ingenieros Consultores", area: "12,890 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [],
  },
  {
    code: "VIV-10", typology: "vivienda", name: "Edificio Terrazas de Lo Curro",
    location: "Chile", year: "2014", client: "BAU Ingenieros Consultores", area: "17,587 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [],
  },
  {
    code: "RET-06", typology: "retail", name: "Mall Open Plaza Ovalle",
    location: "Chile", year: "2014", client: "Integra Proyectos", area: "33,000 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [],
  },
  {
    code: "VIV-11", typology: "vivienda", name: "Edificio Génesis",
    location: "Chile", year: "2014", client: "BAU Ingenieros Consultores", area: "5,800 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [],
  },
  {
    code: "EDU-03", typology: "educacional", name: "Instituto Profesional Virginio Gómez",
    location: "Chile", year: "2014", client: "Marsino Arquietctos", area: "6,600 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [],
  },
  {
    code: "VIV-12", typology: "vivienda", name: "Edificio Residencial Velas de Montemar",
    location: "Chile", year: "2014", client: "BAU Ingenieros Consultores", area: "10,000 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [],
  },
  {
    code: "SAL-11", typology: "salud", name: "Centro Médico Manuel Montt",
    location: "Chile", year: "2013", client: "Iglesis Prat Arquitectos", area: "23,000 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [
      { url: 'https://drive.google.com/thumbnail?id=1rySCJw_XVv4wSsWv5rzhAiyKvW9lVZY-&sz=w1920', cap: 'Vista modelo coordinado' },
      { url: 'https://drive.google.com/thumbnail?id=1fFwPtHWnWs0CwMJv1-45B-5hHMJ0McpY&sz=w1920', cap: 'Detalle MEP interior' },
      { url: 'https://drive.google.com/thumbnail?id=1wPCUBQYIHC15Qwm0zXc9FsMbp_L6-KJ7&sz=w1920', cap: 'Perspectiva instalaciones' },
    ],
  },
  {
    code: "VIV-13", typology: "vivienda", name: "Edificio Santa Inés",
    location: "Chile", year: "2013", client: "", area: "31,791 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [],
  },
  {
    code: "HOT-03", typology: "hoteleria", name: "Remodelación Hotel City",
    location: "Chile", year: "2013", client: "BAU Ingenieros Consultores", area: "8,300 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.Modelos AS Built, escaneo láser",
    services: ["Coordinacion BIM", "Modelado MEP", "Modelado As-Built", "Escaneo laser 3D"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [
      { url: 'uploads/HOT-03-1.jpg', cap: 'Modelo MEP federado' },
      { url: 'uploads/HOT-03-5.jpg', cap: 'Vista general fachada' },
      { url: 'uploads/HOT-03-6.jpg', cap: 'Detalle instalaciones interior' },
      { url: 'uploads/HOT-03-7.jpg', cap: 'Vista en planta especialidades' },
      { url: 'uploads/HOT-03-8.jpg', cap: 'Detalle sistema climatización' },
      { url: 'uploads/HOT-03-10.jpg', cap: 'Vista general edificios' },
    ],
  },
  {
    code: "VIV-14", typology: "vivienda", name: "Edificio Matta",
    location: "Chile", year: "2013", client: "PY Proyectos", area: "7,026 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [
      { url: 'uploads/VIV-14-11.jpg', cap: 'Vista general edificio' },
      { url: 'uploads/VIV-14-4.jpg', cap: 'Modelo axonométrico coordinado' },
      { url: 'uploads/VIV-14-6.jpg', cap: 'Modelo MEP especialidades' },
      { url: 'uploads/VIV-14-7.jpg', cap: 'Planta técnica azotea' },
      { url: 'uploads/VIV-14-8.jpg', cap: 'Fachada coordinada' },
      { url: 'uploads/VIV-14-9.jpg', cap: 'Detalle instalaciones azotea' },
      { url: 'uploads/VIV-14-10.jpg', cap: 'Vista general instalaciones' },
    ],
  },
  {
    code: "SAL-12", typology: "salud", name: "Hospital Concesionado de La Florida - Asesoría en Obra",
    location: "Chile", year: "2011/2013", client: "Concesionaria San José", area: "70,301 m²",
    desc: "Coordinación BIM en obra, Modelación y coordinación de especialidades en terreno.",
    services: ["Coordinacion BIM", "Modelado MEP", "Asesoria en Obra"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "lg",
    images: [],
  },
  {
    code: "SAL-13", typology: "salud", name: "Hospital Concesionado de Maipú - Asesoría en Obra",
    location: "Chile", year: "2011/2013", client: "Concesionaria San José", area: "67,504 m²",
    desc: "Coordinación BIM en obra, Modelación y coordinación de especialidades en terreno.",
    services: ["Coordinacion BIM", "Modelado MEP", "Asesoria en Obra"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "lg",
    images: [],
  },
  {
    code: "OFI-07", typology: "oficinas", name: "Edificio de Oficinas NG",
    location: "Chile", year: "2012", client: "BAU Ingenieros Consultores", area: "15,954 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [],
  },
  {
    code: "EDU-04", typology: "educacional", name: "Facultad de Medicina UNAB - Campus Concepción",
    location: "Chile", year: "2012", client: "Murtinho y Raby Arquitectos", area: "40,412 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [
      { url: 'uploads/EDU-04-2.jpg', cap: 'Vista general modelo federado' },
      { url: 'uploads/EDU-04-4.jpg', cap: 'Corte longitudinal MEP' },
      { url: 'uploads/EDU-04-6.jpg', cap: 'Detalle especialidades cubierta' },
      { url: 'uploads/EDU-04-7.jpg', cap: 'Fachada principal coordinada' },
      { url: 'uploads/EDU-04-8.jpg', cap: 'Interior pasillo con instalaciones' },
      { url: 'uploads/EDU-04-9.jpg', cap: 'Vista interior especialidades' },
      { url: 'uploads/EDU-04-10.jpg', cap: 'Fachada y patio central' },
    ],
  },
  {
    code: "SAL-14", typology: "salud", name: "Hospital Concesionado de Maipú",
    location: "Chile", year: "2010/2011", client: "Bbats Consulting & Projects SLP + Murtinho+Raby Arquitectos", area: "70,301 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "lg",
    images: [],
  },
  {
    code: "SAL-15", typology: "salud", name: "Hospital Concesionado de La Florida",
    location: "Chile", year: "2010/2011", client: "Bbats Consulting & Projects SLP + Murtinho+Raby Arquitectos", area: "67,504 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "lg",
    images: [],
  },
  {
    code: "DEP-01", typology: "deportivo", name: "Gimnasio Municipal Juan Fernández",
    location: "Chile", year: "2025", client: "Carreño Sartori Arquitectos", area: "1,472 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [],
  },
  {
    code: "RET-07", typology: "retail", name: "Salones VIP Aeropuerto Internacional de Santiago",
    location: "Chile", year: "2022", client: "Grupo Arquitectos", area: "3,400 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.Escaneo Láser, Modelo Asbuilt",
    services: ["Coordinacion BIM", "Modelado MEP", "Modelado As-Built", "Escaneo laser 3D"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [],
  },
  {
    code: "CUL-09", typology: "cultural", name: "Mercado de Providencia",
    location: "Chile", year: "2021/2022", client: "Tirado Arquitectos", area: "",
    desc: "Escaneo Láser",
    services: ["Escaneo laser 3D"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [],
  },
  {
    code: "OFI-08", typology: "oficinas", name: "Edificio Alonso Square",
    location: "Chile", year: "2018/2019", client: "Real Assets", area: "11,413 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [],
  },
  {
    code: "SAL-16", typology: "salud", name: "Cesfam Paullaco-Lautaro",
    location: "Chile", year: "2017", client: "Jaldin & Cumian Arquitectos", area: "2,883 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [],
  },
  {
    code: "RET-08", typology: "retail", name: "Locales VIP y Comerciales Aeropuerto NPU",
    location: "Chile", year: "2017", client: "Varios", area: "Varios",
    desc: "Modelado As Built",
    services: ["Modelado MEP", "Modelado As-Built"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "sm",
    images: [],
  },
  {
    code: "INF-08", typology: "infraestructura", name: "Aeropuerto Nuevo Pudahuel",
    location: "Chile", year: "2015/2016", client: "Setec Francia", area: "110,000 m²",
    desc: "Escaneo Láser, modelo AS Built, Modelado especialidades, asesoria BIM",
    services: ["Modelado MEP", "Asesoria BIM", "Modelado As-Built", "Escaneo laser 3D"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "lg",
    images: [],
  },
  {
    code: "OFI-09", typology: "oficinas", name: "Edificio de Oficinas Santa María Offices",
    location: "Chile", year: "2015", client: "BAU Ingenieros Consultores", area: "16,300 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [],
  },
  {
    code: "OFI-10", typology: "oficinas", name: "Modelo BIM As Built Banco Central",
    location: "Chile", year: "2014/2015", client: "Banco Central", area: "23,000 m²",
    desc: "Modelo As Built",
    services: ["Modelado As-Built"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [],
  },
  {
    code: "VIV-15", typology: "vivienda", name: "Edificio Mirador de Ñuñoa",
    location: "Chile", year: "2012", client: "", area: "41,300 m²",
    desc: "Coordinación BIM. Modelación y coordinación de especialidades.",
    services: ["Coordinacion BIM", "Modelado MEP"],
    status: "Finalizado", software: ["Revit", "Navisworks"],
    span: "md",
    images: [],
  }
];;

// Fuente de datos en vivo: se sobreescribe con lo publicado en Airtable
// (ver app-mount.jsx). Si el fetch falla, esto se queda con PROJECTS_FALLBACK.
let PROJECTS = PROJECTS_FALLBACK;

// m2 por tipología (datos reales de proyectos)
const M2_BY_TYPE = [
  { id: "salud", es: "Salud", en: "Healthcare", m2: 876704, count: 16 },
  { id: "vivienda", es: "Edificio Vivienda", en: "Residential", m2: 196834, count: 15 },
  { id: "oficinas", es: "Oficinas", en: "Offices", m2: 179082, count: 10 },
  { id: "retail", es: "Retail", en: "Retail", m2: 96448, count: 8 },
  { id: "infraestructura", es: "Infraestructura", en: "Infrastructure", m2: 316257, count: 8 },
  { id: "educacional", es: "Educacional", en: "Education", m2: 58012, count: 4 },
  { id: "cultural", es: "Cultural", en: "Cultural", m2: 76090, count: 9 },
  { id: "hoteleria", es: "Hoteleria", en: "Hospitality", m2: 58620, count: 3 },
  { id: "industrial", es: "Industrial", en: "Industrial", m2: 27562, count: 1 },
  { id: "deportivo", es: "Deportivo", en: "Sports", m2: 1472, count: 1 },
];

// Resumen de portafolio para PortfolioSummary — derivado de M2_BY_TYPE
const PORTFOLIO_SUMMARY = (() => {
  const fmt = (n) => n >= 1000000
    ? (n / 1000000).toFixed(1) + "M"
    : n >= 1000
    ? Math.round(n / 1000) + "K"
    : String(n);
  const glyphs = { salud: "cross", infraestructura: "diamond", vivienda: "square", oficinas: "squareFill", retail: "triangle", cultural: "halfCircle" };
  const top = [...M2_BY_TYPE].sort((a, b) => b.m2 - a.m2).slice(0, 6);
  return {
    totalM2: fmt(M2_BY_TYPE.reduce((s, r) => s + r.m2, 0)),
    totalProjects: M2_BY_TYPE.reduce((s, r) => s + r.count, 0),
    categories: top.map((row) => ({
      es: row.es, en: row.en,
      m2: fmt(row.m2), projects: row.count,
      glyph: glyphs[row.id] || "circle", color: "var(--accent)",
    })),
  };
})();

const SAMPLE_IMAGES = [
  { url: "uploads/INDISA_MEP_B.jpg", cap: "Coordinacion MEP" },
  { url: "uploads/HPC-BIM-NEU-GEN-XXX-AZ0-M3D-2.png", cap: "Clash detection" },
  { url: "uploads/CBC_GAM_BIM_MD_001.png", cap: "Modelo BIM" },
];

function filterProjects(list, kind, value) {
  if (kind === "typology") return list.filter((p) => value === "all" || p.typology === value);
  if (kind === "service") return list.filter((p) => p.services && p.services.includes(value));
  return list;
}

// Normaliza nombres de servicio para comparar sin depender de tildes,
// guiones o mayúsculas (Airtable puede tener "Modelado As Built" mientras
// el código espera "Modelado As-Built" — deben matchear igual).
function normalizeServiceKey(s) {
  return String(s || "").trim().toLowerCase()
    .normalize("NFD").replace(/[̀-ͯ]/g, "")
    .replace(/[-\s]+/g, " ").trim();
}

// Tags de imagen (según nombre de archivo, ver api/projects.js) que
// corresponden a un servicio filtrable específico. El resto de las fotos
// (sin tag) son genéricas y sirven para cualquier otro servicio.
const SERVICE_IMAGE_TAG = {
  [normalizeServiceKey("Escaneo laser 3D")]: "NP",
  [normalizeServiceKey("Modelado As-Built")]: "AB",
};

// Dado un proyecto y el filtro activo, devuelve el subconjunto de imágenes
// que corresponde mostrar. Filtro por categoría (o "todos") = todas las
// fotos. Filtro por un servicio con tag propio (NP/AB) = solo esas fotos.
// Filtro por cualquier otro servicio = solo fotos genéricas (sin tag).
function imagesForServiceFilter(project, filter) {
  const all = project.images || [];
  if (filter.kind !== "service" || !all.length) return all;
  const wantTag = SERVICE_IMAGE_TAG[normalizeServiceKey(filter.value)];
  if (wantTag) return all.filter((img) => img.tag === wantTag);
  const generic = all.filter((img) => !img.tag);
  return generic.length ? generic : all;
}

function sortProjects(list, sortBy) {
  const arr = [...list];
  if (sortBy === "year") {
    arr.sort((a, b) => parseInt(b.year, 10) - parseInt(a.year, 10));
  } else if (sortBy === "area") {
    arr.sort((a, b) => {
      const aNum = parseInt(String(a.area).replace(/[^\d]/g, ""), 10) || 0;
      const bNum = parseInt(String(b.area).replace(/[^\d]/g, ""), 10) || 0;
      return bNum - aNum;
    });
  }
  return arr;
}

Object.assign(window, { I18N, SERVICES, TYPOLOGIES, PROJECTS, SAMPLE_IMAGES, M2_BY_TYPE, PORTFOLIO_SUMMARY, filterProjects, sortProjects, imagesForServiceFilter, normalizeServiceKey });
