/* Nurkowanie w kafelek usługi — homepage → podstrona */
.service-dive {
  position: fixed;
  inset: 0;
  z-index: 13000;
  pointer-events: all;
  overflow: hidden;
  background: var(--dive-bg, #060606);
}
.service-dive__portal {
  position: fixed;
  z-index: 3;
  overflow: hidden;
  border-radius: 14px;
  transform-origin: center center;
  will-change: left, top, width, height, border-radius, transform;
  transition:
    left 0.82s cubic-bezier(0.32, 0.72, 0.18, 1),
    top 0.82s cubic-bezier(0.32, 0.72, 0.18, 1),
    width 0.82s cubic-bezier(0.32, 0.72, 0.18, 1),
    height 0.82s cubic-bezier(0.32, 0.72, 0.18, 1),
    border-radius 0.72s cubic-bezier(0.32, 0.72, 0.18, 1),
    transform 0.82s cubic-bezier(0.32, 0.72, 0.18, 1),
    opacity 0.5s ease;
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.55);
}
.service-dive__portal .services-fan__card-media,
.service-dive__portal video,
.service-dive__portal img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.service-dive__portal .services-fan__card-liquid {
  position: absolute;
  inset: 0;
}
.service-dive.is-expanding .service-dive__portal {
  left: 0 !important;
  top: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  border-radius: 0;
  transform: scale(1.02);
  box-shadow: none;
}
.service-dive.is-sinking .service-dive__portal {
  opacity: 0;
  transform: scale(1.08);
}
.service-dive__fill {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: var(--dive-bg, #060606);
  opacity: 0;
  transition: opacity 0.55s ease 0.28s;
}
.service-dive.is-expanding .service-dive__fill,
.service-dive.is-sinking .service-dive__fill {
  opacity: 1;
}
.service-dive__ripple {
  position: fixed;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.35s ease 0.42s;
}
.service-dive.is-expanding .service-dive__ripple {
  opacity: 1;
}

/* Wejście na podstronę usługi */
.service-dive-enter {
  position: fixed;
  inset: 0;
  z-index: 13000;
  pointer-events: none;
  background: var(--service-bg, #060606);
  opacity: 1;
  visibility: visible;
}
.service-dive-enter__ripple {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.service-dive-enter.is-revealing {
  animation: service-dive-fade-out 0.75s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}
@keyframes service-dive-fade-out {
  from { opacity: 1; }
  to { opacity: 0; visibility: hidden; }
}

html.reduce-motion .service-dive,
html.reduce-motion .service-dive-enter {
  display: none !important;
}
