// lib/icons.jsx — thin-stroke icons used across the site

const Icon = ({ children, size = 18, stroke = 1.4, ...props }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none"
    stroke="currentColor" strokeWidth={stroke} strokeLinecap="round" strokeLinejoin="round" {...props}>
    {children}
  </svg>
);

const IconArrow = (p) => <Icon {...p}><path d="M5 12h14M13 6l6 6-6 6" /></Icon>;
const IconArrowDown = (p) => <Icon {...p}><path d="M12 5v14M6 13l6 6 6-6" /></Icon>;
const IconCheck = (p) => <Icon {...p}><path d="M4 12l5 5L20 6" /></Icon>;
const IconClose = (p) => <Icon {...p}><path d="M6 6l12 12M18 6L6 18" /></Icon>;
const IconPlus = (p) => <Icon {...p}><path d="M12 5v14M5 12h14" /></Icon>;
const IconMinus = (p) => <Icon {...p}><path d="M5 12h14" /></Icon>;
const IconMenu = (p) => <Icon {...p}><path d="M4 7h16M4 12h16M4 17h16" /></Icon>;

const IconTelescope = (p) => (
  <Icon {...p}>
    <path d="M3.5 13.5l11-7 4 6.5-11 7-4-6.5z" />
    <path d="M9 16l3 5M12 18l-3 4" />
    <circle cx="17" cy="6" r="1.2" />
  </Icon>
);

const IconMoon = (p) => (
  <Icon {...p}><path d="M20 14.5A8 8 0 1 1 9.5 4a6.5 6.5 0 0 0 10.5 10.5z" /></Icon>
);

const IconStar = (p) => (
  <Icon {...p}><path d="M12 3l2.5 6 6.5.5-5 4.5 1.5 6.5L12 17l-5.5 3.5L8 14 3 9.5l6.5-.5z" /></Icon>
);

const IconCompass = (p) => (
  <Icon {...p}>
    <circle cx="12" cy="12" r="9" />
    <path d="M15 9l-2 5-5 2 2-5 5-2z" />
  </Icon>
);

const IconCalendar = (p) => (
  <Icon {...p}>
    <rect x="3" y="5" width="18" height="16" rx="2" />
    <path d="M3 9h18M8 3v4M16 3v4" />
  </Icon>
);

const IconUsers = (p) => (
  <Icon {...p}>
    <circle cx="9" cy="9" r="3.2" />
    <path d="M3 19c0-3.2 2.7-5 6-5s6 1.8 6 5" />
    <circle cx="17" cy="8" r="2.4" />
    <path d="M15 14c3 0 5.5 1.6 6 4" />
  </Icon>
);

const IconClock = (p) => (
  <Icon {...p}>
    <circle cx="12" cy="12" r="9" />
    <path d="M12 7v5l3 2" />
  </Icon>
);

const IconLeaf = (p) => (
  <Icon {...p}>
    <path d="M5 19c0-9 6-15 15-15 0 9-6 15-15 15z" />
    <path d="M5 19c4-4 7-7 12-12" />
  </Icon>
);

const IconShield = (p) => (
  <Icon {...p}><path d="M12 3l8 3v6c0 5-3.5 8.5-8 9-4.5-.5-8-4-8-9V6l8-3z" /></Icon>
);

const IconChat = (p) => (
  <Icon {...p}><path d="M21 11.5a7.5 7.5 0 0 1-11 6.5L4 19l1-4.5A7.5 7.5 0 1 1 21 11.5z" /></Icon>
);

const IconPhone = (p) => (
  <Icon {...p}><path d="M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2z" /></Icon>
);

const IconMap = (p) => (
  <Icon {...p}>
    <path d="M9 4l6 2 6-2v15l-6 2-6-2-6 2V6z" />
    <path d="M9 4v15M15 6v15" />
  </Icon>
);

const IconCamera = (p) => (
  <Icon {...p}>
    <path d="M3 8h4l2-3h6l2 3h4v11H3z" />
    <circle cx="12" cy="13" r="3.5" />
  </Icon>
);

const IconHelp = (p) => (
  <Icon {...p}>
    <circle cx="12" cy="12" r="9" />
    <path d="M9.5 9.5a2.5 2.5 0 1 1 3.7 2.2c-.7.4-1.2.9-1.2 1.8M12 17h.01" />
  </Icon>
);

const IconRoute = (p) => (
  <Icon {...p}>
    <circle cx="6" cy="5" r="2" />
    <circle cx="18" cy="19" r="2" />
    <path d="M6 7v6a4 4 0 0 0 4 4h4a4 4 0 0 1 4 4" />
  </Icon>
);

const IconSparkle = (p) => (
  <Icon {...p}>
    <path d="M12 3v6M12 15v6M3 12h6M15 12h6M6 6l4 4M14 14l4 4M18 6l-4 4M10 14l-4 4" />
  </Icon>
);

const IconJacket = (p) => (
  <Icon {...p}>
    <path d="M8 4l4 3 4-3 4 2-2 5v9H6v-9L4 6z" />
    <path d="M12 7v14" />
  </Icon>
);

Object.assign(window, {
  Icon, IconArrow, IconArrowDown, IconCheck, IconClose, IconPlus, IconMinus, IconMenu,
  IconTelescope, IconMoon, IconStar, IconCompass, IconCalendar, IconUsers, IconClock,
  IconLeaf, IconShield, IconChat, IconPhone, IconMap, IconCamera, IconHelp, IconRoute,
  IconSparkle, IconJacket,
});
