---
interface Props {
    text: string;
    href?: string;
    className?: string;
    variant?: 'primary' | 'primary-white-text' | 'outline' | 'outline-white' | 'gold-ghost' | 'telegram' | 'whatsapp';
    size?: 'sm' | 'md' | 'lg';
    id?: string;
    type?: 'button' | 'submit' | 'reset';
    disabled?: boolean;
}

const {
    text,
    href,
    className = "",
    variant = 'primary',
    size = 'md',
    id,
    type = 'button',
    disabled = false
} = Astro.props;

// Стили вариантов (адаптированы под дизайн Адвоката)
const variants = {
    // Золотая кнопка (основная)
    primary: "bg-[#bf9b58] text-[#151b26] border border-[#bf9b58] hover:bg-[#d4b068] hover:border-[#d4b068]",

    // Золотая кнопка с белым текстом (для темных фонов)
    'primary-white-text': "bg-[#bf9b58] text-white border border-[#bf9b58] hover:bg-[#d4b068] hover:border-[#d4b068]",

    // Золотая обводка (для светлых или темных фонов)
    outline: "bg-transparent border border-[#bf9b58] text-[#bf9b58] hover:bg-[#bf9b58] hover:text-[#151b26]",

    // Белая/Серая обводка (Специально для Hero - "Направления практики")
    'outline-white': "bg-transparent border border-gray-500 text-white hover:bg-white/10 hover:border-white",

    // Текстовая кнопка золотого цвета
    'gold-ghost': "bg-transparent text-[#bf9b58] hover:text-[#d4b068]",

    // Кнопка Telegram (официальный цвет #0088cc)
    'telegram': "bg-[#0088cc] text-white hover:bg-[#006699]",

    // Кнопка WhatsApp (официальный цвет #25D366)
    'whatsapp': "bg-[#25D366] text-white hover:bg-[#128C7E]"
};

// Стили размеров
const sizes = {
    sm: "px-4 py-2 text-xs rounded-xl uppercase tracking-wider", // Убрал скругления для строгости
    md: "px-8 py-4 text-sm rounded-xl uppercase tracking-wider w-full sm:w-auto", // Размер как в Hero
    lg: "px-10 py-5 text-base rounded-xl uppercase tracking-wider"
};

const baseStyles = "inline-flex items-center justify-center font-bold transition-all duration-300 active:scale-95 text-center cursor-pointer";

const Element = href ? 'a' : 'button';
---

<Element
    {href}
    {id}
    type={!href ? type : undefined}
    disabled={!href ? disabled : undefined}
    class:list={[baseStyles, variants[variant], sizes[size], className]}
>
    {text}
</Element>