.kc-banner { font-family: Arial, Helvetica, sans-serif; color: #111; font-size: 14px; line-height: 1.6; }
.kc-banner[hidden], .kc-banner [hidden] { display: none !important; }
.kc-banner, .kc-banner * { box-sizing: border-box; }
.kc-banner {
  position: fixed;
  z-index: 2147483646;
  inset: auto 0 0;
  background: #fff;
  border-top: 1px solid #e1e1e1;
  box-shadow: 0 -6px 32px rgba(0, 0, 0, .08);
  max-height: 85vh;
  max-height: 85dvh;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 28px 40px max(28px, env(safe-area-inset-bottom));
  text-align: left;
}
.kc-inner { max-width: 1440px; margin: 0 auto; display: flex; align-items: center; gap: 24px 40px; flex-wrap: wrap; }
.kc-copy { flex: 1 1 360px; }
.kc-banner h2 { font: 600 21px/1.3 Arial, Helvetica, sans-serif; margin: 0 0 10px; color: #111; letter-spacing: 0; text-transform: none; }
.kc-banner p { margin: 0; font: inherit; color: #444; }
.kc-banner a { color: #111; text-decoration: underline; text-underline-offset: 3px; }
.kc-actions { display: flex; gap: 10px; align-items: stretch; flex: 0 1 auto; margin-left: auto; }
.kc-banner .kc-button {
  appearance: none;
  min-height: 48px;
  padding: 12px 20px;
  margin: 0;
  border: 1px solid #ddd;
  border-radius: 0;
  background: #fff;
  color: #111;
  font: 600 14px/1.5 Arial, Helvetica, sans-serif;
  text-align: center;
  text-decoration: none;
  text-transform: none;
  letter-spacing: 0;
  white-space: nowrap;
  cursor: pointer;
  box-shadow: none;
}
.kc-banner .kc-button:hover { border-color: #111; background: #f6f6f6; }
.kc-banner .kc-accept { background: #000; border-color: #000; color: #fff; }
.kc-banner .kc-accept:hover { background: #222; color: #fff; }
.kc-banner :focus-visible, #kc-reopen:focus-visible { outline: 2px solid #111; outline-offset: 4px; }
.kc-preferences { flex: 1 0 100%; order: 1; }
.kc-banner h3 { font: 600 18px/1.4 Arial, Helvetica, sans-serif; margin: 0 0 12px; color: #111; }
.kc-option { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 16px 0; margin: 0; border-top: 1px solid #e6e6e6; font: inherit; cursor: pointer; }
.kc-option:first-of-type { cursor: default; }
.kc-description { display: block; color: #444; }
.kc-required { white-space: nowrap; font-size: 12px; color: #555; }
.kc-option input { appearance: auto; position: static; opacity: 1; width: 22px; height: 22px; margin: 0 4px; flex: 0 0 22px; accent-color: #000; cursor: pointer; }
.kc-banner.kc-expanded .kc-actions { order: 2; width: 100%; justify-content: flex-end; }
@media (max-width: 767px) {
  .kc-banner { padding: 22px 20px max(20px, env(safe-area-inset-bottom)); }
  .kc-inner { display: block; }
  .kc-banner h2 { font-size: 20px; }
  .kc-actions { display: flex; flex-direction: column; gap: 8px; margin-top: 20px; width: 100%; }
  .kc-banner .kc-button { width: 100%; white-space: normal; }
  .kc-accept { order: 3; }
  .kc-preferences { margin-top: 20px; }
}
