/* ALGOWEB / Complianz. Presentation only; the plugin owns consent and visibility. */
body #cmplz-cookiebanner-container,
body #cmplz-manage-consent,
body .aw72-cookie-settings,
body .aw71-cookie-settings {
  --aw71-paper: #fff;
  --aw71-soft: #f4f7fc;
  --aw71-ink: #17191d;
  --aw71-muted: #536071;
  --aw71-line: #dce4ef;
  --aw71-blue: #2464be;
  --aw71-on-blue: #fff;
  --aw71-focus: #2464be;
  --aw71-shadow: 0 20px 75px -25px rgb(23 48 88 / 30%), 0 3px 14px rgb(23 48 88 / 6%);
  font-family: 'League Spartan', system-ui, sans-serif;
  color-scheme: light;
}
html[data-aw-theme="dark"] body #cmplz-cookiebanner-container,
html[data-aw-theme="dark"] body #cmplz-manage-consent,
html[data-aw-theme="dark"] body .aw72-cookie-settings,
html[data-aw-theme="dark"] body .aw71-cookie-settings {
  --aw71-paper: #171e29;
  --aw71-soft: #202b3a;
  --aw71-ink: #f4f7fc;
  --aw71-muted: #b7c4d6;
  --aw71-line: #43536a;
  --aw71-blue: #8eb9ff;
  --aw71-on-blue: #111a2a;
  --aw71-focus: #a8cdff;
  --aw71-shadow: 0 20px 75px -20px rgb(0 0 0 / 60%);
  color-scheme: dark;
}
body #cmplz-cookiebanner-container .cmplz-cookiebanner {
  box-sizing: border-box;
  position: fixed;
  inset: auto 24px 24px auto;
  width: min(520px, calc(100vw - 48px));
  min-width: 0;
  max-width: calc(100vw - 48px);
  height: auto;
  max-height: calc(100vh - 48px);
  max-height: calc(100dvh - 48px);
  margin: 0;
  padding: 26px !important;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto;
  gap: 18px;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: var(--aw71-line) var(--aw71-paper);
  transform: none;
  zoom: 1;
  border: 1px solid var(--aw71-line);
  border-radius: 20px;
  background: var(--aw71-paper);
  color: var(--aw71-ink);
  box-shadow: var(--aw71-shadow);
  z-index: 2147482000;
  font: 400 16px/1.5 'League Spartan', system-ui, sans-serif;
  text-align: left;
  --cmplz_text_color: var(--aw71-ink);
  --cmplz_hyperlink_color: var(--aw71-blue);
  --cmplz_slider_active_color: var(--aw71-blue);
  --cmplz_slider_inactive_color: var(--aw71-muted);
  --cmplz_slider_bullet_color: var(--aw71-paper);
}
body #cmplz-cookiebanner-container .cmplz-cookiebanner *,
body #cmplz-manage-consent * { box-sizing: border-box; }
body #cmplz-cookiebanner-container .cmplz-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 44px;
  grid-column: 1;
  align-items: center;
  gap: 10px 6px;
  min-height: 0;
  max-height: none;
  margin: 0 !important;
}
body #cmplz-cookiebanner-container .cmplz-logo {
  display: block;
  grid-column: 1 / -1;
  grid-row: 1;
  width: auto;
  max-width: none;
  height: auto;
  margin: 0;
  line-height: 1;
}
body #cmplz-cookiebanner-container .aw71-cookie-brand {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--aw71-blue);
  font: 600 12px/1.4 'League Spartan', system-ui, sans-serif;
  letter-spacing: .16em;
}
body #cmplz-cookiebanner-container .aw71-cookie-brand::before {
  content: '';
  width: 18px;
  height: 3px;
  background: #4087ed;
  border-radius: 2px;
}
body #cmplz-cookiebanner-container .cmplz-header .cmplz-title {
  display: block;
  grid-column: 1;
  grid-row: 2;
  width: auto;
  padding: 0;
  margin: 0;
  color: var(--aw71-ink);
  font: 600 27px/1.1 'League Spartan', system-ui, sans-serif;
  letter-spacing: -.025em;
  text-align: left;
  overflow-wrap: anywhere;
}
body #cmplz-cookiebanner-container .cmplz-close {
  display: flex;
  grid-column: 2;
  grid-row: 2;
  align-items: center;
  justify-content: center;
  position: static;
  width: 44px;
  height: 44px;
  min-height: 44px;
  border: 1px solid var(--aw71-line);
  border-radius: 50%;
  padding: 0;
  color: var(--aw71-muted);
  background: transparent;
  cursor: pointer;
  zoom: 1 !important;
  transition: background-color 180ms, color 180ms;
}
body #cmplz-cookiebanner-container .cmplz-close svg { width: 12px; height: 12px; fill: currentColor; }
body #cmplz-cookiebanner-container .cmplz-close:hover { background: var(--aw71-soft); color: var(--aw71-ink); }
body #cmplz-cookiebanner-container .cmplz-body {
  grid-column: 1;
  width: 100%;
  min-width: 0;
  max-height: none;
  overflow: visible;
  margin: 0 !important;
  flex: none;
}
body #cmplz-cookiebanner-container .cmplz-message {
  width: auto;
  padding: 0;
  margin: 0;
  color: var(--aw71-muted);
  font: 400 16px/1.5 'League Spartan', system-ui, sans-serif;
  overflow-wrap: anywhere;
}
body #cmplz-cookiebanner-container .cmplz-message p { margin: 0; font: inherit; color: inherit; }
body #cmplz-cookiebanner-container .cmplz-message p + p { margin-top: 8px; }
body #cmplz-cookiebanner-container .cmplz-divider { display: none; }
body #cmplz-cookiebanner-container .cmplz-buttons {
  grid-column: 1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px !important;
  margin: 0;
  width: 100%;
}
body #cmplz-cookiebanner-container .cmplz-buttons .cmplz-btn {
  width: 100%;
  min-width: 0;
  height: auto !important;
  min-height: 46px !important;
  margin: 0;
  padding: 12px 10px !important;
  border: 1px solid var(--aw71-line);
  border-radius: 10px;
  background: var(--aw71-soft);
  color: var(--aw71-ink);
  font: 600 16px/1.2 'League Spartan', system-ui, sans-serif !important;
  letter-spacing: 0;
  text-align: center;
  text-decoration: none;
  text-transform: none;
  white-space: normal !important;
  overflow-wrap: anywhere;
  box-shadow: none;
  zoom: 1 !important;
  transition: background-color 180ms, border-color 180ms;
}
body #cmplz-cookiebanner-container .cmplz-buttons .cmplz-accept,
body #cmplz-cookiebanner-container .cmplz-buttons .cmplz-deny {
  background: var(--aw71-blue);
  border-color: var(--aw71-blue);
  color: var(--aw71-on-blue);
}
body #cmplz-cookiebanner-container .cmplz-buttons .cmplz-btn:hover { border-color: var(--aw71-blue); }
body #cmplz-cookiebanner-container .cmplz-buttons :is(.cmplz-accept,.cmplz-deny):hover { filter: brightness(.92); }
body #cmplz-cookiebanner-container .cmplz-buttons :is(.cmplz-view-preferences,.cmplz-save-preferences):hover { background: var(--aw71-line); }
body #cmplz-cookiebanner-container .cmplz-documents {
  grid-column: 1;
  margin: 0;
  padding: 8px 0 0;
  border-top: 1px solid var(--aw71-line);
  zoom: 1 !important;
}
body #cmplz-cookiebanner-container .cmplz-documents ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 0 20px;
  padding: 0;
  margin: 0;
  list-style: none;
}
body #cmplz-cookiebanner-container .cmplz-documents a.cmplz-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 4px 0;
  color: var(--aw71-muted);
  font: 400 14px/1.3 'League Spartan', system-ui, sans-serif;
  text-decoration: underline;
  text-underline-offset: 3px;
}
body #cmplz-cookiebanner-container .cmplz-documents a.cmplz-link:hover { color: var(--aw71-blue); }
body #cmplz-cookiebanner-container .cmplz-categories {
  width: auto;
  height: auto;
  max-height: none;
  padding: 0;
  margin: 16px 0 0;
  animation: none !important;
}
body #cmplz-cookiebanner-container .cmplz-category {
  background: var(--aw71-soft);
  border: 1px solid var(--aw71-line);
  border-radius: 10px;
  margin: 0 0 8px;
  overflow: visible;
}
body #cmplz-cookiebanner-container .cmplz-category-header {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 8px;
  min-height: 52px;
  padding: 4px 8px 4px 12px;
}
body #cmplz-cookiebanner-container .cmplz-category-title {
  flex: 1 1 auto;
  color: var(--aw71-ink);
  font: 600 16px/1.3 'League Spartan', system-ui, sans-serif;
}
body #cmplz-cookiebanner-container .cmplz-always-active {
  color: var(--aw71-blue);
  font: 400 13px/1.3 'League Spartan', system-ui, sans-serif;
}
body #cmplz-cookiebanner-container .cmplz-category-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--aw71-muted);
}
body #cmplz-cookiebanner-container .cmplz-category-toggle svg { width: 12px; height: 12px; fill: currentColor; }
body #cmplz-cookiebanner-container .cmplz-category-toggle:hover { background: var(--aw71-line); }
body #cmplz-cookiebanner-container .cmplz-description {
  color: var(--aw71-muted);
  padding: 0 12px 14px;
  font: 400 15px/1.45 'League Spartan', system-ui, sans-serif;
}
body #cmplz-cookiebanner-container .cmplz-banner-checkbox { position: relative; min-width: 44px; min-height: 44px; }
body #cmplz-cookiebanner-container .cmplz-banner-checkbox input.cmplz-consent-checkbox {
  top: 0; left: 0; bottom: auto; right: auto;
  width: 44px; height: 44px; min-height: 44px;
  margin: 0; padding: 0; transform: none;
}
body #cmplz-cookiebanner-container .cmplz-banner-checkbox label.cmplz-label { margin-top: 6px; }
body #cmplz-cookiebanner-container :is(button,a,[role="button"],.cmplz-title):focus-visible,
body #cmplz-manage-consent button:focus-visible,
body .aw71-cookie-settings:focus-visible {
  outline: 3px solid var(--aw71-focus) !important;
  outline-offset: 3px;
}
body #cmplz-cookiebanner-container .cmplz-banner-checkbox input:focus-visible + label {
  outline: 3px solid var(--aw71-focus);
  outline-offset: 3px;
}
body #cmplz-manage-consent button.cmplz-manage-consent {
  animation: none !important;
  transform: none;
  inset: auto 18px max(14px, env(safe-area-inset-bottom)) auto;
  min-height: 44px;
  height: auto;
  min-width: 0;
  max-width: calc(100vw - 36px);
  padding: 12px 16px;
  border: 1px solid var(--aw71-line);
  border-radius: 12px;
  background: var(--aw71-paper);
  color: var(--aw71-ink);
  box-shadow: 0 3px 16px rgb(23 48 88 / 10%);
  font: 500 14px/1.3 'League Spartan', system-ui, sans-serif;
  white-space: normal;
  cursor: pointer;
  z-index: 99998;
}
body #cmplz-manage-consent button.cmplz-manage-consent.cmplz-show:not(.cmplz-hidden):not(.cmplz-dismissed) { display: block; }
body .aw71-cookie-settings {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 46px;
  padding: 12px 20px;
  border: 1px solid var(--aw71-blue);
  border-radius: 10px;
  background: var(--aw71-blue);
  color: var(--aw71-on-blue) !important;
  font: 600 16px/1.3 'League Spartan', system-ui, sans-serif;
  text-decoration: none !important;
}
@media (max-width: 600px) {
  body #cmplz-cookiebanner-container .cmplz-cookiebanner {
    inset: auto 10px max(10px, env(safe-area-inset-bottom)) 10px;
    width: auto;
    max-width: none;
    max-height: calc(100vh - 20px);
    max-height: calc(100dvh - 20px - env(safe-area-inset-bottom));
    padding: 20px !important;
    border-radius: 16px;
    gap: 14px;
  }
  body #cmplz-cookiebanner-container .cmplz-header .cmplz-title { font-size: 25px; }
  body #cmplz-cookiebanner-container .cmplz-buttons { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body #cmplz-cookiebanner-container .cmplz-buttons :is(.cmplz-view-preferences,.cmplz-save-preferences,.cmplz-manage-options) { grid-column: 1 / -1; }
  body #cmplz-cookiebanner-container .cmplz-documents ul { gap: 0 14px; }
  body #cmplz-manage-consent button.cmplz-manage-consent { right: 10px; padding: 10px 13px; }
}
@media (max-height: 400px) {
  body #cmplz-cookiebanner-container .cmplz-cookiebanner { display: grid; }
  body #cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-dismissed,
  body #cmplz-cookiebanner-container .cmplz-cookiebanner.cmplz-hidden { display: none; }
  body #cmplz-cookiebanner-container .cmplz-information { zoom: 1 !important; }
}
@media (prefers-reduced-motion: reduce) {
  body #cmplz-cookiebanner-container *, body #cmplz-manage-consent * { animation: none !important; transition: none !important; }
}
@media (forced-colors: active) {
  body #cmplz-cookiebanner-container .cmplz-cookiebanner,
  body #cmplz-cookiebanner-container .cmplz-buttons .cmplz-btn,
  body #cmplz-manage-consent button.cmplz-manage-consent { border: 1px solid ButtonText; }
}

