// Inline icon set. All icons use currentColor.
(function () {
  const ico = {
    viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor',
    strokeWidth: 1.5, strokeLinecap: 'round', strokeLinejoin: 'round',
  };

  const Copy = ({ size = 14 }) => (
    <svg {...ico} width={size} height={size}>
      <rect x="8" y="8" width="12" height="12" rx="1" />
      <path d="M16 8V5a1 1 0 0 0-1-1H5a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h3" />
    </svg>
  );

  const Phone = ({ size = 14 }) => (
    <svg {...ico} width={size} height={size}>
      <path d="M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A15 15 0 0 1 3 6a2 2 0 0 1 2-2z" />
    </svg>
  );

  const Mail = ({ size = 14 }) => (
    <svg {...ico} width={size} height={size}>
      <rect x="3" y="5" width="18" height="14" rx="1" />
      <path d="M3 6l9 7 9-7" />
    </svg>
  );

  const Arrow = ({ size = 14 }) => (
    <svg {...ico} width={size} height={size}>
      <path d="M5 12h14M13 6l6 6-6 6" />
    </svg>
  );

  const Close = ({ size = 18 }) => (
    <svg {...ico} width={size} height={size}>
      <path d="M6 6l12 12M18 6L6 18" />
    </svg>
  );

  const Hamburger = ({ size = 18 }) => (
    <svg {...ico} width={size} height={size}>
      <path d="M4 7h16M4 12h16M4 17h16" />
    </svg>
  );

  const Pin = ({ size = 14 }) => (
    <svg {...ico} width={size} height={size}>
      <path d="M12 21s-7-7.58-7-12a7 7 0 1 1 14 0c0 4.42-7 12-7 12z" />
      <circle cx="12" cy="9" r="2.5" />
    </svg>
  );

  const Star = ({ size = 14 }) => (
    <span style={{ fontFamily: 'var(--font-display)', fontSize: size, lineHeight: 1, color: 'inherit' }}>✦</span>
  );

  window.GR = Object.assign(window.GR || {}, {
    Icons: { Copy, Phone, Mail, Arrow, Close, Hamburger, Pin, Star },
  });
})();
