/* pz: Warenkorb — Artikelzeile, Bestelluebersicht (Reviewer F5).
   SOLL: es gibt kein Warenkorb-Mockup; Massstab ist die Kartentypo aus
   pz-base (Cormorant/Ink, ohne Unterstreichung) und die Spaltenlogik der
   NOVA-Tabelle.
   Version: siehe Marker --pz-css-warenkorb unten (muss mit layout/header.tpl uebereinstimmen) */

:root {
  --pz-css-warenkorb: "20260820-10";
}
/* pz: Die Kaufpfad-Tokens --pz-kaufpfad-img / --pz-kaufpfad-btn-h standen bis
   Fixrunde 8b HIER und wurden von pz-checkout.css mitbenutzt — das koppelte
   den Checkout an die Ladereihenfolge im header.tpl. Sie stehen jetzt bei den
   uebrigen Tokens in pz-base.css (dort auch die Begruendung der Werte). */

/* ============ Artikelzeile ============
   Gemessen 19.08. (1440): Titel Inter 15px, unterstrichen, #525252, in einer
   171px-Spalte 4-zeilig - waehrend die Beschreibungszeile direkt darunter
   608px breit laeuft. */
.cart-items-body .cart-items-name,
.cart-items-body .cart-items-name:hover {
  font-family: var(--pz-serif);
  font-size: 18px;
  line-height: 1.3;
  font-weight: 500;
  color: var(--pz-ink);
  text-decoration: none;
  display: inline-block;
}
.cart-items-body .cart-items-name:hover { color: var(--pz-gold); }

/* Spaltenaufteilung ab xl neu: Artikel 5/12 statt 4/12, Anzahl 3/12 statt
   4/12 (der Stepper misst 152px, die 203px-Spalte war zu grosszuegig).
   ⚠️ Kopfzeile UND Datenzeile muessen dieselbe Aufteilung tragen, sonst
   stehen "Stueckpreis"/"Anzahl"/"Preis" nicht mehr ueber ihren Werten:
   NOVA setzt im Kopf col-4/col-2/col-4/col-2 (ohne Breakpoint-Praefix),
   im Datensatz col-xl-4/-2/-4/-2. Beide hier gemeinsam gesetzt. */
@media (min-width: 1200px) {
  .cart-items-header .row > .col:nth-child(1),
  .cart-items-body .row.align-items-baseline > .col:nth-child(1) {
    flex: 0 0 41.6667%;
    max-width: 41.6667%;
  }
  .cart-items-header .row > .col:nth-child(3),
  .cart-items-body .row.align-items-baseline > .cart-items-quantity {
    flex: 0 0 25%;
    max-width: 25%;
  }
}

/* Beschreibung/Artikelnummer unter dem Titel ruhiger als der Titel */
.cart-items-body .cart-items-description,
.cart-items-body .ml-auto-util p { color: var(--pz-muted); }

/* ============ Bestelluebersicht ============ */
.basket-summary .card-gray,
#warenkorb .card-gray { border: 1px solid var(--pz-line); }
.basket-summary h2, .basket-summary .h2 { font-size: 26px; }

/* pz: Mengen-Stepper der Warenkorbzeile.
   ⚠️ Selbst verursacht und gleich mitgemessen: durch die schmalere
   Anzahl-Spalte (203 -> 152px) blieben dem Zahlenfeld 31px Breite bei
   NOVAs 15px Innenpolster links UND rechts -> Inhaltsbreite -1px, die "1"
   war im Screenshot nur noch ein Strichfragment. Fehlerregister 15:
   die schmalste unteilbare Groesse ist die Untergrenze der Spalte.
   Der Platz ist fest: .qty-wrapper.max-w-sm gibt 120px vor, davon nehmen
   die beiden 44px-Knoepfe (Tap-Ziel, m13) 88px - dem Feld bleiben 32px.
   Also Polster runter statt Feld breiter, und die Gruppe darf NICHT
   umbrechen (sonst rutscht der "+"-Knopf in eine zweite Zeile). */
.cart-items-quantity .form-counter { flex-wrap: nowrap; }
.cart-items-quantity .form-counter .form-control {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  padding-left: 2px;
  padding-right: 2px;
  text-align: center;
}