/* v72: consent choices live at the top of the cookie policy, never in a floating tab. */
body #cmplz-manage-consent { display: none !important; }
body .aw72-cookie-settings {
  box-sizing: border-box;
  width: min(100%, 740px);
  margin: 24px auto !important;
  padding: clamp(18px, 3vw, 28px);
  border: 1px solid var(--aw71-line);
  border-radius: 18px;
  background: var(--aw71-paper);
  color: var(--aw71-ink);
  text-align: left;
  scroll-margin-top: 120px;
  --cmplz_text_color: var(--aw71-ink);
  --cmplz_hyperlink_color: var(--aw71-blue);
}
body .aw72-cookie-settings *, body .aw72-cookie-settings *::before, body .aw72-cookie-settings *::after { box-sizing: border-box; }
body .aw72-cookie-settings .aw72-cookie-settings-title {
  margin: 0 0 10px !important;
  color: var(--aw71-ink);
  font: 600 25px/1.2 'League Spartan', system-ui, sans-serif;
  letter-spacing: -.02em;
}
body .aw72-cookie-settings .aw72-cookie-settings-intro {
  margin: 0 0 20px !important;
  color: var(--aw71-muted);
  font: 400 16px/1.5 'League Spartan', system-ui, sans-serif;
}
body .aw72-cookie-settings #cmplz-manage-consent-container-nojavascript {
  color: var(--aw71-muted);
  font: 400 15px/1.5 'League Spartan', system-ui, sans-serif;
}
body .aw72-cookie-settings #cmplz-manage-consent-container {
  margin: 0;
  width: 100%;
  color: var(--aw71-ink);
  font: 400 16px/1.5 'League Spartan', system-ui, sans-serif;
}
body .aw72-cookie-settings .cmplz-categories { display: block; margin: 0; width: 100%; }
body .aw72-cookie-settings .cmplz-category {
  margin: 8px 0 0 !important;
  border: 1px solid var(--aw71-line);
  border-radius: 12px;
  background: var(--aw71-soft) !important;
}
body .aw72-cookie-settings .cmplz-category-header {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto 44px !important;
  align-items: center;
  gap: 8px !important;
  min-height: 64px;
  padding: 8px 10px 8px 16px !important;
  background: transparent !important;
}
body .aw72-cookie-settings .cmplz-category-title {
  min-width: 0;
  color: var(--aw71-ink);
  font: 600 17px/1.3 'League Spartan', system-ui, sans-serif;
  overflow-wrap: anywhere;
}
body .aw72-cookie-settings #cmplz-manage-consent-container .cmplz-always-active {
  color: var(--aw71-ink) !important;
  font: 400 13px/1.3 'League Spartan', system-ui, sans-serif !important;
}
body .aw72-cookie-settings .cmplz-always-active .cmplz-banner-checkbox { display: none !important; }
body .aw72-cookie-settings .cmplz-banner-checkbox {
  display: block !important;
  position: relative;
  width: 60px;
  height: 64px;
  min-width: 60px;
  margin: 0 !important;
  padding: 0 !important;
}
body .aw72-cookie-settings input.cmplz-consent-checkbox {
  position: absolute;
  inset: 0 auto auto 0;
  width: 60px;
  height: 44px;
  margin: 0 !important;
  padding: 0;
  opacity: 0;
  cursor: pointer;
  transform: none;
  z-index: 2;
}
body .aw72-cookie-settings label.cmplz-label {
  display: block;
  position: relative;
  width: 60px;
  height: 44px;
  margin: 0 !important;
  padding: 0;
  cursor: pointer;
  border: 0;
  border-radius: 22px;
}
body .aw72-cookie-settings label.cmplz-label::before {
  content: '';
  position: absolute;
  inset: 8px auto auto 0;
  width: 60px;
  height: 28px;
  background: #6f7d91;
  border: 0;
  border-radius: 20px;
  box-shadow: none;
  transform: none;
  transition: background-color 180ms;
}
body .aw72-cookie-settings label.cmplz-label::after {
  content: '';
  position: absolute;
  inset: 11px auto auto 3px;
  width: 22px;
  height: 22px;
  background: #fff;
  border: 0;
  border-radius: 50%;
  box-shadow: 0 1px 3px rgb(0 0 0 / 15%);
  transform: translateX(0);
  transition: transform 180ms;
}
body .aw72-cookie-settings input.cmplz-consent-checkbox:checked + label::before { background: var(--aw71-blue); }
body .aw72-cookie-settings input.cmplz-consent-checkbox:checked + label::after { transform: translateX(32px); }
body .aw72-cookie-settings .aw72-toggle-state {
  position: absolute;
  inset: 44px 0 auto;
  color: var(--aw71-muted);
  font: 400 12px/1.4 'League Spartan', system-ui, sans-serif;
  text-align: center;
}
body .aw72-cookie-settings .cmplz-category-toggle {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 44px;
  min-width: 44px;
  height: 44px;
  padding: 0 !important;
  margin: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--aw71-muted);
  cursor: pointer;
}
body .aw72-cookie-settings .cmplz-category-toggle svg { width: 12px; height: 12px; fill: currentColor; }
body .aw72-cookie-settings .cmplz-description {
  padding: 0 16px 16px !important;
  color: var(--aw71-muted);
  font: 400 15px/1.5 'League Spartan', system-ui, sans-serif;
}
body .aw72-cookie-settings input:focus-visible + label,
body .aw72-cookie-settings button:focus-visible { outline: 3px solid var(--aw71-focus); outline-offset: 3px; }
body .aw72-cookie-settings .aw72-cookie-revoke {
  display: block;
  min-height: 44px;
  max-width: 100%;
  margin: 16px 0 0;
  padding: 12px 18px;
  border: 1px solid var(--aw71-blue);
  border-radius: 10px;
  background: var(--aw71-blue);
  color: var(--aw71-on-blue);
  font: 600 16px/1.3 'League Spartan', system-ui, sans-serif;
  white-space: normal;
  cursor: pointer;
}
@media (max-width: 600px) {
  body .aw72-cookie-settings { padding: 18px 14px; margin: 20px auto !important; border-radius: 14px; }
  body .aw72-cookie-settings .cmplz-category-header { padding: 8px !important; gap: 4px !important; }
  body .aw72-cookie-settings .cmplz-category-title { font-size: 16px; }
  body .aw72-cookie-settings .cmplz-always-active { max-width: 64px; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
  body .aw72-cookie-settings *, body .aw72-cookie-settings *::before, body .aw72-cookie-settings *::after { transition: none !important; }
}
