/* Theme 21, Ergänzungen der WordPress-Plattform (01.10.2026): Bildraster der
   Sportseite, Bilder im Vereinsprofil, Kennzeichnung gesponserter Beiträge,
   Anzeigenplatz im Vereins-Menü. Tokens aus /assets/style.css (statische Seite). */
.bildraster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 20px;padding:22px 0;border-bottom:1px solid var(--line)}
.bildraster-karte{display:flex;flex-direction:column;min-width:0}
.bildraster-bild .media{aspect-ratio:16/10;overflow:hidden;background:var(--line-soft)}
.bildraster-bild img{width:100%;height:100%;object-fit:cover}
.bildraster-text{display:flex;flex-direction:column;flex:1;padding-top:10px}
.bildraster-text h3{font-size:19px;line-height:1.2;margin:4px 0 8px}
.bildraster-text .meta{margin-top:auto;color:var(--muted);font-size:13px}
@media (min-width:1101px){.bildraster{grid-template-columns:repeat(3,minmax(0,1fr))}.bildraster-text h3{font-size:18px}}
@media (max-width:520px){.bildraster{grid-template-columns:1fr;gap:18px}.bildraster-karte{display:grid;grid-template-columns:132px minmax(0,1fr);gap:12px}.bildraster-bild .media{aspect-ratio:4/3}.bildraster-text{padding-top:0}.bildraster-text h3{font-size:17px}}
/* Ressortseiten (07.10.2026, Vorbild Oberberg Aktuell): nach dem Aufmacher zwei
   Spalten mit Bildkarten statt Zeilen untereinander; nach sechs Karten eine
   Anzeige über die volle Breite. */
