/* Sad sections — creative motion · wave302 · load LAST */

.page-home.pw-hm-sad-animated #programmes .pw-pro-program--pro {
  opacity: 0;
  transform: translateY(28px) scale(0.98);
  transition:
    opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.65s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.35s ease,
    border-color 0.35s ease;
}

.page-home.pw-hm-sad-animated #programmes.hm-anim-in .pw-pro-program--pro {
  opacity: 1;
  transform: translateY(0) scale(1);
  transition-delay: var(--prog-delay, 0ms);
}

.page-home.pw-hm-sad-animated #programmes .pw-pro-program--pro:hover {
  transform: translateY(-8px) scale(1.01) !important;
}

.page-home.pw-hm-sad-animated #programmes .pw-pro-program__thumb::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, transparent 40%, rgba(255, 255, 255, 0.35) 50%, transparent 60%);
  transform: translateX(-120%);
  transition: transform 0.7s ease;
  pointer-events: none;
}

.page-home.pw-hm-sad-animated #programmes .pw-pro-program__thumb {
  position: relative;
  overflow: hidden;
}

.page-home.pw-hm-sad-animated #programmes .pw-pro-program--pro:hover .pw-pro-program__thumb::after {
  transform: translateX(120%);
}

.page-home.pw-hm-sad-animated .pw-hm-services-pro__stats li {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.5s ease, transform 0.5s ease;
  transition-delay: calc(var(--stat-i, 0) * 80ms + 120ms);
}

.page-home.pw-hm-sad-animated #programmes.hm-anim-in .pw-hm-services-pro__stats li {
  opacity: 1;
  transform: none;
}

.page-home.pw-hm-sad-animated .pw-hm-services-pro__stats strong {
  display: inline-block;
  animation: none;
}

.page-home.pw-hm-sad-animated #programmes.hm-anim-in .pw-hm-services-pro__stats li:nth-child(2) strong {
  animation: hm-gold-pulse 2.5s ease-in-out 0.8s infinite;
}

@keyframes hm-gold-pulse {
  0%,
  100% {
    color: #2d3238;
  }
  50% {
    color: #b89558;
  }
}

/* Mosaic */
.page-home.pw-hm-sad-animated .pw-hm-sad-mosaic__cell {
  opacity: 0;
  transform: translateY(24px) rotate(var(--tilt, 0deg));
  transition:
    opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.6s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.35s ease;
  transition-delay: calc(var(--i, 0) * 90ms + 100ms);
}

.page-home.pw-hm-sad-animated .pw-hm-sad-mosaic.hm-anim-in .pw-hm-sad-mosaic__cell {
  opacity: 1;
  transform: translateY(0) rotate(0deg);
}

.page-home.pw-hm-sad-animated .pw-hm-sad-mosaic__cell:nth-child(1) {
  --tilt: -1.2deg;
}
.page-home.pw-hm-sad-animated .pw-hm-sad-mosaic__cell:nth-child(2) {
  --tilt: 1deg;
}
.page-home.pw-hm-sad-animated .pw-hm-sad-mosaic__cell:nth-child(3) {
  --tilt: -0.8deg;
}
.page-home.pw-hm-sad-animated .pw-hm-sad-mosaic__cell:nth-child(4) {
  --tilt: 1.1deg;
}

.page-home.pw-hm-sad-animated .pw-hm-sad-mosaic__cell:hover {
  transform: translateY(-6px) scale(1.02) !important;
  box-shadow: 0 16px 36px rgba(45, 50, 56, 0.14);
}

.page-home.pw-hm-sad-animated .pw-hm-sad-mosaic__cell img {
  transition: transform 8s ease-out;
}

.page-home.pw-hm-sad-animated .pw-hm-sad-mosaic__cell:hover img {
  transform: scale(1.08);
}

/* Video strip + cards */
.page-home.pw-hm-sad-animated .pw-hm-sad-strip {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.page-home.pw-hm-sad-animated #videos.hm-anim-in .pw-hm-sad-strip {
  opacity: 1;
  transform: none;
}

