/**
 * Go to Top Button Styles
 * Fixed scroll-to-top button with smooth animations
 */

/* Go to Top Button */
.go-to-top {
    position: fixed;
    bottom: var(--space-lg);
    right: var(--space-lg);
    display: none;
    z-index: var(--z-go-to-top);
    width: 60px;
    height: 60px;
    background-color: var(--color-primary);
    opacity: 0.95;
    border-radius: var(--radius-full);
    box-shadow: var(--shadow-md);
    transition: transform var(--transition-base),
                background-color var(--transition-base),
                opacity var(--transition-base),
                box-shadow var(--transition-base);
    cursor: pointer;
}

/* CSS Arrow Icon - replaces PNG */
.go-to-top::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 12px;
    height: 12px;
    border-top: 3px solid var(--text-white);
    border-right: 3px solid var(--text-white);
    transform: translate(-50%, -30%) rotate(-45deg);
    transition: transform var(--transition-base);
}

/* Hide image if it exists (for backward compatibility) */
.go-to-top img {
    display: none;
}

.go-to-top:hover {
    background-color: var(--color-primary-dark);
    opacity: 1;
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
}

.go-to-top:hover::before {
    transform: translate(-50%, -35%) rotate(-45deg);
}

.go-to-top:active {
    transform: translateY(-2px) scale(0.95);
    box-shadow: var(--shadow-md);
}

.go-to-top:focus-visible {
    outline: 3px solid var(--color-primary);
    outline-offset: 3px;
}

/* Animation for smooth entrance with pulse */
.go-to-top.show {
    animation: fadeInPulse 0.5s ease;
}

@keyframes fadeInPulse {
    0% {
        opacity: 0;
        transform: translateY(50px) scale(0.8);
    }
    70% {
        opacity: 1;
        transform: translateY(0) scale(1.05);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Subtle continuous pulse when idle */
@keyframes subtlePulse {
    0%, 100% {
        box-shadow: var(--shadow-md);
        transform: scale(1);
    }
    50% {
        box-shadow: 0 8px 25px rgba(40, 167, 69, 0.4);
        transform: scale(1.02);
    }
}

/* Apply pulse animation after 2 seconds of being visible */
.go-to-top.show {
    animation: fadeInPulse 0.5s ease, subtlePulse 2s ease-in-out 2s infinite;
}

/* Responsive Adjustments */
@media (max-width: 768px) {
    .go-to-top {
        bottom: var(--space-md);
        right: var(--space-md);
        width: 50px;
        height: 50px;
    }

    .go-to-top::before {
        width: 10px;
        height: 10px;
        border-width: 2.5px;
    }
}
