/* ============================================================
   Sitewide scroll reveals + micro-interactions · wave166
   ============================================================ */

.pw-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition:
    opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.pw-reveal.is-visible {
  opacity: 1;
  transform: none;
}

.pw-reveal-left {
  opacity: 0;
  transform: translateX(-32px);
  transition:
    opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.pw-reveal-left.is-visible {
  opacity: 1;
  transform: none;
}

.pw-reveal-right {
  opacity: 0;
  transform: translateX(32px);
  transition:
    opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.pw-reveal-right.is-visible {
  opacity: 1;
  transform: none;
}

.pw-reveal-scale {
  opacity: 0;
  transform: scale(0.96);
  transition:
    opacity 0.65s ease,
    transform 0.65s cubic-bezier(0.16, 1, 0.3, 1);
}

.pw-reveal-scale.is-visible {
  opacity: 1;
  transform: none;
}

/* Stagger children */
.pw-reveal-stagger > * {
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.pw-reveal-stagger.is-visible > *:nth-child(1) { transition-delay: 0.05s; }
.pw-reveal-stagger.is-visible > *:nth-child(2) { transition-delay: 0.12s; }
.pw-reveal-stagger.is-visible > *:nth-child(3) { transition-delay: 0.19s; }
.pw-reveal-stagger.is-visible > *:nth-child(4) { transition-delay: 0.26s; }
.pw-reveal-stagger.is-visible > *:nth-child(5) { transition-delay: 0.33s; }
.pw-reveal-stagger.is-visible > *:nth-child(6) { transition-delay: 0.4s; }

.pw-reveal-stagger.is-visible > * {
  opacity: 1;
  transform: none;
}

/* Trust strip entrance */
.pw-rehab-trust__item {
  opacity: 0;
  transform: translateY(16px);
  transition:
    opacity 0.55s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.55s cubic-bezier(0.16, 1, 0.3, 1);
}

.pw-rehab-trust.is-visible .pw-rehab-trust__item:nth-child(1) { transition-delay: 0.05s; }
.pw-rehab-trust.is-visible .pw-rehab-trust__item:nth-child(2) { transition-delay: 0.12s; }
.pw-rehab-trust.is-visible .pw-rehab-trust__item:nth-child(3) { transition-delay: 0.19s; }
.pw-rehab-trust.is-visible .pw-rehab-trust__item:nth-child(4) { transition-delay: 0.26s; }

.pw-rehab-trust.is-visible .pw-rehab-trust__item {
  opacity: 1;
  transform: none;
}

/* Scroll progress — home */
.page-home.page-jfi .pw-scroll-progress {
  display: block !important;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 99998;
  height: 3px;
  width: 0;
  background: linear-gradient(90deg, #B89558, #C9A86E, #E8DCC4);
  pointer-events: none;
}

/* Inner page section polish */
.page-inner .pj-journal-hero__title,
.page-inner .page-content h1 {
  animation: pwFadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes pwFadeUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.page-inner .site-footer {
  animation: none;
}

/* Button hover lift sitewide */
.pw-sl-btn,
.pw-header__cta,
.page-inner .btn {
  transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease !important;
}

.pw-sl-btn:hover,
.pw-header__cta:hover {
  transform: translateY(-2px);
}

@media (prefers-reduced-motion: reduce) {
  .pw-reveal,
  .pw-reveal-left,
  .pw-reveal-right,
  .pw-reveal-scale,
  .pw-reveal-stagger > *,
  .pw-rehab-trust__item {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .page-inner .pj-journal-hero__title {
    animation: none !important;
  }
}
