.klaro {
  --font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-size: 14px;
}

.klaro,
.klaro * {
  box-sizing: border-box !important;
}

.klaro .cookie-notice:not(.cookie-modal-notice) {
  bottom: 20px !important;
  left: 20px !important;
  right: 20px !important;
  width: auto !important;
  max-width: 520px !important;
  z-index: 80 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}

.klaro .cookie-notice .cn-body,
.klaro .cookie-modal .cm-modal {
  border: 1px solid hsl(var(--border)) !important;
  border-radius: 16px !important;
  background: hsl(var(--card)) !important;
  box-shadow: 0 24px 60px -36px rgba(15, 23, 42, 0.35) !important;
  color: hsl(var(--foreground)) !important;
}

.klaro .cookie-notice .cn-body {
  min-width: 0 !important;
  padding: 22px !important;
  width: 100% !important;
}

.klaro .cookie-modal {
  z-index: 80 !important;
  background: rgba(15, 23, 42, 0.55) !important;
}

.klaro .cookie-modal .cm-modal {
  width: min(680px, calc(100vw - 32px)) !important;
  min-width: 0 !important;
  max-width: 720px !important;
  padding: 0 !important;
  overflow: hidden !important;
}

.klaro .cookie-modal .cm-header,
.klaro .cookie-modal .cm-body,
.klaro .cookie-modal .cm-footer {
  padding-left: 24px !important;
  padding-right: 24px !important;
}

.klaro .cookie-modal .cm-header,
.klaro .cookie-modal .cm-footer {
  padding-top: 20px !important;
  padding-bottom: 20px !important;
  border-color: hsl(var(--border)) !important;
}

.klaro .cookie-modal .cm-body {
  padding-top: 12px !important;
  padding-bottom: 12px !important;
  border-color: hsl(var(--border)) !important;
  font-size: 0.875rem !important;
}

.klaro .cookie-notice .cn-body p,
.klaro .cookie-modal .cm-modal p,
.klaro .cookie-modal .cm-modal li {
  color: hsl(var(--muted-foreground)) !important;
  font-size: 0.875rem !important;
  line-height: 1.6 !important;
}

.klaro .cookie-notice strong,
.klaro .cookie-modal .cm-header .title,
.klaro .cookie-modal .cm-modal .title,
.klaro .cookie-modal .cm-list-title {
  color: hsl(var(--foreground)) !important;
  font-family: inherit !important;
  letter-spacing: 0 !important;
}

.klaro .cookie-notice .cn-body strong {
  display: block !important;
  margin-bottom: 8px !important;
  font-size: 1.05rem !important;
}

.klaro .cookie-modal .cm-header .title {
  display: block !important;
  margin: 0 40px 12px 0 !important;
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
}

.klaro .cookie-modal .cm-header p {
  margin: 0 !important;
  max-width: 560px !important;
}

.klaro .cn-buttons,
.klaro .cm-footer-buttons {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  margin-top: 16px !important;
}

.klaro .cookie-notice .cn-ok {
  align-items: center !important;
  display: flex !important;
  gap: 14px !important;
  justify-content: space-between !important;
}

.klaro .cookie-notice .cn-buttons {
  justify-content: flex-end !important;
  margin-top: 0 !important;
}

.klaro .cm-footer-buttons {
  align-items: center !important;
  justify-content: flex-end !important;
  margin-top: 0 !important;
  width: 100% !important;
}

.klaro .cm-btn {
  align-items: center !important;
  display: inline-flex !important;
  justify-content: center !important;
  height: 40px !important;
  min-height: 40px !important;
  border-radius: var(--button-radius, 14px) !important;
  border: 1px solid hsl(var(--border)) !important;
  background: hsl(var(--card)) !important;
  color: hsl(var(--secondary-foreground)) !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  min-width: 0 !important;
  padding-left: 16px !important;
  padding-right: 16px !important;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05) !important;
}

.klaro .cm-btn-success,
.klaro .cm-btn.cm-btn-success {
  border-color: hsl(var(--primary)) !important;
  background: hsl(var(--primary)) !important;
  color: hsl(var(--primary-foreground)) !important;
  box-shadow: 0 4px 12px rgba(4, 120, 87, 0.25) !important;
}

.klaro .cm-btn-info,
.klaro .cm-btn.cm-btn-info {
  background: hsl(var(--card)) !important;
}

.klaro .cm-footer-buttons .cm-btn-info,
.klaro .cm-footer-buttons .cm-btn.cm-btn-info,
.klaro .cm-footer-buttons .cm-btn:nth-child(2) {
  border-color: hsl(var(--border)) !important;
  background: hsl(var(--card)) !important;
  color: hsl(var(--secondary-foreground)) !important;
}

