/* ===================================================================
   KI-Fassung v14 · 24.08.2026
   Vorfassungen: archiv/mobil-v13.css (die Krankheitenseiten, Block 9 -
                 am 24.08.2026 hochgeladen und an der laufenden Seite
                 nachgemessen: ?v=13, Abschnitte A bis Z, Fingerabdruck
                 f40d9935... bei 120 Regeln)
                 archiv/mobil-v12.css (Info-Sinnbild und zwei
                 Textkuerzungen - am 23.08.2026 spaetabends hochgeladen
                 und an der laufenden Seite nachgemessen: ?v=12,
                 Abschnitte A bis X, Fingerabdruck 19af9ca5... bei
                 114 Regeln)
                 archiv/mobil-v11.css (Kurortprofile und Kurortsuche,
                 Block 7 - am 23.08.2026 abends hochgeladen und an der
                 laufenden Seite nachgemessen: ?v=11, Abschnitte A bis X,
                 Fingerabdruck 008212f1... bei 112 Regeln)
                 archiv/mobil-v10.css (Belegungsampel und die vier
                 Lexikon-Uebersichten, Bloecke 4a und 5)
                 archiv/mobil-v09.css (Kliniksuche und die Ueberschrift
                 der Nichtkunden-Profile, Block 4)
                 archiv/mobil-v08.css (Klinikprofil, Block 3)
                 archiv/mobil-v07.css (Suchassistent, Block 2)
                 archiv/mobil-v06.css (Klinikliste als Bauteil, Block 1)
                 archiv/mobil-v05.css (Knopftexte, kleine Sinnbilder;
                 brachte vor allem den Pruefstand hervor)
                 archiv/mobil-v04.css (Registernavigation, Trefferliste,
                 Videos - liess aber die Hoehenbegrenzung der Sinnbilder
                 fallen, siehe Berichtigung unten)
                 archiv/mobil-v03.css (nahm Klinikprofil und Kliniksuche
                 hinzu, fesselte dabei aber die Ampel auf 46 Pixel)
                 archiv/mobil-v02.css (in Ordnung, aber fasste nur
                 Startseite und Suchassistent an)
                 archiv/mobil-v01.css (war kurz online und hat Schaden
                 angerichtet — siehe unten)

   Zweck:    Verhalten der Seite auf Bildschirmen unter 768 Pixeln.
   Original: keines (neue Datei)
   Gehoert nach: /appserv/mobil.css  auf dem Server
   Rueckbau: Datei leeren (nicht loeschen). Eine leere Fassung liegt in
             _notbremse/mobil.css bereit.

   -------------------------------------------------------------------
   WAS SICH GEGENUEBER v01 GEAENDERT HAT UND WARUM

   v01 hatte vier Regeln mit ALLGEMEINEN Kennzeichnungen, die auf JEDER
   Seite des Portals griffen, obwohl sie nur an EINER Seite geprueft
   waren. Auf Seiten mit anderem Aufbau haben sie das Layout zerstoert:

   1. .content, .content_outer, .container { overflow-wrap: break-word }
      ERSATZLOS GESTRICHEN. Diese Regel erlaubt dem Browser, INNERHALB
      von Woertern umzubrechen. In schmalen Spalten zerlegt er dann
      jedes Wort in eine senkrechte Buchstabensaeule. Gemessen auf der
      Klinikseite: "Kurantrag" war 9 Pixel breit und 250 Pixel hoch.
      Sie war ohnehin nur ein Pflaster ueber einem Layoutfehler — und
      das Pflaster war schlimmer als die Wunde.

   2. .bootstrap-select { width: 100% } und { float: none }
      AUF DEN SUCHASSISTENTEN EINGEGRENZT. Auf der Kliniksuche stehen
      die Auswahlfelder mehrspaltig nebeneinander; volle Breite und
      aufgehobener Umfluss haben sie uebereinandergeworfen.

   3. .container.content { padding: 12px }
      AUF DEN SUCHASSISTENTEN EINGEGRENZT (.container.content.suchauftraege).

   4. img, table, iframe { max-width:100%; height:auto }
      ERSATZLOS GESTRICHEN. Ein Eingriff in jedes Bild des Portals,
      geprueft an fuenf Seiten von vielen.

   -------------------------------------------------------------------
   WAS v03 GEGENUEBER v02 HINZUFUEGT

   v02 war fehlerfrei, fasste aber nur Startseite und Suchassistent an.
   Auf Klinikprofil und Kliniksuche aenderte sie nichts - was richtig
   war, weil sie dort nicht geprueft war, aber den Eindruck hinterliess,
   die Datei wirke gar nicht. Beide Seiten sind auf dem Telefon jedoch
   unabhaengig von uns defekt, und zwar NICHT wegen hidden-xs, sondern
   wegen Spalten, die auf 360 Pixeln nicht umbrechen.

   v03 setzt daher zwei Abschnitte hinzu - E fuer das Klinikprofil,
   F fuer die Kliniksuche. Beide sind an ihren Seitentyp gebunden
   (.klinik, .kliniken_suche) und einzeln im Bild geprueft.

   -------------------------------------------------------------------
   WAS AUCH v03 NICHT BEHEBT: Der seitliche Ueberstand. Er war
   vor v01 da und ist es wieder — auf der Kurortseite 127 Pixel, auf
   der Klinikseite 104, im Lexikon 75. Das ist bewusst so: ein
   bestehender Mangel ist besser als ein neuer, groesserer. Diese
   Ueberstaende gehoeren einzeln und geprueft behoben, nicht mit einer
   Regel fuer alle.

   -------------------------------------------------------------------
   BAUART

   JEDE Regel steht innerhalb des einen Blocks @media (max-width:767px).
   JEDE Regel nennt ausserdem den Seitentyp, an dem sie geprueft wurde —
   .index_page1 fuer die Startseite, .suchauftraege fuer den
   Suchassistenten. Ausnahmen sind nur die beiden Fusszeilenregeln und
   der Banner, die ueberall gleich aussehen und ueberall geprueft sind.

   GEPRUEFT am 21.08.2026 in einem 360 Pixel breiten Rahmen an:
   Startseite, Suchassistent, Kliniksuche, Klinikprofil, Kurortprofil,
   Lexikon — jeweils mit UND ohne diese Datei, im Bild verglichen,
   nicht nur in Zahlen. Buchstabensaeulen: 0 auf allen sechs Seiten.

   Belege fuer die Abschnitte E und F:
   - "Kurantrag" im Klinikprofil: vorher 0 x 35 px (abgeschnitten),
     nachher 205 x 35 px (lesbare Zeile).
   - Auswahlfelder der Kliniksuche: vorher vier Kaesten zu 50 px mit
     144 px breiten Feldern darin, uebereinanderliegend; nachher vier
     Kaesten zu 251 px, untereinander, alle bei derselben linken Kante.
   - "Jetzt anfragen" bleibt 12 px innerhalb seines Kastens.
   =================================================================== */

