/* ==============================================================
   Will Parrish Reports · Stylesheet
   Gestaltung nach der Vorlage «Fristsache»: terminorientiertes
   Editorial, Halvar Breitschrift für Titel und Ziffern, Söhne für
   Text und Bedienung, Söhne Mono für Labels. Indigo als einziger
   Akzent, 2px-Tintenlinien als Abschnittsköpfe, keine Rundungen.
   ============================================================== */

@font-face { font-family: 'Halvar Breit'; font-weight: 700; font-style: normal; font-display: swap; src: url('fonts/HalvarBreit-Bd.woff2') format('woff2'); }
@font-face { font-family: 'Soehne'; font-weight: 400; font-style: normal; font-display: swap; src: url('fonts/Sohne-Buch.woff2') format('woff2'); }
@font-face { font-family: 'Soehne'; font-weight: 500; font-style: normal; font-display: swap; src: url('fonts/Sohne-Kraftig.woff2') format('woff2'); }
@font-face { font-family: 'SoehneMono'; font-weight: 400; font-style: normal; font-display: swap; src: url('fonts/SohneMono-Buch.woff2') format('woff2'); }

:root {
  --page: #DCDAD3;
  --ground: #EEEDE8;
  --ink: #151515;
  --body: #3B3A36;
  --muted: #66645E;
  --rule: #CFCDC5;
  --indigo: #3A2E8C;
  --tint-1: #D4CEF5;
  --tint-2: #E1DDF7;
  --hover: #E4E0F5;
  --white: #FFFFFF;
  --display: 'Halvar Breit', 'Arial Black', 'Helvetica Neue', Arial, sans-serif;
  --sans: 'Soehne', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --mono: 'SoehneMono', 'SFMono-Regular', Menlo, Consolas, monospace;
  --gut: 48px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; background: var(--page); color: var(--ink); font-family: var(--sans); font-size: 17px; line-height: 1.5; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--indigo); }
:focus-visible { outline: 2px solid var(--indigo); outline-offset: 2px; }
h1, h2, h3 { text-wrap: pretty; }

.wp-skip { position: absolute; left: -9999px; top: 0; width: 1px; height: 1px; overflow: hidden; }
.wp-skip:focus { left: 12px; top: 12px; width: auto; height: auto; padding: 8px 12px; background: var(--ink); color: var(--white); z-index: 50; }

.wp-shell { max-width: 1280px; margin: 0 auto; background: var(--ground); min-height: 100vh; overflow-x: clip; }

/* ---------- Buttons, Labels ---------- */
.wp-btn-indigo { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; background: var(--indigo); color: var(--white); font-family: var(--sans); font-size: 15px; font-weight: 500; border: 0; cursor: pointer; line-height: 1.2; }
.wp-btn-indigo:hover { background: var(--ink); color: var(--white); }
.wp-btn-indigo img { width: 15px; height: 15px; }
.wp-btn-line { display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border: 1px solid var(--ink); background: transparent; color: var(--ink); font-family: var(--sans); font-size: 14.5px; font-weight: 500; cursor: pointer; line-height: 1.2; }
.wp-btn-line:hover { background: var(--ink); color: var(--ground); }
.wp-label { display: inline-flex; align-items: center; gap: 6px; font-family: var(--mono); font-size: 11.5px; letter-spacing: .02em; color: var(--indigo); }
.wp-label img { width: 13px; height: 13px; }
.wp-byline { margin-top: 12px; font-family: var(--mono); font-size: 12px; color: var(--muted); }

.wp-sechead { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding-bottom: 10px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12.5px; text-transform: uppercase; letter-spacing: .02em; }
.wp-sechead img { width: 15px; height: 15px; }
.wp-sechead-note { margin-left: auto; text-transform: none; color: var(--muted); font-size: 11.5px; }

/* ---------- Werbekennzeichnung + Kopf ---------- */
.wp-disclosure { display: block; background: var(--page); color: var(--body); font-family: var(--mono); font-size: 12px; letter-spacing: .02em; padding: 8px var(--gut); text-align: center; }
.wp-disclosure b { font-weight: 400; color: var(--ink); }
.wp-disclosure-sq { display: inline-block; width: 8px; height: 8px; margin-right: 9px; background: var(--indigo); vertical-align: 1px; }

