/* Local candidate for Complianz 7.5.6's save-preferences banner.
   It styles native controls; it does not set consent or alter category behavior. */
.cmplz-cookiebanner.cmplz-categories-type-save-preferences {
  --cmplz_banner_width: 800px;
  font-family: Arial, Helvetica, sans-serif;
  color: #262626;
  background: #fff;
  border: 0;
  border-radius: 10px;
  padding: 36px 55px 35px;
  gap: 0;
  max-height: calc(100vh - 32px);
  overflow-y: auto;
}
.cmplz-cookiebanner.cmplz-categories-type-save-preferences.cmplz-show,
.cmplz-cookiebanner.cmplz-categories-type-save-preferences.cmplz-show:hover {
  width: min(800px, calc(100vw - 32px));
  max-width: calc(100vw - 32px);
  box-shadow: 0 0 0 100vmax rgba(0,0,0,.45), 0 16px 48px rgba(0,0,0,.16);
}
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-header {
  grid-template-columns: minmax(0,1fr) auto;
  gap: 12px;
  margin-bottom: 8px;
}
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-logo { display: none; }
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-header .cmplz-title {
  display: block;
  grid-column: 1;
  justify-self: start;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.2;
  text-align: left;
}
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-close { grid-column: 2; }
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-body {
  width: 100%; min-width: 0; max-height: none; overflow: visible;
}
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-message {
  width: 100%; margin: 0 0 18px;
  font-size: 15px; line-height: 25px; text-align: left;
}
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-categories {
  width: 100%; display: grid; grid-template-columns: repeat(4,minmax(0,1fr));
  border-top: 1px solid #c9c9c9; border-bottom: 1px solid #c9c9c9;
}
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-categories .cmplz-category {
  min-width: 0; margin: 0; background: #fff; border-right: 1px solid #c9c9c9;
}
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-categories .cmplz-category:last-child { border-right: 0; }
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-categories .cmplz-category .cmplz-category-header {
  min-height: 112px; padding: 10px 5px 7px; gap: 6px;
  display: grid; grid-template-columns: minmax(0,1fr); grid-template-rows: minmax(35px,auto) 28px 22px;
  justify-items: center; align-items: center; text-align: center;
}
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-category-title {
  grid-column: 1; grid-row: 1; justify-self: center; font-size: 14px; font-weight: 700; line-height: 1.15;
}
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-banner-checkbox,
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-always-active {
  grid-column: 1; grid-row: 2; position: relative; justify-self: center;
}
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-always-active {
  font-size: 10px; line-height: 1; display: flex; gap: 4px; align-items: center;
}
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-always-active .cmplz-banner-checkbox { display: none; }
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-always-active::before {
  content: '✓'; display: inline-grid; place-items: center; width: 24px; height: 24px;
  border-radius: 6px; background: #bfbfbf; color: #fff; font-size: 16px; font-weight: 700;
}
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-category-toggle {
  grid-column: 1; grid-row: 3; width: 32px; height: 22px; margin: 0; color: #555;
}
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-categories .cmplz-category .cmplz-description {
  padding: 8px; font-size: 13px; line-height: 1.4; overflow-wrap: anywhere;
}
/* The checkbox remains the native, keyboard-focusable Complianz input. */
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-categories .cmplz-category .cmplz-banner-checkbox { width: 24px; height: 24px; position: relative; }
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-categories .cmplz-category .cmplz-banner-checkbox input.cmplz-consent-checkbox {
  position: absolute; z-index: 2; inset: 0; width: 24px; height: 24px; margin: 0; opacity: 0; cursor: pointer;
}
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-categories .cmplz-category .cmplz-banner-checkbox .cmplz-label {
  position: absolute; inset: 0; width: 24px; height: 24px; padding: 0; margin: 0;
}
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-categories .cmplz-category .cmplz-banner-checkbox .cmplz-label::before {
  content: ''; position: absolute; inset: 0; width: 24px; height: 24px; padding: 0;
  border: 2px solid #262626; border-radius: 6px; background: #fff; box-sizing: border-box;
}
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-categories .cmplz-category .cmplz-banner-checkbox .cmplz-label::after { display: none; }
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-categories .cmplz-category .cmplz-banner-checkbox input.cmplz-consent-checkbox:checked + .cmplz-label::before {
  background: #222; border-color: #222;
}
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-categories .cmplz-category .cmplz-banner-checkbox input.cmplz-consent-checkbox:checked + .cmplz-label::after {
  content: '✓'; display: block; position: absolute; top: 0; left: 0; width: 24px; height: 24px;
  border: 0; background: transparent; color: #fff; font-size: 17px; font-weight: 700; line-height: 24px; text-align: center;
}
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-categories .cmplz-category .cmplz-banner-checkbox input.cmplz-consent-checkbox:focus-visible + .cmplz-label::before,
.cmplz-cookiebanner.cmplz-categories-type-save-preferences button:focus-visible { outline: 3px solid #3468aa; outline-offset: 3px; }
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-buttons {
  display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px;
}
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-buttons .cmplz-btn {
  min-height: 45px; flex: 1 1 140px; width: auto; padding: 10px 12px;
  border-radius: 7px; font-size: 13px; font-weight: 700; white-space: normal;
}
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-buttons .cmplz-accept {
  color: #fff; background: #222; border: 1px solid #222;
}
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-buttons .cmplz-deny,
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-buttons .cmplz-save-preferences {
  color: #222; background: #fff; border: 1px solid #222;
}
.cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-divider { display: none; }
@media (max-width: 620px) {
  .cmplz-cookiebanner.cmplz-categories-type-save-preferences { padding: 24px 20px; max-height: calc(100dvh - 24px); }
  .cmplz-cookiebanner.cmplz-categories-type-save-preferences.cmplz-show { width: calc(100vw - 24px); max-width: calc(100vw - 24px); }
  .cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-header .cmplz-title { display: block; font-size: 20px; }
  .cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-message { font-size: 14px; line-height: 1.5; }
  .cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-categories { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-categories .cmplz-category:nth-child(2) { border-right: 0; }
  .cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-categories .cmplz-category:nth-child(-n+2) { border-bottom: 1px solid #c9c9c9; }
  .cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-categories .cmplz-category .cmplz-category-header { grid-template-columns: minmax(0,1fr) !important; min-height: 100px; }
  .cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-buttons { flex-direction: row; margin-top: 18px; }
  .cmplz-cookiebanner.cmplz-categories-type-save-preferences .cmplz-buttons .cmplz-btn { flex: 1 1 130px; }
}
