/* ═══════════════════════════════════════════════════════════
   Klaro Cookie-Consent — Alfred-Theme
   Banner als kompakte Card unten rechts (Alex-Tauer-Style),
   Alfred-Look: Cream-Basis, Coral-Akzent, runde Pills,
   Inter-Typo, weicher Schatten, schwarzer Rahmen-Akzent.
   ═══════════════════════════════════════════════════════════ */

.klaro {
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, sans-serif;
  color: #0a0a0a;
}

/* ─── Banner (Notice) ─────────────────────────────────────── */
.klaro .cookie-notice:not(.cookie-modal-notice) {
  background: #ffffff !important;
  color: #0a0a0a !important;
  border: 1px solid rgba(10, 10, 10, 0.08) !important;
  border-radius: 20px !important;
  box-shadow:
    0 24px 60px rgba(10, 10, 10, 0.14),
    0 6px 18px rgba(10, 10, 10, 0.06) !important;
  padding: 22px 24px !important;
  max-width: 440px !important;
  width: calc(100% - 32px) !important;

  /* Unten rechts platzieren */
  position: fixed !important;
  bottom: 20px !important;
  right: 20px !important;
  left: auto !important;
  top: auto !important;

  font-size: 14px;
  line-height: 1.5;
  z-index: 999;
}

/* Klaros Desktop-Regel explizit mitbelegen (gleiche Koordinaten) */
@media (min-width: 1024px) {
  .klaro .cookie-notice:not(.cookie-modal-notice) {
    position: fixed !important;
    bottom: 20px !important;
    right: 20px !important;
    left: auto !important;
    top: auto !important;
    max-width: 440px !important;
    border-radius: 20px !important;
    box-shadow:
      0 24px 60px rgba(10, 10, 10, 0.14),
      0 6px 18px rgba(10, 10, 10, 0.06) !important;
  }
}

/* Mobile: volle Breite, ohne Ecken-Abstand */
@media (max-width: 640px) {
  .klaro .cookie-notice:not(.cookie-modal-notice) {
    max-width: 100% !important;
    width: calc(100% - 24px) !important;
    bottom: 12px !important;
    right: 12px !important;
    left: 12px !important;
    padding: 20px !important;
  }
}

/* Banner-Body */
.klaro .cookie-notice .cn-body {
  margin: 0;
  padding: 0;
}

.klaro .cookie-notice .cn-body h2,
.klaro .cookie-notice .cn-body .cn-title {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: #0a0a0a;
  margin: 0 0 8px;
}

.klaro .cookie-notice .cn-body p {
  color: #5e5a54;
  font-size: 14px;
  line-height: 1.5;
  margin: 0 0 6px;
}

.klaro .cookie-notice .cn-body p.cn-changes {
  color: #0a0a0a;
  font-weight: 500;
}

.klaro .cookie-notice .cn-body p a,
.klaro .cookie-notice a.cn-learn-more {
  color: #ef5a3c;
  text-decoration: underline;
  text-underline-offset: 3px;
  font-weight: 500;
}

.klaro .cookie-notice a.cn-learn-more {
  text-decoration: none;
  font-size: 13px;
}

.klaro .cookie-notice a.cn-learn-more:hover {
  text-decoration: underline;
}

/* Button-Container */
.klaro .cookie-notice .cn-ok {
  margin-top: 14px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
}

.klaro .cookie-notice .cn-buttons {
  display: contents;
}

/* Alle Klaro-Buttons vereinheitlichen auf Alfred-Pill-Style */
.klaro .cookie-notice button,
.klaro .cookie-modal button,
.klaro .cookie-notice .cm-btn,
.klaro .cookie-modal .cm-btn {
  font-family: inherit !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  padding: 9px 18px !important;
  border-radius: 999px !important;
  border: 0 !important;
  cursor: pointer;
  transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
  letter-spacing: -0.005em !important;
  line-height: 1.2 !important;
  min-height: 36px;
}

/* Primärer Button (Akzeptieren) — Coral */
.klaro .cookie-notice .cm-btn-success,
.klaro .cookie-modal .cm-btn-success,
.klaro .cookie-notice .cm-btn-accept-all,
.klaro .cookie-modal .cm-btn-accept-all,
.klaro .cookie-notice .cm-btn-accept,
.klaro .cookie-modal .cm-btn-accept {
  background: #ef5a3c !important;
  color: #ffffff !important;
}

