/* =============================================================================
   PHYSIOPARK MG · PP Terminabsage · Formular-CSS
   Datei:   ppw-absage.css      Version: 0.9.1
   System:  gebrückt auf ppw-base.css (globale --ppw-* Tokens, Hardcode-
            Fallbacks eingebaut). Scope: alles unter .ppabsage-wrap gekapselt.
            AUSNAHME seit 0.9.0: EIN bewusst ungescopter Block ganz unten
            ("Fremd-Reset") — Begründung und Rückbauweg stehen dort.
   Laden:   seit 0.2.0 auf allen Frontend-Seiten (Elementor-Fix). Genau
            deshalb liegt der Fremd-Reset hier: von unseren drei global
            geladenen Stylesheets ist dieses das gepflegteste.

   CHANGELOG (neueste zuerst · historische Einträge NIE umschreiben)
   --------------------------------------------------------------------------
   0.9.1 · 2026-08-13
     - NUR KOMMENTAR, keine einzige Regel geändert (nachgewiesen: die
       Datei ohne Kommentare ist vor und nach der Änderung byte-gleich,
       sha256-Vergleich; test-fremd-reset.php unverändert grün).
     - Der in 0.9.0 notierte Rückbauweg des Fremd-Resets war falsch:
       „gehört in ppw-base.css, sobald diese lebt". ppw-base.css lädt
       nur auf den 26 pp_seite-Sonderseiten, der Reset muss aber überall
       greifen. Begründung ausführlich im Block am Dateiende. Der Reset
       bleibt vorerst hier.
   0.9.0 · 2026-08-12
     - Fremd-Reset: das Theme hello-elementor 3.4.5 zwingt in
       assets/css/reset.css JEDEN Knopf der Website auf
       `white-space: nowrap`. Dadurch konnte kein Knopftext umbrechen,
       der längste Text wurde zum min-content-Wert seines Containers
       und sprengte in einer Grid-Spur `1fr` (= minmax(auto,1fr)) die
       Spur. Dieselbe Falle wurde bereits dreimal einzeln gepflastert
       (pp-termine 0.17.8 Upsell-Knopf, pp-termine 0.8.19 ganzer
       Plugin-Scope, ppw-medizinische-massage.css FAQ). Jetzt EINMAL
       zentral der Browser-Default zurückgeholt, siehe Block am Dateiende.
       GELTUNGSBEREICH: nur <button>, [type="button"] und
       [type="submit"] — die offene Fundfamilie der <a>-CTAs mit
       eigenem `white-space:nowrap` (ppw-longcovid.css, ppw-cmd.css
       u. a.) erreicht diese Regel NICHT.
       WIRKUNG — ehrlich: die Änderung ist überwiegend PRÄVENTIV.
       Live gemessen wurden 17 Seiten mit ~410 Knopf-Instanzen bei
       375 px und 1280 px: 0 Breitenänderungen, 0 neuer Querlauf. Der
       einzige belegte sichtbare Effekt sind die 6 abgeschnittenen
       FAQ-Fragen auf /krankengymnastik/, die jetzt umbrechen statt zu
       clippen. NICHT gemessen werden konnte ausgerechnet die Fläche,
       wegen der die Runde stattfand: die Terminvorschlags-Karten
       entstehen erst NACH dem Absenden der mehrstufigen
       Terminanfrage und waren unter der Read-only-Auflage nicht
       erreichbar (auf /termine/ waren von 24 Knöpfen nur 3 sichtbar);
       ebenso ungemessen /bestellungen/ (unveröffentlicht).
       Nach dem Deploy daher EINMAL eine Terminanfrage bis zur
       Vorschlagsliste bei 375 px durchspielen.
   0.8.1 · 2026-07-23
     - Mailbox-Zeile nur im geschlossenen Zustand sichtbar.
   0.8.0 · 2026-07-23
     - Fortschrittsbalken wie im Termine-Plugin: 9px hoch, Verlauf mit
       Glow, Lauflicht, Wachs-Impuls, grüner Abschluss bei 100 %,
       Meta-Zeile (Schritt x von y, n % geschafft); reduced-motion
       ruhig.
   0.7.0 · 2026-07-23
     - Telefon-Karten im Design des Termine-Plugins (0.18.x): Label in
       Kapitälchen, Nummer groß, Live-Status (offen leise grün,
       geschlossen bläuliche Abenddämmerung mit schlafendem Hörer und
       Mond), Mailbox-Zeile, Einladungs-Pille; reduced-motion ruhig.
   0.6.0 · 2026-07-20
     - GF-Feedback: Kurs-Slot-Chips (.ppabsage-chip, petrol bei Auswahl,
       Touch-Targets), CTA-Buttons im Erfolgs-Screen (primär petrol,
       sekundär Outline, mobil gestapelt volle Breite).
   0.5.0 · 2026-07-20
     - GF-Feedback: Telefon-Karten neu (flach, Akzentbalken links, Icon),
       alte Pill-Styles entfernt. Kurs-Hinweis im Termin-Schritt.
     - Kontrast-Audit (WCAG 2.1 AA) und Fixes: deaktivierte Kalendertage
       von #b6c4c7 (1,8:1) auf #5f7a80 (4,6:1), inaktive Schritte ohne
       Opacity-Schwäche (Label #5a737a, 5,0:1), Platzhalterfarbe explizit
       #5a737a, Fokus-Schatten kräftiger. Admin-CSS geprüft, kein Befund.

   KONTRAST-AUDIT (2026-07-20, WCAG 2.1 AA, relative Luminanz)
   --------------------------------------------------------------------------
   Kombination                                   Verhältnis  Schwelle  Status
   Text #0e2329 auf #ffffff                      16,3:1      4,5:1     ok
   Text #3a5258 auf #ffffff                       8,3:1      4,5:1     ok
   Text #3a5258 auf #f6fafa (Cards)               7,9:1      4,5:1     ok
   Text #5a737a auf #ffffff (Hints, Platzhalter)  5,0:1      4,5:1     ok
   Weiß auf #0f5c63 (Buttons, aktiver Schritt)    7,7:1      4,5:1     ok
   Weiß auf #2f7880 (Gradient-Ende)               5,1:1      4,5:1     ok
   Brand #0f5c63 auf #e3eff0 (Links, Pills)       6,6:1      4,5:1     ok
   Deep #0a464c auf #e3eff0 (Telefon-Nummer)      9,0:1      4,5:1     ok
   Amber #6b5300 auf #fdf3d7 (Notfall-Hinweis)    6,6:1      4,5:1     ok
   Grün #1e7e34 auf #e9f6ec (Erfolg)              4,6:1      4,5:1     ok
   Rot #c0392b auf #fbeeec (Fehlerbox)            4,8:1      4,5:1     ok
   Rot #c0392b auf #ffffff (Fehlertext)           5,4:1      4,5:1     ok
   Deakt. Kalendertag #5f7a80 auf #ffffff         4,6:1      3,0:1     ok (Fix)
   Inakt. Schritt #5a737a auf #ffffff             5,0:1      3,0:1     ok (Fix)
   Fokus-Ring #0f5c63 auf #ffffff                 7,7:1      3,0:1     ok
   Chip weiß auf #0f5c63 (gewählt)                7,7:1      4,5:1     ok (0.6.0)
   Ghost-CTA #0a464c auf #ffffff                 10,5:1      4,5:1     ok (0.6.0)
   Admin: Amber #8a6100 auf #fdf3d7 (retry)       5,0:1      4,5:1     ok
   Admin: Blau #1a4b8f auf #e8f0fe (status)       7,5:1      4,5:1     ok
   Admin: Grau #50575e auf #f0f0f1 (spam)         6,4:1      4,5:1     ok
   Admin: Warnung #b7791f auf #ffffff (groß)      3,6:1      3,0:1     ok
   --------------------------------------------------------------------------
   0.4.0 · 2026-07-20
     - GF-Feedback: Eigener Datepicker (Kalender-Popup, fest deutsch,
       deaktivierte Tage, selected/today States), Layout auf volle Breite
       (max 960px), 2-spaltige Grids erst ab 640px, Termin-Zeilen darunter
       einspaltig, Notfall-Hinweis (amber) und Pflicht-Highlight, neuer
       Erfolgs-Screen mit Häkchen-Animation.
   0.3.0 · 2026-07-20
     - GF-Feedback: Wizard-Styles. Fortschrittsanzeige (Schritt-Pills,
       animierte Leiste, auf Mobile sticky, Labels nur am aktiven
       Schritt), Schritt-Container (nur bei .ppabsage-wizard-active
       ein-/ausgeblendet, ohne JS alles sichtbar), Slide-Übergang
       250 ms, reduced-motion, Weiter-/Zurück-Buttons (min 44 px).
   0.2.0 · 2026-07-20
     - GF-Feedback: Info-Box .ppabsage-kurszeiten (Rehasport-Kurszeiten)
       ergänzt, sonst unverändert.
   0.1.0 · 2026-07-20
     - Initiale Version: Hinweisblock, Formular-Karte, Standort-Radio-Karten,
       Rehasport-Block, Termin-Zeilen, Fehler- und Erfolgsboxen, responsive
       (mobile first), Fokus-Stile, reduced-motion.
   ============================================================================= */

