import { useState, useEffect } from "react";
// ─── PALETA ──────────────────────────────────────────────────────────────────
const C = {
navy: '#0D1B33',
navyMid: '#162748',
brass: '#C4961A',
brassHov: '#D4A620',
offWhite: '#F5F3EE',
white: '#FFFFFF',
dark: '#1A1918',
mid: '#6B6966',
muted: '#9D9A96',
border: '#E2DDD8',
green: '#25D366',
};
const DP = { fontFamily: "'Barlow Condensed','Arial Narrow',sans-serif" };
const BP = { fontFamily: "'Inter','Helvetica Neue',sans-serif" };
// ─── PRODUTOS ─────────────────────────────────────────────────────────────────
const PRODS = [
{ id:'k1', cat:'kits', name:'Kit Básico', price:499, tag:'Mais Vendido',
desc:'Para primeiros atendimentos residenciais. Material essencial, qualidade profissional desde o primeiro dia.',
itens:['20 chaves virgens residenciais','Jogo de gazuas básico','Duplicadora manual','Suporte técnico via WhatsApp'] },
{ id:'k2', cat:'kits', name:'Kit Intermediário', price:699, tag:'Recomendado',
desc:'Operação residencial completa. Para quem quer atender com qualidade desde o início.',
itens:['40 chaves virgens residenciais','Jogo de gazuas completo','Duplicadora profissional','Ferramentas de apoio','Suporte técnico via WhatsApp'] },
{ id:'k3', cat:'kits', name:'Kit Completo', price:999, tag:'Melhor Custo-Benefício',
desc:'Residencial + automotivo. Para quem pensa grande desde o início da carreira.',
itens:['50 chaves virgens residenciais','10 chaves automotivas virgens','Jogo de gazuas profissional','Transponders básicos','Suporte técnico via WhatsApp'] },
{ id:'r1', cat:'residencial', name:'Chaves Virgens Residenciais', price:12.90, desc:'Caixa com 50 unidades. Diversas bitolas disponíveis.' },
{ id:'r2', cat:'residencial', name:'Fechadura Alta Segurança', price:89.90, desc:'Aço temperado. 3 chaves inclusas. Porta externa.' },
{ id:'r3', cat:'residencial', name:'Cilindro Europeu Segredo', price:45.00, desc:'Alta resistência. 3 chaves. Múltiplas bitolas.' },
{ id:'r4', cat:'residencial', name:'Jogo de Gazuas Profissional', price:120.00, desc:'10 peças em aço carbono. Para chaveiro profissional.' },
{ id:'a1', cat:'automotivo', name:'Chave Automotiva HU66', price:18.50, desc:'Virgem. VW / Audi. Alta precisão de corte.' },
{ id:'a2', cat:'automotivo', name:'Transponder ID47 Original', price:35.00, desc:'Honda / Toyota. Original. Pronto para programação.' },
{ id:'a3', cat:'automotivo', name:'Controle Remoto Universal 3B', price:42.00, desc:'3 botões. Programável. Compatível com diversas marcas.' },
{ id:'a4', cat:'automotivo', name:'Chave Canivete c/ Lâmina', price:28.00, desc:'Lâmina virgem inclusa. Compatível com múltiplos modelos.' },
];
const WA = '5531999999999'; // ⚠️ substituir pelo número real
// ─── HELPERS ─────────────────────────────────────────────────────────────────
function brl(v) {
const p = v.toFixed(2).split('.');
return 'R$\u00A0' + p[0].replace(/\B(?=(\d{3})+(?!\d))/g, '.') + ',' + p[1];
}
function waLink(msg) {
return `https://wa.me/${WA}?text=${encodeURIComponent(msg)}`;
}
function openWA(msg) {
window.open(waLink(msg), '_blank');
}
// ─── TAG COLORS ───────────────────────────────────────────────────────────────
const kitTag = { k1:{ bg:'#4F46E5', col:'#fff' }, k2:{ bg:C.brass, col:C.navy }, k3:{ bg:'#059669', col:'#fff' } };
const catBadge = {
kits: { bg:'#FEF3C7', col:'#92400E', label:'Kit Iniciante' },
residencial:{ bg:'#F0FDF4', col:'#15803D', label:'Residencial' },
automotivo: { bg:'#EFF6FF', col:'#1D4ED8', label:'Automotivo' },
};
// ─── KEY SVG BACKGROUND ───────────────────────────────────────────────────────
function KeyBg({ opacity=0.07, size=800 }) {
return (
);
}
// ─── LOGO ICON ────────────────────────────────────────────────────────────────
function LogoIcon({ size=26, color=C.navy }) {
return (
);
}
// ═════════════════════════════════════════════════════════════════════════════
// APP
// ═════════════════════════════════════════════════════════════════════════════
export default function App() {
const [pg, setPg] = useState('home');
const [cart, setCart] = useState([]);
const [cartOpen, setCartOpen] = useState(false);
const [filter, setFilter] = useState('todos');
// ── Injetar fontes + keyframes ──
useEffect(() => {
const s = document.createElement('style');
s.textContent = `
@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800;900&family=Inter:wght@400;500;600;700&display=swap');
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{background:${C.offWhite}}
@keyframes waWave{0%,100%{box-shadow:0 4px 18px rgba(37,211,102,.5)}50%{box-shadow:0 4px 28px rgba(37,211,102,.9),0 0 0 9px rgba(37,211,102,.12)}}
@keyframes slideIn{from{right:-440px}to{right:0}}
input:focus,textarea:focus{outline:2px solid ${C.brass}!important;outline-offset:0}
button:active{opacity:.88}
`;
document.head.appendChild(s);
return () => { try { document.head.removeChild(s); } catch(e) {} };
}, []);
// ── Navegação ──
const go = (p) => { setPg(p); setCartOpen(false); window.scrollTo(0,0); };
// ── Carrinho ──
const addItem = (prod) => setCart(prev => {
const ex = prev.find(i => i.id === prod.id);
if (ex) return prev.map(i => i.id===prod.id ? {...i, qty:i.qty+1} : i);
return [...prev, {...prod, qty:1}];
});
const updQty = (id, d) => setCart(prev =>
prev.map(i => i.id===id ? {...i, qty:i.qty+d} : i).filter(i=>i.qty>0)
);
const cartN = cart.reduce((s,i)=>s+i.qty, 0);
const cartTot = cart.reduce((s,i)=>s+i.price*i.qty, 0);
// ── Checkout ──
const waCheckout = () => {
if (!cart.length) return;
const lines = cart.map(i=>`• ${i.qty}x ${i.name}: ${brl(i.price*i.qty)}`).join('\n');
openWA(`Olá, Land Minas!\n\nVim pelo site e gostaria de fazer um pedido:\n\n${lines}\n\nTotal: ${brl(cartTot)}\n\nAguardo retorno!`);
};
const waDirect = (prod) =>
openWA(`Olá, Land Minas!\n\nVim pelo site e tenho interesse em:\n• 1x ${prod.name}: ${brl(prod.price)}\n\nPoderia me ajudar?`);
const filtered = filter==='todos' ? PRODS : PRODS.filter(p=>p.cat===filter);
// ══════════════════════════════════════════════════════════════════════════
// NAVBAR
// ══════════════════════════════════════════════════════════════════════════
const Nav = () => (
{/* Logo */}
go('home')} style={{ background:'none', border:'none', cursor:'pointer', display:'flex', alignItems:'center', gap:12 }}>
FH CHAVES
Land Minas · Distribuidora
{/* Links + Cart */}
{[['home','Início'],['produtos','Produtos'],['sobre','Sobre Nós'],['contato','Contato']].map(([id,label])=>(
go(id)} style={{
background:'none', border:'none', cursor:'pointer', padding:'6px 14px',
...BP, fontSize:15, fontWeight:pg===id?700:500,
color: pg===id ? C.brass : '#94A3B8',
borderBottom:`2px solid ${pg===id ? C.brass : 'transparent'}`,
}}>{label}
))}
setCartOpen(true)} style={{
marginLeft:8, background:C.brass, border:'none', cursor:'pointer', position:'relative',
padding:'9px 20px', borderRadius:8, ...BP, fontSize:15, fontWeight:700, color:C.navy,
display:'flex', alignItems:'center', gap:7
}}>
🛒 Carrinho
{cartN>0 && {cartN} }
);
// ══════════════════════════════════════════════════════════════════════════
// HOME
// ══════════════════════════════════════════════════════════════════════════
const Home = () => (
<>
{/* HERO */}
Distribuidora Oficial · BH e Região
MATERIAL DE
CHAVEIRO
PROFISSIONAL
Representante oficial de fábrica. Chaves, fechaduras e equipamentos automotivos com procedência garantida para chaveiros de BH.
go('produtos')} style={{ ...BP, background:C.brass, border:'none', cursor:'pointer', padding:'16px 38px', borderRadius:10, fontSize:18, fontWeight:700, color:C.navy }}>
Ver Produtos →
openWA('Olá! Vim pelo site da Land Minas e gostaria de mais informações.')} style={{ ...BP, background:'transparent', border:'2px solid #22C55E', cursor:'pointer', padding:'16px 38px', borderRadius:10, fontSize:18, fontWeight:700, color:'#22C55E' }}>
💬 WhatsApp
{/* BARRA DE STATS */}
{[['150+','Clientes Ativos'],['4 Anos','no Mercado'],['2','Empresas'],['Fábrica','Representante Oficial']].map(([n,l])=>(
))}
{/* KITS */}
Para Quem Está Começando
KITS PARA INICIANTES
Tudo o que você precisa para começar, montado por quem entende do mercado. Sem precisar saber o que comprar.
{PRODS.filter(p=>p.cat==='kits').map((p,i)=>{
const ts = kitTag[p.id];
const featured = i===1;
return (
{p.tag}
{p.name}
{p.desc}
{p.itens.map(it=>(
✓ {it}
))}
{brl(p.price)}
addItem(p)} style={{ ...BP, width:'100%', background:featured?C.brass:C.navy, border:'none', cursor:'pointer', padding:'14px', borderRadius:10, fontSize:16, fontWeight:700, color:featured?C.navy:C.white, marginBottom:10 }}>
Adicionar ao Carrinho
waDirect(p)} style={{ ...BP, width:'100%', background:'transparent', border:'1.5px solid #22C55E', cursor:'pointer', padding:'11px', borderRadius:10, fontSize:14, fontWeight:600, color:'#16A34A' }}>
💬 Pedir direto no WhatsApp
);
})}
{/* PRODUTOS EM DESTAQUE */}
Catálogo
PRODUTOS EM DESTAQUE
go('produtos')} style={{ ...BP, background:'transparent', border:`2px solid ${C.navy}`, cursor:'pointer', padding:'12px 28px', borderRadius:8, fontSize:15, fontWeight:600, color:C.navy }}>
Ver catálogo completo →
{PRODS.filter(p=>p.cat!=='kits').slice(0,8).map(p=>{
const cb = catBadge[p.cat];
return (
{p.cat==='automotivo' ? '🚗' : '🔑'}
{cb.label}
{p.name}
{p.desc}
{brl(p.price)}
addItem(p)} style={{ ...BP, background:C.navy, border:'none', cursor:'pointer', padding:'8px 16px', borderRadius:7, color:C.white, fontSize:13, fontWeight:600 }}>
+ Carrinho
);
})}
{/* POR QUE NÓS */}
POR QUE ESCOLHER A LAND MINAS?
{[
['🏭','Representante Oficial','Produto original com procedência certificada. Direto da fábrica, sem intermediários no meio.'],
['🚚','Entrega Rápida em BH','Atendimento local ágil. Presença em BH e toda a região metropolitana.'],
['📦','Portfólio Completo','Residencial e automotivo em um só fornecedor. Uma parceria, tudo resolvido.'],
['🎓','Apoio ao Iniciante','Kits prontos + suporte técnico WhatsApp para quem está começando na profissão.'],
].map(([icon, title, desc])=>(
))}
{/* CTA FINAL */}
PRONTO PARA COMPRAR?
Fale com nossa equipe no WhatsApp ou explore o catálogo completo.
openWA('Olá! Vim pelo site da Land Minas e quero fazer um pedido.')} style={{ ...BP, background:C.navy, border:'none', cursor:'pointer', padding:'16px 40px', borderRadius:10, fontSize:18, fontWeight:700, color:C.white }}>
💬 Falar no WhatsApp
go('produtos')} style={{ ...BP, background:'rgba(13,27,51,.1)', border:`2px solid ${C.navy}`, cursor:'pointer', padding:'16px 40px', borderRadius:10, fontSize:18, fontWeight:700, color:C.navy }}>
Ver Catálogo
>
);
// ══════════════════════════════════════════════════════════════════════════
// PRODUTOS
// ══════════════════════════════════════════════════════════════════════════
const Produtos = () => (
CATÁLOGO
Produtos originais com procedência garantida. Entrega em toda BH e região.
{/* Filtros */}
{[['todos','🗂 Todos'],['kits','🎁 Kits Iniciante'],['residencial','🏠 Residencial'],['automotivo','🚗 Automotivo']].map(([id,label])=>(
setFilter(id)} style={{
...BP, background:filter===id?C.navy:C.white, border:`2px solid ${filter===id?C.navy:C.border}`,
color:filter===id?C.white:C.dark, padding:'10px 22px', borderRadius:8, fontSize:15, fontWeight:600, cursor:'pointer',
}}>{label}
))}
{filtered.map(p=>{
const cb = catBadge[p.cat];
const ts = kitTag[p.id];
return (
{p.tag && ts &&
{p.tag}
}
{p.cat==='kits'?'🎁':p.cat==='automotivo'?'🚗':'🔑'}
{cb.label}
{p.name}
{p.desc}
{p.itens && (
{p.itens.map(it=>(
✓ {it}
))}
)}
{brl(p.price)}
addItem(p)} style={{ ...BP, width:'100%', background:C.navy, border:'none', cursor:'pointer', padding:'13px', borderRadius:9, color:C.white, fontSize:15, fontWeight:700, marginBottom:8 }}>
Adicionar ao Carrinho 🛒
waDirect(p)} style={{ ...BP, width:'100%', background:'transparent', border:'1.5px solid #22C55E', cursor:'pointer', padding:'10px', borderRadius:9, fontSize:13, fontWeight:600, color:'#16A34A' }}>
💬 Pedir direto no WhatsApp
);
})}
);
// ══════════════════════════════════════════════════════════════════════════
// SOBRE
// ══════════════════════════════════════════════════════════════════════════
const Sobre = () => (
Nossa História
REFERÊNCIA EM
MATERIAL DE
CHAVEIRO EM BH
Há 4 anos sendo o parceiro de confiança do chaveiro profissional em Belo Horizonte e região metropolitana.
QUEM SOMOS
A Land Minas é uma distribuidora B2B especializada em materiais e equipamentos para chaveiros profissionais em Belo Horizonte e região metropolitana.
Como representante oficial de fábrica, garantimos acesso direto a produtos originais com procedência certificada — sem intermediários, com preço competitivo.
Atendemos tanto o chaveiro residencial quanto o especialista automotivo, com portfólio completo: desde chaves virgens e fechaduras até transponders e equipamentos de programação.
{[
['🏭','Representante Oficial de Fábrica','Produto original direto da indústria. Qualidade e procedência em todo o portfólio.'],
['📦','Portfólio Completo','Residencial e automotivo em um só lugar. Um fornecedor, tudo resolvido.'],
['🤝','Parceria de Longo Prazo','Mais de 150 clientes ativos que confiam na Land Minas há anos.'],
['🎓','Apoio ao Iniciante','Kits prontos e suporte técnico para quem está começando na profissão.'],
].map(([icon, title, desc])=>(
))}
{[['150+','Clientes Ativos'],['4','Anos de Mercado'],['2','Empresas'],['100%','Produto Original']].map(([n,l])=>(
))}
PARCERIA COM A JR CURSOS
Somos parceiros da JR Cursos, escola de formação de chaveiros. Alunos recém-formados têm condições especiais de acesso ao portfólio da Land Minas.
go('contato')} style={{ ...BP, background:C.navy, border:'none', cursor:'pointer', padding:'15px 40px', borderRadius:10, fontSize:17, fontWeight:700, color:C.white }}>
Saiba Mais →
);
// ══════════════════════════════════════════════════════════════════════════
// CONTATO
// ══════════════════════════════════════════════════════════════════════════
const Contato = () => (
Estamos Aqui
FALE COM ALAND MINAS
Atendimento rápido via WhatsApp no horário comercial.
PREFERE O WHATSAPP?
A maioria dos pedidos passa pelo WhatsApp. Rápido, direto, retorno em minutos no horário comercial.
openWA('Olá! Vim pelo site da Land Minas e gostaria de mais informações!')} style={{ ...BP, background:C.green, border:'none', cursor:'pointer', padding:'18px 40px', borderRadius:12, fontSize:18, fontWeight:700, color:C.white, display:'inline-flex', alignItems:'center', gap:12, marginBottom:44 }}>
💬 Abrir WhatsApp
{[
['📍','Endereço','Belo Horizonte, MG — BH e Região Metropolitana'],
['⏰','Horário','Seg a Sex: 8h às 18h | Sáb: 8h às 12h'],
['📧','E-mail','contato@landminas.com.br'],
].map(([icon, label, value])=>(
))}
ENVIAR MENSAGEM
{[['Nome completo','text','Seu nome'],['Empresa / Estabelecimento','text','Sua empresa'],['WhatsApp','tel','(31) 9 0000-0000'],['E-mail','email','seu@email.com']].map(([label,type,ph])=>(
{label}
))}
Mensagem
openWA('Olá! Vim pelo site da Land Minas e gostaria de entrar em contato!')} style={{ ...BP, background:C.navy, border:'none', cursor:'pointer', padding:'15px', borderRadius:10, fontSize:16, fontWeight:700, color:C.white }}>
Enviar via WhatsApp →
);
// ══════════════════════════════════════════════════════════════════════════
// CARRINHO SIDEBAR
// ══════════════════════════════════════════════════════════════════════════
const CartSidebar = () => (
<>
{cartOpen && setCartOpen(false)} style={{ position:'fixed', inset:0, background:'rgba(0,0,0,.55)', zIndex:290 }}/>}
{/* Cabeçalho */}
SEU CARRINHO
setCartOpen(false)} style={{ background:C.offWhite, border:'none', cursor:'pointer', fontSize:18, color:C.mid, width:34, height:34, display:'flex', alignItems:'center', justifyContent:'center', borderRadius:8 }}>✕
{/* Itens */}
{cart.length===0 ? (
🛒
Seu carrinho está vazio
{ setCartOpen(false); go('produtos'); }} style={{ ...BP, background:C.navy, border:'none', cursor:'pointer', padding:'11px 24px', borderRadius:8, color:C.white, fontSize:15, fontWeight:600 }}>
Ver Produtos
) : (
{cart.map(item=>(
{item.name}
{brl(item.price)} / un
updQty(item.id,-1)} style={{ width:30, height:30, borderRadius:6, border:`1px solid ${C.border}`, background:C.white, cursor:'pointer', fontSize:18, fontWeight:700, color:C.dark, display:'flex', alignItems:'center', justifyContent:'center' }}>−
{item.qty}
updQty(item.id,1)} style={{ width:30, height:30, borderRadius:6, border:`1px solid ${C.border}`, background:C.white, cursor:'pointer', fontSize:18, fontWeight:700, color:C.dark, display:'flex', alignItems:'center', justifyContent:'center' }}>+
{brl(item.price*item.qty)}
))}
)}
{/* Rodapé */}
{cart.length>0 && (
Total do pedido
{brl(cartTot)}
💬 Finalizar pelo WhatsApp
Você será direcionado ao WhatsApp com o pedido já preenchido
)}
>
);
// ══════════════════════════════════════════════════════════════════════════
// RODAPÉ
// ══════════════════════════════════════════════════════════════════════════
const Footer = () => (
Distribuidora oficial de material para chaveiros profissionais em BH e região metropolitana.
Navegação
{[['home','Início'],['produtos','Produtos'],['sobre','Sobre Nós'],['contato','Contato']].map(([id,label])=>(
go(id)} style={{ display:'block', background:'none', border:'none', cursor:'pointer', color:'#64748B', fontSize:15, padding:'5px 0', textAlign:'left' }}>{label}
))}
Contato
📍 Belo Horizonte, MG
⏰ Seg–Sex 8h–18h
💬 WhatsApp disponível
© 2025 Land Minas Distribuidora. Todos os direitos reservados.
⚠️ CNPJ: XX.XXX.XXX/0001-XX
);
// ══════════════════════════════════════════════════════════════════════════
// RENDER PRINCIPAL
// ══════════════════════════════════════════════════════════════════════════
return (
{pg==='home' &&
}
{pg==='produtos' &&
}
{pg==='sobre' &&
}
{pg==='contato' &&
}
{/* Botão flutuante WhatsApp */}
openWA('Olá! Vim pelo site da Land Minas.')}
title="Fale no WhatsApp"
style={{ position:'fixed', bottom:28, right:28, width:62, height:62, background:C.green, border:'none', cursor:'pointer', borderRadius:'50%', display:'flex', alignItems:'center', justifyContent:'center', fontSize:28, zIndex:150, animation:'waWave 2.5s ease-in-out infinite' }}
>
💬
);
}