/* Shared icon library — line icons in current color */
const Icon = ({ name, size = 22, stroke = 2 }) => {
  const props = {
    width: size, height: size, viewBox: '0 0 24 24', fill: 'none',
    stroke: 'currentColor', strokeWidth: stroke,
    strokeLinecap: 'round', strokeLinejoin: 'round'
  };
  switch (name) {
    case 'pipe': return (
      <svg {...props}>
        <path d="M3 9h7a4 4 0 0 1 4 4v8" />
        <path d="M14 3v6a4 4 0 0 0 4 4h3" />
        <circle cx="3" cy="9" r="0.5" fill="currentColor" />
        <circle cx="21" cy="13" r="0.5" fill="currentColor" />
      </svg>
    );
    case 'structure': return (
      <svg {...props}>
        <path d="M3 21V7l9-4 9 4v14" />
        <path d="M3 21h18" />
        <path d="M3 7l9 6 9-6" />
        <path d="M9 21v-6h6v6" />
      </svg>
    );
    case 'belt': return (
      <svg {...props}>
        <rect x="2" y="9" width="20" height="6" rx="3" />
        <circle cx="6" cy="12" r="1.5" />
        <circle cx="18" cy="12" r="1.5" />
        <path d="M10 12h4" />
      </svg>
    );
    case 'cut': return (
      <svg {...props}>
        <circle cx="6" cy="6" r="3" />
        <circle cx="6" cy="18" r="3" />
        <path d="M8.1 7.9 21 18" />
        <path d="M8.1 16.1 21 6" />
      </svg>
    );
    case 'gear': return (
      <svg {...props}>
        <circle cx="12" cy="12" r="3" />
        <path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z" />
      </svg>
    );
    case 'telescope': return (
      <svg {...props}>
        <path d="m10.065 12.493-6.18 1.318a.934.934 0 0 1-1.108-.702l-.537-2.15a1.07 1.07 0 0 1 .691-1.265l13.504-4.44" />
        <path d="m13.56 11.747 4.332-.924" />
        <path d="m16 21-3.105-6.21" />
        <path d="M16.485 5.94a2 2 0 0 1 1.455-2.425l1.09-.272a1 1 0 0 1 1.212.727l1.515 6.06a1 1 0 0 1-.727 1.213l-1.09.272a2 2 0 0 1-2.425-1.455z" />
        <path d="m6.158 8.633 1.114 4.456" />
        <path d="m8 21 3.105-6.21" />
        <circle cx="12" cy="13" r="2" />
      </svg>
    );
    case 'rocket': return (
      <svg {...props}>
        <path d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z" />
        <path d="m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z" />
        <path d="M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0" />
        <path d="M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5" />
      </svg>
    );
    case 'shield': return (
      <svg {...props}>
        <path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" />
        <path d="m9 12 2 2 4-4" />
      </svg>
    );
    case 'award': return (
      <svg {...props}>
        <circle cx="12" cy="8" r="6" />
        <path d="M15.477 12.89 17 22l-5-3-5 3 1.523-9.11" />
      </svg>
    );
    case 'lightbulb': return (
      <svg {...props}>
        <path d="M9 18h6" />
        <path d="M10 22h4" />
        <path d="M12 2a7 7 0 0 0-7 7c0 3 2 5 2 7h10c0-2 2-4 2-7a7 7 0 0 0-7-7z" />
      </svg>
    );
    case 'handshake': return (
      <svg {...props}>
        <path d="m11 17 2 2a1 1 0 1 0 3-3" />
        <path d="m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4" />
        <path d="m21 3 1 11h-2" />
        <path d="M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3" />
        <path d="M3 4h8" />
      </svg>
    );
    case 'check': return (
      <svg {...props}><path d="M20 6 9 17l-5-5" /></svg>
    );
    case 'arrow-right': return (
      <svg {...props}><path d="M5 12h14M13 5l7 7-7 7" /></svg>
    );
    case 'phone': return (
      <svg {...props}><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z" /></svg>
    );
    case 'mail': return (
      <svg {...props}><rect x="2" y="4" width="20" height="16" rx="2" /><path d="m22 6-10 7L2 6" /></svg>
    );
    case 'pin': return (
      <svg {...props}><path d="M20 10c0 7-8 12-8 12s-8-5-8-12a8 8 0 0 1 16 0z" /><circle cx="12" cy="10" r="3" /></svg>
    );
    case 'whatsapp': return (
      <svg width={size} height={size} viewBox="0 0 24 24" fill="currentColor">
        <path d="M20.52 3.48A12 12 0 0 0 3.48 20.52l-1.45 5.28 5.4-1.42a12 12 0 0 0 17.41-10.4 11.88 11.88 0 0 0-3.52-8.5h-.8zM12 21.78a9.78 9.78 0 0 1-5-1.37l-.36-.21-3.21.84.86-3.13-.23-.37A9.79 9.79 0 1 1 12 21.78zm5.36-7.32c-.3-.15-1.74-.86-2-.96s-.46-.15-.66.15-.76.96-.94 1.16-.35.23-.65.08a8.03 8.03 0 0 1-2.36-1.46 8.86 8.86 0 0 1-1.63-2.04c-.17-.3 0-.46.13-.6s.3-.35.45-.53.2-.3.3-.5.05-.38 0-.53-.66-1.6-.91-2.18-.48-.5-.66-.5l-.56-.01a1.07 1.07 0 0 0-.78.36 3.27 3.27 0 0 0-1.02 2.43 5.66 5.66 0 0 0 1.18 3 13 13 0 0 0 4.98 4.4c.7.3 1.25.48 1.67.62a4.04 4.04 0 0 0 1.85.12c.56-.08 1.74-.7 1.98-1.4s.25-1.27.18-1.39-.27-.2-.57-.35z"/>
      </svg>
    );
    case 'linkedin': return (
      <svg width={size} height={size} viewBox="0 0 24 24" fill="currentColor">
        <path d="M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14M8.339 18.337v-8.27H5.667v8.27h2.672zM7 8.842a1.547 1.547 0 1 0 0-3.093 1.547 1.547 0 0 0 0 3.093zm11.336 9.496v-4.529c0-2.475-1.34-3.628-3.13-3.628a2.7 2.7 0 0 0-2.456 1.353v-1.167h-2.672v8.27h2.672v-4.616c0-1.21.227-2.385 1.732-2.385 1.484 0 1.503 1.388 1.503 2.46v4.541h2.353z"/>
      </svg>
    );
    case 'instagram': return (
      <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
        <rect x="2" y="2" width="20" height="20" rx="5" />
        <path d="M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z" />
        <line x1="17.5" y1="6.5" x2="17.51" y2="6.5" />
      </svg>
    );
    case 'clock': return (
      <svg {...props}><circle cx="12" cy="12" r="10" /><path d="M12 6v6l4 2" /></svg>
    );
    case 'menu': return (
      <svg {...props}><path d="M4 6h16M4 12h16M4 18h16" /></svg>
    );
    case 'send': return (
      <svg {...props}><path d="m22 2-7 20-4-9-9-4z" /><path d="M22 2 11 13" /></svg>
    );
    case 'sparkles': return (
      <svg {...props}><path d="M12 3v3M12 18v3M3 12h3M18 12h3M5.6 5.6l2.1 2.1M16.3 16.3l2.1 2.1M5.6 18.4l2.1-2.1M16.3 7.7l2.1-2.1" /></svg>
    );
    case 'target': return (
      <svg {...props}><circle cx="12" cy="12" r="10" /><circle cx="12" cy="12" r="6" /><circle cx="12" cy="12" r="2" /></svg>
    );
    default: return null;
  }
};

