/**
 * AdLogic Z-Index Hierarchy
 * 
 * Defines the stacking order for all ad formats
 * to ensure proper layering and prevent conflicts
 * 
 * Hierarchy (from lowest to highest):
 * 1. Display, Inline Video & Cube Ads: 1000-1999
 * 2. Sticky/Anchor Ads: 10000-10999  
 * 3. Floating Video: 20000-20999
 * 4. Interstitial: 2147483640-2147483647 (highest)
 * 
 * IMPORTANT: Each ad type's NoAdCode branding has the same z-index
 * as its container to maintain consistent layering.
 */

:root {
    /* Display Ads - Lowest layer */
    --adlogic-z-display-base: 1000;
    --adlogic-z-display-content: 1001;
    --adlogic-z-display-controls: 1002;
    --adlogic-z-display-branding: 1002; /* NoAdCode branding same as controls */
    
    /* Regular/Inline Video (non-floating) - Same as Display */
    --adlogic-z-video-regular-base: 1000;
    --adlogic-z-video-regular-content: 1001;
    --adlogic-z-video-regular-controls: 1002;
    --adlogic-z-video-regular-branding: 1002; /* NoAdCode branding */
    
    /* Cube Ads - Same as Display */
    --adlogic-z-cube-base: 1000;
    --adlogic-z-cube-content: 1001;
    --adlogic-z-cube-controls: 1002;
    --adlogic-z-cube-branding: 1002; /* NoAdCode branding */
    
    /* Sticky/Anchor Ads - Middle layer */
    --adlogic-z-sticky-base: 10000;
    --adlogic-z-sticky-content: 10001;
    --adlogic-z-sticky-controls: 10002;
    --adlogic-z-sticky-close: 10003;
    --adlogic-z-sticky-branding: 10002; /* NoAdCode branding */
    
    /* Floating Video - Higher than Sticky */
    --adlogic-z-video-floating-base: 20000;
    --adlogic-z-video-floating-content: 20001;
    --adlogic-z-video-floating-controls: 20002;
    --adlogic-z-video-floating-close: 20003;
    --adlogic-z-video-floating-branding: 20002; /* NoAdCode branding */
    
    /* Interstitial - Highest layer */
    --adlogic-z-interstitial-overlay: 2147483640;
    --adlogic-z-interstitial-container: 2147483641;
    --adlogic-z-interstitial-content: 2147483642;
    --adlogic-z-interstitial-controls: 2147483643;
    --adlogic-z-interstitial-close: 2147483644;
    --adlogic-z-interstitial-branding: 2147483643; /* NoAdCode branding */
}

/* Apply to Display Ads */
.adlogic-display-container {
    z-index: var(--adlogic-z-display-base) !important;
    position: relative; /* Create stacking context for children */
    isolation: isolate; /* Create new stacking context to contain children */
}

.adlogic-display-container .adlogic-container-close,
.adlogic-display-container .adlogic-container-branding {
    z-index: var(--adlogic-z-display-controls) !important;
}

/* NoAdCode branding for Display Ads - inherits from container */
.adlogic-display-container .noadcode-branding {
    /* z-index inherited from parent container */
    position: absolute; /* Use absolute positioning */
}

/* Apply to Cube Ads */
.adlogic-cube-scene,
.adlogic-cube-container {
    z-index: var(--adlogic-z-cube-base) !important;
    position: relative; /* Ensure z-index context */
    isolation: isolate; /* Create new stacking context to contain children */
}

.adlogic-cube-controls,
.adlogic-cube-control-bar {
    z-index: var(--adlogic-z-cube-controls) !important;
}

/* Cube NoAdCode branding - inherits from container */

/* Apply to Sticky Ads */
.adlogic-sticky-ad,
.adlogic-sticky-container {
    z-index: var(--adlogic-z-sticky-base) !important;
    position: relative;
    isolation: isolate; /* Create new stacking context to contain children */
}

.adlogic-sticky-ad .sticky-ad-close,
.adlogic-sticky-ad .adlogic-sticky-close,
.adlogic-sticky-container .adlogic-sticky-close,
.adlogic-sticky-container .adlogic-container-close {
    z-index: 2147483647 !important; /* Always above ad content */
    pointer-events: auto !important;
}

.adlogic-sticky-ad .sticky-ad-content {
    z-index: var(--adlogic-z-sticky-content) !important;
}

/* NoAdCode branding for Sticky Ads - inherits from container */
.adlogic-sticky-ad .noadcode-branding,
.adlogic-sticky-container .noadcode-branding {
    /* z-index inherited from parent container */
}

