/* Floating "back to top" arrow , appears once user scrolls past hero. */

.scroll-to-top {
    position: fixed;
    right: 3rem;
    bottom: 3rem;
    width: 5.6rem;
    height: 5.6rem;
    min-width: 48px;
    min-height: 48px;
    border-radius: 50%;
    background: var(--gradient-orange);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 50;
    opacity: 0;
    visibility: hidden;
    transform: translateY(1.2rem);
    transition:
        opacity var(--transition-default),
        visibility var(--transition-default),
        transform var(--transition-default),
        box-shadow var(--transition-default);
    box-shadow: 0 0.4rem 1.6rem rgba(255, 110, 48, 0.28);
    text-decoration: none;
}

/* GSAP ScrollTrigger toggles .header-dark on <header> when a
   data-header-nav="dark" section is in view , i.e. past the hero. */
body:has(.header.header-dark) .scroll-to-top {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.scroll-to-top:hover {
    transform: translateY(-0.4rem);
    box-shadow: 0 0.8rem 2.4rem rgba(255, 110, 48, 0.42);
}

.scroll-to-top svg {
    width: 2rem;
    height: 2rem;
    fill: var(--white);
    transition: transform var(--transition-fast);
}

.scroll-to-top:hover svg {
    transform: translateY(-0.2rem);
}

@media screen and (max-width: 967px) {
    .scroll-to-top {
        right: 2rem;
        bottom: 2rem;
        width: 4.8rem;
        height: 4.8rem;
    }
}

@media screen and (max-width: 650px) {
    .scroll-to-top {
        right: 1.6rem;
        bottom: 1.6rem;
        width: 4rem;
        height: 4rem;
        min-width: 40px;
        min-height: 40px;
    }

    .scroll-to-top svg {
        width: 1.6rem;
        height: 1.6rem;
    }
}