.klaro .cookie-notice .cm-btn-success:hover,
.klaro .cookie-modal .cm-btn-success:hover,
.klaro .cookie-notice .cm-btn-accept-all:hover,
.klaro .cookie-modal .cm-btn-accept-all:hover,
.klaro .cookie-notice .cm-btn-accept:hover,
.klaro .cookie-modal .cm-btn-accept:hover {
  background: #db4a2d !important;
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(239, 90, 60, 0.28);
}

/* Sekundärer Button (Nur notwendige / Ablehnen) — Creme */
.klaro .cookie-notice .cm-btn-danger,
.klaro .cookie-modal .cm-btn-danger,
.klaro .cookie-notice .cm-btn-decline,
.klaro .cookie-modal .cm-btn-decline {
  background: #f5f1ec !important;
  color: #0a0a0a !important;
}

.klaro .cookie-notice .cm-btn-danger:hover,
.klaro .cookie-modal .cm-btn-danger:hover,
.klaro .cookie-notice .cm-btn-decline:hover,
.klaro .cookie-modal .cm-btn-decline:hover {
  background: #eae3d7 !important;
}

/* Info-Button (Einstellungen / Learn more) — Ghost */
.klaro .cookie-notice .cm-btn-info,
.klaro .cookie-modal .cm-btn-info {
  background: transparent !important;
  color: #0a0a0a !important;
  border: 1px solid rgba(10, 10, 10, 0.15) !important;
}

.klaro .cookie-notice .cm-btn-info:hover,
.klaro .cookie-modal .cm-btn-info:hover {
  background: #0a0a0a !important;
  color: #ffffff !important;
  border-color: #0a0a0a !important;
}

/* ─── Modal (Einstellungen) ───────────────────────────────── */
.klaro .cookie-modal .cm-bg {
  background: rgba(10, 10, 10, 0.5) !important;
}

.klaro .cookie-modal .cm-modal.cm-klaro {
  background: #ffffff !important;
  color: #0a0a0a !important;
  border-radius: 24px !important;
  box-shadow: 0 40px 100px rgba(10, 10, 10, 0.25) !important;
  max-width: 640px !important;
  max-height: 90vh !important;
}

.klaro .cookie-modal .cm-header {
  padding: 28px 32px 16px !important;
  border-bottom: 1px solid rgba(10, 10, 10, 0.08);
}

.klaro .cookie-modal .cm-header h1,
.klaro .cookie-modal .cm-header h2 {
  font-family: inherit;
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #0a0a0a;
  margin: 0 0 8px;
}

.klaro .cookie-modal .cm-header p {
  color: #5e5a54;
  font-size: 14px;
  line-height: 1.5;
  margin: 0;
}

.klaro .cookie-modal .cm-body {
  padding: 20px 32px !important;
}

.klaro .cookie-modal .cm-footer {
  padding: 16px 32px 24px !important;
  border-top: 1px solid rgba(10, 10, 10, 0.08);
}

.klaro .cookie-modal .cm-services {
  border: 0 !important;
}

/* Klaro-Container (cm-purpose / cm-service) — höchste Spezifität,
   damit unsere Alfred-Optik gewinnt. Padding-left wird erhöht
   (statt default 60 px) damit der absolute Switch Platz hat. */
.klaro .cookie-modal .cm-modal .cm-body ul.cm-purposes li.cm-purpose,
.klaro .cookie-modal .cm-modal .cm-body ul.cm-services li.cm-service,
.klaro .cookie-modal .cm-modal .cm-body ul.cm-services li.cm-purpose,
.klaro .cookie-modal .cm-modal .cm-body ul.cm-purposes li.cm-service {
  background: #faf6f0 !important;
  border: 1px solid rgba(10, 10, 10, 0.06) !important;
  border-radius: 14px !important;
  margin-bottom: 10px !important;
  padding: 16px 18px 16px 80px !important;
  min-height: 60px !important;
  position: relative !important;
  list-style: none !important;
}