/* pz: Der Stepper der Warenkorbzeile war 43px hoch, seine +/--Knoepfe 41px -
   unter dem 44px-Tap-Ziel (Reviewer m13; die globale Regel in pz-base nimmt
   .form-counter .btn bewusst aus, weil dort die GRUPPE die Hoehe traegt -
   Fehlerregister 11). Also die Gruppe hochsetzen, nicht die Kinder.
   ⚠️ Lehre I.6: NOVA deckelt .form-counter per max-height. */
.cart-items-quantity .form-counter {
  height: 48px;
  max-height: none;
}
.cart-items-quantity .form-counter .btn,
.cart-items-quantity .form-counter .form-control {
  height: 100%;
  max-height: none;
}

/* ============================================================================
   pz: D1 — WARENKORB-ZWISCHENSEITE ("Dieser Artikel befindet sich nun in
   Ihrem Warenkorb", Ben 20.08.: Buttons "katastrophal BUGGY", Layout tot).

   Markup: NOVA `productdetails/pushed_success.tpl` mit `card=true`, gerendert
   von `productdetails/details.tpl` nach einem nicht-AJAX-Kauf. Struktur:
     div#pushed-success.card.alert.alert-dismissable
       div.card-header.alert-success        <- Meldungszeile
       div.card-body
         .row > .col-12 > .productbox-inner
            .row > .col-12 (Titel)
                 > .col-12.col-md-4.pushed-success-image-wrapper (Bild)
                 > .col              > dl.form-row (dt.col-6 / dd.col-6)
         .row.pushed-success-buttons > .col-12.col-md-6 x2

   IST, gemessen 20.08. bei 1440 (nicht geschaetzt):
     Karte 1200px breit, Bild 397x243, die Datenliste daneben 771x31 —
     zwei Wertepaare in 50/50-Spalten, dadurch 273px Loch hinter
     "PZ-P504" und 265px hinter "0,04 kg" (Fehlerregister 3b, tote Flaeche).
     Knoepfe 43 gegen 39px hoch (Fehlerregister 11) und beide unterstrichen.
   Alles drei wird hier geheilt; Balken und Unterstreichung liegen generisch
   in pz-base.css, weil sie nicht nur diese Seite betreffen. */

/* Die Karte bekommt eine Lesebreite statt der vollen Inhaltsspalte.
   940px ist kein neuer Wert: genau diese Breite benutzt pz-checkout.css seit
   dem 19.08. fuer den Bestellvorgang-Satzspiegel. Der Kaufpfad hat damit auf
   allen Stationen dieselbe Textbreite. */
#pushed-success.card {
  max-width: 940px;
  margin-left: auto;
  margin-right: auto;
  background-color: var(--pz-ivory-2);
  border: 1px solid var(--pz-line);
  border-radius: 0;
}
/* Meldungszeile: Serifentypo der CI statt Bootstrap-Fliesstext, mit einer
   Gold-Haarlinie als Abschluss (dasselbe Motiv wie .pz-tlink im Mockup). */
#pushed-success .card-header {
  background-color: transparent;
  border-bottom: 1px solid var(--pz-gold);
  padding: var(--pz-nav-halb) var(--pz-sek-nav);
  font-family: var(--pz-serif);
  font-size: 20px;
  line-height: 1.35;
  color: var(--pz-ink);
  text-align: left;
}
#pushed-success .card-body { padding: var(--pz-sek-nav); }

/* Titel wie auf der Produktkarte (pz-base .productbox-title) — dieselbe
   Serifentypo, damit die Zeile den Artikel benennt und nicht wie ein
   Formular-Label aussieht. */
#pushed-success .productbox-title {
  font-family: var(--pz-serif);
  font-size: 24px;
  line-height: 1.25;
  font-weight: 500;
  color: var(--pz-ink);
  margin-bottom: var(--pz-nav-halb);
}

/* Bildspalte: festes Mass (siehe --pz-kaufpfad-img oben), nicht `col-md-4`.
   ⚠️ Bootstrap-Spalten tragen `flex: 0 0 …%` UND `max-width: …%` — beide
   muessen fallen, sonst gewinnt die Prozentbreite (Lehre N.8: `flex` allein
   umzustellen laesst `width`/`max-width` stehen). */
