/* ============================================================
   seeRAUM — Klaro Cookie Consent · Custom Theme
   Palette: --anth #38383d  --beige #d1c9bc  --white #fff
   Font: Montserrat (self-hosted, already loaded)
   ============================================================ */

/* ── COOKIE NOTICE (banner) ── */
.klaro .cookie-notice {
  position: fixed !important;
  bottom: 50% !important;
  left: 50% !important;
  transform: translate(-50%, 50%) !important;
  top: auto !important;
  right: auto !important;

  width: min(540px, calc(100vw - 2rem)) !important;
  max-width: 540px !important;

  background: #38383d !important;
  border: 1px solid rgba(209,201,188,.18) !important;
  border-radius: 0 !important;
  box-shadow: 0 24px 80px rgba(0,0,0,.45) !important;
  padding: 2.4rem 2.6rem 2rem !important;
  z-index: 9999 !important;
  font-family: 'Montserrat', sans-serif !important;
  color: #fff !important;
}

/* Backdrop overlay */
.klaro .cookie-notice-backdrop,
.klaro .klaro-backdrop {
  position: fixed !important;
  inset: 0 !important;
  background: rgba(26,26,28,.72) !important;
  backdrop-filter: blur(3px) !important;
  z-index: 9998 !important;
}

/* Notice title / eyebrow */
.klaro .cookie-notice .title {
  font-size: .58rem !important;
  font-weight: 700 !important;
  letter-spacing: .28em !important;
  text-transform: uppercase !important;
  color: #d1c9bc !important;
  margin-bottom: 1rem !important;
  display: flex !important;
  align-items: center !important;
  gap: .8rem !important;
}
.klaro .cookie-notice .title::before {
  content: '' !important;
  display: block !important;
  width: 24px !important;
  height: 1px !important;
  background: #d1c9bc !important;
  flex-shrink: 0 !important;
}

/* Notice description */
.klaro .cookie-notice p,
.klaro .cookie-notice .description {
  font-size: .78rem !important;
  line-height: 1.85 !important;
  color: rgba(255,255,255,.72) !important;
  margin-bottom: 0 !important;
}

/* Notice "Einstellungen" learn-more link */
.klaro .cookie-notice a {
  color: #d1c9bc !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
  font-weight: 600 !important;
}

/* Notice button row */
.klaro .cookie-notice .cn-buttons {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: .7rem !important;
  margin-top: 1.6rem !important;
  align-items: center !important;
}

/* ── BUTTONS (shared) ── */
.klaro .cookie-notice button,
.klaro .cookie-modal button {
  font-family: 'Montserrat', sans-serif !important;
  font-size: .58rem !important;
  font-weight: 700 !important;
  letter-spacing: .2em !important;
  text-transform: uppercase !important;
  border: none !important;
  cursor: pointer !important;
  border-radius: 0 !important;
  transition: background .22s, color .22s, transform .18s !important;
  padding: .7rem 1.5rem !important;
  line-height: 1 !important;
}
.klaro .cookie-notice button:hover,
.klaro .cookie-modal button:hover {
  transform: translateY(-1px) !important;
}

/* Accept-all → beige solid */
.klaro .cookie-notice .cm-btn-success,
.klaro .cookie-modal .cm-btn-success {
  background: #d1c9bc !important;
  color: #38383d !important;
}
.klaro .cookie-notice .cm-btn-success:hover,
.klaro .cookie-modal .cm-btn-success:hover {
  background: #b8af9f !important;
}

/* Auswahl speichern / Decline → ghost */
.klaro .cookie-notice .cm-btn-accept-all,
.klaro .cookie-notice .cm-btn-decline,
.klaro .cookie-notice .cn-decline,
.klaro .cookie-modal .cm-btn-accept-all,
.klaro .cookie-modal .cm-btn-decline {
  background: transparent !important;
  color: rgba(255,255,255,.65) !important;
  border: 1px solid rgba(255,255,255,.2) !important;
  padding: .68rem 1.4rem !important;
}
.klaro .cookie-notice .cm-btn-decline:hover,
.klaro .cookie-notice .cn-decline:hover,
.klaro .cookie-modal .cm-btn-decline:hover {
  background: rgba(255,255,255,.08) !important;
  color: #fff !important;
  border-color: rgba(255,255,255,.35) !important;
}

/* ── MODAL ── */
.klaro .cookie-modal {
  position: fixed !important;
  inset: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  z-index: 99999 !important;
  padding: 1rem !important;
}

.klaro .cookie-modal .cm-modal {
  background: #38383d !important;
  border: 1px solid rgba(209,201,188,.18) !important;
  border-radius: 0 !important;
  box-shadow: 0 32px 100px rgba(0,0,0,.55) !important;
  width: min(600px, calc(100vw - 2rem)) !important;
  max-height: 90vh !important;
  overflow-y: auto !important;
  font-family: 'Montserrat', sans-serif !important;
  color: #fff !important;
  padding: 0 !important;
  scrollbar-width: thin !important;
  scrollbar-color: rgba(209,201,188,.3) transparent !important;
}

.klaro .cookie-modal .cm-header {
  padding: 2.4rem 2.6rem 1.2rem !important;
  border-bottom: 1px solid rgba(209,201,188,.12) !important;
  position: relative !important;
}

.klaro .cookie-modal .cm-header h1,
.klaro .cookie-modal .cm-header .title {
  font-size: 1.1rem !important;
  font-weight: 300 !important;
  color: #fff !important;
  letter-spacing: .01em !important;
  margin-bottom: .7rem !important;
}
.klaro .cookie-modal .cm-header h1 strong { font-weight: 700 !important; }

