// Thin-line geometric icons. 1.4px stroke. 24px viewBox.
const Icon = ({ children, size = 24, stroke = 1.4, ...rest }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none"
       stroke="currentColor" strokeWidth={stroke}
       strokeLinecap="round" strokeLinejoin="round" {...rest}>
    {children}
  </svg>
);

const IconActivate = (p) => (
  <Icon {...p}>
    <rect x="3.5" y="5.5" width="17" height="13" rx="2" />
    <path d="M3.5 9h17" />
    <circle cx="7" cy="7.25" r=".5" fill="currentColor" stroke="none" />
    <path d="M8 13.5h6M8 16h4" />
  </Icon>
);
const IconCollect = (p) => (
  <Icon {...p}>
    <path d="M9 3.5h6v4l3 6.5a4 4 0 0 1-4 5.5h-4a4 4 0 0 1-4-5.5l3-6.5v-4Z" />
    <path d="M8.5 13.5h7" />
  </Icon>
);
const IconMail = (p) => (
  <Icon {...p}>
    <rect x="3" y="6" width="18" height="13" rx="2" />
    <path d="M3.5 7.5l8 6.2a1 1 0 0 0 1.2 0l8-6.2" />
  </Icon>
);
const IconResults = (p) => (
  <Icon {...p}>
    <rect x="4" y="3.5" width="16" height="17" rx="2" />
    <path d="M8 9h8M8 12.5h5M8 16h6" />
    <path d="M16.5 16l1.6-1.6" />
  </Icon>
);

const IconAsbestos = (p) => (
  <Icon {...p}>
    <path d="M12 3.5l2.6 4.5L19 9.6 16 13l.6 5L12 16l-4.6 2 .6-5L5 9.6 9.4 8 12 3.5Z" />
  </Icon>
);
const IconLead = (p) => (
  <Icon {...p}>
    <path d="M12 3.5c3.6 3 5.5 6 5.5 9a5.5 5.5 0 1 1-11 0c0-3 1.9-6 5.5-9Z" />
    <path d="M9 13.5a2.4 2.4 0 0 0 2.5 2.2" />
  </Icon>
);
const IconMold = (p) => (
  <Icon {...p}>
    <circle cx="8.2" cy="11" r="3.5" />
    <circle cx="14.5" cy="9.2" r="2.8" />
    <circle cx="14" cy="14.5" r="2.6" />
  </Icon>
);

const IconLab = (p) => (
  <Icon {...p}>
    <path d="M9.5 3.5v5L5 17a2 2 0 0 0 1.8 3h10.4A2 2 0 0 0 19 17l-4.5-8.5v-5" />
    <path d="M8.5 3.5h7" />
    <path d="M7.5 13h9" />
  </Icon>
);
const IconShield = (p) => (
  <Icon {...p}>
    <path d="M12 3.5l7 2v6c0 4.5-3 7.5-7 9-4-1.5-7-4.5-7-9v-6l7-2Z" />
    <path d="M9 12l2 2 4-4.2" />
  </Icon>
);
const IconChain = (p) => (
  <Icon {...p}>
    <path d="M10 14a3.5 3.5 0 0 0 5 0l2.5-2.5a3.5 3.5 0 0 0-5-5L11 8" />
    <path d="M14 10a3.5 3.5 0 0 0-5 0L6.5 12.5a3.5 3.5 0 0 0 5 5L13 16" />
  </Icon>
);
const IconLock = (p) => (
  <Icon {...p}>
    <rect x="5" y="10.5" width="14" height="9.5" rx="2" />
    <path d="M8 10.5V8a4 4 0 1 1 8 0v2.5" />
  </Icon>
);
const IconArrow = (p) => (
  <Icon {...p}>
    <path d="M5 12h14M13 6l6 6-6 6" />
  </Icon>
);
const IconCheck = (p) => (
  <Icon {...p}>
    <path d="M4.5 12.5l4 4 11-11" />
  </Icon>
);
const IconPlus = (p) => (
  <Icon {...p}>
    <path d="M12 5v14M5 12h14" />
  </Icon>
);
const IconMinus = (p) => (
  <Icon {...p}>
    <path d="M5 12h14" />
  </Icon>
);
const IconLogo = ({ size = 22 }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none"
       xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
    <path d="M4 20V8.5l8-5.5 8 5.5V20" stroke="currentColor" strokeWidth="1.6"
          strokeLinejoin="round" strokeLinecap="round"/>
    <circle cx="12" cy="13.2" r="2.4" fill="var(--teal)"/>
  </svg>
);

Object.assign(window, {
  Icon, IconActivate, IconCollect, IconMail, IconResults,
  IconAsbestos, IconLead, IconMold,
  IconLab, IconShield, IconChain, IconLock,
  IconArrow, IconCheck, IconPlus, IconMinus, IconLogo,
});
