/* ============================================ Public Site Components Loaded after React + Lucide + data.js ============================================ */ const { useState, useEffect, useRef, useMemo } = React; const L = window.lucide; /* Lucide React icon helper */ function I({ name, size = 18, strokeWidth = 1.8, className = "", style }) { const Icon = L[name]; if (!Icon) return null; return ; } /* ============================================ Header ============================================ */ function Header({ active, onNav, onAdminClick }) { const [menuOpen, setMenuOpen] = useState(false); const links = [ { id: "inicio", label: "Inicio" }, { id: "nosotros", label: "Nosotros" }, { id: "servicios", label: "Servicios" }, { id: "galeria", label: "Galería" }, { id: "contacto", label: "Contacto" }, ]; return ( <>
{ e.preventDefault(); onNav("inicio"); }}>
MSA Moro
MSA Moro
{links.map(l => ( { e.preventDefault(); setMenuOpen(false); onNav(l.id); }}> {l.label} ))}
); } function BrandMark() { return ( {/* Alfalfa trefoil */} ); } /* ============================================ Hero ============================================ */ function Hero({ onNav }) { return (
Sacanta, Córdoba · Desde 2003

Alfalfa de calidad,
del campo a tu galpón.

Más de 20 años produciendo el mejor forraje del centro del país. Siembra, corte y enfardado integrados — trazabilidad de lote en cada fardo.

); } /* ============================================ Counters ============================================ */ function AnimatedNumber({ value, suffix = "", duration = 1400 }) { const [n, setN] = useState(0); const ref = useRef(); useEffect(() => { const obs = new IntersectionObserver((entries) => { if (entries[0].isIntersecting) { const start = performance.now(); const tick = (t) => { const p = Math.min(1, (t - start) / duration); const eased = 1 - Math.pow(1 - p, 3); setN(Math.round(value * eased)); if (p < 1) requestAnimationFrame(tick); }; requestAnimationFrame(tick); obs.disconnect(); } }, { threshold: 0.4 }); if (ref.current) obs.observe(ref.current); return () => obs.disconnect(); }, [value, duration]); return {n.toLocaleString("es-AR")}{suffix}; } function Counters() { return (
+
Años de experiencia
Hectáreas en producción
+
Fardos anuales
+
Clientes satisfechos
); } /* ============================================ Nosotros ============================================ */ function Nosotros() { return (
Quiénes somos

Empresa familiar, raíces
en el corazón de Córdoba.

Fundada en 2003 por la familia Bertoldi, MSA Moro Servicios Agropecuarios creció desde un primer campo de 40 hectáreas hasta convertirse en uno de los proveedores de forraje de referencia del centro del país. Hoy producimos en 1.200 hectáreas certificadas entre Sacanta, Las Varillas y Brinkmann.

Hacemos todo el ciclo: desde la siembra y el control del cultivo hasta el corte, el enfardado y la logística al tambo o cabaña. Nada se terceriza — por eso podemos garantizar la calidad y la trazabilidad de cada fardo.

{window.DATA.HITOS.map((h, i) => (
{i + 1}
{h.año}
{h.label}
))}
); } function ValueTile({ icon, title, desc }) { return (

{title}

{desc}

); } /* ============================================ Servicios ============================================ */ function Servicios() { const cards = [ { icon: "Sprout", title: "Siembra de alfalfa", desc: "Variedades GR8 a GR10 según destino, con análisis previo de suelo.", tags: ["Siembra directa", "Inoculación", "Asesoramiento"] }, { icon: "Scissors", title: "Corte y rastrillado", desc: "Tiempo óptimo de corte para maximizar proteína y minimizar pérdidas.", tags: ["3 cortes/año", "Hilerado uniforme"] }, { icon: "Package", title: "Enfardado", desc: "Prismáticos de 25kg, redondos de 350kg y megafardos de 500kg.", tags: ["Chico", "Redondo", "Megafardo"] }, { icon: "Truck", title: "Logística y entrega", desc: "Flota propia con cobertura en Córdoba, Santa Fe y norte de Buenos Aires.", tags: ["Entrega rápida", "Carga propia"] }, ]; const maquinas = [ { icon: "Tractor", nombre: "John Deere 6110 / 7220", desc: "2 tractores principales" }, { icon: "Cog", nombre: "Mainero 5887", desc: "Rotoenfardadora" }, { icon: "Disc3", nombre: "Massey Ferguson 2270XD", desc: "Megaenfardadora" }, { icon: "Square", nombre: "Mainero R12 · Kuhn FC", desc: "Rastrillo y segadora" }, ]; return (
Servicios

Hacemos todo el ciclo —
desde la semilla hasta tu galpón.

Trabajos a terceros disponibles para campos vecinos: cortamos, enfardamos y sembramos con la misma maquinaria con la que producimos para nosotros.
{cards.map(c => (
{c.title}
{c.desc}
{c.tags.map(t => {t})}
))}
{maquinas.map(m => (
{m.nombre}

{m.desc}

))}
); } /* ============================================ Catálogo de fardos ============================================ */ function Catalogo() { const [tipo, setTipo] = useState("todos"); const [corte, setCorte] = useState("todos"); const [stock, setStock] = useState("todos"); const filtered = window.DATA.PRODUCTS.filter(p => { if (tipo !== "todos" && p.tipo !== tipo) return false; if (corte !== "todos" && p.corte !== corte) return false; if (stock === "disponible" && p.stock <= 0) return false; if (stock === "bajo" && p.stock > 100) return false; return true; }); return (
Catálogo

Fardos disponibles —
stock actualizado al día.

Todos los precios están en pesos argentinos, sin IVA. Consultá por descuentos por volumen o por programas mensuales para tambos.
Tipo {[["todos","Todos"],["chico","Prismático chico"],["redondo","Redondo"],["mega","Megafardo"]].map(([k,l]) => ( ))}
Corte {[["todos","Todos"],["1°","1°"],["2°","2°"],["3°","3°"],["4°","4°"]].map(([k,l]) => ( ))}
Disponibilidad {[["todos","Todos"],["disponible","Con stock"],["bajo","Stock bajo"]].map(([k,l]) => ( ))}
{filtered.length} productos
{filtered.map(p => )}
{filtered.length === 0 && (
No hay productos con esos filtros. Probá ajustando la selección.
)}
); } function ProductCard({ product }) { const lowStock = product.stock < 100; const mediaClass = product.tipo === "chico" ? "product-card__media--small" : product.tipo === "redondo" ? "product-card__media--round" : "product-card__media--mega"; return (
{product.corte} corte {product.calidad === "Premium" && Premium}
{product.peso}
{product.nombre}
Peso
{product.peso}
Proteína
{product.proteina}
Origen
{product.origen.replace("Lote ", "")}
{window.DATA.fmtARS(product.precio)}por unidad
{window.DATA.fmtNum(product.stock)} u.
Consultar por WhatsApp
); } Object.assign(window, { I, Header, Hero, Counters, Nosotros, Servicios, Catalogo, BrandMark, AnimatedNumber, });