/* Fast Privacy banner – v2.1 Elite */
:root{
  --fp-accent:#0a66c2;--fp-bg:#fff;--fp-bg-opacity:1;--fp-fg:#111827;--fp-link:#0a66c2;--fp-border:#e5e7eb;
  --fp-radius:14px;--fp-padding:22px;--fp-maxw:760px;--fp-btn-radius:10px;
  --fp-font:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;--fp-fs:14px;--fp-fw:400;--fp-lh:1.55;--fp-ls:0;
  --fp-shadow:0 10px 40px rgba(0,0,0,.12);
  --fp-btn-p-bg:#0a66c2;--fp-btn-p-fg:#fff;--fp-btn-p-hover:#084d92;
  --fp-btn-s-bg:transparent;--fp-btn-s-fg:#111827;--fp-btn-s-hover:#f3f4f6;
  --fpc-bg:#0a66c2;--fpc-fg:#fff;--fpc-hover:#084d92;--fpc-size:48px;--fpc-w:48px;--fpc-h:48px;
  --fpc-radius:50%;--fpc-opacity:1;--fpc-shadow:0 6px 18px rgba(0,0,0,.18);--fpc-glow:none;--fpc-anim:none;
}
#fast-privacy-banner,#fast-privacy-prefs{
  position:fixed;z-index:99999;background:var(--fp-bg);color:var(--fp-fg);
  border-radius:var(--fp-radius);box-shadow:var(--fp-shadow);padding:var(--fp-padding);
  font-family:var(--fp-font);font-size:var(--fp-fs);font-weight:var(--fp-fw);
  line-height:var(--fp-lh);letter-spacing:var(--fp-ls);box-sizing:border-box;
  border:1px solid var(--fp-border);
}
#fast-privacy-banner.fp-bg-glass,#fast-privacy-prefs.fp-bg-glass{border:1px solid rgba(255,255,255,.18)}
#fast-privacy-banner{left:16px;right:16px;bottom:16px;max-width:var(--fp-maxw);margin:0 auto}
#fast-privacy-banner.fp-pos-top{top:16px;bottom:auto}
#fast-privacy-banner.fp-pos-center{top:50%;left:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);max-width:520px}
#fast-privacy-banner.fp-pos-floating{left:auto;right:24px;bottom:24px;max-width:420px}
#fast-privacy-banner.fp-pos-slide-left{left:24px;right:auto;bottom:24px;max-width:420px;animation:fp-in-l .35s ease}
#fast-privacy-banner.fp-pos-slide-right{left:auto;right:24px;bottom:24px;max-width:420px;animation:fp-in-r .35s ease}
@keyframes fp-in-l{from{transform:translateX(-30px);opacity:0}to{transform:none;opacity:1}}
@keyframes fp-in-r{from{transform:translateX(30px);opacity:0}to{transform:none;opacity:1}}
#fast-privacy-banner.fp-lay-bar{border-radius:0;left:0;right:0;bottom:0;max-width:100%;margin:0;padding:14px 22px}
#fast-privacy-banner.fp-lay-modal,#fast-privacy-banner.fp-lay-fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.45);border-radius:0;padding:0;max-width:none;box-shadow:none;border:0}
#fast-privacy-banner.fp-lay-modal>.fp-inner,#fast-privacy-banner.fp-lay-fullscreen>.fp-inner{background:var(--fp-bg);color:var(--fp-fg);border-radius:var(--fp-radius);padding:24px;max-width:540px;width:90%;box-shadow:var(--fp-shadow)}
#fast-privacy-banner.fp-lay-fullscreen>.fp-inner{max-width:780px;width:92%;padding:36px}
#fast-privacy-banner.fp-lay-sidebar{top:0;bottom:0;right:0;left:auto;width:380px;max-width:100%;border-radius:0;margin:0}
#fast-privacy-banner.fp-lay-popup{max-width:460px;left:50%;right:auto;bottom:24px;transform:translateX(-50%)}
#fast-privacy-prefs{top:5%;left:50%;transform:translateX(-50%);bottom:auto;max-width:580px;width:90%;max-height:90vh;overflow:auto}
.fp-hidden{display:none!important}
#fast-privacy-banner h2,#fast-privacy-prefs h2{margin:0 0 8px;font-size:calc(var(--fp-fs) + 3px);font-weight:700}
#fast-privacy-banner p{margin:0 0 14px;color:var(--fp-fg)}
.fp-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.fp-actions.fp-stack{flex-direction:column}.fp-actions.fp-stack .fp-btn{width:100%}
.fp-btn{appearance:none;border:0;border-radius:var(--fp-btn-radius);padding:10px 16px;font-family:inherit;font-weight:600;font-size:13px;cursor:pointer;transition:background .15s,filter .15s,color .15s}
.fp-btn:focus-visible{outline:2px solid var(--fp-accent);outline-offset:2px}
.fp-btn-primary{background:var(--fp-btn-p-bg);color:var(--fp-btn-p-fg)}
.fp-btn-primary:hover{background:var(--fp-btn-p-hover)}
.fp-btn-secondary{background:var(--fp-btn-s-bg);color:var(--fp-btn-s-fg);border:1px solid currentColor}
.fp-btn-secondary:hover{background:var(--fp-btn-s-hover)}
.fp-btn-link{background:transparent;color:var(--fp-link);padding:10px 8px;text-decoration:underline}
.fp-cat{border:1px solid var(--fp-border);border-radius:10px;padding:12px;margin:8px 0;background:rgba(0,0,0,.02)}
.fp-cat label{font-weight:600}
.fp-cat p{margin:4px 0 0;font-size:12.5px;opacity:.75}
.fp-th-dark{background:#0f172a;color:#e5e7eb}
.fp-th-dark .fp-cat{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1)}
.fp-logo{max-height:28px;margin-bottom:8px;display:block}
.fp-links{margin-top:8px;font-size:12px}
.fp-links a{color:var(--fp-link);text-decoration:underline;margin-right:10px}
@media (prefers-color-scheme: dark){.fp-th-auto{background:#0f172a;color:#e5e7eb}}

/* ===== Cookie reopen button ===== */
#fast-privacy-reopen{
  width:var(--fpc-w);height:var(--fpc-h);border-radius:var(--fpc-radius);border:0;
  background:var(--fpc-bg);color:var(--fpc-fg);cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  opacity:var(--fpc-opacity);box-shadow:var(--fpc-shadow);
  transition:background .2s,transform .2s,box-shadow .2s;
  padding:0;
}
#fast-privacy-reopen:hover{background:var(--fpc-hover);transform:translateY(-2px)}
#fast-privacy-reopen:focus-visible{outline:2px solid var(--fpc-fg);outline-offset:3px}
#fast-privacy-reopen svg{width:calc(var(--fpc-size) * .55);height:calc(var(--fpc-size) * .55);display:block}
#fast-privacy-reopen .fpc-img{width:calc(var(--fpc-size) * .6);height:calc(var(--fpc-size) * .6);object-fit:contain;display:block}
#fast-privacy-reopen.fpc-glow{box-shadow:var(--fpc-glow),var(--fpc-shadow)}

/* tooltip */
#fast-privacy-reopen.fpc-has-tip{position:fixed}
#fast-privacy-reopen.fpc-has-tip::after{
  content:attr(data-tip);position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(4px);
  background:#111827;color:#fff;font:500 12px/1.2 var(--fp-font);padding:6px 10px;border-radius:6px;white-space:nowrap;
  opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;
}
#fast-privacy-reopen.fpc-has-tip:hover::after,#fast-privacy-reopen.fpc-has-tip:focus-visible::after{opacity:1;transform:translateX(-50%) translateY(0)}

/* animations */
@keyframes fpc-bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes fpc-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
@keyframes fpc-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes fpc-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}
@keyframes fpc-glow-a{0%,100%{box-shadow:var(--fpc-shadow)}50%{box-shadow:var(--fpc-glow),var(--fpc-shadow)}}
#fast-privacy-reopen.fpc-anim-bounce{animation:fpc-bounce 1.8s ease-in-out infinite}
#fast-privacy-reopen.fpc-anim-pulse{animation:fpc-pulse 1.6s ease-in-out infinite}
#fast-privacy-reopen.fpc-anim-float{animation:fpc-float 3s ease-in-out infinite}
#fast-privacy-reopen.fpc-anim-shake{animation:fpc-shake .6s ease-in-out infinite}
#fast-privacy-reopen.fpc-anim-glow{animation:fpc-glow-a 2.2s ease-in-out infinite}
@media (prefers-reduced-motion: reduce){#fast-privacy-reopen{animation:none!important}}
