@font-face{font-family:'Manrope';src:url('manrope-latin-400-normal.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Manrope';src:url('manrope-latin-500-normal.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap;}
@font-face{font-family:'Manrope';src:url('manrope-latin-700-normal.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:'Manrope';src:url('manrope-latin-800-normal.woff2') format('woff2');font-weight:800;font-style:normal;font-display:swap;}
@font-face{font-family:'Instrument Sans';src:url('instrument-sans-latin-400-normal.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Instrument Sans';src:url('instrument-sans-latin-500-normal.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap;}
@font-face{font-family:'Instrument Sans';src:url('instrument-sans-latin-600-normal.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap;}
@font-face{font-family:'Instrument Sans';src:url('instrument-sans-latin-700-normal.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;}
/* headings tracking wie Live (-2px @ grosse Headings) */
h1,h2,h3,.wp-block-heading{letter-spacing:-0.02em;}
/* Button-Radius wie Live (8px) */
.wp-block-button__link{border-radius:8px;}
/* Karten wie Live: gerundet + feine Kante (globale .ucw-card; Inline-BG bleibt massgeblich) */
.ucw-card{border-radius:16px;box-shadow:0 0 0 1px #eceff3;}
/* Team-/Portraitfotos: gerundete Rechtecke wie Live (nicht Kreis) */
.wp-block-image.is-style-rounded img{border-radius:16px;}

/* Header invertiert wie Live: blauer Balken (Nav/Logo/Telefon weiss via Astra) */
.ast-primary-header-bar, .main-header-bar, .ast-mobile-header-content { background-color:#0069b4 !important; }
.main-header-menu .menu-item.current-menu-item > a { color:#0069b4 !important; background:#ffffff; border-radius:6px; }

/* --- AP-11: CF7-Formulare (Befund/Rezept) — linksbuendig, Marke #0069b4, Radius 8px --- */
.ucw-form{max-width:640px;}
.ucw-form p{margin:0 0 18px;}
.ucw-form label{display:block;font-weight:500;color:#333;margin-bottom:4px;}
.ucw-form .ucw-fieldlabel{font-weight:500;color:#333;margin:0 0 4px;}
.wpcf7-form input[type=text],
.wpcf7-form input[type=tel],
.wpcf7-form input[type=email],
.wpcf7-form input[type=date],
.wpcf7-form input[type=number],
.wpcf7-form select,
.wpcf7-form textarea{
  width:100%;box-sizing:border-box;padding:12px 14px;margin-top:2px;
  border:1px solid #d5dbe2;border-radius:8px;background:#fff;color:#333;
  font-family:inherit;font-size:16px;line-height:1.4;transition:border-color .15s,box-shadow .15s;}
.wpcf7-form textarea{min-height:120px;resize:vertical;}
.wpcf7-form input:focus,.wpcf7-form select:focus,.wpcf7-form textarea:focus{
  outline:none;border-color:#0069b4;box-shadow:0 0 0 3px rgba(0,105,180,.15);}
.wpcf7-form .wpcf7-radio .wpcf7-list-item{display:inline-block;margin:4px 20px 4px 0;}
.wpcf7-form .wpcf7-radio input{margin-right:6px;}
.ucw-consent{font-size:14px;color:#555;}
.ucw-consent .wpcf7-list-item{margin:0;}
.ucw-consent label{display:flex;gap:10px;align-items:flex-start;font-weight:400;color:#555;}
.ucw-consent input[type=checkbox]{margin-top:3px;flex:0 0 auto;width:18px;height:18px;accent-color:#0069b4;}
.wpcf7-form .wpcf7-submit{
  background:#1F286C;color:#fff;border:none;border-radius:8px;
  padding:14px 28px;font-family:inherit;font-size:16px;font-weight:600;cursor:pointer;
  width:auto;transition:background .15s;}
.wpcf7-form .wpcf7-submit:hover{background:#0069b4;}
.wpcf7-form .wpcf7-spinner{margin:6px 0 0 12px;}
.wpcf7-form .wpcf7-not-valid-tip{color:#c0392b;font-size:13px;margin-top:4px;}
.wpcf7-form .wpcf7-not-valid{border-color:#c0392b !important;}
.wpcf7 .wpcf7-response-output{border-radius:8px;padding:12px 16px;margin:18px 0 0;font-size:15px;}

/* --- Hero-Monogramm rechts (wie Live, UC-Mark) — rein dekorativ, nur Desktop.
   Trifft NUR echte Hero-Bloecke: blauer Vollbreiten-Group mit direktem H1 (:has),
   nicht den Kontakt-Blaublock (h2). Asset liegt neben dieser CSS (go-live-pfadstabil). --- */
.wp-block-group.alignfull.has-background[style*="0069b4"]:has(> h1){position:relative;overflow:hidden;}
.wp-block-group.alignfull.has-background[style*="0069b4"]:has(> h1)::after{
  content:"";position:absolute;top:50%;transform:translateY(-50%);
  right:max(24px,calc((100% - 1400px)/2));
  width:clamp(96px,9vw,150px);aspect-ratio:1/1;
  background:url(ucw-monogram.webp) no-repeat center center;background-size:contain;
  pointer-events:none;z-index:0;}
.wp-block-group.alignfull.has-background[style*="0069b4"]:has(> h1) > *{position:relative;z-index:1;}
@media (max-width:921px){.wp-block-group.alignfull.has-background[style*="0069b4"]:has(> h1)::after{display:none;}}

/* --- Diagnostik-Checkliste (blaue Box, weisse Haken) wie Live --- */
.ucw-checklist ul.wp-block-list{list-style:none;margin:0;padding:0;}
.ucw-checklist ul.wp-block-list li{position:relative;padding-left:1.9em;margin:.5em 0;line-height:1.4;}
.ucw-checklist ul.wp-block-list li::before{content:"\2713";position:absolute;left:0;top:0;color:#fff;font-weight:700;}

/* --- Dropdown-Untermenü lesbar (wie Live: grau #73748c auf weiss, Hover blau); Fix: weisse Kopf-Nav-Farbe
   vererbte sich ins weisse Untermenü = unsichtbar --- */
.main-header-menu .sub-menu a,
.ast-nav-menu .sub-menu a,
.main-header-menu .sub-menu .menu-link{color:#73748c !important;}
.main-header-menu .sub-menu a:hover,
.main-header-menu .sub-menu a:focus,
.ast-nav-menu .sub-menu a:hover,
.main-header-menu .sub-menu .menu-item:hover > a{color:#0069b4 !important;background-color:#f6f7f8 !important;}

/* --- Hero-Textspalte schmaler wie Live: Subtext bricht in ~3 Zeilen, Spalte linksbündig
   an der Content-Kante (nur der echte Bild-Hero mit direktem H1). --- */
.wp-block-cover:has(> .wp-block-cover__inner-container > h1) .wp-block-cover__inner-container{
  max-width:1400px !important; margin-left:auto !important; margin-right:auto !important;
}
.wp-block-cover:has(> .wp-block-cover__inner-container > h1) .wp-block-cover__inner-container > *{
  max-width:660px !important; margin-left:0 !important; margin-right:auto !important;
}
@media (max-width:921px){
  .wp-block-cover:has(> .wp-block-cover__inner-container > h1) .wp-block-cover__inner-container > *{
    max-width:100% !important;
  }
}

/* --- Footer 1-Spalten-Grid full-width erzwingen (AP-9b 2026-07-25):
   Astra cachte grid-template-columns:675px 675px vom alten 2-Spalten-Footer;
   nach hb-footer-column=1 muss die einzige Spalte die volle Content-Breite (1400) fuellen,
   damit die Live-Reihe Logo+Tel | Adresse | Oeffnungszeiten in EINER Reihe steht. --- */
.site-footer .ast-builder-footer-grid-columns.site-primary-footer-inner-wrap{
  grid-template-columns:1fr !important;
}

/* ============================================================
   AP-9b · Schritt-2 UX-Optimierungs-Pass (2026-07-25) — page-scoped,
   keine ungescopeten Allregeln (kein Cross-Page-Effekt). Tokens unveraendert.
   ============================================================ */

/* R1 · Start (86) Diagnostik: rechte Checklisten-Box auf Bildhoehe bringen
   (equal-height), Inhalt vertikal zentriert -> Symmetrie Bild <-> Box. */
body.page-id-86 .wp-block-columns:has(.ucw-checklist){align-items:stretch;}
body.page-id-86 .wp-block-columns:has(.ucw-checklist) > .wp-block-column.is-vertically-aligned-center{align-self:stretch;}
body.page-id-86 .ucw-checklist{display:flex;flex-direction:column;justify-content:center;height:100%;box-sizing:border-box;}

/* R6 · Raeumlichkeiten (82): dominantes Intro-Foto (id 52, 1920x850) maszvoll
   begrenzen (behalten, aber nicht erschlagend). */
body.page-id-82 img.wp-image-52{max-height:440px;width:100%;object-fit:cover;display:block;}

/* R3 · Impressum & Datenschutz (85): ruhige Zeilenhoehe fuer die langen Rechtstexte.
   AP-15 (26.07.): die frueheren `max-width:72ch` + `margin-left:0` sind ENTFALLEN —
   die Zeilenbreite kommt jetzt aus der projektweiten Measure-Regel unten (36em).
   Grund: `ch` = Breite der Ziffer 0 (in Manrope 0.61em) -> 72ch waren real 88 Zeichen. */
body.page-id-85 .entry-content p.wp-block-paragraph{line-height:1.6;}

/* R3 · Befund (83) & Rezept (84): Formular-Panel auf angenehme Breite begrenzen
   (linksbuendig, fokussierter). Abschluss-Karten Telefon|E-Mail equal-height. */
/* KORREKTUR 2026-08-17 (Kundenmeldung /rezept-zusenden/):
   `margin-left:0` war eine Buendigkeit MIT den Alternative-Karten der zweiten Spalte.
   Die Spalte wurde am 04.08.2026 entfernt (Mailto-Block, Praxis-Wunsch) -> das Panel hing
   linksbuendig (Mitte 687) unter zentrierten Ueberschriften (Mitte 953).
   Jetzt `margin-inline:auto`: 820px Zeilenlaenge aus AP-9b bleibt, Panel sitzt mittig.
   Die `align-items:stretch`-Regel darunter ist seit dem 04.08. wirkungslos (Columns hat
   nur noch 1 Spalte) - sie bleibt als Safeguard stehen, falls wieder zweispaltig gebaut wird. */
body.page-id-83 .wp-block-group.ucw-card:has(.wpcf7),
body.page-id-84 .wp-block-group.ucw-card:has(.wpcf7){max-width:820px;margin-inline:auto !important;}


/* AP-14 · Kontakt (79), 2026-07-26: Seite an das Sektionsmuster der uebrigen Seiten
   angeglichen (blauer Hero -> weisz -> #f6f7f8 -> weisz, Tel/E-Mail als Typografie
   statt H2). Die AP-9b-Regeln fuer das durchgehende blaue Band (Links-Ausrichtung im
   Blaublock, Hero-Bottom 40px, Band-Top 36px) sind damit gegenstandslos und ENTFERNT —
   der Hero traegt wieder das Familien-Padding 72/72 wie Team (78)/Raeumlichkeiten (82). */
/* AP-15 (26.07.): Der hier notierte Verzicht auf eine measure-Regel ist AUFGEHOBEN.
   Die projektweite Measure-Regel am Dateiende loest den alignfull-Konflikt sauber
   (Anker-Margin statt margin-left:0) — siehe Block "AP-15 MEASURE". */
body.page-id-79 .entry-content p.wp-block-paragraph{line-height:1.6;}
/* Kontakt-Kacheln (Adresse|Telefon|E-Mail) auf gleiche Hoehe, Akzentlinie durchgehend */
body.page-id-79 .wp-block-columns:has(.ucw-contact){align-items:stretch;}
body.page-id-79 .ucw-contact{height:100%;box-sizing:border-box;}
/* Telefon/E-Mail: Prominenz ueber Typografie, ohne Umbruch-Ueberlauf auf Mobil */
body.page-id-79 .ucw-contact a{text-decoration:none;overflow-wrap:anywhere;}
body.page-id-79 .ucw-contact a:hover{text-decoration:underline;}
@media (max-width:921px){
  body.page-id-79 .ucw-contact{margin-bottom:28px;}
  body.page-id-79 .ucw-contact p[style*="36px"]{font-size:30px !important;}
  body.page-id-79 .ucw-contact p[style*="24px"]{font-size:20px !important;}
}


/* ============================================================
   AP-15 · MEASURE — lesbare Zeilenlaenge PROJEKTWEIT (2026-07-26)
   Nutzer-Entscheid 26.07.: "Die Breite muessen wir klaeren: das ist kaum lesbar."
   Vorher: Fliesstext lief ueber die volle Containerbreite 1400px = 175 Zeichen/Zeile.
   Ziel:   65-75 Zeichen (Messmethode Breite/(fontSize*0.5)).

   MECHANIK — warum genau so:
   1) `max-width:36em` (NICHT px, NICHT ch):
      36em / 0.5em-pro-Zeichen = EXAKT 72 Zeichen, unabhaengig von der Schriftgroesse.
      Damit misst 16px-Text 576px, 24px-Text 864px, 14px-Text 504px — ueberall 72 Zeichen.
      `ch` waere falsch: 1ch = Breite der Ziffer 0 = in Manrope 0.61em -> 72ch = 88 Zeichen.
   2) Anker-Margin statt `margin-left:0`:
      Im Constrained-Layout setzt der Core `margin-inline:auto !important` auf die
      Kinder — eine reine Breitenbegrenzung ZENTRIERT den Absatz also, statt ihn zu
      kuerzen. Der naive Konter `margin-left:0` reisst den Absatz in `alignfull`-
      Sektionen an den VIEWPORT-Rand (dokumentierte AP-14-Sackgasse).
      `max(0px, (100% - content-size)/2)` liefert in BEIDEN Faellen die richtige Kante:
      - alignfull-Sektion (Container > 1400): exakt die Content-Kante, buendig zur H2
      - normale/constrained Sektion oder Spalte (Container <= 1400): 0 = buendig links
      - Mobil (Container < 1400): 0, und 36em greift ohnehin nicht -> mobil unveraendert.
   3) Nur `p` bekommt die Anker-Margin. `li` erbt die Breitenbegrenzung ueber sich
      selbst (Listenmarker/UL bleiben unberuehrt) — sonst wuerde die zentrierte
      Checklisten-Liste auf der Startseite (86) nach links springen.
   4) Karten, Kacheln, Spalten, Bilder, Raster, Cover und der Container (1400) bleiben
      unveraendert — die Regel begrenzt ausschliesslich laufenden Text.
   5) CF7-Formularabsaetze ausgenommen (sonst schrumpfen die Eingabefelder).
   Rueckbau: diesen Block loeschen. ============================================ */
.entry-content p,
.entry-content li{max-width:36em;}
.entry-content .is-layout-constrained > p{
  margin-inline-start:max(0px,(100% - var(--wp--style--global--content-size,1400px))/2) !important;
  margin-inline-end:auto !important;
}
.entry-content .wpcf7-form p,
.entry-content .wpcf7-form li{max-width:none;}


/* AP-15 · Kontakt (79): Praxiseingangs-Foto im Abschnitt "So finden Sie uns"
   (id 132, 1100x1473 Hochformat). Bildstil wie Raeumlichkeiten (82): KEINE Rundung,
   linksbuendig an der Content-Kante, in den Textfluss eingeschoben (zwischen
   "Anreise mit dem Pkw" und "Parkmoeglichkeiten"). Breitencap 400px, damit das
   Hochformat den Abschnitt auflockert statt ihn zu erschlagen; mobil skaliert es
   ueber width:100% mit. */
body.page-id-79 .ucw-anfahrt-bild{margin:8px 0 8px;}
body.page-id-79 .ucw-anfahrt-bild img{max-width:400px;width:100%;height:auto;display:block;}


/* ============================================================
   AP-16 · MOBILE BILD-WEICHE (2026-07-27)
   Nutzer-Meldung 27.07.: "Unter Leistungen sind die Bilder auf Mobile viel zu gross"
   (Startseite + /behandlungen/), Vermutung: betrifft auch andere Seiten, zentral loesbar.

   BEFUND (PM, verifiziert): Es gab bisher KEINE einzige Bildregel in einer Media-Query.
   Betroffene Bilder stehen als alleiniger Inhalt einer Spalte:
     .wp-block-columns > .wp-block-column[style="flex-basis:30%"] > figure.wp-block-image > img
   Auf dem Desktop haelt `flex-basis` die Spalte schmal (127px Startseite / 180px
   Behandlungen). WordPress bricht `wp-block-columns` bei <=781px auf Vollbreite um —
   dann ist `flex-basis` wirkungslos und `.wp-block-image img{max-width:100%}` (Astra
   style.min.css) laesst das Bild die ganze Spalte fuellen: ~350px, also Faktor 2-3.
   Bei Hochformaten (563x729) frisst ein Icon damit >40% der Bildschirmhoehe.

   WARUM STRUKTURELL, NICHT PAUSCHAL: ein globales `img{max-width}` wuerde die
   Vollbreiten-/Cover-Bilder zerstoeren (Raeumlichkeiten-Intro 1920px, 2 Cover-Bloecke
   Startseite). Die Weiche greift deshalb NUR bei "Bild allein in einer Spalte".

   BREAKPOINT 781px, nicht 921px: zwischen 781 und 921 stehen die Spalten noch
   nebeneinander — dort waere eine Deckelung schaedlich.
   Rueckbau: diesen Block loeschen. ============================================ */
@media (max-width:781px){

  /* Icon-/Teaser-Bilder neben Text: deckeln und mittig setzen. */
  .entry-content .wp-block-columns .wp-block-column > figure.wp-block-image img{
    max-width:150px;
    height:auto;
  }
  .entry-content .wp-block-columns .wp-block-column > figure.wp-block-image{
    margin-inline:auto;
    text-align:center;
  }

  /* AUSNAHME Team (78): Portraits sind Inhalt, keine Icons — groesser erlaubt. */
  body.page-id-78 .entry-content .wp-block-columns .wp-block-column > figure.wp-block-image img{
    max-width:260px;
  }

  /* AUSNAHME Raeumlichkeiten (82): Fotos in Spalten sind vollwertige Inhaltsbilder. */
  body.page-id-82 .entry-content .wp-block-columns .wp-block-column > figure.wp-block-image img{
    max-width:100%;
  }

  /* Kontakt (79): Anfahrts-Hochformat mobil zusaetzlich zaehmen (Desktop-Cap 400px). */
  body.page-id-79 .ucw-anfahrt-bild img{max-width:280px;}
  body.page-id-79 .ucw-anfahrt-bild{margin-inline:auto;}
}

/* ============================================================
   AP-16 · WORTTRENNUNG (2026-07-27)
   Nutzer-Screenshot 338px zeigte die H1 mitten im Wort gebrochen:
   "Behandlungsschwerpunk|te". Ursache: `overflow-wrap/word-break:break-word`
   (Astra style.min.css) bricht ohne Ruecksicht auf Silben, sobald ein deutsches
   Kompositum breiter als die Zeile ist. `hyphens:auto` trennt stattdessen an
   erlaubten Stellen MIT Bindestrich (html lang="de-DE" ist gesetzt, greift also).
   `overflow-wrap:break-word` bleibt als Notnagel fuer echte Extremfaelle stehen.
   Rueckbau: diesen Block loeschen. ============================================ */
.entry-content h1,.entry-content h2,.entry-content h3,.entry-content h4,
.wp-block-cover h1,.wp-block-cover h2{
  word-break:normal;
  overflow-wrap:break-word;
  hyphens:auto;
}

/* AP-16 · Nachtrag (2026-07-27): Die Trennung darf nicht nur fuer Ueberschriften gelten.
   Der vom Nutzer gemeldete Bruch "Behandlungsschwerpunk|te" steckt in einem HERO-ABSATZ,
   nicht in einer Ueberschrift — die erste Fassung griff daran vorbei.
   Deshalb: Silbentrennung fuer ALLE Textelemente, aber NUR mobil (<=781px), wo die
   Zeilen kurz genug sind, dass Komposita ueberhaupt anecken. Auf dem Desktop bleibt
   die Typografie unveraendert. */
@media (max-width:781px){
  .entry-content,.entry-content p,.entry-content li,
  .wp-block-cover,.wp-block-cover p,.wp-block-cover h1,.wp-block-cover h2{
    word-break:normal;
    overflow-wrap:break-word;
    hyphens:auto;
    -webkit-hyphens:auto;
  }
}


/* ============================================================
   AP-16b · FOOTER-KANTE (2026-07-27)
   Nutzer-Meldung: "Der Footer klebt links" (Screenshot 400px).
   MESSUNG (Iframe, echte Viewport-Breiten):
     vw  400 / 700 / 900 / 1200 : Inhaltskante 20px | Footer-Logo-Kante 0px  -> 20px Versatz
     vw 1600                    : Inhaltskante 93px | Footer-Logo-Kante 93px -> buendig
   URSACHE: `.ast-container` des Inhalts traegt `padding-inline:20px`; die Footer-Grid-Container
   von Astra tragen 0. Solange der 1400er-Container noch Auto-Margins hat (ab ~1440px Viewport)
   faellt das nicht auf — darunter steht der Footer 20px weiter links als der gesamte Seiteninhalt.
   Es ist also KEIN reines Mobil-Problem, sondern betrifft alles unter 1440px.
   FIX: dieselben 20px auf die Footer-Zeilen-Container, nur unterhalb der Schwelle.
   Der flaechige Footer-Hintergrund (#f6f7f8) bleibt unberuehrt, weil das Padding auf dem
   INNEREN Container sitzt, nicht auf dem Wrap.
   Rueckbau: diesen Block loeschen. ============================================ */
@media (max-width:1439px){
  .site-footer .ast-builder-grid-row-container-inner{
    padding-left:20px;
    padding-right:20px;
  }
}

/* =========================================================================
   AP-18 · FLIESSTEXT NIE ZENTRIERT (2026-07-28)
   -------------------------------------------------------------------------
   BEFUND: Auf 80/81 stehen die Ablauf-Schritte und die Vorteils-Kacheln als
   "zentrierte Ueberschrift + zentrierter Absatz". Zusammen mit der AP-15-
   Measure-Regel entstand daraus der schlechteste aller Zustaende:
     - der Absatz-BLOCK wurde auf 36em gekappt und per Anker-Margin an die
       LINKE Kante der 1400er-Spalte gesetzt,
     - der TEXT darin blieb aber zentriert.
   Ergebnis: ein links klebender Block mit beidseitig flatterndem Text unter
   einer mittig zentrierten Ueberschrift.
   URSACHE: AP-15 hatte nur alignfull-Sektionen im Blick, wo
   (100% - 1400px)/2 einen echten Versatz liefert. Sitzt der Absatz in einem
   bereits 1400 breiten Container, ist der Term 0 -> Block klebt links.

   ENTSCHEIDUNG (Nutzer 28.07.):
   1) Laufender Text wird LINKSBUENDIG. Zentrierter Flattersatz hat keine feste
      Einstiegskante — das Auge muss jeden Zeilenanfang neu suchen. Bei
      Fachtexten mit langen Komposita ist das der teuerste Lesefehler.
      KEIN Blocksatz (WCAG 1.4.8: Wortluecken-Kanaele, mobil noch staerker).
   2) Der BLOCK bleibt auf der Mittelachse (margin-inline:auto). Der Text steht
      damit weiter unter Nummernkreis und Ueberschrift — die zentrierte
      Bildsprache der Schrittfolge bleibt erhalten, nur die Lesekante wird fest.
   3) Nummernkreise und Ueberschriften bleiben zentriert (kurze Labels, sie
      tragen den Rhythmus der Schrittfolge).

   SCOPE: greift bei "zentrierte Ueberschrift, danach Absaetze" (Geschwister-
   Selektor ~, damit auch AUFGETEILTE Absaetze erfasst bleiben). Die kurzen zentrierten
   Kontaktzeilen auf 83/84/85 ("Sie erreichen uns telefonisch unter" /
   Rufnummer) haben KEINE zentrierte Ueberschrift als Vorgaenger und bleiben
   unveraendert. Mobil braucht es keine eigene Regel: dort bindet 36em nicht,
   margin-inline:auto ergibt 0, und hyphens:auto aus AP-16 bleibt aktiv.

   Rueckbau: diesen Block loeschen.
   ========================================================================= */
.entry-content h2.has-text-align-center ~ p,
.entry-content h3.has-text-align-center ~ p,
.entry-content h4.has-text-align-center ~ p{
  text-align:start;
  margin-inline:auto !important;
}


/* =========================================================================
   KORREKTUR 2026-08-17 · Unterer Block auf 83/84 (Kundenmeldung)
   Zwei Befunde, beide unabhaengig von der 04.08.-Aenderung:

   (2) FEHLERKLASSE - zentrierter TEXT in einem links klebenden BLOCK.
       Die AP-15-Anker-Margin `max(0px,(100% - 1400px)/2)` liefert 0, sobald der
       Absatz in einem Container SCHMALER als content-size sitzt (graue Telefon-Karte:
       1288px Innenbreite). Der 36em-Block klebt dann links, der Text darin bleibt
       `center` -> gemessene Mitte 597 statt 953. Genau der Zustand, den der AP-16-Block
       weiter unten selbst als schlechtesten beschreibt; AP-16 greift hier nicht, weil
       keine zentrierte Ueberschrift vorausgeht (dort ausdruecklich so vermerkt).
       Die Regel ist bewusst NICHT page-id-gescopt: Ein Absatz, dessen Text zentriert
       gesetzt ist, muss auch einen zentrierten Block haben - das gilt ueberall.
       Sie kann nichts verstellen, was nicht ohnehin zentriert gemeint war.
       Bestand 17.08.: trifft genau 2 Absaetze (Telefon-Karte auf 83 und 84). */
.entry-content .is-layout-constrained > p.has-text-align-center{
  margin-inline:auto !important;
}



/* =========================================================================
   2026-08-17 (2) · SEKTIONSRHYTHMUS auf 83/84 — Kundenmeldung "weisse Blockwueste"
   Nutzer-Entscheid 17.08.: Variante 1 + Akzentkante.

   BEFUND: 83/84 waren die EINZIGEN Seiten ohne jeden Sektionswechsel.
     Kontakt (79)        blau -> weiss -> #f6f7f8 -> weiss
     Startseite (86)     weiss -> weiss -> #f6f7f8 -> weiss -> weiss
     Raeumlichkeiten(82) blau -> weiss -> weiss -> #f6f7f8 -> weiss
     83 / 84             blau -> weiss -> weiss   <- kein Wechsel, Ende
   Dazu stand die WEISSE Formularkarte auf WEISSEM Grund, sichtbar nur an der
   1px-Kante aus `.ucw-card`. Genau das meinte der Kunde mit "designtechnisch
   unpassend" - nicht die Ausrichtung.

   WARUM full-bleed per CSS und nicht per Block-Attribut:
   Auf allen anderen Seiten sind die Sektionen `alignfull`, der Farbwechsel laeuft
   randlos durch. Auf 83/84 sind sie es NICHT. `alignfull` steckt als Attribut im
   `post_content` - das waere ein Inhaltseingriff mit Revision und Blockvalidierung
   fuer eine reine Gestaltungsfrage. Stattdessen `box-shadow` mit grossem Spread,
   vertikal per `clip-path` beschnitten: die Farbe laeuft nach links und rechts aus
   dem Container heraus, oben und unten exakt an der Sektionsgrenze.
   Kein `width:100vw` - das erzeugt auf Seiten mit Scrollbar einen horizontalen
   Ueberlauf (Scrollbar zaehlt zu 100vw, nicht zum Containing Block).

   SELEKTOR bewusst inhaltlich, nicht per nth-child: "die Sektion, die das Formular
   enthaelt". Wandert mit, wenn Sektionen ergaenzt oder umsortiert werden - im
   Gegensatz zu den Regeln, die diese Datei bereits einmal teuer gemacht haben.
   Rueckbau: diesen Block loeschen. ======================================== */
.entry-content > .wp-block-group:has(.ucw-card .wpcf7){
  background:#f6f7f8;
  box-shadow:0 0 0 100vmax #f6f7f8;
  clip-path:inset(0 -100vmax);
}

/* Akzentkante oben an der Formularkarte, Markenblau - dieselbe Sprache wie die
   Akzentlinien-Kacheln auf /kontakt/ (AP-14). Macht die Karte als eigenstaendiges
   Element lesbar und kostet keine Flaeche. Die 1px-Kante aus `.ucw-card`
   (box-shadow #eceff3) bleibt daneben bestehen. */
.ucw-card:has(.wpcf7){
  border-top:3px solid #0069b4;
}

/* =========================================================================
   2026-08-18 · RUECKBAU zur entfernten Abschluss-Sektion auf 83/84
   Nutzer-Entscheid 18.08.: Die Sektion unter dem Formular (H2 "Urocentrum West"
   + Adressblock + Telefon-Karte) ist ERSATZLOS ENTFERNT — sie wiederholte
   wortgleich, was der Footer auf jeder Seite ohnehin zeigt.
   post_content 83/84: 3.735 -> 2.157 bzw. 3.727 -> 2.149 Bytes, 16 -> 8 Bloecke.

   IM SELBEN SCHRITT ENTFERNT, weil sie ohne diese Sektion ins Leere zeigen:
     · der Bildhintergrund-Block vom 17.08. (Klinikflur unter 82 % Schleier),
       Selektor `:has(> h2)` — auf 83/84 gibt es keine H2-Sektion mehr.
     · die Adressblock-Zentrierung `h2.has-text-align-center ~ p` fuer 83/84.
     · `align-items:stretch` auf `.wp-block-columns:has(.ucw-card)` — die einzige
       Columns dieser beiden Seiten steckte in der entfernten Sektion.
   Das Bild selbst bleibt in der Mediathek, es wurde nur nicht mehr referenziert.

   WARUM DAS HIER STEHT: Am 04.08. wurde auf denselben zwei Seiten Struktur
   entfernt, ohne die darauf zeigenden CSS-Regeln mitzupruefen. Ergebnis war eine
   stille Fehlausrichtung, die erst der Kunde am 17.08. gemeldet hat. Diesmal ist
   der Rueckbau Teil desselben Vorgangs.

   ES BLEIBEN (weil sie zum Formularbereich gehoeren, nicht zur Sektion):
     · Formular-Panel 820px zentriert · Sektionsfarbe #f6f7f8 · Akzentkante
     · die globale Invariante `.is-layout-constrained > p.has-text-align-center`
       — sie trifft auf 83/84 jetzt nichts mehr, gilt aber projektweit weiter.
   ========================================================================= */
