/* PM — KOMPONENTEN (Ebene 3), Fassung 14.08.2026
   Header, Flyout, Footer, Kategorie-Archiv und Listen-Karten.
   Also: alles, was auf MEHREREN Seiten vorkommt.

   ENTFERNT am 14.08.2026: der komplette Seitenblock von /testsiegel
   (Sektionen 1-12, Textabstand-Reparatur, Mobil-Korrekturen und die
   Abstandsskala). Er lag hier global und hat auf jeder anderen Seite
   dieselben Klassennamen belegt - Ursache der Kollisionen bei
   .pm-tile, .pm-card, .pm-head, .pm-seal, .pm-hero und .pm-faq.
   Diese Regeln stehen jetzt im Seitencode von /testsiegel (Ebene 4).

   REGEL: hier kommt nichts hinein, was nur eine einzige Seite
   braucht. Seitenspezifisches gehoert in den wp:html-Block der
   jeweiligen Seite.
   =========================================================== */
/* --- Kopfzeile ---------------------------------------------------------- */
.pm-head{position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(255,255,255,.94);backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--linie);
  transition:transform var(--t-panel) var(--ease-out);}
.pm-head.is-weg{transform:translateY(-101%);}
/* Kopfzeile hoeher, damit der zweizeilige Claim im Logo lesbar bleibt.
   Beim Scrollen schrumpft sie auf 68 px — dann ist der Claim gelesen
   und die Leiste darf Platz zurueckgeben. Umschalten uebernimmt das
   Header-Skript ueber die Klasse .is-klein am selben Element, das
   bereits .is-weg setzt. */
.pm-head__in{display:flex;align-items:center;gap:28px;height:84px;
  max-width:1360px;margin:0 auto;padding:0 32px;
  transition:height var(--t-hover) var(--ease-out);}
.pm-head.is-klein .pm-head__in{height:68px;}

.pm-head__logo{flex:0 0 auto;display:flex;align-items:center;}
/* Zweifarbiges Logo mit Claim, eigene Datei je Hintergrund.
   Der frueher hier stehende CSS-Farbfilter ist entfallen — er kann
   nur einfarbig einfaerben. */
.pm-head__logo img{height:64px;width:auto;display:block;
  transition:height var(--t-hover) var(--ease-out);}
.pm-head.is-klein .pm-head__logo img{height:46px;}
@media(max-width:900px){
  .pm-head__logo img{height:46px;}
  .pm-head.is-klein .pm-head__logo img{height:40px;}
}

/* Navigation */
.pm-nav2{display:flex;align-items:center;gap:26px;margin-left:6px;}
.pm-nav2 a{position:relative;font-size:14.5px;font-weight:500;color:var(--blau);
  padding:6px 0;white-space:nowrap;}
.pm-nav2 a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;
  background:var(--akzent);transform:scaleX(0);transform-origin:left;
  transition:transform var(--t-panel) var(--ease-out);}
.pm-nav2 a:hover::after,.pm-nav2 a.is-akt::after{transform:scaleX(1);}

/* Flyout */
.pm-nav2{position:static;}
.pm-fly{position:absolute;left:0;right:0;top:100%;
  background:#fff;border-radius:14px;
  box-shadow:0 12px 32px rgba(27,38,59,.10), 0 2px 8px rgba(27,38,59,.06);
  opacity:0;visibility:hidden;transform:translateY(-10px);
  transition:opacity var(--t-hover) var(--ease-out),
             transform var(--t-hover) var(--ease-out),visibility var(--t-hover);}
#flyTestberichte,#flyMagazin{max-width:760px;margin-inline:auto;}
.pm-mag__big .pm-fly__bild{aspect-ratio:16/9;}
.pm-fly.is-auf{opacity:1;visibility:visible;transform:none;}
.pm-fly__in{margin:0 auto;padding:30px 30px 32px;
  display:grid;grid-template-columns:1.5fr 1px 1fr;gap:0 34px;}
#flyMagazin .pm-fly__in{grid-template-columns:1fr 1px 1fr;}
.pm-fly__linie{background:var(--linie);}
.pm-fly__lbl{font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  font-weight:700;color:var(--schwach);margin:0 0 20px;}

/* Kategorien */
.pm-fly__kat{display:grid;grid-template-columns:repeat(3,1fr);gap:0 32px;}
.pm-fly__kat a{position:relative;display:block;font-size:14px;color:var(--grau);
  padding:9px 0 9px 16px;transition:color var(--t-hover);}
.pm-fly__kat a::before{content:"";position:absolute;left:0;top:50%;
  width:5px;height:5px;border-radius:50%;background:var(--akzent);
  transform:translateY(-50%) scale(0);transition:transform var(--t-hover) var(--ease-out);}
.pm-fly__kat a:hover{color:var(--blau);}
.pm-fly__kat a:hover::before{transform:translateY(-50%) scale(1);}

/* Aufmacher rechts */
.pm-fly__auf{display:block;}
.pm-fly__bild{overflow:hidden;border-radius:12px;background:var(--flaeche);
  border:1px solid var(--linie);aspect-ratio:16/10;margin-bottom:16px;}
.pm-fly__bild img{width:100%;height:100%;object-fit:cover;
  transition:transform .9s var(--ease-out);}
.pm-fly__auf:hover .pm-fly__bild img{transform:scale(1.04);}
.pm-fly__kick{font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  font-weight:700;color:var(--akzent);margin:0 0 8px;}
.pm-fly__t{font-size:16px;line-height:1.36;font-weight:600;color:var(--blau);
  letter-spacing:-.01em;margin:0;}
.pm-fly__zeilen{margin-top:22px;border-top:1px solid var(--linie);}
.pm-fly__zeilen a{display:block;padding:13px 0;border-bottom:1px solid var(--linie);
  font-size:13.5px;line-height:1.4;color:var(--grau);transition:color var(--t-hover);}
.pm-fly__zeilen a:last-child{border-bottom:0;}
.pm-fly__zeilen a:hover{color:var(--blau);}
.pm-fly__alle{display:inline-flex;align-items:center;gap:9px;margin-top:24px;
  font-size:13.5px;font-weight:500;color:var(--blau);
  border-bottom:1px solid var(--linie);padding-bottom:3px;transition:border-color var(--t-hover);}
.pm-fly__alle:hover{border-color:var(--akzent);}
.pm-fly__alle svg{transition:transform var(--t-hover);}
.pm-fly__alle:hover svg{transform:translateX(3px);}

/* Kategorie-Kacheln (Testberichte-Flyout) */
/* KOLLISION: .pm-tile heisst in Sektion 3 (Listing-Raster) ebenfalls so und
   steht dort auf opacity:0, sichtbar nur ueber .pm-serp.is-in. Im Flyout gibt
   es kein .pm-serp — deshalb blieben die Kacheln unsichtbar. Hier neutralisiert. */
.pm-fly__tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:4px 8px;}
/* ALLE Flyout-Regeln sind auf .pm-fly__tiles gescopt. ".pm .pm-tile"
   ohne Scope hatte 0,2,0 und schlug das Listing-Raster der
   Testsiegel-Seite (0,1,0) — dort lagen Bild, Sterne und Preis
   dadurch nebeneinander statt untereinander. */
.pm .pm-fly__tiles .pm-tile{opacity:1 !important;transform:none !important;
  display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:8px;}
.pm .pm-fly__tiles .pm-tile:hover{background:var(--flaeche);}
.pm-fly__tiles .pm-tile__ic{flex:none;display:flex;color:var(--akzent);}
.pm-fly__tiles .pm-tile__ic svg{width:15px;height:15px;}
.pm-fly__tiles .pm-tile__name{font-size:12px;font-weight:600;color:var(--blau);white-space:normal;
  line-height:1.25;height:2.5em;display:flex;align-items:center;overflow:hidden;}

.pm-fly__card{display:flex;gap:10px;align-items:center;margin-bottom:12px;}
.pm-fly__thumb{width:46px;height:46px;border-radius:8px;flex:none;overflow:hidden;}
.pm-fly__thumb img{width:100%;height:100%;object-fit:cover;}

