/* Rebelwrks Mobile Fixed Stack — July 6 final
   Purpose: replace unreliable mobile sticky behavior with deterministic scroll-driven panels.
   Scope: public homepage service/category stack only. No HQ/payment/database impact. */

/* July 6 finishing pass C: slower category marquee, stable thumb-zone CTAs. */
@keyframes rw-fixedstack-marquee-run {
  0% { transform: translate3d(0,0,0); -webkit-transform: translate3d(0,0,0); }
  100% { transform: translate3d(-50%,0,0); -webkit-transform: translate3d(-50%,0,0); }
}

@media (max-width: 1024px) {
  html.rw-mobile-fixedstack,
  html.rw-mobile-fixedstack body {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    background: #050505 !important;
    scroll-padding-top: var(--rw-fs-top, 132px) !important;
  }

  body.rw-mobile-fixedstack .lum-nav#mainNav,
  body.rw-mobile-fixedstack #mainNav.lum-nav,
  body.rw-mobile-fixedstack .lum-nav {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 2147483600 !important;
    transform: none !important;
    -webkit-transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    background: linear-gradient(180deg, rgba(5,5,5,.98), rgba(5,5,5,.90)) !important;
    border-bottom: 1px solid rgba(255,106,0,.24) !important;
    -webkit-backdrop-filter: blur(18px) saturate(150%) !important;
    backdrop-filter: blur(18px) saturate(150%) !important;
  }

  body.rw-mobile-fixedstack .nav-mobile,
  body.rw-mobile-fixedstack #navMobile {
    z-index: 2147483500 !important;
  }

  body.rw-mobile-fixedstack .lum-marquee {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 10px 0 !important;
    overflow: hidden !important;
    background: rgba(5,5,5,.965) !important;
    border-top: 1px solid rgba(255,106,0,.24) !important;
    border-bottom: 1px solid rgba(255,106,0,.34) !important;
    box-shadow: 0 12px 34px rgba(0,0,0,.42), 0 0 24px rgba(255,106,0,.10) !important;
    -webkit-backdrop-filter: blur(16px) saturate(145%) !important;
    backdrop-filter: blur(16px) saturate(145%) !important;
    transform: none !important;
    -webkit-transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    z-index: 2147482500 !important;
  }

  body.rw-mobile-fixedstack.rw-fs-marquee-fixed .lum-marquee {
    position: fixed !important;
    top: var(--rw-fs-nav-h, 78px) !important;
    left: 0 !important;
    right: 0 !important;
  }

  body.rw-mobile-fixedstack.rw-fs-after .lum-marquee {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  body.rw-mobile-fixedstack .lum-marquee .marquee-track {
    display: flex !important;
    align-items: center !important;
    width: max-content !important;
    min-width: max-content !important;
    will-change: transform !important;
    animation-name: rw-fixedstack-marquee-run !important;
    animation-duration: 56s !important;
    animation-timing-function: linear !important;
    animation-iteration-count: infinite !important;
    animation-play-state: running !important;
    -webkit-animation-name: rw-fixedstack-marquee-run !important;
    -webkit-animation-duration: 56s !important;
    -webkit-animation-timing-function: linear !important;
    -webkit-animation-iteration-count: infinite !important;
    -webkit-animation-play-state: running !important;
  }

  body.rw-mobile-fixedstack .lum-marquee .marquee-item {
    font-family: var(--font-display, 'Bebas Neue', Impact, sans-serif) !important;
    font-size: clamp(14px, 4vw, 20px) !important;
    line-height: 1 !important;
    letter-spacing: .15em !important;
    font-weight: 400 !important;
    padding: 0 26px !important;
    white-space: nowrap !important;
    color: rgba(245,242,236,.84) !important;
  }

  body.rw-mobile-fixedstack .lum-marquee .marquee-item:nth-child(odd) {
    color: #ff7a18 !important;
  }

  body.rw-mobile-fixedstack #rw-fixedstack-marquee-spacer {
    display: block !important;
    width: 100% !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: none !important;
  }

  body.rw-mobile-fixedstack.rw-fs-marquee-fixed #rw-fixedstack-marquee-spacer {
    height: var(--rw-fs-marquee-h, 42px) !important;
    min-height: var(--rw-fs-marquee-h, 42px) !important;
  }

  body.rw-mobile-fixedstack .svc-stack,
  body.rw-mobile-fixedstack.rw-final-mobile-services .svc-stack,
  body.rw-mobile-fixedstack.rw-native-service-stack .svc-stack,
  body.rw-mobile-fixedstack.rw-mobile-scroll-lock-v2 .svc-stack {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: var(--rw-fs-stack-h, auto) !important;
    min-height: var(--rw-fs-stack-h, auto) !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    contain: none !important;
    transform: none !important;
    -webkit-transform: none !important;
    perspective: none !important;
    isolation: isolate !important;
    background: #050505 !important;
    z-index: 1 !important;
  }

  body.rw-mobile-fixedstack .svc-stack .svc-panel:not(.svc-panel--cta),
  body.rw-mobile-fixedstack.rw-final-mobile-services .svc-stack .svc-panel:not(.svc-panel--cta),
  body.rw-mobile-fixedstack.rw-native-service-stack .svc-stack .svc-panel:not(.svc-panel--cta),
  body.rw-mobile-fixedstack.rw-mobile-scroll-lock-v2 .svc-stack .svc-panel:not(.svc-panel--cta) {
    position: absolute !important;
    top: var(--rw-fs-panel-y, 0px) !important;
    left: 0 !important;
    right: 0 !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: var(--rw-fs-panel-h, 720px) !important;
    min-height: var(--rw-fs-panel-h, 720px) !important;
    max-height: var(--rw-fs-panel-h, 720px) !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    contain: none !important;
    transform: none !important;
    -webkit-transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #050505 !important;
    z-index: var(--rw-fs-panel-z, 30) !important;
    will-change: transform !important;
  }

  body.rw-mobile-fixedstack.rw-fs-active .svc-stack .svc-panel:not(.svc-panel--cta).rw-fs-panel-fixed {
    position: fixed !important;
    top: var(--rw-fs-top, 120px) !important;
    left: 0 !important;
    right: 0 !important;
    height: var(--rw-fs-panel-h, 720px) !important;
    min-height: var(--rw-fs-panel-h, 720px) !important;
    max-height: var(--rw-fs-panel-h, 720px) !important;
    z-index: var(--rw-fs-panel-z, 40) !important;
    pointer-events: auto !important;
    transform: translate3d(0, var(--rw-fs-translate, 0px), 0) !important;
    -webkit-transform: translate3d(0, var(--rw-fs-translate, 0px), 0) !important;
  }

  body.rw-mobile-fixedstack.rw-fs-active .svc-stack .svc-panel:not(.svc-panel--cta).rw-fs-panel-hidden {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  body.rw-mobile-fixedstack .svc-stack .svc-panel:not(.svc-panel--cta) .svc-panel__right,
  body.rw-mobile-fixedstack .svc-stack .svc-panel:not(.svc-panel--cta) .svc-panel__img,
  body.rw-mobile-fixedstack .svc-stack .svc-panel:not(.svc-panel--cta) .svc-panel__overlay {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 0 !important;
    transform: none !important;
    -webkit-transform: none !important;
    pointer-events: none !important;
  }

  body.rw-mobile-fixedstack .svc-stack .svc-panel:not(.svc-panel--cta) .svc-panel__right { z-index: 1 !important; }

  body.rw-mobile-fixedstack .svc-stack .svc-panel:not(.svc-panel--cta) .svc-panel__img {
    background-image: var(--svc-img-mobile, var(--svc-img-desktop)) !important;
    background-size: cover !important;
    background-position: var(--svc-pos-mobile, center center) !important;
    background-repeat: no-repeat !important;
    opacity: 1 !important;
    filter: saturate(1.08) contrast(1.05) brightness(.84) !important;
    transition: none !important;
  }

  body.rw-mobile-fixedstack .svc-panel__img::before,
  body.rw-mobile-fixedstack .svc-panel__img::after {
    content: none !important;
    display: none !important;
  }

  body.rw-mobile-fixedstack .svc-stack .svc-panel:not(.svc-panel--cta) .svc-panel__overlay {
    z-index: 2 !important;
    background:
      linear-gradient(180deg, rgba(5,5,5,.14) 0%, rgba(5,5,5,.20) 34%, rgba(5,5,5,.86) 100%),
      radial-gradient(circle at 18% 20%, rgba(255,106,0,.18), transparent 40%) !important;
  }

  body.rw-mobile-fixedstack .svc-stack .svc-panel:not(.svc-panel--cta) .svc-panel__left {
    position: absolute !important;
    inset: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    align-items: flex-start !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
    margin: 0 !important;
    padding: clamp(44px, 6svh, 72px) clamp(20px, 6vw, 42px) calc(env(safe-area-inset-bottom, 0px) + 96px) !important;
    overflow: visible !important;
    border: 0 !important;
    background: linear-gradient(180deg, rgba(5,5,5,0) 0%, rgba(5,5,5,.54) 48%, #050505 92%) !important;
    color: #f5f2ec !important;
    z-index: 5 !important;
    transform: none !important;
    -webkit-transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: none !important;
  }

  body.rw-mobile-fixedstack .svc-panel__left::before,
  body.rw-mobile-fixedstack .svc-panel__left::after { content: none !important; display: none !important; }

  body.rw-mobile-fixedstack .svc-panel__num,
  body.rw-mobile-fixedstack .svc-panel__corner-label,
  body.rw-mobile-fixedstack .svc-panel__features,
  body.rw-mobile-fixedstack .svc-dots,
  body.rw-mobile-fixedstack .svc-progress,
  body.rw-mobile-fixedstack .svc-mobile-dots {
    display: none !important;
    visibility: hidden !important;
  }

  body.rw-mobile-fixedstack .svc-panel__eyebrow,
  body.rw-mobile-fixedstack .svc-panel__title,
  body.rw-mobile-fixedstack .svc-panel__desc,
  body.rw-mobile-fixedstack .svc-panel__cta {
    transform: none !important;
    -webkit-transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  body.rw-mobile-fixedstack .svc-panel__eyebrow {
    order: 1 !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
    color: rgba(245,242,236,.80) !important;
    font-size: 10px !important;
    line-height: 1 !important;
    letter-spacing: .32em !important;
    text-shadow: 0 2px 14px rgba(0,0,0,.80) !important;
  }

  body.rw-mobile-fixedstack .svc-panel__eyebrow::before { display: none !important; }

  body.rw-mobile-fixedstack .svc-panel__title {
    order: 2 !important;
    margin: 0 0 12px !important;
    max-width: 11ch !important;
    font-size: clamp(40px, 13.4vw, 72px) !important;
    line-height: .86 !important;
    letter-spacing: -.02em !important;
    color: #f5f2ec !important;
    text-shadow: 0 8px 30px rgba(0,0,0,.78) !important;
  }

  body.rw-mobile-fixedstack .svc-panel__desc {
    order: 3 !important;
    margin: 0 0 14px !important;
    max-width: min(88vw, 520px) !important;
    color: rgba(245,242,236,.86) !important;
    font-size: clamp(12.5px, 3.45vw, 15px) !important;
    line-height: 1.52 !important;
    text-shadow: 0 3px 18px rgba(0,0,0,.80) !important;
  }

  body.rw-mobile-fixedstack .svc-panel__cta {
    order: 4 !important;
    position: relative !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 132px !important;
    max-width: none !important;
    height: 46px !important;
    min-height: 46px !important;
    margin: 2px 0 0 !important;
    padding: 0 22px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255,195,90,.62) !important;
    background: linear-gradient(135deg, #ff4500 0%, #ff7a18 62%, #ffd36b 132%) !important;
    color: #050505 !important;
    box-shadow: 0 0 20px rgba(255,106,0,.25), 0 12px 30px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.28) !important;
    font-family: var(--font-sans, 'Montserrat', sans-serif) !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: .13em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    z-index: 10 !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
  }

  body.rw-mobile-fixedstack .svc-panel__cta::before { content: none !important; display: none !important; }
  body.rw-mobile-fixedstack .svc-panel__cta .svc-cta-text-full { display: inline !important; visibility: visible !important; font: inherit !important; letter-spacing: inherit !important; }
  body.rw-mobile-fixedstack .svc-panel__cta .svc-cta-text-mobile { display: none !important; visibility: hidden !important; }
  body.rw-mobile-fixedstack .svc-panel__cta i { margin-left: 8px !important; font-size: 9px !important; }

  body.rw-mobile-fixedstack .svc-panel--cta {
    position: absolute !important;
    top: var(--rw-fs-track-h, 8000px) !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    height: auto !important;
    min-height: 500px !important;
    padding: 84px 22px 90px !important;
    z-index: 80 !important;
    overflow: hidden !important;
    background: #050505 !important;
  }

  body.rw-mobile-fixedstack a,
  body.rw-mobile-fixedstack button,
  body.rw-mobile-fixedstack [role="button"],
  body.rw-mobile-fixedstack input[type="submit"] {
    touch-action: manipulation !important;
  }
}

@media (max-width: 390px) and (max-height: 760px) {
  body.rw-mobile-fixedstack .svc-stack .svc-panel:not(.svc-panel--cta) .svc-panel__left {
    padding-top: 38px !important;
    padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 82px) !important;
  }
  body.rw-mobile-fixedstack .svc-panel__title { font-size: clamp(36px, 12vw, 58px) !important; }
  body.rw-mobile-fixedstack .svc-panel__desc { font-size: 12px !important; line-height: 1.42 !important; }
}


