/* Cookie Banner Minimal v1.0.12 */
:root {
  --cbm-bg: rgba(247, 247, 245, 0.96);
  --cbm-panel-bg: rgba(255, 255, 255, 0.92);
  --cbm-panel-blur: 4px;
  --cbm-ink: #111111;
  --cbm-muted: #222222;
  --cbm-line: rgba(17, 17, 17, 0.32);
}

#cbm-overlay {
  position: fixed;
  inset: 0;
  z-index: 99999 !important;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  pointer-events: none;
  font-size: 11px;
  --cbm-bg: transparent;
  --cbm-panel-bg: rgba(255, 255, 255, 0.92);
  --cbm-panel-blur: 4px;
  --cbm-ink: #111111;
  --cbm-muted: #222222;
  --cbm-line: rgba(17, 17, 17, 0.32);
  --cbm-darken: transparent;
}

#cbm-overlay::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--cbm-darken);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  opacity: 0;
  transition: opacity 0.45s ease;
}

#cbm-overlay.cbm-active { pointer-events: all; }
#cbm-overlay.cbm-active::before { opacity: 1; }

#cbm-banner {
  position: relative;
  z-index: 1;
  width: auto;
  max-width: calc(100vw - 32px);
  margin: 0 auto clamp(28px, 10vh, 118px);
  opacity: 0;
  pointer-events: all;
  transform: translateY(18px);
  transition: transform 0.55s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.4s ease;
}

#cbm-overlay.cbm-active #cbm-banner {
  opacity: 1;
  transform: translateY(0);
}

@keyframes cbm-attention {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-7px); }
  40% { transform: translateX(6px); }
  60% { transform: translateX(-4px); }
  80% { transform: translateX(2px); }
}

#cbm-overlay.cbm-active #cbm-banner.cbm-attention {
  animation: cbm-attention 0.42s ease-out;
}

#cbm-overlay,
#cbm-overlay * {
  box-sizing: border-box;
  font-family: inherit !important;
}

#cbm-overlay .cbm-inner {
  display: flex;
  align-items: center;
  gap: 24px;
  min-height: 48px;
  padding: 8px 16px;
  background: var(--cbm-panel-bg) !important;
  -webkit-backdrop-filter: blur(var(--cbm-panel-blur)) saturate(140%);
  backdrop-filter: blur(var(--cbm-panel-blur)) saturate(140%);
  border: 1px solid var(--cbm-line);
  border-radius: 3px;
  color: var(--cbm-ink) !important;
}

#cbm-overlay .cbm-eyebrow,
#cbm-overlay .cbm-headline {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

#cbm-overlay .cbm-body {
  margin: 0;
  color: var(--cbm-muted) !important;
  font-size: inherit;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.2;
  text-transform: uppercase;
  white-space: nowrap;
}

#cbm-overlay .cbm-body a {
  color: inherit !important;
  font-size: inherit !important;
  text-decoration: none;
}

#cbm-overlay .cbm-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}

#cbm-overlay .cbm-btn {
  min-height: 30px;
  margin: 0;
  padding: 7px 0;
  border: 0;
  border-radius: 0;
  background: transparent !important;
  color: var(--cbm-ink) !important;
  font: inherit;
  font-weight: 500;
  line-height: 1;
  text-transform: uppercase;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  text-decoration: none !important;
  transition: opacity 0.2s ease;
}

#cbm-overlay .cbm-btn:hover { opacity: 0.5; }
#cbm-overlay .cbm-btn:focus-visible,
#cbm-snack-reset:focus-visible,
.cbm-blocked button:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: 3px;
}

#cbm-overlay.cbm-hidden,
#cbm-overlay.cbm-hidden * {
  pointer-events: none !important;
  touch-action: none !important;
}

#cbm-overlay.cbm-hidden::before { opacity: 0; }
#cbm-overlay.cbm-hidden #cbm-banner {
  opacity: 0;
  transform: translateY(18px);
}

#cbm-snack {
  position: fixed;
  bottom: clamp(28px, 10vh, 118px);
  left: 50%;
  z-index: 100000;
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 48px;
  max-width: calc(100vw - 32px);
  padding: 8px 16px;
  background: var(--cbm-panel-bg) !important;
  -webkit-backdrop-filter: blur(var(--cbm-panel-blur)) saturate(140%);
  backdrop-filter: blur(var(--cbm-panel-blur)) saturate(140%);
  border: 1px solid var(--cbm-line);
  border-radius: 3px;
  color: var(--cbm-ink);
  opacity: 0;
  pointer-events: none;
  touch-action: none;
  transform: translateX(-50%) translateY(10px);
  transition: opacity 0.3s ease, transform 0.3s ease;
  white-space: nowrap;
  box-sizing: border-box;
  --cbm-bg: transparent;
  --cbm-panel-bg: rgba(255, 255, 255, 0.92);
  --cbm-panel-blur: 4px;
  --cbm-ink: #111111;
  --cbm-muted: #222222;
  --cbm-line: rgba(17, 17, 17, 0.32);
}

