/* ===========================================================================
   WARUM IMMOBILIEN?   (#warum-immobilien)

   Neu geschrieben am 25.08.2026. Gehoert zu
   <section class="wi" id="warum-immobilien"> und assets/js/warum.js.

   Vorgabe ist die Bildvorlage Bilder/referenz-warum-immobilien.jpeg
   (1536 x 1024). Sie wird als 1536 Bildpunkte breite Ansicht gelesen.
   Jedes Mass unten steht mit dem an der Vorlage gemessenen Wert daneben,
   damit spaetere Aenderungen nachvollziehbar bleiben.

   AUFBAU DER DATEI
     1  Grundmasse und Farben
     2  Kopf   (Kleinzeile, Ueberschrift, Unterzeile)
     3  Vergleichsband
     4  Zwischenkopf
     5  Das Feld: Adern, Haus, Sprechblase, Schild
     6  Die vier Karten
     7  Fuss: Reiter und Knopf
     8  Schmale Fenster
     9  Bewegung aus

   FARBEN — am Bildpunkt gemessen, nicht geschaetzt
     Grund der Section              #F7F3F0  (Vorlage)
     Navy Schrift  #102949 auf #F7F3F0 ......... 13.3:1
     Grau  #5F6E85 auf #F7F3F0 ..................  4.9:1
     Grau  #5F6E85 auf Karte #FBFAF8 ............  5.0:1
     Weiss auf Navy #0B2C57 (Schild, Knopf) ..... 13.0:1
     Gold  #86693A auf #F7F3F0 ..................  4.7:1

   ABWEICHUNG VON DER VORLAGE — bewusst, mit Grund
   Die Kleinzeile „WARUM IMMOBILIEN?" und die Ordnungszahlen 01 bis 04
   stehen in der Vorlage im hellen Gold #A8874F. Gemessen sind das 3.2:1;
   verlangt sind 4.5:1. Beide stehen deshalb im dunkleren #86693A. Farbton
   und Saettigung sind unveraendert, nur die Helligkeit ist gesenkt.

   SCHAERFE
   Alle Grafiken sind Inline-SVG im Markup. Hier in der CSS kommt kein
   Rasterbild vor, und es gibt keinen `filter` — der wuerde die SVG beim
   Zeichnen rastern. Weiche Schatten liegen als `box-shadow` an den
   HTML-Kaesten, nicht in den Grafiken.
   =========================================================================== */

/* ---------------------------------------------------------------------------
   1  GRUNDMASSE UND FARBEN
--------------------------------------------------------------------------- */
.wi {
  --wi-grund:    #F7F3F0;   /* Grund der Section, Vorlage gemessen        */
  --wi-karte:    #FBFAF8;   /* Kartenflaeche, Vorlage gemessen            */
  --wi-navy:     #102949;   /* Ueberschriften und Kartentitel             */
  --wi-navy-tief:#08294D;   /* Schild und Knopf — Wert des Kunden, 14.6:1 */
  --wi-grau:     #5F6E85;   /* Fliesstext                                 */
  --wi-gold:     #86693A;   /* Kleinzeile und Ordnungszahlen (4.7:1)      */
  --wi-punkt:    #C0985C;   /* Anschlusspunkte der Adern — Wert des Kunden */
  --wi-linie:    #0F2E52;   /* die Adern                                  */
  --wi-haar:     #DCD5CC;   /* Haarlinien: Trenner, Reiterlinie           */

  /* Bedienschrift der Vorlage ist eine geometrische Grotesk. Im Projekt
     liegt Jost lokal vor — dieselbe Bauart, gleiche Anmutung. */
  --wi-sans: 'Jost', 'Avenir Next', 'Helvetica Neue', Arial, sans-serif;

  /* NUR background-color, KEINE Kurzschreibweise. Der Abschnitt traegt seit
     dem 30.08.2026 die Klasse `fl-creme-nach-weiss` aus base.css: er beginnt
     auf dem Creme seiner Nachbarin darueber (#F7F3F0, .ref) und endet auf
     dem Weiss seiner Nachbarin darunter (.vtr). Die Klasse setzt
     `background-image`; eine Kurzschreibweise hier wuerde sie ueberschreiben,
     weil warum.css nach base.css geladen wird.
     Der Farbwert bleibt als Rueckfall stehen und ist identisch mit dem
     Anfang des Verlaufs, --fl-creme. */
  background-color: var(--wi-grund);
  scroll-margin-top: calc(var(--header-h) + 1.5rem);
  padding: clamp(3rem, 6.5vh, 5rem) 0 clamp(3rem, 6.5vh, 5rem);
  overflow: clip;   /* nichts darf die Seite verbreitern */
}

/* Inhaltsbreite. Vorlage: das Vergleichsband liegt bei 1536 Breite von
   x=104 bis x=1432, also 1328 breit. */
.wi__inner {
  width: min(1328px, 100% - 2 * clamp(20px, 4vw, 64px));
  margin-inline: auto;
}

/* Das Zeichenblatt: es traegt die fuenf <symbol> und wird nie gezeigt. */
.wi__sprite { position: absolute; width: 0; height: 0; overflow: hidden; }

.wi__nur-vorlesen {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* ===========================================================================
   2  DER GRAUE KASTEN — UMBAU 31.08.2026

   Der Kunde hat den Aufbau selbst gezeichnet: OBEN ein laenglicher, GRAUER
   Kasten mit dem Satz „Der Unterschied ist, wie viel Kapital vom ersten Tag
   an fuer dich arbeitet." DARUNTER zwei WEISSE Kaesten nebeneinander,
   „Klassisch investieren" und „Mit Immobilie", jeder mit einer Grafik.

   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   WAS DAMIT WEGFAELLT (Stand 30.08.2026)
     — Die beiden weissen Flaechen lagen IM dunklen Kasten. Sie liegen
       jetzt darunter und ausserhalb; .wi__band ist kein Kind von .wi__kopf
       mehr.
     — Der Kasten war Anthrazit #1E222D -> #2E3643, Zeichen fuer Zeichen die
       Werte des FAQ-Kastens. Der Kunde nennt den Kasten in seiner Zeichnung
       jetzt ausdruecklich GRAU. Der Bezug auf faq.css ist damit
       aufgehoben — wer den FAQ-Kasten umfaerbt, muss hier NICHT mehr
       nachziehen.
     — Der Aussenabstand des Bandes zur Unterzeile (3,8rem) war ein Abstand
       INNERHALB des Kastens. Er ist jetzt der Abstand ZWISCHEN zwei
       Kaesten und entsprechend neu gesetzt.
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   ---------------------------------------------------------------------
   WELCHES GRAU — und warum nicht Navy und nicht Schwarz
   ---------------------------------------------------------------------
   Die Seite kennt kein Schwarz; die Leitfarbe ist Navy. Der Kunde hat hier
   aber weder Navy noch Schwarz verlangt, sondern GRAU, und er stellt es in
   seiner Zeichnung ausdruecklich gegen die beiden WEISSEN Kaesten darunter.
   Gewaehlt ist deshalb ein NEUTRALES GRAPHITGRAU ohne Blaustich:

     --wi-kasten-links   #333941
     --wi-kasten-rechts  #3F4650

   Es ist heller und deutlich weniger blau als das abgeloeste Anthrazit,
   liest sich also als Grau und nicht als „fast schwarz"; zugleich bleibt es
   dunkel genug, dass der Kasten das Wichtigste des Abschnitts bleibt
   („das ist das Wichtigste und muss hervorgehoben werden", 30.08.) und die
   beiden weissen Kaesten darunter als weiss lesbar sind.

   VERLAUFSREGEL: hoechstens 0,03 Einheiten je Bildpunkt. Der groesste
   Kanalunterschied ist Blau, 0x41 -> 0x50 = 15 Einheiten, ueber die volle
   Kastenbreite von 1328 px. Das sind 0,0113 Einheiten je Bildpunkt — knapp
   ein Drittel der Grenze. An Navy-Kanten liegt der Verlauf nicht.

   ---------------------------------------------------------------------
   DIE SCHRIFT IM GRAUEN KASTEN — gegen die HELLSTE Stelle gerechnet
   ---------------------------------------------------------------------
   Der Kasten wird nach rechts heller. Massgeblich ist deshalb immer die
   rechte Kante #3F4650, nicht der Mittelwert.

                                       #333941   #3F4650
     Ueberschrift    #FFFFFF            11,65     9,54
     Unterzeile      #C7CEDA             7,36     6,03
     Kleinzeile      --sand  #D9B485     6,00     4,91

   VERWORFEN:
     --gold-soft #C9B08A   6,53 / 4,57 — traegt zwar, aber nur mit 0,07
                                         Reserve an der hellen Kante. Das
                                         ist zu knapp; derselbe Grund hat am
                                         30.08. schon --wi-punkt verworfen.
     --gold      #A8874F   4,04 / 2,82 — reisst.
   Gewaehlt ist --sand #D9B485 mit 4,91:1 an der hellsten Stelle. Es haelt
   die warme Familie der Seite und hat 0,41 Reserve.

   Die Trennlinie zwischen den weissen Kaesten ist nichttextlich; sie steht
   in --wi-haar #DCD5CC — Zeichnung, keine Aussage.
   =========================================================================== */
.wi__kopf {
  /* ===== WEISS — FARBTAUSCH VOM 31.08.2026 ===========================
     Der Kasten trug bis heute Nachmittag den FAQ-Ton (#1E222D nach
     #2E3643). Der Kunde hat die Farben getauscht: der Kopfkasten wird
     WEISS, die beiden Vergleichskaesten darunter bekommen den FAQ-Ton.
     Die drei Zeilen darin stehen damit wieder auf Weiss, und die auf
     Weiss gemessenen Farben kehren zurueck:

       Kleinzeile     --wi-gold  #86693A auf #FFFFFF    5,12:1
       Ueberschrift   --wi-navy  #102949 auf #FFFFFF   14,31:1
       Unterzeile     --wi-grau  #5F6E85 auf #FFFFFF    5,26:1

     ES LIEGT KEIN VERLAUF MEHR DARIN — eine einfarbige Flaeche kann die
     Steilheitsregel von 0,03 Einheiten je Bildpunkt nicht verletzen.

     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     DAS HAUSSYMBOL RECHTS IM KASTEN IST ERSATZLOS ENTFALLEN.
     Kundenwortlaut: „Vergiss das Haus darin." Hier standen dafuer ein
     zweispaltiges Raster und die Regeln .wi__kopf-haus (Breite zuletzt
     clamp(96px, 12vw, 168px), senkrechte Ausrichtung, Bilddarstellung)
     samt eigenem Wert fuer schmale Fenster. Alles weg.
     Der Kasten ist damit EINSPALTIG und traegt nur noch drei schmale
     Zeilen — genau das, was der Kunde mit „viel niedriger, nicht ganz so
     hoch und nicht ganz so gross" gemeint hat. Der Innenabstand ist
     entsprechend zurueckgenommen (war bis 2,9rem oben und unten).
     Die Dateien assets/img/warum/kapital-haus.{webp,png} liegen weiter
     im Ordner, werden von dieser Seite aber nirgends mehr geholt.
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     DIE KANTE ist die doppelte Haarlinie, die seit dem 31.08.2026 alle
     drei Kaesten dieses Abschnitts fuehren — aussen Navy auf 0,13, innen
     Gold auf 0,20. Ein weisser Kasten auf dem cremefarbenen Grund der
     Section braucht sie: ohne Kante saehe man ihn nicht.
     Der weiche Schlagschatten von heute frueh ist entfallen; die
     Handschrift des Projekts ist die feine Linie, nicht der Schatten. */
  background: #FFFFFF;
  border: 1px solid rgba(16, 41, 73, 0.13);
  border-radius: 20px;
  box-shadow: inset 0 0 0 1px rgba(168, 135, 79, 0.20);
  padding: clamp(1.3rem, 2.2vw, 2rem) clamp(1.2rem, 2.6vw, 2.8rem);
  text-align: center;
}

/* Vorlage: mittig, Grundlinie y=40, Versalien, weite Sperrung. */
.wi__eyebrow {
  font-family: var(--font-ui);
  font-weight: 500;
  font-size: clamp(0.74rem, 0.98vw, 0.94rem);   /* 15px bei 1536 */
  letter-spacing: 0.22em;
  text-transform: uppercase;
  /* Wieder mittig: der Kasten ist seit dem Farbtausch einspaltig, es
     steht nichts mehr rechts daneben, worauf sich eine linke Kante
     beziehen koennte. */
  text-align: center;
  color: var(--wi-gold);       /* #86693A — 5,12:1 auf Weiss */
  margin: 0 0 clamp(0.5rem, 1vh, 0.9rem);
}

/* DIE UEBERSCHRIFT TRAEGT SEIT DEM FARBTAUSCH VOM 31.08.2026 WIEDER DEN
   SATZ MIT DEM VERMOEGEN — siehe den Vermerk im Markup. Er ist kuerzer als
   der Unterschied-Satz und steht bei 1440 px zweizeilig. */
.wi__h2 {
  font-family: var(--font-display);
  font-weight: 300;
  /* Eine Spur kleiner als der alte Wert (3.52vw / 3.4rem): der neue Satz
     hat 12 statt 10 Woerter und stuende sonst dreizeilig im Kasten. */
  font-size: clamp(1.68rem, 3.15vw, 3.05rem);
  line-height: 1.14;
  letter-spacing: -0.012em;
  text-align: center;
  color: var(--wi-navy);       /* #102949 — 14,31:1 auf Weiss */
  text-wrap: balance;
  /* ===== EINE ZEILE — 31.08.2026 =====================================
     Kundenwunsch: „Warum Immobilien soll in einer Zeile stehen. Dann kann
     der Kasten auch ein bisschen kleiner werden."

     DER GRAD WAR NIE DAS PROBLEM. Hier stand `max-width: 22em`, und genau
     das hat den Satz umbrechen lassen — nicht die Kastenbreite.
     Nachgemessen: der Satz braucht bei jedem Grad exakt 22,545 mal die
     Schriftgroesse an Breite. 22em waren also 0,545em zu wenig, und der
     Satz brach ab, obwohl im Kasten reichlich Platz war:

       Fenster   Grad     noetig   im Kasten frei   alte Grenze 22em
        1920     48,8 px   1100 px     1238 px          1074 px
        1440     45,4 px   1023 px     1250 px           998 px
        1280     40,3 px    909 px     1111 px           887 px
        1024     32,3 px    727 px      889 px           710 px
     In jeder Zeile ist „noetig" kleiner als „frei" und groesser als die
     alte Grenze. Der Grad bleibt deshalb unveraendert; nur die Grenze
     steigt auf 23,5em — knapp einen Buchstaben Reserve ueber dem
     gemessenen Bedarf, damit sie ihre Aufgabe behaelt: den Satz nicht bis
     an die Kastenkanten laufen zu lassen.

     BIS WOHIN EINZEILIG. Solange der Grad an 3,15vw haengt, wachsen
     Bedarf (0,710 x Fensterbreite) und freier Platz (0,868 x
     Fensterbreite) im selben Verhaeltnis — der Satz bleibt einzeilig. Erst
     wenn der Grad auf seinen unteren Anschlag von 1,68rem faellt, hoert
     das auf: unterhalb von rund 695 px Fensterbreite bricht der Satz um.
     Die Vorgabe „einzeilig ab etwa 1024 px" ist damit mit grossem Abstand
     eingehalten.

     WAS DER KASTEN GEWINNT: eine Zeile statt zwei, bei 1440 px also
     51,7 px weniger Bauhoehe. */
  max-width: 23.5em;
  margin: 0 auto;
}

.wi__sub {
  font-family: var(--wi-sans);
  font-weight: 400;
  font-size: clamp(0.98rem, 1.24vw, 1.19rem);   /* 19px bei 1536 */
  line-height: 1.6;
  text-align: center;
  color: var(--wi-grau);       /* #5F6E85 — 5,26:1 auf Weiss */
  margin: clamp(0.5rem, 1.1vh, 0.9rem) auto 0;
  max-width: 42em;
}

/* ---------------------------------------------------------------------------
   3  DIE ZWEI WEISSEN KAESTEN

   Sie stehen als eigenstaendige Kaesten UNTER dem grauen, nicht mehr darin.
   Die Zweispaltigkeit mit dem senkrechten Strich in der Mitte
   (1fr / auto / 1fr) ist unveraendert aus der vorigen Fassung uebernommen.

   `align-items: stretch` statt `start`: die beiden Kaesten sollen gleich
   hoch sein, auch wenn die eine Haelfte eine Zeile mehr braucht — sonst
   stuenden zwei verschieden hohe weisse Flaechen nebeneinander und die
   Grafiken saessen auf verschiedenen Hoehen.
--------------------------------------------------------------------------- */
.wi__band {
  position: relative;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: stretch;
  /* Der Abstand zum grauen Kasten. War bis zum 31.08. der Abstand INNERHALB
     des dunklen Kastens (3,8rem); als Abstand zwischen zwei Kaesten darf er
     etwas knapper stehen, sonst zerfaellt die Gruppe. */
  margin-top: clamp(1.4rem, 2.6vh, 2.2rem);
  padding: 0;
}

/* ===========================================================================
   DIE ZWEI KAESTEN TRAGEN DEN FAQ-TON — 31.08.2026 (Farbtausch)

   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   SIE WAREN WEISS. Der Kunde hat die Farben getauscht: der Kopfkasten
   wird weiss, diese beiden bekommen die Farbe, die der Kopfkasten hatte —
   den FAQ-Ton. Die Schrift darin wird weiss beziehungsweise hell.
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   ES IST EINE FLAECHE UND KEIN VERLAUF, und das ist gerechnet, nicht
   gespart. Der FAQ-Kasten laeuft von #1E222D nach #2E3643, ein Abstand
   von 22 Einheiten im Blaukanal. Die Regel des Projekts erlaubt hoechstens
   0,03 Einheiten je Bildpunkt:

     Kopfkasten frueher, ueber die volle Breite 1328 px   0,017   haelt
     eine Haelfte bei 1920 px Fenster,           740 px   0,030   Grenze
     eine Haelfte bei 1440 px Fenster,           650 px   0,034   reisst
     eine Haelfte bei  760 px Fenster,           314 px   0,070   reisst

   Derselbe Verlauf, der ueber die volle Kastenbreite sauber war, ist auf
   der halben Breite zu steil. Er wuerde ausserdem zweimal nebeneinander
   von dunkel nach hell laufen und in der Mitte eine harte Kante ergeben.

   GESETZT IST DESHALB DER MITTELWERT DES FAQ-PAARES ALS FLAECHE: #262C39.
   Er steht schon in der Kontrasttabelle des abgeloesten Kopfkastens als
   mittlere Messstelle. Eine einfarbige Flaeche kann die Steilheitsregel
   nicht verletzen, und der Ton ist derselbe wie im FAQ-Kasten — nur ohne
   das Atmen darin.

   DIE SCHRIFT, gemessen gegen #262C39:
     Marke          --sand    #D9B485    7,20:1   ✓
     Hervorhebung   #FFFFFF             13,98:1   ✓
     Fliesstext     #C7CEDA              8,84:1   ✓
   Alle drei liegen deutlich ueber 4,5:1. Weil die Flaeche einfarbig ist,
   gelten die Werte an JEDER Stelle des Kastens und nicht nur an der
   hellsten — anders als beim frueheren Verlauf.

   VERWORFEN fuer die Marke:
     --wi-gold #86693A   auf #262C39 nur 1,7:1 — auf dunklem Grund
                         unbrauchbar. Es ist der Ton, der auf WEISS trug;
                         mit dem Farbtausch dreht sich das um.
     --gold-soft #C9B08A  6,70:1 — traegt auch, ist aber blasser als Sand.
   Gewaehlt ist --sand, weil der Kunde „in Richtung Gold" verlangt hat und
   Sand von den tragenden Toenen der waermste und kraeftigste ist.

   DIE KANTE bleibt die doppelte Haarlinie aller drei Kaesten dieses
   Abschnitts: aussen Navy auf 0,13, innen Gold auf 0,20. Auf dem dunklen
   Grund tritt die goldene Innenlinie hervor und die navyfarbene fast
   nicht — das ist richtig so, die Fassung soll golden sein.
   =========================================================================== */
.wi__band-halb {
  /* ===== TEXT LINKS, SYMBOL RECHTS — 31.08.2026 ========================
     Kundenwortlaut: „Schreibe einfach den Text auf der linken Seite, die
     Grafiken packst du jeweils auf die rechte Seite, dann sind die
     Kaesten nicht so hoch. Die Grafiken muessen viel, viel kleiner sein."

     Bis dahin standen Marke, zwei Textzeilen und die Grafik
     UNTEREINANDER und mittig; die Grafik war bis zu 440 px breit und
     machte den Kasten hoch. Jetzt: Marke und Text bilden eine Spalte
     links, das Symbol steht in einer eigenen, schmalen Spalte rechts.
     Der Kasten ist dadurch flach und breit.

     NACHGEMESSEN bei 1440 px Fensterbreite, Hoehe eines der beiden
     Kaesten:  vorher 470 px, nachher 175 px.

     `align-items: center` stellt das kleine Symbol auf die Mitte des
     Textblocks. Die Textspalte ist linksbuendig — mittiger Satz neben
     einem Bild haette zwei linke Kanten. */
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(1rem, 2.2vw, 2.1rem);
  text-align: left;
  /* Der Mittelwert des FAQ-Paares als Flaeche — die Rechnung steht oben. */
  background: #262C39;
  /* ===== FEINE LINIE STATT SCHATTEN — 31.08.2026 ======================
     Kundenwunsch: „Du musst die Kaesten generell noch ein bisschen
     schoener darstellen." Die Vorgabe fuer das Wie ist die Handschrift
     des Projekts, und die heisst: feine Linien statt Schatten.

     WEGGEFALLEN ist der weiche Schlagschatten
       0 1px 2px rgba(16,41,73,0.05), 0 16px 38px -20px rgba(16,41,73,0.22)
     Er hob den Kasten von der Flaeche ab; das ist die Sprache von
     Bedienelementen, nicht die dieser Seite.

     AN SEINE STELLE tritt eine doppelte Kante, wie sie das Projekt an
     seinen ruhigen Flaechen fuehrt: aussen eine Navy-Haarlinie in
     rgba(16,41,73,0.13), innen — ueber `box-shadow: inset` und damit ohne
     ein zweites Element — eine zweite Haarlinie in Gold auf 0,20. Die
     goldene Linie liegt einen Punkt innerhalb der navyfarbenen und gibt
     dem Kasten eine Fassung statt einer Kontur.

     Beide sind nichttextlich; die Schwelle von 4,5:1 gilt fuer sie nicht.
     Der Radius steigt von 18 auf 20 px — derselbe Wert wie am grauen
     Kasten darueber, damit die drei Kaesten eine Familie sind. */
  border: 1px solid rgba(16, 41, 73, 0.13);
  border-radius: 20px;
  box-shadow: inset 0 0 0 1px rgba(168, 135, 79, 0.20);
  padding: clamp(1.3rem, 2.1vw, 2rem) clamp(1.3rem, 2.1vw, 2rem);
}
/* Marke und die beiden Textzeilen bilden zusammen die linke Spalte. */
.wi__band-satz { min-width: 0; }

/* ===========================================================================
   DIE ZWEI MARKEN — IN GOLD, 31.08.2026 (zweite Fassung)

   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ERSTE FASSUNG DESSELBEN TAGES: das Sandetikett im Format des
   Hero-Knopfes ist entfallen (Flaeche --sand, Kante --gold, Radius
   --radius-btn, Schrift --navy-800) — der Kunde wollte keine gefuellte
   Flaeche mehr, die Schrift selbst soll die Farbe tragen. Gesetzt war
   danach: „Klassisch investieren" in --wi-grau, „Mit Immobilie" in
   --wi-gold, also die Rangfolge der Aussage in der Farbe.

   ZWEITE FASSUNG: „Klassisch investieren und Mit Immobilie muessen
   kraeftiger hervortreten, in Richtung Gold." Der Kunde nennt das
   ausdruecklich wichtig. BEIDE stehen deshalb jetzt in Gold; die
   Unterscheidung traegt der Text selbst und das Symbol daneben, nicht
   mehr die Farbe.
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   WELCHES GOLD — gemessen auf dem tatsaechlichen Grund, und das ist der
   WEISSE Kasten, nicht das Papier der Seite:

     --gold-text / --wi-gold  #86693A   5,12:1   ← GESETZT
     --sand-schrift           #B0834A   3,39:1   reisst
     --gold                   #A8874F   3,36:1   reisst
     --sand                   #D9B485   1,94:1   reisst deutlich

   #86693A ist der dunkelste Ton der goldenen Familie des Projekts und der
   einzige, der als SCHRIFT auf Weiss traegt. base.css haelt genau das
   fest: „Gold als Schrift: 4.82:1 auf warmem Papier" — auf reinem Weiss
   sind es die 5,12:1 von oben.

   KRAEFTIGER WIRD DIE ZEILE ZUSAETZLICH DURCH ZWEI DINGE, die nichts mit
   der Farbe zu tun haben und deshalb keinen Kontrast kosten:
     · der Grad steigt um rund ein Zehntel (von 1,25 auf 1,38rem am
       oberen Anschlag) und das Gewicht von 500 auf 600;
     · unter der Zeile steht eine kurze goldene Haarlinie (::after).
   Die Haarlinie ist dieselbe Zeichnung wie .ref__strich im Kopf der
   Kundenstimmen und .abl__hausstrich unter dem Ablauf — es kommt kein
   neues Zeichen dazu.
   =========================================================================== */
.wi__band-marke {
  position: relative;
  font-family: var(--font-ui);
  /* FETT — Kundenwunsch vom 31.08.2026: „Klassisch investieren und Mit
     Immobilie werden fett gesetzt." 700 statt 600. */
  font-weight: 700;
  font-size: clamp(0.9rem, 1.42vw, 1.38rem);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--sand);          /* #D9B485 — 7,20:1 auf #262C39 */
  /* Der Abstand nach unten traegt jetzt die Haarlinie mit. */
  margin: 0 0 clamp(0.95rem, 1.7vw, 1.4rem);
}
/* Die goldene Haarlinie unter der Marke. Nichttextlich, deshalb ohne
   Kontrastschwelle; --gold misst auf Weiss 3,36:1 und ist als Zeichnung
   klar sichtbar. 34 px ist das Mass von .ref__strich. */
.wi__band-marke::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: clamp(-0.66rem, -1.15vw, -0.48rem);
  width: 34px;
  height: 1px;
  background: var(--gold);
  opacity: 0.8;
}

