/* 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. */
.sc-stand{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 18px}
.sc-stand .sc-kachel{background:#17191b;color:#fff;border-radius:4px;padding:16px 12px;text-align:center}
.sc-stand .sc-wert{display:block;font-family:Newsreader,Georgia,serif;font-size:30px;line-height:1;font-weight:600;color:#c8a24e}
.sc-stand .sc-label{display:block;margin-top:7px;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#cfcbc2}
.sc-stand-quelle{font-size:12px;color:#666;margin:-8px 0 20px}

/* Offene Begegnung: schliesst die Luecke zwischen letztem und naechstem Spiel,
   ohne ein Ergebnis zu behaupten, das nicht bestaetigt ist. */
.match-panel.offen .match-heading b{color:#a8842f}
.match-offen-hinweis{display:inline-block;margin-top:6px;font-size:12px;font-weight:700;
  letter-spacing:.04em;color:#a8842f;border:1px solid #e0d3ae;background:#f6efdd;
  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}}

@media (max-width:640px){
  .sc-stand{grid-template-columns:repeat(3,1fr);gap:7px}
  .sc-stand .sc-kachel{padding:12px 6px}
  .sc-stand .sc-wert{font-size:24px}
  .sc-stand .sc-label{font-size:10px;letter-spacing:.1em}
}

/* 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,#e2ded6);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,#c8a24e);padding-top:12px;text-decoration:none}
.managed-ad .ad-name{font-family:Newsreader,Georgia,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}}

/* recovery.css teilt .front-side bei aktiven Anzeigen in zwei Spalten.
   Die Regel hat keine Ruecksetzung fuer schmale Fenster; dort laeuft die
   Ortsmarke aus der Karte heraus. Der Anzeigenpfad war bisher nie aktiv. */
@media (max-width:900px){
  .portal-top.has-ads .front-side{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,body>.districtbar{min-width:0}
.mainnav .navrow,.mainnav .navscroll,.districtbar>.shell{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{max-width:none;flex-wrap:nowrap;align-items:center;white-space:nowrap;gap:12px}
  .header-local [data-today]{flex-basis:auto;text-align:right}
}

/* Wetter bleibt bewusst ein schlichter Serviceblock und keine Dashboard-Card. */
.header-weather{font-weight:650;color:#242424}
.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}

/* Aktuelle Blaulicht-Zweitmeldung hat bewusst kein beliebiges Symbol- oder
   Archivbild. Ohne Bild nutzt der bestehende Front-Side-Slot die volle Breite. */
.front-brief.editorial-secondary{grid-template-columns:1fr}
.front-brief.editorial-secondary>div{grid-column:1;grid-row:1}
.front-brief.editorial-secondary h3{margin-top:4px}
