/* ============================================================
   Nuvlock – Animation & Interaction CSS
   ============================================================ */

/* ── Feature cards – smooth hover glow ── */
#funkcje .is-layout-grid .wp-block-group {
  transition: box-shadow 0.3s ease;
}
#funkcje .is-layout-grid .wp-block-group:hover {
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.12),
              0 8px 32px rgba(0, 0, 0, 0.35) !important;
}

/* ── Specyfikacja rows – subtle hover ── */
#specyfikacja .table-row {
  transition: background-color 0.2s ease;
}
#specyfikacja .table-row:hover {
  background-color: rgba(255, 255, 255, 0.04) !important;
}

/* ── Buttons – ripple on hover ── */
.wp-block-button__link {
  position: relative;
  overflow: hidden;
}
.wp-block-button__link::after {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  width: 0; height: 0;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: width 0.45s ease, height 0.45s ease, opacity 0.45s ease;
  opacity: 0;
  pointer-events: none;
}
.wp-block-button__link:hover::after {
  width: 320px;
  height: 320px;
  opacity: 1;
}

/* ── Images – subtle hover scale ── */
.wp-block-image img {
  transition: transform 0.4s ease;
}
.wp-block-image img:hover {
  transform: scale(1.015);
}

/* ── Float badges – above product image ── */
#intro .float-top,
#intro .float-bottom {
  will-change: transform;
  z-index: 100 !important;
  position: absolute !important;
  isolation: isolate;
}

/* Image must not create stacking context above badges */
#intro .wp-block-column.relative .wp-block-image {
  position: relative;
  z-index: 1;
}

#intro .wp-block-column.relative .wp-block-image img {
  position: relative;
  z-index: 1;
}

#aplikacja .float-top,
#aplikacja .float-bottom {
  will-change: transform;
  z-index: 10;
}

/* ── Scanline overlay – ONLY on #intro, no z-index children override ── */
#intro {
  position: relative;
}
#intro::before {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 3px,
    rgba(255, 255, 255, 0.012) 3px,
    rgba(255, 255, 255, 0.012) 4px
  );
  pointer-events: none;
  z-index: 0;
}

/* Intro direct children stay above scanline */
#intro > div {
  position: relative;
  z-index: 1;
}

/* ── Smooth scroll ── */
html {
  scroll-behavior: smooth;
}

/* ── Counter numbers – monospace feel ── */
#intro .features p,
#jakosc .is-layout-grid p {
  font-variant-numeric: tabular-nums;
}