/* Apply to Regular/Inline Video (non-floating) */
.adlogic-video-container:not(.video-floating),
.adlogic-video-container:not(.floating),
.video-container:not(.floating) {
    z-index: var(--adlogic-z-video-regular-base) !important;
    position: relative;
    isolation: isolate; /* Create new stacking context to contain children */
}

/* Placement wrappers should also contain their children */
.adlogic-placement-wrapper {
    position: relative;
    isolation: isolate; /* Ensure each placement is isolated */
}

.adlogic-video-container:not(.video-floating) .video-close-btn,
.adlogic-video-container:not(.floating) .video-close-btn,
.video-container:not(.floating) .close-btn {
    z-index: var(--adlogic-z-video-regular-controls) !important;
}

/* NoAdCode branding for Regular/Inline Video - inherits from container */
.adlogic-video-container:not(.video-floating) .noadcode-branding,
.adlogic-video-container:not(.floating) .noadcode-branding,
.video-container:not(.floating) .noadcode-branding {
    /* z-index inherited from parent container */
}

/* Apply to Floating Video */
.adlogic-video-container.video-floating,
.adlogic-video-container.floating,
.video-container.floating,
.adlogic-outstream-floating {
    z-index: var(--adlogic-z-video-floating-base) !important;
    position: fixed;
    isolation: isolate; /* Create new stacking context to contain children */
}

.adlogic-video-container.video-floating .video-close-btn,
.adlogic-video-container.floating .video-close-btn,
.video-container.floating .close-floating-btn,
.adlogic-outstream-floating .video-close-btn {
    z-index: var(--adlogic-z-video-floating-close) !important;
}

/* NoAdCode branding for Floating Video - inherits from container */
.adlogic-video-container.video-floating .noadcode-branding,
.adlogic-video-container.floating .noadcode-branding,
.video-container.floating .noadcode-branding {
    /* z-index inherited from parent container */
}

/* Apply to Interstitial */
.adlogic-interstitial-overlay {
    z-index: var(--adlogic-z-interstitial-overlay) !important;
    position: fixed;
    isolation: isolate; /* Create new stacking context to contain children */
}

.adlogic-interstitial-container {
    z-index: var(--adlogic-z-interstitial-container) !important;
    position: relative;
    isolation: isolate; /* Create new stacking context to contain children */
}

.adlogic-interstitial-close {
    z-index: var(--adlogic-z-interstitial-close) !important;
}

/* NoAdCode branding for Interstitial - inherits from container */
.adlogic-interstitial-container .noadcode-branding,
.adlogic-interstitial-header .noadcode-branding {
    /* z-index inherited from parent container */
}

/* Ensure Google Ad Manager elements stay within their container's stacking context.
   IMPORTANT: Use 'auto' NOT 'inherit'. 'inherit' copies the container's z-index value
   (e.g., 2147483646) which makes the iframe sit ABOVE the close button within the
   same stacking context. 'auto' keeps them at the default level. */
.googlepublisherplugin,
div[id^="google_ads_iframe_"] {
    z-index: auto !important;
}

/* NoAdCode branding - NO z-index, contained within parent */
.noadcode-branding {
    /* No z-index - contained within parent's stacking context */
    position: absolute; /* Positioning for placement */
    z-index: auto !important; /* Explicitly auto to prevent any override */
}

/* Ensure NoAdCode branding in ALL ads cannot escape parent container */
.adlogic-display-container .noadcode-branding,
.adlogic-cube-container .noadcode-branding,
.adlogic-cube-scene .noadcode-branding,
.adlogic-video-container .noadcode-branding,
.video-container .noadcode-branding,
.adlogic-sticky-container .noadcode-branding,
.adlogic-sticky-ad .noadcode-branding,
.adlogic-interstitial-container .noadcode-branding,
.adlogic-placement-wrapper .noadcode-branding {
    z-index: auto !important; /* Must stay within parent's stacking context */
    position: absolute; /* Consistent positioning */
    top: -26px !important
}

/* Ensure ALL ad containers create isolated stacking contexts */
.adlogic-display-container,
.adlogic-cube-container,
.adlogic-cube-scene,
.adlogic-video-container,
.video-container,
.adlogic-sticky-container,
.adlogic-sticky-ad,
.adlogic-interstitial-container,
.adlogic-interstitial-overlay,
.adlogic-placement-wrapper {
    isolation: isolate !important; /* Force stacking context isolation */
}

/* Debug mode overlays should be on top of everything */
.adlogic-debug-overlay {
    z-index: 2147483647 !important;
}