// B&L ENGENHARIA — Página de Empreendimentos (portfólio completo)
// Cada empreendimento: 2 fotos + ficha técnica. Filtros por Cidade e por Tipo.
const EMPREENDIMENTOS = [
{
id: "parque-lilases",
name: "Parque Lilases",
accent: "Lilases",
construtora: "Ascen Construtora",
tipo: "Comercial",
tipologia: "Edifício comercial",
city: "São Carlos / SP",
year: "2024",
area: "16.675,14 m²",
projeto: "Hidrossanitário",
metodo: "BIM",
photos: [
{ src: "assets/projetos/parque-lilases-1.png", pos: "50% 62%", alt: "Edifício Comercial Parque Lilases — vista aérea diurna" },
{ src: "assets/projetos/parque-lilases-2.png", pos: "50% 35%", alt: "Edifício Comercial Parque Lilases — fachada ao entardecer" },
],
},
{
id: "vox-corporate",
name: "Vox Corporate",
accent: "Corporate",
construtora: "Enoch Construtora",
tipo: "Comercial",
tipologia: "Edifício comercial",
city: "Ribeirão Preto / SP",
area: "46.781,53 m²",
projeto: "Hidrossanitário e Prevenção Contra Incêndio com SPK",
metodo: "CAD",
photos: [
{ src: "assets/projetos/vox-corporate.jpg", pos: "50% 30%", alt: "Vox Corporate — fachada" },
{ src: "assets/projetos/vox-corporate-2.jpg", pos: "50% 50%", alt: "Vox Corporate — ambiente corporativo interno" },
],
},
{
id: "wyndham",
name: "Hotel Wyndham",
accent: "Wyndham",
construtora: "Enoch Construtora",
tipo: "Hotel",
tipologia: "Hotel",
city: "Ribeirão Preto / SP",
area: "18.822,80 m²",
projeto: "Hidrossanitário",
metodo: "CAD",
photos: [
{ src: "assets/projetos/wyndham-1.jpeg", pos: "50% 40%", alt: "Hotel Wyndham — fachada ao entardecer" },
{ src: "assets/projetos/wyndham-2.jpg", pos: "50% 50%", alt: "Hotel Wyndham — rooftop com piscina à noite" },
],
},
{
id: "la-coruna",
name: "Plaza La Coruña",
accent: "Coruña",
construtora: "Stéfani Nogueira",
tipo: "Residencial",
tipologia: "Edifício residencial",
city: "Franca / SP",
area: "15.568,39 m²",
projeto: "Hidrossanitário e Prevenção Contra Incêndio",
metodo: "CAD",
photos: [
{ src: "assets/projetos/la-coruna-1.jpg", pos: "50% 50%", alt: "Plaza La Coruña — vista aérea das torres" },
{ src: "assets/projetos/la-coruna-2.avif", pos: "50% 50%", alt: "Plaza La Coruña — piscina com deck e vista" },
],
},
{
id: "magnolia",
name: "Magnólia",
accent: "Magnólia",
construtora: "Stéfani Nogueira",
tipo: "Residencial",
tipologia: "Edifício residencial",
city: "Ribeirão Preto / SP",
area: "21.136,10 m²",
projeto: "Hidrossanitário e Prevenção Contra Incêndio",
metodo: "CAD",
photos: [
{ src: "assets/projetos/magnolia-1.avif", pos: "50% 60%", alt: "Magnólia — fachada com identidade do empreendimento" },
{ src: "assets/projetos/magnolia-2.avif", pos: "50% 50%", alt: "Magnólia — espaço gourmet com churrasqueira" },
],
},
{
id: "high-redentora",
name: "High Redentora",
accent: "Redentora",
construtora: "Stéfani Nogueira",
tipo: "Residencial",
tipologia: "Edifício residencial",
city: "São José do Rio Preto / SP",
area: "33.868,95 m²",
projeto: "Hidrossanitário",
metodo: "CAD",
photos: [
{ src: "assets/projetos/high-redentora-1.avif", pos: "50% 50%", alt: "High Redentora — torre única em vista aérea" },
{ src: "assets/projetos/high-redentora-2.avif", pos: "50% 50%", alt: "High Redentora — salão com forro de madeira" },
],
},
{
id: "outlet-santa-maria",
name: "Outlet Santa Maria",
accent: "Santa Maria",
construtora: "Construtora Pereira Alvim",
tipo: "Comercial",
tipologia: "Shopping Center",
city: "Ribeirão Preto / SP",
year: "2022",
area: "34.477,53 m²",
projeto: "Hidrossanitário e Prevenção Contra Incêndio com Sprinklers (SPK)",
metodo: "BIM",
photos: [
{ src: "assets/projetos/outlet-santa-maria.jpg", pos: "50% 55%", alt: "Outlet Santa Maria — acesso coberto" },
{ src: "assets/projetos/outlet-santa-maria-2.jpeg", pos: "50% 50%", alt: "Outlet Santa Maria — vista aérea da fachada" },
],
},
{
id: "high-business",
name: "High Business",
accent: "Business",
construtora: "Ascen Construtora",
tipo: "Comercial",
tipologia: "Edifício comercial",
city: "Franca / SP",
year: "2019",
area: "24.765,21 m²",
projeto: "Hidrossanitário e Prevenção Contra Incêndio com Sprinklers (SPK)",
metodo: "CAD",
photos: [
{ src: "assets/projetos/high-business-1.jpg", pos: "50% 50%", alt: "High Business — área corporativa interna" },
{ src: "assets/projetos/high-business-2.png", pos: "50% 45%", alt: "High Business — fachada em vidro" },
],
},
{
id: "das-artes",
name: "Edifício das Artes",
accent: "Artes",
construtora: "Ascen Construtora",
tipo: "Residencial",
tipologia: "Edifício residencial",
city: "Franca / SP",
area: "17.981,43 m²",
projeto: "Hidrossanitário e Prevenção Contra Incêndio",
metodo: "BIM",
photos: [
{ src: "assets/projetos/das-artes-1.jpg", pos: "50% 50%", alt: "Edifício das Artes — living integrado" },
{ src: "assets/projetos/das-artes-2.png", pos: "50% 35%", alt: "Edifício das Artes — fachada" },
],
},
{
id: "villa-guaimbe",
name: "Villa Guaimbê",
accent: "Guaimbê",
construtora: "Ascen Construtora",
tipo: "Residencial",
tipologia: "Edifício residencial",
city: "Ribeirão Preto / SP",
area: "17.777,92 m²",
projeto: "Hidrossanitário e Prevenção Contra Incêndio",
metodo: "BIM",
photos: [
{ src: "assets/projetos/villa-guaimbe-1.png", pos: "50% 45%", alt: "Villa Guaimbê — hall de entrada" },
{ src: "assets/projetos/villa-guaimbe-2.png", pos: "50% 40%", alt: "Villa Guaimbê — fachada" },
],
},
{
id: "ventisette",
name: "Ventisette",
accent: "Ventisette",
construtora: "Ascen Construtora",
tipo: "Residencial",
tipologia: "Edifício residencial",
city: "Franca / SP",
area: "18.925,15 m²",
projeto: "Hidrossanitário e Prevenção Contra Incêndio",
metodo: "BIM",
photos: [
{ src: "assets/projetos/ventisette-1.jpg", pos: "50% 50%", alt: "Ventisette — living com vista" },
{ src: "assets/projetos/ventisette-2.png", pos: "50% 35%", alt: "Ventisette — fachada ao entardecer" },
],
},
{
id: "auge",
name: "Auge",
accent: "Auge",
construtora: "Ascen Construtora",
tipo: "Residencial",
tipologia: "Edifício residencial",
city: "Franca / SP",
area: "18.892,12 m²",
projeto: "Hidrossanitário e Prevenção Contra Incêndio",
metodo: "BIM",
photos: [
{ src: "assets/projetos/auge-1.jpg", pos: "50% 50%", alt: "Auge — lobby de recepção" },
{ src: "assets/projetos/auge-2.png", pos: "50% 40%", alt: "Auge — fachada iluminada" },
],
},
{
id: "le-monde",
name: "Le Monde",
accent: "Monde",
construtora: "Copema Construtora",
tipo: "Residencial · Comercial",
tipoClass: "comercial",
tipos: ["Residencial", "Comercial"],
tipologia: "Edifício residencial / comercial",
city: "Ribeirão Preto / SP",
area: "52.137,74 m²",
projeto: "Hidrossanitário e Prevenção Contra Incêndio com Sprinkler (SPK)",
metodo: "CAD",
photos: [
{ src: "assets/projetos/le-monde-1.webp", pos: "50% 45%", alt: "Le Monde — torre ao entardecer" },
{ src: "assets/projetos/le-monde-2.webp", pos: "50% 45%", alt: "Le Monde — implantação diurna" },
],
},
{
id: "quartier",
name: "Quartier",
accent: "Quartier",
construtora: "Copema Construtora",
tipo: "Comercial",
tipologia: "Edifício comercial",
city: "Ribeirão Preto / SP",
area: "25.594,54 m²",
projeto: "Hidrossanitário e Prevenção Contra Incêndio com Sprinkler (SPK)",
metodo: "CAD",
photos: [
{ src: "assets/projetos/quartier-1.jpg", pos: "50% 50%", alt: "Quartier — lobby de recepção" },
{ src: "assets/projetos/quartier-2.jpg", pos: "50% 35%", alt: "Quartier — fachada ao entardecer" },
],
},
{
id: "les-alpes",
name: "Les Alpes",
accent: "Alpes",
construtora: "Copema Construtora",
tipo: "Residencial",
tipologia: "Edifício residencial",
nota: "Bellegard · Bellevue · Beaumont",
city: "Ribeirão Preto / SP",
area: "19.776,35 m²",
projeto: "Hidrossanitário e Prevenção Contra Incêndio",
metodo: "CAD",
photos: [
{ src: "assets/projetos/les-alpes-1.webp", pos: "50% 50%", alt: "Les Alpes — vista aérea do conjunto" },
{ src: "assets/projetos/les-alpes-2.webp", pos: "50% 40%", alt: "Les Alpes — fachada à noite" },
],
},
{
id: "grand-paysage",
name: "Grand Paysage",
accent: "Paysage",
construtora: "Copema Construtora",
tipo: "Residencial",
tipologia: "Edifício residencial",
city: "Campinas / SP",
area: "14.492,09 m²",
projeto: "Hidrossanitário e Prevenção Contra Incêndio",
metodo: "CAD",
photos: [
{ src: "assets/projetos/grand-paysage-fachada.png", pos: "50% 50%", alt: "Grand Paysage — fachada" },
{ src: "assets/projetos/grand-paysage-1.webp", pos: "50% 50%", alt: "Grand Paysage — lounge com sofás" },
],
},
];
const TIPOS = ["Comercial", "Residencial", "Hotel", "Industrial"];
// Cidades derivadas dos dados, ordenadas por nº de empreendimentos.
function citiesFromData(data) {
const counts = {};
data.forEach((e) => { counts[e.city] = (counts[e.city] || 0) + 1; });
return Object.keys(counts).sort((a, b) => counts[b] - counts[a] || a.localeCompare(b));
}
// Construtoras derivadas dos dados (apenas as informadas), ordenadas por nº de empreendimentos.
function construtorasFromData(data) {
const counts = {};
data.forEach((e) => { if (e.construtora) counts[e.construtora] = (counts[e.construtora] || 0) + 1; });
return Object.keys(counts).sort((a, b) => counts[b] - counts[a] || a.localeCompare(b));
}
function NameWithAccent({ name, accent }) {
if (!accent || !name.includes(accent)) return {name};
const i = name.lastIndexOf(accent);
return (
Cada projeto modelado em BIM, compatibilizado e documentado — da concepção hidrossanitária à prevenção de incêndio. Filtre por cidade, tipo de empreendimento ou construtora.
Nenhum empreendimento {tipo !== "Todos" ? tipo.toLowerCase() : ""} {cidade !== "Todos" ? ` em ${cidade}` : ""} no portfólio publicado.