/* Erzeugt von deploy/css-bundle.mjs aus: system.css, style.css, v19.css, v20.css, recovery.css, korrekturen.css, werbung.css, theme.css, startseite.css. Nicht von Hand aendern. */

/* ---- system.css ---- */
/* ============================================================
   Merzenich Aktuell - Fundament
   Benannte Tokens fuer Abstand, Typografie, Radius, Breite.

   WARUM DIESE DATEI: gemessen wurden im Bestand 49 verschiedene
   px-Abstaende (31 davon nicht auf dem 4er-Raster) und 84 verschiedene
   font-size-Werte ohne benannte Skala. Ohne Leiter entsteht jeder neue
   Abstand per Augenmass, und der Seitenrhythmus franst weiter aus.

   WAS DIESE DATEI IST: zuerst die Tokens, danach ein einziger
   Anwendungsblock - die Bildformate der Kartentypen (Gewerk 4). Bis
   dahin galt hier die Regel "nur :root". Sie ist bewusst aufgegeben
   worden, weil ein Bildformat nur an EINER Stelle stehen darf: sobald
   dieselbe Karte in style.css, v19.css, v20.css und recovery.css je ein
   eigenes Seitenverhaeltnis bekommt, gewinnt das letzte geladene, und
   niemand sieht mehr, welches gemeint war. Der Block am Ende dieser
   Datei ist deshalb die eine Quelle fuer Bildformate. Alle anderen
   Gestaltungsfragen bleiben in ihren bisherigen Dateien.
   Die Datei wird als erste der Projektdateien geladen (vor style.css),
   damit alles danach die Tokens kennt.

   NUTZUNGSREGEL: Der Rhythmus zwischen Bloecken - Sektionen, Karten,
   Listen, Spalten - kommt ausschliesslich aus der Leiter. Rohe
   Zwischenwerte sind nur innerhalb einer Komponente erlaubt, also fuer
   Feinheiten wie optischen Ausgleich an einer Ikone oder einem Rahmen.
   Sobald ein Wert den Abstand zwischen zwei Bloecken bestimmt, gehoert
   er auf eine Stufe. Das ist bei den Referenzen genauso: Guardian
   erlaubt 62 rohe px-Werte innerhalb von Komponenten, der Blockrhythmus
   laeuft aber vollstaendig ueber space[1..24].
   ============================================================ */

:root{


  /* ---------- Markenfarben ----------
     Bis 18.09. standen diese Token in editorial-audit.css, die per JavaScript
     nachgeladen wird. Damit haetten Farben erst nach DOM-ready gegolten. Sie
     gehoeren in die Tokendatei, die blockierend zuerst laedt.
     Gold ist bewusst keine eigene Farbe mehr: --ma-gold traegt Bordeaux, weil
     das alte #a58035 nur 3,66:1 auf Weiss erreichte und zugleich Ortsmarke,
     Eyebrows, Ressortbalken und Kompaktkopf faerbte. */
  --ma-red:#971725;
  --ma-red-dark:#77101b;
  --ma-gold:#971725;
  --ma-gold-soft:#f4f4f3;
  --ma-ink:#171513;
  --ma-text:#4f4d49;
  --ma-muted:#77736d;
  --ma-paper:#fff;
  --ma-warm:#f4f4f3;
  --ma-line:#e3e3e1;
  --ma-radius:10px;

  /* ---------- Abstandsleiter ----------
     Zehn Stufen, hergeleitet aus zwei gemessenen Produktionsleitern:
     Guardian source-foundations space.ts  -> 4 8 12 16 20 24 36 48 96
     BBC GEL gel-foundations spacings.js   -> 4 8 12 16 24 32 40 48 56
     Gemeinsamer Kern beider: 4 8 12 16 24 48. Dazu 20 (Guardian, und
     zugleich die vorhandene Rinne der .shell), 32 (BBC), 64 und 96
     (Guardian-Oberkante) fuer den grossen Seitenrhythmus.
     Alles bleibt auf dem 4er-Raster. */
  --s1:4px;
  --s2:8px;
  --s3:12px;
  --s4:16px;
  --s5:20px;
  --s6:24px;
  --s7:32px;
  --s8:48px;
  --s9:64px;
  --s10:96px;

  /* Sektionsrhythmus fliessend, nach Ghost-Vorbild (assets/built: der
     Sektionsabstand ist dort clamp(24px, .., 48px), nicht fest). Ein
     fester Sektionsabstand ist auf 360px zu gross und auf 1240px zu
     klein; die beiden Werte skalieren zwischen zwei Stufen der Leiter. */
  --sektion:clamp(32px,5vw,64px);        /* --s7 bis --s9  */
  --sektion-gross:clamp(48px,7vw,96px);  /* --s8 bis --s10 */

  /* ---------- Typo-Leiter ----------
     Acht Stufen, benannt nach Verwendung statt nach Groesse. Hergeleitet
     aus den 84 vorhandenen font-size-Werten in style.css und v19.css:
     jede Stufe ist der dominante Wert ihres gemessenen Clusters.

       Cluster  9  -12,5px (147 Treffer, davon 78 auf 12px)  -> meta
       Cluster 13  -14,5px  (98 Treffer)                     -> klein
       Cluster 15  -17,5px  (42 Treffer, body ist 16px)      -> text
       Cluster 18  -21px    (43 Treffer)                     -> headline-s
       Cluster 22  -28px    (32 Treffer)                     -> headline-m
       Cluster 30  -38px    (20 Treffer)                     -> headline-l
       Cluster 40  -58px    (11 Treffer)                     -> headline-xl

     Die Schrittweite waechst nach oben (1,17 / 1,14 / 1,25 / 1,30 /
     1,31 / 1,35) - eng bei Lesegroessen, weit bei Schaugroessen. Keine
     Schrift seit 23.09.2026 (Anhang A): Newsreader (--serif) fuer Ueberschriften,
     Hanken Grotesk (--sans) fuer Navigation, Ort, Zeit, Service.
     Die Zeilenhoehen sind ebenfalls vorhandene Werte, kein neuer Satz. */
  --t-meta:12px;        --lh-meta:1.4;        /* Kicker, Datum, Bildnachweis */
  --t-klein:14px;       --lh-klein:1.45;      /* Teaser, Bildunterschrift    */
  --t-text:16px;        --lh-text:1.55;       /* Lesetext, = body heute      */
  --t-headline-s:20px;  --lh-headline-s:1.25; /* Listeneintrag, Karte        */
  --t-headline-m:26px;  --lh-headline-m:1.2;  /* Sektionskopf                */
  --t-headline-l:34px;  --lh-headline-l:1.15; /* Artikelkopf                 */
  --t-headline-xl:46px; --lh-headline-xl:1.08;/* Aufmacher                   */

  /* Achte Stufe: der Aufmacher der Startseite ist heute schon fliessend.
     Jeder Teil ist gemessen - Untergrenze aus clamp(32px,4vw,54px)
     (v19.css), Steigung 4vw ist die haeufigste im Bestand (4 von 7
     clamps), Obergrenze aus clamp(36px,4vw,58px) (v19.css). Damit
     bleibt eine spaetere Anwendung auf dem Telefon lesbar, statt eine
     feste 46px-Zeile zu erzwingen. */
  --t-display:clamp(32px,4vw,58px); --lh-display:1.05;

  /* ---------- Radien ----------
     --r0 fuer Kanten, die bewusst hart bleiben (Bild, Tabelle), --r1 fuer
     Bedienelemente, --r2 fuer Flaechen. Das vorhandene --radius:3px in
     style.css bleibt unangetastet; es wird hier nicht ueberschrieben. */
  --r0:0;
  --r1:6px;
  --r2:12px;

  /* ---------- Breiten und Rinne ----------
     Uebernommen aus den vorhandenen Werten, damit Bestand und Leiter
     denselben Rahmen meinen: --shell:1240px und --measure:680px aus
     style.css, .narrow mit 800px, .shell mit padding 0 20px.
     Eigene Namen, weil style.css nach dieser Datei laedt - --shell wird
     hier bewusst NICHT neu gesetzt, es bleibt bei einer Quelle. */
  --breite-shell:1240px;   /* Seitenbreite, = --shell   */
  --breite-schmal:800px;   /* schmale Spalte, = .narrow */
  --breite-text:680px;     /* Lesebreite, = --measure   */
  --rinne:20px;            /* Seitenrand, = --s5        */

  /* ---------- Bildformate ----------
     WARUM: gemessen wurden ueber alle Stylesheets 16 verschiedene
     Seitenverhaeltnisse fuer redaktionelle Teaserbilder - 1.15, 1.36,
     1.44, 1.55, 1.7, 1.82, 1.9, 1.92, 1.95, 2.2, 16/9, 16/10, 3/2, 4/3,
     2/1, auto. Jede Reihe bekam dadurch eine andere Bildhoehe, und in
     derselben Reihe standen Karten mit unterschiedlich hohen Bildern
     nebeneinander. Das liest sich nicht wie eine Redaktion, sondern wie
     ein Layoutfehler.

     WAS: fuenf Formate, mehr braucht die Seite nicht. Bewusst klein
     gehalten - jedes zusaetzliche Format erzeugt wieder eine eigene
     Bildhoehe. Die Werte sind keine Erfindung, sondern die im Bestand
     bereits dominanten: 16/9 ist das haeufigste Teaserformat, 3/2 das
     haeufigste Format der kompakten Zeilen, 4/3 sitzt schon auf
     mosaic-compact und people-minor.

     Gross und Karte tragen denselben Wert. Das ist Absicht und kein
     Versehen: der Aufmacher soll GROESSER wirken, nicht ANDERS
     geschnitten. Groesse kommt aus der Spaltenbreite, nicht aus einem
     zweiten Seitenverhaeltnis. Getrennte Namen bleiben trotzdem, damit
     eine spaetere Korrektur nur einen der beiden Faelle trifft. */
  --bild-gross:16/9;     /* Aufmacher, grosse Karten, Lead einer Liste */
  --bild-karte:16/9;     /* Standardkarte im Raster                    */
  --bild-kompakt:3/2;    /* kompakte Zeile mit Thumbnail neben Text    */
  --bild-person:4/3;     /* Portraet, Personenmeldung                  */
  --bild-objekt:4/3;     /* Immobilie, Objektbild im Markt             */
}


/* ============================================================
   BILDFORMATE DER KARTENTYPEN (Gewerk 4)

   ZIEL: ein Kartentyp, ein Bildformat. In einer Reihe haben alle
   Bilder dieselbe Hoehe, egal wie lang die Headline darunter ist.

   ---------- Warum diese Selektoren so aussehen ----------
   Diese Datei laedt ZUERST. Alles danach koennte sie ueberschreiben.
   Gemessen wurde deshalb fuer jede Regel, was spaeter am selben Ziel
   steht (Ladereihenfolge: system - style - v19 - v20 - recovery -
   korrekturen - theme - homepage-polish - editorial-audit):

     Ziel                Staerkster spaeterer Gegner        Gewicht
     .front-lead .media  editorial-audit body.home ... !wichtig (0,3,1)
     .front-brief .media editorial-audit body.home ... !wichtig (0,3,1)
                         korrekturen .front-brief.editorial-secondary
                         .secondary-lead .media                 (0,4,0)
     .desk-card .media   v19 @640 .sport-stories .desk-card ... (0,3,0)
     .feed-row .media    korrekturen .feed-row.editorial-current-row
                         .media                                 (0,3,0)
     .feed-lead .media   v20 .feed-lead .media                  (0,2,0)

   Daraus folgt ein einheitlicher Anker: "html body" plus die
   Kartenklasse DOPPELT geschrieben. Das ergibt (0,3,2) und schlaegt
   jeden der obigen Gegner auf Spezifitaet allein - ohne !important,
   ohne neue Klasse im Markup, ohne eine fremde Datei anzufassen. Die
   doppelte Klasse ist kein Tippfehler, sie ist das Gewicht.

   ZWEI AUSNAHMEN MIT !important, beide begruendet:
   front-lead und front-brief. editorial-audit.css laedt zur Laufzeit
   ALS LETZTE Datei und setzt dort aspect-ratio/width/height mit
   !important. Gegen eine !important-Deklaration gewinnt Spezifitaet
   allein nicht, nur ein !important mit hoeherer Spezifitaet. (0,3,2)
   schlaegt die dortigen (0,3,1) und (0,3,0). Ueberall sonst steht
   bewusst KEIN !important - es wird hier nicht gestreut, sondern
   genau zweimal gesetzt, wo die Alternative "gar nicht wirken" waere.
   ============================================================ */

/* ---------- Aufmacher ----------
   Nur das Seitenverhaeltnis. Breite und Hintergrund kommen weiter aus
   den bestehenden Dateien; hier wird nur die Hoehe berechenbar. */
html body .front-lead.front-lead .media{aspect-ratio:var(--bild-gross,16/9)!important}

/* ---------- Listenzeilen ---------- */
html body .feed-row.feed-row .media{aspect-ratio:var(--bild-kompakt,3/2)}
html body .feed-lead.feed-lead .media{aspect-ratio:var(--bild-gross,16/9)}

/* ---------- Kartentypen aus Gewerk 1 ----------
   ANMERKUNG: Gewerk 1 laeuft parallel, die endgueltigen Klassennamen
   lagen hier noch nicht vor. Statt einen Namen zu raten, stehen hier
   AUFSATZPUNKTE: eine Karte aus Gewerk 1 haengt sich eine dieser
   Klassen an und hat damit das Format der Reihe. Bewusst KEIN
   Teilstring-Selektor wie [class*="-kompakt"] - der wuerde auch
   html.kopf-kompakt treffen, das kopf.js beim Scrollen setzt, und
   damit jede Meldung der Seite umformatieren.
   Die beiden Schreibweisen ma- und ma-- sind beide abgedeckt, weil im
   Bestand ma- gilt (ma-no-image, ma-home-dateline) und der Auftrag von
   ma-- spricht. */
html body .ma-bild-gross .media,html body .ma--bild-gross .media,
html body .ma-aufmacher .media,html body .ma--aufmacher .media{aspect-ratio:var(--bild-gross,16/9)}
html body .ma-bild-karte .media,html body .ma--bild-karte .media,
html body .ma-mittel .media,html body .ma--mittel .media{aspect-ratio:var(--bild-karte,16/9)}
html body .ma-bild-kompakt .media,html body .ma--bild-kompakt .media,
html body .ma-kompakt .media,html body .ma--kompakt .media{aspect-ratio:var(--bild-kompakt,3/2)}
html body .ma-bild-person .media,html body .ma--bild-person .media{aspect-ratio:var(--bild-person,4/3)}
html body .ma-bild-objekt .media,html body .ma--bild-objekt .media{aspect-ratio:var(--bild-objekt,4/3)}
html body .feed-lead.feed-lead{align-items:start}

/* ---------- Headlines deckeln ----------
   Ohne Deckel bestimmt die Ueberschrift die Kartenhoehe: drei Zeilen
   neben einer Zeile ergibt zwei verschieden hohe Karten in derselben
   Reihe. Drei Zeilen fuer Karten, vier fuer den Aufmacher - er darf
   laenger sein, weil er allein in seiner Reihe steht.
   line-clamp steht neben -webkit-line-clamp, weil die Eigenschaft
   inzwischen ohne Praefix standardisiert ist; die Praefixform bleibt
   fuer aeltere Browser. */
html body .front-lead.front-lead h1,html body .front-lead.front-lead h2{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4;overflow:hidden}html body .feed-row.feed-row h3,html body .feed-lead.feed-lead h2{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}

/* ---- style.css ---- */
/* ============================================================
   Merzenich Aktuell v9 – Design System
   Wortmarke: MERZENICH (dunkel) / AKTUELL (bordeaux) / Puls (gold)
   Anhang A (23.09.2026): Serif fuer Geschichten und Ueberschriften (Newsreader),
   Sans fuer Navigation, Ort, Zeit, Service und Metadaten (Hanken Grotesk,
   ersetzt Inter seit Stil B). Zwei Rollen, zwei Familien, keine weitere.
   ============================================================ */
@font-face{font-family:'Newsreader';src:url('fonts/newsreader-latin-wght-normal.woff2') format('woff2-variations');font-weight:200 800;font-style:normal;font-display:swap;}
@font-face{font-family:'Newsreader';src:url('fonts/newsreader-latin-wght-italic.woff2') format('woff2-variations');font-weight:200 800;font-style:italic;font-display:swap;}
@font-face{font-family:'Hanken Grotesk';src:url('fonts/hanken-grotesk-latin-wght-normal.woff2') format('woff2-variations');font-weight:100 900;font-style:normal;font-display:swap;}
@font-face{font-family:'Hanken Grotesk';src:url('fonts/hanken-grotesk-latin-wght-italic.woff2') format('woff2-variations');font-weight:100 900;font-style:italic;font-display:swap;}

:root{
  /* --muted seit baf1385 dunkler als v10-Entwurf: ≥5,5:1 auf paper/gold-wash für 9,5–12,5-px-Meta */
  /* 18.09.: Grundflaeche war #f7f5f0, also spuerbar beige. Die Seite soll wie ein
     Newsroom wirken, nicht wie Lifestyle-Papier, darum Off-White ohne Gelbstich.
     Linien ziehen mit: --line/--line-soft waren warm getoent und haben das Beige
     ueber jede Tabelle und jede Karte weitergetragen; jetzt neutrales Grau. */
  --paper:#fbfbfa;--card:#ffffff;--ink:#151412;--ink-soft:#3c3a36;--muted:#615d55;--line:#e3e3e1;--line-soft:#eeeeec;
  --red:#971725;--red-dark:#70111b;--red-surface:#971725;--red-surface-hover:#7c1220;--red-wash:#faf1f2;
  /* 18.09.: Gold verliert seine Rolle. Die Tokennamen bleiben, weil theme.css und
     die uebrigen Stylesheets sie referenzieren und hier nicht umbenannt werden
     duerfen; die Werte tragen jetzt Bordeaux bzw. neutrales Grau. Damit wird aus
     jedem alten Goldakzent ein Markenakzent, ohne 60 Regeln anzufassen.
     Kontrast: #971725 auf --paper 8,23:1, auf --card 8,52:1, auf --gold-wash 7,74:1.
     --gold-deep #70111b auf --paper 11,36:1. Alle ueber 4,5:1, also auch fuer
     die kleinen Eyebrow-Labels tragfaehig. */
  --gold:#971725;--gold-deep:#70111b;--gold-text:#971725;--gold-wash:#f4f4f3;--black:#0c0b0a;
  /* Auf den dunklen Baendern (Topbar, Drawer, Footer, Ortsteil-Kacheln) traegt
     Bordeaux nicht: #971725 auf --stage ergibt nur 2,31:1. Dort steht deshalb ein
     neutrales Off-White als Akzent, 17,56:1 auf --stage, 16,69:1 auf --stage-2. */
  --accent-dark:#f2f2f1;
  /* 18.09.: die hellen Werte auf den dunklen Baendern waren warm getoent
     (#e8e4da, #b5b0a4, #8f8a7e) und haben das Beige in den Footer gezogen.
     Jetzt neutral; die Helligkeiten und damit alle Kontraste bleiben gleich. */
  --stage:#0c0b0a;--stage-2:#141210;--field-dark:#171512;--on-dark-strong:#fff;--on-dark:#e7e7e5;--on-dark-soft:#b4b4b1;--on-dark-muted:#8e8e8b;--hairline-dark:#262626;
  --scrim:rgba(12,11,10,.78);--scrim-heavy:rgba(12,11,10,.55);--ok:#18794e;--ok-wash:#eef7f1;--wa:#25d366;--blue:#1d4f8f;
  --serif:'Newsreader',Georgia,'Times New Roman',serif;--sans:'Hanken Grotesk',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --shell:1240px;--measure:680px;--radius:3px;
  --shadow:0 1px 2px rgba(21,20,18,.05),0 8px 28px -12px rgba(21,20,18,.14);--shadow-lift:0 2px 4px rgba(21,20,18,.06),0 18px 44px -16px rgba(21,20,18,.22);
}

/* ---------- Basis ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}a:hover{color:var(--red)}
h1,h2,h3,h4{margin:0;font-family:var(--serif);font-weight:700;line-height:1.12;letter-spacing:-.01em;text-wrap:balance}
p{margin:0}ul,ol{margin:0;padding:0;list-style:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
input,select,textarea{font:inherit;color:inherit}
.shell{max-width:var(--shell);margin:0 auto;padding:0 20px}
.narrow{max-width:800px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:-9999px;top:0;background:var(--red-surface);color:#fff;padding:10px 16px;z-index:99}.skip:focus{left:12px;top:12px;color:#fff}
:focus-visible{outline:2px solid var(--red-dark);outline-offset:2px}
/* 18.09.: Fokusring war Gold. Auf den dunklen Baendern traegt Bordeaux nicht,
   dort steht das neutrale Off-White (17,56:1 auf --stage). Der Kopf ist seit
   editorial-audit.css weiss, dort ist Bordeaux richtig und erreicht 8,52:1. */
.topbar :focus-visible,.drawer :focus-visible,.section.dark :focus-visible,footer :focus-visible,.lightbox :focus-visible,.sidebox.dark :focus-visible,.mitmachen :focus-visible,.district-tile:focus-visible{outline-color:var(--accent-dark)}
.masthead :focus-visible{outline-color:var(--red)}
::selection{background:var(--gold-wash)}
.hp{position:absolute;left:-9999px;top:-9999px;height:0;overflow:hidden}
[hidden]{display:none!important}
.pulse{display:block;width:100%;height:14px;color:var(--gold);margin-bottom:18px}.pulse svg{display:block;width:100%;height:100%}
.empty{color:var(--muted);font-size:14.5px;padding:18px 0}.empty a{color:var(--red-dark);font-weight:600}

/* ---------- Kopf ---------- */
.topbar{background:var(--stage);color:var(--on-dark);font-size:12.5px;overflow:hidden}
.topbar .shell{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:36px}
.topbar .date{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar b{color:var(--on-dark-strong);font-weight:600}.topbar .stand{color:var(--on-dark-muted);margin-left:10px}
.toplinks{display:flex;gap:18px}.toplinks a{color:var(--on-dark);font-weight:500;display:inline-flex;align-items:center;min-height:36px}.toplinks a:hover{color:var(--accent-dark)}
.toplinks .wa::before{content:'●';color:var(--wa);margin-right:5px;font-size:9px;vertical-align:1px}
.masthead{background:var(--stage);border-top:1px solid var(--hairline-dark);padding:18px 0 14px}
.mast-inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px}
.menu-btn{display:none;color:var(--on-dark);font-size:22px;padding:6px 10px;border:1px solid var(--hairline-dark);border-radius:var(--radius)}
.logo img{height:62px;width:auto;margin:0 auto}
.mast-left{justify-self:start;color:var(--on-dark-muted);font-size:12px;line-height:1.5}.mast-left b{color:var(--on-dark);font-weight:600;display:block}
.mast-right{justify-self:end;display:flex;align-items:center;gap:18px;color:var(--on-dark-muted);font-size:11.5px;text-align:right}
.mast-meta{max-width:none;white-space:nowrap;line-height:1.45;font-size:11.5px}.mast-meta b{color:var(--on-dark);font-weight:600;display:block;font-size:11.5px}
.search-btn{width:40px;height:40px;border:1px solid var(--hairline-dark);border-radius:50%;color:var(--on-dark);display:grid;place-items:center}
.search-btn svg{width:18px;height:18px;fill:currentColor}.search-btn:hover{border-color:var(--gold);color:var(--gold)}.mast-right .search-btn{display:none}
.mast-line{background:var(--stage);padding:0 0 14px}
.mast-line .shell{max-width:none;padding:0 max(20px,calc((100% - var(--shell))/2 + 20px)) 0 0}
.brandline{display:flex;align-items:center;margin:0}.brandline i{flex:1;height:2px;background:var(--ink);display:block}.brandline svg{flex:none;width:118px;height:24px;display:block;color:var(--gold)}
.mast-line .brandline i{background:var(--accent-dark)}
/* 18.09.: die Wortmarken-Grafik steht in .mast-line auf --stage. Bordeaux waere
   dort 2,31:1 und kaum sichtbar, darum der neutrale Hell-Akzent. */
.mast-line .brandline svg{color:var(--accent-dark)}.brandline.thin{margin:0 0 18px}.brandline.thin i{height:1px;background:var(--ink)}.section.dark .brandline i{background:var(--on-dark-soft)}
.mainnav{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.navrow{display:flex;align-items:center;gap:8px}
.navscroll{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;flex:1}.navscroll::-webkit-scrollbar{display:none}
.navscroll a{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);padding:14px 12px 12px;border-bottom:2px solid transparent;white-space:nowrap}
.navscroll a:hover{color:var(--red)}.navscroll a[aria-current]{color:var(--red);border-bottom-color:var(--red)}
.nav-search{font-size:13px;font-weight:600;color:var(--muted);white-space:nowrap;padding:8px 2px}.nav-search:hover{color:var(--red)}
.ticker{background:var(--red);color:var(--on-dark-strong)}
.ticker .shell{display:flex;align-items:center;gap:14px;min-height:40px;font-size:14px}
.ticker .tag{background:#fff;color:var(--red-surface);font-size:10.5px;font-weight:800;letter-spacing:.1em;padding:3px 9px;border-radius:2px;flex-shrink:0}
.ticker a{color:var(--on-dark-strong);font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ticker a:hover{text-decoration:underline;color:#fff}
.ticker time{color:#f0c9ce;font-size:12.5px;flex-shrink:0}
.drawer{display:none;position:fixed;inset:0;z-index:80}.drawer.open{display:block}
.drawer .scrim{position:absolute;inset:0;background:var(--scrim-heavy)}
.drawer .panel{position:absolute;top:0;left:0;bottom:0;width:min(340px,88vw);background:var(--stage);color:var(--on-dark);padding:20px 22px 40px;overflow-y:auto}
.panel-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.panel-top img{height:40px;width:auto}
.panel-top button{color:var(--on-dark);font-size:18px;width:36px;height:36px;border:1px solid var(--hairline-dark);border-radius:50%}
.drawer-search{display:flex;gap:6px;margin-bottom:8px}
.drawer-search input{flex:1;background:var(--field-dark);border:1px solid var(--hairline-dark);color:var(--on-dark-strong);padding:9px 12px;border-radius:var(--radius)}
.drawer-search button{width:40px;border:1px solid var(--hairline-dark);border-radius:var(--radius);color:var(--on-dark)}.drawer-search svg{width:16px;height:16px;fill:currentColor}
.drawer .panel a{display:block;padding:10px 0;font-size:15px;font-weight:600;border-bottom:1px solid var(--hairline-dark);color:var(--on-dark)}
.drawer .panel a:hover,.drawer .panel a[aria-current]{color:var(--accent-dark)}
.drawer .panel .grp{font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-dark);margin:22px 0 4px}

/* ---------- Sektionen & Typen ---------- */
main{display:block}
.section{padding:40px 0 8px}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:14px}
.section-head .left{display:flex;flex-direction:column;gap:2px}
.eyebrow{font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.section-head h2,.section-head h1{font-family:var(--sans);font-size:24px;font-weight:800;letter-spacing:-.01em}
.section-head .more{font-size:13.5px;font-weight:700;color:var(--muted);white-space:nowrap}.section-head .more:hover{color:var(--red)}.section-head .more::after{content:' →';color:var(--gold-deep)}
.section-note{font-size:13.5px;color:var(--muted);margin-top:14px}.section-note a{color:var(--red-dark);font-weight:600}
.media{position:relative;background:var(--stage-2);overflow:hidden;border-radius:var(--radius);aspect-ratio:16/9}
.media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.media.contain img{object-fit:contain;padding:12%;background:var(--card)}
.media .badge{position:absolute;left:10px;bottom:10px;background:var(--scrim);color:var(--on-dark);font-size:10.5px;font-weight:600;letter-spacing:.04em;padding:3px 8px;border-radius:2px;backdrop-filter:blur(2px)}
.media.none,.media.failed{background:var(--stage-2)}.media.none img,.media.failed img,.ph-img{object-fit:cover;padding:0}
.kicker{font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--red)}
.kicker .dist{color:var(--muted);font-weight:600;letter-spacing:.06em}.kicker .dist::before{content:'· ';color:var(--gold-deep)}
.meta{display:flex;gap:10px;align-items:center;font-size:12.5px;color:var(--muted);flex-wrap:wrap}.meta time{font-variant-numeric:tabular-nums}
.fbadge{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:2px 7px;border-radius:2px;background:var(--gold-wash);color:var(--gold-text);border:1px solid var(--gold)}
.fbadge.eilmeldung{background:var(--red-surface);color:#fff;border-color:var(--red-surface)}
.fbadge.anzeige{background:var(--line-soft);color:var(--muted);border-color:var(--line)}
.fbadge.kommentar,.fbadge.kolumne{background:var(--paper);color:var(--ink-soft);border-color:var(--line)}
.kick-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.readtime{display:inline-flex;align-items:center;gap:5px}.readtime::before{content:'';width:11px;height:11px;border:1.6px solid currentColor;border-radius:50%;flex-shrink:0}

/* ---------- Aufmacher ---------- */
.hero{padding:30px 0 10px}
.hero-grid{display:grid;grid-template-columns:1fr 380px;gap:28px;align-items:start}
.lead-card{display:block}.lead-card .media{border-radius:4px;box-shadow:var(--shadow)}.lead-card:hover .media{box-shadow:var(--shadow-lift)}
.lead-copy{padding:20px 4px 0;display:flex;flex-direction:column;gap:10px}
.lead-copy h1,.lead-copy h2{font-size:clamp(28px,4vw,44px);font-weight:760;font-variation-settings:'wght' 760}
.lead-copy h1 a:hover,.lead-copy h2 a:hover{color:var(--red-dark)}
.lead-copy .dek{font-family:var(--serif);font-size:19px;line-height:1.5;color:var(--ink-soft);max-width:660px}
.side-stack{display:flex;flex-direction:column;gap:20px}
.side-card{display:grid;gap:9px;padding-bottom:18px;border-bottom:1px solid var(--line)}.side-card:last-child{border-bottom:0}
.side-card h3{font-size:20px;line-height:1.22}.side-card h3 a:hover{color:var(--red-dark)}.side-card p{font-size:14px;color:var(--muted);line-height:1.5}
.quickline{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--card);margin-top:26px}
.quickline .shell{display:grid;grid-template-columns:auto repeat(4,1fr)}
.quick-label{display:flex;align-items:center;padding:0 20px 0 0;font-size:9.5px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-text);white-space:nowrap}
.quick-item{padding:14px 18px 14px 0;border-right:1px solid var(--line-soft);margin-right:18px;display:flex;flex-direction:column;gap:3px}.quick-item:last-child{border-right:0;margin-right:0}
.quick-item b{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--red)}.quick-item span{font-size:13.5px;font-weight:600;line-height:1.35;color:var(--ink-soft)}.quick-item:hover span{color:var(--red-dark)}

/* ---------- Kurz notiert ---------- */
.kurz-section{padding-top:30px}
.kurz-list.one{grid-template-columns:1fr;border:0;padding:0;background:transparent}.kurz-list.one .kurz{grid-template-columns:58px 1fr;font-size:13.5px}.facts.fam h2{font-family:var(--serif);font-size:20px;letter-spacing:0;text-transform:none;font-weight:700}.facts.fam p{font-size:14.5px;line-height:1.55}.facts.fam a{color:var(--red-dark);font-weight:700}.fbadge.familienanzeige,.fbadge.nachruf{background:var(--card);color:var(--ink-soft);border-color:var(--line)}
.kurz-list{display:grid;grid-template-columns:1fr 1fr;gap:0 40px;background:var(--card);border:1px solid var(--line);border-radius:4px;padding:6px 20px}
.kurz{display:grid;grid-template-columns:78px 1fr;gap:12px;padding:11px 0;border-bottom:1px solid var(--line-soft);font-size:14.5px;line-height:1.35}
.kurz .k-time{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums;padding-top:3px}
.kurz .kicker{display:block;margin-bottom:2px}.kurz a{font-weight:600}.kurz a:hover{color:var(--red)}