.wp-masthead { padding: 0 var(--gut); }
.wp-mast-top { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; padding: 26px 0 16px; }
.wp-wordmark { display: inline-flex; align-items: center; gap: 14px; font-family: var(--display); font-weight: 700; font-size: 30px; letter-spacing: .05em; text-transform: uppercase; line-height: 1; }
.wp-wordmark:hover { color: var(--ink); }
.wp-mark { position: relative; display: inline-block; width: 30px; height: 30px; background: var(--indigo); flex: none; }
.wp-mark::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 7px; background: var(--ink); }
.wp-mark i { position: absolute; left: 8px; bottom: 7px; width: 9px; height: 9px; background: var(--ground); }
.wp-mast-date { display: flex; align-items: flex-end; gap: 10px; }
.wp-mast-day { font-family: var(--display); font-size: 34px; font-weight: 700; line-height: .85; color: var(--indigo); }
.wp-mast-dm { font-family: var(--mono); font-size: 11px; line-height: 1.35; color: var(--muted); text-transform: uppercase; }
.wp-mast-bar { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 12px 0; border-top: 1px solid var(--rule); border-bottom: 2px solid var(--ink); }
.wp-tagline { font-family: var(--mono); font-size: 12px; color: var(--muted); }
.wp-nav { display: flex; align-items: center; gap: 28px; font-size: 15.5px; font-weight: 500; }
.wp-nav a[aria-current="page"] { color: var(--indigo); box-shadow: inset 0 -2px 0 var(--indigo); }
.wp-nav .wp-nav-letter { color: var(--white); padding: 9px 16px; }
.wp-nav .wp-nav-letter[aria-current="page"] { color: var(--white); box-shadow: none; background: var(--ink); }

.wp-nextbar { display: flex; gap: 14px; align-items: baseline; flex-wrap: wrap; padding: 9px var(--gut); border-bottom: 1px solid var(--rule); font-family: var(--mono); font-size: 12px; color: var(--muted); }
.wp-nextbar-k { color: var(--ink); text-transform: uppercase; }
.wp-nextbar b { font-weight: 400; color: var(--indigo); }

/* ---------- Bildbehandlung: leicht entsättigt, Indigo-Hauch ---------- */
.wp-ph { position: relative; display: block; overflow: hidden; background: var(--rule); }
.wp-ph img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.82) contrast(1.03); }
.wp-ph::after { content: ""; position: absolute; inset: 0; background: var(--indigo); mix-blend-mode: soft-light; opacity: .22; pointer-events: none; }

/* ---------- Startseite: Aufmacher ---------- */
.wp-front { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 48px; padding: 38px var(--gut) 0; align-items: start; }
.wp-lead-k { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.wp-lead-sp { font-family: var(--mono); font-size: 11.5px; color: var(--muted); padding: 3px 8px; border: 1px solid var(--rule); }
.wp-lead h1 { margin: 14px 0 0; font-family: var(--display); font-size: clamp(30px, 3.6vw, 46px); font-weight: 700; line-height: 1.07; letter-spacing: -.01em; }
.wp-lead-ex { margin: 16px 0 0; font-size: 19px; line-height: 1.55; color: var(--body); max-width: 760px; }
.wp-lead-img { margin-top: 26px; aspect-ratio: 16 / 8; }
.wp-lead-img img { height: 100%; }

.wp-count-panel { background: var(--indigo); color: var(--white); padding: 22px 24px 24px; }
.wp-count-panel .wp-label { color: var(--tint-1); }
.wp-count-n { margin-top: 14px; font-family: var(--display); font-size: 88px; font-weight: 700; line-height: .9; }
.wp-count-n.is-word { font-size: 56px; }
.wp-count-u { margin-top: 8px; font-family: var(--mono); font-size: 12px; line-height: 1.5; color: var(--tint-1); text-transform: uppercase; }
.wp-count-t { margin-top: 14px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.25); font-size: 15px; line-height: 1.5; color: var(--tint-2); }
.wp-count-t a { color: var(--white); text-decoration: underline; text-underline-offset: 3px; }
.wp-count-t a:hover { color: var(--tint-1); }

.wp-side { display: flex; flex-direction: column; gap: 28px; }
.wp-front .wp-side { padding-top: 4px; }

/* Nächste Termine */
.wp-due { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 14px; padding: 15px 0; border-bottom: 1px solid var(--rule); align-items: center; }
.wp-due-n { font-family: var(--display); font-size: 38px; font-weight: 700; line-height: 1; }
.wp-due.is-first .wp-due-n { color: var(--indigo); }
.wp-due-n.is-word { font-size: 22px; }
.wp-due-u { font-family: var(--mono); font-size: 10.5px; color: var(--muted); margin-top: 3px; letter-spacing: .02em; }
.wp-due-t { font-size: 15.5px; font-weight: 500; line-height: 1.3; }
.wp-due-d { font-family: var(--mono); font-size: 11.5px; color: var(--muted); margin-top: 4px; }
.wp-due-foot { margin: 10px 0 0; font-family: var(--mono); font-size: 11px; line-height: 1.5; color: var(--muted); }