/* ⚠️ Das Mass gehoert aufs BILD, nicht auf die Spalte: die Bootstrap-Spalte
   traegt 15px Innenpolster je Seite: eine 160px breite Spalte haette ein
   130px breites Bild ergeben (erste Messung nach dem Umbau: 128px). Die
   Spalte richtet sich stattdessen nach dem Bild — dann stimmt das Mass, und
   die linke Bildkante bleibt buendig unter dem Titel. */
#pushed-success .pushed-success-image-wrapper {
  flex: 0 0 auto;
  width: auto;
  max-width: none;
}
#pushed-success .pushed-success-image-wrapper img {
  width: var(--pz-kaufpfad-img);
  max-width: 100%;
  height: auto;
}
/* Die Datenspalte daneben muss schrumpfen duerfen (Fehlerregister 15 /
   Lehre I.3: ein Flex-Item hat min-width:auto und bleibt sonst so breit wie
   sein laengstes Wort). */
#pushed-success .productbox-inner > .row > .col { min-width: 0; }

/* Datenliste: aus zwei 50%-Spalten wird eine Label/Wert-Liste mit
   Haarlinien. `max-width` der .col-6 muss mit weg, sonst deckelt es die
   Grid-Spalte auf die halbe Breite. */
/* ⚠️ column-gap: 0 mit Polster AM dt statt Spalt zwischen den Spalten —
   sonst reisst die Haarlinie (dt und dd tragen je ihr eigenes border-top)
   genau im Spalt auf und die Zeile bekommt eine Luecke in der Trennlinie
   (nach dem ersten Umbau im Screenshot gesehen, Fehlerregister 19). */
#pushed-success dl.form-row {
  display: grid;
  grid-template-columns: max-content 1fr;
  column-gap: 0;
  margin: 0;
}
#pushed-success dl.form-row > dt,
#pushed-success dl.form-row > dd {
  flex: none;
  width: auto;
  max-width: none;
  padding: 9px 0;
  margin: 0;
  border-top: 1px solid var(--pz-line);
  font-size: 14px;
}
#pushed-success dl.form-row > dt:first-of-type,
#pushed-success dl.form-row > dt:first-of-type + dd { border-top: 0; padding-top: 0; }
/* ⚠️ FIXRUNDE 8b / N1: `overflow-wrap: break-word` (NOVA-Grundwert, gemessen
   an dt UND dd) zerlegt in schmalen Spalten ganze Woerter — Ben-Screenshot
   "Perlenfarb|e" in einer 81px-Wertespalte. Ein Wortbruch mitten im Begriff
   ist nie die Loesung fuer zu wenig Platz, er ist das Symptom davon (der
   Platz kommt weiter unten aus dem Einspalter). `normal` an BEIDEN Seiten,
   nicht nur am Label — sonst bricht die naechste Datenlage den Wert. */
#pushed-success dl.form-row > dt,
#pushed-success dl.form-row > dd { overflow-wrap: normal; }
#pushed-success dl.form-row > dt {
  padding-right: var(--pz-nav-halb);
  font-weight: 500;
  /* ⚠️ NICHT --pz-muted: der Ton misst 4,25:1 und ist laut pz-base nur fuer
     Nebentexte und grosse Typografie zugelassen. Das hier ist Fliesstext. */
  color: var(--pz-text);
}
#pushed-success dl.form-row > dd { color: var(--pz-ink); }

/* Buttonpaar: fuellendes Raster statt zweier halber Bootstrap-Spalten
   (Fehlerregister 3b), EINE Hoehe fuer beide (Fehlerregister 11).
   `minmax(240px, 1fr)`: gegen den laengeren Text geprueft — "ZUM WARENKORB"
   misst in der 11px-Versalien-Typo mit Icon rund 190px, passt also mit
   Polster hinein und bricht nicht um. */
#pushed-success .pushed-success-buttons {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: var(--pz-nav-halb);
  margin: var(--pz-sek-nav) 0 0;
}
#pushed-success .pushed-success-buttons > [class*="col"] {
  flex: none;
  width: auto;
  max-width: none;
  padding: 0;
}
#pushed-success .pushed-success-buttons .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  min-height: var(--pz-kaufpfad-btn-h);
  margin: 0;
}

