/* V3.50.109: DER ABSTAND ZUM LOGO WIRD HIER NICHT MEHR GESETZT.

   Anlass, 09.09.2026. Chris: „Die Breadcrumbs haengen sehr, sehr nah am Logo.
   Die Schutzzone vom Logo wird damit unterschritten." Gemessen im Livesystem
   auf jedem Seitentyp: ab 921 px Fensterbreite ueberlappte die Breadcrumb-Zeile
   das Logo um 6 px.

   URSACHE waren genau diese Zeilen. Sie setzten das Polster fest auf 104 px
   (mobil 88) und die Variable auf 125 - der Header ist aber 122 px hoch. Das
   Theme hatte denselben Fehler schon einmal und behoben; hier stand er ein
   zweites Mal, und weil dieses Stylesheet NACH dem Theme geladen wird, gewann
   es. Vier Quellen fuer einen Abstand, drei davon veraltet.

   ZUSTAENDIG IST JETZT DAS THEME, und zwar rechnend statt setzend: Dort steht
   der Header, dort steht seine Hoehe, dort gehoert der Abstand zu seinem Logo
   hin (style.css, --pm-breadcrumb-block). Wer ihn hier wieder eintraegt, macht
   denselben Fehler zum dritten Mal - der Waechter „Abstand zum Logo" meldet es.

   Was hier bleibt: Farbe, Aussenabstand und die Breite des inneren Containers.
   Das sind Angaben ueber das Aussehen des Streifens, nicht ueber seine Lage. */
/* --pm-content-gap bleibt hier: Das ist der Abstand UNTER dem Breadcrumb, also
   die Startlinie des Inhalts - die setzen die Seitenmodule dieses Plugins. Der
   Wert ist derselbe wie im Theme. --pm-breadcrumb-block dagegen ist der Abstand
   zum Header und steht ab jetzt ausschliesslich dort. */