/* Zweite „Zuletzt geprüft"-Karte */
.pm-fly__auf + .pm-fly__auf{margin-top:22px;}

/* Magazin-Flyout: umschaltbare Panels */
.pm-mag__stage{position:relative;}
.pm-mag__panel{display:none;}
.pm-mag__panel.is-akt{display:block;}
/* Zwei kleine Bildkacheln rechts oben. Panel-Logik hat Vorrang, deshalb
   beide Klassen im Selektor - sonst waere die Kachelreihe immer sichtbar. */
.pm .pm-mag__panel.pm-mag__mini{display:none;}
.pm .pm-mag__panel.pm-mag__mini.is-akt{display:block;}
.pm-mag__rechts{display:flex;flex-direction:column;}
.pm-mag__rechts .pm-mag__stage{margin-bottom:24px;}
.pm-mag__rechts .pm-fly__lbl{margin-bottom:14px;}

/* Linke Spalte: Kicker ueber dem Titel, darunter Trenner und Textlink */
.pm-mag__big .pm-fly__kick{margin-top:14px;}
.pm-mag__trenner{border-top:1px solid var(--linie);margin-top:20px;}
.pm-mag__stage .pm-fly__alle{margin-top:16px;}

/* Kategorie-Chips: umbrechendes Raster, waechst zeilenweise mit */
.pm .pm-mag__nav{display:flex;flex-wrap:wrap;gap:8px;
  margin-top:0;border-top:0;}
.pm .pm-mag__cat{display:inline-flex;align-items:center;padding:7px 15px;
  border:1px solid var(--linie);border-radius:100px;
  font-size:12.5px;font-weight:500;line-height:1.2;color:var(--grau);
  background:#fff;cursor:pointer;white-space:nowrap;
  transition:border-color var(--t-hover),background var(--t-hover),color var(--t-hover);}
.pm .pm-mag__cat:hover{border-color:var(--hell);color:var(--blau);}
.pm .pm-mag__cat.is-akt{background:var(--blau);border-color:var(--blau);
  color:#fff;font-weight:600;}

/* ===== Kategorie-Archiv — 1:1 nach Live (/baumarkt/), token-basiert ===== */
.pm-hero{padding:56px 0 var(--sp-sec);}
.pm-kat__in{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--sp-col);align-items:center;}
.pm-kat__text .pm-lead{max-width:46ch;}
.pm .pm-subs__k{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--akzent);margin:0 0 18px;}
.pm-subs{display:flex;flex-wrap:wrap;gap:10px;}
.pm .pm-sub{display:inline-flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--linie);border-radius:100px;padding:9px 18px;font-size:14px;font-weight:500;color:var(--blau);letter-spacing:-.008em;white-space:nowrap;}
.pm-sub::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--akzent);flex:none;opacity:.55;}
.pm .pm-subs__note{font-size:13px;line-height:1.6;color:var(--schwach);margin-top:var(--sp-card);}
.pm-liste{background:var(--flaeche);padding:var(--sp-sec) 0;}

/* TESTBERICHT-KARTEN — eine Fassung fuer alle Seiten.
   Startseite, /testberichte und die Kategorieseiten zeigen dieselben
   Karten aus demselben Shortcode; die Optik gehoert deshalb hierher
   und NICHT in den Seitencode. Kein Kartenkasten mehr: gerahmt ist
   nur die Bildflaeche, der Text steht frei darunter. Goldener Kicker
   statt Kategorie-Pille, Goldstrich unter dem Titel laeuft beim
   Ueberfahren ein. */
.pm-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-col) var(--sp-card);}
.pm .pm-card,.pm a.pm-card:link,.pm a.pm-card:visited,.pm a.pm-card:hover{color:var(--blau) !important;text-decoration:none !important;}
.pm .pm-card{display:flex;flex-direction:column;background:none;border:0;border-radius:0;overflow:visible;}
.pm-liste .pm-card{opacity:1 !important;transform:none !important;}
.pm .pm-card:hover{transform:none;box-shadow:none;}
.pm-card__img{aspect-ratio:4/3;background:#fff;overflow:hidden;
  border:1px solid var(--linie);border-radius:12px;
  transition:border-color var(--t-hover) var(--ease-out),
             box-shadow var(--t-hover) var(--ease-out);}
.pm-card__img img{width:100%;height:100%;object-fit:cover;
  transition:transform .5s var(--ease-out);}
.pm .pm-card:hover .pm-card__img{border-color:var(--hell);box-shadow:0 16px 36px rgba(27,38,59,.10);}
.pm .pm-card:hover .pm-card__img img{transform:scale(1.04);}
.pm-card__body{padding:18px 2px 0;display:flex;flex-direction:column;flex:1;}
.pm-card .pm-card__cat{display:block;font-size:10.5px !important;letter-spacing:.14em;text-transform:uppercase;color:var(--akzent) !important;font-weight:700 !important;margin:0 0 10px !important;padding:0;background:none;border-radius:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.pm-card h3.pm-card__title{font-size:16px !important;line-height:1.35 !important;font-weight:600 !important;color:var(--blau) !important;margin:0 !important;padding:0 0 3px !important;letter-spacing:-.014em;display:inline;
  background-image:linear-gradient(var(--akzent),var(--akzent));
  background-repeat:no-repeat;background-position:0 100%;background-size:0 1.5px;
  transition:background-size var(--t-panel) var(--ease-out);}
.pm .pm-card:hover h3.pm-card__title{background-size:100% 1.5px;}
.pm-card .pm-card__more{margin-top:14px;padding-top:0;border-top:0;font-size:13px !important;font-weight:600 !important;color:var(--schwach) !important;display:flex;align-items:center;gap:7px;transition:color var(--t-hover) var(--ease-out);}
.pm-card__more::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform var(--t-hover) var(--ease-out);}
.pm .pm-card:hover .pm-card__more{color:var(--blau) !important;}
.pm .pm-card:hover .pm-card__more::after{transform:rotate(-45deg) translate(2px,2px);}
.pm-card.is-aus{display:none;}
.pm-mehr{margin-top:var(--sp-block);display:flex;justify-content:center;}
.pm .pm-mehr__btn{display:inline-flex;align-items:center;gap:11px;background:#fff;color:var(--blau);border:1.5px solid var(--linie);border-radius:2px;padding:16px 34px;font-family:var(--f);font-size:15px;font-weight:600;line-height:1.2;cursor:pointer;transition:border-color var(--t-hover),transform var(--t-hover);}
.pm .pm-mehr__btn:hover{border-color:var(--blau);transform:translateY(-1px);}
.pm-mehr__btn::after{content:"";width:7px;height:7px;border-right:1.5px solid var(--akzent);border-bottom:1.5px solid var(--akzent);transform:rotate(45deg) translateY(-2px);transition:transform var(--t-hover);}
.pm-mehr__btn:hover::after{transform:rotate(45deg) translate(1px,1px);}
.pm-ende{display:none;text-align:center;margin-top:var(--sp-block);}
.pm-ende.is-on{display:flex;justify-content:center;}
.pm .pm-link{font-size:14px;font-weight:600;color:var(--blau) !important;white-space:nowrap;border-bottom:1.5px solid var(--akzent);padding-bottom:4px;transition:var(--t-hover);text-decoration:none;}
.pm .pm-link:hover{border-bottom-color:var(--blau);}
.pm-hints{padding:var(--sp-sec) 0;}
.pm-hints__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-card);align-items:stretch;}
.pm .pm-hint{display:flex;flex-direction:column;height:100%;border:1px solid var(--linie);border-radius:12px;padding:var(--sp-block);background:#fff;transition:border-color var(--t-hover),box-shadow var(--t-hover);}
.pm .pm-hint:hover{border-color:var(--hell);box-shadow:0 14px 32px rgba(27,38,59,.07);}
.pm-hint .pm-link{align-self:flex-start;}
.pm .pm-hint__k{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--akzent);margin:0 0 12px;}
.pm .pm-hint__t{font-size:19px;font-weight:700;color:var(--blau);letter-spacing:-.018em;line-height:1.3;margin:0 0 var(--tp-title);}
.pm .pm-hint__x{font-size:14.5px;line-height:1.7;color:var(--grau);margin:0 0 var(--sp-card);max-width:46ch;flex:1;}
@media(max-width:900px){
  .pm-hero{padding:48px 0 var(--sp-sec);}
  .pm-kat__in{grid-template-columns:1fr;gap:var(--sp-block);align-items:start;}
  .pm-kat__text .pm-lead{max-width:60ch;}
  .pm-subs{gap:8px;} .pm .pm-sub{padding:8px 14px;font-size:13px;gap:7px;}
  .pm-cards{grid-template-columns:repeat(2,1fr);gap:12px;}
  .pm-card__body{padding:14px 14px 18px;}
  .pm-card .pm-card__cat{font-size:9px !important;padding:4px 8px;margin:0 0 10px !important;letter-spacing:.06em;}
  .pm-card h3.pm-card__title{font-size:13.5px !important;line-height:1.3 !important;min-height:2.6em;}
  .pm-card .pm-card__more{font-size:11.5px !important;margin-top:12px;padding-top:10px;}
  .pm .pm-mehr__btn{width:100%;justify-content:center;}
  .pm-hints__grid{grid-template-columns:1fr;} .pm .pm-hint{padding:var(--sp-card);}
}