/* ---------- Zeitstrahl ---------- */
.wp-strahl { padding: 56px var(--gut) 0; }
.wp-strahl-track { position: relative; display: grid; grid-template-columns: repeat(var(--n, 6), minmax(0, 1fr)); gap: 18px; margin: 28px 0 0; }
.wp-strahl-line { position: absolute; left: 0; right: 0; top: 56px; height: 2px; background: var(--ink); }
.wp-strahl-pt { position: relative; display: block; }
.wp-strahl-n { font-family: var(--display); font-size: 30px; font-weight: 700; line-height: 1; height: 42px; display: flex; align-items: flex-end; gap: 6px; }
.wp-strahl-n small { font-family: var(--mono); font-size: 10.5px; font-weight: 400; color: var(--muted); padding-bottom: 3px; }
.wp-strahl-pt.is-first .wp-strahl-n { color: var(--indigo); }
.wp-strahl-sq { position: relative; display: block; width: 18px; height: 18px; margin-top: 5px; background: var(--ground); border: 2px solid var(--indigo); }
.wp-strahl-pt.is-today .wp-strahl-sq { background: var(--ink); border-color: var(--ink); }
.wp-strahl-pt.is-first .wp-strahl-sq { background: var(--indigo); }
.wp-strahl-d { margin-top: 12px; font-family: var(--mono); font-size: 11px; color: var(--muted); text-transform: uppercase; }
.wp-strahl-t { margin-top: 4px; font-size: 14.5px; font-weight: 500; line-height: 1.32; }
a.wp-strahl-pt:hover .wp-strahl-t { color: var(--indigo); }
.wp-strahl-note { margin: 18px 0 0; font-family: var(--mono); font-size: 11px; line-height: 1.5; color: var(--muted); }

/* ---------- Karten ---------- */
.wp-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.wp-cards.is-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 26px; }
.wp-home-cards { padding: 52px var(--gut) 0; }
.wp-card { display: flex; flex-direction: column; gap: 12px; }
.wp-card .wp-ph { aspect-ratio: 16 / 10; }
.wp-card-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.wp-card-due { font-family: var(--mono); font-size: 11.5px; color: var(--muted); white-space: nowrap; }
.wp-card-t { font-family: var(--display); font-size: 19px; font-weight: 700; line-height: 1.22; }
.wp-cards.is-4 .wp-card-t { font-size: 17px; }
.wp-card:hover .wp-card-t { color: var(--indigo); }
.wp-card-ex { margin: 8px 0 0; font-size: 16px; line-height: 1.55; color: var(--body); }

/* ---------- Zahlen + Brief ---------- */
.wp-figs-wrap { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 48px; padding: 56px var(--gut) 0; align-items: start; }
.wp-figs { width: 100%; border-collapse: collapse; }
.wp-figs td { padding: 15px 0; border-bottom: 1px solid var(--rule); vertical-align: baseline; }
.wp-figs .wp-fig-n { width: 210px; padding-right: 20px; font-family: var(--display); font-size: 26px; font-weight: 700; line-height: 1.05; white-space: nowrap; }
.wp-figs .wp-fig-n small { font-family: var(--mono); font-size: 11px; font-weight: 400; color: var(--muted); margin-left: 4px; }
.wp-figs .wp-fig-t { font-size: 16px; line-height: 1.45; color: var(--body); }
.wp-figs .wp-fig-t a { color: var(--ink); font-weight: 500; }
.wp-figs .wp-fig-t a:hover { color: var(--indigo); }
.wp-figs .wp-fig-y { width: 74px; text-align: right; font-family: var(--mono); font-size: 11.5px; color: var(--muted); white-space: nowrap; }
.wp-figs-note { margin: 10px 0 0; font-family: var(--mono); font-size: 11px; line-height: 1.5; color: var(--muted); }

/* ---------- Rubriken ---------- */
.wp-rubriken { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; padding: 56px var(--gut) 0; }
.wp-rub-h { display: flex; align-items: center; gap: 8px; padding-bottom: 10px; border-bottom: 2px solid var(--ink); font-family: var(--display); font-size: 17px; font-weight: 700; }
.wp-rub-h img { width: 15px; height: 15px; }
.wp-rub p { margin: 12px 0 0; font-size: 14.5px; line-height: 1.5; color: var(--muted); }
.wp-rub ul { list-style: none; margin: 10px 0 0; padding: 0; }
.wp-rub li { border-bottom: 1px solid var(--rule); }
.wp-rub li a { display: block; padding: 11px 0; font-size: 15.5px; font-weight: 500; line-height: 1.35; }
.wp-rub-more { display: inline-block; margin-top: 12px; font-family: var(--mono); font-size: 11.5px; color: var(--indigo); }

/* ---------- Agenda ---------- */
.wp-agenda-wrap { padding: 56px var(--gut) 0; }
.wp-agenda { display: grid; grid-template-columns: 1fr 1fr; column-gap: 48px; }
.wp-ag { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 20px; padding: 20px 0; border-bottom: 1px solid var(--rule); align-items: start; }
.wp-ag-n { font-family: var(--display); font-size: 28px; font-weight: 700; line-height: 1; }
.wp-ag-n span { display: block; font-family: var(--mono); font-size: 11px; font-weight: 400; color: var(--muted); margin-top: 6px; line-height: 1.45; }
.wp-ag-t { margin-top: 6px; font-size: 19px; font-weight: 500; line-height: 1.3; }
.wp-ag:hover .wp-ag-t { color: var(--indigo); }

.wp-home-band { padding: 56px var(--gut) 0; }

