/* Services.jsx — the 5 core services */
const SERVICES = [
{
n: "01", t: "Movimiento de suelos",
d: "Desmonte, excavación, terraplenes, nivelación y compactación. Preparamos el terreno para que la obra arranque sobre base firme.",
tags: ["Excavación", "Nivelación", "Compactación", "Terraplenes"],
},
{
n: "02", t: "Pavimento de hormigón",
d: "Pavimentos rígidos de alta durabilidad para calzadas, playas de maniobra y accesos industriales que soportan cargas pesadas.",
tags: ["Calzadas", "Playas logísticas", "Juntas", "Accesos"],
},
{
n: "03", t: "Pavimento asfáltico",
d: "Carpetas asfálticas en caliente, bacheo y repavimentación. Terminaciones parejas y drenaje correcto para una vida útil prolongada.",
tags: ["Carpeta en caliente", "Bacheo", "Repavimentación", "Fresado"],
},
{
n: "04", t: "Adoquinado",
d: "Colocación de adoquines de hormigón para calles, plazas, veredas y accesos. Estética, permeabilidad y mantenimiento sencillo.",
tags: ["Calles", "Plazas", "Veredas", "Accesos"],
},
{
n: "05", t: "Mantenimiento vial",
d: "Conservación integral: sellado de juntas y fisuras, demarcación horizontal, limpieza y bacheo programado para mantener la vía segura.",
tags: ["Sellado", "Demarcación", "Bacheo", "Conservación"],
},
];
function ServiceRow({ s }) {
const [hover, setHover] = useState(false);
return (
setHover(true)} onMouseLeave={() => setHover(false)}
style={{
display: "grid", gridTemplateColumns: "auto 1fr", gap: "clamp(20px,4vw,64px)",
padding: "clamp(28px,4vw,48px) clamp(16px,3vw,40px)",
borderTop: "1px solid var(--line)",
background: hover ? "var(--paper-2)" : "transparent",
transition: "background .25s ease",
alignItems: "start",
}}
className="svc-row">
{s.n}
{s.tags.map((tag) => (
-
{tag}
))}
);
}
function Services() {
return (
);
}
Object.assign(window, { Services });