.bildraster--ressort{gap:30px 26px;padding:26px 0 8px;border-bottom:0}
@media (min-width:1101px){.bildraster--ressort{grid-template-columns:repeat(2,minmax(0,1fr))}.bildraster--ressort .bildraster-text h3{font-size:21px}}
.bildraster--ressort .bildraster-bild .media{aspect-ratio:16/9}
.bildraster--ressort .bildraster-text h3{font-size:20px;line-height:1.18;margin:6px 0 8px}
.bildraster--ressort .bildraster-text h3 a{color:inherit;text-decoration:none}
.bildraster--ressort .bildraster-text h3 a:hover{text-decoration:underline;text-underline-offset:3px}
.bildraster--ressort .dek{margin:0 0 10px;font-size:15px;line-height:1.45;color:var(--ink-soft,#4a4a4a);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}
.bildraster--ressort .bildraster-karte--ohne-bild{padding:16px;border:1px solid var(--line);background:#fbfaf8}
.bildraster-werbung{grid-column:1/-1}
.bildraster-werbung .werbung{margin:0}
@media (max-width:520px){.bildraster--ressort{gap:22px}.bildraster--ressort .bildraster-karte{grid-template-columns:120px minmax(0,1fr)}.bildraster--ressort .bildraster-text h3{font-size:17px;margin-top:2px}.bildraster--ressort .dek{display:none}}
.verein-galerie{margin:28px 0}
.verein-galerie h2{font-family:var(--sans);font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin-bottom:10px}
.verein-galerie__raster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.verein-galerie__raster .media{aspect-ratio:1;overflow:hidden}
.verein-galerie__raster img{width:100%;height:100%;object-fit:cover}
@media (max-width:520px){.verein-galerie__raster{grid-template-columns:repeat(2,minmax(0,1fr))}}
.gesponsert{display:inline-block;margin-left:8px;padding:1px 6px;border:1px solid var(--ink-soft);font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);vertical-align:middle}
.gesponsert-hinweis{margin:0 0 18px;padding:10px 14px;background:var(--gold-wash);border:1px solid var(--line);font-size:14px}

/* Gemeinsame bildstarke Übersicht: nicht-fußballbezogener Sport */
.ma-breitensport{border-block:1px solid var(--line,#d9d9d9);margin:26px 0 32px;padding:22px 0}
.ma-breitensport__kopf h2{font-family:Georgia,serif;font-size:clamp(27px,2.7vw,36px);letter-spacing:-.025em;line-height:1.13;margin:5px 0 9px}
.ma-breitensport__kopf>p{max-width:840px;font-size:15px;color:var(--muted,#686868);margin:0 0 17px}
.ma-breitensport__navigation{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 19px}
.ma-breitensport__navigation a{border:1px solid var(--line,#d9d9d9);padding:6px 10px;font-size:12px;font-weight:700;text-decoration:none}
.ma-breitensport__navigation a:hover,.ma-breitensport__navigation a:focus-visible{border-color:var(--red,#b71920);color:var(--red,#b71920)}
.ma-breitensport__navigation small{font-size:10px;opacity:.7;padding-left:4px}
.ma-sportart-block{padding:17px 0 18px;border-top:1px solid var(--line,#d9d9d9);scroll-margin-top:130px}
.ma-sportart-block__kopf{display:flex;gap:10px;align-items:baseline;justify-content:space-between;margin-bottom:13px}
.ma-sportart-block__kopf h3{font-size:20px;line-height:1.2;margin:0}
.ma-sportart-block__kopf span{font-size:12px;color:var(--muted,#686868)}
.ma-sportart-raster{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.ma-sportverein{border:1px solid var(--line,#d9d9d9);min-width:0;background:#fff}
.ma-sportverein__bild{margin:0;background:#f4f0e9}
.ma-sportverein__bild img{width:100%;aspect-ratio:16/10;object-fit:cover}
.ma-sportverein__bild figcaption{padding:5px 9px;font-size:10px;line-height:1.35;color:var(--muted,#686868);overflow-wrap:anywhere}
.ma-sportverein__bild figcaption a{text-decoration:underline}
.ma-sportverein__info{padding:10px 11px 13px;border-top:1px solid var(--line,#d9d9d9)}
.ma-sportverein__ort{font-size:10px;color:var(--red,#b71920);font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.ma-sportverein__info h4{font-size:15px;line-height:1.3;margin:5px 0 0;overflow-wrap:anywhere}
.ma-sportverein__info h4 a:hover{text-decoration:underline;text-decoration-color:var(--red,#b71920)}
.ma-sportverein__info p{margin:7px 0 0;font-size:11px;color:var(--muted,#686868)}
.ma-breitensport__quelle{font-size:12px;color:var(--muted,#686868);margin:12px 0 0}
.ma-breitensport__quelle a{text-decoration:underline}
@media(max-width:1100px){.ma-sportart-raster{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.ma-sportart-raster{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ma-sportart-block{scroll-margin-top:100px}.ma-sportverein__info{padding:8px}.ma-sportverein__info h4{font-size:13px}}
/* Vereinssport: Tabellenstand (21.15.0) – nur aktive Vereine, ohne Bilder */
.ma-tabellen .ma-tabellen__raster{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.ma-tabellen .ma-tabellen__verein{display:flex;flex-direction:column}
.ma-tabellen .ma-tabellen__verein .ma-sportverein__info{border-top:0;border-bottom:1px solid var(--line,#d9d9d9);background:#faf8f4;padding:10px 11px}
.ma-tabellen .ma-tabellen__verein h4{font-size:17px}
.ma-tabellen__tabelle{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}
.ma-tabellen__tabelle thead th:nth-child(2){width:52px}.ma-tabellen__tabelle thead th:nth-child(3){width:78px}
.ma-tabellen__tabelle thead th{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted,#686868);text-align:right;padding:7px 11px 5px;border-bottom:1px solid var(--line,#d9d9d9)}
.ma-tabellen__tabelle thead th:first-child{text-align:left}
.ma-tabellen__tabelle tbody th{font-weight:700;text-align:left;padding:7px 11px;line-height:1.3;overflow-wrap:anywhere}
.ma-tabellen__tabelle tbody th a{text-decoration:none}
.ma-tabellen__tabelle tbody th a:hover{text-decoration:underline;text-decoration-color:var(--red,#b71920)}
.ma-tabellen__tabelle tbody th small{display:block;font-weight:400;font-size:11px;color:var(--muted,#686868);margin-top:2px}
.ma-tabellen__tabelle td{text-align:right;padding:7px 11px;font-variant-numeric:tabular-nums;vertical-align:top}
.ma-tabellen__tabelle td:nth-child(2){font-weight:800;font-size:15px}
.ma-tabellen__tabelle tbody tr+tr>*{border-top:1px solid #eee9e0}
.ma-tabellen__extra{margin:0;padding:8px 11px;font-size:12px;line-height:1.45;border-top:1px solid #eee9e0;list-style:none}
.ma-tabellen__extra li+li{margin-top:4px}
.ma-tabellen__extra a{text-decoration:underline}
.ma-tabellen__quelle{margin:auto 0 0;padding:7px 11px 9px;font-size:11px;color:var(--muted,#686868);border-top:1px solid #eee9e0}
.ma-tabellen__quelle a{text-decoration:underline}
.ma-tabellen__vergleich{border:1px solid var(--line,#d9d9d9);border-left:4px solid var(--red,#b71920);padding:10px 14px;margin:0 0 14px;background:#fff}
.ma-tabellen__vergleich h4{font-size:13px;margin:0 0 6px}
.ma-tabellen__vergleich ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:4px 18px}
.ma-tabellen__vergleich li{font-size:13px;line-height:1.35}
.ma-tabellen__vergleich li span{color:var(--muted,#686868);font-size:12px}
.ma-tabellen__platz{display:inline-block;min-width:24px;font-weight:800;color:var(--red,#b71920)!important;font-size:14px!important}
@media(max-width:800px){.ma-tabellen .ma-tabellen__raster{grid-template-columns:1fr}}
@media(max-width:400px){.ma-sportart-raster{grid-template-columns:1fr}.ma-sportverein{display:grid;grid-template-columns:44% 56%}.ma-sportverein__info{border-top:0}.ma-sportverein__bild img{height:100%;min-height:105px;aspect-ratio:auto;object-fit:cover}}
/* Layout-Karte (02.10.2026): feste Plätze dürfen ohne Bild belegt sein; dann steht nur der Text, ohne Linie (Betreiber 18.10.2026). */
.desk-karte--ohne-bild .karte-text,.bildraster-karte--ohne-bild .bildraster-text{padding-top:0}
/* Angemeldete Redaktion: die WordPress-Leiste liegt über dem Seitenkopf; der klebende Kopf rückt nach. */
/* Eingeloggt (04.10.2026): Die Ressortleiste ist sticky auf .nav-anchor (korrekturen.css) und klebt unter der Admin-Leiste; der grosse Kopf scrollt weg. Mobil bleibt der schmale Kopf unter der Admin-Leiste kleben. */
body.admin-bar>.nav-anchor{top:32px}
body.admin-bar .mainnav,body.admin-bar .mainnav.is-scrolled{top:0}
@media (max-width:782px){body.admin-bar>.nav-anchor{top:46px}}
@media (max-width:767px){body.admin-bar .masthead{top:46px}}

/* Redaktionsseiten (Plugin includes/seiten.php): Archiv nach Monat, Diskussion, Redaktionsmeldungen. */
.info-prose .archive-list{list-style:none;padding:0;margin:0 0 28px}
.info-prose .archive-list li{display:flex;gap:12px;align-items:baseline;padding:7px 0;border-bottom:1px solid var(--line,#e3e3e1)}
.info-prose .archive-list time{flex:0 0 5.5em;font-variant-numeric:tabular-nums;color:var(--muted,#666);font-size:14px}
.info-prose .archive-list .rs{margin-left:auto;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted,#666);white-space:nowrap}
.info-prose h2 small{font-weight:400;font-size:.6em;color:var(--muted,#666);margin-left:8px}
.info-prose .diskussion-liste{list-style:none;padding:0;margin:0}
.info-prose .diskussion-liste li{padding:14px 0;border-bottom:1px solid var(--line,#e3e3e1)}
.info-prose .diskussion-liste li p{margin:0 0 6px}
.info-prose .diskussion-liste time{color:var(--muted,#666);font-size:14px;margin:0 6px}
.info-prose .ma-public-form{margin-top:24px}
.info-prose .themen-liste{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px 10px}
.info-prose .themen-liste li{display:inline-flex;align-items:baseline;gap:6px;border:1px solid var(--line,#e3e3e1);border-radius:999px;padding:5px 12px;font-size:14px}
.info-prose .themen-liste .rs{font-size:12px;color:var(--muted,#666)}

/* /unternehmen/ ohne freigegebene Beiträge: das Angebot statt einer leeren Liste (21.10.0). */
.u-angebot{background:var(--card,#fff);border:1px solid var(--line,#e2ddd3);border-top:3px solid var(--ma-red,#971725);border-radius:4px;padding:26px 28px;margin:0 0 24px}
.u-angebot h2{font-size:clamp(22px,2.4vw,28px);line-height:1.2;margin:6px 0 12px}
.u-angebot p{margin:0 0 14px;line-height:1.6}
.u-schritte{margin:0 0 18px;padding:0;list-style:none;counter-reset:schritt;display:grid;gap:12px}
.u-schritte li{counter-increment:schritt;position:relative;padding-left:44px;line-height:1.55}
.u-schritte li::before{content:counter(schritt);position:absolute;left:0;top:0;width:30px;height:30px;border-radius:50%;background:var(--stage-2,#1e2a36);color:#fff;font-weight:800;display:grid;place-items:center;font-size:15px}
.u-angebot__knoepfe{display:flex;flex-wrap:wrap;gap:10px;margin:0}
@media (max-width:767px){.u-angebot{padding:20px 18px}}

/* Stellen- und Immobilienmarkt (21.10.0): die Art (Ausbildung, Miete …) steht in der
   Kopfzeile der Anzeige; die 44-px-Box daneben schnitt längere Wörter ab. */
.markt-row--thumb{grid-template-columns:150px minmax(0,1fr) auto}
.markt-row--thumb>.job-d{display:none}
.markt-row--thumb .markt-thumb{grid-column:1}
.markt-row--thumb .info{grid-column:2}
.markt-row--thumb .act{grid-column:3}
.markt-liste .markt-art{display:inline}
.event-row .job-d b{hyphens:auto;overflow-wrap:break-word;letter-spacing:.02em}
@media (max-width:760px){
  .markt-row--thumb{grid-template-columns:minmax(0,1fr)}
  .markt-row--thumb .markt-thumb,.markt-row--thumb .info,.markt-row--thumb .act{grid-column:1}
}

/* Musterprofile in der rechten Spalte von /unternehmen/ (21.10.4). */
.u-muster__hinweis{font-size:12.5px;line-height:1.5;color:var(--muted,#6b6b6b);margin:0 0 14px}
.u-muster__karte{border-top:1px solid var(--line,#e2ddd3);padding:14px 0 12px}
.u-muster__karte:first-of-type{border-top:0;padding-top:4px}
.u-muster__link{display:grid;gap:4px;color:inherit;text-decoration:none}
.u-muster__link:hover .u-muster__name,.u-muster__link:focus-visible .u-muster__name{text-decoration:underline;text-underline-offset:3px}
.u-muster__bild{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;border-radius:3px;margin-bottom:6px;background:#eee}
.u-muster__bild img{width:100%;height:100%;object-fit:cover;display:block}
.u-muster__marke{position:absolute;left:8px;top:8px;background:rgba(17,17,17,.78);color:#fff;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:3px 7px;border-radius:2px}
.u-muster__eyebrow{font-size:10.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--ma-red,#971725)}
.u-muster__name{font-size:17px;line-height:1.25}
.u-muster__text{font-size:13.5px;line-height:1.5;color:var(--ink,#1d1d1d)}
.u-muster__info{font-size:12px;color:var(--muted,#6b6b6b)}
.u-muster__credit{display:block;margin-top:6px;font-size:10.5px;color:var(--muted,#8a857d)}
.u-muster__credit a{color:inherit}
/* Echte Betriebe im Kasten „Unternehmen aus der Gemeinde“ (21.20.1): Logo nur mit geklärten Rechten, sonst Kürzel */
.u-echt{padding:2px 0 14px;margin:0 0 14px;border-bottom:1px solid var(--line,#e2ddd3)}
.u-echt__link{display:flex;gap:12px;align-items:center;color:inherit;text-decoration:none}
.u-echt__link:hover .u-echt__name,.u-echt__link:focus-visible .u-echt__name{text-decoration:underline;text-underline-offset:3px}
.u-echt__logo{flex:0 0 auto;display:inline-grid;place-items:center;width:52px;height:52px;border-radius:4px;overflow:hidden;color:#fff;font-family:var(--sans);font-size:16px;font-weight:800;letter-spacing:.04em}
.u-echt__logo img{width:100%;height:100%;object-fit:contain;padding:5px;box-sizing:border-box;background:#f5f3ee}
.u-echt__kopf{display:grid;gap:2px;min-width:0}
.u-echt__name{font-size:16.5px;line-height:1.25}
.u-echt__zeile{font-size:12px;line-height:1.35;color:var(--muted,#6b6b6b)}
.u-echt__text{font-size:13.5px;line-height:1.5;margin:8px 0 0;color:var(--ink,#1d1d1d)}
.u-echt__knopf{margin:6px 0 0;font-size:13px;font-weight:700}
.u-echt__knopf a{color:var(--ma-red,#971725);text-underline-offset:3px}

/* Ohne Ausgabe-Wahl (Vorgabe Betreiber 05.10.2026) steht „Merzenich · Jetzt“
   allein in der Leiste: links beginnend, mit der Höhe der früheren Leiste. Am
   Telefon ragt die Ressortleiste 11 px hinein; der Abstand oben gleicht das aus,
   so sitzt die Leiste wie früher die zweite Zeile unter „Ausgabe“. */
body.home .ortswahl>.shell>.jetzt:first-child{justify-content:flex-start;min-height:44px}
@media (max-width:767px){body.home .ortswahl>.shell>.jetzt:first-child{min-height:0;padding-top:16px;padding-bottom:8px}}

/* Handy wie vor 21.10.6: kein Foto des Tages, am Computer bleibt es
   (Vorgabe Betreiber 05.10.2026). Das Bild lädt dann gar nicht (lazy). */
@media (max-width:767px){body.home .ansichten.foto-des-tages{display:none!important}}

/* Notrufe auf /service/ (21.11.0) */
.ma-notdienste{list-style:none;margin:0 0 14px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.ma-notdienste li{padding:12px 14px;border:1px solid var(--line,#e2ddd3);border-radius:4px;background:#fff;line-height:1.4}
.ma-notdienste a{text-decoration:none;color:var(--red,#971725)}
.ma-notdienste b{font-size:22px;font-weight:800;margin-right:6px}
.ma-notdienste span{font-size:13.5px;color:var(--muted,#6b6b6b)}

/* Anzeigen- und Branchenbuch-Seiten im neuen Markup (21.12.0): Formular unter der Liste */
.anzeige-formular{margin-top:40px;padding-top:28px;border-top:1px solid var(--line,#e2ddd3);scroll-margin-top:120px}
.anzeige-formular h2{margin:6px 0 8px}
.anzeige-formular>.p{margin:0 0 18px;color:var(--muted,#6b6b6b);max-width:62ch}
.termin-vorbei{margin:0 0 18px;padding:12px 14px;border-left:3px solid var(--red,#971725);background:var(--soft,#f5f4f1)}
.event-page .art-figure{margin:22px 0 26px}
.event-page .art-figure .media{position:relative;aspect-ratio:3/2;overflow:hidden;border-radius:4px;background:var(--soft,#f5f4f1)}
.event-page .art-figure .media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* Einzelseiten von Anzeigen, Tipps und Betrieben (21.13.0, inc/einzel.php) */
.anzeige-fakten{margin:0 0 22px;padding:16px 18px;border-radius:6px;background:var(--soft,#f5f4f1);display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px 22px}
.anzeige-fakten div{min-width:0}
.anzeige-fakten dt{font-size:11.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--muted,#6b6b6b);margin:0 0 2px}
.anzeige-fakten dd{margin:0;font-size:16px;line-height:1.4;overflow-wrap:anywhere}
.anzeige-page .cta-row{margin:0 0 22px}
.anzeige-hinweis p{margin:6px 0 0}
.anzeige-page .art-figure{margin:6px 0 26px}
.anzeige-page .art-figure .media{position:relative;aspect-ratio:3/2;overflow:hidden;border-radius:4px;background:var(--soft,#f5f4f1)}
.anzeige-page .art-figure .media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* Dachzeile „Immobilie · Golzheim“: Abstand auch vor dem Punkt (21.13.0) */
.kicker .dist::before{content:'\00a0· '}

/* Sprungmarke für Tastatur und Vorleseprogramme: erst beim Fokus sichtbar (21.13.0) */
.skip-link{position:absolute;left:12px;top:-60px;z-index:10000;padding:10px 16px;border-radius:4px;background:var(--ink,#151515);color:#fff;font-weight:700;text-decoration:none}
.skip-link:focus{top:12px;outline:3px solid var(--gold,#c9a227);outline-offset:2px}
#main:focus{outline:none}

/* Vereins-, Termin- und Anzeigenseiten: Seitenleiste mit Kontakt, Website und weiteren
   Einträgen auf Handy und Tablet unter dem Text statt ausgeblendet (21.13.0) */
@media (max-width:1024px){
  .entity-page .article-grid>.sidebar,.event-page .article-grid>.sidebar{display:flex;flex-direction:column;gap:20px;margin-top:32px}
}

/* Termine als Bildkarten (21.14.0, Vorbild Terminübersicht Oberberg Aktuell):
   Foto mit Datum, darunter Tag, Rubrik, Ort, Titel und Zeit. „Liste“ zeigt die
   bisherigen Zeilen ohne Bild. */
.event-row .event-bild{display:none}
.ansicht-tabs{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden;align-self:flex-end}
.ansicht-tabs button{padding:8px 14px;border:0;background:#fff;font:inherit;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer}
.ansicht-tabs button+button{border-left:1px solid var(--line)}
.ansicht-tabs button[aria-pressed="true"]{background:var(--ink,#17191b);color:#fff}
.event-list--bilder{max-width:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 22px;align-items:stretch}
.event-list--bilder>[data-event-row][hidden]{display:none}
.event-list--bilder>.no-result{grid-column:1/-1}
.event-list--bilder .event-row{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:0;height:100%;padding:0;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--card,#fff)}
.event-list--bilder .event-row .event-bild{display:block;width:100%}
.event-list--bilder .event-bild .media{aspect-ratio:16/10;overflow:hidden;background:var(--line-soft,#eee)}
.event-list--bilder .event-bild img{width:100%;height:100%;object-fit:cover}
.event-list--bilder .event-row .d{align-self:flex-start;min-width:54px;margin:14px 16px 0;padding:6px 6px 7px}
/* Datum auf dem Foto, nur solange das Foto sichtbar ist (ein defektes Bild klappt app.js weg). */
.event-list--bilder .event-row--bild:has(.event-bild .media:not([hidden])) .d{position:absolute;top:12px;left:12px;z-index:2;margin:0;background:#fff;color:#17191b;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.event-list--bilder .event-row .info{padding:14px 16px 6px}
.event-list--bilder .event-row .info h2{font-size:20px;line-height:1.2;margin:6px 0 8px}
.event-list--bilder .event-row .ev-desc{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;font-size:14.5px}
.event-list--bilder .event-row .act{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:6px 14px;margin-top:auto;padding:10px 16px 14px;border-top:1px solid var(--line)}
.event-list--bilder .event-row .act a{border:0}
@media (max-width:1099px){.event-list--bilder{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.event-list--bilder{grid-template-columns:1fr;gap:20px}}
/* /tipp/: Tipps als Bildkarten, zwei Spalten neben der Seitenspalte. */
.tipp-raster.event-list--bilder{grid-template-columns:repeat(2,minmax(0,1fr));margin:8px 0 26px}
@media (max-width:640px){.tipp-raster.event-list--bilder{grid-template-columns:1fr}}
/* /unternehmen/: Musterbeiträge in der Hauptspalte. */
.u-muster-beitraege{margin:0 0 28px}
.u-muster-beitraege .bildraster--ressort{padding-top:12px}
.u-muster-beitraege .badge{position:absolute;left:10px;top:10px;right:auto;bottom:auto;width:auto;height:auto;line-height:1.3;background:rgba(18,22,25,.85);color:#fff;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:2px}
.u-muster-beitraege .media{position:relative}

/* /anzeigen/aufgeben/ (1.24.0): erst die Art wählen, dann ein Formular. */
.ma-aufgeben{margin:8px 0 28px}
.ma-aufgeben .ma-aufgeben__frage{font-family:var(--sans) !important;font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--red,#971725);margin:0 0 12px}
.ma-aufgeben__karten{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.ma-aufgeben .ma-aufgeben__karte,.ma-aufgeben .ma-aufgeben__karte *{text-decoration:none!important}
@media (max-width:900px){.ma-aufgeben__karten{grid-template-columns:repeat(3,minmax(0,1fr))}}
.ma-aufgeben__karte{display:flex;flex-direction:column;gap:6px;padding:16px 16px 18px;border:1px solid var(--line,#ddd);border-radius:8px;background:#fff;color:var(--ink,#17191b);text-decoration:none;transition:border-color .15s,box-shadow .15s}
.ma-aufgeben__karte strong{font-family:var(--sans);font-size:16px;font-weight:800;line-height:1.2;color:var(--ink,#17191b);hyphens:auto;overflow-wrap:anywhere}
.ma-aufgeben__karte span{font-family:var(--sans);font-size:13.5px;line-height:1.4;color:var(--ink-soft,#555)}
.ma-aufgeben__karte:hover{border-color:var(--red,#971725);box-shadow:0 2px 10px rgba(0,0,0,.06)}
.ma-aufgeben__karte:focus-visible{outline:2px solid var(--red,#971725);outline-offset:2px}
.ma-aufgeben__karte[aria-current="true"]{border:2px solid var(--red,#971725);padding:15px 15px 17px;background:#fdf6f5}
.ma-aufgeben__karte[aria-current="true"] strong{color:var(--red,#971725)}
.ma-aufgeben__leer{padding:18px;border:1px dashed var(--line,#ccc);border-radius:8px;color:var(--ink-soft,#555)}
.ma-aufgeben__formular h2{margin-top:6px}
.ma-aufgeben__zurueck{margin-top:14px;font-size:14px}
@media (max-width:520px){.ma-aufgeben__karten{grid-template-columns:1fr 1fr}.ma-aufgeben__karte strong{font-size:16px}}
/* Autorenseite /autor/<name>/ und Redaktionsliste (21.16.0) */
.autor-kopf__zeile{display:flex;gap:16px;align-items:center;margin-bottom:8px}
.autor-kopf .autor-kopf__avatar{width:64px;height:64px;font-size:20px;border-radius:50%;flex:0 0 64px}
.autor-kopf h1{margin:4px 0 0}
.autor-kopf__wege{font-size:13px;margin:12px 0 0}
.autor-kopf__wege a{text-decoration:underline;text-underline-offset:3px}
.redaktion-liste{list-style:none;padding:0;margin:8px 0 24px}
.redaktion-liste li{padding:12px 0;border-bottom:1px solid var(--line,#d9d9d9);line-height:1.5}
.redaktion-liste li span{font-size:14px;color:var(--muted,#686868)}
.leer-hinweis{padding:24px 0;color:var(--muted,#686868)}

/* Unternehmenskanäle (21.18.0, Auftrag Betreiber 13.10.2026, Vorbild Oberberg
   Aktuell): Kacheln der Kanäle auf /unternehmen/, Kopf des Kanals, Hinweise auf
   Musterprofile, Testanzeige und Musterbeitrag. */
.u-kanaele{margin:0 0 8px;padding:0 0 22px;border-bottom:1px solid var(--line)}
.u-kanaele__liste{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.u-kanal{display:flex;align-items:center;gap:12px;min-height:66px;padding:10px 12px;border:1px solid var(--line);background:var(--card,#fff);color:var(--ink);text-decoration:none;transition:border-color .12s ease}
.u-kanal:hover,.u-kanal:focus-visible{border-color:var(--ink-soft)}
.u-kanal:hover strong,.u-kanal:focus-visible strong{color:var(--red);text-decoration:underline;text-underline-offset:3px}
.u-kanal__logo,.u-kanal-kopf__logo,.u-muster-artikel .avatar{flex:0 0 auto;display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;overflow:hidden;color:#fff;font-family:var(--sans);font-size:15px;font-weight:800;letter-spacing:.04em}
.u-kanal__logo img,.u-kanal-kopf__logo img,.u-muster-artikel .avatar img{width:100%;height:100%;object-fit:cover}
.u-kanal__text{display:flex;flex-direction:column;min-width:0}
.u-kanal__text strong{font-size:15px;line-height:1.25}
.u-kanal__text small{font-size:12.5px;line-height:1.35;color:var(--muted)}
.u-kanal__zahl em{font-style:normal;font-weight:700;color:var(--ink-soft)}
.u-muster__hinweis{font-size:13px;color:var(--muted);margin:4px 0 0}
.sidebar .u-kanaele{margin:0;padding:0;border:0}
.sidebar .u-kanaele__liste{grid-template-columns:1fr}
.u-kanal-kopf__zeile{display:flex;align-items:center;gap:18px;margin-top:6px}
.u-kanal-kopf__zeile h1{margin:2px 0 6px}
.u-kanal-kopf__logo{width:76px;height:76px;font-size:25px}
.u-muster-banner{max-width:78ch;margin:16px 0 0;padding:10px 14px;background:var(--gold-wash);border:1px solid var(--line);font-size:14px;line-height:1.45}
.u-kanal-kopf__hinweis{max-width:78ch;margin:12px 0 0;font-size:13.5px;color:var(--muted)}
.u-kanal-leer{padding:22px 0;color:var(--muted)}
.u-kanal-profil .anzeige-fakten{margin:0 0 12px}
.u-firmen-karte .kicker a{color:inherit}
.u-firmen-karte .meta a{color:inherit}
.u-muster-beitraege .werbung{margin:18px 0 0}
.werbung--test .werbung-label{color:var(--ink-soft)}
.werbung--test .ma-ad-card{text-decoration:none}
.u-muster-artikel .byline .avatar{width:40px;height:40px;font-size:13px}
.u-muster-artikel .author-box .avatar{width:48px;height:48px}
.u-muster-artikel .figure-badge{text-transform:uppercase}
.u-muster-artikel .cta-row{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 0}
@media (max-width:520px){.u-kanal-kopf__zeile{gap:12px}.u-kanal-kopf__logo{width:56px;height:56px;font-size:19px}.u-kanaele__liste{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.u-kanal{transition:none}}
/* Testanzeige der Musterfirmen: eigene Karte, breit (Text- und Hauptspalte) oder schmal (Seitenspalte). */
.u-testanzeige{margin:24px 0;padding-top:10px;border-top:1px solid var(--line)}
.u-testanzeige__label{display:block;margin:0 0 8px;font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}
.u-testanzeige__karte{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);border:1px solid var(--line);background:var(--card,#fff);color:var(--ink);text-decoration:none}
.u-testanzeige__bild{display:block;min-height:100%;overflow:hidden;background:var(--line-soft)}
.u-testanzeige__bild img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:16/10}
.u-testanzeige__text{display:flex;flex-direction:column;gap:6px;padding:16px 18px}
.u-testanzeige__firma{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--red)}
.u-testanzeige__text strong{font-family:var(--serif);font-size:22px;line-height:1.15}
.u-testanzeige__satz{font-size:14.5px;line-height:1.45;color:var(--ink-soft)}
.u-testanzeige__knopf{align-self:flex-start;margin-top:4px;padding-bottom:2px;font-size:13.5px;font-weight:800;border-bottom:1px solid var(--red)}
.u-testanzeige__text small{margin-top:auto;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.u-testanzeige__karte:hover .u-testanzeige__knopf,.u-testanzeige__karte:focus-visible .u-testanzeige__knopf{color:var(--red)}
.u-testanzeige__credit{display:block;margin-top:6px;font-size:11px;color:var(--muted)}
.u-testanzeige__credit a{color:inherit}
.u-testanzeige--schmal .u-testanzeige__karte{grid-template-columns:1fr}
.u-testanzeige--schmal .u-testanzeige__text strong{font-size:19px}
.sidebar .u-testanzeige{margin-top:0}
@media (max-width:560px){.u-testanzeige__karte{grid-template-columns:1fr}.u-testanzeige__text strong{font-size:19px}}
.u-muster-artikel .author-box .btn:not(.ghost){color:#fff}
.u-muster-artikel .author-box .btn.ghost{color:var(--ink)}
.u-firmen-karte .meta{display:block}
.u-muster-banner a{color:var(--red);text-decoration:underline;text-underline-offset:3px;font-weight:700}
/* Startseite „Weitere Meldungen“ (Endlos-Scrollen, 15.10.2026): volle Breite,
   deshalb ab 1101 px drei Spalten statt zwei wie in der Ressortspalte. */
.weitere-meldungen .bildraster--ressort{padding-top:0}
@media (min-width:1101px){.weitere-meldungen .bildraster--ressort{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* Karte ohne Bild auf dem Handy: Text über die volle Breite statt in der Bildspalte. */
@media (max-width:520px){.bildraster-karte--ohne-bild{display:flex}}
/* Firmenlogos ganz zeigen (20.10.2026): helle Fläche, nicht beschnitten, kein Kreis; Anzeigen ohne eigenes Foto zeigen das Logo. */
.firmenlogo-box{border-radius:6px!important;background:#fff!important;box-shadow:inset 0 0 0 1px var(--line);padding:3px;box-sizing:border-box;width:88px!important;height:44px!important;aspect-ratio:auto;display:flex!important;align-items:center;justify-content:center}
.firmenlogo-box img{width:auto!important;height:auto!important;max-width:100%;max-height:100%;object-fit:contain!important}
img.bild-logo,.media--logo img{object-fit:contain!important;background:#fff;padding:6% 12%;box-sizing:border-box}
.media:has(> img.bild-logo),.media--logo{background:#fff}

/* Werben (29.10.2026): Formate ohne Preis, Schritte, Beispielband, Felder der Werbeanfrage (Plugin werbeformate.php, werbeanfrage.php). */
.ma-werbeformate{display:grid;gap:16px;margin:0 0 28px}
.ma-werbeformat{border:1px solid var(--line,#e2ddd3);border-top:3px solid var(--ma-red,#971725);border-radius:4px;padding:20px 24px;background:var(--card,#fff)}
.ma-werbeformat h3{margin:0 0 8px;font-size:clamp(20px,2vw,24px)}
.ma-werbeformat ul{margin:0 0 12px;padding-left:20px;line-height:1.55}
.ma-werbeformat__preis{font-weight:700;margin:0 0 12px}
.info-prose .ma-werben-schritte{counter-reset:schritt;list-style:none;padding:0;margin:0 0 24px;display:grid;gap:12px}
.info-prose .ma-werben-schritte li{counter-increment:schritt;position:relative;padding-left:44px;line-height:1.55}
.info-prose .ma-werben-schritte li::before{content:counter(schritt);position:absolute;left:0;top:0;width:30px;height:30px;border-radius:50%;background:var(--stage-2,#1e2a36);color:#fff;font-weight:800;display:grid;place-items:center;font-size:15px}
.info-prose .werbung--beispiel{margin:8px 0 28px}
.info-prose .werbung--beispiel a,.info-prose .werbung--beispiel a:hover{text-decoration:none;color:inherit;border:0;background:none}
.info-prose .werbung--beispiel strong,.info-prose .werbung--beispiel span{line-height:inherit}
.info-prose .werbung--beispiel .ma-ad-copy strong{line-height:1.08}
.ma-wa[hidden],.ma-wa [hidden]{display:none!important}
.ma-wa__gruppe{border:1px solid var(--line,#e2ddd3);border-radius:6px;padding:14px 18px 6px;margin:0 0 16px;min-width:0}
.ma-wa__gruppe legend{font-weight:800;font-size:16px;padding:0 6px}
.ma-wa__format{background:var(--paper,#f7f5f0);border-radius:4px;padding:10px 14px;line-height:1.5}
.ma-wa__hinweis{font-size:14px;line-height:1.5;color:var(--ink-soft,#4a4a4a)}
.ma-wa__motiv{border-top:1px solid var(--line,#e2ddd3);padding-top:8px;margin-top:8px}
.ma-wa__motiv-titel{font-weight:800;margin:4px 0 6px}
.ma-wa__meldung{background:#fdecec;border:1px solid #c0392b;border-radius:4px;padding:10px 14px;color:#7a1a12;font-weight:600}
.ma-wa input[type=file]{max-width:100%}

/* „Neu in Merzenich“ in der Spalte „Nachrichten aus Merzenich“ (21.26.0): alle neuen Meldungen, nur Text. */
.desk .neueste{grid-column:1/-1;margin:0 0 28px;padding:14px 0 6px;border-bottom:1px solid var(--line,#e2e2e2)}
.neueste-titel{font-size:13px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--brand-red,#c8102e);margin:0 0 8px}
.neueste-liste{list-style:none;margin:0;padding:0;display:grid;gap:0}
.neueste-liste li{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:baseline;gap:4px 12px;padding:9px 0;border-top:1px solid var(--line,#e2e2e2)}
.neueste-liste li:first-child{border-top:0}
.neueste-liste time{font-size:13px;font-weight:700;color:var(--ink,#111);white-space:nowrap;font-variant-numeric:tabular-nums}
.neueste-rubrik{font-size:11px;font-weight:650;letter-spacing:.05em;text-transform:uppercase;color:#676767;white-space:nowrap}
.neueste-liste a{font-size:16px;font-weight:650;line-height:1.3;color:var(--ink,#111);text-decoration:none}
.neueste-liste a:hover,.neueste-liste a:focus-visible{text-decoration:underline}
@media(max-width:767px){.neueste-liste li{grid-template-columns:auto minmax(0,1fr)}.neueste-liste a{grid-column:1/-1;font-size:15px}}