/* ---------- Terminblatt (Anmeldung) ---------- */
.wp-band { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 32px; align-items: start; background: var(--indigo); color: var(--white); padding: 28px 30px; }
.wp-band-k { display: flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 11.5px; color: var(--tint-1); letter-spacing: .02em; }
.wp-band-k img { width: 14px; height: 14px; }
.wp-band-h, .wp-letter-h { margin-top: 12px; font-family: var(--display); font-size: 23px; font-weight: 700; line-height: 1.2; }
.wp-band p, .wp-letter p { margin: 10px 0 0; font-size: 15px; line-height: 1.55; color: var(--tint-2); }
.wp-letter { background: var(--indigo); color: var(--white); padding: 24px 24px 26px; }
.wp-letter.is-page { padding: 34px 34px 32px; }
.wp-letter.is-page .wp-letter-h { font-size: 30px; }
.wp-form { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; }
.wp-band .wp-form { margin-top: 0; }
.wp-input { width: 100%; font-family: var(--sans); font-size: 16px; padding: 13px 14px; border: 0; border-radius: 0; background: var(--white); color: var(--ink); }
.wp-input::placeholder { color: var(--muted); }
.wp-submit { width: 100%; font-family: var(--sans); font-size: 15px; font-weight: 500; padding: 13px; border: 1px solid var(--white); border-radius: 0; background: transparent; color: var(--white); cursor: pointer; }
.wp-submit:hover { background: var(--white); color: var(--indigo); }
.wp-consent { display: flex; gap: 10px; align-items: flex-start; margin-top: 14px; font-size: 13.5px; line-height: 1.5; color: var(--tint-2); cursor: pointer; }
.wp-consent input { width: 18px; height: 18px; margin: 2px 0 0; flex: none; accent-color: var(--white); }
.wp-consent a { color: var(--white); text-decoration: underline; text-underline-offset: 2px; }
.wp-fine { margin-top: 10px; font-family: var(--mono); font-size: 11px; line-height: 1.5; color: var(--tint-1); }
.wp-form-msg { min-height: 0; margin-top: 8px; font-size: 14px; }
.wp-form-msg[data-state="err"] { padding: 8px 10px; background: var(--white); color: #8A1C1C; }
.wp-form-msg[data-state="ok"] { color: var(--white); }

/* ---------- Artikel ---------- */
.wp-art { display: grid; grid-template-columns: 220px minmax(0, 740px); gap: 64px; justify-content: center; padding: 48px var(--gut) 0; }
.wp-rail { align-self: start; border-top: 2px solid var(--indigo); padding-top: 14px; background: var(--ground); }
@media (min-width: 1100px) and (min-height: 760px) { .wp-rail { position: sticky; top: 18px; } }
.wp-rail-n { font-family: var(--display); font-size: 92px; font-weight: 700; line-height: .9; color: var(--indigo); }
.wp-rail-d { margin-top: 8px; font-family: var(--mono); font-size: 12px; line-height: 1.45; }
.wp-rail .wp-label { margin-top: 22px; }
.wp-rail-by { margin-top: 6px; font-family: var(--mono); font-size: 11.5px; color: var(--muted); }
.wp-rail-next { margin-top: 22px; padding-top: 12px; border-top: 1px solid var(--rule); }
.wp-rail-next .wp-due-n { color: var(--indigo); margin-top: 6px; }
.wp-inl { display: inline; font-size: 10.5px; }
.wp-rail .wp-btn-line { margin-top: 18px; white-space: nowrap; }

.wp-adlabel { margin: 0 0 14px; display: inline-block; font-family: var(--mono); font-size: 12px; letter-spacing: .02em; color: var(--ink); background: var(--tint-2); padding: 5px 10px; border-left: 3px solid var(--indigo); }
.wp-kicker { margin: 0 0 10px; font-family: var(--mono); font-size: 12px; color: var(--indigo); text-transform: uppercase; letter-spacing: .02em; }
.wp-kicker b { font-weight: 400; color: var(--ink); }
.wp-art h1 { margin: 0; font-family: var(--display); font-size: clamp(29px, 3.4vw, 42px); font-weight: 700; line-height: 1.1; letter-spacing: -.01em; }
.wp-standfirst { margin: 18px 0 0; font-size: 20px; line-height: 1.55; color: var(--body); }
.is-sponsored .wp-standfirst { color: var(--ink); font-weight: 500; }
.wp-art-meta { margin-top: 16px; font-family: var(--mono); font-size: 11.5px; color: var(--muted); }

.wp-hero { margin: 28px 0 0; }
.wp-hero .wp-ph { aspect-ratio: 16 / 9; }
.wp-hero figcaption, .wp-fig-inline figcaption { margin-top: 8px; font-family: var(--mono); font-size: 11px; line-height: 1.5; color: var(--muted); }
.wp-fig-inline { margin: 34px 0; }
.wp-fig-inline .wp-ph { aspect-ratio: 16 / 9; }

.wp-prose { font-size: 19px; line-height: 1.72; color: var(--ink); }
.wp-intro p:first-child, .wp-prose > p:first-child { margin-top: 28px; }
.wp-prose p { margin: 18px 0 0; }
.wp-prose h2 { margin: 46px 0 0; font-family: var(--display); font-size: 25px; font-weight: 700; line-height: 1.22; scroll-margin-top: 20px; }
.wp-prose h3 { margin: 30px 0 0; font-family: var(--sans); font-size: 20px; font-weight: 500; line-height: 1.3; }
.wp-prose a { color: var(--indigo); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.wp-prose a:hover { color: var(--ink); }
.wp-prose strong { font-weight: 500; }
.wp-prose ul, .wp-prose ol { margin: 16px 0 0; padding-left: 1.25em; }
.wp-prose li { margin-top: 8px; }
.wp-prose ul li::marker { color: var(--indigo); }

.wp-toc { margin: 34px 0 0; border-top: 2px solid var(--ink); padding-top: 12px; }
.wp-toc-h { font-family: var(--mono); font-size: 12px; }
.wp-toc ol { list-style: none; counter-reset: toc; margin: 8px 0 0; padding: 0; }
.wp-toc li { counter-increment: toc; margin: 0; border-bottom: 1px solid var(--rule); }
.wp-prose .wp-toc a { display: grid; grid-template-columns: 34px 1fr; gap: 8px; padding: 9px 0; font-size: 16.5px; line-height: 1.4; color: var(--ink); text-decoration: none; }
.wp-prose .wp-toc a::before { content: counter(toc, decimal-leading-zero); font-family: var(--mono); font-size: 12px; color: var(--indigo); padding-top: 3px; }
.wp-prose .wp-toc a:hover { color: var(--indigo); }

.wp-dates { margin: 40px 0; border-top: 2px solid var(--ink); padding-top: 14px; }
.wp-dates-h { font-family: var(--mono); font-size: 12px; }
.wp-dates-list { margin-top: 12px; }
.wp-dates-row { display: grid; grid-template-columns: 22px 138px minmax(0, 1fr); gap: 14px; align-items: baseline; padding: 11px 0; border-bottom: 1px solid var(--rule); }
.wp-dates-row:last-child { border-bottom: 0; }
.wp-sq { width: 11px; height: 11px; border: 2px solid var(--indigo); display: block; }
.wp-sq.is-next { background: var(--indigo); }
.wp-sq.is-past { border-color: var(--rule); background: var(--rule); }
.wp-sq.is-rule { border-color: var(--muted); border-style: dotted; }
.wp-dates-when { font-family: var(--mono); font-size: 13.5px; line-height: 1.35; }
.wp-dates-when small { display: block; font-size: 11px; color: var(--indigo); margin-top: 2px; }
.wp-dates-row.is-past .wp-dates-when small { color: var(--muted); }
.wp-dates-what { font-size: 16px; line-height: 1.45; }
.wp-dates-row.is-past .wp-dates-what { color: var(--muted); }
.wp-dates-note { margin: 10px 0 0 !important; font-family: var(--mono); font-size: 11px !important; line-height: 1.5 !important; color: var(--muted); }

.wp-table-wrap { margin: 26px 0 0; overflow-x: auto; }
.wp-table { width: 100%; border-collapse: collapse; font-size: 16.5px; line-height: 1.4; border-top: 2px solid var(--ink); }
.wp-table th { text-align: left; font-family: var(--mono); font-size: 11.5px; font-weight: 400; color: var(--muted); text-transform: uppercase; letter-spacing: .02em; padding: 10px 14px 10px 0; border-bottom: 1px solid var(--ink); vertical-align: bottom; }
.wp-table td { padding: 12px 14px 12px 0; border-bottom: 1px solid var(--rule); vertical-align: top; }
.wp-table .num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.wp-table td.num { font-weight: 500; }
.wp-table th.num { white-space: normal; }
.wp-table tr.is-total td { border-top: 2px solid var(--ink); font-weight: 500; }
.wp-table-note { margin: 10px 0 0 !important; font-size: 14.5px !important; line-height: 1.55 !important; color: var(--muted); }

.wp-box { margin: 34px 0 0; padding: 20px 22px; background: var(--hover); border-left: 3px solid var(--indigo); }
.wp-box-h { font-family: var(--mono); font-size: 12px; color: var(--indigo); text-transform: uppercase; letter-spacing: .02em; }
.wp-box p:first-of-type { margin-top: 8px; }
.wp-box ul { margin-top: 8px; }
.wp-box, .wp-box p, .wp-box li { font-size: 17px; line-height: 1.6; }

.wp-pull { margin: 40px 0; padding: 0 0 0 22px; border-left: 4px solid var(--indigo); }
.wp-pull p { margin: 0 !important; font-family: var(--display); font-size: 22px; font-weight: 700; line-height: 1.32; color: var(--indigo); }

.wp-sources { margin: 48px 0 0; padding-top: 14px; border-top: 2px solid var(--ink); }
.wp-sources h2, .wp-sources h3 { margin: 0 !important; font-family: var(--mono) !important; font-size: 12px !important; font-weight: 400 !important; text-transform: uppercase; letter-spacing: .02em; }
.wp-sources ul { list-style: none; margin: 8px 0 0; padding: 0; }
.wp-sources li { margin: 0; padding: 10px 0; border-bottom: 1px solid var(--rule); font-size: 15.5px; line-height: 1.5; color: var(--body); }
.wp-closing { margin-top: 26px !important; font-size: 16px !important; line-height: 1.6 !important; color: var(--body); }
.wp-fineprint { margin: 32px 0 28px !important; padding: 16px 0 0; border-top: 1px solid var(--rule); font-size: 14.5px !important; line-height: 1.6 !important; color: var(--muted); }
.wp-fineprint a { color: var(--muted) !important; }

.wp-related { padding: 64px var(--gut) 0; }
.wp-related .wp-cards { margin-top: 24px; }

/* ---------- Rubrikenseite ---------- */
.wp-cat-head { padding: 44px var(--gut) 30px; border-bottom: 2px solid var(--ink); }
.wp-cat-head h1 { margin: 14px 0 0; font-family: var(--display); font-size: clamp(32px, 4vw, 52px); font-weight: 700; line-height: 1.05; }
.wp-cat-head p { margin: 14px 0 0; max-width: 760px; font-size: 18.5px; line-height: 1.55; color: var(--body); }
.wp-cat-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 48px; padding: 0 var(--gut); align-items: start; }
.wp-cat-item { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 28px; padding: 28px 0; border-bottom: 1px solid var(--rule); }
.wp-cat-item .wp-ph { aspect-ratio: 16 / 10; }
.wp-cat-item .wp-card-t { margin-top: 8px; font-size: 22px; }
.wp-cat-item:hover .wp-card-t { color: var(--indigo); }
.wp-cat-also { padding: 26px 0 0; font-family: var(--mono); font-size: 12px; text-transform: uppercase; color: var(--muted); }
.wp-cat-layout .wp-side { padding-top: 28px; }

/* ---------- Einfache Seiten (Recht, Danke, 404) ---------- */
.wp-page { display: grid; grid-template-columns: 220px minmax(0, 760px); gap: 64px; justify-content: center; padding: 48px var(--gut) 0; }
.wp-page-rail { border-top: 2px solid var(--indigo); padding-top: 14px; font-family: var(--mono); font-size: 12px; line-height: 1.5; color: var(--muted); align-self: start; }
.wp-page-rail b { display: block; font-family: var(--display); font-size: 22px; font-weight: 700; color: var(--ink); margin-bottom: 6px; line-height: 1.1; }
.wp-page-rail nav { margin-top: 18px; display: flex; flex-direction: column; }
.wp-page-rail nav a { padding: 7px 0; border-bottom: 1px solid var(--rule); color: var(--ink); font-family: var(--sans); font-size: 14.5px; }
.wp-page-rail nav a[aria-current="page"] { color: var(--indigo); }
.wp-page h1 { margin: 0; font-family: var(--display); font-size: clamp(28px, 3.4vw, 40px); font-weight: 700; line-height: 1.1; }
.wp-page .wp-lead-p { margin: 16px 0 0; font-size: 19px; line-height: 1.55; color: var(--body); }
.wp-page .wp-prose h2 { font-size: 21px; margin-top: 40px; }
.wp-page .wp-prose { font-size: 17.5px; }
.wp-vat { margin: 24px 0 0; padding: 20px 22px; background: var(--hover); border-left: 4px solid var(--indigo); }
.wp-vat-k { font-family: var(--mono); font-size: 11.5px; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.wp-vat-n { margin-top: 4px; font-family: var(--display); font-size: 30px; font-weight: 700; color: var(--indigo); line-height: 1.1; }
.wp-vat-r { margin-top: 12px; font-size: 16.5px; }
.wp-company { margin: 26px 0 0; font-family: var(--display); font-size: 26px; font-weight: 700; line-height: 1.15; }
.wp-dl { display: grid; grid-template-columns: 220px minmax(0, 1fr); margin: 20px 0 0; border-top: 1px solid var(--rule); }
.wp-dl dt, .wp-dl dd { margin: 0; padding: 11px 0; border-bottom: 1px solid var(--rule); font-size: 16.5px; line-height: 1.45; }
.wp-dl dt { font-family: var(--mono); font-size: 12px; color: var(--muted); text-transform: uppercase; padding-top: 14px; }
.wp-contact-box { margin: 30px 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0; border-top: 2px solid var(--ink); }
.wp-contact-box > div { padding: 18px 18px 18px 0; border-bottom: 1px solid var(--rule); }
.wp-contact-box .wp-ck { font-family: var(--mono); font-size: 11.5px; color: var(--muted); text-transform: uppercase; }
.wp-contact-box .wp-cv { margin-top: 6px; font-family: var(--display); font-size: 19px; font-weight: 700; word-break: break-word; }
.wp-contact-box .wp-cv a { color: var(--indigo); }

.wp-centered { max-width: 760px; margin: 0 auto; padding: 72px var(--gut) 24px; }
.wp-centered h1 { margin: 14px 0 0; font-family: var(--display); font-size: clamp(28px, 3.6vw, 42px); font-weight: 700; line-height: 1.1; }
.wp-centered p { font-size: 18.5px; line-height: 1.6; color: var(--body); }
.wp-centered .wp-btn-indigo { margin-top: 18px; }
.wp-steps { list-style: none; counter-reset: st; margin: 24px 0; padding: 0; border-top: 2px solid var(--ink); }
.wp-steps li { counter-increment: st; display: grid; grid-template-columns: 56px 1fr; gap: 10px; align-items: baseline; padding: 14px 0; border-bottom: 1px solid var(--rule); font-size: 18px; }
.wp-steps li::before { content: counter(st, decimal-leading-zero); font-family: var(--display); font-size: 26px; font-weight: 700; color: var(--indigo); }

.wp-nl { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 56px; padding: 48px var(--gut) 0; align-items: start; }
.wp-nl h1 { margin: 14px 0 0; font-family: var(--display); font-size: clamp(30px, 3.8vw, 46px); font-weight: 700; line-height: 1.08; }
.wp-nl-sample { margin-top: 30px; border-top: 2px solid var(--ink); }
.wp-nl-row { display: grid; grid-template-columns: 90px 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--rule); }
.wp-nl-row b { font-family: var(--mono); font-weight: 400; font-size: 12px; color: var(--indigo); padding-top: 4px; }
.wp-nl-row span { font-size: 17px; line-height: 1.5; }

/* ---------- Fuss ---------- */
.wp-footer { margin-top: 72px; border-top: 2px solid var(--ink); padding: 0 var(--gut); }
.wp-footer-top { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr)); gap: 32px; padding: 30px 0 26px; border-bottom: 1px solid var(--rule); }
.wp-footer-mark { display: flex; align-items: center; gap: 10px; font-family: var(--display); font-size: 17px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.wp-footer-mark .wp-mark { width: 22px; height: 22px; }
.wp-footer-mark .wp-mark::before { height: 5px; }
.wp-footer-mark .wp-mark i { left: 6px; bottom: 5px; width: 6px; height: 6px; }
.wp-footer-brand p { margin: 12px 0 0; font-size: 14.5px; line-height: 1.5; color: var(--muted); }
.wp-footer-nav { display: flex; flex-direction: column; gap: 8px; font-size: 15px; }
.wp-footer-h { font-family: var(--mono); font-size: 11.5px; color: var(--muted); text-transform: uppercase; margin-bottom: 4px; }
.wp-footer-note { margin: 0; padding: 20px 0; font-size: 13.5px; line-height: 1.6; color: var(--muted); border-bottom: 1px solid var(--rule); }
.wp-footer-note a { text-decoration: underline; text-underline-offset: 2px; }
.wp-footer-bottom { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 16px 0 28px; font-family: var(--mono); font-size: 11.5px; color: var(--muted); }

/* ---------- Cookie-Hinweis ---------- */
.wp-cookie { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 40; max-width: 560px; margin: 0 auto; background: var(--ground); border: 2px solid var(--ink); padding: 18px 20px; box-shadow: 0 8px 0 rgba(21,21,21,.12); }
.wp-cookie[hidden] { display: none; }
.wp-cookie-t { font-family: var(--display); font-size: 17px; font-weight: 700; }
.wp-cookie p { margin: 8px 0 0; font-size: 14.5px; line-height: 1.5; color: var(--body); }
.wp-cookie p a { color: var(--indigo); text-decoration: underline; }
.wp-cookie-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 14px; }

