/* ==========================================
   ULTRAKIT SCROLL TO TOP — Premium
   ========================================== */

.ultrakit-stt-wrapper {
    --stt-accent: #6c5ce7;
    --stt-accent2: #fd79a8;
    --stt-s: 56px;
    --stt-x: 28px;
    --stt-y: 28px;
    --stt-z: 9970;
    position: fixed;
    bottom: var(--stt-y);
    z-index: var(--stt-z);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    box-sizing: border-box;
    transition: opacity 0.4s ease, transform 0.45s cubic-bezier(.2,.8,.2,1), visibility 0s linear 0.45s;
}
.ultrakit-stt-wrapper *, .ultrakit-stt-wrapper *::before, .ultrakit-stt-wrapper *::after { box-sizing: border-box; }
.stt-pos-bottom-right  { right: var(--stt-x); }
.stt-pos-bottom-left   { left: var(--stt-x); }
.stt-pos-bottom-center { left: 50%; margin-left: calc(var(--stt-s) / -2); }
.stt-pos-bottom-center.stt-has-label { margin-left: -40px; }

.ultrakit-stt-wrapper.is-visible { opacity: 1; visibility: visible; pointer-events: auto; transform: none !important; transition-delay: 0s; }

/* reveal (hidden state) */
.stt-reveal-slide  { transform: translateY(40px); }
.stt-reveal-zoom   { transform: scale(0.4); }
.stt-reveal-bounce { transform: translateY(60px); }
.stt-reveal-bounce.is-visible { animation: ultrakit-stt-bounce 0.7s cubic-bezier(.3,1.6,.5,1) both; }
@keyframes ultrakit-stt-bounce { 0% { transform: translateY(60px); } 60% { transform: translateY(-10px); } 100% { transform: translateY(0); } }

@media (max-width: 767px) { .stt-hide-mobile { display: none !important; } }

/* Elementor editor: stay in flow so it never covers the canvas */
.stt-editing { position: relative; inset: auto; bottom: auto; right: auto; left: auto; margin: 0 !important; display: inline-block; }

/* ---------- Button ---------- */
.ultrakit-stt-btn {
    position: relative;
    display: flex; align-items: center; justify-content: center; gap: 8px;
    width: var(--stt-s); height: var(--stt-s);
    padding: 0 !important; box-sizing: border-box;
    background: var(--stt-accent);
    color: var(--stt-ic, #ffffff) !important;
    border: none; border-radius: 50%;
    font-size: 13px; font-weight: 800; line-height: 1; letter-spacing: 0.4px;
    cursor: pointer;
    box-shadow: 0 10px 26px color-mix(in srgb, var(--stt-accent) 40%, transparent);
    transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
}
.stt-has-label .ultrakit-stt-btn { width: auto; min-width: var(--stt-s); padding: 0 20px 0 16px !important; border-radius: 50px; }
.stt-shape-rounded .ultrakit-stt-btn { border-radius: 18px; }
.stt-shape-square  .ultrakit-stt-btn { border-radius: 4px; }
.stt-has-label.stt-shape-rounded .ultrakit-stt-btn { border-radius: 18px; }
.stt-has-label.stt-shape-square .ultrakit-stt-btn  { border-radius: 4px; }

.ultrakit-stt-icon { position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: center; }
.ultrakit-stt-svg { width: calc(var(--stt-s) * 0.42) !important; height: calc(var(--stt-s) * 0.42) !important; max-width: 34px; max-height: 34px; flex-shrink: 0; display: block; }
.ultrakit-stt-label { position: relative; z-index: 1; }

/* ring */
.ultrakit-stt-ring { position: absolute; inset: 0; width: 100% !important; height: 100% !important; flex-shrink: 0; pointer-events: none; overflow: visible; }
.ultrakit-stt-ring-bg { stroke: rgba(255,255,255,0.28); }
.ultrakit-stt-ring-fg { stroke: #ffffff; transition: stroke-dashoffset 0.15s linear; }
.stt-shape-rounded .ultrakit-stt-ring, .stt-shape-square .ultrakit-stt-ring, .stt-has-label .ultrakit-stt-ring { display: none; }

/* ---------- Skins ---------- */
.stt-skin-gradient .ultrakit-stt-btn { background: linear-gradient(135deg, var(--stt-accent), var(--stt-accent2)); }
.stt-skin-outline .ultrakit-stt-btn { background: #ffffff; color: var(--stt-ic, var(--stt-accent)) !important; box-shadow: inset 0 0 0 2.5px var(--stt-accent), 0 8px 22px rgba(0,0,0,0.1); }
.stt-skin-outline .ultrakit-stt-ring-bg { stroke: color-mix(in srgb, var(--stt-accent) 20%, transparent); }
.stt-skin-outline .ultrakit-stt-ring-fg { stroke: var(--stt-accent); }
.stt-skin-glass .ultrakit-stt-btn { background: rgba(255,255,255,0.22); color: var(--stt-ic, var(--stt-accent)) !important; -webkit-backdrop-filter: blur(14px) saturate(160%); backdrop-filter: blur(14px) saturate(160%); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.55), 0 10px 28px rgba(0,0,0,0.14); }
.stt-skin-glass .ultrakit-stt-ring-bg { stroke: rgba(127,127,160,0.25); }
.stt-skin-glass .ultrakit-stt-ring-fg { stroke: var(--stt-accent); }
.stt-skin-dark .ultrakit-stt-btn { background: #1a1a2e; box-shadow: 0 10px 26px rgba(0,0,0,0.3); }
.stt-skin-dark .ultrakit-stt-ring-fg { stroke: var(--stt-accent); }
.stt-skin-neon .ultrakit-stt-btn { background: #0d0d1a; color: var(--stt-ic, var(--stt-accent)) !important; box-shadow: 0 0 0 2px var(--stt-accent), 0 0 22px color-mix(in srgb, var(--stt-accent) 65%, transparent), inset 0 0 14px color-mix(in srgb, var(--stt-accent) 25%, transparent); }
.stt-skin-neon .ultrakit-stt-ring { display: none; }
.stt-skin-neon .ultrakit-stt-btn:hover { box-shadow: 0 0 0 2px var(--stt-accent), 0 0 34px var(--stt-accent), inset 0 0 18px color-mix(in srgb, var(--stt-accent) 40%, transparent); }

/* ---------- Hover effects ---------- */
.stt-hover-lift .ultrakit-stt-btn:hover { transform: translateY(-5px); box-shadow: 0 16px 34px color-mix(in srgb, var(--stt-accent) 45%, transparent); }
.stt-hover-bounce .ultrakit-stt-btn:hover .ultrakit-stt-icon { animation: ultrakit-stt-nudge 0.7s ease infinite; }
@keyframes ultrakit-stt-nudge { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
.stt-hover-spin .ultrakit-stt-btn:hover .ultrakit-stt-icon { transform: rotate(360deg); transition: transform 0.6s ease; }
.stt-hover-bounce .ultrakit-stt-btn:hover, .stt-hover-spin .ultrakit-stt-btn:hover { transform: scale(1.06); }
.ultrakit-stt-btn:focus-visible { outline: 3px solid color-mix(in srgb, var(--stt-accent) 55%, transparent); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) { .ultrakit-stt-wrapper { transition-duration: 0.01s; } .stt-reveal-bounce.is-visible, .stt-hover-bounce .ultrakit-stt-btn:hover .ultrakit-stt-icon { animation: none; } }
