/* VayLand brand buttons — primary actions follow seasonal --vl-* */

.vl-btn,
.goods-card__btn,
.cupon-field__apply,
#buyModal .btn.btn-block.btn-primary,
.vl-admin .btn-primary,
.vl-admin .btn-success,
.vl-community-page .btn-success,
.vl-hub__titles .btn-success,
.auth-page__submit,
.auth-page .btn-success.btn-block {
    background: linear-gradient(135deg, var(--vl-green-light) 0%, var(--vl-green) 55%, var(--vl-green-dark) 100%);
    border: 1px solid rgba(var(--vl-accent-soft-rgb), 0.35);
    color: #fff;
    box-shadow: 0 4px 16px rgba(var(--vl-accent-rgb), 0.28);
    transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.vl-btn:hover,
.vl-btn:focus,
.goods-card__btn:hover,
.goods-card__btn:focus,
.cupon-field__apply:hover:not(:disabled),
#buyModal .btn.btn-block.btn-primary:hover:not(:disabled),
.vl-admin .btn-primary:hover,
.vl-admin .btn-success:hover,
.vl-community-page .btn-success:hover,
.vl-hub__titles .btn-success:hover,
.auth-page__submit:hover,
.auth-page .btn-success.btn-block:hover {
    background: linear-gradient(135deg, var(--vl-accent-soft) 0%, var(--vl-green-light) 45%, var(--vl-green) 100%);
    border-color: rgba(var(--vl-accent-soft-rgb), 0.55);
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(var(--vl-accent-rgb), 0.4);
    outline: none !important;
}

.vl-btn:focus,
.vl-btn:focus-visible,
.vl-btn:active,
.goods-card__btn:focus,
.goods-card__btn:focus-visible,
.goods-card__btn:active,
.cupon-field__apply:focus,
.cupon-field__apply:focus-visible,
#buyModal .btn.btn-block.btn-primary:focus,
#buyModal .btn.btn-block.btn-primary:focus-visible,
#buyModal .btn.btn-block.btn-primary:active {
    outline: none !important;
}

.vl-btn:disabled,
.cupon-field__apply:disabled,
#buyModal .btn.btn-block.btn-primary:disabled {
    opacity: 0.65;
    transform: none;
    box-shadow: none;
    cursor: wait;
}

.vl-btn--ghost {
    background: rgba(var(--vl-accent-rgb), 0.12);
    border: 1px solid rgba(var(--vl-accent-rgb), 0.28);
    color: var(--vl-green-light);
    box-shadow: none;
}

.vl-btn--ghost:hover {
    background: rgba(var(--vl-accent-rgb), 0.22);
    color: #fff;
}

.vl-btn--danger,
.vl-admin .btn-danger {
    background: linear-gradient(135deg, #ff6b6b 0%, #e53935 55%, #b71c1c 100%);
    border: 1px solid rgba(255, 120, 120, 0.35);
    color: #fff;
    box-shadow: 0 4px 16px rgba(229, 57, 53, 0.28);
}

.vl-btn--danger:hover,
.vl-admin .btn-danger:hover {
    background: linear-gradient(135deg, #ff8a80 0%, #ff5252 50%, #e53935 100%);
    color: #fff;
}

/* Sale cards keep orange CTA */
.goods-card--sale .goods-card__btn {
    background: linear-gradient(135deg, #ff6b35 0%, #ff4757 100%);
    box-shadow: 0 4px 16px rgba(255, 71, 87, 0.4);
    border-color: rgba(255, 140, 100, 0.35);
}

.goods-card--sale .goods-card__btn:hover,
.goods-card--sale .goods-card__btn:focus {
    background: linear-gradient(135deg, #ff8c5a 0%, #ff5a6e 100%);
    box-shadow: 0 6px 20px rgba(255, 71, 87, 0.55);
}

#buyModal .btn .badge.badge-success {
    background: rgba(0, 0, 0, 0.35);
    color: var(--vl-accent-soft);
}
