/**
 * 加载按钮动画样式
 */

/* 加载中状态的按钮样式 */
.loading-btn.is-loading {
    position: relative;
    cursor: wait;
    transition: all 0.3s ease;
}

/* 加载中按钮的悬停效果 */
.loading-btn.is-loading:hover {
    transform: none;
    box-shadow: none;
}

/* 加载图标的动画效果 */
.loading-btn .spinner-border {
    vertical-align: middle;
    animation: spinner-grow 0.75s linear infinite;
}

/* 加载中状态下的按钮文字效果 */
.loading-btn.is-loading .btn-text {
    opacity: 0.7;
}

/* 自定义脉冲动画效果 */
@keyframes btn-pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.7);
    }
    70% {
        box-shadow: 0 0 0 10px rgba(255, 255, 255, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
    }
}

/* 应用脉冲动画到加载中的按钮 */
.loading-btn.is-loading {
    animation: btn-pulse 1.5s infinite;
}

/* 确保加载图标在按钮内垂直居中 */
.loading-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* 为所有案例卡片中的按钮添加过渡效果 */
.case-card .btn {
    transition: all 0.3s ease;
}

.case-card .btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}