.page-home.pw-hm-sad-animated .pw-hm-sad-strip__media {
  display: block;
  overflow: hidden;
  aspect-ratio: 21 / 8;
}

.page-home.pw-hm-sad-animated .pw-hm-sad-strip img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  will-change: transform;
  transition: transform 0.15s ease-out;
}

.page-home.pw-hm-sad-animated #videos .pw-vid-card {
  opacity: 0;
  transform: translateY(26px);
  transition:
    opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.65s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.35s ease;
  transition-delay: calc(var(--v, 0) * 120ms + 180ms);
}

.page-home.pw-hm-sad-animated #videos.hm-anim-in .pw-vid-card {
  opacity: 1;
  transform: none;
}

.page-home.pw-hm-sad-animated #videos .pw-vid-card:hover {
  transform: translateY(-6px) !important;
}

.page-home.pw-hm-sad-animated #videos .pw-vid-card__play {
  animation: hm-play-ring 2.2s ease-in-out infinite;
}

@keyframes hm-play-ring {
  0%,
  100% {
    box-shadow: 0 0 0 0 rgba(201, 168, 110, 0.45);
  }
  50% {
    box-shadow: 0 0 0 10px rgba(201, 168, 110, 0);
  }
}

.page-home.pw-hm-sad-animated #videos .pw-vid-card:hover .pw-vid-card__play {
  animation: none;
  transform: scale(1.08);
}

.page-home.pw-hm-sad-animated #videos .pw-media-pro__head {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.page-home.pw-hm-sad-animated #videos.hm-anim-in .pw-media-pro__head {
  opacity: 1;
  transform: none;
}

/* Banner + founder */
.page-home.pw-hm-sad-animated .pw-hm-banner-pro .pw-sl-banner__frame {
  opacity: 0;
  transform: translateY(18px) scale(0.98);
  transition: opacity 0.75s ease, transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}

.page-home.pw-hm-sad-animated .pw-hm-banner-pro.hm-anim-in .pw-sl-banner__frame {
  opacity: 1;
  transform: none;
}

.page-home.pw-hm-sad-animated .pw-hm-banner-pro .pw-sl-banner__btn {
  transition: transform 0.3s ease, background 0.3s ease;
}

.page-home.pw-hm-sad-animated .pw-hm-banner-pro .pw-sl-banner__btn:hover {
  transform: translateY(-2px);
}

.page-home.pw-hm-sad-animated .pw-hm-founder-pro .pw-hm-founder-strip__wrap {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.page-home.pw-hm-sad-animated .pw-hm-founder-pro.hm-anim-in .pw-hm-founder-strip__wrap {
  opacity: 1;
  transform: none;
}

.page-home.pw-hm-sad-animated .pw-hm-founder-strip__photo {
  transition: transform 0.45s ease, box-shadow 0.45s ease;
}

.page-home.pw-hm-sad-animated .pw-hm-founder-pro.hm-anim-in .pw-hm-founder-strip__photo {
  animation: hm-founder-float 5s ease-in-out infinite;
}

@keyframes hm-founder-float {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-4px);
  }
}

.page-home.pw-hm-sad-animated .pw-pro-programs__cta .pw-sl-btn {
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.page-home.pw-hm-sad-animated .pw-pro-programs__cta .pw-sl-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(201, 168, 110, 0.25);
}

.page-home.pw-hm-sad-animated #programmes .pw-pro-program--pro:nth-child(odd),
.page-home.pw-hm-sad-animated #programmes .pw-pro-program--pro:nth-child(even) {
  transform: translateY(28px) scale(0.98) !important;
}

.page-home.pw-hm-sad-animated #programmes.hm-anim-in .pw-pro-program--pro:nth-child(odd),
.page-home.pw-hm-sad-animated #programmes.hm-anim-in .pw-pro-program--pro:nth-child(even) {
  transform: translateY(0) scale(1) !important;
}

