/* ============================================================
   NoirPlay V42 — Advertising Slots
   ============================================================ */

.np-ad-slot{
  position:relative;
  width:100%;
  min-width:0;
  display:grid;
  place-items:center;
  margin:18px auto;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--line) 88%,transparent);
  border-radius:15px;
  background:
    linear-gradient(135deg,rgba(255,255,255,.022),transparent 42%),
    color-mix(in srgb,var(--surface) 92%,transparent);
  box-shadow:0 12px 36px rgba(0,0,0,.08);
}
.np-ad-slot[hidden]{display:none!important}
.np-ad-label{
  position:absolute;
  z-index:2;
  top:7px;left:8px;
  padding:3px 6px;
  border:1px solid var(--line-soft);
  border-radius:5px;
  background:color-mix(in srgb,var(--surface) 88%,transparent);
  color:var(--muted-2);
  font-size:6px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
  backdrop-filter:blur(9px);
}
.np-ad-placeholder-inner{
  width:100%;
  min-height:90px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  padding:18px 12px 12px;
  text-align:center;
  background:
    radial-gradient(circle at 50% 0%,color-mix(in srgb,var(--red) 5%,transparent),transparent 54%);
}
.np-ad-placeholder-inner::before{
  content:"";
  width:24px;height:3px;
  margin-bottom:3px;
  border-radius:999px;
  background:color-mix(in srgb,var(--red) 45%,var(--line));
}
.np-ad-kicker{
  color:var(--muted-2);
  font-size:6px;
  font-weight:950;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.np-ad-placeholder-inner strong{
  color:var(--muted);
  font-size:9px;
  letter-spacing:.01em;
}
.np-ad-placeholder-inner small{
  color:var(--muted-2);
  font-size:7px;
}
.np-ad-placeholder-inner em{
  margin-top:2px;
  color:color-mix(in srgb,var(--muted-2) 72%,transparent);
  font-size:6px;
  font-style:normal;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.np-ad-slot[data-ad-type="image"]{
  min-height:0;
  background:#08090b;
}
.np-ad-image-link{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
}
.np-ad-slot[data-ad-type="image"] img{
  display:block;
  max-width:100%;
  height:auto;
  max-height:250px;
  object-fit:contain;
}
.np-ad-network-content{
  width:100%;
  min-height:90px;
  display:grid;
  place-items:center;
  overflow:hidden;
}

/* Placements */
.np-ad-home-top,
.np-ad-home-bottom,
.np-ad-video-top,
.np-ad-video-bottom{
  max-width:970px;
}
.np-ad-home-mid,
.np-ad-video-inline{
  max-width:728px;
}
.np-ad-video-sidebar{
  max-width:300px;
  min-height:250px;
  margin-top:14px;
  margin-bottom:0;
}
.np-ad-video-sidebar .np-ad-placeholder-inner{
  min-height:250px;
}

/* Keep ads separated from actual content/player */
.home-hero + .np-ad-slot{margin-top:20px}
.video-info-card + .np-ad-slot{margin-top:14px}
.watch-related-panel .np-ad-slot{
  border-radius:12px;
  box-shadow:none;
}

/* Ads must never compress the player */
.watch-main > .np-ad-slot{
  width:min(100%,728px);
}

@media(max-width:760px){
  .np-ad-slot{
    width:calc(100% - 20px);
    margin:12px auto;
    border-radius:12px;
  }
  .home-main > .np-ad-slot{
    width:100%;
  }
  .np-ad-placeholder-inner{
    min-height:100px;
    padding:17px 10px 11px;
  }
  .np-ad-video-top{
    margin-top:6px;
    margin-bottom:10px;
  }
  .np-ad-video-inline,
  .np-ad-video-bottom{
    width:calc(100% - 20px)!important;
  }
  /* Sidebar is hidden by the mobile watch layout; do not create an empty gap. */
  .np-ad-video-sidebar{display:none!important}
  body.np-mobile-player-expanded .np-ad-slot{display:none!important}
}

@media(prefers-reduced-motion:no-preference){
  .np-ad-slot-ready{
    animation:np-ad-enter .32s ease both;
  }
  @keyframes np-ad-enter{
    from{opacity:0;transform:translateY(5px)}
    to{opacity:1;transform:none}
  }
}
