.narahaBackToTop {
    position: fixed;
    z-index: 9000;
    right: clamp(14px, 2.4vw, 42px);
    bottom: clamp(16px, 2.4vw, 38px);
    width: 76px;
    height: 76px;
    padding: 0;
    display: grid;
    place-content: center;
    gap: 6px;
    border: 1px solid rgba(88, 163, 160, .35);
    border-radius: 50%;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 8px 28px rgba(50, 82, 79, .16);
    color: #559d9a;
    cursor: pointer;
    opacity: 0;
    pointer-events: none;
    transform: translateY(14px);
    transition: opacity .25s ease, transform .25s ease, color .2s ease, background-color .2s ease;
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}

.narahaBackToTop.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

.narahaBackToTop:hover {
    background: #559d9a;
    color: #fff;
}

.narahaBackToTop__arrow {
    width: 13px;
    height: 13px;
    margin: 4px auto 0;
    border-top: 2px solid currentColor;
    border-left: 2px solid currentColor;
    transform: rotate(45deg);
}

.narahaBackToTop__text {
    font-family: "fot-tsukuardgothic-std", "Noto Sans JP", sans-serif;
    font-size: 9px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .12em;
}

@media (max-width: 767px) {
    .narahaBackToTop {
        right: 12px;
        bottom: 78px;
        width: 58px;
        height: 58px;
        gap: 3px;
    }

    .narahaBackToTop__arrow {
        width: 11px;
        height: 11px;
    }

    .narahaBackToTop__text { font-size: 7px; }
}

@media (prefers-reduced-motion: reduce) {
    .narahaBackToTop { transition: none; }
}