#cbm-snack.cbm-visible {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

#cbm-snack.cbm-visible #cbm-snack-reset {
  pointer-events: all;
  touch-action: auto;
}

#cbm-snack-indicator {
  width: 5px;
  height: 5px;
  flex-shrink: 0;
  border-radius: 50%;
  background: #438756;
}

#cbm-snack-indicator.rejected { background: #a34c4c; }
#cbm-snack-indicator.custom { background: #357c92; }

#cbm-snack-text {
  font: inherit;
  font-size: inherit;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.2;
  text-transform: uppercase;
}

#cbm-snack-reset {
  font: inherit;
  font-size: inherit;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1;
  text-transform: uppercase;
}

#cbm-snack-text { color: var(--cbm-muted) !important; }
#cbm-snack-reset { color: var(--cbm-ink) !important; }

#cbm-snack-reset {
  margin: 0 0 0 4px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  text-decoration: none !important;
}

.cbm-blocked {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  min-height: 200px;
  padding: 40px 28px;
  background: var(--cbm-bg);
  border: 1px solid var(--cbm-line);
  color: var(--cbm-ink);
  text-align: center;
  box-sizing: border-box;
}

.cbm-blocked-label,
.cbm-blocked button {
  color: var(--cbm-ink);
  font: inherit;
  font-weight: 500;
  text-transform: uppercase;
}

.cbm-blocked-hint {
  max-width: 340px;
  margin: 0;
  color: var(--cbm-ink);
  font: inherit;
  line-height: 1.5;
}

.cbm-blocked-unlock {
  margin-top: 4px;
  padding: 9px 14px;
  border: 1px solid var(--cbm-line);
  background: transparent;
  cursor: pointer;
}

.cbm-blocked-small {
  display: inline-flex;
  min-height: 0;
  padding: 8px 12px;
}

.cbm-blocked-hint-small { color: var(--cbm-ink); white-space: nowrap; }
.cbm-blocked-unlock-inline {
  padding: 0;
  border: 0;
  border-bottom: 1px solid currentColor;
  background: transparent;
  cursor: pointer;
}

#cbm-overlay .cbm-prefs-panel {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  color: var(--cbm-ink);
  transition: max-height 0.45s ease, opacity 0.3s ease;
}

#cbm-overlay .cbm-prefs-panel.cbm-prefs-open { max-height: 600px; opacity: 1; }
#cbm-overlay .cbm-prefs-inner {
  padding: 18px;
  background: var(--cbm-panel-bg) !important;
  -webkit-backdrop-filter: blur(var(--cbm-panel-blur)) saturate(140%);
  backdrop-filter: blur(var(--cbm-panel-blur)) saturate(140%);
}
#cbm-overlay .cbm-prefs-title { margin: 0 0 10px; color: var(--cbm-ink); text-transform: uppercase; }
#cbm-overlay .cbm-toggle-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 8px 0; }
#cbm-overlay .cbm-toggle-info { display: flex; flex-direction: column; gap: 2px; }
#cbm-overlay .cbm-toggle-label,
#cbm-overlay .cbm-toggle-desc { color: var(--cbm-ink); }
#cbm-overlay .cbm-toggle { position: relative; display: inline-block; width: 38px; height: 20px; flex-shrink: 0; }
#cbm-overlay .cbm-toggle input { position: absolute; width: 0; height: 0; opacity: 0; }
#cbm-overlay .cbm-toggle-slider { position: absolute; inset: 0; border: 1px solid var(--cbm-line); border-radius: 20px; }
#cbm-overlay .cbm-toggle-slider::before { content: ''; position: absolute; top: 3px; left: 3px; width: 12px; height: 12px; border-radius: 50%; background: var(--cbm-ink); transition: transform 0.2s ease; }
#cbm-overlay .cbm-toggle input:checked + .cbm-toggle-slider::before { transform: translateX(18px); }
#cbm-overlay .cbm-toggle-disabled { opacity: 0.4; }
#cbm-overlay .cbm-btn-save { width: 100%; margin-top: 14px; padding: 10px; border: 1px solid var(--cbm-line); background: transparent; color: var(--cbm-ink); text-transform: uppercase; cursor: pointer; }

@media (max-width: 620px) {
  #cbm-banner { width: calc(100% - 32px); margin-bottom: 16px; }
  #cbm-overlay .cbm-inner { align-items: stretch; flex-direction: column; gap: 12px; padding: 14px 16px; }
  #cbm-overlay .cbm-body { line-height: 1.4; white-space: normal; }
  #cbm-overlay .cbm-actions { justify-content: flex-end; }
  #cbm-snack { bottom: 16px; flex-wrap: wrap; width: calc(100% - 32px); white-space: normal; }
  #cbm-snack-text { flex: 1; min-width: 0; }
}

@media (prefers-reduced-motion: reduce) {
  #cbm-overlay::before,
  #cbm-banner,
  #cbm-snack { transition: none; }
  #cbm-overlay.cbm-active #cbm-banner.cbm-attention { animation: none; }
}