/* Lizenzsuche */
/* 300 px waren zu schmal: der eigene Platzhalter "Lizenznummer" wurde
   abgeschnitten und stand als "Lizenznumr" in der Leiste. */
.pm-such{position:relative;flex:1 1 auto;min-width:240px;max-width:340px;margin-left:auto;}
.pm-such input{width:100%;height:40px;border:1px solid var(--linie);border-radius:8px;
  background:var(--flaeche);padding:0 40px 0 14px;font-family:var(--f);
  font-size:14px;color:var(--blau);transition:border-color var(--t-hover),background var(--t-hover);}
.pm-such input::placeholder{color:var(--schwach);}
.pm-such input:focus{outline:none;border-color:var(--blau-2);background:#fff;}
.pm-such.is-fehler input{border-color:var(--fehler);}
.pm-such.is-busy input{opacity:.6;}
.pm-such__msg{position:absolute;left:0;top:calc(100% + 7px);z-index:2;
  display:none;max-width:340px;padding:9px 13px;border-radius:8px;
  background:#fff;border:1px solid var(--linie);
  box-shadow:0 8px 22px rgba(27,38,59,.10);
  font-size:12.5px;line-height:1.45;color:var(--grau);}
.pm-such__msg.is-on{display:block;}
/* Auslöser statt Zierde: die Lupe stand links und tat nichts. Rechts als
   Knopf ist sie das, was der Nutzer sucht — und die Beschriftung
   "Lizenznummer eingeben" passt jetzt vollstaendig ins Feld. */
.pm-such__go{position:absolute;right:6px;top:50%;transform:translateY(-50%);
  width:28px;height:28px;display:flex;align-items:center;justify-content:center;
  border:0;background:none;border-radius:6px;cursor:pointer;color:var(--schwach);
  transition:color var(--t-hover) var(--ease-out),background var(--t-hover) var(--ease-out);}
.pm-such__go:hover{color:var(--blau);background:var(--flaeche);}
.pm-such.is-busy .pm-such__go{opacity:.4;pointer-events:none;}
.pm button.pm-such__go,.pm button.pm-such__go:hover,
.pm button.pm-such__go:focus,.pm button.pm-such__go:active{
  border:0 !important;box-shadow:none !important;}

/* Sprache */
.pm-lang{position:relative;flex:0 0 auto;}
/* Als Pille mit Weltkugel: zwei graue Buchstaben waren fuer jemanden,
   der die Seite nicht lesen kann, praktisch unsichtbar. Gleiche Form wie
   die Sprachchips im mobilen Menue. */
.pm-lang__btn{display:flex;align-items:center;gap:7px;background:none;
  border:1px solid var(--linie);border-radius:100px;
  cursor:pointer;font-family:var(--f);font-size:13.5px;font-weight:600;
  letter-spacing:.06em;color:var(--grau);padding:7px 14px;
  transition:color var(--t-hover),border-color var(--t-hover) var(--ease-out);}
.pm-lang__btn:hover,.pm-lang.is-auf .pm-lang__btn{color:var(--blau);border-color:var(--blau);}
.pm-lang__globus{color:var(--akzent);flex:none;}

/* Astra und Divi faerben JEDES <button> ein. Hier neutralisieren, sonst
   schlaegt deren Button-Hintergrund durch (das war das Blau). */
.pm button.pm-lang__btn,.pm button.pm-lang__btn:hover,
.pm button.pm-lang__btn:focus,.pm button.pm-lang__btn:active,
.pm button.pm-burger,.pm button.pm-burger:hover,.pm button.pm-burger:focus{
  background:none !important;background-color:transparent !important;
  box-shadow:none !important;text-decoration:none !important;}
.pm button.pm-burger{border:0 !important;}
.pm button.pm-lang__btn{color:var(--grau) !important;padding:7px 14px !important;
  border:1px solid var(--linie) !important;}
.pm-lang.is-auf button.pm-lang__btn{border-color:var(--blau) !important;}
.pm button.pm-lang__btn:hover,.pm-lang.is-auf button.pm-lang__btn{
  color:var(--blau) !important;}
.pm-lang__btn svg:last-of-type{transition:transform var(--t-hover);}
.pm-lang.is-auf .pm-lang__btn svg:last-of-type{transform:rotate(180deg);}
.pm-lang__pn{position:absolute;top:calc(100% + 14px);right:0;min-width:200px;
  background:#fff;border:1px solid var(--linie);border-radius:12px;padding:8px;
  box-shadow:0 18px 50px rgba(27,38,59,.10);
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity var(--t-hover),transform var(--t-hover),visibility var(--t-hover);}
.pm-lang.is-auf .pm-lang__pn{opacity:1;visibility:visible;transform:none;}
.pm-lang__pn a{display:block;padding:9px 14px;border-radius:8px;font-size:14px;
  color:var(--grau);transition:background var(--t-hover),color var(--t-hover);}
/* GTranslate rendert die Links selbst als a.glink. Gleiche Optik wie zuvor. */
.pm .pm-lang__pn a.glink,.pm .pm-mob__spr a.glink{
  display:block !important;padding:9px 14px !important;border-radius:8px;
  font-size:14px;font-weight:500;text-decoration:none !important;
  background:transparent !important;color:var(--grau) !important;}
.pm .pm-lang__pn a.glink:hover,.pm .pm-mob__spr a.glink:hover{
  background:var(--flaeche) !important;color:var(--blau) !important;}
.pm .pm-lang__pn a.glink.gt-current-lang,.pm .pm-mob__spr a.glink.gt-current-lang{
  color:var(--blau) !important;font-weight:600;}
.pm .pm-lang__pn a.glink img,.pm .pm-mob__spr a.glink img{display:none !important;}

.pm .pm-lang__pn a,.pm .pm-lang__pn a:link,.pm .pm-lang__pn a:visited{
  background:transparent !important;color:var(--grau) !important;}
.pm .pm-lang__pn a:hover,.pm .pm-lang__pn a:focus,.pm .pm-lang__pn a:active{
  background:var(--flaeche) !important;color:var(--blau) !important;}
.pm .pm-lang__pn a.is-akt{background:transparent !important;
  color:var(--blau) !important;font-weight:600;}
.pm-lang__pn a.is-akt{color:var(--blau);font-weight:600;}

/* Button */
.pm-head .pm-cta{display:inline-block;flex:0 0 auto;padding:12px 20px;border-radius:8px;
  background:var(--blau);color:#fff !important;font-size:14px;font-weight:500;
  white-space:nowrap;transition:background var(--t-hover);}
.pm-head .pm-cta:hover{background:var(--blau-2);}

/* Burger */
.pm-burger{display:none;width:40px;height:40px;margin-left:auto;background:none;
  border:0;cursor:pointer;position:relative;}
.pm-burger span{position:absolute;left:9px;width:22px;height:1.5px;background:var(--blau);
  transition:transform var(--t-panel) var(--ease-out),opacity var(--t-hover);}
.pm-burger span:nth-child(1){top:14px;}
.pm-burger span:nth-child(2){top:20px;}
.pm-burger span:nth-child(3){top:26px;}
body.pm-offen .pm-burger span:nth-child(1){transform:translateY(6px) rotate(45deg);}
body.pm-offen .pm-burger span:nth-child(2){opacity:0;}
body.pm-offen .pm-burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

/* Mobiles Vollbildmenue */
/* Der obere Rand folgt der tatsaechlichen Leistenhoehe. Das Header-Skript
   meldet sie als --pm-head-h; 74px ist der Rueckfall ohne Skript. Fest
   gesetzte 64px lagen hinter der Leiste. */
.pm-mob{display:none;position:fixed;inset:var(--pm-head-h,74px) 0 0;z-index:99;background:#fff;
  flex-direction:column;padding:28px 22px 32px;
  opacity:0;visibility:hidden;transform:translateY(-8px);
  transition:opacity var(--t-hover),transform var(--t-hover),visibility var(--t-hover);overflow-y:auto;}
body.pm-offen .pm-mob{opacity:1;visibility:visible;transform:none;}
.pm-mob__such{max-width:none;margin:0 0 26px;}
.pm-mob__nav a{display:flex;align-items:center;justify-content:space-between;
  padding:18px 0;border-bottom:1px solid var(--linie);
  font-size:19px;font-weight:500;color:var(--blau);letter-spacing:-.01em;}
.pm-mob__nav a:first-child{border-top:1px solid var(--linie);}
.pm-mob__nav svg{color:var(--hell);}
.pm-mob__fuss{margin-top:auto;padding-top:32px;}
.pm-mob__fuss .pm-cta{display:block;text-align:center;padding:16px 20px;
  background:var(--blau);color:#fff !important;border-radius:8px;
  font-size:15px;font-weight:500;}
.pm-mob__spr{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px;}
.pm-mob__spr a{padding:8px 14px;border:1px solid var(--linie);border-radius:100px;
  font-size:13.5px;color:var(--grau);}
.pm-mob__spr a.is-akt{border-color:var(--blau);color:var(--blau);font-weight:600;}
.pm-mob__spr a{min-width:44px;text-align:center;letter-spacing:.04em;}
/* Ueberschrift ueber den Chips — zweistellige Kuerzel allein sagen nicht,
   wofuer sie stehen. */
.pm-mob__sprkopf{display:flex;align-items:center;gap:8px;margin-bottom:12px;
  font-size:var(--fs-kicker);letter-spacing:.16em;text-transform:uppercase;
  font-weight:700;color:var(--schwach);}
.pm-mob__sprkopf svg{color:var(--akzent);flex:none;}

/* Aktiver Menuepunkt: Goldstrich unter dem Wort. Nicht fett und nicht
   farbig — beides kollidierte mit dem Hover-Zustand. */
.pm-nav2 a{position:relative;}
.pm-nav2 a.is-hier::after{content:"";position:absolute;left:0;right:0;bottom:-6px;
  height:2px;background:var(--akzent);border-radius:2px;}
.pm-mob__nav a.is-hier{color:var(--akzent);}

@media(max-width:1180px){
  .pm-nav2{gap:20px;}
  .pm-such{max-width:210px;}
  .pm-such input{padding-right:40px;}
}
@media(max-width:1000px){
  /* Mobil ist die Leiste ohnehin knapp; der geschrumpfte Zustand muss
     kleiner sein als der normale, sonst waechst sie beim Scrollen. */
  .pm-head__in{height:74px;padding:0 22px;gap:0;}
  .pm-head.is-klein .pm-head__in{height:60px;}
  /* .pm-such NUR in der Kopfzeile ausblenden: das mobile Menue nutzt
     dieselbe Klasse und verschwand sonst mit. */
  .pm-nav2,.pm-head .pm-such,.pm-lang,.pm-head .pm-cta{display:none;}
  .pm-burger{display:block;}
  .pm-mob{display:flex;}
}
/* --- Fußzeile ----------------------------------------------------------- */
.pm-foot{background:var(--blau);position:relative;overflow:hidden;}
.pm-foot::after{content:"";position:absolute;top:-60%;right:-8%;
  width:48%;height:200%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(184,134,59,.09),transparent 72%);}
