/* ==========================================================================
   Tribune – Joomla 6 Zeitungs-Template
   Farben & Schriften kommen als CSS-Variablen aus den Template-Einstellungen.
   Eigene Anpassungen bitte in custom.css (wird nie überschrieben).
   ========================================================================== */

:root {
  --ts-paper: #fff; --ts-ink: #222; --ts-head: #000; --ts-muted: #5c5c5c; --ts-rule: #d6d6d6;
  --ts-accent: #0274b6; --ts-premium: #8a6d1d; --ts-tint: #f4f1ea; --ts-dark: #111;
  --ts-up: #0a7d32; --ts-down: #c4161c;
  --ts-font-masthead: Georgia, serif; --ts-font-heading: Georgia, serif; --ts-font-body: Georgia, serif;
  --ts-font-ui: system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --ts-base: 18px; --ts-container: 1280px; --ts-gutter: 32px; --ts-measure: 680px;
}

/* ---------- Basis ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { font-size: var(--ts-base); -webkit-text-size-adjust: 100%; scroll-padding-top: 4rem; }
body { margin: 0; background: var(--ts-paper); color: var(--ts-ink); font-family: var(--ts-font-body); font-size: 1rem; line-height: 1.6; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img, video, svg, iframe { max-width: 100%; }
img { height: auto; }
a { color: var(--ts-accent); text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 2px solid var(--ts-accent); outline-offset: 2px; }
h1, h2, h3, h4, h5, h6 { font-family: var(--ts-font-heading); color: var(--ts-head); line-height: 1.15; margin: 0 0 .5em; font-weight: 700; text-wrap: balance; }
h1 { font-size: clamp(2rem, 1.4rem + 2.4vw, 3rem); letter-spacing: -.01em; }
h2 { font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem); }
h3 { font-size: 1.3rem; }
h4 { font-size: 1.1rem; }
p { margin: 0 0 1em; }
hr { border: 0; border-top: 1px solid var(--ts-rule); margin: 2rem 0; }
blockquote { margin: 1.5em 0; padding: 0 0 0 1.25rem; border-left: 3px solid var(--ts-head); font-style: italic; font-size: 1.15em; }
table { border-collapse: collapse; width: 100%; font-family: var(--ts-font-ui); font-size: .85rem; }
th, td { padding: .5rem .6rem; border-bottom: 1px solid var(--ts-rule); text-align: left; vertical-align: top; }
th { font-weight: 700; }
figure { margin: 0; }
figcaption { font-family: var(--ts-font-ui); font-size: .75rem; line-height: 1.45; color: var(--ts-muted); margin-top: .45rem; }
.visually-hidden, .element-invisible { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ts-skip { position: absolute; left: -9999px; top: 0; z-index: 100; background: var(--ts-head); color: #fff; padding: .6rem 1rem; font-family: var(--ts-font-ui); }
.ts-skip:focus { left: 1rem; top: 1rem; }

/* ---------- Raster ---------- */
.ts-container { width: 100%; max-width: calc(var(--ts-container) + 2 * 1.25rem); margin-inline: auto; padding-inline: 1.25rem; }
.ts-row--fluid > .ts-container { max-width: none; }
.ts-row--boxed { max-width: calc(var(--ts-container) + 2 * 1.25rem); margin-inline: auto; }
.ts-row--boxed > .ts-container { padding-inline: 1.25rem; }
.ts-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--ts-gutter); row-gap: 1.5rem; }
.ts-col { grid-column: span var(--span, 12); min-width: 0; }
.ts-col > * + * { margin-top: 1.5rem; }
.ts-col > .ts-messages:empty, .ts-col > .ts-pos:empty { display: none; }
.ts-row--sticky { position: sticky; top: 0; z-index: 30; background: var(--ts-paper); }
.ts-row--sticky.is-stuck { box-shadow: 0 1px 0 var(--ts-rule), 0 6px 18px -12px rgba(0,0,0,.35); }

/* Spaltenlinien wie in der gedruckten Zeitung: Zeilenklasse „ts-rules“ */
.ts-rules .ts-col { position: relative; }
.ts-rules .ts-col + .ts-col::before { content: ""; position: absolute; top: 0; bottom: 0; left: calc(var(--ts-gutter) / -2); border-left: 1px solid var(--ts-rule); }