.klaro .cookie-modal .cm-header p,
.klaro .cookie-modal .cm-header .description {
  font-size: .75rem !important;
  line-height: 1.8 !important;
  color: rgba(255,255,255,.6) !important;
  margin: 0 !important;
}
.klaro .cookie-modal .cm-header a {
  color: #d1c9bc !important;
  text-decoration: underline !important;
}

/* Close button */
.klaro .cookie-modal .hide {
  position: absolute !important;
  top: 1.4rem !important;
  right: 1.6rem !important;
  background: none !important;
  border: none !important;
  color: rgba(255,255,255,.5) !important;
  font-size: 1.3rem !important;
  cursor: pointer !important;
  padding: .2rem .4rem !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  transition: color .2s !important;
}
.klaro .cookie-modal .hide:hover { color: #fff !important; }

/* Modal body */
.klaro .cookie-modal .cm-body {
  padding: 1.6rem 2.6rem !important;
}

/* Apps list */
.klaro .cookie-modal .cm-apps {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: .8rem !important;
}

.klaro .cookie-modal .cm-app {
  background: rgba(255,255,255,.04) !important;
  border: 1px solid rgba(209,201,188,.1) !important;
  padding: 1.1rem 1.3rem !important;
}

.klaro .cookie-modal .cm-app .cm-app-title {
  font-size: .7rem !important;
  font-weight: 700 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  color: #fff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 1rem !important;
  margin-bottom: 0 !important;
}

.klaro .cookie-modal .cm-app .cm-app-description,
.klaro .cookie-modal .cm-app p {
  font-size: .7rem !important;
  line-height: 1.75 !important;
  color: rgba(255,255,255,.55) !important;
  margin-top: .5rem !important;
  margin-bottom: 0 !important;
}

/* Purpose badges */
.klaro .cookie-modal .cm-purpose .title,
.klaro .cookie-modal .cm-purpose-title {
  font-size: .58rem !important;
  font-weight: 700 !important;
  letter-spacing: .22em !important;
  text-transform: uppercase !important;
  color: #d1c9bc !important;
  display: flex !important;
  align-items: center !important;
  gap: .7rem !important;
  padding: 1rem 0 .6rem !important;
  border-bottom: 1px solid rgba(209,201,188,.1) !important;
  margin-bottom: .6rem !important;
}
.klaro .cookie-modal .cm-purpose .title::before {
  content: '' !important;
  display: block !important;
  width: 16px !important;
  height: 1px !important;
  background: #d1c9bc !important;
}

/* Toggle switch */
.klaro .cookie-modal .cm-app .slider,
.klaro .cm-toggle .slider {
  position: relative !important;
  display: inline-block !important;
  width: 42px !important;
  height: 22px !important;
  flex-shrink: 0 !important;
}
.klaro .cm-toggle input { opacity: 0 !important; width: 0 !important; height: 0 !important; }
.klaro .cm-toggle .slider {
  background: rgba(255,255,255,.18) !important;
  border-radius: 22px !important;
  cursor: pointer !important;
  transition: background .2s !important;
}
.klaro .cm-toggle .slider::before {
  content: '' !important;
  position: absolute !important;
  width: 16px !important;
  height: 16px !important;
  left: 3px !important;
  top: 3px !important;
  background: #fff !important;
  border-radius: 50% !important;
  transition: transform .2s !important;
}
.klaro .cm-toggle input:checked + .slider {
  background: #d1c9bc !important;
}
.klaro .cm-toggle input:checked + .slider::before {
  transform: translateX(20px) !important;
}
.klaro .cm-toggle input:disabled + .slider {
  background: rgba(209,201,188,.35) !important;
  cursor: not-allowed !important;
}

/* Required / always-on label */
.klaro .cookie-modal .cm-app .required-text,
.klaro .cookie-modal .cm-app .opt-out-text {
  font-size: .52rem !important;
  letter-spacing: .15em !important;
  text-transform: uppercase !important;
  color: rgba(209,201,188,.7) !important;
  font-weight: 600 !important;
}

/* Modal footer buttons */
.klaro .cookie-modal .cm-footer {
  padding: 1.4rem 2.6rem 2rem !important;
  border-top: 1px solid rgba(209,201,188,.12) !important;
  display: flex !important;
  gap: .7rem !important;
  flex-wrap: wrap !important;
  justify-content: flex-end !important;
}

.klaro .cookie-modal .cm-footer button {
  min-width: 140px !important;
}

/* ── RESPONSIVE ── */
@media (max-width: 600px) {
  .klaro .cookie-notice {
    bottom: 1rem !important;
    left: 1rem !important;
    right: 1rem !important;
    transform: none !important;
    width: auto !important;
    max-width: none !important;
    padding: 1.8rem 1.4rem 1.4rem !important;
  }
  .klaro .cookie-modal .cm-modal {
    width: 100% !important;
    max-height: 95vh !important;
  }
  .klaro .cookie-modal .cm-header,
  .klaro .cookie-modal .cm-body {
    padding-left: 1.4rem !important;
    padding-right: 1.4rem !important;
  }
  .klaro .cookie-modal .cm-footer {
    padding: 1.2rem 1.4rem 1.6rem !important;
    flex-direction: column !important;
  }
  .klaro .cookie-modal .cm-footer button {
    width: 100% !important;
    min-width: unset !important;
    text-align: center !important;
  }
}