:root{--pm-content-gap:clamp(48px,5vw,72px)}
.pm-breadcrumbs{margin:0!important;background:#100d0a}
.pm-breadcrumbs-inner{width:min(calc(100% - 48px),var(--pm-max));margin:auto}
@media(max-width:700px){.pm-breadcrumbs-inner{width:min(calc(100% - 32px),var(--pm-max))}}
body .pm-about-page-hero,body .pm-services-v902-hero,body .pm-references-v9-hero,
body .pm-contact-v870-hero,body .pm-refc-hero,body .pm-refc-editbar,
body .pm-page-wrap,body .pm-blog-page,body .pm-single-wrap,
body .pm-content-page{padding-top:0!important;margin-top:0!important}
body .pm-page-wrap>.wp-block-post-content,body .wp-block-post-content>main,
body .pm-blog-page>.wp-block-group:first-child,body .pm-page-wrap>.wp-block-post-title{margin-block-start:0!important;margin-top:0!important}
body.single-pm_ort .pm-single-inner>.pm-single-content,body.single-pm_ort .pm-single-content>.pm-refc-detail{margin-block-start:0!important;margin-top:0!important}
body .pm-services-v902-hero-grid>*:first-child,body .pm-references-v9-hero>.pm-shell>*:first-child,
body .pm-about-page-hero-grid>*:first-child,body .pm-hero-inner>*:first-child{align-self:start!important}
body .pm-services-v902-hero .pm-kicker,body .pm-references-v9-hero .pm-kicker,
body .pm-about-page-hero .pm-kicker,body .pm-contact-v870-hero .pm-kicker,
body .pm-blog-page .pm-kicker,body .pm-refc-hero .pm-kicker{margin:0 0 18px!important;font-size:.8rem;line-height:1.6;font-weight:900;letter-spacing:.17em;text-transform:uppercase;color:var(--pm-gold)}
/* V3.48.19: Der Kicker der Rechtsseiten braucht seine eigene Regel.
   Auf Impressum, Datenschutz und AGB stand "RECHTLICHES" am linken Rand,
   waehrend der Text daneben in der zentrierten Spalte begann. Gemessen an der
   Live-Seite: Der Kicker ist dort ein direktes Kind eines Containers mit
   is-layout-constrained. WordPress zentriert dessen Kinder mit
   margin-left/right:auto!important - aber ueber einen Selektor der Spezifitaet
   0,1,0. Die Zeile darueber traegt 0,2,1 und hat mit margin:0 0 18px!important
   genau diese Zentrierung geloescht. In den Hero-Bereichen ist das richtig,
   dort sitzt der Kicker in einem eigenen Innencontainer. Hier ist es falsch.
   Deshalb dieselbe Typografie, aber mit auto als Seitenrand. Live nachgemessen:
   Kicker und Inhalt beginnen danach beide bei 41px statt bei 24 und 41. */
body .pm-page-wrap>.pm-kicker{margin:0 auto 18px!important;max-width:var(--wp--style--global--content-size)!important;font-size:.8rem;line-height:1.6;font-weight:900;letter-spacing:.17em;text-transform:uppercase;color:var(--pm-gold)}
body .pm-hero{align-items:start!important}
body .pm-hero-inner{padding-top:calc(var(--pm-breadcrumb-block) + var(--pm-content-gap))!important}
body .pm-page-wrap>.wp-block-post-title{display:none!important}body .pm-hero h1,body .pm-services-v902-intro h1,body .pm-references-v9-hero h1,
body .pm-about-page-intro h1,body .pm-contact-v870-hero h1,
body .pm-blog-page h1{font-size:clamp(3.2rem,6vw,5.6rem)!important;line-height:.97!important;letter-spacing:-.045em!important;margin:0!important}
@media(max-width:700px){
body .pm-hero h1,body .pm-services-v902-intro h1,body .pm-references-v9-hero h1,
body .pm-about-page-intro h1,body .pm-contact-v870-hero h1,
body .pm-blog-page h1{font-size:clamp(2.65rem,12vw,4.25rem)!important}}body .pm-hero-copy>.pm-hero-lead,
body .pm-services-v902-intro>.pm-services-v902-hero-text,
body .pm-about-page-intro>.pm-about-page-lead,
body .pm-references-v9-hero-copy>p:not(.pm-kicker),
body .pm-contact-v870-hero-inner>p:not(.pm-kicker){font-size:clamp(1.15rem,2vw,1.55rem)!important;line-height:1.55!important;color:rgba(255,255,255,.88)!important;margin:30px 0 0!important;max-width:770px!important}
/* V3.48.95: Das Hero-Bild der Kontaktseite wurde gepflegt und nie angezeigt.

   BEFUND (Chris, 05.09.2026): "Hero-Bild unter Kontakt ist eingepflegt, wird
   aber nicht angezeigt."

   Am laufenden System gemessen, bevor etwas gebaut wurde:
   - Der Abschnitt traegt die Klasse "has-media" und die Variable
     --pm-contact-hero-image mit einer gueltigen Adresse; das Bild selbst laedt
     (1672 x 941).
   - Die Flaeche <span class="pm-contact-v870-hero-media"> ist im Dokument.
   - ABER: Es gibt im gesamten Seitenkopf KEINE Regel, die diese Variable
     verwendet, und KEINE, die auf die Medienflaeche zutrifft. Die Flaeche
     steht deshalb als inline-Element mit 0 x 0 Pixeln da - ein Kasten ohne
     Kasten. Ein Hintergrundbild auf einer Flaeche ohne Ausdehnung ist
     unsichtbar.

   Ursache: Die Markierung wurde eingebaut, die zugehoerige Gestaltung nie
   ausgeliefert. Die Kontaktseite wird von DIESER Datei gerendert - also gehoert
   die Regel auch hierher und nicht ins Theme, sonst faellt beim naechsten
   Themewechsel wieder das Bild aus.

   Zur Schichtung, ebenfalls gemessen: Der Abschnitt hat position:relative,
   overflow:hidden und isolation:isolate; sein ::before traegt die Verlaeufe auf
   z-index:-1. Das Bild muss also auf -2, damit es UNTER dem Verlauf liegt -
   sonst deckt es ihn zu und die weisse Schrift wird unlesbar. Wegen
   isolation:isolate faellt es dabei nicht hinter den Abschnitt.
   Genau diese Regel wurde vor dem Bau an der laufenden Seite eingesetzt: Die
   Flaeche wurde zu 1360 x 581, das Bild erschien, der Verlauf blieb davor, die
   Schrift lesbar. Danach wieder entfernt. */
body .pm-contact-v870-hero.has-media .pm-contact-v870-hero-media{position:absolute!important;inset:0!important;display:block!important;z-index:-2!important;background-image:var(--pm-contact-hero-image)!important;background-size:cover!important;background-position:50% 50%!important;background-repeat:no-repeat!important;pointer-events:none!important}.pm-services-v902-benefit{max-width:660px;margin:26px 0 0;font-size:clamp(1.3rem,1.9vw,1.7rem);line-height:1.45;font-weight:720;color:#1a1a1a}
.pm-services-v902-benefit:before{content:"";display:block;width:46px;height:3px;margin-bottom:20px;background:var(--pm-service-accent,#D59F3C)}
.pm-services-v902-specs{margin-top:30px;border-top:1px solid rgba(17,17,17,.12)}
.pm-services-v902-specs>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:18px;max-width:620px;padding:16px 0;cursor:pointer;color:#6b6b6b;font-size:.78rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.pm-services-v902-specs>summary::-webkit-details-marker{display:none}
.pm-services-v902-specs>summary:hover{color:#111}
.pm-services-v902-specs>summary i{flex:0 0 auto;font-style:normal;font-size:1.3rem;font-weight:400;letter-spacing:0;color:var(--pm-service-accent,#D59F3C);transition:transform .22s ease}
.pm-services-v902-specs[open]>summary i{transform:rotate(45deg)}
.pm-services-v902-specs ul{margin:0 0 6px!important;gap:9px!important}
.pm-services-v902-specs li{font-weight:500!important;font-size:.94rem;color:#5e5e5e}
.pm-services-v902-specs li:before{opacity:.55}
.pm-services-v902-links .pm-services-v902-more{margin-top:30px}
/* V3.50.10 (Chris, 05.09.2026): "Die Buttonform 'Leistung im Detail' passt
   nicht zu den CI-konformen Buttons!" - Er trug eine vollrunde Pillenform mit
   1,5 px schwarzem Rahmen. Der verbindliche Knopfstandard kennt genau zwei
   Knoepfe, beide mit derselben Geometrie: 54 px Hoehe, 26 px Innenabstand,
   --pm-radius als Rundung. Nur Farbe und Rahmen unterscheiden Haupt- von
   Nebenhandlung, nie die Form und nie das Verhalten.
   Dies ist eine Nebenhandlung auf hellem Grund. */
body .pm-services-v902-more{
  display:inline-flex;align-items:center;justify-content:center;gap:0;
  min-height:54px;padding:0 26px;
  border:1px solid rgba(0,0,0,.18);border-radius:var(--pm-radius,9px);
  background:#fff;color:#1D1D1F;-webkit-text-fill-color:#1D1D1F;
  font-weight:850;text-decoration:none;
  transition:transform .18s ease,filter .18s ease,box-shadow .18s ease}
body .pm-services-v902-more:hover,body .pm-services-v902-more:focus-visible{
  transform:translateY(-2px);filter:brightness(1.06);
  box-shadow:0 8px 22px rgba(0,0,0,.22);
  /* V3.50.13 (Chris, 05.09.2026): „Es sollte dann invertieren - der Button-
     Hintergrund schwarz werden und ‚Leistung im Detail‘ weiss. So waer's dann
     analog auch zu den Reitern bei den Referenzen."
     Das ist genau richtig - und es war auch die urspruengliche Absicht des
     Bausteins. Kaputt war daran nur, dass der Grund kippte und die Schrift
     stehen blieb: dunkel auf dunkel. Beides gehoert zusammen, sonst ist es
     kein Invertieren, sondern ein Ausloeschen. */
  background:#1D1D1F!important;border-color:#1D1D1F!important;
  color:#FFFFFF!important;-webkit-text-fill-color:#FFFFFF!important}body .pm-services-v902-service-grid{align-items:start!important}body .pm-refc-projects-head{max-width:760px;margin:0 0 clamp(38px,4vw,56px)}
body .pm-refc-projects-head h2{margin:0;font-size:clamp(2.4rem,4.4vw,4.2rem);line-height:1.04;letter-spacing:-.045em;color:#fff}
body .pm-refc-projects-head>p:not(.pm-kicker){margin:18px 0 0;color:rgba(255,255,255,.62);font-size:clamp(1.02rem,1.4vw,1.18rem);line-height:1.7}
body .pm-refc-projects-head .pm-kicker{margin:0 0 18px!important;font-size:.8rem;font-weight:900;letter-spacing:.17em;text-transform:uppercase;color:var(--pm-gold)}
body .pm-refc-projects-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:24px!important}
@media(max-width:1000px){body .pm-refc-projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:700px){body .pm-refc-projects-grid{grid-template-columns:1fr!important}}
body .pm-refc-hero-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)!important;align-items:start!important}
@media(max-width:900px){body .pm-refc-hero-grid{grid-template-columns:1fr!important}}body .pm-refc-hero-video{display:block;width:100%;height:100%;object-fit:cover;border-radius:16px}
body .pm-hero-tonspur{position:relative;width:100%;height:100%}
/* V2.36: Der Knopf im Hochzeitskopf sass in einer Rasterspalte, die ohne Menue
   daneben die halbe Kopfbreite einnahm - 591 Pixel fuer zwei Woerter. Der Kopf
   traegt hier nur zwei Dinge: Zeichen links, Knopf rechts. */
body.pm-bereich-hochzeit .pm-header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px}
.pm-anfrage-alternativ{display:inline-flex;align-items:center;gap:.35em;font-size:1rem;color:#444}
.pm-anfrage-alternativ a{font-weight:700;color:inherit;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.pm-anfrage-alternativ a:hover,.pm-anfrage-alternativ a:focus-visible{color:var(--pm-gold,#D59F3C)}
body.pm-bereich-hochzeit .pm-anfrage-alternativ{color:#555}
@media (max-width:600px){
  .pm-anfrage-abschluss{flex-direction:column;align-items:stretch;gap:14px}
  .pm-anfrage-abschluss .pm-button-primary{width:100%;justify-content:center}
  .pm-anfrage-alternativ{justify-content:center;padding-top:2px}
}
.pm-ort-pakete{padding:clamp(48px,7vw,88px) 0;background:#17130f}
.pm-ort-pakete-inner{display:flex;flex-wrap:wrap;gap:32px;align-items:center;justify-content:space-between}
.pm-ort-pakete-inner>div:first-child{flex:1 1 420px;max-width:620px}
.pm-ort-pakete h2{color:#fff;margin:.2em 0 .5em;text-wrap:balance}
.pm-ort-pakete p{color:rgba(255,255,255,.78);margin:0}
.pm-ort-pakete .pm-kicker{color:var(--pm-gold,#D59F3C)}
/* V3.50.155 — Chris am 10.09.2026: „Ein Link unter dem Button, das schaut mir
   nicht CI-konform aus. Bitte ordentlich bauen."

   Er hat recht, gemessen an zwei Handbuchregeln:

   1. VERWEISE (Kap. 5). Der Verweis stand in rgba(255,255,255,.72) und wurde
      beim Ueberfahren WEISS. Die Regel lautet: weiss, unterstrichen, golden
      beim Ueberfahren — genau so, wie es die Orte-Reihe direkt daneben schon
      tut (.pm-orte-liste a). Zwei Verweise auf derselben dunklen Flaeche, die
      sich verschieden verhalten: Das ist die Sorte Unstimmigkeit, die eine
      Seite billig wirken laesst. „Dieselbe Handlung sieht ueberall gleich
      aus." Die Werte sind deshalb woertlich von dort uebernommen.

   2. SCHUTZRAUM (Kap. 3). 14 px unter einem 54 px hohen Knopf sind zu wenig —
      „ein Knopf, der an Text klebt, wirkt wie hingebappt". 22 px geben dem
      Knopf seinen Rand zurueck, ohne den Verweis von ihm zu trennen. */
.pm-ort-pakete-aktion{flex:0 0 auto;display:flex;flex-direction:column;gap:22px;align-items:flex-start}
.pm-ort-pakete-link{display:inline-block;padding:2px 0;color:#fff;text-decoration:underline;
  text-underline-offset:3px;text-decoration-thickness:1px;font-size:.98rem;
  transition:color .22s ease}
.pm-ort-pakete-link:hover,.pm-ort-pakete-link:focus-visible{color:var(--pm-gold,#D59F3C)}
@media (max-width:680px){.pm-ort-pakete-aktion{width:100%}.pm-ort-pakete-aktion .pm-button-primary{width:100%;justify-content:center}}
/* V3.50.74: Orte-Reihe (Verweise nach Handbuch Kap. 5: weiss, unterstrichen, golden beim Ueberfahren)

   V3.50.152 — WICHTIG, hier sass ein Fehler: Diese Regel hiess bis eben
   „.pm-orte" und traf damit ALLES mit dieser Klasse. Seit V3.50.151 traegt
   auch die Liste im Fussbereich sie — sie MUSS sie tragen, weil der Waechter
   „Ortsseiten verlinkt" im ausgelieferten HTML nach class="pm-orte" sucht.
   Folge: Die drei Ortsnamen bekamen den Abschnittshintergrund #17130f und
   sassen als heller Kasten im schwarzen Fussbereich. Chris: „Jetzt hast Du
   mir einen Hintergrund gezaubert … Das sieht doch jetzt unmöglich aus."

   Die Lehre: Wer eine Klasse aus einem anderen Grund wiederverwendet (hier:
   damit ein Waechter weiter misst), erbt ihr AUSSEHEN mit. Der Anker fuer die
   Messung und der Bauplan fuer die Gestaltung sind zwei Dinge — sie duerfen
   sich denselben Namen teilen, aber die Gestaltungsregel muss sagen, WAS sie
   meint. Sie meint den Abschnitt, also: section.pm-orte. */
section.pm-orte{padding:clamp(48px,7vw,88px) 0;background:#17130f;color:#fff;border-top:1px solid rgba(255,255,255,.08)}
/* V3.50.151: Die Ortsreihe steht IM Fussbereich als eigene Spalte, nicht
   mehr als eigener Abschnitt darunter. Sie erbt das Aussehen der anderen
   Fussspalten, damit sie als Teil des Fussbereichs gelesen wird und nicht
   als angehaengter Rechtstext. */
.pm-footer-orte ul.pm-orte{list-style:none;margin:0;padding:0;display:grid;gap:11px;background:none;border:0;color:inherit}
.pm-footer-orte ul.pm-orte li{margin:0}
.pm-footer-orte a{color:#fff;text-decoration:none;font-size:.98rem;line-height:1.45}
.pm-footer-orte a:hover,.pm-footer-orte a:focus-visible{color:var(--pm-gold)}
/* V3.50.155: Der Ort, auf dem man steht, ist kein Weg — er steht da, aber
   ruhig und ohne Verweis. */
.pm-footer-orte li[aria-current] span{color:rgba(255,255,255,.55);font-size:.98rem;line-height:1.45}
.pm-orte-kopf{max-width:760px;margin-bottom:28px}
.pm-orte .pm-kicker{color:var(--pm-gold,#D59F3C)}
.pm-orte h2{color:#fff;margin:.2em 0 .4em;text-wrap:balance}
.pm-orte-kopf p:not(.pm-kicker){color:rgba(255,255,255,.78);margin:0}
.pm-orte-liste{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px 0;font-size:1.05rem}
.pm-orte-liste li{display:flex;align-items:center}
.pm-orte-liste li+li::before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.35);margin:0 18px}
.pm-orte-liste a{display:inline-block;padding:6px 0;color:#fff;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:color .22s ease}
.pm-orte-liste a:hover,.pm-orte-liste a:focus-visible{color:var(--pm-gold,#D59F3C)}
.pm-orte-liste [aria-current] span{display:inline-block;padding:6px 0;color:rgba(255,255,255,.55)}
/* V3.50.92: Der Film ist die Buehne (Referenzen mit Hauptfilm) */
body .pm-refc-media.hat-film video{display:block;width:100%;height:100%;object-fit:contain;background:#17130f;border-radius:0}
body .pm-refc-media.hat-film .pm-video-huelle{height:100%}
body .pm-hochzeit-buehne>.pm-buehne-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:0;background:#17130C}
body .pm-hochzeit-buehne.is-playing>.pm-buehne-film{object-fit:contain}
/* V3.50.174: Das Plugin setzt nur noch den ORT des Startknopfes.
   Das Aussehen steht in EINER Regel im Theme (.pm-film-start) und gilt damit
   für die Landingpage und die Referenzseiten gemeinsam. Die alten Angaben zu
   Maß und Schriftgröße sind ENTFERNT und nicht überschrieben — eine
   überschriebene Regel bleibt eine zweite Quelle.
   inset:auto und width/height:auto nehmen zurück, dass .pm-film-start seine
   Hülle ausfüllt: Auf der Trailer-Hülle ist das genau das Video, auf der
   Bühne wäre es der ganze Kopfbereich samt Überschrift — dort ließe sich dann
   kein Text mehr markieren.
   Der Vergrößerungssprung beim Darauffahren gehört im Theme dem INNEREN
   Kreis; deshalb bleibt die Zentrierung des Knopfes davon unberührt. */
body .pm-hochzeit-buehne>.pm-buehne-play{position:absolute;inset:auto;left:50%;top:50%;
  transform:translate(-50%,-50%);z-index:3;width:auto;height:auto}
body .pm-hochzeit-buehne.is-playing>.pm-buehne-play,body .pm-hochzeit-buehne.is-playing>.pm-hochzeit-buehne-text{display:none}
body .pm-hochzeit-buehne>.pm-media-gate{position:absolute;inset:0;height:100%}
/* V3.50.185, GEMESSEN AM AUSGELIEFERTEN HTML: Hier stand eine eigene Huelle
   fuer das Video der Ortsseite — .pm-ort-video mit aspect-ratio, Radius und
   overflow:hidden, darin das Gate absolut auf inset:0.

   SIE WAR DIE URSACHE EINES MANGELS. Im Inhaltsbereich traegt das Gate laengst
   eine eigene Regel (".entry-content .pm-media-gate": aspect-ratio, height:auto,
   Radius 12px, overflow, margin 26px 0). Deren margin schob das absolut
   positionierte Gate um genau diese 26 px nach unten — gemessen: Huelle bei
   814, Gate bei 840, die Beschriftungsleiste ragte 26 px heraus und wurde vom
   overflow:hidden der Huelle abgeschnitten.

   Die Huelle ist ersatzlos weg. Das Gate steht direkt in der Textspalte und
   wird von der vorhandenen Regel getragen — nachgemessen am laufenden System:
   Ueberstand 0, Seitenverhaeltnis 1,778, Radius 12 px, Breite wie der Text.
   Ein Bauteil, eine Quelle: Wer einem fertigen Bauteil eine zweite Huelle
   umlegt, ohne die Regeln zu messen, die es an diesem Ort schon traegt, baut
   sich den Fehler selbst. */
body.pm-bereich-hochzeit .pm-header-cta{flex:0 0 auto;width:auto;min-width:0;margin-left:auto;
  padding:11px 20px;font-size:.86rem;white-space:nowrap}
body .pm-hero-schalter{position:absolute;right:16px;bottom:16px;z-index:2;display:flex;gap:10px}
body .pm-video-huelle{position:relative;display:block;width:100%;height:100%}
body .pm-hero-schalter.pm-schalter-oben{top:14px;bottom:auto;right:14px}
body .pm-hero-schalter:empty{display:none}
body .pm-ton-schalter,body .pm-ut-schalter{width:44px;height:44px;
  display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:50%;
  background:rgba(10,10,10,.62);color:#fff;font-size:18px;line-height:1;cursor:pointer;
  backdrop-filter:blur(6px);transition:background .2s ease,transform .2s ease,color .2s ease}
body .pm-ut-schalter{font-size:13px;font-weight:900;letter-spacing:.02em}
body .pm-ton-schalter:hover,body .pm-ut-schalter:hover{background:rgba(10,10,10,.82);transform:translateY(-2px)}
body .pm-ton-schalter:focus-visible,body .pm-ut-schalter:focus-visible{outline:2px solid var(--pm-gold);outline-offset:3px}
body .pm-ut-schalter[aria-pressed="true"]{background:var(--pm-gold);color:#111}
body .pm-refc-hero-video::cue{font-size:.82em;line-height:1.35;background:rgba(0,0,0,.62);color:#fff}
body .pm-refc-media{background:#17130f}
/* V2.17: Vorstellung im Hochzeitsbereich. Text und Bild nebeneinander, auf schmalen
   Bildschirmen untereinander - das Bild zuerst, weil das Gesicht die Aussage ist. */
/* V2.22: Zwischenueberschriften in der Paketliste. Sie stehen ueber die volle
   Breite des Rasters, damit die Gruppen sichtbar auseinanderfallen. */
/* V2.25: Paketkarten. Name allein, eine Zeile Haltung, ueberfliegbare Punkte,
   Preis zuletzt - nach den Argumenten, nicht davor. Die empfohlene Karte traegt
   als einzige einen goldenen Rahmen; mehr als eine Empfehlung ist keine. */
body .pm-refc-audience.is-paket{position:relative;display:flex;flex-direction:column;
  background:#1c1713;border:1px solid rgba(255,255,255,.09);border-radius:12px;padding:26px 24px 22px}
body .pm-refc-audience.is-empfohlen{border:2px solid var(--pm-gold)}
/* V3.25: Im Hochzeitsbereich setzt das Theme fuer ALLE Paketkarten einheitlich einen
   neutralen, hellen Rahmen (style.css, .is-paket{border-color:#e3ded5}) - das
   uebersteuert (gleiche Spezifitaet+Reihenfolge im Theme) auch bei den empfohlenen
   Karten die Rahmenfarbe auf Grau, die Rahmenbreite (2px) blieb davon unberuehrt.
   Ergebnis: Der dickere Rahmen war da, aber unauffaellig grau statt golden - die
   Auszeichnung "am haeufigsten gewaehlt" ging optisch unter. Eigene, spezifischere
   Regel nur fuer die Kombination is-paket+is-empfohlen stellt Gold wieder her. */
body.pm-bereich-hochzeit .pm-refc-audience.is-paket.is-empfohlen{border-color:var(--pm-gold)!important}
body .pm-paket-marke{position:absolute;top:-11px;left:22px;background:var(--pm-gold);color:#1a1400;
  font-size:.62rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase;padding:4px 11px;border-radius:20px}
/* V3.28: Alle Textregeln der Paketkarte lesen jetzt aus denselben zwei Variablen wie
   der Rest des Bausteins (--of-primaer/--of-sekundaer/--of-tertiaer, definiert bei
   .pm-refc-audiences weiter unten) - keine eigenen, isolierten Farbwerte mehr, die
   bei einer neuen Kombination (wie zuletzt: Hochzeitspakete auf der Fotografie-Seite)
   erneut haetten auseinanderlaufen koennen. Jede Regel traegt ".pm-refc-audience"
   als Vorfahre, damit sie zuverlaessig vor der theme-eigenen Sammelregel liegt. */
body .pm-refc-audience.is-paket h3{margin:0 0 8px;color:var(--of-primaer)!important;font-size:clamp(1.24rem,2vw,1.5rem);line-height:1.2;letter-spacing:-.02em}
body .pm-paket-zeile{margin:0 0 18px!important;color:var(--pm-gold);font-size:.98rem;line-height:1.5;font-style:italic}
body .pm-paket-punkte{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-direction:column;gap:9px}
body .pm-refc-audience .pm-paket-punkte li{position:relative;padding-left:24px;color:var(--of-sekundaer)!important;font-size:.94rem;line-height:1.45}
body .pm-paket-punkte li:before{content:"";position:absolute;left:2px;top:.42em;width:10px;height:6px;
  border-left:2px solid var(--pm-gold);border-bottom:2px solid var(--pm-gold);transform:rotate(-45deg)}
/* V2.62: Preis nach oben, Knopf je Karte, gedaempfte Erbpunkte, breite Karte. */
body .pm-refc-audience.is-paket{padding:26px 24px 24px}
body .pm-paket-koerper{display:flex;flex-direction:column;flex:1}
/* V3.29: Spezifitaets-Korrektur. ".pm-paket-preis" ist selbst ein <p>-Element und
   wurde deshalb zusaetzlich von der generischen ".pm-refc-audiences .pm-refc-audience p"-
   Regel erfasst (2 Klassen + 1 Element = hoehere Spezifitaet als die 2 Klassen dieser
   Regel ohne Element) - der Preis erschien dadurch in der sekundaeren statt der
   primaeren Textfarbe. Beides dunkel und lesbar, aber falsche Gewichtung fuer das
   wichtigste Element der Karte. "p.pm-paket-preis" macht die Regel spezifischer als
   die generische p-Regel und behebt das zuverlaessig. */
body .pm-refc-audiences .pm-refc-audience p.pm-paket-preis{margin:0 0 20px!important;padding-bottom:20px;
  border-bottom:1px solid rgba(255,255,255,.09);color:var(--of-primaer)!important;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
body .pm-paket-preis b{font-size:clamp(1.7rem,3vw,2.05rem);font-weight:800;letter-spacing:-.02em;line-height:1}
body .pm-refc-audience .pm-paket-ab{color:var(--of-tertiaer)!important;font-size:.86rem;font-weight:500}
body .pm-refc-audience .pm-paket-ust{color:var(--of-tertiaer)!important;font-size:.78rem;font-weight:400}
body .pm-refc-audience.is-empfohlen .pm-paket-preis b{color:var(--pm-gold)}
body .pm-paket-punkte{flex:1}
body .pm-refc-audience .pm-paket-punkte li.is-erbt{color:var(--of-tertiaer)!important;font-style:italic}
/* =====================================================================
   V3.50.168: Das Haekchen traegt volle Deckung — auch bei einer Uebernahme
   =====================================================================
   Chris am 10.09.2026: „In den Paketen fiel mir auf, dass mehrere
   Checkpunkte nicht voll angezeigt werden. Da ist irgendwie ein
   Deckungsproblem … dann fragt man sich, ob da irgendwas nicht stimmt in
   dem Angebot. Das darf nicht passieren."

   DIE ABSICHT AUS V2.62 BLEIBT und wird nicht neu aufgerollt: „Punkte, die
   mit ,Alles aus' beginnen, werden automatisch gedaempft — sie wiederholen
   ein anderes Paket und sollen nicht mit den neuen Leistungen um
   Aufmerksamkeit ringen." Das ist richtig.

   GEMESSEN wurde aber, dass diese Absicht mit DREI Signalen gleichzeitig
   gesagt wird:
       Haekchen  Deckkraft 0,45  gegen 1,0
       Text      5,97:1          gegen 9,73:1
       Schrift   kursiv          gegen normal

   Zwei davon sagen sie vollstaendig. Das halbdurchsichtige Haekchen fuegt
   nichts hinzu — und richtet Schaden an:

   EIN HAEKCHEN IST EIN ZUSTANDSZEICHEN. Es sagt „ist enthalten". Ein halbes
   Haekchen sagt „halb enthalten" — und genau das ist inhaltlich FALSCH: Die
   uebernommenen Leistungen sind zu hundert Prozent enthalten. Deshalb liest
   Chris dort einen Fehler, und ein Paar, das 8.500 Euro abwaegt, liest ihn
   genauso.

   Das Haekchen bekommt volle Deckung. Kursiv und der hellere Text bleiben —
   die Nachrangigkeit steht damit weiterhin da, nur nicht mehr als Zweifel
   an der Leistung.
   ===================================================================== */
body .pm-paket-punkte li.is-erbt:before{opacity:1}
body .pm-refc-audience .pm-paket-aktion{display:block;text-align:center;margin-top:auto;padding:12px 18px;border-radius:99px;
  font-weight:800;font-size:.95rem;text-decoration:none;color:var(--of-primaer)!important;
  border:1px solid rgba(255,255,255,.22);transition:border-color .15s,color .15s,background .15s}
body .pm-paket-aktion:hover,body .pm-paket-aktion:focus-visible{border-color:var(--pm-gold);color:var(--pm-gold)!important}
body .pm-refc-audience.is-empfohlen .pm-paket-aktion{background:var(--pm-gold);border-color:var(--pm-gold);color:#1a1400!important}
body .pm-refc-audience.is-empfohlen .pm-paket-aktion:hover{filter:brightness(1.08);color:#1a1400!important}
body .pm-paket-vorteil{display:inline-block;margin:0 0 12px;padding:6px 14px;border-radius:99px;
  background:rgba(213,159,60,0.14);border:1px solid rgba(213,159,60,0.5);color:var(--pm-gold);
  font-size:.83rem;font-weight:800}
body .pm-refc-audience.is-breit{grid-column:1/-1;width:100%;
  display:grid;grid-template-columns:1.25fr 1fr;gap:32px;align-items:center;
  background:linear-gradient(135deg,#1b1710,#141414);border-color:var(--pm-gold);padding:32px 30px}
body .pm-refc-audience.is-breit .pm-paket-preis{border-bottom:0;padding-bottom:0;margin-bottom:0!important}
body .pm-refc-audience.is-breit h3{font-size:clamp(1.5rem,2.6vw,1.9rem)}
/* V3.25: "Das Gesamterlebnis" soll als Kombiangebot staerker hervortreten - bisher
   nur ein 1px-Rahmen und ein Knopf im selben schlichten Umriss-Stil wie die
   einzelnen Pakete. Jetzt: dickerer Rahmen wie bei "am haeufigsten gewaehlt",
   dezenter goldener Schimmer im Hintergrund statt reinem Verlauf ins Schwarze, und
   ein gefuellter goldener Knopf, der die Karte klar als eigene, hoeherwertige
   Kategorie neben den einzelnen Paketen markiert. */
body.pm-bereich-hochzeit .pm-refc-audience.is-breit{
  border-width:2px!important;
  background:linear-gradient(135deg,rgba(213,159,60,.09),rgba(213,159,60,.02) 55%,transparent),#fff!important;
  box-shadow:0 18px 40px rgba(213,159,60,.14)}
body.pm-bereich-hochzeit .pm-refc-audience.is-breit .pm-paket-aktion{
  background:var(--pm-gold)!important;border-color:var(--pm-gold)!important;color:#1a1400!important;font-weight:850}
body.pm-bereich-hochzeit .pm-refc-audience.is-breit .pm-paket-aktion:hover,
body.pm-bereich-hochzeit .pm-refc-audience.is-breit .pm-paket-aktion:focus-visible{
  filter:brightness(1.08);color:#1a1400!important}
/* =====================================================================
   V3.50.174: DER KNOPF DER BREITEN KARTE IST NICHT MEHR BREITER ALS DIE
   ANDEREN — UND DIE BREITE IST GERECHNET, NICHT GERATEN.
   =====================================================================
   ANLASS, Chris am 10.09.2026 mit Bild: „Der Knopf ‚Termin prüfen‘ beim
   Gesamterlebnis darf nicht breiter sein als der bei ‚Der ganze Tag‘. Das
   sieht nicht gut aus, wenn das so breitgezogen ist."

   GEMESSEN bei 1920 px Fensterbreite: sechs Knöpfe bei 360–362 px, der
   siebte bei 526 px. 164 px Unterschied, 45 Prozent.

   URSACHE: Der Knopf ist display:block und füllt deshalb seine Spalte. In
   den schmalen Karten ist das eine Rasterspalte von 412 px, in der breiten
   Karte die rechte Hälfte eines eigenen Rasters (1.25fr 1fr) — die ist
   erheblich breiter.

   DIE RECHNUNG, alles an der Seite gemessen:
     Raster       3 × 412 px, Lücke 22, Gesamtbreite G = 1280
     Karte        Polster 24 seitlich, Rahmen 1  →  Knopf = 412 − 50 = 362
     breite Karte Polster 30, Rahmen 2           →  innen W = G − 64
     ihre Spalte  (W − 32) / 2,25                →  W = 2,25 · Spalte + 32

   Eingesetzt:
     Knopf = (G − 44)/3 − 50 = (2,25·Spalte + 52)/3 − 50
           = 0,75 · Spalte − 32,67

   Deshalb steht dort 75 % minus 32,67 px — ein Prozentwert bezieht sich auf
   die eigene Spalte, und genau die steht in der Rechnung. Nachgemessen:
   0,75 · 526,227 − 32,67 = 362,0. Das ist auf das Pixel die Breite der
   anderen sechs, bei JEDER Fensterbreite, solange das Raster dreispaltig
   ist. Eine feste Pixelzahl hätte nur bei einer einzigen Breite gestimmt.

   NUR ÜBER 1000 px: Darunter wird das Raster einspaltig, dann ist eine
   schmale Karte selbst so breit wie die breite — und ihr Knopf läuft
   ebenfalls durch. Eine Deckelung wäre dort falsch.

   LINKSBÜNDIG, nicht mittig: Der Knopf steht damit auf derselben Kante wie
   die Häkchen darüber. Nachgemessen: beide bei 1034 px.

   EIN FEHLER IM ERSTEN ANLAUF, an der Seite gefunden: Zuerst stand hier
   `margin-right:auto` für die Linksbündigkeit. Ergebnis 145,4 px statt 362 —
   also die reine Textbreite. Grund: `.pm-paket-koerper` ist ein Flex-Kasten
   in Spaltenrichtung, der Knopf füllt die Breite über `stretch`. Ein AUTO-
   RAND auf der Querachse HEBT DIESES STRETCH AUF; der Knopf fiel damit auf
   seine Inhaltsbreite zurück, und die Deckelung griff nie. `align-self:
   flex-start` beendet das Stretch ebenfalls, aber `width:100%` setzt die
   Breite dann ausdrücklich — und erst die kann gedeckelt werden.

   Nachgemessen mit der endgültigen Regel bei 1920, 1440 und 1024 px:
   Spanne über alle sieben Knöpfe jeweils 2 px — und die zwei Pixel sind der
   doppelte Rahmen der beiden hervorgehobenen Karten, nicht die Breite. */
@media (min-width:1001px){
  body .pm-refc-audience.is-breit .pm-paket-aktion{
    align-self:flex-start;width:100%;max-width:calc(75% - 32.67px)}
}
@media (max-width:820px){
  body .pm-refc-audience.is-breit{grid-template-columns:1fr;gap:20px}
}
/* V2.25: Kundenstimmen laufen im Hochzeitsbereich seitlich durch. Kein
   Selbstlauf: Wer eine Empfehlung liest, soll nicht mitten im Satz
   weitergeschoben werden. Gewischt und geblaettert wird von Hand. */
/* V2.31: Gleiche Oberkante. Ohne Angabe richten sich die Karten an ihrer
   Grundlinie aus und stehen dadurch versetzt. */
/* =====================================================================
   V3.50.19: Der Laufbehaelter schnitt die Karten an
   =====================================================================
   Chris, 05.09.2026: „Bei Hover verschiebt sich die Form der Boxen seltsam.
   Miss das genau nach. Da stimmt etwas nicht!" - und dazu das Zielbild:
   „Es muesste analog zu dieser Darstellung der Kundenstimmen auf der
   Startseite sein. So sieht's auch gut aus mit dem goldenen Rahmen bei dem
   weissen Kasten."

   Die Hoverregel ist bereits dieselbe wie auf der Startseite:

       .pm-testimonial-card:hover{ transform:translateY(-4px);
                                   box-shadow:0 24px 58px rgba(20,20,20,.11);
                                   border-color:rgba(213,159,60,.72) }

   Sie ist nicht das Problem. Das Problem ist der Behaelter drumherum.

   GEMESSEN auf /hochzeit/, 1440 px:
       Lauf   clientHeight 537 px, scrollHeight 557 px   -> 20 px Ueberhang
       Karte  Oberkante +24 px, Unterkante +557 px, margin 0
       overflow-x:auto  ->  overflow-y wird zwangsweise auto (gemessen)

   Ein waagerechter Schieber darf senkrecht nicht beschneiden - aber genau das
   tut er: `overflow-x:auto` zwingt die andere Achse mit. Und hier bewegt sich
   in der Senkrechten dreierlei:
       24 px  die Einblendung des Themes (.pm-reveal: translate 0 24px)
        4 px  der Hoverversatz nach oben
       58 px  der weiche Schatten
   Oben stand 0 px Innenabstand, unten 4 px. Also wurde die Karte waehrend
   jeder dieser Bewegungen an der Kante abgeschnitten - die 14-px-Rundung
   verschwand und die Ecke wurde eckig. Das ist die „seltsame Formaenderung".

   Die Reparatur ist kein neuer Hovereffekt, sondern Platz:
       oben  12 px  (deckt die 4 px Hoverversatz mit Reserve)
       unten 34 px  (deckt die 24 px Einblendung mit Reserve)
   Nachgerechnet: unterster Inhaltspunkt 533+24 = 557 <= 533+34 verfuegbar;
   oberster Punkt -4 liegt innerhalb der 12 px. Nichts stoesst mehr an.

   Auf `overflow-clip-margin` verzichte ich bewusst - das waere die elegantere
   Loesung, aber ihre Unterstuetzung ist nicht flaechendeckend, und ich baue
   nichts auf eine Eigenschaft, die ich nicht ueberall nachmessen kann. */
/* V3.50.170: DER SCHATTEN WURDE UNTEN ABGESCHNITTEN.
   ------------------------------------------------------------------------
   ANLASS, Chris am 10.09.2026 mit Bild: „Auf der Hochzeitsseite gibt's wieder
   unten ein Schattenproblem." Unter den Stimmen-Karten endete der Schatten
   mit einer geraden Kante statt auszulaufen.

   URSACHE, an der Live-Seite gemessen: Diese Reihe ist ein waagerechter
   Scroller (`overflow-x:auto`) — und ein Scroller SCHNEIDET alles ab, was
   ueber seinen Kasten hinausragt, auch den Schatten seiner Kinder. Der
   Kartenschatten reicht 18 px versetzt plus 40 px Weichzeichnung = 58 px nach
   unten; das Polster war 34 px. Gemessen blieben unter der Karte nur 10 px
   Luft — 48 zu wenig.

   NICHT GERATEN, SONDERN AUSPROBIERT: An der laufenden Seite durchgemessen,
   welches Polster wirklich 58 px Luft ergibt — 34 → 10, 58 → 34, 70 → 46,
   82 → 58. Es sind 82 px, denn die Karten sitzen im Scroller 24 px tiefer,
   als das Polster vermuten laesst.

   Die zusaetzlichen 48 px werden mit einem negativen Aussenrand
   zurueckgenommen: Gemessen bleibt die Unterkante des Abschnitts danach auf
   6006 px — unveraendert. Der Rhythmus der Seite verschiebt sich also nicht,
   nur der Schatten hat wieder Platz. Ein Querlauf entsteht nicht (waagerecht
   wird nichts angefasst — genau die Falle aus dem Phantom-Ueberlauf). */
body .pm-stimmen-lauf{align-items:stretch;display:flex;gap:20px;
  scroll-behavior:smooth;scrollbar-width:none;padding:12px 0 82px;margin-bottom:-48px}
/* V3.50.171: GESCHOBEN WIRD NUR, WENN ES ETWAS ZU SCHIEBEN GIBT.
   ------------------------------------------------------------------------
   Chris am 10.09.2026: „Hier sehe ich immer noch einen komischen Schatten.
   Der wirft rechts aussen, geht er gerade runter. Und links aussen. Siehst
   Du das nicht?" Er hat recht — ich hatte die Seiten in V3.50.170 bewusst
   stehen lassen und ihm das sogar geschrieben. Das war die falsche
   Entscheidung: Ein sichtbar abgeschnittener Schatten ist ein Mangel, gleich
   an welcher Kante.

   GEMESSEN: Zwei Karten fuellen die Reihe genau — sichtbare Breite 760,
   schiebbare Breite 760, und zwar bei JEDER Breite von 1440 bis 390. Es gab
   also nichts zu schieben; das Beschneiden war reiner Schaden.

   Die Bedingung steht jetzt im Selektor: Ab der DRITTEN Karte ist es ein
   Scroller, davor nicht. Wo geschoben wird, gehoert das Beschneiden dazu; wo
   nicht, faellt es weg. */
/* =====================================================================
   V3.50.179: GENAU ZWEI STIMMEN FUELLEN DIE BREITE
   =====================================================================
   Chris am 10.09.2026 mit Bild: „Ich habe bei den Stimmen das Gefuehl, dass
   da eine fehlt. Ich hab momentan nicht mehr als diese beiden, deshalb muss
   es voller aussehen. Bitte beide auf fuenfzig Prozent, notfalls die Bilder
   auch groesser."

   GEMESSEN, warum es schmal wirkte: Die Karten nehmen bereits je 50 % —
   aber 50 % IHRES BEHAELTERS, und der ist auf 760 px gedeckelt, waehrend die
   Inhaltsspalte 1249 px breit ist. 50 % von 760 sind 370 px; ein Drittel der
   Flaeche blieb rechts leer. Nicht die Karten waren zu schmal, sondern ihr
   Behaelter.

   DIE DECKELUNG BLEIBT — sie ist richtig, sobald es DREI oder mehr Stimmen
   gibt (dann laufen sie seitlich durch) und auch bei EINER (eine einzelne
   Karte ueber 1249 px waere eine Textwueste). Zurueckgenommen wird sie NUR
   im Zweierfall, und die Bedingung steht im Selektor statt in einem Schalter:
   „hat ein zweites Kind, aber kein drittes". Kommt eine dritte Stimme dazu,
   greift von selbst wieder der Scroller — niemand muss etwas umstellen.

   Das Portraet waechst mit: 98 px sahen in einer 370-px-Karte richtig aus,
   in einer 615-px-Karte verloren sie sich.
   ===================================================================== */
body.pm-bereich-hochzeit .pm-stimmen-lauf:has(> :nth-child(2)):not(:has(> :nth-child(3))){
  max-width:none}
/* flex-basis MUSS mit. Der erste Anlauf setzte nur width und height — und
   weil die Grundregel „flex:0 0 104px" traegt, blieb die Breite bei 104,
   waehrend die Hoehe auf 138 ging: ein Oval statt eines Kreises. Gemessen
   104 x 138, bevor es jemand sehen konnte. */
body.pm-bereich-hochzeit .pm-stimmen-lauf:has(> :nth-child(2)):not(:has(> :nth-child(3))) .pm-testimonial-portrait{
  flex:0 0 138px;width:138px;height:138px}
body .pm-stimmen-lauf:has(> :nth-child(3)){overflow-x:auto;scroll-snap-type:x mandatory}
body .pm-stimmen-lauf::-webkit-scrollbar{display:none}
/* V2.27: Zwei Korrekturen an einer Stelle.
   Erstens standen die Karten auf 86 Prozent Breite - die zweite wurde dadurch
   angeschnitten und sah nach Fehler aus statt nach Fortsetzung. Jetzt sind immer
   ganze Karten zu sehen: zwei nebeneinander, auf schmalen Schirmen eine.
   Zweitens war die Bedienleiste fuer dunklen Grund gestaltet, der Abschnitt ist
   aber hell - weisse Schrift auf hellem Beige. */
body .pm-stimmen-lauf>*{flex:0 0 calc(50% - 10px);scroll-snap-align:start}
/* V2.31: Eine einzelne Stimme nimmt die volle Breite. Auf den Detailseiten der
   Arbeiten steht genau eine - halb so breit wie die Flaeche sah sie aus wie der
   Rest einer Reihe, die es gar nicht gibt. */
body .pm-stimmen-lauf>*:only-child{flex:0 0 100%}
/* V2.29: In der schmalen Karte wurde der Name gekuerzt - aus "Angelika und
   Karsten" wurde "Ang…", aus "Hochzeitspaar aus Muenchen" ein Fragment. Die
   Regel dafuer stammt aus der Zeit, als die Karte ueber die volle Breite lief;
   dort war Abschneiden die richtige Notbremse. Nebeneinander ist es das nicht:
   Der Name ist der Beleg. Deshalb bricht der Kopf hier um, statt zu kuerzen. */
body .pm-stimmen-lauf .pm-testimonial-head{flex-wrap:wrap;align-items:flex-start}
body .pm-stimmen-lauf .pm-testimonial-name-row{flex-wrap:wrap;justify-content:flex-start;gap:6px 12px}
body .pm-stimmen-lauf .pm-testimonial-name-row strong{white-space:normal;overflow:visible;text-overflow:clip;flex:1 1 100%;max-width:100%}
body .pm-stimmen-lauf .pm-testimonial-head>div:last-child{flex:1 1 180px;min-width:0}
body .pm-stimmen-lauf .pm-testimonial-head p,
body .pm-stimmen-lauf .pm-testimonial-head span{white-space:normal;overflow:visible;text-overflow:clip}
@media(max-width:900px){body .pm-stimmen-lauf>*{flex:0 0 100%}}
body .pm-stimmen-nav{display:flex;align-items:center;gap:10px;margin-top:22px}
body .pm-stimmen-nav button{width:44px;height:44px;border:1px solid rgba(17,17,17,.28);border-radius:50%;
  background:#fff;color:#111;font-size:17px;line-height:1;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  transition:background .2s ease,border-color .2s ease,color .2s ease}
body .pm-stimmen-nav button:hover:not(:disabled){background:#17130f;border-color:#111;color:var(--pm-gold)}
body .pm-stimmen-nav button:disabled{opacity:.35;cursor:default}
body .pm-stimmen-punkte{display:flex;gap:8px;margin-left:8px}
body .pm-stimmen-punkte i{width:8px;height:8px;border-radius:50%;background:rgba(17,17,17,.22);transition:background .2s ease}
body .pm-stimmen-punkte i.is-aktiv{background:var(--pm-gold)}
body .pm-refc-audience-gruppe{grid-column:1/-1;margin:clamp(22px,3vw,40px) 0 2px;
  display:flex;align-items:center;gap:11px;
  color:var(--pm-gold);font-size:.82rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}
body .pm-gruppen-symbol{width:26px;height:26px;flex:0 0 auto}
/* V3.50.155: Das Symbol im Anfrageformular. Chris: „Die soll dann auch golden
   sein in dem Formular unten und nicht zu groß, aber auch nicht zu winzig,
   also nicht zu winzig wie jetzt bei den Paketen." Über den Karten sind es
   26 px; hier 34 px — groesser als dort, aber kleiner als die Zeile hoch ist,
   damit es fuehrt statt zu schreien. Gold ist hier das EINE Element mit der
   Markenfarbe (Handbuch Kap. 4). */
/* V3.50.156, MEIN FEHLER AUS V3.50.155: Die Regel hiess
   „body .pm-anfrage-paket-symbol" und traf damit auf Gleichstand (0,2,0) mit
   der Schriftfarbe der dunklen Abschnitte — bei Gleichstand gewinnt die
   SPAETERE Regel, und das war die andere. Gemessen im laufenden System stand
   das Symbol in rgba(236,231,224,.86) statt in Gold. Chris hatte ausdruecklich
   gesagt: „Die soll dann auch golden sein."

   Behoben NICHT mit !important — das waere ein Wettruesten, das der Naechste
   wieder ueberbietet —, sondern mit dem echten Kontext: Das Symbol steht im
   Paketfeld, also darf die Regel das auch sagen. (0,3,0) gewinnt sauber.

   UND DER PRUEFSTAND HAT ES DURCHGELASSEN: Er prueft, dass die Regel im
   Quelltext STEHT. Dass sie WIRKT, ist eine andere Frage. Deshalb misst er
   jetzt zusaetzlich, dass der Selektor den Formularkontext traegt. */
/* V3.50.157: Symbol und Auswahlfeld stehen in einer Zeile. Das Symbol
   fuehrt, das Feld traegt die Entscheidung. */
body .pm-anfrage-paket-zeile{display:flex;align-items:center;gap:12px}
body .pm-anfrage-paket-zeile>select{flex:1 1 auto;min-width:0}
body .pm-anfrage-freiwillig{font-weight:400;opacity:.7}
body .pm-anfrage-paket .pm-anfrage-paket-symbol{display:inline-flex;align-items:center;
  justify-content:center;flex:0 0 auto;color:var(--pm-gold,#D59F3C)}
body .pm-anfrage-paket .pm-anfrage-paket-symbol .pm-gruppen-symbol{width:34px;height:34px;
  color:var(--pm-gold,#D59F3C)}
body .pm-anfrage-paket .pm-anfrage-paket-symbol[hidden]{display:none!important}
/* V2.23: Reihenfolge der Landingpage ueber die Gestaltung statt ueber die Vorlage.
   Alle zehn Abschnitte sind unmittelbare Kinder von <main>; damit genuegt eine
   Spaltenanordnung mit Rangfolge. Das ist nach dem Ausfall vom 09.08.2026 der
   deutlich risikoaermere Weg - die gemeinsame Vorlage aller sechs Leistungsseiten
   bleibt unangetastet. Die Arbeiten ruecken vor Ablauf und haeufige Fragen: Wer
   noch nichts gesehen hat, liest keine Detailfragen. */
body.pm-bereich-hochzeit main{display:flex;flex-direction:column}
body.pm-bereich-hochzeit main>.pm-refc-hero{order:1}
body.pm-bereich-hochzeit main>.pm-refc-bridge{order:2}
body.pm-bereich-hochzeit main>.pm-refc-story{order:3}
body.pm-bereich-hochzeit main>.pm-hochzeit-trailer{order:4}
body.pm-bereich-hochzeit main>.pm-refc-media-section{order:5}
body.pm-bereich-hochzeit main>.pm-refc-ueber{order:6}
body.pm-bereich-hochzeit main>.pm-refc-testimonial-section{order:7}
body.pm-bereich-hochzeit main>.pm-refc-process{order:8}
body.pm-bereich-hochzeit main>.pm-refc-audiences{order:9}
body.pm-bereich-hochzeit main>.pm-refc-faq{order:10}
/* V2.35: Auf den Detailseiten der Arbeiten stand das Formular vor den weiteren
   Arbeiten und der Blaetterleiste. Wer anfragen will, soll das am Ende tun - vorher
   kommt, was ueberzeugt. */
body.pm-bereich-hochzeit main>.pm-refc-footer{order:10}
body.pm-bereich-hochzeit main>.pm-hochzeit-anfrage{order:11}
body.pm-bereich-hochzeit main>*{order:11}
body .pm-refc-audiences-grid>.pm-refc-audience-gruppe:first-child{margin-top:0}
/* V2.21: Buehne der Landingpage - Medium ueber die volle Breite, Text darauf.
   Die Brotkruemel entfallen; der Abstand, den sie oben erzeugt haben, wird von der
   Buehne uebernommen, damit der Kopfbereich nicht auf dem Text sitzt. */
body.pm-bereich-hochzeit .pm-breadcrumbs{display:none!important}
body .pm-refc-hero.is-hochzeit, body .pm-refc-hero.is-luftaufnahmen{padding:0!important;margin:0!important}
/* V3.50.154: #050505 hatte gemessene Saettigung 0 % — die Farbe der Trauer,
   nicht die des Abends. #17130C ist derselbe Farbton wie das Gold (38,8°),
   nur tief und leise: keine zweite Markenfarbe, dieselbe Familie am anderen
   Ende. Weiss darauf 18,5:1, Gold darauf 7,8:1. */
body .pm-hochzeit-buehne{position:relative;width:100%;min-height:min(78vh,760px);overflow:hidden;background:#17130C;display:flex}
body .pm-hochzeit-buehne>video,body .pm-hochzeit-buehne>img,
body .pm-hochzeit-buehne .pm-refc-hero-video,body .pm-hochzeit-buehne .pm-hero-tonspur{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:0}
/* =====================================================================
   V3.50.160: DER FILM BEGINNT UNTER DEM KOPFBEREICH
   =====================================================================
   Chris am 10.09.2026: „Oben werden nennenswerte Bereiche vom Video
   weggeschnitten, weil da das Menü irgendwie reinlag mit dem Logo. Lass das
   Video dann weiter unten beginnen und oben drüber machst Du dann einfach
   wieder dieses Braun."

   Gemessen: Der Kopfbereich ist 122 px hoch, steht fest (position:fixed) und
   ist durchsichtig. Der Film fuellt inset:0 — die obersten 122 px liegen also
   unter Logo und Menue. Bei einem Film, der bis eben zu 82 % abgedunkelt war,
   fiel das nicht auf. Seit V3.50.154 leuchtet er, und damit wird sichtbar,
   dass oben ein Streifen Bild verschenkt ist. Wieder derselbe Zusammenhang:
   Nicht der Verlust ist neu, sondern seine Sichtbarkeit.

   DIE BUEHNE WAECHST UM DIESEN STREIFEN, statt der Film zu schrumpfen — sonst
   waere der Film kleiner statt vollstaendig, und gewonnen waere nichts. Der
   Streifen darueber traegt den Grund der Buehne (#17130C), also genau das
   „Braun", das Chris meint. */
body.pm-bereich-hochzeit .pm-hochzeit-buehne{--pm-buehne-kopf:122px;
  min-height:calc(min(78vh,760px) + var(--pm-buehne-kopf))}
body.pm-bereich-hochzeit .pm-hochzeit-buehne>video,
body.pm-bereich-hochzeit .pm-hochzeit-buehne>img,
body.pm-bereich-hochzeit .pm-hochzeit-buehne>.pm-buehne-film,
body.pm-bereich-hochzeit .pm-hochzeit-buehne .pm-refc-hero-video,
body.pm-bereich-hochzeit .pm-hochzeit-buehne .pm-hero-tonspur{
  inset:var(--pm-buehne-kopf) 0 0 0;height:auto}
/* Der Schleier gehoert zum Bild, nicht zum Streifen darueber. */
body.pm-bereich-hochzeit .pm-hochzeit-buehne-text{margin-top:var(--pm-buehne-kopf)}
/* =====================================================================
   V3.50.178: DER BELEG HATTE SEINE GRUNDREGELN VERLOREN
   =====================================================================
   Chris am 10.09.2026 mit Bild: „Da steht Franken FernsehenRTL Franken Life
   TVüber 20 Jahre hinter der Kamera. Da stimmt was nicht."

   ER HAT RECHT, UND ES WAR EIN SCHNITTFEHLER VON MIR: Beim Umbau des
   Terminfelds in V3.50.176 habe ich einen Block ersetzt, der mehr enthielt,
   als ich dachte — die Grundregeln des Belegs standen unmittelbar davor und
   sind mit weggefallen. Zurueck blieben nur die zwei Regeln aus dem
   Mobil-Abschnitt. GEMESSEN an der laufenden Seite: display „block" statt
   „flex", also keine Abstaende, und content „none", also kein Trennpunkt.

   UND MEIN PRUEFSTAND HAT ES NICHT GESEHEN. Er suchte den SELEKTOR
   „.pm-hochzeit-beleg>span+span::before" — und den gab es ja noch, in der
   Mobil-Regel. Ein Pruefstand, der nach dem Selektor sucht statt nach der
   EIGENSCHAFT, meldet Gruen fuer eine leere Regel. Er prueft ab jetzt
   display:flex und den Inhalt des Trennpunkts.
   ===================================================================== */
/* DER TRENNPUNKT IST GANZ ENTFALLEN — zweiter Anlauf, und diesmal die
   Ursache statt des Symptoms.
   Erst stand er als eigenes Flex-Kind dazwischen und blieb beim Umbruch
   allein am ZEILENENDE stehen. Dann hing er am folgenden Beleg — und stand
   nach dem Umbruch am ZEILENANFANG, wo er wie ein Aufzaehlungszeichen
   aussieht (im Bild bei 375 px vor „ueber 20 Jahre" nachgewiesen).
   BEIDE STELLUNGEN SIND FALSCH, und CSS kann nicht wissen, wo umbrochen
   wird. Ein Zeichen, das nur zwischen zwei Belegen EINER Zeile richtig
   steht, gehoert also nicht in eine Zeile, die umbrechen darf.
   Getrennt wird jetzt durch Abstand: 26 px waagerecht, 6 px senkrecht. Das
   ist beim Umbruch immer richtig — und es nimmt der Zeile das Gold, das auf
   dieser Karte ohnehin dem Knopf gehoert (ein Element je Karte, Handbuch). */
body.pm-bereich-hochzeit .pm-hochzeit-beleg>span{
  display:inline-flex;align-items:center;gap:9px}
/* Die Knospe ist klein und etwas zurueckgenommen: Auf dieser Flaeche traegt
   der Knopf die Markenfarbe. Sie soll den Beleg ankern, nicht mit ihm
   um Aufmerksamkeit ringen. */
body.pm-bereich-hochzeit .pm-beleg-knospe{
  flex:0 0 auto;display:block;width:17px;height:auto;
  color:var(--pm-gold,#D59F3C);opacity:.85}
body.pm-bereich-hochzeit .pm-hochzeit-beleg>span>i{font-style:normal}
body.pm-bereich-hochzeit .pm-hochzeit-beleg{
  display:flex;flex-wrap:wrap;align-items:center;gap:6px 26px;
  margin:22px 0 0;font-size:.92rem;line-height:1.5;font-weight:600;
  letter-spacing:.01em;color:rgba(255,255,255,.86)}
/* =====================================================================
   V3.50.178: DER TEXT LIEGT NICHT MEHR NACKT AUF DEM FILM
   =====================================================================
   Chris am 10.09.2026: „Der Text drunter, da muss man sich schon sehr
   konzentrieren. Kann man den vielleicht vor eine gewisse Unschaerfe setzen,
   dass an der Stelle das Video unscharf wird?"

   GEMESSEN, und zwar am laufenden Bild: Es gab UEBERHAUPT keinen Abdunkler —
   kein ::before, kein ::after, kein Hintergrund am Textblock, kein
   Textschatten. Der Einleitungstext (#ECE7E0, Leuchtdichte 0,804) lag roh
   auf dem Film.

   Im Rechteck des Textes gerechnet:
       mittlere Leuchtdichte des Bildes      0,194
       erlaubt fuer Kontrast 4,5:1           0,140
       Anteil der Flaeche darueber           46,4 %
       Kontrast an den schlechtesten 5 %     1,44:1
   Fast die Haelfte der Flaeche war zu hell. Chris' Empfinden ist damit kein
   Empfinden, sondern ein Messwert.

   SEIN VORSCHLAG IST AUCH TECHNISCH DER RICHTIGE: Ein Weichzeichner nimmt
   nicht nur Unruhe, er zieht die HELLEN SPITZEN zum Mittel — und die Spitzen
   sind das Problem, nicht der Mittelwert. Abgedunkelt wird zusaetzlich.
   Sechs Kombinationen durchgerechnet, jeweils am selben Bild:

       ohne                     Mittel 3,50:1   schlechteste 5 %  1,44:1
       blur 18 · Helligkeit .75        5,86              2,79
       blur 18 · Helligkeit .62        7,48              3,88
       blur 18 · Helligkeit .50        9,31              5,39   ← gewaehlt
       blur 24 · Helligkeit .45       10,27              6,30
       blur 24 · Helligkeit .38       11,55              7,72

   GEWAEHLT IST DER ERSTE, DER HAELT — nicht der dunkelste. Je staerker
   abgedunkelt wird, desto weniger sieht man vom Film, und der Film ist hier
   das Produkt. 5,39:1 an den schlechtesten fuenf Prozent laesst rund 20 %
   Reserve auf die Grenze; ein deutlich helleres Video wuerde diese Reserve
   aufbrauchen, deshalb steht die Zahl hier.

   KEIN KASTEN: Die Maske laeuft weich aus, sonst stuende ein Rechteck im
   Bild. Und wo der Browser backdrop-filter nicht kennt, tritt ein einfacher
   Verlauf an seine Stelle — kein Weichzeichner, aber auch kein nackter Text.
   ===================================================================== */
/* =====================================================================
   V3.50.178: „Hochzeitsfotografie" passte nicht in die Spalte
   =====================================================================
   Beim Nachmessen des Kopfbereichs aufgefallen, nicht gemeldet: Bei 375 px
   ist die Textspalte 328 px breit — das Wort „Hochzeitsfotografie" bei 40 px
   aber 375 px. Es ragte 47 px hinaus (scrollWidth 350 gegen width 328).
   Die Seite lief nicht seitlich mit, das Wort stand einfach ueber der Kante.
   Es ist das erste Wort der Seite auf jedem schmalen Geraet.
   hyphens:auto trennt es an den richtigen Stellen — die Seite ist als
   deutschsprachig ausgezeichnet, sonst wuerde die Silbentrennung nichts tun.
   overflow-wrap ist die Notbremse fuer den Fall, dass ein Browser keine
   deutschen Trennmuster hat: dann bricht das Wort hart, aber es steht drin.
   ===================================================================== */
body.pm-bereich-hochzeit .pm-hochzeit-buehne-text h1{
  -webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}
/* =========================================================================
   V3.50.181 · EINE GEMEINSAME HANDSCHRIFT UEBER DEM BILDMATERIAL
   =========================================================================
   Chris am 10.09.2026 zum Punkt „Bildmaterial neu bzw. gegradet":
   „Das musst DU mit Filter ausgleichen. Ich grade nichts nach."

   RICHTIGSTELLUNG V3.50.182 — ICH HABE ZUERST DAS FALSCHE GEMESSEN.
   Die Begruendung, die hier bis V3.50.181 stand, nannte das Portraet von
   Christian Blank als „einzigen kalten Ausreisser" (Rot minus Blau: -6,2).
   Das war an der QUELLDATEI gemessen. Auf der Seite ist dieses Bild aber
   schwarzweiss — es traegt seit laengerem die Bildwirkung „sw" aus dem CMS,
   also saturate(0). Dort war nie ein Kaeltestich zu sehen. Gemessen wurde die
   Datei, gewirkt hat die Darstellung; das sind zwei verschiedene Dinge, und
   ich habe sie verwechselt.

   GEMESSEN AM LAUFENDEN SYSTEM, 10.09.2026, nach dem Einspielen — neun Bilder
   der Hochzeitsseite, jedes auf 100x100 gerechnet, Mittelwerte in Prozent,
   und zwar mit dem Filter, der wirklich auf ihnen liegt:

       Bild                        Helligkeit  Saettigung  Kontrast  Waerme
       Dalibor & Christine            62,3        53,1       26,7     15,8
       Poster „Eure Geschichte"       42,9        30,2       28,1      9,1
       Frank & Melanie                38,5        25,7       21,2     13,0
       Christian & Corina             45,2        34,8       29,0      7,8
       Edwin & Kerstin                44,1        31,7       30,1     11,7
       Angelika & Karsten             42,8        30,8       30,4      7,7
       Dali & Chrissy                 62,0        54,2       27,3     15,6
       Hochzeitsringe                 22,4        74,9       17,9     26,5
       Portraet Christian Blank       45,5         0,0       25,8      0,0   (schwarzweiss, eigene Wahl)

   UEBER DIE ACHT GETOENTEN BILDER, roh gegen gezeigt:

       Streuung Farbstich     8,25  ->  5,78   (-30 %)
       Streuung Saettigung   19,60  -> 15,98   (-18 %)
       mittlerer Kontrast     23,5  ->  25,1   (bleibt, wird nicht flau)

   Der Gewinn ist also da — nur nicht aus dem Grund, den ich zuerst genannt
   habe. Er kommt daher, dass sepia() denselben Ton ueber jedes Bild legt und
   die einzelnen Eigenstiche ueberstimmt.

   WAS EIN FILTER NICHT KANN, und das gehoert dazugesagt: Er gilt fuer alle
   gleich und korrigiert nicht einzeln. Die BELICHTUNG bleibt ungleich (die
   Streuung der Helligkeit sinkt nicht), und die Hochzeitsringe bleiben mit
   74,9 Prozent Saettigung weit ausserhalb — ein Stimmungsbild mit starkem
   Goldstich laesst sich nicht global einfangen.

   WARUM 0,28 UND NICHT MEHR. Staerker gleicht besser aus. An vier Bildern
   nebeneinander ANGESEHEN kippt aber ab .38 das Gruen der Wiesen und Hecken
   ins Braeunliche, und der Himmel wird warm. Das sieht nach altem Foto aus,
   nicht nach Kinolook — bei einer Sommerhochzeit ist das falsch. Bei 0,28
   bleibt Gruen gruen und das Brautkleid weiss.

   ES GIBT BEREITS EINEN GEPFLEGTEN WEG — promedia_bildwirkung_css() mit den
   Wahlmoeglichkeiten „Unveraendert", „Warm und dunkler", „Dezent gedaempft"
   und „Schwarzweiss". Er greift an zwei Stellen (Story-Bild und Ueber-uns-Bild
   einer Leistungsseite) und setzt einen Inline-Stil, der IMMER gegen diese
   Regel hier gewinnt. Das ist kein Zufall der Spezifitaet, sondern die
   Rangfolge von CSS — die Wahl im CMS sticht den Grundton, und so soll es
   sein: Grundton fuer alle, bewusste Ausnahme je Bild.
   OFFEN UND CHRIS VORGELEGT: Zwei Beschriftungen stimmen dadurch nicht mehr.
   „Unveraendert" heisst jetzt faktisch „Grundton der Seite", und „Warm und
   dunkler - wie die uebrigen Bilder" beschreibt einen Zustand, den die
   uebrigen Bilder nicht mehr haben (dort steht saturate 0,66 gegen 1,02 hier).
   Beides wird erst geaendert, wenn Chris entschieden hat — es sind seine
   gepflegten Bilder.

   WAS AUSGENOMMEN IST, UND WARUM:
   - Das BUEHNENVIDEO. Ein Filter ueber dem laufenden Film waere derselbe
     Fehler wie der Weichzeichner in V3.50.178, den Chris zu Recht kassiert
     hat: „Das Videobanner, das die Leute emotional einfangen soll."
   - LOGOS und ZEICHNUNGEN. Eine getoente Marke ist eine zweite Marke, und es
     gibt genau EINE. SVG ist deshalb generell ausgenommen.
   Die Regel ist eine AUSSCHLUSSLISTE, keine Positivliste: Ein Bild, das Chris
   morgen einsetzt, ist von selbst dabei. Eine Positivliste haette genau das
   nicht, und das Ungleichgewicht waere zurueck, ohne dass es jemand merkt. */
body.pm-bereich-hochzeit img:not(.pm-consent-logo):not(.emoji):not(.pm-kl-symbol):not(.pm-schritt-knospe):not(.pm-beleg-knospe):not([src$=".svg"]){
  filter:sepia(.28) saturate(1.02) contrast(1.04)}
/* Der Film bleibt, wie er gedreht wurde. */
body.pm-bereich-hochzeit video,
body.pm-bereich-hochzeit .pm-hochzeit-buehne img{filter:none}

/* =====================================================================
   V3.50.179: DIE URSACHE STATT DES SYMPTOMS — die Ueberschrift wird
   auf schmalen Geraeten so gross, wie das laengste Wort erlaubt
   =====================================================================
   V3.50.178 hat „Hochzeitsfotografie" mit Silbentrennung in die Spalte
   gezwungen. Das war richtig, aber es kostete eine vierte Zeile — und die
   hat den Terminknopf UNTER die Bildkante geschoben. Nachgemessen bei
   375 x 812: Knopf-Unterkante 826, Bildkante 812, also 14 px zu tief. Der
   zentrale Einstieg der Seite stand damit ausserhalb des ersten Bildes.

   GERECHNET, nicht geraten: Das Wort ist bei 40 px genau 375 px breit, also
   9,375 px je Punkt Schriftgroesse. In eine Spalte von 328 px passt es bis
   34,9 px. Damit das auch auf kleineren Geraeten gilt, waechst die Groesse
   mit der Breite: 8,6 vw ergibt bei 375 px 32,3 px (Wort 302 px in 328 px
   Spalte) und bei 320 px die Untergrenze 28 px (Wort 262 px in 288 px
   Spalte). Ab 465 px Breite steht wieder die volle Groesse.

   DIE SILBENTRENNUNG BLEIBT. Sie ist jetzt die Sicherung fuer den Fall,
   dass jemand eine noch laengere Ueberschrift pflegt — nicht mehr der
   Regelfall.
   ===================================================================== */
@media (max-width:560px){
  body.pm-bereich-hochzeit .pm-hochzeit-buehne-text h1{
    font-size:clamp(28px,8.6vw,40px);line-height:1.1}
}
body.pm-bereich-hochzeit .pm-hochzeit-buehne-text{isolation:isolate}
/* =====================================================================
   V3.50.179: DER WEICHZEICHNER WAR VIEL ZU GROSS UND VIEL ZU STARK
   =====================================================================
   Chris am 10.09.2026 mit Bild: „Jetzt hast Du das Videobanner, das die
   Leute emotional einfangen soll, zu einem Grossteil unscharf gemacht. Das
   kann ja wohl nicht die Loesung sein."

   ER HAT RECHT, UND ES WAREN ZWEI FEHLER IN EINEM:
   1. DIE FLAECHE. Ich haengte den Weichzeichner an .pm-hochzeit-buehne-text
      — und der Block ist auf dem Schreibtisch so breit wie die ganze Seite,
      obwohl der TEXT nur die linke Haelfte nutzt. Gemessen bei 1440 px:
      Buehne 1425 px, Textspalte 640 px, also 45 %. Mit einer Maske von
      125 % Ausdehnung lag der Weichzeichner damit ueber fast dem ganzen
      Film.
   2. DIE STAERKE. 18 px Unschaerfe sind Milchglas. Notwendig war das nie:
      Ueber SECHS Bilder des laufenden Films gemessen, jeweils der
      schlechteste, im Rechteck des Textes:

          ohne                          1,31:1
          blur 4 px · Helligkeit .42    6,33:1   ← gewaehlt
          blur 6 px · Helligkeit .42    6,34:1
          blur 6 px · Helligkeit .36    7,65:1

      VIER PIXEL REICHEN. Die Arbeit macht die Abdunklung, nicht die
      Unschaerfe — der Weichzeichner glaettet nur die hellen Spitzen. Und
      6,33:1 gegen die Grenze von 4,5:1 laesst 40 % Reserve fuer ein
      helleres Video.

   DIE FLAECHE FOLGT JETZT DEM TEXT, nicht seinem Kasten: hoechstens 780 px
   und 62 % der Breite, links verankert, mit einer Maske, die nach rechts
   ausläuft. Auf schmalen Geraeten braucht der Text die volle Breite — dort
   greift die Prozentangabe von selbst.
   ===================================================================== */
body.pm-bereich-hochzeit .pm-hochzeit-buehne-text::before{
  content:"";position:absolute;z-index:-1;pointer-events:none;
  top:-24px;bottom:-30px;left:-6%;width:112%;
  background:linear-gradient(96deg,rgba(12,10,7,.66) 0%,rgba(12,10,7,.46) 52%,rgba(12,10,7,0) 88%)}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  body.pm-bereich-hochzeit .pm-hochzeit-buehne-text::before{
    background:none;
    -webkit-backdrop-filter:blur(4px) brightness(.42);
    backdrop-filter:blur(4px) brightness(.42);
    -webkit-mask-image:radial-gradient(78% 74% at 24% 50%,#000 40%,transparent 86%);
    mask-image:radial-gradient(78% 74% at 24% 50%,#000 40%,transparent 86%)}
}
@media (min-width:900px){
  body.pm-bereich-hochzeit .pm-hochzeit-buehne-text::before{
    left:-3%;width:min(780px,62%)}
}
/* =====================================================================
   V3.50.176: DAS TERMINFELD IM KOPFBEREICH — GELIEHENE GESTALT
   =====================================================================
   Chris am 10.09.2026 mit Bild: „Die runden Ecken des Eingabefeldes und
   des Buttons ‚Termin pruefen‘ sind nicht CI-konform."

   ER HAT RECHT. Gemessen an derselben Seite: Die Felder des
   Anfrageformulars haben Radius 0, keinen Rahmen und eine Unterlinie; der
   Absendeknopf hat 8 px aus --pm-radius. Mein erster Anlauf hatte beiden
   99 px gegeben, also Pillen — und kein einziges Feld dieser Website ist
   eine Pille.

   ES STEHT DESHALB FAST NICHTS MEHR HIER: Feld und Knopf tragen jetzt die
   vorhandenen Bauteile (.pm-anfrage-feld und .pm-button-primary), die
   Beschriftung ist ein .pm-kicker. Diese Regeln setzen nur noch die KARTE,
   die das Ganze auf dem laufenden Film lesbar macht, und die Anordnung.
   Wer spaeter den Markenradius im Branding aendert, aendert diesen Knopf
   mit — genau das war der Sinn der Variablen.
   ===================================================================== */
body.pm-bereich-hochzeit .pm-hochzeit-termin{
  margin:26px 0 0;padding:18px 20px 16px;max-width:520px;
  background:rgba(23,19,12,.62);backdrop-filter:blur(6px);
  border:1px solid rgba(213,159,60,.34);border-radius:var(--pm-radius,8px)}
body.pm-bereich-hochzeit .pm-hochzeit-termin-zeile{display:flex;gap:14px;align-items:flex-end}
/* Die Feldhuelle bringt ihre Gestalt selbst mit; hier steht nur, wie breit
   sie in dieser Zeile sein darf. */
body.pm-bereich-hochzeit .pm-hochzeit-termin .pm-hochzeit-termin-feld{
  flex:1 1 auto;min-width:0;margin:0}
body.pm-bereich-hochzeit .pm-hochzeit-termin .pm-kicker{margin:0 0 6px!important}
body.pm-bereich-hochzeit .pm-hochzeit-termin-knopf{flex:0 0 auto}
body.pm-bereich-hochzeit .pm-hochzeit-termin-zusage{
  margin:14px 0 0;font-size:.9rem;line-height:1.5;color:rgba(255,255,255,.82)}
/* Auf schmalen Geraeten zaehlt jeder Pixel ueber der Bildkante.
   GEMESSEN bei 375 x 812: Der Knopf stand bei 742 px, seine Unterkante bei
   790 — 22 px ueber der Kante. Die Polster sind deshalb hier gestrafft. */
@media (max-width:560px){
  body.pm-bereich-hochzeit .pm-hochzeit-beleg{margin-top:14px;gap:4px 18px;font-size:.88rem}
  body.pm-bereich-hochzeit .pm-hochzeit-termin{margin-top:18px;padding:16px 16px 14px}
  body.pm-bereich-hochzeit .pm-hochzeit-termin-zeile{flex-direction:column;align-items:stretch;gap:16px}
  body.pm-bereich-hochzeit .pm-hochzeit-termin-knopf{width:100%}
  body.pm-bereich-hochzeit .pm-hochzeit-termin-zusage{margin-top:12px;font-size:.86rem}
}
@media(max-width:700px){
  body.pm-bereich-hochzeit .pm-hochzeit-buehne{--pm-buehne-kopf:84px;
    min-height:calc(70vh + var(--pm-buehne-kopf))}}
body .pm-hochzeit-buehne>img{object-position:var(--pm-buehne-fokus,50% 50%)}
body .pm-hochzeit-buehne .pm-hero-tonspur>video{width:100%;height:100%;object-fit:cover;border-radius:0}
/* V3.50.154 — DER FILM DARF LEUCHTEN.
   Chris am 10.09.2026: „Mir ist das alles zu düster. Das sieht eher nach
   Beerdigung aus." Gemessen war der staerkste Einzelbefund genau hier: Der
   Verlauf lag mit .82 unten UND mit .55 noch auf halber Hoehe — also auch
   ueber der Bildmitte, wo gar kein Text steht. Der einzige warme, farbige
   Teil der ganzen Seite kam nicht durch.

   NICHT einfach duenner: Nachgerechnet macht ein flaechiger Verlauf unter .70
   weissen Text auf einer hellen Filmszene unlesbar (4,05:1 statt der
   geforderten 4,5:1). Der Schleier bleibt deshalb stark, WO TEXT STEHT, und
   gibt den Rest frei — entkoppelt statt reduziert.
     unten (Text)   .82 -> .78   Weiss darauf 7,4:1
     22 % (Textkante) ~.72 -> .70  Weiss darauf 4,88:1
     52 % (Bildmitte) .55 -> .18  das Bild kommt durch
     ab 72 %         ~.20 -> 0    freier Himmel */
body .pm-hochzeit-buehne-text{position:relative;z-index:2;width:100%;align-self:flex-end;
  padding:clamp(90px,12vw,150px) 0 clamp(36px,5vw,64px);
  background:linear-gradient(to top,rgba(0,0,0,.78) 0%,rgba(0,0,0,.70) 22%,rgba(0,0,0,.18) 52%,transparent 72%)}
/* V2.30: Keine Silbentrennung in der Ueberschrift. "Hochzeitsfoto-grafie" ueber
   zwei Zeilen liest sich wie ein Fehler; ein umgebrochenes ganzes Wort nicht. */
body .pm-hochzeit-buehne-text h1{margin:0;color:#fff;font-size:clamp(2.2rem,5.2vw,4.4rem);line-height:1.05;
  letter-spacing:-.035em;hyphens:manual;-webkit-hyphens:manual;overflow-wrap:normal;word-break:normal;text-wrap:balance}
body .pm-hochzeit-unterzeile{margin:16px 0 0;color:var(--pm-gold);font-size:clamp(1rem,1.8vw,1.28rem);font-weight:700}
body .pm-hochzeit-buehne-text .pm-refc-lead{margin:18px 0 0;max-width:640px;color:rgba(255,255,255,.86);font-size:clamp(1rem,1.5vw,1.16rem);line-height:1.65}
@media(max-width:700px){body .pm-hochzeit-buehne{min-height:70vh}}
/* V2.20: Mehrere Kundenstimmen untereinander statt einer einzelnen Karte. */
body .pm-refc-testimonial-section .pm-testimonial-card + .pm-testimonial-card,
body .pm-refc-testimonial-section .pm-refc-testimonial-card + .pm-refc-testimonial-card{margin-top:clamp(20px,2.4vw,34px)}
/* V2.26: Bild neben dem Einleitungstext. Zwei Spalten, auf schmalen Bildschirmen
   untereinander - dort steht der Text zuerst, weil er die Haltung traegt. */
body .pm-refc-story.hat-bild>.pm-shell{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);
  gap:clamp(28px,4vw,58px);align-items:center}
body .pm-story-titel{margin:0 0 22px;font-size:clamp(1.9rem,3.4vw,2.9rem);line-height:1.08;letter-spacing:-.035em;color:#111}
body .pm-story-bild{margin:0}
body .pm-story-bild{border-radius:14px;overflow:hidden;aspect-ratio:4/3}
body .pm-story-bild img{display:block;width:100%;height:100%;object-fit:cover}
@media(max-width:820px){body .pm-refc-story.hat-bild>.pm-shell{grid-template-columns:1fr}}
body .pm-refc-ueber{padding:clamp(80px,8vw,120px) 0;background:#f3f1ec;color:#111}

/* =====================================================================
   V3.50.17: Die Stimmenkarten stehen auf einer Ebene
   =====================================================================
   Chris, 05.09.2026: „Ich finde das nicht gut, dass die nicht auf der gleichen
   Ebene anfangen, sondern so absacken. Die Boxen sollten in der gleichen Ebene
   sein."

   Gemessen: Karte 1 beginnt bei 5900 px, Karte 2 bei 5920 px. Ursache ist
   `margin-top:20px` auf jeder zweiten Karte - ein bewusst versetztes Layout.
   Beide enden unten exakt bündig (6345 px); der Versatz sitzt also nur oben.
   Ohne den Rand starten und enden beide auf derselben Linie. */
body :is(.pm-stimmen-lauf,.pm-refc-testimonial-section) .pm-testimonial-card{
  margin-top:0!important}

/* =====================================================================
   V3.50.17: Blaetterknoepfe nur dort, wo sie etwas tun
   =====================================================================
   Chris: „Diese Blaetterknoepfe haben hier ueberhaupt keine Funktion. Die haben
   nur eine Funktion auf dem Smartphone."

   Nachgemessen, und der erste Verdacht war falsch. Das Theme kennt die Regel
   laengst und setzt `nav.hidden = true`, sobald die letzte Karte vollstaendig
   sichtbar ist. Nur wirkt das nicht - denn eine Zeile weiter oben in DIESER
   Datei steht:

       body .pm-stimmen-nav{display:flex; ...}

   Diese Regel hat mehr Gewicht als die Browservorgabe `[hidden]{display:none}`.
   Sie uebermalt das Verstecken. Der Fehler sass also im Plugin, nicht im Theme.

   Der erste Anlauf war eine Medienabfrage ab 900 px. Die Messung hat sie
   verworfen: Bei sechs Stimmen auf 1440 px GIBT es etwas zu blaettern, und die
   Abfrage haette die funktionierenden Knoepfe mit weggeraeumt. Ein Fehler, den
   ich mit einer Bildschirmbreite eingebaut haette, statt ihn zu beheben.

   Deshalb steht hier jetzt genau eine Zeile: `[hidden]` wirken lassen. Dann
   entscheidet die eigentliche Bedingung - gibt es etwas zu blaettern - und
   zwar auf jeder Breite und bei jeder Anzahl Karten. */
body .pm-stimmen-nav[hidden]{display:none!important}

/* =====================================================================
   V3.50.154: DIE KUNDENSTIMMEN STEHEN WIEDER IM HELLEN — aber abgesetzt
   =====================================================================
   Was hier stand, ist ENTFERNT und nicht ueberschrieben: V3.50.16 hatte die
   Stimmen auf #130F0C gestellt, und der Grund dafuer war richtig. Chris am
   05.09.2026: „Jetzt fliesst der Abschnitt ueber mich ineinander ueber mit
   den Stimmen nach der Hochzeit." Gemessen waren „Ueber mich" #F3F1EC und
   die Stimmen #F4F2EE — 0,6 Prozentpunkte Unterschied, optisch EINE Flaeche.

   Chris am 10.09.2026 hat dem Entwurf zugestimmt, die Stimmen ins Helle zu
   holen: Es ist die freundlichste Passage der Seite, Paare erzaehlen von
   ihrem Tag. Auf schwarzem Grund liest sich das falsch.

   ABER: Sie einfach hell zu machen brächte den Mangel von V3.50.16 zurueck.
   Der Rhythmus muss also anders entstehen — nicht durch Schwarz, sondern
   durch eine ABGESETZTE helle Flaeche. #EBE3D6 liegt 6,5 Prozentpunkte unter
   der Nachbarflaeche (statt 0,6) und traegt denselben Farbton wie das Gold.
   Gemessen: Fliesstext 7,64:1, weisse Karten heben sich mit 1,27:1 ab.
   Hell und trotzdem als eigener Abschnitt lesbar. */
body.pm-bereich-hochzeit .pm-refc-testimonial-section{
  background:#EBE3D6!important}
/* =====================================================================
   V3.50.168: Der abgesetzte Papierton bekommt eine zweite Aufgabe
   =====================================================================
   Gemessen wurden alle zehn Nahtstellen der Hochzeitsseite. Fuenf liegen
   unter 1,15 Farbabstand — und die zwischen den Paketen und den Fragen
   ist mit 1,01 praktisch unsichtbar, bei 224px Leerraum dazwischen.

   Hier steht ABSICHTLICH kein drittes Zierzeichen. Die Unterscheidung:
     Ein Fleuron sagt  "hier geht derselbe Gedanke weiter".
     Ein Farbwechsel sagt "hier beginnt etwas Neues".
   "Was ich anbiete" → "Haeufige Fragen" ist ein Registerwechsel: vom
   Angebot zu den Antworten. Das ist ein neuer Abschnitt, kein
   Fortsetzungsgedanke — also eine Kante, kein Zeichen.

   Genommen wird der Ton, der schon Regel ist (#EBE3D6, oben), und kein
   dritter erfunden. Die Kundenstimmen tragen ihn ebenfalls; dazwischen
   liegen der Ablauf und die Pakete, also lesen sich die beiden nicht als
   eine Flaeche. */
body.pm-bereich-hochzeit .pm-refc-faq{background:#EBE3D6}
body.pm-bereich-hochzeit .pm-refc-testimonial-section :is(h1,h2,h3){
  color:#17171a!important;-webkit-text-fill-color:#17171a!important}
body.pm-bereich-hochzeit .pm-refc-testimonial-section>.pm-shell>:is(p,.pm-kicker):not(.pm-kicker){
  color:#4a433c!important}
body.pm-bereich-hochzeit .pm-refc-testimonial-section .pm-kicker{
  color:var(--pm-primary,#D59F3C)!important;-webkit-text-fill-color:var(--pm-primary,#D59F3C)!important}
/* Die Karten bleiben weiss — auf dem abgesetzten Grund heben sie sich jetzt
   ab, ohne dass es dafuer Schwarz braucht.

   V3.50.155, MEIN FEHLER IN V3.50.154: Hier standen ZWEI Klassennamen
   nebeneinander, .pm-testimonial-card und .pm-refc-testimonial-card, als
   waeren sie dasselbe. Sind sie nicht — gemessen im laufenden System:
     .pm-testimonial-card      = die Karte selbst (blockquote, 370 px)
     .pm-refc-testimonial-card = der LAUFCONTAINER um beide Karten (760 px)
   Beide weiss zu faerben ergab einen weissen Streifen hinter und unter den
   Zitaten. Chris: „Die Zitate stehen jetzt auf einem seltsamen weissen
   Streifen, der sich noch unten anschliesst."

   Auf dem alten dunklen Grund waere das nie aufgefallen — dort war der
   Container ohnehin unsichtbar. Die Lehre: Zwei Namen, die gleich AUSSEHEN,
   sind nicht dasselbe DING. Wer sie ohne Messung zusammenfasst, faerbt
   irgendwann etwas, das er nie gesehen hat. */
body.pm-bereich-hochzeit .pm-refc-testimonial-section .pm-testimonial-card{
  background:#fff!important;--pm-verweis:#1D1D1F}
body.pm-bereich-hochzeit .pm-refc-testimonial-section .pm-refc-testimonial-card{
  background:transparent!important;box-shadow:none!important}

/* Und weil zwei helle Flaechen weiterhin aneinanderstossen (Ueber mich folgt
   auf die Werke), bekommt der Ueber-mich-Abschnitt oben und unten mehr Luft.
   Ein Abschnitt braucht Rand, um als Abschnitt gelesen zu werden. */
body.pm-bereich-hochzeit .pm-refc-ueber{
  padding-top:clamp(96px,9vw,140px);padding-bottom:clamp(96px,9vw,140px)}
body .pm-refc-ueber .pm-refc-audiences-head h2{color:#111!important}
body .pm-refc-ueber-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(28px,4vw,60px);align-items:start}
body .pm-refc-ueber-text p{margin:0 0 18px;font-size:clamp(1.02rem,1.5vw,1.2rem);line-height:1.72;color:#2b2b2b}
body .pm-refc-ueber-text p:last-child{margin-bottom:0}
body .pm-refc-ueber-bild{margin:0}
body .pm-refc-ueber-bild{border-radius:14px;overflow:hidden;aspect-ratio:4/5}
body .pm-refc-ueber-bild img{display:block;width:100%;height:100%;object-fit:cover}
@media(max-width:820px){body .pm-refc-ueber-grid{grid-template-columns:1fr}
  body .pm-refc-ueber-bild{order:-1;max-width:340px}}
body .pm-hochzeit-anfrage .pm-anfrage{padding-top:clamp(70px,7vw,110px)}
/* V2.13: Kopfbereich des Hochzeitsauftritts. Bewusst dieselbe Bauform wie im
   B2B-Kopf - nur Menue und Klickziel unterscheiden sich. Wer beide Bereiche
   sieht, soll denselben Absender erkennen, ohne dieselbe Ansprache zu bekommen.
   Im Footer blendet der Hochzeitsbereich die B2B-Navigation aus; Impressum,
   Datenschutz und AGB bleiben, weil sie rechtlich erreichbar sein muessen. */
body.pm-bereich-hochzeit .pm-footer-column[aria-label="Footer Navigation"]{display:none}
body.pm-bereich-hochzeit .pm-footer-grid{gap:clamp(28px,4vw,60px)}
/* V2.10: Zeilen gleicher Hoehe statt starrem Raster.
   Jede Kachel bekommt ueber --pm-ratio ihr Seitenverhaeltnis. flex-grow und
   flex-basis wachsen proportional dazu, damit eine Zeile ohne Luecke aufgeht und
   die Verhaeltnisse dabei nahezu erhalten bleiben - das ist die Anordnung, die
   Fotoportale verwenden. Ein Hochformat steht damit aufrecht neben einem
   Querformat, statt in einen 16:9-Rahmen gezwaengt zu werden. */
/* V2.11: Die Kachel traegt exakt das Seitenverhaeltnis ihres Bildes.
   In V2.10 wuchsen die Kacheln ueber flex-grow auf volle Zeilenbreite - damit wich
   ihr Verhaeltnis vom Bild ab und es entstanden schwarze Flaechen. Jetzt gibt die
   Zeilenhoehe die Groesse vor, die Breite folgt dem Verhaeltnis, und nichts wird
   gestreckt. Bleibt am Zeilenende Platz, wird die Zeile mittig gesetzt - eine
   Luecke ist harmloser als ein Balken im Bild. */
body .pm-refc-media-grid{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start;justify-content:center;grid-template-columns:none}
body .pm-refc-media-item{flex:0 1 auto;min-width:0;margin:0;position:relative}
body .pm-refc-media-grid>.pm-refc-media-item>.pm-refc-media-frame{height:clamp(190px,24vw,290px);width:auto;aspect-ratio:var(--pm-ratio,1.78);overflow:hidden;background:transparent}
body .pm-refc-media-grid>.pm-refc-media-item>.pm-refc-media-frame>img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:auto}
/* Ein einzelnes Modul behaelt die grosse Buehne. */
body .pm-refc-media-grid:has(.pm-refc-media-item:only-child)>.pm-refc-media-item{flex:1 1 100%}
body .pm-refc-media-grid:has(.pm-refc-media-item:only-child)>.pm-refc-media-item>.pm-refc-media-frame{height:auto;aspect-ratio:21/9}
body .pm-refc-media-grid:has(.pm-refc-media-item:only-child)>.pm-refc-media-item>.pm-refc-media-frame:has(video),
body .pm-refc-media-grid:has(.pm-refc-media-item:only-child)>.pm-refc-media-item>.pm-refc-media-frame:has(iframe),
body .pm-refc-media-grid:has(.pm-refc-media-item:only-child)>.pm-refc-media-item>.pm-refc-media-frame:has(.pm-media-gate:not(.is-portrait)){aspect-ratio:16/9}
body .pm-refc-media-grid:has(.pm-refc-media-item:only-child)>.pm-refc-media-item>.pm-refc-media-frame:has(.pm-media-gate.is-portrait){aspect-ratio:auto;display:flex;align-items:center;justify-content:center;background:#050505}
/* V2.10: Beim Darauffahren wird die Kachel gross und schliesst sich wieder, sobald
   der Zeiger sie verlaesst. Vergroessert wird der Rahmen samt Inhalt - dadurch
   waechst auch die Flaeche, die den Zustand haelt, und es gibt kein Flackern an
   der Kante. Am Zeilenanfang und -ende waechst die Kachel nach innen, damit sie
   nicht aus dem Bild laeuft. */
body .pm-refc-media-grid>.pm-refc-media-item>.pm-refc-media-frame{transition:transform .28s ease,box-shadow .28s ease;will-change:transform}
/* V2.12: Nur Bilder wachsen. Die Regel galt bisher fuer jede Kachel und damit
   auch fuer selbst gehostete Videos - dort ist das falsch: Ein Video traegt eigene
   Bedienelemente, und ein Rahmen, der unter dem Zeiger seine Groesse aendert,
   macht das Treffen von Abspielknopf und Zeitleiste unmoeglich. */
body .pm-refc-media-grid>.pm-refc-media-item:has(>.pm-refc-media-frame>img):hover{z-index:40}
body .pm-refc-media-grid>.pm-refc-media-item:hover>.pm-refc-media-frame:has(>img){transform:scale(1.9);box-shadow:0 24px 70px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.12);cursor:zoom-in}
body .pm-refc-media-grid>.pm-refc-media-item:first-child:hover>.pm-refc-media-frame:has(>img){transform-origin:left center}
body .pm-refc-media-grid>.pm-refc-media-item:last-child:hover>.pm-refc-media-frame:has(>img){transform-origin:right center}
/* Die alte Vergroesserung des Beitragsbild-Rahmens wuerde sich damit ueberlagern. */
body .pm-refc-media-frame:has(>img):hover{transform:none}
@media(hover:none){body .pm-refc-media-grid>.pm-refc-media-item:hover>.pm-refc-media-frame:has(>img){transform:none;box-shadow:none}}
@media(max-width:700px){body .pm-refc-media-grid>.pm-refc-media-item{flex:1 1 100%}body .pm-refc-media-grid>.pm-refc-media-item>.pm-refc-media-frame{height:auto;aspect-ratio:var(--pm-ratio,1.78)}}
/* V2.09: Bilder, die nichts abschneiden.
   "Eigenformat" nimmt dem Rahmen das feste 16:9 und laesst ihn dem Bild folgen -
   kein Beschnitt und kein Rand. "Vollstaendig" behaelt den Rahmen und stellt das
   Bild hinein; die Flaeche daneben bleibt dunkel. Die Zoom-Regel des Beitragsbildes
   (:has(>img)) greift auf beide bewusst nicht zu: Wer ein Bild vollstaendig zeigen
   will, will es beim Zeigen nicht wieder vergroessert bekommen. */
body .pm-refc-media-frame:has(>img.pm-bild-eigenformat){aspect-ratio:auto;height:auto;background:transparent}
body .pm-refc-media-frame>img.pm-bild-eigenformat{width:100%;height:auto;object-fit:contain;display:block}
body .pm-refc-media-frame>img.pm-bild-vollstaendig{width:100%;height:100%;object-fit:contain;display:block}
body .pm-refc-media-frame:has(>img.pm-bild-eigenformat):hover,
body .pm-refc-media-frame:has(>img.pm-bild-vollstaendig):hover{transform:none;box-shadow:none;cursor:default}
/* V3.28: Grundlegender Umbau der Text-/Hintergrundfarben in diesem gesamten
   Baustein (Ueberschrift, Karten, Pakete) auf CSS-Variablen statt einzeln
   verstreuter Farbwerte.
   Anlass: Vier aufeinanderfolgende Einzelkorrekturen (V3.19, V3.20, V3.23, V3.25)
   an genau diesem Baustein - jede hat ein neu gemeldetes Symptom behoben, aber
   nicht die Ursache: Es gibt zwei unabhaengige Farbsysteme (Theme und Plugin) fuer
   dieselben Elemente, mit Werten, die von Hand an mehreren Stellen synchron
   gehalten werden mussten. Die Aufzaehlungspunkte in den Fotografie-Paketen
   (dunkler Text auf dunkler Karte) waren so ein Fall, der bislang nie einzeln
   gemeldet wurde, weil "li" bislang schlicht nie mitgepflegt wurde.
   Jetzt: Zwei Variablen (--of-primaer, --of-sekundaer, --of-tertiaer) werden
   GENAU EINMAL definiert - einmal fuer den dunklen Standardfall, einmal fuer den
   hellen Hochzeitsbereich (body.pm-bereich-hochzeit). Jede Textregel in diesem
   Baustein - Ueberschrift, Kartentitel, Absaetze, Listenpunkte, Preis, Knopf -
   liest ausschliesslich aus diesen Variablen. Aendert sich kuenftig ein Farbwert,
   genuegt eine Aenderung an einer von zwei Stellen, nicht mehr eine Fahndung durch
   den ganzen Baustein. Jede Anwendungsregel traegt bewusst die Zusatzklasse
   ".pm-refc-audience(s)" als Vorfahre, damit sie in der Spezifitaet zuverlaessig
   vor der theme-eigenen Sammelregel liegt (siehe style.css, Zeile ~1684) - nicht
   mehr abhaengig von Ladereihenfolge oder Zufallstreffern bei gleicher
   Spezifitaet. */
body .pm-refc-audiences{
  --of-primaer:#fff; --of-sekundaer:rgba(255,255,255,.66); --of-tertiaer:rgba(255,255,255,.5);
  padding:clamp(80px,8vw,120px) 0;background:#130f0c;color:var(--of-primaer)}
body.pm-bereich-hochzeit .pm-refc-audiences{
  --of-primaer:#2a2520; --of-sekundaer:#4a433c; --of-tertiaer:#6b625a;
  background:#f4f2ee}
body .pm-refc-audiences-head{max-width:760px;margin:0 0 clamp(34px,4vw,52px)}
body .pm-refc-audiences .pm-refc-audiences-head h2{margin:0;font-size:clamp(2.4rem,4.4vw,4.2rem);line-height:1.04;letter-spacing:-.045em;color:var(--of-primaer)!important}
/* V2.40: Zeilen gleichmaessig verteilen. Ohne diese Angabe bleibt bei langen
   Ueberschriften ein einzelnes Wort in der letzten Zeile stehen. */
body.pm-bereich-hochzeit .pm-refc-audiences-head h2,
body.pm-bereich-hochzeit .pm-story-titel{text-wrap:balance}
body .pm-refc-audiences-head .pm-kicker{margin:0 0 18px!important;font-size:.8rem;font-weight:900;letter-spacing:.17em;text-transform:uppercase;color:var(--pm-gold)}
body .pm-refc-audiences-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
body .pm-refc-audience{padding:30px 28px;border:1px solid rgba(255,255,255,.14);border-radius:16px;background:rgba(255,255,255,.03);transition:transform .28s ease,border-color .28s ease}
body .pm-refc-audience:hover{transform:translateY(-3px);border-color:rgba(213,159,60,.55)}
body .pm-refc-audiences .pm-refc-audience h3{margin:0 0 12px;font-size:1.35rem;letter-spacing:-.02em;color:var(--of-primaer)!important}
body .pm-refc-audiences .pm-refc-audience p{margin:0;color:var(--of-sekundaer)!important;line-height:1.65;font-size:.98rem}
body .pm-refc-process{padding:clamp(80px,8vw,120px) 0;background:#f4f2ee;color:#111}
body .pm-refc-process .pm-refc-audiences-head h2{color:#111!important}
body .pm-refc-process-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px}
/* V3.50.170: DIE VIER SCHRITTE STEHEN JETZT IN EINER FLUCHT.
   ------------------------------------------------------------------------
   ANLASS, Chris am 10.09.2026 mit Bild: „Beratung, Konzeption, Produktion,
   Auslieferung ist voellig unruhig, das flattert. Sieht nicht gut aus."

   GEMESSEN an der Live-Seite: Die vier Listenpunkte beginnen alle bei 6283
   und sind alle 249 px hoch — die PUNKTE stehen also gleich. Ihr INHALT
   nicht: „Beratung", „Konzeption" und „Produktion" trugen ihre Ueberschrift
   bei 6384, „Auslieferung" bei 6335 — 49 px Unterschied.

   URSACHE: Jeder Punkt ist selbst ein Raster. Das Raster ist so hoch wie der
   laengste Punkt (Auslieferung, sechs Zeilen Text). In den drei kuerzeren
   bleibt Luft uebrig, und ohne Angabe verteilt CSS diese Luft ZWISCHEN den
   Zeilen — die Ueberschrift rutscht nach unten, und zwar in jedem Punkt
   unterschiedlich weit. Das ist das Flattern.

   `align-content:start` packt die Zeilen nach oben und sammelt die Luft
   darunter. Nachgemessen: Ueberschriften vorher 6384/6384/6384/6335, danach
   viermal 6335 — Spanne 0. */
body .pm-refc-process-list li{display:grid;gap:14px;align-content:start}
/* V3.25: Eine (aeltere, generische) Theme-Regel fuer Text auf Bildueberlagerungen
   enthaelt in ihrer Selektorliste versehentlich auch ".pm-refc-process-list span" -
   dadurch wurden die Ablauf-Nummern (01-04) cremefarben statt golden, was neben der
   dunklen Kreisflaeche kaum noch als Akzentfarbe wahrnehmbar war ("wirkt hart und
   lieblos"). Eigene, unmissverstaendliche Regel mit !important, damit das nicht von
   einer fuer ganz andere Bausteine gedachten Sammelregel mitgerissen wird. */
body /* V3.50.168: Der Ziffernkreis liest seinen Ton aus --pm-ziffernkreis.
   Chris am 10.09.2026: "Diese eins zwei drei vier … das sollte kein Schwarz
   sein, sondern eher son Braunton."
   Er war nie schwarz — #17130f hat 34,8 % Saettigung. Er WIRKTE so, weil
   seine Helligkeit bei 9 % lag: Auf 38px sieht das Auge dort keine
   Saettigung mehr. Deshalb waere "derselbe Ton wie die Hochzeitsseite"
   wirkungslos gewesen (#17130C hat exakt dieselbe Helligkeit, Unterschied
   1,0:1). Der neue Wert hat die doppelte Helligkeit; das Gold steht darauf
   mit 6,40:1.
   Die Variable definiert das Theme (V1.29). Es gibt ZWEI Bauteile fuer
   diese Kreise — dieses hier und .pm-about-process-card>strong im Theme.
   Beide lesen denselben Wert; der erste Anlauf hatte nur eines erwischt. */
.pm-refc-process-list li>span{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:var(--pm-ziffernkreis,#2E241A);color:var(--pm-gold)!important;font-size:.82rem;font-weight:900}
/* V3.50.173: Die Schrittmarke der Hochzeitsseite.
   ------------------------------------------------------------------------
   Gebaut wie das Zierzeichen daneben: Zeichen und Haarlinie in Gold, nur die
   linke Haarlinie ist hier durch die Ziffer ersetzt. Die Herleitung, die
   Kontrastrechnung (Gold auf #F4F2EE = 2,12:1 und damit als Ziffer
   unbrauchbar, Braun = 13,58:1) und der Grund fuer Roemisch stehen bei
   promedia_ablauf_schrittmarke().
   Die Regel muss den Kreis oben VOLLSTAENDIG zuruecknehmen - Flaeche, Masse,
   Rundung, Schriftstaerke. Ein halb zurueckgenommener Kreis waere ein
   goldener Fleck hinter der Ziffer. */
body.pm-bereich-hochzeit .pm-refc-process-list li>span.pm-schritt-marke{
  display:flex;align-items:center;justify-content:flex-start;gap:10px;
  width:auto;height:auto;min-height:30px;border-radius:0;background:none;
  color:var(--pm-gold,#D59F3C)!important;font-size:1rem;font-weight:400}
body.pm-bereich-hochzeit .pm-refc-process-list .pm-schritt-ziffer{
  flex:0 0 auto;
  /* V3.50.180: EINE Serifenquelle. Hier stand die Liste bis heute ein zweites
     Mal ausgeschrieben - und als das Theme in V1.32 auf Cormorant Garamond
     umgestellt wurde, waeren die Ueberschriften mitgegangen und die Ziffern
     als einzige in Iowan Old Style stehengeblieben. Genau der Bruch, gegen den
     die stehende Regel „ein Bauteil, eine Quelle" gebaut ist.
     Der Rueckfall in der var() ist die alte Liste: Wer dieses Plugin ohne das
     Theme betreibt, sieht weiter das, was er bisher sah. */
  font-family:var(--pm-serife,"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif);
  font-size:1.62rem;line-height:1;font-weight:400;
  letter-spacing:.08em;margin-right:-.08em;text-align:left;
  color:var(--pm-ziffernkreis,#2E241A)!important;
  font-variant-numeric:oldstyle-nums}
body.pm-bereich-hochzeit .pm-refc-process-list .pm-schritt-knospe{
  flex:0 0 auto;display:block;width:34px;height:auto;
  color:var(--pm-gold,#D59F3C)}
body.pm-bereich-hochzeit .pm-refc-process-list .pm-schritt-linie{
  flex:1 1 auto;min-width:0;height:1px;
  background:linear-gradient(90deg,rgba(213,159,60,.5),transparent)}
body .pm-refc-process-list h3{margin:0 0 8px;font-size:1.2rem;letter-spacing:-.02em}
body .pm-refc-process-list p{margin:0;color:#5a5a5a;line-height:1.6;font-size:.94rem}
body .pm-refc-faq{padding:clamp(80px,8vw,120px) 0;background:#f3f1ec;color:#111}
/* V1.77: Preisabschnitt. Dunkel gehalten wie die uebrigen Abschnitte auf schwarzem Grund -
   der FAQ-Block davor ist hell, dadurch setzt sich der Preis ab, ohne zu schreien. Die
   Bruttozahl steht typografisch gleichrangig zur Nettozahl; sie ist gegenueber Verbrauchern
   der Gesamtpreis und darf nicht wie eine Fussnote wirken. */
body .pm-refc-media:has(.pm-refc-hero-video){background:#100d0a}
body .pm-refc-hero-video{background:#100d0a}
body .pm-refc-preis{padding:clamp(80px,8vw,120px) 0;background:var(--pm-black,#0a0a0a);color:#fff}
body .pm-preis-karte{max-width:760px;padding:38px 36px;border:1px solid rgba(213,159,60,.32);border-radius:16px;background:rgba(255,255,255,.03)}
/* V3.50.189, GEMESSEN AM GEZEICHNETEN ZUSTAND: Diese Zeile trug das Gold —
   und damit stand in EINER Karte ein zweites goldenes Element neben dem „ab“.
   Corporate Design Handbuch, Kapitel 1: „Pro Karte oder Dialog trägt ein
   einziges Element diese Farbe — zwei gleich laute Elemente konkurrieren,
   statt zu führen.“ Gemessen auf /promedia-leistung/filmproduktion/: zwei
   Träger von #D59F3C.

   WARUM DAS „ab“ DAS GOLD BEHÄLT und nicht die Produktbezeichnung: Das „ab“
   trägt eine kaufmännische Einschränkung — es sagt, dass der Betrag kein
   Endpreis ist. Die Produktbezeichnung ist durch Versalien, Fettung und
   Sperrung ohnehin deutlich; sie braucht die Farbe nicht, um gelesen zu
   werden. Wer die Aufmerksamkeit vom „ab“ wegnimmt, nimmt sie einer Angabe,
   auf die es bei einem Preis ankommt. */
body .pm-preis-produkt{margin:0 0 12px;font-size:.92rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:rgba(255,255,255,.78)}
body .pm-preis-haupt{margin:0;font-size:clamp(2.6rem,5vw,4rem);line-height:1;letter-spacing:-.04em;font-weight:800;color:#fff}
body .pm-preis-ab{font-size:.36em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--pm-gold,#d59f3c);vertical-align:.55em;margin-right:.35em}
body .pm-preis-steuer{margin:14px 0 0;font-size:1.02rem;color:rgba(255,255,255,.78);line-height:1.6}
body .pm-preis-hinweis{margin:18px 0 0;padding-top:18px;border-top:1px solid rgba(255,255,255,.14);font-size:.96rem;color:rgba(255,255,255,.62);line-height:1.65}
@media(max-width:700px){body .pm-preis-karte{padding:28px 22px}body .pm-preis-ab{vertical-align:.4em}}
body .pm-refc-faq .pm-refc-audiences-head h2{color:#111!important}
body .pm-refc-faq-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 22px;align-items:start}
body .pm-refc-faq-item{background:#fff;border:1px solid #e3ddce;border-radius:14px;padding:6px 26px}
body .pm-refc-faq-item summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0;font-weight:750;font-size:1.02rem;cursor:pointer}
body .pm-refc-faq-item summary::-webkit-details-marker{display:none}
body .pm-refc-faq-item summary i{flex:0 0 auto;font-style:normal;color:var(--pm-gold);font-size:1.3rem;font-weight:400;transition:transform .22s ease}
body .pm-refc-faq-item[open] summary i{transform:rotate(45deg)}
body .pm-refc-faq-answer{padding:0 0 22px}
body .pm-refc-faq-answer p{margin:0;color:#4d4d4d;line-height:1.65;font-size:.98rem}
@media(max-width:1000px){
body .pm-refc-audiences-grid{grid-template-columns:1fr}
body .pm-refc-process-list{grid-template-columns:repeat(2,minmax(0,1fr))}
body .pm-refc-faq-list{grid-template-columns:1fr}}
@media(max-width:700px){body .pm-refc-process-list{grid-template-columns:1fr}}body .pm-refc-hero-grid{align-items:start!important}
body .pm-refc-media img{width:100%;height:100%;object-fit:cover}
body .pm-refc-stats>*{background:rgba(255,255,255,.05)!important;border:1px solid rgba(255,255,255,.14)!important;border-radius:14px!important;box-shadow:none!important;padding:18px 22px!important}
body .pm-refc-stats>* strong{color:var(--pm-gold)!important}
body .pm-refc-stats>* span{color:rgba(255,255,255,.62)!important}
body .pm-refc-hero{padding-bottom:clamp(40px,4vw,56px)!important}

/* =====================================================================
   V3.50.154: WENN DUNKEL, DANN WARM — und nur auf der Hochzeitsseite
   =====================================================================
   Alle Regeln hier tragen body.pm-bereich-hochzeit. Chris' Auftrag galt der
   Hochzeitsseite; die uebrigen Referenzseiten bleiben Zeichen fuer Zeichen
   wie sie sind. Ein Eingriff, der mehr aendert als beauftragt, ist kein
   grosszuegiger Eingriff, sondern ein unkontrollierter.

   Der Medienbereich BLEIBT dunkel: Dort laeuft ein Filmspieler, und der
   braucht die ruhige Flaeche. Nur das Schwarz wird warm. */
body.pm-bereich-hochzeit .pm-refc-media-section{background:#1D1911!important}
/* =====================================================================
   V3.50.175: DIE ZWEI RUBRIKEN DER ARBEITEN
   =====================================================================
   „Filme" fuehrt, „Auch fotografisch" folgt. Die Nachrangigkeit steht
   NICHT in kleinerer Schrift — das laese sich als „weniger gut" lesen,
   und die Fotostrecken sind nicht schlechter, sie sind ein anderes
   Produkt. Sie steht im WORT („Auch"), im Abstand davor und in einer
   ruhigeren Kachelgroesse. Der Inhalt selbst bleibt vollwertig.
   ===================================================================== */
body.pm-bereich-hochzeit .pm-refc-projects-rubrik{
  margin:0 0 22px;font-size:clamp(1.35rem,2.4vw,1.75rem);line-height:1.15;
  letter-spacing:-.02em;color:var(--of-primaer,#fff)}
body.pm-bereich-hochzeit .pm-refc-projects-rubrik.ist-nachrangig{
  margin-top:clamp(52px,6vw,80px);
  padding-top:clamp(30px,3.5vw,44px);
  border-top:1px solid rgba(213,159,60,.22)}
/* Die zweite Reihe laeuft eine Spalte breiter, die Kacheln werden dadurch
   ruhiger. Unter 1000 px greift ohnehin das Grundraster. */
@media (min-width:1001px){
  body.pm-bereich-hochzeit .pm-refc-projects-grid.ist-nachrangig{
    grid-template-columns:repeat(4,minmax(0,1fr))}
}
body.pm-bereich-hochzeit .pm-refc-hero{background:#17130C!important}
body.pm-bereich-hochzeit .pm-refc-bridge{background:#17130C!important}
body.pm-bereich-hochzeit .pm-refc-media:has(.pm-refc-hero-video),
body.pm-bereich-hochzeit .pm-refc-hero-video{background:#17130C}
body.pm-bereich-hochzeit .pm-breadcrumbs{background:#17130C}
body .pm-refc-bridge{padding-bottom:clamp(48px,5vw,68px)!important}
/* V3.50.155: Der Satz „Ein Tag, der bleibt." braucht oben Luft.
   Chris am 10.09.2026: „Ein Tag, der bleibt, klebt jetzt am Film … Das muss
   doch mittig dann sein oder zumindest im oberen Drittel, aber noch nicht
   direkt an der Kante."

   FOLGE EINER EIGENEN AENDERUNG: Solange der Film unten mit 82 % Schwarz
   zugedeckt war, ging er weich in die dunkle Bruecke ueber — die Kante war
   unsichtbar, und der Satz sass scheinbar frei. Seit V3.50.154 leuchtet der
   Film bis zur Unterkante; damit ist die Kante hart geworden und der fehlende
   Abstand faellt auf. Nicht der Abstand ist neu, sondern seine Sichtbarkeit.
   Wer eine Flaeche aufhellt, muss ihre Raender neu ansehen. */
body.pm-bereich-hochzeit .pm-refc-bridge{
  padding-top:clamp(60px,6.5vw,92px)!important;
  padding-bottom:clamp(52px,5.5vw,76px)!important}

/* V3.50.18 (Chris, 05.09.2026): "Unten links das Wort Bearbeiten verdeckt
   einen Teil der Seite. Das sollte ganz unten rechts stehen und keine
   anderen Felder verdecken."

   Zwei Dinge, nicht eines. Das Verschieben nach rechts allein waere nur ein
   Umzug des Problems - dort steht die Symbolreihe des Fusses. Ein Element,
   das im Fenster klebt, liegt immer ueber irgendetwas; die einzige Stelle,
   an der das stoert, ist das Seitenende, wo man nicht weiterscrollen kann.
   Deshalb bekommt der Fuss unten so viel Luft, wie die Schaltflaeche hoch
   ist - und zwar nur dann, wenn es sie ueberhaupt gibt. Die Luft liegt IM
   Fuss, traegt also dessen Farbe; es entsteht keine Kante. */
body .pm-refc-editbar{position:fixed;left:auto;right:22px;bottom:22px;z-index:1200;width:auto;background:rgba(12,12,12,.92);border:1px solid rgba(213,159,60,.45);border-bottom:1px solid rgba(213,159,60,.45);border-radius:999px;backdrop-filter:blur(14px);box-shadow:0 12px 34px rgba(0,0,0,.4)}
body .pm-refc-editbar .pm-shell{width:auto!important;margin:0!important;padding:0!important}
body .pm-refc-editbar a{padding:10px 18px;color:var(--pm-gold);font-size:.84rem;font-weight:750}
body .pm-refc-editbar a:hover{color:#fff}
body:has(.pm-refc-editbar) .pm-footer-inner{padding-bottom:96px}
@media(max-width:820px){body .pm-refc-editbar{display:none}
  body:has(.pm-refc-editbar) .pm-footer-inner{padding-bottom:28px}}body .pm-refc-case-head{max-width:720px;margin:0 0 clamp(28px,3.4vw,42px)}
body .pm-refc-case-head h2{margin:0;font-size:clamp(2.4rem,4.4vw,4.2rem);line-height:1.04;letter-spacing:-.045em;color:#111}
body .pm-refc-case-head .pm-kicker{margin:0 0 16px!important;font-size:.8rem;font-weight:900;letter-spacing:.17em;text-transform:uppercase;color:#D59F3C}
body ol.pm-refc-story-strip{list-style:none;padding:0;counter-reset:none}
body .pm-refc-story-strip>li{position:relative;background:#fff;border-radius:16px;box-shadow:0 1px 3px rgba(0,0,0,.05),0 12px 28px rgba(20,18,12,.05);padding:26px 26px 28px}
body .pm-refc-story-strip>li:not(:last-child):after{content:"";position:absolute;top:50%;right:-13px;width:12px;height:1px;background:rgba(213,159,60,0.4)}
body .pm-refc-case-step{display:block;margin-bottom:14px;font-size:.72rem;font-weight:900;letter-spacing:.16em;color:rgba(17,17,17,.28)}
body .pm-refc-story-strip>li.is-result{background:#17130f;color:#fff}
body .pm-refc-story-strip>li.is-result h3{color:var(--pm-gold)}
body .pm-refc-story-strip>li.is-result p{color:rgba(255,255,255,.78)}
body .pm-refc-story-strip>li.is-result .pm-refc-case-step{color:rgba(255,255,255,.35)}
body .pm-refc-story-strip>li.is-result svg{color:var(--pm-gold)}
@media(max-width:900px){body .pm-refc-story-strip>li:not(:last-child):after{display:none}}body .pm-refc-media{aspect-ratio:16/9!important;height:auto!important;min-height:0!important;overflow:hidden}
/* V3.50.109: EIN HOCHKANTES MEDIUM BESTIMMT DAS FORMAT SEINES RAHMENS.

   Anlass, 08.09.2026. Chris: „Fehler bei Hochformatvideos!" auf der Referenz
   „Social-Media-Reel Coffee Lounge". Gemessen bei 1000 px Fensterbreite: Der
   Rahmen war 401x225 (16:9), die Einwilligungsschranke darin 380x676 (9:16).
   Mit overflow:hidden blieben von 676 px genau 225 stehen - 476 px, also
   70 Prozent des Vorschaubildes, waren abgeschnitten, darunter die halbe
   Bildunterschrift.

   Die Regel darueber (V1.49) ist nicht falsch, sie war nur zu allgemein. Ihre
   eigene Begruendung lautet: „Bildmaterial des Kunden zu beschneiden, um eine
   Layoutluecke zu schliessen, ist der falsche Handel." Genau dagegen verstiess
   sie bei einem Reel - 16:9 war dort nicht der Schutz des Materials, sondern
   sein Beschnitt.

   Die Ausnahme braucht keine neue Information: Die Schranke traegt ihr
   Verhaeltnis bereits selbst, als --pm-media-aspect (siehe die Ausgabe in
   promedia_media_gate_html()). Der Rahmen gibt seine Vorgabe auf, die Schranke
   setzt ihre eigene, die Hoehe ist gedeckelt, damit ein Reel die Buehne nicht
   sprengt. Fuer die Medienreihe steht dieselbe Ausnahme weiter unten schon -
   nur die Buehne hatte sie nie. */
body .pm-refc-media:has(> .pm-media-gate.is-portrait){aspect-ratio:auto!important;height:auto!important;display:flex;align-items:center;justify-content:center;background:#050505}
body .pm-refc-media > .pm-media-gate.is-portrait{width:auto;height:min(72vh,620px);aspect-ratio:var(--pm-media-aspect,9/16);max-width:100%}
/* Und derselbe Gedanke fuer einen selbst gehosteten Film in der Buehne: Ohne
   diese Zeile stuende er unter der allgemeinen cover-Regel und wuerde
   beschnitten. contain zeigt das vollstaendige Bild; die Streifen sind schwarz
   hinterlegt, wie beim Kinoformat - dieselbe Entscheidung wie in V1.94 fuer
   die Medienreihe, hier nur an der Stelle, an der sie fehlte. */
body .pm-refc-media > video{object-fit:contain;background:#000}
/* V1.72: overflow:hidden auf der Kachel zurueckgenommen. Diese Zeile stammt aus V1.49 und
   war zu weit gefasst: Der Rahmen (.pm-refc-media-frame) bringt Seitenverhaeltnis und
   Beschnitt selbst mit. Auf der Kachel darueber verhinderte overflow:hidden, dass das Bild
   beim Hovern aus dem Rahmen heraustreten kann - es wuchs nur noch innerhalb der Kachel.
   Das Seitenverhaeltnis bleibt nur dort erzwungen, wo kein Rahmen vorhanden ist. */
body .pm-refc-media-grid>*:not(:has(.pm-refc-media-frame)){aspect-ratio:16/9;overflow:hidden}
body .pm-refc-media-item,body .pm-refc-media-grid>*:has(.pm-refc-media-frame){overflow:visible}
body .pm-refc-media-item img,body .pm-refc-media-item video,body .pm-refc-media-item iframe,
body .pm-refc-media-grid>* img,body .pm-refc-media-grid>* video,body .pm-refc-media-grid>* iframe{width:100%;height:100%;object-fit:cover}
/* V1.94: Videos duerfen nicht beschnitten werden. Bei Bildern ist object-fit:cover richtig -
   dort bestimmt der eingestellte Bildausschnitt, was sichtbar bleibt. Bei einem Film gibt es
   diese Wahl nicht: Was der Schnitt zeigt, ist Teil der Arbeit. Am 08.08.2026 gemessen -
   Medienrahmen 2,33:1, Film 1,90:1, dadurch gingen oben und unten je rund 9 Prozent der
   Bildhoehe verloren, unter anderem die Bauchbinden mit den Namen der Interviewten.
   contain zeigt das vollstaendige Bild; der Rahmen wird schwarz hinterlegt, damit die
   entstehenden Streifen wie beim Kinoformat wirken und nicht wie ein Darstellungsfehler. */
body .pm-refc-media-item video,body .pm-refc-media-grid>* video{object-fit:contain;background:#000}
body .pm-references-v9-media{aspect-ratio:16/9}body .pm-breadcrumbs a:hover,body .pm-breadcrumbs a:focus-visible,
body .pm-nav a:hover,body .pm-nav a:focus-visible,
body .pm-footer-column a:hover,body .pm-footer-column a:focus-visible,
body .pm-footer-consent:hover,body .pm-footer-consent:focus-visible,
body .pm-about-copy>a:hover,body .pm-about-copy>a:focus-visible,
body .pm-about-text-link:hover,body .pm-about-text-link:focus-visible,
body .pm-reference-back:hover,body .pm-reference-back:focus-visible,
body .pm-refc-meta-row dd a:hover,body .pm-refc-meta-row dd a:focus-visible,
body .pm-refc-footer-nav a:hover,body .pm-refc-footer-nav a:focus-visible,
body .pm-services-v902-text-link:hover,body .pm-services-v902-text-link:focus-visible,
body .pm-home-news-all:hover,body .pm-home-news-all:focus-visible,
body .pm-refc-related a:hover,body .pm-refc-related a:focus-visible,
body .pm-related-card__body a:hover,body .pm-related-card__body a:focus-visible,
body .pm-contact-v870-data a:hover strong{color:var(--pm-gold)!important}
/* V3.50.9 (Chris, 05.09.2026): "Es ist wie das Wort Standort eine Angabe zum
   Bereich." TELEFON und ANFRAGE sind Etiketten, keine Verweise - sie tragen
   dieselbe ruhige Farbe wie STANDORT und wechseln beim Ueberfahren nicht mit.
   Nur der Wert darunter reagiert. */
body .pm-contact-v870-data a span,
body .pm-contact-v870-data a:hover span,
body .pm-contact-v870-data a:focus-visible span{
  color:rgba(255,255,255,.43)!important;
  -webkit-text-fill-color:rgba(255,255,255,.43)!important;
  text-decoration:none!important}

body .pm-button-primary:hover,body .pm-button-primary:focus-visible,
body .pm-header-cta:hover,body .pm-header-cta:focus-visible{transform:translateY(-2px);filter:brightness(1.08);box-shadow:0 14px 32px rgba(213,159,60,0.28)}
body .pm-button-secondary:hover,body .pm-button-secondary:focus-visible{border-color:var(--pm-gold);color:var(--pm-gold)}
/* V3.50.12 (Chris, 05.09.2026): "So find ich's ganz gut unter Einblicke,
   Projekte und Geschichten - so sollte es dann auch aussehen fuer die News."
   Die Kachel der Startseite hebt sich beim Ueberfahren an, wirft einen
   staerkeren Schatten und bekommt eine goldene Kante. Die Kacheln der
   Redaktionsseite und unter "Aehnliche Beitraege" bekommen denselben Zustand -
   dieselben Werte, damit es wirklich dasselbe ist und nicht nur aehnlich. */
body :is(.pm-blog-card,.pm-related-card,.pm-references-v9-card){
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
body :is(.pm-blog-card,.pm-related-card,.pm-references-v9-card):hover,
body :is(.pm-blog-card,.pm-related-card,.pm-references-v9-card):focus-within{
  transform:translateY(-3px);
  box-shadow:0 18px 46px rgba(20,20,20,.095);
  border-color:rgba(213,159,60,.42)}

/* V3.50.11: Der Pfeil hinter „Beitrag lesen" sitzt im THEME
   (.pm-blog-card .wp-block-post-excerpt__more-link:after{content:'→'}).
   Ich hatte ihn dort entfernt - aber das Theme wird als eigenes Paket
   ausgeliefert, und Chris spielt das Plugin ein. Meine Korrektur kam deshalb
   nie an. Sie steht jetzt zusaetzlich hier, wo sie sofort wirkt.
   Lehre: Eine Korrektur im Theme ist erst dann eine Korrektur, wenn das Theme
   auch ausgeliefert wird. */
body .wp-block-post-excerpt__more-link::after,
body .pm-blog-card .wp-block-post-excerpt__more-link::after,
body .pm-home-news-more::after,
body .pm-home-news-more b{content:none!important;display:none!important}

/* =====================================================================
   V3.50.11: Kicker tragen Gold - auf jedem Grund
   =====================================================================
   Chris, 05.09.2026: „Die Kicker müssten auf dieser Leistungsseite doch
   eigentlich alle in Gold sein, oder? Momentan sind sie in so einem Grauton."

   Gemessen: Auf dunklem Grund waren sie golden (Flaechenmodell V2.92, Liste
   D), auf hellem Grund erbten sie die Textfarbe - „TECHNISCHE DETAILS" stand
   in #6B6B6B. Ein Kicker ist aber kein Fliesstext, sondern ein Signal: kurz,
   versal, gesperrt. Er darf Gold tragen, ohne dass Invariante 49 verletzt
   waere ("Gold hoert auf hellem Grund auf, Schrift zu sein" gilt dem
   Lesetext).

   EHRLICH BENANNT: Auf Papier erreicht #D59F3C nur rund 2,2:1. Fuer ein
   Etikett aus vier Woertern ist das vertretbar und ausdruecklich gewuenscht -
   fuer Fliesstext waere es das nicht. Die bessere Loesung waere ein dunklerer
   Grund unter diesen Abschnitten; das ist als Gestaltungsvorschlag offen.
   ===================================================================== */
body :is(.pm-kicker,.pm-eyebrow,.pm-services-v902-specs>summary,.pm-refc-faq-item>summary){
  color:var(--pm-primary,#D59F3C)!important;
  -webkit-text-fill-color:var(--pm-primary,#D59F3C)!important}

/* =====================================================================
   V3.50.11: DER Knopfstandard - fuer jeden Knopf derselbe
   =====================================================================
   Gemessen am 05.09.2026 im laufenden System: Der Hauptknopf trug
   `transition:all`, `brightness(1.08)` und einen goldenen Schattenwurf, der
   Nebenknopf faerbte sich beim Ueberfahren schwarz um. Zwei Knoepfe, zwei
   Verhalten.

   Der verbindliche Standard sagt: Nur Farbe und Rahmen unterscheiden Haupt-
   von Nebenhandlung, NIE das Verhalten. Also tragen ab hier alle Knoepfe
   denselben Uebergang, dieselbe Anhebung, dieselbe Aufhellung und denselben
   Schattenwurf. Was sie unterscheidet, ist die Flaeche. */
body :is(.pm-button-primary,.pm-button-secondary,.pm-header-cta,.pm-services-v902-more){
  transition:transform .18s ease,filter .18s ease,box-shadow .18s ease!important}
body :is(.pm-button-primary,.pm-button-secondary,.pm-header-cta,.pm-services-v902-more):hover,
body :is(.pm-button-primary,.pm-button-secondary,.pm-header-cta,.pm-services-v902-more):focus-visible{
  transform:translateY(-2px)!important;
  filter:brightness(1.06)!important;
  box-shadow:0 8px 22px rgba(0,0,0,.22)!important}

/* V3.50.11: Die frueheren Regeln fuer diesen Knopf sind hier entfernt.
   Sie setzten beim Ueberfahren einen schwarzen Grund und weisse Schrift.
   Weil sie SPAETER im selben Block standen, gewannen sie gegen den
   Knopfstandard weiter oben - beim Grund. Die Schrift kam aus dem Standard.
   Ergebnis, von Chris gesehen: dunkle Schrift auf dunklem Grund, unlesbar.
   Zwei Regeln fuer dasselbe Element sind eine Regel zu viel. */

body .pm-references-v9-card:hover h2,body .pm-references-v9-card:focus-within h2,
body .pm-references-v9-card:hover .pm-references-v9-link,body .pm-references-v9-card:focus-within .pm-references-v9-link,
body .pm-blog-card:hover .wp-block-post-title a,body .pm-blog-card:focus-within .wp-block-post-title a,
/* V3.31: Der "Beitrag lesen"-Verweis auf der Redaktions-Uebersicht (aus dem
   WordPress-Kern-Block "Post Excerpt" mit eigener CSS-Klasse) war in der Aufzaehlung
   hier noch nicht enthalten - nur der Titel wurde beim Hover golden, der Lesen-Link
   blieb unveraendert. */
body .pm-blog-card:hover .wp-block-post-excerpt__more-link,body .pm-blog-card:focus-within .wp-block-post-excerpt__more-link,
body .pm-home-news-card:hover .pm-home-news-more,body .pm-home-news-card:focus-within .pm-home-news-more,
/* V2.41: Bei den News wurde nur der Weiterlesen-Verweis golden, bei den Referenzen
   auch die Ueberschrift. Die Karten sehen gleich aus und liegen untereinander auf
   derselben Seite - dann muessen sie sich auch gleich verhalten. */
body .pm-home-news-card:hover h3,body .pm-home-news-card:focus-within h3,
body .pm-blog-card:hover h2,body .pm-blog-card:focus-within h2,
body .pm-blog-card:hover h3,body .pm-blog-card:focus-within h3,
body .pm-related-card:hover .pm-related-card__body a,body .pm-related-card:focus-within .pm-related-card__body a,
body .pm-reference-card:hover .pm-reference-info h3,body .pm-reference-card:focus-within .pm-reference-info h3,
/* V3.20: Dieselbe Konsistenzueberlegung galt bislang nicht fuer die Leistungen-Liste
   der Startseite (.pm-service-row) - dort wurde beim Hover bisher nur der
   "Mehr erfahren"-Verweis golden, die Ueberschrift blieb schwarz, obwohl der
   Baustein gleich neben den News-/Referenz-Karten auf derselben Seite steht. */
body .pm-services .pm-service-row:hover .pm-service-copy h3,body .pm-services .pm-service-row:focus-within .pm-service-copy h3,
/* V3.27: Dritter, anders benannter Baustein fuer dasselbe Muster (Bild + Ueberschrift
   + Verweis, alles ein Link) - bislang komplett ohne Hover-Farbe, nur der kleine
   Pfeil-Abstand aenderte sich. Erst durch eine vollstaendige Bestandsaufnahme aller
   kartenartigen Bausteine gefunden, nicht durch erneutes Einzel-Nachbessern. */
body .pm-services-v902-visual:hover .pm-services-v902-project-caption h3,body .pm-services-v902-visual:focus-visible .pm-services-v902-project-caption h3,
body .pm-services-v902-visual:hover .pm-services-v902-project-caption strong,body .pm-services-v902-visual:focus-visible .pm-services-v902-project-caption strong{color:var(--pm-gold)!important;transition:color .18s ease}
body .pm-references-v9-card,body .pm-related-card,body .pm-reference-card{transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease}
body .pm-references-v9-card:hover,body .pm-references-v9-card:focus-within,
body .pm-related-card:hover,body .pm-related-card:focus-within{transform:translateY(-3px);border-color:rgba(213,159,60,.55)}
@media(prefers-reduced-motion:reduce){
body .pm-button-primary:hover,body .pm-header-cta:hover,
body .pm-references-v9-card:hover,body .pm-related-card:hover{transform:none!important}}body .pm-services-v902-cta h2,body .pm-references-v9-cta h2,body .pm-about-cta h2,
body .pm-contact-v870-cta h2,body .pm-contact h2{font-size:clamp(3.2rem,6vw,5.6rem)!important;line-height:.97!important;letter-spacing:-.045em!important}
body .pm-section-head h2,body .pm-showreel h2,body .pm-about h2,
body .pm-contact-v870-head h2,body .pm-services-v902-section-head h2,
body .pm-services-v902-copy h2,body .pm-about-profile h2,
body .pm-about-competence h2,body .pm-about-process h2,
body .pm-references-v9-portfolio h2:not(.pm-references-v9-card h2){font-size:clamp(2.4rem,4.4vw,4.2rem)!important;line-height:1.04!important;letter-spacing:-.045em!important}
body .pm-button-primary,body .pm-button-secondary,body .pm-header-cta{font-size:1rem!important;font-weight:850!important;min-height:54px!important;padding:0 26px!important}
body .pm-contact-v870-hero-inner .pm-button-primary,
body .pm-contact-v870-hero-inner .pm-button-secondary{margin-top:36px!important}body .pm-services-v902-cta,body .pm-references-v9-cta,body .pm-about-cta,
body .pm-contact-v870-cta,body .pm-contact{padding:clamp(105px,12vw,170px) 0!important;background:#090909!important;color:#fff!important}
body .pm-services-v902-cta>.pm-shell,body .pm-references-v9-cta>.pm-shell,body .pm-about-cta-inner,
body .pm-contact-v870-cta-inner,body .pm-contact-grid{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:60px!important;align-items:end!important;max-width:none!important;padding:0!important;border:0!important;background:none!important}
body .pm-services-v902-cta h2,body .pm-references-v9-cta h2,body .pm-about-cta h2,
body .pm-contact-v870-cta h2,body .pm-contact h2{max-width:1120px!important;margin:0!important;font-size:clamp(3.25rem,6.5vw,7rem)!important;line-height:.93!important;letter-spacing:-.065em!important}
body .pm-services-v902-cta p:not(.pm-kicker),body .pm-references-v9-cta p:not(.pm-kicker),
body .pm-about-cta p:not(.pm-kicker),body .pm-contact-v870-cta p:not(.pm-kicker),
body .pm-contact p:not(.pm-kicker){max-width:820px!important;margin:38px 0 0!important;color:rgba(255,255,255,.62)!important;font-size:clamp(1.08rem,1.5vw,1.28rem)!important;line-height:1.72!important}
body .pm-services-v902-cta .pm-button-primary,body .pm-references-v9-cta .pm-button-primary,
body .pm-about-cta .pm-button-primary,body .pm-contact-v870-cta .pm-button-primary,
body .pm-contact .pm-button-primary{gap:10px!important;margin-top:52px!important;white-space:nowrap!important}
@media(max-width:1000px){
body .pm-services-v902-cta>.pm-shell,body .pm-references-v9-cta>.pm-shell,body .pm-about-cta-inner,
body .pm-contact-v870-cta-inner,body .pm-contact-grid{grid-template-columns:1fr!important}
body .pm-services-v902-cta .pm-button-primary,body .pm-references-v9-cta .pm-button-primary,
body .pm-about-cta .pm-button-primary,body .pm-contact-v870-cta .pm-button-primary,
body .pm-contact .pm-button-primary{justify-self:start!important;margin-top:0!important}}
@media(max-width:700px){
body .pm-services-v902-cta .pm-button-primary,body .pm-references-v9-cta .pm-button-primary,
body .pm-about-cta .pm-button-primary,body .pm-contact-v870-cta .pm-button-primary,
body .pm-contact .pm-button-primary{margin-top:44px!important}}/* V3.47.76: Der linke Marken-Kicker im Startseiten-Intro soll bewusst als
   Goldakzent lesbar sein. Nur dieser eine Kicker wird adressiert; andere Kicker
   und die editierbaren CMS-Inhalte bleiben unveraendert. */
body .pm-home-intro>.pm-shell>.pm-kicker{color:var(--pm-gold,#d59f3c)!important}

/* V3.47.78: Korrektur des Footer-Social-Hovers. V3.47.77 adressierte nur
   Social-Links innerhalb von .pm-footer-column. Die tatsaechlichen Social-Icons
   der Startseite liegen jedoch in der unteren Footer-Zeile ausserhalb dieser
   Spalten; deshalb blieb dort die bisherige Goldfarbe aktiv. Die Selektoren
   greifen jetzt robust auf die Plattform-URLs innerhalb des Footer-Kontexts. */
body .pm-footer a[href*="instagram.com"],body .pm-footer a[href*="youtube.com"],body .pm-footer a[href*="youtu.be"],body .pm-footer a[href*="tiktok.com"],body .pm-footer a[href*="linkedin.com"],body .pm-footer a[href*="facebook.com"],
body footer a[href*="instagram.com"],body footer a[href*="youtube.com"],body footer a[href*="youtu.be"],body footer a[href*="tiktok.com"],body footer a[href*="linkedin.com"],body footer a[href*="facebook.com"],
body .site-footer a[href*="instagram.com"],body .site-footer a[href*="youtube.com"],body .site-footer a[href*="youtu.be"],body .site-footer a[href*="tiktok.com"],body .site-footer a[href*="linkedin.com"],body .site-footer a[href*="facebook.com"]{color:#fff!important;transition:color .2s ease,transform .2s ease}
body .pm-footer a[href*="instagram.com"] svg,body .pm-footer a[href*="youtube.com"] svg,body .pm-footer a[href*="youtu.be"] svg,body .pm-footer a[href*="tiktok.com"] svg,body .pm-footer a[href*="linkedin.com"] svg,body .pm-footer a[href*="facebook.com"] svg,
body footer a[href*="instagram.com"] svg,body footer a[href*="youtube.com"] svg,body footer a[href*="youtu.be"] svg,body footer a[href*="tiktok.com"] svg,body footer a[href*="linkedin.com"] svg,body footer a[href*="facebook.com"] svg,
body .site-footer a[href*="instagram.com"] svg,body .site-footer a[href*="youtube.com"] svg,body .site-footer a[href*="youtu.be"] svg,body .site-footer a[href*="tiktok.com"] svg,body .site-footer a[href*="linkedin.com"] svg,body .site-footer a[href*="facebook.com"] svg{color:currentColor!important;fill:currentColor!important}
body .pm-footer a[href*="instagram.com"]:hover,body .pm-footer a[href*="youtube.com"]:hover,body .pm-footer a[href*="youtu.be"]:hover,body .pm-footer a[href*="tiktok.com"]:hover,body .pm-footer a[href*="linkedin.com"]:hover,body .pm-footer a[href*="facebook.com"]:hover,
body .pm-footer a[href*="instagram.com"]:focus-visible,body .pm-footer a[href*="youtube.com"]:focus-visible,body .pm-footer a[href*="youtu.be"]:focus-visible,body .pm-footer a[href*="tiktok.com"]:focus-visible,body .pm-footer a[href*="linkedin.com"]:focus-visible,body .pm-footer a[href*="facebook.com"]:focus-visible,
body footer a[href*="instagram.com"]:hover,body footer a[href*="youtube.com"]:hover,body footer a[href*="youtu.be"]:hover,body footer a[href*="tiktok.com"]:hover,body footer a[href*="linkedin.com"]:hover,body footer a[href*="facebook.com"]:hover,
body footer a[href*="instagram.com"]:focus-visible,body footer a[href*="youtube.com"]:focus-visible,body footer a[href*="youtu.be"]:focus-visible,body footer a[href*="tiktok.com"]:focus-visible,body footer a[href*="linkedin.com"]:focus-visible,body footer a[href*="facebook.com"]:focus-visible,
body .site-footer a[href*="instagram.com"]:hover,body .site-footer a[href*="youtube.com"]:hover,body .site-footer a[href*="youtu.be"]:hover,body .site-footer a[href*="tiktok.com"]:hover,body .site-footer a[href*="linkedin.com"]:hover,body .site-footer a[href*="facebook.com"]:hover,
body .site-footer a[href*="instagram.com"]:focus-visible,body .site-footer a[href*="youtube.com"]:focus-visible,body .site-footer a[href*="youtu.be"]:focus-visible,body .site-footer a[href*="tiktok.com"]:focus-visible,body .site-footer a[href*="linkedin.com"]:focus-visible,body .site-footer a[href*="facebook.com"]:focus-visible{color:var(--pm-gold,#d59f3c)!important;transform:translateY(-2px)}

body .pm-partners{padding:96px 0 104px;background:#f5f5f3;color:#111}
body .pm-partners .pm-section-head{margin-bottom:44px}
body .pm-partners .pm-kicker{color:#D59F3C}
body .pm-partners h2{font-size:clamp(1.9rem,3.2vw,2.9rem);line-height:1.1;letter-spacing:-.035em;max-width:920px}
body .pm-partner-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:34px 44px;align-items:center}
body .pm-partner-item{display:flex;align-items:center;justify-content:center;margin:0}
body .pm-partner-link{display:flex;align-items:center;justify-content:center;width:100%;text-decoration:none}
body .pm-partner-logo{display:block;width:100%;max-width:210px;height:86px;object-fit:contain;object-position:center;
filter:grayscale(1);opacity:.78;transition:filter .28s ease,opacity .28s ease,transform .28s ease}
/* V1.61: Gemeinsame Hoehe fuer alle, 86px. Die Logodateien liegen samt Rand auf
   quadratischer Flaeche - eine Unterscheidung nach Dateiformat waere sinnlos
   (siehe Kommentar an der Ausgabe). Die Hoehe ist gegenueber V1.58 nochmals
   angehoben, weil die Zeichen innerhalb ihrer Flaeche viel Luft haben und dadurch
   kleiner wirken, als die Kastenhoehe vermuten laesst. */
body .pm-partner-item:hover .pm-partner-logo,body .pm-partner-link:focus-visible .pm-partner-logo{filter:grayscale(0);opacity:1;transform:translateY(-2px)}
body .pm-partner-link:focus-visible{outline:3px solid rgba(213,159,60,0.45);outline-offset:6px;border-radius:8px}
@media(max-width:860px){
body .pm-partners{padding:76px 0 82px}
body .pm-partner-grid{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:26px 30px}
body .pm-partner-logo{height:50px;max-width:150px}
body .pm-partner-item{overflow:visible}
body .pm-partner-logo{transform-origin:center}}
@media(prefers-reduced-motion:reduce){
body .pm-partner-logo{transition:none}
body .pm-partner-item:hover .pm-partner-logo{transform:none}}body .pm-anfrage{padding:104px 0 112px;background:#100d0a;color:#fff}
body .pm-anfrage-karte{max-width:820px}

/* =====================================================================
   V3.50.158: DIE ANFRAGEKARTE IST HELL — nur im Hochzeitsbereich
   =====================================================================
   Chris am 10.09.2026: „Ich möchte das Formular aufhellen … der Text muss
   dann schwarz werden, aber ich möchte es auf hellem Hintergrund haben. Es
   wirkt freundlicher. Das Außenherum kann der schwarze Hintergrund sein,
   sodass das Formular schön nach vorne kommt. Schwarz heißt nicht ganz
   schwarz, wie Du ja weißt."

   Zwei Dinge stecken darin, und beide sind gebaut:
   1. AUSSEN bleibt dunkel — aber warm (#17130C), derselbe Tiefton wie der
      Rest der Seite seit V3.50.154. „Nicht ganz schwarz" ist bei Chris kein
      Gefühl, sondern eine Ansage: #100d0a hatte 23 % Sättigung bei 5 %
      Helligkeit, davon sieht das Auge nichts.
   2. DIE KARTE ist hell und liegt damit VOR dem Grund. Sie bekommt einen
      eigenen Rand und einen weichen Schatten — ohne beides schwebt eine
      helle Fläche nicht, sie klebt.

   Alle Regeln tragen body.pm-bereich-hochzeit: Der Auftrag galt dieser
   Strecke. Die Anfrageformulare der übrigen Bereiche bleiben, wie sie sind.
   Sie hier „gleich mitzunehmen" wäre bequem und unbeauftragt.

   Gemessen wurde vorher, was überhaupt Farbe setzt: Titel #fff, Zusage und
   Beschriftungen rgba(236,231,224,.86), Auswahlfelder #fff auf
   durchsichtigem Grund, Linien rgba(255,255,255,.28). Jede dieser Stellen
   ist unten benannt — Invertieren heißt nicht, eine Farbe zu ändern,
   sondern jede. */
/* V3.50.160: Der Balken zwischen Formular und Fussbereich.
   Chris: „Was soll dieser schwarze Balken?" Gemessen: 24 px Luecke zwischen
   der Unterkante von .pm-anfrage (9571) und der Oberkante des Fussbereichs
   (9595); dort schien der Seitengrund #0a0a0a durch. Weder .pm-anfrage noch
   der Fussbereich haben einen Aussenrand — der Zwischenraum gehoert dem
   umgebenden Behaelter .pm-hochzeit-anfrage.

   WIEDER EINE FOLGE MEINER EIGENEN AENDERUNG, dieselbe Klasse wie die
   Filmkante in V3.50.155: Solange .pm-anfrage auf #100d0a stand, war der
   Streifen von der Seitenfarbe nicht zu unterscheiden. Erst der waermere Ton
   macht ihn sichtbar. Nicht der Streifen ist neu, sondern sein Kontrast.

   Der Behaelter gehoert zum Abschnitt, also traegt er dessen Farbe. */
body.pm-bereich-hochzeit .pm-anfrage,
body.pm-bereich-hochzeit .pm-hochzeit-anfrage{background:#17130C}
/* V3.50.168: DAS BILD IST EIN BAND ÜBER DEM FORMULAR, keine Spalte daneben.
   Warum das Querformat oben besser sitzt als seitlich: Ein Bild von zwei
   Ringen erzaehlt in der Breite — Vordergrund, Schaerfeverlauf, Ruhe. In
   einer schmalen Spalte bleibt davon ein Ausschnitt ohne Anfang und Ende.
   Oben, ueber die ganze Breite, traegt es die Stimmung, um die es Chris geht,
   und haelt niemanden auf: Man sieht es und ist schon am ersten Feld.

   Das Formular bekommt die ganze Breite der Karte. Die Karte selbst darf
   breiter werden als die alten 820 px, sonst waere das Band ein Streifen. */
body.pm-bereich-hochzeit .pm-anfrage .pm-anfrage-raster.hat-bild{max-width:1080px;margin-inline:auto}
body.pm-bereich-hochzeit .pm-anfrage .pm-anfrage-raster.hat-bild .pm-anfrage-karte{
  max-width:none;padding:0;overflow:hidden}
body.pm-bereich-hochzeit .pm-anfrage .pm-anfrage-karte-inhalt{padding:clamp(28px,4vw,52px)}
/* Randlos an der Oberkante — das Formular dockt direkt an das Bild an. */
body.pm-bereich-hochzeit .pm-anfrage-bild{margin:0;border-radius:0;box-shadow:none;
  aspect-ratio:16/5;overflow:hidden}
body.pm-bereich-hochzeit .pm-anfrage-bild img{display:block;width:100%;height:100%;
  object-fit:cover;object-position:center 62%;border-radius:0}
@media (max-width:700px){
  /* Schmaler wird das Band hoeher, sonst bliebe von den Ringen ein Strich. */
  body.pm-bereich-hochzeit .pm-anfrage-bild{aspect-ratio:16/9}}
body.pm-bereich-hochzeit .pm-anfrage .pm-anfrage-karte-inhalt{color:#4a433c}
body.pm-bereich-hochzeit .pm-anfrage .pm-anfrage-karte{
  /* V3.50.160: „Datenschutzerklaerung" und die Rufnummer blieben weiss.
     Gemessen, welche Regel gewinnt:

       body :is(.pm-hero, …, .pm-anfrage, …) a {
         color: var(--pm-verweis); -webkit-text-fill-color: var(--pm-verweis) !important }

     Sie traegt !important — dagegen kommt keine Spezifitaet an. Ein
     Gegen-!important waere ein Wettruesten, das der Naechste ueberbietet.
     Die Regel liest aber eine VARIABLE, und Variablen erben: Wer den Wert am
     Behaelter setzt, aendert die Regel, ohne sie zu bekaempfen. Genau so
     macht es die Stimmen-Karte seit V3.50.154 (--pm-verweis:#1D1D1F).

     Das ist der eigentliche Punkt: Eine Regel mit !important ist keine Wand,
     wenn sie ihren Wert aus einer Variablen holt — man muss nur die richtige
     Stelle finden, statt lauter zu schreien. */
  --pm-verweis:#17171a;
  background:#F7F4EE;color:#4a433c;
  /* V3.50.170: DER RAHMEN IST WEG.
     Chris am 10.09.2026: „Und wenn Du den Rahmen komplett entfernst? Mir
     gefaellt es so nicht."
     NACHGEMESSEN, bevor ich zugestimmt habe — und die Messung sagt dasselbe:
     Die Karte steht mit #F7F4EE auf dem Seitengrund #17130C bei 16,86:1.
     Der Rahmen rgba(23,19,12,.10) ergibt, auf den Kartengrund gerechnet,
     gegen die Karte 1,22:1 (von innen unsichtbar) und gegen den Seitengrund
     13,77:1. Er legt also einen dunkleren Saum auf eine helle Kante und
     macht sie SCHWAECHER — 13,77 statt 16,86. Ein Rahmen, der die Kante
     daempft, die er betonen soll, ist kein Rahmen, sondern ein Schleier.
     Die Abhebung traegt ohnehin der Schatten darunter. */
  border-radius:18px;
  padding:clamp(28px,4vw,52px);
  box-shadow:0 24px 60px rgba(0,0,0,.38)}
/* Überschriften und Zusage */
body.pm-bereich-hochzeit .pm-anfrage .pm-anfrage-karte :is(h1,h2,h3,.pm-anfrage-titel){
  color:#17171a;-webkit-text-fill-color:#17171a}
body.pm-bereich-hochzeit .pm-anfrage .pm-anfrage-karte .pm-anfrage-zusage{color:#6b625a}
/* Der Kicker bleibt Gold — er ist die Marke (Handbuch Kap. 1). */
body.pm-bereich-hochzeit .pm-anfrage .pm-anfrage-karte .pm-kicker{
  color:var(--pm-gold,#D59F3C);-webkit-text-fill-color:var(--pm-gold,#D59F3C)}
/* =====================================================================
   V3.50.159, MEIN FEHLER AUS V3.50.158 — UND DIE LEHRE DARAUS
   =====================================================================
   Chris: „Achtung!!" — im Bild standen mehrere Texte hell auf hell und waren
   praktisch unlesbar. Live nachgemessen, Kontrast gegen den Kartengrund:

     „— falls es schon feststeht" u. a. (3 Stellen)   1,10 : 1
     „Ich bin einverstanden, dass meine Angaben …"    1,10 : 1
     „Datenschutzerklärung"                           1,10 : 1
     „oder ruft mich an:"                             1,10 : 1
     die Rufnummer                                    1,10 : 1
     die Einträge der Paketliste (option)             1,10 : 1

   Ich hatte im Kommentar zu V3.50.158 selbst geschrieben: „Invertieren heißt
   nicht, eine Farbe zu ändern, sondern jede." Und dann habe ich Elemente
   AUFGEZAEHLT — label, .description, .pm-anfrage-freiwillig — statt den
   Grundton zu setzen. Eine Aufzaehlung ist immer unvollstaendig; sie kann es
   gar nicht anders sein, weil sie nur enthaelt, woran der Schreibende gerade
   dachte.

   RICHTIG HERUM: Alles in der Karte bekommt die dunkle Schrift, und die
   Ausnahmen stehen danach namentlich da. Was neu hinzukommt, ist dann von
   selbst richtig — statt von selbst falsch. */
body.pm-bereich-hochzeit .pm-anfrage .pm-anfrage-karte
  :is(p,span,label,li,small,strong,em,b,i,div,a,button,legend,fieldset)
  :not(.pm-button-primary):not(.pm-kicker),
body.pm-bereich-hochzeit .pm-anfrage .pm-anfrage-karte
  :is(p,span,label,li,small,strong,em,b,i,div,a,legend,fieldset):not(.pm-button-primary):not(.pm-kicker){
  color:#4a433c;-webkit-text-fill-color:#4a433c}
/* Beschriftungen tragen etwas mehr Gewicht als der Hilfstext daneben. */
body.pm-bereich-hochzeit .pm-anfrage .pm-anfrage-karte label{
  color:#2a2520;-webkit-text-fill-color:#2a2520}
/* Die Auswahlliste zeichnet das Betriebssystem — sie braucht ihre Farben
   ausdruecklich, sonst erbt sie das Weiss der dunklen Fassung. */
body.pm-bereich-hochzeit .pm-anfrage .pm-anfrage-karte option{
  color:#17171a;-webkit-text-fill-color:#17171a;background:#F7F4EE}
/* Eingaben: Linien statt Kästen, wie zuvor — nur eben dunkel auf hell. */
body.pm-bereich-hochzeit .pm-anfrage .pm-anfrage-karte :is(input,select,textarea){
  color:#17171a;background:transparent;
  border-color:var(--pm-feldlinie);-webkit-text-fill-color:#17171a}
body.pm-bereich-hochzeit .pm-anfrage .pm-anfrage-karte :is(input,select,textarea):focus{
  border-color:var(--pm-gold,#D59F3C);outline:none}
/* V3.50.168: Der Platzhalterwert steht jetzt bei den Fassungswerten weiter
   unten - eine Regel fuer die ganze Website, nicht eine je Stelle. */
/* Das Paketfeld hebt sich vom Kartengrund ab, nicht mehr vom Schwarz. */
body.pm-bereich-hochzeit .pm-anfrage .pm-anfrage-karte .pm-anfrage-paket{
  background:#EFE9DE;border-left:3px solid var(--pm-gold,#D59F3C);
  border-radius:12px;padding:16px 18px}
/* Einwilligung, Verweise und die Rufnummer */
body.pm-bereich-hochzeit .pm-anfrage .pm-anfrage-karte a:not(.pm-button-primary){
  color:#17171a;-webkit-text-fill-color:#17171a}
body.pm-bereich-hochzeit .pm-anfrage .pm-anfrage-karte a:not(.pm-button-primary):hover,
body.pm-bereich-hochzeit .pm-anfrage .pm-anfrage-karte a:not(.pm-button-primary):focus-visible{
  color:var(--pm-gold,#D59F3C);-webkit-text-fill-color:var(--pm-gold,#D59F3C)}
/* Der Knopf behaelt seine gerechnete Schrift auf Gold (Handbuch Kap. 1) —
   deshalb steht er in jeder Regel oben ausdruecklich ausgenommen. */
body.pm-bereich-hochzeit .pm-anfrage .pm-anfrage-karte .pm-button-primary{
  color:#111;-webkit-text-fill-color:#111}
body.pm-bereich-hochzeit .pm-anfrage .pm-anfrage-karte svg{color:currentColor}
/* Der Knopf bleibt, wie er ist: Gold mit gerechneter Schrift (Kap. 1). */
body .pm-anfrage .pm-kicker{color:var(--pm-gold,#d59f3c)}
body .pm-anfrage-titel{margin:0 0 12px;font-size:clamp(2.1rem,4.4vw,3.4rem);line-height:1.06;letter-spacing:-.04em}
body .pm-anfrage-zusage{margin:0 0 38px;color:rgba(255,255,255,.72);font-size:1.02rem}
body .pm-anfrage-reihe{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px}
body .pm-anfrage-feld{margin:0 0 22px;display:grid;gap:7px}
/* V3.50.130: Das gewaehlte Paket im Formular.
   Es ist kein Eingabefeld, sondern eine Feststellung — deshalb traegt es
   keinen Rahmen wie die Felder daneben, sondern eine ruhige Flaeche mit
   goldener Kante. Genau EIN Element darin ist golden (die Kante); der Name
   steht in Weiss, damit er nicht mit einer Aufforderung verwechselt wird. */
body .pm-anfrage-paket{
  margin:0 0 22px;padding:14px 16px;gap:4px;
  border-left:3px solid var(--pm-gold,#D59F3C);
  border-radius:0 10px 10px 0;
  background:rgba(255,255,255,.05)}
body .pm-anfrage-paket-label{
  font-size:.72rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase;
  color:rgba(255,255,255,.5)}
body .pm-anfrage-paket-wert{
  display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:0}
body .pm-anfrage-paket-wert strong{font-size:1.05rem;font-weight:750;color:#fff}
/* V3.50.157: Die Gestaltung des „entfernen"-Knopfes ist entfallen — den
   Knopf gibt es nicht mehr. Toter Stil, der aussieht als wirke er, ist die
   naechste Fehlerklasse. */
body .pm-anfrage-feld label{font-size:.86rem;letter-spacing:.04em;color:rgba(255,255,255,.82);font-weight:800}
body .pm-anfrage-optional{font-weight:400;color:rgba(255,255,255,.45);letter-spacing:0}
/* V3.50.170: HIER STAND EINE AUFZAEHLUNG — text, email, tel, select, textarea.
   ------------------------------------------------------------------------
   ANLASS, Chris am 10.09.2026: „Das sieht mal wirklich schief aus." Auf dem
   Bild stand das Datumsfeld als 2 px starker Kasten neben „Ort oder Location"
   mit blosser Unterlinie — zwei Feldsprachen in derselben Zeile.
   GEMESSEN am ausgelieferten Formular: input[type=date] traegt
   `border: 2px inset rgba(23,19,12,.5)`. Das ist der Kasten des BROWSERS; er
   uebernimmt nur die Farbe von hier, weil die Linienregel den Typ „date" nie
   genannt hat.

   ZWANZIG ZEILEN WEITER OBEN steht in dieser Datei mein eigener Kommentar
   aus V3.50.158: „Eine Aufzaehlung ist immer unvollstaendig; sie kann es gar
   nicht anders sein, weil sie nur enthaelt, woran der Schreibende gerade
   dachte." Genau das ist hier passiert — dieselbe Lehre, im selben Bauteil,
   nicht angewendet.

   RICHTIG HERUM: JEDES Eingabefeld im Feldblock bekommt die Linie, und die
   Ausnahmen stehen danach namentlich da. Was neu hinzukommt — ein Datumsfeld,
   eine Zahl, eine URL —, ist dann von selbst richtig statt von selbst falsch. */
body .pm-anfrage-feld :is(input,select,textarea){
width:100%;background:transparent;border:0;border-bottom:1px solid var(--pm-feldlinie);
padding:12px 2px;color:#fff;font:inherit;font-size:1.02rem;border-radius:0;transition:border-color .2s ease}
/* Die Ausnahmen: Bedienelemente, die keine Schreiblinie sind. */
body .pm-anfrage-feld :is(input[type=checkbox],input[type=radio],input[type=submit],input[type=button],input[type=file]){
width:auto;border-bottom:0;padding:0}
body .pm-anfrage-feld textarea{resize:vertical;min-height:132px;line-height:1.6}
body .pm-anfrage-feld select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,rgba(255,255,255,.6) 50%),linear-gradient(135deg,rgba(255,255,255,.6) 50%,transparent 50%);
background-position:calc(100% - 14px) calc(50% + 2px),calc(100% - 8px) calc(50% + 2px);background-size:6px 6px;background-repeat:no-repeat;padding-right:32px}
body .pm-anfrage-feld select option{background:#141414;color:#fff}
body .pm-anfrage-feld input:hover,body .pm-anfrage-feld textarea:hover,body .pm-anfrage-feld select:hover{border-bottom-color:rgba(255,255,255,.55)}
body .pm-anfrage-feld input:focus-visible,body .pm-anfrage-feld textarea:focus-visible,body .pm-anfrage-feld select:focus-visible{
outline:0;border-bottom-color:var(--pm-gold,#d59f3c);box-shadow:0 2px 0 0 var(--pm-gold,#d59f3c)}
/* =====================================================================
   V3.50.168: EINE Quelle fuer Platzhalter und Feldlinien
   =====================================================================
   Chris am 10.09.2026: "diese vorausgefuellten Texte, diese Beispieltexte,
   die sollten nicht so suggerieren, dass das schon da drinsteht, sondern es
   sollte klar werden, dass man die ueberschreiben kann. Es sind nur
   Gedankenstuetzen. Die duerfen auch nicht so kontrastreich sein."

   GEMESSEN, nicht geschaetzt (Sonde ueber alle Formularfelder der Website):

     helle Karte  Platzhalter 8,86:1  = Wort fuer Wort so kraeftig wie der
                                        Flisstext daneben (8,86:1)
     dunkle Karte Platzhalter 3,05:1  = unter der Lesbarkeitsschwelle
     Feldlinien   1,69:1 hell, 2,45:1 dunkel, 1,45:1 in der Livesuche
                                      = Sollwert nach WCAG 1.4.11 ist 3:1

   Die Ursache des ersten Befunds ist lehrreich: Die Regel "color:#8a8177"
   stand da und wirkte nicht. Ein Eingabefeld vererbt -webkit-text-fill-color
   an seinen ::placeholder, und diese Eigenschaft schlaegt beim Zeichnen die
   Farbe. Wer nur "color" setzt, setzt nichts. Deshalb steht sie unten
   ausdruecklich daneben - sonst ist der naechste Anlauf genauso wirkungslos.

   Der zweite Befund gehoert zum selben Gegenstand: Wer das Feld nicht als
   Feld erkennt, kann den Text darin auch nicht als Vorschlag erkennen. Auf
   dem alten schwarzen Grund war die helle Linie deutlich; nach dem Aufhellen
   war die dunkle Linie verschwunden. Nicht der Mangel ist neu - seine
   Sichtbarkeit.

   Ein Wert je Fassung, keine Regel je Stelle (stehende Regel "Ein Wert,
   ein Wort"). Gerechnet gegen den jeweils gemessenen Grund:

     dunkel  Platzhalter rgba(255,255,255,.52) auf #100D0A = 5,76:1
             Feldlinie   rgba(255,255,255,.36)             = 3,37:1
     hell    Platzhalter #736E64 auf #F7F4EE               = 4,62:1
             Feldlinie   rgba(23,19,12,.50)                = 3,40:1

   Der Platzhalter bleibt damit auf beiden Fassungen deutlich schwaecher als
   der eingetragene Inhalt (8,86 bzw. 19,37) und trotzdem ueber 4,5:1 -
   lesbar, aber erkennbar nur ein Vorschlag.
   ===================================================================== */
body{--pm-platzhalter:rgba(255,255,255,.52);--pm-feldlinie:rgba(255,255,255,.36)}
/* Helle Flaechen kehren beide Werte um. Wer hier eine weitere helle Karte
   ergaenzt, setzt die zwei Werte - nicht eine neue Platzhalterregel. */
body.pm-bereich-hochzeit .pm-anfrage .pm-anfrage-karte{
  --pm-platzhalter:#736E64;--pm-feldlinie:rgba(23,19,12,.5)}
/* Die Livesuche setzt dieselben zwei Werte dort, wo sie gebaut ist:
   assets/live-search.css. Eine Quelle je Bauteil - nicht zwei Stellen,
   die man beim naechsten Mal angleichen muss. */
body :is(input,textarea)::placeholder{
  color:var(--pm-platzhalter);-webkit-text-fill-color:var(--pm-platzhalter);opacity:1}
/* Ein leeres Datumsfeld zeichnet der Browser selbst ("TT.MM.JJJJ") und fasst
   ::placeholder nicht an. Die Klasse setzt assets/anfrage.js, sobald das Feld
   leer ist - ohne sie stuende dort ein Vorschlag in voller Textstaerke. */
body input[type=date].pm-feld-leer::-webkit-datetime-edit{
  color:var(--pm-platzhalter);-webkit-text-fill-color:var(--pm-platzhalter)}
/* Ein mehrzeiliges Feld ist eine Flaeche, keine Linie: Die Unterlinie sitzt
   132px unter dem Platzhalter, niemand verbindet die beiden. Einzeilige
   Felder behalten ihre Linie - das ist die Gestaltung dieser Website. */
body .pm-anfrage-feld textarea{
  border:1px solid var(--pm-feldlinie);border-radius:10px;padding:14px 14px}
body.pm-bereich-hochzeit .pm-anfrage .pm-anfrage-karte textarea{
  border:1px solid var(--pm-feldlinie)}
body .pm-anfrage-feld.is-fehler input,body .pm-anfrage-feld.is-fehler textarea{border-bottom-color:#e2726b;box-shadow:0 1px 0 0 #e2726b}
body .pm-anfrage-fehler{margin:0;color:#f0a19b;font-size:.85rem}
body .pm-anfrage-einwilligung label{display:flex;gap:12px;align-items:flex-start;font-weight:400;font-size:.92rem;line-height:1.55;color:rgba(255,255,255,.78);cursor:pointer}
body .pm-anfrage-einwilligung input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--pm-gold,#d59f3c);flex:0 0 auto}
body .pm-anfrage-einwilligung a{color:var(--pm-gold,#d59f3c);text-underline-offset:3px}
/* =====================================================================
   V3.50.18: Eine Feldbeschriftung ist kein Verweis
   =====================================================================
   Chris, 05.09.2026: „Die Bezeichnungen in den Feldern sollten hier nicht
   anklickbar sein. Wenn man darueber geht, wird der Cursor zu einer Hand, zum
   Beispiel auf dem Wort E-Mail oder Name. Man soll das Feld jeweils anklicken
   koennen, aber es sind keine Verlinkungen."

   Gemessen: Die Hand kommt aus dem Theme, style.css Zeile 50 -
   `label[for]{cursor:pointer}`. Die Regel behandelt jede Beschriftung wie
   einen Knopf. Auf einem Ankreuzfeld stimmt das, dort IST der Text der
   Schalter. Auf „Name" stimmt es nicht: Die Hand ist im ganzen Netz das
   Zeichen fuer „hier fuehrt etwas hin" - und hier fuehrt nichts hin.

   Das Anklicken selbst bleibt: Der Sprung ins Feld haengt am `for`-Bezug, nicht
   am Zeigersymbol. Es aendert sich nur, was der Zeiger verspricht.

   Die Korrektur steht im Plugin, nicht im Theme - eine Korrektur im Theme
   erreicht die laufende Seite nicht, solange das Theme nicht mitgeliefert wird.
   Und sie steht global, nicht nur im Anfrageformular: „Es muss einheitlich
   ueber die gesamte globale Webseite sein." */
body label[for]{cursor:default}
/* Die Ausnahme, und nur sie: Wo die Beschriftung selbst der Schalter ist -
   Ankreuzfeld oder Auswahlknopf - bleibt die Hand richtig. Beide Schreibweisen
   sind abgedeckt: das Feld IM Etikett und das Feld daneben. */
body label[for]:has(input[type=checkbox]),
body label[for]:has(input[type=radio]),
body label[for]:has(~input[type=checkbox]),
body label[for]:has(~input[type=radio]),
body .pm-anfrage-einwilligung label{cursor:pointer}
body .pm-anfrage-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
body .pm-anfrage-abschluss{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:8px}
body .pm-anfrage-abschluss .pm-button-primary{margin-top:0;align-self:auto}
body .pm-anfrage-abschluss .pm-button-primary[disabled]{opacity:.6;cursor:progress}
body .pm-anfrage-alternativ{color:rgba(255,255,255,.55);font-size:.95rem}
body .pm-anfrage-alternativ a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35)}
body .pm-anfrage-alternativ a:hover{color:var(--pm-gold,#d59f3c);border-bottom-color:var(--pm-gold,#d59f3c)}
body .pm-anfrage-status{margin:26px 0 0;padding:18px 22px;border-radius:var(--pm-radius,9px);font-size:1rem;line-height:1.6;outline:0}
body .pm-anfrage-status.is-info{background:rgba(255,255,255,.07);color:rgba(255,255,255,.82)}
body .pm-anfrage-status.is-fehler{background:rgba(226,114,107,.14);color:#f3b3ae;border:1px solid rgba(226,114,107,.4)}
body .pm-anfrage-status.is-erfolg{background:rgba(213,159,60,.13);color:#fff;border:1px solid var(--pm-gold,#d59f3c);font-size:1.1rem}
@media(max-width:700px){
body .pm-anfrage{padding:76px 0 82px}
body .pm-anfrage-abschluss{align-items:flex-start;flex-direction:column;gap:16px}
body .pm-anfrage-abschluss .pm-button-primary{width:100%}}

/* V3.50.9 (Chris, 05.09.2026): "Hier stimmen Texttrennungen zum Teil nicht."
   Ueberschriften in Kacheln brachen an unguenstigen Stellen um - "Neue Coffee
   Lounge im Autohof / Wernberg-Koeblitz spricht" trennt einen Eigennamen.
   `text-wrap:balance` verteilt die Zeilen gleichmaessig, statt die letzte Zeile
   verhungern zu lassen; `hyphens:auto` erlaubt die Trennung langer deutscher
   Komposita an der richtigen Stelle (die Seite ist als deutschsprachig
   ausgezeichnet, sonst greift die Trennung nicht). Beide Eigenschaften fallen
   in aelteren Browsern still auf das bisherige Verhalten zurueck. */
body :is(.pm-blog-card,.pm-home-news-card,.pm-references-v9-card,.pm-reference-card,
         .pm-refc-audience,.pm-testimonial-card,.pm-paket-karte,.pm-service-row,
         .pm-contact-v870-service,.pm-services-v902-service) :is(h1,h2,h3,h4,h5){
  text-wrap:balance;hyphens:auto;overflow-wrap:break-word}
body :is(.pm-section-head,.pm-head-row,.pm-refc-cta,.pm-services-v902-cta,
         .pm-references-v9-cta,.pm-about-cta) :is(h1,h2,h3){text-wrap:balance}

body .pm-beitrag-cta{margin:64px 0 8px;padding:34px 0 0;border-top:1px solid rgba(0,0,0,.12);display:grid;gap:6px;justify-items:start}
body .pm-beitrag-cta-text{margin:0;font-size:1.35rem;font-weight:850;letter-spacing:-.02em;color:#111}
body .pm-beitrag-cta-zusatz{margin:0 0 20px;color:#5a5a5a;font-size:1rem}
body .pm-beitrag-cta .pm-button-primary{margin-top:0;align-self:start}
@media(prefers-color-scheme:dark){
body .pm-beitrag-cta{border-top-color:rgba(255,255,255,.16)}
body .pm-beitrag-cta-text{color:#fff}
body .pm-beitrag-cta-zusatz{color:rgba(255,255,255,.66)}}
/* V3.31: Eigenstaendige, auffaelligere Gestaltung nur fuer den CTA-Baustein auf der
   Redaktions-Uebersicht (.pm-redaktion-cta) - der schlichte Trennlinien-Stil der
   Basisklasse .pm-beitrag-cta bleibt fuer den CTA unter einzelnen Beitraegen bewusst
   unangetastet (dort deckt sich der ruhige Ton mit dem redaktionellen Inhalt darueber,
   siehe Kommentar bei promedia_redaktion_cta_render() - hier auf der Uebersichtsseite,
   ohne umgebenden Fliesstext, darf der Baustein staerker als Handlungsaufforderung
   auftreten). */
body .pm-redaktion-cta{margin:56px 0 0;padding:44px 40px;border:1px solid rgba(213,159,60,.35);
  border-top:1px solid rgba(213,159,60,.35);border-radius:16px;
  background:linear-gradient(135deg,rgba(213,159,60,.08),rgba(213,159,60,.02) 60%,transparent);
  display:grid;gap:6px;justify-items:start}
body .pm-redaktion-cta .pm-beitrag-cta-text{font-size:1.6rem}
body .pm-redaktion-cta .pm-beitrag-cta-zusatz{font-size:1.05rem;max-width:46ch}
/* V3.32: Der umgebende Bereich (.pm-blog-page) ist auf der Redaktions-Uebersicht fest
   dunkel hinterlegt - unabhaengig von der Systemeinstellung des Browsers. Die Textfarben
   der Basisklasse .pm-beitrag-cta-text/-zusatz sind aber fuer HELLEN Grund gedacht und
   wurden nur ueber "@media(prefers-color-scheme:dark)" auf hell umgeschaltet - das greift
   ausschliesslich, wenn das Betriebssystem selbst auf Dunkelmodus steht, nicht weil DIESER
   Bereich der Seite dunkel ist. Ergebnis: dunkler, kaum lesbarer Text auf dunklem Grund bei
   jedem Besucher ohne System-Dunkelmodus. Deshalb hier direkt und bedingungslos hell
   gesetzt - dieser Baustein erscheint ausschliesslich in diesem fest dunklen Bereich. */
body .pm-redaktion-cta .pm-beitrag-cta-text{color:#fff!important}
body .pm-redaktion-cta .pm-beitrag-cta-zusatz{color:rgba(255,255,255,.72)!important}
body .pm-redaktion-cta .pm-beitrag-cta-alternativ{color:rgba(255,255,255,.6)!important}
body .pm-redaktion-cta .pm-beitrag-cta-alternativ a{color:#fff}
body .pm-redaktion-cta .pm-button-primary{background:var(--pm-gold,#d59f3c);border-color:var(--pm-gold,#d59f3c);color:#1a1400;font-weight:800}
body .pm-redaktion-cta .pm-button-primary:hover{filter:brightness(1.06)}
@media(min-width:760px){
body .pm-redaktion-cta{grid-template-columns:1fr auto;align-items:center;column-gap:32px}
body .pm-redaktion-cta .pm-beitrag-cta-text,body .pm-redaktion-cta .pm-beitrag-cta-zusatz{grid-column:1}
body .pm-redaktion-cta .pm-beitrag-cta-aktionen{grid-column:2;grid-row:1/3}}
@media(max-width:759px){body .pm-redaktion-cta{padding:32px 24px}}