/* ==========================================================================
   WBF Cookie Consent — Banner & Preferences Panel
   Brand: Plugery (configurable via --wbf-cc-accent)
   ========================================================================== */

:root {
  --wbf-cc-accent: #E8614D;
  --wbf-cc-accent-hover: #C4412E;
  --wbf-cc-radius: 12px;
  --wbf-cc-radius-sm: 8px;
  --wbf-cc-font: 'Satoshi', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --wbf-cc-mono: 'JetBrains Mono', 'Fira Code', monospace;
  --wbf-cc-z-banner: 999990;
  --wbf-cc-z-prefs: 999995;
  --wbf-cc-z-badge: 999980;
  --wbf-cc-transition: 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  --wbf-cc-bg: #FFFFFF;
  --wbf-cc-bg2: #F8FAFC;
  --wbf-cc-bg3: #F1F5F9;
  --wbf-cc-text: #0A0F1E;
  --wbf-cc-text2: #334155;
  --wbf-cc-text3: #64748B;
  --wbf-cc-border: #E2E8F0;
  --wbf-cc-shadow: 0 -4px 32px rgba(0, 0, 0, 0.08), 0 -1px 8px rgba(0, 0, 0, 0.04);
  --wbf-cc-overlay: rgba(0, 0, 0, 0.4);
}

@media (prefers-color-scheme: dark) {
  :root {
    --wbf-cc-bg: #131825;
    --wbf-cc-bg2: #1A2035;
    --wbf-cc-bg3: #0B0F1A;
    --wbf-cc-text: #E8ECF4;
    --wbf-cc-text2: #94A3B8;
    --wbf-cc-text3: #64748B;
    --wbf-cc-border: #1E2940;
    --wbf-cc-shadow: 0 -4px 32px rgba(0, 0, 0, 0.3), 0 -1px 8px rgba(0, 0, 0, 0.2);
    --wbf-cc-overlay: rgba(0, 0, 0, 0.6);
  }
}

