/* =============================================================================
   lib/styles/components/back_to_top.css — Total Solutions
   ============================================================================= */

.back-to-top {
    position: fixed;
    /* Uses safe-area-inset to avoid overlapping iOS home indicators or mobile menus */
    bottom: calc(var(--space-8) + env(safe-area-inset-bottom, 0px));
    right: var(--space-8);
    z-index: var(--z-sticky, 200); /* Adjusted to match global z-index tokens */
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border: none;
    border-radius: var(--radius-pill); /* Adjusted to standard global token */
    background-color: var(--color-primary); /* Action Blue */
    color: var(--color-text-inverse); /* Crisp White */
    box-shadow: var(--shadow-md);
    cursor: pointer;

    /* Hidden State */
    opacity: 0;
    visibility: hidden;
    transform: translateY(1rem);
    pointer-events: none;

    /* Replaced legacy transitions with strict structural motion tokens */
    transition: opacity var(--motion-transition-reveal),
                transform var(--motion-transition-reveal),
                visibility var(--motion-transition-reveal),
                background-color var(--motion-transition-interactive),
                box-shadow var(--motion-transition-interactive);
}

.back-to-top--visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

.back-to-top:hover {
    background-color: var(--color-brand-trust-navy); /* Brand alignment */
    box-shadow: var(--shadow-lg);
    transform: translateY(-0.125rem); /* Subtle lift */
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
    .back-to-top {
        transition: opacity var(--motion-transition-reveal),
                    visibility var(--motion-transition-reveal);
        transform: none !important; /* Disable vertical sliding */
    }
    .back-to-top:hover {
        transform: none; /* Disable hover lift */
    }
}

.back-to-top:focus-visible {
    outline: var(--border-width-medium) solid var(--color-primary);
    outline-offset: 0.125rem;
}

.back-to-top__icon {
    font-size: 1.125rem;
    line-height: 1;
}

/* Adjust sizing for mobile devices */
@media (max-width: 48rem) {
    .back-to-top {
        bottom: calc(var(--space-6) + env(safe-area-inset-bottom, 0px));
        right: var(--space-6);
        width: 2.75rem;
        height: 2.75rem;
    }
    .back-to-top__icon {
        font-size: 1rem;
    }
}