/* Home — Salon WOW animations + hover polish · wave156
   Uses animate.css 3.7.2 + WOW.js (same as digitalnest360 saloon demo) */

.page-home.page-jfi {
  --sl-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* WOW handles visibility — don't double-hide */
.page-home.page-jfi .wow {
  visibility: hidden;
}

.page-home.page-jfi .wow.animated {
  visibility: visible;
}

/* ---- About: floating secondary image ---- */
.pw-sl-about__float {
  animation: slFloat 6s ease-in-out infinite;
}

@keyframes slFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}

.pw-sl-about__main {
  overflow: hidden;
}

.pw-sl-about__main img {
  transition: transform 1.2s var(--sl-ease);
}

.pw-sl-about__visual.animated .pw-sl-about__main img {
  transform: scale(1);
}

/* ---- Services: connecting line + ring hover ---- */
.pw-sl-services__row::before {
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 1.2s var(--sl-ease) 0.4s;
}

.pw-sl-services__row:has(.pw-sl-svc.animated)::before {
  transform: scaleX(1);
}

.pw-sl-svc__ring {
  transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.45s ease;
}

.pw-sl-svc:hover .pw-sl-svc__ring {
  transform: translateY(-8px) scale(1.05);
  box-shadow: 0 20px 40px rgba(201, 168, 110, 0.18);
}

.pw-sl-svc__ring img {
  transition: transform 0.6s var(--sl-ease);
}

.pw-sl-svc:hover .pw-sl-svc__ring img {
  transform: scale(1.08);
}

/* ---- Banner / CTA parallax shells ---- */
.pw-sl-banner__bg,
.pw-sl-cta__bg {
  will-change: transform;
}

/* ---- Split photo clip ---- */
.pw-sl-split__photo {
  position: relative;
  overflow: hidden;
}

.pw-sl-split__photo img {
  transition: transform 1s var(--sl-ease);
}

.pw-sl-split__photo:hover img {
  transform: scale(1.04);
}

/* ---- FAQ smooth accordion ---- */
.pw-sl-main .pw-sl-faq__body {
  display: block !important;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  padding: 0 !important;
  transition: max-height 0.45s var(--sl-ease), opacity 0.35s ease, padding 0.45s var(--sl-ease);
}

.pw-sl-main .pw-sl-faq__item.is-open .pw-sl-faq__body {
  max-height: 280px;
  opacity: 1;
  padding: 0 0 18px !important;
}

.pw-sl-faq__btn svg {
  transition: transform 0.35s var(--sl-ease);
}

.pw-sl-faq__item.is-open .pw-sl-faq__btn svg {
  transform: rotate(180deg);
}

/* ---- Programme cards ---- */
.pw-sl-program {
  transition: transform 0.4s var(--sl-ease), box-shadow 0.4s ease, border-color 0.35s ease;
}

.pw-sl-program:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 40px rgba(201, 168, 110, 0.12);
}

/* ---- Founder ---- */
.pw-sl-founder__photo {
  transition: transform 0.45s var(--sl-ease), box-shadow 0.45s ease;
}

.pw-sl-founder__card:hover .pw-sl-founder__photo {
  transform: translateY(-6px);
  box-shadow: 0 24px 48px rgba(201, 168, 110, 0.15);
}

/* ---- Testimonials fade ---- */
.pw-sl-testimonials__slide blockquote,
.pw-sl-testimonials__slide cite {
  animation: none;
}

.pw-sl-testimonials__slide.is-active blockquote {
  animation: fadeInUp 0.8s var(--sl-ease) both;
}

.pw-sl-testimonials__slide.is-active cite {
  animation: fadeInUp 0.8s var(--sl-ease) 0.12s both;
}

/* ---- News cards ---- */
.pw-sl-news__card {
  transition: transform 0.4s var(--sl-ease), box-shadow 0.4s ease;
}

.pw-sl-news__card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 44px rgba(15, 23, 42, 0.12);
}

.pw-sl-news__img {
  overflow: hidden;
}

.pw-sl-news__img img {
  transition: transform 0.55s var(--sl-ease);
}

.pw-sl-news__card:hover .pw-sl-news__img img {
  transform: scale(1.06);
}

/* ---- Buttons shine ---- */
.pw-sl-btn {
  position: relative;
  overflow: hidden;
  transition: transform 0.3s var(--sl-ease), box-shadow 0.3s ease;
}

.pw-sl-btn:hover {
  transform: translateY(-3px);
}

.pw-sl-call__icon {
  animation: slCallPulse 2.5s ease-in-out infinite;
}

@keyframes slCallPulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.06); }
}

/* ---- Scroll progress ---- */
.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);
  pointer-events: none;
}

/* ---- Hero slide text — salon-style stagger on each slide ---- */
.pw-salon-hero__panel .pw-salon-hero__eyebrow,
.pw-salon-hero__panel .pw-salon-hero__title,
.pw-salon-hero__panel .pw-salon-hero__lead,
.pw-salon-hero__panel .pw-salon-hero__actions {
  animation: none;
}

.pw-salon-hero__panel.is-active .pw-salon-hero__script {
  animation: fadeInUp 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.1s both;
}

.pw-salon-hero__panel.is-active .pw-salon-hero__title {
  animation: fadeInUp 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.25s both;
}

.pw-salon-hero__panel.is-active .pw-salon-hero__lead {
  animation: fadeInUp 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.4s both;
}

.pw-salon-hero__panel.is-active .pw-salon-hero__actions {
  animation: fadeInUp 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.55s both;
}

/* ---- Premium programme cards ---- */
.pw-pro-program__icon {
  animation: slIconPulse 3s ease-in-out infinite;
}

.pw-pro-program.is-inview .pw-pro-program__icon {
  animation: slIconPop 0.6s cubic-bezier(0.16, 1, 0.3, 1) both;
  animation-delay: calc(var(--prog-delay, 0ms) + 120ms);
}

@keyframes slIconPop {
  from { transform: scale(0.6); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}

@keyframes slIconPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(201, 168, 110, 0); }
  50% { box-shadow: 0 0 0 8px rgba(201, 168, 110, 0.12); }
}

.pw-pro-program:hover .pw-pro-program__icon {
  animation: none;
}

.pw-salon-hero__bg {
  transition: opacity 1s ease-in-out, transform 6s linear;
}

.pw-salon-hero__bg.is-active {
  animation: heroKenBurns 6s linear forwards;
}

@keyframes heroKenBurns {
  from { transform: scale(1); }
  to { transform: scale(1.08); }
}

@media (prefers-reduced-motion: reduce) {
  .page-home.page-jfi .wow {
    visibility: visible !important;
  }

  .pw-sl-about__float,
  .pw-sl-call__icon,
  .pw-salon-hero__bg.is-active,
  .pw-salon-hero__panel.is-active * {
    animation: none !important;
  }

  .pw-sl-banner__bg,
  .pw-sl-cta__bg {
    transform: none !important;
  }
}
