/* Cookie Banner Design v1.0.29 */
:root {
  --cbm-bg: rgba(247, 247, 245, 0.96);
  --cbm-panel-bg: rgba(255, 255, 255, 0.92);
  --cbm-page-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-page-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: blur(var(--cbm-page-blur));
  backdrop-filter: blur(var(--cbm-page-blur));
  opacity: 0;
  transition: opacity 0.45s ease;
}

#cbm-overlay.cbm-active { pointer-events: all; }
#cbm-overlay.cbm-active::before { opacity: 1; }
#cbm-overlay.cbm-no-blur::before {
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

#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;
  justify-content: space-between;
  gap: 24px;
  min-height: 48px;
  padding: 8px 16px;
  background: var(--cbm-panel-bg) !important;
  border: 1px solid var(--cbm-line);
  border-radius: 3px;
  color: var(--cbm-ink) !important;
}

#cbm-overlay .cbm-text {
  flex: 1 1 auto;
  min-width: 0;
}

#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;
  flex-wrap: wrap;
}

#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-settings-logo: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;
  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-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-settings-logo {
  position: fixed;
  left: 18px;
  bottom: 18px;
  z-index: 100000;
  display: grid;
  width: 38px;
  height: 38px;
  padding: 9px;
  place-items: center;
  border: 1px solid var(--cbm-line);
  border-radius: 3px;
  background: var(--cbm-panel-bg) !important;
  color: var(--cbm-ink) !important;
  box-shadow: 0 4px 16px rgba(0,0,0,0.08);
  cursor: pointer;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.25s ease, transform 0.25s ease;
  --cbm-panel-bg: rgba(255,255,255,0.92);
  --cbm-ink: #111111;
  --cbm-line: rgba(17,17,17,0.32);
}

#cbm-settings-logo[hidden] { display: none; }
#cbm-settings-logo.cbm-visible { opacity: 1; transform: translateY(0); }
#cbm-settings-logo:hover { opacity: 0.58; }
#cbm-settings-logo svg { display: block; width: 18px; height: 18px; }

#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 {
  position: absolute;
  left: 0;
  right: 0;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  color: var(--cbm-ink);
  transition: max-height 0.45s ease, opacity 0.3s ease, visibility 0s linear 0.45s;
}

#cbm-overlay .cbm-prefs-panel.cbm-prefs-open { position: static; max-height: min(680px, calc(100vh - 32px)); overflow-y: auto; opacity: 1; visibility: visible; transition-delay: 0s; }
#cbm-overlay #cbm-banner.cbm-prefs-expanded .cbm-inner { border-radius: 3px 3px 0 0; }
#cbm-overlay #cbm-banner.cbm-prefs-expanded .cbm-actions { display: none; }
#cbm-overlay .cbm-prefs-inner {
  padding: 18px;
  background: var(--cbm-panel-bg) !important;
  border: 1px solid var(--cbm-line);
  border-top: 0;
  border-radius: 0 0 3px 3px;
}
#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; inset: 0; z-index: 1; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
#cbm-overlay .cbm-toggle-slider { position: absolute; inset: 0; border: 1px solid var(--cbm-line); border-radius: 20px; background: transparent; cursor: pointer; transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease; }
#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, background 0.2s ease; }
#cbm-overlay .cbm-toggle input:checked + .cbm-toggle-slider { background: #27845a; border-color: #27845a; box-shadow: inset 0 0 0 1px rgba(255,255,255,0.18); }
#cbm-overlay .cbm-toggle input:checked + .cbm-toggle-slider::before { transform: translateX(18px); background: #ffffff; box-shadow: 0 1px 3px rgba(0,0,0,0.28); }
#cbm-overlay .cbm-toggle input:focus-visible + .cbm-toggle-slider { outline: 2px solid #27845a; outline-offset: 3px; }
#cbm-overlay .cbm-toggle input:disabled,
#cbm-overlay .cbm-toggle input:disabled + .cbm-toggle-slider { cursor: default; }
#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; }
  #cbm-settings-logo { left: 16px; bottom: 16px; }
}

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