/* Switch: absolut in der linken oberen Ecke des Containers,
   auf Höhe des Titels (nicht 50% vom Gesamtcontainer, weil der
   Container auch Beschreibung + Caret enthält und dann der Slider
   vertikal mittig = irgendwo in der Mitte des Texts landet). */
.klaro .cookie-modal .cm-modal .cm-list-label .cm-switch,
.klaro .cookie-notice .cm-list-label .cm-switch {
  position: absolute !important;
  left: 18px !important;
  top: 16px !important;
  transform: none !important;
  width: 48px !important;
  height: 28px !important;
  display: inline-block !important;
  z-index: 2 !important;
}

.klaro .cookie-modal .cm-modal .cm-list-label .slider,
.klaro .cookie-notice .cm-list-label .slider {
  width: 48px !important;
  height: 28px !important;
}

.klaro .cookie-modal .cm-modal .cm-list-label .slider.round::before,
.klaro .cookie-notice .cm-list-label .slider.round::before {
  width: 20px !important;
  height: 20px !important;
  left: 4px !important;
  bottom: 4px !important;
}

.klaro .cookie-modal .cm-modal .cm-list-input:checked + .cm-list-label .slider.round::before,
.klaro .cookie-notice .cm-list-input:checked + .cm-list-label .slider.round::before {
  transform: translateX(20px) !important;
}

/* Title und Label — sicherstellen dass sie sauber vom Switch getrennt sind */
.klaro .cookie-modal .cm-modal .cm-list-label {
  position: static !important;
  display: block !important;
  padding-left: 0 !important;
  min-height: 28px !important;
  line-height: 1.35 !important;
}

.klaro .cookie-modal .cm-modal .cm-list-title {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #0a0a0a !important;
  line-height: 1.3 !important;
  display: block !important;
  margin: 2px 0 0 !important;
}

.klaro .cookie-modal .cm-modal .cm-list-description,
.klaro .cookie-modal .cm-modal .cm-content p {
  color: #5e5a54 !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
  margin: 6px 0 0 !important;
}

/* Links im Modal — Alfred-Coral statt Klaro-Grün */
.klaro .cookie-modal a,
.klaro .cookie-modal .cm-link,
.klaro .cookie-modal .cn-learn-more,
.klaro .cookie-modal .cm-caret,
.klaro .cookie-modal .cm-services-toggle,
.klaro .cookie-modal .cm-body a {
  color: #ef5a3c !important;
  text-decoration: none !important;
}

.klaro .cookie-modal a:hover,
.klaro .cookie-modal .cm-link:hover {
  color: #db4a2d !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
}

/* Toggle-Slider: Grau inaktiv, Coral aktiv */
.klaro .cookie-modal .cm-list-label .slider,
.klaro .cookie-notice .cm-list-label .slider {
  background-color: rgba(10, 10, 10, 0.15) !important;
  box-shadow: none !important;
}

.klaro .cookie-modal .cm-list-input:checked + .cm-list-label .slider,
.klaro .cookie-notice .cm-list-input:checked + .cm-list-label .slider {
  background-color: #ef5a3c !important;
}

.klaro .cookie-modal .cm-list-input.required:checked + .cm-list-label .slider,
.klaro .cookie-modal .cm-list-input.only-required + .cm-list-label .slider,
.klaro .cookie-notice .cm-list-input.required:checked + .cm-list-label .slider,
.klaro .cookie-notice .cm-list-input.only-required + .cm-list-label .slider {
  background-color: rgba(239, 90, 60, 0.5) !important;
  opacity: 1 !important;
}

/* Close-Button im Modal */
.klaro .cookie-modal .hide {
  background: transparent !important;
  color: #5e5a54 !important;
  border: 0 !important;
  font-size: 20px !important;
  padding: 8px !important;
  min-height: auto !important;
  border-radius: 999px !important;
}

.klaro .cookie-modal .hide:hover {
  background: rgba(10, 10, 10, 0.06) !important;
  color: #0a0a0a !important;
}

/* Footer "Powered by" dezent */
.cm-powered-by,
.cm-powered-by a {
  font-size: 11px !important;
  color: #9a948b !important;
}
