/* =========================================================
   QSZ Cookie Consent – Design im QSZ-Stil
   Gehärtet gegen Elementor-/Theme-Overrides:
   hohe Spezifität (html body ...) + gezielte !important-Regeln.
   ========================================================= */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

/* Variablen (werden per Inline-Style aus den Einstellungen gesetzt) */
#qszcc,.qszcc-reopen{
  --qszcc-accent:#D4537E;
  --qszcc-accent2:#7F77DD;
  --qszcc-dark:#1c2333;
}

/* ---------- Container ---------- */
html body #qszcc{
  font-family:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,sans-serif !important;
  position:fixed !important;
  inset:0 !important;
  z-index:2147483640 !important;
  pointer-events:none !important;
  display:none !important;
  margin:0 !important;padding:0 !important;
}
html body #qszcc.qszcc--show{display:block !important}
html body #qszcc *{
  box-sizing:border-box !important;
  margin:0;padding:0;
  font-family:inherit !important;
  letter-spacing:normal !important;
  text-transform:none !important;
  float:none !important;
}
html body #qszcc a{
  color:var(--qszcc-accent) !important;
  text-decoration:none !important;
  font-weight:600 !important;
  box-shadow:none !important;background:none !important;
}
html body #qszcc a:hover{text-decoration:underline !important;color:var(--qszcc-accent) !important}

/* ---------- Consent-Box ---------- */
html body #qszcc .qszcc-box{
  pointer-events:auto !important;
  position:absolute !important;
  bottom:24px;
  width:420px !important;
  max-width:calc(100vw - 32px) !important;
  background:#fff !important;
  border:1px solid #e8eaed !important;
  border-radius:16px !important;
  box-shadow:0 24px 60px rgba(15,23,41,.22),0 8px 20px rgba(15,23,41,.12) !important;
  padding:26px 26px 24px !important;
  animation:qszcc-in .35s cubic-bezier(.4,0,.2,1);
}
html body #qszcc.qszcc--box-left  .qszcc-box{left:24px;right:auto}
html body #qszcc.qszcc--box-right .qszcc-box{right:24px;left:auto}
html body #qszcc.qszcc--bar .qszcc-box{
  left:0;right:0;bottom:0;width:100% !important;max-width:1200px !important;margin:0 auto !important;
  border-radius:16px 16px 0 0 !important;
  padding:24px !important;
  display:flex !important;align-items:center;gap:28px;flex-wrap:wrap;
}
html body #qszcc.qszcc--bar .qszcc-box>.qszcc-head,
html body #qszcc.qszcc--bar .qszcc-box>.qszcc-text{flex:1 1 320px;min-width:0}
html body #qszcc.qszcc--bar .qszcc-actions{flex:0 0 auto;margin-top:0}

@keyframes qszcc-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* X-Button */
html body #qszcc .qszcc-x{
  position:absolute !important;top:14px;right:14px;
  width:30px !important;height:30px !important;min-height:0 !important;min-width:0 !important;
  border-radius:8px !important;
  background:#f4f5f7 !important;border:none !important;cursor:pointer !important;
  display:flex !important;align-items:center;justify-content:center;
  color:#8a8f9a !important;transition:all .2s ease;padding:0 !important;
  -webkit-appearance:none !important;appearance:none !important;box-shadow:none !important;
}
html body #qszcc .qszcc-x:hover{background:#ececf0 !important;color:var(--qszcc-accent) !important}
html body #qszcc .qszcc-x svg{width:16px !important;height:16px !important;display:block}
html body #qszcc .qszcc-x--inline{position:static !important}

html body #qszcc .qszcc-head{display:flex !important;align-items:center;gap:12px;margin-bottom:12px !important}
html body #qszcc .qszcc-badge{
  width:42px !important;height:42px !important;flex-shrink:0;border-radius:11px !important;
  background:linear-gradient(135deg,var(--qszcc-accent2),var(--qszcc-accent)) !important;
  display:flex !important;align-items:center;justify-content:center;color:#fff !important;
  box-shadow:0 4px 12px rgba(127,119,221,.3) !important;
}
html body #qszcc .qszcc-badge svg{width:22px !important;height:22px !important;display:block;stroke:#fff !important}
html body #qszcc .qszcc-head h2{
  font-size:18px !important;font-weight:800 !important;color:var(--qszcc-dark) !important;
  line-height:1.25 !important;margin:0 !important;padding:0 !important;
}