@media (max-width: 991px) {
  .ts-col { grid-column: span 12; }
  .ts-col--narrow { grid-column: span 6; }
  .ts-rules .ts-col + .ts-col::before { display: none; }
  .ts-row--masthead .ts-col, .ts-row--topbar .ts-col { grid-column: span var(--span); }
}
@media (max-width: 600px) {
  .ts-col--narrow { grid-column: span 12; }
}

/* ---------- Zeilen-Hilfsklassen (im Layout-Builder pro Zeile eintragbar) ---------- */
.ts-pad { padding-block: 1.75rem; }
.ts-pad-lg { padding-block: 3.5rem; }
.ts-border-top > .ts-container > .ts-grid { border-top: 1px solid var(--ts-rule); padding-top: 1.75rem; }
.ts-border-bottom { border-bottom: 1px solid var(--ts-rule); }
.ts-bg-light { background: #f5f5f5; }
.ts-bg-cream { background: var(--ts-tint); }
.ts-bg-dark { background: var(--ts-dark); color: #e9e9e9; --ts-head: #fff; --ts-ink: #e9e9e9; --ts-muted: #a8a8a8; --ts-rule: rgba(255,255,255,.18); --ts-rule-dark: rgba(255,255,255,.18); --ts-paper: var(--ts-dark); }
.ts-bg-dark a { color: #fff; }
.ts-bg-accent { background: var(--ts-accent); color: #fff; --ts-head: #fff; --ts-ink: #fff; --ts-muted: rgba(255,255,255,.8); --ts-rule: rgba(255,255,255,.3); }
.ts-bg-accent a { color: #fff; }
.ts-center { text-align: center; }
.ts-hide-mobile { }
@media (max-width: 767px) { .ts-hide-mobile { display: none !important; } }
@media (min-width: 768px) { .ts-show-mobile { display: none !important; } }

/* ---------- Kopfbereich ---------- */
.ts-topbar { font-family: var(--ts-font-ui); font-size: .78rem; }
.ts-topbar .ts-grid { align-items: center; min-height: 2.5rem; row-gap: 0; }
.ts-topbar .ts-col > * + * { margin-top: 0; }
.ts-topbar .ts-col { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
.ts-topbar .ts-col:last-child { justify-content: flex-end; }
.ts-topbar .ts-col:nth-child(2):not(:last-child) { justify-content: center; }
.ts-date { margin: 0; font-weight: 600; color: var(--ts-head); }

.ts-masthead .ts-grid { align-items: center; padding-block: .6rem 1rem; }
.ts-masthead .ts-col > * + * { margin-top: 0; }
.ts-masthead .ts-col { display: flex; align-items: center; gap: 1rem; }
.ts-masthead .ts-col:has(.ts-logo) { justify-content: center; }
.ts-masthead .ts-col:last-child:not(:has(.ts-logo)) { justify-content: flex-end; }
.ts-logo { text-align: center; }
.ts-logo a { color: var(--ts-head); text-decoration: none; display: inline-block; }
.ts-logo__text { font-family: var(--ts-font-masthead); font-weight: 700; font-size: clamp(1.7rem, 1rem + 3.4vw, 3.6rem); line-height: 1; letter-spacing: -.01em; white-space: nowrap; }
.ts-logo__text--caps { text-transform: uppercase; letter-spacing: .005em; }
.ts-logo__tagline { font-family: var(--ts-font-ui); font-size: .72rem; color: var(--ts-muted); margin: .4rem 0 0; }
@media (max-width: 600px) { .ts-logo__text { font-size: clamp(1.3rem, 6vw, 1.8rem); } }

.ts-account { display: flex; gap: .9rem; align-items: center; font-family: var(--ts-font-ui); font-size: .8rem; }
.ts-account__link { color: var(--ts-head); font-weight: 600; text-decoration: none; }
.ts-account__link:hover { text-decoration: underline; }
.ts-account__link--muted { color: var(--ts-muted); font-weight: 400; }

.ts-menu-toggle { display: none; align-items: center; gap: .5rem; background: none; border: 0; padding: .4rem 0; font: 600 .8rem var(--ts-font-ui); color: var(--ts-head); cursor: pointer; }
.ts-burger, .ts-burger::before, .ts-burger::after { display: block; width: 20px; height: 2px; background: currentColor; position: relative; }
.ts-burger::before, .ts-burger::after { content: ""; position: absolute; left: 0; }
.ts-burger::before { top: -6px; } .ts-burger::after { top: 6px; }
@media (max-width: 991px) {
  .ts-menu-toggle { display: inline-flex; }
  .ts-navbar, .ts-subnav { display: none; }
  .ts-masthead .ts-account { display: none; }
  .ts-topbar .ts-account .ts-account__link { display: none; }
}
@media (max-width: 600px) { .ts-menu-toggle__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } }

/* Navigation (mod_menu) */
.ts-navbar { border-top: 1px solid var(--ts-head); border-bottom: 1px solid var(--ts-rule); font-family: var(--ts-font-ui); }
.ts-navbar .ts-grid { row-gap: 0; }
.ts-pos--nav .mod-menu, .ts-pos--nav-secondary .mod-menu { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 1.6rem; list-style: none; margin: 0; padding: 0; }
.ts-pos--nav .mod-menu > li { position: relative; }
.ts-pos--nav .mod-menu > li > a, .ts-pos--nav .mod-menu > li > span { display: block; padding: .7rem 0; font-size: .82rem; font-weight: 600; color: var(--ts-head); text-decoration: none; }
.ts-pos--nav .mod-menu > li.active > a, .ts-pos--nav .mod-menu > li > a:hover { box-shadow: inset 0 -3px 0 var(--ts-head); }
.ts-pos--nav .mod-menu__sub, .ts-pos--nav .mod-menu > li > ul { position: absolute; left: -1rem; top: 100%; min-width: 14rem; list-style: none; margin: 0; padding: .5rem 0; background: var(--ts-paper); border: 1px solid var(--ts-rule); box-shadow: 0 10px 24px -14px rgba(0,0,0,.4); opacity: 0; visibility: hidden; transform: translateY(4px); transition: opacity .15s, transform .15s, visibility 0s .15s; z-index: 40; }
.ts-pos--nav .mod-menu > li:hover > ul, .ts-pos--nav .mod-menu > li:focus-within > ul { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.ts-pos--nav .mod-menu li li a { display: block; padding: .4rem 1rem; font-size: .82rem; color: var(--ts-ink); text-decoration: none; }
.ts-pos--nav .mod-menu li li a:hover { background: #f3f3f3; }
.ts-subnav { font-family: var(--ts-font-ui); border-bottom: 1px solid var(--ts-rule); }
.ts-pos--nav-secondary .mod-menu a { display: block; padding: .5rem 0; font-size: .75rem; color: var(--ts-muted); text-decoration: none; }
.ts-pos--nav-secondary .mod-menu a:hover { color: var(--ts-head); }

.ts-tickerbar { border-bottom: 1px solid var(--ts-rule); }
.ts-breaking .ts-mod, .ts-breaking .ts-pos { font-family: var(--ts-font-ui); }
.ts-ad { text-align: center; padding-block: 1rem; }

/* ---------- Mobil-Menü ---------- */
.ts-offcanvas { margin: 0; width: min(22rem, 88vw); max-width: none; height: 100dvh; max-height: none; border: 0; padding: 0; background: var(--ts-paper); color: var(--ts-ink); }
.ts-offcanvas::backdrop { background: rgba(0,0,0,.45); }
.ts-offcanvas[open] { animation: ts-slide .22s ease-out; }
@keyframes ts-slide { from { transform: translateX(-100%); } }
.ts-offcanvas__head { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.25rem; border-bottom: 1px solid var(--ts-rule); }
.ts-offcanvas__title { font-family: var(--ts-font-masthead); font-weight: 700; font-size: 1.1rem; text-transform: uppercase; }
.ts-offcanvas__close { background: none; border: 0; padding: .3rem; cursor: pointer; color: var(--ts-head); }
.ts-offcanvas__body { padding: 1rem 1.25rem 2rem; font-family: var(--ts-font-ui); }
.ts-offcanvas .mod-menu { list-style: none; margin: 0 0 1rem; padding: 0; }
.ts-offcanvas .mod-menu a { display: block; padding: .65rem 0; border-bottom: 1px solid var(--ts-rule); color: var(--ts-head); font-weight: 600; text-decoration: none; }
.ts-offcanvas .mod-menu ul { list-style: none; padding-left: 1rem; }
.ts-offcanvas .mod-menu ul a { font-weight: 400; }
.ts-offcanvas .ts-account { flex-direction: column; align-items: stretch; margin-top: 1.5rem; }
.ts-offcanvas .ts-account .ts-account__link { display: block; }
@media (prefers-reduced-motion: reduce) { .ts-offcanvas[open] { animation: none; } }

/* ---------- Module & Modulstile ---------- */
.ts-mod__head { margin-bottom: .9rem; }
.ts-mod__title { font-family: var(--ts-font-ui); font-size: .85rem; font-weight: 700; color: var(--ts-head); margin: 0; }
.ts-mod__title a { color: inherit; text-decoration: none; }

.ts-mod--default .ts-mod__head { border-top: 2px solid var(--ts-head); padding-top: .45rem; }
.ts-mod--section .ts-mod__head { border-top: 1px solid var(--ts-head); border-bottom: 1px solid var(--ts-rule); padding: .55rem 0; margin-bottom: 1.25rem; }
.ts-mod--section .ts-mod__title { font-family: var(--ts-font-heading); font-size: 1.55rem; }
.ts-mod--boxed { border: 1px solid var(--ts-rule); padding: 1.1rem 1.2rem 1.25rem; }
.ts-mod--boxed .ts-mod__head { border-bottom: 1px solid var(--ts-rule); padding-bottom: .55rem; }
.ts-mod--tinted { background: var(--ts-tint); padding: 1.2rem 1.25rem 1.3rem; }
.ts-mod--dark { background: var(--ts-dark); color: #e9e9e9; padding: 1.2rem 1.25rem 1.3rem; --ts-head: #fff; --ts-ink: #e9e9e9; --ts-muted: #a8a8a8; --ts-rule: rgba(255,255,255,.18); --ts-paper: var(--ts-dark); }
.ts-mod--dark a { color: #fff; }
.ts-mod--highlight { border-top: 4px solid var(--ts-accent); padding-top: .8rem; }
.ts-mod--highlight .ts-mod__title { color: var(--ts-accent); }
.ts-mod--plain .ts-mod__title { font-family: var(--ts-font-heading); font-size: 1.15rem; }

/* Modulklassen (Erweitert → Modulklasse) */
.ts-mod.ts-bg-light, .ts-mod.ts-bg-cream, .ts-mod.ts-bg-dark, .ts-mod.ts-bg-accent { padding: 1.2rem 1.25rem 1.3rem; }
.ts-mod.ts-pad { padding: 1.25rem; }
.ts-mod.ts-pad-lg { padding: 2.25rem; }
.ts-mod.ts-border-top { border-top: 1px solid var(--ts-rule); padding-top: 1rem; }
.ts-mod.ts-sticky { position: sticky; top: 4.5rem; }
.ts-mod.ts-shadow { box-shadow: 0 1px 2px rgba(0,0,0,.08), 0 10px 30px -18px rgba(0,0,0,.4); padding: 1.25rem; }

/* Überschrift-Klassen (Erweitert → Überschrift-Klasse) */
.ts-mod__title.ts-h-serif { font-family: var(--ts-font-heading); font-size: 1.25rem; }
.ts-mod__title.ts-h-sans { font-family: var(--ts-font-ui); }
.ts-mod__title.ts-h-caps { text-transform: uppercase; letter-spacing: .06em; font-size: .75rem; }
.ts-mod__title.ts-h-lg { font-size: 1.8rem; font-family: var(--ts-font-heading); }
.ts-mod__title.ts-h-sm { font-size: .75rem; }
.ts-mod__title.ts-h-accent { color: var(--ts-accent); }
.ts-mod__title.ts-h-center { text-align: center; }
.ts-mod__title.ts-h-boxed { display: inline-block; background: var(--ts-head); color: var(--ts-paper); padding: .25rem .6rem; }
.ts-mod__title.ts-h-underline { display: inline-block; box-shadow: inset 0 -3px 0 var(--ts-accent); padding-bottom: .15rem; }
.ts-mod__title.ts-h-rule { display: flex; align-items: center; gap: .8rem; }
.ts-mod__title.ts-h-rule::after { content: ""; flex: 1; border-top: 1px solid var(--ts-rule); }
.ts-mod__head:has(.ts-h-rule), .ts-mod__head:has(.ts-h-boxed), .ts-mod__head:has(.ts-h-underline) { border-top: 0; padding-top: 0; }

/* Core-Module */
.mod-breadcrumbs { display: flex; flex-wrap: wrap; gap: .35rem; list-style: none; margin: 0; padding: 0; font-family: var(--ts-font-ui); font-size: .75rem; color: var(--ts-muted); }
.mod-breadcrumbs li + li::before { content: "/"; margin-right: .35rem; color: var(--ts-rule); }
.mod-breadcrumbs a { color: var(--ts-muted); text-decoration: none; }
.mod-breadcrumbs .float-start, .mod-breadcrumbs__here { display: none; }
.ts-pos .mod-menu:not(.ts-pos--nav .mod-menu) { list-style: none; padding: 0; margin: 0; font-family: var(--ts-font-ui); }

/* ---------- Buttons & Formulare ---------- */
.ts-btn, .btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; font: 600 .85rem/1.2 var(--ts-font-ui); padding: .7rem 1.2rem; border: 1px solid var(--ts-head); background: var(--ts-paper); color: var(--ts-head); text-decoration: none; cursor: pointer; border-radius: 2px; }
.ts-btn:hover, .btn:hover { background: var(--ts-head); color: var(--ts-paper); }
.ts-btn--primary, .btn-primary { background: var(--ts-accent); border-color: var(--ts-accent); color: #fff; }
.ts-btn--primary:hover, .btn-primary:hover { background: color-mix(in srgb, var(--ts-accent) 82%, #000); border-color: color-mix(in srgb, var(--ts-accent) 82%, #000); color: #fff; }
.ts-btn--sm { padding: .4rem .8rem; font-size: .78rem; }
.ts-btn--block { width: 100%; }
.ts-btn--ghost { border-color: var(--ts-rule); }
.ts-btn--social { border-color: var(--ts-rule); background: var(--ts-paper); color: var(--ts-head); }
.ts-btn--social:hover { background: #f5f5f5; color: var(--ts-head); border-color: var(--ts-muted); }
.ts-btn--social svg { width: 1.15rem; height: 1.15rem; }
.ts-linkbtn { background: none; border: 0; padding: .5rem 0; color: var(--ts-accent); font: 600 .8rem var(--ts-font-ui); cursor: pointer; text-decoration: underline; }
.form-control, .form-select, input[type=text], input[type=email], input[type=password], input[type=search], input[type=tel], input[type=url], textarea, select { width: 100%; font: .95rem/1.4 var(--ts-font-ui); padding: .65rem .75rem; border: 1px solid #b9b9b9; border-radius: 2px; background: #fff; color: #111; }
.form-control:focus, input:focus, textarea:focus, select:focus { outline: 2px solid var(--ts-accent); outline-offset: 0; border-color: var(--ts-accent); }
label, .form-label, .control-label { font: 600 .8rem var(--ts-font-ui); color: var(--ts-head); display: block; margin-bottom: .35rem; }
.control-group, .ts-field { margin-bottom: 1rem; }
.ts-check { display: flex; gap: .5rem; align-items: center; font-weight: 400; margin-bottom: 1rem; }
.ts-check input { width: auto; }
.invalid { border-color: var(--ts-down) !important; }
.form-control-feedback, .invalid-feedback { color: var(--ts-down); font: .75rem var(--ts-font-ui); }

/* Systemmeldungen */
joomla-alert, .alert { display: block; font-family: var(--ts-font-ui); font-size: .85rem; padding: .85rem 1rem; border-left: 4px solid var(--ts-accent); background: #eef5fb; margin-bottom: 1rem; }
joomla-alert[type=danger], .alert-danger, joomla-alert[type=error] { border-color: var(--ts-down); background: #fbeeee; }
joomla-alert[type=warning], .alert-warning { border-color: #c98a00; background: #fdf6e4; }
joomla-alert[type=success], .alert-success { border-color: var(--ts-up); background: #edf7f0; }
joomla-alert .joomla-alert--close, .alert .btn-close { float: right; background: none; border: 0; font-size: 1.2rem; cursor: pointer; }

/* Pagination */
.pagination { display: flex; flex-wrap: wrap; gap: .3rem; list-style: none; padding: 0; margin: 2rem 0; font-family: var(--ts-font-ui); font-size: .82rem; }
.page-link { display: block; padding: .45rem .75rem; border: 1px solid var(--ts-rule); color: var(--ts-head); text-decoration: none; }
.page-item.active .page-link { background: var(--ts-head); color: var(--ts-paper); border-color: var(--ts-head); }
.page-item.disabled .page-link { color: var(--ts-muted); }
.counter { font: .75rem var(--ts-font-ui); color: var(--ts-muted); }

/* ---------- Beitrag ---------- */
.ts-article { max-width: calc(var(--ts-measure) + 12rem); margin-inline: auto; }
.ts-article__header { max-width: var(--ts-measure); margin: 0 auto 1.5rem; }
.ts-article__kicker { display: flex; gap: .6rem; align-items: center; font: 600 .8rem var(--ts-font-ui); margin-bottom: .6rem; }
.ts-article__kicker a { color: var(--ts-accent); text-decoration: none; }
.ts-badge { font: 700 .68rem var(--ts-font-ui); color: #fff; background: var(--ts-premium); padding: .12rem .4rem; border-radius: 2px; }
.ts-article__title { font-size: clamp(2rem, 1.3rem + 2.8vw, 3.1rem); line-height: 1.06; margin-bottom: .6rem; }
.ts-article__dek { font-family: var(--ts-font-heading); font-size: clamp(1.15rem, 1rem + .5vw, 1.4rem); line-height: 1.35; color: #4a4a4a; margin-bottom: 1.25rem; }
.ts-article__meta { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 1rem; border-top: 1px solid var(--ts-rule); padding-top: .9rem; font-family: var(--ts-font-ui); }
.ts-article__author { font-weight: 700; font-size: .85rem; margin: 0 0 .15rem; color: var(--ts-head); }
.ts-article__dates { font-size: .75rem; color: var(--ts-muted); margin: 0; display: flex; flex-wrap: wrap; gap: .25rem .9rem; }
.ts-share { display: flex; gap: .4rem; list-style: none; margin: 0; padding: 0; }
.ts-share a, .ts-share button { width: 2.1rem; height: 2.1rem; display: grid; place-items: center; border: 1px solid var(--ts-rule); border-radius: 50%; color: var(--ts-head); background: var(--ts-paper); cursor: pointer; position: relative; padding: 0; }
.ts-share a:hover, .ts-share button:hover { border-color: var(--ts-head); }
.ts-share svg { width: 1rem; height: 1rem; }
.ts-copy__done { position: absolute; top: calc(100% + .3rem); right: 0; font: 600 .7rem var(--ts-font-ui); background: var(--ts-head); color: var(--ts-paper); padding: .2rem .45rem; white-space: nowrap; }
.ts-article__figure { margin: 0 0 2rem; }
.ts-article__figure img { width: 100%; display: block; }
.ts-article__figure figcaption { max-width: var(--ts-measure); margin-inline: auto; }
.ts-article__body { max-width: var(--ts-measure); margin-inline: auto; font-size: 1.05rem; line-height: 1.7; }
.ts-article__body > p:first-of-type { margin-top: 0; }
.ts-article__body.has-dropcap > p:first-of-type::first-letter { float: left; font-family: var(--ts-font-heading); font-weight: 700; font-size: 4.1em; line-height: .82; margin: .06em .1em 0 0; color: var(--ts-head); }
.ts-article__body h2 { font-size: 1.5rem; margin-top: 2rem; }
.ts-article__body h3 { font-size: 1.2rem; margin-top: 1.75rem; }
.ts-article__body img { display: block; margin: 1.5rem 0; }
.ts-article__body ul, .ts-article__body ol { padding-left: 1.25rem; }
.ts-article__body li { margin-bottom: .4rem; }
.ts-article__tags { max-width: var(--ts-measure); margin: 2rem auto 0; padding-top: 1rem; border-top: 1px solid var(--ts-rule); }
.ts-article__tags ul { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; padding: 0; margin: 0; }
.ts-article__tags a { display: inline-block; font: 600 .75rem var(--ts-font-ui); border: 1px solid var(--ts-rule); padding: .25rem .6rem; color: var(--ts-head); text-decoration: none; }
.ts-article .icons, .ts-article .float-end { max-width: var(--ts-measure); margin: 0 auto 1rem; font-family: var(--ts-font-ui); font-size: .8rem; }
.ts-article__noauth { margin-top: 1.5rem; }

/* Video-Shortcode {video URL} */
.ts-video { margin: 1.75rem 0; }
.ts-video__frame { position: relative; aspect-ratio: 16 / 9; background: #000; overflow: hidden; }
.ts-video__frame iframe, .ts-video__frame video, .ts-video__frame img { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; object-fit: cover; margin: 0; }
.ts-video__frame video { object-fit: contain; }
.ts-video__play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 4.2rem; height: 4.2rem; border-radius: 50%; border: 0; background: rgba(255,255,255,.95); color: #000; cursor: pointer; display: grid; place-items: center; }
.ts-video__play svg { margin-left: .2rem; }
.ts-video__note { position: absolute; left: 0; right: 0; bottom: 0; padding: .4rem .6rem; font: 600 .7rem/1.3 var(--ts-font-ui); color: #fff; background: rgba(0,0,0,.6); }

/* ---------- Paywall ---------- */
.ts-paywalled { position: relative; }
.ts-paywalled::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 7rem; background: linear-gradient(rgba(255,255,255,0), var(--ts-paper)); pointer-events: none; }
.ts-paywall { margin: 1rem 0 2rem; padding: 2rem 1.5rem; border-top: 3px solid var(--ts-head); border-bottom: 1px solid var(--ts-rule); text-align: center; font-family: var(--ts-font-ui); }
.ts-paywall__title { font-family: var(--ts-font-heading); font-size: 1.7rem; margin-bottom: .5rem; }
.ts-paywall__text { max-width: 34rem; margin: 0 auto 1.5rem; font-size: .9rem; color: var(--ts-muted); }
.ts-paywall__plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 1rem; text-align: left; margin-bottom: 1.25rem; }
.ts-plan { border: 1px solid var(--ts-rule); padding: 1.25rem; display: flex; flex-direction: column; }
.ts-plan--highlight { border: 2px solid var(--ts-accent); }
.ts-plan__name { font-family: var(--ts-font-ui); font-size: .95rem; margin: 0 0 .5rem; }
.ts-plan__price { margin: 0 0 .75rem; font-size: .8rem; color: var(--ts-muted); }
.ts-plan__price strong { font-family: var(--ts-font-heading); font-size: 1.7rem; color: var(--ts-head); }
.ts-plan__features { list-style: none; padding: 0; margin: 0 0 1.1rem; font-size: .82rem; flex: 1; }
.ts-plan__features li { padding: .3rem 0 .3rem 1.3rem; position: relative; border-top: 1px solid var(--ts-rule); }
.ts-plan__features li::before { content: ""; position: absolute; left: .15rem; top: .62rem; width: .55rem; height: .3rem; border-left: 2px solid var(--ts-up); border-bottom: 2px solid var(--ts-up); transform: rotate(-45deg); }
.ts-plan .ts-btn { width: 100%; }
.ts-paywall__login { margin: 0; font-size: .85rem; }
.ts-meter-note { font: 600 .8rem var(--ts-font-ui); background: var(--ts-tint); padding: .6rem .9rem; border-left: 3px solid var(--ts-premium); }

/* ---------- Login ---------- */
.ts-login { display: grid; place-items: start center; padding: 2rem 0 4rem; }
.ts-login__card { width: min(26rem, 100%); font-family: var(--ts-font-ui); }
.ts-login__title { font-size: 2rem; text-align: center; margin-bottom: 1.5rem; }
.ts-tabs { display: grid; grid-template-columns: 1fr 1fr; margin-bottom: 1.25rem; border-bottom: 1px solid var(--ts-rule); }
.ts-tabs [role=tab] { background: none; border: 0; padding: .7rem .5rem; font: 600 .82rem var(--ts-font-ui); color: var(--ts-muted); cursor: pointer; box-shadow: inset 0 -2px 0 transparent; }
.ts-tabs [role=tab][aria-selected=true] { color: var(--ts-head); box-shadow: inset 0 -3px 0 var(--ts-head); }
.ts-password { position: relative; }
.ts-password input { padding-right: 5.5rem; }
.ts-password__toggle { position: absolute; right: .3rem; top: 50%; transform: translateY(-50%); background: none; border: 0; font: 600 .75rem var(--ts-font-ui); color: var(--ts-accent); cursor: pointer; padding: .4rem; }
.ts-login__hint { font-size: .85rem; color: var(--ts-muted); }
.ts-login__links { display: flex; justify-content: space-between; gap: 1rem; font-size: .78rem; margin-top: 1rem; }
.ts-login__register { text-align: center; font-size: .85rem; margin-top: 1.75rem; padding-top: 1.25rem; border-top: 1px solid var(--ts-rule); }
.ts-otp-code { font-size: 1.5rem; letter-spacing: .4em; text-align: center; font-variant-numeric: tabular-nums; }
.ts-otp-status { min-height: 1.3em; font-size: .82rem; margin: .75rem 0 0; color: var(--ts-up); }
.ts-otp-status.is-error { color: var(--ts-down); }
.ts-form[aria-busy=true] { opacity: .6; pointer-events: none; }
.ts-form .ts-btn + .ts-btn { margin-top: .6rem; }
.ts-social { margin-top: 1.5rem; display: grid; gap: .6rem; }
.ts-social__sep { display: flex; align-items: center; gap: .8rem; font-size: .75rem; color: var(--ts-muted); margin: 0 0 .25rem; }
.ts-social__sep::before, .ts-social__sep::after { content: ""; flex: 1; border-top: 1px solid var(--ts-rule); }

/* ---------- Kategorie-/Blogansichten (Core-Markup) ---------- */
.blog-items { display: grid; gap: 1.5rem; }
.blog-item { border-top: 1px solid var(--ts-rule); padding-top: 1.25rem; }
.blog-item .page-header h2, .blog-item h2 { font-size: 1.45rem; margin-bottom: .4rem; }
.blog-item .page-header h2 a, .blog-item h2 a { color: var(--ts-head); text-decoration: none; }
.blog-item .page-header h2 a:hover { color: var(--ts-accent); }
.blog-item .item-image { margin: 0 0 .75rem; }
.article-info { font: .75rem var(--ts-font-ui); color: var(--ts-muted); margin: 0 0 .6rem; display: flex; flex-wrap: wrap; gap: .25rem .9rem; }
.article-info dt { position: absolute; left: -9999px; }
.article-info dd { margin: 0; }
.readmore a, a.readmore { font: 600 .8rem var(--ts-font-ui); }
.page-header h1, .com-content-category-blog > h1 { border-bottom: 1px solid var(--ts-head); padding-bottom: .5rem; }

/* ---------- Footer ---------- */
.ts-footer { background: var(--ts-dark); color: #cfcfcf; font-family: var(--ts-font-ui); font-size: .82rem; --ts-head: #fff; --ts-ink: #cfcfcf; --ts-muted: #9a9a9a; --ts-rule: rgba(255,255,255,.15); --ts-paper: var(--ts-dark); }
.ts-row--footer-top .ts-grid { padding-top: 2.5rem; }
.ts-footer .ts-grid { padding-block: 1.5rem; }
.ts-footer a { color: #fff; text-decoration: none; }
.ts-footer a:hover { text-decoration: underline; }
.ts-footer .mod-menu { list-style: none; padding: 0; margin: 0; display: grid; gap: .45rem; }
.ts-footer .ts-mod--default .ts-mod__head { border-top-color: rgba(255,255,255,.5); }
.ts-footer-bottom { font-size: .72rem; color: var(--ts-muted); }
.ts-footer-bottom > .ts-container > .ts-grid { border-top: 1px solid var(--ts-rule); padding-block: 1.2rem 2rem; }
.ts-footer-bottom .mod-menu { display: flex; flex-wrap: wrap; gap: .4rem 1.25rem; }

/* ---------- Fehlerseite, Nach-oben ---------- */
.ts-error { max-width: 40rem; padding-block: 4rem 6rem; }
.ts-error__code { font: 700 .8rem var(--ts-font-ui); color: var(--ts-muted); margin-bottom: .5rem; }
.ts-error__trace { font-size: .7rem; overflow: auto; background: #f5f5f5; padding: 1rem; }
.error-page .ts-masthead { border-bottom: 1px solid var(--ts-head); padding-block: 1.25rem; text-align: center; }
.ts-totop { position: fixed; right: 1.25rem; bottom: 1.25rem; width: 2.75rem; height: 2.75rem; border-radius: 50%; display: grid; place-items: center; background: var(--ts-head); color: var(--ts-paper); box-shadow: 0 6px 16px -8px rgba(0,0,0,.5); z-index: 20; }

/* ---------- Druck ---------- */
@media print {
  .ts-topbar, .ts-navbar, .ts-subnav, .ts-tickerbar, .ts-ad, .ts-share, .ts-totop, .ts-offcanvas, .ts-footer, .ts-col:not(.ts-col--main) { display: none !important; }
  .ts-col--main { grid-column: 1 / -1 !important; }
  body { font-size: 11pt; }
  a { color: inherit; }
}

/* Kopfzeile auf kleinen Bildschirmen */
@media (max-width: 600px) {
  .ts-topbar .ts-col:nth-child(2):not(:last-child) { display: none; }
  .ts-topbar .ts-col { grid-column: span 6 !important; }
}
