/* Cookie-Banner: Karte unten, hell, nutzt die Tokens aus styles.css */
.consent {
  position: fixed; z-index: 9000; right: 1rem; bottom: 1rem;
  width: min(460px, calc(100vw - 2rem)); max-height: 90vh; overflow-y: auto;
  background: var(--surface); color: var(--text);
  border-radius: var(--radius);
  box-shadow: 0 10px 32px rgba(20, 24, 28, .18);
  padding: 1.125rem 1.25rem 1.25rem;
  font: 400 1rem/1.5 var(--sans);
  opacity: 0; transform: translateY(12px);
  transition: opacity .35s var(--ease), transform .35s var(--ease);
}
.consent.is-open { opacity: 1; transform: none; }
.consent:focus { outline: none; }
.consent:focus-visible { outline: 3px solid var(--sand-deep); outline-offset: 3px; }
.consent__title { margin: 0 0 .4rem; font: 600 1.1875rem/1.3 var(--sans); letter-spacing: -.01em; color: var(--ink); }
.consent__intro { margin: 0; color: var(--text); }
.consent__intro a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.consent a:focus-visible, .consent button:focus-visible, .consent input:focus-visible + .consent__track {
  outline: 3px solid var(--sand-deep); outline-offset: 3px;
}
.consent__details { margin-top: 1rem; border-top: 1px solid var(--line); }
.consent__details[hidden] { display: none; }
.consent__row { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: .875rem 0; border-bottom: 1px solid var(--line); }
.consent__label { display: block; font-weight: 600; color: var(--ink); }
.consent__desc { margin: .125rem 0 0; font-size: .9375rem; color: var(--muted); }
.consent__switch { position: relative; flex: none; width: 52px; height: 32px; margin-top: .125rem; }
.consent__switch input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; z-index: 1; }
.consent__switch input:disabled { cursor: not-allowed; }
.consent__track { position: absolute; inset: 0; border-radius: 999px; background: #8a9094; transition: background .25s var(--ease); }
.consent__track::after { content: ""; position: absolute; top: 4px; left: 4px; width: 24px; height: 24px; border-radius: 50%; background: #fff; transition: transform .25s var(--ease); }
.consent__switch input:checked + .consent__track { background: var(--sand-deep); }
.consent__switch input:checked + .consent__track::after { transform: translateX(20px); }
.consent__switch input:disabled + .consent__track { opacity: .6; }
.consent__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-top: 1.125rem; }
.consent__btn { text-transform: none; letter-spacing: 0; font-size: 1rem; text-align: center; flex: 1 1 0; min-width: 9.5rem; justify-content: center; }
.consent__link { flex: 1 1 100%; min-height: 48px; background: none; border: 0; padding: .5rem; cursor: pointer; font: 500 1rem var(--sans); color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 640px) {
  .consent { left: 0; right: 0; bottom: 0; width: 100%; max-height: 50vh; border-radius: var(--radius) var(--radius) 0 0; box-shadow: 0 -8px 28px rgba(20, 24, 28, .16); padding: 1rem var(--gutter) 1rem; }
  .consent__title { font-size: 1.125rem; margin-bottom: .375rem; }
  .consent__intro { font-size: .9375rem; line-height: 1.5; }
  .consent__actions { margin-top: .75rem; gap: .5rem; }
  .consent__link { min-height: 44px; padding: .25rem; }
  .consent__btn { flex-basis: calc(50% - .375rem); min-width: 0; padding: 0 .5rem; font-size: .9375rem; white-space: nowrap; }
}
@media (prefers-reduced-motion: reduce) {
  .consent, .consent__track, .consent__track::after { transition: none; transform: none; }
}
