// Icons & small components for Copia de llaves landing
const { useState, useEffect, useRef } = React;
const Icon = ({ name, size = 24, stroke = 1.6 }) => {
const common = {
width: size, height: size, viewBox: "0 0 24 24",
fill: "none", stroke: "currentColor", strokeWidth: stroke,
strokeLinecap: "round", strokeLinejoin: "round",
};
switch (name) {
case "phone": return (
);
case "wa": return (
);
case "key": return (
);
case "bolt": return (
);
case "clock": return (
);
case "pin": return (
);
case "remote": return (
);
case "lost": return (
);
case "unlock": return (
);
case "wrench": return (
);
case "home": return (
);
case "arrow": return (
);
case "left": return (
);
case "right": return (
);
case "google": return (
);
case "spark": return (
);
default: return null;
}
};
// Animated key SVG that rotates with scroll
const ScrollKey = ({ rotation }) => (
);
// Stylized Castilla-La Mancha map with pins
const ServiceMap = () => {
// Approx coordinates within a viewBox (relative; not to scale)
const places = [
{ name: "La Solana", x: 480, y: 420, home: true },
{ name: "Manzanares", x: 450, y: 400 },
{ name: "Valdepeñas", x: 470, y: 480 },
{ name: "Tomelloso", x: 540, y: 360 },
{ name: "Alcázar", x: 530, y: 280 },
{ name: "Daimiel", x: 380, y: 380 },
{ name: "Almagro", x: 360, y: 460 },
{ name: "Ciudad Real", x: 320, y: 440 },
{ name: "Puertollano", x: 310, y: 540 },
{ name: "Miguelturra", x: 330, y: 430 },
{ name: "Bolaños", x: 380, y: 450 },
{ name: "Membrilla", x: 460, y: 440 },
{ name: "Argamasilla", x: 510, y: 380 },
{ name: "Campo de Criptana", x: 540, y: 300 },
{ name: "Herencia", x: 500, y: 250 },
{ name: "Socuéllamos", x: 600, y: 320 },
{ name: "Consuegra", x: 460, y: 220 },
{ name: "Madridejos", x: 440, y: 200 },
{ name: "Villarrobledo", x: 660, y: 320 },
{ name: "La Roda", x: 720, y: 360 },
];
return (
);
};
Object.assign(window, { Icon, ScrollKey, ServiceMap });