import type { ReactNode } from "react";

interface FeatureCardProps {
  icon: ReactNode;
  title: string;
  description: string;
  onClick?: () => void;
  className?: string;
}

export function FeatureCard({
  icon,
  title,
  description,
  onClick,
  className = "",
}: FeatureCardProps) {
  const Component = onClick ? "button" : "div";

  return (
    <Component
      onClick={onClick}
      className={`group relative flex flex-col items-center rounded-[14px] border-[2px] border-[rgba(220,210,180,0.45)] bg-[linear-gradient(160deg,rgba(28,28,28,0.97)_0%,rgba(10,10,10,0.99)_100%)] px-4 py-4 text-center transition-all duration-300 hover:border-[rgba(235,225,195,0.7)] hover:-translate-y-[3px] hover:shadow-[0_6px_24px_rgba(0,0,0,0.5),0_0_15px_rgba(220,210,180,0.07)] ${onClick ? "cursor-pointer" : ""} ${className}`}
    >
      <div className="pointer-events-none absolute inset-0 rounded-[14px] bg-[radial-gradient(ellipse_at_50%_0%,rgba(235,225,190,0.07)_0%,transparent_55%)]" />

      <div className="relative mb-2 flex h-10 w-10 items-center justify-center">
        {icon}
      </div>
      <p className="relative text-xs font-medium text-[#f0f0f0]">{title}</p>
      <p className="relative mt-1 text-[11px] leading-relaxed text-[#888888]">
        {description}
      </p>
    </Component>
  );
}
