// ====== Icon library (inline SVG components) ======
const I = {
  Caret: ({size=12}) => (
    <svg width={size} height={size} viewBox="0 0 12 12" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><polyline points="3 5 6 8 9 5"/></svg>
  ),
  Arrow: ({size=16}) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.4" strokeLinecap="round" strokeLinejoin="round"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="13 6 19 12 13 18"/></svg>
  ),
  Menu: ({size=22}) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.2" strokeLinecap="round"><line x1="4" y1="7" x2="20" y2="7"/><line x1="4" y1="12" x2="20" y2="12"/><line x1="4" y1="17" x2="20" y2="17"/></svg>
  ),
  Close: ({size=22}) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.2" strokeLinecap="round"><line x1="6" y1="6" x2="18" y2="18"/><line x1="18" y1="6" x2="6" y2="18"/></svg>
  ),
  Shield: ({size=22}) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"><path d="M12 3l8 3v6c0 5-3.5 8.5-8 9-4.5-.5-8-4-8-9V6l8-3z"/><polyline points="9 12 11 14 15 10"/></svg>
  ),
  Quality: ({size=22}) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"><polygon points="12 2 14.6 8.6 21.5 9.1 16.2 13.6 18 20.2 12 16.8 6 20.2 7.8 13.6 2.5 9.1 9.4 8.6"/></svg>
  ),
  Check: ({size=22}) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"><circle cx="12" cy="12" r="9"/><polyline points="8 12 11 15 16 9"/></svg>
  ),
  Handshake: ({size=22}) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.7" strokeLinecap="round" strokeLinejoin="round"><path d="M3 12l4-4 3 3 3-3 4 4-3 3 1 2-2 2-2-1-3 3-2-2 2-2-3-3-2-2z"/></svg>
  ),
  Team: ({size=22}) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"><circle cx="9" cy="8" r="3"/><circle cx="17" cy="9" r="2.4"/><path d="M3 19c.5-3 3-4.5 6-4.5s5.5 1.5 6 4.5"/><path d="M15 14.6c2.3.2 4.5 1.5 5 4.4"/></svg>
  ),
  Tag: ({size=22}) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round"><path d="M3 12L12 3h8v8l-9 9z"/><circle cx="15.5" cy="8.5" r="1.5"/></svg>
  ),
  Phone: ({size=18}) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2 4.2 2 2 0 0 1 4 2h3a2 2 0 0 1 2 1.7c.1 1 .3 2 .6 2.9a2 2 0 0 1-.5 2L7.9 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2-.5c.9.3 1.9.5 2.9.6a2 2 0 0 1 1.9 2z"/></svg>
  ),
  Mail: ({size=18}) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><rect x="3" y="5" width="18" height="14" rx="2"/><polyline points="3 7 12 13 21 7"/></svg>
  ),
  Pin: ({size=18}) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><path d="M12 22s-7-7.5-7-13a7 7 0 1 1 14 0c0 5.5-7 13-7 13z"/><circle cx="12" cy="9" r="2.5"/></svg>
  ),
  Star: ({size=18, filled=true}) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill={filled ? "currentColor" : "none"} stroke="currentColor" strokeWidth="1.4" strokeLinejoin="round"><polygon points="12 2 14.6 8.6 21.5 9.1 16.2 13.6 18 20.2 12 16.8 6 20.2 7.8 13.6 2.5 9.1 9.4 8.6"/></svg>
  ),

  // service-specific
  Floor: ({size=42}) => (
    <svg width={size} height={size} viewBox="0 0 48 48" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
      <rect x="6" y="10" width="14" height="28" rx="1" fill="currentColor" fillOpacity="0.08"/>
      <rect x="22" y="10" width="14" height="28" rx="1" fill="currentColor" fillOpacity="0.18"/>
      <rect x="6" y="10" width="14" height="28" rx="1"/>
      <rect x="22" y="10" width="14" height="28" rx="1"/>
      <line x1="6" y1="18" x2="20" y2="18"/>
      <line x1="6" y1="26" x2="20" y2="26"/>
      <line x1="22" y1="22" x2="36" y2="22"/>
      <line x1="22" y1="30" x2="36" y2="30"/>
    </svg>
  ),
  Brush: ({size=42}) => (
    <svg width={size} height={size} viewBox="0 0 48 48" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
      <rect x="14" y="6" width="20" height="10" rx="1" fill="currentColor"/>
      <rect x="16" y="16" width="16" height="14" rx="1" fill="currentColor" fillOpacity="0.15"/>
      <rect x="16" y="16" width="16" height="14" rx="1"/>
      <path d="M20 30 L24 42 L28 30"/>
      <line x1="18" y1="10" x2="18" y2="14" stroke="white"/>
      <line x1="24" y1="10" x2="24" y2="14" stroke="white"/>
      <line x1="30" y1="10" x2="30" y2="14" stroke="white"/>
    </svg>
  ),
  Cabinet: ({size=42}) => (
    <svg width={size} height={size} viewBox="0 0 48 48" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
      <rect x="8" y="6" width="14" height="36" rx="1" fill="currentColor" fillOpacity="0.08"/>
      <rect x="26" y="6" width="14" height="36" rx="1" fill="currentColor" fillOpacity="0.08"/>
      <line x1="13" y1="18" x2="13" y2="22"/>
      <line x1="17" y1="18" x2="17" y2="22"/>
      <line x1="31" y1="18" x2="31" y2="22"/>
      <line x1="35" y1="18" x2="35" y2="22"/>
    </svg>
  ),
  Window: ({size=42}) => (
    <svg width={size} height={size} viewBox="0 0 48 48" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
      <rect x="8" y="8" width="32" height="32" rx="2" fill="currentColor" fillOpacity="0.08"/>
      <line x1="24" y1="8" x2="24" y2="40"/>
      <line x1="8" y1="24" x2="40" y2="24"/>
    </svg>
  ),
  Door: ({size=42}) => (
    <svg width={size} height={size} viewBox="0 0 48 48" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
      <rect x="12" y="4" width="24" height="40" rx="1" fill="currentColor" fillOpacity="0.08"/>
      <line x1="18" y1="12" x2="30" y2="12"/>
      <line x1="18" y1="24" x2="30" y2="24"/>
      <circle cx="30" cy="28" r="1.5" fill="currentColor"/>
    </svg>
  ),
  HomeWrench: ({size=42}) => (
    <svg width={size} height={size} viewBox="0 0 48 48" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
      <path d="M8 22 L24 8 L40 22 V40 H8 Z" fill="currentColor" fillOpacity="0.08"/>
      <path d="M18 32 l4-4 m0 0 a3 3 0 1 1 4 4 l-6 6 -4 -4 z"/>
    </svg>
  ),
  Facebook: ({size=14}) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="currentColor"><path d="M13 22v-8h3l.5-4H13V7.5c0-1.1.3-1.8 1.9-1.8H17V2.2c-.3 0-1.6-.2-3-.2-3 0-5 1.8-5 5.2V10H6v4h3v8h4z"/></svg>
  ),
  Instagram: ({size=14}) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><rect x="3" y="3" width="18" height="18" rx="5"/><circle cx="12" cy="12" r="4"/><circle cx="17.5" cy="6.5" r="1" fill="currentColor"/></svg>
  ),
  Google: ({size=14}) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="currentColor"><path d="M21.6 12.2c0-.8-.1-1.4-.2-2H12v3.8h5.4c-.2 1.3-1 2.4-2 3.1v2.6h3.3c1.9-1.8 3-4.4 3-7.5z"/><path d="M12 22c2.7 0 5-.9 6.6-2.4l-3.3-2.5c-.9.6-2 1-3.4 1-2.6 0-4.8-1.7-5.6-4H3v2.6A10 10 0 0 0 12 22z" fill="currentColor" opacity=".75"/><path d="M6.4 14a6 6 0 0 1 0-3.9V7.5H3a10 10 0 0 0 0 9L6.4 14z" fill="currentColor" opacity=".55"/><path d="M12 6c1.5 0 2.8.5 3.8 1.5l2.9-2.9C16.9 3 14.7 2 12 2A10 10 0 0 0 3 7.5L6.4 10c.8-2.3 3-4 5.6-4z" fill="currentColor" opacity=".85"/></svg>
  ),
  Yelp: ({size=14}) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="currentColor"><path d="M11 3v9l-5-3 5-6zm0 11v6l-4-2 4-4zm2-2l5-3-3-5-2 8zm0 4l5 2 1-5-6 3z"/></svg>
  ),
};

Object.assign(window, { I });