/* ==============================================================
   Responsiv
   ============================================================== */
@media (max-width: 1180px) {
  .wp-nav { gap: 20px; font-size: 15px; }
  .wp-tagline { display: none; }
  .wp-mast-bar { justify-content: flex-start; }
  .wp-cards.is-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wp-rubriken { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 40px; }
}
@media (max-width: 1060px) {
  :root { --gut: 32px; }
  .wp-front, .wp-cat-layout, .wp-figs-wrap, .wp-nl { grid-template-columns: minmax(0, 1fr); }
  .wp-front .wp-side { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
  .wp-cat-layout .wp-side { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; padding-bottom: 8px; }
  .wp-art, .wp-page { grid-template-columns: minmax(0, 1fr); gap: 0; max-width: 820px; margin: 0 auto; }
  .wp-rail { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; border-top: 0; padding: 0 0 12px; margin-bottom: 20px; border-bottom: 1px solid var(--rule); }
  .wp-rail-n { font-size: 34px; }
  .wp-rail-d br { display: none; }
  .wp-rail-d, .wp-rail .wp-label, .wp-rail-by { margin: 0; }
  .wp-rail-next, .wp-rail .wp-btn-line { display: none; }
  .wp-page-rail { display: none; }
}
@media (max-width: 760px) {
  :root { --gut: 16px; }
  body { font-size: 16.5px; }
  .wp-disclosure { font-size: 11px; padding: 7px var(--gut); }
  .wp-mast-top { padding: 16px 0 12px; align-items: center; }
  .wp-wordmark { font-size: 19px; gap: 10px; letter-spacing: .04em; }
  .wp-mark { width: 22px; height: 22px; }
  .wp-mark::before { height: 5px; }
  .wp-mark i { left: 6px; bottom: 5px; width: 6px; height: 6px; }
  .wp-mast-day { font-size: 24px; }
  .wp-mast-dm { font-size: 10px; }
  .wp-mast-bar { padding: 0; border-top: 1px solid var(--rule); }
  .wp-nav { width: 100%; gap: 0; overflow-x: auto; scrollbar-width: none; font-size: 14.5px; white-space: nowrap; }
  .wp-nav::-webkit-scrollbar { display: none; }
  .wp-nav a { padding: 12px 14px 12px 0; flex: none; }
  .wp-nav .wp-nav-letter { margin-left: auto; padding: 8px 12px; }
  .wp-nextbar { font-size: 11px; gap: 6px 10px; }
  .wp-front { padding-top: 24px; gap: 30px; }
  .wp-lead-ex { font-size: 17.5px; }
  .wp-lead-img { aspect-ratio: 16 / 9; margin-top: 20px; }
  .wp-front .wp-side, .wp-cat-layout .wp-side { grid-template-columns: minmax(0, 1fr); }
  .wp-count-n { font-size: 68px; }
  .wp-strahl { padding-top: 44px; }
  .wp-strahl-track { grid-template-columns: minmax(0, 1fr); gap: 0; margin-top: 14px; }
  .wp-strahl-line { left: 8px; right: auto; top: 14px; bottom: 14px; width: 2px; height: auto; }
  .wp-strahl-pt { display: grid; grid-template-columns: 18px 64px minmax(0, 1fr); gap: 0 12px; align-items: start; padding: 10px 0; }
  .wp-strahl-sq { grid-column: 1; grid-row: 1 / span 2; margin: 4px 0 0; }
  .wp-strahl-n { grid-column: 2; grid-row: 1 / span 2; height: auto; font-size: 24px; flex-direction: column; align-items: flex-start; gap: 2px; }
  .wp-strahl-n small { padding: 0; }
  .wp-strahl-d { grid-column: 3; margin: 0; }
  .wp-strahl-t { grid-column: 3; }
  .wp-cards, .wp-cards.is-4 { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .wp-home-cards, .wp-figs-wrap, .wp-rubriken, .wp-agenda-wrap, .wp-home-band, .wp-related { padding-top: 44px; }
  .wp-figs .wp-fig-n { width: auto; font-size: 21px; padding-right: 12px; }
  .wp-figs .wp-fig-y { display: none; }
  .wp-rubriken { grid-template-columns: minmax(0, 1fr); }
  .wp-agenda { grid-template-columns: minmax(0, 1fr); }
  .wp-ag { grid-template-columns: 76px minmax(0, 1fr); gap: 14px; }
  .wp-ag-t { font-size: 17px; }
  .wp-band { grid-template-columns: minmax(0, 1fr); padding: 22px 18px; gap: 18px; }
  .wp-letter.is-page { padding: 24px 18px; }
  .wp-art, .wp-page { padding-top: 22px; }
  .wp-art .wp-rail { display: none; }
  body:has(.wp-art) .wp-nextbar { display: none; }
  .wp-adlabel { font-size: 11px; margin-bottom: 10px; }
  .wp-standfirst { font-size: 18px; }
  .wp-prose { font-size: 18px; line-height: 1.68; }
  .wp-prose h2 { font-size: 22px; margin-top: 38px; }
  .wp-dates-row { grid-template-columns: 16px minmax(0, 1fr); gap: 4px 10px; }
  .wp-dates-what { grid-column: 2; }
  .wp-table { font-size: 14.5px; }
  .wp-table th { font-size: 10.5px; letter-spacing: 0; }
  .wp-table th, .wp-table td { padding-right: 8px; }
  .wp-table th:last-child, .wp-table td:last-child { padding-right: 0; }
  .wp-cat-item { grid-template-columns: minmax(0, 1fr); gap: 14px; padding: 24px 0; }
  .wp-cat-item .wp-card-t { font-size: 20px; }
  .wp-dl { grid-template-columns: minmax(0, 1fr); }
  .wp-dl dt { border-bottom: 0; padding-bottom: 0; }
  .wp-contact-box { grid-template-columns: minmax(0, 1fr); }
  .wp-vat-n { font-size: 25px; }
  .wp-footer-top { grid-template-columns: 1fr 1fr; }
  .wp-footer-brand { grid-column: 1 / -1; }
  .wp-centered { padding-top: 44px; }
  .wp-nl-row { grid-template-columns: 70px 1fr; }
}