@media (max-width: 767.98px) {
  /* Unter md gibt NOVA Titel, Bild und Daten je `col-12` — das Bild stuende
     dann ueber die volle Breite und die Karte waere zwei Bildschirme lang
     (Bens Mobil-Screenshot 20260820-161837). Bild und Daten bleiben deshalb
     nebeneinander; nur die Bildbreite faellt auf die Mobilstufe.
     Das erledigt schon die inhaltsbreite Bildspalte weiter oben (die
     Datenspalte ist `.col` und nimmt den Rest der Zeile) — der Titel steht
     als `col-12` davor und bekommt seine eigene Zeile.
     ⚠️ ERSTER VERSUCH WAR FALSCH und wurde sofort gemessen: ein
     `flex-wrap: nowrap` auf derselben Row zwang Titel (100 %), Bild und
     Daten in EINE Zeile — Ergebnis war 659px Dokumentbreite bei 390px
     Viewport und eine 0px breite Datenspalte. Fehlerregister 10: dieselbe
     Mechanik verhaelt sich je Breakpoint anders; hier reicht der
     Bootstrap-Umbruch voellig aus. */
  #pushed-success .card-header { padding: var(--pz-nav-halb); font-size: 18px; }
  #pushed-success .card-body { padding: 20px var(--pz-nav-halb); }
  #pushed-success .productbox-title { font-size: 20px; }
}

/* pz: FIXRUNDE 8b / N1 — UNTER 576px WIRD DER BLOCK EINSPALTIG.
   Der md-Zweig oben (Bild und Daten nebeneinander) ist bis 576px richtig; auf
   dem Telefon nicht mehr. Gemessen 20.08. @390 an einem Artikel MIT Merkmalen
   (PZ-P026): Bildspalte 142px, Datenliste daneben nur 194px — davon 113px
   Label und 81px Wert. In 81px passt kein Merkmalwert, also brach NOVAs
   `overflow-wrap: break-word` die Woerter mitten durch ("Perlenfarb|e"),
   waehrend unter dem 351px hohen Bild 300px leere Flaeche standen: ein
   Wortbruch-Streifen NEBEN totem Raum (Fehlerregister 3b + FEHLERMUSTER-Stil).
   Die Ursache ist nicht die Umbruchregel, sondern die Spaltenteilung.
   Deshalb: Bild bekommt seine eigene Zeile, die Merkmalliste die volle
   Kartenbreite darunter (318px statt 194px). Der Wortbruch ist damit schon
   geometrisch erledigt; `overflow-wrap: normal` weiter oben haelt ihn auch
   dann fern, wenn die Wawi laengere Merkmalnamen liefert. */
@media (max-width: 575.98px) {
  #pushed-success .pushed-success-image-wrapper {
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
    margin-bottom: var(--pz-nav-halb);
  }
  #pushed-success .productbox-inner > .row > .col {
    flex: 0 0 100%;
    max-width: 100%;
  }
}

/* ============================================================================
   pz: FIXRUNDE 8b / N2 — VERSANDRECHNER: DRITTES ELEMENT, DRITTE HOEHE.
   IST gemessen 20.08. (1440, /Warenkorb): Land-Auswahl 285x46, PLZ-Feld
   167x46, Knopf 226x55 — und "VERSANDKOSTEN ERMITTELN" darin ZWEIZEILIG.
   Fehlerregister 11 in Reinform: die drei Teile stehen sichtbar als eine
   Zeile zusammen, holen ihre Hoehe aber aus zwei Quellen (Feldhoehe gesetzt,
   Knopfhoehe aus dem umbrechenden Inhalt). Die Oberkanten lagen zufaellig
   gleich (alle y=977) — genau der Fall, vor dem Register 11 warnt: "kein
   Overlap" ist kein Beleg, gemessen wird die UNTERKANTE.

   Zwei Ursachen, beide behoben:
   (a) Der Knopf hatte gar keine Hoehenquelle -> jetzt --pz-ctl-h-sm, also
       EXAKT die Hoehe, die Feld und Auswahl schon tragen (46px, eine Quelle).
   (b) Er hatte nicht genug Breite -> Text 215px + 2x15px Polster + 2x1px
       Rahmen = 247px Bedarf in einer 236px-Spalte (Fehlerregister 15: die
       breiteste unteilbare Zeichenkette ist die Untergrenze). Statt einen
       Pixelwert zu erfinden, bekommt die Knopfspalte ihre INHALTSBREITE und
       die Landspalte den Rest — 260px Mindestbreite als Puffer fuer laengere
       Uebersetzungen. Die Zeile bleibt damit 707px breit wie vorher. */