html body #qszcc .qszcc-text{
  font-size:14px !important;line-height:1.65 !important;color:#555b6e !important;
  margin:0 0 20px !important;padding:0 !important;
}
html body #qszcc .qszcc-links{display:inline-block;margin-top:6px;white-space:nowrap}
html body #qszcc .qszcc-links span{color:#c4c8d0 !important;margin:0 6px}

html body #qszcc .qszcc-actions{display:flex !important;flex-wrap:wrap;gap:10px;align-items:center;margin:0}

/* Buttons – kompletter Reset gegen Theme/Elementor */
html body #qszcc .qszcc-btn{
  font-family:inherit !important;font-size:14px !important;font-weight:600 !important;
  cursor:pointer !important;border-radius:9px !important;padding:12px 20px !important;
  border:1.5px solid transparent !important;line-height:1 !important;
  white-space:nowrap !important;width:auto !important;min-width:0 !important;height:auto !important;
  min-height:0 !important;text-transform:none !important;letter-spacing:normal !important;
  -webkit-appearance:none !important;appearance:none !important;text-decoration:none !important;
  text-shadow:none !important;transition:all .25s cubic-bezier(.4,0,.2,1);
}
html body #qszcc .qszcc-btn--primary{
  background:linear-gradient(135deg,var(--qszcc-accent2),var(--qszcc-accent)) !important;
  color:#fff !important;box-shadow:0 2px 12px rgba(127,119,221,.25) !important;flex:1 1 auto;
}
html body #qszcc .qszcc-btn--primary:hover{filter:brightness(1.05);transform:translateY(-1px);box-shadow:0 8px 22px rgba(127,119,221,.35) !important;color:#fff !important}
html body #qszcc .qszcc-btn--ghost{background:#fff !important;color:var(--qszcc-dark) !important;border-color:#d6d9df !important;box-shadow:none !important;flex:1 1 auto}
html body #qszcc .qszcc-btn--ghost:hover{border-color:var(--qszcc-accent) !important;color:var(--qszcc-accent) !important;background:#fff !important}
html body #qszcc .qszcc-btn--text{background:none !important;color:#8a8f9a !important;padding:12px 6px !important;border:none !important;text-decoration:underline !important;flex:0 0 auto;box-shadow:none !important}
html body #qszcc .qszcc-btn--text:hover{color:var(--qszcc-accent) !important}

/* ---------- Präferenzen-Modal ---------- */
html body #qszcc .qszcc-prefs{position:fixed !important;inset:0 !important;z-index:2;display:flex !important;align-items:center;justify-content:center;padding:20px;pointer-events:auto !important}
html body #qszcc .qszcc-prefs[hidden]{display:none !important}
html body #qszcc .qszcc-prefs-box{
  position:relative !important;z-index:2;width:560px !important;max-width:100% !important;max-height:86vh;overflow:hidden;
  background:#fff !important;border-radius:18px !important;box-shadow:0 30px 70px rgba(15,23,41,.32) !important;
  display:flex !important;flex-direction:column;animation:qszcc-in .3s cubic-bezier(.4,0,.2,1);
}
html body #qszcc .qszcc-prefs-head{display:flex !important;align-items:center;justify-content:space-between;padding:24px 26px 16px !important;border-bottom:1px solid #f0f1f4 !important}
html body #qszcc .qszcc-prefs-head h2{font-size:20px !important;font-weight:800 !important;color:var(--qszcc-dark) !important;margin:0 !important}
html body #qszcc .qszcc-prefs-body{padding:8px 26px !important;overflow-y:auto}
html body #qszcc .qszcc-cat{padding:18px 0 !important;border-bottom:1px solid #f3f4f6 !important}
html body #qszcc .qszcc-cat:last-child{border-bottom:none !important}
html body #qszcc .qszcc-cat-row{display:flex !important;align-items:flex-start;gap:18px;justify-content:space-between}
html body #qszcc .qszcc-cat-text h3{font-size:15px !important;font-weight:700 !important;color:var(--qszcc-dark) !important;margin:0 0 5px !important}
html body #qszcc .qszcc-cat-text p{font-size:13.5px !important;color:#6b7280 !important;line-height:1.6 !important;margin:0 !important}
html body #qszcc .qszcc-prefs-foot{display:flex !important;gap:10px;padding:18px 26px !important;border-top:1px solid #f0f1f4 !important}
html body #qszcc .qszcc-prefs-foot .qszcc-btn{flex:1 1 auto}
html body #qszcc .qszcc-prefs-legal{text-align:center !important;font-size:12px !important;color:#9aa0aa !important;padding:0 26px 18px !important;margin:0 !important}
html body #qszcc .qszcc-prefs-legal span{margin:0 6px;color:#cfd3da !important}

