/* ============================================================
   Consent-Banner (self-hosted, DSGVO / Consent Mode v2)
   Markenfarben: #1a1a2e (dunkel) / #ebdb00 (gelb)
   ============================================================ */

.cc-banner {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 9999;
  display: none;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding: 1rem 1.25rem;
  background: #1a1a2e;
  color: #fff;
  box-shadow: 0 -4px 24px rgba(0,0,0,.25);
  font-family: 'Open Sans', sans-serif;
}
.cc-banner.is-visible { display: flex; }
.cc-banner__text {
  flex: 1 1 320px;
  max-width: 720px;
  font-size: .9rem;
  line-height: 1.5;
}
.cc-banner__text a { color: #ebdb00; text-decoration: underline; }
.cc-banner__actions { display: flex; flex-wrap: wrap; gap: .6rem; }

.cc-btn {
  border: 0;
  border-radius: 8px;
  padding: .65rem 1.15rem;
  font: 600 .9rem/1 'Open Sans', sans-serif;
  cursor: pointer;
  transition: filter .15s ease;
}
.cc-btn:hover { filter: brightness(1.08); }
/* Akzeptieren und Ablehnen: gleich gross, gleich prominent (DSGVO) */
.cc-btn--accept { background: #ebdb00; color: #1a1a2e; }
.cc-btn--reject { background: #3a3a52; color: #fff; }
.cc-btn--settings { background: transparent; color: #fff; text-decoration: underline; padding: .65rem .5rem; }

/* Einstellungs-Dialog */
.cc-modal {
  position: fixed; inset: 0; z-index: 10000;
  display: none; align-items: center; justify-content: center;
  padding: 1rem; background: rgba(0,0,0,.55);
}
.cc-modal.is-open { display: flex; }
.cc-modal__box {
  background: #fff; color: #1a1a2e;
  border-radius: 14px; max-width: 480px; width: 100%;
  padding: 1.5rem; font-family: 'Open Sans', sans-serif;
  max-height: 90vh; overflow-y: auto;
}
.cc-modal__box h2 { font: 600 1.2rem/1.3 'Poppins', sans-serif; margin: 0 0 .5rem; }
.cc-row {
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: 1rem; padding: .85rem 0; border-top: 1px solid #e5e7eb;
}
.cc-row:first-of-type { border-top: 0; }
.cc-row strong { font-size: .95rem; }
.cc-row p { margin: .2rem 0 0; font-size: .82rem; color: #4a4a5a; }
.cc-modal__actions { display: flex; gap: .6rem; margin-top: 1.25rem; flex-wrap: wrap; }

/* Toggle-Schalter */
.cc-switch { position: relative; width: 44px; height: 24px; flex: 0 0 auto; }
.cc-switch input { opacity: 0; width: 0; height: 0; }
.cc-slider { position: absolute; inset: 0; background: #ccc; border-radius: 24px; transition: .2s; cursor: pointer; }
.cc-slider::before { content: ""; position: absolute; height: 18px; width: 18px; left: 3px; top: 3px; background: #fff; border-radius: 50%; transition: .2s; }
.cc-switch input:checked + .cc-slider { background: #16a34a; }
.cc-switch input:checked + .cc-slider::before { transform: translateX(20px); }
.cc-switch input:disabled + .cc-slider { background: #16a34a; opacity: .5; cursor: not-allowed; }

@media (max-width: 640px) {
  .cc-banner { flex-direction: column; align-items: stretch; }
  .cc-banner__actions { justify-content: stretch; }
  .cc-banner__actions .cc-btn { flex: 1; }
}