/* ---------- Feed & Sidebar ---------- */
.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:36px;align-items:start}
.feed{display:flex;flex-direction:column;min-width:0}
.feed-row{display:grid;grid-template-columns:250px 1fr;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}.feed-row:first-child{padding-top:0}
.feed-copy{display:flex;flex-direction:column;gap:7px;min-width:0}
.feed-copy h3{font-size:21px;line-height:1.22}.feed-copy h3 a:hover{color:var(--red-dark)}.feed-copy .dek{font-size:14.5px;color:var(--ink-soft);line-height:1.5}
.creditline{display:flex;justify-content:space-between;gap:12px;font-size:11.5px;color:var(--muted);margin-top:auto;padding-top:6px;flex-wrap:wrap}.creditline .src{color:var(--gold-text);font-weight:600}
.feed-lead{padding-bottom:22px;border-bottom:1px solid var(--line);margin-bottom:4px}.feed-lead .lead-copy{padding-top:16px}
.feed-more{margin-top:24px}
.sponsored{position:relative}.sponsored::after{content:'Anzeige';position:absolute;top:8px;right:8px;font-size:9.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;background:var(--card);color:var(--muted);padding:2px 7px;border:1px solid var(--line);border-radius:2px;z-index:2}
.sidebar{display:flex;flex-direction:column;gap:20px;min-width:0}
.sidebox{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:18px 18px 14px;box-shadow:var(--shadow)}
.sidebox>h3{font-family:var(--sans);font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);padding-bottom:10px;margin-bottom:4px;border-bottom:2px solid var(--gold);display:flex;justify-content:space-between;align-items:center;gap:10px}
.sidebox>h3 a{font-size:11px;color:var(--muted);letter-spacing:.02em;text-transform:none;font-weight:600;white-space:nowrap}.sidebox>h3 a:hover{color:var(--red)}
.sidebox .p,.sidebox>p{font-size:13.5px;color:var(--ink-soft);line-height:1.55;margin:8px 0}
.termin{display:grid;grid-template-columns:52px 1fr;gap:12px;padding:11px 0;border-bottom:1px solid var(--line-soft);align-items:start}.termin:last-child{border-bottom:0}
.termin .d,.event-row .d,.event-date{background:var(--stage-2);color:var(--on-dark-strong);border-radius:3px;text-align:center;padding:5px 2px 6px;line-height:1.05}
.termin .d b,.event-row .d b,.event-date b{display:block;font-size:17px;font-weight:800}
.termin .d span,.event-row .d span,.event-date span{font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}
.termin .t{font-size:13.5px;line-height:1.35}.termin .t a{font-weight:650}.termin .t a:hover{color:var(--red)}.termin .t small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.ranked{counter-reset:r}.ranked li{counter-increment:r;display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--line-soft);align-items:baseline}.ranked li:last-child{border-bottom:0}
.ranked li::before{content:counter(r);font-family:var(--serif);font-size:26px;font-weight:700;color:var(--gold-text);min-width:22px;line-height:1}
.ranked a{font-size:13.5px;font-weight:650;line-height:1.35}.ranked a:hover{color:var(--red)}
.service li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line-soft);font-size:13px}.service li:last-child{border-bottom:0}
.service .k{color:var(--muted)}.service .v{font-weight:700;text-align:right}.service .v a{color:var(--gold-text)}
.linklist li{padding:8px 0;border-bottom:1px solid var(--line-soft);font-size:13.5px;line-height:1.35}.linklist li:last-child{border-bottom:0}
.linklist a{font-weight:650}.linklist a:hover{color:var(--red)}.linklist small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.sidebox.dark{background:var(--stage-2);border-color:var(--hairline-dark);color:var(--on-dark)}.sidebox.dark>h3{color:var(--on-dark-strong)}.sidebox.dark p{color:var(--on-dark-soft)}
.wa-box>h3{border-bottom-color:var(--wa)}.wa-box>h3::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--wa);margin-right:8px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--red-surface);color:#fff;font-size:13.5px;font-weight:700;padding:10px 18px;border-radius:var(--radius);text-align:center;line-height:1.2}
.btn:hover{background:var(--red-surface-hover);color:#fff}.btn svg{width:16px;height:16px;fill:currentColor}
/* 18.09.: Flaeche ist jetzt Bordeaux, darauf braucht es Weiss (8,52:1);
   Schwarz auf Bordeaux waere 2,31:1 und damit unlesbar. */
.btn.gold{background:var(--gold);color:var(--on-dark-strong)}.btn.gold:hover{background:var(--gold-deep);color:var(--on-dark-strong)}
.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--ink-soft)}.btn.ghost:hover{border-color:var(--red);color:var(--red);background:transparent}
.btn.block{display:flex;width:100%}.btn.wa-btn{background:var(--wa);color:#0b2e1a}.btn.wa-btn:hover{background:#1fb955;color:#0b2e1a}
.btn:disabled{opacity:.6;cursor:wait}
.poll .q{font-size:14px;font-weight:600;margin:8px 0 4px}
.poll .opt{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:var(--radius);padding:9px 12px;font-size:13.5px;font-weight:600;margin:7px 0;position:relative;overflow:hidden;background:var(--card)}
.poll .opt:hover{border-color:var(--gold)}.poll .opt.mine{border-color:var(--gold)}
.poll .opt .bar{position:absolute;inset:0;background:var(--gold-wash);transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.22,1,.36,1);z-index:0}
.poll .opt span{position:relative;z-index:1;display:flex;justify-content:space-between;gap:8px}.poll .opt .pct{color:var(--muted);font-weight:700}
.poll small{color:var(--muted);font-size:11.5px;display:block;margin-top:6px}
.wa-page{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:22px 24px;margin:8px 0 20px}
.wa-page h2{font-size:22px;margin-bottom:12px}.wa-page p{font-size:15px;color:var(--ink-soft);margin-bottom:14px;max-width:60ch}
.ad-row{display:grid;gap:14px;margin:22px 0}.ad-row[data-slot="billboard"]{margin:22px 0 0}.native-ad{background:var(--paper)}.native-ad .ad-media{display:grid;place-items:center;background:var(--card);border:1px solid var(--line)}.native-ad .ad-media .ad-name{font-family:var(--serif);font-size:20px;color:var(--ink-soft)}.native-ad .ad-media img{position:static;width:100%;height:auto;object-fit:contain}.native-ad .meta a{color:var(--muted);font-weight:600}.prose .ad-row{margin:26px 0}.ad-row.wide{grid-template-columns:1fr 1fr}.ad-row.narrow{grid-template-columns:1fr}.prose .ad-row.wide{grid-template-columns:1fr}.ad-row.wide .ad{width:100%;max-width:740px;margin:0 auto}
.ad{position:relative;border:1px solid var(--line);outline:1px solid var(--line);outline-offset:3px;background:var(--card);padding:6px}
.ad-label{position:absolute;top:-9px;left:10px;background:var(--paper);padding:0 6px;font-size:9.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ad a,.ad .ad-in{display:flex;align-items:center;justify-content:center;min-height:90px;border-top:2px solid var(--gold)}.ad-row.narrow .ad a,.ad-row.narrow .ad .ad-in{min-height:104px}
.ad img{width:100%;height:auto;max-height:104px;object-fit:contain}.ad-name{font-family:var(--serif);font-size:19px;font-weight:600;color:var(--ink-soft);letter-spacing:.01em;display:block;text-align:center}.ad-name small{display:block;font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.mitmachen{display:grid;grid-template-columns:1.2fr 1fr;gap:36px;align-items:center;background:var(--stage);color:var(--on-dark);padding:40px 36px;border-radius:4px;margin-top:20px}
.mitmachen h2{font-size:30px;color:var(--on-dark-strong);margin:6px 0 10px}.mitmachen .eyebrow{color:var(--accent-dark)}.mitmachen p{color:var(--on-dark-soft);font-size:14.5px;max-width:52ch}
.mm-actions{display:flex;flex-wrap:wrap;gap:10px}.mm-actions .btn.ghost{border-color:var(--hairline-dark);color:var(--on-dark)}.mm-actions .btn.ghost:hover{border-color:var(--accent-dark);color:var(--accent-dark)}
.btn.ghost.on-dark{border-color:var(--hairline-dark);color:var(--on-dark);margin-top:8px}.btn.ghost.on-dark:hover{border-color:var(--accent-dark);color:var(--accent-dark)}
.undated{font-size:12.5px;color:var(--muted);font-style:italic}.sc-crest{display:flex;align-items:center;gap:14px;margin:0 0 18px}.sc-crest img{width:72px;height:72px;object-fit:contain}.sc-crest span{font-size:12px;color:var(--muted)}.plainlist .res{color:var(--red-dark);margin-left:6px}
.job-d b{font-size:11px!important;letter-spacing:.06em;text-transform:uppercase;padding:4px 0}
.src-line{font-size:12px;color:var(--muted);margin:8px 0 22px}.src-line a{color:var(--red-dark);font-weight:600}
.sc-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:0 0 30px}.sc-stats div{background:var(--card);padding:14px 16px}
.sc-stats b{display:block;font-family:var(--serif);font-size:32px;line-height:1;font-weight:700;font-variant-numeric:tabular-nums}.sc-stats span{display:block;margin-top:6px;font-size:10.5px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
.sc-table td.n,.sc-table th.n{text-align:right;font-variant-numeric:tabular-nums}.sc-table tr.mark td{background:var(--gold-wash);font-weight:700}
.plainlist li b{display:block;font-size:14.5px}.plainlist li small{color:var(--muted)}

/* ---------- Blaulicht-Bühne ---------- */
.section.dark{background:var(--stage);color:var(--on-dark);padding:46px 0 52px;margin-top:36px}
.section.dark .section-head h2{color:var(--on-dark-strong)}.section.dark .eyebrow{color:var(--accent-dark)}
.section.dark .section-head .more{color:var(--on-dark-soft)}.section.dark .section-head .more:hover{color:var(--accent-dark)}
.fire-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:18px}
.photo-story{position:relative;border-radius:4px;overflow:hidden;display:block;min-height:320px}
.photo-story .media{position:absolute;inset:0;border-radius:0;aspect-ratio:auto}
.photo-story .over{position:absolute;inset:auto 0 0 0;padding:70px 18px 16px;background:linear-gradient(180deg,transparent,rgba(6,5,4,.9) 62%);display:flex;flex-direction:column;gap:6px;z-index:2}
.photo-story .over .eyebrow{color:var(--accent-dark)}.photo-story h3{color:var(--on-dark-strong);font-size:22px;line-height:1.2}.photo-story.small h3{font-size:16.5px}
.photo-story p{color:var(--on-dark);font-size:13.5px;line-height:1.45}.photo-story .photo-credit{font-size:11px;color:var(--on-dark-muted)}.photo-story:hover h3{color:var(--accent-dark)}

/* ---------- Termine ---------- */
.events-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.event-card{background:var(--card);border:1px solid var(--line);border-radius:4px;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow)}.event-card:hover{box-shadow:var(--shadow-lift)}
.ev-media{position:relative}.event-card .media{border-radius:0;aspect-ratio:2/1}
.event-date{position:absolute;top:10px;left:10px;padding:5px 9px;z-index:2}
.event-card.noimg .event-date{position:static;display:inline-block;margin-bottom:8px}
.event-body{padding:13px 15px 15px;display:flex;flex-direction:column;gap:5px;flex:1}
.event-body .eyebrow{color:var(--gold-text);letter-spacing:.1em}.event-body h3{font-size:16.5px;line-height:1.25}.event-body h3 a:hover{color:var(--red-dark)}
.event-body p{font-size:12.5px;color:var(--muted);margin-top:auto;padding-top:6px}
.weekbar{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:0 0 22px}
.wb{background:var(--card);padding:12px 16px}.wb b{display:block;font-family:var(--serif);font-size:28px;line-height:1;font-weight:700;font-variant-numeric:tabular-nums}.wb span{display:block;margin-top:5px;font-size:10.5px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
.wb-cta{display:flex;align-items:center;justify-content:center}
.az{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 18px}.az a{min-width:34px;height:34px;display:grid;place-items:center;font-size:12.5px;font-weight:700;border:1px solid var(--line);border-radius:3px;background:var(--card)}.az a:hover{border-color:var(--gold);color:var(--red)}
.filterbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{font-size:12.5px;font-weight:600;padding:8px 14px;min-height:36px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink-soft)}
.chip:hover{border-color:var(--gold)}.chip.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.event-list{max-width:860px}
.event-row{display:grid;grid-template-columns:76px 1fr auto;gap:18px;background:var(--card);border:1px solid var(--line);border-radius:4px;padding:16px 18px;margin-bottom:12px;align-items:center;box-shadow:var(--shadow)}
.event-row .d{padding:8px 4px 9px}.event-row .d b{font-size:21px}.event-row .d span{font-size:10px}
.event-row .info h3,.event-row .info h4{font-size:18px;line-height:1.25}.event-row .info .meta{margin-top:4px}.event-row .info .eyebrow{color:var(--gold-text);letter-spacing:.1em;display:block;margin-bottom:3px}
.ev-desc{font-size:13.5px;color:var(--ink-soft);margin-top:5px}
.event-row .act{display:flex;flex-direction:column;gap:8px;align-items:flex-end}.event-row .act a{font-size:12.5px;font-weight:700;color:var(--gold-text);white-space:nowrap}.event-row .act a:hover{color:var(--red)}
.month-h{font-family:var(--sans);font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:26px 0 12px}
.past{margin-top:30px}.past summary{cursor:pointer;font-weight:700;font-size:14px;color:var(--muted);padding:10px 0}
.event-facts{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:6px 0 20px}
.ef{display:flex;gap:12px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:4px;padding:14px}
.ef-ic{width:36px;height:36px;border-radius:50%;background:var(--stage-2);color:var(--accent-dark);display:grid;place-items:center;flex-shrink:0;font-weight:800}.ef-ic svg{width:18px;height:18px;fill:none;stroke:currentColor}
.ef b{display:block;font-size:15px;line-height:1.3}.ef span{font-size:12.5px;color:var(--muted)}.ef a{color:var(--red-dark);font-weight:600}
.cta-row{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0 26px}

/* ---------- Karten ---------- */
.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.news-card{background:var(--card);border:1px solid var(--line);border-radius:4px;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow)}.news-card:hover{box-shadow:var(--shadow-lift)}
.news-card .media{border-radius:0}
.news-card-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:7px;flex:1}
.news-card-body h3{font-size:18.5px;line-height:1.25}.news-card-body h3 a:hover{color:var(--red-dark)}.news-card-body .dek{font-size:13.5px;color:var(--ink-soft);line-height:1.5}
.rblock-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.rblock-h{font-family:var(--sans);font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;display:flex;justify-content:space-between;align-items:baseline;border-bottom:2px solid var(--ink);padding-bottom:8px;margin-bottom:14px}
.rblock-h a:hover{color:var(--red)}.rblock-h span{font-size:11px;font-weight:600;letter-spacing:.02em;text-transform:none;color:var(--muted)}
.rblock-lead h4{font-size:19px;line-height:1.22;margin:10px 0 6px}.rblock-lead h4 a:hover{color:var(--red-dark)}.rblock-lead p{font-size:13.5px;color:var(--ink-soft);line-height:1.5}.rblock-lead .meta{margin-top:6px}
.rblock-list{margin:12px 0 10px;border-top:1px solid var(--line)}.rblock-list li{padding:9px 0;border-bottom:1px solid var(--line-soft);font-size:14px;line-height:1.35}.rblock-list a{font-weight:650}.rblock-list a:hover{color:var(--red)}.rblock-list .meta{display:block;margin-top:2px;font-size:12px}
.rblock>.more{font-size:13px;font-weight:700;color:var(--muted)}.rblock>.more:hover{color:var(--red)}.rblock>.more::after{content:' →';color:var(--gold-deep)}
.district-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.district-tile{background:var(--stage-2);color:var(--on-dark);border-radius:0;border-top:3px solid var(--accent-dark);padding:20px 18px 16px;display:flex;flex-direction:column;gap:8px;min-height:160px;position:relative;overflow:hidden}
.district-tile::after{content:'';position:absolute;left:18px;right:18px;bottom:14px;height:1px;background:linear-gradient(90deg,var(--accent-dark),transparent)}
.district-tile h3{font-size:20px;color:var(--on-dark-strong)}.district-tile p{font-size:12.5px;color:var(--on-dark-soft);line-height:1.5}
.district-tile .n{color:var(--accent-dark);font-size:12px;font-weight:700;margin-top:auto;padding-bottom:10px}.district-tile:hover h3{color:var(--accent-dark)}
.club-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.club-grid.four{grid-template-columns:repeat(4,1fr)}
.club-card{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:18px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow);height:100%;position:relative}
.club-card .cat{font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-text)}
.club-card h3{font-size:18px;line-height:1.25}.club-card p{font-size:13.5px;color:var(--ink-soft);line-height:1.55;flex:1}
.club-links{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;font-weight:700}.club-links a{color:var(--red-dark)}.club-links a.ext{color:var(--gold-text)}
.club-card.sponsored{border-color:var(--gold)}.sp-tag{position:absolute;top:8px;right:8px;font-size:9.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

/* ---------- Artikel ---------- */
.article-head{padding:34px 0 0}
.crumbs{font-size:12.5px;color:var(--muted);display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}.crumbs a:hover{color:var(--red)}.crumbs .sep{color:var(--gold-deep)}
.article-head .kicker{font-size:12.5px}
.article-head h1{font-size:clamp(30px,4.6vw,46px);font-weight:760;font-variation-settings:'wght' 760;max-width:900px;margin:10px 0 14px}
.article-head .dek{font-family:var(--serif);font-style:italic;font-size:21px;line-height:1.45;color:var(--ink-soft);max-width:800px}
.byline{display:flex;align-items:center;gap:14px;margin:22px 0 0;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap}
.avatar{width:40px;height:40px;border-radius:50%;background:var(--stage-2);color:var(--accent-dark);display:grid;place-items:center;font-size:13px;font-weight:800;letter-spacing:.02em;flex-shrink:0}
.byline .who{font-size:13.5px;line-height:1.35}.byline .who b{font-weight:700}.byline .who span{display:block;color:var(--muted);font-size:12.5px}
.byline .dates{margin-left:auto;text-align:right;font-size:12.5px;color:var(--muted);line-height:1.5}
.share{display:flex;gap:8px;margin:0 0 18px}
.share a,.share button{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:var(--ink-soft);background:var(--card)}
.share a:hover,.share button:hover{border-color:var(--red);color:var(--red)}.share .wa:hover{border-color:var(--wa);color:var(--wa)}.share svg{width:17px;height:17px;fill:currentColor}.share button.done{border-color:var(--ok);color:var(--ok)}
.article-grid{display:grid;grid-template-columns:minmax(0,760px) 320px;gap:48px;padding:26px 0 30px;align-items:start;position:relative}
@media (min-width:1360px){.article .share{position:sticky;top:70px;float:left;margin-left:-58px;flex-direction:column;gap:6px;z-index:5}.article .share a,.article .share button{width:36px;height:36px}}
.article-body{min-width:0}
.art-figure{margin:0 0 6px}.art-figure .media{box-shadow:var(--shadow);border-radius:4px}
.article-body figcaption{display:flex;justify-content:space-between;gap:14px;font-size:12px;color:var(--muted);padding:8px 2px;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}
.figure-badge{font-weight:700;color:var(--gold-text)}
.facts{background:var(--gold-wash);border:1px solid var(--gold);border-radius:var(--radius);padding:16px 18px;margin:26px 0}
.facts h2{font-family:var(--sans);font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px}
.facts li{font-size:14.5px;padding:5px 0 5px 18px;position:relative;line-height:1.5}.facts li::before{content:'';position:absolute;left:0;top:13px;width:8px;height:2px;background:var(--gold)}
.facts p{font-size:14.5px}.facts small{color:var(--muted)}
.prose{max-width:var(--measure)}
.prose p{font-family:var(--serif);font-size:19px;line-height:1.68;color:var(--ink);margin:0 0 22px;font-variation-settings:'wght' 420}
.article .prose>p:first-of-type::first-letter{font-size:3.1em;font-weight:700;float:left;line-height:.86;padding:4px 10px 0 0;color:var(--red)}
.prose h2{font-size:26px;margin:32px 0 12px}.prose h3{font-size:21px;margin:26px 0 10px}
.prose a{color:var(--red-dark);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}
.prose ul,.prose ol{margin:0 0 22px;padding-left:22px;font-family:var(--serif);font-size:18px;line-height:1.6}.prose ul{list-style:disc}.prose ol{list-style:decimal}.prose li{margin-bottom:6px}
.prose blockquote{margin:26px 0;padding:0 0 0 34px;position:relative;font-family:var(--serif);font-style:italic;font-size:20px;color:var(--ink-soft)}.prose blockquote::before{content:"„";position:absolute;left:0;top:-8px;font-size:52px;line-height:1;color:var(--gold);font-style:normal}
.prose em{font-style:italic}.prose strong{font-weight:700}
.inline-figure{margin:26px 0}.inline-figure img{border-radius:4px;width:100%;height:auto}.inline-figure figcaption{font-size:12px;color:var(--muted);padding:8px 2px}
.table-wrap{overflow-x:auto;margin:0 0 22px}.table-wrap table{border-collapse:collapse;width:100%;font-size:14.5px}.table-wrap th,.table-wrap td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line)}.table-wrap th{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:6px 0 26px}
.gallery figure{margin:0}.gallery .media{aspect-ratio:3/2}.gallery figcaption{font-size:11.5px;color:var(--muted);padding:6px 2px}
.gallery button.shot{display:block;width:100%;padding:0;cursor:zoom-in;position:relative;border-radius:var(--radius);overflow:hidden}
.gallery button.shot::after{content:'⤢';position:absolute;right:8px;bottom:8px;width:24px;height:24px;background:var(--scrim);color:var(--on-dark);border-radius:3px;display:grid;place-items:center;font-size:12px;opacity:0;transition:opacity .2s}
.gallery button.shot:hover::after,.gallery button.shot:focus-visible::after{opacity:1}
.corrections{background:var(--red-wash);border:1px solid var(--red);border-radius:var(--radius);padding:14px 16px;margin:26px 0;font-size:14px;max-width:var(--measure)}.corrections li{padding:4px 0}.corrections time{color:var(--muted);font-size:12.5px;margin-right:8px}
.source-box{background:var(--gold-wash);border:1px solid var(--gold);border-radius:var(--radius);padding:14px 16px;margin:28px 0;font-size:13.5px;line-height:1.6;max-width:var(--measure)}
.source-box a{color:var(--red-dark);font-weight:600}.source-box .stand{color:var(--muted)}
.tags{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0}
.tags a{font-size:12.5px;font-weight:600;border:1px solid var(--line);border-radius:999px;padding:8px 14px;min-height:36px;display:inline-flex;align-items:center;color:var(--ink-soft);background:var(--card)}.tags a:hover{border-color:var(--gold);color:var(--ink)}
.author-box{display:flex;gap:16px;background:var(--card);border:1px solid var(--line);border-radius:4px;padding:18px;margin:10px 0 18px;max-width:var(--measure)}
.author-box .avatar{width:52px;height:52px;font-size:15px}.author-box .b b{display:block;font-size:15px;margin-bottom:3px}.author-box .b p{font-size:13px;color:var(--muted);line-height:1.55}.author-box .b a{color:var(--red-dark);font-weight:600}
.readbar{position:fixed;top:0;left:0;height:3px;width:0;background:var(--gold);z-index:60}

/* ---------- Ressort / Ortsteil / Infoseiten ---------- */
.page-head{padding:38px 0 6px}
.page-head h1{font-size:clamp(28px,4vw,40px);margin-top:6px}
.page-head .desc{font-family:var(--serif);font-size:18px;color:var(--ink-soft);max-width:760px;margin-top:10px;line-height:1.5}
.count-line{font-size:12.5px;color:var(--muted);margin-top:12px}.count-line a{color:var(--red-dark);font-weight:600}
.place-intro{padding:26px 0 0}.place-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:36px;align-items:start}
.place-intro .info-prose{max-width:760px;padding-bottom:0}.place-intro .info-prose h2:first-child{margin-top:0}
.info-prose{max-width:var(--measure);padding-bottom:20px}
.info-prose h2{font-size:24px;margin:30px 0 10px}.info-prose h3{font-size:19px;margin:22px 0 8px}
.info-prose p,.info-prose li{font-family:var(--serif);font-size:17.5px;line-height:1.65;color:var(--ink);margin-bottom:14px}
.info-prose ul li,.info-prose ol li{padding-left:22px;position:relative;margin-bottom:8px}.info-prose ul li::before{content:'';position:absolute;left:0;top:13px;width:8px;height:2px;background:var(--gold)}
.info-prose ol{counter-reset:o}.info-prose ol li{counter-increment:o}.info-prose ol li::before{content:counter(o) '.';position:absolute;left:0;top:0;color:var(--gold-deep);font-weight:700;font-family:var(--sans);font-size:14px}
.info-prose a{color:var(--red-dark);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}
.info-prose strong{font-weight:700}.info-prose em{font-style:italic}.info-prose .table-wrap{font-family:var(--sans)}
.info-prose blockquote{margin:20px 0;padding:0 0 0 30px;position:relative;font-style:italic}.info-prose blockquote::before{content:"„";position:absolute;left:0;top:-6px;font-size:44px;line-height:1;color:var(--gold);font-style:normal}
.notice{background:var(--red-wash);border:1px solid var(--red);border-radius:var(--radius);padding:14px 16px;font-size:14px;line-height:1.6;margin:18px 0;max-width:var(--measure)}
.pagination{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:24px 0 8px;font-size:14px;color:var(--muted)}.pagination a{font-weight:700;color:var(--red-dark)}
.tagcloud{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline}
.tagcloud a{font-size:calc(13px + var(--n,1) * 1.2px);font-weight:600;padding:4px 12px;border:1px solid var(--line);border-radius:999px;background:var(--card)}.tagcloud a:hover{border-color:var(--gold)}.tagcloud small{color:var(--muted);font-size:11px}
.team-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:10px 0 26px}
.team-card{display:flex;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:4px;padding:16px}.team-card .avatar{width:48px;height:48px}
.team-card b{display:block;font-size:15px}.team-card span{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}.team-card p{font-size:13px;color:var(--ink-soft);line-height:1.5}.team-card a{color:var(--red-dark);font-size:13px;font-weight:600}
.archive-year{margin-top:30px}.archive-year h2{font-family:var(--sans);font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:9px}
.archive-month{padding:18px 0;border-bottom:1px solid var(--line-soft);display:grid;grid-template-columns:150px 1fr;gap:24px}.archive-month:last-child{border-bottom:0}
.archive-month h3{font-size:20px;line-height:1.2}.archive-month h3 small{display:block;font-family:var(--sans);font-size:11.5px;font-weight:600;color:var(--muted);margin-top:4px}
.archive-list li{padding:7px 0;border-bottom:1px solid var(--line-soft);display:flex;gap:12px;align-items:baseline;font-size:14.5px}.archive-list li:last-child{border-bottom:0}
.archive-list time{color:var(--muted);font-size:12.5px;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:52px}.archive-list a{font-weight:600;line-height:1.35}.archive-list a:hover{color:var(--red)}
.archive-list .rs{color:var(--gold-text);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;margin-left:auto}
.search-wrap{max-width:760px}.search-input{display:flex;gap:10px;margin:18px 0 8px}
.search-input input{flex:1;border:1px solid var(--muted);border-radius:var(--radius);padding:13px 16px;font-size:16px;background:var(--card)}.search-input input:focus{outline:2px solid var(--red-dark);outline-offset:1px;border-color:var(--red-dark)}
[data-results]{min-height:min(60vh,520px)}
.result{padding:16px 0;border-bottom:1px solid var(--line)}.result h3{font-size:19px;margin:3px 0 5px}.result p{font-size:14px;color:var(--ink-soft)}
.no-result{color:var(--muted);font-size:14.5px;padding:22px 0}.no-result a{color:var(--red-dark);font-weight:600}

/* ---------- Formulare ---------- */
.form{display:flex;flex-direction:column;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:4px;padding:22px 24px;margin:8px 0 24px;max-width:760px}
.form label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600;color:var(--ink-soft)}
.form input,.form select,.form textarea{border:1px solid var(--muted);border-radius:var(--radius);padding:10px 12px;font-size:15px;font-weight:400;background:var(--paper);color:var(--ink);width:100%}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--red-dark);outline-offset:1px;border-color:var(--red-dark)}
.form input[type=file]{padding:8px;font-size:13px}
.form .grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form .check{flex-direction:row;align-items:flex-start;gap:9px;font-weight:400;font-size:13px;line-height:1.45}.form .check input{width:auto;margin-top:3px;accent-color:var(--red)}
.form .check a{color:var(--red-dark);text-decoration:underline}
.form .btn{align-self:flex-start;margin-top:4px}
.form-note{font-size:12.5px;color:var(--muted)}

/* ---------- Footer ---------- */
footer{background:var(--stage);color:var(--on-dark-soft);margin-top:56px}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:32px;padding:44px 0 30px}
.foot-brand img{height:52px;width:auto;margin-bottom:14px}.foot-brand p{font-size:13px;line-height:1.6;max-width:320px}
.foot-brand .sp{margin-top:14px;font-size:11.5px;color:var(--on-dark-muted)}.foot-brand .sp b{color:var(--on-dark);display:block;font-size:12px}
.foot-social{display:flex;gap:14px;margin-top:14px;font-size:12.5px;font-weight:700}.foot-social a{color:var(--on-dark)}.foot-social a:hover{color:var(--accent-dark)}
.foot-grid h3{font-family:var(--sans);color:var(--on-dark-strong);font-size:11.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin-bottom:14px}
.foot-grid ul li{margin-bottom:4px}.foot-grid ul a{display:inline-block;padding:4px 0}.foot-grid ul a{font-size:13.5px;color:var(--on-dark-soft)}.foot-grid ul a:hover{color:var(--accent-dark)}
.foot-bottom{border-top:1px solid var(--hairline-dark);padding:16px 0 22px;display:flex;justify-content:space-between;gap:16px;font-size:12px;color:var(--on-dark-muted);flex-wrap:wrap}
.foot-bottom a{color:var(--on-dark-muted)}.foot-bottom a:hover{color:var(--accent-dark)}

/* ---------- Wetter ---------- */
.weather{display:flex;flex-direction:column;gap:12px}
.weather-now{display:flex;align-items:center;gap:14px}
.weather-now .icon{width:46px;height:46px;flex-shrink:0;color:var(--gold-deep)}.weather-now .icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.weather-now .temp{font-family:var(--serif);font-size:36px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums}
.weather-now .what{font-size:13px;color:var(--ink-soft);line-height:1.35}.weather-now .what small{display:block;color:var(--muted);font-size:11.5px;margin-top:2px}
.weather-days{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;border-top:1px solid var(--line-soft);padding-top:11px}
.weather-day{text-align:center;font-size:11.5px}.weather-day b{display:block;font-weight:700;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:10px}
.weather-day .d-ic{width:22px;height:22px;margin:5px auto 3px;color:var(--gold-deep)}.weather-day .d-ic svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.weather-day .hi{font-weight:700;font-variant-numeric:tabular-nums}.weather-day .lo{color:var(--muted);font-variant-numeric:tabular-nums}.weather-day small{display:block;color:var(--muted);font-size:10px;margin-top:2px}
.weather-src{font-size:10.5px;color:var(--muted)}.weather-src a{color:var(--gold-text);font-weight:600}.weather-skel{color:var(--muted);font-size:13px;padding:6px 0}

/* ---------- Lightbox ---------- */
.lightbox{position:fixed;inset:0;z-index:90;display:none}.lightbox.on{display:block}
.lightbox .lb-scrim{position:absolute;inset:0;background:rgba(6,5,4,.94)}
.lightbox .lb-stage{position:absolute;inset:0;display:grid;grid-template-rows:1fr auto;place-items:center;padding:56px 20px 20px}
.lightbox img{max-width:min(1200px,92vw);max-height:78vh;width:auto;height:auto;object-fit:contain;border-radius:2px}
.lightbox .lb-cap{color:var(--on-dark-soft);font-size:13px;text-align:center;max-width:70ch;padding:14px 0 0;line-height:1.5}
.lightbox .lb-cap b{color:var(--on-dark);display:block;font-weight:600;margin-bottom:3px}.lightbox .lb-count{color:var(--on-dark-muted);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;margin-top:8px;display:block}
.lb-btn{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;background:var(--scrim);color:var(--on-dark);display:grid;place-items:center;font-size:20px;border:1px solid var(--hairline-dark)}
.lb-btn:hover{background:var(--accent-dark);color:var(--stage);border-color:var(--accent-dark)}.lb-prev{left:16px}.lb-next{right:16px}
.lb-close{position:absolute;top:16px;right:16px;transform:none;width:40px;height:40px;font-size:17px}