.wbf-cc-theme-light { --wbf-cc-bg:#FFFFFF;--wbf-cc-bg2:#F8FAFC;--wbf-cc-bg3:#F1F5F9;--wbf-cc-text:#0A0F1E;--wbf-cc-text2:#334155;--wbf-cc-text3:#64748B;--wbf-cc-border:#E2E8F0;--wbf-cc-shadow:0 -4px 32px rgba(0,0,0,0.08),0 -1px 8px rgba(0,0,0,0.04); }
.wbf-cc-theme-dark { --wbf-cc-bg:#131825;--wbf-cc-bg2:#1A2035;--wbf-cc-bg3:#0B0F1A;--wbf-cc-text:#E8ECF4;--wbf-cc-text2:#94A3B8;--wbf-cc-text3:#64748B;--wbf-cc-border:#1E2940;--wbf-cc-shadow:0 -4px 32px rgba(0,0,0,0.3),0 -1px 8px rgba(0,0,0,0.2); }

.wbf-cc-banner { position:fixed;left:0;right:0;z-index:var(--wbf-cc-z-banner);font-family:var(--wbf-cc-font);color:var(--wbf-cc-text);animation:wbf-cc-slide-up 0.35s var(--wbf-cc-transition) both; }
.wbf-cc-banner--bottom { bottom:0;padding:0 16px 16px; }
.wbf-cc-banner--center { top:0;bottom:0;display:flex;align-items:center;justify-content:center;padding:16px;background:var(--wbf-cc-overlay); }
.wbf-cc-banner__inner { max-width:960px;margin:0 auto;background:var(--wbf-cc-bg);border:1px solid var(--wbf-cc-border);border-radius:var(--wbf-cc-radius);box-shadow:var(--wbf-cc-shadow);padding:20px 24px;display:flex;flex-wrap:wrap;align-items:center;gap:20px; }
.wbf-cc-banner__content { flex:1;min-width:280px;display:flex;gap:14px;align-items:flex-start; }
.wbf-cc-banner__icon { flex-shrink:0;color:var(--wbf-cc-accent);margin-top:2px; }
.wbf-cc-banner__title { font-size:15px;font-weight:600;margin:0 0 4px;color:var(--wbf-cc-text);line-height:1.3; }
.wbf-cc-banner__desc { font-size:13px;line-height:1.5;color:var(--wbf-cc-text2);margin:0; }
.wbf-cc-link { color:var(--wbf-cc-accent);text-decoration:underline;text-underline-offset:2px; }
.wbf-cc-link:hover { color:var(--wbf-cc-accent-hover); }
.wbf-cc-banner__actions { display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap; }

.wbf-cc-btn { font-family:var(--wbf-cc-font);font-size:13px;font-weight:600;padding:10px 20px;border-radius:var(--wbf-cc-radius-sm);border:1.5px solid transparent;cursor:pointer;transition:all var(--wbf-cc-transition);white-space:nowrap;line-height:1.2; }
.wbf-cc-btn--primary { background:var(--wbf-cc-accent);color:#FFFFFF;border-color:var(--wbf-cc-accent); }
.wbf-cc-btn--primary:hover { background:var(--wbf-cc-accent-hover);border-color:var(--wbf-cc-accent-hover); }
.wbf-cc-btn--secondary { background:var(--wbf-cc-bg2);color:var(--wbf-cc-text);border-color:var(--wbf-cc-border); }
.wbf-cc-btn--secondary:hover { background:var(--wbf-cc-bg3);border-color:var(--wbf-cc-text3); }
.wbf-cc-btn--outline { background:transparent;color:var(--wbf-cc-text2);border-color:var(--wbf-cc-border); }
.wbf-cc-btn--outline:hover { background:var(--wbf-cc-bg2);color:var(--wbf-cc-text); }

.wbf-cc-prefs { position:fixed;inset:0;z-index:var(--wbf-cc-z-prefs);font-family:var(--wbf-cc-font);color:var(--wbf-cc-text); }
.wbf-cc-prefs__overlay { position:absolute;inset:0;background:var(--wbf-cc-overlay);cursor:pointer;animation:wbf-cc-fade-in 0.2s ease both; }
.wbf-cc-prefs__panel { position:absolute;right:0;top:0;bottom:0;width:480px;max-width:100vw;background:var(--wbf-cc-bg);border-left:1px solid var(--wbf-cc-border);display:flex;flex-direction:column;animation:wbf-cc-slide-left 0.3s var(--wbf-cc-transition) both; }
.wbf-cc-prefs__header { display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--wbf-cc-border);flex-shrink:0; }
.wbf-cc-prefs__title { font-size:17px;font-weight:700;margin:0;color:var(--wbf-cc-text); }
.wbf-cc-prefs__close { background:none;border:none;color:var(--wbf-cc-text3);cursor:pointer;padding:4px;border-radius:6px;transition:all var(--wbf-cc-transition); }
.wbf-cc-prefs__close:hover { background:var(--wbf-cc-bg2);color:var(--wbf-cc-text); }
.wbf-cc-prefs__body { flex:1;overflow-y:auto;padding:20px 24px;-webkit-overflow-scrolling:touch; }
.wbf-cc-prefs__intro { font-size:13px;color:var(--wbf-cc-text2);line-height:1.6;margin:0 0 20px; }
.wbf-cc-prefs__footer { display:flex;gap:8px;padding:16px 24px;border-top:1px solid var(--wbf-cc-border);flex-shrink:0; }
.wbf-cc-prefs__footer .wbf-cc-btn { flex:1; }

.wbf-cc-category { border:1px solid var(--wbf-cc-border);border-radius:var(--wbf-cc-radius-sm);margin-bottom:12px;overflow:hidden; }
.wbf-cc-category__header { display:flex;align-items:center;justify-content:space-between;padding:14px 16px;gap:16px; }
.wbf-cc-category__name { font-size:14px;font-weight:600;margin:0 0 2px;color:var(--wbf-cc-text); }
.wbf-cc-category__desc { font-size:12px;color:var(--wbf-cc-text3);margin:0;line-height:1.4; }

.wbf-cc-switch { position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0; }
.wbf-cc-switch__input { opacity:0;width:0;height:0;position:absolute; }
.wbf-cc-switch__track { position:absolute;inset:0;background:var(--wbf-cc-border);border-radius:12px;cursor:pointer;transition:background var(--wbf-cc-transition); }
.wbf-cc-switch__track::after { content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;background:#FFFFFF;border-radius:50%;transition:transform var(--wbf-cc-transition);box-shadow:0 1px 3px rgba(0,0,0,0.15); }
.wbf-cc-switch__input:checked + .wbf-cc-switch__track { background:var(--wbf-cc-accent); }
.wbf-cc-switch__input:checked + .wbf-cc-switch__track::after { transform:translateX(20px); }
.wbf-cc-switch__input:focus-visible + .wbf-cc-switch__track { outline:2px solid var(--wbf-cc-accent);outline-offset:2px; }

.wbf-cc-badge--always { font-size:11px;font-weight:600;padding:4px 10px;border-radius:20px;background:var(--wbf-cc-bg3);color:var(--wbf-cc-text3);white-space:nowrap; }

.wbf-cc-category__expand { display:flex;align-items:center;gap:4px;width:100%;padding:8px 16px;background:var(--wbf-cc-bg2);border:none;border-top:1px solid var(--wbf-cc-border);font-family:var(--wbf-cc-font);font-size:12px;color:var(--wbf-cc-text3);cursor:pointer;transition:all var(--wbf-cc-transition); }
.wbf-cc-category__expand:hover { color:var(--wbf-cc-text2); }
.wbf-cc-chevron { transition:transform var(--wbf-cc-transition); }
.wbf-cc-category__expand[aria-expanded="true"] .wbf-cc-chevron { transform:rotate(180deg); }
.wbf-cc-category__details { border-top:1px solid var(--wbf-cc-border); }

.wbf-cc-table { width:100%;font-size:12px;border-collapse:collapse; }
.wbf-cc-table th { text-align:left;padding:8px 12px;font-weight:600;color:var(--wbf-cc-text3);background:var(--wbf-cc-bg2);font-size:11px;text-transform:uppercase;letter-spacing:0.5px; }
.wbf-cc-table td { padding:8px 12px;color:var(--wbf-cc-text2);border-top:1px solid var(--wbf-cc-border);line-height:1.4; }
.wbf-cc-table__name code { font-family:var(--wbf-cc-mono);font-size:11px;background:var(--wbf-cc-bg3);padding:2px 6px;border-radius:4px;color:var(--wbf-cc-accent); }

.wbf-cc-badge-btn { position:fixed;bottom:20px;left:20px;z-index:var(--wbf-cc-z-badge);width:40px;height:40px;border-radius:50%;border: 1px solid #fff !important;
  background: #e8614d !important;  color: #fff !important;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,0.08);transition:all var(--wbf-cc-transition); }
.wbf-cc-badge-btn:hover {border: 1px solid #fff !important; background: #e8614d !important; color: #fff !important;box-shadow: 0 4px 16px rgba(0,0,0,0.12);}

/* Footer-style trigger — inline text link rendered inside the theme footer.
   No fixed positioning; uses the parent's color/typography so it blends with
   the surrounding "Terms / Privacy / Cookie Policy" link row. */
.wbf-cc-footer-link-wrap { display:inline-flex;align-items:center; }
.wbf-cc-footer-link { display:inline-flex;align-items:center;gap:6px;background:transparent;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px; }
.wbf-cc-footer-link:hover,.wbf-cc-footer-link:focus-visible { color:var(--wbf-cc-accent);outline:none; }
.wbf-cc-footer-link__icon { flex-shrink:0;opacity:0.85; }
.wbf-cc-footer-link__label { font-size:inherit;line-height:inherit; }
.wbf-cc-footer-link-item .wbf-cc-footer-link { text-decoration:none; }
.wbf-cc-footer-link-item .wbf-cc-footer-link:hover .wbf-cc-footer-link__label,
.wbf-cc-footer-link-item .wbf-cc-footer-link:focus-visible .wbf-cc-footer-link__label { text-decoration:underline;text-underline-offset:3px; }
@keyframes wbf-cc-slide-up { from{transform:translateY(100%);opacity:0} to{transform:translateY(0);opacity:1} }
@keyframes wbf-cc-fade-in { from{opacity:0} to{opacity:1} }
@keyframes wbf-cc-slide-left { from{transform:translateX(100%)} to{transform:translateX(0)} }

@media (max-width: 640px) {
  .wbf-cc-banner__inner { flex-direction:column;padding:16px;gap:14px; }
  .wbf-cc-banner__actions { width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px; }
  .wbf-cc-banner__actions .wbf-cc-btn--outline { grid-column:1/-1;order:-1; }
  .wbf-cc-prefs__panel { width:100vw; }
  .wbf-cc-table { font-size:11px; }
  .wbf-cc-table th,.wbf-cc-table td { padding:6px 8px; }
}

@media print { .wbf-cc-banner,.wbf-cc-prefs,.wbf-cc-badge-btn,.wbf-cc-footer-link-wrap { display:none!important; } }