/* ═══════════════════════════════════════════════════════
   S27 Animated Button Icons
   Custom SVG icon animations for all CTA/action buttons
   ═══════════════════════════════════════════════════════ */

/* Base icon in buttons */
.btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    vertical-align: middle;
}

.btn-icon svg {
    width: 100%;
    height: 100%;
}

/* Ensure icons are visible on muted-color buttons */
.price-btn .btn-icon,
.btn-outline .btn-icon {
    color: #2196f2;
}
.price-card.popular .price-btn .btn-icon {
    color: #fff;
}

/* ═══════ SPARKLE — Generate / Create ═══════ */
@keyframes sparkleRotate {
    0%, 100% { transform: rotate(0deg) scale(1); }
    25% { transform: rotate(15deg) scale(1.1); }
    75% { transform: rotate(-10deg) scale(0.95); }
}

@keyframes sparklePulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

.icon-sparkle {
    animation: sparkleRotate 3s ease-in-out infinite;
}

.icon-sparkle .sparkle-sm {
    animation: sparklePulse 2s ease-in-out infinite 0.3s;
}

/* ═══════ REFRESH — Rebuild ═══════ */
@keyframes refreshSpin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.icon-refresh:hover {
    animation: refreshSpin 0.8s ease-in-out;
}

/* ═══════ SEARCH — Research / Keywords ═══════ */
@keyframes searchBounce {
    0%, 100% { transform: translate(0, 0); }
    50% { transform: translate(1px, -1px); }
}

.icon-search {
    animation: searchBounce 2.5s ease-in-out infinite;
}

/* ═══════ EYE — Vision / Preview ═══════ */
@keyframes eyeBlink {
    0%, 40%, 60%, 100% { transform: scaleY(1); }
    50% { transform: scaleY(0.1); }
}

.icon-eye .eye-lid {
    animation: eyeBlink 4s ease-in-out infinite;
    transform-origin: center;
}

/* ═══════ LIGHTNING — Submit / Generate ═══════ */
@keyframes lightningFlash {
    0%, 90%, 100% { opacity: 1; filter: drop-shadow(0 0 0px transparent); }
    95% { opacity: 0.6; filter: drop-shadow(0 0 4px rgba(255,255,255,0.6)); }
}

.icon-lightning {
    animation: lightningFlash 3s ease-in-out infinite;
}

/* ═══════ HEARTBEAT — Health Check ═══════ */
@keyframes heartbeat {
    0%, 100% { transform: scale(1); }
    14% { transform: scale(1.15); }
    28% { transform: scale(1); }
    42% { transform: scale(1.1); }
    56% { transform: scale(1); }
}

.icon-heartbeat {
    animation: heartbeat 2.5s ease-in-out infinite;
}

/* ═══════ WRENCH — Fix ═══════ */
@keyframes wrenchWiggle {
    0%, 100% { transform: rotate(0deg); }
    20% { transform: rotate(-12deg); }
    40% { transform: rotate(8deg); }
    60% { transform: rotate(-5deg); }
    80% { transform: rotate(0deg); }
}

.icon-wrench {
    animation: wrenchWiggle 3s ease-in-out infinite;
}

/* ═══════ ROCKET — Upgrade / Get Started ═══════ */
@keyframes rocketFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-2px); }
}

@keyframes rocketTrail {
    0%, 100% { opacity: 0.3; transform: scaleY(0.6); }
    50% { opacity: 0.8; transform: scaleY(1); }
}

.icon-rocket {
    animation: rocketFloat 2s ease-in-out infinite;
}

.icon-rocket .trail {
    animation: rocketTrail 1.5s ease-in-out infinite;
}

/* ═══════ ARROW RIGHT — CTA ═══════ */
@keyframes arrowSlide {
    0%, 100% { transform: translateX(0); }
    50% { transform: translateX(3px); }
}

.icon-arrow-right {
    animation: arrowSlide 2s ease-in-out infinite;
}

/* ═══════ SHIELD — Upgrade Lock ═══════ */
@keyframes shieldPulse {
    0%, 100% { filter: drop-shadow(0 0 0px transparent); }
    50% { filter: drop-shadow(0 0 4px rgba(33, 150, 242, 0.4)); }
}

.icon-shield {
    animation: shieldPulse 2.5s ease-in-out infinite;
}

/* ═══════ CHECKMARK — Get Started / Try Free ═══════ */
@keyframes checkPop {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.1); }
}

.icon-check {
    animation: checkPop 3s ease-in-out infinite;
}
