/* Einwilligung – Banner, Dialog und Sperrflächen.
   Bewusst zurückhaltend: die Frage soll ernst aussehen, nicht wie Werbung.
   Beide Schaltflächen sind gleich groß und stehen nebeneinander – ein
   „Ablehnen“, das kleiner ist oder erst im Untermenü auftaucht, gilt
   rechtlich als keine Einwilligung. */

.ew {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 9999;
  background: var(--ew-grund, #14181a); color: var(--ew-schrift, #fff);
  padding: 1.15rem 1.25rem calc(1.15rem + env(safe-area-inset-bottom));
  transform: translateY(100%); transition: transform .3s ease;
  box-shadow: 0 -6px 28px rgba(0,0,0,.22);
}
.ew.sichtbar { transform: none; }
.ew__innen { max-width: 62rem; margin: 0 auto; display: grid; gap: .6rem; }
.ew__titel { font-weight: 700; font-size: 1rem; margin: 0; }
.ew__text { font-size: .875rem; line-height: 1.55; margin: 0; opacity: .88; }

.ew__knoepfe { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: .2rem; }
.ew__knopf {
  flex: 1 1 12rem; min-height: 46px; padding: .7rem 1.2rem; cursor: pointer;
  font: inherit; font-weight: 600; font-size: .9rem;
  border: 2px solid currentColor; border-radius: var(--ew-radius, 0);
  background: transparent; color: inherit;
}
.ew__knopf:hover { background: rgba(255,255,255,.1); }
.ew__knopf--ja {
  background: var(--ew-akzent, #fff); color: var(--ew-akzent-schrift, #14181a);
  border-color: var(--ew-akzent, #fff);
}
.ew__knopf--ja:hover { opacity: .9; background: var(--ew-akzent, #fff); }
.ew__mehr {
  background: none; border: 0; padding: .2rem 0; cursor: pointer; font: inherit;
  font-size: .82rem; color: inherit; opacity: .78; text-decoration: underline;
  text-underline-offset: 3px; justify-self: start;
}

.ew-dialog {
  border: 0; border-radius: var(--ew-radius, 0); padding: 0;
  max-width: 34rem; width: calc(100% - 2rem);
  color: var(--ew-dialog-schrift, #14181a); background: var(--ew-dialog-grund, #fff);
  box-shadow: 0 18px 50px rgba(0,0,0,.28);
}
.ew-dialog::backdrop { background: rgba(0,0,0,.55); }
.ew-dialog__form { padding: 1.4rem; display: grid; gap: .9rem; }
.ew-dialog__titel { font-size: 1.15rem; margin: 0 0 .2rem; }

.ew-zweck { display: flex; gap: .75rem; align-items: flex-start; cursor: pointer;
  padding: .7rem; border: 1px solid rgba(0,0,0,.12); border-radius: var(--ew-radius, 0); }
.ew-zweck input { margin-top: .2rem; width: 18px; height: 18px; flex: none; cursor: pointer; }
.ew-zweck input:disabled { cursor: default; opacity: .55; }
.ew-zweck__text { display: grid; gap: .2rem; }
.ew-zweck__text b { font-size: .9rem; }
.ew-zweck__text span { font-size: .82rem; line-height: 1.5; opacity: .78; }
.ew-dialog .ew__knopf { border-color: currentColor; }
.ew-dialog .ew__knopf--ja {
  background: var(--ew-dialog-schrift, #14181a); color: var(--ew-dialog-grund, #fff);
  border-color: var(--ew-dialog-schrift, #14181a);
}

/* Was noch nicht geladen werden darf, steht als ruhige Fläche da – nicht als
   Fehler, sondern als Angebot. */
.ew-sperre {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: .9rem; min-height: 280px; height: 100%; padding: 1.6rem; text-align: center;
  background: var(--ew-sperre-grund, rgba(0,0,0,.05));
}
.ew-sperre p { margin: 0; font-size: .85rem; line-height: 1.5; opacity: .8; max-width: 26rem; }
.ew-sperre__knopf {
  min-height: 44px; padding: .65rem 1.3rem; cursor: pointer; font: inherit;
  font-weight: 600; font-size: .875rem; color: inherit;
  border: 2px solid currentColor; border-radius: var(--ew-radius, 0); background: transparent;
}
.ew-sperre__knopf:hover { background: rgba(0,0,0,.06); }

@media (prefers-reduced-motion: reduce) { .ew { transition: none; } }

/* ── Dialog mit Reitern ────────────────────────────────────────────────
   Vier Ansichten, weil eine Einwilligung vier Fragen beantworten muss:
   welche Zwecke, welche Dienste, wer bekommt die Daten – und was habe ich
   früher schon zugestimmt. */

.ew-dialog { width: min(920px, 94vw); }
.ew-kopf { display: flex; align-items: center; gap: 14px; padding-bottom: 14px;
  border-bottom: 1px solid rgba(0,0,0,.12); }
.ew-kopf__logo { height: 38px; width: auto; max-width: none; }
.ew-kopf__titel { font-size: 1.1rem; flex: 1; }
.ew-kopf__verweise { display: flex; gap: 14px; font-size: .8rem; }
.ew-kopf__verweise a { color: inherit; opacity: .7; }
.ew-dialog__text { font-size: .85rem; line-height: 1.55; opacity: .8; margin: 0; }

.ew-reiter { display: flex; gap: 2px; border-bottom: 1px solid rgba(0,0,0,.12);
  overflow-x: auto; scrollbar-width: none; }
.ew-reiter::-webkit-scrollbar { display: none; }
.ew-reiter__knopf { border: 0; background: none; padding: 10px 16px; cursor: pointer;
  font: inherit; font-size: .85rem; color: inherit; opacity: .6; white-space: nowrap;
  border-bottom: 2px solid transparent; margin-bottom: -1px; }
.ew-reiter__knopf[aria-current="true"] { opacity: 1; font-weight: 600;
  border-bottom-color: currentColor; }

.ew-schnell { display: flex; gap: 8px; justify-content: flex-end; }
.ew-schnell__knopf { border: 1px solid currentColor; background: none; cursor: pointer;
  font: inherit; font-size: .78rem; padding: 5px 12px; border-radius: var(--ew-radius, 0);
  color: inherit; opacity: .75; }
.ew-schnell__knopf:hover { opacity: 1; }

.ew-ansicht { max-height: 46vh; overflow-y: auto; }
.ew-liste { display: grid; gap: 8px; }
.ew-eintrag { border: 1px solid rgba(0,0,0,.12); border-radius: var(--ew-radius, 0);
  padding: 12px 14px; }
.ew-eintrag__kopf { display: flex; gap: 12px; align-items: flex-start; }
.ew-eintrag__text { display: grid; gap: 3px; min-width: 0; flex: 1; }
.ew-eintrag__text b { font-size: .9rem; }
.ew-eintrag__text span { font-size: .8rem; line-height: 1.5; opacity: .8; }
.ew-eintrag__text a { font-size: .8rem; }
.ew-leise { opacity: .6 !important; }
.ew-leer { font-size: .85rem; opacity: .7; margin: 0; padding: 10px 0; }

.ew-schalter { flex: none; margin: 0; cursor: pointer; }
.ew-schalter input { width: 20px; height: 20px; cursor: pointer; margin: 0; }
.ew-schalter input:disabled { opacity: .5; cursor: default; }

.ew-mehr { margin-top: 10px; }
.ew-mehr > summary { cursor: pointer; font-size: .78rem; opacity: .7; }
.ew-detail { padding: 8px 0 0 14px; display: grid; gap: 2px; }
.ew-detail b { font-size: .8rem; }
.ew-detail span { font-size: .75rem; opacity: .7; line-height: 1.45; }

.ew-dialog__fuss { border-top: 1px solid rgba(0,0,0,.12); padding-top: 14px; }

.ew-sperre__knoepfe { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }
.ew-sperre__mehr { border: 0; background: none; cursor: pointer; font: inherit;
  font-size: .8rem; color: inherit; opacity: .7; text-decoration: underline;
  text-underline-offset: 3px; }
