    /* --- Promo Sticky Footer --- */
    .promo-sticky-footer {
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        background-color: #000; /* Black background */
        z-index: 99999;
        display: none; /* Hidden by default, shown by JS */
        align-items: center;
        justify-content: space-between; /* Pushes content left, controls right */
        padding: 5px 10px; /* Keep some padding for spacing */
        color: #fff; /* White text */
        box-shadow: 0 -2px 5px rgba(0,0,0,0.2);
        box-sizing: border-box;
    }

    .promo-sticky-footer.promo-visible {
        display: flex;
    }

    /* Slides Wrapper for Overlapping/Fading */
    .promo-slides-wrapper {
        flex-grow: 1;
        display: grid;
        grid-template-columns: 1fr;
        grid-template-rows: auto;
        position: relative;
        min-height: 50px; /* Ensure minimum height */
    }

    .promo-slide {
        grid-area: 1 / 1 / 2 / 2;
        display: flex;
        align-items: center;
        justify-content: space-between;
        opacity: 0;
        transition: opacity 0.5s ease-in-out;
        pointer-events: none;
        width: 100%;
        visibility: hidden; /* Hide completely when not active */
    }

    .promo-slide.active {
        opacity: 1;
        pointer-events: auto;
        z-index: 1;
        visibility: visible;
    }

    .promo-content-area {
        flex-grow: 1; /* Takes available space */
        display: flex;
        justify-content: center; /* Center images within this area */
        align-items: center;
        overflow: hidden; /* Prevent image overflow if needed */
        /* Cursor style is set inline via PHP */
    }

    .promo-content-area img {
        max-height: 50px; /* Adjust as needed */
        width: auto;
        /* display: block; */ /* REMOVED - Let specific classes control display */
        object-fit: contain; /* Ensure image scales nicely */
    }

    .promo-image-desktop,
    .promo-image-mobile {
        display: none; /* Hide both by default */
    }

    /* Container for timer inside the slide */
    .promo-controls-area-internal {
        display: flex;
        align-items: center;
        flex-shrink: 0; /* Prevent shrinking */
        margin-left: 10px;
    }

    /* Global controls (Close button) */
    .promo-global-controls {
        display: flex;
        align-items: center;
        flex-shrink: 0;
    }

    /* --- Countdown Timer --- */
    .promo-countdown-timer-container {
        margin: 0 15px 0 0; /* Space only to the left of timer */
        text-align: right;
        color: #fff; /* White text */
        font-size: 0.9em;
        white-space: nowrap;
    }
    .promo-countdown-label {
        display: block;
        font-size: 0.8em;
        margin-bottom: 2px;
        color: #ccc; /* Lighter gray/white text */
    }
    .promo-countdown-timer {
        font-weight: bold;
    }

    /* --- Close Buttons --- */
    .promo-close-trigger {
        background: none;
        border: none;
        font-size: 24px;
        cursor: pointer;
        padding: 0 5px; /* Reduced padding */
        line-height: 1;
        flex-shrink: 0;
        color: #fff; /* Default white for footer */
    }

    .promo-close-trigger.footer-close {
        background-color: rgba(255, 255, 255, 0.2); /* Semi-transparent white */
        color: #fff;
        font-size: 1.3rem; /* Adjusted size */
        width: 28px; /* Adjusted size */
        height: 28px;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        margin-left: 10px;
        padding: 0;
        transition: background-color 0.3s;
    }

    .promo-close-trigger.footer-close:hover,
    .promo-close-trigger.footer-close:active,
    .promo-close-trigger.footer-close:focus {
        background-color: rgba(255, 255, 255, 0.4); /* Lighter on hover */
        border: none;
        outline: none;
    }

    /* --- Popup Styles --- */
    #promo-overlay-popup {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%; /* Ensure overlay takes full height */
        background-color: rgba(0, 0, 0, 0.7);
        z-index: 100000;
        /* display: flex; */ /* REMOVED - Cannot use flex due to conflict */
        /* justify-content: center; */ /* REMOVED */
        /* align-items: center; */ /* REMOVED */
        padding: 15px; /* Keep padding for edge cases */
        box-sizing: border-box;
        opacity: 0; /* Start hidden for fade-in */
        visibility: hidden; /* Hide from accessibility tree when not visible */
        transition: opacity 0.3s ease-in-out, visibility 0s linear 0.3s; /* Fade transition */
    }

    #promo-overlay-popup.visible {
        opacity: 1;
        visibility: visible;
        transition: opacity 0.3s ease-in-out, visibility 0s linear 0s;
    }

    .promo-popup-content {
        background-color: #fff;
        padding: 0 0 25px;
        border-radius: 8px;
        /* position: relative; */ /* CHANGED */
        position: absolute; /* Use absolute positioning */
        top: 50%; /* Position top edge at center */
        left: 50%; /* Position left edge at center */
        transform: translate(-50%, -50%); /* Pull back by half width/height */
        text-align: center;
        max-width: 550px;
        width: 90%;
        max-height: 90vh;
        overflow-y: auto;
        box-shadow: 0 5px 15px rgba(0,0,0,0.3);
        color: #333;
        /* Cursor style for image is set inline via PHP */
    }

    /* Close button position needs to be relative to this absolutely positioned content */
    .promo-popup-content .promo-close-trigger.popup-close {
        position: absolute;
        top: 5px;
        right: 5px;
        font-size: 20px;
        font-weight: bold;
        color: #fff;
        background-color: rgba(0, 0, 0, 0.4);
        border-radius: 50%;
        width: 30px;
        height: 30px;
        line-height: 30px;
        text-align: center;
        padding: 0;
        transition: background-color 0.3s, color 0.3s;
        z-index: 10; /* Ensure it's above other popup content if needed */
    }
    .promo-popup-content .promo-close-trigger.popup-close:hover {
        background-color: rgba(0, 0, 0, 0.7);
        color: #fff;
    }

    .promo-popup-image {
        max-width: 100%;
        height: auto;
        display: block; /* Keep display block here for the image itself */
        margin: 0 auto; /* Removed bottom margin */
    }

    .promo-popup-content .promo-countdown-timer-container.popup-timer-container {
        margin-top: 15px; /* Space above countdown */
        margin-bottom: 10px; /* Reduced space below countdown */
        text-align: center;
    }
    .promo-popup-content .promo-countdown-timer-container {
        color: #333;
    }
    .promo-popup-content .promo-countdown-label {
        color: #666;
    }

    /* --- Copy Code Button --- */
    .promo-copy-close-button {
        display: inline-block;
        background-color: #007bff; /* Example blue */
        color: #fff;
        border: none;
        padding: 10px 20px;
        font-size: 1rem;
        font-weight: bold;
        border-radius: 5px;
        cursor: pointer;
        transition: background-color 0.3s;
        margin-top: 10px; /* Reduced space above button */
    }
    .promo-copy-close-button:hover {
        background-color: #0056b3; /* Darker blue on hover */
    }
    
    /* --- Popup Navigation (New) --- */
    .promo-popup-navigation {
        display: flex;
        align-items: center;
        justify-content: center;
        margin-top: 15px;
        gap: 10px;
    }
    
    /* Removed .popup-nav-arrow styles as they are no longer used */
    
    .popup-pagination-dots {
        display: flex;
        gap: 5px;
    }
    
    .popup-dot {
        width: 8px;
        height: 8px;
        background: #ccc;
        border-radius: 50%;
        cursor: pointer;
        transition: background 0.2s;
    }
    .popup-dot.active {
        background: #007bff;
    }

    .promo-popup-slide {
        display: none; /* Controlled by JS */
    }
    .promo-popup-slide.active {
        display: block;
        animation: fadeIn 0.3s;
    }
    
    @keyframes fadeIn {
        from { opacity: 0; }
        to { opacity: 1; }
    }


    /* --- Responsive Adjustments --- */
    @media (min-width: 768px) {
        .promo-image-desktop {
            display: block; /* Show desktop image */
        }
        /* Mobile image remains display: none (default) */
    }

    @media (max-width: 767px) {
        .promo-image-mobile {
            display: block; /* Show mobile image */
        }
        /* Desktop image remains display: none (default) */

        .promo-content-area img { /* Apply max-height only to the visible image on mobile */
             max-height: 80px;
        }
        .promo-controls-area {
             /* Stack timer and close button vertically if needed, or adjust margins */
        }
        .promo-countdown-timer-container {
            font-size: 0.8em;
            margin: 0 8px 0 0; /* Adjust margin */
        }
         .promo-close-trigger.footer-close {
             margin-left: 5px;
             width: 26px;
             height: 26px;
             font-size: 1.1rem; /* Slightly smaller X */
         }
        .promo-popup-content {
            padding: 0 0 20px; /* Adjust padding */
            width: 95%;
        }
        .promo-popup-content .promo-close-trigger.popup-close {
             width: 28px;
             height: 28px;
             line-height: 28px;
             font-size: 18px;
        }
        .promo-copy-close-button {
            padding: 8px 15px;
            font-size: 0.9rem;
        }
    }