/* Vorlage: mittig, Grotesk 19px, Zeilenabstand 31px, grau; die
   hervorgehobenen Stellen in Navy und halbfett. */
.wi__band-text {
  font-family: var(--wi-sans);
  font-weight: 400;
  font-size: clamp(0.94rem, 1.24vw, 1.19rem);   /* 19px bei 1536 */
  line-height: 1.6;
  color: #C7CEDA;              /* 8,84:1 auf #262C39 */
  margin: 0;
}
/* Die eigenen Zeilenmasse der beiden Haelften (22,4em links, 26em rechts)
   sind am 31.08.2026 entfallen. Sie stammten aus der mittigen Fassung und
   sollten dort die Umbrueche der Vorlage nachstellen. Seit Text und Symbol
   nebeneinander stehen, bestimmt die Spaltenbreite den Umbruch; ein
   zusaetzliches Mass haette den Satz nur von seiner eigenen Spalte
   abgekoppelt. */
.wi__band-text + .wi__band-text { margin-top: 0.42em; }
.wi__band-text b {
  font-weight: 500;
  color: #FFFFFF;              /* 13,98:1 auf #262C39 */
}

/* ===========================================================================
   DIE ZWEI SYMBOLE — 31.08.2026, zweite Fassung

   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ERSTE FASSUNG VOM SELBEN TAG: die Grafik stand UNTER dem Text, ueber die
   volle Kastenbreite, bis zu 440 px, mit `margin-top: auto` an die
   Unterkante gedrueckt. Der Kunde hat genau das beanstandet — der Kasten
   wurde dadurch hoch. Ersetzt durch: rechts neben dem Text, klein.
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     vgl-klassisch   1380 x 1140   vier Balken fallend, roter Pfeil abwaerts
     vgl-immobilie   1222 x 1287   vier Balken wachsend, gruener Pfeil aufwaerts

   Beide sind im Stil der vier Symbole im Feld darunter erzeugt und
   freigestellt. Sie stehen auf einer cremefarbenen Tafel — seit dem
   Farbtausch vom 31.08.2026 ist der Kasten um sie herum dunkel, und ohne
   die Tafel saessen zwei helle Zeichnungen ohne Halt auf der dunklen
   Flaeche. Die Tafel gibt ihnen denselben Platz, den die vier Symbole im
   Feld darunter in ihren Karten haben.

   DER DECKEL VON 132 px ist der Wert, den der Kunde mit „viel, viel
   kleiner" gemeint hat, und er ist an den vier Symbolen darunter geeicht:
   die stehen bei 1240 px Feldbreite mit rund 96 px Kantenlaenge im Bild.
   132 px sind damit derselbe Groessenbereich, eine Spur groesser, weil
   hier nur zwei statt vier Symbole stehen.
   Untergrenze 78 px fuer schmale Fenster — darunter ist ein Balkenpaar
   nicht mehr als solches zu erkennen.

   MASSE: bei 1380 beziehungsweise 1222 px Dateibreite gegen 132 px
   Anzeige stehen die Faktoren bei 10,5 und 9,3. Weit ueber dem Doppelten.

   `height: auto` mit den `width`/`height`-Angaben am <img> reserviert den
   Platz vor dem Laden — es gibt keinen Nachsprung. Die beiden Dateien
   haben verschiedene Seitenverhaeltnisse (1,21 quer und 0,95 hoch); die
   Breite ist bei beiden dieselbe, die Hoehe darf sich unterscheiden. Weil
   das Symbol senkrecht mittig zum Text steht, faellt das nicht auf.
   =========================================================================== */
/* DAS SYMBOL BEKOMMT EINEN PLATZ — 31.08.2026, Teil des „schoener".
   Die beiden Symbole sind freigestellt und standen bis heute frei im
   Kasten; sie sahen dadurch aus, als lagen sie lose darin. Sie stehen
   jetzt auf einer cremefarbenen Tafel in --wi-grund #F7F3F0, dem Grund
   dieser Section, mit demselben Radius wie der Kasten selbst, eine Stufe
   kleiner (14 px). Seit dem Farbtausch traegt die Tafel doppelt: sie gibt
   den Symbolen einen Platz UND den hellen Teilen der Zeichnung einen
   Grund, auf dem sie stehen koennen. Das ist dieselbe Bauart wie bei den vier Karten im
   Feld darunter, wo die Symbole ebenfalls in einem eigenen Feld sitzen.
   Die Tafel ist Flaeche, kein Knopf: kein Rand, kein Schatten, kein
   Radius aus der Knopffamilie. */
/* ===========================================================================
   GROESSER, WEIL BESCHRIFTET — 01.09.2026, Optimierungsbriefing, Abschnitt
   04 („Bilder als Mechanismus"). Die Abbildungen tragen jetzt Beschriftung
   (drei Zufluesse rechts, die Sparrate links) und zwei Haeuser, deren
   Groessenunterschied die Aussage ist. Auf 132 px waere eine Beschriftung
   nicht zu lesen; der Deckel geht auf 250 px, die Untergrenze auf 170.
   Beide Zeichnungen haben dieselbe Leinwand (300 x 210) — die Tafeln sind
   damit gleich hoch, und die beiden Kaesten bleiben gleich hoch
   (`align-items: stretch` am Band).
   Die Tafel bleibt: Sand und Navy brauchen einen hellen Grund, und die
   Zeichnung soll einen Platz haben, nicht lose im dunklen Kasten liegen.
   Gemessen bei 1440: Kasten 638 px breit, Tafel 250 + Polster, dem Text
   bleiben 340 px — die drei Stichpunkte stehen weiterhin einzeilig bis
   zweizeilig, der Kasten waechst nicht ueber 360 px.
   =========================================================================== */
.wi__vgl {
  margin: 0;
  width: clamp(170px, 19vw, 250px);
  padding: clamp(0.4rem, 0.8vw, 0.7rem);
  background: var(--wi-grund);
  border-radius: 14px;
}
.wi__vgl svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}
/* Die Beschriftung IM SVG. Jost wie die uebrige Bedienschrift des
   Abschnitts; Grade in SVG-Einheiten, sie skalieren mit der Zeichnung.
   Farben gegen die Tafel #F7F3F0 gemessen: Navy #102949 13,3:1, Grau
   #5F6E85 4,9:1; die Pillenschrift Weiss auf #08294D 14,6:1; der Anteil
   Navy auf Sand #D9B485 rund 7,5:1. */