@media (max-width: 767px) {

  /* ===== A. Startseite: Einstiegsblock zurueckholen =====
     Der Block mit "Rehaklinik finden..." und dem Knopf "Jetzt Klinik
     finden" war auf Telefonen vollstaendig ausgeblendet. Alle Regeln
     hier haengen an .index_page1 und greifen nur dort. */
  .container.content.hidden-xs.index.index1 { display: block !important; }

  /* Das Hintergrundfoto legt sich bei 360 Pixeln unter den Text. */
  .index_page1 { background-image: none !important; background-color: #eef6fb !important;
                 padding: 14px 12px !important; margin: 0 !important; }

  /* 24 Pixel und fett: Damit gilt fuer die gruene Ueberschrift die
     Kontrastschwelle fuer grosse Schrift (3:1), die der Markenton
     #429C00 auf diesem Grund mit 3,2:1 gerade erfuellt. */
  .index_page1 .subtitle { font-size: 24px !important; font-weight: 700 !important;
                           line-height: 1.25 !important; margin-bottom: 8px !important; }

  .index_page1 .second, .index_page1 .third { width: 100% !important; float: none !important;
                                              padding-left: 0 !important; padding-right: 0 !important; }
  .index_page1 .second .row > div { width: 100% !important; float: none !important;
                                    padding-left: 0 !important; padding-right: 0 !important; }
  .index_page1 .third .left { padding-left: 0 !important; padding-right: 0 !important; }
  .index_page1 .third > .row > .left > a { display: block !important; width: 100% !important; }
  .index_page1 .third .left span { display: block !important; width: 100% !important; }

  /* die drei Schritte untereinander statt als Pfeilreihe nebeneinander */
  .index_page1 .pfeil { display: block !important; width: 100% !important; float: none !important;
                        height: auto !important; min-height: 0 !important;
                        margin: 0 0 6px 0 !important; padding: 8px 12px !important;
                        background: #fff !important; border-radius: 4px !important; }
  .index_page1 .pfeil img, .index_page1 .pfeil_img { display: none !important; }
  .index_page1 .pfeil .number { font-size: 20px !important; line-height: 1.4 !important;
                                display: inline !important; float: none !important;
                                position: static !important; width: auto !important;
                                margin: 0 6px 0 0 !important; }
  .index_page1 .pfeil .text { font-size: 16px !important; line-height: 1.4 !important;
                              display: inline !important; float: none !important;
                              position: static !important; width: auto !important;
                              text-align: left !important; }
  .index_page1 .pfeil .text br { display: none !important; }

  /* der gelbe Knopf ueber die volle Breite */
  .index_page1 .suchauftrag_button_outer,
  .index_page1 .generic_button_round_outer,
  .index_page1 .generic_button_round { width: 100% !important; max-width: 100% !important; }

  /* ===== B. NUR der Suchassistent =====
     Kennzeichnung .suchauftraege. Die Kliniksuche heisst .kliniken_suche,
     das Klinikprofil .klinik, das Kurortprofil .kurort — sie sind von
     allem hier ausgenommen.

     Gemessen: Vier ineinanderliegende Ebenen mit je 15 bis 30 Pixeln
     Innenabstand fressen von 341 verfuegbaren Pixeln 150 auf. Deshalb
     waren die Formularfelder nur 191 Pixel breit. Danach 287. */
  .container.content.suchauftraege { padding-left: 12px !important; padding-right: 12px !important; }
  .suchauftraege .suchauftraege_formgroup { padding-left: 0 !important; padding-right: 0 !important; }
  .suchauftraege .suchauftraege_formgroup > .form-group > [class*="col-"] {
        padding-left: 0 !important; padding-right: 0 !important; }

  .suchauftraege .suchauftraege_formgroup .bootstrap-select,
  .suchauftraege .suchauftraege_formgroup .bootstrap-select > .btn.dropdown-toggle,
  .suchauftraege .suchauftraege_formgroup textarea,
  .suchauftraege .suchauftraege_formgroup input[type="text"],
  .suchauftraege .suchauftraege_formgroup input[type="email"] {
        width: 100% !important; max-width: 100% !important; }

  /* Der Knopf darf umbrechen, damit "Fachgebiet / Hauptindikation"
     vollstaendig dasteht. float:none ist noetig, weil ein gefloatetes
     Kind nicht zur Hoehe seines Kastens beitraegt und sich sonst ueber
     die Erklaerung darunter legt. */
  .suchauftraege .suchauftraege_formgroup .bootstrap-select > .btn.dropdown-toggle {
        white-space: normal !important; height: auto !important; min-height: 40px !important;
        float: none !important; }
  .suchauftraege .suchauftraege_formgroup .bootstrap-select.btn-group { height: auto !important; }

  /* Die Kurzerklaerungen standen in 14 Pixeln Grau (#808080), das auf
     Weiss nur 3,9:1 ergibt; die Empfehlung verlangt 4,5:1. #4a4a4a
     erreicht rund 9:1. */
  .suchauftraege .suchauftraege_formgroup p { color: #4a4a4a !important; font-size: 14px !important;
        line-height: 1.4 !important; width: 100% !important; max-width: 100% !important; }

  /* ===== C. Fusszeile =====
     Die Liste enthaelt echte Verweise und leere Fuellpunkte unter
     derselben Kennzeichnung. :has(a) trennt beide. Wo ein Browser
     :has() nicht kennt, bleibt es wie bisher — also ohne Schaden. */
  footer li.hidden-xs:has(a) { display: list-item !important; }
  footer .nav-item.separator { display: none !important; }

  /* ===== D. Werbebanner =====
     Der mobile Ersatzbanner belegte ein Viertel der Bildschirmbreite,
     rund 80 Pixel. Auf Ansage weggelassen.
     Fuer halbe Breite die Zeile darunter freigeben und diese hier
     stilllegen. */
  .banner_right_outer_xs { display: none !important; }
  /* .banner_right_outer_xs .col-xs-3 { width: 50% !important; } */

  /* ===== E. Klinikprofil: die Kontaktspalte untereinander =====
     Gemessen am 21.08.2026: Der Kasten .klinik_platze_status ist auf
     360 px nur 251 px breit. Darin lagen die Ampelspalte (82 px) und
     der Kontaktbereich (165 px) NEBENeinander, und im Kontaktbereich
     noch einmal zwei Haekchenspalten zu je 67 px. Die Liste darin hat
     40 px Innenabstand bei 40 px Breite - es blieben 0 px fuer den
     Text. "Kurantrag" war deshalb unlesbar: abgeschnitten, und mit der
     Umbruchregel der v01 eine 250 px hohe Buchstabensaeule.
     Danach: "Kurantrag" ist 205 x 35 px, also eine normale Zeile. */
  .klinik .klinik_platze_status .left,
  .klinik .klinik_platze_status .right {
        width: 100% !important; float: none !important;
        padding-left: 10px !important; padding-right: 10px !important; }
  .klinik .klinik_platze_status .right_inner > [class*="col-"] {
        width: 100% !important; float: none !important;
        padding-left: 0 !important; padding-right: 0 !important; }
  .klinik .klinik_platze_status ul.klinik_info_list {
        padding-left: 22px !important; width: 100% !important; }
  .klinik .klinik_platze_status .left_inner { display: flex !important;
        align-items: center !important; gap: 8px !important;
        flex-wrap: nowrap !important; }
  .klinik .klinik_platze_status .klinik_platze_info_text_gelb {
        font-size: 17px !important; line-height: 1.2 !important;
        white-space: normal !important; flex: 1 1 auto !important;
        min-width: 0 !important; }
  /* BERICHTIGT IN v04: In v03 stand hier max-width:46px. Diese Zahl stammte
     aus einer Messung VOR der Umbruchregel zwei Zeilen darueber - damals war
     .left nur 82 Pixel breit. Nachdem dieselbe Fassung .left auf volle Breite
     gesetzt hat, war die Fessel gegenstandslos und hat die Ampel auf ein
     Sechstel geschrumpft: dargestellt 46 x 77 Pixel bei 180 x 115 im Original,
     also zusaetzlich hochkant verzerrt. Zwei Regeln desselben Blocks, die
     einander widersprachen. Jetzt 110 x 70 - das Seitenverhaeltnis des
     Originals auf zwei Nachkommastellen (1,57). */
  .klinik .klinik_platze_status .left_inner img { flex: 0 0 auto !important;
        max-width: 100% !important; width: 110px !important; height: 70px !important;
        align-self: center !important; object-fit: contain !important; }
  .klinik .klinik_platze_status .left_inner hr { display: none !important; }
  .klinik .klinik_platze_status .klinik_info_title { display: block !important;
        width: 100% !important; }

  /* ===== F. Kliniksuche: die vier Auswahlfelder untereinander =====
     Gemessen: die Kaesten .detail_elm sind 50 px breit, die Felder
     darin 144 px - sie ragten darueber hinaus und ueberlappten
     einander, weshalb "Fachgebiet", "Region", "Landschaften" und
     "PLZ Bereich" uebereinanderlagen. Danach: jeder Kasten 251 px,
     alle untereinander. */
  .kliniken_suche .detail_elm { display: block !important; width: 100% !important;
        float: none !important; margin: 0 0 8px 0 !important; }
  .kliniken_suche .detail_elm .bootstrap-select,
  .kliniken_suche .detail_elm .bootstrap-select > .btn.dropdown-toggle {
        width: 100% !important; max-width: 100% !important; float: none !important;
        white-space: normal !important; height: auto !important; min-height: 40px !important; }
  .kliniken_suche .detail_elm .bootstrap-select.btn-group { height: auto !important; }
  .kliniken_suche .search-head { padding-bottom: 8px !important; }
  /* die Sinnbilder ueber den Feldern kleiner, sonst wird die Auswahl
     zu einer langen Bilderstrecke.
     BERICHTIGT IN v04: v03 schrieb hier width:auto. Bei width:auto zieht der
     Browser die Breite aus dem Bild selbst - und traf 24 Pixel bei 56 Pixeln
     Hoehe, obwohl die Vorlage 85 x 85 gross und damit quadratisch ist. Die
     Sinnbilder standen also senkrecht gequetscht da. Eine feste Breite laesst
     dem Browser die Wahl nicht. */
  /* BERICHTIGT IN v05: v04 hat die Zeile der v03 ERSETZT statt sie zu
     ergaenzen - und damit die Hoehenbegrenzung max-height:56px mit
     weggenommen. Geprueft hatte ich die neue Regel aber NEBEN der alten,
     wo beide zusammen 56 x 56 ergaben. In der gelieferten Datei stand die
     alte nicht mehr, und die Sinnbilder wurden 56 x 88 - die Kaesten
     dadurch 32 Pixel hoeher als gemessen.
     Die Lehre steht in der Tagesnotiz: geprueft wird die gebaute Datei,
     nie eine Probe daneben. */
  .kliniken_suche .detail_elm img { width: 56px !important; height: auto !important;
        max-width: 56px !important; max-height: 56px !important;
        object-fit: contain !important; }

  /* ===== G. Klinikprofil: Registernavigation und Inhalt untereinander =====
     Der schwerste Fehler dieser Seite, und er hat einen Namen: Die Vorlage
     gibt der Menuespalte col-xs-3, also ein Viertel der Bildschirmbreite.
     Bei 360 Pixeln sind das 61 Pixel. Gemessen am 22.08.2026: die Spalte
     .klinik_tabs_left war 46 Pixel breit und 628 Pixel hoch, und Woerter wie
     "Behandlungsschwerpunkte" liefen quer ueber den Inhalt daneben - beides
     zugleich lesbar, keines von beiden lesbar.
     Die Spalte wird deshalb ueber ihren Inhalt angesprochen (:has), nicht
     ueber col-xs-3 allein: dieselbe Klasse steht anderswo auf der Seite an
     Stellen, wo eine Viertelbreite richtig ist. Wo ein Browser :has() nicht
     kennt, bleibt alles wie bisher - also ohne Schaden.
     Nachher: Spalte 245 Pixel, Menue 230, Seitenhoehe von 41.984 auf 30.989
     Pixel gefallen, weil die Woerter nicht mehr senkrecht stapeln. */
  .klinik .klinik_tabs_left { width: 100% !important; }
  .klinik [class*="col-xs-3"]:has(> .klinik_tabs_left),
  .klinik [class*="col-xs-3"]:has(> .klinik_tabs_left) + [class*="col-xs-9"] {
        width: 100% !important; float: none !important; }

  /* ===== H. Klinikprofil: nachtraeglich eingebundene Videos begrenzen =====
     Auf Ansage vom 22.08.2026. Gemessen an der Klinik Teutoburger Wald: ein
     <video> mit fest eingetragenen 560 Pixeln Breite, das die Seite auf 699
     Pixel aufzog - 343 Pixel Ueberstand bei 356 Pixeln Bildschirm. Die
     Videos liegen nicht in der Vorlage, sondern werden je Klinik eingepflegt;
     eine feste Breite ist dort die Regel, nicht die Ausnahme. */
  .klinik video, .klinik iframe, .klinik embed, .klinik object {
        max-width: 100% !important; width: 100% !important; height: auto !important; }

  /* ===== I. Trefferliste der Kliniksuche: vier Spalten untereinander =====
     Dieselbe Ursache wie G, eine Ebene tiefer. Jede Trefferzeile teilt sich
     in Bild (col-xs-2), Klinikname (col-xs-4), Region/Landschaft/PLZ
     (col-xs-4) und "Plaetze frei?" (col-xs-2). Bei 356 Pixeln sind das 47,
     94, 94 und 47 Pixel. Gemessen am 22.08.2026: 125 Kaesten der Liste waren
     schmaler als ihr eigener Inhalt - "Plaetze frei?" bekam 47 Pixel und
     brauchte 87, "Region/Landschaft/PLZ" bekam 94 und brauchte 212.
     Der Selektor nennt die ganze Kette bis .entry-list, weil .klinik auch
     innerhalb der Trefferliste vorkommt und eine kuerzere Fassung dort
     Unerwuenschtes traefe.
     Nachher: 0 zu schmale Kaesten, Ueberstand von 26 Pixeln auf 0.
     Der Preis steht dabei: eine Trefferzeile ist jetzt rund 610 Pixel hoch,
     also etwa ein Telefonbildschirm je Klinik. Das ist gewollt - lesbar und
     lang ist besser als kurz und uebereinander. */
  .kliniken_suche .entry-list .klinik > .row > [class*="col-xs-"] {
        width: 100% !important; float: none !important;
        margin-bottom: 4px !important; }

  /* ===== J. Detailsuche: Leerraum heraus, Zuruecksetzen ans Ende =====
     Auf Ansage vom 22.08.2026. Die Kaesten waren 160 Pixel hoch, obwohl
     Sinnbild (56), Abstand (19) und Feld (40) zusammen 115 brauchen; das
     ergab zwischen je zwei Feldern eine leere hellblaue Flaeche.
     Ausserdem stand "Detailsuche zuruecksetzen" als dritter von fuenf
     Kaesten mitten zwischen den Feldern. Der umgebende Kasten wird dafuer
     zu einer Spalte gemacht, in der sich die Reihenfolge festlegen laesst -
     die Vorlage selbst bleibt unberuehrt.
     Und das Feld "Krankheit" ist anders gebaut als die uebrigen vier: es
     traegt zusaetzlich einen select2-Behaelter, der von der Breitenregel der
     v03 nicht erfasst war und deshalb schmaler und mittig stand. */
  .kliniken_suche .detail_elm {
        height: auto !important; min-height: 0 !important;
        padding-top: 6px !important; padding-bottom: 10px !important; }
  .kliniken_suche .detail_elm br { display: none !important; }
  .kliniken_suche .detail_elm .select2-container,
  .kliniken_suche .detail_elm .select2-selection {
        width: 100% !important; max-width: 100% !important; }
  .kliniken_suche .detail_text_inner {
        display: flex !important; flex-direction: column !important; }
  .kliniken_suche .detail_text_inner > .detail_elm { order: 10 !important; }
  .kliniken_suche .detail_text_inner > .detail_elm.reset { order: 90 !important; }
  .kliniken_suche .detail_text_inner > .cleanup { order: 99 !important; }

  /* ===== K. Kopfzeile der Kliniksuche =====
     Suchfeld, Mitte und "Detailsuche" teilen sich dieselbe Zeile zu je einem
     Drittel - 94 Pixel. Das Suchfeld war dadurch abgeschnitten und das Wort
     "Detailsuche" halbiert. */
  .kliniken_suche .search-head > [class*="col-xs-"] > .row.title > [class*="col-xs-"],
  .kliniken_suche .search-head > .row.title > [class*="col-xs-"] {
        width: 100% !important; float: none !important; text-align: left !important; }

  /* ===== L. Kurortsuche - GEBAUT UND WIEDER ZURUECKGENOMMEN =====
     Am 22.08.2026 lag hier eine Regel, die die Spalten der Kurort-Trefferliste
     untereinander gesetzt hat, wortgleich zu Abschnitt I fuer die Klinikliste.
     Gemessen hat sie 141 der 209 Maengel dieser Seite beseitigt - und dabei
     44 NEUE Ueberlappungen erzeugt: "merken" lag ueber "Region", "Landschaft"
     ueber "Westerland / Sylt".
     Der Grund ist derselbe wie beim Fehler der v01: Die Kurortzeile ist innen
     anders gebaut als die Klinikzeile, und eine Regel, die an einer Stelle
     geprueft ist, gilt an der anderen nicht. Sie ist deshalb NICHT geliefert
     worden. Die Kurortsuche gehoert eigenstaendig vermessen.
     Ein bestehender Mangel ist besser als ein neuer.

     NACHTRAG 23.08.2026, v11: Die Kurortsuche ist jetzt eigenstaendig
     vermessen; die Regeln stehen in Abschnitt X. Dabei ist auch heraus-
     gekommen, WORAN die Uebertragung damals gescheitert ist, und es war
     nicht die Verschachtelung: .kurort_list traegt height:192px und
     overflow:hidden. Untereinander gesetzt braucht eine Zeile 661 Pixel;
     die feste Hoehe schneidet sie ab, und die naechste Zeile beginnt
     trotzdem 192 Pixel spaeter und legt sich darueber. Die Klinikzeile
     traegt keine feste Hoehe, deshalb kam Abschnitt I ohne diesen Zusatz
     aus. Diese elf Zeilen bleiben als Merkposten stehen. */

  /* ===== M. Knopf- und Verweistexte: Zeilen, die ineinanderlaufen =====
     Auf Ansage vom 22.08.2026 ("Text auf Buttons rutscht zusammen").
     Gemessen auf der Startseite: der Knopf "Jetzt Klinik finden" hat 33 Pixel
     Schrift bei 20 Pixeln Zeilenhoehe. Solange der Text in eine Zeile passt,
     faellt das nicht auf; sobald er umbricht, liegen die Zeilen ineinander.
     Dasselbe bei "merken" in den Trefferlisten: Schrift 16, Zeile 14. */
  .index_page1 .generic_button_round_inner,
  .index .generic_button_round_inner,
  .index1 .generic_button_round_inner,
  .suchauftraege .generic_button_round_inner,
  .kliniken_suche .generic_button_round_inner,
  .kurorte_suche .generic_button_round_inner,
  .klinik .generic_button_round_inner {
        line-height: 1.25 !important; height: auto !important;
        min-height: 0 !important; padding-top: 10px !important;
        padding-bottom: 10px !important; white-space: normal !important; }
  .kliniken_suche .mark_button_round_inner .text,
  .kurorte_suche .mark_button_round_inner .text,
  .klinik .mark_button_round_inner .text {
        line-height: 1.3 !important; }

  /* ===== N. Sinnbilder, die in die Breite gezogen sind =====
     Kleine Zeichen mit fest eingetragener Breite UND Hoehe, die nicht zum
     Bild passen. Gemessen: icon_detail_open.png ist 19 x 19 Pixel gross und
     stand 31 x 19 da, icon_mark_blue.png ist 17 x 19 und stand 20 x 19.
     object-fit:contain laesst die Kaesten wie sie sind und passt nur das
     Bild darin ein - damit aendert sich am Aufbau der Seite nichts. */
  .kliniken_suche .mark_button_round_inner img,
  .kurorte_suche .mark_button_round_inner img,
  .klinik .mark_button_round_inner img,
  .kliniken_suche .show_hide_details img,
  .kurorte_suche .show_hide_details img {
        object-fit: contain !important; }

  /* ===== O. Kopfzeile der Kurortsuche - MIT L ZURUECKGESTELLT =====
     Ungeprueft, solange die Kurortsuche nicht eigenstaendig vermessen ist.
     ERLEDIGT AM 23.08.2026 in Abschnitt X2 - eigenstaendig gemessen, nicht
     aus Abschnitt K uebernommen. */

  /* ===== P. Die Klinikliste auf den Lexikonseiten =====
     Abschnitt I hat dieselbe Liste in der Klinik-Trefferliste bereits
     aufgeloest. Auf den drei Lexikon-Musterseiten (Fachgebiet, Krankheit,
     Therapie) steckt dasselbe Bauteil, aber in einem ANDEREN Gehaeuse:
     dort heisst der Traeger nicht .kliniken_suche .entry-list .klinik,
     sondern .lists_kliniken > .lists_kliniken_list > .container.klinik_ajax.
     Deshalb greift I dort nicht, und deshalb ist P eine eigene Regelfamilie
     und keine Uebertragung - der Fehler, der am 22.08.2026 auf der
     Kurortsuche 44 neue Ueberlappungen erzeugt hat (siehe L).

     Gemessen am 22.08.2026, 360 Pixel breiter Rahmen, jeweils der Bestand
     INNERHALB der Klinikliste, ganze Seite ohne Hoehengrenze:

       Lexikon Fachgebiet  93 Stellen -> 0
       Lexikon Krankheit  206 Stellen -> 0
       Lexikon Therapie    95 Stellen -> 0
       Klinik-Trefferliste   0 Stellen -> 0 (Abschnitt I, unveraendert)

     Der schwerste Einzelbefund: Der Block "Region/Landschaft/PLZ" bekam
     112 Pixel und brauchte 212; die Beschriftungsspalte darin bekam 37 und
     brauchte 85 ("Landschaft").

     P1 - die vier Spalten einer Klinikzeile untereinander. Der Selektor
     nennt die Kette bis .lists_kliniken, weil .row und col-xs-* auf jeder
     Seite des Portals vorkommen. Die inneren Zeilen (Beschriftung/Inhalt)
     bleiben ausgenommen, weil die Kette mit > bis zum direkten Kind reicht. */
  .lists_kliniken .lists_kliniken_list .klinik_ajax > .row > [class*="col-xs-"] {
        width: 100% !important; float: none !important;
        margin-bottom: 4px !important; }

  /* P2 - Beschriftung und Inhalt innerhalb einer Klinikzeile.
     Die Vorlage teilt 4 zu 8. In der Trefferliste sind das bei 285 Pixeln
     95 und 190 - genug. Auf den Lexikonseiten ist die Zeile nur 225 Pixel
     breit, und 4/12 davon sind 75 Pixel; "Landschaft" braucht 85. Deshalb
     42/58 statt 33/67. Der Innenabstand der Vorlage bleibt unangetastet:
     Wer ihn herausnimmt, nimmt zugleich den Ausgleich fuer den negativen
     Rand der Bootstrap-Zeile weg - gemessen kostet das 40 neue Stellen. */
  .lists_kliniken .lists_kliniken_list .klinik_ajax .row > [class*="col-xs-4"] {
        width: 42% !important; }
  .lists_kliniken .lists_kliniken_list .klinik_ajax .row > [class*="col-xs-8"].inhalt {
        width: 58% !important; }

  /* P3 - "merken" und sein Zeichen. Dieselben beiden Mangelarten, die die
     Abschnitte M und N in der Trefferliste behoben haben: Schrift 16 bei
     Zeilenhoehe 14, und icon_mark_blue.png ist 17 x 19 gross und stand
     20 x 19 da. M und N haengen an .kliniken_suche, .kurorte_suche und
     .klinik und konnten die Lexikonseiten deshalb nicht erreichen. */
  .lists_kliniken .mark_button_round_inner .text { line-height: 1.3 !important; }
  .lists_kliniken .mark_button_round_inner img { object-fit: contain !important; }

  /* P4 - lange Klinikname. "Schmerztherapiezentrum Bad Mergentheim" braucht
     210 Pixel und hat 195. overflow-wrap ist NICHT word-break: es bricht nur
     dort, wo ein Wort sonst herauslaufen wuerde, und ist hier auf die eine
     Ueberschrift der Klinikzeile eingegrenzt. Der Unterschied zum Fehler der
     v01 ist gemessen: dort stand die Regel auf .content und .container, also
     auf Kaesten von 9 Pixeln Breite, und machte aus "Kurantrag" eine 250
     Pixel hohe Buchstabensaeule. Hier sind alle 10 Ueberschriften der
     Musterseite nachgemessen 195 Pixel breit und hoechstens 51 Pixel hoch,
     also zwei Zeilen - keine einzige Saeule. */
  .lists_kliniken .lists_kliniken_list .klinik_ajax .title h3 {
        overflow-wrap: break-word !important; }

  /* WAS P BEWUSST NICHT TUT: Der Seitenkopf der Lexikonseiten bleibt, wie er
     ist - die Ueberschrift bekommt 184 Pixel und braucht 231, und die
     Brotkrumenzeile legt "Startseite" ueber den Titel. Das sind 5 bis 6
     Stellen je Seite, sie liegen ausserhalb der Klinikliste und gehoeren
     zu Block 5 (Lexikon-Uebersichten).
     Ebenso bleibt die Kopfzeile der Trefferliste liegen (Detailsuche,
     9 Stellen) - sie gehoert zu Block 4.

     MITGENOMMEN, WEIL DASSELBE BAUTEIL: Die Krankheitsseiten
     (/depression-und-reha.html, Traeger .krankheiten_kliniken) tragen
     dieselbe Liste. Gemessen 143 Stellen vorher, 43 nachher - der Rest
     bleibt, weil der Behaelter dort nur 165 Pixel breit ist. Das ist eine
     eigene Aufgabe und steht in Block 9. Neue Stellen sind dort keine
     entstanden.
     Das Kurortprofil traegt .lists_kliniken ohne Eintraege; gemessen
     unveraendert, 48 Stellen vorher wie nachher. */


  /* ===== Q. Der Suchassistent, Kopfbereich - BLOCK 2 =====
     Gemessen am 22.08.2026 mit Pruefstand v02 in einem 360 Pixel breiten
     Rahmen: 21 Ursachen bei 21 Vorkommen, jede Stelle eine eigene. Nach
     diesem Abschnitt: 0 bei 0.

     Die Abschnitte B und M fassen den Suchassistenten schon an - die
     Formularfelder, den Kontrast der Kurzerklaerungen, die Zeilenhoehe der
     Knopftexte. Was hier steht, liegt DANEBEN und ist nicht daraus
     abgeleitet: Es betrifft ausschliesslich den Kopfbereich oberhalb des
     Formulars, den bisher niemand vermessen hatte.

     Der Traeger ist in allen Regeln .suchauftraege. Die Klassen .left,
     .center, .right, .third_left und .third_right sind fuer sich genommen
     die allgemeinsten Namen des ganzen Portals - .left kommt allein im
     Klinikprofil ein zweites Mal vor (Abschnitt E). Ohne die Bindung an
     .suchauftraege waere das genau der Fehler der v01.

     -----------------------------------------------------------------
     Q1 - die beiden Halbspalten des Kopfbereichs.
     .third_left (die Vorteilsliste "Unser Suchassistent hilft Ihnen!")
     und .third_right (der Telefonkasten) sind col-xs-6, stehen auf dem
     Telefon also zu zweit nebeneinander und bekommen je 160 Pixel. Die
     Vorteilsliste brauchte darin 146 und bekam 98; im Telefonkasten lief
     .info_telefon_inner von Pixel 187 bis 400, also 67 Pixel ueber den
     rechten Rand der Seite hinaus. Diese 67 Pixel waren zugleich die
     Ursache saemtlicher fuenf "zu schmal"-Meldungen der umschliessenden
     Kaesten (section.content_body, .content_outer, form.sky-form,
     .container.content, .suchauftraege_pages). Eine Regel, dreizehn
     Stellen.

     WICHTIG - float bleibt stehen. Der erste Versuch setzte zusaetzlich
     float:none und hat damit DREI NEUE Stellen erzeugt: Die Spalte faellt
     dann aus dem Umfluss heraus und legt sich ueber die gefloateten Bloecke
     darueber ("Ihr kostenloser Reha..." lag 291 x 96 Pixel ueber "Unser
     Suchassistent..."). Eine Bootstrap-Spalte auf volle Breite gesetzt
     stapelt sich von allein; der Umfluss ist genau das, was sie dabei
     untereinander haelt. */
  .suchauftraege .suchauftraege_pages > .third_left,
  .suchauftraege .suchauftraege_pages > .third_right {
        width: 100% !important; }

  /* Q2 - die drei Schritte "Nur 3 Schritte zur passenden Rehaklinik".
     .left, .center und .right teilen sich .steps_head zu je einem Drittel
     und bekommen auf 360 Pixeln je 58. Darin steht ein Sinnbild, das die
     Vorlage fest auf 74 x 63 Pixel schreibt, obwohl die Datei 54 x 53 gross
     ist - also 16 Pixel breiter als sein eigener Kasten und dazu verzerrt.
     Der Text lief entsprechend uebereinander: "Behandlungsgrund angeben",
     "Wunschregion bestimmen" und "Kur-Antrags-Infos eingeben" standen als
     ein einziger Wortknaeuel da (im Bild belegt, phase-04).
     Die Bildmasse werden auf die natuerliche Groesse zurueckgesetzt statt
     mit object-fit eingepasst, weil der Kasten hier mitwachsen soll. */
  .suchauftraege .steps_head > .left,
  .suchauftraege .steps_head > .center,
  .suchauftraege .steps_head > .right {
        width: 100% !important; margin-bottom: 10px !important; }
  .suchauftraege .steps_head > .left > img,
  .suchauftraege .steps_head > .center > img,
  .suchauftraege .steps_head > .right > img {
        width: 54px !important; height: 53px !important; }

  /* Q3 - das Zeichen im Absendeknopf. icon_submit.png ist 27 x 28 Pixel
     gross und stand 53 x 28 da. Dieselbe Mangelart und dieselbe Antwort wie
     in Abschnitt N: object-fit laesst den Kasten, wie er ist, und passt nur
     das Bild darin ein - am Aufbau der Seite aendert sich nichts. N hing an
     .kliniken_suche, .kurorte_suche und .klinik und konnte den
     Suchassistenten deshalb nicht erreichen. */
  .suchauftraege .generic_button_round_inner > img {
        object-fit: contain !important; }

  /* Q4 - .steps_head selbst. index.css gibt ihm width:60% und
     margin-left:-15px; das ist eine Angabe fuer den grossen Bildschirm und
     laesst dem Block auf dem Telefon 174 von 291 Pixeln, um 15 nach links
     verschoben. Der Pruefstand meldet das NICHT, weil der Inhalt nach Q2 in
     die 174 Pixel hineinpasst - es ist verschenkter Platz, keine
     Unlesbarkeit. Gemessen: 174 -> 291 Pixel, keine neue Stelle. */
  .suchauftraege .suchauftraege_page0 .steps_head {
        width: 100% !important; margin-left: 0 !important; }

  /* Q5 - das Fragezeichen-Bild im Telefonkasten. logo_telefon.png ist
     118 x 118 Pixel gross, steht mit fest eingetragenen 138 x 118 da und
     traegt margin-left:-75px - auch das eine Angabe fuer den grossen
     Bildschirm. Auf dem Telefon ragte das Bild dadurch 48 Pixel ueber den
     LINKEN Bildschirmrand hinaus.

     AUCH DIESE STELLE MELDET DER PRUEFSTAND NICHT, und diesmal ist es ein
     Messfehler: Sein Filter gegen Bilderstrecken sortiert alles aus, was
     weiter links als -40 Pixel steht (Zeile 128, "Bilderstrecken"). Der
     Filter faengt einen echten Fehlalarm ab, verdeckt hier aber einen
     echten Mangel. Er ist deshalb NICHT gelockert worden - das brachte die
     47 Scheinmaengel zurueck -, sondern der Prueffall steht als eigene
     Messung in der Tagesnotiz. Gemessen: -48..90 -> 27..145 Pixel. */
  .suchauftraege .info_telefon > img {
        margin-left: 0 !important; padding-right: 0 !important;
        width: 118px !important; height: 118px !important; }

  /* Q6 - Lesbarkeit der drei Schritte. DIESER ABSCHNITT IST DER EINZIGE,
     DER DAS AUSSEHEN AENDERT, ohne dass der Pruefstand etwas gemeldet
     haette; er laesst sich ersatzlos streichen, ohne dass eine Stelle
     zurueckkommt.

     ANGENOMMEN AM 22.08.2026, mit Begruendung: Die Regel wirkt
     ausschliesslich unter 768 Pixeln, also auf Telefonen - nicht auf dem
     iPad und nicht am Rechner, wo das Foto unveraendert durchscheint. Auf
     dem kleinen Bildschirm hat Lesbarkeit Vorrang vor dem Bildgefuehl.
     Nachgeprueft: Der Selektor liegt bei Zeichen 9.877 innerhalb des
     einzigen @media-Blocks (28 bis 10.568), und keine Regel der Datei
     steht ausserhalb davon.

     Gemessen: Die drei Schritttexte stehen in #808080 auf einem Schleier
     aus 40 Prozent Weiss - und darunter liegt ein Foto. Ein Kontrast laesst
     sich so gar nicht angeben, weil er mit dem Bildausschnitt wechselt; auf
     dem hellen Gesicht im Hintergrund verschwindet die Schrift. Es ist
     dieselbe Farbe und derselbe Fall, den Abschnitt B fuer die
     Kurzerklaerungen des Formulars schon behandelt hat (#808080 -> #4a4a4a).
     Der Schleier auf 92 Prozent gibt dem Text einen Grund, auf dem 9:1
     herauskommt. */
  .suchauftraege .suchauftraege_page0 .steps_head {
        background-color: rgba(255,255,255,0.92) !important;
        padding: 10px 12px !important; border-radius: 4px !important; }
  .suchauftraege .suchauftraege_page0 .steps_head > .left,
  .suchauftraege .suchauftraege_page0 .steps_head > .center,
  .suchauftraege .suchauftraege_page0 .steps_head > .right {
        color: #4a4a4a !important; }

  /* WAS Q BEWUSST NICHT TUT: Das Formular selbst bleibt, wie Abschnitt B es
     hinterlassen hat.

     Nachgesehen, weil "Schritt 1 von 3" einen Stapel vermuten laesst: Der
     Assistent ist KEIN Stapel mit verborgenen Seiten. Alle sieben Bloecke
     .suchauftraege_page0 bis _page6 stehen gleichzeitig auf display:block;
     die Seite ist mit 6.547 Pixeln Hoehe ein einziges langes Formular,
     durch Zwischenueberschriften gegliedert. Die 21 gemessenen
     Stellen sind also der GANZE Bestand dieser Seite und nicht nur der des
     ersten Schritts; nach Q sind alle sieben Bloecke ohne Beanstandung. */


  /* ===== R. Das Klinikprofil, beide Muster - BLOCK 3 =====
     Gemessen am 22.08.2026 gegen die gebaute v07, in einem 360 Pixel
     breiten Rahmen, an beiden Mustern:
       ohne Video (Asklepios St. Wolfgang)  26 Ursachen bei 26 Vorkommen
       mit  Video (Klinik Teutoburger Wald) 17 Ursachen bei 17 Vorkommen

     DER BEFUND, DER DIE SEITE ZUSAMMENFASST - derselbe Effekt wie beim
     Suchassistenten, nur staerker: Von den 21 Meldungen "zu schmal" des
     ersten Musters sind nur SECHS Wurzeln; die uebrigen fuenfzehn sind
     dieselben Ueberstaende, von Kasten zu Kasten nach oben durchgereicht.
     Beim Videomuster sind es 15 Meldungen und DREI Wurzeln. Wer die
     Meldungen zaehlt, zaehlt Behaelter, nicht Ursachen.

     Die Kette im ersten Muster, von unten nach oben - ein einziger
     Ueberstand, zehnmal gemeldet:
       p in .klinik_text      204 statt 306   <- die Wurzel
       div.klinik_text        204 statt 306
       div.col-xs-12          234 statt 321
       div.klinik_tab         234 statt 321
       div.col-xs-9           249 statt 336
       div.generic_cleanup    255 statt 338
       div.row.klinik_tabs    285 statt 353
       div.container.content  315 statt 368
       div.content_outer      345 statt 383
       section.content_body   345 statt 383

     UND DIE WURZEL IST EIN EINZIGES WORT. Im Fliesstext der Klinik steht
     die Adresse pat-management.badgriesbach@asklepios.com - 41 Zeichen
     ohne Trennstelle, die in einem 204 Pixel breiten Absatz 306 Pixel
     brauchen. Beim Videomuster ist es https://braunschweighannover.app.link/
     mit 39 Zeichen und 280 Pixeln. Dasselbe an zwei Stellen mehr: das Wort
     "Behandlungsschwerpunkte" in der Registernavigation (252 bei 234) und
     "Magenschleimhautentzuendung" in der Indikationsliste (216 bei 204).

     DER LIEGENGELASSENE UEBERSTAND IST DERSELBE BEFUND. Am 21.08.2026 war
     die Seite mit einem Rest am rechten Rand stehengeblieben, weil die
     Ursache "in einem der 27 Abschnitte" vermutet wurde. Gemessen sind es
     nicht 5 Pixel, sondern 23 (Seite 383 breit bei 360 Fenster) - und KEIN
     einziges Element ragt hinaus. Der Absatz beginnt 78 Pixel von links und
     ist 306 breit; 78 + 306 = 384. Es ist die Adresse, nichts weiter. */

  /* R1 - der Kasten "Plaetze frei? / Kontakt aufnehmen".
     Er sieht dem Kasten aus Abschnitt E aehnlich und ist ein anderer:
     .klinik_platze, nicht .klinik_platze_status. E hat ihn nie beruehrt.
     Darin liegen col-xs-4 (84 px) und col-xs-8 (168 px) nebeneinander;
     die Texte brauchen 94 und 176 und laufen deshalb ineinander - gemessen
     11 x 33 Pixel Ueberschneidung zwischen "Plaetze frei?" und "Kontakt
     aufnehmen". Nur im Muster ohne Video vorhanden; das Videomuster traegt
     denselben Kasten mit kuerzerem Text und meldet nichts. */
  .klinik .klinik_platze_inner > [class*="col-"] {
        width: 100% !important; float: none !important; }

  /* R2 - die drei runden Knopfspalten "merken / Empfehlen / (leer)".
     Jede Spalte ist 95 Pixel breit und gibt davon 30 an Innenabstand ab.
     Uebrig bleiben 63 Pixel fuer ein Wort, das 69 braucht. Nicht die
     Schrift ist zu gross, der Rand ist zu breit: 4 statt 15 Pixel lassen
     87 Pixel frei. Der Selektor nennt die Reihe ueber ihren Inhalt (:has),
     nicht ueber col-xs-4 allein - dieselbe Klasse steht auf dieser Seite
     an Stellen, wo ein Viertel richtig ist. Wo ein Browser :has() nicht
     kennt, bleibt alles wie bisher, also ohne Schaden. */
  .klinik .row:has(> [class*="col-"] > a.klinik_button_outer) > [class*="col-xs-"] {
        padding-left: 4px !important; padding-right: 4px !important; }

  /* R3 - der grosse runde Kontaktknopf, zwei Maengel in einem Bauteil.
     icon_kontakt.png ist 26 x 20 gross und stand 52 x 20 da, also auf die
     doppelte Breite gezogen. Behoben wie in den Abschnitten N und Q3 mit
     object-fit: der Kasten bleibt, wie die Vorlage ihn will, nur der
     Inhalt wird eingepasst.
     Dazu die Zeilenhoehe: 20,48 Pixel bei 25,6 Pixeln Schrift, also 0,8 -
     die Unterlaengen von "Kontakt" werden beschnitten. Derselbe Fall wie
     in Abschnitt M. */
  .klinik .klinik_button_round_inner img {
        object-fit: contain !important; }
  .klinik .klinik_button_round,
  .klinik .klinik_button_round_inner,
  .klinik .klinik_button_round_inner span {
        line-height: 1.2 !important; }

  /* R4 - die drei Stellen, an denen ein einzelnes Wort seinen Kasten
     sprengt. Und weil das Wort "umbrechen" in diesem Projekt belastet ist,
     hier noch einmal der Unterschied: overflow-wrap: break-word ist NICHT
     word-break: break-all. Es bricht ein Wort nur dort, wo es sonst aus
     seinem Kasten liefe. Der Fehler der v01 war ein anderer - dort stand
     die Regel auf .content und .container, also auf Kaesten von neun Pixeln
     Breite, und machte aus "Kurantrag" eine 250 Pixel hohe Buchstabensaeule.
     Die drei Kaesten hier sind 204, 204 und 234 Pixel breit; nachgemessen
     steht auf keinem von ihnen eine Saeule.
     Jede der drei Stellen ist einzeln gemessen und einzeln genannt - es
     gibt bewusst keine Sammelregel auf .klinik. */
  .klinik .klinik_text p,
  .klinik .klinik_tab_content_list,
  .klinik .klinik_tab_content_list li,
  .klinik .klinik_tabs_left li a {
        overflow-wrap: break-word !important; }

  /* R5 - und warum overflow-wrap an EINER der drei Stellen nicht genuegt.
     Die Indikationsliste ist keine Liste untereinander, sondern eine
     Schlagwortwolke: ihre 343 Eintraege stehen auf float:left. Ein Float
     ohne feste Breite bekommt die Breite seines laengsten Wortes, und
     "Nasennebenhoehlen-Entzuendung" braucht 216 Pixel bei 204 verfuegbaren.
     Der Kasten weicht dem Wort also aus, statt es umbrechen zu lassen -
     overflow-wrap kommt gar nicht erst zum Zug, weil es nie eng wird.
     Erst eine Hoechstbreite stellt die Enge her, in der die Regel darueber
     greifen kann. Nachgemessen: der Eintrag steht jetzt mit 204 x 60 Pixeln
     auf zwei Zeilen, am Bindestrich getrennt; Buchstabensaeulen null.
     Die Regel steht bewusst auf den Kindern DIESER Liste und nicht auf
     .klinik li - auf der Seite liegen acht solche Listen und daneben
     Aufzaehlungen anderer Bauart. */
  .klinik .klinik_tab_content_list > li {
        max-width: 100% !important; }

  /* R6 - Silbentrennung in der Registernavigation.
     DIESE REGEL BEHEBT KEINEN GEMESSENEN MANGEL, sondern macht die
     Behebung lesbar - derselbe Fall wie Q6 in der v07, und deshalb hier
     ausdruecklich gekennzeichnet statt stillschweigend mitgeliefert.
     Ohne sie bricht R4 das Wort dort, wo es gerade nicht mehr passt:
     "Behandlungsschwerpu / nkte", ohne Trennstrich. Mit ihr trennt der
     Browser nach deutschen Regeln: "Behandlungsschwer- / punkte". Das
     Dokument traegt lang="de", das Woerterbuch ist also da; die Hoehe des
     Menuepunkts bleibt in beiden Faellen 86 Pixel, es aendert sich allein
     die Bruchstelle.
     Sie steht bewusst NUR auf der Registernavigation. Im Fliesstext
     waere sie falsch: dort bricht ohnehin nur die E-Mail-Adresse um, und
     ein Trennstrich mitten in einer Adresse wird fuer einen Bestandteil
     der Adresse gehalten.
     ZUM HERAUSNEHMEN genuegt es, diese drei Zeilen zu loeschen; alles
     uebrige der v08 bleibt davon unberuehrt. */
  .klinik .klinik_tabs_left li a {
        -webkit-hyphens: auto !important; hyphens: auto !important; }

  /* WAS R BEWUSST NICHT TUT: Die Abschnitte E, G und H bleiben unangetastet.
     E setzt die Kontaktspalte untereinander, G die Registernavigation, H
     begrenzt die Videos - alle drei sind am 22.08.2026 nachgemessen und
     wirken. R steht daneben, nicht darin, und entfernt keine Zeile.

     Der Seitenkopf bleibt ebenfalls liegen: Die Brotkrumenzeile bricht auf
     zwei Zeilen um, was auf 360 Pixeln richtig ist. Der Pruefstand meldet
     dort zwei Ueberlappungen, die keine sind - siehe die Notiz am Ende
     dieser Datei. */


  /* ===== S. Kliniksuche: Kopfzeile und Reihenfolge der Trefferzeile =====
     Block 4 vom 23.08.2026. Gemessen mit dem Pruefstand v03 gegen die
     gebaute v08: Detailsuche 9 Ursachen bei 10 Vorkommen, Trefferliste
     ebenso, Trefferliste ab Position 50 (Nichtkunden) ebenso - drei Mal
     dieselben neun Meldungen, weil es derselbe Seitenkopf ist.

     VON NEUN MELDUNGEN IST EINE DIE URSACHE. Der Kasten .suche_feld_outer
     ist 255 Pixel breit und traegt zwei Floats nebeneinander: links
     .suche_feld_top mit dem Suchfeld (204 Pixel), rechts .show_detail mit
     dem Verweis "Detailsuche". Fuer den rechten bleiben 51 Pixel bei 105
     Pixeln Bedarf. Der Verweis darin ist bei 19,2 Pixeln Schrift 89 Pixel
     breit und steht schon zweizeilig - und laeuft trotzdem ueber.
     Die acht weiteren Meldungen sind derselbe Ueberstand, den ein Kasten
     an den naechsten weiterreicht, bis er oben bei section.content_body
     ankommt. Wer sie zaehlt, zaehlt Behaelter und nicht Ursachen.

     ABSCHNITT K FASST EINEN ANDEREN KASTEN AN. K setzt die Spalten von
     .search-head > .row.title untereinander; .suche_feld_outer liegt
     daneben, innerhalb der form.form_suche. Am Dokumentenbaum ermittelt,
     nicht aus der Aehnlichkeit der Ansicht geschlossen. */
  .kliniken_suche .suche_feld_outer > .suche_feld_top,
  .kliniken_suche .suche_feld_outer > .show_detail {
        float: none !important; width: 100% !important; }

  /* S2. DIE REIHENFOLGE DER TREFFERZEILE - eine Gestaltungsregel, und sie
     ist ausdruecklich als solche entschieden worden (23.08.2026).
     Der Pruefstand kann diese Frage gar nicht stellen: Er fragt fuenfmal,
     ob ein Inhalt in seinen Kasten passt, und die Reihenfolge der Kaesten
     ist ihm gleichgueltig.

     GEMESSEN: Eine Trefferzeile ist 617 Pixel hoch - ein Telefonbildschirm
     je Klinik. Darin stand "Plaetze frei?" bei 370 Pixeln, hinter Bild,
     Klinikname und den Angaben zu Region, PLZ und Landschaft. Nach dem
     Bauprinzip aller Kurkliniken-Seiten (Muster in
     kk-landingpage\Langingpage\) gehoert die Handlungsaufforderung vor
     die Konditionen, nicht dahinter.

     Abschnitt I hat die vier Spalten der Zeile untereinander gesetzt und
     damit erst den Anlass geschaffen: Nebeneinander lagen Name und
     Kontaktbereich im selben Blickfeld, untereinander liegen 370 Pixel
     dazwischen. Das ist ein Preis der v04, der dort nicht benannt wurde.

     Die Zeile ist auf allen zehn Treffern gleich gebaut - nachgezaehlt:
     col-xs-2.image | col-xs-4 | col-xs-4 | col-xs-2, zehnmal dieselbe
     Folge. Deshalb traegt nth-child hier, was es sonst nicht taete.
     Neue Lage: "Plaetze frei?" bei 216 statt 370, "merken" bei 388 statt
     542, Region und PLZ bei 434. Zeilenhoehe 617 -> 621.
     ZUM HERAUSNEHMEN genuegt es, diese sechs Zeilen zu loeschen. */
  .kliniken_suche .entry-list .klinik > .row {
        display: flex !important; flex-direction: column !important; }
  .kliniken_suche .entry-list .klinik > .row > :nth-child(1) { order: 1 !important; }
  .kliniken_suche .entry-list .klinik > .row > :nth-child(2) { order: 2 !important; }
  .kliniken_suche .entry-list .klinik > .row > :nth-child(3) { order: 4 !important; }
  .kliniken_suche .entry-list .klinik > .row > :nth-child(4) { order: 3 !important; }

  /* WAS S BEWUSST NICHT TUT: Die Abschnitte F, I, J, K, M und N bleiben
     unangetastet - keine Zeile der v08 ist entfernt worden.
     In der Trefferzeile fehlt ein Kontaktweg. Alle sechs Verweise einer
     Zeile fuehren auf dieselbe Profilseite, der einzige eigenstaendige
     Knopf ist "merken". Ein Kontaktknopf laesst sich mit keiner Stilregel
     hinzufuegen; der Befund steht in
     110-projekte-eigene\projekt-kurkliniken_de\befund-vorlagengrenzen-kurkliniken-vNN.md.
     Die Ampel bleibt ebenfalls stehen. Sie belegt 172 der 617 Pixel und
     wird von den Kliniken nicht gepflegt, aber ihr Traeger heisst in der
     Trefferliste anders als im Klinikprofil und ist noch nicht ermittelt. */

  /* ===== T. Klinikprofil: die Ueberschrift der Nichtkunden =====
     Block 4 vom 23.08.2026, nachgetragen. Der Anlass ist ein Seitentyp,
     den die Liste bis heute nicht kannte: 95 von 100 Klinikprofilen
     gehoeren Nichtkunden, und beide Muster, an denen Abschnitt R gebaut
     wurde, sind Kundenprofile mit Premium-Band.

     GEMESSEN gegen die v08, in einem 360 Pixel breiten Rahmen:
       Nichtkunde ohne Foto  6 Ursachen bei 6 Vorkommen
       Nichtkunde mit Foto   1 Ursache  bei 1 Vorkommen
     Auch hier ist es EINE Wurzel und fuenf Weiterreichungen. Die
     Ueberschrift "Ambulantes Rehabilitationszentrum Siegerland" bekommt
     bei 36 Pixeln Schrift 184 Pixel und braucht 328; die Seite ist
     dadurch 373 Pixel breit bei 360 Pixeln Fenster und laesst sich
     seitwaerts schieben.

     WARUM ABSCHNITT R DAS NICHT ERWISCHT HAT: R4 setzt den Umbruch auf
     .klinik_text und drei weitere Bauteile im Seitenkoerper, nicht auf die
     Ueberschrift im Seitenkopf. Und das Kundenmuster "Asklepios Klinik und
     Hotel St. Wolfgang" traegt kein Wort, das laenger waere als sein
     Kasten - "Rehabilitationszentrum" mit 22 Zeichen schon.
     Die Lehre ist dieselbe wie bei der E-Mail-Adresse in 2g: Es ist kein
     Layoutfehler der Vorlage, sondern ein redaktioneller Text, der auf
     einem breiten Bildschirm nie aufgefallen ist. Nur trifft dieser hier
     nicht eine Klinik, sondern fast alle.

     T1 BRICHT UM UND TRENNT NACH SILBEN. Das Dokument traegt lang="de",
     das Woerterbuch ist also da. Gemessen genuegt die Silbentrennung
     allein; overflow-wrap steht als Rueckfall daneben, fuer Namen ohne
     Trennstelle. */
  .container.content.klinik > .row > [class*="col-"] > h1 {
        overflow-wrap: break-word !important;
        -webkit-hyphens: auto !important; hyphens: auto !important; }

  /* T2 GIBT DER UEBERSCHRIFT DIE VOLLE BREITE - aber nur dort, wo die
     Nachbarspalte leer ist. Bei Nichtkunden steht in der col-xs-3 daneben
     nichts: 71 Pixel breit, 1 Pixel hoch, kein Logo. Ein Viertel der
     Breite bleibt ungenutzt, waehrend die Ueberschrift daneben vierzeilig
     umbricht. Bei Kundenprofilen steht dort das Klinik-Logo, und ohne die
     Bedingung wuerde es unter die Ueberschrift rutschen - nachgemessen
     von 359 auf 559 Pixel.
     :has() prueft das. Wo ein Browser :has() nicht kennt, faellt die Regel
     ersatzlos aus und es bleibt bei T1 - also bei einer Fassung, die den
     gemessenen Mangel ebenfalls behebt. Der Rueckfall ist unschaedlich.
     Wirkung: Ueberschrift 255 x 119 statt 184 x 158, drei Zeilen statt
     vier, Seite 345 statt 373 Pixel.
     ZUM HERAUSNEHMEN genuegt es, diese drei Zeilen zu loeschen. */
  .container.content.klinik > .row:not(:has(> [class*="col-xs-3"] img)) > [class*="col-xs-9"] {
        width: 100% !important; }

  /* WAS T BEWUSST NICHT TUT: Abschnitt R bleibt unangetastet. Beide
     Kundenprofile stehen mit T unveraendert auf null Ursachen, und ihre
     Ueberschrift behaelt ihre 184 Pixel, weil das Logo daneben steht.
     Die uebrigen Nichtkunden-Muster sind nicht vermessen - geprueft sind
     zwei, mit Foto und ohne. Ob es weitere Bauarten gibt, ist offen. */



  /* ===== U. Die Belegungsampel: Trefferliste und Klinikprofil =====
     Block 4a vom 23.08.2026, ein abgeschlossener Handgriff vor Block 5.
     Der Massstab dahinter gilt ueber die Ampel hinaus: Ein Element ist
     entweder gross genug, um zu wirken, oder es gehoert weg. Das
     Dazwischen - verkleinern, damit es passt - ist beides zugleich nicht.

     GEMESSEN bei 360 Pixeln Fensterbreite, gegen die gebaute v09:
       Trefferliste, je Zeile   logo_status_*.png  225 x 144  (Vorlage 180 x 115)
       Klinikprofil, Statusblock                   110 x  70  (Vorlage 180 x 115)
       Klinikprofil, Kontaktspalte logo_platze_*    18 x  50  (Vorlage  18 x  50)

     In der Trefferliste ist die Ampel also nicht zu klein, sondern
     hochskaliert - fuenfundzwanzig Prozent ueber der Vorlage und damit
     unscharf, dazu breiter als die Zeile Inhalt hat (255 Pixel). Sie ist
     der groesste Einzelposten einer 621 Pixel hohen Trefferzeile, fuer
     eine Angabe, die die meisten Kliniken nicht pflegen: In einer
     Stichprobe von 120 Kliniken tragen neun eine Ampel, also 7,5 Prozent.

     DER PRUEFSTAND HAT DAVON NICHTS GEMELDET, und das ist der Punkt. Das
     Seitenverhaeltnis stimmt (225/144 gegen 180/115), und die Frage "zu
     gross" stellt er ueberhaupt nicht - er fragt fuenfmal, ob ein Inhalt
     in seinen Kasten passt. Der erste Fall, in dem sein blinder Fleck
     etwas Handfestes verdeckt hat.

     DER FALLSTRICK, und er ist der wichtigste Punkt dieses Abschnitts:
     Sieben der beteiligten Namen tragen die Farbe in sich. Eine Regel,
     die einen davon nennt, traefe nur einen Zustand - und weil auf beiden
     Musterseiten alles gelb ist, fiele es beim Pruefen nicht auf. Es ist
     derselbe Fehler wie bei der Kurortregel am 22.08.2026, nur schwerer
     zu bemerken: Dort erzeugte die Uebertragung sichtbare Maengel, hier
     bliebe ein Teil des Bestands stillschweigend unveraendert. Deshalb
     nennt U1 alle vier Zustaende.
     Quelle der Klassennamen ist die unveraenderte Vorlage
     kk-sw-code\...\tmpl\kliniken\kliniken_list.html, Zeilen 246 bis 269,
     und kliniken_show.html, Zeilen 177 bis 224 - belegt, nicht aus einer
     Musterseite geschlossen. Das rote Muster ist derzeit nirgends online.

     U1 NIMMT DAS AMPELBILD AUS DER TREFFERLISTE, DIE UEBERSCHRIFT BLEIBT.
     Der Text traegt die Auskunft vollstaendig: "Plaetze frei!" sagt
     dasselbe wie eine gruene Ampel und ist schneller zu erfassen.
     Ausgeblendet wird die Statusspalte samt Bild, NICHT die Titelspalte
     (.title_green / .title_yellow / .title_red mit dem h3).
     Gemessen: die vierte Spalte der Trefferzeile faellt von 214 auf 71
     Pixel, die erste Trefferzeile von 621 auf 477. Die Ueberschrift
     kostet 29 Pixel und bleibt. */
  .kliniken_suche .entry-list .klinik .status_green,
  .kliniken_suche .entry-list .klinik .status_yellow,
  .kliniken_suche .entry-list .klinik .status_red,
  .kliniken_suche .entry-list .klinik .status_none {
        display: none !important; }

  /* U2 NIMMT DEN SCHMALEN STREIFEN AUS DEM GELBEN BALKEN DES
     KLINIKPROFILS, in allen Zustaenden. Hier geht keine Information
     verloren: "Plaetze frei?" steht links davon, "Kontakt aufnehmen"
     rechts; nur das 18 x 50 Pixel grosse Farbstueck dazwischen faellt weg.
     Gemessen: der Balken faellt von 154 auf 104 Pixel, beide Texte sitzen
     unveraendert (135 x 44 und 236 x 50), die Seite wird 50 Pixel kuerzer.

     VORSICHT: .klinik_platze ist der Kasten, den Abschnitt R1 bereits
     anfasst - dort stehen seit dem 22.08.2026 zwei Spalten untereinander.
     U2 ist additiv gebaut und ueberschreibt R1 nicht.

     WAS U BEWUSST NICHT TUT: Der Statusblock des Klinikprofils bleibt
     unangetastet, mit der grossen Ampel (110 x 70, unverzerrt seit
     Abschnitt R) und ihrem Text. Der Grund ist nicht gestalterisch,
     sondern geschaeftlich: Es ist die Seite, fuer die ein Kunde bezahlt
     hat. In der Trefferliste steht dieselbe Angabe neben neun anderen
     Haeusern und traegt dort nichts. */
  .container.content.klinik .klinik_platze img.klinik_platze_logo {
        display: none !important; }

  /* ===== V. Die Lexikon-Uebersichten =====
     Block 5 vom 23.08.2026. Gemessen mit dem Pruefstand v03 gegen die
     gebaute v09, in einem 360 Pixel breiten Rahmen:

       Lexikon Hauptfachgebiete, Uebersicht  /fachgebiet/        51 Ursachen
       Lexikon Krankheiten, Uebersicht       /krankheit/         40 Ursachen
       Lexikon Therapien, Uebersicht         /therapie/          33 Ursachen
       Gesundheitslexikon (statische Seite)  /gesundheitslexikon.html  51

     DIE VIERTE SEITE STAND IN KEINER LISTE. /gesundheitslexikon.html ist
     eine statische Vorlage (tmpl\static\content\web_00_gesundheitslexikon.html),
     traegt aber denselben Aufbau, dieselbe Kennzeichnung .gesundheitslexikon
     und Zeichen fuer Zeichen dieselben 51 Meldungen wie die
     Fachgebiete-Uebersicht. Sie ist mit demselben Abschnitt miterledigt.
     Es ist derselbe Befund wie bei den Nichtkunden-Profilen am 23.08.2026:
     Wer nur die Musterseiten kennt, kennt den Bestand nicht.

     VON 51 MELDUNGEN SIND ES VIER URSACHEN. Zum fuenften Mal in Folge
     dasselbe Verhaeltnis - wer die Meldungen zaehlt, zaehlt Behaelter:

       V1  h1 "Gesundheitslexikon"        65 statt 278   ->  6 Weiterreichungen
       V2  a "Fachgebiete A-Z"            65 statt 102   ->  6 Weiterreichungen
       V3  img logo_kurkliniken.png       ragt 119 hinaus
       V4  die Stichwortkaesten          126 statt bis zu 317

     Die sieben aeussersten Meldungen (div.gesundheitslexikon 255 statt 372,
     div.container.content 315 statt 402, div.container.content_outer und
     section.content_body je 345 statt 417) sind derselbe Ueberstand, den
     ein Kasten an den naechsten weiterreicht, bis er oben ankommt.

     UND DER VERDACHT AUS BLOCK 3 HAT SICH BESTAETIGT. Die schwerste
     Ursache des Klinikprofils war kein Layoutfehler, sondern ein zu langes
     Wort - eine E-Mail-Adresse mit 41 Zeichen. Hier ist es dieselbe Sorte,
     nur hundertfach: "Stoffwechselerkrankungen" braucht 195 Pixel,
     "Atemgymnastik/Atementspannung" 317, und der Kasten hat 126. Auch die
     zehn Meldungen "Texte uebereinander" stammen daher: Ein Begriff, der
     seinen Kasten verlaesst, legt sich ueber den Nachbarn. Sie sind mit
     V3 und V4 ersatzlos verschwunden, ohne dass eine Regel sie
     anspraeche.

     V1 SETZT DIE TITELZEILE UNTEREINANDER. Sie besteht aus drei
     gleichbreiten Spalten: links ein hr, in der Mitte die Ueberschrift,
     rechts ein hr. Auf 360 Pixeln bleiben der Ueberschrift 65 Pixel bei
     36 Pixeln Schrift; "Gesundheitslexikon" braucht 278. Die beiden
     Zierlinien bleiben stehen und liegen nach der Regel ueber und unter
     der Ueberschrift - das ist die gleiche Aussage in schmal.
     Die Silbentrennung steht daneben, weil auch 255 Pixel fuer das Wort
     nicht reichen; das Dokument traegt lang="de", das Woerterbuch ist da.
     overflow-wrap ist der Rueckfall fuer Woerter ohne Trennstelle.
     Wirkung: Ueberschrift 255 x 79 statt 65 x 40, nichts laeuft mehr
     ueber. */
  .gesundheitslexikon > .row.title > [class*="col-"] {
        width: 100% !important; }
  .gesundheitslexikon > .row.title h1 {
        -webkit-hyphens: auto !important; hyphens: auto !important;
        overflow-wrap: break-word !important; }

  /* V2 SETZT DIE DREI REITER UNTEREINANDER. "Fachgebiete A-Z",
     "Krankheiten A-Z" und "Therapien A-Z" stehen in je einer col-xs-4 und
     bekommen 65 Pixel bei 19,2 Pixeln Schrift; sie brauchen 102, 99 und
     85. Das ist die Hauptnavigation des Lexikons.
     Untereinander sind es drei Knoepfe von 255 x 47 Pixeln - gross genug,
     um mit dem Daumen getroffen zu werden. Der Preis sind 66 Pixel Hoehe
     (74 statt 140 fuer die ganze Zeile). Die Alternative waere gewesen,
     die Schrift zu verkleinern, bis es passt; das ist genau das
     Dazwischen, das der Massstab aus Abschnitt U ausschliesst. */
  .gesundheitslexikon > .row.ubersicht_tabs_links > [class*="col-"] {
        width: 100% !important; }

  /* V3 SETZT EINLEITUNGSTEXT UND LOGO UNTEREINANDER. Nebeneinander hat
     der Text 168 Pixel und das Logo eine Spalte von 84 - in der eine
     Grafik von 250 Pixeln Breite steht, die deshalb 119 Pixel aus der
     Seite ragt. Das ist die einzige Ursache, die die Seite ueberhaupt
     seitwaerts verschiebbar macht.
     Untereinander bekommt der Text die volle Breite und das Logo passt
     sich an (221 x 117 statt 250 x 132).

     ZUR REIHENFOLGE, und das ist eine offene Frage, keine Behauptung:
     Nach dem Landingpage-Schema (kk-landingpage\Langingpage\) gehoert das
     Konversionselement weit nach oben. Auf dieser Seite ist das Suchfeld
     ueber den Stichwoertern das Konversionselement. Mit V3 steht es bei
     1257 Pixeln statt bei 796 - der Einleitungstext (300 Pixel) und das
     Logo (300 Pixel Spaltenhoehe fuer ein 117 Pixel hohes Bild) liegen
     davor. Wuerde das Logo auf dem Telefon ganz entfallen, staende das
     Suchfeld bei 957 und die Seite waere 5.820 statt 6.120 Pixel hoch;
     dasselbe Logo steht ohnehin im Seitenkopf jeder Seite.
     Das ist eine Gestaltungsentscheidung und deshalb NICHT gebaut,
     sondern vorgelegt worden. */
  .gesundheitslexikon .ubersicht_tab_content > .row > .help-text,
  .gesundheitslexikon .ubersicht_tab_content > .row > .logo {
        width: 100% !important; }
  .gesundheitslexikon .ubersicht_tab_content > .row > .logo img {
        max-width: 100% !important; height: auto !important; }

  /* V4 LAESST DIE STICHWORTKAESTEN UMBRECHEN UND NACH SILBEN TRENNEN.
     Jeder Begriff steht in einer col-xs-6, also in 126 Pixeln Inhalt bei
     16 Pixeln Schrift. Die Fachwoerter reichen bis 317 Pixel. Eine
     Umbruchregel genuegt, weil das Dokument lang="de" traegt: Der Browser
     trennt "Stoff-wechsel-erkran-kungen" selbst. overflow-wrap steht als
     Rueckfall daneben, fuer Zusammensetzungen ohne Trennstelle.
     Gemessen: kein einziger der 75 Kaesten der Fachgebiete-Uebersicht
     laeuft danach noch ueber, und die zehn Ueberlappungen sind mit
     verschwunden. Die zweispaltige Anordnung bleibt erhalten - die
     Alternative, jeden Begriff auf volle Breite zu setzen, haette die
     Liste doppelt so lang gemacht.

     WAS V BEWUSST NICHT TUT: Die Lexikon-MUSTERseiten bleiben
     unangetastet; sie zeigen eine Klinikliste und sind mit Abschnitt P am
     22.08.2026 erledigt worden. Sie tragen die Kennzeichnung
     .gesundheitslexikon nicht, und der Selektorvergleich weist null
     Treffer aus. Die Blaetterleiste am Fuss der Uebersichten (ul.pagination)
     hat der Pruefstand nicht beanstandet und bleibt liegen. */
  .gesundheitslexikon .entry-list > .entry {
        -webkit-hyphens: auto !important; hyphens: auto !important;
        overflow-wrap: break-word !important; }



  /* ===== W. Das Kurortprofil =====
     Block 7 vom 23.08.2026, erster Teil. 171 Kurortseiten stehen in der
     Seitenliste; sie tragen 1.227 Klicks in vier Wochen und damit 12,6
     Prozent des erreichbaren Verkehrs - der groesste Posten, der noch
     nicht bearbeitet war. Eine Regelfamilie bedient sie alle.

     DER TRAEGER IST AM VORLAGENBESTAND GEZAEHLT, nicht geraten:
     "container content kurort" steht in genau EINER ausgelieferten
     Vorlage (kurorte/kurorte_show.html); die beiden weiteren Treffer sind
     Sicherungskopien, die nicht ausgeliefert werden. Die naheliegende
     kuerzere Bindung .kurort waere unsauber gewesen.

     DER BESTAND VORHER: 48 Meldungen, 48 "Ursachen". Davon sind 44 von
     der Art "zu schmal", und davon wiederum sind nur 15 Wurzeln - der
     Rest sind Behaelter, die den Ueberstand nach oben weiterreichen.
     Zum sechsten Mal in Folge dasselbe Verhaeltnis.

     Die 15 Wurzeln fallen in fuenf Gruppen, und alle fuenf haben
     dieselbe Ursache: eine Spaltenaufteilung, die bei 285 Pixeln
     Inhaltsbreite nicht mehr aufgeht. Die Karte bekommt 119 Pixel und
     die Infospalte 166; im Infokasten bekommt das Sinnbild eine Spalte
     von 33 Pixeln fuer ein 180 Pixel breites Bild; im Reiterbereich
     bekommt eine Ueberschrift 20 Pixel und braucht 94. */

  /* W1 BRICHT DIE UEBERSCHRIFT UM UND TRENNT NACH SILBEN.
     "Garmisch-Partenkirchen" bekommt 184 Pixel und braucht 197 - der
     Ortsname ist laenger als seine Spalte. Das Dokument traegt lang="de",
     das Woerterbuch ist also da; overflow-wrap steht als Rueckfall
     daneben, fuer Namen ohne Trennstelle.
     KEIN GEGENSTUECK ZU T2: Beim Klinikprofil hat T2 der Ueberschrift die
     volle Breite gegeben, wo die Nachbarspalte leer war. Hier steht dort
     das Kurort-Wappen (41 x 62 Pixel), die Spalte ist also nicht leer.
     Nachgesehen, nicht angenommen. */
  .container.content.kurort > .row > [class*="col-"] > h1 {
        overflow-wrap: break-word !important;
        -webkit-hyphens: auto !important; hyphens: auto !important; }

  /* W2 SETZT KARTE UND INFOSPALTE UNTEREINANDER. Das ist die
     Hauptaufteilung der Seite: eine col-xs-5 mit Karte, Bundesland und
     Kurortart neben einer col-xs-7 mit den Infokaesten. Bei 285 Pixeln
     sind das 119 und 166 - in der linken steht ein Listeneintrag
     "Heilklimatischer Kurort", der 163 Pixel braucht und 43 bekommt. */
  .container.content.kurort > .row > [class*="col-xs-5"],
  .container.content.kurort > .row > [class*="col-xs-7"] {
        width: 100% !important; float: none !important; }

  /* W3 SETZT SINNBILD UND TEXT DES INFOKASTENS UNTEREINANDER. Innerhalb
     des Kastens liegt eine col-xs-3 mit dem gruenen Sinnbild neben einer
     col-xs-9 mit dem Text. Die linke Spalte ist 33 Pixel breit, das Bild
     darin 180 - es ragt also 147 Pixel aus seiner Spalte.
     Die zweite Regel begrenzt das Bild auf die Breite seines Kastens;
     ohne sie bliebe es bei 180 Pixeln, auch wenn die Spalte jetzt
     breiter ist. */
  .container.content.kurort .kurort_info_text > [class*="col-xs-3"].left,
  .container.content.kurort .kurort_info_text > [class*="col-xs-9"].right {
        width: 100% !important; float: none !important; }
  .container.content.kurort .kurort_info_text .left_inner img {
        max-width: 100% !important; height: auto !important; }

  /* W4 SETZT DIE BEIDEN ANGEBOTSLISTEN UNTEREINANDER. Im Textteil des
     Infokastens stehen zwei col-xs-6 nebeneinander, je 35 Pixel breit,
     mit Listen, die 203 und 208 Pixel brauchen. Zwei Drittel des Textes
     einer Kurortseite stehen in diesen beiden Listen. */
  .container.content.kurort .right_inner > [class*="col-xs-6"] {
        width: 100% !important; float: none !important; }

  /* W5 SETZT DEN REITERBEREICH UNTEREINANDER - und zwar ALLE Spalten der
     Reiterkarte, nicht nur die beiden auffaelligen.
     DAS IST EIN GEMESSENER UMWEG UND KEINE VORSICHT: Zuerst standen hier
     nur col-xs-8 (Inhalt) und col-xs-4 (Seitenkaesten). Damit fiel die
     Seite von 48 auf 17 Meldungen - und EINE NEUE entstand, eine
     Textueberlappung von 193 x 130 Pixeln unter "Wichtiges auf einen
     Blick". Grund: In derselben Karte stehen darueber eine col-xs-10 mit
     der Ueberschrift und eine col-xs-2 mit einem Sinnbild, beide
     gefloatet. Nimmt man den beiden unteren Spalten den Umfluss, verliert
     der Kasten seine Klaerung und die Ueberschrift legt sich ueber den
     Inhalt. Mit allen Spalten zusammen: 16 Meldungen, keine Ueberlappung.
     Die Zwischenfassung ist nicht geliefert worden. */
  .container.content.kurort .kurort_tab > [class*="col-xs-"] {
        width: 100% !important; float: none !important; }

  /* W6 GIBT DEN UEBERSCHRIFTEN IHRE ZEILENHOEHE ZURUECK. "Unterkuenfte
     und Erholungsangebote" steht in 27 Pixeln Schrift bei 22 Pixeln
     Zeilenhoehe, "Infos kostenlos anfordern" in 26 bei 20. Solange ein
     Text in eine Zeile passt, faellt das nicht auf; sobald er umbricht,
     laufen die Zeilen ineinander. Dieselbe Sorte Mangel wie in
     Abschnitt M, nur an anderen Bauteilen. */
  .container.content.kurort .kurort_info_title_text,
  .container.content.kurort .kurort_button_round_inner span {
        line-height: 1.25 !important; }

  /* W7 TRENNT DIE FACHWOERTER NACH SILBEN. Nach W2 bis W5 stehen die
     Listen zwar in voller Breite, aber einzelne Begriffe sind laenger als
     255 Pixel: "Herz-Kreislauferkrankungen" braucht 179, "Kuren &
     Gesundheit" 163 in einem 151 Pixel breiten Kasten. Dieselbe Regel wie
     V4 bei den Lexikon-Uebersichten und aus demselben Grund - das
     Dokument traegt lang="de". */
  .container.content.kurort .kurort_info_list,
  .container.content.kurort .kurort_types_list,
  .container.content.kurort .gradient_light_reverse ul {
        -webkit-hyphens: auto !important; hyphens: auto !important;
        overflow-wrap: break-word !important; }

  /* W8 PASST DAS ZEICHEN IM ANFORDERUNGSKNOPF EIN. icon_kontakt.png hat
     das Seitenverhaeltnis 1,30 und stand 52 x 20 da, also flach gezogen.
     object-fit:contain laesst den Kasten wie er ist und passt nur das
     Bild darin ein - am Aufbau der Seite aendert sich nichts. Dieselbe
     Regel wie Abschnitt N. */
  .container.content.kurort .kurort_button_round_inner img {
        object-fit: contain !important; }

  /* W9 IST DIE EINZIGE REGEL DIESES ABSCHNITTS, DIE DAS AUSSEHEN AENDERT,
     OHNE EINEN GEMESSENEN MANGEL ZU BEHEBEN - und sie ist deshalb einzeln
     vorgelegt worden.
     Unter dem Infokasten stehen drei Knopfspalten zu je einem Drittel:
     "merken", "Empfehlen" und eine leere. Die dritte ist leer, weil die
     Vorlage sie fuer einen Knopf vorsieht, den es hier nicht gibt. Zu
     zweit bekommen die beiden belegten je 142 statt 85 Pixel - gross
     genug, um mit dem Daumen getroffen zu werden, und derselbe Massstab
     wie in Abschnitt V2. Der leere dritte rutscht darunter und ist mit
     einem Pixel Hoehe unsichtbar. Am gerenderten Blatt geprueft
     (phase-08, Bild "kurortprofil-reiterbereich-und-knoepfe").
     ZUM HERAUSNEHMEN genuegt es, diese drei Zeilen zu loeschen; die
     Knoepfe stehen dann wieder zu dritt nebeneinander. */
  .container.content.kurort [class*="col-xs-7"] > .row > [class*="col-xs-4"] {
        width: 50% !important; }

  /* W10 GEHOERT NICHT ZUM KURORTPROFIL, SONDERN ZUR KLINIKLISTE DARUNTER,
     und das ist ausdruecklich so gemeint.
     Unter jedem Kurortprofil steht die Klinikliste aus Block 1, in einem
     eigenen Behaelter .container.content.lists_kliniken - einem
     GESCHWISTER von .content.kurort, nicht einem Nachfahren. Sie kommt
     aus dem gemeinsamen Bauteil _subtmpl/plugins/lists_kliniken.html, und
     ihre Kopfzeile traegt die Klasse head_mode[Nummer] aus einem
     Vorlagenparameter. Auf der Kurortseite ist es head_mode1, und die
     Ueberschrift darin - "Kliniken in Garmisch-Partenkirchen" - bekommt
     184 Pixel und braucht 214.
     Die Bindung an die Modusnummer statt an einen Seitentyp ist ein
     Zugestaendnis: einen Seitentyp gibt es hier nicht, weil der Behaelter
     kein Kind der Kurortseite ist und der Rumpf keine Seitenkennung
     traegt. Der Selektorvergleich hatte deshalb zu entscheiden - UND ER
     HAT DREI WEITERE SEITEN GEFUNDEN: die Lexikon-Musterseiten
     Fachgebiet, Therapie und Krankheit tragen dieselbe Klinikliste mit
     derselben Modusnummer, und ihre Ueberschrift hat dasselbe Problem
     ("Rehakliniken, in denen Alternativmedizin angeboten wird" bekommt
     184 Pixel und braucht 258).
     Diese drei sind daraufhin MITGEMESSEN worden, vorher und nachher,
     statt dass die Regel auf sie uebertragen worden waere: Fachgebiet
     4 -> 1, Therapie 4 -> 2, Krankheit 2 -> 1 Ursachen, keine neue
     Meldung. Die Regel ist damit an vier Seiten geprueft.
     Die verbliebenen Meldungen sind auf allen vier Seiten dieselbe und
     keine - siehe den Schlussabsatz dieses Abschnitts. */
  .container.content.lists_kliniken > .head.head_mode1 > .row > [class*="col-"] > h1 {
        overflow-wrap: break-word !important;
        -webkit-hyphens: auto !important; hyphens: auto !important; }

  /* W11 NIMMT DAS INFO-SINNBILD AUS DEM INFOKASTEN DES KURORTPROFILS.
     Auf Ansage vom 23.08.2026, derselben, aus der X4 folgt: "Das gruene
     Sinnbild fuer Information muss weg, ist ueberfluessig."

     ES IST DASSELBE BILD an einer zweiten Stelle: logo_info_grun.png,
     hier als img.kurort_info_logo_grun im Infokasten, in der Trefferzeile
     als img.status_grun_logo. Aufgefallen ist das nicht beim Messen,
     sondern erst am gerenderten Blatt - der Pruefstand hat zu diesem Bild
     nie etwas gemeldet, weil es in seinen Kasten passt.

     GEMESSEN: 180 Pixel breit in einer Spalte von 33 (vor Abschnitt W3);
     nach W3 steht es in voller Breite ueber dem Text und kostet dort 164
     Pixel Hoehe. Es zeigt ein "i" - dieselbe Auskunft, die die
     Ueberschrift daneben in Worten gibt.

     AUSGEBLENDET WIRD DIE GANZE SPALTE, nicht nur das Bild. Bliebe die
     Spalte stehen, waere sie nach W3 ein leerer Kasten in voller Breite.

     ZUM HERAUSNEHMEN genuegt es, diese drei Zeilen zu loeschen; das Bild
     steht dann wieder ueber dem Text. W3 bleibt davon unberuehrt und wird
     weiter gebraucht, solange die Spalte da ist. */
  .container.content.kurort .kurort_info_text > [class*="col-xs-3"].left {
        display: none !important; }

  /* WAS W BEWUSST NICHT TUT: Abschnitt P bleibt unangetastet - die
     Klinikliste unter dem Kurortprofil ist mit ihm am 22.08.2026 erledigt
     worden, und W10 fasst nur ihre Kopfzeile an. Die Reihenfolge der
     Reiterkarte ist nicht angeruehrt worden; nach W5 steht die
     Ueberschrift vor dem Inhalt und der vor den Seitenkaesten, was dem
     Landingpage-Schema entspricht. Und auf allen vier Seiten mit
     Klinikliste bleibt EINE Meldung stehen, immer dieselbe:
     div.head.head_mode1 bekommt 255 und braucht 273.
     SIE IST KEINE. Es ist der Bootstrap-Ausgleich, den der Pruefstand
     seit seiner v02 abfangen soll: Jede .row traegt links und rechts 15
     Pixel negativen Rand, zusammen also 30, und die Spalten darin gleichen
     das mit Innenabstand wieder aus. Der Filter nimmt aber nur den
     GROESSTEN einzelnen Rand (15) statt der Summe (30), und 273 - 255 = 18
     liegt darueber. Nachgemessen ist die Seite 345 Pixel breit bei 360
     Pixeln Fenster und nicht seitwaerts schiebbar - es ist nichts
     abgeschnitten. Das ist derselbe Befund, der auf den drei
     Kliniksuche-Seiten mit div.entry-list auftritt; er steht als dritter
     Pruefstandsbefund in der Seitentypenliste und ist am 23.08.2026
     zweimal zu reparieren versucht und beide Male verworfen worden. */



  /* ===== X. Die Kurortsuche =====
     Block 7 vom 23.08.2026, zweiter Teil. Diese Seite bekommt vier Klicks
     in vier Wochen und stuende nach Besucherzahlen ganz hinten. Sie ist
     trotzdem hier, weil sie der Weg ZU den Kurortprofilen ist: Wer sie
     liegen laesst, laesst einen Weg kaputt, den Besucher innerhalb der
     Seite gehen.

     DER TRAEGER IST AM VORLAGENBESTAND GEZAEHLT, und das Zaehlen hat sich
     gelohnt: .kurorte_suche steht in VIER Vorlagen, nicht in einer -
     kurorte/kurorte_list.html und drei Merkzettelseiten hinter der
     Anmeldung (user/user_marks.html, userbackend/userbackend_merkzettel,
     klinikuser/klinikuser_merkzettel). Dasselbe gilt fuer .kurort_list.
     Beide naheliegenden Bindungen haetten also drei nie gemessene Seiten
     mitgetroffen, die nur angemeldet erreichbar sind.
     "container content kurorte_suche" dagegen steht in genau EINER
     Vorlage - auf den Merkzettelseiten sitzt .kurorte_suche auf einem
     inneren div, nicht auf dem Seitenbehaelter. Jede Regel dieses
     Abschnitts nennt deshalb die ganze Kette.

     DER BESTAND VORHER: 91 "Ursachen" bei 181 Vorkommen - der zweitgroesste
     Posten des ganzen Bestands. Von 173 Meldungen der Art "zu schmal" sind
     70 Wurzeln, und die fallen in zehn Bauarten. Sechs davon sitzen in der
     Trefferzeile.

     WARUM DIE UEBERTRAGUNG AM 22.08.2026 GESCHEITERT IST - jetzt gemessen
     und nicht mehr vermutet:
     .kurort_list traegt height:192px und overflow:hidden. Setzt man die
     vier Spalten der Zeile untereinander, braucht sie 661 Pixel; die feste
     Hoehe schneidet sie ab, und die naechste Zeile beginnt trotzdem 192
     Pixel spaeter und legt sich ueber den Rest. Genau daher kamen die 44
     neuen Ueberlappungen ("merken" ueber "Region"). Beim Nachbau am
     23.08.2026 waren es 43 - dieselbe Ursache, dieselbe Groessenordnung.
     Die Klinikzeile traegt keine feste Hoehe; deshalb kam Abschnitt I ohne
     diesen Zusatz aus. Es war also nicht die Verschachtelung, wie bisher
     angenommen, sondern eine einzelne Zeile im fremden Stylesheet. */

  /* X1 LOEST DIE TREFFERZEILE AUF - Hoehe zuerst, dann die Spalten.
     Die erste Regel gibt der Zeile ihre Hoehe frei. Ohne sie ist alles
     Weitere wirkungslos, und das ist der ganze Unterschied zum
     Fehlversuch vom 22.08.2026.
     display:flow-root steht daneben, weil die vierte Spalte ihre beiden
     Kinder (Ampel und "merken") gefloatet enthaelt, ohne dass eine
     Bootstrap-Zeile dazwischenliegt, die sie klaeren wuerde - ohne die
     Klaerung faellt die Spalte auf einen Pixel Hoehe zusammen und ihr
     Inhalt ragt in die naechste Zeile.
     DIE INNEREN SPALTEN BLEIBEN NEBENEINANDER, und das ist der Kern:
     Die Regel nennt nur die DIREKTEN Kinder der Zeile. Innerhalb der
     dritten Spalte stehen drei Beschriftungspaare (col-xs-4 "Region"
     neben col-xs-8 "Baden-Wuerttemberg"), die zusammengehoeren und
     zusammenbleiben. Eine Regel auf alle Nachfahren haette sie
     auseinandergerissen.
     Wirkung: 91 Ursachen auf 26, Ueberlappungen von 43 auf 2. */
  .container.content.kurorte_suche .kurort_list {
        height: auto !important; overflow: visible !important;
        display: flow-root !important; }
  .container.content.kurorte_suche .kurort_list > .row > [class*="col-xs-"] {
        width: 100% !important; float: none !important;
        display: flow-root !important; margin-bottom: 4px !important; }

  /* X2 SETZT DIE KOPFZEILE UNTEREINANDER. Suchfeld, Mitte und
     "Detailsuche" teilen sich dieselbe Zeile zu je einem Drittel - 65
     Pixel, waehrend die Ueberschrift "Kurort suchen" 118 braucht und der
     Verweis "Detailsuche" 105.
     Der Sache nach dasselbe wie die Abschnitte K und S1 bei der
     Kliniksuche, aber an dieser Seite gemessen und nicht von dort
     uebernommen: gemessen sind hier 65 und 51 Pixel, dort waren es 94
     und 51. */
  .container.content.kurorte_suche .search-head > [class*="col-xs-"] > .row.title > [class*="col-xs-"],
  .container.content.kurorte_suche .search-head > .row.title > [class*="col-xs-"] {
        width: 100% !important; float: none !important; text-align: left !important; }
  .container.content.kurorte_suche .suche_feld_outer > .suche_feld_top,
  .container.content.kurorte_suche .suche_feld_outer > .show_detail {
        float: none !important; width: 100% !important; }

  /* X3 RAEUMT DIE DETAILSUCHE AUF. Fuenf Filterkaesten (Schwerpunkt,
     Heilanzeigen, Region, PLZ, Landschaft) bekommen je 51 Pixel und
     brauchen 144; "Detailsuche zuruecksetzen" stand als dritter von
     fuenf mitten zwischen den Feldern. Der umgebende Kasten wird zu einer
     Spalte gemacht, in der sich die Reihenfolge festlegen laesst - die
     Vorlage selbst bleibt unberuehrt.
     Die Sinnbilder der Filter (logo_suche_*.png) sind quadratisch und
     standen 85 x 117 da, also in die Hoehe gezogen. */
  .container.content.kurorte_suche .detail_elm {
        height: auto !important; min-height: 0 !important;
        padding-top: 6px !important; padding-bottom: 10px !important; }
  .container.content.kurorte_suche .detail_elm br { display: none !important; }
  .container.content.kurorte_suche .detail_elm .select2-container,
  .container.content.kurorte_suche .detail_elm .select2-selection {
        width: 100% !important; max-width: 100% !important; }
  .container.content.kurorte_suche .detail_text_inner {
        display: flex !important; flex-direction: column !important; }
  .container.content.kurorte_suche .detail_text_inner > .detail_elm {
        order: 10 !important; width: 100% !important; float: none !important; }
  .container.content.kurorte_suche .detail_text_inner > .detail_elm.reset { order: 90 !important; }
  .container.content.kurorte_suche .detail_text_inner > .cleanup { order: 99 !important; }
  .container.content.kurorte_suche .detail_elm img { object-fit: contain !important; }

  /* X4 NIMMT DAS INFO-SINNBILD AUS DER KURORT-TREFFERZEILE.
     Auf Ansage vom 23.08.2026: "Das gruene Sinnbild fuer Information muss
     weg im mobilen Bereich, ist ueberfluessig."

     GEMESSEN: 253 x 203 Pixel in einer Zeile von 659 Pixeln - der
     zweitgroesste Posten nach dem Kurortbild und mehr als "Region",
     "PLZ" und "Landschaft" zusammen. Bei zehn Treffern je Seite sind das
     rund 2.000 Pixel Hoehe fuer ein Bild, das auf jeder Zeile dasselbe
     zeigt.

     ES IST KEINE AMPEL, und das ist der Unterschied zu Abschnitt U.
     In der Klinik-Trefferliste traegt .status_green eines von vier
     Zustandsbildern (logo_status_gruen/gelb/rot/none) und ausserdem einen
     Verweis auf das Klinikprofil - dort steckt eine Auskunft drin, und U1
     musste deshalb alle vier Zustaende nennen. Hier steht ein festes Bild
     ohne Verweis: logo_info_grun.png, immer dasselbe, in jeder Zeile.
     Nachgezaehlt in der unveraenderten Vorlage
     kk-sw-code\...\tmpl\kurorte\kurorte_list.html: genau EIN Vorkommen
     von status_green, kein status_yellow, kein status_red, kein
     status_none. Deshalb nennt X4 nur diesen einen Zustand - anders als
     U1, und aus einem gemessenen Grund.

     DIE BINDUNG IST DER HEIKLE TEIL. .status_green steht in ACHT
     Vorlagen: den vier Klinikvorlagen, den drei Merkzettelseiten hinter
     der Anmeldung und der Kurortsuche. Eine Regel an .kurort_list
     .status_green traefe die drei Merkzettelseiten mit, eine Regel an
     .status_green allein zusaetzlich die Belegungsampel der Kliniken -
     also genau das Bauteil, das Abschnitt U in einer eigenen,
     geschaeftlich begruendeten Abwaegung behandelt hat.
     Gebunden ist deshalb an .container.content.kurorte_suche, das in
     genau einer Vorlage steht.

     WAS X4 STEHEN LAESST: den Knopf "merken" darunter. Er sitzt in der
     zweiten col-xs-12 derselben Spalte und ist das einzige eigenstaendige
     Bedienelement der Zeile. */
  .container.content.kurorte_suche .kurort_list .status_green {
        display: none !important; }

  /* WAS X BEWUSST NICHT TUT: Die Abschnitte L und O bleiben als
     Merkposten stehen, obwohl ihre Sache erledigt ist - der Grund des
     Fehlversuchs ist dort nachgetragen. Die Reihenfolge der Kurort-
     Trefferzeile ist NICHT geaendert worden; ein Gegenstueck zu S2 fehlt
     also. Es fehlt mit Absicht: In der Kurortzeile gibt es keine
     Handlungsaufforderung, die vorgezogen werden koennte - "merken" ist
     der einzige eigenstaendige Knopf, und die Ampel ist keine. Die drei
     Merkzettelseiten hinter der Anmeldung sind weiterhin ungemessen; sie
     tragen dasselbe Bauteil und sind von diesem Abschnitt nicht
     betroffen, aber ihre eigenen Mengen kennt niemand. */


  /* ===== Y. Die Krankheits-Einzelseiten (Block 9) =====
     Gemessen am 24.08.2026, 360 Pixel breiter Rahmen, an
     /depression-und-reha.html: 28 Ursachen bei 50 Vorkommen, alle von der
     Art "zu schmal". Davon sind 22 Wurzeln und vier Bauarten - und diese
     vier haben EINE gemeinsame Ursache, die keine von ihnen ist.

     DIE URSACHE IST NICHT DAS BAUTEIL, SONDERN DIE SCHACHTELUNG.
     Die Klinikliste steckt auf dieser Seite drei Behaelter tief, und jeder
     .container.content traegt 30 Pixel Innenabstand auf beiden Seiten.
     Nachgemessen von aussen nach innen:

       body / section.content_body            345 Pixel
       .container.content_outer               345, Abstand 15/15  -> 315
       .row.column_outer                      315, Abstand 30/30  -> 255
       .container.content.content_static...   255, Abstand  0/30  -> 225
       .container.content.lists_kliniken      225, Abstand 30/30  -> 165
       .container.content.klinik_ajax         165, Abstand 30/30  -> 105

     Von 345 Pixeln bleiben 105 fuer den Text uebrig - dreissig Prozent.
     Auf einem breiten Bildschirm faellt das nicht auf, weil dort von 1140
     Pixeln 900 uebrigbleiben.

     WARUM ABSCHNITT P HIER NICHT GEREICHT HAT, und das ist der Punkt:
     P wirkt. Nachgemessen greifen P1 und P2 auf dieser Seite genau wie
     auf den Lexikon-Musterseiten - die aeussere Spalte steht auf 100
     Prozent, die innere Teilung auf 42/58. Nur nuetzt eine Aufteilung
     nichts, wenn das, was aufzuteilen ist, 105 Pixel breit ist.
     Eine Regel kann einen Kasten umordnen; Platz schaffen kann nur, wer
     den Abstand anfasst.

     DER TRAEGER IST IM VORLAGENBESTAND GEZAEHLT, nicht aus der Ansicht
     geschlossen (grep -rl ueber kk-sw-code\...\tmpl\, 526 Vorlagen):

       .krankheiten           19 Vorlagen - static/content/krank_*-und-reha.html
       .krankheiten_kliniken  19 Vorlagen - dieselben
       .krankheiten_similar   19 Vorlagen + krankheiten/krankheiten_show.html
       .haeufige_krankheiten   1 Vorlage  - krank_01_haeufige-gruende.html

     Die 19 sind genau die 19 Krankheits-Einzelseiten, und die Uebersicht
     traegt .krankheiten NICHT. Die Bindung an .krankheiten ist damit so
     eng wie ein Seitentyp. (Die 19 gleichnamigen Dateien in
     static/content/backup-2018-05-25/ sind Sicherungskopien von 2018 und
     werden nicht ausgeliefert.)

     Y1 GIBT DER LISTE DIE 15 PIXEL DES AEUSSEREN BEHAELTERS ZURUECK.
     Der Behaelter .container.content.content_static... hat links 0 und
     rechts 30 Pixel Abstand - eine Unwucht, die vom zweispaltigen Aufbau
     der Seite herruehrt. Gebunden ist nicht an den Behaelter (er heisst
     auf jeder der 19 Seiten anders: content_static_krank_depression_und_reha
     und so fort), sondern an sein Kind .krankheiten. Die Uebersichtsseite
     bleibt dadurch unberuehrt, obwohl sie zur selben Vorlagenfamilie
     gehoert. */
  .container.content > .krankheiten { margin-right: -15px !important; }

  /* Y2 HALBIERT DEN INNENABSTAND DER BEIDEN INNEREN BEHAELTER.
     15 statt 30 Pixel, und die 15 sind kein runder Wert, sondern der
     Ausgleich: Bootstrap gibt jeder .row darin margin-left/-right: -15px.
     Wer den Abstand ganz herausnimmt, laesst die Zeile links und rechts
     15 Pixel hinausragen - derselbe Fehler, vor dem schon der
     Schlussabsatz von P2 warnt. Gemessen bringt Y2 zusammen mit Y1
     105 -> 180 Pixel Textbreite, also drei Viertel mehr. */
  .krankheiten .container.content {
        padding-left: 15px !important; padding-right: 15px !important; }

  /* Y3 BRICHT DIE UEBERSCHRIFT DER KLINIKLISTE UM.
     "Kliniken in denen Depression behandelt wird" bekommt 195 Pixel und
     braucht 227. Das ist dasselbe Bauteil, das W10 auf dem Kurortprofil
     anfasst, aber eine andere Modusnummer: dort head_mode1, hier
     head_mode0. Die Nummer kommt aus einem Vorlagenparameter
     ([OC_lists_arg_mode:int] in _subtmpl/plugins/lists_kliniken.html) und
     sagt nichts ueber die Seite. Deshalb ist Y3 an .krankheiten gebunden
     und nicht an die Modusnummer - W10 musste das anders loesen, weil der
     Behaelter dort kein Kind der Kurortseite ist. Hier ist er eins. */
  .krankheiten .container.content.lists_kliniken > .head > .row > [class*="col-"] > h1 {
        overflow-wrap: break-word !important;
        -webkit-hyphens: auto !important; hyphens: auto !important; }

  /* Y4 TRENNT DIE VERWANDTEN KRANKHEITSBEGRIFFE NACH SILBEN.
     Unter der Klinikliste steht ein Block mit vier verwandten Begriffen,
     der per Ajax nachlaedt (_subtmpl/plugins/lists_krankheitensimilar.html).
     "Erschoepfungsdepression" bekommt 180 Pixel und braucht 188.

     DIESER BLOCK IST DER GRUND, WARUM DIE SEITE VON MESSUNG ZU MESSUNG
     SCHWANKT - und die Erklaerung ist eine andere als bisher angenommen.
     Es liegt nicht daran, ob er geladen ist: nachgemessen ist er eine
     Sekunde nach dem Ladeereignis da. Es liegt daran, dass er JEDES MAL
     ANDERE BEGRIFFE zeigt. Zwei Laeufe hintereinander lieferten einmal
     "Depression bei Kindern" und einmal "Altersdepression" an derselben
     Stelle. Ein langes Wort ist mal dabei und mal nicht, und genau das
     erklaert die 32 gegen 28 Ursachen vom 23.08.2026.

     Nach Y4 bricht "Erschoepfungsdepression" auf zwei Zeilen (21 -> 42
     Pixel Hoehe) und keiner der vier Begriffe steht ueber. Keine
     Buchstabensaeule - der Kasten ist 180 Pixel breit, nicht 9 wie im
     Fehler der v01. */
  .krankheiten_similar .lists_krankheiten .entry h4 {
        overflow-wrap: break-word !important;
        -webkit-hyphens: auto !important; hyphens: auto !important; }

  /* ===== Z. Die Krankheiten-Uebersicht (Block 9) =====
     /krankheiten.html, gemessen am 24.08.2026: EINE Ursache bei 19
     Vorkommen, und die 19 sind die 19 Krankheiten der Seite.

     JEDES DER 19 FOTOS IST 28 PROZENT BREITER ALS SEIN KASTEN.
     Die fremde Stildatei baut den Bildstreifen nach dem Muster
     "Kasten mit fester Hoehe, Bild fuellt die Hoehe, Rest wird
     abgeschnitten":

       .haeufige_krankheiten_eintrag .image     { height: 15em; overflow: hidden }
       .haeufige_krankheiten_eintrag .image img { max-width: none; width: auto; height: 100% }

     Auf einem breiten Bildschirm ist der Kasten breiter als das Bild, und
     abgeschnitten wird fast nichts. Bei 360 Pixeln ist der Kasten 255
     breit und das Bild 353 - die rechten 98 Pixel jedes Fotos sind weg,
     und zwar immer die rechten, nie mittig. Die Fotos sind 800 x 533
     gross und zeigen Menschen; was rechts abgeschnitten wird, ist auf
     mehreren Bildern der halbe Bildgegenstand.

     DER KASTEN TRAEGT EINE FESTE HOEHE, und deshalb genuegt es nicht, das
     Bild schmaler zu machen: bliebe .image bei 15em, entstuende unter dem
     Bild ein leerer Streifen von 30 Pixeln. Z1 nimmt die feste Hoehe
     heraus, Z2 legt das Bild in die volle Breite. Ergebnis nachgemessen:
     255 x 240 Kasten mit 353 x 235 Bild wird zu 255 x 170 Kasten mit
     255 x 170 Bild - das ganze Foto, und die Zeile wird sogar kuerzer.

     ZWEI WEGE SIND VERWORFEN WORDEN. object-fit: cover haette die feste
     Hoehe behalten und mittig statt rechts beschnitten - der Zuschnitt
     bliebe, nur gleichmaessiger. Und eine Regel an .content_static img
     allein waere auf drei Vorlagen gegangen (static/show.html,
     static/embedded_show.html, zertifikate/zertifikate_show.html) statt
     auf die eine, die den Bildstreifen hat.

     Gebunden ist an .haeufige_krankheiten - EINE Vorlage im ganzen
     Bestand, gezaehlt am 24.08.2026. */
  .haeufige_krankheiten .haeufige_krankheiten_eintrag .image {
        height: auto !important; }
  .haeufige_krankheiten .haeufige_krankheiten_eintrag .image img {
        width: 100% !important; height: auto !important; max-width: 100% !important; }

  /* WAS Y UND Z BEWUSST NICHT TUN: Die Brotkrumenzeile bleibt, wie sie
     ist - "Startseite > Depression und Reha" ragt 15 Pixel ueber ihren
     Kasten hinaus, und das ist der Bootstrap-Ausgleich, nicht ein Mangel
     (dritter Pruefstandsbefund). Die Umfrage in .krankheiten_umfrage ist
     in allen 19 Vorlagen auskommentiert und daher nicht gemessen. Und die
     6.137 Lexikonseiten hinter /krankheit/ bleiben unerreichbar: Sie
     liefern seit dem 09.05.2026 fuer jeden Besucher 403. Y3 und Y4 wuerden
     dort greifen, sobald sie wieder offen sind - .krankheiten_similar
     steht auch in krankheiten/krankheiten_show.html -, gemessen ist das
     nicht und kann es nicht sein. */

  /* ===== AA. Die Startseite (Block 8) =====
     Gemessen am 24.08.2026 bei 360 Pixeln gegen die gebaute v13: 35
     Ursachen bei 35 Vorkommen, davon 29 der Art "zu schmal" und 6 der
     Art "Texte uebereinander". Von den 29 sind 11 Wurzeln in sechs
     Bauarten - .subtitle, h3, .suchanfrage, .generic_button_round,
     .krankheit_outer und .kritik_outer.

     GEBUNDEN IST AN .index_pages UND AN DIE EINZELNEN .index_pageN.
     Im Vorlagenbestand gezaehlt (grep -rl ueber tmpl\, 380 Vorlagen):
     .index_pages, .index_page1 bis .index_page6, .subtitle2 und
     .suchauftrag_button_outer stehen in genau EINER ausgelieferten
     Vorlage, naemlich index.html (die zweite Fundstelle _backup-rs/
     index.html wird nicht ausgeliefert). Die Bindung ist damit so eng
     wie ein Seitentyp. Nicht gebunden wird an .generic_button_round -
     das steht in 31 Vorlagen -, sondern an seinen Ort in der Startseite.

     ZWEI DER DREI ERSTEN REGELN BERICHTIGEN ABSCHNITT A vom 21.08.2026.
     A hat den Einstiegsblock zurueckgeholt und dabei .second und .third
     auf float:none gesetzt, .first aber nicht - siehe AA1. Und A hat den
     drei Schrittkaesten einen weissen Grund gegeben, ohne die weisse
     Schrift mitzuziehen, die dort von der Pfeilgrafik stammt - siehe
     AA2. Beides ist an der gerenderten Seite gefunden worden, nicht am
     Pruefstand: Der misst Geometrie und keine Farben. */

  /* AA1 - der geraeumte Float.
     .first ist col-xs-12 und floatet; .second bekam in A float:none und
     weicht dem Float deshalb nicht aus. Beide beginnen bei 328 Pixeln
     Hoehe, und die gruene Ueberschrift "Rehaklinik finden..." liegt mit
     187 x 29 Pixeln ueber "Hier finden Sie die passende Rehaklinik".
     Das ist die groesste der sechs Ueberlappungen. */
  .index_page1 .first { float: none !important; width: 100% !important;
                        padding-left: 0 !important; padding-right: 0 !important; }

  /* AA2 - weisse Schrift auf weissem Grund.
     Die drei Schritte "1. Behandlungsgrund waehlen" bis "3. Kur-Antrags-
     Infos eingeben" standen auf einer gruenen Pfeilgrafik und sind
     deshalb weiss gesetzt. A hat die Grafik entfernt und den Kaesten
     background:#fff gegeben; seither stehen drei Zeilen weiss auf weiss.
     Auf dem Telefon sieht das nach drei leeren Streifen zwischen der
     Nutzenliste und dem gelben Knopf aus.
     Die Farbwahl ist eine Gestaltungsfrage: gesetzt ist der Fliesstext-
     ton der Seite, nicht der Markenton. */
  .index_page1 .pfeil .number,
  .index_page1 .pfeil .text { color: #333333 !important; }

  /* Derselbe Abschnitt A hat den Zeilenumbruch innerhalb der drei
     Schritttexte ausgeblendet, damit sie einzeilig bleiben. Im Quelltext
     steht "Behandlungsgrund<br>waehlen" - ohne den Umbruch und ohne
     Leerzeichen daneben liest sich das als "Behandlungsgrundwaehlen".
     Aufgefallen ist es erst jetzt, weil die Zeile bis heute weiss auf
     weiss stand. Der Umbruch kommt deshalb zurueck; die drei Kaesten
     wachsen dadurch von 45 auf 72 Pixel Hoehe. */
  .index_page1 .pfeil .text br { display: inline !important; }

  /* AA3 - die gruenen Haken an der Kante.
     A hat den Spalten in .second und .third den Innenabstand genommen,
     damit sie die volle Breite bekommen. Der negative Rand der Bootstrap-
     Zeile (-15/-15) blieb dabei stehen, und deshalb beginnt die
     Nutzenliste 15 Pixel weiter links als der Kasten, in dem sie steht:
     Das Hakensinnbild sitzt bei 0 Pixeln Hintergrundabstand genau auf
     der Kante. Gemessen: Liste bei 42 statt 57 Pixeln. */
  .index_page1 .second > .row,
  .index_page1 .third > .row { margin-left: 0 !important; margin-right: 0 !important; }

  /* AA4 - lange Woerter in den Abschnittstiteln.
     "Ihr Infoportal ueber Kur, Reha und Gesundheitsvorsorge" braucht in
     24 Pixeln Schrift 275 Pixel und hat 251 - das lange Wort passt in
     keine Zeile. Dasselbe Mittel wie Y4 auf den Krankheitsseiten. Das
     Dokument traegt lang="de", die Trennung folgt also deutschen Regeln. */
  .index_pages .subtitle { -webkit-hyphens: auto !important; hyphens: auto !important;
                           overflow-wrap: break-word !important; }

  /* AA5 - die Zierstriche, die die Ueberschrift durchstreichen.
     Vier Abschnittsueberschriften (.subtitle2 in .index_page3 bis 6)
     stehen in einer Dreierteilung: links col-xs-3 mit einem <hr>, in der
     Mitte col-xs-6 mit der Ueberschrift, rechts wieder col-xs-3 mit
     einem <hr>. Bei 360 Pixeln bleiben der Ueberschrift 112 Pixel; sie
     bricht dort vierzeilig um, waehrend die beiden Striche auf der Hoehe
     der ERSTEN Zeile stehen bleiben. Auf dem Telefon sieht das aus, als
     sei "Rehakliniken mit freien Plaetzen" durchgestrichen.
     Dieselbe Teilung traegt die Knopfzeile in .index_page4 (.forth),
     dort col-xs-4 / col-xs-4 / col-xs-4: der Knopf "Jetzt auch Klinik
     finden" ist deshalb 59 Pixel breit und setzt jedes Wort auf eine
     eigene Zeile.
     Die Striche fallen weg statt umzubrechen. Das ist keine neue
     Entscheidung: Fuer dieselben Zierlinien im Suchassistenten ist am
     21.08.2026 festgehalten worden, dass sie auf schmalem Bildschirm
     nur Striche ueber und unter der Ueberschrift waeren und zu Recht
     entfallen (Befund hidden-xs, Abschnitt 2.2). */
  .index_pages .subtitle2 > .left,
  .index_pages .subtitle2 > .right,
  .index_pages .forth > .row > .left,
  .index_pages .forth > .row > .right { display: none !important; }
  .index_pages .subtitle2 > .center,
  .index_pages .forth > .row > .center { width: 100% !important; float: none !important;
                                         padding-left: 0 !important; padding-right: 0 !important; }

  /* AA6 - der Knopf ueber die volle Breite.
     Ohne diese Regel behielte der Knopf seine Eigenbreite, auch wenn
     seine Spalte breiter wird. Gebunden ist an .suchauftrag_button_outer
     innerhalb von .index_pages, nicht an .generic_button_round: das
     steht in 31 Vorlagen. Fuer .index_page1 tut Abschnitt A dasselbe
     bereits; hier greift es fuer .index_page4. */
  .index_pages .forth .suchauftrag_button_outer { display: block !important;
                                                  width: 100% !important; }
  .index_pages .forth .generic_button_round_outer,
  .index_pages .forth .generic_button_round { width: 100% !important;
                                              max-width: 100% !important; }

  /* AA7 bis AA9 - drei Bilderstrecken mit fest verdrahteten Kartenbreiten.
     Die Startseite traegt in .index_page4, 5 und 6 je einen bxSlider.
     Der Slider selbst rechnet richtig: Er setzt jede Karte auf die
     Breite seines Sichtfensters, also 240 Pixel. Was nicht passt, sind
     die Inhalte DARIN, die aus der Zeit der breiten Bildschirme feste
     Pixelbreiten tragen - .kritik 300, .krankheit 255, und die
     Suchanfrage-Karte 270 bei 50 Pixeln Innenabstand je Seite.
     Die Folge ist zweierlei: Der Text wird rechts abgeschnitten (bei den
     Patientenstimmen faellt das Ende jeder Zeile weg), und die Karten
     ragen ineinander - daher die fuenf uebrigen Ueberlappungen, darunter
     "Willi M." ueber "Silvia A." mit 60 x 62 Pixeln.
     ANGEFASST WIRD NUR DER INHALT DER KARTE, NIE DIE KARTE SELBST.
     Wer die Kartenbreite aendert, verstellt dem Slider die Rechnung,
     nach der er weiterschiebt. */
  .index_page6 .kritik { width: 100% !important; max-width: 100% !important; }
  .index_page5 .krankheit { width: 100% !important; max-width: 100% !important; }

  /* Der erste Anlauf hat nur die Karte selbst angefasst und nichts
     bewirkt: Der Slider setzt sie ohnehin auf 240 Pixel, und die festen
     Breiten sitzen eine Ebene tiefer. Gemessen nach dem ersten Lauf:
     .krankheit 240 breit mit .image_link, .image, .info, .title und
     .text zu je 255 Pixeln darin, .kritik 240 breit mit .info, .title
     und .text zu je 300. Das ist der bekannte Fall "eine Regel, die zu
     wenig anfasst, ist eine eigene Fehlerquelle". */
  .index_page5 .krankheit .image_link,
  .index_page5 .krankheit .image,
  .index_page5 .krankheit .info,
  .index_page5 .krankheit .title,
  .index_page5 .krankheit .text,
  .index_page6 .kritik .info,
  .index_page6 .kritik .title,
  .index_page6 .kritik .text { width: 100% !important; max-width: 100% !important; }

  /* Zwei Mittigstellungen rechnen mit der alten Kartenbreite: Der
     Trennstrich unter der Krankheitsueberschrift ist 153 Pixel breit mit
     je 51 Pixeln Rand (zusammen 255), das Sprechblasen-Sinnbild der
     Patientenstimmen steht mit 105 Pixeln linkem Rand in einem 300 Pixel
     breiten Kasten. Beide werden auf eine Mittigstellung umgestellt, die
     ohne feste Zahl auskommt. */
  .index_page5 .krankheit .separator { width: 60% !important;
        margin-left: auto !important; margin-right: auto !important; }
  .index_page6 .kritik .image { display: block !important;
        margin-left: auto !important; margin-right: auto !important; }
  .index_page4 .suchanfrage > a { width: 100% !important; max-width: 100% !important;
                                  padding-left: 15px !important; padding-right: 15px !important; }

  /* AA10 IST GEBAUT UND WIEDER ZURUECKGENOMMEN WORDEN - wie L und O.
     Die drei Streckenspalten (.third in .index_page4, 5 und 6) tragen
     links 30 und rechts 15 Pixel Innenabstand. Die Unwucht auf 15/15 zu
     stellen haette der Strecke 15 Pixel mehr Breite gegeben, und der
     Pruefstand meldete danach auch tatsaechlich eine Meldung weniger.
     AM GERENDERTEN BLATT WAR ES EINE VERSCHLECHTERUNG: Der bxSlider hat
     die Breite seiner Karten beim Laden ausgerechnet und behaelt sie.
     Ein breiteres Sichtfenster bei gleich breiten Karten heisst, dass
     die naechste Karte 15 Pixel weit hereinschaut - unter den
     Patientenstimmen standen dadurch am rechten Rand ein zweites
     Anfuehrungszeichen und zwei Buchstabenreste der Nachbarkarte.
     Gemessen ohne die Regel: Sichtfenster, Karte und Karteninhalt sind
     alle gleich breit, und nichts schaut hervor.
     Die Unwucht bleibt damit stehen. Sie ist eine Gestaltungsfrage und
     keine gemessene Stelle - der Prueffall dafuer ist die Zahl 15, und
     die kostet an dieser Stelle mehr, als sie bringt. */

  /* AA11 - die feste Hoehe der drei Bilderstrecken.
     Der bxSlider misst beim Laden die hoechste seiner Karten und schreibt
     dieses Mass als feste Hoehe in das Sichtfenster. Was danach hoeher
     wird, wird unten abgeschnitten.
     DIESER MANGEL IST AELTER ALS DIESE FASSUNG: Schon ohne die v14
     brauchten 2 der 15 Patientenstimmen mehr als die eingestellten 310
     Pixel - das laengste Zitat 473. Die Regeln AA7 bis AA9 verschaerfen
     ihn, weil ein schmalerer Text mehr Zeilen braucht: aus 473 werden
     518. Deshalb wird er hier mitbehoben und nicht nur notiert.
     Gemessen mit dieser Regel: kein Ueberlaeufer mehr, in keiner der
     drei Strecken (0 von 20, 0 von 27, 0 von 15). Die Startseite wird
     dadurch 196 Pixel laenger.
     Die Hoehe springt beim Weiterschieben NICHT, weil das Sichtfenster
     die Hoehe der gesamten Kartenreihe annimmt und damit die der
     hoechsten Karte. Unter kurzen Zitaten steht deshalb etwas Leerraum -
     das ist der Preis dafuer, dass kein Text mehr abgeschnitten wird. */
  .index_page4 .bx-viewport,
  .index_page5 .bx-viewport,
  .index_page6 .bx-viewport,
  .index_page4 .suchanfrage,
  .index_page5 .krankheit_outer,
  .index_page6 .kritik_outer,
  .index_page5 .krankheit,
  .index_page6 .kritik { height: auto !important; }

  /* WAS AA BEWUSST NICHT TUT: Die drei Bilderstrecken bleiben
     Bilderstrecken. Der Pruefstand meldet ihr Sichtfenster (.bx-viewport,
     240 statt 29.275 Pixel) als "zu schmal" - das ist der fuenfte
     Pruefstandsbefund und keine Stelle: Ein Schiebekasten SOLL schmaler
     sein als sein Inhalt. Ebenso bleibt der erste Befund stehen: Der
     Filter gegen Bilderstrecken sortiert alles aus, was weiter links als
     -40 Pixel steht, und die geparkten Karten dieser drei Strecken
     liegen bei -900. Echte Ueberstaende nach links koennen dort also
     weiterhin unentdeckt bleiben. Beides gehoert in die eigene Messreihe
     nach diesem Block. */

}