.ppabsage-wrap *,
.ppabsage-wrap *::before,
.ppabsage-wrap *::after {
  box-sizing: border-box;
}

.ppabsage-wrap {
  --ppabsage-font: var(--ppw-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif);

  --ppabsage-surface: var(--ppw-surface, #ffffff);
  --ppabsage-surface-soft: var(--ppw-bg-alt, #f6fafa);
  --ppabsage-tint: #f1f7f7;

  --ppabsage-text: #0e2329;
  --ppabsage-muted: #3a5258;
  --ppabsage-muted-soft: #5a737a;

  --ppabsage-brand: var(--ppw-brand, #0f5c63);
  --ppabsage-brand-deep: var(--ppw-brand-deep, #0a464c);
  --ppabsage-brand-hover: var(--ppw-brand-hover, #0b494f);
  --ppabsage-brand-soft: var(--ppw-brand-soft, #e3eff0);

  --ppabsage-border: var(--ppw-border, #d4e1e3);
  --ppabsage-border-soft: #e5edee;

  --ppabsage-shadow: var(--ppw-shadow-md, 0 14px 32px rgba(7, 24, 28, 0.10));
  --ppabsage-shadow-sm: var(--ppw-shadow-sm, 0 4px 12px rgba(7, 24, 28, 0.06));

  --ppabsage-error: #c0392b;
  --ppabsage-error-soft: #fbeeec;
  --ppabsage-success: #1e7e34;
  --ppabsage-success-soft: #e9f6ec;

  font-family: var(--ppabsage-font);
  color: var(--ppabsage-text);
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  padding: 0 4px;
}

/* ============================================================
   HINWEISBLOCK (statisch, Telefonnummern immer sichtbar)
   ============================================================ */
.ppabsage-wrap .ppabsage-notice {
  background: var(--ppabsage-surface);
  border: 1px solid var(--ppabsage-border);
  border-radius: 16px;
  box-shadow: var(--ppabsage-shadow-sm);
  padding: 22px 20px;
  margin-bottom: 20px;
  text-align: center;
}

.ppabsage-wrap .ppabsage-lead {
  margin: 0 0 6px;
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--ppabsage-text);
}

.ppabsage-wrap .ppabsage-note {
  margin: 0 0 14px;
  color: var(--ppabsage-muted);
  font-size: 1rem;
  line-height: 1.6;
}

/* Telefon-Karten (0.7.0): Design wie im Termine-Plugin, Label in
   Kapitälchen, Nummer groß, Live-Status (offen grün, geschlossen in
   blauer Abenddämmerung mit schlafendem Hörer und Mond), Mailbox-
   Zeile, Einladungs-Pille darunter. */
.ppabsage-wrap .ppabsage-telcards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  margin-top: 12px;
}

@media (min-width: 640px) {
  .ppabsage-wrap .ppabsage-telcards {
    grid-template-columns: 1fr 1fr;
  }
}

.ppabsage-wrap .ppabsage-telcard {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 8px 14px;
  border: 1px solid #98bcc1;
  border-radius: 12px;
  background: var(--ppabsage-surface, #ffffff);
  color: var(--ppabsage-brand-deep);
  text-decoration: none !important;
  transition: background 0.25s ease-out, border-color 0.25s ease-out;
}

.ppabsage-wrap .ppabsage-telcard:hover,
.ppabsage-wrap .ppabsage-telcard:focus-visible {
  background: var(--ppabsage-brand-soft);
  border-color: var(--ppabsage-brand);
  outline: none;
}

.ppabsage-wrap .ppabsage-telcard-ico {
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
}

.ppabsage-wrap .ppabsage-telcard-txt {
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1.25;
  text-align: center;
}

.ppabsage-wrap .ppabsage-telcard-label {
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--ppabsage-muted-soft);
}

.ppabsage-wrap .ppabsage-telcard-num {
  font-size: 1.02rem;
  font-weight: 800;
  color: var(--ppabsage-brand-deep);
  letter-spacing: 0.01em;
}

.ppabsage-wrap .ppabsage-telcard-status {
  display: inline-flex;
  margin-top: 2px;
  font-size: 0.76rem;
  font-weight: 700;
  line-height: 1.3;
}

.ppabsage-wrap .ppabsage-telcard-status--offen {
  color: #256443;
}

.ppabsage-wrap .ppabsage-telcard-status--zu {
  color: var(--ppabsage-muted);
  font-weight: 600;
}

.ppabsage-wrap .ppabsage-telcard-mailbox {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 3px;
  font-size: 0.76rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--ppabsage-muted-soft);
}

.ppabsage-wrap .ppabsage-telcard-mailbox svg {
  flex: 0 0 auto;
  width: 15px;
  height: 15px;
  opacity: 0.8;
}

/* Offen: leises Grün */
.ppabsage-wrap .ppabsage-telcard:has(.ppabsage-telcard-status--offen) {
  border-color: rgba(46, 125, 82, 0.45);
  background: linear-gradient(135deg, #f2f9f4, #ffffff);
}

/* Geschlossen: bläuliche Abenddämmerung mit schlafendem Hörer */
.ppabsage-wrap .ppabsage-telcard:has(.ppabsage-telcard-status--zu) {
  border-color: #b9c6de;
  background: linear-gradient(135deg, #e9eef8, #e2e8f3);
}

.ppabsage-wrap .ppabsage-telcard:has(.ppabsage-telcard-status--zu) .ppabsage-telcard-ico {
  transform: rotate(-8deg);
  transition: transform 0.3s ease-out;
  color: #5c7196;
}

.ppabsage-wrap .ppabsage-telcard:has(.ppabsage-telcard-status--zu)::before,
.ppabsage-wrap .ppabsage-telcard:has(.ppabsage-telcard-status--zu)::after {
  position: absolute;
  left: 24px;
  top: 4px;
  font-weight: 800;
  color: #8fa3c4;
  pointer-events: none;
  animation: ppabsage-zzz 2.8s ease-in-out infinite;
}

.ppabsage-wrap .ppabsage-telcard:has(.ppabsage-telcard-status--zu)::before {
  content: "z";
  font-size: 0.8rem;
}

.ppabsage-wrap .ppabsage-telcard:has(.ppabsage-telcard-status--zu)::after {
  content: "z";
  font-size: 1rem;
  animation-delay: 1.4s;
}

@keyframes ppabsage-zzz {
  0%   { opacity: 0; transform: translate(0, 0); }
  30%  { opacity: 0.9; }
  100% { opacity: 0; transform: translate(7px, -13px); }
}

/* Mond: dezent oben rechts, nur im geschlossenen Zustand */
.ppabsage-wrap .ppabsage-telcard-moon {
  display: none;
}

.ppabsage-wrap .ppabsage-telcard:has(.ppabsage-telcard-status--zu) .ppabsage-telcard-moon {
  display: block;
  position: absolute;
  top: 10px;
  right: 12px;
  width: 15px;
  height: 15px;
  color: #7c93bd;
  opacity: 0.85;
}

/* Einladungs-Pille unter den Karten */
.ppabsage-wrap .ppabsage-telintro {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 2px 0 0;
  padding: 9px 14px;
  background: var(--ppabsage-surface, #ffffff);
  border: 1px solid var(--ppabsage-border-soft, #e5edee);
  border-radius: 999px;
  font-size: 0.88rem;
  font-weight: 700;
  line-height: 1.4;
  color: var(--ppabsage-muted);
  text-align: center;
}

.ppabsage-wrap .ppabsage-telintro svg {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  color: var(--ppabsage-brand);
}

@media (prefers-reduced-motion: reduce) {
  .ppabsage-wrap .ppabsage-telcard,
  .ppabsage-wrap .ppabsage-telcard:has(.ppabsage-telcard-status--zu) .ppabsage-telcard-ico {
    transition: none !important;
  }

  .ppabsage-wrap .ppabsage-telcard:has(.ppabsage-telcard-status--zu)::before,
  .ppabsage-wrap .ppabsage-telcard:has(.ppabsage-telcard-status--zu)::after {
    animation: none !important;
    opacity: 0 !important;
  }
}

/* ============================================================
   FORMULAR-KARTE
   ============================================================ */
.ppabsage-wrap .ppabsage-form {
  background: var(--ppabsage-surface);
  border: 1px solid var(--ppabsage-border);
  border-radius: 16px;
  box-shadow: var(--ppabsage-shadow);
  padding: 26px 20px;
}

.ppabsage-wrap .ppabsage-field {
  border: 0;
  margin: 0 0 20px;
  padding: 0;
  min-width: 0;
}

.ppabsage-wrap .ppabsage-legend {
  display: block;
  margin: 0 0 8px;
  padding: 0;
  font-size: 1.02rem;
  font-weight: 800;
  color: var(--ppabsage-text);
}

.ppabsage-wrap .ppabsage-req {
  color: var(--ppabsage-error);
  font-weight: 800;
}

.ppabsage-wrap .ppabsage-sublabel {
  display: block;
  margin: 0 0 5px;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--ppabsage-muted);
}

.ppabsage-wrap .ppabsage-hint {
  margin: 6px 0 0;
  font-size: 0.88rem;
  line-height: 1.55;
  color: var(--ppabsage-muted-soft);
}

.ppabsage-wrap .ppabsage-hint a {
  color: var(--ppabsage-brand) !important;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.ppabsage-wrap .ppabsage-grid {
  display: grid;
  gap: 14px;
  margin-bottom: 0;
}

.ppabsage-wrap .ppabsage-grid-2 {
  grid-template-columns: 1fr;
}

/* Eingabefelder */
.ppabsage-wrap .ppabsage-input {
  width: 100%;
  font: inherit;
  font-size: 1rem;
  color: var(--ppabsage-text);
  background: var(--ppabsage-surface-soft);
  border: 1px solid var(--ppabsage-border-soft);
  border-radius: 12px;
  padding: 12px 14px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.ppabsage-wrap .ppabsage-input:focus {
  outline: none;
  border-color: var(--ppabsage-brand);
  background: #ffffff;
  box-shadow: 0 0 0 3px rgba(15, 92, 99, 0.25);
}

.ppabsage-wrap .ppabsage-input.ppabsage-invalid {
  border-color: var(--ppabsage-error);
  background: var(--ppabsage-error-soft);
}

.ppabsage-wrap textarea.ppabsage-input {
  resize: vertical;
  min-height: 110px;
}

.ppabsage-wrap .ppabsage-input::placeholder {
  color: #5a737a;
  opacity: 1;
}

/* Fehlermeldung unter dem Feld */
.ppabsage-wrap .ppabsage-error {
  margin: 6px 0 0;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--ppabsage-error);
}

/* ============================================================
   STANDORT: RADIO-KARTEN
   ============================================================ */
.ppabsage-wrap .ppabsage-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

.ppabsage-wrap .ppabsage-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  background: var(--ppabsage-surface-soft);
  border: 2px solid var(--ppabsage-border-soft);
  border-radius: 14px;
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.ppabsage-wrap .ppabsage-card:hover {
  border-color: var(--ppabsage-brand);
  background: var(--ppabsage-brand-soft);
}

.ppabsage-wrap .ppabsage-card input[type="radio"] {
  width: 20px;
  height: 20px;
  margin: 0;
  accent-color: var(--ppabsage-brand);
  flex: 0 0 auto;
}

.ppabsage-wrap .ppabsage-card input[type="radio"]:focus-visible {
  outline: 3px solid var(--ppabsage-brand);
  outline-offset: 2px;
}

.ppabsage-wrap .ppabsage-card:has(input[type="radio"]:checked) {
  border-color: var(--ppabsage-brand);
  background: var(--ppabsage-brand-soft);
  box-shadow: 0 0 0 3px rgba(15, 92, 99, 0.10);
}

.ppabsage-wrap .ppabsage-card-body {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.ppabsage-wrap .ppabsage-card-title {
  font-weight: 800;
  font-size: 1.02rem;
  color: var(--ppabsage-text);
}

.ppabsage-wrap .ppabsage-card-sub {
  font-size: 0.88rem;
  color: var(--ppabsage-muted);
}

/* ============================================================
   REHASPORT (erscheint nur bei Standort Waldhausen)
   ============================================================ */
.ppabsage-wrap .ppabsage-rehasport[hidden] {
  display: none !important;
}

.ppabsage-wrap .ppabsage-inline-radios {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.ppabsage-wrap .ppabsage-radio-inline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  background: var(--ppabsage-surface-soft);
  border: 2px solid var(--ppabsage-border-soft);
  border-radius: 999px;
  cursor: pointer;
  font-weight: 700;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.ppabsage-wrap .ppabsage-radio-inline:hover {
  border-color: var(--ppabsage-brand);
}

.ppabsage-wrap .ppabsage-radio-inline input[type="radio"] {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--ppabsage-brand);
}

.ppabsage-wrap .ppabsage-radio-inline:has(input[type="radio"]:checked) {
  border-color: var(--ppabsage-brand);
  background: var(--ppabsage-brand-soft);
}

/* Kurszeiten-Info-Box (erscheint bei Rehasport "ja") */
.ppabsage-wrap .ppabsage-kurszeiten {
  margin-top: 12px;
  padding: 12px 16px;
  background: var(--ppabsage-tint);
  border: 1px solid var(--ppabsage-border-soft);
  border-left: 3px solid var(--ppabsage-brand);
  border-radius: 10px;
  font-size: 0.92rem;
  line-height: 1.6;
  color: var(--ppabsage-muted);
}

.ppabsage-wrap .ppabsage-kurszeiten strong {
  color: var(--ppabsage-text);
}

.ppabsage-wrap .ppabsage-kurszeiten[hidden],
.ppabsage-wrap .ppabsage-kurs-hint[hidden] {
  display: none !important;
}

/* ============================================================
   TERMIN-ZEILEN
   ============================================================ */
.ppabsage-wrap .ppabsage-termin-row {
  margin-bottom: 10px;
}

.ppabsage-wrap .ppabsage-termin-label {
  display: block;
  margin: 0 0 5px;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--ppabsage-muted);
}

.ppabsage-wrap .ppabsage-termin-fields {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  align-items: start;
}

@media (min-width: 640px) {
  .ppabsage-wrap .ppabsage-termin-fields {
    grid-template-columns: 1fr 1fr;
  }

  .ppabsage-wrap .ppabsage-termin-row[data-ppabsage-row]:not([data-ppabsage-row="0"]) .ppabsage-termin-fields {
    grid-template-columns: 1fr 1fr auto;
  }
}

.ppabsage-wrap .ppabsage-remove-row {
  width: 46px;
  height: 46px;
  border: 1px solid var(--ppabsage-border);
  border-radius: 12px;
  background: #ffffff;
  color: var(--ppabsage-error);
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.ppabsage-wrap .ppabsage-remove-row:hover,
.ppabsage-wrap .ppabsage-remove-row:focus-visible {
  background: var(--ppabsage-error-soft);
  border-color: var(--ppabsage-error);
  outline: none;
}

.ppabsage-wrap .ppabsage-add-row {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
  padding: 10px 18px;
  border-radius: 999px;
  border: 1px solid #98bcc1;
  background: #ffffff;
  color: var(--ppabsage-brand-deep);
  font: inherit;
  font-weight: 700;
  font-size: 0.95rem;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.ppabsage-wrap .ppabsage-add-row:hover,
.ppabsage-wrap .ppabsage-add-row:focus-visible {
  background: var(--ppabsage-brand-soft);
  border-color: var(--ppabsage-brand);
  outline: none;
}

.ppabsage-wrap .ppabsage-add-row[disabled] {
  opacity: 0.5;
  cursor: not-allowed;
}

/* ============================================================
   DATENSCHUTZ-CHECKBOX
   ============================================================ */
.ppabsage-wrap .ppabsage-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
  font-size: 0.98rem;
  color: var(--ppabsage-text);
}

.ppabsage-wrap .ppabsage-check input[type="checkbox"] {
  width: 20px;
  height: 20px;
  margin: 2px 0 0;
  accent-color: var(--ppabsage-brand);
  flex: 0 0 auto;
}

.ppabsage-wrap .ppabsage-check input[type="checkbox"]:focus-visible {
  outline: 3px solid var(--ppabsage-brand);
  outline-offset: 2px;
}

/* ============================================================
   ABSENDEN
   ============================================================ */
.ppabsage-wrap .ppabsage-submit-row {
  margin-top: 6px;
}

.ppabsage-wrap .ppabsage-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 52px;
  padding: 12px 22px;
  border-radius: 12px;
  border: 1px solid transparent;
  font: inherit;
  font-size: 1.05rem;
  font-weight: 800;
  color: #ffffff;
  background: linear-gradient(135deg, var(--ppabsage-brand), #2f7880);
  box-shadow: 0 10px 22px rgba(15, 91, 99, 0.22);
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.ppabsage-wrap .ppabsage-submit:hover,
.ppabsage-wrap .ppabsage-submit:focus-visible {
  background: linear-gradient(135deg, var(--ppabsage-brand-hover), #256b72);
  transform: translateY(-1px);
  box-shadow: 0 14px 26px rgba(15, 91, 99, 0.28);
  outline: none;
}

.ppabsage-wrap .ppabsage-submit[disabled] {
  opacity: 0.65;
  cursor: wait;
  transform: none;
}

/* ============================================================
   HONEYPOT (unsichtbar für Menschen)
   ============================================================ */
.ppabsage-wrap .ppabsage-hp {
  position: absolute !important;
  left: -9999px !important;
  top: -9999px !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* ============================================================
   ERFOLGS- UND FEHLERBOXEN
   ============================================================ */
.ppabsage-wrap .ppabsage-success,
.ppabsage-wrap .ppabsage-alert {
  border-radius: 16px;
  padding: 24px 22px;
  margin-bottom: 20px;
  box-shadow: var(--ppabsage-shadow-sm);
}

.ppabsage-wrap .ppabsage-success {
  background: var(--ppabsage-success-soft);
  border: 1px solid #bfe3c6;
}

.ppabsage-wrap .ppabsage-success h2 {
  margin: 0 0 8px;
  font-size: 1.3rem;
  font-weight: 800;
  color: var(--ppabsage-success);
}

.ppabsage-wrap .ppabsage-success p {
  margin: 0 0 12px;
  color: var(--ppabsage-muted);
  line-height: 1.6;
}

.ppabsage-wrap .ppabsage-summary {
  margin: 0 0 14px;
  padding: 14px 16px;
  list-style: none;
  background: #ffffff;
  border: 1px solid #d5ecda;
  border-radius: 12px;
}

.ppabsage-wrap .ppabsage-summary li {
  margin-bottom: 8px;
  color: var(--ppabsage-muted);
  line-height: 1.55;
}

.ppabsage-wrap .ppabsage-summary li:last-child {
  margin-bottom: 0;
}

.ppabsage-wrap .ppabsage-summary strong {
  color: var(--ppabsage-text);
}

.ppabsage-wrap .ppabsage-alert-error {
  background: var(--ppabsage-error-soft);
  border: 1px solid #ecc8c3;
}

.ppabsage-wrap .ppabsage-alert-error h2 {
  margin: 0 0 8px;
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--ppabsage-error);
}

.ppabsage-wrap .ppabsage-alert-error p {
  margin: 0 0 10px;
  color: var(--ppabsage-muted);
  line-height: 1.6;
}

.ppabsage-wrap .ppabsage-box-phones a {
  color: var(--ppabsage-brand) !important;
  font-weight: 700;
  text-decoration: none !important;
}

.ppabsage-wrap .ppabsage-box-phones a:hover {
  text-decoration: underline !important;
}

/* ============================================================
   WIZARD: FORTSCHRITTSANZEIGE UND SCHRITTE (ab 0.3.0)
   ============================================================ */
.ppabsage-wrap .ppabsage-progress {
  background: var(--ppabsage-surface);
  border: 1px solid var(--ppabsage-border);
  border-radius: 16px;
  box-shadow: var(--ppabsage-shadow-sm);
  padding: 14px 16px;
  margin-bottom: 16px;
}

.ppabsage-wrap .ppabsage-progress-steps {
  display: flex;
  justify-content: space-between;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ppabsage-wrap .ppabsage-progress-item {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 4px 6px;
  border: 0;
  background: transparent;
  font: inherit;
  cursor: default;
  color: var(--ppabsage-muted);
  border-radius: 10px;
}

.ppabsage-wrap .ppabsage-progress-item:disabled {
  color: #5a737a;
}

.ppabsage-wrap li.is-done .ppabsage-progress-item {
  cursor: pointer;
  opacity: 1;
}

.ppabsage-wrap li.is-done .ppabsage-progress-item:hover,
.ppabsage-wrap li.is-done .ppabsage-progress-item:focus-visible {
  background: var(--ppabsage-brand-soft);
  outline: none;
}

.ppabsage-wrap .ppabsage-progress-num {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 0.95rem;
  background: var(--ppabsage-border-soft);
  color: var(--ppabsage-muted);
  transition: background 0.25s ease, color 0.25s ease;
}

.ppabsage-wrap li.is-current .ppabsage-progress-num {
  background: var(--ppabsage-brand);
  color: #ffffff;
}

.ppabsage-wrap li.is-done .ppabsage-progress-num {
  background: var(--ppabsage-brand-soft);
  color: var(--ppabsage-brand-deep);
}

.ppabsage-wrap .ppabsage-progress-label {
  font-size: 0.9rem;
  font-weight: 700;
}

.ppabsage-wrap li.is-current .ppabsage-progress-label {
  color: var(--ppabsage-text);
}

.ppabsage-wrap .ppabsage-progress-track {
  position: relative;
  margin-top: 12px;
  height: 9px;
  border-radius: 999px;
  background: var(--ppabsage-border-soft);
  overflow: hidden;
}

.ppabsage-wrap .ppabsage-progress-fill {
  position: relative;
  display: block;
  height: 100%;
  width: 0;
  border-radius: 999px;
  overflow: hidden;
  background: linear-gradient(90deg, var(--ppabsage-brand), #2f7880 55%, #4ba7b0);
  box-shadow: 0 0 10px rgba(47, 120, 128, 0.55);
  transition: width 0.45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.3s ease;
}

/* Lauflicht: wandernder heller Streifen im gefüllten Teil (0.9.0) */
.ppabsage-wrap .ppabsage-progress-shine {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 90px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.55), rgba(255, 255, 255, 0));
  animation: ppabsageShine 2.4s ease-in-out infinite;
}

@keyframes ppabsageShine {
  0%   { transform: translateX(-100px); opacity: 0; }
  35%  { opacity: 1; }
  100% { transform: translateX(560px); opacity: 0; }
}

/* Kurzer Leucht-Impuls, sobald der Balken wächst (JS setzt .is-puls) */
.ppabsage-wrap .ppabsage-progress.is-puls .ppabsage-progress-fill {
  animation: ppabsagePulsGlow 0.9s ease-out;
}

@keyframes ppabsagePulsGlow {
  0%   { box-shadow: 0 0 10px rgba(47, 120, 128, 0.55); }
  35%  { box-shadow: 0 0 20px 4px rgba(75, 167, 176, 0.85); }
  100% { box-shadow: 0 0 10px rgba(47, 120, 128, 0.55); }
}

.ppabsage-wrap .ppabsage-progress.is-voll .ppabsage-progress-fill {
  background: linear-gradient(90deg, var(--ppabsage-brand), #1e7e34 90%);
  box-shadow: 0 0 16px rgba(30, 126, 52, 0.55);
}

/* Meta-Zeile unter dem Balken: "Schritt 3 von 5" und "60 % geschafft" */
.ppabsage-wrap .ppabsage-progress-meta {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
  margin-top: 8px;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--ppabsage-muted);
}

.ppabsage-wrap .ppabsage-progress-pct {
  color: var(--ppabsage-brand-deep);
}

.ppabsage-wrap .ppabsage-progress.is-voll .ppabsage-progress-pct {
  color: #1e7e34;
}

@media (prefers-reduced-motion: reduce) {
  .ppabsage-wrap .ppabsage-progress-fill,
  .ppabsage-wrap .ppabsage-progress.is-puls .ppabsage-progress-fill {
    transition: none !important;
    animation: none !important;
  }

  .ppabsage-wrap .ppabsage-progress-shine {
    display: none;
  }
}

/* Schritte: NUR im aktiven Wizard-Modus ein-/ausgeblendet.
   Ohne JS gibt es die Klasse nicht, alles bleibt sichtbar. */
.ppabsage-wrap .ppabsage-wizard-active .ppabsage-step {
  display: none;
}

.ppabsage-wrap .ppabsage-wizard-active .ppabsage-step.is-active {
  display: block;
  animation: ppabsageStepIn 0.25s ease;
}

@keyframes ppabsageStepIn {
  from { opacity: 0; transform: translateX(14px); }
  to   { opacity: 1; transform: none; }
}

.ppabsage-wrap .ppabsage-step-title {
  margin: 0 0 14px;
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--ppabsage-text);
  outline: none;
}

/* Wizard-Navigation */
.ppabsage-wrap .ppabsage-wizard-nav {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-top: 18px;
}

.ppabsage-wrap .ppabsage-wizard-nav [hidden] {
  display: none !important;
}

.ppabsage-wrap .ppabsage-btn-back,
.ppabsage-wrap .ppabsage-btn-next {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  min-width: 120px;
  padding: 10px 22px;
  border-radius: 12px;
  font: inherit;
  font-weight: 800;
  font-size: 1rem;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.ppabsage-wrap .ppabsage-btn-back {
  background: #ffffff;
  border: 1px solid #98bcc1;
  color: var(--ppabsage-brand-deep);
}

.ppabsage-wrap .ppabsage-btn-back:hover,
.ppabsage-wrap .ppabsage-btn-back:focus-visible {
  background: var(--ppabsage-brand-soft);
  border-color: var(--ppabsage-brand);
  outline: none;
}

.ppabsage-wrap .ppabsage-btn-next {
  margin-left: auto;
  background: linear-gradient(135deg, var(--ppabsage-brand), #2f7880);
  border: 1px solid transparent;
  color: #ffffff;
  box-shadow: 0 10px 22px rgba(15, 91, 99, 0.22);
}

.ppabsage-wrap .ppabsage-btn-next:hover,
.ppabsage-wrap .ppabsage-btn-next:focus-visible {
  background: linear-gradient(135deg, var(--ppabsage-brand-hover), #256b72);
  outline: none;
}

/* ============================================================
   DATEPICKER (ab 0.4.0, fest deutsch, ersetzt native UI im JS-Modus)
   ============================================================ */
.ppabsage-wrap .ppabsage-date-display {
  cursor: pointer;
  padding-right: 40px;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f5c63' stroke-width='2'%3E%3Crect x='3' y='5' width='18' height='16' rx='3'/%3E%3Cpath d='M16 3v4M8 3v4M3 11h18'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 18px 18px;
}

.ppabsage-wrap .ppabsage-dp {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 50;
  width: 302px;
  max-width: 100%;
  background: var(--ppabsage-surface);
  border: 1px solid var(--ppabsage-border);
  border-radius: 14px;
  box-shadow: var(--ppabsage-shadow);
  padding: 12px;
}

.ppabsage-wrap .ppabsage-dp-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}

.ppabsage-wrap .ppabsage-dp-title {
  font-weight: 800;
  font-size: 0.98rem;
  color: var(--ppabsage-text);
}

.ppabsage-wrap .ppabsage-dp-prev,
.ppabsage-wrap .ppabsage-dp-next {
  width: 40px;
  height: 40px;
  border: 1px solid var(--ppabsage-border);
  border-radius: 10px;
  background: #ffffff;
  color: var(--ppabsage-brand);
  font-size: 1.2rem;
  line-height: 1;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.ppabsage-wrap .ppabsage-dp-prev:hover:not([disabled]),
.ppabsage-wrap .ppabsage-dp-next:hover:not([disabled]),
.ppabsage-wrap .ppabsage-dp-prev:focus-visible,
.ppabsage-wrap .ppabsage-dp-next:focus-visible {
  background: var(--ppabsage-brand-soft);
  border-color: var(--ppabsage-brand);
  outline: none;
}

.ppabsage-wrap .ppabsage-dp-prev[disabled] {
  opacity: 0.4;
  cursor: default;
}

.ppabsage-wrap .ppabsage-dp-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
}

.ppabsage-wrap .ppabsage-dp-wd {
  text-align: center;
  font-size: 0.75rem;
  font-weight: 800;
  color: var(--ppabsage-muted-soft);
  padding: 6px 0;
}

.ppabsage-wrap .ppabsage-dp-day {
  min-width: 40px;
  min-height: 40px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  font: inherit;
  font-size: 0.92rem;
  color: var(--ppabsage-text);
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}

.ppabsage-wrap .ppabsage-dp-day:hover:not(.is-disabled),
.ppabsage-wrap .ppabsage-dp-day:focus-visible {
  background: var(--ppabsage-brand-soft);
  outline: none;
}

.ppabsage-wrap .ppabsage-dp-day.is-today {
  box-shadow: inset 0 0 0 1px var(--ppabsage-brand);
}

.ppabsage-wrap .ppabsage-dp-day.is-selected {
  background: var(--ppabsage-brand);
  color: #ffffff;
  font-weight: 800;
}

.ppabsage-wrap .ppabsage-dp-day.is-disabled {
  color: #5f7a80;
  cursor: default;
}

/* ============================================================
   KURS-SLOT-CHIPS (ab 0.6.0)
   ============================================================ */
.ppabsage-wrap .ppabsage-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}

.ppabsage-wrap .ppabsage-chips-hint {
  font-size: 0.9rem;
  color: var(--ppabsage-muted-soft);
  padding: 6px 0;
}

.ppabsage-wrap .ppabsage-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 16px;
  border-radius: 10px;
  border: 2px solid var(--ppabsage-border-soft);
  background: var(--ppabsage-surface-soft);
  font: inherit;
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--ppabsage-text);
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.ppabsage-wrap .ppabsage-chip:hover {
  border-color: var(--ppabsage-brand);
  background: var(--ppabsage-brand-soft);
}

.ppabsage-wrap .ppabsage-chip:focus-visible {
  outline: 3px solid var(--ppabsage-brand);
  outline-offset: 2px;
}

.ppabsage-wrap .ppabsage-chip.is-selected {
  border-color: var(--ppabsage-brand);
  background: var(--ppabsage-brand);
  color: #ffffff;
}

/* ============================================================
   CTA-BUTTONS IM ERFOLGS-SCREEN (ab 0.6.0)
   ============================================================ */
.ppabsage-wrap .ppabsage-ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  margin: 20px 0 8px;
}

.ppabsage-wrap .ppabsage-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 12px 26px;
  border-radius: 12px;
  font-size: 1rem;
  font-weight: 800;
  text-decoration: none !important;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.ppabsage-wrap .ppabsage-cta--primary {
  background: linear-gradient(135deg, var(--ppabsage-brand), #2f7880);
  border: 1px solid transparent;
  color: #ffffff !important;
  box-shadow: 0 10px 22px rgba(15, 91, 99, 0.22);
}

.ppabsage-wrap .ppabsage-cta--primary:hover,
.ppabsage-wrap .ppabsage-cta--primary:focus-visible {
  background: linear-gradient(135deg, var(--ppabsage-brand-hover), #256b72);
  color: #ffffff !important;
  transform: translateY(-1px);
  outline: none;
}

.ppabsage-wrap .ppabsage-cta--ghost {
  background: #ffffff;
  border: 1px solid #98bcc1;
  color: var(--ppabsage-brand-deep) !important;
}

.ppabsage-wrap .ppabsage-cta--ghost:hover,
.ppabsage-wrap .ppabsage-cta--ghost:focus-visible {
  background: var(--ppabsage-brand-soft);
  border-color: var(--ppabsage-brand);
  outline: none;
}

/* ============================================================
   NOTFALL-HINWEIS UND PFLICHT-HIGHLIGHT (ab 0.4.0)
   ============================================================ */
.ppabsage-wrap .ppabsage-notfall-hint {
  margin: 8px 0 0;
  padding: 10px 14px;
  background: #fdf3d7;
  border: 1px solid #e8d48b;
  border-radius: 10px;
  color: #6b5300;
  font-size: 0.9rem;
  line-height: 1.5;
}

.ppabsage-wrap .ppabsage-notfall-hint[hidden] {
  display: none !important;
}

.ppabsage-wrap .ppabsage-input.ppabsage-highlight {
  border-color: #b7791f;
  background: #fffdf5;
  box-shadow: 0 0 0 3px rgba(183, 121, 31, 0.12);
}

/* ============================================================
   ERFOLGS-KARTE (ab 0.4.0)
   ============================================================ */
.ppabsage-wrap .ppabsage-success {
  text-align: center;
  padding: 34px 24px;
}

.ppabsage-wrap .ppabsage-success-icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 14px;
  color: var(--ppabsage-brand);
  animation: ppabsagePop 0.45s ease;
}

.ppabsage-wrap .ppabsage-success-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

@keyframes ppabsagePop {
  from { transform: scale(0.55); opacity: 0; }
  to   { transform: scale(1); opacity: 1; }
}

.ppabsage-wrap .ppabsage-success .ppabsage-summary {
  text-align: left;
  max-width: 480px;
  margin: 0 auto 16px;
}

.ppabsage-wrap .ppabsage-success .ppabsage-telcards {
  max-width: 560px;
  margin: 10px auto 0;
  text-align: left;
}

/* ============================================================
   RESPONSIVE (ab 640px zweispaltig)
   ============================================================ */
@media (min-width: 640px) {
  .ppabsage-wrap .ppabsage-grid-2 {
    grid-template-columns: 1fr 1fr;
  }

  .ppabsage-wrap .ppabsage-telcards {
    grid-template-columns: 1fr 1fr;
  }

  .ppabsage-wrap .ppabsage-cards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .ppabsage-wrap .ppabsage-submit {
    width: auto;
    min-width: 260px;
  }

  .ppabsage-wrap .ppabsage-form {
    padding: 34px 30px;
  }
}

/* Wizard auf Mobile: Fortschritt sticky, Labels nur am aktiven Schritt */
@media (max-width: 640px) {
  .ppabsage-wrap .ppabsage-progress {
    position: sticky;
    top: 0;
    z-index: 30;
  }

  .ppabsage-wrap .ppabsage-progress-item {
    padding: 4px;
  }

  .ppabsage-wrap .ppabsage-progress-label {
    display: none;
  }

  .ppabsage-wrap li.is-current .ppabsage-progress-label {
    display: inline;
  }

  .ppabsage-wrap .ppabsage-btn-back,
  .ppabsage-wrap .ppabsage-btn-next {
    flex: 1;
  }

  .ppabsage-wrap .ppabsage-ctas {
    flex-direction: column;
  }

  .ppabsage-wrap .ppabsage-cta {
    width: 100%;
  }
}

@media (max-width: 639px) {
  .ppabsage-wrap .ppabsage-remove-row {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ppabsage-wrap .ppabsage-input,
  .ppabsage-wrap .ppabsage-card,
  .ppabsage-wrap .ppabsage-radio-inline,
  .ppabsage-wrap .ppabsage-submit,
  .ppabsage-wrap .ppabsage-add-row,
  .ppabsage-wrap .ppabsage-remove-row,
  .ppabsage-wrap .ppabsage-tel,
  .ppabsage-wrap .ppabsage-progress-num,
  .ppabsage-wrap .ppabsage-progress-fill,
  .ppabsage-wrap .ppabsage-btn-back,
  .ppabsage-wrap .ppabsage-btn-next {
    transition: none !important;
    transform: none !important;
  }

  .ppabsage-wrap .ppabsage-wizard-active .ppabsage-step.is-active {
    animation: none !important;
  }

  .ppabsage-wrap .ppabsage-success-icon {
    animation: none !important;
  }
}

/* ==================================================================
   Mailbox nur im geschlossenen Zustand (0.8.1, GF): Die Zeile ist
   der Hinweis „trotzdem erreichbar“, offen braucht es sie nicht.
   ================================================================== */
.ppabsage-wrap .ppabsage-telcard-mailbox {
  display: none;
}

.ppabsage-wrap .ppabsage-telcard:has(.ppabsage-telcard-status--zu) .ppabsage-telcard-mailbox {
  display: flex;
}

/* ==================================================================
   FREMD-RESET (0.9.0) — der EINZIGE ungescopte Block dieser Datei.
   ------------------------------------------------------------------
   HERKUNFT: Theme hello-elementor 3.4.5,
   wp-content/themes/hello-elementor/assets/css/reset.css. Dort steht
   im Knopf-Block (derselbe, der auch den Rahmen #c36 setzt — gegen
   dessen Farbhälfte kämpft ppw-footer.css seit 0.3.3):

       [type="button"], [type="submit"], button { … white-space: nowrap }

   Die Regel gehört NICHT uns: die Datei ist nicht versioniert, liegt
   nicht im Deploy und käme beim nächsten Theme-Update zurück. Sie dort
   zu löschen oder einzugrenzen ist deshalb kein haltbarer Weg — wir
   holen stattdessen an genau einer Stelle den Browser-Default zurück.

   WIRKUNG DES ORIGINALS: kein Knopftext konnte umbrechen, also wurde
   der längste Text zum min-content-Wert seines Containers. In einer
   Grid-Spur `1fr` (= minmax(auto,1fr), das AUTO-Minimum!) sprengt
   dieser Wert die Spur über die Containerbreite hinaus.

   WARUM HIER: unsere drei global geladenen Stylesheets sind
   ppw-absage, ppw-shop und ppw-termine (Termine ist gesperrt, Shop
   ruht). Von diesen dreien ist ppw-absage das gepflegteste.

   RÜCKBAUWEG — Notiz am 2026-08-13 KORRIGIERT (bitte lesen, bevor
   jemand den Block „aufräumt"):
   Hier stand bis 0.9.0, ppw-base.css wäre der richtige Ort und dieser
   Block könne dorthin wandern, sobald ppw-base wiederbelebt sei. Das
   ist FALSCH und würde die Korrektur auf 26 Seiten schrumpfen.
   Grund: pp-seiten.php bindet ppw-base.css NICHT global ein. Der Lader
   steigt zuerst bei !is_singular() aus und danach bei jeder Seite, die
   keinen [pp_seite]-Shortcode trägt — ppw-base lädt also ausschließlich
   auf den 26 Sonderseiten des Plugins. Der Theme-nowrap trifft dagegen
   JEDEN Knopf der ganzen Website: Kopf- und Fußzeile, Cookie-Banner,
   Formulare, Blog, Shop. Ein Reset dort wäre auf allen übrigen Seiten
   wirkungslos, und zwar lautlos.
   Der Block bleibt deshalb vorerst genau hier. Er darf nur in ein
   Stylesheet umziehen, das nachweislich auf ALLEN Frontend-Seiten lädt
   (heute: ppw-absage, ppw-shop, ppw-termine) — nicht in ppw-base.css,
   auch nicht nach deren Wiederbelebung. Der Riegel dazu:
   tests/test-fremd-reset.php (A4 prüft, dass im Enqueue kein
   Seiten-Vorbehalt steht).
   Randnotiz zum Zustand von ppw-base.css: die Datei ist bis heute der
   ausgelieferte Platzhalter (316 Byte, unter der 400-Byte-Schwelle des
   Laders), weshalb dort ohnehin nichts ankäme. Das ist ein zweiter,
   davon unabhängiger Befund — siehe ../STATUS.md, Eintrag 2026-08-13.

   KEIN !important: die drei Selektoren sind spezifitätsgleich mit dem
   Original (0,1,0 bzw. 0,0,1) und stehen in der Ladereihenfolge nach
   dem Theme — Quellreihenfolge genügt. Gewollte Einzeiler deklarieren
   ihr nowrap selbst und sind spezifischer; sie gewinnen weiter (live
   geprüft: .ppanfrage-btn-back/-next, .faq-chip, .faq-tool-btn sowie
   die Complianz-Cookie-Knöpfe behalten ihren Einzeiler).

   NUR white-space: keine weitere Eigenschaft des Theme-Blocks wird
   angefasst (Rahmen, Farbe, Polster, Transition bleiben unberührt).

   VERERBUNG BEACHTEN: `white-space` wird VERERBT. Der Theme-nowrap
   schützte deshalb nicht nur den Knopftext selbst, sondern jedes
   Inline-Kind ohne eigene Deklaration; diese Regel macht folglich
   auch alle Kind-Elemente umbruchfähig. Wer einen Knopf-Innenteil
   zwingend einzeilig braucht, deklariert das nowrap AM KIND (Muster:
   header-footer/ppw-footer.css `.pp-toggle-text`, das seinen
   Einzeiler selbst setzt und daher unberührt bleibt — im Gegensatz
   zu `.pp-float-kbtn .lb`, das seinen Schutz bisher ausschließlich
   vom Theme-Block bezog; dort ist der Platz mit rund 97 px Spur zu
   rund 48 px Label so reichlich, dass kein Umbruch entstehen kann).

   GELTUNGSBEREICH: nur Knöpfe. <a>-CTAs mit eigenem nowrap
   (ppw-longcovid.css, ppw-cmd.css u. a.) erreicht diese Regel nicht.
   ================================================================== */
[type="button"],
[type="submit"],
button {
  white-space: normal;
}
