/* Public consent chrome only. The existing copy, native checkbox state,
   show/hide classes, and measured Customize height remain owned by base.html. */
body.public-design #cookie-consent-banner {
  width: min(calc(100% - 32px), 512px);
  font: 400 14px/22px "Open Sans", Arial, sans-serif;
  color: var(--text);
}
body.public-design #cookie-consent-banner .cookie-popup-tilt { transform: none !important; }
body.public-design #cookie-consent-banner .cookie-popup-card {
  padding: 0;
  border: 1px solid var(--border-strong);
  border-radius: 12px;
  background: var(--surface);
  color: var(--text);
  box-shadow: var(--elev-3);
}
body.public-design #cookie-consent-banner .cookie-popup-inner {
  border-radius: 11px;
  background: var(--surface);
  color: var(--text);
}
body.public-design #cookie-consent-banner .cookie-glass {
  max-height: calc(100vh - 48px);
  max-height: calc(100dvh - 48px);
  overflow-y: auto;
  padding: 24px !important;
  background: var(--surface);
  color: var(--text);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: none;
}
body.public-design #cookie-consent-banner :is(.cookie-conic,.cookie-glow,.cookie-crumbs,.cookie-icon-ring),
body.public-design #cookie-consent-banner .cookie-accept-btn::before { display: none; }
body.public-design #cookie-consent-banner :is(p,button,button > span) {
  font: 400 14px/22px "Open Sans", Arial, sans-serif !important;
  letter-spacing: normal;
  color: var(--text);
}
body.public-design #cookie-consent-banner .cookie-stagger[data-stagger="0"] > p {
  font-size: 17px !important;
  line-height: 26px !important;
  font-weight: 600 !important;
}
body.public-design #cookie-consent-banner :is(.cookie-stagger[data-stagger="1"] p,.cookie-toggle-row p + p) { color: var(--text-muted); }
body.public-design #cookie-consent-banner .cookie-icon-bg {
  background: var(--action-soft);
  color: var(--action-ink);
  box-shadow: none;
  animation: none;
}
body.public-design #cookie-consent-banner .cookie-stagger[data-stagger="2"] {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  align-items: stretch;
  gap: 12px;
  margin-top: 20px !important;
}
body.public-design #cookie-consent-banner .cookie-stagger[data-stagger="2"] > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
body.public-design #cookie-consent-banner :is(.cookie-customize-btn,.cookie-essential-btn,.cookie-accept-btn) {
  min-width: 0;
  min-height: 48px;
  padding: 12px 10px;
  justify-content: center;
  border: 1px solid var(--border-strong);
  border-radius: 8px;
  background: var(--surface) !important;
  color: var(--text) !important;
  box-shadow: none;
  white-space: normal;
  text-align: center;
  font-weight: 600 !important;
}
body.public-design #cookie-consent-banner button > span { color: inherit; font-weight: inherit !important; }
body.public-design #cookie-consent-banner :is(.cookie-customize-btn,.cookie-essential-btn):hover {
  background: var(--surface-canvas) !important;
  border-color: var(--text-muted);
  color: var(--text) !important;
  transform: none;
}
body.public-design #cookie-consent-banner .cookie-accept-btn {
  background: var(--btn-action-bg) !important;
  color: var(--btn-action-fg) !important;
  border-color: var(--action-ink);
}
body.public-design #cookie-consent-banner .cookie-accept-btn:hover {
  background: var(--btn-action-hover) !important;
  color: var(--btn-action-fg) !important;
  box-shadow: none;
  transform: none;
}
body.public-design #cookie-consent-banner :is(button,input):focus-visible {
  outline: 2px solid var(--btn-action-ring) !important;
  outline-offset: 3px;
  box-shadow: none;
}
body.public-design #cookie-consent-banner .cookie-toggle-row {
  min-height: 72px;
  padding: 14px;
  border: 1px solid var(--border-strong);
  border-radius: 8px;
  background: var(--surface);
  color: var(--text);
}
body.public-design #cookie-consent-banner .cookie-toggle-row p:first-child { font-weight: 600 !important; }
body.public-design #cookie-consent-banner .cookie-toggle-row:not(.cookie-toggle-locked):hover {
  background: var(--surface-canvas);
  border-color: var(--text-muted);
}
body.public-design #cookie-consent-banner .cookie-toggle-row:has(input:checked) {
  background: var(--action-soft);
  border-color: var(--action-ink);
}
body.public-design #cookie-consent-banner .cookie-toggle-row:not(.cookie-toggle-locked):has(input:checked):hover {
  background: var(--action-soft-hover);
  border-color: var(--action-ink);
}
body.public-design #cookie-consent-banner .cookie-toggle-locked { opacity: 1; cursor: default; }
body.public-design #cookie-consent-banner input.cookie-switch-input {
  position: static;
  display: block;
  appearance: auto;
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  min-width: 20px;
  min-height: 20px;
  margin: 3px 0 0;
  padding: 0;
  opacity: 1;
  visibility: visible;
  overflow: visible;
  clip: auto;
  clip-path: none;
  white-space: normal;
  accent-color: var(--action-ink);
  cursor: pointer;
}
body.public-design #cookie-consent-banner input.cookie-switch-input + .cookie-switch { display: none; }
body.public-design #cookie-consent-banner .cookie-switch-locked {
  margin-top: 3px;
  background: var(--btn-action-bg);
  box-shadow: none;
  opacity: 1;
}
body.public-design #cookie-consent-banner .cookie-switch-locked .cookie-switch-thumb {
  background: var(--btn-action-fg);
  box-shadow: none;
}
@media (max-width: 640px) {
  body.public-design #cookie-consent-banner { width: calc(100% - 16px); }
  body.public-design #cookie-consent-banner .cookie-glass {
    max-height: calc(100vh - 112px);
    max-height: calc(100dvh - 112px);
    padding: 16px !important;
  }
  body.public-design #cookie-consent-banner .cookie-stagger[data-stagger="0"] { display: block !important; }
  body.public-design #cookie-consent-banner .cookie-stagger[data-stagger="1"] { margin-top: 4px !important; }
  body.public-design #cookie-consent-banner .cookie-stagger[data-stagger="2"] { margin-top: 16px !important; }
}
@media (max-width: 480px) {
  body.public-design #cookie-consent-banner .cookie-stagger[data-stagger="2"] { grid-template-columns: minmax(0, 1fr); gap: 8px; }
}