/* Toggle-Switch */
html body #qszcc .qszcc-switch{position:relative !important;display:inline-block !important;width:46px !important;height:26px !important;flex-shrink:0;margin:0 !important}
html body #qszcc .qszcc-switch input{opacity:0 !important;width:0 !important;height:0 !important;position:absolute !important;margin:0 !important}
html body #qszcc .qszcc-slider{position:absolute !important;inset:0 !important;cursor:pointer;background:#cfd3da !important;border-radius:26px !important;transition:background .25s ease;border:none !important}
html body #qszcc .qszcc-slider::before{content:'' !important;position:absolute !important;height:20px !important;width:20px !important;left:3px;top:3px;background:#fff !important;border-radius:50% !important;transition:transform .25s ease;box-shadow:0 1px 3px rgba(0,0,0,.25) !important}
html body #qszcc .qszcc-switch input:checked + .qszcc-slider{background:linear-gradient(135deg,var(--qszcc-accent2),var(--qszcc-accent)) !important}
html body #qszcc .qszcc-switch input:checked + .qszcc-slider::before{transform:translateX(20px)}
html body #qszcc .qszcc-switch input:disabled + .qszcc-slider{opacity:.55;cursor:not-allowed}

/* Backdrop */
html body #qszcc .qszcc-backdrop{position:fixed !important;inset:0 !important;z-index:1;background:rgba(15,23,41,.45) !important;backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:opacity .25s ease;pointer-events:none}
html body #qszcc.qszcc--prefs-open .qszcc-backdrop{opacity:1;visibility:visible;pointer-events:auto}
html body #qszcc.qszcc--prefs-open .qszcc-box{display:none !important}

/* ---------- Schwebender Wieder-öffnen-Button (außerhalb #qszcc) ---------- */
html body .qszcc-reopen{
  position:fixed !important;left:20px;bottom:20px;right:auto;top:auto;
  z-index:2147483639 !important;
  width:48px !important;height:48px !important;min-width:0 !important;min-height:0 !important;
  border-radius:50% !important;border:none !important;cursor:pointer !important;padding:0 !important;
  background:linear-gradient(135deg,var(--qszcc-accent2,#7F77DD),var(--qszcc-accent,#D4537E)) !important;
  color:#fff !important;display:flex !important;align-items:center;justify-content:center;
  box-shadow:0 6px 20px rgba(127,119,221,.4) !important;transition:all .25s ease;
  -webkit-appearance:none !important;appearance:none !important;
}
html body .qszcc-reopen[hidden]{display:none !important}
html body .qszcc-reopen:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 10px 26px rgba(212,83,126,.45) !important}
html body .qszcc-reopen svg{width:24px !important;height:24px !important;display:block;stroke:#fff !important}

/* ---------- Responsiv ---------- */
@media(max-width:560px){
  html body #qszcc .qszcc-box{left:16px !important;right:16px !important;width:auto !important;bottom:16px;padding:22px 20px !important}
  html body #qszcc.qszcc--bar .qszcc-box{padding:20px 16px !important}
  html body #qszcc .qszcc-actions{flex-direction:column;align-items:stretch}
  html body #qszcc .qszcc-btn--text{order:3;text-align:center}
  html body #qszcc .qszcc-prefs-foot{flex-direction:column}
  html body .qszcc-reopen{left:16px;bottom:16px}
}
