/* Global icon prep to make transforms visible and smooth */
.btn svg,
.service-card .btn--text svg,
.testimonial-btn svg,
.newsletter-form .btn svg,
.form-actions .btn svg,
.file-upload-label svg,
.social-link svg,
.social-links a svg,
.theme-toggle svg {
    display: inline-block;
    transform-origin: center center;
    transform-box: fill-box;
    will-change: transform;
}

/* IMPORTANT: Scroll-to-top button gets special treatment */
.scroll-to-top svg {
    display: inline-block !important;
    transform-origin: center center !important;
    transition: transform 0.3s ease !important;
}

/* (Removed Landon Norris dual-layer text hover; reverted to base behavior) */

/* Primary Button - Full 360° rotation with translation */
.btn--primary svg {
    transition: all 0.7s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.btn--primary:hover svg {
    transform: translateX(8px) rotate(360deg) scale(1.15);
}

/* Secondary Button - Full 360° rotation with scale */
.btn--secondary svg {
    transition: all 0.7s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.btn--secondary:hover svg {
    transform: rotate(360deg) scale(1.3);
}

/* Outline Button - Double 720° rotation */
.btn--outline svg {
    transition: all 0.9s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.btn--outline:hover svg {
    transform: rotate(720deg) scale(1.25);
}

/* Text Button - Morphing arrow animation */
.btn--text svg {
    transition: all 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.btn--text:hover svg {
    animation: arrowMorph 1.2s cubic-bezier(0.68, -0.55, 0.265, 1.55) infinite;
}

@keyframes arrowMorph {
    0%, 100% {
        transform: translateX(0) rotate(0deg) scale(1);
    }
    25% {
        transform: translateX(8px) rotate(360deg) scale(1.2);
    }
    50% {
        transform: translateX(4px) rotate(180deg) scale(0.9);
    }
    75% {
        transform: translateX(12px) rotate(540deg) scale(1.15);
    }
}

/* Service Cards */
.service-card .btn--text svg {
    transition: all 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.service-card:hover .btn--text svg,
.service-card .btn--text:hover svg {
    animation: arrowMorph 1.2s cubic-bezier(0.68, -0.55, 0.265, 1.55) infinite;
}

/* Testimonial Navigation */
.testimonial-btn svg {
    transition: all 0.7s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.testimonial-btn.prev:hover svg {
    animation: morphLeft 1s cubic-bezier(0.68, -0.55, 0.265, 1.55) infinite;
}

.testimonial-btn.next:hover svg {
    animation: morphRight 1s cubic-bezier(0.68, -0.55, 0.265, 1.55) infinite;
}

@keyframes morphLeft {
    0%, 100% {
        transform: translateX(0) rotate(0deg) scale(1);
    }
    50% {
        transform: translateX(-12px) rotate(-360deg) scale(1.3);
    }
}

@keyframes morphRight {
    0%, 100% {
        transform: translateX(0) rotate(0deg) scale(1);
    }
    50% {
        transform: translateX(12px) rotate(360deg) scale(1.3);
    }
}

/* Newsletter Form */
.newsletter-form .btn svg {
    transition: all 0.7s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.newsletter-form .btn:hover svg {
    animation: sendMorph 0.9s cubic-bezier(0.68, -0.55, 0.265, 1.55) infinite;
}

@keyframes sendMorph {
    0%, 100% {
        transform: translateX(0) rotate(0deg) scale(1);
    }
    50% {
        transform: translateX(14px) rotate(360deg) scale(1.35);
    }
}

/* Contact Form Submit */
.form-actions .btn svg {
    transition: all 0.8s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.form-actions .btn:hover svg {
    animation: sendFormMorph 1s cubic-bezier(0.68, -0.55, 0.265, 1.55) infinite;
}

@keyframes sendFormMorph {
    0%, 100% {
        transform: translateX(0) rotate(0deg) scale(1);
    }
    50% {
        transform: translateX(18px) rotate(360deg) scale(1.4);
    }
}

/* File Upload */
.file-upload-label svg {
    transition: all 0.7s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.file-upload-label:hover svg {
    animation: uploadMorph 1s cubic-bezier(0.68, -0.55, 0.265, 1.55) infinite;
}

@keyframes uploadMorph {
    0%, 100% {
        transform: translateY(0) rotate(0deg) scale(1);
    }
    25% {
        transform: translateY(-10px) rotate(180deg) scale(1.25);
    }
    75% {
        transform: translateY(-5px) rotate(360deg) scale(0.95);
    }
}

/* Scroll to Top - Bouncing arrow animation */
.scroll-to-top svg {
    display: inline-block !important;
    transform-origin: center center !important;
    transition: transform 0.3s ease !important;
}

.scroll-to-top:hover svg {
    animation: scrollBounceUp 0.6s ease-in-out infinite !important;
}

@keyframes scrollBounceUp {
    0%, 100% {
        transform: translateY(0);
    }
    25% {
        transform: translateY(-6px);
    }
    50% {
        transform: translateY(0);
    }
    75% {
        transform: translateY(-3px);
    }
}

/* Social Links (Footer) */
.social-link svg {
    transition: all 0.7s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.social-link:hover svg {
    animation: socialMorph 0.9s cubic-bezier(0.68, -0.55, 0.265, 1.55) infinite;
}

@keyframes socialMorph {
    0%, 100% {
        transform: scale(1) rotate(0deg);
    }
    50% {
        transform: scale(1.35) rotate(360deg);
    }
}

/* Social Links (About/Team) */
.social-links a svg {
    transition: all 0.8s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.social-links a:hover svg {
    animation: teamSocialMorph 0.8s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

@keyframes teamSocialMorph {
    0% {
        transform: scale(1) rotate(0deg);
    }
    50% {
        transform: scale(1.45) rotate(180deg);
    }
    100% {
        transform: scale(1.25) rotate(360deg);
    }
}

/* Theme Toggle Icons */
.theme-toggle svg {
    transition: opacity 0.7s cubic-bezier(0.68, -0.55, 0.265, 1.55),
                transform 0.7s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.theme-toggle:hover .sun-icon {
    animation: sunMorph 1.5s cubic-bezier(0.68, -0.55, 0.265, 1.55) infinite;
}

.theme-toggle:hover .moon-icon {
    animation: moonMorph 1.5s cubic-bezier(0.68, -0.55, 0.265, 1.55) infinite;
}

@keyframes sunMorph {
    0%, 100% {
        transform: rotate(0deg) scale(1);
    }
    50% {
        transform: rotate(360deg) scale(1.2);
    }
}

@keyframes moonMorph {
    0%, 100% {
        transform: rotate(0deg) scale(1);
    }
    50% {
        transform: rotate(-360deg) scale(1.2);
    }
}

/* Theme Toggle Button Rotation on Click */
.theme-toggle:active {
    animation: buttonMorph 0.8s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

@keyframes buttonMorph {
    0% {
        transform: rotate(0deg) scale(1);
    }
    50% {
        transform: rotate(360deg) scale(1.25);
    }
    100% {
        transform: rotate(720deg) scale(1);
    }
}
