/* Kinky Legal — minimal consent banner
   Colors come from CSS variables injected by PHP (Settings → Kinky Legal). */

.kl {
  position: fixed;
  z-index: 999999;
  left: 16px;
  bottom: 16px;
  width: min(310px, calc(100vw - 32px));
  font-family: inherit;
  -webkit-font-smoothing: antialiased;
}

.kl[hidden] { display: none; }

.kl--bar   { left: 0; right: 0; bottom: 0; width: auto; }
.kl--center{ inset: 0; width: auto; display: grid; place-items: center; }

.kl__scrim { display: none; }
.kl--center .kl__scrim { display: block; position: fixed; inset: 0; background: rgba(0,0,0,.6); }

.kl__box {
  position: relative;
  background: var(--kl-bg, #0A0A0A);
  color: var(--kl-text, #fff);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: var(--kl-radius, 0px);
  padding: 14px;
  box-shadow: 0 12px 40px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.03);
  animation: kl-in .2s ease both;
}

.kl--bar .kl__box {
  border: 0;
  border-top: 1px solid var(--kl-accent, #FF1B8D);
  padding: 10px 20px;
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}

.kl--center .kl__box { width: min(360px, calc(100vw - 32px)); max-height: 80vh; overflow-y: auto; }

@keyframes kl-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .kl__box { animation: none; } }

.kl__title {
  margin: 0 0 5px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--kl-accent, #FF1B8D);
}

.kl--bar .kl__title { display: none; }

.kl__body {
  margin: 0 0 12px;
  font-size: 11px;
  line-height: 1.5;
  opacity: .72;
}

.kl--bar .kl__body { margin: 0; flex: 1 1 240px; }

.kl__link { color: var(--kl-accent, #FF1B8D); text-decoration: underline; text-underline-offset: 2px; }

/* ---- Actions: one solid Accept, secondary choices as plain links ---- */

.kl__actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

.kl__btn {
  font: inherit;
  cursor: pointer;
  line-height: 1;
  white-space: nowrap;
  transition: background .15s, color .15s, border-color .15s, opacity .15s;
}

.kl__btn--solid {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 10px 26px 10px 16px;
  border-radius: var(--kl-radius, 0px);
  background: var(--kl-accent, #FF1B8D);
  color: #000000;
  border: 1px solid var(--kl-accent, #FF1B8D);
  box-shadow: 0 0 0 1px rgba(255,255,255,.08);
  flex: 0 0 auto;
}

.kl__btn--solid:hover { background: transparent; color: var(--kl-accent, #FF1B8D); }

/* Secondary actions. Plain text links — no button chrome, no matter what
   the theme's global button styles try to impose. */
.kl__btn--link {
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: .01em !important;
  text-transform: none !important;
  padding: 0 !important;
  margin: 0 !important;
  background: none !important;
  background-color: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  color: var(--kl-muted, #9A9A9A) !important;
  opacity: 1;
  text-decoration: underline !important;
  text-underline-offset: 3px;
}

.kl__btn--link:hover { color: var(--kl-accent, #FF1B8D) !important; }
.kl__btn--link:focus-visible { outline-offset: 2px; }

.kl__sep { font-size: 11px; opacity: .35; }

.kl__btn:focus-visible { outline: 2px solid var(--kl-accent, #FF1B8D); outline-offset: 2px; }

@media (max-width: 480px) {
  .kl__actions { row-gap: 8px; }
}

/* ---- Preferences ---- */

.kl__cat { border-top: 1px solid rgba(255,255,255,.09); padding: 9px 0; }
.kl__cat-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.kl__cat-name { font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.kl__cat-desc { margin: 4px 0 0; font-size: 10px; line-height: 1.45; color: var(--kl-muted, #8A8A8A); }
.kl__always { font-size: 9px; letter-spacing: .08em; text-transform: uppercase; color: var(--kl-muted, #8A8A8A); }

.kl__switch { position: relative; display: inline-block; width: 32px; height: 17px; flex: 0 0 auto; cursor: pointer; }
.kl__switch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }

.kl__slider {
  position: absolute; inset: 0;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  transition: background .15s, border-color .15s;
  pointer-events: none;
}

.kl__slider::before {
  content: ""; position: absolute;
  height: 11px; width: 11px; left: 2px; top: 2px;
  background: #fff; border-radius: 50%;
  transition: transform .15s;
}

.kl__switch input:checked + .kl__slider { background: var(--kl-accent, #FF1B8D); border-color: var(--kl-accent, #FF1B8D); }
.kl__switch input:checked + .kl__slider::before { transform: translateX(15px); }
.kl__switch input:focus-visible + .kl__slider { outline: 2px solid var(--kl-accent, #FF1B8D); outline-offset: 2px; }

.kl .screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px; overflow: hidden;
  clip: rect(1px,1px,1px,1px); white-space: nowrap;
}

/* Accept button — bigger, text centered, gap to the right */
.kl__btn.kl__btn--solid {
  font-size: 9px !important;
  padding: 12px 20px !important;
  text-align: center;
  margin-right: 20px;
}

.kl__actions { justify-content: center; }
