/**
 * DarmMut – „Nach oben“-Button
 */
.darmmut-scroll-top {
    --darmmut-scroll-extra-offset: 0px;
    -webkit-appearance: none;
    appearance: none;
    position: fixed;
    right: 22px;
    bottom: 22px;
    bottom: calc(max(22px, env(safe-area-inset-bottom)) + var(--darmmut-scroll-extra-offset));
    z-index: 99990;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    margin: 0;
    padding: 0;
    border: 2px solid rgba(255, 255, 255, 0.82);
    border-radius: 18px;
    background: linear-gradient(145deg, #7c3aed 0%, #5b21b6 100%);
    color: #ffffff;
    box-shadow: 0 14px 34px rgba(29, 10, 56, 0.30), 0 4px 12px rgba(29, 10, 56, 0.20);
    font: inherit;
    line-height: 1;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate3d(0, 18px, 0) scale(0.92);
    transition: opacity 180ms ease, visibility 180ms ease, transform 180ms ease, background-color 160ms ease, color 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
    isolation: isolate;
}

.darmmut-scroll-top.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate3d(0, 0, 0) scale(1);
}

.darmmut-scroll-top svg {
    display: block;
    width: 25px;
    height: 25px;
    transition: transform 160ms ease;
}

.darmmut-scroll-top::after {
    content: attr(data-label);
    position: absolute;
    top: 50%;
    right: calc(100% + 11px);
    z-index: -1;
    width: max-content;
    max-width: 150px;
    padding: 8px 11px;
    border-radius: 9px;
    background: #160b2b;
    color: #ffffff;
    box-shadow: 0 8px 20px rgba(22, 11, 43, 0.22);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.01em;
    opacity: 0;
    visibility: hidden;
    transform: translate(7px, -50%);
    transition: opacity 150ms ease, visibility 150ms ease, transform 150ms ease;
    pointer-events: none;
    white-space: nowrap;
}

.darmmut-scroll-top:hover,
.darmmut-scroll-top:focus-visible {
    border-color: #7c3aed;
    background: #ffffff;
    color: #24103f;
    box-shadow: 0 16px 38px rgba(29, 10, 56, 0.30), 0 5px 14px rgba(29, 10, 56, 0.18);
    transform: translate3d(0, -3px, 0) scale(1.02);
}

.darmmut-scroll-top:hover svg,
.darmmut-scroll-top:focus-visible svg {
    transform: translateY(-2px);
}

.darmmut-scroll-top:hover::after,
.darmmut-scroll-top:focus-visible::after {
    opacity: 1;
    visibility: visible;
    transform: translate(0, -50%);
}

.darmmut-scroll-top:focus-visible {
    outline: 3px solid #fbbf24;
    outline-offset: 4px;
}

.darmmut-scroll-top:active {
    transform: translate3d(0, 0, 0) scale(0.97);
}

@media (max-width: 600px) {
    .darmmut-scroll-top {
        right: 15px;
        bottom: 15px;
        bottom: calc(max(15px, env(safe-area-inset-bottom)) + var(--darmmut-scroll-extra-offset));
        width: 50px;
        height: 50px;
        border-radius: 16px;
    }

    .darmmut-scroll-top svg {
        width: 22px;
        height: 22px;
    }

    .darmmut-scroll-top::after {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .darmmut-scroll-top,
    .darmmut-scroll-top svg,
    .darmmut-scroll-top::after {
        transition-duration: 0.01ms !important;
    }
}

@media print {
    .darmmut-scroll-top {
        display: none !important;
    }
}