.page-home.pw-hm-sad-animated .pw-pro-program--pro.hm-tilt-active,
.page-home.pw-hm-sad-animated .pw-vid-card.hm-tilt-active,
.page-home.pw-hm-sad-animated .pw-hm-sad-mosaic__cell.hm-tilt-active {
  transform: translateY(-8px) rotateX(var(--hm-tilt-x, 0deg)) rotateY(var(--hm-tilt-y, 0deg)) scale(1.02) !important;
}

.page-home.pw-hm-sad-animated #programmes.hm-anim-in .pw-pro-programs__head {
  animation: hm-head-rise 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.page-home.pw-hm-sad-animated .pw-hm-sad-mosaic.hm-anim-in .pw-hm-sad-mosaic__head {
  animation: hm-head-rise 0.75s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes hm-head-rise {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.page-home.pw-hm-sad-animated #programmes.pw-hm-services-pro {
  position: relative;
  overflow: hidden;
}

.page-home.pw-hm-sad-animated #programmes.pw-hm-services-pro::after {
  content: "";
  position: absolute;
  width: 280px;
  height: 280px;
  right: -80px;
  top: 10%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201, 168, 110, 0.12), transparent 70%);
  animation: hm-orb-drift 14s ease-in-out infinite;
  pointer-events: none;
}

.page-home.pw-hm-sad-animated #videos.pw-hm-videos-pro {
  position: relative;
  overflow: hidden;
}

.page-home.pw-hm-sad-animated #videos.pw-hm-videos-pro::before {
  content: "";
  position: absolute;
  width: 240px;
  height: 240px;
  left: -60px;
  bottom: 8%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201, 168, 110, 0.1), transparent 70%);
  animation: hm-orb-drift 18s ease-in-out infinite reverse;
  pointer-events: none;
}

@keyframes hm-orb-drift {
  0%,
  100% {
    transform: translate(0, 0);
  }
  50% {
    transform: translate(-12px, 16px);
  }
}

.page-home.pw-hm-sad-animated .pw-hm-banner-pro .pw-sl-banner__bg {
  will-change: transform;
  transition: transform 0.12s ease-out;
}

.page-home.pw-hm-sad-animated .pw-hm-sad-mosaic__cell::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  opacity: 0;
  background: linear-gradient(135deg, rgba(201, 168, 110, 0.35), transparent 55%);
  transition: opacity 0.4s ease;
  pointer-events: none;
}

.page-home.pw-hm-sad-animated .pw-hm-sad-mosaic__cell:hover::before {
  opacity: 1;
}

.page-home.pw-hm-sad-animated #videos.hm-anim-in .pw-vid-card {
  animation: hm-vid-pop 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: calc(var(--v, 0) * 130ms + 200ms);
}

@keyframes hm-vid-pop {
  from {
    opacity: 0;
    transform: translateY(32px) scale(0.94);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-home.pw-hm-sad-animated .pw-hm-sad-strip img,
  .page-home.pw-hm-sad-animated #videos .pw-vid-card__play,
  .page-home.pw-hm-sad-animated .pw-hm-founder-pro.hm-anim-in .pw-hm-founder-strip__photo,
  .page-home.pw-hm-sad-animated #programmes.hm-anim-in .pw-hm-services-pro__stats li:nth-child(2) strong {
    animation: none !important;
  }

  .page-home.pw-hm-sad-animated #programmes .pw-pro-program--pro,
  .page-home.pw-hm-sad-animated .pw-hm-sad-mosaic__cell,
  .page-home.pw-hm-sad-animated #videos .pw-vid-card,
  .page-home.pw-hm-sad-animated .pw-hm-sad-strip,
  .page-home.pw-hm-sad-animated .pw-hm-banner-pro .pw-sl-banner__frame,
  .page-home.pw-hm-sad-animated .pw-hm-founder-pro .pw-hm-founder-strip__wrap {
    opacity: 1 !important;
    transform: none !important;
  }
}
