/*
 * A-11 Barrierefreiheit Cookie-Panel (om_cookie_manager, Verhalten in cookie-panel-a11y.js).
 * Geschlossen: unsichtbar und ohne Tab-Stopps (vorher nur aus dem Bild geschoben, 4 Tab-Stopps auf jeder Seite).
 * visibility wechselt beim Schließen erst nach der Ausblend-Animation, beim Öffnen sofort.
 */
.om-cookie-panel {
  visibility: hidden;
  transition: transform 0.5s ease, opacity 0.3s, visibility 0s linear 0.5s;
}
.om-cookie-panel.active {
  visibility: visible;
  transition: transform 0.5s ease, opacity 0.3s, visibility 0s;
}
@media (prefers-reduced-motion: reduce) {
  .om-cookie-panel,
  .om-cookie-panel.active { transition: none; }
}

/* P-71: höchstens so hoch wie der Bildschirm, der Inhalt scrollt im Panel (bei 320×568 und quer lagen „Statistiken“
   und der Text oberhalb des Bildschirms). dvh: sichtbare Höhe auf Mobilgeräten mit ein-/ausfahrender Adressleiste. */
.om-cookie-panel {
  max-height: 100vh;
  max-height: 100dvh;
  overflow-y: auto;
  overscroll-behavior: contain;
}
/* niedrige Bildschirme (Smartphone, quer): Abstände kleiner, damit mehr ohne Scrollen sichtbar ist */
@media (max-height: 600px) {
  .om-cookie-panel { padding: 10px 15px 15px; }
  .om-cookie-panel .cookie-panel__selection { margin-top: 0.5em; }
  .om-cookie-panel p { padding: 0.5em 0; }
  .om-cookie-panel .cookie-panel__control,
  .om-cookie-panel .cookie-panel__link { padding-top: 0.5em; }
  .om-cookie-panel .cookie-panel__button + .cookie-panel__button,
  .om-cookie-panel.active .cookie-panel__button + .cookie-panel__button { margin-top: 8px; }
}

/* Fokus auf dem Panel selbst (beim Öffnen, tabindex=-1, kein Bedienelement): ohne Rahmen, sonst hätte das Banner
   beim ersten Besuch für alle einen weißen Rand; der nächste Tab landet sichtbar auf „Statistiken“ */
.om-cookie-panel:focus,
.om-cookie-panel:focus-visible { outline: none; }

/* Checkboxen: statt display:none unsichtbar über dem gezeichneten Kästchen, damit per Tastatur bedienbar */
.om-cookie-panel .cookie-panel__checkbox-wrap { position: relative; }
.om-cookie-panel .cookie-panel__checkbox {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 19px;
  height: 19px;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}
.om-cookie-panel .cookie-panel__checkbox:disabled { cursor: default; }
.om-cookie-panel .cookie-panel__checkbox:focus-visible + label::before {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

/* K3 Datenschutz (24.10.2026): Ablehnen gleichwertig zur Zustimmung. Alle drei Buttons gleich (Reihenfolge bleibt),
   statt „Alle akzeptieren“ türkis gefüllt und die anderen nur umrandet (custom.css). Weiß umrandet auf dem blauen
   Panel: Schrift und Rand 6,7:1 (Panel über weißer Seite), gefülltes Türkis hätte für die Schrift nur 4,6:1 und für
   den Rand gegen das Blau 1,5:1. Grund deckend im Blau des Panels über weißer Seite (#1a59b3), damit unter den Buttons
   keine Seitenschrift durchscheint (das Panel ist zu 90 % deckend). Hover/Fokus: weiß gefüllt mit blauer Schrift (8,4:1). */
.om-cookie-panel .cookie-panel__control .cookie-panel__button,
.om-cookie-panel.active .cookie-panel__control .cookie-panel__button {
  background-color: #1a59b3;
  border: 2px solid #fff;
  color: #fff;
  font-weight: 400;
}
.om-cookie-panel .cookie-panel__control .cookie-panel__button:hover,
.om-cookie-panel .cookie-panel__control .cookie-panel__button:focus-visible,
.om-cookie-panel.active .cookie-panel__control .cookie-panel__button:hover,
.om-cookie-panel.active .cookie-panel__control .cookie-panel__button:focus-visible {
  background-color: #fff;
  color: #0047ab;
}
/* Links im Panel: Datenschutz und Impressum nebeneinander, bei wenig Platz untereinander */
.om-cookie-panel .cookie-panel__link {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.25em 1.5em;
}

/* Buttons und Link im Panel: sichtbarer Tastaturfokus auf dem blauen Grund */
.om-cookie-panel .cookie-panel__button:focus-visible,
.om-cookie-panel a:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

/* Fokus-Rücksprung an den Seitenanfang nach der Wahl im Banner (body tabindex=-1, nur kurz) */
body[tabindex="-1"]:focus { outline: none; }

/* A-11 Suche in der Kopfzeile: Lupen-Button im Dropdown mit weißem Fokusrahmen (Browser-Standard blau auf blau).
   Der Button ist per CSS-Maske gezeichnet, die auch seinen outline abschneidet: Rahmen daher am Wrapper. */
.navbar__searchdrop .tx-indexedsearch-search-submit { display: flex; }
.navbar__searchdrop .tx-indexedsearch-search-submit:has(> .tx-indexedsearch-searchbox-button:focus-visible) {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

/* Platz unter dem Footer, solange das Banner offen ist (cookie-panel-a11y.js): im Grau der Footer-Leiste statt weiß */
.cookie-panel-spacer { height: 0; background-color: #e1e6ea; }

/* A-39 Cookie-Liste auf der Datenschutzseite (Templates/CookiePanel/Info.html von rob_go): Gruppenzeile hervorgehoben,
   lange Cookie-Namen umbrechen statt die Tabelle zu verbreitern */
.om-cookie-info .table { margin-bottom: 15px; }
.om-cookie-info .om-cookie-info__group th { background-color: #f7f7f7; }
.om-cookie-info .om-cookie-info__group p { margin: 0.25em 0 0; font-weight: 400; }
.om-cookie-info .om-cookie-info__name { overflow-wrap: anywhere; }
@media (min-width: 768px) {
  /* Name und Anbieter nicht am Bindestrich umbrechen (go-robinson.com, __Secure-typo3nonce_*) */
  .om-cookie-info .om-cookie-info__name,
  .om-cookie-info td[data-label="Anbieter"] { white-space: nowrap; }
}
.om-cookie-info td p { margin: 0; }
/* schmal: je Cookie ein Block, Spaltenname aus data-label vor dem Wert (Kopfzeile nur für Screenreader) */
@media (max-width: 767px) {
  .om-cookie-info .table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
  }
  .om-cookie-info .table,
  .om-cookie-info .table tbody,
  .om-cookie-info .table tr,
  .om-cookie-info .table th,
  .om-cookie-info .table td { display: block; width: 100%; }
  .om-cookie-info .table > tbody > tr > td { border: 0; padding: 4px 10px; }
  .om-cookie-info .table > tbody > tr:not(.om-cookie-info__group) { border-top: 1px solid #000; padding: 6px 0; }
  .om-cookie-info .table td::before { content: attr(data-label) ": "; font-weight: 700; }
  .om-cookie-info .table td p { display: inline; }
}