/* ── Service data shared across pages ─────── */
const SERVICES = [
  {
    id: 'piping',
    icon: 'pipe',
    title: 'Piping en Acero',
    short: 'Inoxidable y carbono para industria pesada, alimentaria y minera.',
    intro: 'Fabricación y montaje de sistemas de cañería de alta presión y baja presión, con trazabilidad de soldadura y control dimensional certificado.',
    features: [
      'Soldadura TIG/MIG con calificación AWS D1.1',
      'Pruebas hidrostáticas y de hermeticidad',
      'Spool fabrication en taller, montaje en sitio',
      'Trazabilidad por junta y certificación de soldador',
    ],
    materials: ['AISI 304', 'AISI 316L', 'Acero al carbono SCH40', 'Galvanizado'],
  },
  {
    id: 'estructuras',
    icon: 'structure',
    title: 'Estructuras y Plataformas',
    short: 'Plataformas, escaleras y soportes metálicos industriales.',
    intro: 'Diseño y fabricación de estructuras de acero conforme a NCh 427/428, incluyendo plataformas operacionales, escaleras industriales y pasarelas.',
    features: [
      'Cálculo estructural conforme a normativa NCh',
      'Tratamiento anticorrosivo + pintura industrial',
      'Montaje certificado en altura',
      'Pernos de anclaje químico y mecánico',
    ],
    materials: ['Acero ASTM A36', 'Perfiles laminados', 'Grating', 'IPE/HEA'],
  },
  {
    id: 'transportadores',
    icon: 'belt',
    title: 'Transportadores de Banda',
    short: 'Sistemas continuos de manejo de material a granel.',
    intro: 'Fabricación e instalación de transportadores de banda para minería, áridos y procesos. Diseñamos polines, poleas y estructuras a medida.',
    features: [
      'Anchos de banda de 600 a 2000 mm',
      'Polines y poleas según norma CEMA',
      'Estaciones de carga, descarga y retorno',
      'Mantenimiento preventivo y correctivo',
    ],
    materials: ['Bandas de caucho', 'Acero estructural', 'Polines blindados'],
    gallery: [
      { src: 'assets/transportadores-1.png', caption: 'Líneas de rodillos · centro de distribución' },
      { src: 'assets/transportadores-2.png', caption: 'Transportadores en acero inoxidable · industria alimentaria' },
      { src: 'assets/transportadores-3.png', caption: 'Bandas sanitarias · planta de proceso' },
      { src: 'assets/transportadores-4.png', caption: 'Instalación de línea continua · faena' },
    ],
  },
  {
    id: 'corte',
    icon: 'cut',
    title: 'Corte, Plegado, CNC Plasma y Oxicorte',
    short: 'Mecanizado de precisión en planchas y perfiles.',
    intro: 'Servicio de corte CNC plasma de alta definición, oxicorte, plegado y rolado para piezas de hasta 6 metros, con tolerancias de ±0.5 mm.',
    features: [
      'CNC plasma HD hasta 25 mm de espesor',
      'Oxicorte hasta 200 mm de espesor',
      'Plegadora hidráulica 4 m / 175 ton',
      'Rolado de perfiles y planchas',
    ],
    materials: ['Plancha de acero al carbono', 'Inoxidable', 'Aluminio'],
    gallery: [
      { src: 'assets/corte-plasma-1.png', caption: 'CNC Plasma · piezas estructurales' },
      { src: 'assets/corte-plasma-2.png', caption: 'CNC Plasma · cortes geométricos' },
      { src: 'assets/corte-oxicorte.png', caption: 'Oxicorte · bridas y placas' },
    ],
  },
];

Object.assign(window, { Icon, SERVICES });