.klaro .cm-btn-danger,
.klaro .cm-btn.cm-btn-danger {
  border-color: transparent !important;
  background: transparent !important;
  color: hsl(var(--muted-foreground)) !important;
  box-shadow: none !important;
}

.klaro .cm-btn:disabled,
.klaro .cm-btn[disabled] {
  border-color: hsl(var(--border)) !important;
  background: hsl(var(--muted)) !important;
  color: hsl(var(--muted-foreground)) !important;
  cursor: not-allowed !important;
  opacity: 0.75 !important;
}

.klaro .cm-btn:hover {
  border-color: hsl(var(--accent)) !important;
  color: hsl(var(--primary)) !important;
  transform: none !important;
}

.klaro .cm-btn-success:hover,
.klaro .cm-btn.cm-btn-success:hover {
  border-color: hsl(var(--primary)) !important;
  background: hsl(var(--primary) / 0.9) !important;
  color: hsl(var(--primary-foreground)) !important;
  box-shadow: 0 4px 12px rgba(4, 120, 87, 0.35) !important;
}

.klaro .cm-services,
.klaro .cm-purposes {
  margin-top: 0 !important;
}

.klaro .cm-service,
.klaro .cm-purpose {
  border-color: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
}

.klaro .cm-purpose {
  border: 0 !important;
  border-radius: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.klaro .cm-service {
  border-radius: 0 !important;
  margin: 0 !important;
  padding: 12px 0 !important;
}

.klaro .cookie-modal .cm-purpose,
.klaro .cookie-modal .cm-service {
  min-height: 56px !important;
  padding: 12px 0 12px 78px !important;
  position: relative !important;
}

.klaro .cookie-modal .cm-purpose .slider,
.klaro .cookie-modal .cm-service .slider {
  bottom: auto !important;
  height: 30px !important;
  left: 0 !important;
  top: 0 !important;
  width: 50px !important;
}

.klaro .cm-list-label,
.klaro .cm-list-title,
.klaro .cm-list-description {
  min-width: 0 !important;
}

.klaro .cm-list-title {
  font-size: 0.875rem !important;
  font-weight: 700 !important;
  line-height: 1.45 !important;
}

.klaro .cm-list-description {
  color: hsl(var(--muted-foreground)) !important;
  font-size: 0.8125rem !important;
  line-height: 1.55 !important;
}

.klaro .cm-list-label .slider {
  background: hsl(var(--muted)) !important;
  box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.05) !important;
}

.klaro .cm-list-input:checked + .cm-list-label .slider,
.klaro .cm-list-input.only-required + .cm-list-label .slider {
  background: hsl(var(--primary)) !important;
}

.klaro .cm-list-label .slider::before {
  background: #fff !important;
}

.klaro .cm-header .hide,
.klaro .cm-modal .cm-header button {
  align-items: center !important;
  border: 1px solid hsl(var(--border)) !important;
  border-radius: 8px !important;
  color: hsl(var(--foreground)) !important;
  display: inline-flex !important;
  font-size: 1rem !important;
  height: 28px !important;
  justify-content: center !important;
  line-height: 1 !important;
  padding: 0 !important;
  width: 28px !important;
}

.klaro a {
  color: hsl(var(--primary)) !important;
}

.klaro .powered-by,
.klaro .cm-powered-by {
  display: none !important;
}

@media (max-width: 640px) {
  .klaro .cookie-notice:not(.cookie-modal-notice) {
    left: 12px !important;
    right: auto !important;
    bottom: 12px !important;
    width: calc(100vw - 24px) !important;
    min-width: 0 !important;
    max-width: calc(100vw - 24px) !important;
  }

  .klaro .cookie-notice .cn-ok,
  .klaro .cookie-notice .cn-buttons,
  .klaro .cm-footer-buttons {
    display: grid !important;
    grid-template-columns: 1fr !important;
    width: 100% !important;
  }

  .klaro .cookie-notice .cn-ok {
    align-items: stretch !important;
    gap: 12px !important;
  }

  .klaro .cookie-notice .cn-buttons {
    margin-top: 0 !important;
  }

  .klaro .cookie-modal .cm-modal {
    margin-left: auto !important;
    margin-right: auto !important;
    width: calc(100vw - 24px) !important;
    min-width: 0 !important;
    max-width: calc(100vw - 24px) !important;
    max-height: calc(100vh - 24px) !important;
  }

  .klaro .cookie-modal .cm-header,
  .klaro .cookie-modal .cm-body,
  .klaro .cookie-modal .cm-footer,
  .klaro .cookie-notice .cn-body {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  .klaro .cm-btn {
    min-width: 0 !important;
    width: 100% !important;
  }

  .klaro .cookie-modal .cm-purpose,
  .klaro .cookie-modal .cm-service {
    padding-left: 68px !important;
  }
}