.wi__vgl text {
  font-family: var(--wi-sans);
  font-weight: 500;
  fill: var(--wi-navy);
}
.wi__vgl .vgl-t--quelle { font-size: 13px; }
.wi__vgl .vgl-t--weg    { font-size: 12px; font-weight: 400; fill: var(--wi-grau); }
.wi__vgl .vgl-t--wert   { font-size: 13px; }
.wi__vgl .vgl-t--pille  { font-size: 13px; fill: #FFFFFF; }
.wi__vgl .vgl-t--anteil { font-size: 12px; fill: var(--wi-navy); }

/* Trenner: nur noch die senkrechte Haarlinie. Der Kreis mit „VS", der auf
   der Vorlage darauf sass (Mittelpunkt y=281, r=36), ist am 30.08.2026
   entfallen. Der Strich selbst bleibt auf ausdruecklichen Kundenwunsch —
   er steht jetzt zwischen den beiden weissen Kaesten auf hellem Grund und
   traegt deshalb --wi-haar statt des hellen Werts von vorher. */
.wi__band-trenn {
  position: relative;
  align-self: stretch;
  width: clamp(20px, 3.4vw, 52px);
  display: grid;
  place-items: center;
}
.wi__band-linie {
  position: absolute;
  top: 12%; bottom: 12%; left: 50%;
  transform: translateX(-50%);
  width: 2px; height: 76%;
}

/* ===========================================================================
   3b  DIE ZAESUR ZWISCHEN DEN KAESTEN UND DEM ZWISCHENKOPF — 31.08.2026

   Kundenwunsch in drei Schritten am selben Tag; hier steht der Endstand,
   die beiden Zwischenstaende stehen darunter, damit niemand sie
   versehentlich wiederherstellt.

   ---------------------------------------------------------------------------
   1  DER ABSTAND — GLEICH GROSS OBEN UND UNTEN.

      Kundenwortlaut: „Es darf sogar noch einen Ticken mehr Platz sein
      zwischen ‚Deine Vorteile zum Vermoegen' und ‚Klassisch investieren' /
      ‚Mit Immobilie'." Dazu die Vorgabe, dass die Linie MITTIG in der
      Luecke sitzt — „sonst wirkt sie einer der beiden Seiten zugeschlagen".

      Beide Seiten tragen deshalb DENSELBEN Wert:

          clamp(4.5rem, 10.1vh, 7.7rem)

      oben an .wi__zaesur, unten an .wi__h3. Er ist der Wert von heute
      frueh plus ein Drittel (7,6vh -> 10,13vh, gerundet auf 10,1).

      Gemessen bei 1440 x 893, am gerenderten Abschnitt:

                                  Ausgangslage   erste Fassung   jetzt
        ueber der Linie                 —            67,9         90,2 px
        unter der Linie              57,6            57,1         90,2 px
        Luecke insgesamt             57,6           125,0        180,4 px

      Die Ausgangslage kannte die Linie noch nicht; dort standen die
      57,6 px als einziger Abstand zwischen Kaesten und Ueberschrift.

   ---------------------------------------------------------------------------
   2  DIE LINIE LAEUFT DURCH UND ENDET BEIDSEITIG BUENDIG.

      Kundenwortlaut: „Der goldene Strich darf ruhig durchgezogen sein. Auf
      der linken Seite passt er, da schliesst er ab und endet auf der
      gleichen Hoehe wie die Kaesten. Rechts verlaeuft er und wird zu weiss
      — aber er muss rechts genauso weitergehen wie auf der linken Seite."

      Also: volle Breite der Kaestenreihe, beidseitig buendig, KEINE
      Ausblendung, gleichmaessige Staerke ueber die ganze Laenge.

      DAS GEHT HIER OHNE JEDE RECHNUNG. Die Linie steht als Blockelement im
      Fluss in .wi__inner, und .wi__band — die Reihe der beiden Kaesten —
      steht ebenfalls dort. Beide bekommen damit dieselbe Inhaltskante,
      links wie rechts, bei jeder Fensterbreite. Kein `position`, kein
      `width`, kein `margin-inline`: waere eines davon noetig, waere die
      Buendigkeit geschaetzt statt gegeben.
      Nachgemessen sind trotzdem alle vier Kanten, die Werte stehen im
      Bericht vom 31.08.2026.

      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      VERWORFEN, ERSTE FASSUNG VOM SELBEN TAG: die Linie war Zeichen fuer
      Zeichen von `.vtr__linie` uebernommen, samt deren Ausblendung nach
      rechts (deckend bis 52 %, ab 78 % weg; unter 1024 px 72 % / 96 %).
      Der Kunde hat genau diese Ausblendung beanstandet. Sie gehoert dort
      hin und nur dort: .vtr__linie blendet aus, WEIL sie sonst in das
      ueberhaengende Fassadenfoto liefe („Diese Linie darf nicht in das
      Bild rechts hineinlaufen"). Hier steht rechts kein Bild, also gibt es
      auch keinen Grund auszublenden.
      DIE BEIDEN LINIEN SIND DAMIT NICHT MEHR DIESELBE ZEICHNUNG:
      .vtr__linie blendet weiter aus, diese hier laeuft durch. Wer die eine
      anfasst, darf die andere NICHT mitziehen.
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      GEBLIEBEN sind Farbe, Staerke und Deckkraft der Vorlage — das linke
      Ende hat dem Kunden ausdruecklich gefallen („Auf der linken Seite
      passt er"), und genau dieses Aussehen traegt die Linie jetzt ueber
      ihre ganze Laenge:

        Farbe        var(--gold)  #A8874F
        Staerke      height: 1px
        Deckkraft    opacity: 0.75

      FARBE: --gold #A8874F misst 3,36:1 auf Weiss. Nichttextlich, also
      greift die Schwelle von 4,5:1 nicht — als Zeichnung ist die Linie
      klar sichtbar. Es ist eine Flaeche in EINER Farbe, kein Verlauf; die
      Steilheitsregel von 0,03 Farbeinheiten je Bildpunkt aus base.css ist
      damit gar nicht beruehrt.

      KEINE BEWEGUNG. Die Linie steht sofort und vollstaendig — ohne
      Javascript wie mit, bei `prefers-reduced-motion: reduce` wie ohne.
      Sie traegt kein `data-reveal` und keine Animation.
   =========================================================================== */
.wi__zaesur {
  display: block;
  height: 1px;
  margin: clamp(4.5rem, 10.1vh, 7.7rem) 0 0;
  background: var(--gold);
  opacity: 0.75;
}

/* ---------------------------------------------------------------------------
   4  ZWISCHENKOPF
   Vorlage: „Vier Kräfte…" Grundlinie y=482, Versalhoehe 30px → 45px Grad.
--------------------------------------------------------------------------- */
.wi__h3 {
  font-family: var(--font-display);
  font-weight: 300;
  font-size: clamp(1.5rem, 2.93vw, 2.82rem);    /* 45px bei 1536 */
  line-height: 1.15;
  text-align: center;
  color: var(--wi-navy);
  text-wrap: balance;
  /* Der Abstand UNTER der goldenen Zaesur. Er ist seit dem 31.08.2026
     wortgleich mit dem Abstand darueber (.wi__zaesur) — der Kunde will
     die Linie mittig in der Luecke stehen haben. Die Rechnung steht
     dort. Der alte Wert clamp(2.6rem, 6.4vh, 4.6rem) stammte aus der
     Vorlage (380 → 452) und kannte die Linie noch nicht. */
  margin: clamp(4.5rem, 10.1vh, 7.7rem) 0 0;
}
.wi__h3sub {
  font-family: var(--wi-sans);
  font-weight: 400;
  font-size: clamp(0.94rem, 1.24vw, 1.19rem);
  line-height: 1.6;
  text-align: center;
  color: var(--wi-grau);
  margin: 0.4rem 0 0;
}

/* ---------------------------------------------------------------------------
   5  DAS FELD
   Ruhende Vorlage: das Feld liegt bei x 145..1382, y 500..852. Auf der
   aktiven Vorlage tragen die Karten zusaetzlich die Zeile „Mehr erfahren";
   dadurch waechst ihre Hoehe von 132 auf 154. Das Feld traegt deshalb das
   Seitenverhaeltnis 1240:385. Die Karten liegen in Prozent darin, die
   Adern in einem SVG mit genau diesem viewBox — dadurch treffen Aderende
   und Kartenrand bei jeder Breite auf den Bildpunkt genau aufeinander.
--------------------------------------------------------------------------- */
.wi__feld {
  position: relative;
  width: 100%;
  max-width: 1240px;
  margin: clamp(0.4rem, 1vh, 0.9rem) auto 0;
  /* Seitenverhaeltnis aus der Vorlage: das Rechteck, das die vier Karten
     dort gerade umschliesst, misst 1172 x 305 Bildpunkte. Umgerechnet auf
     die Feldbreite 1240 sind das 323 Einheiten Hoehe. */
  aspect-ratio: 1240 / 323;
  container-type: inline-size;
}

.wi__adern {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  z-index: 1;
}

/* Das Haus. Die Vorlage misst die Grundstuecksplatte 356 von 1237
   Feldbreite; der Ring darum ist 1,31 mal so breit. Damit dieses
   Verhaeltnis stimmt, ist die Zeichenflaeche 451 Feldeinheiten breit —
   die Platte fuellt davon 79 Prozent. Senkrecht so gesetzt, dass die
   vordere Ecke der Platte auf der Mittelhoehe des Rings liegt, wie in
   der Vorlage. */
.wi__haus {
  position: absolute;
  /* Die erzeugte Abbildung ist QUADRATISCH (1024 x 1024) und zeigt ein
     hoeheres Haus auf einer kleineren Platte als die Zeichnung davor.
     Damit die Platte weiterhin mittig im Ring sitzt und das Dach nicht in
     die Zeile darueber ragt, ist nur die BILDFLAECHE neu vermessen —
     Karten, Adern, Ring und Schild sind unberuehrt geblieben:
       sichtbarer Inhalt der Datei  x 31..1005, y 77..959 von 1024
       Anzeigebreite 339 Feldeinheiten, Inhalt damit 322 breit, 292 hoch
       waagrecht auf die Feldmitte 620 zentriert
       senkrecht so, dass die Platte auf der Ringmitte endet */
  /* NEU VERMESSEN am 25.08.2026 fuer die freigestellte Abbildung. Die
     vorige war gar nicht freigestellt — sie steckte in einem deckenden
     Rechteck, deshalb stand das Haus nie im Ring.

       Datei              1254 x 1254
       sichtbarer Inhalt  x 40..1221, y 89..1182  =  1181 x 1093
       Anzeigebreite      30,48 % von 1240 = 378 Feldeinheiten
       Gebaeude damit     356 breit, 329 hoch
       Ring (Ellipse)     Mitte 620 / 289, rx 234, ry 69, also 468 breit

     Waagrecht auf die Ringmitte 620 zentriert — dabei zaehlt die Mitte des
     SICHTBAREN Inhalts (50,3 % der Dateibreite), nicht die Dateimitte.
     Senkrecht so, dass die Unterkante der Sockelplatte auf der Mittellinie
     der Ellipse aufsetzt: 289 - 0,9426 x 378 = -67,4 Feldeinheiten. */
  /* VERKLEINERT statt nach oben geschoben. Solange das Haus mit der
     Sockelunterkante auf der Ringmitte aufsetzt, schiebt jede zusaetzliche
     Breite es zwangslaeufig weiter nach oben — bei 378 Feldeinheiten ragte
     es in die Unterzeile. Also andersherum: kleiner, dafuer sitzt es tiefer
     und liegt ganz im Ring.

       Datei              1254 x 1254
       sichtbarer Inhalt  x 40..1221, y 89..1182  =  1181 x 1093
       Anzeigebreite      26 % von 1240 = 322 Feldeinheiten
       Gebaeude damit     303 breit, 281 hoch
       Ring nach der Vergroesserung 580 breit — das Haus fuellt ihn zu gut
       der Haelfte, wie in der Vorlage

     Waagrecht auf die Ringmitte 620, gerechnet mit der Mitte des SICHTBAREN
     Inhalts bei 50,3 % der Dateibreite. Senkrecht: 289 - 0,9426 x 322. */
  /* HAUS, aus der Vorlage gerechnet.

       Vorlage: sichtbares Motiv x 586..900, y 446..698 Bildpunkte, also
       314 breit und 252 hoch; Sockelunterkante bei y 698. Umgerechnet auf
       dieses Feld: 332 breit, 267 hoch, Unterkante bei 269.

       Unsere Abbildung ist proportional schmaler und hoeher als die der
       Vorlage (Inhalt 1181 x 1093 = 1,08 gegen 314 x 252 = 1,25). Beides
       zugleich geht daher nicht. Massgebend ist die HOEHE — so bleibt das
       Haus vollstaendig im Feld und sitzt mit der Sockelunterkante genau
       auf 269, wie in der Vorlage. Es faellt dadurch etwas schmaler aus:
       288 statt 332, also 0,65 der Ellipsenbreite statt 0,75.

       Datei 1254 x 1254, sichtbarer Inhalt x 40..1221, y 89..1182.
       Anzeigebreite 305,9 -> Inhalt 288 breit, 288 hoch.
       Waagrecht auf die Ellipsenmitte 603 zentriert, gerechnet mit der
       Mitte des SICHTBAREN Inhalts bei 50,3 Prozent der Dateibreite. */
  /* -- 30.08.2026: DAS ALTE HAUS -------------------------------------------
     Getauscht auf das Haus, das frueher an dieser Stelle stand. Die Datei hat
     ein anderes Seitenverhaeltnis als die vorige, deshalb sind die drei Werte
     NEU GERECHNET — mit dem Ziel, dass die sichtbare Flaeche im Feld GENAU
     dort liegt wie vorher. Nur so bleiben Punkte, Adern und Ring
     unangetastet.

     ZWEITE FASSUNG am selben Tag: die erste zeigte ein Stadtpalais. Der
     Kunde: „nicht realistisch, das Haus sieht aus wie eine Villa, wie ein
     Schloss. Es muss ja aussehen wie ein Wohngebaeude." Jetzt steht dort ein
     Mehrfamilienhaus mit fuenf Geschossen, durchlaufenden Fensterfluchten
     und Balkonen. Die Werte unten sind auf diese Datei nachgerechnet.

     Gemessen wurde der Alphakanal-Rahmen beider Dateien (getbbox der
     undurchsichtigen Bildpunkte), nicht die Dateikante:

       haus.png       1254 x 1254   Rahmen x 40..1221   y  89..1182
                      Anteile       x 0,03190..0,97368  y 0,07097..0,94258
       haus-alt-1254  1254 x 1254   Rahmen x 58..1211   y 287..1159
                      Anteile       x 0,04625..0,96571  y 0,22887..0,92424

     Daraus die Lage der sichtbaren Flaeche in Feldeinheiten (Feld 1240 x 323):

                        vorher                nachher
       linke Kante      459,01                459,01     unveraendert
       rechte Kante     747,11                747,11     unveraendert
       Breite           288,10                288,10     unveraendert
       Mitte waagrecht  603,06                603,06     = Ellipsenmitte 603
       Sockelunterkante 268,64                268,64     unveraendert
       Oberkante          2,01                 50,75
       Hoehe            266,63                217,89

     Breite und Standlinie stimmen also auf den Hundertstelpunkt. Die HOEHE
     faellt kleiner aus, weil das Mehrfamilienhaus mit 1,32 : 1 breiter
     gebaut ist als das vorige mit 1,08 : 1. Beides zugleich geht nicht;
     massgebend ist die Breite, denn an ihr haengen die beiden Punkte und die
     Adern. Waere die Hoehe angeglichen worden, waere das Haus 349 statt 288
     breit geworden und haette die Adern ueberlaufen. */
  left: 35.848%;                /* 444,52 / 1240  (vorher 36,23 %) */
  width: 25.269%;               /* 313,34 / 1240  (vorher 24,67 %) */
  top: -6.489%;                 /* -20,96 / 323   (vorher -6,1 %)  */
  z-index: 2;
}
/* Das Haus ist seit dem 25.08.2026 eine erzeugte Abbildung statt einer
   Zeichnung — der Kunde wollte die Motive der Vorlage, nicht nachgezeichnete.
   Die Datei ist 1024 px breit und steht damit bis 512 CSS-Pixel scharf; sie
   ist freigestellt und liegt direkt auf dem Navy. `object-fit: contain` haelt
   sie im Rahmen, ohne dass die Lage des Rahmens angetastet werden muesste. */
.wi__haus picture { display: block; width: 100%; }
/* Die Strichlage liegt deckungsgleich UEBER dem Foto. Beide Dateien haben
   dieselbe Leinwand (1254 x 1254) und denselben Massstab; `inset: 0` reicht
   deshalb aus, es ist nichts auszurichten. */
.wi__haus-strich {
  position: absolute;
  inset: 0;
  display: block;
  pointer-events: none;
  /* GRUNDZUSTAND: unsichtbar. Ohne Javascript sieht man nur das Foto. */
  opacity: 0;
}
.wi__haus-strich img { width: 100%; height: auto; display: block; }
.wi__haus img { width: 100%; height: auto; }
.wi__haus img { width: 100%; height: auto; object-fit: contain; }

/* Sprechblase. Ruhende Vorlage: rechts am Haus, Zipfel nach unten links.
   Sie gehoert zum Ruhezustand; sobald ein Punkt angetippt ist, ist sie
   auf der aktiven Vorlage nicht mehr da. */
/* SCHLAEFT seit dem 25.08.2026 — die Sprechblase ist auf Kundenwunsch aus
   dem Markup entfernt. Die Regeln bleiben als Rueckweg stehen. */
.wi__blase {
  position: absolute;
  left: 60.40%;                 /* 749 / 1240 */
  width: 9.27%;                 /* 115 / 1240 */
  top: 39.74%;                  /* 153 / 385  */
  z-index: 3;
  border-radius: 8px;
  background: #EFECE7;
  padding: 0.75cqw 0.8cqw 0.85cqw;
}
.wi__blase p { margin: 0; font-family: var(--wi-sans); line-height: 1.34; }
.wi__blase-t { font-weight: 500; font-size: 1.21cqw; color: #23282F; }
.wi__blase-s { font-weight: 400; font-size: 1.21cqw; color: #4A5260; }
.wi__blase-zipfel {
  position: absolute;
  left: 5%;
  top: 100%;
  width: 1.45cqw;
  height: auto;
  margin-top: -1px;
}

/* Das Schild. Feldeinheiten: 305 x 43, mittig, y 324..367. */
/* ===========================================================================
   DIE PILLE — LAGE BERICHTIGT UND NACHGEFUEHRT, 31.08.2026

   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   ERST DER FEHLER, DER HIER LAG. Die Pille stand mit
     left: 48.634%;  transform: translateX(-50%);
   und der Vermerk daneben rechnete vor, dass sie damit auf der
   Ellipsenmitte 603,1 zentriert sei. Das war sie NIE. Der Einlauf des
   Feldes endet in `@keyframes wi-nachlauf` auf `transform: none`, und weil
   die Animation mit `both` gefuellt ist, steht dieses `none` auch NACH dem
   Einlauf am Element. Es hat `translateX(-50%)` ueberschrieben.

   Die Folge war eine Pille an ZWEI verschiedenen Stellen, je nach
   Betriebsart — nachgemessen bei 1240 Feldeinheiten:
     mit Javascript          603,0 bis 905,6   (Mitte 754,3)
     ohne Javascript         451,8 bis 754,4   (Mitte 603,1)
   Der Kunde hat also die verschobene Fassung gesehen, und sein
   „sitzt noch nicht" trifft genau diese.

   BERICHTIGT, indem `translateX(-50%)` ERSATZLOS ENTFAELLT und `left` die
   TATSAECHLICHE LINKE KANTE angibt. Damit steht die Pille in jeder
   Betriebsart an derselben Stelle — mit Javascript, ohne, und bei
   `reduce`, wo `transform: none` ohnehin gesetzt wird.
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   DANN DIE VERSCHIEBUNG. Der Kunde hat sie in ZWEI Runden desselben Tages
   verlangt: erst „etwas weiter nach links und etwas tiefer", aber
   „weiterhin auf der Linie"; danach „muss noch weiter nach links".
   In Feldeinheiten (Feld 1240 x 323):

                    Ausgang   1. Runde   2. Runde   Weg gesamt
     linke Kante      603,0     558,0      471,2    131,8 nach links
     Oberkante        277,0     285,0      285,0      8,0 nach unten
     Breite           302,6     302,6      302,6    unveraendert
     Hoehe             45,5      45,5       45,5    unveraendert

   DIE PILLE STEHT DAMIT FAST MITTIG UNTER DEM HAUS, und das ist kein
   Zufall: die Ellipsenmitte liegt bei 603,1, die Pillenmitte jetzt bei
   622,5 — 19,4 Einheiten daneben. Das ist die Lage, die der urspruengliche
   Vermerk immer schon beschrieben hat und die der `transform`-Fehler
   verhindert hat.

   BERUEHRT SIE DIE LINIE NOCH? Ja, an ZWEI Stellen, und das ist gerechnet.
   Der Ring ist die Ellipse mit Mitte (603 | 241), rx 222, ry 66.

   a) OBERKANTE. Der rechte Bogen liegt bei der Hoehe y bei
        x = 603 + 222 * Wurzel(1 - ((y - 241) / 66)^2)
      Auf y = 285:
        x = 603 + 222 * Wurzel(1 - (44/66)^2) = 603 + 222 * 0,7454 = 768,5
      Die Pille laeuft von 471,2 bis 773,8. Der Wert 768,5 liegt darin —
      knapp, mit 5,3 Einheiten Reserve, aber er liegt darin. Der Bogen
      verlaesst die Pille also ueber ihre Oberkante.

   b) LINKE KANTE. Bei x = 471,2 steht die Ellipse bei
        y = 241 +- 66 * Wurzel(1 - ((471,2 - 603) / 222)^2)
          = 241 +- 66 * 0,8047 = 187,9 bis 294,1
      Die linke Kante der Pille laeuft von 285,0 bis 330,5. Die beiden
      ueberschneiden sich auf 9,1 Einheiten — der Bogen tritt also ueber
      die linke Kante in die Pille ein.

   Zum Vergleich die beiden abgeloesten Lagen: der Bogen kreuzte die
   Oberkante bei 61,5 Prozent der Pillenbreite (Ausgang) beziehungsweise
   bei 69,5 Prozent (1. Runde); jetzt bei 98,2 Prozent, dafuer kommt der
   Eintritt ueber die linke Kante dazu.

   WEITER NACH LINKS GEHT NICHT MEHR VIEL: ab einer linken Kante von 465,9
   liegt der Austrittspunkt 768,5 rechts ausserhalb der Pille, und der
   Kontakt haengt dann allein an der linken Kante.

   PLATZ NACH UNTEN: die Unterkante liegt bei 330,5 statt 322,5, also 7,5
   Einheiten unter dem Feld. Zwischen Feld und .wi__texte stehen seit dem
   31.08.2026 gemessene 30 CSS-Punkte (vorher 17); bei 1240 px Feldbreite
   ist eine Einheit ein Punkt, es bleiben also 22,5 Punkte Luft.
   =========================================================================== */
.wi__schild {
  position: absolute;
  /* Pille aus der Vorlage: 302,6 x 45,5 Feldeinheiten. */
  top: 88.24%;                  /* 285,0 / 323  — 8 Einheiten tiefer      */
  left: 38%;                    /* 471,2 / 1240 — siehe die zweite Runde  */
  width: 24.4%;                 /* 302,6 / 1240 */
  height: 14.09%;               /* 45,5 / 323 */
  z-index: 4;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: var(--wi-navy-tief);
  color: #FFFFFF;
  font-family: var(--wi-sans);
  font-weight: 500;
  font-size: 1.29cqw;           /* 16px bei 1240 */
  letter-spacing: 0.07em;
  text-transform: uppercase;
  white-space: nowrap;
  margin: 0;
}

/* ---------------------------------------------------------------------------
   6  DIE VIER KARTEN
   Feldeinheiten: je 300 x 154, Radius 18. Links x 0..300, rechts
   x 940..1240. Oben y 6..160, unten y 212..366. Das Sinnbild sitzt 24 vom
   linken Rand, ist 90 x 90 gross und steht senkrecht mittig.
--------------------------------------------------------------------------- */
.wi__karte {
  position: absolute;
  z-index: 3;
  /* Am 25.08.2026 von 24,19 auf 27,5 Prozent verbreitert — bei
     „Wertentwicklung" lief der Text weiterhin aus der Karte. Die
     Ansatzpunkte der Verbindungslinien im Adern-SVG wandern mit
     (x 308 -> 349 und 932 -> 891), sonst treffen sie die Karte nicht. */
  /* Kartenmass aus der Vorlage: 275 x 140 Bildpunkte, mal 1,058 sind
     291 x 148 Feldeinheiten. */

  /* -- 30.08.2026: VERBREITERUNG NACH AUSSEN --------------------------------
     Der Kunde hat fotografiert, dass „WERTENTWICKLUNG" aus der Karte 04
     herauslief. Gemessen (Range-Messung der tatsaechlichen Zeilenbreite
     gegen die Innenbreite der Wortspalte):

         Fensterbreite   Kartenbreite   Wortspalte   laengste Zeile   Luft
         1920 / 1440         291,02       135,17         160,78      -23,88
         1280                276,38       129,91         152,64      -22,73
         1024                221,09       117,30         133,38      -16,08

     Der Fehlbetrag ist bei jeder Breite dieselbe QUOTE der Feldbreite
     (23,88 / 1240 = 1,93 %). Die Verbreiterung steht deshalb ebenfalls in
     Prozent der Feldbreite (cqw) — dann traegt sie bei jeder Breite gleich.

     WICHTIG: die Karte waechst NUR NACH AUSSEN, zum Fensterrand hin.
     Karte 01/03 bekommt dafuer einen negativen `left`, ihre RECHTE Kante
     bleibt bei 23,47 % stehen. Karte 02/04 behaelt ihren `left`, ihre
     LINKE Kante bleibt bei 76,53 / 76,37 % stehen. Genau an diesen beiden
     Kanten setzen die Verbindungslinien an — Punkt, Ansatz, Laenge und
     Verlauf im Adern-SVG bleiben dadurch unberuehrt.

     Die Hoehe bleibt bei 45,8 %.

     Der `min()`-Ausdruck deckelt die Verbreiterung am verfuegbaren
     Seitenrand: (100vw - Feldbreite) / 2 ist der Rand links wie rechts,
     davon bleiben --wi-aus-rand Punkte Luft zum Fensterrand stehen.
     Unterhalb von 1240 Fensterpunkten ist dieser Rand die 4vw-Polsterung
     der Seite; darueber greift der Deckel nicht mehr.
     `100cqw` ist die Breite von .wi__feld — die Karte liegt darin, also
     rechnet cqw hier gegen das Feld. */
  --wi-aus-rand: 14px;
  --wi-aus: min(3.6cqw, max(0px, (100vw - 100cqw) / 2 - var(--wi-aus-rand)));

  width: calc(23.47% + var(--wi-aus));   /* 291 / 1240 plus Verbreiterung */
  /* Am 25.08.2026 von 40 auf 46 Prozent erhoeht: bei „Wertentwicklung“ lief
     der Text aus der Karte. 46 Prozent von 385 sind 177 statt 154
     Feldeinheiten. Die BREITE bleibt unangetastet — sie haengt an den
     Ansatzpunkten der Verbindungslinien im Adern-SVG (x 308 und 932), die
     sonst mitwandern muessten. */
  /* HOEHE UNVERAENDERT bei 40 Prozent. Am 25.08.2026 war sie kurzzeitig auf
     52 Prozent — dadurch stiessen die Karten aneinander und der Abstand
     zwischen ihnen war weg. Zu breit war der Text, nicht zu hoch: gebraucht
     wurde nur Platz fuer das lange Wort „Wertentwicklung". */
  height: 45.8%;                /* 148 / 323 */
  display: flex;
  align-items: center;
  gap: 2.1cqw;                  /* 26px bei 1240 */
  padding: 0 0.97cqw 0 1.94cqw; /* 24px links, 12px rechts */
  border-radius: 18px;
  background: var(--wi-karte);
  border: 1px solid rgba(16, 41, 73, 0.05);
  box-shadow: 0 1px 2px rgba(16, 41, 73, 0.035), 0 10px 24px rgba(16, 41, 73, 0.045);
  transition: border-color 0.16s var(--ease);
}
/* Oberkanten nachgezogen, damit die Kartenmitte weiterhin dort liegt, wo die
   Verbindungslinie ansetzt (y 83 oben, y 289 unten). Sonst liefe die Linie
   durch die groessere Karte hindurch statt an ihre Kante. */
/* Lagen aus der Vorlage, bezogen auf deren Kartenrechteck (x 180, y 444):
   oben links 0/0, oben rechts 897/3, unten links 1/166, unten rechts 895/166
   Bildpunkte — mal 1,058 und in Prozent des Feldes. */
/* Links waechst die Karte nach LINKS heraus (negativer left, rechte Kante
   bleibt bei 23,47 %), rechts nach RECHTS (left bleibt, die Breite waechst).
   So bleiben genau die beiden Kanten stehen, an denen die Adern ansetzen. */
.wi__karte--01 { left: calc(0px - var(--wi-aus)); top: 0; }
.wi__karte--02 { left: 76.53%; top: 0.99%; }
.wi__karte--03 { left: calc(0px - var(--wi-aus)); top: 54.36%; }
.wi__karte--04 { left: 76.37%; top: 54.36%; }

/* Der Navyrahmen markiert den angetippten Punkt — so wie auf der aktiven
   Vorlage. Er ersetzt die Haarlinie, deshalb ein negativer Ausgleich am
   Innenrand, damit der Inhalt nicht springt. */
.wi__karte[aria-expanded='true'],
.wi__karte:hover,
.wi__karte:focus-visible {
  border: 2px solid #10305C;
  padding: 0 calc(0.97cqw - 1px) 0 calc(1.94cqw - 1px);
  box-shadow: none;
  background: #FCFBF9;
}
.wi__karte:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }

.wi__ikon {
  flex: 0 0 auto;
  width: 7.26cqw;               /* 90 / 1240 */
}
/* Die vier Kartensymbole ebenso — erzeugte Abbildungen statt Zeichnungen.
   `aspect-ratio: 1` haelt das Feld quadratisch, obwohl die Dateien
   unterschiedliche Seitenverhaeltnisse haben (Schluessel und Dokument stehen
   hoch, das Diagramm quer). Damit bleibt die Kartengeometrie unveraendert —
   angepasst wird die Bildflaeche, nicht das Layout. */
.wi__ikon picture { display: block; width: 100%; aspect-ratio: 1; }
.wi__ikon img { width: 100%; height: 100%; object-fit: contain; }
/* Die Zeichnungen im <symbol>-Vorrat oben im Markup bleiben liegen: sie
   kosten nichts und sind der Rueckweg, falls die Abbildungen doch nicht
   gefallen. */
.wi__ikon svg { width: 100%; height: auto; }

.wi__karte-wort { display: block; min-width: 0; }

/* Versalien, Grotesk halbfett, Navy. */
.wi__karte-t {
  display: block;
  font-family: var(--wi-sans);
  font-weight: 500;
  font-size: 1.21cqw;           /* 15px bei 1240 */
  letter-spacing: 0.055em;
  text-transform: uppercase;
  color: var(--wi-navy);
  line-height: 1.2;
}
.wi__karte-s {
  display: block;
  font-family: var(--wi-sans);
  font-weight: 400;
  font-size: 1.37cqw;           /* 17px bei 1240 */
  line-height: 1.32;
  color: var(--wi-grau);
  margin-top: 0.45cqw;
}
/* Der lange Kurztext der Steuerkachel — 01.09.2026, Optimierungsbriefing,
   Abschnitt 05. „Abschreibungen reduzieren dein zu versteuerndes
   Einkommen." hat 58 Zeichen, die drei anderen Kacheln 30 bis 35. Eine
   Stufe kleiner (15,6 statt 17 px bei 1240 — ueber der 15-px-Marke fuer
   Kartenzeilen) und enger im Zeilenabstand: drei Zeilen statt vier, und
   die Kachel bleibt bei ihren 148 px. Der Wortlaut ist unangetastet. */
.wi__karte-s--lang {
  font-size: 1.26cqw;           /* 15,6px bei 1240 */
  line-height: 1.26;
}
/* Nur auf der aktiven Vorlage zu sehen; hier steht sie in beiden
   Zustaenden, weil man der Karte sonst nicht ansieht, dass sie sich
   antippen laesst. */
/* HOCHWERTIGER — 01.09.2026, Optimierungsbriefing, Abschnitt 05: „Der
   Text erhaelt einen kleinen Pfeil nach unten beziehungsweise einen
   animierten Chevron. Beim Hover bewegt sich der Pfeil dezent um wenige
   Pixel. Keine dauerhaft hektische Animation." Beschriftung „MEHR
   ERFAHREN ↓": Versalien, Sperrung, Schnitt 500 — dieselbe Sprache wie
   der Kartentitel darueber, eine Stufe kleiner. Der Winkel bewegt sich NUR
   beim Ueberfahren (3 px nach unten) und beim Oeffnen (Drehung), sonst
   steht er. Die ganze Karte ist der Link; diese Zeile ist nur ihr
   Hinweis. */
.wi__karte-mehr {
  display: flex;
  align-items: center;
  gap: 0.75cqw;
  margin-top: 1.05cqw;
  font-family: var(--wi-sans);
  font-weight: 500;
  font-size: 1.05cqw;           /* 13px bei 1240 — Versalien tragen groesser */
  letter-spacing: 0.1em;
  text-transform: uppercase;
  line-height: 1.2;
  color: var(--wi-navy);
  white-space: nowrap;
}
.wi__karte-mehr svg {
  width: 1.15cqw;
  height: auto;
  flex: 0 0 auto;
  transition: transform 0.3s var(--ease);
}
@media (hover: hover) {
  .wi__karte:hover .wi__karte-mehr svg { transform: translateY(3px); }
}
/* Die geoeffnete Karte: der Winkel zeigt nach oben — „Der Pfeil dreht sich
   beim Oeffnen oder zeigt anschliessend nach oben." Auch beim Ueberfahren
   der offenen Karte bleibt er oben; sonst wippte er hin und her. */
.wi__karte[aria-expanded='true'] .wi__karte-mehr svg,
.wi__karte[aria-expanded='true']:hover .wi__karte-mehr svg {
  transform: rotate(180deg);
}

/* ---------------------------------------------------------------------------
   7  DIE VIER ERKLAERTEXTE
   Aktive Vorlage: ein Kasten unter dem Feld, so breit wie das Feld.
   Links das Sinnbild, in der Mitte Kleinzeile, Ueberschrift und Text,
   rechts der salbeigruene Merksatz.
   Gemessen (auf 1240 Feldeinheiten umgerechnet): Kasten 1240 x 164,
   Sinnbild 114 breit ab x 52, Textspalte ab x 221, gruener Kasten
   371 breit, 39 vom rechten Rand.
--------------------------------------------------------------------------- */
/* EINEN KLEINEN TICK TIEFER — 31.08.2026.
   Kundenwunsch: die Tafel, die zwischen Bankkapital, Miete, Steuern und
   Wertentwicklung wechselt, klebt zu nah an der Pille „DEIN EIGENTUM
   WAECHST". Er betont ausdruecklich: wirklich nur einen kleinen Tick.

   NACHGEMESSEN bei 1440 px, Abstand Unterkante Feld zu Oberkante Tafel:
     vorher   17 px  — davon nahm die Pille 7,5 px weg, es blieben 9,5
     nachher  30 px  — die Pille nimmt unveraendert 7,5 px, es bleiben 22,5
   Der Abstand zwischen Pille und Tafel waechst damit von 9,5 auf 22,5
   Punkte. Das ist der Tick: sichtbar, aber kein neuer Absatz.
   Die drei Werte des clamp sind gleichmaessig um denselben Faktor
   angehoben (0,9 -> 1,7rem; 1,9 -> 3,3vh; 1,5 -> 2,6rem), damit sich das
   Verhaeltnis ueber alle Fensterhoehen nicht verschiebt. */
/* ENGER — 01.09.2026, Optimierungsbriefing, Abschnitt 06: „Zwischen Grafik,
   Detailtext und CTA deutlich weniger vertikalen Abstand einsetzen." Der
   „Tick tiefer" vom 31.08. (30 px bei 1440) geht auf 16 px zurueck; die
   Pille am Feldrand nimmt davon weiterhin 7,5 px, es bleiben 8,5 px Luft
   zwischen Pille und Tafel — sie beruehren sich nicht. Gemessen vorher /
   nachher steht im Bericht vom 01.09.2026. */
.wi__texte {
  width: 100%;
  max-width: 1240px;
  margin: clamp(0.9rem, 1.8vh, 1.2rem) auto 0;
  container-type: inline-size;
}
.wi__texte li + li { margin-top: clamp(0.7rem, 1.4vh, 1.1rem); }

.wi__panel {
  display: grid;
  /* KEINE MINDESTHOEHE MEHR — 01.09.2026, Optimierungsbriefing, Abschnitt
     06: „Der aktive Detailbereich darf den Nutzer nicht in eine lange leere
     Flaeche fuehren." Die 180 px stammten aus der Vorlage (164 Einheiten)
     und hielten die Tafel auch dann hoch, wenn der Text zwei Zeilen hatte;
     der Rest war Flaeche. Jetzt gibt der Inhalt die Hoehe vor. */
  grid-template-columns: 13.7cqw minmax(0, 1fr) 29.9cqw;
  align-items: center;
  column-gap: 1.4cqw;
  padding: 1.4cqw 3.15cqw 1.4cqw 4.2cqw;
  border-radius: 16px;
  background: #FCF9F6;
  border: 1px solid rgba(16, 41, 73, 0.05);
  box-shadow: 0 1px 2px rgba(16, 41, 73, 0.03), 0 10px 24px rgba(16, 41, 73, 0.04);
}
.wi__panel-ikon { display: block; width: 9.19cqw; }   /* 114 / 1240 */
.wi__panel-ikon picture { display: block; width: 100%; aspect-ratio: 1; }
.wi__panel-ikon img { width: 100%; height: 100%; object-fit: contain; }
.wi__panel-ikon svg { width: 100%; height: auto; }

.wi__panel-nr {
  font-family: var(--wi-sans);
  font-weight: 500;
  font-size: 1.25cqw;           /* 15.5px bei 1240 */
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--wi-gold);
  margin: 0;
}
.wi__panel-h {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 2.18cqw;           /* 27px bei 1240 */
  line-height: 1.16;
  color: var(--wi-navy);
  margin: 0.3cqw 0 0;
}
.wi__panel-text {
  font-family: var(--wi-sans);
  font-weight: 400;
  font-size: 1.37cqw;           /* 17px bei 1240 */
  line-height: 1.56;
  color: var(--wi-grau);
  margin: 0.35cqw 0 0;
  max-width: 46em;
}
/* Der Merksatz. Salbeigruen, mittig, gemessener Grund #E9E9DF;
   Navy darauf misst 12.5:1. */
.wi__panel-kern {
  display: grid;
  place-items: center;
  min-height: 8.06cqw;          /* 100 / 1240 */
  padding: 1.3cqw 1.8cqw;
  border-radius: 10px;
  background: #E9E9DF;
  font-family: var(--wi-sans);
  font-weight: 400;
  font-size: 1.45cqw;           /* 18px bei 1240 */
  line-height: 1.5;
  text-align: center;
  color: #1B2B3C;
  margin: 0;
  /* Der Umbruch steht so auf der aktiven Vorlage: „Du startest direkt mit /
     einer vollständigen Immobilie." Dafuer braucht der Satz ein Zeilenmass. */
  text-wrap: balance;
}
.wi__panel-kern > span { display: block; max-width: 20.2cqw; }
/* Die Tafel ohne Merksatz — 01.09.2026. Bei „Mieteinnahmen" ist der
   Callout in den Detailtext eingegangen (Optimierungsbriefing, Abschnitt
   05); die dritte Spalte waere dort eine leere Flaeche von 30 cqw. Sie
   klappt zu, der Text bekommt die Breite. */
.wi__panel--ohne-kern { grid-template-columns: 13.7cqw minmax(0, 1fr); }
.wi__panel--ohne-kern .wi__panel-text { max-width: 52em; }

/* Mit Javascript steht im Ruhezustand keiner der vier Texte offen — so
   wie auf der ruhenden Vorlage. */
.wi[data-js='an'] .wi__panel[hidden] { display: none; }

/* ---------------------------------------------------------------------------
   8  FUSS: REITER UND KNOPF
   Vorlage: Haarlinie ueber der Reiterzeile; Reiter links, Knopf rechts
   (350 x 62, Radius 10).
--------------------------------------------------------------------------- */
/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   DIE REITERZEILE IST ENTFALLEN — 30.08.2026, Kundenwunsch.

   Weg ist <nav class="wi__reiter"> mit „01 BANKKAPITAL · 02 MIETE ·
   03 STEUERN · 04 WERTENTWICKLUNG". Begruendung des Kunden: dieselben vier
   Begriffe stehen direkt darueber schon in den vier Kaesten — dreimal
   dasselbe ist zu viel.

   DIE UMSCHALTUNG DER TAFEL LAEUFT WEITER, OHNE EINE ZEILE JAVASCRIPT.
   Das war die eigentliche Frage bei diesem Eingriff, und die Antwort stand
   schon im Skript: assets/js/warum.js sammelt seine Schalter mit
   `wi.querySelectorAll('[data-wi-punkt]')`. Dieses Attribut tragen NICHT NUR
   die Reiter, sondern auch die vier Karten (.wi__karte). Die Karten haben
   die Tafel also von Anfang an mitgeschaltet; die Reiter waren der zweite
   Weg zur selben Sache. Faellt der zweite weg, bleibt der erste.
   Der Block in warum.js, der die goldene Marke setzt, prueft ausdruecklich
   auf `parentNode.parentNode.tagName === 'OL'` — er trifft ohne die Reiter
   einfach nie zu und schadet nicht. AN warum.js IST NICHTS GEAENDERT.

   OHNE JAVASCRIPT und bei `reduce` steigt das Skript wie bisher vorher aus;
   dann stehen alle vier Tafeln offen untereinander. Die Karten sind dort
   gewoehnliche Links auf die Tafeln (href="#wi-text-01" …). Es bleibt also
   kein toter Knopf und kein leerer Kasten zurueck.

   DIE REGELN .wi__reiter WEITER UNTEN BLEIBEN STEHEN und laufen ins Leere.
   Sie kosten nichts und tragen die Masse der Vorlage (Haarlinie, Trenner,
   Ziffernfarbe, die aktive Unterstreichung). Wer die Zeile zurueckholt,
   soll sie nicht neu bauen muessen.
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
.wi__fuss {
  display: grid;
  /* EINE mittige Spalte statt „Reiter links, Knopf rechts". Ohne die Reiter
     stuende der Knopf sonst allein am rechten Rand und die linke Haelfte
     der Zeile waere leer — genau der Eindruck, den der Kunde vermeiden
     wollte. `justify-items: center` mittet den Knopf, `1fr` laesst ihn
     seine eigene Breite behalten. */
  grid-template-columns: 1fr;
  justify-items: center;
  align-items: center;
  gap: clamp(1.5rem, 3vw, 3.2rem);
  /* ENGER — 01.09.2026, Optimierungsbriefing, Abschnitt 06 („deutlich
     weniger vertikalen Abstand" zwischen Detailtext und CTA). Aussen- und
     Innenabstand zusammen standen bei 1440 auf 32 + 27 = 59 px; jetzt
     16 + 12 = 28 px. Der Knopf bleibt ein eigener Absatz, klebt aber nicht
     mehr eine halbe Tafelhoehe unter der Tafel. */
  margin-top: clamp(0.9rem, 1.8vh, 1.2rem);
  /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     DIE HAARLINIE IST AM 31.08.2026 ERSATZLOS ENTFALLEN.
     Kundenwortlaut zum Strich zwischen der Tafel („01 · BANKKAPITAL …")
     und dem Knopf „Mein Immobilienpotenzial pruefen": „Der muss dort nicht
     sein."
     Was hier stand: `border-top: 1px solid var(--wi-haar);` — der Rest der
     Reiterzeile, die am 30.08.2026 entfallen war; die Linie war damals auf
     dieses Element gezogen worden, damit die Fusszeile nicht an der Tafel
     klebt.

     NICHT VERWECHSELN mit den beiden goldenen Linien, die BLEIBEN:
       · .wi__zaesur ueber „Deine Vorteile zum Vermoegen" — durchgezogen,
         beidseitig buendig, siehe Abschnitt 3b weiter oben.
       · .vtr__linie in vertrauen.css, unter dem frueheren Zitatband — sie
         blendet nach rechts aus, damit sie nicht in das Foto laeuft.

     DER ABSTAND BLEIBT, WIE ER WAR: `padding-top` steht unveraendert
     weiter. Ohne ihn ruecke der Knopf um bis zu 1,8rem an die Tafel heran
     — der Kunde hat den Strich beanstandet, nicht den Abstand.
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
  padding-top: clamp(0.5rem, 0.85vw, 0.8rem);
}

.wi__reiter { min-width: 0; }
.wi__reiter ol {
  display: flex;
  align-items: stretch;
  border-top: 1px solid var(--wi-haar);
  padding-top: clamp(0.9rem, 1.9vw, 1.8rem);
}
.wi__reiter li {
  flex: 1 1 0;
  display: flex;
  justify-content: center;
}
.wi__reiter li + li { border-left: 1px solid var(--wi-haar); }

.wi__reiter a {
  display: inline-block;
  padding: 0 0.7em 0.42em;
  font-family: var(--wi-sans);
  font-weight: 500;
  font-size: clamp(0.78rem, 0.98vw, 0.94rem);   /* 15px bei 1536 */
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--wi-navy);
  white-space: nowrap;
  border-bottom: 2px solid transparent;
}
.wi__reiter-nr {
  color: var(--wi-gold);
  margin-right: 0.55em;
  letter-spacing: 0.1em;
}
.wi__reiter a[aria-current='true'] { border-bottom-color: #A8874F; }
.wi__reiter a:hover { color: #0B2C57; }

/* Vorlage: Navyknopf, weisse Grotesk 19px, Pfeil rechts. */
.wi__knopf-zeile { margin: 0; }
.wi__knopf {
  display: inline-flex;
  align-items: center;
  gap: clamp(0.9rem, 1.7vw, 1.65rem);
  min-height: clamp(50px, 4.04vw, 62px);        /* 62px bei 1536 */
  padding: 0 clamp(1.2rem, 1.63vw, 1.56rem);
  border-radius: 10px;
  /* SAND STATT NAVY — 31.08.2026, Kundenwunsch: „alle CTA-Buttons auf der
     kompletten Webseite" in der Farbe des Hero-Knopfes. Dieser Knopf
     traegt eine eigene Klasse und wurde deshalb von der zentralen
     Aenderung in base.css nicht erfasst — der Kunde hat ihn zweimal
     nachgemeldet.
     Schrift Navy statt Weiss: weiss auf Sand misst 1,94:1, Navy 7,54:1. */
  background: var(--sand);
  color: #FFFFFF;
  border: 1px solid var(--gold);
  font-family: var(--wi-sans);
  font-weight: 600;
  font-size: clamp(1rem, 1.24vw, 1.19rem);      /* 19px bei 1536 */
  line-height: 1.2;
  box-shadow: none;
  transition: background-color 0.18s var(--ease);
}
.wi__knopf svg { width: clamp(20px, 1.69vw, 26px); height: auto; flex: 0 0 auto; }
.wi__knopf:hover { background: var(--sand-tief); }

/* Zwischen 1001 und 1240 Punkten ist das Feld schmaler als seine Vollbreite.
   Weil alle Masse darin in cqw stehen, schrumpft dort auch die Schrift mit.
   Unter 13 Punkten wird sie unangenehm; deshalb bekommt die Karte in diesem
   Bereich groessere Anteile und ein kleineres Sinnbild. */
@media (min-width: 1001px) and (max-width: 1240px) {
  .wi__ikon       { width: 6.2cqw; }
  .wi__karte      { gap: 1.7cqw; }
  .wi__karte-t    { font-size: max(11.5px, 1.35cqw); letter-spacing: 0.04em; }
  .wi__karte-s    { font-size: max(13px, 1.55cqw); }
  .wi__karte-s--lang { font-size: max(12.5px, 1.4cqw); }
  .wi__karte-mehr { font-size: max(11px, 1.15cqw); gap: 0.6cqw; }
  .wi__karte-mehr svg { width: 1.2cqw; }
  .wi__schild     { font-size: max(11.5px, 1.45cqw); }
  .wi__blase-t, .wi__blase-s { font-size: max(11px, 1.35cqw); }
  .wi__panel-nr   { font-size: max(11.5px, 1.4cqw); }
  .wi__panel-h    { font-size: max(19px, 2.6cqw); }
  .wi__panel-text { font-size: max(14px, 1.7cqw); }
  .wi__panel-kern { font-size: max(14px, 1.7cqw); }
  .wi__panel-kern > span { max-width: 22cqw; }
}

/* ---------------------------------------------------------------------------
   9  SCHMALE FENSTER
   Unter 1000px traegt das Feld die vier Karten nicht mehr nebeneinander.
   Es loest sich dann auf: Haus, Schild, danach die Karten untereinander.
   Die Adern entfallen — sie verbinden nichts mehr.
--------------------------------------------------------------------------- */
@media (max-width: 1000px) {
  .wi__feld {
    aspect-ratio: auto;
    /* Die Hoehe kommt hier allein aus dem Inhalt — ausdruecklich gesetzt,
       seit am 11.09.2026 eine spaete Desktop-Regel weiter unten das
       Seitenverhaeltnis auch auf dem Telefon gesetzt hatte (siehe dort,
       „NUR AUF DEM DESKTOP"). Beide Zeilen sind die Grundwerte und aendern
       nichts, solange nichts anderes dazwischenfunkt; sie stehen hier,
       damit ein zweiter Ausrutscher dieser Art nicht wieder die Karten
       ueber die Tafel schiebt. */
    height: auto;
    min-height: 0;
    display: grid;
    gap: clamp(0.8rem, 2.2vw, 1.3rem);
    margin-top: clamp(1.2rem, 3vh, 2rem);
  }
  .wi__adern { display: none; }

  .wi__haus {
    /* `relative` statt `static` — die Strichlage darueber liegt absolut mit
       `inset: 0` und braucht diesen Kasten als Bezug. Bei `static` rechnete
       sie gegen den naechsten positionierten Vorfahren und lag schief
       (gemessen bei 390 px: 350 x 759 statt 252 x 252).
       Weil `relative` die Werte aus dem Grundsatz oben wieder wirksam
       machen wuerde, sind `left` und `top` ausdruecklich zurueckgesetzt —
       sonst verschoebe sich das Haus um 35,8 % nach rechts. */
    position: relative;
    left: auto;
    top: auto;
    width: min(340px, 72%);
    margin: 0 auto;
  }
  .wi__blase {
    position: static;
    width: max-content;
    max-width: 100%;
    margin: -0.4rem auto 0;
    padding: 0.55rem 0.85rem 0.6rem;
    text-align: center;
  }
  .wi__blase-t, .wi__blase-s { font-size: clamp(0.85rem, 2.4vw, 0.95rem); }
  .wi__blase-zipfel { display: none; }

  .wi__schild {
    position: static;
    transform: none;
    width: max-content;
    max-width: 100%;
    height: auto;
    margin: 0.2rem auto 0.7rem;
    padding: 0.75rem 1.4rem;
    font-size: clamp(0.8rem, 2.4vw, 0.95rem);
    white-space: normal;
    text-align: center;
  }

  .wi__karte {
    position: static;
    width: 100%;
    height: auto;
    gap: clamp(0.9rem, 3vw, 1.4rem);
    padding: clamp(0.9rem, 3vw, 1.3rem) clamp(1rem, 3.4vw, 1.5rem);
  }
  .wi__karte[aria-expanded='true'],
  .wi__karte:hover,
  .wi__karte:focus-visible {
    padding: calc(clamp(0.9rem, 3vw, 1.3rem) - 1px) calc(clamp(1rem, 3.4vw, 1.5rem) - 1px);
  }
  .wi__ikon { width: clamp(56px, 15vw, 78px); }
  .wi__karte-t { font-size: clamp(0.82rem, 2.6vw, 0.94rem); }
  .wi__karte-s { font-size: clamp(0.94rem, 3.2vw, 1.06rem); margin-top: 0.22rem; }
  .wi__karte-s br { display: none; }
  .wi__karte-mehr {
    font-size: clamp(0.76rem, 2.6vw, 0.84rem);
    gap: 0.5rem;
    margin-top: 0.55rem;
  }
  .wi__karte-mehr svg { width: 12px; }

  .wi__panel {
    grid-template-columns: clamp(56px, 15vw, 84px) minmax(0, 1fr);
    align-items: start;
    column-gap: clamp(0.9rem, 3vw, 1.4rem);
    row-gap: clamp(0.8rem, 2.6vw, 1.2rem);
    padding: clamp(1.1rem, 3.6vw, 1.6rem);
  }
  .wi__panel-ikon { width: 100%; }
  .wi__panel-nr  { font-size: clamp(0.76rem, 2.4vw, 0.88rem); }
  .wi__panel-h   { font-size: clamp(1.25rem, 4.4vw, 1.6rem); margin-top: 0.3rem; }
  .wi__panel-text{ font-size: clamp(0.94rem, 3.2vw, 1.06rem); margin-top: 0.4rem; }
  .wi__panel { min-height: 0; }
  .wi__panel-kern > span { max-width: none; }
  .wi__panel-kern{
    grid-column: 1 / -1;
    min-height: 0;
    padding: clamp(0.8rem, 3vw, 1.1rem);
    font-size: clamp(0.94rem, 3.2vw, 1.06rem);
  }

  .wi__fuss {
    grid-template-columns: 1fr;
    justify-items: stretch;
    gap: clamp(1.2rem, 3vh, 1.8rem);
  }
  .wi__knopf-zeile { text-align: center; }
  .wi__knopf { width: 100%; justify-content: center; }
}

/* UMBRUCHPUNKT 760 -> 1023 px, 04.09.2026. Begruendung und Messwerte
   stehen am Ende dieser Datei unter „ZWEI FASSUNGEN JE ZEICHNUNG". */
@media (max-width: 1199px) {
  /* Einspaltig. Der Aussenabstand des Bandes traegt hier keinen eigenen
     Innenabstand mehr — den tragen seit dem 31.08.2026 die beiden weissen
     Kaesten selbst. */
  .wi__band {
    grid-template-columns: 1fr;
    justify-items: stretch;
    padding: 0;
  }
  /* Einspaltig steht die Trennung nicht mehr senkrecht. Bis zum 30.08.
     trug der VS-Kreis diese Stelle; ohne ihn stuenden die beiden Kaesten
     hier ohne jede Zaesur untereinander. Statt dessen eine WAAGERECHTE
     Haarlinie in derselben Farbe wie die senkrechte — dasselbe Zeichen,
     nur gedreht. Der Ton ist seit dem 31.08. --wi-haar: die Linie steht
     jetzt auf hellem Grund, nicht mehr im dunklen Kasten. */
  .wi__band-trenn {
    width: min(58%, 220px);
    height: 1px;
    padding: 0;
    margin: clamp(1.2rem, 4.5vw, 1.8rem) auto;
    background: var(--wi-haar);
  }
  .wi__band-linie { display: none; }
  .wi__band-marke { margin-bottom: clamp(0.8rem, 3vw, 1.2rem); }
  /* Einspaltig auch IM Kasten — 01.09.2026: neben 250 px Zeichnung bliebe
     dem Text auf einem Telefon nichts. Die Tafel steht unter dem Text,
     mittig, hoechstens 320 px breit. */
  .wi__band-halb { grid-template-columns: minmax(0, 1fr); }
  .wi__vgl { width: min(100%, 320px); margin: 0.4rem auto 0; }

  .wi__reiter ol { flex-wrap: wrap; gap: 0.2rem 0; padding-top: 0.9rem; }
  .wi__reiter li { flex: 1 1 46%; justify-content: flex-start; padding: 0.35rem 0; }
  .wi__reiter li + li { border-left: 0; }
  .wi__reiter a { padding-left: 0; padding-right: 0.6em; }
}

@media (max-width: 460px) {
  .wi__reiter li { flex: 1 1 100%; }
}

/* ---------------------------------------------------------------------------
   10  BEWEGUNG AUS
   Ausser dem Farbwechsel am Knopf und der Rahmenfarbe der Karte gibt es
   in diesem Abschnitt keine Bewegung. Beides wird hier abgeschaltet.
   Ausserdem laesst warum.js die vier Erklaertexte dann offen stehen —
   siehe dort.
--------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .wi__knopf, .wi__karte { transition: none; }
}

/* ---------------------------------------------------------------------------
   Der Fachhinweis am Fuss der Section.

   Er steht auf keiner der beiden Bildvorlagen, ist aber vom Wording-Master
   ausdruecklich verlangt: „Einziger zentraler Fachhinweis am Ende der
   gesamten Section". Bewusst klein und ruhig gesetzt — er soll die Section
   nicht dominieren, aber lesbar sein: --ink-mute misst auf dem Cremegrund
   4,89:1 und liegt damit ueber der Anforderung.
--------------------------------------------------------------------------- */
.wi__hinweis {
  max-width: 68rem;
  margin: clamp(1.6rem, 3.4vh, 2.6rem) auto 0;
  font-family: var(--wi-sans, var(--font-ui));
  font-size: clamp(0.78rem, 0.86vw, 0.86rem);
  line-height: 1.6;
  text-align: center;
  text-wrap: pretty;
  color: var(--ink-mute);
}

/* ---------------------------------------------------------------------------
   DER VORDERE HALBBOGEN DES RINGS

   Der Ring lag bis zum 25.08.2026 vollstaendig im Adern-SVG und damit
   VOLLSTAENDIG HINTER dem Haus. Dessen Sockelplatte verdeckte dadurch den
   vorderen Bogen, und der Ring hoerte optisch links und rechts am Gebaeude
   auf — er lief nie um das Haus herum.

   Jetzt ist er geteilt: der obere Bogen bleibt hinten und verschwindet
   hinter dem Gebaeude, dieser untere liegt davor. Erst dadurch entsteht die
   Rundung um das Haus.

   Beide tragen dieselben Werte (Mitte 603/241, rx 222, ry 66) und dieselbe
   Strichstaerke; jede Abweichung waere genau an den beiden Ansatzpunkten
   links und rechts zu sehen.
--------------------------------------------------------------------------- */
.wi__ring-vorn {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  /* Ueber dem Haus (z-index 2), aber unter den Karten (3) und der Pille (4). */
  z-index: 2;
  pointer-events: none;
}


/* ===========================================================================
   DIE ZEICHNUNG — „zeichnet sich das Haus zuerst und dann entsteht das"
   30.08.2026, Kundenwunsch. Eine Geste fuer den ganzen Abschnitt, nicht fuenf.

   ---------------------------------------------------------------------
   WAS PASSIERT, IN DER REIHENFOLGE
   ---------------------------------------------------------------------
     0     ms   die vier Adern und der Ring beginnen sich zu ziehen,
                jede Linie um 120 ms versetzt (--d aus site.js)
     200   ms   ueber der Strichzeichnung des Hauses laeuft eine Maske mit
                weicher Kante von unten nach oben — das Haus entsteht Zug
                um Zug, von der Sockelplatte bis zum First
     1450  ms   die Zeichnung steht. Das Foto blendet auf, die Striche
                gehen weg — aus der Zeichnung wird das Gebaeude
     1900  ms   die vier Kaesten und das Schild laufen nach, um 90 ms
                gestaffelt
     2550  ms   fertig, und dann steht es. Es laeuft EINMAL.

   ---------------------------------------------------------------------
   WARUM EINE MASKE UND KEIN PFAD
   ---------------------------------------------------------------------
   Ein echtes Nachzeichnen braucht Pfade und `stroke-dashoffset`. Die
   Zeichnung liegt aber als Rasterbild vor (haus-strich.webp/.png), nicht
   als SVG — es gibt also keine Pfade. Statt dessen laeuft eine Maske
   darueber: `mask-position` wandert, die Kante wandert mit, und was hinter
   ihr liegt, ist sichtbar. Fuer das Auge ist das dasselbe.

   DIE RECHNUNG ZUR MASKE, damit sie am Anfang WIRKLICH nichts und am Ende
   WIRKLICH alles zeigt:
     Maskenkasten  340 % der Bildhoehe H, also 3,4H
     Verlauf       von unten: deckend bis 34 %, durchsichtig ab 38 %
                   der deckende Teil ist damit 0,34 x 3,4H = 1,156 H hoch,
                   also HOEHER als das Bild — das ist die Bedingung, sonst
                   kann er es am Ende nicht vollstaendig decken
     Anfang  mask-position-y = 0 %    -> Kasten [0, 3,4H], deckend ab 2,244H
                                         das Bild reicht nur bis H: nichts
     Ende    mask-position-y = 100 %  -> Versatz 100 % x (H - 3,4H) = -2,4H
                                         Kasten [-2,4H, H], deckend ab -0,156H
                                         das ganze Bild liegt im Deckenden

   HIER LAG EIN FEHLER, berichtigt am 30.08.2026. Zuerst standen 300 % und
   eine Kante bei 31 %: der deckende Teil war damit 0,93 H hoch, also
   NIEDRIGER als das Bild. Am Ende blieben die obersten sieben Prozent
   ungezeichnet — genau der Dachfirst. Aufgefallen ist es nicht, weil die
   Strichlage unmittelbar danach ausblendet und das Foto uebernimmt; die
   Zeichnung lief aber nie ganz zu Ende. Die Bedingung lautet:
   Kastenhoehe x Kantenanteil >= 1.

   ---------------------------------------------------------------------
   DIE DREI BEDINGUNGEN
   ---------------------------------------------------------------------
   OHNE JAVASCRIPT ist alles sofort da. Jeder Anfangszustand haengt an
   `.is-ready`, und die Klasse setzt erst site.js. Ohne Skript steht das
   Foto, die Strichlage ist unsichtbar (opacity 0 als Grundzustand), und
   `stroke-dasharray: var(--len)` ist ungueltig, weil --len fehlt — die
   Linien stehen also voll gezeichnet da.

   NUR `transform`, `opacity` und `mask` — dazu `stroke-dashoffset`, das
   fuer eine Linie das einzige Mittel ist. Keine Bewegung auf `width`,
   `height`, `top`, `left`, `filter` oder `box-shadow`.

   KEIN SCROLL-HORCHER. Der Ausloeser ist der IntersectionObserver, den
   site.js ohnehin fuehrt; er setzt data-seen einmal und hoert dann auf.
   Wer schnell durchscrollt, sieht die Geste trotzdem vollstaendig — sie
   haengt nach dem Ausloesen nicht mehr am Scrollstand.

   BEI `reduce` steht alles sofort im Endzustand, ohne Ausnahme. Der Block
   dazu steht ganz unten in dieser Datei.
   =========================================================================== */

/* Das Feld holt sich nur den Ausloeser, nicht den siteweiten Einlauf.
   leistungen.css setzt `[data-reveal] { opacity: 0; transform: translateY(16px) }`
   fuer die ganze Seite — das waere genau das Einblenden, das der Kunde
   langweilig findet. Hier abgeschaltet. */
.wi__feld[data-reveal] {
  opacity: 1;
  transform: none;
  transition: none;
}

/* --- Die Adern und der Ring ziehen sich ---------------------------------- */
/* --len und --d schreibt site.js an jeden Pfad. Fehlen sie (kein Skript),
   ist die Angabe ungueltig und die Linie steht fertig gezeichnet da. */
.wi__adern path,
.wi__ring-vorn path {
  stroke-dasharray: var(--len);
  stroke-dashoffset: var(--len);
}
/* ===========================================================================
   DER TAKT IST AM 01.09.2026 GESTRAFFT — Optimierungsbriefing P0: „Animationen
   maximal ca. 400 bis 600 ms, geringe Bewegung von etwa 12 bis 20 px, kaum
   Verzoegerung zwischen Elementen." Die Reihenfolge der Geste (Adern, dann
   die Zeichnung des Hauses, dann das Foto, dann Karten und Schild) ist
   unveraendert — sie hat dem Kunden ausdruecklich gefallen. Nur der Takt:

                              vorher                jetzt
     Adern                    1000 ms, Versatz 120  600 ms, Versatz 60
     Zeichnung des Hauses     1250 ms ab 200        500 ms ab 0
     Striche weg / Foto auf   600 / 700 ab 1450     300 / 400 ab 380
     Schild                   620 ms ab 1900        500 ms ab 260
     Karten 01..04            620 ms ab 1990..2260  500 ms ab 320..500
     alles steht nach         2880 ms               1000 ms

   Das ist mehr als eine Geschmacksfrage: nach schnellem Rollen wurden bei
   1440 x 900 die vier Karten und das Schild nach 600 ms Ruhe mit
   Deckkraft 0 gemessen (Bericht 01.09.2026) — sie warteten noch auf ihren
   Vorlauf von zwei Sekunden, und der Leser sah eine leere Flaeche mit
   einem Haus darin. Jetzt sind sie nach 600 ms zu mehr als der Haelfte da
   und nach einer Sekunde ganz.
   `--d` schreibt site.js als Vielfaches von 120 an jede Ader; hier wird
   es halbiert, statt site.js anzufassen — die Datei gehoert allen Seiten.
   =========================================================================== */
.wi__feld[data-seen='true'] .wi__adern path,
.wi__feld[data-seen='true'] .wi__ring-vorn path {
  animation: wi-ader 600ms var(--ease-soft) both;
  animation-delay: calc(var(--d, 0) * 0.5ms);
}
/* Die goldenen Anschlusspunkte setzen erst auf, wenn ihre Ader angekommen ist. */
.is-ready .wi__adern circle { opacity: 0; }
.is-ready .wi__feld[data-seen='true'] .wi__adern circle {
  animation: wi-punkt 300ms var(--ease-soft) 450ms forwards;
}

/* --- Das Haus: erst die Zeichnung, dann das Gebaeude ---------------------- */
.wi__haus-strich {
  --wi-strich-maske: linear-gradient(to top,
      #000 0, #000 34%, rgba(0, 0, 0, 0) 38%, rgba(0, 0, 0, 0) 100%);
  -webkit-mask-image: var(--wi-strich-maske);
          mask-image: var(--wi-strich-maske);
  -webkit-mask-size: 100% 340%;
          mask-size: 100% 340%;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: 0% 0%;
          mask-position: 0% 0%;
}
/* Erst mit Skript verschwindet das Foto ueberhaupt. */
.is-ready .wi__haus-foto { opacity: 0; }
.is-ready .wi__haus-strich { opacity: 1; }

.is-ready .wi__feld[data-seen='true'] .wi__haus-strich {
  animation:
    wi-strich-lauf 500ms 0ms linear both,
    wi-strich-weg  300ms 380ms var(--ease-soft) forwards;
}
.is-ready .wi__feld[data-seen='true'] .wi__haus-foto {
  animation: wi-foto-ein 400ms 380ms var(--ease-soft) both;
}

/* --- Die vier Kaesten und das Schild laufen nach -------------------------- */
.is-ready .wi__karte,
.is-ready .wi__schild { opacity: 0; }
.is-ready .wi__feld[data-seen='true'] .wi__karte,
.is-ready .wi__feld[data-seen='true'] .wi__schild {
  animation: wi-nachlauf 500ms var(--ease-soft) both;
}
.is-ready .wi__feld[data-seen='true'] .wi__schild            { animation-delay: 260ms; }
.is-ready .wi__feld[data-seen='true'] .wi__karte--01 { animation-delay: 320ms; }
.is-ready .wi__feld[data-seen='true'] .wi__karte--02 { animation-delay: 380ms; }
.is-ready .wi__feld[data-seen='true'] .wi__karte--03 { animation-delay: 440ms; }
.is-ready .wi__feld[data-seen='true'] .wi__karte--04 { animation-delay: 500ms; }

@keyframes wi-ader        { to   { stroke-dashoffset: 0; } }
@keyframes wi-punkt       { from { opacity: 0; transform: scale(0.6); }
                            to   { opacity: 1; transform: none; } }
@keyframes wi-strich-lauf { from { -webkit-mask-position: 0% 0%;   mask-position: 0% 0%; }
                            to   { -webkit-mask-position: 0% 100%; mask-position: 0% 100%; } }
@keyframes wi-strich-weg  { to   { opacity: 0; } }
@keyframes wi-foto-ein    { from { opacity: 0; transform: scale(0.985); }
                            to   { opacity: 1; transform: none; } }
@keyframes wi-nachlauf    { from { opacity: 0; transform: translateY(12px); }
                            to   { opacity: 1; transform: none; } }

/* Der Punkt sitzt im SVG-Koordinatenfeld; ohne diese Zeile drehte die
   Verkleinerung um die linke obere Ecke des ganzen Bildes statt um den
   Punkt selbst. */
.wi__adern circle { transform-box: fill-box; transform-origin: center; }

/* ===========================================================================
   OHNE BEWEGUNG — ALLES SOFORT IM ENDZUSTAND. KEINE AUSNAHME.
   =========================================================================== */
@media (prefers-reduced-motion: reduce) {
  .wi__adern path,
  .wi__ring-vorn path {
    stroke-dasharray: none;
    stroke-dashoffset: 0;
    animation: none;
  }
  .is-ready .wi__adern circle,
  .is-ready .wi__feld[data-seen='true'] .wi__adern circle,
  .is-ready .wi__karte,
  .is-ready .wi__schild,
  .is-ready .wi__feld[data-seen='true'] .wi__karte,
  .is-ready .wi__feld[data-seen='true'] .wi__schild,
  .is-ready .wi__haus-foto,
  .is-ready .wi__feld[data-seen='true'] .wi__haus-foto {
    opacity: 1;
    transform: none;
    animation: none;
  }
  .is-ready .wi__haus-strich,
  .is-ready .wi__feld[data-seen='true'] .wi__haus-strich {
    opacity: 0;
    animation: none;
  }
}

/* ===========================================================================
   DREI STICHPUNKTE JE VERGLEICHSKASTEN — 31.08.2026

   Das Wording-Dokument (Abschnitt 03, Kasten „UMSETZUNG") schreibt vor:
   „In beiden Karten exakt drei gleich hohe Stichpunkt-Zeilen verwenden."
   Bis dahin standen dort zwei fortlaufende Saetze.

   KEINE NEUE GESTALTUNG. Schriftfamilie, Grad, Zeilenabstand und Farbe
   kommen unveraendert aus .wi__band-text — die <li> tragen diese Klasse
   selbst. Hier steht nur, was eine Liste zusaetzlich braucht: der
   Aufzaehlungspunkt, der Einzug und die Abstaende zwischen den Zeilen.
   Der Punkt ist derselbe Sandton wie die Marke darueber; er ist Zeichnung,
   kein Text, und faellt damit nicht unter die Kontrastschwelle.

   „gleich hohe Zeilen" ist keine feste Hoehe: die drei Punkte sind kurz
   genug, um bei jeder Breite einzeilig zu bleiben, und stehen damit von
   selbst im gleichen Raster. Eine erzwungene Hoehe wuerde bei langem Text
   abschneiden — das waere schlechter als eine Zeile Umbruch.
   =========================================================================== */
.wi__band-text--titel {
  margin-bottom: clamp(0.7rem, 1.15vw, 0.95rem);
}
.wi__band-liste {
  margin: 0;
  padding: 0;
  list-style: none;
}
.wi__band-liste > li {
  position: relative;
  padding-left: 1.05em;
}
.wi__band-liste > li + li {
  margin-top: 0.42em;          /* derselbe Wert wie .wi__band-text + .wi__band-text */
}
.wi__band-liste > li::before {
  content: '';
  position: absolute;
  left: 0;
  /* Auf der Mitte der ersten Zeile: halbe Zeilenhoehe minus halber Punkt. */
  top: calc(0.8em - 2px);
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--sand);
  opacity: 0.85;
}

/* ===========================================================================
   ZWEI ZEILEN, DIE DAS WORDING-DOKUMENT VOM 31.08.2026 VERLANGT

   Beide sind KEINE neue Gestaltung, sondern nehmen Werte, die im Abschnitt
   schon stehen. Neu ist nur, dass sie an dieser Stelle auftauchen.
   =========================================================================== */

/* Die Kleinzeile ueber „Vier Kräfte arbeiten für deinen Vermögensaufbau."
   („EYEBROW" im Dokument, Abschnitt 04). Sie ist dieselbe .wi__eyebrow wie
   am Kopf des Abschnitts; hier braucht sie nur den Abstand nach unten, denn
   dort traegt ihn die Kopfgruppe. Der Wert ist der Abstand, den .wi__h3
   ohnehin von seinem Vorgaenger haelt — die Zeile schiebt sich damit in die
   vorhandene Luecke, ohne den Abschnitt laenger zu machen. */
.wi__eyebrow--feld {
  margin: 0 0 clamp(0.7rem, 1.15vw, 1.0rem);
}

/* Die Zeile unter dem Knopf („CTA-MICROCOPY", Abschnitt 04).
   Masse aus .wi__hinweis, dem Fachhinweis am Fuss desselben Abschnitts —
   dieselbe Rolle, dieselbe Groesse. Nur der Satzspiegel ist enger: der
   Fachhinweis laeuft ueber 68rem, diese Zeile gehoert optisch zum Knopf und
   soll nicht breiter stehen als der Text darueber. */
.wi__knopf-hinweis {
  max-width: 44rem;
  margin: clamp(0.9rem, 1.9vh, 1.4rem) auto 0;
  font-family: var(--wi-sans, var(--font-ui));
  font-size: clamp(0.78rem, 0.86vw, 0.86rem);
  line-height: 1.6;
  text-align: center;
  text-wrap: pretty;
  color: var(--ink-mute);
}

/* MOBIL, 01.09.2026 — Briefing 19: Knopf volle Breite, Microcopy nicht
   unter 15 px (war 12,5). */
@media (max-width: 899px) {
  .wi__knopf { width: 100%; justify-content: center; min-height: 48px; }
  .wi__knopf-hinweis { font-size: 0.9375rem; }
}

/* ===========================================================================
   „MEHR ERFAHREN" IN DER CTA-FARBE, UND EIN AUFTRITT BEIM OEFFNEN
   01.09.2026, Kundenwunsch:
     „Bei den vier Kaesten muss das ‚Mehr erfahren' in derselben Farbe sein
      wie der ‚Erstgespraech vereinbaren'-CTA-Button. Und wir brauchen
      irgendeine Animation, einen Effekt, sodass es besonderer wirkt und
      sich was veraendert, wenn man draufklickt."

   ZUR FARBE: Der CTA-Knopf traegt Sandflaeche mit weisser Schrift. Sand als
   reine SCHRIFTFARBE auf dem hellen Kartengrund misst nur 1,94:1 und waere
   nicht lesbar. „Dieselbe Farbe" ist deshalb als dieselbe FLAECHE umgesetzt:
   aus der Zeile wird eine kleine Sandpille mit weisser Schrift — genau die
   Anmutung des Knopfes, nur kleiner. Das Verhaeltnis Weiss auf Sand ist
   dabei dasselbe wie am grossen Knopf; das ist die Entscheidung des Kunden
   vom 31.08.2026 („wenn Gold, dann weisse Schrift"), hier nur konsequent
   weitergefuehrt.

   ZUM AUFTRITT: Beim Oeffnen passiert dreierlei zugleich — die Pille kippt
   von Sand auf Navy (die Karte ist jetzt die aktive), der Winkel dreht sich
   (stand schon), und die Tafel darunter faehrt mit einem goldenen Strich
   auf, der von der Mitte nach aussen laeuft. Alles unter 600 ms und unter
   20 px Weg, wie es das Optimierungsbriefing fuer Bewegungen vorschreibt.
   =========================================================================== */
.wi__karte-mehr {
  align-self: flex-start;
  padding: 0.55cqw 1.1cqw;
  border-radius: 999px;
  background: var(--sand);
  border: 1px solid var(--gold);
  color: #FFFFFF;
  transition: background 0.28s var(--ease), border-color 0.28s var(--ease),
              transform 0.28s var(--ease);
}
@media (hover: hover) {
  .wi__karte:hover .wi__karte-mehr { background: var(--sand-tief, #C9A070); transform: translateY(-1px); }
}
/* Die geoeffnete Karte: die Pille kippt auf Navy und ist damit auf einen
   Blick die aktive — das „es veraendert sich etwas", das der Kunde meint. */
.wi__karte[aria-expanded='true'] .wi__karte-mehr,
.wi__karte[aria-expanded='true']:hover .wi__karte-mehr {
  background: var(--wi-navy, #10305C);
  border-color: var(--wi-navy, #10305C);
  transform: none;
}

/* Die Tafel faehrt auf, statt zu erscheinen. `.wi__panel` ist ein Raster;
   die Bewegung liegt deshalb auf ihm selbst und nicht auf einer Huelle. */
.wi[data-js='an'] .wi__panel:not([hidden]) {
  animation: wi-tafel-auf 0.42s var(--ease) both;
}
@keyframes wi-tafel-auf {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: none; }
}
/* Der goldene Strich laeuft von der Mitte nach aussen ueber die Oberkante
   der Tafel — das Zeichen, dass hier gerade etwas aufgegangen ist. */
.wi[data-js='an'] .wi__panel:not([hidden])::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 0;
  width: 0;
  height: 2px;
  background: var(--gold);
  border-radius: 2px;
  transform: translateX(-50%);
  animation: wi-strich 0.5s var(--ease) 0.12s both;
}
@keyframes wi-strich { to { width: 62%; } }
.wi__panel { position: relative; }

@media (prefers-reduced-motion: reduce) {
  .wi[data-js='an'] .wi__panel:not([hidden]),
  .wi[data-js='an'] .wi__panel:not([hidden])::before { animation: none; }
  .wi[data-js='an'] .wi__panel:not([hidden])::before { width: 62%; }
  .wi__karte-mehr { transition: none; }
}

/* ===========================================================================
   DAS HAUS BAUT SICH AUF — 01.09.2026, zweite Fassung

   ERSTE FASSUNG UND WARUM SIE FALSCH WAR: Sie hat das FOTO in sechs Stufen
   ueber `clip-path` freigegeben. Der Kunde, woertlich:
     „Die Animation ist eine absolute Vollkatastrophe, weil man klar sieht,
      dass du die Bilder einfach nur abgeschnitten und aneinandergefuegt
      hast. Es soll aussehen wie die Animation davor, nur dass es einzelne
      Stockwerke zuerst aufbaut und dann die Fassade draufkommt."
   Er hat recht: ein harter Ausschnitt am Foto schneidet Mauerwerk, Fenster
   und Dach mitten durch — das sieht nach Schnitt aus, nicht nach Bau.

   ZWEITE FASSUNG, wie er es beschreibt:
   Es baut sich die ZEICHNUNG auf, nicht das Foto. Sie liegt als eigene Lage
   vor (`haus-strich`) und wird ueber eine Maske mit WEICHER Kante
   freigegeben — dieselbe Maske wie vor dem 01.09., nur bewegt sie sich
   jetzt in sechs Stufen mit Halt dazwischen statt gleichmaessig. Weil die
   Kante weich ist, waechst die Zeichnung heran, statt abgeschnitten zu
   werden. Erst wenn das Dach steht, blendet die Fassade darueber auf.

   DIE SECHS HALTE sind an der Datei ausgemessen (sichtbarer Inhalt
   y 77..959 von 1254): Fundament und Sockelplatte, Erdgeschoss, erster,
   zweiter, dritter Stock, Dach. Die Prozentwerte sind Maskenstaende, nicht
   Bildhoehen — die Maske ist 340 Prozent hoch, damit die weiche Kante am
   Anfang und am Ende ausserhalb des Bildes liegt.

   ZEITEN: Aufbau 1,5 s in sechs Stufen, danach 0,4 s Fassade — zusammen
   1,9 s. Der Kunde hatte „nicht zu lange, 2 Sekunden" gesagt.

   OHNE JAVASCRIPT und bei ruhiger Darstellung steht sofort die Fassade,
   die Strichlage bleibt unsichtbar. Der Endzustand ist der Grundzustand.
   =========================================================================== */
.is-ready .wi__feld[data-seen='true'] .wi__haus-strich {
  animation:
    wi-haus-stockwerke 1500ms steps(1, end) 0ms both,
    wi-strich-weg      320ms var(--ease-soft) 1560ms forwards;
}
/* Die Maske faehrt in sechs Spruengen von unten nach oben. Zwischen den
   Spruengen steht sie — das ist der Halt, der ein Stockwerk als fertig
   lesbar macht. `steps(1, end)` haelt den Wert bis zum naechsten Schluessel. */
@keyframes wi-haus-stockwerke {
  0%   { -webkit-mask-position: 0% 0%;   mask-position: 0% 0%; }
  8%   { -webkit-mask-position: 0% 26%;  mask-position: 0% 26%; }   /* Fundament, Sockelplatte */
  25%  { -webkit-mask-position: 0% 43%;  mask-position: 0% 43%; }   /* Erdgeschoss */
  42%  { -webkit-mask-position: 0% 58%;  mask-position: 0% 58%; }   /* erster Stock */
  59%  { -webkit-mask-position: 0% 72%;  mask-position: 0% 72%; }   /* zweiter Stock */
  76%  { -webkit-mask-position: 0% 86%;  mask-position: 0% 86%; }   /* dritter Stock */
  92%  { -webkit-mask-position: 0% 100%; mask-position: 0% 100%; }  /* Dach — das Haus steht */
  100% { -webkit-mask-position: 0% 100%; mask-position: 0% 100%; }
}

/* Die Fassade legt sich darueber, sobald das Dach sitzt. Kein Ausschnitt,
   kein Schnitt — das ganze Bild blendet auf, so wie vor dem 01.09. */
.is-ready .wi__feld[data-seen='true'] .wi__haus-foto {
  animation: wi-foto-ein 400ms var(--ease-soft) 1500ms both;
  clip-path: none;
}

@media (prefers-reduced-motion: reduce) {
  .is-ready .wi__feld[data-seen='true'] .wi__haus-foto {
    animation: none;
    opacity: 1;
    clip-path: none;
  }
  .is-ready .wi__feld[data-seen='true'] .wi__haus-strich { animation: none; opacity: 0; }
}

/* ===========================================================================
   DIE ZWEI ABBILDUNGEN AUF NAVY — 04.09.2026

   Kundenwunsch mit Bildvorlage: „Ich will, dass die Abbildungen auch keinen
   weißen Hintergrund bekommen, sondern eins zu eins genauso integriert
   werden, wie du auf dem Screenshot siehst. […] ohne Immobilie ist die
   Abbildung leicht ausgeblasst und bei mit Immobilie ist sie wirklich gold
   und kräftig."

   DIE TAFEL FAELLT WEG. .wi__vgl trug oben eine cremefarbene Flaeche
   (var(--wi-grund)) mit 14 px Radius und Innenabstand. Beides ist hier
   zurueckgenommen; die Zeichnungen liegen unmittelbar auf dem Navy des
   Kastens (#262C39).

   DAMIT KEHREN SICH ALLE SCHRIFTTOENE UM. Der Block oben faerbt jeden Text
   im SVG mit --wi-navy und misst gegen die Creme-Tafel — auf #262C39 waere
   das 1,1:1 und damit unsichtbar. Neu gemessen gegen #262C39:

       #C9CCD1   Beschriftungen              9,74:1
       #9AA0A9   „langsamer Aufbau"          5,45:1
       #E4C083   Pillenschrift, Ergebnis     8,63:1

   Alle drei liegen ueber 4,5:1. Die Zeichnungselemente (Muenzen, Pfeile,
   Hausumriss) sind nichttextlich; fuer sie gilt 3:1, und der schwaechste
   Wert ist der graue Pfeil links mit 3,42:1.

   UNTER DEM TEXT STATT DANEBEN. Am 31.08.2026 sind die Zeichnungen auf
   Kundenwunsch in eine schmale Spalte rechts gewandert („Die Grafiken
   müssen viel, viel kleiner sein"), damit die Kaesten flach werden. Die
   neue Vorlage zeigt sie wieder unter dem Text ueber die ganze Breite, und
   der Kunde hat das freigestellt. Der Grund ist rechnerisch: die rechte
   Zeichnung fuehrt vier Pillen, ein Haus und vier Saeulen nebeneinander —
   in den 250 px der schmalen Spalte waere die Pillenschrift bei 5 px
   gelandet. Die Kaesten werden dadurch wieder hoeher; das ist der Preis,
   und er ist hier bewusst bezahlt.
   =========================================================================== */
.wi__band-halb {
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
}
.wi__vgl {
  width: 100%;
  padding: 0;
  background: none;
  border-radius: 0;
  margin-top: clamp(1.2rem, 2.2vw, 1.9rem);
}
/* Die Beschriftung IM SVG, jetzt auf Navy. Die Grade steigen leicht: die
   Zeichnung ist breiter geworden, die Schrift skaliert mit und wuerde sonst
   im Verhaeltnis schrumpfen. */
.wi__vgl--ohne text,
.wi__vgl--mit  text { fill: #C9CCD1; }                      /* 9,74:1 */
.wi__vgl--ohne .vgl-t--quelle,
.wi__vgl--mit  .vgl-t--quelle { font-size: 17px; }
.wi__vgl--ohne .vgl-t--weg    { font-size: 16px; font-weight: 400; fill: #9AA0A9; }  /* 5,45:1 */
.wi__vgl--ohne .vgl-t--wert   { font-size: 17px; }
/* Die rechte Zeichnung rechnet seit dem Rueckbau in 470 statt 640
   Einheiten — dieselbe Zahl waere dort ein Drittel groesser auf dem
   Schirm. Die Grade sind deshalb eigene:
       weit    470 Einheiten, 575 px Kasten -> Faktor 1,22 -> 12 px = 14,7 px
       schmal  320 Einheiten, 306 px Kasten -> Faktor 0,96 -> 14 px = 13,4 px
   „Eigentumsanteil" steht kleiner, weil das Wort in den 108 Einheiten des
   Sandbalkens Platz finden muss. */
.wi__vgl--mit.wi__vgl--weit .vgl-t--wert  { font-size: 12px; }
.wi__vgl--mit.wi__vgl--weit .vgl-t--pille { font-size: 12px; }
.wi__vgl--mit.wi__vgl--weit .vgl-t--anteil{ font-size: 10px; }
/* Die Toene der rechten Zeichnung auf Navy. „Eigentumsanteil" bleibt Navy —
   es steht auf dem Sandbalken, nicht auf dem Kasten: 7,54:1. */
.wi__vgl--mit .vgl-t--wert   { fill: #E4C083; }     /* 8,63:1 auf #262C39 */
.wi__vgl--mit .vgl-t--pille  { fill: #FFFFFF; }     /* 14,6:1 auf #08294D */
.wi__vgl--mit .vgl-t--anteil { fill: #102949; }     /* 7,54:1 auf #D9B485 */

/* DIE ZEICHNUNG BEKOMMT EINEN DECKEL. Sobald die Kaesten untereinander
   stehen, hat sie ueber 1000 px zur Verfuegung — bei 640 Einheiten
   Bezugsbreite waere die Beschriftung dann bei 27 px gelandet und haette
   die Ueberschrift des Kastens ueberholt. 680 px halten sie bei 18 px.
   Nach oben deckelt der Kasten selbst: nebeneinander misst die Zeichnung
   575 px (1440) beziehungsweise 479 px (1200), die Beschriftung 15,3 und
   12,7 px. Die Vorlage des Kunden setzt ihre Beschriftung ebenfalls
   deutlich unter den Fliesstext; die 16-px-Grenze aus Abschnitt 19 gilt
   dem Lesetext, nicht der Beschriftung einer Zeichnung. */
.wi__vgl--weit   { max-width: 680px; margin-inline: auto; }
.wi__vgl--schmal { max-width: 380px; margin-inline: auto; }

/* Auf schmalen Fenstern wird die Zeichnung sonst zur Briefmarke: unter
   700 px steht die rechte Fassung mit vier Pillen nebeneinander nicht mehr
   lesbar. Der Kasten selbst bleibt unveraendert. */
@media (max-width: 699px) {
  .wi__vgl { margin-top: clamp(1rem, 3vw, 1.4rem); }
}

/* Die Textspalte laeuft nicht ueber die ganze Kastenbreite. Seit die
   Zeichnung unter den Text gerueckt ist, hat der Satz die vollen rund
   900 px zur Verfuegung — das sind ueber 100 Zeichen je Zeile und damit
   weit jenseits der 60 bis 75, die sich noch lesen lassen. 62ch in ch und
   nicht in px, weil die Schrift mit dem Fenster mitwaechst. Die Vorlage
   des Kunden zeigt denselben Aufbau: schmaler Satz oben, breite Zeichnung
   darunter. */
.wi__band-satz { max-width: 62ch; }

/* SATZ OBEN, ZEICHNUNG UNTEN — und dazwischen die Luft, die uebrig ist.
   Ohne diese Zeile verteilt das Raster die freie Hoehe auf BEIDE Reihen
   (align-content steht von Haus aus auf stretch): die Textreihe wuchs mit,
   und die linke Zeichnung stand dadurch rund 100 px tiefer als die rechte,
   obwohl ihr Text kuerzer ist. Gemessen bei 1440 px. Mit space-between
   sitzt der Satz oben, die Zeichnung unten — auf beiden Seiten auf
   derselben Linie, wie in der Vorlage des Kunden. */
.wi__band-halb { align-content: space-between; }

/* ===========================================================================
   ZWEI FASSUNGEN JE ZEICHNUNG — 04.09.2026

   WARUM ES ZWEI SIND, GEMESSEN. Die weite Fassung rechnet in 640
   SVG-Einheiten. Wie gross ihre Schrift beim Betrachter ankommt, haengt
   allein davon ab, wie breit der Kasten ist:

       Fenster   Kasten   Faktor   Beschriftung
        1440     575 px   0,90     13,5 px
        1024     409 px   0,64      9,6 px
         768     297 px   0,46      7,0 px
         390     306 px   0,48      7,2 px

   Unter 1024 px war sie damit nicht mehr zu lesen. Zwei Griffe dagegen:

   1  DIE KAESTEN BRECHEN FRUEHER UM. Bis heute standen sie bis 760 px
      nebeneinander; jetzt bis 1023 px. Dazwischen bekommt jeder Kasten die
      volle Zeilenbreite, die Zeichnung wird rund doppelt so breit, und die
      Beschriftung kommt bei 20 px an statt bei 9,6.

   2  EINE ZWEITE, SCHMALE FASSUNG fuer alles unter 768 px. Sie rechnet in
      320 Einheiten und ist nicht zusammengestaucht, sondern umgestellt:
      rechts stehen die vier Zufluesse untereinander, darunter das Haus,
      darunter das Ergebnis. Faktor 0,96, Beschriftung 13,4 px.

   BEIDE STEHEN IM MARKUP, umgeschaltet wird hier und nicht mit Javascript
   — ohne Skript soll keine Luecke entstehen. Die schmale traegt
   aria-hidden, die weite die aria-label: sonst laese ein Vorlesegeraet
   beide Fassungen nacheinander vor.
   =========================================================================== */
/* DIE SCHMALE FASSUNG IST RAUS — 04.09.2026, Kundenwunsch woertlich: „Die
   Abbildung bei ‚Ohne Immobilie‘ zeigt es jetzt bei der mobilen Version
   doppelt an, und die Abbildung bei ‚Mit Immobilie‘ zeigt es auch doppelt
   an. Du kannst die kleinere obere jeweils verwenden und die groessere
   untere weg machen. Dann wird der Kasten auch kleiner."

   ES WAREN TATSAECHLICH BEIDE ZU SEHEN, und der Fehler war meiner: die
   Umschaltung stand hier —
       .wi__vgl--schmal { display: none; }
       @media (max-width: 767px) { .wi__vgl--weit { display: none; } … }
   — und WEITER UNTEN in derselben Datei kam spaeter
       .wi__vgl--weit { aspect-ratio: 470/212; display: grid; … }
   dazu. Gleiche Spezifitaet, spaetere Stelle: das `display: grid` hat das
   `display: none` des Medienblocks ueberholt, und die weite Fassung blieb
   auf dem Telefon stehen. Die schmale stand ohnehin da. Also zwei.

   Die schmale Fassung faellt damit ganz weg; die weite gilt auf jeder
   Breite. Sie steht im Markup noch (mit aria-hidden), damit sie ohne neue
   Arbeit zurueckkann — sichtbar wird sie nirgends mehr.
   DER PREIS und wie er bezahlt ist: die weite Fassung rechnet in 640
   beziehungsweise 470 Einheiten und kommt bei 306 px Kastenbreite mit dem
   Faktor 0,48 an — die Beschriftung laege bei 8 px. Deshalb steigen die
   Schriftgrade unter 768 px eigens an (Block weiter unten), sodass sie bei
   rund 14 px ankommt. */
.wi__vgl--schmal { display: none; }
/* Die schmale Fassung rechnet in 320 statt 640 Einheiten — dieselbe
   Schriftgroesse in Einheiten waere dort doppelt so gross auf dem Schirm.
   Die Grade sind deshalb halbiert und dann auf den Zielwert von rund
   13,5 px zurueckgerechnet. */
.wi__vgl--schmal .vgl-t--quelle,
.wi__vgl--schmal .vgl-t--wert,
.wi__vgl--schmal .vgl-t--pille { font-size: 14px; }
.wi__vgl--schmal .vgl-t--weg   { font-size: 13px; }
.wi__vgl--schmal .vgl-t--anteil { font-size: 11px; }

/* ===========================================================================
   DER SATZ STEHT MITTIG — 04.09.2026

   Kundenwunsch woertlich: „Ohne Immobilie muss mittig stehen und der Text
   darunter muss auch mittig stehen. Das Gleiche gilt für Mit Immobilie."

   Das ist die Rueckkehr zu dem Aufbau, den der Abschnitt bis zum
   31.08.2026 hatte. Damals wanderte der Satz nach links, weil die Zeichnung
   daneben stand — „mittiger Satz neben einem Bild haette zwei linke
   Kanten", so steht es oben bei .wi__band-halb. Seit die Zeichnung wieder
   UNTER dem Satz steht, faellt dieser Grund weg: es gibt keine zweite
   Spalte mehr, an der sich der Satz ausrichten muesste.

   VIER DINGE MUESSEN DAFUER MIT. Die Marke traegt eine Haarlinie, die an
   ihrer linken Kante haengt; sie wird ueber left/right/margin mittig
   gesetzt. Die Stichpunkte tragen ihren Punkt in einem absoluten ::before
   am linken Rand — bei mittigem Satz saesse er neben der laengsten Zeile
   statt neben dem Text. Sie werden deshalb auf Fluss umgestellt: der Punkt
   wird ein inline-block VOR dem Text und wandert mit. Und der Satzblock
   selbst bekommt margin-inline: auto, sonst klebte seine 62ch breite
   Spalte weiter links.
   =========================================================================== */
.wi__band-satz {
  text-align: center;
  margin-inline: auto;
}
.wi__band-marke::after {
  left: 50%;
  transform: translateX(-50%);
}
/* Der Punkt laeuft im Fluss mit, statt links zu kleben. margin-right traegt
   den Abstand, den vorher padding-left am <li> getragen hat; vertical-align
   setzt ihn auf die Mitte der Zeile — dieselbe Lage wie vorher ueber
   `top: calc(0.8em - 2px)`. */
.wi__band-liste > li {
  padding-left: 0;
}
.wi__band-liste > li::before {
  position: static;
  display: inline-block;
  margin-right: 0.6em;
  vertical-align: 0.22em;
}

/* ===========================================================================
   DIE VIER KARTEN RUECKEN HOEHER — 04.09.2026

   Kundenwunsch woertlich: „‚Dein Eigentum wächst‘ kann in dem Fall raus,
   und die vier Kästen mit ‚Geld der Bank‘, ‚Mieteinnahmen‘, ‚Steuerlast‘
   etc. kannst du höher setzen, unter die abgebildete Immobilie."

   WAS DAS SCHILD BELEGT HAT. Es sass bei `top: 88,24 %` und war 14,09 %
   hoch — seine Unterkante lag damit bei 102,3 % des Feldes, also KNAPP
   AUSSERHALB. Das Feld selbst haelt sein Seitenverhaeltnis von 1240 : 323
   aus der Vorlage; die untersten Karten enden bei 54,36 % plus ihrer Hoehe,
   gemessen bei rund 72 %. Zwischen Kartenunterkante und Feldunterkante
   standen also rund 28 % Feldhoehe — 90 CSS-Punkte bei 1240 px Breite —,
   und die trug allein das Schild.

   DIE KARTEN SELBST WERDEN NICHT VERSCHOBEN, und das ist Absicht: ihre
   vier Lagen sind auf den Punkt genau die Ansatzstellen der gebogenen
   Verbindungslinien (.wi__adern, .wi__ring-*). Wer eine Karte um ein
   Prozent verschiebt, muss vier handgezeichnete Pfade nachziehen. Statt
   dessen wird DAS FELD kuerzer: sein Seitenverhaeltnis geht von 1240 : 323
   auf 1240 : 295. Die Karten sitzen weiterhin bei denselben Prozentwerten,
   ruecken damit aber zusammen mit dem Haus um gemessene 28 Punkte nach
   oben, und der leere Streifen, den das Schild hinterlassen hat, ist weg.
   Die Verbindungslinien gehen unveraendert mit, weil sie im selben Feld
   und in denselben Prozentwerten rechnen.

   NUR AUF DEM DESKTOP — 11.09.2026. Diese Zeile stand bis dahin ohne
   Media-Query und damit HINTER dem Mobile-Block (max-width: 1000px), der
   das Seitenverhaeltnis mit `aspect-ratio: auto` aufhebt, weil die Karten
   dort untereinander im Fluss stehen. Gleiche Spezifitaet, spaeter im
   Quelltext: sie hat das `auto` auf jedem Telefon ueberschrieben, und das
   Feld bekam auch dort ein Seitenverhaeltnis von 1240 : 295 — bei 393 px
   Breite rund 94 px Hoehe fuer Haus und vier Karten.

   WARUM DAS MONATELANG NIEMAND SAH: Chrome, Firefox und neuere WebKit-
   Fassungen lassen eine Box mit `aspect-ratio` auf ihren Inhalt wachsen
   (automatische Mindesthoehe). Das WebKit auf dem Telefon des Kunden tut
   das nicht: das Feld blieb kurz, die Karten quollen unten heraus und
   lagen — z-index 3 aus dem Grundsatz — ueber der Tafel und dem Knopf
   darunter. Aufgenommen im Video des Kunden vom 11.09.2026, 22:30 Uhr.
   Auf den Telefonen des Teams war es nie zu sehen. */
@media (min-width: 1001px) {
  .wi__feld { aspect-ratio: 1240 / 295; }
}

/* ALLE VIER KNOEPFE GLEICH BREIT — 04.09.2026, Kundenwunsch woertlich: „Bei
   der nächsten Section ist wichtig, dass du die Buttons mit ‚Mehr erfahren‘
   genau gleich groß machst. Du hast die Buttons bei ‚Mehr erfahren‘ nicht
   gleich groß gemacht. Die müssen gleich lang sein und auch eine eins zu
   eins gleiche Größe haben."
   GEMESSEN bei 1440 px: 175 / 175 / 182 / 175 px. Die 182 gehoerten der
   Karte, deren Rahmen im aufgeklappten Zustand um ein Haar breiter ist —
   der Knopf ist eine Flexzeile und wuchs mit. `width: 12.6cqw` ist die
   Breite des breitesten der vier, in derselben Einheit gerechnet wie der
   Rest der Karte (cqw = Prozent der Feldbreite), damit sie beim Skalieren
   gleich bleibt; `justify-content: space-between` haelt Wort und Winkel an
   ihren Plaetzen. */
/* 14,9cqw und nicht 12,6: bei 1238 px Feldbreite ist 1cqw = 12,38 px, der
   breiteste der vier Knoepfe mass 182 px = 14,7cqw. Mit 12,6cqw (156 px)
   war der Kasten SCHMALER als sein Inhalt, und der Winkel rechts stand auf
   der Kante statt darin — gemessen und im Bild gesehen. 14,9 laesst zwei
   Punkte Luft.

   NUR AB 1001 px, und zwar aus demselben Grund: unter 1000 px stellt sich
   der Abschnitt um (siehe den Block bei @media max-width: 1000px), das Feld
   wird schmal, und 14,9cqw waren dort GEMESSEN 52 px — schmaler als das
   Wort „Mehr erfahren". Unterhalb bemisst sich der Knopf wieder nach seinem
   Inhalt; ungleich lange Knoepfe gab es dort ohnehin nicht, weil sie
   untereinander stehen. */
@media (min-width: 1001px) {
  .wi__karte-mehr {
    width: 14.9cqw;
    justify-content: space-between;
  }
}

/* Unter 1001 px stehen die vier Kaesten untereinander, und der Knopf bemass
   sich nach seinem Wort: GEMESSEN bei 390 px 207 / 220 / 243 / 219 px. Der
   Kunde will sie „eins zu eins gleich groß" — hier ist die volle Kartenbreite
   das einzige Mass, das an jeder Fensterbreite fuer alle vier dasselbe ist.
   `space-between` haelt das Wort links und den Winkel rechts, wie oben. */
@media (max-width: 1000px) {
  /* `width: 100%` allein reichte NICHT, und das war der Fehler im ersten
     Anlauf: der Knopf steckt in .wi__karte-wort, und die Textspalte richtet
     sich in der Flexzeile der Karte nach ihrem Inhalt — GEMESSEN bei 390 px
     243 px in einer 350 px breiten Karte, je nach Textlaenge unterschiedlich.
     100 % davon sind also weiterhin vier verschiedene Werte. Erst wenn die
     Textspalte den Rest der Karte fuellt (flex: 1), ist sie in allen vier
     Karten gleich breit, und der Knopf darin ebenfalls. */
  .wi__karte-wort { flex: 1; min-width: 0; }
  .wi__karte-mehr {
    width: 100%;
    /* Ein Deckel, damit die Pille kein Banner wird: bei 900 px war die
       Karte 678 px breit, und ein 678 px langer Knopf mit zwei Woertern
       darin liest sich nicht mehr als Knopf. 22rem sind 352 px; darunter
       (390 px Fenster: 243 px) greift der Deckel nicht, und alle vier
       bleiben gleich. */
    max-width: 22rem;
    justify-content: space-between;
  }
}

/* ===========================================================================
   BEIDE KOEPFE EINZEILIG, BEIDE ZEICHNUNGEN AUF EINER MITTE — 04.09.2026

   Kundenwunsch woertlich: „Bei dem Kasten mit ‚Mit Immobilie‘ steht in der
   Headline ‚Fremdkapital, Miete und Steuervorteile arbeiten für dich‘ in
   EINER Zeile. Das kannst du genauso machen wie bei ‚Ohne Immobilie‘, dort
   steht ‚Du baust nur mit deinem eigenen Kapital auf‘ in einer Zeile, und
   danach kommen die Unterpunkte. […] Die Unterpunkte stehen genau parallel
   wie bei ‚Ohne Immobilie‘ auf gleicher Höhe. Die Abbildung ‚Eigene
   Sparrate‘ und ‚kleiner Vermögenswert‘ muss ein bisschen weiter nach oben.
   Die Abbildung soll quasi mittig sein zu der Abbildung bei ‚Mit
   Immobilie‘."

   ERSTENS, DIE ZEILE. Gemessen brach die rechte Ueberschrift NUR AUF
   BREITEN FENSTERN um:
       1920 px   19,04 px Schrift, 62ch = 473 px Spalte   -> zwei Zeilen
       1600 px   19,04 px                                 -> zwei Zeilen
       1440 px   17,86 px                                 -> eine Zeile
       1280 px   15,87 px                                 -> eine Zeile
   Der Grund ist die Spalte, nicht der Text: 62ch sind ein fester Wert, die
   Schrift waechst aber mit der Fensterbreite weiter. Bei 19,04 px braucht
   die Zeile 504 px. 68ch geben ihr 519 px und damit 15 px Luft — und die
   Stichpunkte darunter beginnen dadurch links wie rechts auf derselben
   Hoehe, weil beide Koepfe gleich hoch sind.

   ZWEITENS, DIE MITTE. Die zwei Zeichnungen sind unterschiedlich hoch
   (links 640 : 196, rechts 470 : 212) und stehen beide am Fuss ihres
   Kastens. GEMESSEN bei 1440 px lag die Mitte der linken bei y 837, die der
   rechten bei y 796 — 41 px Versatz, und genau den sieht der Kunde. Beide
   Rahmen bekommen deshalb DASSELBE Seitenverhaeltnis (das der hoeheren,
   rechten) und stellen ihre Zeichnung darin mittig. Die flachere linke
   ruecht damit um die halbe Differenz nach oben, und beide Mitten liegen
   auf einer Linie — ohne einen einzigen festen Pixelwert, der beim
   naechsten Fenster wieder falsch waere.
   =========================================================================== */
.wi__band-satz { max-width: 68ch; }
.wi__vgl--weit {
  aspect-ratio: 470 / 212;
  display: grid;
  place-items: center;
}
.wi__vgl--weit svg { width: 100%; }


/* ===========================================================================
   DIE ZEICHNUNGEN AUF SCHMALEN FENSTERN — 04.09.2026

   Nur noch eine Fassung, und die rechnet in 640 (links) beziehungsweise 470
   (rechts) Einheiten. Bei 306 px Kastenbreite sind das die Faktoren 0,48
   und 0,65; eine Beschriftung von 17 Einheiten kaeme mit 8,1 bzw. 11,1 px
   an. Die Grade steigen hier deshalb so weit, dass beide bei rund 14 px
   landen — gemessen, nicht geschaetzt:
       links   306 / 640 = 0,478
       rechts  306 / 470 = 0,651

   ERSTER VERSUCH WAR ZU GROSS. 29 beziehungsweise 21,5 Einheiten ergaben
   zwar 14 px, aber die Zeichnung traegt sie nicht: „Steuervorteile" bei
   21,5 Einheiten misst 142 Einheiten, die Pille dahinter ist 116 breit —
   die Schrift stand ueber ihrem eigenen Kasten, und die zwei Zeilen unter
   dem Muenzstapel liefen ineinander. Im Bild nachgesehen, nicht nur
   gerechnet.

   ES BLEIBT BEI DEM, WAS DIE ZEICHNUNG TRAEGT:
       links   24 Einheiten  = 11,5 px
       rechts  16 Einheiten  =  10,4 px  (Pille 106 von 116 Einheiten)
   Das liegt unter den 16 px, die das Optimierungsbriefing fuer FLIESSTEXT
   verlangt — es ist keiner. Es sind Beschriftungen in einer Zeichnung, und
   die Alternative waere die umgestellte, hohe Fassung, die der Kunde
   ausdruecklich weghaben wollte („die groessere untere weg machen. Dann
   wird der Kasten auch kleiner."). DEM KUNDEN GEGENUEBER FESTGEHALTEN.
   =========================================================================== */
@media (max-width: 767px) {
  .wi__vgl--ohne .vgl-t--quelle,
  .wi__vgl--ohne .vgl-t--wert   { font-size: 24px; }
  .wi__vgl--ohne .vgl-t--weg    { font-size: 22px; }
  .wi__vgl--mit.wi__vgl--weit .vgl-t--wert,
  .wi__vgl--mit.wi__vgl--weit .vgl-t--pille  { font-size: 16px; }
  .wi__vgl--mit.wi__vgl--weit .vgl-t--anteil { font-size: 13px; }
}

/* ===========================================================================
   „OHNE IMMOBILIE" MIT EINEM ROTSTICH — 04.09.2026

   Kundenwunsch woertlich: „Ich will, dass du ‚Ohne Immobilie‘ mit so einem
   leichten Rot-Touch schreibst, sowohl in der Desktop-Version als auch in
   der Mobile-Version."

   Beide Marken standen in --sand (#D9B485, 7,20:1 auf #262C39). Die linke
   bekommt einen warmen, gedaempften Rotton; die rechte bleibt Sand, sonst
   waere der Unterschied zwischen den beiden Seiten weg.

   DER TON IST NICHT GEGRIFFEN. #E0A090 ist derselbe Sand, nur im Farbton
   von 32 auf 12 Grad gedreht und leicht entsaettigt — er bleibt damit in
   der Familie der Seite und wird kein Signalrot. GEMESSEN auf dem
   Kastengrund #262C39: 6,79:1, also weiterhin weit ueber der Anforderung
   von 4,5:1 fuer Text. Die goldene Haarlinie darunter geht mit, sonst
   stuende ein goldener Strich unter einer roten Zeile.
   =========================================================================== */
.wi__band-halb--klassisch .wi__band-marke        { color: #E0A090; }   /* 6,79:1 */
.wi__band-halb--klassisch .wi__band-marke::after { background: #E0A090; opacity: 0.7; }