@media (max-width: 480px) and (max-height: 680px) {
  body.rw-mobile-fixedstack .svc-stack .svc-panel:not(.svc-panel--cta) .svc-panel__left {
    padding-top: 30px !important;
    padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 70px) !important;
  }
  body.rw-mobile-fixedstack .svc-panel__eyebrow { margin-bottom: 7px !important; }
  body.rw-mobile-fixedstack .svc-panel__title { font-size: clamp(32px, 10.8vw, 50px) !important; margin-bottom: 9px !important; }
  body.rw-mobile-fixedstack .svc-panel__desc { font-size: 11.5px !important; line-height: 1.36 !important; margin-bottom: 10px !important; }
  body.rw-mobile-fixedstack .svc-panel__cta { height: 44px !important; min-height: 44px !important; }
}


/* July 6 finishing pass D: calmer ticker + better mobile thumb-zone CTA placement. */
@media (max-width: 1024px) {
  body.rw-mobile-fixedstack .lum-marquee .marquee-track {
    animation-duration: 56s !important;
    -webkit-animation-duration: 56s !important;
  }

  body.rw-mobile-fixedstack .svc-stack .svc-panel:not(.svc-panel--cta) .svc-panel__left {
    justify-content: flex-end !important;
    padding-top: clamp(34px, 5svh, 60px) !important;
    padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 148px) !important;
  }

  body.rw-mobile-fixedstack .svc-panel__title {
    margin-bottom: 10px !important;
  }

  body.rw-mobile-fixedstack .svc-panel__desc {
    margin-bottom: 12px !important;
    max-width: min(86vw, 500px) !important;
  }

  body.rw-mobile-fixedstack .svc-panel__cta {
    margin-top: 10px !important;
    min-width: 148px !important;
    height: 48px !important;
    min-height: 48px !important;
    padding: 0 24px !important;
    box-shadow: 0 0 24px rgba(255,106,0,.32), 0 16px 36px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.30) !important;
  }
}

@media (max-width: 390px) and (max-height: 760px) {
  body.rw-mobile-fixedstack .svc-stack .svc-panel:not(.svc-panel--cta) .svc-panel__left {
    padding-top: 28px !important;
    padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 118px) !important;
  }
  body.rw-mobile-fixedstack .svc-panel__desc {
    margin-bottom: 9px !important;
  }
}

@media (max-width: 480px) and (max-height: 680px) {
  body.rw-mobile-fixedstack .svc-stack .svc-panel:not(.svc-panel--cta) .svc-panel__left {
    padding-top: 24px !important;
    padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 98px) !important;
  }
  body.rw-mobile-fixedstack .svc-panel__cta {
    height: 44px !important;
    min-height: 44px !important;
  }
}
