/**
 * Button Component Styles
 *
 * Unified button system with modifiers for different styles and sizes.
 * Base class: .btn
 * Modifiers: --primary, --discord
 * Sizes: --lg
 */

@layer components.buttons {
    /* ========================================
       Base Button
       ======================================== */
    .btn {
        /* Component-scoped variables */
        --btn-bg: transparent;
        --btn-bg-hover: var(--color-bg-elevated);
        --btn-color: var(--color-text-bright);
        --btn-border-color: var(--color-text-bright);
        --btn-padding-block: var(--space-2);
        --btn-padding-inline: var(--space-4);
        --btn-font-size: var(--text-sm);

        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: var(--space-2);
        padding: var(--btn-padding-block) var(--btn-padding-inline);
        font-family: var(--font-heading);
        font-size: var(--btn-font-size);
        font-weight: var(--font-weight-bold);
        text-transform: uppercase;
        letter-spacing: 0.5px;
        text-decoration: none;
        color: var(--btn-color);
        background-color: var(--btn-bg);
        border: 1px solid var(--btn-border-color);
        border-radius: var(--radius-sm);
        cursor: pointer;
        transition: all var(--transition-fast);
        white-space: nowrap;
    }

    .btn:hover {
        background-color: var(--btn-bg-hover);
        text-decoration: none;
    }

    .btn:focus-visible {
        outline: 2px solid var(--color-primary);
        outline-offset: 2px;
    }

    .btn:active {
        transform: translateY(1px);
    }

    /* ========================================
       Button Variants
       ======================================== */

    /* Primary - filled button */
    .btn--primary {
        --btn-bg: var(--color-primary);
        --btn-bg-hover: var(--color-primary-dark);
        --btn-border-color: var(--color-primary);
    }

    /* Discord - brand color */
    .btn--discord {
        --btn-bg: #5865f2;
        --btn-bg-hover: #4752c4;
        --btn-border-color: #5865f2;
    }

    .btn--discord:hover {
        transform: translateY(-2px);
        box-shadow: 0 8px 25px rgba(88, 101, 242, 0.3);
    }

    /* ========================================
       Button Sizes
       ======================================== */

    .btn--lg {
        --btn-padding-block: var(--space-3);
        --btn-padding-inline: var(--space-5);
        --btn-font-size: var(--text-base);
    }

    /* ========================================
       Legacy Aliases (backward compatibility)
       ======================================== */

    /* CTA button (used in header) */
    .cta-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: var(--space-2);
        padding: var(--space-2) var(--space-4);
        font-family: var(--font-heading);
        font-size: var(--text-sm);
        font-weight: var(--font-weight-bold);
        text-transform: uppercase;
        letter-spacing: 0.5px;
        text-decoration: none;
        color: var(--color-text-bright);
        background-color: transparent;
        border: 1px solid var(--color-text-bright);
        border-radius: var(--radius-sm);
        cursor: pointer;
        transition: all var(--transition-fast);
        white-space: nowrap;
    }

    .cta-btn:hover {
        background-color: var(--color-bg-elevated);
        text-decoration: none;
    }

    .cta-btn:focus-visible {
        outline: 2px solid var(--color-primary);
        outline-offset: 2px;
    }

    .cta-btn--primary {
        background-color: var(--color-primary);
        border-color: var(--color-primary);
    }

    .cta-btn--primary:hover {
        background-color: var(--color-primary-dark);
        border-color: var(--color-primary-dark);
    }
}