.pm-foot .pm-wrap{position:relative;z-index:1;max-width:1360px;}

/* Zeile 1: Marke + Navigation */
/* Vollbreite Flaeche, unabhaengig davon wie breit der Theme-Container ist.
   calc(50% - 50vw) korrigiert sich selbst: bei vollbreitem Elternelement = 0. */
.pm-bleed{width:100vw;margin-left:calc(50% - 50vw);}
/* Logospalte schmaler und oben ausgerichtet: mittig zur Navigation
   sah nach Ausrichtung auf nichts aus, weil die Kicker oben stehen.
   Spaltenabstand von --sp-col auf --sp-block: 64 px zwischen vier
   kurzen Linklisten war die groesste Flaeche im Footer. */
.pm-foot__oben{display:grid;grid-template-columns:minmax(180px,auto) 1fr;
  gap:var(--sp-block);align-items:center;
  padding:var(--sp-lead) 0 var(--sp-block);}
/* Der Claim steckt jetzt wieder in der Logodatei — eine separate
   Textzeile im Footer entfaellt damit. */
.pm-foot__logo img{height:64px !important;width:auto !important;max-width:none !important;display:block;}
.pm-foot__nav{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-block);}
.pm-foot__lbl{font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  font-weight:700;color:var(--akzent-hell);margin:0 0 var(--sp-card);}
.pm-foot__nav ul{display:flex;flex-direction:column;gap:1px;}
.pm .pm-foot__nav a,.pm .pm-foot__nav a:link,.pm .pm-foot__nav a:visited{
  display:inline-block;font-size:14.5px;color:var(--hell);padding:6px 0;
  transition:color var(--t-hover),transform var(--t-hover);}
