/* Nova Cookie-Banner — self-contained, unabhängig vom Seiten-Design.
   Feste Farbwerte (nicht var()), weil die Rechtsseiten die Button-Variablen
   nicht definieren und das Portal andere Variablennamen nutzt.
   Heller Default + dunkle Variante über [data-theme="dark"] (Portal). */

.consent {
  position: fixed; left: 50%; transform: translateX(-50%); bottom: 18px; z-index: 90;
  width: calc(100% - 24px); max-width: 420px;
  background: #FFFFFF; color: #182620; border: 1px solid #E2E5DA; border-radius: 10px;
  box-shadow: 0 14px 40px rgba(24, 38, 32, 0.18); padding: 16px 18px;
  font-family: "Avenir Next", "Futura", "Century Gothic", "Segoe UI", sans-serif;
  line-height: 1.5;
}
.consent[hidden] { display: none; }
.consent > b { font-size: 13.5px; display: block; margin-bottom: 4px; }
.consent p { margin: 0 0 12px; font-size: 12.5px; line-height: 1.5; color: #55635B; }
.consent a { color: #3E6B57; }

.consent-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.consent-opts {
  display: flex; flex-direction: column; gap: 9px; margin: 0 0 12px;
  padding: 12px 14px; background: #F6F7F2; border-radius: 8px;
}
.consent-opts[hidden] { display: none; }
.consent-opts label { font-size: 12.5px; display: flex; gap: 9px; align-items: center; }
.consent-opts input { accent-color: #3E6B57; }

/* Buttons — eigene Klassen, da .btn nicht auf allen Seiten existiert */
.consent-btn {
  flex: 1 1 auto; white-space: nowrap; cursor: pointer;
  font-family: inherit; font-size: 13px; font-weight: 600;
  padding: 9px 14px; border-radius: 8px; border: 1px solid transparent;
}
.consent-btn--primary { background: #3E6B57; color: #FFFFFF; border-color: #3E6B57; }
.consent-btn--primary:hover { background: #2F5443; border-color: #2F5443; }
.consent-btn--ghost { background: transparent; color: #182620; border-color: #E2E5DA; }
.consent-btn--ghost:hover { border-color: #182620; }
.consent-opts .consent-btn { margin-top: 4px; }

.consent-link {
  background: none; border: none; padding: 0 2px; font-family: inherit; font-size: 12px;
  color: #55635B; text-decoration: underline; text-underline-offset: 3px; cursor: pointer;
}
.consent-link:hover { color: #182620; }

/* ---------- Dunkle Variante (Portal) ---------- */
.consent[data-theme="dark"] {
  background: #151C2C; color: #E9EDF3; border-color: rgba(226, 234, 246, 0.14);
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.5);
}
.consent[data-theme="dark"] p { color: #97A3B6; }
.consent[data-theme="dark"] a { color: #D99A66; }
.consent[data-theme="dark"] .consent-opts { background: #1B2336; }
.consent[data-theme="dark"] .consent-opts input { accent-color: #D99A66; }
.consent[data-theme="dark"] .consent-btn--primary { background: #D99A66; color: #17100A; border-color: #D99A66; }
.consent[data-theme="dark"] .consent-btn--primary:hover { background: #E5AC7C; border-color: #E5AC7C; }
.consent[data-theme="dark"] .consent-btn--ghost { color: #E9EDF3; border-color: rgba(226, 234, 246, 0.24); }
.consent[data-theme="dark"] .consent-btn--ghost:hover { border-color: #E9EDF3; }
.consent[data-theme="dark"] .consent-link { color: #97A3B6; }
.consent[data-theme="dark"] .consent-link:hover { color: #E9EDF3; }
