/* ---------- Cookie-Consent-Banner ---------- */
#cc-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:1000;
  background:#0D2C54; color:#fff;
  padding:22px 24px;
  box-shadow:0 -12px 40px rgba(0,0,0,0.25);
  transform:translateY(120%);
  transition:transform .45s cubic-bezier(.16,.84,.44,1);
  font-family:'Inter', sans-serif;
}
#cc-banner.cc-visible{transform:translateY(0);}
.cc-inner{
  max-width:1180px; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap;
}
.cc-text{max-width:640px; font-size:0.92rem; line-height:1.55; color:rgba(255,255,255,0.88);}
.cc-text strong{color:#fff;}
.cc-text a{color:#4FB3E8; text-decoration:underline;}
.cc-actions{display:flex; gap:10px; flex-wrap:wrap; align-items:center;}
.cc-btn{
  font-family:'Inter', sans-serif; font-weight:600; font-size:0.88rem;
  padding:11px 18px; border-radius:999px; border:1.5px solid transparent; cursor:pointer;
  transition:transform .15s ease, opacity .15s ease;
}
.cc-btn:hover{transform:translateY(-1px);}
.cc-btn-accept{background:#4FB3E8; color:#0D2C54;}
.cc-btn-necessary{background:transparent; color:#fff; border-color:rgba(255,255,255,0.35);}
.cc-btn-settings{background:transparent; color:rgba(255,255,255,0.75); border-color:transparent; text-decoration:underline; padding:11px 6px;}

/* Settings-Panel */
#cc-modal{
  position:fixed; inset:0; z-index:1001; display:none;
  align-items:center; justify-content:center;
  background:rgba(10,20,35,0.55); padding:20px;
}
#cc-modal.cc-visible{display:flex;}
.cc-modal-box{
  background:#fff; color:#142433; border-radius:18px; max-width:560px; width:100%;
  padding:32px; max-height:86vh; overflow:auto;
  box-shadow:0 30px 80px -20px rgba(13,44,84,0.5);
}
.cc-modal-box h2{font-family:'Space Grotesk', sans-serif; color:#0D2C54; font-size:1.35rem; margin-bottom:10px;}
.cc-modal-box p.cc-intro{color:#4B535B; font-size:0.92rem; line-height:1.6; margin-bottom:22px;}
.cc-cat{
  display:flex; justify-content:space-between; gap:16px; align-items:flex-start;
  padding:16px 0; border-top:1px solid rgba(13,44,84,0.12);
}
.cc-cat:last-of-type{border-bottom:1px solid rgba(13,44,84,0.12);}
.cc-cat-title{font-weight:600; font-size:0.96rem; margin-bottom:4px;}
.cc-cat-desc{font-size:0.85rem; color:#4B535B; line-height:1.5;}
.cc-switch{position:relative; width:44px; height:26px; flex-shrink:0; margin-top:2px;}
.cc-switch input{opacity:0; width:0; height:0;}
.cc-slider{
  position:absolute; inset:0; background:#D8DEE5; border-radius:999px; cursor:pointer; transition:background .2s ease;
}
.cc-slider::before{
  content:""; position:absolute; width:20px; height:20px; left:3px; top:3px; background:#fff; border-radius:50%;
  transition:transform .2s ease; box-shadow:0 1px 3px rgba(0,0,0,0.3);
}
.cc-switch input:checked + .cc-slider{background:#1E73B8;}
.cc-switch input:checked + .cc-slider::before{transform:translateX(18px);}
.cc-switch input:disabled + .cc-slider{background:#9FB4C9; cursor:not-allowed;}
.cc-modal-actions{display:flex; gap:10px; justify-content:flex-end; margin-top:26px; flex-wrap:wrap;}

/* Link zum erneuten Öffnen (Footer) */
.cc-reopen{cursor:pointer; background:none; border:none; padding:0; font:inherit; color:inherit;}
