/* Sticky call-to-action (spec 2026-10-11 section 6). Reads only theme tokens. */
.smx-sticky { position: fixed; right: 24px; bottom: 24px; z-index: 998; transition: opacity .2s, transform .2s, visibility 0s linear 0s; }
.smx-sticky[hidden] { display: none; }
/* Away: fade out, then leave the tab order and the accessibility tree once the fade has ended. */
.smx-sticky.is-away {
    opacity: 0; transform: translateY(12px); pointer-events: none; visibility: hidden;
    transition: opacity .2s, transform .2s, visibility 0s linear .2s;
}
.smx-sticky__btn {
    display: inline-block; padding: .85em 1.4em; text-decoration: none;
    background: var(--smx-sticky-bg); color: var(--smx-sticky-text);
    border: var(--smx-btn-border); border-radius: var(--smx-radius-btn);
    box-shadow: var(--smx-btn-shadow), 0 6px 18px rgba(0, 0, 0, .18);
    font-family: var(--smx-font-heading); font-weight: var(--smx-heading-weight);
    text-transform: var(--smx-btn-case); letter-spacing: var(--smx-heading-tracking);
}
.smx-sticky__btn:focus-visible { outline: 3px solid var(--smx-sticky-text); outline-offset: 3px; }
body.smx-sticky-on .back-to-top { bottom: 96px; }
@media (max-width: 576px) {
    .smx-sticky { left: 0; right: 0; bottom: 0; }
    .smx-sticky__btn { display: block; text-align: center; border-radius: 0; border-width: 0; padding: 1em 1em calc(1em + env(safe-area-inset-bottom, 0px)); box-shadow: 0 -4px 14px rgba(0, 0, 0, .15); }
    /* A full-width bar at bottom: 0 has no room outside it, so the ring goes inside. */
    .smx-sticky__btn:focus-visible { outline-offset: -4px; }
    body.smx-sticky-on .back-to-top { bottom: 76px; }
}
@media (prefers-reduced-motion: reduce) {
    .smx-sticky, .smx-sticky.is-away { transition: none; }
    .smx-sticky.is-away { transform: none; }
}
