
            .lu-cookie-banner,
            .lu-cookie-banner * { box-sizing: border-box; }
            .lu-cookie-banner[hidden] { display: none; }

            /* Overlay — blocks the page until the user accepts */
            .lu-cookie-overlay {
                position: fixed;
                inset: 0;
                z-index: 2147483645;  /* one below the banner */
                pointer-events: auto;
                animation: lu-cookie-overlay-in .25s ease-out both;
            }
            .lu-cookie-overlay[hidden] { display: none; }
            /* Don't cover the WP admin bar */
            body.admin-bar .lu-cookie-overlay { top: 32px; }
            @media screen and (max-width: 782px) {
                body.admin-bar .lu-cookie-overlay { top: 46px; }
            }
            @keyframes lu-cookie-overlay-in {
                from { opacity: 0; }
                to   { opacity: 1; }
            }

            /* In force-consent mode the X close is hidden (must click accept) */
            .lu-cookie-banner[data-force-consent="1"] .lu-cookie-banner__close { display: none; }

            .lu-cookie-banner {
                position: fixed;
                z-index: 999999999999999;
                max-width: var(--lu-cookie-max-w, 440px);
                width: calc(100% - (var(--lu-cookie-edge, 16px) * 2));
                padding: 18px 20px;
                background: rgba(var(--lu-cookie-bg-rgb), var(--lu-cookie-bg-opacity, 0.75));
                color: var(--lu-cookie-text);
                border-radius: var(--lu-cookie-radius, 14px);
                box-shadow: 0 0 1px rgba(0,0,0,.7), 0 1px 3px rgba(0,0,0,.05);
                font-family: inherit;
                line-height: 1.5;
                outline: none;
                backdrop-filter: blur(20px);
                -webkit-backdrop-filter: blur(20px);
            }

            /* Position modifiers */
            .lu-cookie-banner--bottom-center { bottom: calc(var(--lu-cookie-edge, 16px) + var(--lu-cookie-wa-bottom, 0px)); left: 50%; transform: translateX(-50%); }
            .lu-cookie-banner--bottom-right  { bottom: calc(var(--lu-cookie-edge, 16px) + var(--lu-cookie-wa-bottom, 0px)); right: var(--lu-cookie-edge, 16px); }
            .lu-cookie-banner--bottom-left   { bottom: calc(var(--lu-cookie-edge, 16px) + var(--lu-cookie-wa-bottom, 0px)); left: var(--lu-cookie-edge, 16px); }
            .lu-cookie-banner--top-center    { top: var(--lu-cookie-edge, 16px); left: 50%; transform: translateX(-50%); }
            @media (max-width: 768px) { #lu-cookie-banner { --lu-cookie-wa-bottom: 85px; } }

            /* Text alignment modifiers */
            .lu-cookie-banner--align-right,
            .lu-cookie-banner--align-right-stacked  { text-align: right; }
            .lu-cookie-banner--align-center         { text-align: center; }
            .lu-cookie-banner--align-left,
            .lu-cookie-banner--align-left-stacked   { text-align: left; }

            /* Inline layout — single horizontal row, no title (bar style) */
            .lu-cookie-banner--layout-inline .lu-cookie-banner__title { display: none; }
            .lu-cookie-banner--layout-inline {
                display: flex;
                align-items: center;
                gap: 16px;
                flex-wrap: wrap;
            }
            .lu-cookie-banner--layout-inline .lu-cookie-banner__text {
                flex: 1 1 auto;
                min-width: 200px;
                margin: 0;
            }
            .lu-cookie-banner--layout-inline .lu-cookie-banner__text a {
                text-decoration: underline;
            }
            .lu-cookie-banner--layout-inline .lu-cookie-banner__text a:hover {
                text-decoration: none;
            }
            .lu-cookie-banner--layout-inline .lu-cookie-banner__actions {
                flex: 0 0 auto;
                margin: 0;
            }

            /* Inner color — single rule, low specificity */
            .lu-cookie-banner,
            .lu-cookie-banner .lu-cookie-banner__title,
            .lu-cookie-banner .lu-cookie-banner__text,
            .lu-cookie-banner .lu-cookie-banner__link {
                color: var(--lu-cookie-text);
            }
            .lu-cookie-banner .lu-cookie-banner__text a {
                text-decoration: underline;
            }
            .lu-cookie-banner .lu-cookie-banner__text a:hover {
                text-decoration: none;
            }

            .lu-cookie-banner__title {
                display: flex;
                align-items: center;
                gap: 8px;
                margin: 0 0 8px;
                font-size: 18px;
                font-weight: 700;
                line-height: 1.2;
            }
            .lu-cookie-banner__title span { line-height: 1; }
            .lu-cookie-banner--align-center        .lu-cookie-banner__title { justify-content: center; }
            .lu-cookie-banner--align-left          .lu-cookie-banner__title,
            .lu-cookie-banner--align-left-stacked  .lu-cookie-banner__title { justify-content: flex-end; }

            .lu-cookie-banner__title-icon {
                font-size: var(--lu-cookie-icon-size, 18px);
                line-height: 0;
            }
            .lu-cookie-banner__title-icon svg {
                width: var(--lu-cookie-icon-size, 18px);
                height: var(--lu-cookie-icon-size, 18px);
                display: block;
            }

            .lu-cookie-banner__text {
                margin: 0 0 10px;
                font-size: 14px;
                line-height: 1.2;
            }

            /* Actions row — buttons + link */
            .lu-cookie-banner__actions {
                display: flex;
                align-items: center;
                gap: 16px;
                flex-wrap: wrap;
            }
            .lu-cookie-banner--align-right  .lu-cookie-banner__actions { justify-content: flex-start; }
            .lu-cookie-banner--align-left   .lu-cookie-banner__actions { justify-content: flex-end; }

            /* Stacked variants — same column layout as center, but anchored to a side */
            .lu-cookie-banner--align-center        .lu-cookie-banner__actions,
            .lu-cookie-banner--align-right-stacked .lu-cookie-banner__actions,
            .lu-cookie-banner--align-left-stacked  .lu-cookie-banner__actions {
                flex-direction: column;
                gap: 10px;
            }
            .lu-cookie-banner--align-center        .lu-cookie-banner__actions { align-items: center; }
            .lu-cookie-banner--align-right-stacked .lu-cookie-banner__actions { align-items: flex-start; }
            .lu-cookie-banner--align-left-stacked  .lu-cookie-banner__actions { align-items: flex-end; }

            .lu-cookie-banner__accept {
                display: inline-flex;
                align-items: center;
                justify-content: center;
                padding: 10px 28px;
                min-width: 120px;
                font-family: inherit;
                font-size: 15px;
                font-weight: 600;
                line-height: 1.2;
                border: 0;
                border-radius: 999px;
                background: var(--lu-cookie-btn-bg);
                color: var(--lu-cookie-btn-text);
                cursor: pointer;
                outline: none;
                transition: filter .15s ease, transform .1s ease;
            }
            .lu-cookie-banner__accept:hover  { filter: brightness(0.92); }
            .lu-cookie-banner__accept:active { transform: scale(0.97); }

            .lu-cookie-banner__link {
                font-size: 13px;
                text-decoration: underline;
                opacity: 1;
            }

            /* Close button — top-left, FontAwesome icon */
            .lu-cookie-banner__close {
                position: absolute;
                top: 8px;
                left: 10px;
                width: 28px;
                height: 28px;
                display: inline-flex;
                align-items: center;
                justify-content: center;
                padding: 0;
                border: 0;
                background: transparent;
                color: var(--lu-cookie-text);
                font-size: 14px;
                line-height: 1;
                border-radius: 8px;
                cursor: pointer;
                outline: none;
                opacity: 0.5;
                transition: opacity .15s ease, background .15s ease;
            }
            .lu-cookie-banner__close:hover {
                opacity: 1;
                background: rgba(0,0,0,0.05);
            }

            /* Animation — always slides up from below */
            @media (prefers-reduced-motion: no-preference) {
                .lu-cookie-banner { animation: lu-cookie-banner-in .3s ease-out both; }
                @keyframes lu-cookie-banner-in {
                    from { opacity: 0; translate: 0 14px; }
                    to   { opacity: 1; translate: 0 0; }
                }
            }

            /* ── Mobile (≤ 600px) — compact layout ───────────────────────── */
            @media (max-width: 600px) {
                .lu-cookie-banner {
                    width: calc(100% - (var(--lu-cookie-edge, 8px) * 2));
                    max-width: none;
                    padding: 12px 14px;
                                    }

                .lu-cookie-banner__title {
                    gap: 6px;
                    margin: 0 0 4px;
                    font-size: 15px;
                }
                .lu-cookie-banner__title-icon { font-size: var(--lu-cookie-icon-size, 15px); }

                .lu-cookie-banner__text {
                    margin: 0 0 8px;
                    font-size: 12px;
                }

                .lu-cookie-banner__actions { gap: 12px; }

                .lu-cookie-banner__accept {
                    padding: 8px 20px;
                    min-width: 96px;
                    font-size: 14px;
                }

                .lu-cookie-banner__link { font-size: 12px; }

                .lu-cookie-banner__close {
                    top: 4px;
                    left: 6px;
                    width: 26px;
                    height: 26px;
                    font-size: 13px;
                }
            }

            /* ── Extra-small (≤ 380px) — phones in portrait, very tight ── */
            @media (max-width: 380px) {
                .lu-cookie-banner { padding: 10px 12px; }
                .lu-cookie-banner__title { font-size: 14px; }
                .lu-cookie-banner__text  { font-size: 12.5px; line-height: 1.35; }
                .lu-cookie-banner__accept { padding: 7px 18px; font-size: 13.5px; min-width: 88px; }
            }
        