/* Die Hoehe gilt auf JEDER Breite — sie ist der eigentliche Register-11-Fix. */
.shipping-calculator-form .btn {
  height: var(--pz-ctl-h-sm);
  max-height: none; /* ⚠️ Lehre I.6: NOVA deckelt Buttons per max-height */
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
/* ⚠️ Die Spaltenumverteilung NUR ab md (Fehlerregister 10: dieselbe Mechanik
   verhaelt sich je Breakpoint anders). Unter 768px gibt Bootstrap allen drei
   Spalten `col-12`, sie stapeln also von sich aus — ein `flex: 1 1 0` waere
   dort kein Fix, sondern wuerde den Stapel wieder in eine Zeile zwingen. */
@media (min-width: 768px) {
  .shipping-calculator-main .form-row > .col:last-child {
    flex: 0 0 auto;
    width: auto;
    max-width: none;
  }
  /* ⚠️ `flex-basis: 0`, NICHT `auto`: mit `auto` ist die Ausgangsbreite der
     Spalte die ihres Inhalts — und das Auswahlfeld darin traegt `width: 100%`.
     Die Spalte startete dadurch mit 697px, die Zeile brach um und PLZ-Feld
     plus Knopf landeten in einer zweiten Reihe (nach dem ersten Umbau genau
     so gemessen). Fehlerregister 15 / Lehre N.8 in der flex-Variante. */
  .shipping-calculator-main .form-row > .shipping-calculator-main-country {
    flex: 1 1 0;
    min-width: 0;
    max-width: none;
  }
  .shipping-calculator-form .btn { min-width: 260px; }
}

/* ============================================================================
   pz: D6 — WARENKORB-DROPDOWN, BEIDE ZUSTAENDE (Ben 20.08.: leer
   "unformatiert, Text ragt raus", voll "unsauber, ohne Aussenrahmen").
   Markup: NOVA `basket/cart_dropdown.tpl` -> #cart-dropdown-container.
   IST gemessen 20.08. (1440): border 0px, padding 0px; leer = ein nackter
   `.dropdown-item` von 350x39 ohne Kasten; voll = Knoepfe 35 gegen 47px.
   Fehlerregister 14: BEIDE Zustaende gebaut und gemessen, nicht nur der,
   den man gerade offen hat. */
#cart-dropdown-container {
  border: 1px solid var(--pz-line);
  border-radius: 0;
  background-color: var(--pz-ivory);
  /* Der Kasten liegt ueber der Seite und braucht eine Tiefenkante; der Ton
     ist --pz-ink mit niedriger Deckkraft, keine neue Farbe. */
  box-shadow: 0 18px 40px -24px rgba(18, 16, 13, .45);
}
/* Leerzustand: `.dropdown-item` ist bei Bootstrap `white-space: nowrap` —
   genau daran ragte der Satz aus dem Kasten (Fehlerregister 15: die
   breiteste unteilbare Zeichenkette ist die Untergrenze). Er darf umbrechen
   und bekommt Polster statt der 8px des Framework-Eintrags. */