/* ---------- Service-Leiste, Kopfsuche, Monatskalender, Anzeigenmarkt ---------- */
.toplinks .svc{display:flex;gap:0;margin-right:6px;padding-right:14px;border-right:1px solid var(--hairline-dark)}.toplinks .svc a{color:var(--on-dark-muted);font-weight:500;padding:0 8px}.toplinks .svc a:first-child{padding-left:0}.toplinks .svc a:hover{color:var(--accent-dark)}
.mast-search{display:flex;align-items:center;border:1px solid var(--hairline-dark);border-radius:22px;background:rgba(255,255,255,.04);height:40px;width:min(320px,26vw);overflow:hidden}
.mast-search input{flex:1;min-width:0;background:transparent;border:0;color:var(--on-dark-strong);font:inherit;font-size:13.5px;padding:0 14px;outline:0}.mast-search input::placeholder{color:var(--on-dark-muted)}
.mast-search button{width:40px;height:40px;border:0;background:transparent;color:var(--on-dark);display:grid;place-items:center;cursor:pointer}.mast-search button svg{width:17px;height:17px;fill:currentColor}.mast-search:focus-within{border-color:var(--gold)}
.mast-weather{font-variant-numeric:tabular-nums}.mast-date{color:var(--on-dark)}
.mcal{margin:8px 0 14px;padding-bottom:12px;border-bottom:1px solid var(--line)}.mcal-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:12px;margin-bottom:8px}.mcal-head b{font-family:var(--serif);font-size:15px;color:var(--ink)}.mcal-head span{color:var(--muted);font-size:11px}
.mcal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center;font-size:12.5px;font-variant-numeric:tabular-nums}.mcal-grid i{font-style:normal;font-size:10.5px;font-weight:700;letter-spacing:.06em;color:var(--muted);padding-bottom:4px}
.mcal-grid span,.mcal-grid a{display:grid;place-items:center;height:30px;border-radius:2px;color:var(--ink-soft)}.mcal-grid a.has{background:var(--gold-wash);color:var(--ink);font-weight:700;border-bottom:2px solid var(--gold)}.mcal-grid a.has:hover{background:var(--gold);color:var(--on-dark-strong)}.mcal-grid .today{box-shadow:inset 0 0 0 1.5px var(--red);color:var(--red);font-weight:700}
.mcal-next summary{cursor:pointer;font-weight:700;font-size:13px;color:var(--muted);padding:6px 0}
.markt{padding-top:8px}.markt-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.markt-col .section-head{margin-bottom:12px}
.markt-card{border:1px solid var(--line);background:var(--card);padding:16px 18px 14px;margin-bottom:12px}.markt-card .eyebrow{display:block;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--red);margin-bottom:6px}.markt-card h3{font-size:18px;line-height:1.25;margin-bottom:6px}.markt-card p{font-size:13.5px;color:var(--ink-soft);line-height:1.5}.markt-card .meta{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-size:12px;color:var(--muted)}
.markt-empty{border:1px dashed var(--line);padding:18px;background:var(--paper)}.markt-empty p{font-size:14px;color:var(--ink-soft);margin-bottom:12px;line-height:1.5}
.btn-sm{display:inline-flex;align-items:center;min-height:34px;padding:0 14px;background:var(--red);color:#fff;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.btn-sm:hover{background:var(--red-dark);color:#fff}

/* ---------- Responsive ---------- */
@media (max-width:1100px){
  .hero-grid{grid-template-columns:1fr 320px}.content-grid,.place-grid{grid-template-columns:minmax(0,1fr) 300px}.article-grid{grid-template-columns:minmax(0,1fr) 290px;gap:32px}
  .fire-grid{grid-template-columns:1fr 1fr}.photo-story:first-child{grid-column:1/-1}.events-grid{grid-template-columns:repeat(2,1fr)}.district-grid{grid-template-columns:repeat(3,1fr)}
  .club-grid.four{grid-template-columns:repeat(2,1fr)}.foot-grid{grid-template-columns:1.4fr 1fr 1fr 1fr}
  .toplinks .svc{display:none}.mast-search{width:200px}
}
@media (max-width:860px){
  .mitmachen{grid-template-columns:1fr;padding:28px 22px}.ad-row.wide{grid-template-columns:1fr}.sc-stats{grid-template-columns:1fr 1fr}
  .mast-search{display:none}.mast-right .search-btn{display:grid}.markt-grid{grid-template-columns:1fr}
  .topbar .stand{display:none}.toplinks{gap:14px;flex-shrink:0}.toplinks .opt-hide{display:none}
  .mast-left,.mast-right .mast-meta{display:none}.mast-inner{grid-template-columns:auto 1fr auto}.logo img{height:46px}.menu-btn{display:block}  .hero-grid{grid-template-columns:1fr}.side-stack{display:grid;grid-template-columns:1fr 1fr;gap:18px}
  .quickline .shell{grid-template-columns:1fr 1fr}.quick-label{grid-column:1/-1;padding:12px 0 0}.quick-item:nth-child(3){border-right:0}
  .kurz-list{grid-template-columns:1fr}
  .content-grid,.place-grid{grid-template-columns:minmax(0,1fr)}.article-grid{grid-template-columns:minmax(0,1fr)}
  .cards-3,.club-grid,.club-grid.four{grid-template-columns:1fr 1fr}.rblock-grid{grid-template-columns:1fr 1fr}.team-grid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr 1fr}.foot-brand{grid-column:1/-1}
}
@media (max-width:640px){
  body{font-size:15.5px}.weekbar{grid-template-columns:repeat(2,1fr)}.wb-cta{grid-column:1/-1}.chip{min-height:40px}.linklist li,.termin{padding:11px 0}.navscroll a{padding:13px 10px 11px;font-size:12.5px}.nav-search{display:none}
  .feed-row{grid-template-columns:1fr;gap:10px}.side-stack{grid-template-columns:1fr}.fire-grid{grid-template-columns:1fr}.photo-story{min-height:240px}
  .events-grid{grid-template-columns:1fr}.cards-3,.club-grid,.club-grid.four,.rblock-grid{grid-template-columns:1fr}.district-grid{grid-template-columns:1fr 1fr}
  .quickline .shell{grid-template-columns:1fr}.quick-item{border-right:0;border-bottom:1px solid var(--line-soft);margin-right:0}
  .prose p{font-size:17.5px}.event-row{grid-template-columns:64px 1fr}.event-row .act{grid-column:2;align-items:flex-start;flex-direction:row}
  .byline .dates{margin-left:0;text-align:left;width:100%}.form .grid2{grid-template-columns:1fr}.event-facts{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr;gap:26px}.archive-month{grid-template-columns:1fr;gap:10px}.gallery{grid-template-columns:1fr 1fr}
  .lightbox .lb-stage{padding:52px 12px 12px}.lb-btn{width:38px;height:38px}.lb-prev{left:6px}.lb-next{right:6px}.weather-now .temp{font-size:31px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
@media print{.topbar,.mainnav,.ticker,.share,.sidebar,footer,.drawer,.readbar,.cta-row,.ad-row,.mitmachen,.markt,.menu-btn,.mast-search,.search-btn{display:none!important}.shell{max-width:none}body{background:#fff;color:#000}a{color:#000;text-decoration:none}.article-body{font-size:11.5pt}.mast-meta,.mast-left{display:none}.brandline i{background:none;height:0;border-top:2px solid #000}.brandline{color:#000}.prose p,.info-prose p,.info-prose li{font-size:11.5pt;line-height:1.5}}


/* KBS / Ordin 23.09.2026 – Publish-Guide */
.mainnav{position:relative}

.publish-guide{
  margin:0 0 32px;padding:24px;border:1px solid var(--line,#deddd9);background:#faf9f6
}
.publish-guide__head{max-width:720px}
.publish-guide__head .eyebrow{display:block;color:var(--red,#971725);font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.publish-guide__head h2{margin:5px 0 6px;font-family:var(--serif);font-size:clamp(28px,3vw,38px);line-height:1.08}
.publish-guide__head p{margin:0;color:var(--muted,#6e6962);line-height:1.55}
.publish-guide__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px}
.publish-card{
  min-height:164px;padding:18px;display:flex;flex-direction:column;justify-content:space-between;
  border:1px solid var(--line,#deddd9);background:#fff;text-decoration:none
}
.publish-card:hover,.publish-card:focus-visible{border-color:var(--red,#971725);outline:none}
.publish-card__visual{width:74px;height:58px;display:flex;align-items:center;color:var(--red,#971725)}
.publish-card__visual svg{width:64px;height:48px}
.publish-card__copy{display:flex;flex-direction:column;gap:5px}
.publish-card__copy strong{font-family:var(--serif);font-size:21px;line-height:1.1}
.publish-card__copy small{font-size:12.5px;line-height:1.45;color:var(--muted,#6e6962)}
@media(max-width:900px){.publish-guide__grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.publish-guide{padding:18px}.publish-guide__grid{grid-template-columns:1fr}.publish-card{min-height:135px}}

/* ---- v19.css ---- */
/* 18.09.: --red und --red-dark standen hier auf #806224 und #70551e, also auf
   Oliv statt auf dem Marken-Bordeaux #971725 aus style.css. Dadurch erschienen
   Ressortlabels teils oliv, teils bordeaux - dieselbe Klasse in zwei Farben.
   Die Ueberschreibungen sind entfernt; die Marke kommt aus style.css.
   --red-surface bleibt bewusst stehen, es faerbt Flaechen, nicht Text. */
/* V19 — A local newspaper with a contemporary magazine rhythm. */
/* 18.09.: v19 hat die Goldtokens aus style.css neu gesetzt und damit die dortige
   Entbeigung wieder ausgehebelt. Jetzt ziehen sie mit: Bordeaux als Markenakzent,
   neutrales Grau als Ruhezone. Kontrast #971725 auf --paper/#fff 8,52:1,
   auf --gold-wash #f4f4f3 7,74:1. --gold-deep bleibt bewusst ungesetzt und faellt
   auf den Wert aus style.css (#70111b) zurueck. */
:root{--paper:#fff;--card:#fff;--ink:#16181b;--ink-soft:#34373b;--muted:#686b70;--line:#dfe1e3;--stage:#111315;--stage-2:#202327;--gold:#971725;--gold-text:#971725;--gold-wash:#f4f4f3;--red-surface:#17191c;--radius:0;--shell:1320px}
body{background:var(--paper);color:var(--ink)}
h1,h2,h3,h4{font-family:var(--sans);letter-spacing:-.035em;line-height:1.15;text-wrap:pretty}
.shell{padding-inline:32px}.section{padding-top:48px}.eyebrow,.kicker{font-size:12px;letter-spacing:.085em;font-weight:750;line-height:1.45}.kicker .dist{font-size:12px;letter-spacing:0;font-weight:500;color:var(--muted)}
.meta{font-size:12px;color:var(--muted);line-height:1.5;gap:12px}.dek{color:var(--ink-soft)}
.topbar{border-bottom:1px solid #2a2c30;background:#111315}.topbar .shell{min-height:32px}.topbar .date,.toplinks{font-size:12px}.topbar .stand{display:none}.toplinks a{min-height:32px}.toplinks .wa::before{display:none}
.masthead{padding:26px 0 25px;background:#111315;border:0}.mast-inner{grid-template-columns:1fr auto 1fr}.logo img{width:320px;height:auto;max-height:none}.mast-left{font-size:12px;line-height:1.75;color:#c0c2c4}.mast-left b{font-size:14px;color:#fff;letter-spacing:.02em}.mast-right{gap:12px}.mast-search{display:flex;max-width:226px;border-bottom:1px solid #575a60}.mast-search input{width:180px;background:transparent;border:0;outline-offset:4px;font-size:14px;color:#fff;padding:9px 0}.mast-search button{color:#fff;padding:8px}.mast-search svg{width:18px;height:18px}.mast-meta{display:none}.mast-line{display:none}
.mainnav{background:#fff;border-bottom:1px solid var(--line);box-shadow:0 4px 14px #00000003}.navscroll{gap:24px}.navscroll a{padding:16px 0 14px;font-size:14px;letter-spacing:0;text-transform:none;color:var(--ink);font-weight:650}.navscroll a[aria-current]{border-bottom:3px solid var(--gold);color:var(--ink)}.nav-search{font-size:13px}.navrow{gap:24px}.ticker{background:#a41924}.ticker .tag{font-size:12px;letter-spacing:.02em}.ticker a{font-size:14px}
.front-edition{display:flex;justify-content:space-between;gap:16px;padding-top:24px;padding-bottom:18px;color:var(--muted);font-size:12px}.front-edition>span:first-child{color:var(--gold-text);font-weight:750;letter-spacing:.1em}.media{border-radius:0;background:#eef0f1}.media img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.media.contain{background:#f1f2f3}.media.contain img{object-fit:contain;padding:0}.media .badge{font-size:12px;letter-spacing:0;font-weight:500;padding:4px 7px;background:#16181bbd;color:#fff;bottom:8px;left:8px;top:auto;border:0;max-width:calc(100% - 16px)}
.newswire{margin-top:30px;display:grid;grid-template-columns:160px repeat(3,minmax(0,1fr));gap:20px;padding-block:18px;border-block:1px solid var(--line)}.newswire-label{display:flex;flex-direction:column;gap:5px}.newswire-label b{font-size:18px;letter-spacing:-.03em}.newswire>a{border-left:1px solid var(--line);padding-left:20px;display:flex;flex-direction:column;gap:5px;font-size:14px;line-height:1.4;font-weight:650}.newswire time{font-size:12px;color:var(--muted);font-weight:500;font-variant-numeric:tabular-nums}
.desk{padding-top:55px;padding-bottom:0}.desk-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;border-top:3px solid var(--ink);padding-top:17px;margin-bottom:26px}.desk-heading h2{font-size:32px;font-weight:760;margin-top:4px;letter-spacing:-.045em}.desk-heading .eyebrow{font-size:12px}.desk-more{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:600;line-height:1.4}.desk-more svg,.stream-all svg,.service-links svg,.board-link svg,.agenda-feature a svg,.reader-note a svg,.score-result a svg{width:17px;height:17px;flex:none}.desk-more:after{display:none}
.front-stream-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:48px}.front-stream{min-width:0}.feed-row{display:grid;grid-template-columns:210px minmax(0,1fr);gap:24px;padding:22px 0;border-bottom:1px solid var(--line);align-items:start}.feed-row:first-child{padding-top:0}.feed-row h3{font-family:var(--sans);font-size:23px;font-weight:740;line-height:1.22;letter-spacing:-.03em;margin:6px 0 7px}.feed-row .media{aspect-ratio:1.44}.feed-row .media .badge{display:none}.feed-row .dek{font-size:15px;line-height:1.5;margin:0 0 10px}.feed-row .meta{margin:0}.feed-row .creditline{font-size:12px;margin-top:8px;line-height:1.4;color:var(--muted)}.feed-row .creditline .src{display:none}.feed-row.no-image{grid-template-columns:minmax(0,1fr)}
.stream-all{display:flex;justify-content:space-between;padding:20px 0;font-size:14px;font-weight:700}.service-intro{padding-bottom:20px}.service-intro h2{font-family:var(--serif);font-size:42px;font-weight:450;line-height:1.05;letter-spacing:-.035em;margin:12px 0}.service-intro p{font-size:14px;color:var(--muted)}.aside-label{font-size:15px;border-block:1px solid var(--line);padding-block:12px}.service-links{margin-top:24px;border-top:1px solid var(--line)}.service-links a{display:flex;justify-content:space-between;gap:14px;font-size:14px;font-weight:600;border-bottom:1px solid var(--line);padding:15px 0}
.agenda-list{min-width:0}.agenda-row{display:grid;grid-template-columns:48px minmax(0,1fr) 24px;gap:16px;align-items:start;padding:18px 0;border-bottom:1px solid var(--line)}.agenda-date{border:1px solid var(--line);min-height:59px;display:flex;align-items:center;flex-direction:column;justify-content:center;color:var(--ink)}.agenda-date b{font-size:25px;font-weight:650;letter-spacing:-.04em;line-height:1.1}.agenda-date span{font-size:12px;text-transform:uppercase;letter-spacing:.03em}.agenda-row h3{font-size:18px;letter-spacing:-.02em;line-height:1.3;margin:4px 0 6px}.agenda-row p{font-size:13px;color:var(--muted);line-height:1.5}.calendar-save{display:flex;align-items:center;justify-content:center;min-height:40px;min-width:24px;color:var(--muted)}.calendar-save svg{width:19px;height:19px}
/* 18.09.: die eigene Tabellenzeile war beige (#f4efdf) mit Goldbraun (#544018),
   jetzt neutrale Ruhezone mit Bordeaux als Markierung, 7,74:1. */
.sportboard{border:1px solid var(--line);min-width:0}.sportboard-head{background:#181c1b;color:#fff;font-size:12px;padding:12px 18px;display:flex;justify-content:space-between}.score-result{padding:18px;text-align:center;background:#f5f7f5}.score-result>span{font-size:12px;color:var(--muted)}.score-result>div{display:grid;grid-template-columns:1fr 80px 1fr;align-items:center;gap:10px;margin:14px 0}.score-result b{font-size:15px;line-height:1.3}.score-result strong{font-size:37px;line-height:1;letter-spacing:-.05em;font-variant-numeric:tabular-nums}.score-result a{font-size:12px;display:inline-flex;align-items:center;gap:6px}.sport-table{padding:18px}.sport-table-title{display:flex;justify-content:space-between;gap:10px;font-size:12px;padding-bottom:8px}.sport-table-title span{color:var(--muted)}.sport-table table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}.sport-table th,.sport-table td{text-align:left;border-bottom:1px solid var(--line);padding:8px 5px}.sport-table thead th{font-size:12px;color:var(--muted);font-weight:500}.sport-table tbody th{font-weight:550}.sport-table .home-team{background:#f4f4f3;color:#971725}.next-fixture{padding:0 18px 16px}.next-fixture .eyebrow{font-size:12px;letter-spacing:0}.next-fixture>b{display:block;font-size:15px;margin-top:7px}.board-link{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:14px 18px;font-size:14px;font-weight:600}.sport-editorial h3{font-size:34px;margin:12px 0}.sport-editorial p{font-size:17px;margin-bottom:16px}
.agenda-desk{background:#f3f5f5;margin-top:54px;padding:30px 0 38px}.agenda-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.agenda-feature{padding-top:18px}.agenda-feature h3{font-family:var(--serif);font-size:clamp(36px,4vw,58px);font-weight:450;letter-spacing:-.04em;line-height:1.06;margin:22px 0 30px}.agenda-feature a{display:flex;align-items:center;gap:16px;font-size:14px;font-weight:600}.agenda-layout>.agenda-list .agenda-row:first-child{padding-top:0}.agenda-layout .agenda-row h3{font-size:20px}
.district-channels{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-block:1px solid var(--line)}.district-channels a{position:relative;padding:23px 18px 25px;transition:background .2s}.district-channels a:first-child{padding-left:0}.district-channels a+a{border-left:1px solid var(--line)}.district-channels a>span{font-size:12px;color:var(--gold-text);font-weight:700}.district-channels h3{font-size:23px;letter-spacing:-.04em;margin:16px 0 9px}.district-channels small{font-size:12px;color:var(--muted)}.district-channels svg{width:18px;height:18px;position:absolute;bottom:24px;right:16px}.district-channels a:hover{background:#f7f7f5;color:var(--ink)}
.reader-note{margin-top:65px;margin-bottom:55px;display:flex;justify-content:space-between;align-items:center;gap:25px;border-block:1px solid var(--line);padding-block:32px}.reader-note h2{font-family:var(--serif);font-size:38px;font-weight:450;margin:9px 0}.reader-note p{font-size:15px;color:var(--muted)}.reader-note>a{display:flex;gap:25px;align-items:center;background:var(--ink);color:#fff;padding:15px 20px;font-size:14px;font-weight:600;flex-shrink:0}
/* The same hierarchy on archive, article, service and search routes. */
.section-head{border-top:2px solid var(--ink);padding-top:16px;margin-bottom:20px}.section-head h2{font-size:27px}.section-head .more{font-size:14px}.section-head .more:after{content:''}.brandline.thin{display:none}.page-head h1,.article-head h1{font-family:var(--sans);font-weight:760;letter-spacing:-.045em;line-height:1.08}.page-head h1{font-size:clamp(32px,4vw,54px)}.article-head h1{max-width:1000px;font-size:clamp(32px,4vw,55px)}.article-head .dek{font-size:20px;line-height:1.5;max-width:890px}.article-head{padding-block:28px 32px}.article-grid{grid-template-columns:minmax(0,830px) minmax(0,300px);gap:50px}.article-body{min-width:0}.prose{font-family:var(--serif);font-size:21px;line-height:1.72;max-width:720px}.prose h2,.prose h3{font-family:var(--sans);font-size:27px;margin-top:1.8em;letter-spacing:-.025em}.art-figure figcaption{font-size:12px;line-height:1.6}.facts{background:#f6f7f7;border:0;border-left:3px solid var(--gold);padding:24px;font-size:16px}.facts h2{font-family:var(--sans);font-size:20px}.byline{border-block:1px solid var(--line);padding:16px 0}.byline .dates{font-size:12px}.source-box{font-size:14px;line-height:1.7;background:#f6f7f7;border-left:3px solid var(--gold)}.author-box{border-block:1px solid var(--line);background:none}.sidebox{box-shadow:none;border-radius:0;border:0;border-top:2px solid var(--ink);padding:18px 0;margin-bottom:28px;background:none}.sidebox h3{font-family:var(--sans);font-size:19px}.sidebox.dark{background:var(--ink);padding:22px}.sidebar{gap:0}.feed-lead h2{font-family:var(--sans);font-size:34px;letter-spacing:-.035em}.feed-lead .media{aspect-ratio:1.9}.info-prose{font-size:17px;line-height:1.7}.place-grid{gap:40px}.place-intro{padding-top:24px}.place-aside .kurz-list{display:none}.event-card .ev-media{display:none}.events-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.event-card{border:1px solid var(--line);padding:15px}.event-body{padding:0}.event-row h3{font-size:22px}.event-row{border-radius:0}.club-card h3,.news-card h3,.biz-card h3{font-family:var(--sans);font-size:22px}.form-card{box-shadow:none;border:1px solid var(--line);border-radius:0}.form-card label,.field label{font-size:14px}.ad-slot:empty{display:none}
footer{background:#111315;color:#c5c8cc;padding-top:45px;border-top:3px solid var(--gold)}.foot-brand img{width:220px;height:auto}.foot-brand p{font-size:13px;line-height:1.7}.foot-grid{gap:30px}.foot-grid h3{font-family:var(--sans);font-size:14px;color:#fff;letter-spacing:0}.foot-grid a{font-size:13px;line-height:1.5}.foot-bottom{font-size:12px;border-color:#34363b;padding-top:20px;padding-bottom:24px}.foot-bottom a{font-size:12px}.reading-progress{height:3px;position:fixed;top:0;left:0;width:100%;transform-origin:left;transform:scaleX(0);background:var(--gold);z-index:70;pointer-events:none}.save-story{display:inline-flex;gap:6px;align-items:center;min-height:36px;font-size:13px;border:1px solid var(--line);padding:6px 10px}.save-story[aria-pressed=true]{background:var(--gold-wash);border-color:var(--gold)}
@media(hover:hover){.feed-row h3 a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}}
@media(max-width:1100px){.shell{padding-inline:24px}.navscroll{gap:20px}.navscroll a{font-size:13px}.mast-left{max-width:180px}.logo img{width:280px}.mast-search{max-width:190px}.mast-search input{width:150px}.feed-row{grid-template-columns:170px minmax(0,1fr);gap:20px}.feed-row h3{font-size:21px}.front-stream-layout{grid-template-columns:minmax(0,1fr) 280px;gap:28px}.district-channels h3{font-size:20px}.article-grid{grid-template-columns:minmax(0,1fr) 270px;gap:30px}}
@media(max-width:900px){.toplinks .svc,.toplinks .opt-hide{display:none}.mast-left{display:none}.mast-inner{grid-template-columns:1fr auto 1fr}.menu-btn{display:block;justify-self:start;border:0;padding:7px 0;font-size:24px}.logo img{width:270px}.mast-right .search-btn{display:grid;border:0;border-radius:0}.mast-search{display:none}.front-stream-layout{grid-template-columns:minmax(0,1fr)}.district-channels{grid-template-columns:repeat(3,minmax(0,1fr))}.district-channels a:nth-child(4){border-left:0;border-top:1px solid var(--line);padding-left:0}.district-channels a:nth-child(5){border-top:1px solid var(--line)}.district-channels h3{font-size:24px}.agenda-layout{gap:35px}.article-grid{grid-template-columns:minmax(0,1fr)}.article-grid>.sidebar{display:none}.article-body,.prose{max-width:100%}.front-edition{font-size:12px}}
@media(max-width:640px){
 .shell{padding-inline:18px}.topbar .shell{min-height:27px}.topbar .date{font-size:12px}.toplinks{gap:12px}.toplinks a{font-size:12px;min-height:27px}.toplinks .wa,.toplinks .svc,.toplinks .opt-hide{display:none}.masthead{padding:20px 0 18px}.logo img{width:224px;height:auto}.mast-inner{gap:10px;grid-template-columns:32px minmax(0,1fr) 32px}.search-btn{width:32px;height:36px}.menu-btn{font-size:23px;min-height:36px}.mast-right{width:32px}.navscroll{gap:22px}.navscroll a{font-size:14px;padding:13px 0 11px}.nav-search{display:none}.front-edition{padding-top:16px;padding-bottom:14px;font-size:12px;gap:9px}.front-edition>span:last-child{font-size:12px;text-align:right;max-width:158px}.front-edition>span:first-child{font-size:12px;letter-spacing:.04em;max-width:130px}
 .newswire{display:grid;grid-template-columns:minmax(0,1fr);gap:0;margin-top:24px;padding-block:0}.newswire-label{display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:14px 0}.newswire-label b{font-size:16px}.newswire>a{border-left:0;border-top:1px solid var(--line);padding:12px 0;display:grid;grid-template-columns:54px minmax(0,1fr);gap:12px;font-size:14px;font-weight:600}.newswire time{padding-top:1px;font-size:12px}
 .desk{padding-top:35px}.desk-heading{gap:18px;padding-top:12px;margin-bottom:20px;border-top-width:2px}.desk-heading h2{font-size:27px;letter-spacing:-.04em;margin-top:5px}.desk-heading .eyebrow{font-size:12px;letter-spacing:.045em}.desk-more{font-size:12px;gap:6px;max-width:104px;line-height:1.4;flex-shrink:0;justify-content:flex-end;text-align:right}.desk-more svg{width:15px;height:15px}.front-stream-layout{gap:0}.feed-row{grid-template-columns:120px minmax(0,1fr)!important;gap:15px;padding:18px 0}.feed-row .feed-img{grid-column:1;grid-row:1}.feed-row .feed-copy{grid-column:2;grid-row:1}.feed-row .media{width:120px;height:86px;aspect-ratio:auto}.feed-row .media img{min-height:0}.feed-row h3{font-size:17px;line-height:1.27;font-weight:730;letter-spacing:-.025em;margin:4px 0 7px}.feed-row .kicker{font-size:12px;letter-spacing:.03em}.feed-row .kicker .dist{display:none}.feed-row .dek{font-size:13px;line-height:1.45;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin-bottom:7px}.feed-row .meta{font-size:12px;gap:5px}.feed-row .meta .readtime,.feed-row .fbadge,.feed-row .creditline{display:none}.feed-row.no-image{grid-template-columns:1fr!important}.feed-row.no-image .feed-copy{grid-column:1}.stream-all{font-size:14px;padding-block:18px}.sport-table th,.sport-table td{font-size:13px}.sportboard-head{font-size:12px}.next-fixture .eyebrow{font-size:12px}.score-result strong{font-size:40px}
 .agenda-desk{margin-top:34px;padding-top:22px;padding-bottom:26px}.agenda-layout{grid-template-columns:minmax(0,1fr);gap:22px}.agenda-feature{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:0}.agenda-feature>.eyebrow{display:none}.agenda-feature h3{font-size:30px;line-height:1.05;margin:0}.agenda-feature a{max-width:120px;font-size:12px;line-height:1.5;gap:8px}.agenda-layout .agenda-row{padding:16px 0;grid-template-columns:44px minmax(0,1fr) 24px;gap:14px}.agenda-layout .agenda-row h3{font-size:17px}.agenda-row p{font-size:12px}.agenda-date b{font-size:26px}.calendar-save{min-height:44px}.district-channels{grid-template-columns:repeat(2,minmax(0,1fr))}.district-channels a{padding:17px 12px 19px}.district-channels a:nth-child(odd){border-left:0;padding-left:0}.district-channels a:nth-child(even){border-left:1px solid var(--line);padding-left:16px}.district-channels a:nth-child(n+3){border-top:1px solid var(--line)}.district-channels h3{font-size:23px;margin:10px 0 8px}.district-channels svg{width:16px;height:16px;right:12px;bottom:19px}.district-channels small{font-size:12px}
 .reader-note{margin-top:36px;margin-bottom:32px;align-items:flex-start;flex-direction:column;gap:22px;padding-block:25px}.reader-note h2{font-size:34px}.reader-note p{font-size:15px}.reader-note>a{font-size:14px;padding:13px 18px}.section{padding-top:30px}.page-head{padding-top:25px;padding-bottom:24px}.page-head h1{font-size:34px}.page-head p{font-size:16px}.feed-lead h2{font-size:28px}.feed-lead .media{aspect-ratio:1.7}.content-grid{grid-template-columns:minmax(0,1fr)}.content-grid>.sidebar{display:none}.article-head h1{font-size:33px;letter-spacing:-.04em}.article-head .dek{font-size:18px}.article-head .kick-row{margin-top:17px}.byline{gap:12px}.byline .dates{width:100%;font-size:12px}.article-grid{gap:0}.prose{font-size:20px;line-height:1.65}.prose h2{font-size:25px}.prose h3{font-size:22px}.facts{padding:20px;font-size:16px}.facts h2{font-size:19px}.art-figure figcaption{font-size:12px;display:block}.art-figure figcaption>span{display:block}.source-box{font-size:14px;padding:18px}.source-box a{overflow-wrap:anywhere}.section-head h2{font-size:25px}.events-grid{grid-template-columns:minmax(0,1fr)}.event-row{grid-template-columns:45px minmax(0,1fr);gap:14px}.event-row .act{grid-column:2;justify-content:flex-start;gap:16px}.event-row h3{font-size:20px}.event-row .ev-desc{font-size:14px}.place-grid{grid-template-columns:minmax(0,1fr)}.place-aside{display:none}.foot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.foot-brand{grid-column:1/-1}.foot-brand img{width:200px}.foot-brand p{font-size:13px;max-width:330px}.foot-grid h3{font-size:14px}.foot-grid a{font-size:13px}.foot-bottom{display:flex;flex-direction:column;align-items:flex-start;gap:12px;font-size:12px}.foot-bottom div{line-height:1.7}.crumbs{font-size:12px}.form-card{padding:20px}.form-grid{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:360px){.shell{padding-inline:14px}.logo img{width:202px}.feed-row{grid-template-columns:108px minmax(0,1fr)!important;gap:12px}.feed-row .media{width:108px;height:80px}.front-edition{font-size:12px}.district-channels h3{font-size:21px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
@media print{.topbar,.mainnav,.share,.reader-note,.reading-progress,.save-story{display:none!important}.masthead{background:white}.logo img{filter:none}.prose{color:#000;font-size:12pt}.article-head h1{font-size:28pt}.shell{padding:0}.article-grid{display:block}.art-figure{break-inside:avoid}footer{display:none}}

/* 18.09.: Hinweisband war beige (#f3ecdd) mit Goldbraun (#53451e),
   jetzt neutrales Grau mit Anthrazit, 10,31:1. */
.review-notice{padding-block:12px;background:#f4f4f3;color:var(--ink-soft);font:500 13px/1.5 var(--sans)}.weather-optin{font-size:13px;line-height:1.6}.weather-optin button{border:1px solid var(--line);padding:8px 14px;margin-top:8px}.mast-pulse{display:none}

.lead-credit{font:400 12px/1.5 var(--sans);color:var(--muted);text-align:right;padding-top:5px}.agenda-row{grid-template-columns:52px minmax(0,1fr) 24px}

/* ---- v20.css ---- */
/* V20: shared editorial tokens. Legacy selectors consume this scale. */
:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--brand:#9b7a37;--brand-dark:#735820;--brand-light:#f5f0e6;--ink:#17191b;--text:#34383b;--text-muted:#65696c;--surface:#fff;--surface-soft:#f5f6f6;--border:#e0e2e3;--alert:#a22630;--success:#25684a;--background:#fff;--shell:1360px;--gutter:40px;--section-gap:88px;--radius:6px;--gold:var(--brand);--gold-text:var(--brand-dark);--gold-wash:var(--brand-light);--line:var(--border);--muted:var(--text-muted);--paper:var(--background);--ease:cubic-bezier(.22,1,.36,1)}
html{scroll-padding-top:76px}body{color:var(--ink);font-family:var(--sans);background:var(--background)}*,*::before,*::after{box-sizing:border-box}img{max-width:100%}svg{width:20px;height:20px}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}a,button{transition:color .18s,background-color .18s,border-color .18s}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--brand-dark);outline-offset:4px}button{cursor:pointer}button:disabled{cursor:default}[hidden]{display:none!important}.shell{width:100%;max-width:var(--shell);padding-inline:var(--gutter);margin-inline:auto}.section{padding-top:var(--space-12)}.desk{padding-top:var(--section-gap)}h1,h2,h3,h4{letter-spacing:-.022em;text-wrap:balance}h1{line-height:1.06}h2{line-height:1.12}h3{line-height:1.2}.eyebrow,.kicker{font-size:12px;line-height:1.5;letter-spacing:.07em;font-weight:650}.meta,.count-line{font-size:13px;line-height:1.55}.meta{gap:12px}.kicker .dist{font-size:12px}.media{overflow:hidden;border-radius:var(--radius);aspect-ratio:3/2;background:var(--surface-soft)}.media img{width:100%;height:100%;object-fit:cover;transition:transform .35s var(--ease)}.media.contain img{object-fit:contain}.media .badge{font-size:11px;border-radius:3px;letter-spacing:0;max-width:calc(100% - 16px)}
/* Brand and navigation */
.topbar{background:#101214;border-bottom:1px solid #313335;color:#c8c9cb}.topbar .shell{height:32px;min-height:32px;display:flex;justify-content:space-between;align-items:center}.topbar .date,.toplinks a{font-size:12px;font-weight:400}.toplinks{display:flex;gap:24px}.toplinks a{min-height:32px;display:flex;align-items:center}.masthead{background:#111315;padding:0;height:96px}.mast-inner{height:100%;display:flex;align-items:center;gap:40px}.logo{display:block;flex:0 0 auto}.logo img{width:260px;height:auto;display:block}.brand-subline{font-size:13px;line-height:1.55;color:#c9cbcd;margin:0;padding-left:32px;border-left:1px solid #46484b}.mast-actions{margin-left:auto;display:flex;gap:8px;align-items:center}.mast-search{width:250px;display:flex;border-bottom:1px solid #5b5d60;max-width:none}.mast-search input{width:100%;min-width:0;border:0;border-radius:0;background:transparent;color:white;font-size:14px;padding:10px 0;min-height:44px}.mast-search input::placeholder{color:#b5b7ba}.mast-search button{width:44px;height:44px;background:none;border:0;color:white}.mobile-search,.mast-actions .menu-btn{display:none}.mainnav{position:sticky;top:0;z-index:50;background:white;box-shadow:none;border-bottom:1px solid var(--border)}.navrow{height:54px;display:flex;gap:24px;align-items:center}.navscroll{display:flex;gap:26px;overflow-x:auto;scrollbar-width:none;min-width:0;align-items:center;flex:1}.navscroll a{min-height:54px;padding:17px 0 13px;white-space:nowrap;font-size:14px;font-weight:600;border-bottom:2px solid transparent;transition:color .18s,border-color .18s}.navscroll a:hover{color:var(--brand-dark);border-bottom-color:var(--brand)}.navscroll a[aria-current]{border-bottom:2px solid var(--brand);color:var(--ink)}.compact-brand,.compact-search{display:none}.is-scrolled .compact-brand{display:block;flex:0 0 130px}.compact-brand img{width:130px;height:auto;display:block}.is-scrolled .compact-search{display:flex;align-items:center;justify-content:center;flex:0 0 44px;height:44px}.is-scrolled .navscroll{gap:20px}.is-scrolled .navscroll a{font-size:13px}.drawer .panel{background:#111315;color:#fff;width:min(460px,100%);padding:24px;overflow-y:auto}.panel-top{display:flex;align-items:center;justify-content:space-between}.panel-top img{width:190px;height:auto}.panel-top button{height:44px;width:44px;font-size:30px;color:white;background:none;border:0}.drawer-group{border-top:1px solid #373a3d;padding:16px 0;display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.drawer-group .grp{grid-column:1/-1;font-size:12px;color:#c7ae77;margin:8px 0}.drawer-group a{font-size:15px;color:white;min-height:44px;display:flex;align-items:center;border:0;padding:8px 0}.drawer-group a[aria-current]{color:#dfc181}.ticker{background:#fff;border-bottom:1px solid var(--border);color:var(--ink)}.ticker .tag{color:var(--alert);background:none}.ticker a{color:var(--ink)}.secondary-lead{display:block;padding-top:16px}.secondary-lead .media{width:100%;height:auto;aspect-ratio:2.2}.secondary-lead>div{padding-top:12px}.secondary-lead h2{font-size:25px;line-height:1.18;margin:6px 0 12px}.desk-heading{border-top:2px solid var(--ink);padding-top:16px;display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:32px}.desk-heading h2{font-size:36px;letter-spacing:-.022em;margin:8px 0 0}.desk-heading .desk-more{font-size:14px;white-space:nowrap;padding:8px 0;color:var(--brand-dark)}.newswire{display:grid;grid-template-columns:160px repeat(3,minmax(0,1fr));gap:24px;margin-top:40px;border-block:1px solid var(--line);padding-block:20px}.newswire-label{display:flex;flex-direction:column;gap:4px}.newswire-label b{font-size:18px}.newswire>a{border-left:1px solid var(--line);padding-left:24px;font-size:15px;line-height:1.4;font-weight:600}.newswire time{display:block;font-size:12px;color:var(--brand-dark);margin-bottom:6px}.today-grid{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:64px}.agenda-row{display:grid;grid-template-columns:56px minmax(0,1fr) 44px;gap:24px;align-items:start;padding:20px 0;border-bottom:1px solid var(--line)}.agenda-row:first-child{padding-top:0}.agenda-date{background:none;color:var(--ink);border-right:1px solid var(--line);border-radius:0;display:flex;flex-direction:column}.agenda-date b{font-size:32px;line-height:1;font-weight:600}.agenda-date span{font-size:12px;text-transform:uppercase;color:var(--brand-dark);margin-top:6px}.agenda-row h3{font-size:21px;margin:5px 0 7px}.agenda-row p{font-size:14px;line-height:1.5;color:var(--muted)}.calendar-save{width:44px;height:44px;display:grid;place-items:center}.service-editorial{border-left:1px solid var(--line);padding-left:32px}.service-editorial h3{font-size:28px;margin:12px 0 24px}.service-editorial>a{display:block;padding:16px 0;border-top:1px solid var(--line);font-size:15px}.sports-module{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.25fr);border-block:1px solid var(--line)}.score-result,.fixture-panel{padding:24px;min-width:0;text-align:center}.score-result{padding-left:0}.score-result>div{display:flex;flex-direction:column;gap:6px;margin:20px 0}.score-result strong{font-size:64px;line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.score-result b{font-size:18px}.score-result a,.fixture-panel>a{font-size:13px;color:var(--brand-dark)}.fixture-panel{border-inline:1px solid var(--line)}.fixture-panel time{display:block;font-size:34px;font-weight:600;line-height:1.2;margin-top:24px}.fixture-panel time span{display:block;font-size:14px;margin-top:4px;color:var(--muted);font-weight:400}.fixture-panel h3{font-size:21px;margin:18px 0}.fixture-panel small{display:block;font-size:12px;font-weight:400;color:var(--muted);margin:6px 0}.sport-table{padding:24px 0 24px 24px}.sport-table-title{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;font-size:14px}.sport-table-title span{font-size:12px;color:var(--muted)}.sport-table table{width:100%;border-collapse:collapse}.sport-table th,.sport-table td{font-size:13px;text-align:left;line-height:1.4;padding:10px 6px;border-bottom:1px solid var(--line)}.sport-table th{font-weight:500}.sport-table thead th{font-size:12px;color:var(--muted)}.sport-table .home-team{background:var(--brand-light)}.sports-reports{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:32px}.district-channels{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-block:1px solid var(--line)}.district-channels a{padding:24px 20px;border-left:1px solid var(--line);min-width:0}.district-channels a:first-child{padding-left:0;border:0}.district-channels h3{font-size:24px;margin:0 0 10px}.district-channels small{font-size:13px;color:var(--muted)}.reader-note{margin-top:var(--section-gap);margin-bottom:var(--section-gap);padding-block:32px;border-block:1px solid var(--ink);background:none;display:flex;justify-content:space-between;gap:32px;align-items:center}.reader-note h2{font-size:32px;margin:8px 0}.reader-note p{font-size:16px;margin:0}.reader-note>a{font-size:15px;padding:12px 0;background:none;color:var(--brand-dark);border-bottom:1px solid var(--brand)}
/* Articles, archives and secondary pages */
.page-head{padding:32px 0 0;border:0}.page-head h1{font-size:44px;line-height:1.1;max-width:950px;margin:12px 0 16px}.page-head p{font:400 16px/1.6 var(--sans);max-width:740px}.page-head .count-line{font-size:13px;margin-top:20px}.crumbs{font-size:12px;line-height:1.5;margin-bottom:24px}.content-grid{grid-template-columns:minmax(0,1fr) 300px;gap:48px}.feed-lead{display:grid;grid-template-columns:45% minmax(0,1fr);gap:28px;padding-bottom:32px;border-bottom:1px solid var(--line);margin-bottom:0}.feed-lead .media{aspect-ratio:4/3}.feed-lead .lead-copy{padding:0}.feed-lead h2{font-size:30px;line-height:1.12;margin:8px 0 14px}.feed-lead .dek{font:400 16px/1.55 var(--sans)}.feed-row{grid-template-columns:240px minmax(0,1fr);gap:28px;padding:28px 0}.feed-row .media{aspect-ratio:4/3}.feed-row h3{font-size:24px;line-height:1.2;margin:8px 0 12px}.feed-row .dek{font-size:16px;line-height:1.55}.feed-row .creditline{display:none}.sidebox{border-top:1px solid var(--ink);margin-bottom:32px;box-shadow:none;background:none}.sidebox h3{font-size:16px;letter-spacing:0;border:0;padding-top:16px}.sidebox .p{font-size:15px;line-height:1.6}.article-head{padding:32px 0}.article-head .shell{max-width:1100px}.article-head h1{font-size:56px;line-height:1.07;max-width:950px;letter-spacing:-.025em;margin:16px 0 20px}.article-head .dek{font:400 20px/1.55 var(--sans);max-width:820px;font-style:normal}.byline{margin-top:28px;padding:20px 0;border-block:1px solid var(--line);display:flex;justify-content:flex-start;gap:16px}.byline .dates{margin-left:24px;font-size:13px;text-align:left}.byline .who{font-size:14px}.byline .avatar,.author-box .avatar{background:var(--surface-soft);color:var(--brand-dark);border-radius:4px;flex:0 0 40px}.article-grid{max-width:1160px;grid-template-columns:minmax(0,720px) minmax(0,280px);gap:48px}.article-body{min-width:0}.article-body .prose{font:400 19px/1.65 var(--serif);max-width:720px}.prose p{margin:0 0 24px}.prose h2{font:650 32px/1.18 var(--sans);margin:40px 0 20px}.prose h3{font:650 24px/1.2 var(--sans);margin:32px 0 16px}.prose a,.info-prose a{text-decoration:underline;text-underline-offset:3px}.art-figure{margin:0 0 32px}.art-figure .media{aspect-ratio:3/2}.art-figure figcaption{font-size:12px;line-height:1.6;display:block;padding-top:10px}.art-figure figcaption>span{display:block}.source-box{background:var(--surface-soft);border:0;border-left:2px solid var(--brand);border-radius:0;font-size:14px;line-height:1.7;padding:24px;margin:32px 0}.source-box b{display:block;font-size:18px;margin-bottom:12px}.source-box a{overflow-wrap:anywhere}.author-box{background:none;border-block:1px solid var(--line);padding:24px 0}.author-box p{font-size:14px;line-height:1.65}.facts{box-shadow:none;border:0;border-left:2px solid var(--brand);border-radius:0;background:var(--brand-light);padding:24px}.facts h2{font-size:20px}.share{position:static;display:flex;flex-direction:row;margin:0 0 20px;gap:8px}.share a,.share button{border-radius:4px;min-width:44px;min-height:44px;display:grid;place-items:center}.article .cta-row{margin:24px 0}.cards-3{gap:32px}.news-card{border:0;box-shadow:none;background:none}.news-card h3{font-size:23px}.news-card .card-copy{padding:16px 0}.place-intro{padding:32px 0 0}.place-intro details{border-block:1px solid var(--line);padding:16px 0}.place-intro summary{font-size:15px;cursor:pointer}.place-grid{margin-top:24px}.info-prose{font:400 18px/1.65 var(--serif);max-width:760px}.info-prose h2{font-size:28px;margin:32px 0 16px}.narrow{max-width:800px;margin-inline:auto}.form{max-width:800px}.form label{font:500 14px/1.5 var(--sans);display:block;margin-bottom:20px}.form input:not([type=checkbox]),.form select,.form textarea{display:block;width:100%;min-height:50px;border:1px solid #b8bdc1;border-radius:4px;padding:12px 14px;margin-top:8px;font:400 16px/1.5 var(--sans);background:white;color:var(--ink)}.form textarea{min-height:160px}.form .check{display:flex;gap:12px;align-items:flex-start;font-weight:400}.form input[type=checkbox]{width:20px;height:20px;flex-shrink:0;margin-top:2px}.btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;border-radius:4px;font:600 14px/1.4 var(--sans);box-shadow:none}.btn.ghost{background:white;border:1px solid var(--line);color:var(--ink)}.cta-row{flex-wrap:wrap;gap:12px}.form-note{font-size:13px;line-height:1.6}.chip{min-height:44px;font-size:14px;border-radius:4px}.club-card,.biz-card{background:none;box-shadow:none;border:0;border-top:1px solid var(--line);border-radius:0;padding:24px 0}.club-card h3,.biz-card h3{font-size:23px}.club-card p,.biz-card p{font-size:15px;line-height:1.6}.club-grid{gap:24px 40px}.archive-year{display:grid;grid-template-columns:120px 1fr;gap:32px;border-top:1px solid var(--ink);padding-top:24px}.archive-year>h2{font-size:36px;grid-row:span 20}.archive-list li{padding:16px 0;font-size:16px;line-height:1.5}.archive-list .rs{font-size:12px}.filter-controls{display:flex;gap:20px;flex-wrap:wrap;align-items:end;padding:24px 0;border-block:1px solid var(--line);margin-bottom:32px}.filter-controls label{display:grid;gap:8px;font-size:13px;color:var(--muted)}.filter-controls select{height:44px;border:1px solid var(--line);border-radius:4px;padding:8px 32px 8px 12px;background:white;color:var(--ink);font-size:14px}.period-tabs{display:flex;gap:8px;flex-wrap:wrap}.period-tabs button{min-height:44px;padding:8px 14px;background:none;border:1px solid var(--line);border-radius:4px;font-size:14px}.period-tabs button[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}.event-row{box-shadow:none;border:0;border-bottom:1px solid var(--line);padding:24px 0;grid-template-columns:64px 1fr;gap:24px}.event-row .d{background:none;color:var(--ink);border-right:1px solid var(--line);border-radius:0}.event-row .d b{font-size:32px}.event-row .d span{font-size:12px;color:var(--brand-dark)}.event-row h4,.event-row h3{font-size:23px;line-height:1.2}.event-row .act{grid-column:2;display:flex;gap:20px;font-size:14px}.event-facts{background:var(--surface-soft);border-radius:6px;padding:24px;gap:24px}.event-facts .ef{padding:0;background:none;box-shadow:none;border:0}.event-page .art-figure .media{aspect-ratio:auto;max-width:480px}.event-page .art-figure img{height:auto;object-fit:contain}.search-wrap{max-width:980px;margin-inline:auto;min-height:400px}.search-input{display:flex;gap:12px;width:100%;margin:0 0 20px}.search-input input{font-size:18px;min-height:56px;flex:1;min-width:0;border-radius:4px;border:1px solid #b8bdc1;padding:14px 16px}.result{border-bottom:1px solid var(--line);padding:24px 0}.result h3{font-size:25px;margin:8px 0}.result p{font-size:16px;line-height:1.6}.result mark{background:var(--brand-light);color:inherit}.search-suggestions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.search-suggestions a{border-bottom:1px solid var(--line);padding:10px 0;font-size:15px}.no-result{font-size:16px;line-height:1.65;padding:24px 0}.media-kit{display:grid;gap:48px}.media-formats{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.media-format{padding-top:20px;border-top:1px solid var(--line)}.media-format h3{font-size:23px;margin:20px 0 12px}.media-format p{font-size:15px;line-height:1.6;color:var(--text)}.ad-example{height:180px;background:var(--surface-soft);display:grid;place-items:center;padding:24px;border-radius:6px}.ad-example>span{display:grid;place-items:center;border:1px solid var(--brand);background:var(--brand-light);font-size:12px;letter-spacing:.12em;width:100%;height:60px}.ad-example.rectangle>span{width:150px;height:125px}.ad-example.native>span{height:110px}.media-principles{display:grid;grid-template-columns:1fr 1fr;gap:48px}.media-principles h2{font-size:30px;margin-bottom:16px}.media-principles p{font-size:16px;line-height:1.65}.media-kit .form{border-top:1px solid var(--line);padding-top:32px;width:100%}
/* Footer */
footer{background:#111315;color:#c3c6c9;border-top:2px solid var(--brand);margin-top:var(--section-gap);padding-top:48px}.foot-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px}.foot-brand{grid-column:1/-1;padding-bottom:32px;border-bottom:1px solid #3b3d40;display:flex;align-items:center;gap:32px}.foot-brand img{width:240px;height:auto}.foot-brand p{font-size:14px;line-height:1.5;margin:0;max-width:320px}.foot-social{margin-left:auto}.foot-grid h3{font-size:15px;letter-spacing:0;margin-bottom:16px;color:#fff}.foot-grid a{font-size:14px;line-height:1.5;padding-block:6px;display:inline-block}.foot-bottom{margin-top:40px;padding-block:24px;border-top:1px solid #3b3d40;font-size:12px}.reader-note+footer{margin-top:0}
/* Only elements below the initial viewport receive enhancement. Never hide content by default. */
.reveal-pending{opacity:0;transform:translateY(12px)}.reveal-visible{opacity:1;transform:none;transition:opacity .45s var(--ease),transform .45s var(--ease)}
@media(hover:hover){.brief-image:hover img{transform:scale(1.025)}.feed-row h3 a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;color:var(--brand-dark)}.btn:hover{transform:translateY(-1px)}}
@media(max-width:1280px){:root{--gutter:32px}.navscroll{gap:20px}.brand-subline{padding-left:24px}.mast-inner{gap:24px}.sports-module{grid-template-columns:1fr 1fr 1.3fr}.feed-row{grid-template-columns:210px 1fr}.district-channels h3{font-size:22px}}
@media(max-width:1024px){:root{--gutter:24px;--section-gap:72px}.brand-subline{display:none}.masthead{height:88px}.secondary-lead{display:block}.secondary-lead .media{width:100%;height:auto}.secondary-lead h2{font-size:22px}.content-grid{grid-template-columns:minmax(0,1fr) 260px;gap:32px}.feed-row{grid-template-columns:160px 1fr;gap:24px}.feed-row h3{font-size:22px}.feed-lead{grid-template-columns:1fr}.feed-lead h2{font-size:30px}.article-grid{grid-template-columns:minmax(0,720px);justify-content:center}.article-grid>.sidebar{display:none}.sports-module{grid-template-columns:1fr 1fr}.sports-module .sport-table{grid-column:1/-1;padding:24px 0}.fixture-panel{border-right:0}.sports-module .sport-table table{font-size:14px}.district-channels{grid-template-columns:repeat(3,1fr)}.district-channels a:nth-child(4){padding-left:0;border-left:0}.district-channels a:nth-child(n+4){border-top:1px solid var(--line)}.today-grid{gap:32px}.newswire{grid-template-columns:1fr 1fr}.newswire>a{padding:12px 0;border-left:0;border-top:1px solid var(--line)}}
@media(max-width:767px){:root{--gutter:18px;--section-gap:60px}.topbar{display:none}.masthead{height:64px;position:sticky;top:0;z-index:55}.mast-inner{gap:12px}.logo img{width:200px}.mast-search{display:none}.mast-actions{gap:0}.mast-actions .menu-btn,.mobile-search{display:grid;place-items:center;width:44px;height:44px;color:white;border:0;background:none;padding:10px}.mast-actions .menu-btn svg{width:22px;height:22px}.mainnav{position:relative;top:auto}.navrow{height:46px;gap:0}.navscroll{gap:24px}.navscroll a,.is-scrolled .navscroll a{min-height:46px;font-size:14px;padding:13px 0 10px}.is-scrolled .compact-brand,.is-scrolled .compact-search{display:none}.secondary-lead{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;padding:18px 0}.secondary-lead .media{width:120px;height:88px;aspect-ratio:auto}.secondary-lead h2{font-size:18px;line-height:1.22;margin:4px 0 8px}.desk-heading{padding-top:14px;gap:16px;margin-bottom:24px}.desk-heading h2{font-size:29px;margin-top:8px}.desk-heading .desk-more{font-size:12px;max-width:90px;white-space:normal;text-align:right}.newswire{display:block;margin-top:28px;padding-block:0}.newswire-label{flex-direction:row;justify-content:space-between;padding:16px 0}.newswire>a{display:grid;grid-template-columns:50px 1fr;gap:16px;font-size:15px;padding:14px 0}.newswire time{margin:0}.sports-reports .media{width:120px;height:88px;aspect-ratio:auto}.sports-reports h3{font-size:18px;line-height:1.22;margin:4px 0 8px}.sports-reports p{display:none}.today-grid{grid-template-columns:1fr;gap:28px}.agenda-row{grid-template-columns:44px minmax(0,1fr) 32px;gap:16px;padding:18px 0}.agenda-date b{font-size:28px}.agenda-row h3{font-size:18px}.agenda-row p{font-size:13px;line-height:1.5}.calendar-save{width:32px;min-height:44px}.service-editorial{border-left:0;border-top:1px solid var(--line);padding:20px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.service-editorial h3{display:none}.service-editorial>.eyebrow{grid-column:1/-1;margin-bottom:12px}.service-editorial>a{font-size:14px;min-height:44px}.sports-module{grid-template-columns:1fr 1fr}.score-result,.fixture-panel{padding:20px 12px}.score-result{padding-left:0}.score-result strong{font-size:52px}.score-result b{font-size:16px}.score-result>div{margin:20px 0}.score-result .eyebrow,.fixture-panel .eyebrow{font-size:11px;letter-spacing:.03em}.fixture-panel h3{font-size:18px}.fixture-panel time{font-size:30px}.sport-table th,.sport-table td{font-size:13px;padding:10px 6px}.sports-reports{display:block;margin-top:20px}.district-channels{display:flex;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin}.district-channels a,.district-channels a:nth-child(4){flex:0 0 155px;padding:20px 18px!important;border-left:1px solid var(--line);border-top:0;scroll-snap-align:start}.district-channels a:first-child{padding-left:0!important;border-left:0}.district-channels h3{font-size:22px}.reader-note{display:block;padding-block:24px;margin-block:60px}.reader-note h2{font-size:28px}.reader-note p{font-size:15px;line-height:1.6}.reader-note>a{display:inline-block;margin-top:16px;font-size:14px}.page-head{padding-top:24px}.page-head h1{font-size:33px;line-height:1.12}.page-head p{font-size:16px}.section{padding-top:32px}.content-grid{display:block}.content-grid>.sidebar{display:none}.feed-lead{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;padding-bottom:24px}.feed-lead .media{width:120px;height:100px}.feed-lead h2{font-size:21px;margin:6px 0 10px}.feed-lead .dek{display:none}.feed-row{grid-template-columns:120px minmax(0,1fr)!important;gap:16px;padding:20px 0}.feed-row .media{width:120px;height:88px}.feed-row h3{font-size:18px;line-height:1.23;margin:5px 0 8px}.feed-row .dek{font-size:14px;-webkit-line-clamp:2;margin:0 0 8px}.feed-row .meta{font-size:12px}.article-head{padding-top:24px;padding-bottom:24px}.article-head h1{font-size:35px;line-height:1.1;margin:12px 0 16px}.article-head .dek{font-size:18px;line-height:1.5}.byline{margin-top:24px;padding:16px 0;gap:12px}.byline .dates{width:100%;margin:0;font-size:12px}.article-grid{display:block}.article-body .prose{font-size:19px;line-height:1.65}.prose h2{font-size:28px}.prose h3{font-size:23px}.source-box{padding:20px;font-size:14px}.art-figure .media{aspect-ratio:3/2}.cards-3{grid-template-columns:1fr}.news-card{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:20px 0;border-bottom:1px solid var(--line)}.news-card .media{width:120px;height:88px}.news-card .card-copy,.news-card .card-body{padding:0}.news-card h3{font-size:18px}.news-card .dek{display:none}.foot-grid{grid-template-columns:1fr 1fr;gap:32px 24px}.foot-brand{display:block;padding-bottom:28px}.foot-brand img{width:220px}.foot-brand p{margin-top:16px;font-size:14px}.foot-social{margin-top:12px}.foot-grid a{min-height:40px;font-size:14px;display:flex;align-items:center;padding:8px 0}.foot-bottom{font-size:12px;display:block}.foot-bottom>div+div{margin-top:12px}.filter-controls{display:grid;grid-template-columns:1fr 1fr;gap:20px 16px;padding:20px 0}.filter-controls .period-tabs{grid-column:1/-1;gap:8px}.period-tabs button{font-size:13px;padding:8px 12px}.filter-controls select{width:100%;min-width:0;font-size:14px}.event-row{grid-template-columns:44px minmax(0,1fr);gap:16px}.event-row h4,.event-row h3{font-size:20px}.event-row .act{flex-wrap:wrap;gap:12px}.event-row .ev-desc{font-size:15px}.event-facts{padding:20px;display:grid;grid-template-columns:1fr}.search-input{gap:8px}.search-input input{font-size:16px;min-height:52px;padding:12px}.search-input .btn{padding:12px;min-width:74px}.result h3{font-size:23px}.archive-year{grid-template-columns:1fr;gap:16px}.archive-year>h2{grid-row:auto;font-size:30px}.archive-list li{font-size:15px}.media-formats,.media-principles{grid-template-columns:1fr;gap:32px}.ad-example{height:160px}.info-prose{font-size:18px}.form .grid2{grid-template-columns:1fr}.club-grid{grid-template-columns:1fr}.club-card h3{font-size:23px}.place-grid{grid-template-columns:1fr}.place-aside{display:block}.place-intro .info-prose{font-size:17px}.event-page .art-figure .media{max-width:100%}.drawer-group a{font-size:15px}}
@media(max-width:359px){:root{--gutter:16px}.logo img{width:178px}.mast-actions .menu-btn,.mobile-search{width:40px}.secondary-lead,.feed-row,.feed-lead,.news-card{grid-template-columns:108px minmax(0,1fr)!important;gap:12px}.feed-row .media,.feed-lead .media,.sports-reports .media,.news-card .media{width:108px;height:82px}.feed-row h3{font-size:17px}.article-head h1{font-size:32px}.period-tabs button{font-size:12px;padding:8px}.agenda-row{gap:12px}.drawer .panel{padding:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal-pending{opacity:1;transform:none}.media img,.btn{transform:none!important}}
@media print{.topbar,.mainnav,.mast-actions,.share,.reader-note{display:none!important}.masthead{position:static;background:#fff}.masthead img{filter:grayscale(1)}.article-grid{display:block}.article-body .prose{font-size:12pt}.reveal-pending{opacity:1;transform:none}}

/* Explicit resets for inherited V19 component surfaces. */
.mast-search{border-radius:0;background:transparent;box-shadow:none}.mast-search input{border-radius:0;background:transparent}.news-card-body{padding:0}.event-list-row h2{font-size:24px;line-height:1.2}.media img{object-position:center 35%}
@media(max-width:640px){.news-card-body{padding:0}.event-list-row h2{font-size:19px}}

.event-row h2{font-size:24px;line-height:1.2;margin:6px 0 10px}.feed-row.no-image{grid-template-columns:minmax(0,1fr)!important}.news-card-body{min-width:0}.media.contain img{object-position:center}.drawer [data-close]{min-height:44px}.navscroll>li{list-style:none}.navscroll a{white-space:nowrap}
@media(max-width:767px){.event-row h2{font-size:20px}.feed-row h3,.news-card h3,.sports-reports h3{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.calendar-save{width:44px}.agenda-row{grid-template-columns:44px minmax(0,1fr) 44px}.mast-actions .menu-btn,.mobile-search{width:44px;min-width:44px;min-height:44px}}

/* ---- recovery.css ---- */
/* Recovery: retain the V19 newspaper proportions and V20 reading/filter features. */
:root{--section-gap:80px}
.topbar,.masthead,.mainnav{background:#fff;color:#17191b;box-shadow:none;border-radius:0}
.topbar{border-bottom:1px solid #e5e5e5}
.topbar .date,.topbar .toplinks a,.topbar b{color:#555}
.masthead{height:86px;border:0;padding:0;margin:0;position:relative}
.masthead .logo img{width:270px;height:auto}
.brand-subline{color:#666;border-color:#ddd}
.mast-search{border-bottom:1px solid #aaa;color:#17191b}
.mast-search input,.mast-search button{color:#17191b}
.mast-search input::placeholder{color:#666}
.nav-anchor{height:60px;margin:0;padding:0}
.mainnav,.mainnav.is-scrolled{width:100%;max-width:none;margin:0;padding:0;inset:auto;top:0;border:0;border-bottom:1px solid rgba(17,17,17,.75);background:#fff;box-shadow:none;transform:none;border-radius:0;position:relative;z-index:60}
.mainnav.is-scrolled{position:fixed;top:0;left:0;right:0}
.mainnav .navrow{height:60px;min-height:60px;align-items:center;padding-block:0}
.mainnav .navscroll{min-width:0;align-items:center;gap:22px}
.mainnav .navscroll a{color:#17191b;font-size:14px;min-height:44px;padding-block:12px}
.mainnav .compact-brand{flex:0 0 auto}
.mainnav .compact-brand img{width:142px;height:auto}
.mainnav .compact-search{color:#17191b;flex:0 0 44px;min-height:44px}
.mainnav.is-scrolled .compact-brand,.mainnav.is-scrolled .compact-search{display:flex;align-items:center}
.desk{padding-top:0;margin-top:var(--section-gap)}
.desk-heading,.section-head{border-top-width:1px}.secondary-lead .media{width:130px;height:100px;aspect-ratio:auto}.secondary-lead h2{font-size:21px;line-height:1.22}
.reader-note{margin-block:64px;padding-block:24px}
footer{margin-top:64px;padding-top:32px}
/* V19's separate team/score zones, with the existing real crest and full table data. */
.sports-module{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;border:0}
.match-panel{min-width:0;padding:20px 0;border-top:1px solid #333;border-bottom:1px solid #ddd}
.match-heading{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:12px;color:#666}
.match-heading b{color:#17191b;font-size:13px;text-transform:uppercase;letter-spacing:.04em}
.match-grid{display:grid;grid-template-columns:minmax(0,1fr) 92px minmax(0,1fr);align-items:center;gap:16px;margin:24px 0;min-height:110px}
.match-team{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;min-width:0}
.match-team img{width:58px;height:58px;object-fit:contain;max-width:none}
.match-team b{display:block;font-size:16px;line-height:1.35;overflow-wrap:break-word}
.match-score{display:block;font-size:38px;font-weight:750;text-align:center;line-height:1;white-space:nowrap;font-variant-numeric:tabular-nums}
.match-versus{font-size:14px;text-align:center;color:#666}
.match-source{display:block;font-size:13px;color:#66552f;text-align:center;min-height:32px}
.sports-module .league-panel{grid-column:1/-1;min-width:0;padding:0;border:0}
.league-heading{display:flex;justify-content:space-between;gap:16px;align-items:baseline;margin:4px 0 12px}
.league-heading h3{font-size:20px;margin:0}
.league-heading span{font-size:12px;color:#666}
.league-scroll{overflow-x:auto;max-width:100%;border-top:1px solid #222;border-bottom:1px solid #ddd}
.league-table{width:100%;min-width:620px;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}
.league-table th,.league-table td{padding:12px 14px;border-bottom:1px solid #e6e6e6;text-align:right;white-space:nowrap}
.league-table thead th{background:#f5f5f4;font-weight:650;color:#444}
.league-table th:nth-child(2){text-align:left;white-space:normal;min-width:200px}
.league-table tbody th{font-weight:500}
.league-table .home-team{background:#f4f0e4}
.league-table .home-team th,.league-table .home-team td:last-child{font-weight:750}
.league-table td:last-child{font-weight:750}
.league-panel>a{display:inline-block;padding-top:12px;font-size:14px}
@media(max-width:1100px){.secondary-lead .media{width:104px;height:88px}.secondary-lead h2{font-size:18px}.match-grid{gap:10px;grid-template-columns:minmax(0,1fr) 80px minmax(0,1fr)}}
@media(max-width:767px){:root{--section-gap:54px}.masthead{position:sticky;top:0;left:0;right:0;width:100%;height:64px;z-index:65;border-bottom:1px solid rgba(17,17,17,.75);margin:0;padding:0}.masthead .logo img{width:200px}.mast-actions .menu-btn,.mast-actions .mobile-search{color:#17191b}.nav-anchor{height:46px}.mainnav,.mainnav.is-scrolled{position:relative;top:0;inset-inline:0;border-bottom:1px solid #ddd;z-index:40}.mainnav .navrow{height:46px;min-height:46px}.mainnav .compact-brand,.mainnav.is-scrolled .compact-brand,.mainnav .compact-search,.mainnav.is-scrolled .compact-search{display:none}.mainnav .navscroll a{font-size:14px;padding:10px 0}.secondary-lead .media{width:120px;height:90px}.secondary-lead h2{font-size:18px}.sports-module{grid-template-columns:1fr;gap:20px}.match-grid{grid-template-columns:minmax(0,1fr) 84px minmax(0,1fr);gap:12px;margin:20px 0;min-height:104px}.match-team b{font-size:16px}.match-team img{width:52px;height:52px}.match-score{font-size:36px}.league-table th,.league-table td{padding:11px 12px}.league-heading{flex-wrap:wrap;gap:6px}.reader-note,footer{margin-top:54px}}
@media(max-width:359px){.masthead .logo img{width:176px}.match-grid{grid-template-columns:minmax(0,1fr) 70px minmax(0,1fr);gap:8px}.match-score{font-size:32px}.match-team b{font-size:15px}}
@media print{.nav-anchor{display:none}.masthead{position:static}.league-scroll{overflow:visible}}

/* Restore V19 scoreboard geometry in the WordPress companion templates as well. */
.sportboard .score-result>div{display:grid;grid-template-columns:minmax(0,1fr) 84px minmax(0,1fr);gap:12px;align-items:center;margin:20px 0}.sportboard .score-result strong{font-size:36px;white-space:nowrap}.sportboard .score-result b{font-size:16px;line-height:1.35}.sportboard .next-fixture>b{display:block;line-height:1.6;margin-top:12px}
@media(prefers-reduced-motion:no-preference){.mainnav .compact-brand img{transition:width 220ms ease-out}}

/* Regional newspaper delivery: shared by preview and WordPress. */
:root{--brand-red:#c71920;--paper:#fff;--ink:#17191b;--line:#dcdedc;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px}
.masthead{background:#fff;color:var(--ink);border:0;box-shadow:none}.masthead .mast-inner{min-height:84px;display:grid;grid-template-columns:220px minmax(260px,540px) 1fr;gap:32px;align-items:center}.masthead .logo{width:auto;display:block}.masthead .logo img{height:40px;width:auto;max-width:100%;object-fit:contain}.masthead .mast-search{width:100%;max-width:540px;display:flex;margin:0;background:#fff;color:var(--ink);border:1px solid var(--line)}.mast-search input{text-align:left;min-width:0;height:44px;background:#fff;color:var(--ink)}.mast-actions{justify-content:flex-end;min-width:0}.header-local{display:flex;gap:4px 12px;justify-content:flex-end;flex-wrap:wrap;max-width:270px;font-size:13px;font-variant-numeric:tabular-nums;color:#444}.header-local [data-today]{flex-basis:100%;text-align:right}.mainnav,.mainnav.is-scrolled{background:#fff!important;color:var(--ink);border-bottom:1px solid rgba(15,15,15,.85);border-radius:0;box-shadow:none;left:0;right:0;top:0;margin:0;width:100%}.mainnav .navrow{gap:20px;position:relative;flex-wrap:nowrap}.mainnav .navscroll{overflow:hidden;min-width:0;flex:1;flex-wrap:nowrap;gap:20px;white-space:nowrap}.mainnav .navscroll a,.mainnav .navscroll li{flex-shrink:0;white-space:nowrap}.nav-more{position:relative;flex:none;font-size:14px;font-weight:700;align-self:stretch;display:flex;align-items:center}.nav-more summary{min-height:48px;display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none}.nav-more summary:after{content:'⌄';font-size:16px}.nav-more summary::-webkit-details-marker{display:none}.more-links{position:absolute;right:0;top:100%;min-width:250px;padding:16px 20px;background:#fff;border:1px solid var(--line);border-top:1px solid var(--ink);z-index:100;box-shadow:0 8px 16px #0000000a}.more-links a{display:block;padding:10px 0;color:var(--ink);white-space:normal;font-size:14px}.nav-more:not([open]) .more-links{display:none}
.location-line{font-size:12px;font-weight:750;line-height:1.4;letter-spacing:.035em;color:var(--ink);margin:12px 0 4px}.location-brand{color:var(--brand-red)}.kicker{font-size:11px;letter-spacing:.055em;color:#676767;margin-bottom:8px}.story-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:16px}.read-more,.v20 a.read-more{display:inline-flex;align-items:center;justify-content:center;background:#fff;color:var(--brand-red);border:1px solid var(--brand-red);border-radius:4px;padding:9px 15px;min-height:40px;font-size:13px;font-weight:700;text-decoration:none;line-height:1.3;transition:background 180ms,color 180ms}.read-more:hover,.read-more:focus-visible{background:var(--brand-red);color:#fff}.comment-count{font-size:12px;color:#686868}.media .badge{font-size:9px;line-height:1.3;max-width:90%;padding:4px 6px}.media-ai-label{display:block;font-size:12px;font-weight:600;color:var(--ink);padding:6px 0}.weather-days b{font-size:13px}.market-mini{padding:12px 0;border-bottom:1px solid var(--line)}.market-mini h3{font-size:15px}.market-mini img{width:80px;height:60px;object-fit:cover}.portal-ads{display:grid;gap:64px}.managed-ad{min-width:0;margin:24px 0;background:none}.managed-ad img{width:100%;height:auto;display:block;object-fit:contain}.managed-ad .ad-label{display:block;font-size:10px;letter-spacing:.08em;color:#727272;margin-bottom:8px}.ad-device-mobile{display:none}.desk{margin-top:80px;margin-bottom:0}.ai-disclosure{padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:15px;margin:24px 0}
.compact-footer{background:#fff!important;color:var(--ink);border-top:1px solid var(--ink);padding:32px 0 0;margin-top:64px}.footer-brandline{display:flex;align-items:center;gap:32px;margin-bottom:24px}.footer-brandline img{width:160px;height:auto}.footer-brandline p{font-size:14px;max-width:400px;color:#656565;margin:0}.footer-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.footer-links>div{display:flex;align-content:start;flex-wrap:wrap;gap:8px 16px}.footer-links h3{font-size:13px;flex-basis:100%;margin:0 0 4px;color:var(--ink)}.compact-footer a{color:#505050;font-size:12px;line-height:1.6}.compact-footer .foot-bottom{margin-top:24px;padding:16px 0;border-top:1px solid var(--line);font-size:11px;color:#707070}.market-page{padding-top:40px;padding-bottom:48px}.market-page h1{font-size:clamp(32px,4vw,52px);margin-bottom:24px}.market-filters{display:flex;gap:20px;align-items:end;margin:32px 0}.market-filters label{display:grid;gap:8px;font-size:13px}.market-filters input,.market-filters select{height:48px;border:1px solid var(--line);padding:10px;max-width:100%}.market-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.market-directory article,.market-directory section{border-top:1px solid var(--line);padding:24px 0}.market-directory img{width:100%;height:auto}.market-directory h2{font-size:26px}.listing-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;max-width:740px;margin:32px 0}.listing-facts dt{font-size:12px;color:#666}.listing-facts dd{margin:4px 0}.comments-area{max-width:740px;margin:48px auto;padding:0 18px}.comments-area h2{font-size:28px}.comment-list{padding:0;list-style:none}.comment-body{border-bottom:1px solid var(--line);padding:24px 0}.comment-form label{display:block;margin-bottom:8px;font-size:14px}.comment-form input:not([type=checkbox]),.comment-form textarea{width:100%;padding:12px;border:1px solid var(--line);min-height:48px}.comment-form textarea{min-height:160px}.comment-form p{font-size:14px}.comment-report{font-size:12px}.screen-reader-text{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
@media(min-width:768px){.mainnav.is-scrolled{position:fixed;top:0}.mainnav.is-scrolled .compact-brand{display:none}.masthead .mast-inner{padding-top:0;padding-bottom:0}}
@media(max-width:1199px){.masthead .mast-inner{grid-template-columns:170px minmax(180px,1fr) 190px;gap:24px}}
@media(max-width:900px){.header-local{font-size:11px}}
@media(max-width:767px){.masthead{position:sticky;top:0;z-index:120;border-bottom:1px solid rgba(15,15,15,.85)}.masthead .mast-inner{display:flex;justify-content:space-between;min-height:64px;height:64px;gap:12px}.masthead .logo img{height:30px;width:auto}.masthead .mast-search,.header-local{display:none}.masthead .mast-actions{gap:12px}.mainnav .navscroll{overflow-x:auto}.mainnav .navrow{gap:12px}.nav-more{display:none}.mainnav,.mainnav.is-scrolled{position:relative!important}.read-more,.v20 a.read-more{min-height:44px;padding:8px 12px}.desk{margin-top:56px}.footer-brandline{align-items:flex-start;gap:20px}.footer-brandline img{width:130px}.footer-brandline p{font-size:12px}.footer-links{gap:20px;grid-template-columns:1fr}.footer-links>div{gap:8px 14px}.footer-links h3{flex-basis:100%}.compact-footer{padding-top:24px;margin-top:48px}.market-directory,.listing-facts{grid-template-columns:1fr}.market-filters{flex-wrap:wrap}.market-filters label{min-width:0;max-width:100%}.ad-device-desktop{display:none}.ad-device-mobile{display:block}.story-actions{gap:10px}}
@media(prefers-reduced-motion:reduce){.read-more,.mainnav,.masthead{transition:none!important}.media img{transform:none!important}}

/* Ortsbilder: lokale Identität mit sauber ausgewiesenen, frei lizenzierten Fotos. */
.district-visuals{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(2,210px);gap:12px;border:0;overflow:visible}
.district-visuals .district-channel{position:relative;display:block;grid-column:span 3;min-width:0;min-height:210px;padding:0!important;border:0!important;border-radius:5px;overflow:hidden;background:#272925;color:#fff;isolation:isolate}
.district-visuals .district-channel:first-child{grid-column:span 6;grid-row:span 2}
.district-photo{position:absolute;inset:0;margin:0;overflow:hidden}
.district-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,9,8,.02) 24%,rgba(7,9,8,.82) 100%);z-index:1}
.district-photo img{width:100%;height:100%;object-fit:cover;transition:transform 360ms cubic-bezier(.2,.7,.2,1)}
.district-photo figcaption{position:absolute;z-index:2;top:9px;right:10px;max-width:calc(100% - 20px);padding:4px 6px;background:rgba(10,12,11,.58);color:rgba(255,255,255,.88);font-size:9px;line-height:1.25;text-align:right}
.district-copy{position:absolute;z-index:3;left:20px;right:20px;bottom:18px;display:block}
.district-copy .eyebrow{display:block;margin-bottom:5px;color:rgba(255,255,255,.8);font-size:10px;letter-spacing:.09em}
.district-visuals h3{margin:0;color:#fff;font-family:var(--serif);font-size:clamp(24px,2.1vw,34px);font-weight:610;line-height:1.05;letter-spacing:-.02em;text-shadow:0 1px 12px rgba(0,0,0,.28)}
.district-visuals .district-channel:first-child h3{font-size:clamp(34px,3.3vw,48px)}
.district-visuals small{display:block;margin-top:8px;color:rgba(255,255,255,.82);font-size:12px;font-variant-numeric:tabular-nums}
.district-channel:hover,.district-channel:focus-visible{color:#fff}
.district-channel:hover .district-photo img,.district-channel:focus-visible .district-photo img{transform:scale(1.02)}
.district-channel:focus-visible{outline:3px solid var(--brand-red);outline-offset:3px}
.district-contribute{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:18px 0;border-bottom:1px solid var(--line);font-size:13px;color:#555}
.district-contribute p{margin:0}.district-contribute b{color:var(--ink)}
.district-contribute a{flex:none;color:var(--brand-red);font-weight:700;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.place-feature{max-width:1040px;margin:0 0 24px;background:#f4f4f2}
.place-feature>img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.place-feature figcaption{display:flex;justify-content:space-between;gap:20px;padding:9px 0;color:#656565;font-size:11px;line-height:1.5;border-bottom:1px solid var(--line)}
.place-feature figcaption a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:1024px) and (min-width:768px){.district-visuals{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none}.district-visuals .district-channel,.district-visuals .district-channel:first-child{grid-column:span 1;grid-row:auto;min-height:230px}.district-visuals .district-channel:first-child{grid-column:1/-1;min-height:360px}}
@media(max-width:767px){.district-visuals{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(var(--gutter,18px) * -1);padding-inline:var(--gutter,18px);padding-bottom:10px;scrollbar-width:thin}.district-visuals .district-channel,.district-visuals .district-channel:first-child{flex:0 0 min(82vw,330px);min-height:260px;grid-column:auto;grid-row:auto;scroll-snap-align:start}.district-visuals .district-channel:first-child{flex-basis:min(88vw,360px)}.district-visuals h3,.district-visuals .district-channel:first-child h3{font-size:30px}.district-copy{left:18px;right:18px;bottom:17px}.district-contribute{align-items:flex-start;flex-direction:column;gap:10px}.place-feature{margin-bottom:20px}.place-feature figcaption{display:block}.place-feature figcaption span{display:block}.place-feature figcaption span+span{margin-top:4px}}
@media(prefers-reduced-motion:reduce){.district-photo img{transition:none}.district-channel:hover .district-photo img,.district-channel:focus-visible .district-photo img{transform:none}}

/* ---- korrekturen.css ---- */
/* Zwei Bausteine aus dem aelteren Stand, die dort besser waren.
   Eigene Klassennamen, damit nichts mit style.css, v19.css, v20.css oder
   recovery.css kollidiert. Wird als letztes geladen. */

/* Tabellenstand auf einen Blick, wie im aelteren Stand: Platz, Punkte, Tore. */
/* 18.09.: die Standzahl stand auf Gold (#c8a24e), das Label auf Beigegrau
   (#cfcbc2). Auf der dunklen Kachel #17191b traegt Bordeaux nicht, darum
   neutrales Off-White (15,73:1) und neutrales Hellgrau (10,62:1). */

/* Offene Begegnung: schliesst die Luecke zwischen letztem und naechstem Spiel,
   ohne ein Ergebnis zu behaupten, das nicht bestaetigt ist. */
/* 18.09.: die offene Begegnung war in Goldbraun (#a8842f) auf Beige (#f6efdd)
   mit beigem Rahmen (#e0d3ae) markiert. Jetzt Bordeaux auf neutraler
   Ruhezone: 8,52:1 auf der Karte, 7,74:1 im Hinweis. */
.match-panel.offen .match-heading b{color:#971725}
.match-offen-hinweis{display:inline-block;margin-top:6px;font-size:12px;font-weight:700;
  letter-spacing:.04em;color:#971725;border:1px solid #e3e3e1;background:#f4f4f3;
  border-radius:3px;padding:3px 9px}

/* Ortsteile: ein Satz, der sagt, was den Ort ausmacht.
   Die Kacheln sind Fotokacheln mit hellem Text ueber dunklem Schleier, der
   Satz muss deshalb hell sein. Auf drei Zeilen begrenzt, damit die Kacheln
   gleich hoch bleiben. */
.district-text{margin:7px 0 0;font-size:14px;line-height:1.45;
  color:rgba(255,255,255,.9);text-shadow:0 1px 3px rgba(0,0,0,.65);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
@media (max-width:900px){.district-text{-webkit-line-clamp:2;font-size:13px}}

/* Wortmarke im Kopf. Die Groesse wird in style.css, v19.css, v20.css und
   recovery.css insgesamt elfmal gesetzt; durchgesetzt hat sich zuletzt
   height:40px aus recovery.css. Bei 40px laufen die Haarstriche dieser
   Antiqua auf die Ein-Pixel-Grenze und die Punzen zu, die Marke verliert
   ihre Form. Bei 58px steht der Strichkontrast wieder. Die Quelldatei ist
   1200x338 gross, Aufloesung ist also reichlich vorhanden. */
.masthead .logo img{height:58px;width:auto;max-width:100%;object-fit:contain}
@media (max-width:900px){.masthead .logo img{height:46px}}
@media (max-width:560px){.masthead .logo img{height:38px}}

/* Werbeplaetze: Textfall, solange kein Bildmaterial vorliegt.
   Nutzt die Klassen der ausgelieferten Gestaltung (.portal-ads/.managed-ad). */
.managed-ad{position:relative;border:1px solid var(--line,#e3e3e1);background:#fff;padding:12px}
/* style.css setzt .ad-label absolut; ohne positionierten Vorfahren landen alle
   Kennzeichnungen uebereinander ausserhalb der Flaeche. Hier statisch und sichtbar. */
.managed-ad .ad-label{position:static;display:block;margin:0 0 8px;font-size:10px;font-weight:800;
  letter-spacing:.14em;text-transform:uppercase;color:#727272;background:none;padding:0}
.managed-ad>a,.managed-ad>.ad-in{display:flex;align-items:center;justify-content:center;
  min-height:96px;border-top:2px solid var(--gold,#971725);padding-top:12px;text-decoration:none}
.managed-ad .ad-name{font-family:var(--serif);font-size:18px;font-weight:600;
  color:#2b2b2b;text-align:center;line-height:1.25}
.managed-ad .ad-name small{display:block;margin-top:5px;font-family:inherit;font-size:10px;
  font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#727272}
.ad-row-body{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:26px 0}
.ad-row-body .managed-ad{margin:0}

@media (max-width:900px){.portal-ads{grid-template-columns:1fr 1fr;gap:16px}}
@media (max-width:560px){.ad-row-body{grid-template-columns:1fr;gap:14px}}
@media (max-width:560px){.portal-ads{grid-template-columns:1fr}}/* Vorgefunden,nicht durch die Anzeigen verursacht: auf /thema/ ist der body
   ein Flex-Container,und die Navigationsleiste kann als Flex-Element nicht
   schrumpfen. Dadurch wird das Dokument dort 760px breit und die Seite laesst
   sich auf dem Telefon seitlich schieben. min-width:0 gibt das Schrumpfen frei;
   der Streifen scrollt wie vorgesehen in sich selbst. */
body>.nav-anchor,body>.mainnav{min-width:0}.mainnav .navrow,.mainnav .navscroll{min-width:0}

/* Recovery-Pass 16.09.: exakt der bestehende Kopf, nur funktional sauber.
   Die Masthead-Zeile bleibt am Browserrand; die vorhandene Ressortzeile
   dockt beim Scrollen direkt darunter an. Kein Floating-Gap, kein Schatten. */
@media (min-width:768px){
  .masthead{position:sticky;top:0;z-index:70;margin:0;box-shadow:none}
  .mainnav.is-scrolled{top:84px}
  .header-local,.mast-actions .header-local{max-width:none;flex-wrap:nowrap;align-items:center;white-space:nowrap;gap:0}
  .header-local [data-today]{flex-basis:auto;text-align:right}
  /* Wettersymbol · Merzenich · Temperatur · Datum, ohne Uhrzeit (02.10.2026): ein Punkt trennt die Teile. */
  .header-local>*+*::before{content:"·";margin:0 7px;color:#9a948c;font-weight:400}
}

/* Wetter bleibt bewusst ein schlichter Serviceblock und keine Dashboard-Card. */
.header-weather{display:inline-flex;align-items:center;gap:6px;font-weight:650;color:#242424;font-variant-numeric:tabular-nums}
.header-weather-ort{font-weight:650}
.weather-days>div{padding:9px 0;border-bottom:1px solid var(--line,#dedede);font-size:13px;line-height:1.4}
.weather-days>div:last-child{border-bottom:0}
.weather-days small{display:block;margin-top:2px;color:#686868}

/* Markt (Stellen, Immobilien): vorab gerendert aus market.json, siehe deploy/markt-prerender.mjs */
.markt-stand{border-top:3px solid var(--ink,#161616);border-bottom:1px solid var(--line,#d9d9d9);padding:14px 0 16px;margin:0 0 8px}
.markt-stand strong{display:block;font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.markt-stand p{margin:6px 0 0;font-size:12.5px;line-height:1.5;color:var(--muted,#666);max-width:760px}
.markt-ort{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 14px;margin:34px 0 4px;padding-bottom:8px;border-bottom:2px solid var(--ink,#161616);font-size:24px;line-height:1.1}
.markt-ort-eyebrow{flex-basis:100%;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--red,#b71920)}
.markt-ort-count{margin-left:auto;font-size:12px;font-weight:500;color:var(--muted,#666)}
.markt-hinweis{margin:6px 0 4px;font-size:13px;line-height:1.5;color:var(--muted,#666)}
.markt-row .eyebrow{display:block;margin-bottom:4px}
.markt-ort-tag{font-size:10.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:#3e3e3e}
.markt-ort-tag--merzenich{color:var(--red,#b71920)}
.markt-row h3 a{color:inherit;text-decoration:none}
.markt-row h3 a:hover,.markt-row h3 a:focus-visible{text-decoration:underline;text-underline-offset:3px}
.markt-haupt{margin:2px 0 6px;font-size:15px;font-weight:700}
.markt-row .meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12.5px;color:var(--muted,#666)}
.markt-row .ev-desc{margin-top:8px;font-size:12.5px;color:var(--muted,#666)}
.markt-quellen{margin:10px 0 0;padding:12px 0;border-top:1px solid var(--line,#d9d9d9);font-size:13px;line-height:1.7}
.markt-quellen a{color:var(--red,#b71920);font-weight:700}
.markt-quellen small{color:var(--muted,#666)}
.markt-liste .info-prose{max-width:none}
.markt-mini{display:block;padding:9px 0;border-top:1px solid #ececec;color:inherit;text-decoration:none}
.markt-mini:first-of-type{border-top:0}
.markt-mini strong{display:block;font-size:13.5px;line-height:1.3}
.markt-mini span{display:block;margin-top:3px;font-size:11.5px;color:var(--muted,#666)}
.markt-mini:hover strong{text-decoration:underline;text-underline-offset:2px}
.markt-mini-leer{margin:0 0 8px;font-size:12.5px;color:var(--muted,#666)}
@media (max-width:760px){.markt-ort{font-size:20px}.markt-row .act{flex-direction:column;gap:6px}}
/* Mobil: die 44px-Etikettspalte ist fuer "Ausbildung" zu schmal - die Art wandert in die Kopfzeile. */
.markt-art{display:none;font-size:10.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:#3e3e3e}
@media (max-width:760px){.markt-row{grid-template-columns:minmax(0,1fr)}.markt-row .d{display:none}.markt-row .act{grid-column:1}.markt-art{display:inline}}/* Aufmacher: Kicker und Eyebrow sind zwei Zeilen{display:block}

/* Kopf klappt beim Scrollen ein (Desktop): kopf.js setzt html.kopf-kompakt.
   Der grosse Kopf schiebt sich weg, die Ressortleiste bleibt oben und zeigt
   links das kleine Logo. Mobil bleibt der schmale Kopf, wie er ist. */
.masthead{transition:transform .18s ease,opacity .18s ease}
.mainnav.is-scrolled{transition:top .18s ease}
.kopf-kompakt .masthead{transform:translateY(-100%);opacity:0;pointer-events:none}
.kopf-kompakt .mainnav.is-scrolled{top:0}
.kopf-kompakt .mainnav.is-scrolled .compact-brand{display:flex;align-items:center;flex:0 0 auto;margin-right:12px}
@media (prefers-reduced-motion:reduce){.masthead,.mainnav.is-scrolled{transition:none}}

/* Symbolbilder (deploy/symbolbilder.mjs): gekennzeichnet, mit Quelle. */
.art-figure--symbol .media{aspect-ratio:3/2}
.art-figure--symbol figcaption a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.markt-row--thumb{grid-template-columns:44px 150px minmax(0,1fr)}
.markt-thumb{position:relative;display:block;aspect-ratio:3/2;overflow:hidden;border-radius:4px;background:var(--surface-soft,#f5f6f6)}
.markt-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.markt-thumb__badge{position:absolute;left:6px;bottom:6px;padding:2px 6px;border-radius:3px;background:rgba(0,0,0,.62);color:#fff;font-size:10px;letter-spacing:.04em}
.markt-row--thumb .act{grid-column:3}
@media (max-width:760px){.markt-row--thumb{grid-template-columns:minmax(0,1fr)}.markt-thumb{max-width:220px;margin-bottom:10px}.markt-row--thumb .act{grid-column:1}}
.feed-row.editorial-current-row .media{aspect-ratio:1.44}/* Zweitkarte mit Bild nutzt das vorhandene secondary-lead-Layout (Bild oben{display:block}

/* Kommentare und Diskussion (assets/kommentare.js) */
.kommentare{max-width:760px;margin:40px 0 0;padding-top:24px;border-top:2px solid var(--ink,#161616)}
.kommentare h2{margin:0 0 14px;font-size:24px}
.kommentare h3,.thema__body h3{margin:26px 0 10px;font-size:16px}
.kommentare__anzahl,.diskussion__anzahl{font-weight:500;color:var(--muted,#666);font-size:16px}
.kommentare__leer{margin:8px 0;color:var(--muted,#666);font-size:14px}
.kommentare__hinweis{margin:14px 0 0;font-size:13px;color:var(--muted,#666)}
.kommentar{padding:14px 0;border-top:1px solid var(--line,#e3e3e1)}
.kommentar:first-child{border-top:0}
.kommentar__kopf{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;font-size:13px}
.kommentar__kopf strong{font-size:14px}
.kommentar__kopf time{color:var(--muted,#666)}
.kommentar__text{font-size:15px;line-height:1.55}
.kommentar__text p{margin:6px 0}
.kommentar__fuss{margin-top:4px}
.kommentar__melden{appearance:none;border:0;background:none;padding:0;color:var(--muted,#666);font:inherit;font-size:12px;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.kommentar__melden:disabled{text-decoration:none;cursor:default}
.kommentar-form{display:grid;gap:12px;max-width:640px}
.kommentar-form label{display:grid;gap:5px;font-size:13px;font-weight:600}
.kommentar-form label small{font-weight:400;color:var(--muted,#666)}
.kommentar-form input:not([type=checkbox]),.kommentar-form textarea{width:100%;box-sizing:border-box;padding:9px 11px;border:1px solid #bdbdbd;border-radius:4px;background:var(--card,#fff);color:var(--ink,#161616);font:inherit;font-size:15px}
.kommentar-form input:focus-visible,.kommentar-form textarea:focus-visible{outline:2px solid var(--red,#971725);outline-offset:1px;border-color:transparent}
.kommentar-form .is-invalid{border-color:var(--red,#971725)}
.kommentar-form__zeile{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.kommentar-form__hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.kommentar-form__regeln{display:flex!important;gap:10px;align-items:flex-start;font-weight:400!important;font-size:13px;line-height:1.5}
.kommentar-form__regeln input{margin-top:3px;flex:0 0 auto}
.kommentar-form__regeln span{flex:1 1 200px;min-width:0}
.kommentar-form__aktion{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.kommentar-form__status{font-size:13px;color:var(--muted,#666)}
.kommentar-form__status.is-fehler{color:var(--red,#971725);font-weight:600}
.diskussion .info-prose{max-width:none}
.diskussion__neu{padding:20px 22px;margin:0 0 34px;border:1px solid var(--line,#e3e3e1);background:var(--card,#fff)}
.diskussion__neu h2{margin:0 0 6px;font-size:20px}
.diskussion__neu p{margin:0 0 14px;font-size:14px;color:var(--muted,#666)}
.diskussion h2{font-size:24px;margin:0 0 12px}
.thema{border-top:1px solid var(--line,#e3e3e1)}
.thema:last-child{border-bottom:1px solid var(--line,#e3e3e1)}
.thema summary{display:grid;gap:3px;padding:14px 0;cursor:pointer;list-style:none}
.thema summary::-webkit-details-marker{display:none}
.thema summary::before{content:"+";float:right;margin-left:12px;font-weight:700;color:var(--muted,#666)}
.thema[open] summary::before{content:"–"}
.thema__titel{font-size:18px;font-weight:700;line-height:1.3}
.thema__meta{font-size:12.5px;color:var(--muted,#666)}
.thema__body{padding:0 0 22px 18px;border-left:3px solid var(--line,#e3e3e1);margin-bottom:14px}
@media (max-width:640px){.kommentar-form__zeile{grid-template-columns:1fr}.thema__body{padding-left:12px}}

/* Werbung global aus (html[data-werbung="aus"]) */
html[data-werbung="aus"] .ad-row-body,html[data-werbung="aus"] .portal-ads,html[data-werbung="aus"] .managed-ad,html[data-werbung="aus"] .ma-display-ad,html[data-werbung="aus"] .ma-ad-booking,html[data-werbung="aus"] .native-ad,html[data-werbung="aus"] .ad,html[data-werbung="aus"] .ma-ad{display:none!important}

/* Externe Bilder ohne Einwilligung: neutraler Platzhalter */

/* Einwilligung (assets/einwilligung.js), Neugestaltung 04.10.2026: Karte mit
   Marke, Serif-Titel, zwei gleich grosse Knoepfe, Einstellungen als Schalter.
   Nicht blockierend: die Seite bleibt bedienbar, es laeuft nichts ohne Zustimmung. */
.einwilligung{position:fixed;left:0;right:0;bottom:0;z-index:2100;padding:0 16px max(16px,env(safe-area-inset-bottom));pointer-events:none}
.einwilligung__box{pointer-events:auto;max-width:600px;margin:0 auto;padding:22px 24px 18px;background:#fff;color:var(--ink,#17191b);border:1px solid rgba(23,25,27,.08);border-radius:14px;box-shadow:0 24px 60px rgba(17,19,21,.22),0 2px 8px rgba(17,19,21,.08);font-family:var(--sans,system-ui,sans-serif);font-size:14px;line-height:1.55;animation:ew-auf .32s cubic-bezier(.22,1,.36,1) both}
@keyframes ew-auf{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.einwilligung__box{animation:none}}
.einwilligung__kopf{display:flex;align-items:center;gap:12px;margin:0 0 10px}
.einwilligung__marke{flex:0 0 auto;width:40px;height:40px;border:1px solid rgba(23,25,27,.1);border-radius:10px;background:#fff;display:grid;place-items:center}
.einwilligung__marke img{width:22px;height:22px;display:block}
.einwilligung__eyebrow{display:block;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--red,#971725);margin:0 0 2px}
.einwilligung__box h2{margin:0;font-family:var(--serif,Georgia,serif);font-weight:700;font-size:21px;line-height:1.15;letter-spacing:-.01em;color:var(--ink,#17191b)}
.einwilligung__text{margin:0 0 14px;color:#4a4e52}
.einwilligung__form{display:grid;margin:0 0 14px;border:1px solid rgba(23,25,27,.1);border-radius:10px;overflow:hidden;background:#fff}
.einwilligung__option{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 14px;margin:0;cursor:pointer}
.einwilligung__option+.einwilligung__option{border-top:1px solid rgba(23,25,27,.08)}
.einwilligung__option strong{display:block;font-size:14px;line-height:1.3}
.einwilligung__option span{display:block;font-size:12.5px;color:#65696c;line-height:1.45;margin-top:2px}
.einwilligung__schalter{position:relative;flex:0 0 auto;width:44px;height:26px;appearance:none;-webkit-appearance:none;margin:0;border:0;border-radius:999px;background:#c6c9cb;cursor:pointer;transition:background .18s ease}
.einwilligung__schalter::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.28);transition:transform .18s ease}
.einwilligung__schalter:checked{background:var(--red,#971725)}
.einwilligung__schalter:checked::after{transform:translateX(18px)}
.einwilligung__schalter:disabled{background:#7d8185;cursor:default}
.einwilligung__schalter:focus-visible{outline:2px solid var(--red,#971725);outline-offset:2px}
.einwilligung__aktionen{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:stretch}
.einwilligung__aktionen .btn{margin:0;display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 16px;font-size:14px;font-weight:700;border-radius:8px;box-sizing:border-box}
.einwilligung__mehr{grid-column:1/-1;justify-self:center;appearance:none;border:0;background:none;padding:6px 0 0;color:var(--ink,#17191b);font:inherit;font-size:13px;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.einwilligung__fuss{margin:12px 0 0;font-size:12px;color:#65696c;line-height:1.5}
.einwilligung__fuss a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.einwilligung__link{display:inline-block;margin-top:10px;font-size:12px;color:var(--muted,#666);text-decoration:underline;text-underline-offset:2px}
.foot-bottom .einwilligung__link{display:inline;margin-top:0;font-size:inherit;color:inherit}
@media (max-width:640px){.einwilligung{padding:0}.einwilligung__box{max-width:none;border-radius:16px 16px 0 0;border-left:0;border-right:0;border-bottom:0;padding:18px 18px calc(16px + env(safe-area-inset-bottom));box-shadow:0 -12px 40px rgba(17,19,21,.2)}.einwilligung__aktionen{grid-template-columns:1fr}}
.live-hinweis{position:sticky;top:0;z-index:2050;display:flex;gap:12px;align-items:center;padding:10px 16px;background:var(--red,#971725);color:#fff;font-size:14px}
.live-hinweis__label{font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:2px 6px;border:1px solid rgba(255,255,255,.6)}
.live-hinweis a{color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:2px}
.live-hinweis button{margin-left:auto;appearance:none;border:0;background:none;color:#fff;font-size:22px;line-height:1;cursor:pointer}

/* Tabellenauszug: Luecke zwischen Spitzengruppe und SC Merzenich */
.league-table .league-gap td{text-align:center;padding:4px 14px;color:#8a8781;letter-spacing:.2em}

/* Formulare: Rueckmeldung nach fehlgeschlagener Einsendung (app.js, ?fehler=) */
.form-fehler{margin:0 0 16px;padding:12px 14px;border-left:3px solid var(--red,#971725);background:#fbf1f1;color:#5a1a1f;font-size:15px;line-height:1.45}

/* Ladezustand ohne JS-Erfolg: nach 8 s wird aus "Wird geladen" ein Hinweis mit Neuladen (reines CSS, kein Skript noetig) */
.laden .laden__fehler{display:block;opacity:0;max-height:0;overflow:hidden;animation:ladenFehler .3s 8s forwards}
.laden .laden__text{display:block;animation:ladenWeg .3s 8s forwards}
@keyframes ladenFehler{to{opacity:1;max-height:6em}}
@keyframes ladenWeg{to{opacity:0;max-height:0;overflow:hidden}}
.kommentare__retry{margin-left:8px;vertical-align:middle}

/* Themenuebersicht: A-Z-Liste unter der Wolke */
.tag-az{margin-top:32px;padding-top:20px;border-top:1px solid var(--line,#e3e3e1)}
.tag-az h2{font-size:18px;margin:0 0 12px}
.tag-az ul{list-style:none;margin:0;padding:0;columns:2;column-gap:32px}
@media (min-width:768px){.tag-az ul{columns:4}}
.tag-az li{break-inside:avoid;padding:4px 0;font-size:15px}
.tag-az small{color:var(--muted,#666);font-size:12px}/* Aufmacher ohne Foto (z. B. nur Vereinslogo): keine leere Bildflaeche{align-self:start;display:block;padding-top:6px}

/* Ortswahl unter dem Kopf (deploy/inhaltsindex.mjs).
   Ersetzt die flache Reihe mit fuenf gleich grossen Ortslinks, die wie eine
   zweite Hauptnavigation gelesen wurde und fuenf gleich volle Orte versprach.
   Geschlossener Grundzustand, echte Meldungszahlen aus dem Bestand.
   Bewusst <details>: Tastatur und Seiten ohne JavaScript funktionieren ohne
   Zutun. Kein Gold, Bordeaux nur fuer die aktuelle Ausgabe. */
.ortswahl{border-top:1px solid var(--ma-line,#e3e3e1);border-bottom:1px solid var(--ma-line,#e3e3e1);background:var(--ma-paper,#fff)}
.ortswahl>.shell{padding-block:0}
.ortswahl-schalter{position:relative}
/* inline-flex, damit der Fokusrahmen den Schalter umschliesst und nicht die
   ganze Zeilenbreite. */
.ortswahl-schalter>summary{display:inline-flex;align-items:center;gap:var(--s2,8px);min-height:44px;padding-right:var(--s1,4px);list-style:none;cursor:pointer}
.ortswahl-schalter>summary::-webkit-details-marker{display:none}
.ortswahl-schalter>summary::marker{content:""}
.ortswahl-marke{color:var(--ma-muted,#77736d);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.ortswahl-aktuell{font-family:var(--serif);font-size:17px;font-weight:620;color:var(--ma-ink,#171513)}
.ortswahl-pfeil{width:16px;height:16px;color:var(--ma-muted,#77736d);transition:transform 160ms ease-out}
.ortswahl-schalter[open] .ortswahl-pfeil{transform:rotate(180deg)}
.ortswahl-schalter>summary:focus-visible{outline:2px solid var(--ma-red,#971725);outline-offset:3px}

/* Chromium verbirgt den Inhalt eines geschlossenen <details> ueber
   content-visibility. Ein absolut positioniertes Kind entkommt dem und blieb
   sichtbar - gemessen 21.09., die Liste stand offen unter der Zeile. Deshalb
   ausdruecklich ausblenden. */
.ortswahl-schalter:not([open]) .ortswahl-liste{display:none}
.ortswahl-liste{position:absolute;z-index:60;top:100%;left:0;min-width:280px;padding:var(--s3,12px) 0 var(--s2,8px);background:var(--ma-paper,#fff);border:1px solid var(--ma-line,#e3e3e1);border-radius:var(--r1,6px);box-shadow:0 10px 28px rgba(23,21,19,.10)}
.ortswahl-gruppe{margin:0 var(--s4,16px) var(--s2,8px);color:var(--ma-muted,#77736d);font-size:10px;font-weight:750;letter-spacing:.13em;text-transform:uppercase}
.ortswahl-liste a{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s5,20px);padding:9px var(--s4,16px);color:var(--ma-ink,#171513);text-decoration:none}
.ortswahl-liste a:hover,.ortswahl-liste a:focus-visible{background:var(--ma-warm,#f4f4f3)}
.ortswahl-name{font-family:var(--serif);font-size:16px;font-weight:600}
.ortswahl-zahl{color:var(--ma-muted,#77736d);font-size:11px;white-space:nowrap}
.ortswahl-liste a[aria-current="page"] .ortswahl-name{color:var(--ma-red,#971725)}
.ortswahl-liste a[aria-current="page"]::before{content:"";position:absolute;left:0;width:3px;height:20px;margin-top:2px;background:var(--ma-red,#971725)}
.ortswahl-liste a{position:relative}

@media (max-width:560px){
  .ortswahl-liste{position:static;min-width:0;margin-bottom:var(--s3,12px);box-shadow:none}
  .ortswahl-aktuell{font-size:16px}
}

@media (prefers-reduced-motion:reduce){.ortswahl-pfeil{transition:none}}


/* Anzeige aufgeben (/anzeigen/aufgeben/): drei Schritte, Art als Bildkarte */
.anz-form{max-width:none;gap:24px}
.anz-form fieldset{border:0;margin:0;padding:0;min-width:0}
.anz-schritt{display:flex;flex-direction:column;gap:14px;padding-top:20px;border-top:1px solid var(--line,#e3e1dd)}
.anz-schritt:first-of-type{padding-top:0;border-top:0}
.anz-schritt>legend{display:flex;align-items:center;gap:12px;margin:0 0 14px;padding:0;font-family:var(--serif);font-size:24px;line-height:1.2;color:var(--ink,#171513)}
.anz-nr{display:inline-grid;place-items:center;width:32px;height:32px;border:1px solid var(--ink,#171513);border-radius:50%;font-family:var(--sans);font-size:14px;font-weight:700}
.anz-arten{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (min-width:760px){.anz-arten{grid-template-columns:repeat(4,minmax(0,1fr))}}
.anz-form .anz-art{position:relative;display:flex;margin:0;flex-direction:column;gap:6px;padding:0 0 12px;border:1px solid var(--line,#e3e1dd);border-radius:3px;background:var(--paper,#fdfdfc);cursor:pointer;transition:border-color .18s ease-out,background-color .18s ease-out}
.anz-art input{position:absolute;opacity:0;pointer-events:none}
.anz-art__bild{display:block;aspect-ratio:3/2;overflow:hidden;border-radius:3px 3px 0 0;background:#f5f4f1}
.anz-art__bild img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .18s ease-out}
.anz-art:hover .anz-art__bild img{transform:scale(1.02)}
.anz-art__titel,.anz-art__text,.anz-art__credit{display:block}
.anz-art__titel{padding:4px 12px 0;font-family:var(--serif);font-size:19px;font-weight:600;line-height:1.2;color:var(--ink,#171513)}
.anz-art__text{padding:0 12px;font-size:14px;font-weight:400;line-height:1.4;color:#5f5b55}
.anz-art__credit{padding:0 12px;margin-top:auto;font-size:11px;font-weight:400;line-height:1.3;color:#6f6a63}
.anz-art:has(input:checked){border-color:var(--ink,#171513);background:#f5f4f1;outline:1px solid var(--ink,#171513);outline-offset:-2px}
.anz-art:has(input:focus-visible){outline:2px solid var(--red-dark,#7a111c);outline-offset:2px}
.anz-form .anz-teil{display:flex;flex-direction:column;gap:14px;padding:16px;border:1px solid var(--line,#e3e1dd)!important;border-radius:3px;background:#f5f4f1}
.anz-form .anz-teil[hidden]{display:none}
.anz-teil>legend{padding:0 6px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#5f5b55}
@media (max-width:640px){.anz-form .grid2{grid-template-columns:1fr}}

/* Seitenleiste "Sie wissen etwas?": v20.css gibt .btn.ghost einen weissen Grund,
   die helle Schrift von .on-dark verschwand darauf (weiss auf weiss). */
.sidebox.dark .btn.ghost.on-dark{background:transparent;color:var(--on-dark,#e7e7e5)}

/* Ortsmarke A3.1 auf allen Seiten (bisher nur body.home, startseite.css).
   MERZENICH in Bordeaux, Ortsteil zurueckhaltend, Rubrik in normaler Schreibung. */
:root{--marke-rot:#971725;--marke-leise:#5f5b55;--marke-linie:#e3e1dd}
.marke{margin:0 0 8px;font-family:var(--sans);font-size:12.5px;line-height:1.3;font-weight:750;letter-spacing:.07em;text-transform:uppercase;color:var(--marke-leise)}
.marke-ort{color:var(--marke-rot)}
.marke-teil{color:var(--marke-leise)}
.marke-rubrik{margin-left:10px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--marke-leise)}
.feed-copy>.marke,.lead-copy>.marke{margin:0 0 6px}
/* Artikelkopf: dieselbe Marke. Das Markup bleibt (lib-artikel.mjs liest daraus Ort und Dachzeile). */
.article-head .kick-row{gap:0 10px;align-items:baseline;margin:0 0 8px}
.article-head .kick-row .location-line{margin:0;font-family:var(--sans);font-size:12.5px;line-height:1.3;font-weight:750;letter-spacing:.07em;text-transform:uppercase;color:var(--marke-leise)}
.article-head .kick-row .location-brand{color:var(--marke-rot)}
.article-head .kick-row .kicker{font-family:var(--sans);font-size:12.5px;line-height:1.3;font-weight:500;letter-spacing:0;text-transform:none;color:var(--marke-leise);background:none;padding:0}

/* Merzenich-Linie: Pulslinie aus dem Logo, zweimal je Seite hoechstens -
   ueber dem Fuss und vor "Weiterlesen" unter Artikeln. */
.merzenich-linie{display:flex;align-items:center;gap:16px;max-width:var(--shell,1240px);margin:56px auto 0;padding:0 20px;color:var(--marke-rot)}
.merzenich-linie i{flex:1;height:1px;background:var(--marke-linie)}
.merzenich-linie svg{flex:none;width:72px;height:15px;display:block}
.merzenich-linie+.compact-footer{margin-top:24px}
.section .brandline.thin{display:flex!important;gap:16px;margin:0 0 20px;color:var(--marke-rot)}
.section .brandline.thin i{height:1px;background:var(--marke-linie)}
.section .brandline.thin svg{width:72px;height:15px;color:var(--marke-rot)}
.result>.marke{font-size:12.5px;line-height:1.3;margin:0 0 6px}

/* Mega-Menue "Mehr" (deploy/kopf-theme-einbinden.mjs MEGA): Panel ueber die
   Breite der Ressortleiste, Grund laeuft bis an den Fensterrand. */
.nav-more.mega{position:static}
.nav-more.mega:not([open]) .mega-panel{display:none}
.nav-more.mega[open]>summary{color:var(--marke-rot)}
.mega-panel{position:absolute;left:0;right:0;top:100%;z-index:990;padding:28px var(--gutter,24px) 24px;background:#fdfdfc;border-top:1px solid var(--marke-linie);box-shadow:0 0 0 100vmax #fdfdfc;clip-path:inset(0 -100vmax -28px);font-family:var(--sans);text-transform:none;letter-spacing:0}
.mega-panel::after{content:"";position:absolute;left:-100vmax;right:-100vmax;top:100%;height:28px;border-top:1px solid var(--marke-linie);background:linear-gradient(rgba(23,21,19,.07),rgba(23,21,19,0));pointer-events:none}
.mega-spalten{display:grid;grid-template-columns:1.2fr .8fr 1fr 1fr;gap:0 40px}
.mega-spalte ul{list-style:none;margin:0;padding:0}
.mega-spalte:first-child ul{columns:2;column-gap:24px}
.mega-titel{margin:0 0 10px;font-size:12px;line-height:1.3;font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:var(--marke-leise)}
.mega-spalte a{display:block;padding:5px 0;font-size:15px;line-height:1.35;font-weight:500;color:#171513;text-decoration:none;break-inside:avoid}
.mega-spalte a:hover,.mega-spalte a:focus-visible{color:var(--marke-rot);text-decoration:underline;text-underline-offset:3px}
.mega-wege{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin:24px 0 0;padding-top:18px;border-top:1px solid var(--marke-linie)}
.mega-wege .mega-titel{margin:0 8px 0 0}
.mega-weg{display:inline-flex;align-items:center;min-height:38px;padding:0 16px;border:1px solid #cfccc6;border-radius:4px;font-size:14px;font-weight:650;color:#171513;text-decoration:none}
.mega-weg:hover,.mega-weg:focus-visible{border-color:var(--marke-rot);color:var(--marke-rot)}
.mega-weg.primaer{background:var(--marke-rot);border-color:var(--marke-rot);color:#fdfdfc}
.mega-weg.primaer:hover,.mega-weg.primaer:focus-visible{background:#7c1320;color:#fdfdfc}
@media(max-width:1100px){.mega-spalten{grid-template-columns:repeat(4,auto);justify-content:space-between;gap:0 28px}.mega-spalte:first-child ul{columns:1}}
@media(max-width:900px){.mega-spalten{grid-template-columns:repeat(2,1fr);gap:22px 32px}}

/* /sport/: rechte Ecke im Seitenkopf (deploy/sport-prerender.mjs ecke()).
   Stand des SC 1919 Merzenich neben der Ueberschrift, Quelle FUSSBALL.DE. */
.page-head.mit-ecke .shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,380px);gap:24px 56px;align-items:end}
.sport-ecke{padding-top:14px;border-top:2px solid var(--marke-rot);font-family:var(--sans)}
.page-head .sport-ecke-kopf{display:flex;justify-content:space-between;gap:12px;margin:0 0 6px;font-size:12.5px;line-height:1.3;font-weight:750;letter-spacing:.07em;text-transform:uppercase;color:var(--marke-leise)}
.page-head .sport-ecke-kopf a{color:var(--marke-rot);text-decoration:none}
.page-head .sport-ecke-kopf a:hover{text-decoration:underline;text-underline-offset:3px}
.sport-ecke .sc-stand{display:grid;grid-template-columns:repeat(3,1fr)}
.sport-ecke .sc-kachel{padding:6px 14px;border-left:1px solid var(--marke-linie)}
.sport-ecke .sc-kachel:first-child{padding-left:0;border-left:0}
.sport-ecke .sc-wert{display:block;font-family:var(--serif);font-size:38px;line-height:1;font-weight:620;letter-spacing:-.02em;color:#171513;font-variant-numeric:lining-nums tabular-nums}
.sport-ecke .sc-label{display:block;margin-top:6px;font-size:11px;font-weight:750;letter-spacing:.12em;text-transform:uppercase;color:var(--marke-leise)}
.page-head .sport-ecke-spiel{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--marke-linie);font-size:14px;line-height:1.45;color:#171513}
.page-head .sport-ecke-spiel b{margin-right:6px;font-size:11px;font-weight:750;letter-spacing:.12em;text-transform:uppercase;color:var(--marke-rot)}
.page-head .sport-ecke-quelle{margin:8px 0 0;font-size:12px;color:var(--marke-leise)}
@media(max-width:860px){.page-head.mit-ecke .shell{grid-template-columns:1fr}.sport-ecke{max-width:420px}}

/* Ressortleiste 768 bis ~1300 px (iPad quer): Links, die nicht passen, brechen
   in eine zweite, verborgene Zeile um statt halb abgeschnitten zu stehen
   ("Me" statt "Menschen", gemeldet 24.09.). Alle Ressorts stehen im Mega-Menue. */
@media(min-width:768px){
  .mainnav .navscroll{flex-wrap:wrap;align-content:flex-start;overflow:hidden;height:62px;row-gap:0}
}

/* Aufmacher einer Liste ohne passendes Bild (Motivregeln): Text ueber die
   volle Breite statt schmaler Spalte neben leerer Bildflaeche. */
.feed-lead.no-media{display:block}
.feed-lead.no-media .lead-copy{max-width:68ch;padding:0}

/* MA Editorial System 1.0: Scroll-Monogramm. Das M aus der Wortmarke mit
   Merzenich-Linie und Bordeaux-Punkt (assets/marke/monogramm.svg, erzeugt von
   deploy/marke.mjs). Es erscheint in 200 ms über Deckkraft und Massstab
   0,96 zu 1, ohne Bewegung für Nutzer, die weniger Bewegung wünschen.
   !important nur, weil editorial-audit.css (per kopf.js geladen) den
   Kompaktzustand ebenfalls mit !important setzt. */
.mainnav .compact-brand{width:auto!important;flex:0 0 auto!important;height:56px!important;margin-right:6px}
.mainnav .compact-brand img.ma-monogramm{display:block!important;width:35px!important;height:35px!important;max-width:none}
@keyframes ma-monogramm-ein{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:no-preference){
  html.kopf-kompakt .mainnav .compact-brand img.ma-monogramm,.mainnav.is-scrolled .compact-brand img.ma-monogramm{animation:ma-monogramm-ein 200ms cubic-bezier(.22,1,.36,1) both;transform-origin:50% 60%}
}

/* Merzenich-Linie der Navigation: 1 px Unterkante, der aktuelle Ressortabschnitt
   liegt als Bordeaux-Segment genau auf dieser Linie statt darunter zu hängen.
   Zeile und Links sind dafür 57 px hoch (56 px Zeile + 1 px Linie). */
@media(min-width:768px){
  .mainnav .navrow{overflow:visible}
  .mainnav .navscroll{height:57px!important;align-self:flex-start}
  .mainnav .navrow .navscroll>a{box-sizing:border-box;height:57px;display:inline-flex!important;align-items:center;padding:0!important;border-bottom:2px solid transparent!important}
  .mainnav .navrow .navscroll>a[aria-current],.mainnav .navrow .navscroll>a.ressort-open{border-bottom-color:var(--ma-red,#971725)!important}
}

/* Anzeige aufgeben oben in der Schublade (KBS/Ordin 26.09.2026). Der rote
   Knopf im Kopf ist seit 29.09. entfernt (Wunsch Betreiber). */
.drawer-anzeige{display:block;margin:12px 16px 4px;padding:13px 16px;background:var(--red,#971725);color:#fdfbf8!important;font-weight:700;text-align:center;text-decoration:none}
.social-links{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}
.social-links a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;border:1px solid var(--line,#ddd);text-decoration:none;font-weight:600;font-size:14px}
.social-links svg{width:20px;height:20px}
@media (min-width:768px) and (max-width:1180px){.mast-actions .header-local{display:none!important}}

/* Sportseite, rechte Spalte (KBS/Ordin 26.09.2026) */
.sport-leiste .sport-termine,.sport-leiste .sport-vereine{list-style:none;margin:0;padding:0}
.sport-leiste .sport-termine li,.sport-leiste .sport-vereine li{display:grid;gap:2px;padding:9px 0;border-bottom:1px solid var(--line,#e3e3e1)}
.sport-leiste .sport-termine li:last-child,.sport-leiste .sport-vereine li:last-child{border-bottom:0}
.sport-leiste time{font-size:12px;font-weight:700;color:var(--red,#971725)}
.sport-leiste li a{font-size:14px;font-weight:650;line-height:1.3;color:var(--ink,#161616);text-decoration:none}
.sport-leiste li a:hover{text-decoration:underline;text-underline-offset:3px}
.sport-leiste small{font-size:12px;color:var(--muted,#5f5b55)}
.sport-leiste-quelle{margin:8px 0 0;font-size:11.5px;color:var(--muted,#5f5b55)}
.sidebar .werbung--sport{margin-top:24px}

/* Anzeige-Assistent (26.09.2026): fuenf Schritte, jede Auswahl als Bildkarte. */
.anz-fortschritt{display:flex;gap:6px;margin:0 0 6px;padding:0;list-style:none;counter-reset:none}
.anz-fortschritt li{flex:1;display:flex;align-items:center;gap:8px;padding:10px 0 0;border-top:3px solid var(--line,#e3e1dd);font-size:13px;font-weight:650;color:#6f6a63}
.anz-fortschritt li span{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1px solid currentColor;font-size:12px}
.anz-fortschritt li.ist-fertig{border-top-color:#5f5b55;color:#34312d}
.anz-fortschritt li.ist-aktuell{border-top-color:var(--red,#971725);color:var(--red,#971725)}
.anz-fortschritt li.ist-aktuell span{background:var(--red,#971725);border-color:var(--red,#971725);color:#fdfbf8}
@media (max-width:640px){.anz-fortschritt li{font-size:0;gap:0;justify-content:center}.anz-fortschritt li span{font-size:12px}}
.anz-assistent .anz-schritt[hidden]{display:none}
.anz-assistent.ist-assistent .anz-schritt{padding-top:6px;border-top:0}
.anz-karten{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:12px}
.anz-karten--gross{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:760px){.anz-karten--gross{grid-template-columns:repeat(4,minmax(0,1fr))}}
.anz-form .anz-karte{position:relative;display:flex;flex-direction:column;gap:6px;margin:0;padding:0 0 14px;border:1px solid var(--line,#e3e1dd);background:#fdfdfc;cursor:pointer;min-height:100%;transition:border-color .15s ease-out,background-color .15s ease-out}
.anz-karte input{position:absolute;opacity:0;pointer-events:none}
.anz-karte__bild{display:grid;place-items:center;aspect-ratio:16/10;background:#f3ede6;color:var(--red,#971725)}
.anz-karte__bild svg{width:46%;height:auto;max-height:80%}
.anz-karten--gross .anz-karte__bild svg{width:40%}
.anz-karte__titel{display:block;padding:4px 12px 0;font-family:var(--serif);font-size:18px;font-weight:600;line-height:1.2;color:var(--ink,#171513)}
.anz-karte__text{display:block;padding:0 12px;font-size:13.5px;line-height:1.4;color:#5f5b55}
.anz-form .anz-karte:hover{border-color:#8f8a83}
.anz-form .anz-karte:has(input:checked){border-color:var(--red,#971725);outline:2px solid var(--red,#971725);outline-offset:-2px;background:#fbf6f2}
.anz-karte:has(input:checked) .anz-karte__bild{background:var(--red,#971725);color:#fdfbf8}
.anz-karte:has(input:focus-visible){outline:3px solid var(--ink,#171513);outline-offset:2px}
.anz-gruppe{margin:0 0 18px!important}
.anz-gruppe>legend{margin:0 0 10px;padding:0;font-size:16px;font-weight:700;color:var(--ink,#171513)}
.anz-teil__titel{margin:0;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#5f5b55}
.anz-assistent .anz-teil{background:transparent;border:0!important;padding:0}
.anz-hinweis{margin:0;font-size:13.5px;color:#5f5b55}
.anz-fehler{margin:6px 0 0;padding:10px 12px;background:#fbeceb;color:#77101b;font-size:14px;font-weight:600}
.anz-navigation{display:flex;justify-content:space-between;gap:12px;margin-top:8px;padding-top:16px;border-top:1px solid var(--line,#e3e1dd)}
.anz-navigation [hidden]{display:none}
.anz-navigation [data-weiter]{margin-left:auto}
.anz-uebersicht{padding:14px 16px;background:#f5f4f1;border:1px solid var(--line,#e3e1dd)}
.anz-uebersicht__titel{margin:0 0 8px;font-weight:700}
.anz-uebersicht dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:0;font-size:14px}
.anz-uebersicht dt{color:#5f5b55}
.anz-uebersicht dd{margin:0;font-weight:600}

/* Unternehmen aus Merzenich (/unternehmen/) und Angebote unter /tipp/ (26.09.2026) */
.firmen{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}
.firma{display:flex;flex-direction:column;border:1px solid var(--line,#e3e1dd);background:#fdfdfc}
.firma-bild{aspect-ratio:16/10;overflow:hidden;background:#f3ede6}
.firma-bild img{width:100%;height:100%;object-fit:cover;display:block}
.firma-bild--zeichen,.firma-bild--frei{display:grid;place-items:center;color:var(--red,#971725);font-family:var(--serif);font-size:40px;font-weight:700}
.firma-bild--frei .anz-karte__bild{display:grid;place-items:center;width:100%;height:100%;background:transparent}
.firma-bild--frei svg{width:34%;height:auto}
.firma-text{display:flex;flex-direction:column;gap:6px;padding:14px 16px 16px}
.firma-text h2{margin:0;font-family:var(--serif);font-size:21px;line-height:1.2}
.firma-text p{margin:0;font-size:14.5px;line-height:1.45;color:#34312d}
.firma-branche{font-size:12px!important;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--red,#971725)!important}
.firma--frei{border-style:dashed;background:transparent}
.firma-daten{display:grid;grid-template-columns:max-content 1fr;gap:3px 12px;margin:4px 0 0;font-size:14px}
.firma-daten dt{color:#5f5b55}.firma-daten dd{margin:0}
.firma-kennung,.firma-nachweis{font-size:12px!important;color:#5f5b55!important}
.firmen-filter{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.firmen-filter a{padding:8px 12px;border:1px solid var(--line,#e3e1dd);text-decoration:none;font-size:14px;font-weight:600}
.firmen-weg{margin-top:36px;padding:22px 24px;background:#f5f4f1}
.firmen-weg h2{margin:0 0 10px;font-family:var(--serif);font-size:24px}
.firmen-weg ol{margin:0 0 14px;padding-left:20px;line-height:1.55}
.angebote{margin:0 0 28px}
.angebote h2{margin:0 0 6px;font-family:var(--serif);font-size:26px}
.angebote-intro{margin:0 0 14px;color:#34312d}
.angebote-liste{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.angebot{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;align-items:start;padding:14px;border:1px solid var(--line,#e3e1dd);background:#fdfdfc;color:var(--ink,#171513);text-decoration:none}
.angebot:hover{border-color:var(--red,#971725)}
.angebot-zeichen{display:grid;place-items:center;width:64px;height:56px;background:#f3ede6;color:var(--red,#971725)}
.angebot-zeichen svg{width:44px;height:auto}
.angebot-text{display:grid;gap:4px}
.angebot-text strong{font-family:var(--serif);font-size:18px;line-height:1.2}
.angebot-text span{font-size:14px;line-height:1.4;color:#5f5b55}
.angebot-text em{font-style:normal;font-size:12.5px;font-weight:700;color:var(--red,#971725)}
.angebote-mehr{margin:12px 0 0;font-size:14px}

/* Audit 28.09.2026: horizontaler Overflow bei schmalen Breiten.
   Archiv: das Grid wuchs auf die Mindestbreite langer Titel (413 px bei 320 px Fenster). */
.archive-year,.archive-month{grid-template-columns:minmax(0,1fr)}
@media (min-width:768px){.archive-year{grid-template-columns:120px minmax(0,1fr)}.archive-month{grid-template-columns:150px minmax(0,1fr)}}
.archive-list a{overflow-wrap:anywhere}
/* Ortsmarke mit langer Rubrik (Ort · Ortsteil · Rubrik) bricht um statt ueberzustehen. */
.marke{overflow-wrap:anywhere}
/* "Merzenich jetzt"-Zeile: bis 1100 px umbrechen, der Termin-Text ist lang. */
@media (max-width:1100px){html body.home .jetzt{flex-wrap:wrap;row-gap:4px;white-space:normal}html body.home .jetzt-feld{min-width:0}}
/* Lange Komposita ("Geschwindigkeitskontrolle") in schmalen Karten: trennen statt ueberstehen. */
h1,h2,h3,.karte-text h2,.karte-text h3{overflow-wrap:break-word;hyphens:auto;-webkit-hyphens:auto}
@media (max-width:767px){.archive-list li{flex-wrap:wrap}.archive-list .rs{margin-left:0}}


/* Markt-Originalbilder V3 */
.markt-thumb__badge{max-width:calc(100% - 12px);box-sizing:border-box;line-height:1.25;white-space:normal}
.markt-thumb--original{background:#eceae6}
.markt-thumb--original img{background:#eceae6}
.markt-thumb--symbol img{object-fit:cover}
@media (max-width:760px){
  .markt-row--thumb .markt-thumb{max-width:none;width:100%;aspect-ratio:16/9;margin:0 0 2px}
  .markt-row--thumb .info{min-width:0}
}

/* Ortsseiten-Seitenleiste und weitere Vereine (deploy/ortsseiten.mjs) */
.sidebox .ort-leer{font-size:13px;line-height:1.5;color:var(--muted);margin:8px 0 0}
.sidebox .ort-leer a{text-decoration:underline;text-underline-offset:2px}
.vereine-weitere{margin-top:48px;padding-top:24px;border-top:1px solid var(--ink)}
.vereine-weitere h2{font-size:28px;line-height:1.2;margin:0 0 12px}
.vereine-weitere-dek{font-size:15px;line-height:1.6;max-width:70ch;margin:0 0 24px;color:var(--text)}
.vereine-weitere-dek a{text-decoration:underline;text-underline-offset:2px}
.vereine-weitere-orte{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px 40px}
.vereine-weitere-orte h3{font-size:16px;margin:16px 0 4px}
/* Ortsseiten: Termine und Vereine auch mobil zeigen (die allgemeine Seitenleiste bleibt dort aus). */
@media (max-width:1023px){.content-grid>.sidebar:has(.ort-termine){display:block;margin-top:32px}}
/* Wetter ganz rechts im Kopf (30.09.2026): Handy- und Tabletkopf. Am Desktop
   steht es in .header-local; die Kopie nur dort, wo .header-local ausgeblendet ist. */
.kopf-wetter{display:none;align-items:center;font-size:13px;font-weight:650;color:#242424;white-space:nowrap;font-variant-numeric:tabular-nums}
@media (max-width:1180px){.mast-actions>.kopf-wetter{display:inline-flex;gap:8px}}
.kopf-wetter-wert[hidden]{display:none}
.kopf-datum{font-weight:500;color:#5f5b55}
.kopf-wetter-wert:not([hidden])+.kopf-datum::before{content:"·";margin-right:8px;color:#9a948c}
/* Handy: Wetter und Datum uebereinander, damit Logo, Suche und Menue Platz behalten. */
@media (max-width:767px){.mast-actions>.kopf-wetter{flex-direction:column;align-items:flex-end;gap:1px;line-height:1.15}.mast-actions>.kopf-wetter .kopf-datum{font-size:12.5px}.kopf-wetter-wert:not([hidden])+.kopf-datum::before{content:none}}
@media (max-width:767px){.masthead .mast-actions{gap:4px!important}.mast-actions>.kopf-wetter{font-size:14px;margin-right:4px}.kopf-wetter-icon{margin-right:3px}}
/* Wettersymbol · Merzenich · Temperatur (02.10.2026): Ortsname mit Punkt vor der Temperatur. */
.kopf-wetter-ort{margin-right:2px}.kopf-wetter-ort::after{content:" ·";color:#9a948c;font-weight:400;margin-right:2px}
/* Schmale Handys: das Wort „Merzenich“ fällt weg, Symbol und Temperatur bleiben. */
@media (max-width:389px){.kopf-wetter-ort{display:none}.mast-actions>.kopf-wetter{font-size:13px}.masthead .logo img{height:auto!important;width:172px!important;max-width:172px!important}}
/* Handykopf (03.10.2026): „Merzenich“ beim Wetter lief bei 360–479 px über das Logo.
   Unter 480 px wieder wie am 30.09.: Symbol, Temperatur, Datum; unter 390 px ohne Symbol. */
@media (max-width:479px){.kopf-wetter-ort{display:none}}
@media (min-width:390px) and (max-width:409px){.masthead .logo img{height:auto!important;width:180px!important;max-width:180px!important}}
@media (max-width:389px){.kopf-wetter-icon{display:none}}
@media (max-width:340px){.masthead .logo img{width:140px!important;max-width:140px!important}}
/* Unternehmen (30.09.2026, Aufbau wie der Wirtschaftsbereich von Oberberg Aktuell):
   Karten je zwei nebeneinander, Bild oben, Kicker, Titel, Zeile mit Datum bzw.
   „Anzeige“, Anriss, Weiterlesen. Nachladen beim Scrollen (unternehmen.js). */
.u-karten{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 32px}
.u-karte{display:flex;flex-direction:column;min-width:0;border-bottom:1px solid var(--line);padding-bottom:22px}
.u-karte[hidden]{display:none}
.u-karte__bild{display:block;position:relative;aspect-ratio:16/9;overflow:hidden;background:#ece9e3;margin-bottom:14px}
.u-karte__bild img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s cubic-bezier(.22,1,.36,1)}
.u-karte__bild:hover img{transform:scale(1.02)}
.u-karte__bild .badge{position:absolute;left:8px;bottom:8px}
.u-karte__kicker{margin:0 0 6px;font:800 11px/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--red,#8c1c22)}
.u-karte h2{margin:0 0 8px;font-family:var(--serif);font-size:24px;line-height:1.16;letter-spacing:-.01em}
.u-karte h2 a{color:var(--ink);text-decoration:none}
.u-karte h2 a:hover{color:var(--red,#8c1c22)}
.u-karte__meta{margin:0 0 12px;font-size:12.5px;color:#5f5b55;font-style:italic}
.u-karte__meta .fbadge{font-style:normal}
.u-karte__teaser{margin:0 0 16px;font-size:15.5px;line-height:1.55;color:var(--ink)}
.u-karte__weiter{margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;min-height:36px;padding:6px 12px;background:var(--red,#8c1c22);color:#fff;font:700 12px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;border-radius:2px}
.u-karte__weiter:hover,.u-karte__weiter:focus-visible{background:var(--ink)}
.u-mehr{text-align:center;margin:32px 0 0}
.u-box .u-kanaele{list-style:none;margin:0 0 14px;padding:0}
.u-box .u-kanaele li{padding:9px 0;border-bottom:1px solid var(--line)}
.u-box .u-kanaele a{font-weight:700;color:var(--ink)}
.u-box .u-kanaele small{display:block;font-size:12px;color:#5f5b55}
.u-leer{font-size:14px;line-height:1.55;color:#5f5b55;margin:0 0 14px}
.sidebar .werbung--unternehmen{margin-top:24px}
@media (max-width:767px){.u-karten{grid-template-columns:1fr;gap:28px}.u-karte h2{font-size:21px}.content-grid>.sidebar:has(.u-box){display:block;margin-top:40px}}

/* 04.10.2026 (Auftraggeber): Der Kopf darf beim Scrollen keinen Bruch haben.
   Vorher klebte der grosse Kopf erst am Browserrand, die Ressortleiste hing
   84 px darunter, und nach wenigen Pixeln klappte der Kopf mit Animation weg
   (kopf.js setzt html.kopf-kompakt). Jetzt scrollt der grosse Kopf wie Inhalt
   weg, und die Ressortleiste klebt ohne Sprung ganz oben: sticky auf
   .nav-anchor, dem direkten Kind von body, keine fixed-Umschaltung, keine
   Animation. Das kleine Logo erscheint weiter ueber .is-scrolled. Mobil bleibt
   der schmale Kopf oben, wie er ist. */
@media (min-width:768px){
  .masthead,.kopf-kompakt .masthead{position:static;transform:none;opacity:1;pointer-events:auto;transition:none}
  body>.nav-anchor{position:sticky;top:0;z-index:70;height:auto;min-height:0}
  .mainnav,.mainnav.is-scrolled,.kopf-kompakt .mainnav.is-scrolled{position:relative;top:0;left:auto;right:auto;transition:none}
  /* Eingeloggt in WordPress: unter der Admin-Leiste bleiben. */
  .admin-bar body>.nav-anchor,body.admin-bar>.nav-anchor{top:32px}
}
@media (min-width:768px) and (max-width:782px){.admin-bar body>.nav-anchor,body.admin-bar>.nav-anchor{top:46px}}

/* Kopf (Vorgabe Betreiber 07.10.2026, Vorbild Oberberg Aktuell): die Lupe
   steht auf jeder Breite rechts, nicht erst beim Scrollen; das breite Suchfeld
   neben dem Logo entfaellt. Ein Klick oeffnet das Suchfeld unter dem Kopf
   (app.js). „Mehr“ und das Menue-Symbol oeffnen die Spalte von rechts. */
.masthead .mast-search{display:none!important}
@media (min-width:768px){
  .masthead .shell.mast-inner{grid-template-columns:auto minmax(0,1fr)}
  .masthead .mast-actions{justify-self:end;margin-left:auto}
  .mainnav .navrow .compact-search{display:flex!important;align-items:center;justify-content:center;flex:0 0 44px;width:44px;min-height:44px;margin-left:auto;color:var(--ink,#17191b)}
  .mainnav .navrow .compact-search svg{width:22px;height:22px}
  .mainnav .navrow .compact-search:hover,.mainnav .navrow .compact-search[aria-expanded="true"]{color:var(--red,#971725)}
}
.drawer .panel{left:auto!important;right:0}
.kopf-suche{background:#fff;border-top:1px solid #e6e6e4;border-bottom:1px solid #e6e6e4;padding:12px 0}
.kopf-suche .shell{display:flex;gap:8px;align-items:center}
.kopf-suche input{flex:1 1 auto;min-width:0;height:46px;padding:0 14px;border:1px solid #c9c7c2;border-radius:8px;font:inherit;font-size:16px;color:#17191b;background:#fbfbfa}
.kopf-suche input:focus{outline:2px solid #971725;outline-offset:1px;border-color:#971725}
.kopf-suche button[type=submit]{height:46px;padding:0 18px;border:0;border-radius:8px;background:#971725;color:#fff;font:inherit;font-weight:700;cursor:pointer}
.kopf-suche__zu{width:44px;height:46px;border:0;background:none;font-size:26px;line-height:1;color:#555;cursor:pointer}
@media (max-width:767px){.masthead .kopf-suche{position:absolute;left:0;right:0;top:100%;z-index:5}}
/* Startseite: das Logo ist die H1 (Theme 21.17.0, ma21_kopf_logo_h1). Die Überschrift darf am Kopf nichts verschieben. */
.masthead .logo-h1{display:block;flex:0 0 auto;min-width:0;margin:0;padding:0;font:inherit;line-height:normal}
/* „Merzenich jetzt“ verlinkt auf /heute/: Aussehen wie vorher, unterstrichen nur beim Zeigen. */
body.home .mj-ort a{color:inherit;text-decoration:none}
body.home .mj-ort a:hover,body.home .mj-ort a:focus-visible{text-decoration:underline;text-underline-offset:4px}
/* Seite „Heute in Merzenich“ (/heute/, 21.17.0): Abstände zwischen den Abschnitten. */
.heute .section-head{margin-top:44px}
.heute .section-head:first-child{margin-top:0}
.heute .event-list{margin-bottom:8px}
.heute .no-result{margin:8px 0 0}
.heute-meldungen .feed-row:last-child{border-bottom:0}
.heute-weiter{margin:36px 0 0;padding-top:18px;border-top:1px solid #e3e1dc;color:#5e5953}
/* Home-Knopf links neben „Aktuell“ (Wunsch Betreiber 15.10.2026): führt zur
   Startseite wie das Logo. Im eingeklappten Kopf beim Scrollen steht dort das
   Monogramm (ebenfalls ein Link zur Startseite), deshalb dann nur eines. */
.mainnav .navrow .nav-home{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;margin:0 -6px 0 -10px;color:var(--ink,#17191b);border-radius:4px;text-decoration:none}
.mainnav .navrow .nav-home svg{display:block;width:22px;height:22px}
.mainnav .navrow .nav-home:hover,.mainnav .navrow .nav-home[aria-current="page"]{color:var(--red,#971725)}
.mainnav .navrow .nav-home:focus-visible{outline:2px solid var(--red,#971725);outline-offset:-2px}
.mainnav.is-scrolled .navrow .nav-home,html.kopf-kompakt .mainnav .navrow .nav-home{display:none}
@media (max-width:767px){
  .mainnav .navrow .nav-home{flex-basis:40px;width:40px;margin:0 8px 0 -10px}
  .mainnav.is-scrolled .navrow .nav-home{display:inline-flex}
}
/* Endlos-Scrollen (Wunsch Betreiber 15.10.2026, assets/endlos.js): Listen laden
   beim Scrollen weiter. Der Knopf bleibt als Rückfall (Fehler, ohne
   IntersectionObserver, Tastatur); am Ende ein Hinweis mit Weg ins Archiv. */
.endlos{display:flex;flex-direction:column;align-items:center;gap:14px;padding:30px 0 8px;text-align:center}
.endlos-knopf{min-height:48px;padding:12px 26px;border:1px solid var(--ink,#17191b);border-radius:4px;background:none;color:var(--ink,#17191b);font:700 15px/1.3 var(--sans,system-ui,sans-serif);cursor:pointer}
.endlos-knopf:hover{background:var(--ink,#17191b);color:#fbfaf8}
.endlos-knopf:focus-visible{outline:2px solid var(--red,#971725);outline-offset:3px}
.endlos-knopf[aria-disabled="true"]{cursor:progress;opacity:.7}
.endlos-knopf[hidden],.endlos-ende[hidden]{display:none}
.endlos-ende{width:100%;margin:0;padding-top:18px;border-top:1px solid var(--line,#e3e3e1);color:var(--muted,#615d55);font-size:15px;line-height:1.5}
.endlos-ende a{color:var(--ink,#17191b);text-decoration:underline;text-underline-offset:3px}
/* Startseite: „Weitere Meldungen“ nach den Blöcken. */
.weitere-meldungen__ohne-js{margin:0;font-size:16px}
.weitere-meldungen__ohne-js a{text-decoration:underline;text-underline-offset:3px}
.weitere-meldungen .feed-row:first-child{padding-top:0}
/* Ausbaustufe (15.10.2026, wordpress/theme/merzenich-aktuell/inc/ausbau.php):
   Ausgeblendete Einträge (z. B. Vereine in der Leiste) bleiben im HTML
   gespeichert. WordPress entfernt sie serverseitig oder zeigt sie mit
   eingeschaltetem Schalter ohne dieses Merkmal; die statische Kopie blendet sie aus. */
[data-ausbau],.mainnav .navrow .navscroll>a[data-ausbau],[data-drawer] .drawer-group>a[data-ausbau]{display:none!important}

/* Vorführ-Check 15.10.2026 (Theme 21.19.1) */
/* Knöpfe im Fließtext: .info-prose a färbte „Werbung anfragen“ dunkelrot auf dunklem Knopf (Kontrast 1,5:1). */
.info-prose a.btn,.info-prose a.btn:hover{color:#fff;text-decoration:none}
.info-prose a.btn.ghost{color:var(--ink)}
/* Überschriften in Listen: Der Aufmacher steht immer ganz da (die Einwendungsfrist im Titel fehlte bei 1280 px),
   Zeilen erst nach fünf Zeilen gekürzt statt nach drei (Handy). system.css begrenzte beide auf drei Zeilen. */
html body .feed-lead.feed-lead h2{display:block;-webkit-line-clamp:unset;line-clamp:none;overflow:visible}
html body .feed-row.feed-row h3{-webkit-line-clamp:5;line-clamp:5}
/* Handy-Menü über dem klebenden Kopf (recovery.css: z-index 120), sonst verdeckte der Kopf Logo und × der Menüspalte. */
.drawer{z-index:130}
/* Meldungsseite: Kopf und Text auf derselben Kante (Titel stand 30 px weiter rechts als Bild und Text). */
.article-head .shell{max-width:1160px}
@media(max-width:1024px){.article-grid{justify-content:start}}
/* Stellenmarkt: Die Art (Ausbildung, Produktion …) steht schon in der Kopfzeile der Anzeige; die 55-px-Spalte
   daneben brach sie mitten im Wort um („AUSBILDU/NG“). Wie auf dem Handy entfällt die Spalte. */
.markt-liste .markt-row:not(.markt-row--thumb){grid-template-columns:minmax(0,1fr)}
.markt-liste .markt-row:not(.markt-row--thumb)>.d{display:none}
.markt-liste .markt-row:not(.markt-row--thumb) .act{grid-column:1}
/* Dafür die Art bzw. Branche in der Kopfzeile auch am Desktop zeigen (sonst stand sie nirgends, Review 16.10.2026). */
.markt-liste .markt-row:not(.markt-row--thumb) .markt-art{display:inline}
/* Tabellenauszug auf dem Handy: S, U, N und Diff. ausblenden, damit Pkt. ohne seitliches Wischen zu sehen ist. */
@media(max-width:560px){
  .league-table{min-width:0}
  .league-table tr>:nth-child(4),.league-table tr>:nth-child(5),.league-table tr>:nth-child(6),.league-table tr>:nth-child(8){display:none}
  .league-table th:nth-child(2){min-width:0}
  .league-table th,.league-table td{padding:10px 8px}
  .league-table .league-gap td{padding:4px 8px}
}
/* Sportseite (16.10.2026): Unter den Sportmeldungen alle Sportvereine der Gemeinde
   (ma21_sport_vereine). Ruhige Liste ohne Karten-Schatten: Vereinszeichen,
   Ortsteil, Name, Sportarten als Etiketten, Profil und Website. */
.sport-vereinsliste{margin-top:64px;border-top:2px solid var(--ink,#17191b);padding-top:20px}
.sv-kopf{margin-bottom:8px}
.sv-kopf h2{font-family:var(--serif);font-size:clamp(30px,3.2vw,44px);font-weight:700;line-height:1.04;letter-spacing:-.02em;margin:8px 0 0}
.sv-dek{font-size:17px;line-height:1.55;color:var(--ink,#17191b);max-width:62ch;margin:10px 0 0}
.sv-sprung{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.sv-sprung a{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:8px 14px;border:1px solid var(--line,#e3e3e1);border-radius:999px;font-size:14px;font-weight:600;color:var(--ink,#17191b);background:var(--card,#fff);transition:border-color .18s ease-out,color .18s ease-out}
.sv-sprung a span{font-size:12px;font-weight:800;color:var(--red-dark,#70111b)}
.sv-sprung a:hover,.sv-sprung a:focus-visible{border-color:var(--red,#971725);color:var(--red-dark,#70111b)}
.sv-gruppe{margin-top:40px;scroll-margin-top:96px}
.sv-gruppe h3{font-family:var(--sans);font-size:12.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--red-dark,#70111b);margin:0 0 6px}
.sv-raster{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:36px}
.sv-verein{display:grid;grid-template-columns:56px minmax(0,1fr);gap:16px;align-items:start;padding:20px 0;border-top:1px solid var(--line,#e3e3e1)}
.sv-zeichen{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--red-wash,#faf1f2);color:var(--red-dark,#70111b);font-family:var(--sans);font-weight:800;font-size:15px;letter-spacing:.03em;object-fit:cover}
img.sv-zeichen{background:var(--card,#fff);border:1px solid var(--line,#e3e3e1)}
.sv-ort{display:block;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted,#686b70)}
.sv-verein h4{font-family:var(--serif);font-size:20px;font-weight:700;line-height:1.22;margin:5px 0 10px;color:var(--ink,#17191b)}
.sv-sparten{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.sv-sparten li{font-size:12.5px;line-height:1.2;padding:5px 9px;background:#f3f3f1;border-radius:3px;color:var(--ink,#17191b)}
.sv-sparten a{color:var(--red-dark,#70111b)}
.sv-links{display:flex;flex-wrap:wrap;gap:4px 18px;margin:0;font-size:14px;font-weight:600}
.sv-links a{display:inline-flex;align-items:center;min-height:36px;color:var(--red-dark,#70111b);text-decoration:underline;text-underline-offset:3px}
.sv-fuss{margin:32px 0 0;padding-top:16px;border-top:1px solid var(--line,#e3e3e1);font-size:14px;line-height:1.55;color:var(--muted,#686b70)}
.sv-fuss a{color:var(--red-dark,#70111b)}
@media(max-width:1024px){.sv-raster{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}}
@media(max-width:640px){.sport-vereinsliste{margin-top:44px}.sv-raster{grid-template-columns:minmax(0,1fr)}.sv-verein{grid-template-columns:48px minmax(0,1fr);gap:14px;padding:16px 0}.sv-zeichen{width:48px;height:48px;font-size:14px}.sv-verein h4{font-size:18px}.sv-dek{font-size:16px}}

/* Feinschliff 16.10.2026 (Theme 21.20.1, noch nicht live) */
/* „Link kopieren“: sichtbare Bestätigung neben den Knöpfen statt nur für Screenreader. */
.share .share-status{align-self:center;font:500 13px/1.4 var(--sans);color:var(--ok,#1f6f43);white-space:nowrap}
.share .share-status:empty{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media(min-width:1360px){.article .share .share-status{white-space:normal;width:44px;font-size:11px;line-height:1.2;text-align:center}}
/* „Das passt zum Thema“ unter einer Meldung: bei 820 px stand die dritte Karte allein in einer Reihe,
   am Handy brachen die Titel nach drei Zeilen ab. Drei Spalten bis 641 px, Titel wie in Listen nach fünf Zeilen. */
@media(min-width:768px) and (max-width:1100px){body.single .cards-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}body.single .cards-3 .news-card h3{font-size:18px;line-height:1.25}}
html body.single .cards-3 .news-card h3{-webkit-line-clamp:5;line-clamp:5}
/* Kopf: Wettersymbol und Ortsname hatten bei 768–1180 px keinen Abstand („☁Merzenich“). */
@media(min-width:768px) and (max-width:1180px){.kopf-wetter-icon{margin-right:6px}}
/* Handy: Die Ressortleiste läuft rechts aus, damit man sieht, dass es weitergeht; das Polster lässt den letzten Punkt aus dem Verlauf scrollen. */
@media(max-width:767px){.mainnav .navscroll{padding-right:32px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent)}}
/* Listen: Unter der letzten Zeile stand eine zweite Linie über dem Endhinweis (die Zeile hat schon eine Unterlinie). */
.feed-row+.endlos .endlos-ende{border-top:0;padding-top:0}
/* Bildhinweis („Symbolbild“, „Ortsansicht“) auch in Zeilenlisten zeigen; v19.css blendete ihn aus. */
.feed-row .media .badge{display:block;left:6px;bottom:6px;font-size:10px;padding:2px 6px}
/* Schmale Karten und Handy: „Merzenich · Ortsteil“ bleibt zusammen, solange es in die Spalte passt; die Rubrik rückt als Ganzes in die nächste Zeile (brach vorher nach dem Punkt um). */
.marke{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:10px}
.marke>.marke-ort,.marke>.marke-teil{display:contents}
.marke .marke-rubrik,body.home .marke .marke-rubrik,.marke .gesponsert{margin-left:0}
/* Bühne ab 760 px: Der Ort ist dort ein roter Kasten (eigenes Element), der Ortsteil folgt ohne Lücke. */
@media(min-width:760px){body.home .buehne .front-lead .marke{column-gap:0}body.home .buehne .front-lead .marke .marke-rubrik{margin-left:10px}}
/* Anzeige unter der Meldung am Handy: Überschrift und Zeile zweizeilig statt mit „…“ abgeschnitten. */

/* Vorführ-Check, Gruppe Markt (17.10.2026) */
/* Etikett „Musterbeitrag“ verdeckte am Handy ein Viertel des kleinen Vorschaubilds: dort kurz „Muster“ in der Ecke (der Text darunter nennt „Musterbeitrag“). */
@media(max-width:759px){.u-firmen-karte .media .badge[data-kurz]{font-size:0;letter-spacing:0;padding:2px 5px;left:4px;bottom:4px;top:auto;line-height:1}.u-firmen-karte .media .badge[data-kurz]::after{content:attr(data-kurz);font:600 9px/1.2 var(--sans)}}
/* /termine/ am Handy: Der erste Termin stand unter dem ersten Bildschirm (Kopf 314 px, Filter 290 px). Kopf ohne Einleitungssatz, Zeiträume in einer wischbaren Zeile, Auswahlfelder ohne sichtbare Beschriftung (die Felder nennen „Alle Ortsteile“ bzw. „Alle Kategorien“). */
@media(max-width:759px){
  main:has([data-event-filters]) .page-head{padding-top:14px}
  main:has([data-event-filters]) .page-head .crumbs{margin-bottom:10px}
  main:has([data-event-filters]) .page-head h1{font-size:27px;line-height:1.15;margin:6px 0 8px}
  main:has([data-event-filters]) .page-head .desc{display:none}
  main:has([data-event-filters]) .page-head .count-line{margin-top:6px}
  .filter-controls[data-event-filters]{gap:10px;padding:12px 0;margin-bottom:12px}
  /* Polster 6 px: Platz für den Fokusrahmen (2 px, Abstand 4 px), den die wischbare Zeile sonst abschneidet. */
  .filter-controls[data-event-filters] .period-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;gap:6px;padding:6px;margin:-6px}
  .filter-controls[data-event-filters] .period-tabs::-webkit-scrollbar{display:none}
  .filter-controls[data-event-filters] .period-tabs button{flex:0 0 auto;min-height:40px;padding:6px 12px;font-size:13px}
  .filter-controls[data-event-filters] label{font-size:0;gap:0}
  .filter-controls[data-event-filters] select{height:40px;font-size:14px}
  .filter-controls[data-event-filters] .ansicht-tabs button{min-height:40px}
  .filter-controls[data-event-filters]+[data-event-count]{margin-top:0}
}
/* Startseite, „Weitere Meldungen“: Karten im Raster der Rubrikblöcke (.desk-mittel, startseite.css); die Anzeige über die ganze Zeile. */
body.home .desk-mittel.weitere-meldungen__raster{margin-top:0}
body.home .weitere-meldungen__raster>.bildraster-werbung{grid-column:1/-1}

/* Markenlogo 04 (Freigabe Arun und Ordin 09.11.2026, docs/branding/LOGO-04-FREIGABE-2026-11-09.md).
   assets/marke/logo-04.png ist das Original (1348 × 692, weißer Grund) und wird nur skaliert:
   immer ganz, im Seitenverhältnis, nie beschnitten oder umgefärbt. Kopf und Fuß stehen auf Weiß.
   Die Regeln stehen gesammelt hier und mit höherer Spezifität, weil ältere Dateien
   (recovery.css, v20.css, editorial-audit.css) Logo und Kopfhöhe mit festen Werten setzen.
   Am Handy bleibt der Kopf beim Scrollen stehen (kopf.js), deshalb dort moderat. */
html body .masthead a.logo img{width:230px!important;max-width:100%!important;height:auto!important;max-height:none!important;aspect-ratio:1348/692;object-fit:contain!important;object-position:left center;display:block;margin:0}
html body .masthead{height:auto!important}
/* Endgültig schon vor editorial-audit.css (lädt spät): Logo-Link schrumpft nicht, Kopf als Flexzeile. */
html body .masthead a.logo{flex:0 0 auto!important;max-width:none!important}
html body .masthead .mast-inner{min-height:0!important;padding-top:8px!important;padding-bottom:8px!important;display:flex!important;align-items:center!important;height:auto!important}
@media (max-width:900px){html body .masthead a.logo img{width:200px!important}}
@media (max-width:767px){html body .masthead .mast-inner{padding-top:4px!important;padding-bottom:4px!important}html body .masthead a.logo img{width:170px!important}}
@media (max-width:374px){html body .masthead a.logo img{width:150px!important}}
@media (max-width:340px){html body .masthead a.logo img{width:136px!important}}
/* Schublade: dunkler Grund, das Logo liegt auf einer hellen Fläche (nicht invertiert). */
html body .drawer .panel-top .logo-flaeche{display:inline-flex;background:#fff;border-radius:8px;padding:6px 10px;line-height:0}
html body .drawer .panel-top .logo-flaeche img{width:170px!important;height:auto!important;max-width:100%;aspect-ratio:1348/692;object-fit:contain}
/* Fuß */
html body .footer-brandline>a{flex:0 0 auto;line-height:0}
html body .footer-brandline img{width:190px!important;height:auto!important;max-width:100%;aspect-ratio:1348/692;object-fit:contain}
@media (max-width:767px){html body .footer-brandline img{width:150px!important}}
@media print{html body .masthead a.logo img{width:200px!important}}

/* ---- werbung.css ---- */
/* Werbesystem: Gestaltung der Anzeigenrotation vom 24.09.2026 (cab41c4a,
   anzeigen-rotation.css), auf Wunsch des Auftraggebers unveraendert in allen
   Werbeflaechen (27.09.2026). Gefuellt von deploy/anzeigen.mjs, rotiert von
   assets/werbung.js. Band = Werbebaender und Artikelseiten, gap = Spalten.
   Feste Hoehen: beim Motivwechsel springt nichts. */
.werbung{position:relative}
.werbung--band,.werbung--artikel{box-sizing:border-box;padding:12px 0;border-top:1px solid var(--ma-line,#deddd9)}
.werbung--band{margin-top:32px;margin-bottom:8px}
/* Band im Seitenraster (03.10.2026): padding:12px 0 nahm .shell den Seitenrand,
   am Handy liefen Label, Linie und Anzeige randlos. So breit wie die Inhaltsspalten. */
.werbung--band.shell{width:calc(100% - 2 * var(--gutter,20px));max-width:calc(var(--shell,1360px) - 2 * var(--gutter,20px))}
.werbung--artikel{margin:28px 0}
.werbung-label{display:block;margin-bottom:8px;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#6f6a63}
.werbung--spalte .werbung-label,.werbung--sport .werbung-label,.werbung--unternehmen .werbung-label{margin-bottom:7px;color:#77716a;font-size:9px;font-weight:800;letter-spacing:.13em}
/* Fotonachweis (CC BY-SA) rechts in der Zeile des Anzeigen-Labels, ausserhalb
   der Anzeige und ohne zusaetzliche Hoehe (die Servicespalte der Startseite
   darf nicht wachsen, QA "tote Flaeche"); leer bei CC0. */
.werbung{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:10px;align-items:baseline}
.werbung>.werbung-label{grid-column:1;grid-row:1}
.werbung>.werbung-credit{grid-column:2;grid-row:1;margin:0 0 8px;font-family:var(--sans);font-size:11px;line-height:1.3;color:#6f6a63;text-align:right}
.werbung>.werbung-flaeche{grid-column:1/-1;grid-row:2}
.werbung--spalte>.werbung-credit,.werbung--sport>.werbung-credit,.werbung--unternehmen>.werbung-credit{margin-bottom:7px;font-size:9px}
.werbung--spalte .werbung-credit-vor,.werbung--sport .werbung-credit-vor,.werbung--unternehmen .werbung-credit-vor{display:none}
.werbung-credit:empty{display:none}
.werbung-credit a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.ma-ad-rotator{
  min-width:0;
  opacity:1;
  transition:opacity 180ms ease;
}
.ma-ad-rotator.is-changing{opacity:0}

.ma-ad-card{
  height:100%;
  min-width:0;
  display:grid;
  color:#17191b;
  background:#fff;
  border:1px solid var(--ma-line,#deddd9);
  border-radius:2px;
  overflow:hidden;
  text-decoration:none;
}
.ma-ad-copy{
  min-width:0;
  display:flex;
  align-items:center;
  gap:12px;
  padding:11px 16px;
}
.ma-ad-eyebrow{
  flex:0 0 auto;
  color:#6f6a63;
  font-size:10px;
  font-weight:800;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.ma-ad-copy strong{
  min-width:0;
  font-family:var(--serif);
  font-size:clamp(18px,1.7vw,24px);
  font-weight:650;
  line-height:1.05;
  letter-spacing:-.01em;
}
.ma-ad-text{
  min-width:0;
  color:#5f5b56;
  font-size:12px;
  line-height:1.35;
}
.ma-ad-cta{
  flex:0 0 auto;
  padding:8px 10px;
  border:1px solid currentColor;
  border-radius:2px;
  font-size:10px;
  font-weight:800;
  letter-spacing:.04em;
  white-space:nowrap;
}
.ma-ad-muster{display:none}

.ma-ad-art{
  position:relative;
  grid-column:2;
  grid-row:1;
  overflow:hidden;
  min-width:0;
}
.ma-ad-card--band .ma-ad-copy{grid-column:1;grid-row:1}
.ma-ad-art-word{
  position:absolute;
  right:13px;
  bottom:7px;
  color:rgba(255,255,255,.92);
  font-family:var(--sans);
  font-size:12px;
  font-weight:850;
  letter-spacing:.14em;
}

.ma-ad-art--bank{background:#0d5cab}
.ma-ad-x,
.ma-ad-x::before{
  position:absolute;
  content:"";
  width:76px;
  height:18px;
  top:34px;
  left:50%;
  margin-left:-38px;
  background:#fff;
  transform:rotate(42deg);
  opacity:.95;
}
.ma-ad-x::before{top:0;left:0;margin:0;transform:rotate(96deg)}
.ma-ad-theme--bank .ma-ad-cta{color:#0d5cab}

.ma-ad-art--sport{background:#096b43}
.ma-ad-art--sport::before{
  content:"";
  position:absolute;
  inset:13px 18px;
  border:1px solid rgba(255,255,255,.74);
}
.ma-ad-art--sport::after{
  content:"";
  position:absolute;
  width:42px;
  height:42px;
  border:1px solid rgba(255,255,255,.74);
  border-radius:50%;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
}
.ma-ad-ball{
  position:absolute;
  width:25px;
  height:25px;
  left:24px;
  bottom:15px;
  border:2px solid #fff;
  border-radius:50%;
  background:#fff;
  box-shadow:inset 0 0 0 7px #096b43;
}
.ma-ad-theme--sport .ma-ad-cta{color:#096b43}
.ma-ad-card:hover,
.ma-ad-card:focus-visible{border-color:#8e8a84}
.ma-ad-card:hover .ma-ad-cta,
.ma-ad-card:focus-visible .ma-ad-cta{text-decoration:underline;text-underline-offset:2px}


@media (max-width:900px){
  .werbung--band,.werbung--artikel{margin-top:24px!important;margin-bottom:24px}
  .werbung--spalte,.werbung--sport{display:none}
}

@media (max-width:560px){
  .werbung--band,.werbung--artikel{margin-top:20px!important;margin-bottom:20px;padding-block:10px}
  .ma-ad-art-word{display:none}
}

@media (prefers-reduced-motion:reduce){
  .ma-ad-rotator{transition:none}
}

.werbung--spalte,.werbung--sport,.werbung--unternehmen{position:sticky;top:96px;margin-top:14px;border-top:1px solid #d4d1cb;padding-top:10px;box-sizing:border-box}
html[data-werbung="aus"] .werbung{display:none!important}


/* Werben-Seite 28.09.2026: echte Fotografie + reale Platzierungsdemo */
.ma-ad-art{background:#eceae6;isolation:isolate}
.ma-ad-art img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.ma-ad-art--bank,.ma-ad-art--sport{background:#eceae6}
.ma-ad-x,.ma-ad-ball,.ma-ad-art-word,.ma-ad-art--sport::before,.ma-ad-art--sport::after{display:none!important}
.ma-ad-card .ma-ad-cta{color:#9b2929}

.werben-entry{padding:38px 0 4px}
.werben-entry__panel{border:1px solid var(--ma-line,#deddd9);background:#fbfaf7;padding:28px 30px 30px}
.werben-entry__head{max-width:820px;margin-bottom:22px}
.werben-entry__head .eyebrow{display:block;margin-bottom:7px}
.werben-entry__head h2{margin:0;font-family:var(--serif);font-size:clamp(30px,3vw,43px);line-height:1.03;letter-spacing:-.025em}
.werben-entry__head p{margin:10px 0 0;color:#69645e;font-size:17px;line-height:1.55}
.werben-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.werben-choice{display:block;min-width:0;border:1px solid #d7d4ce;background:#fff;color:#17191b;text-decoration:none;overflow:hidden;transition:border-color 180ms ease,transform 180ms ease}
.werben-choice:hover,.werben-choice:focus-visible{border-color:#9b2929;transform:translateY(-2px)}
.werben-choice__media{position:relative;display:block;height:184px;overflow:hidden;background:#eceae6}
.werben-choice__media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform 180ms ease}
.werben-choice:hover .werben-choice__media img,.werben-choice:focus-visible .werben-choice__media img{transform:scale(1.02)}
.werben-choice__body{display:block;padding:17px 18px 19px}
.werben-choice__body strong{display:block;font-family:var(--serif);font-size:25px;line-height:1.08}
.werben-choice__body span{display:block;margin-top:7px;color:#716d67;font-size:14px;line-height:1.45}
.werben-choice__cta{color:#9b2929!important;font-weight:750!important;font-size:12px!important;letter-spacing:.03em!important;text-transform:uppercase}

.media-kit-intro{max-width:850px;margin:0 0 24px}
.media-kit-intro h2{margin:0;font-family:var(--serif);font-size:clamp(29px,2.8vw,40px);line-height:1.08}
.media-kit-intro p{margin:9px 0 0;color:#67625c;font-size:16px;line-height:1.55}
.media-formats--real{grid-template-columns:repeat(3,minmax(0,1fr))}
.media-formats--real .media-format{min-width:0}
.media-slot-preview{display:flex;align-items:center;min-height:192px;margin-bottom:13px;padding:18px;background:#f4f4f2;border:1px solid #ebe9e5;box-sizing:border-box}
.media-slot-preview--sidebar{align-items:flex-start;justify-content:center;min-height:315px}
.media-slot-preview .werbung{width:100%;margin:0!important;padding:0!important;border:0!important;position:relative!important;top:auto!important}
.media-slot-preview .werbung-label{margin:0 0 7px}
.media-slot-preview--sidebar .werbung{max-width:260px}
.media-slot-preview--sidebar .ma-ad-rotator--gap{height:auto}
.media-format__meta{display:block;margin-top:11px;color:#817a72;font-size:12px;line-height:1.4}
.werben-demo-note{margin:20px 0 0;padding:12px 14px;border-left:3px solid #9b2929;background:#faf8f4;color:#5e5953;font-size:13px;line-height:1.5}
.werben-bildnachweise{margin-top:12px;border-top:1px solid #e3e0da;padding-top:10px;color:#6c665f;font-size:12px}
.werben-bildnachweise summary{cursor:pointer;font-weight:750;color:#554f49}
.werben-bildnachweise__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 20px;margin-top:9px}
.werben-bildnachweise__grid p{margin:0;line-height:1.5}
.werben-bildnachweise a{color:#8f2525;text-underline-offset:2px}

@media(max-width:900px){
  .werben-entry{padding-top:26px}
  .werben-entry__panel{padding:22px}
  .werben-choice-grid{grid-template-columns:1fr}
  .werben-choice{display:grid;grid-template-columns:180px minmax(0,1fr)}
  .werben-choice__media{height:100%}
  .media-formats--real{grid-template-columns:1fr}
  .media-slot-preview--sidebar{display:none}
  .media-formats--real .media-format--desktop-only{display:none}
}
@media(max-width:560px){
  .werben-entry__panel{padding:17px}
  .werben-choice{display:block}
  .werben-choice__media{height:152px}
  .werben-choice__body{padding:14px}
  .werben-choice__body strong{font-size:22px}
  .media-slot-preview{min-height:128px;padding:12px}
}
@media(prefers-reduced-motion:reduce){
  .werben-choice,.werben-choice__media img{transition:none}
}

@media(max-width:700px){
  .werben-bildnachweise__grid{grid-template-columns:1fr}
}

/* Anzeige in der Buehne (30.09.2026): dritte Karte unten, gleiche Groesse und
   gleicher Aufbau wie die Meldungen daneben (Bild, Kennzeichnung, Titel). */
body.home .werbung--buehne{margin:0;min-width:0;padding:14px 0;border-top:1px solid var(--a-linie,#deddd9);align-content:start}
body.home .werbung--buehne .werbung-label{margin-bottom:6px;font-size:9.5px;letter-spacing:.12em}
body.home .werbung--buehne>.werbung-credit{margin-bottom:6px;font-size:9.5px}
body.home .werbung--buehne .werbung-credit-vor{display:none}
body.home .werbung--buehne .werbung-flaeche{grid-column:1/-1}
body.home .werbung--buehne .ma-ad-rotator--gap{height:auto}
body.home .werbung--buehne .ma-ad-card--gap{display:grid;grid-template-columns:132px minmax(0,1fr);gap:14px;align-items:start;border:0;border-radius:0;background:none}
body.home .werbung--buehne .ma-ad-card--gap .ma-ad-art{grid-column:1;grid-row:1;aspect-ratio:4/3;min-height:0;background:#e9e6e1}
body.home .werbung--buehne .ma-ad-art img{width:100%;height:100%;object-fit:cover;display:block}
body.home .werbung--buehne .ma-ad-card--gap .ma-ad-copy{grid-column:2;grid-row:1;padding:0}
body.home .werbung--buehne .ma-ad-card--gap .ma-ad-eyebrow{font-size:10.5px;letter-spacing:.06em}
body.home .werbung--buehne .ma-ad-card--gap .ma-ad-copy strong{margin-top:4px;font-family:var(--serif);font-weight:600;letter-spacing:-.01em;font-size:17.5px;line-height:1.18}
body.home .werbung--buehne .ma-ad-card--gap .ma-ad-text{margin-top:4px;font-size:12.5px;line-height:1.4;display:none;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}
body.home .werbung--buehne .ma-ad-card--gap .ma-ad-copy{display:block}
body.home .werbung--buehne .ma-ad-card--gap .ma-ad-copy strong{min-height:0}
body.home .werbung--buehne .ma-ad-card--gap .ma-ad-cta{display:inline-block;margin-top:8px;font-size:10px;padding:5px 8px}
body.home .werbung--buehne .ma-ad-card--gap .ma-ad-muster{display:none}
body.home .werbung--buehne .ma-ad-card--gap .ma-ad-eyebrow,body.home .werbung--buehne .ma-ad-card--gap .ma-ad-copy strong,body.home .werbung--buehne .ma-ad-card--gap .ma-ad-text{white-space:normal;overflow-wrap:break-word}
@media (min-width:760px){
  body.home .werbung--buehne{grid-column:span 2;padding:0;border-top:0}
  body.home .werbung--buehne .ma-ad-card--gap{display:block}
  body.home .werbung--buehne .ma-ad-card--gap .ma-ad-art{display:block;aspect-ratio:16/10}
  body.home .werbung--buehne .ma-ad-card--gap .ma-ad-copy{display:block;padding-top:10px}
  body.home .werbung--buehne .ma-ad-card--gap .ma-ad-copy strong{font-size:clamp(18px,1.45vw,21px)}
}
@media (min-width:1100px){
  body.home .werbung--buehne{grid-column:auto}
  body.home .werbung--buehne .ma-ad-card--gap .ma-ad-art{aspect-ratio:16/9}
  body.home .werbung--buehne .ma-ad-card--gap .ma-ad-text{display:-webkit-box}
}

/* Echte Anzeigen der Firmen (28.10.2026): Video-Schleife über dem Standbild auf den
   großen Plätzen, langsamer Zoom auf den kleinen, kleiner Bildnachweis („KI-Bild“)
   in der Bildecke. Ohne Bewegung (prefers-reduced-motion) bleibt das Standbild. */
.ma-ad-art{position:relative;overflow:hidden}
.ma-ad-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .4s ease}
.ma-ad-video.ma-ad-video--an{opacity:1}
.ma-ad-art--bewegt img{animation:ma-ad-zoom 16s ease-in-out infinite alternate;transform-origin:50% 50%}
@keyframes ma-ad-zoom{from{transform:scale(1.02)}to{transform:scale(1.12)}}
.ma-ad-nachweis{position:absolute;left:6px;bottom:5px;z-index:1;padding:1px 5px;border-radius:2px;background:rgba(21,20,18,.62);color:#f4f1ec;font-family:var(--sans);font-size:9px;font-weight:600;line-height:1.5;letter-spacing:.02em;max-width:calc(100% - 12px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}
@media (prefers-reduced-motion:reduce){
  .ma-ad-art--bewegt img{animation:none}
  .ma-ad-video{display:none}
}

/* Anzeigen groß (Vorgabe Betreiber 02.11.2026: „zu viel Text, zu wenig Bild oder
   Video, zu gequetscht“). Bild oder Video tragen die Anzeige; dazu nur Firmenname,
   Überschrift und Knopf. Den Satz gibt es nur in der Bühne am Rechner (oben).
   Die Karte richtet sich nach der Breite ihres Platzes (Container-Abfrage), nicht
   nach dem Fenster: dasselbe Werbemittel steht im Startseitenband, unter einer
   Meldung (720 px), in Listen und in Spalten. Feste Seitenverhältnisse und eine
   Überschrift mit fester Höhe (zwei Zeilen) halten die Höhe beim Wechsel gleich. */
.ma-ad-text{display:none}
.ma-ad-rotator--band,.ma-ad-rotator--gap{height:auto;container-type:inline-size}
.ma-ad-art .ma-ad-bild-breit{display:none}
.ma-ad-card--band,.ma-ad-card--gap{display:flex;flex-direction:column;height:auto;background:#fff}
.ma-ad-card--band .ma-ad-art,.ma-ad-card--gap .ma-ad-art{flex:none;width:100%;aspect-ratio:16/9;min-height:0}
.ma-ad-card--band .ma-ad-copy,.ma-ad-card--gap .ma-ad-copy{flex:none;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:14px;align-items:center;padding:10px 12px 12px}
.ma-ad-card .ma-ad-copy .ma-ad-eyebrow{grid-column:1;grid-row:1;display:block;margin:0;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ma-ad-card .ma-ad-copy strong{grid-column:1;grid-row:2;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;margin:3px 0 0;min-height:2.3em;font-family:var(--serif);font-size:18px;font-weight:650;line-height:1.15;white-space:normal;text-overflow:clip}
.ma-ad-card .ma-ad-copy .ma-ad-cta{grid-column:2;grid-row:1/3;align-self:center;display:inline-block;margin:0;padding:8px 11px;font-size:10px}
/* Schmale Spalte: Knopf unter die Überschrift. */
@container (max-width:339px){
  .ma-ad-card--band .ma-ad-copy,.ma-ad-card--gap .ma-ad-copy{display:block}
  .ma-ad-card .ma-ad-copy strong{font-size:17px}
  .ma-ad-card .ma-ad-copy .ma-ad-cta{margin-top:9px;padding:6px 9px}
}
/* Mittlerer Platz (unter einer Meldung, Tablet): Bild links (46 %, 16:9), daneben der Text. */
@container (min-width:561px){
  .ma-ad-card--band{display:grid;grid-template-columns:46% minmax(0,1fr);align-items:start}
  .ma-ad-card--band .ma-ad-art{grid-column:1;grid-row:1}
  .ma-ad-card--band .ma-ad-copy{grid-column:2;grid-row:1;align-self:stretch;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:16px 22px}
  .ma-ad-card--band .ma-ad-copy strong{min-height:0;margin-top:6px;font-size:22px;line-height:1.12}
  .ma-ad-card--band .ma-ad-copy .ma-ad-cta{align-self:flex-start;margin-top:14px;padding:9px 13px;font-size:11px}
}
/* Breiter Platz (Startseitenband, Seitenband): Bild oder Video 60 % in der breiten
   Fassung (3,5 : 1), ohne breite Fassung das 16:9-Motiv zugeschnitten; die Bildseite
   wechselt von Band zu Band. */
@container (min-width:840px){
  .ma-ad-card--band{grid-template-columns:60% minmax(0,1fr);grid-template-rows:minmax(0,1fr);align-items:stretch;height:clamp(180px,16.5cqi,224px)}
  .ma-ad-card--band .ma-ad-art{height:100%;aspect-ratio:auto}
  .ma-ad-art--breit .ma-ad-bild{display:none}
  .ma-ad-art--breit .ma-ad-bild-breit{display:block}
  .ma-ad-card--band .ma-ad-copy{padding:20px 34px;overflow:hidden}
  .ma-ad-card--band .ma-ad-copy .ma-ad-eyebrow{font-size:11px}
  .ma-ad-card--band .ma-ad-copy strong{-webkit-line-clamp:3;line-clamp:3;margin-top:8px;font-size:clamp(22px,2.2cqi,30px);line-height:1.08;letter-spacing:-.012em}
  .ma-ad-card--band .ma-ad-copy .ma-ad-cta{margin-top:16px;padding:10px 16px;font-size:12px}
  .werbung[data-ma-werbeplatz$="-2"] .ma-ad-card--band,.werbung[data-ma-werbeplatz$="-4"] .ma-ad-card--band,.werbung[data-ma-werbeplatz$="-6"] .ma-ad-card--band{grid-template-columns:minmax(0,1fr) 60%}
  .werbung[data-ma-werbeplatz$="-2"] .ma-ad-card--band .ma-ad-art,.werbung[data-ma-werbeplatz$="-4"] .ma-ad-card--band .ma-ad-art,.werbung[data-ma-werbeplatz$="-6"] .ma-ad-card--band .ma-ad-art{grid-column:2}
  .werbung[data-ma-werbeplatz$="-2"] .ma-ad-card--band .ma-ad-copy,.werbung[data-ma-werbeplatz$="-4"] .ma-ad-card--band .ma-ad-copy,.werbung[data-ma-werbeplatz$="-6"] .ma-ad-card--band .ma-ad-copy{grid-column:1}
}
.ma-ad-card:hover .ma-ad-art img,.ma-ad-card:focus-visible .ma-ad-art img{filter:saturate(1.06)}

/* ---- theme.css ---- */
/* Merzenich Aktuell – seit 23.09.2026 ausschließlich Hellmodus. */
html{color-scheme:light}
.theme-toggle,.darstellung-knopf,.einstellungen,.einstellungen-schleier{display:none!important}

/* ---- startseite.css ---- */
/* Startseite – obere Fläche.
 *
 * Diese Datei ist die einzige Besitzerin der Startseiten-Fläche. Vorher setzten
 * sechs Dateien dasselbe Raster: v19, v20, recovery, korrekturen, homepage-polish
 * und editorial-audit definierten .frontpage-grid je eigenständig, zuletzt
 * gewann die per JavaScript nachgeladene Datei mit !important. Ergebnis waren
 * unbenutzte Spalten, eine leere Anzeigenspur und Löcher von mehreren hundert
 * Pixeln (Audit 18.09.2026).
 *
 * Sie wird blockierend im Kopf geladen, nach theme.css, und benutzt die Token
 * aus system.css. Kein !important: wenn hier etwas nicht greift, gehört die
 * widersprechende Altregel gelöscht, nicht überschrieben.
 *
 * Aufbau der Reihe: Service-Spalte | Aufmacher | zwei Nebenmeldungen.
 * Erzeugt wird sie von deploy/inhaltsindex.mjs zwischen den Markern
 * <!-- start:oben:start --> und <!-- start:oben:end -->.
 */

/* ---------------------------------------------------------------- Reihe */

body.home .portal-top{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:var(--s6);
  align-items:stretch;
}

/* Die Anzeigenspalte bekommt nur dann eine Spur, wenn wirklich Werbung läuft.
   Bei data-werbung="aus" belegte sie bisher 280 Pixel Raster und blieb leer. */
html[data-werbung="aus"] body.home .portal-ads{display:none}

@media (min-width:960px){
  body.home .portal-top{
    grid-template-columns:minmax(230px,280px) minmax(0,1fr);
    gap:var(--s7);
  }
  html[data-werbung="an"] body.home .portal-top.has-ads{
    grid-template-columns:minmax(230px,280px) minmax(0,1fr) 280px;
  }
  /* position:sticky stand hier, solange die Service-Spalte kuerzer war als die
     Redaktionsflaeche daneben. Seit sie echten Inhalt traegt, ist der
     Hoehenunterschied klein und es bleibt kein Weg zum Kleben. */
  body.home .portal-service{min-width:0}
  body.home .portal-news{min-width:0}
}

/* .frontpage-grid trägt zugleich die Klasse .shell. Innerhalb der Spalte darf
   sie keine eigene Seitenbreite und keine Innenabstände mehr setzen. */
body.home .portal-news>.shell{width:100%;max-width:none;padding:0;margin:0}

/* ------------------------------------------------------- Service-Spalte */
/* Vorher gestalteten vier Stylesheets dieselbe Spalte: startseite.css das
   Raster, homepage-polish.css Titel und Klappfelder, editorial-audit.css
   dasselbe noch einmal mit rund zwanzig !important, recovery.css ein drittes
   Mal in einer minifizierten Zeile. Durchgesetzt hat sich editorial-audit.css,
   also steht hier dessen wirksamer Stand - einmal, ohne !important. Die
   Farbwerte sind der ausgelieferte Bestand und gehören in den Farbblock, nicht
   hierher. */
body.home .portal-service{
  min-width:0;
  padding:var(--s4,16px) 15px 14px;
  background:var(--ma-warm,#f4f4f3);
  border-radius:12px;
}
body.home .portal-service .service-title{
  margin:0 0 var(--s3,12px);
  padding:0;
  border:0;
  font-family:var(--sans);
  font-size:14px;
  font-weight:820;
  line-height:1;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--ma-red,#971725);
}
body.home .portal-service .service-accordion{border:0;border-radius:0;background:transparent;box-shadow:none;margin:0}
body.home .portal-service .service-accordion>summary{
  min-height:32px;
  padding:4px 0 10px;
  border:0;
  font-size:12px;
  font-weight:720;
  letter-spacing:.025em;
  color:#4e4a44;
  list-style:none;
  cursor:pointer;
}
body.home .portal-service .service-accordion>summary::-webkit-details-marker{display:none}
body.home .portal-service .service-accordion>summary::marker{content:""}
body.home .portal-service .service-accordion>summary::after{content:"+";float:right;font-size:16px;font-weight:400;color:#8f877b}
body.home .portal-service .service-accordion[open]>summary::after{content:"−"}
body.home .portal-service .service-accordion>div{padding:0}
body.home .portal-service .service-accordion>div>a:not(.markt-mini){display:inline-block;margin-top:var(--s3,12px);font-size:12px;text-decoration:underline;text-underline-offset:3px}

/* Termine */
body.home .portal-service .agenda-list{display:grid;gap:9px}
body.home .portal-service .agenda-row{
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  gap:10px;
  align-items:center;
  margin:0;
  padding:9px 10px;
  border:0;
  border-radius:9px;
  background:#fff;
  box-shadow:none;
}
/* v19.css gestaltet .agenda-date unscoped mit min-height:59px und flex - das
   gilt fuer /termine/ weiter, hier aber nicht: der Datumsblock traegt 41 px
   Inhalt und zog jede Zeile um 18 px auf. */
body.home .portal-service .agenda-date{display:block;width:38px;min-height:0;padding:0;border:0;background:transparent;text-align:center}
body.home .portal-service .agenda-date b{display:block;font-size:22px;line-height:.95;font-weight:680}
body.home .portal-service .agenda-date span{display:block;margin-top:3px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ma-red,#971725)}
body.home .portal-service .agenda-row .eyebrow,
body.home .portal-service .agenda-row .calendar-save{display:none}
/* Zwei Zeilen, damit eine lange Überschrift die Zeile nicht auf drei Zeilen
   aufzieht. Vier Termine sind sonst 459 Pixel hoch statt rund 330 - gemessen
   am 23.09. */
body.home .portal-service .agenda-row h3{
  margin:0 0 3px;
  font-family:var(--serif);
  font-size:14.5px;
  line-height:1.15;
  font-weight:650;
  letter-spacing:-.02em;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  /* Luft über der ersten Zeile, sonst schneidet overflow die Punkte über Ä/Ö/Ü ab
     („Okumenischer“, Vorführ-Check 15.10.2026); der Abstand nach oben bleibt gleich. */
  padding-top:2px;
  margin-top:-2px;
}
body.home .portal-service .agenda-row p{margin:0;font-size:11px;line-height:1.3;color:#77716a}

/* Markt-Zeilen */
body.home .portal-service .markt-mini{display:block;padding:8px 0;border-top:1px solid #ececec;border-radius:0;background:transparent;color:inherit;text-decoration:none}
body.home .portal-service .markt-mini:first-of-type{border-top:0}
body.home .portal-service .markt-mini strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;line-height:1.28;font-weight:700}
body.home .portal-service .markt-mini span{display:block;margin-top:2px;font-size:11.5px;color:var(--muted,#65696c)}
body.home .portal-service .markt-mini:hover strong{text-decoration:underline;text-underline-offset:2px}

/* Zwei Zeilen am Fuß, keine Klappfelder: beide öffneten sich auf genau einen
   Link. Ein Pluszeichen verspricht dann Inhalt, den es nicht gibt. */
body.home .portal-service .service-links{display:grid;gap:2px;margin-top:var(--s3,12px);padding-top:var(--s3,12px);border-top:1px solid #e3e1dd}
body.home .portal-service .service-links a{font-size:12px;font-weight:720;color:#4e4a44;text-decoration:none;padding:6px 0;min-height:32px;display:flex;align-items:center}
body.home .portal-service .service-links a:hover{color:var(--ma-red,#971725);text-decoration:underline;text-underline-offset:3px}

@media (max-width:959px){
  body.home .portal-service{order:2;width:100%;position:static;padding:15px}
  body.home .portal-service .agenda-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:700px){
  body.home .portal-service .agenda-list{grid-template-columns:1fr}
}

/* ------------------------------------------------- Aufmacher + Nebenreihe */

body.home .frontpage-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:var(--s7);
  align-items:start;
}

@media (min-width:1040px){
  body.home .frontpage-grid{grid-template-columns:minmax(0,1.28fr) minmax(420px,.92fr);gap:var(--s6)}
}

body.home .front-neben{display:grid;grid-template-columns:1fr;gap:var(--s4);min-width:0}

@media (min-width:600px) and (max-width:1039px){
  body.home .front-neben{grid-template-columns:1fr 1fr}
}
@media (min-width:1040px){
  body.home .front-neben{grid-template-columns:1fr 1fr;gap:var(--s4)}
  body.home .front-neben-story:first-child{grid-column:1 / -1}
  body.home .front-neben-story:first-child .media{aspect-ratio:2.1/1}
}

/* ------------------------------------------------------------ Bildflächen */

body.home .karte-bild{display:block;text-decoration:none}
body.home .karte-bild .media{
  position:relative;
  width:100%;
  overflow:hidden;
  border-radius:var(--r1);
  background:var(--ma-warm,#f2f2f0);
}
body.home .karte-bild .media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  padding:0;
}
body.home .front-lead .media{aspect-ratio:var(--bild-gross)}
body.home .front-neben-story .media{aspect-ratio:var(--bild-kompakt)}
body.home .karte-bild .badge{
  position:absolute;
  left:var(--s2);
  bottom:var(--s2);
  top:auto;
  padding:4px 7px;
  border-radius:var(--r1);
  background:rgba(23,25,27,.78);
  color:#fff;
  font-size:10px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}

/* ------------------------------------------------------------- Aufmacher */

body.home .front-lead{margin:0;padding:0;border:0;background:transparent;box-shadow:none;min-width:0}
body.home .front-lead-copy{padding-top:var(--s4)}
body.home .front-lead .location-line{margin:0 0 var(--s1)}
body.home .front-lead .location-brand{
  color:var(--ma-red,#971725);
  font-size:var(--t-meta);
  font-weight:800;
  letter-spacing:.09em;
  text-transform:uppercase;
}
body.home .front-lead .kicker{
  display:inline-block;
  margin-right:var(--s2);
  color:var(--ma-muted,#6b6660);
  font-size:var(--t-meta);
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
body.home .front-lead h1,body.home .front-lead h2{
  max-width:18ch;
  margin:var(--s2) 0 var(--s3);
  font-family:var(--serif);
  font-size:clamp(32px,3.4vw,var(--t-headline-xl));
  line-height:var(--lh-headline-xl,1.08);
  font-weight:680;
  letter-spacing:-.03em;
}
body.home .front-lead h1 a,body.home .front-lead h2 a{text-decoration:none;color:var(--ma-ink,#17191b)}
/* Eine sehr lange Schlagzeile darf die Bildflaeche daneben nicht nach unten
   schieben. Vier Zeilen sind die Grenze; stand vorher mit !important und
   doppelter Klassenangabe in der Tokendatei. */
body.home .front-lead h1,body.home .front-lead h2{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4;overflow:hidden}
body.home .front-lead p{
  max-width:62ch;
  margin:0;
  color:var(--ma-muted,#5e5953);
  font-size:var(--t-text);
  line-height:var(--lh-text);
}
body.home .front-lead .meta{margin-top:var(--s3);color:var(--ma-muted,#807a73);font-size:var(--t-meta)}
body.home .front-lead .story-actions{margin-top:var(--s4)}

/* ---------------------------------------------------------- Nebenmeldung */

body.home .front-neben-story{margin:0;padding:0;border:0;background:transparent;min-width:0}
body.home .front-neben-story .karte-text{padding-top:var(--s3)}
body.home .front-neben-story .location-line{margin:0 0 2px}
body.home .front-neben-story .location-brand{
  color:var(--ma-red,#971725);
  font-size:11px;
  font-weight:800;
  letter-spacing:.09em;
  text-transform:uppercase;
}
body.home .front-neben-story .kicker{
  display:inline-block;
  margin-right:var(--s2);
  color:var(--ma-muted,#6b6660);
  font-size:11px;
  font-weight:700;
  letter-spacing:.07em;
  text-transform:uppercase;
}
body.home .front-neben-story h2{
  margin:var(--s1) 0 var(--s1);
  font-family:var(--serif);
  font-size:var(--t-headline-s);
  line-height:var(--lh-headline-s,1.25);
  font-weight:640;
  letter-spacing:-.012em;
}
body.home .front-neben-story h2 a{color:var(--ma-ink,#17191b);text-decoration:none}
body.home .front-neben-story .meta{color:var(--ma-muted,#817b73);font-size:11px}

/* -------------------------------------------------------- Meldung ohne Bild */
/* Ein Beitrag ohne verwendbares Motiv bekommt keine leere Bildfläche, sondern
   eine kompakte Zeile. Ein Vereinswappen füllt nie die Bildfläche (Standard 7b). */

body.home .front-zeile{margin:0;padding:var(--s3) 0;border-top:1px solid var(--ma-line,#e3e3e0)}
body.home .front-zeile h2{
  margin:var(--s1) 0 var(--s1);
  font-family:var(--serif);
  font-size:var(--t-headline-s);
  line-height:1.2;
  font-weight:640;
}
body.home .front-zeile h2 a{color:var(--ma-ink,#17191b);text-decoration:none}
body.home .front-zeile .location-brand{color:var(--ma-red,#971725);font-size:11px;font-weight:800;letter-spacing:.09em}
body.home .front-zeile .kicker{margin-left:var(--s2);color:var(--ma-muted,#6b6660);font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
body.home .front-zeile .meta{color:var(--ma-muted,#817b73);font-size:11px}

/* ------------------------------------------------------ Ressortflaechen */
/* Ein Muster fuer alle Sektionen: zwei grosse Meldungen nebeneinander,
   darunter drei mittlere, darunter bei Bedarf kompakte Zeilen fuer Meldungen
   ohne verwendbares Motiv. Vorher hatte jede Sektion ihr eigenes Raster, meist
   ein riesiges Bild links neben einer duennen Textleiter. */

body.home main > section + section{margin-top:clamp(24px,3vw,44px)}
body.home .desk{padding-top:0}

body.home .desk-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:var(--s5,20px);
  margin-bottom:var(--s6,24px);
  padding-bottom:var(--s3,12px);
  border-bottom:1px solid var(--ma-line,#e3e3e1);
}
body.home .desk-heading .eyebrow{
  display:block;
  margin-bottom:var(--s1,4px);
  color:var(--ma-muted,#77736d);
  font-size:11px;
  font-weight:750;
  letter-spacing:.13em;
  text-transform:uppercase;
}
body.home .desk-heading h2{
  margin:0;
  font-family:var(--serif);
  font-size:var(--t-headline-l,34px);
  line-height:var(--lh-headline-l,1.15);
  font-weight:640;
  letter-spacing:-.02em;
  color:var(--ma-ink,#171513);
}
body.home .desk-more{
  flex:0 0 auto;
  color:var(--ma-red,#971725);
  font-size:13px;
  font-weight:650;
  text-decoration:none;
  white-space:nowrap;
}
body.home .desk-more:hover{text-decoration:underline}

body.home .desk-gross{display:grid;grid-template-columns:1fr;gap:var(--s7,32px)}
body.home .desk-mittel{display:grid;grid-template-columns:1fr;gap:var(--s6,24px);margin-top:var(--s7,32px)}
body.home .desk-zeilen{margin-top:var(--s6,24px)}

@media (min-width:760px){
  body.home .desk-gross{grid-template-columns:1fr 1fr}
  body.home .desk-mittel{grid-template-columns:repeat(3,1fr)}
}
@media (min-width:560px) and (max-width:759px){
  body.home .desk-mittel{grid-template-columns:1fr 1fr}
}

body.home .desk-karte{margin:0;padding:0;border:0;background:transparent;min-width:0}
body.home .desk-karte .karte-text{padding-top:var(--s3,12px)}
body.home .desk-karte--gross .media{aspect-ratio:var(--bild-gross,16/9)}
body.home .desk-karte--mittel .media{aspect-ratio:var(--bild-kompakt,3/2)}
body.home .desk-karte .location-line{margin:0 0 2px}
body.home .desk-karte .location-brand{
  color:var(--ma-red,#971725);
  font-size:11px;
  font-weight:800;
  letter-spacing:.09em;
  text-transform:uppercase;
}
body.home .desk-karte .kicker{
  display:inline-block;
  margin-right:var(--s2,8px);
  color:var(--ma-muted,#77736d);
  font-size:11px;
  font-weight:700;
  letter-spacing:.07em;
  text-transform:uppercase;
}
body.home .desk-karte h3{
  margin:var(--s1,4px) 0 var(--s2,8px);
  font-family:var(--serif);
  font-weight:640;
  letter-spacing:-.014em;
}
body.home .desk-karte--gross h3{font-size:var(--t-headline-m,26px);line-height:var(--lh-headline-m,1.2)}
body.home .desk-karte--mittel h3{font-size:var(--t-headline-s,20px);line-height:var(--lh-headline-s,1.25)}
body.home .desk-karte h3 a{color:var(--ma-ink,#171513);text-decoration:none}
body.home .desk-karte .dek{
  margin:0;
  color:var(--ma-text,#4f4d49);
  font-size:15px;
  line-height:1.5;
}
body.home .desk-karte .meta{margin-top:var(--s2,8px);color:var(--ma-muted,#817b73);font-size:11px}


/* --------------------------------------------------------- Sportzahlen */
/* Vorher drei schwarze Kacheln (#17191b, weiße Schrift) - das las sich wie ein
   generisches Dashboard, nicht wie eine Sportredaktion. Jetzt weißer Grund,
   sehr große Serifenzahlen, dünne anthrazitfarbene Trennlinien. Bordeaux nur
   als schmaler Akzent über der Reihe. */

body.home .sc-stand{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  margin:0 0 var(--s3,12px);
  padding-top:var(--s4,16px);
  border-top:2px solid var(--ma-red,#971725);
  background:var(--ma-paper,#fff);
}
body.home .sc-stand .sc-kachel{
  padding:var(--s3,12px) var(--s4,16px);
  background:transparent;
  border-left:1px solid var(--ma-line,#e3e3e1);
  border-radius:0;
  text-align:left;
}
body.home .sc-stand .sc-kachel:first-child{border-left:0;padding-left:0}
body.home .sc-stand .sc-wert{
  display:block;
  font-family:var(--serif);
  font-size:clamp(34px,4.4vw,var(--t-display,58px));
  line-height:1;
  font-weight:620;
  letter-spacing:-.02em;
  color:var(--ma-ink,#171513);
  font-variant-numeric:lining-nums tabular-nums;
}
body.home .sc-stand .sc-label{
  display:block;
  margin-top:var(--s2,8px);
  color:var(--ma-muted,#77736d);
  font-size:11px;
  font-weight:750;
  letter-spacing:.13em;
  text-transform:uppercase;
}
body.home .sc-stand-quelle{
  margin:0 0 var(--s6,24px);
  color:var(--ma-muted,#77736d);
  font-size:12px;
}

@media (max-width:520px){
  body.home .sc-stand .sc-kachel{padding-inline:var(--s2,8px)}
  body.home .sc-stand .sc-label{font-size:10px;letter-spacing:.09em}
}



/* ---------------------------------------------------------------------------
   KBS / Ordin 23.09.2026 – Startseite: dichter erster Blick, Werbebänder,
   Tipp und Foto des Tages.
--------------------------------------------------------------------------- */
body.home .portal-top{margin-top:18px;margin-bottom:26px}
body.home .frontpage-grid{padding-bottom:8px}
body.home .front-neben-story .media{aspect-ratio:16/10}
body.home .front-neben-story h2{font-size:clamp(17px,1.35vw,21px)}
body.home .front-neben-story .karte-text{padding-top:10px}
body.home .desk-heading{margin-bottom:18px}
body.home .desk-mittel{margin-top:22px}
body.home .desk-zeilen{margin-top:16px}

.home-ad-band{
  position:relative;
  margin-top:30px!important;
  margin-bottom:30px;
  border-block:1px solid var(--ma-line,#deddd9);
  padding:12px 0;
}
.home-ad-band__label{
  position:absolute;top:-8px;left:0;background:var(--paper,#fff);padding-right:10px;
  color:var(--ma-muted,#79736c);font-size:9px;font-weight:800;letter-spacing:.14em;text-transform:uppercase
}
.home-ad-band__items{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.home-ad-band__item{
  min-height:86px;padding:16px 18px;display:flex;flex-direction:column;justify-content:center;
  background:var(--ma-warm,#f4f1eb);border:1px solid var(--ma-line,#deddd9);text-decoration:none
}
.home-ad-band__item strong{font-family:var(--serif);font-size:20px;line-height:1.15}
.home-ad-band__item span{margin-top:5px;color:var(--ma-muted,#6f6a63);font-size:12px}
.home-ad-band__item:hover{border-color:var(--ma-red,#971725)}
@media(max-width:700px){.home-ad-band__items{grid-template-columns:1fr}.home-ad-band__item{min-height:72px}}

.home-specials{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.78fr);gap:28px;
  margin-top:38px!important;padding-top:28px;border-top:1px solid var(--ma-line,#deddd9)
}
.home-special-heading .eyebrow{display:block;margin-bottom:5px;color:var(--ma-red,#971725);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.home-special-heading h2{margin:0;font-family:var(--serif);font-size:clamp(28px,3vw,38px);line-height:1.05}
.home-special-heading p{margin:7px 0 0;color:var(--ma-muted,#6f6a63);max-width:60ch}
.home-tipp-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.home-tipp-card{
  min-height:180px;padding:20px;display:flex;flex-direction:column;justify-content:flex-end;
  border:1px solid var(--ma-line,#deddd9);background:linear-gradient(180deg,#f7f4ed 0%,#eee8dc 100%);text-decoration:none
}
.home-tipp-card>span{font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ma-red,#971725)}
.home-tipp-card strong{margin-top:8px;font-family:var(--serif);font-size:24px;line-height:1.05}
.home-tipp-card small{margin-top:8px;color:var(--ma-muted,#6f6a63);font-size:13px;line-height:1.45}
.home-tipp-card:hover{border-color:var(--ma-red,#971725)}
.photo-day figure{margin:18px 0 10px}
.photo-day figure img{width:100%;aspect-ratio:4/3;object-fit:cover}
.photo-day figcaption{margin-top:6px;color:var(--ma-muted,#6f6a63);font-size:11px}
@media(max-width:900px){.home-specials{grid-template-columns:1fr}.home-tipp-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.home-tipp-grid{grid-template-columns:1fr}.home-tipp-card{min-height:145px}}


/* KBS 23.09.2026 – kompakte Meldungen ebenfalls bildgeführt */
body.home .front-zeile--bild{
  display:grid;grid-template-columns:minmax(150px,220px) minmax(0,1fr);gap:18px;
  align-items:start;padding:16px 0
}
body.home .front-zeile--bild .karte-bild .media{aspect-ratio:16/10}
body.home .front-zeile--bild .karte-text{padding-top:2px}
body.home .front-zeile--bild h3{margin:5px 0 6px;font-family:var(--serif);font-size:21px;line-height:1.18}
@media(max-width:560px){
  body.home .front-zeile--bild{grid-template-columns:112px minmax(0,1fr);gap:12px}
  body.home .front-zeile--bild h3{font-size:18px}
}

/* ================================================================
   Anhang A (verbindlich seit 23.09.2026) - erster Bildschirm
   Raster und Tokens: docs/STARTSEITE-RASTER.md. Serif erzaehlt, Sans
   informiert. Bordeaux nur als Signal. Radius 0-3 px, keine Schatten.
   ================================================================ */
body.home{--a-grund:#fdfdfc;--a-flaeche:#f5f4f1;--a-tinte:#171513;--a-text:#34312d;--a-leise:#5f5b55;--a-linie:#e3e1dd;--a-rot:#971725;--a-rot-tief:#77101b;background:var(--a-grund);color:var(--a-tinte)}
body.home main{background:var(--a-grund)}

/* Ortsmarke A3: MERZENICH in Bordeaux, Ortsteil zurueckhaltend, Rubrik normal */
body.home .marke{margin:0 0 8px;font-family:var(--sans);font-size:12.5px;line-height:1.3;font-weight:750;letter-spacing:.07em;text-transform:uppercase;color:var(--a-leise)}
body.home .marke-ort{color:var(--a-rot)}
body.home .marke-teil{color:var(--a-leise)}
body.home .marke-rubrik{margin-left:10px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--a-leise)}

/* Ortswahl und MERZENICH · JETZT in einer Zeile */
body.home .ortswahl>.shell{display:flex;align-items:center;gap:24px;min-width:0}
body.home .jetzt{flex:1 1 auto;min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:0;font-family:var(--sans);font-size:13px;line-height:1.3;color:var(--a-leise);white-space:nowrap}
body.home .jetzt-marke{display:inline-flex;align-items:center;gap:8px;padding-right:16px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--a-tinte)}
body.home .jetzt-punkt{width:7px;height:7px;border-radius:50%;background:var(--a-rot)}
body.home .jetzt-feld{padding:0 16px;border-left:1px solid var(--a-linie)}
body.home .jetzt-feld:last-child{padding-right:0}
body.home .jetzt-neu{min-width:0;overflow:hidden;text-overflow:ellipsis}
body.home .jetzt-neu time{font-weight:700;color:var(--a-rot);margin-right:4px}
body.home .jetzt a{color:var(--a-tinte);text-decoration:none}
body.home .jetzt a:hover{text-decoration:underline;text-underline-offset:3px}

/* Buehne A4.4: Aufmacher rund 61 %, rechts Zweitmeldung und 2x2 */
body.home .frontpage-grid{padding-top:24px;padding-bottom:40px}
body.home .karte-bild .media{border-radius:2px}
body.home .karte-bild .media img{transition:transform .18s ease-out}
body.home article:hover .karte-bild .media img{transform:scale(1.02)}
body.home .karte-bild .badge{left:8px;bottom:8px;padding:3px 6px;border-radius:2px;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.05em}
body.home .front-lead h1,body.home .front-lead h2{max-width:20ch;margin:4px 0 12px;font-family:var(--serif);font-size:clamp(32px,3.3vw,48px);line-height:1.06;font-weight:600;letter-spacing:-.02em}
body.home .front-lead h1 a:hover,body.home .front-lead h2 a:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
body.home .front-lead-copy{padding-top:16px}
body.home .front-lead-copy>p:not(.marke){max-width:60ch;margin:0 0 12px;font-family:var(--sans);font-size:17px;line-height:1.55;color:var(--a-text)}
body.home .front-lead .meta,body.home .front-neben-story .meta{font-family:var(--sans);font-size:13px;color:var(--a-leise)}
body.home .front-neben-story .karte-text{padding-top:10px}
body.home .front-neben-story h2{margin:0 0 6px;font-family:var(--serif);font-weight:600;letter-spacing:-.01em;line-height:1.15;font-size:19px}
body.home .front-neben-story h2 a{color:var(--a-tinte);text-decoration:none}
body.home .front-neben-story h2 a:hover{text-decoration:underline;text-underline-offset:4px}
body.home .front-zweit h2{font-size:clamp(22px,1.8vw,26px)}
@media (min-width:1100px){
  body.home .frontpage-grid{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:28px;align-items:stretch}
  body.home .front-lead{display:flex;flex-direction:column}
  body.home .front-lead>.karte-bild{flex:1 1 auto;display:flex;min-height:420px}
  body.home .front-lead>.karte-bild .media{flex:1;height:auto;aspect-ratio:auto}
  body.home .front-neben{display:flex;flex-direction:column;gap:24px}
  body.home .front-zweit .media{aspect-ratio:2/1}
  body.home .front-vier{display:grid;grid-template-columns:1fr 1fr;gap:24px 20px}
  body.home .front-vier .media{aspect-ratio:16/10}
}
@media (min-width:760px) and (max-width:1099px){
  body.home .front-lead .media{aspect-ratio:16/9}
  body.home .front-neben{display:grid;grid-template-columns:1fr 1fr;gap:24px 20px}
  body.home .front-zweit{grid-column:1/-1}
  body.home .front-zweit .media{aspect-ratio:2/1}
  body.home .front-vier{display:contents}
  body.home .front-vier .media{aspect-ratio:16/10}
}
/* Telefon A16: Aufmacher, dann die fuenf Highlights als Wischreihe ohne Pfeile */
@media (max-width:759px){
  body.home .ortswahl>.shell{flex-wrap:wrap;row-gap:4px}
  body.home .jetzt{flex-basis:100%;justify-content:flex-start;padding-bottom:6px}
  body.home .jetzt-heute,body.home .jetzt-termin{display:none}
  body.home .front-lead .media{aspect-ratio:4/3}
  body.home .front-lead h1,body.home .front-lead h2{font-size:31px}
  body.home .front-neben{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(-1 * var(--gutter,18px));padding-inline:var(--gutter,18px);scrollbar-width:none}
  body.home .front-neben::-webkit-scrollbar{display:none}
  body.home .front-vier{display:contents}
  body.home .front-neben-story{flex:0 0 78%;scroll-snap-align:start}
  body.home .front-neben-story .media{aspect-ratio:3/2}
  body.home .front-zweit h2{font-size:21px}
}

/* Nach der Buehne A4.7: Vor Ort links, Hauptstrom daneben */
body.home .portal-top{padding-top:32px;border-top:1px solid var(--a-linie)}
body.home .portal-strom{min-width:0}
/* Auf Desktop die Ressortbloecke in der Nachrichten-Spalte verteilen, statt
   unter der laengeren Service-Spalte einen toten Streifen zu lassen. */
@media (min-width:960px){
  body.home .portal-strom{
    display:flex;
    flex-direction:column;
    justify-content:space-between;
  }
}
body.home .portal-strom>.desk{max-width:none;margin:0;padding:0!important}
body.home .portal-strom .desk-heading{margin-bottom:20px!important}
body.home .portal-service{background:var(--a-flaeche);border-radius:2px}
body.home .portal-service .agenda-row p{font-size:14px;line-height:1.35;color:var(--a-leise)}
body.home .portal-service .markt-mini strong{font-size:15px;line-height:1.3}
body.home .portal-service .markt-mini span{font-size:13.5px;color:var(--a-leise)}
body.home .portal-service .service-links a{font-size:14px;min-height:30px;color:var(--a-text)}

/* Ressortkoepfe und Karten: Serif fuer Geschichten */
body.home .desk-karte h3{font-family:var(--serif);font-weight:600;letter-spacing:-.01em}
body.home .desk-karte .dek{font-family:var(--sans);font-size:16px;line-height:1.55;color:var(--a-text)}
body.home .desk-karte .meta,body.home .front-zeile .meta{font-family:var(--sans);font-size:13px;color:var(--a-leise)}
body.home .desk-more{font-family:var(--sans);color:var(--a-rot);font-weight:700;font-size:14px}

/* Die fuenf Orte: Bildbuehne weiter unten (Entscheidung 23.09.) */
body.home .orte-buehne{padding:clamp(48px,5vw,72px) 0 0;margin:0}
body.home .orte-kopf h2{margin:0 0 20px;font-family:var(--serif);font-size:clamp(30px,2.6vw,36px);line-height:1.05;font-weight:600;letter-spacing:-.02em}
body.home .orte-reihe{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;background:#161412}
body.home .ort{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;min-height:clamp(420px,52vh,540px);padding:24px 20px;color:#fbfaf7;text-decoration:none;overflow:hidden;isolation:isolate}
body.home .ort-bild{position:absolute;inset:0;z-index:-1}
body.home .ort-bild img{width:100%;height:100%;object-fit:cover;transition:transform .18s ease-out}
body.home .ort-bild::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,20,18,.05) 20%,rgba(22,20,18,.5) 52%,rgba(22,20,18,.92) 100%)}
body.home .ort:hover .ort-bild img{transform:scale(1.02)}
body.home .ort-name{font-family:var(--serif);font-size:clamp(26px,2.1vw,34px);font-weight:600;letter-spacing:-.02em;line-height:1}
body.home .ort:hover .ort-name,body.home .ort:focus-visible .ort-name{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
body.home .ort-zeile{font-family:var(--sans);font-size:14px;line-height:1.4;color:#e4e0da;margin-bottom:8px}
body.home .ort:focus-visible{outline:3px solid #fbfaf7;outline-offset:-6px}
body.home .orte-foto{margin:0;padding-top:12px;font-family:var(--sans);font-size:14px}
body.home .orte-foto a{color:var(--a-rot);font-weight:700}
/* Urheberangaben der Ortsfotos gesammelt unter der Reihe (Entscheidung 28.09.) */
body.home .orte-nachweis{margin:0;padding-top:6px;font-family:var(--sans);font-size:12px;line-height:1.5;color:var(--a-leise)}
body.home .orte-nachweis a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}
@media (max-width:1100px){body.home .orte-reihe{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:759px){body.home .orte-reihe{grid-template-columns:1fr}body.home .ort{min-height:280px;padding:20px 18px}}
@media (prefers-reduced-motion:reduce){body.home .karte-bild .media img,body.home .ort-bild img{transition:none}}
/* Korrekturen nach Sichtpruefung 23.09. */
body.home .front-vier .front-neben-story:first-child{grid-column:auto}
@media (min-width:1100px){
  body.home .frontpage-grid{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:28px}
  body.home .front-lead>.karte-bild{min-height:400px}
  body.home .front-zweit .media{aspect-ratio:16/9}
  body.home .front-vier{gap:20px 18px}
  body.home .front-vier .media,body.home .front-vier .front-neben-story:first-child .media{aspect-ratio:16/10}
  body.home .front-vier h2{font-size:17.5px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
  body.home .front-vier .meta{display:none}
  body.home .front-vier .karte-text{padding-top:8px}
}
@media (max-width:1099px){
  body.home .ortswahl>.shell{flex-wrap:wrap;row-gap:4px}
  body.home .jetzt{flex-basis:100%;justify-content:flex-start;padding-bottom:6px}
  body.home .jetzt-marke{padding-left:0}
}
@media (min-width:1100px){
  body.home .front-zweit .media{aspect-ratio:2.2/1}
  body.home .front-zweit h2{font-size:clamp(20px,1.6vw,23px)}
  body.home .front-vier .media,body.home .front-vier .front-neben-story:first-child .media{aspect-ratio:2/1}
}

/* ================================================================
   Anhang A6 - Ressorts im eigenen Rhythmus (Phase 5)
   Auswahl und Reihen kommen unveraendert aus dem Inhaltsindex (nur volle
   Reihen). Hier nur die Komposition je Ressort, ab 1100 px.
   ================================================================ */
@media (min-width:1100px){
  /* Blaulicht: dicht und direkt. Eine grosse Meldung, rechts vier kompakte,
     darunter die Zeilen. */
  body.home .desk[data-sektion="blaulicht"]{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);column-gap:32px;align-items:start}
  body.home .desk[data-sektion="blaulicht"]>.desk-heading,body.home .desk[data-sektion="blaulicht"]>.desk-zeilen{grid-column:1/-1}
  body.home .desk[data-sektion="blaulicht"] .desk-gross,body.home .desk[data-sektion="blaulicht"] .desk-mittel{display:contents}
  body.home .desk[data-sektion="blaulicht"] .desk-gross>.desk-karte:first-child{grid-column:1;grid-row:2 / span 4}
  body.home .desk[data-sektion="blaulicht"] .desk-karte:not(.desk-gross>.desk-karte:first-child){grid-column:2;display:grid;grid-template-columns:132px minmax(0,1fr);gap:14px;align-items:start;padding:0 0 16px;margin:0 0 16px;border-bottom:1px solid var(--a-linie)}
  body.home .desk[data-sektion="blaulicht"] .desk-karte:not(.desk-gross>.desk-karte:first-child) .media{aspect-ratio:3/2}
  body.home .desk[data-sektion="blaulicht"] .desk-karte:not(.desk-gross>.desk-karte:first-child) .karte-text{padding-top:0}
  body.home .desk[data-sektion="blaulicht"] .desk-karte:not(.desk-gross>.desk-karte:first-child) h3{font-size:18px;line-height:1.2;margin:2px 0 4px}
  body.home .desk[data-sektion="blaulicht"] .desk-karte:not(.desk-gross>.desk-karte:first-child) .dek{display:none}
  body.home .desk[data-sektion="blaulicht"] .desk-gross>.desk-karte:first-child h3{font-size:clamp(28px,2.3vw,34px);line-height:1.1}
  body.home .desk[data-sektion="blaulicht"] .desk-zeilen{display:grid;grid-template-columns:1fr 1fr;column-gap:32px;margin-top:8px}

  /* Politik & Gemeinde: ruhiger, mehr Text, kleinere Bilder */
  body.home .desk[data-sektion="rathaus"] .desk-gross{gap:40px}
  body.home .desk[data-sektion="rathaus"] .desk-karte--gross{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:22px;align-items:start}
  body.home .desk[data-sektion="rathaus"] .desk-karte--gross .media{aspect-ratio:4/3}
  body.home .desk[data-sektion="rathaus"] .desk-karte--gross .karte-text{padding-top:0}
  body.home .desk[data-sektion="rathaus"] .desk-karte--gross h3{font-size:25px;line-height:1.15}
  body.home .desk[data-sektion="rathaus"] .desk-karte--gross .dek{display:block;font-size:16.5px}
  body.home .desk[data-sektion="rathaus"] .desk-mittel .media{aspect-ratio:16/9}
  body.home .desk[data-sektion="rathaus"] .desk-zeilen{display:grid;grid-template-columns:1fr 1fr;column-gap:40px}

  /* Wirtschaft: sachliche Reihe, alle fuenf gleichrangig unter einer Linie */
  body.home .desk[data-sektion="wirtschaft"]{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));column-gap:20px;align-items:start}
  body.home .desk[data-sektion="wirtschaft"]>.desk-heading,body.home .desk[data-sektion="wirtschaft"]>.desk-zeilen{grid-column:1/-1}
  body.home .desk[data-sektion="wirtschaft"] .desk-gross,body.home .desk[data-sektion="wirtschaft"] .desk-mittel{display:contents}
  body.home .desk[data-sektion="wirtschaft"] .desk-karte{padding-top:14px;border-top:2px solid var(--a-tinte)}
  body.home .desk[data-sektion="wirtschaft"] .desk-karte .media{aspect-ratio:3/2}
  body.home .desk[data-sektion="wirtschaft"] .desk-karte h3{font-size:19px;line-height:1.2}
  body.home .desk[data-sektion="wirtschaft"] .desk-karte .dek{display:none}

  /* Vereine & Menschen: naeher, groessere Bilder in den Zeilen */
  body.home .desk[data-sektion="vereine"] .desk-karte--gross .media{aspect-ratio:4/3}
  body.home .desk[data-sektion="vereine"] .desk-zeilen{display:grid;grid-template-columns:1fr 1fr;column-gap:40px}
  body.home .desk[data-sektion="vereine"] .front-zeile--bild{grid-template-columns:200px minmax(0,1fr)}
  body.home .desk[data-sektion="vereine"] .front-zeile--bild .media{aspect-ratio:1}

  /* Direkter Umkreis: zwei Spalten statt einer langen Liste (29.09.) */
  body.home .desk[data-sektion="umkreis"] .desk-zeilen{display:grid;grid-template-columns:1fr 1fr;column-gap:40px}
}
/* Zeilen ueberall: Ueberschrift als Geschichte, Serif */
body.home .front-zeile--bild h3{font-family:var(--serif);font-weight:600}

/* Werbung A9: ruhiger Streifen, Kennzeichnung oben, zwei gleichwertige Flaechen */
body.home .home-ad-band{margin-top:48px;margin-bottom:0;padding-top:12px;border-top:1px solid var(--a-linie);background:transparent}
body.home .home-ad-band__label{display:block;margin-bottom:8px;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--a-leise)}
body.home .home-ad-band__item{border:1px solid var(--a-linie);border-radius:0;background:var(--a-grund);box-shadow:none}
body.home .home-ad-band__item:hover{border-color:var(--a-tinte)}
body.home .home-ad-band__item strong{font-family:var(--sans)}

/* Ansichten aus der Gemeinde (A7): ein Ruhepunkt nach den dichten Flaechen.
   Keine Box, kein Hintergrund: das Bild ist die Gestaltung. */
body.home .ansichten{margin:clamp(56px,6vw,96px) 0 0}
body.home .ansichten-bild{margin:0 auto}
body.home .ansichten-bild img{display:block;width:100%;aspect-ratio:21/9;object-fit:cover;border-radius:2px}
body.home .ansichten-text{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto;column-gap:32px;align-items:baseline;padding-top:16px}
body.home .ansichten-marke{grid-column:1;margin:0;font-family:var(--sans);font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--a-rot)}
body.home .ansichten-text h2{grid-column:1;margin:4px 0 0;font-family:var(--serif);font-size:clamp(26px,2.4vw,34px);font-weight:600;letter-spacing:-.02em;line-height:1.05}
body.home .ansichten-beschreibung{grid-column:2;grid-row:1 / span 2;margin:0;font-family:var(--sans);font-size:16px;line-height:1.5;color:var(--a-text);align-self:end}
body.home .ansichten-credit{grid-column:2;margin:4px 0 0;font-family:var(--sans);font-size:12.5px;color:var(--a-leise)}
body.home .ansichten-senden{grid-column:3;grid-row:1 / span 3;align-self:end;font-family:var(--sans);font-size:14px;font-weight:700;color:var(--a-rot);white-space:nowrap}
@media (max-width:759px){
  body.home .ansichten-bild{padding:0}
  body.home .ansichten-bild img{aspect-ratio:4/3;border-radius:0}
  body.home .ansichten-text{display:block}
  body.home .ansichten-beschreibung{margin-top:8px}
  body.home .ansichten-senden{display:inline-block;margin-top:10px}
}

/* Text-Aufmacher (Bildstufen V3, KBS 25.09.2026): Gibt es in den letzten sieben
   Tagen kein eigenes Foto, steht die juengste Meldung ohne Bild oben. Die
   Schlagzeile traegt die Flaeche allein, die Bordeaux-Linie markiert den Platz. */

/* ============================================================
   BUEHNE (KBS/Ordin 26.09.2026)
   Eine grosse Highlight-Meldung, zwei Karten rechts, drei darunter.
   Alle mit grossem Bild. Die Schlagzeile des Aufmachers steht ab
   760 px auf einem Verlauf im Bild. Mobil: Aufmacher 4:3, danach
   fuenf Zeilen mit Vorschaubild. Ersetzt .frontpage-grid/.front-vier.
   ============================================================ */
body.home .buehne{display:grid;gap:0;padding-top:20px;padding-bottom:24px}
body.home .buehne .front-lead{margin-bottom:14px}
body.home .buehne .front-lead{position:relative;margin:0;min-width:0;display:block}
body.home .buehne .front-lead .karte-bild{display:block}
html body.home .buehne .front-lead.front-lead .media{position:relative;aspect-ratio:4/3!important;height:auto;overflow:hidden;background:#221e1b}
body.home .buehne .front-lead .media img{width:100%;height:100%;object-fit:cover;display:block}
body.home .buehne .front-lead-copy{padding-top:14px}
body.home .buehne .front-lead h1,body.home .buehne .front-lead h2{max-width:none;margin:4px 0 8px;font-family:var(--serif);font-weight:600;letter-spacing:-.018em;line-height:1.08;font-size:clamp(27px,7vw,34px);-webkit-line-clamp:4;line-clamp:4}
body.home .buehne .front-lead h1 a,body.home .buehne .front-lead h2 a{color:var(--a-tinte);text-decoration:none}
body.home .buehne .front-lead-copy>p:not(.marke){margin:0 0 8px;font-size:16px;line-height:1.5;color:var(--a-text);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}
body.home .buehne .front-lead .meta{font-size:13px;color:var(--a-leise)}

body.home .buehne-rechts,body.home .buehne-unten{display:grid;gap:0;min-width:0}
body.home .buehne-karte{margin:0;min-width:0;display:grid;grid-template-columns:132px minmax(0,1fr);gap:14px;align-items:start;padding:14px 0;border-top:1px solid var(--a-linie)}
body.home .buehne-karte .karte-bild{display:block}
html body.home .buehne-karte .media{aspect-ratio:4/3!important;overflow:hidden;background:#e9e6e1}
body.home .buehne-karte .media img{width:100%;height:100%;object-fit:cover;display:block}
body.home .buehne-karte .karte-text{padding-top:0!important}
body.home .buehne-karte .marke{margin:0 0 4px;font-size:11.5px}
/* Schlagzeilen ganz zeigen (Feinschliff 16.10.2026: am Handy endeten sie mitten im Wort mit „…“). */
body.home .buehne-karte h2{margin:0 0 4px;font-family:var(--serif);font-weight:600;letter-spacing:-.01em;line-height:1.18;font-size:17.5px}
body.home .buehne-karte h2 a{color:var(--a-tinte);text-decoration:none}
body.home .buehne-karte h2 a:hover,body.home .buehne .front-lead h1 a:hover,body.home .buehne .front-lead h2 a:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
body.home .buehne-karte .meta{font-size:12px;color:var(--a-leise)}
body.home .buehne-karte .karte-bild .badge{font-size:9.5px;padding:2px 5px;left:6px;bottom:6px}

@media (min-width:760px){
  body.home .buehne{grid-template-columns:repeat(6,minmax(0,1fr));gap:22px 20px;padding-top:22px}
  body.home .buehne .front-lead{grid-column:1/-1;margin-bottom:0}
  html body.home .buehne .front-lead.front-lead .media{aspect-ratio:16/9!important}
  /* Schlagzeile im Bild, auf einem Verlauf von unten. */
  body.home .buehne .front-lead-copy{position:absolute;left:0;right:0;bottom:0;padding:120px 28px 24px;background:linear-gradient(180deg,rgba(18,14,12,0) 0%,rgba(18,14,12,.62) 42%,rgba(18,14,12,.9) 100%);pointer-events:none}
  body.home .buehne .front-lead-copy a{pointer-events:auto}
  body.home .buehne .front-lead .marke,body.home .buehne .front-lead .marke-teil,body.home .buehne .front-lead .marke-rubrik{color:#f3eee8}
  body.home .buehne .front-lead .marke-ort{display:inline-block;padding:3px 7px 2px;background:var(--a-rot);color:#fdfbf8}
  body.home .buehne .front-lead h1,body.home .buehne .front-lead h2{font-size:clamp(30px,3.3vw,46px);max-width:24ch;-webkit-line-clamp:4;line-clamp:4}
  body.home .buehne .front-lead h1 a,body.home .buehne .front-lead h2 a{color:#fdfbf8}
  body.home .buehne .front-lead-copy>p:not(.marke){max-width:62ch;color:rgba(253,251,248,.88);-webkit-line-clamp:2;line-clamp:2}
  body.home .buehne .front-lead .meta{color:rgba(253,251,248,.78)}
  body.home .buehne .front-lead .karte-bild .badge{top:14px;left:14px;bottom:auto}
  body.home .buehne-rechts,body.home .buehne-unten{display:contents}
  body.home .buehne-karte{grid-column:span 3;display:block;padding:0;border-top:0}
  body.home .buehne-karte--u{grid-column:span 2}
  html body.home .buehne-karte .media{aspect-ratio:16/10!important}
  body.home .buehne-karte .karte-text{padding-top:10px!important}
  body.home .buehne-karte h2{font-size:clamp(18px,1.45vw,21px)}
  html body.home .buehne-karte--r .media{aspect-ratio:2/1!important}
  body.home .buehne-karte .karte-bild .badge{font-size:10px;left:8px;bottom:8px}
}
@media (min-width:1100px){
  /* Aufmacher 8 von 12 Spalten, rechts zwei Karten, darunter drei. */
  body.home .buehne{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:auto auto;gap:24px 24px}
  body.home .buehne .front-lead{grid-column:1/9;grid-row:1}
  body.home .buehne .front-lead .karte-bild{height:100%}
  html body.home .buehne .front-lead.front-lead .media{aspect-ratio:auto!important;height:100%;min-height:440px}
  body.home .buehne-rechts{display:grid;grid-column:9/13;grid-row:1;grid-template-rows:1fr 1fr;gap:20px}
  body.home .buehne-rechts .buehne-karte{grid-column:auto}
  html body.home .buehne-rechts .buehne-karte .media{aspect-ratio:2/1!important}
  body.home .buehne-unten{display:grid;grid-column:1/-1;grid-row:2;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
  body.home .buehne-unten .buehne-karte{grid-column:auto}
  html body.home .buehne-unten .buehne-karte .media{aspect-ratio:16/9!important}
  /* Ohne laufende Anzeige (keine Musteranzeigen mehr, 28.10.2026): zwei Karten über die volle Breite. */
  body.home .buehne-unten--ohne-werbung{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:760px) and (max-width:1099px){
  body.home .buehne-unten--ohne-werbung .buehne-karte--u{grid-column:span 3}
}

/* ============================================================
   RHYTHMUS (KBS/Ordin 26.09.2026: "zu viel Weissraum")
   Ein Abstandstakt fuer die ganze Startseite statt 44-166 px je Sektion.
   Nach jeder Rubrik steht ein Werbeband; es traegt den Abstand nach oben.
   ============================================================ */
body.home{--home-takt:clamp(20px,2.2vw,30px)}
html body.home main > .desk{margin-top:0!important;padding-top:var(--home-takt)!important}
html body.home main > .werbung--band{margin-top:var(--home-takt);margin-bottom:0}
html body.home main > .portal-top{margin-top:var(--home-takt)!important;margin-bottom:0!important;padding-top:0!important}
html body.home main > .orte-buehne{padding-top:var(--home-takt)!important;margin-top:0!important}
html body.home main > .ansichten{margin-top:var(--home-takt)!important}
html body.home main > .reader-note{margin-top:var(--home-takt)!important}
html body.home .desk-heading{margin-bottom:18px!important}

/* Orte-Buehne kompakt (26.09.): 280 statt 540 px hohe Kacheln. */
html body.home .ort{min-height:clamp(240px,26vh,300px)}

/* ============================================================
   MERZENICH JETZT (Cockpit, KBS/Ordin 26.09.2026; neu gestaltet 30.09.2026)
   Kein Kachelstreifen mehr: links ein rotes Ortsschild mit Datum und dem
   Wetter als grosser Zahl, daneben drei kurze Saetze mit eigenem Zeichen
   (Rathaus, Termin, Feuerwehr), rechts die Notrufnummern als Tasten.
   Nichts wird abgeschnitten. Nur echte Daten (deploy/cockpit.mjs).
   ============================================================ */
body.home .mj{--mj-papier:#fbf3ec;display:block;margin-top:8px}
body.home .mj-innen{display:grid;grid-template-columns:minmax(230px,.8fr) minmax(0,3.7fr);align-items:stretch;border-bottom:1px solid var(--a-linie)}
body.home .mj-schild{display:flex;flex-direction:column;justify-content:space-between;gap:18px;padding:20px 24px 18px;background:var(--a-rot);color:var(--mj-papier);border-radius:3px 3px 0 0}
body.home .mj-ort{margin:0;font-family:var(--serif);font-size:30px;font-weight:700;line-height:.95;letter-spacing:-.015em;color:inherit}
body.home .mj-ort span{display:block;margin-top:5px;font-family:var(--sans);font-size:15px;font-weight:600;letter-spacing:0;color:#f3d9d4}
body.home .mj-datum{margin:8px 0 0;font-size:14px;line-height:1.35;color:#f3d9d4}
body.home .mj-wetter{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:end;gap:6px 12px;margin:0}
@media (min-width:1181px){body.home .mj-wetter{grid-template-columns:auto}}
body.home .mj-wetter[hidden]{display:none}
body.home .mj-grad{font-family:var(--serif);font-size:58px;font-weight:600;line-height:.8;letter-spacing:-.04em;font-variant-numeric:lining-nums tabular-nums}
body.home .mj-himmel{display:flex;flex-direction:column;padding-bottom:3px;font-size:14px;line-height:1.3;color:#f3d9d4}
body.home .mj-spanne{white-space:nowrap}
body.home .mj-datum{white-space:nowrap}
body.home .mj-liste{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
body.home .mj-eintrag{display:grid;grid-template-columns:26px minmax(0,1fr);gap:14px;align-content:start;padding:22px 24px 20px;color:var(--a-tinte);text-decoration:none;border-left:1px solid var(--a-linie);transition:background-color .18s cubic-bezier(.22,1,.36,1)}
body.home .mj-eintrag:hover{background:var(--a-flaeche)}
body.home .mj-eintrag:focus-visible{outline:2px solid var(--a-rot);outline-offset:-2px}
body.home .mj-zeichen{width:26px;height:26px;margin-top:1px;fill:none;stroke:var(--a-rot);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
body.home .mj-text{display:flex;flex-direction:column;gap:4px;min-width:0}
body.home .mj-lead{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;line-height:1.3;color:var(--a-rot)}
body.home .mj-titel{font-family:var(--serif);font-size:21px;font-weight:600;line-height:1.18;letter-spacing:-.01em;color:var(--a-tinte)}
body.home .mj-eintrag:hover .mj-titel{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
body.home .mj-klein{margin-top:2px;font-size:14px;line-height:1.35;color:var(--a-leise)}
/* Rathaus: Status als Punkt, gruen nur bei „geoeffnet“; Farbe traegt nie allein (Text sagt es). */
body.home .mj-status{display:none;width:9px;height:9px;border-radius:50%;background:#8f8a83;flex:none}
body.home .ist-bekannt .mj-status{display:inline-block}
body.home .ist-offen .mj-status{background:#2f7d4a;box-shadow:0 0 0 3px #2f7d4a26}
body.home .ist-offen .mj-lead{color:#246b3c}
@media (max-width:1180px){
  body.home .mj-innen{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  body.home .mj-schild{grid-column:1/-1;flex-direction:row;align-items:flex-end;justify-content:space-between;border-radius:3px}
  body.home .mj-liste{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr))}
  body.home .mj-eintrag:first-child{border-left:0;padding-left:0}
}
@media (max-width:760px){
  body.home .mj-schild{padding:16px 18px}
  body.home .mj-ort{font-size:26px}
  body.home .mj-grad{font-size:48px}
  body.home .mj-liste{grid-template-columns:1fr}
  body.home .mj-eintrag{border-left:0;border-bottom:1px solid var(--a-linie);padding:16px 0}
  body.home .mj-titel{font-size:19px}
}
@media (max-width:420px){
  body.home .mj-wetter{grid-template-columns:auto;justify-items:end;text-align:right}
  body.home .mj-himmel{align-items:flex-end}
}
/* Sehr schmale Telefone: Wetter unter Ort und Datum statt daneben. */
@media (max-width:380px){
  body.home .mj-schild{flex-direction:column;align-items:stretch;gap:14px}
  body.home .mj-wetter{grid-template-columns:auto minmax(0,1fr);justify-items:start;text-align:left}
  body.home .mj-himmel{align-items:flex-start}
  body.home .mj-datum{white-space:normal}
}
@media (prefers-reduced-motion:reduce){body.home .mj-eintrag,body.home .mj-taste{transition:none}}


/* Markt-Minis mit Bild V3 */
body.home .portal-service .markt-mini--bild{display:grid;grid-template-columns:72px minmax(0,1fr);gap:9px;align-items:center}
body.home .portal-service .markt-mini__icon{display:grid;place-items:center;aspect-ratio:4/3;border:1px solid #e3e0da;border-radius:5px;background:#f6f4f0;color:var(--a-rot)}
body.home .portal-service .markt-mini__icon svg{width:34px;height:auto}
body.home .portal-service .markt-mini__bild{position:relative;display:block;margin:0;aspect-ratio:4/3;overflow:hidden;border-radius:5px;background:#e9e8e5}
body.home .portal-service .markt-mini__bild img{display:block;width:100%;height:100%;object-fit:cover}
body.home .portal-service .markt-mini__credit{position:absolute;left:4px;right:4px;bottom:4px;display:block;margin:0;padding:2px 4px;border-radius:3px;background:rgba(0,0,0,.68);color:#fff;font-size:8px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.home .portal-service .markt-mini__copy{display:block;min-width:0;margin:0;color:inherit}
body.home .portal-service .markt-mini__meta{display:block;margin-top:2px;font-size:11.5px;color:var(--muted,#65696c)}
