/* ------------------------------------------------------------------
   Consentry — Korrekturen am Kern-Layout

   NICHT projektspezifisch. Diese Regeln gehören inhaltlich in
   banner.css des Plugins und sollten dort nachgezogen werden. Sie
   liegen nur deshalb separat, weil banner.css im statischen Adapter
   eine unveränderte Kopie bleibt — sonst lässt sich eine neue
   Plugin-Fassung nicht mehr einfach übernehmen.

   Ladereihenfolge:  banner.css → kern-korrekturen.css → <theme>.css

   Anlass: hkh-maschinen.de, 09.08.2026. Auf dem iPhone waren die
   Auswahl-Buttons nicht zu sehen. Zwei Ursachen:

   1. "max-height: 90vh" — auf iOS bezieht sich vh auf das Fenster
      OHNE die Browserleisten. Die Karte wird damit höher als der
      sichtbare Bereich, und ihr unteres Ende samt Buttons liegt
      unter der Safari-Leiste.

   2. Die Karte scrollt als Ganzes ("overflow-y: auto"), die Buttons
      also mit. Bei langem Text oder vier Kategorien stehen sie
      außerhalb des Bildes — ohne jeden Hinweis, dass dort noch
      etwas kommt.

   Das ist nicht nur unschön: Wer die Auswahlmöglichkeiten nicht
   sieht, kann nicht wirksam einwilligen. Die Buttons müssen ohne
   Scrollen erreichbar sein.
   ------------------------------------------------------------------ */

/* ---------- 1. Karte an den tatsächlich sichtbaren Bereich binden ----
   dvh = dynamic viewport height, berücksichtigt ein- und ausfahrende
   Browserleisten. Ältere Browser ignorieren die Zeile und behalten
   die 90vh aus dem Kern. */
.consentry-card {
  max-height: 90dvh;
  overscroll-behavior: contain;   /* kein Durchscrollen auf die Seite darunter */
}

/* ---------- 2. Aktionsleiste bleibt immer sichtbar -------------------
   position: sticky im scrollenden Container: Die Leiste klebt am
   unteren Rand, solange darüber noch Inhalt wegscrollt, und rückt am
   Ende an ihren normalen Platz — darunter bleiben die Links zu
   Impressum und Datenschutz erreichbar.

   Die negativen Seitenränder heben das Polster der Karte auf, damit
   die Leiste die volle Breite deckt und kein Text seitlich daneben
   durchscrollt.

   "bottom" ist negativ und entspricht dem unteren Polster der Karte:
   sticky richtet sich am Polsterrand aus, nicht am Kartenrand. Ohne
   den Versatz bliebe unten ein Streifen, durch den Text durchläuft. */
.consentry-card__actions,
.consentry-panel__actions {
  position: sticky;
  bottom: -1.5rem;                /* = padding-bottom der Karte */
  z-index: 2;
  background: var(--cnsy-surface);
  margin-left: -1.5rem;
  margin-right: -1.5rem;
  padding: 1rem 1.5rem 1.5rem;
  border-top: 1px solid var(--cnsy-border);
  /* nach oben auslaufender Schatten: zeigt, dass darüber Inhalt
     weiterläuft — der fehlende Scroll-Hinweis */
  box-shadow: 0 -10px 14px -10px rgba(0, 0, 0, 0.22);
}

/* Der Kern gibt .consentry-panel__actions einen eigenen Abstand nach
   oben. Der ist mit der Leiste doppelt und wird zurückgenommen. */
.consentry-panel__actions {
  margin-top: 0;
  padding-top: 1rem;
}

/* Ab 720 px setzt der Kern das Kartenpolster auf 2rem — Versatz und
   Ränder müssen mitwachsen. */
@media (min-width: 720px) {
  .consentry-card__actions,
  .consentry-panel__actions {
    bottom: -2rem;
    margin-left: -2rem;
    margin-right: -2rem;
    padding: 1rem 2rem 1.5rem;
  }
}

/* ---------- 3. Nur der Beschreibungstext scrollt ---------------------
   Mit Punkt 2 allein bleiben die Buttons sichtbar, die Links auf
   Impressum und Datenschutzerklärung aber nicht: Sie stehen im Markup
   NACH der Leiste und liegen damit dahinter, bis man ganz nach unten
   scrollt. Beide Seiten müssen ohne Vorbedingung erreichbar sein —
   also müssen die Links auch ohne Scrollen zu sehen sein.

   Deshalb wird die Karte eine Flex-Spalte: Alles behält seine Höhe,
   nur der lange Beschreibungstext bekommt den Restplatz und scrollt
   darin. Kopf, Buttons, Einstellungen-Zeile und Rechtslinks sind damit
   immer im Bild.

   min-height verhindert, dass der Textbereich auf niedrigen Fenstern
   ganz zusammenfällt. Reicht der Platz dann trotzdem nicht, greift das
   overflow der Karte aus dem Kern als Rückfall — und Punkt 2 hält
   wenigstens die Buttons fest. */
.consentry-card {
  display: flex;
  flex-direction: column;
}

.consentry-card > * {
  flex: 0 0 auto;
}

/* Muss NACH der Regel oben stehen: gleiche Spezifität, die spätere gewinnt. */
.consentry-card__body,
.consentry-panel__cats {
  flex: 1 1 auto;
  min-height: 4rem;
  overflow-y: auto;
  overscroll-behavior: contain;
}

/* .consentry-panel__cats ist im Kern selbst eine Flex-Spalte. Sobald sie
   in der Höhe begrenzt ist, schrumpfen ihre Kinder — die Kacheln wurden
   von 82-102 px auf 37 px gequetscht, die Beschreibungen abgeschnitten
   (.consentry-cat hat overflow: hidden) und die Schalter ragten heraus.
   Kacheln behalten ihre Höhe, gescrollt wird der Container. */
.consentry-panel__cats > * {
  flex-shrink: 0;
}

/* ---------- 4. Platz auf kleinen Displays ---------------------------
   Der Logo-Kopf ist der größte Posten der Karte, der keine
   Information trägt — auf einem Telefon rund 111 px von 746 px. Weil
   Buttons und Rechtslinks ihre Höhe behalten, geht dieser Platz
   direkt vom lesbaren Text ab: gemessen blieben nur 130 px von
   442 px Beschreibung im Bild.

   Auf schmalen und auf niedrigen Fenstern wird der Kopf deshalb
   flacher. Das Logo bleibt erkennbar, der Text gewinnt etwa 50 px. */
@media (max-height: 640px), (max-width: 560px) {
  .consentry-brand {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
  }
  .consentry-brand__logo {
    max-height: 38px;
  }
}