#cart-dropdown-container .cart-dropdown-empty {
  display: block;
  white-space: normal;
  padding: var(--pz-sek-nav) var(--pz-nav-halb);
  text-align: center;
  font-size: 14px;
  color: var(--pz-text);
  text-decoration: none;
}
#cart-dropdown-container .cart-dropdown-empty:hover {
  background-color: var(--pz-ivory-2);
  color: var(--pz-ink);
}
/* Vollzustand */
#cart-dropdown-container .dropdown-cart-items {
  margin: 0;
  color: var(--pz-text);
}
#cart-dropdown-container .dropdown-cart-items td {
  border-top: 1px solid var(--pz-line);
  padding: 12px var(--pz-nav-halb);
  vertical-align: top;
}
#cart-dropdown-container .dropdown-cart-items tbody tr:first-child td { border-top: 0; }
#cart-dropdown-container .dropdown-cart-items a {
  font-family: var(--pz-serif);
  font-size: 16px;
  line-height: 1.3;
  color: var(--pz-ink);
  text-decoration: none;
}
#cart-dropdown-container .dropdown-cart-items a:hover { color: var(--pz-gold); }
#cart-dropdown-container .dropdown-body {
  padding: var(--pz-nav-halb);
  border-top: 1px solid var(--pz-line);
}
#cart-dropdown-container .cart-dropdown-total-item { font-size: 13px; color: var(--pz-text); }
#cart-dropdown-container .cart-dropdown-total-item-price,
#cart-dropdown-container .font-weight-bold-util .cart-dropdown-total-item-price { float: right; }
/* Knoepfe: fuellendes Raster, EINE Hoehe (wie D1). NOVA gibt ihnen
   `col-12 col-lg-6` — im 350px-Kasten sind das zwei 135px-Spalten mit
   umbrechendem Text ("ZUM WARENKORB" zweizeilig = die gemessenen 47px
   gegen 35px). Das Raster laesst sie stattdessen untereinander volle
   Breite laufen, sobald 240px nicht zweimal hineinpassen. */
#cart-dropdown-container .cart-dropdown-buttons {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 10px;
  margin: var(--pz-nav-halb) 0 0;
}
#cart-dropdown-container .cart-dropdown-buttons > [class*="col"] {
  flex: none;
  width: auto;
  max-width: none;
  padding: 0;
}
#cart-dropdown-container .cart-dropdown-buttons .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: var(--pz-kaufpfad-btn-h);
  margin: 0;
  white-space: nowrap;
}

/* ============================================================================
   pz: D7 — LEERER WARENKORB (Ben 20.08.: "haesslich", Desktop UND Mobil).
   Markup: NOVA `basket/index.tpl`, Block `basket-index-cart-empty`:
     .row.basket-empty > .col > .alert.alert-info ( .badge.bubble > Icon,
     <br>, Text ) + a.btn.btn-primary
   IST gemessen 20.08. (1440): der Alert 1218x98 als breites Band mit dem
   Gold-Balken links und einem 16px-Warenkorbglyph — ein Hinweiskasten, kein
   Leerzustand. Der Knopf stand losgeloest darunter.
   SOLL: EIN ruhiger, zentrierter Leerzustand in Lesebreite. */
.basket-empty { justify-content: center; }
.basket-empty > [class*="col"] {
  max-width: 940px; /* dieselbe Lesebreite wie D1 und der Bestellvorgang */
  text-align: center;
}
/* ⚠️ Anker `.basket .basket-empty .alert` (0,3,0), nicht `.basket-empty
   .alert` (0,2,0): my-nova.css setzt unter genau diesem Dreiklassen-Selektor
   `padding-top: .5rem; padding-bottom: 2rem`. Mit dem kuerzeren Selektor kam
   die Kurzform `padding` zwar durch, wurde aber von den beiden Einzelwerten
   wieder ueberschrieben — gemessen: 8px oben statt 96 (Fehlerregister 16:
   erst die konkurrierende Regel suchen, dann setzen). */
.basket .basket-empty .alert {
  /* Kein Akzentbalken: hier meldet nichts einen Zwischenfall, hier ist der
     Korb schlicht leer. Der Kasten traegt seine Aussage selbst. */
  border: 1px solid var(--pz-line);
  background-color: var(--pz-ivory-2);
  padding: var(--pz-sek-band) var(--pz-sek-nav) var(--pz-band-halb);
  margin-bottom: var(--pz-sek-nav);
  font-family: var(--pz-serif);
  font-size: 22px;
  line-height: 1.4;
  color: var(--pz-ink);
}
/* Das Glyph ist ein `.badge.badge-light.bubble` — als graue Bootstrap-Pille
   ist es ein Fremdkoerper. Es wird zum Gold-Piktogramm ohne Flaeche. */
.basket .basket-empty .alert .badge.bubble {
  display: inline-block;
  background: transparent;
  color: var(--pz-gold);
  font-size: 30px;
  line-height: 1;
  padding: 0;
  margin-bottom: var(--pz-nav-halb);
}
.basket-empty .btn { min-height: var(--pz-kaufpfad-btn-h); display: inline-flex; align-items: center; }