.pm .pm-foot__nav a:hover{color:#fff;transform:translateX(3px);}

/* Zeile 2: Hinweis + Belege */
.pm-foot__mitte{display:grid;grid-template-columns:1fr auto;gap:var(--sp-col);
  align-items:center;padding:var(--sp-block) 0;
  border-top:1px solid rgba(255,255,255,.12);}
.pm-foot__hinweis{font-size:13px;line-height:1.7;color:var(--hell);margin:0;max-width:78ch;}
.pm-foot__hinweis strong{color:#fff;font-weight:600;}
.pm .pm-foot__hinweis a,.pm .pm-foot__hinweis a:link,.pm .pm-foot__hinweis a:visited{
  color:#fff;border-bottom:1px solid rgba(255,255,255,.28);}
.pm .pm-foot__hinweis a:hover{border-color:var(--akzent);}

/* Belege: kein Kasten, sondern Haarlinien-Trennung */
.pm-foot__belege{display:flex;align-items:center;gap:28px;flex:none;}
.pm-foot__bg{display:flex;align-items:center;gap:13px;position:relative;}
.pm-foot__bg + .pm-foot__bg{padding-left:28px;}
.pm-foot__bg + .pm-foot__bg::before{content:"";position:absolute;left:0;top:2px;bottom:2px;
  width:1px;background:rgba(255,255,255,.14);}
.pm-foot__bgic{flex:none;width:38px;height:38px;border-radius:50%;
  border:1px solid rgba(255,255,255,.18);display:flex;align-items:center;
  justify-content:center;color:var(--akzent-hell);}
.pm-foot__bgtx{font-size:12px;line-height:1.45;color:var(--hell);white-space:nowrap;}
.pm-foot__bgtx b{display:block;font-size:13.5px;font-weight:600;color:#fff;
  letter-spacing:-.005em;margin-bottom:1px;}
.pm-foot__sterne{display:flex;gap:2px;margin-bottom:5px;}
.pm .pm-foot__bgtx a,.pm .pm-foot__bgtx a:link,.pm .pm-foot__bgtx a:visited{
  color:var(--hell);border-bottom:1px solid rgba(255,255,255,.22);}
.pm .pm-foot__bgtx a:hover{color:#fff;border-color:var(--akzent-hell);}

/* Zeile 3: Schlusszeile */
.pm-foot__unten{border-top:1px solid rgba(255,255,255,.12);
  padding:20px 0 var(--sp-block);
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  font-size:12.5px;color:var(--hell);}
.pm .pm-foot__unten a,.pm .pm-foot__unten a:link,.pm .pm-foot__unten a:visited{
  color:var(--hell);border-bottom:1px solid rgba(255,255,255,.2);}
.pm .pm-foot__unten a:hover{color:#fff;border-color:var(--akzent-hell);}
/* Complianz-Verwalten-Reiter ausblenden: der Zugang laeuft ueber den
   Footer-Link (Klasse cmplz-show-banner, Ausloeser in functions.php). */
#cmplz-manage-consent{display:none;}


@media(max-width:1100px){
  .pm-foot__mitte{grid-template-columns:1fr;gap:var(--sp-block);align-items:start;}
  .pm-foot__hinweis{max-width:none;}
}
@media(max-width:1000px){
  /* Mobil steht das Logo ueber der Navigation und wird dort zentriert.
     Links angeschlagen wirkte es wie ein vergessenes Element, weil
     darunter zwei gleich breite Linkspalten stehen. */
  .pm-foot__oben{grid-template-columns:1fr;gap:var(--sp-block);justify-items:center;}
  .pm-foot__logo{display:block;}
  .pm-foot__nav{justify-items:start;width:100%;}
  .pm-foot__nav{grid-template-columns:1fr 1fr;gap:var(--sp-block) var(--sp-card);}
}
@media(max-width:560px){
  .pm-foot__belege{flex-direction:column;align-items:flex-start;gap:18px;}
  .pm-foot__bg + .pm-foot__bg{padding-left:0;padding-top:18px;}
  .pm-foot__bg + .pm-foot__bg::before{left:0;right:auto;top:0;bottom:auto;
    width:56px;height:1px;}
  .pm-foot__bgtx{white-space:normal;}
  .pm-foot__unten{flex-direction:column;align-items:flex-start;gap:12px;}
  /* Mobil groesser: das Logo traegt hier den Claim und ist der einzige
     Absender im Bild. Haarlinie darunter schliesst den Block ab. */
  .pm-foot__logo img{height:76px !important;}
  .pm-foot__logo{padding-bottom:var(--sp-card);
    border-bottom:1px solid rgba(255,255,255,.14);width:100%;
    display:flex;justify-content:center;}
}

/* ===========================================================
   RECHTSTEXTE  ·  .pm-legal
   Impressum, Datenschutz, AGB und Affiliate-Hinweis nutzen
   denselben Block. Er lag bis 14.08.2026 wortgleich in jedem
   Seitencode — derselbe Fehler musste dreimal repariert werden.
   Ab jetzt: eine Fassung, hier.

   Alle Regeln tragen das .pm-Praefix. Ohne es hat ".pm-legal p"
   nur 0,1,1 und verliert gegen ".pm .pm-text{margin:0}" aus
   Ebene 2 (0,2,0) — dann stehen saemtliche Absaetze und
   Zwischenueberschriften ohne Abstand aufeinander.
   =========================================================== */
.pm-legal{background:#fff;}
.pm-legal__wrap{max-width:820px;}
.pm .pm-legal .pm-h1{margin-bottom:var(--tp-head);}
.pm .pm-legal__intro{margin-bottom:var(--sp-lead);}

.pm .pm-legal h2{font-size:24px;line-height:1.3;font-weight:600;color:var(--blau);
  letter-spacing:-.015em;margin:var(--sp-lead) 0 var(--tp-title);
  padding-top:var(--sp-block);border-top:1px solid var(--linie);}
.pm .pm-legal h2:first-of-type{padding-top:0;border-top:0;}
.pm .pm-legal h3{font-size:17px;line-height:1.35;font-weight:600;color:var(--blau);
  margin:var(--sp-block) 0 var(--tp-title);}

.pm .pm-legal p{margin:0 0 var(--sp-card);}
.pm .pm-legal p:last-child{margin-bottom:0;}

.pm .pm-legal ul{margin:0 0 var(--sp-card);padding-left:0 !important;}
.pm .pm-legal ul li{position:relative;padding-left:20px;margin-bottom:8px;}
.pm .pm-legal ul li::before{content:"";position:absolute;left:2px;top:11px;
  width:5px;height:5px;border-radius:50%;background:var(--akzent);opacity:.7;}

.pm .pm-legal a{color:var(--blau);border-bottom:1px solid var(--linie);
  word-break:break-word;transition:border-color var(--t-hover) var(--ease-out);}
.pm .pm-legal a:hover{border-color:var(--akzent);}

/* Adresskasten (Impressum) */
.pm .pm-legal__daten{max-width:66ch;border:1px solid var(--linie);border-radius:12px;
  padding:24px 28px;margin:0 0 var(--sp-card);}
.pm .pm-legal__daten p{margin:0;}

/* Download-Zeile (AGB) */
.pm .pm-legal__dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;
  margin:0 0 var(--sp-lead);}
.pm .pm-legal__dl a{display:flex;align-items:center;justify-content:space-between;
  gap:14px;padding:15px 20px;border:1px solid var(--linie);border-radius:2px;
  font-size:14.5px;font-weight:500;color:var(--blau);border-bottom-width:1px;
  transition:border-color var(--t-hover) var(--ease-out),
             background var(--t-hover) var(--ease-out);}
.pm .pm-legal__dl a:hover{border-color:var(--akzent);background:var(--flaeche);}
.pm-legal__dl svg{flex:0 0 auto;opacity:.7;}
@media(max-width:640px){.pm .pm-legal__dl{grid-template-columns:1fr;}}


/* ===========================================================
   MAGAZIN-ARCHIV  ·  .pm-mag
   Kategorieseiten (/kaufratgeber/, /handel/, …) und der
   Magazin-Hub. Zeitungslogik: der Rhythmus wechselt viermal,
   nicht die Farbe.

     1  Leitartikel gross + drei Kurzmeldungen daneben
     2  Raster mit Bild
     3  Textliste ohne Bild
     4  Seitenzahlen
     5  Weitere Ressorts

   Alle Formen sind bereits im Haus: Bildrahmen, Goldkicker und
   der Goldstrich beim Ueberfahren stammen von den
   Testbericht-Karten. Kein zweites Formenvokabular.
   =========================================================== */

/* ---------- Kopf ----------
   Einspaltig, solange kein Lead da ist. Mit Lead zweispaltig: links
   Kicker und Titel, rechts der Text — einspaltig blieb die rechte
   Bildschirmhaelfte leer. */
.pm .pm-mag__kopf{margin:0 0 var(--sp-lead);max-width:720px;}
.pm .pm-mag__kopf--zwei{
  max-width:none;display:grid;grid-template-columns:1fr 1fr;
  gap:var(--sp-col);align-items:start;}
.pm .pm-mag__kopf--zwei .pm-lead{max-width:46ch;}
@media(max-width:900px){
  .pm .pm-mag__kopf--zwei{grid-template-columns:1fr;gap:var(--sp-block);align-items:start;}
}

/* ---------- 1 · Leitartikel und Kurzmeldungen ---------- */
.pm-mag__auftakt{
  display:grid;grid-template-columns:1.35fr 1fr;gap:var(--sp-col);
  align-items:start;border-top:1px solid var(--linie);
  padding-top:var(--sp-block);
}
.pm .pm-mag__lead-a{display:block;color:var(--blau) !important;}
.pm-mag__lead-bild{
  aspect-ratio:16/9;background:#fff;overflow:hidden;
  border:1px solid var(--linie);border-radius:12px;
  transition:border-color var(--t-hover) var(--ease-out),
             box-shadow var(--t-hover) var(--ease-out);
}
.pm-mag__lead-bild img{width:100%;height:100%;object-fit:cover;
  transition:transform .5s var(--ease-out);}
.pm .pm-mag__lead-a:hover .pm-mag__lead-bild{
  border-color:var(--hell);box-shadow:0 16px 36px rgba(27,38,59,.10);}
.pm .pm-mag__lead-a:hover .pm-mag__lead-bild img{transform:scale(1.04);}

.pm .pm-mag__kicker{
  display:block;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  font-weight:700;color:var(--akzent);margin:18px 0 10px;}
.pm .pm-mag__lead-titel{
  font-size:clamp(1.25rem,1.05rem + .8vw,1.5rem);line-height:1.25;font-weight:600;
  letter-spacing:-.018em;color:var(--blau);margin:0 0 10px;display:inline;
  background-image:linear-gradient(var(--akzent),var(--akzent));
  background-repeat:no-repeat;background-position:0 100%;background-size:0 1.5px;
  transition:background-size var(--t-panel) var(--ease-out);}
.pm .pm-mag__lead-a:hover .pm-mag__lead-titel{background-size:100% 1.5px;}
.pm .pm-mag__lead-text{
  font-size:var(--fs-body);line-height:var(--lh-body);color:var(--grau);
  margin:12px 0 0;max-width:52ch;}

/* Kurzmeldungen */
.pm-mag__neben{display:flex;flex-direction:column;}
.pm .pm-mag__spaltentitel{
  font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  font-weight:700;color:var(--schwach);margin:0 0 var(--sp-card);
  padding-bottom:12px;border-bottom:1px solid var(--linie);}
.pm a.pm-mag__kurz{
  display:grid;grid-template-columns:64px 1fr;gap:14px;align-items:start;
  padding:0 0 var(--sp-card);margin-bottom:var(--sp-card);
  border-bottom:1px solid var(--linie);color:var(--blau) !important;
  transition:padding-left var(--t-hover) var(--ease-out);}
.pm a.pm-mag__kurz:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0;}
.pm a.pm-mag__kurz:hover{padding-left:8px;}
.pm-mag__kurz-bild{aspect-ratio:1/1;border-radius:8px;overflow:hidden;background:#fff;
  border:1px solid var(--linie);}
.pm-mag__kurz-bild img{width:100%;height:100%;object-fit:cover;}
.pm .pm-mag__kurz-titel{
  font-size:14.5px;line-height:1.35;font-weight:600;color:var(--blau);margin:0;}
.pm a.pm-mag__kurz .pm-mag__kicker{margin:0 0 6px;font-size:9.5px;}

/* ---------- 2 · Raster mit Bild ---------- */
.pm-mag__raster{
  border-top:1px solid var(--linie);padding-top:var(--sp-block);
  margin-top:var(--sp-sec);}
.pm-mag__grid{display:grid;grid-template-columns:repeat(3,1fr);
  gap:var(--sp-block) var(--sp-card);margin-top:var(--sp-card);}
.pm a.pm-mag__karte{display:flex;flex-direction:column;color:var(--blau) !important;}
.pm-mag__karte-bild{
  aspect-ratio:4/3;background:#fff;overflow:hidden;
  border:1px solid var(--linie);border-radius:10px;
  transition:border-color var(--t-hover) var(--ease-out),
             box-shadow var(--t-hover) var(--ease-out);}
.pm-mag__karte-bild img{width:100%;height:100%;object-fit:cover;
  transition:transform .5s var(--ease-out);}
.pm a.pm-mag__karte:hover .pm-mag__karte-bild{
  border-color:var(--hell);box-shadow:0 16px 36px rgba(27,38,59,.10);}
.pm a.pm-mag__karte:hover .pm-mag__karte-bild img{transform:scale(1.04);}
.pm .pm-mag__karte-titel{
  font-size:15px;line-height:1.35;font-weight:600;color:var(--blau);margin:0;
  display:inline;
  background-image:linear-gradient(var(--akzent),var(--akzent));
  background-repeat:no-repeat;background-position:0 100%;background-size:0 1.5px;
  transition:background-size var(--t-panel) var(--ease-out);}
.pm a.pm-mag__karte:hover .pm-mag__karte-titel{background-size:100% 1.5px;}
.pm a.pm-mag__karte .pm-mag__kicker{margin:14px 0 8px;font-size:9.5px;}

/* ---------- 3 · Textliste, bewusst ohne Bild ---------- */
.pm-mag__textliste{
  border-top:1px solid var(--linie);padding-top:var(--sp-block);
  margin-top:var(--sp-sec);}
.pm a.pm-mag__zeile{
  display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:baseline;
  padding:16px 0;border-bottom:1px solid var(--linie);position:relative;
  color:var(--blau) !important;
  transition:padding-left var(--t-hover) var(--ease-out);}
.pm a.pm-mag__zeile::before{content:"";position:absolute;left:0;top:50%;
  transform:translateY(-50%);width:0;height:2px;background:var(--akzent);
  transition:width var(--t-hover) var(--ease-out);}
.pm a.pm-mag__zeile:hover{padding-left:22px;}
.pm a.pm-mag__zeile:hover::before{width:14px;}
.pm .pm-mag__zeile-kicker{
  font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;
  font-weight:700;color:var(--akzent);min-width:88px;}
.pm .pm-mag__zeile-titel{font-size:14.5px;font-weight:600;color:var(--blau);}
/* Lesezeit statt Datum: ein Datum laesst auch topaktuelle Beitraege alt
   wirken. Das Datum bleibt als <time> im Markup, nur unsichtbar —
   Suchmaschinen brauchen es. */
.pm .pm-mag__zeit{font-size:12px;color:var(--schwach);white-space:nowrap;}
.pm .pm-mag__datum{position:absolute;width:1px;height:1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;}

/* ---------- 4 · Seitenzahlen ---------- */
.pm-mag__seiten{
  display:flex;gap:8px;align-items:center;justify-content:center;
  margin-top:var(--sp-sec);}
.pm .pm-mag__seiten a,
.pm .pm-mag__seiten span{
  width:38px;height:38px;display:flex;align-items:center;justify-content:center;
  border-radius:50%;border:1px solid var(--linie);
  font-size:13.5px;font-weight:600;color:var(--blau);
  transition:border-color var(--t-hover) var(--ease-out),
             background var(--t-hover) var(--ease-out);}
.pm .pm-mag__seiten a:hover{border-color:var(--akzent);background:var(--flaeche);}
.pm .pm-mag__seiten .current{background:var(--blau);border-color:var(--blau);color:#fff;}
.pm .pm-mag__seiten .next,
.pm .pm-mag__seiten .prev{
  width:auto;height:auto;border:0;border-radius:0;padding:0 0 3px;margin-left:8px;
  border-bottom:1.5px solid var(--akzent);}
.pm .pm-mag__seiten .next:hover,
.pm .pm-mag__seiten .prev:hover{background:none;border-bottom-color:var(--blau);}

/* ---------- 5 · Weitere Ressorts ---------- */
/* Der ganze Block entfaellt im Template, solange es keine zweite
   Kategorie gibt — sonst steht eine leere Ueberschrift auf der Seite. */
.pm-mag__ressorts{
  border-top:1px solid var(--linie);padding-top:var(--sp-block);
  margin-top:var(--sp-sec);}
.pm-mag__ressorts-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  column-gap:var(--sp-block);margin-top:var(--sp-card);}
.pm a.pm-mag__ressort{
  display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;
  padding:16px 0;border-bottom:1px solid var(--linie);color:var(--blau) !important;
  transition:padding-left var(--t-hover) var(--ease-out);}
.pm a.pm-mag__ressort:hover{padding-left:12px;}
.pm-mag__ressort-ic{
  width:34px;height:34px;border-radius:50%;flex:none;
  border:1px solid var(--linie);background:#fff;color:var(--akzent);
  display:inline-flex;align-items:center;justify-content:center;
  transition:border-color var(--t-hover) var(--ease-out),
             background var(--t-hover) var(--ease-out);}
.pm-mag__ressort-ic svg{width:16px;height:16px;}
.pm a.pm-mag__ressort:hover .pm-mag__ressort-ic{
  border-color:var(--akzent);background:rgba(184,134,59,.09);}
.pm .pm-mag__ressort-t{display:block;font-size:14.5px;font-weight:600;}
.pm .pm-mag__ressort-s{display:block;font-size:12px;line-height:1.4;
  color:var(--grau);margin-top:3px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pm-mag__ressort-ar{
  width:7px;height:7px;justify-self:end;
  border-right:1.5px solid var(--hell);border-bottom:1.5px solid var(--hell);
  transform:rotate(-45deg);
  transition:border-color var(--t-hover) var(--ease-out),
             transform var(--t-hover) var(--ease-out);}
.pm a.pm-mag__ressort:hover .pm-mag__ressort-ar{
  border-color:var(--akzent);transform:rotate(-45deg) translate(2px,2px);}

/* ---------- Mobil ---------- */
@media(max-width:1100px){
  .pm-mag__grid{grid-template-columns:repeat(2,1fr);}
  .pm-mag__ressorts-grid{grid-template-columns:1fr 1fr;column-gap:var(--sp-col);}
}
@media(max-width:900px){
  .pm-mag__auftakt{grid-template-columns:1fr;gap:var(--sp-block);}
  .pm-mag__raster,.pm-mag__textliste,.pm-mag__ressorts{margin-top:var(--sp-sec);}
}
@media(max-width:700px){
  .pm-mag__ressorts-grid{grid-template-columns:1fr;}
  .pm a.pm-mag__zeile{grid-template-columns:1fr auto;gap:6px 14px;}
  .pm .pm-mag__zeile-kicker{grid-column:1/-1;min-width:0;}
}
@media(max-width:560px){
  .pm-mag__grid{grid-template-columns:1fr;}
}


/* ===========================================================
   MAGAZINBEITRAG  ·  .pm-post
   single.php fuer Kategoriebeitraege.

   GRUNDREGEL: Beitraege liefern KEIN eigenes Design mehr.
   Die Pipeline schreibt nur noch Klassen, das Aussehen steht
   hier. Vorher trug jeder Beitrag seine Farben als style=""
   im Text — dadurch liefen die Fassungen auseinander (ein
   Beitrag Schwarz/Grau, der naechste Navy/Gold).
   =========================================================== */

/* Der Beitrag beginnt direkt unter der Kopfzeile — eine volle
   Sektionshoehe Vorlauf laesst die Seite leer wirken. */
.pm .pm-post > section{padding-top:var(--sp-block);}

/* Schmalerer Satzspiegel als auf den Uebersichtsseiten. Vorher war
   die Textspalte breit, der Text darin aber auf Lesebreite gedeckelt —
   die Differenz stand als Loch zwischen Text und Verzeichnis.
   1060 = 808 Text + 32 Abstand + 220 Leiste, also exakt aufgeteilt. */
.pm .pm-post .pm-wrap{max-width:1060px;}

/* ---------- Kopf ---------- */
.pm .pm-post__kopf{max-width:760px;margin:0 0 var(--sp-lead);}
.pm .pm-post__kicker{
  display:block;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  font-weight:700;color:var(--akzent);margin:0 0 var(--tp-kicker);}
.pm .pm-post__lead{
  font-size:var(--fs-lead);line-height:var(--lh-lead);color:var(--grau);
  margin:var(--tp-head) 0 0;max-width:52ch;}
/* Zeile mit Trennpunkten statt Chips: drei reine Angaben brauchen
   kein Gehaeuse, und Chips laden zum Klicken ein, wo nichts folgt. */
.pm .pm-post__meta{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  font-size:12.5px;color:var(--schwach);margin:var(--sp-block) 0 0;}
/* Jede Angabe bleibt als Ganzes zusammen — sonst rutscht mobil das
   Uhrsymbol allein in eine eigene Zeile. */
.pm .pm-post__meta-teil{
  display:inline-flex;align-items:center;gap:6px;white-space:nowrap;color:inherit;}
.pm-post__meta svg{width:13px;height:13px;color:var(--akzent);flex:none;}
.pm-post__meta .pm-post__punkt{opacity:.5;}

/* ---------- Beitragsbild ---------- */
.pm-post__bild{
  aspect-ratio:21/9;background:#fff;overflow:hidden;
  border:1px solid var(--linie);border-radius:12px;margin:0 0 var(--sp-sec);}
.pm-post__bild img{width:100%;height:100%;object-fit:cover;}
@media(max-width:700px){ .pm-post__bild{aspect-ratio:16/9;} }

/* ---------- Raster: Text + Inhaltsverzeichnis ---------- */
/* Textspalte bekommt den Platz, die Leiste bleibt Leiste.
   Spaltenabstand bewusst kleiner als --sp-col: das Verzeichnis ist
   eine Randnotiz, kein zweiter Inhaltsblock — mit 64 px Luft sah der
   Text daneben schmaler aus, als er ist. */
.pm-post__grid{
  display:grid;grid-template-columns:minmax(0,1fr) 220px;max-width:100%;
  column-gap:var(--sp-block);row-gap:0;align-items:start;
  border-top:1px solid var(--linie);padding-top:var(--sp-block);}
@media(max-width:1000px){
  .pm-post__grid{grid-template-columns:1fr;gap:var(--sp-block);}
}

/* Inhaltsverzeichnis */
.pm-post__nav{position:sticky;top:120px;}
.pm .pm-post__nav-titel{
  font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  font-weight:700;color:var(--schwach);margin:0 0 var(--sp-card);
  padding-bottom:12px;border-bottom:1px solid var(--linie);}
.pm .pm-post__nav a{
  display:block;font-size:13px;line-height:1.4;color:var(--grau);
  padding:0 0 0 12px;margin-bottom:11px;
  border-left:1.5px solid transparent;
  transition:color var(--t-hover) var(--ease-out),
             border-color var(--t-hover) var(--ease-out);}
.pm .pm-post__nav a:hover{color:var(--blau);border-left-color:var(--linie);}
.pm .pm-post__nav a.is-hier{color:var(--blau);font-weight:600;border-left-color:var(--akzent);}
@media(max-width:1000px){
  .pm-post__nav{position:static;order:-1;margin-bottom:var(--sp-block);}
  .pm .pm-post__nav a{display:inline-block;margin:0 14px 8px 0;padding-left:0;
    border-left:0;border-bottom:1.5px solid transparent;}
  .pm .pm-post__nav a.is-hier{border-left:0;border-bottom-color:var(--akzent);}
}

/* ---------- Fliesstext ---------- */
/* Der Reset in Ebene 2 setzt overflow-wrap:normal, damit Ueberschriften
   nicht mitten im Wort brechen. Im Fliesstext ist das falsch: lange
   Komposita wie "300-Euro-High-Cut-Bergschuh" finden mobil sonst keinen
   Umbruchpunkt und schieben die ganze Seite auf. */
.pm .pm-post__text{max-width:none;min-width:0;}
.pm .pm-post__text,
.pm .pm-post__text p,
.pm .pm-post__text li,
.pm .pm-post__text td,
.pm .pm-post__text a,
.pm .pm-post__text h2,
.pm .pm-post__text h3{overflow-wrap:break-word;word-break:normal;}
.pm .pm-post__text p{
  font-size:var(--fs-body);line-height:1.8;color:var(--grau);
  margin:0 0 var(--sp-card);}
.pm .pm-post__text h2{
  font-size:clamp(1.25rem,1.05rem + .8vw,1.5rem);line-height:1.25;font-weight:600;
  letter-spacing:-.018em;color:var(--blau);
  margin:var(--sp-sec) 0 var(--sp-card);
  padding-bottom:10px;border-bottom:1.5px solid var(--blau);}
.pm .pm-post__text h3{
  font-size:17.5px;line-height:1.35;font-weight:600;color:var(--blau);
  margin:var(--sp-block) 0 var(--tp-title);}
/* Der fett gesetzte Antwortsatz direkt unter jeder Zwischenueberschrift */
.pm .pm-post__text h2 + p strong:first-child,
.pm .pm-post__text h3 + p strong:first-child{color:var(--blau);}
.pm .pm-post__text a{
  color:var(--blau);border-bottom:1px solid var(--linie);
  transition:border-color var(--t-hover) var(--ease-out);}
.pm .pm-post__text a:hover{border-color:var(--akzent);}
.pm .pm-post__text img{
  width:100%;height:auto;border-radius:12px;border:1px solid var(--linie);
  margin:var(--sp-block) 0;}
.pm .pm-post__text ul{margin:0 0 var(--sp-card);}
.pm .pm-post__text ul li{
  position:relative;padding-left:20px;margin-bottom:8px;
  font-size:var(--fs-body);line-height:1.7;color:var(--grau);}
.pm .pm-post__text ul li::before{
  content:"";position:absolute;left:2px;top:11px;width:5px;height:5px;
  border-radius:50%;background:var(--akzent);opacity:.7;}

/* ---------- Tabellen ---------- */
.pm .pm-post__tabelle{overflow-x:auto;margin:var(--sp-block) 0;}
.pm .pm-post__tabelle table{width:100%;border-collapse:collapse;font-size:14.5px;}
.pm .pm-post__tabelle th{
  background:var(--blau);color:#fff;font-weight:600;text-align:left;
  padding:12px 16px;}
.pm .pm-post__tabelle td{
  padding:11px 16px;border-bottom:1px solid var(--linie);color:var(--grau);}
.pm .pm-post__tabelle td:first-child{font-weight:600;color:var(--blau);}
.pm .pm-post__tabelle tr:nth-child(even) td{background:var(--flaeche);}

/* ---------- Modul: Das Wichtigste auf einen Blick ---------- */
.pm .pm-post__box{
  background:var(--blau);border-radius:12px;padding:26px 30px;
  margin:var(--sp-block) 0;}
.pm .pm-post__box-titel{
  font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  font-weight:700;color:var(--akzent);margin:0 0 var(--sp-card);}
.pm .pm-post__box ul{margin:0;}
.pm .pm-post__box ul li{
  padding:0 0 12px;margin:0 0 12px;color:#fff;font-size:14.5px;line-height:1.55;
  border-bottom:1px solid rgba(255,255,255,.14);}
.pm .pm-post__box ul li::before{display:none;}
.pm .pm-post__box ul li:last-child{border-bottom:0;padding-bottom:0;margin-bottom:0;}

/* ---------- Modul: Zitat ---------- */
.pm .pm-post__zitat{
  border-left:2px solid var(--akzent);padding:2px 0 2px 24px;
  margin:var(--sp-sec) 0;}
.pm .pm-post__zitat p{
  font-size:18px;line-height:1.6;font-style:italic;color:var(--blau);
  margin:0 0 10px;}
.pm .pm-post__zitat cite{
  display:block;font-size:12.5px;font-style:normal;color:var(--schwach);}

/* ---------- Modul: Aus der Praxis (frueher Expert Insight) ----------
   Englische Marketingbegriffe brechen den Institutston — dieselbe
   Regel wie bei den Kickern. */
.pm .pm-post__praxis{
  background:var(--flaeche);border-left:2px solid var(--blau);
  padding:20px 24px;margin:var(--sp-block) 0;}
.pm .pm-post__praxis-titel{
  font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  font-weight:700;color:var(--akzent);margin:0 0 8px;}
.pm .pm-post__praxis p{margin:0;font-size:14.5px;line-height:1.7;}

/* ---------- Modul: Hinweis ---------- */
.pm .pm-post__hinweis{
  border-left:2px solid var(--akzent);background:var(--akzent-flaeche);
  padding:18px 22px;margin:var(--sp-block) 0;}
.pm .pm-post__hinweis p{margin:0;font-size:14.5px;line-height:1.7;}
.pm .pm-post__hinweis strong{color:var(--blau);}

/* ---------- Modul: Verweis auf eine PM-Seite ---------- */
.pm .pm-post__cta{
  border-left:2px solid var(--blau);background:var(--flaeche);
  padding:18px 22px;margin:var(--sp-block) 0;}
.pm .pm-post__cta p{margin:0;font-size:14.5px;line-height:1.7;}

/* ---------- Modul: FAQ ---------- */
.pm .pm-post__faq{margin:var(--sp-block) 0;}
.pm .pm-post__faq-item{
  border-bottom:1px solid var(--linie);padding:0 0 var(--sp-card);
  margin-bottom:var(--sp-card);}
.pm .pm-post__faq-item:last-child{border-bottom:0;margin-bottom:0;}
.pm .pm-post__faq-f{
  display:block;font-size:15.5px;font-weight:600;color:var(--blau);
  margin:0 0 var(--tp-title);}
.pm .pm-post__faq-a{margin:0;font-size:14.5px;line-height:1.75;}

/* ---------- Modul: Schluesselerkenntnisse ---------- */
.pm .pm-post__fazit{
  border:1px solid var(--linie);border-radius:12px;background:var(--flaeche);
  padding:26px 30px;margin:var(--sp-block) 0;}
.pm .pm-post__fazit-titel{
  font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  font-weight:700;color:var(--akzent);margin:0 0 var(--sp-card);}
.pm .pm-post__fazit ul li{
  padding:0 0 10px 20px;margin:0 0 10px;
  border-bottom:1px solid var(--linie);}
.pm .pm-post__fazit ul li:last-child{border-bottom:0;padding-bottom:0;margin-bottom:0;}

/* ---------- Fusszeile: weiter im Ressort ---------- */
.pm-post__weiter{
  border-top:1px solid var(--linie);padding-top:var(--sp-block);
  margin-top:var(--sp-sec);}


/* ---------- Mobil, in einem Block ----------
   Alle Bausteine des Beitrags an einer Stelle, damit nicht bei jeder
   Korrektur eine neue Ausnahme irgendwo dazukommt. */
@media(max-width:1000px){
  /* Verzeichnis wird zur Zeile ueber dem Text und verliert das Sticky —
     sonst klebt es beim Scrollen ueber dem Inhalt. */
  .pm-post__nav{position:static;top:auto;order:-1;
    margin:0 0 var(--sp-block);padding-bottom:var(--sp-card);
    border-bottom:1px solid var(--linie);}
  .pm .pm-post .pm-wrap{max-width:none;}
}

@media(max-width:700px){
  .pm-post__bild{aspect-ratio:4/3;}
  .pm .pm-post__kopf{max-width:none;}
  .pm .pm-post__lead{max-width:none;}

  /* Kaesten: weniger Innenabstand, sonst bleibt kaum Textbreite */
  .pm .pm-post__box,
  .pm .pm-post__fazit{padding:20px 20px;}
  .pm .pm-post__praxis,
  .pm .pm-post__hinweis{padding:16px 18px;}
  .pm .pm-post__zitat{padding-left:18px;}
  .pm .pm-post__zitat p{font-size:16.5px;}

  /* Tabellen scrollen in ihrem Kasten. KEINE negativen Aussenraender:
     zusammen mit overflow-x sprengen sie den Seitenbereich. */
  .pm .pm-post__tabelle{overflow-x:auto;}
  .pm .pm-post__tabelle table{font-size:13.5px;min-width:480px;}
  .pm .pm-post__tabelle th,
  .pm .pm-post__tabelle td{padding:10px 12px;}

  .pm .pm-post__text h2{margin-top:var(--sp-block);}
  .pm .pm-post__text img{margin:var(--sp-card) 0;}
  .pm .pm-post__meta{gap:6px;font-size:12px;}
}

/* ---------- Altbeitraege mit eigenen Inline-Farben ----------
   Bis die Pipeline nur noch Klassen liefert, bringen die bestehenden
   Beitraege ihr Design als style="" mit. Diese Regeln fangen die
   groebsten Folgen ab: feste Innenabstaende und Tabellen mit fester
   Spaltenaufteilung sprengen sonst mobil das Raster. */
@media(max-width:700px){
  .pm .pm-post__text div[style]{
    padding-left:18px !important;padding-right:18px !important;max-width:100%;}
  .pm .pm-post__text div[style*="overflow-x"]{
    padding-left:0 !important;padding-right:0 !important;}
  .pm .pm-post__text table[style]{table-layout:auto !important;min-width:480px;}
}
.pm .pm-post__text img[style]{max-width:100% !important;height:auto !important;}
.pm .pm-post__text blockquote[style]{margin-left:0 !important;margin-right:0 !important;}
