/* ==========================================================================
   Component — scroll-to-top button with scroll-progress ring (all pages)
   Markup: resources/views/layouts/partials/footer.blade.php
   Script: public/frontend/assets/js/components/scroll-top.js
   ========================================================================== */

.wb-scroll-top {
  --wb-scroll-progress: 0;          /* 0 → 1, set by scroll-top.js */
  --wb-scroll-size: 56px;
  --wb-scroll-accent: #ED194E;

  position: fixed;
  left: 24px;
  bottom: 24px;
  z-index: 998;                     /* under the header (999) and the mobile menu (1000) */
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--wb-scroll-size);
  height: var(--wb-scroll-size);
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(14, 7, 32, .85);
  -webkit-backdrop-filter: blur(12px);
          backdrop-filter: blur(12px);
  box-shadow: 0 14px 30px -12px rgba(14, 7, 32, .6);
  color: #FFFFFF;
  cursor: pointer;

  /* hidden until the page is scrolled */
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity .3s ease, transform .3s ease, visibility .3s, background-color .25s ease;
}

.wb-scroll-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.wb-scroll-top:hover {
  background: var(--wb-scroll-accent);
}

.wb-scroll-top:focus-visible {
  outline: 2px solid #FFFFFF;
  outline-offset: 3px;
}

/* ---------- Progress ring ---------- */

.wb-scroll-top__ring {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);        /* start the ring at 12 o'clock */
}

.wb-scroll-top__track,
.wb-scroll-top__progress {
  fill: none;
  stroke-width: 3;
}

.wb-scroll-top__track {
  stroke: rgba(255, 255, 255, .16);
}

.wb-scroll-top__progress {
  stroke: var(--wb-scroll-accent);
  stroke-linecap: round;
  /* pathLength-free: circumference of r=25 ≈ 157.08 */
  stroke-dasharray: 157.08;
  stroke-dashoffset: calc(157.08 * (1 - var(--wb-scroll-progress)));
  transition: stroke-dashoffset .1s linear, stroke .25s ease;
}

.wb-scroll-top:hover .wb-scroll-top__progress {
  stroke: #FFFFFF;
}

.wb-scroll-top__arrow {
  position: relative;
  transition: transform .25s ease;
}

.wb-scroll-top:hover .wb-scroll-top__arrow {
  transform: translateY(-2px);
}

/* ---------- Responsive ---------- */

@media (max-width: 575.98px) {
  .wb-scroll-top {
    --wb-scroll-size: 48px;
    left: 16px;
    bottom: 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .wb-scroll-top,
  .wb-scroll-top__progress,
  .wb-scroll-top__arrow {
    transition: none;
  }
}
