/*
 * SUBWAY · Design Lab Veranstaltungskalender – sechs Gesamtkonzepte (Stefan 08.10.2026)
 * Lädt nur mit ?entwurf=01 … 06 auf /veranstaltungen/ (Redaktion). Desktop 1440 px zur ersten Abnahme,
 * mobiles Bedienprinzip je Variante angelegt (keine Variante bricht unter 768 px).
 * DNA aus Startseite, Rubrik-Template V2 und Magazinarchiv: Anton versal, Archivo, Newsreader kursiv, Linien 1,5/2/3 px,
 * Akzent- und Signalfarbe der Farbwelt, Hover-Balken .sw-hl, Kästchen-Chips. Keine Layoutkopien.
 */

:root { --sw-on-signal: var(--sw-ink); }
[data-theme="gold"] { --sw-on-signal: #FFFFFF; }

/* ---------- Kategorie-Farben (nur Orientierung, Klartext steht immer daneben) ---------- */
:is(.k2-punkt, .k6-lk) { --kc: var(--sw-ink); --kc-on: #FFFFFF; }
:is(.k2-punkt--ausstellungen, .k6-lk--ausstellungen) { --kc: #6BA6C9; --kc-on: #14110F; }
:is(.k2-punkt--buehne, .k6-lk--buehne) { --kc: #D4322B; --kc-on: #FFFFFF; }
:is(.k2-punkt--film, .k6-lk--film) { --kc: #14110F; --kc-on: #FFFFFF; }
:is(.k2-punkt--kinder-familie, .k6-lk--kinder-familie) { --kc: #E2733A; --kc-on: #14110F; }
:is(.k2-punkt--konzerte, .k6-lk--konzerte) { --kc: #B70074; --kc-on: #FFFFFF; }
:is(.k2-punkt--lesungen, .k6-lk--lesungen) { --kc: #5E554C; --kc-on: #FFFFFF; }
:is(.k2-punkt--maerkte-feste, .k6-lk--maerkte-feste) { --kc: #F5C83C; --kc-on: #14110F; }
:is(.k2-punkt--party-clubs, .k6-lk--party-clubs) { --kc: #8B0058; --kc-on: #FFFFFF; }
:is(.k2-punkt--sport, .k6-lk--sport) { --kc: #56829C; --kc-on: #14110F; }
/* Neue Kategorien (Stefan 11.10.2026, geprüfte Farbübersicht); Märkte & Shopping übernimmt das Gelb von „Märkte & Feste“ */
:is(.k2-punkt--festivals-open-air, .k6-lk--festivals-open-air) { --kc: #D14D9A; --kc-on: #14110F; }
:is(.k2-punkt--comedy-kabarett, .k6-lk--comedy-kabarett) { --kc: #F07C6B; --kc-on: #14110F; }
:is(.k2-punkt--vortraege-diskussionen, .k6-lk--vortraege-diskussionen) { --kc: #8C7B6B; --kc-on: #14110F; }
:is(.k2-punkt--workshops-kurse, .k6-lk--workshops-kurse) { --kc: #2F7D6D; --kc-on: #FFFFFF; }
:is(.k2-punkt--maerkte-shopping, .k6-lk--maerkte-shopping) { --kc: #F5C83C; --kc-on: #14110F; }
:is(.k2-punkt--feste-stadtleben, .k6-lk--feste-stadtleben) { --kc: #F2A33A; --kc-on: #14110F; }
:is(.k2-punkt--essen-trinken, .k6-lk--essen-trinken) { --kc: #A65E2E; --kc-on: #FFFFFF; }
:is(.k2-punkt--fuehrungen-entdecken, .k6-lk--fuehrungen-entdecken) { --kc: #1F3A5F; --kc-on: #FFFFFF; }
:is(.k2-punkt--community-begegnung, .k6-lk--community-begegnung) { --kc: #7A5BA6; --kc-on: #FFFFFF; }
:is(.k2-punkt--freizeit-natur, .k6-lk--freizeit-natur) { --kc: #4F8A3C; --kc-on: #14110F; }
:is(.k2-punkt--sonstiges, .k6-lk--sonstiges) { --kc: #FBF9F5; --kc-on: #14110F; }

/* ---------- gemeinsam ---------- */
.klab { padding-bottom: 110px; }
.klab--live { padding-bottom: 0; }
.klab a { color: inherit; }
.klab :is(h1, h2, h3, p, ol, ul, dl, dd, figure) { margin: 0; }
.klab :is(ol, ul) { list-style: none; padding: 0; }
.klab a:focus-visible, .klab button:focus-visible, .klab :is(input, select):focus-visible, .klab summary:focus-visible { outline: 3px solid var(--sw-focus, var(--sw-accent)); outline-offset: 3px; }
.klab .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.klab .sw-hl { background-image: linear-gradient(var(--sw-hl), var(--sw-hl)); background-repeat: no-repeat; background-position: 0 88%; background-size: 0 .42em; transition: background-size .25s var(--sw-ease, ease); }
.klab a:hover .sw-hl, .klab a:focus-visible .sw-hl { background-size: 100% .42em; }
.klab :is(h3) a { text-decoration: none; }
.klab .sw-label, .klab .sw-badge { margin: 0 6px 6px 0; }
.kl-voll, .k2-voll, .k6-voll { width: calc(100vw - var(--sbw, 0px)); margin-left: calc(50% - (100vw - var(--sbw, 0px)) / 2); }
.k2-in, .k6-in { width: min(100% - 2 * var(--sw-gutter), var(--sw-container)); margin-inline: auto; }

/* Breadcrumb als Dachzeile (wie Rubrikkopf) */
.kl-bc { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; font-family: var(--sw-font-ui); font-weight: 700; font-size: 13px; letter-spacing: .2em; text-transform: uppercase; }
.kl-bc a { text-decoration: none; padding-bottom: 3px; border-bottom: 3px solid transparent; }
.kl-bc a:hover { border-bottom-color: var(--sw-word); }
.kl-bc .last { padding-bottom: 3px; border-bottom: 3px solid var(--sw-word); }

/* Zähler */
.kl-n { display: inline-block; min-width: 1.6em; margin-left: 7px; font-family: var(--sw-font-ui); font-weight: 700; font-size: 11px; letter-spacing: 0; font-variant-numeric: tabular-nums; opacity: .72; }
.klab a.is-leer { opacity: .42; }
.klab a.is-leer:hover { opacity: .7; }

/* Formular + Knopf */
.kl-form { display: flex; flex-wrap: wrap; align-items: end; gap: 8px; }
.kl-form label, .kl-auswahl { display: grid; gap: 4px; }
.kl-form label span, .kl-auswahl label { font-family: var(--sw-font-ui); font-weight: 800; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--sw-text-2); }
.kl-form :is(input, select), .kl-auswahl select { height: 44px; padding: 0 12px; border: 1.5px solid var(--sw-ink); border-radius: 0; background: var(--sw-paper); color: var(--sw-ink); font-family: var(--sw-font-ui); font-weight: 600; font-size: 15px; }
.kl-auswahl { grid-template-columns: auto auto; grid-template-rows: auto 44px; column-gap: 6px; }
/* Eigener Auswahlpfeil (Stefan 09.10.2026): kräftiger Winkel in Tinte, durch eine 1,5-px-Linie abgetrennt wie ein Kästchen */
.klab .kl-form select, .klab .kl-auswahl select { -webkit-appearance: none; appearance: none; padding-right: 58px; cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 10'%3E%3Cpath d='M1.5 1.5 8 8l6.5-6.5' fill='none' stroke='%2314110F' stroke-width='2.6' stroke-linecap='square'/%3E%3C/svg%3E"), linear-gradient(var(--sw-ink), var(--sw-ink));
	background-repeat: no-repeat; background-position: right 15px center, right 44px top; background-size: 14px 9px, 1.5px 100%; transition: background-color .15s; }
.klab .kl-form select:hover, .klab .kl-auswahl select:hover { background-color: var(--sw-accent-soft); }
.klab .kl-form select:focus-visible, .klab .kl-auswahl select:focus-visible { background-color: var(--sw-paper); }
.kl-auswahl label { grid-column: 1 / -1; }
.kl-auswahl select { min-width: 220px; }
.kl-knopf { display: inline-flex; align-items: center; justify-content: center; height: 44px; padding: 0 18px; border: 1.5px solid var(--sw-ink); background: var(--sw-ink); color: var(--sw-paper); font-family: var(--sw-font-ui); font-weight: 800; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: transform .15s, box-shadow .15s, background-color .15s, color .15s; }
.kl-knopf:hover { background: var(--sw-accent); color: var(--sw-on-accent); transform: translate(-2px, -2px); box-shadow: 3px 3px 0 var(--sw-ink); }
/* Primärknopf wie im Style Guide (Stefan 09.10.2026: nicht schwarz): Akzentfläche, Schrift nach Farbwelt, Hover Passer-Versatz mit Kante in Signalfarbe */
.klab button.kl-knopf, .klab a.kl-knopf { background: var(--sw-accent); color: var(--sw-on-accent); border-color: var(--sw-accent); }
.klab button.kl-knopf:hover, .klab a.kl-knopf:hover { background: var(--sw-accent); color: var(--sw-on-accent); transform: translate(-4px, -4px); box-shadow: 4px 4px 0 var(--sw-signal); }
.klab button.kl-knopf:active, .klab a.kl-knopf:active { transform: none; box-shadow: none; }
[data-theme="papier"] .klab :is(button, a).kl-knopf { background: var(--sw-ink); color: var(--sw-paper); border-color: var(--sw-ink); }
.kl-knopf--klein { padding: 0 12px; }
.js-kl .kl-auswahl .kl-knopf { display: none; }
.js-kl .kl-auswahl { grid-template-columns: auto; }

/* Aktive Filter */
.kl-aktiv { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; transition: background-color .6s; }
.kl-aktiv.is-neu { background: color-mix(in srgb, var(--sw-accent) 22%, transparent); }
.kl-aktiv__zahl { font-family: var(--sw-font-ui); font-weight: 700; font-size: 15px; }
.kl-aktiv__zahl b { font-family: var(--sw-font-display); font-weight: 400; font-size: 28px; line-height: 1; margin-right: 4px; }
.kl-aktiv__hinweis { font-family: var(--sw-font-accent); font-style: italic; font-size: 17px; color: var(--sw-text-2); }
.kl-aktiv__zahl, .kl-aktiv__hinweis { align-self: baseline; } /* „ab jetzt …“ auf der Grundlinie von „Termine“ (Stefan 09.10.2026) */
.kl-aktiv__liste { display: flex; flex-wrap: wrap; gap: 8px; }
.kl-aktiv__liste li { display: inline-flex; align-items: stretch; min-height: 38px; border: 1.5px solid var(--sw-ink); background: var(--sw-surface); color: var(--sw-ink); font-family: var(--sw-font-ui); font-size: 13px; }
.kl-aktiv__liste li > :is(.kl-aktiv__l, .k2-punkt, b) { align-self: center; }
.kl-aktiv__l { padding: 0 8px 0 12px; font-weight: 800; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--sw-text-2); }
.kl-aktiv__liste .k2-punkt { flex: none; position: relative; top: -1.3px; width: 12px; height: 12px; margin-right: 7px; border-radius: 0; background: var(--kc); } /* Mitte = Mitte der Versalhöhe */
.kl-aktiv__liste b { padding-right: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.kl-aktiv__liste a { display: inline-grid; place-items: center; width: 38px; border-left: 1.5px solid var(--sw-ink); font-size: 18px; line-height: 1; text-decoration: none; transition: background-color .15s, color .15s; }
.kl-aktiv__liste a:hover { background: var(--sw-accent); color: var(--sw-on-accent); }
[data-theme="papier"] .kl-aktiv__liste a:hover { background: var(--sw-ink); color: var(--sw-paper); }
.kl-aktiv__reset { display: inline-flex; align-items: flex-end; min-height: 28px; font-family: var(--sw-font-ui); font-weight: 800; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; border-bottom: 3px solid var(--sw-ink); padding-bottom: 2px; } /* Klickfläche ≥ 24 px (WCAG 2.5.8) */
.kl-aktiv__reset:hover { border-bottom-color: var(--sw-word); }

/* Kategorie-Etikett, Preis */
.kl-kat { display: inline-block; margin: 0 6px 6px 0; padding: 4px 8px 3px; border: 1px solid currentColor; font-family: var(--sw-font-ui); font-weight: 800; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; line-height: 1.2; }
.kl-preis { display: grid; gap: 2px; font-family: var(--sw-font-ui); font-size: 14px; line-height: 1.35; }
.kl-preis__l { font-weight: 800; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--sw-text-2); margin-bottom: 2px; }
.kl-preis__p { font-weight: 600; }
.kl-preis.is-frei .kl-preis__p { justify-self: start; padding: 4px 8px 3px; background: var(--sw-accent); color: var(--sw-on-accent); font-weight: 800; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
[data-theme="papier"] .kl-preis.is-frei .kl-preis__p { background: var(--sw-ink); color: var(--sw-paper); }

/* Leer, Seiten */
.kl-leer { margin: 48px 0; padding: 48px 0; border-block: 1px solid var(--sw-ink); display: grid; gap: 18px; justify-items: start; }
.kl-leer__text { font-family: var(--sw-font-accent); font-style: italic; font-size: 30px; line-height: 1.25; }
.kl-leer__vor { font-family: var(--sw-font-ui); font-size: 15px; }
.kl-leer__vor a { font-weight: 700; }
.kl-seiten { margin-top: 48px; }
.kl-seiten ul { display: flex; gap: 6px; flex-wrap: wrap; }
.kl-seiten :is(a, span) { display: inline-grid; place-items: center; min-width: 44px; height: 44px; padding: 0 12px; border: 1.5px solid var(--sw-ink); font-family: var(--sw-font-display); font-size: 20px; text-decoration: none; }
.kl-seiten .current { background: var(--sw-ink); color: var(--sw-paper); }

/* Übersicht + Umschalter */
.klab-info { margin: 18px 0 0; border: 1.5px solid var(--sw-ink); background: var(--sw-surface); font-family: var(--sw-font-ui); font-size: 14px; }
.klab-info summary { cursor: pointer; padding: 10px 14px; list-style: none; }
.klab-info summary::-webkit-details-marker { display: none; }
.klab-info summary span { float: right; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; font-size: 12px; text-decoration: underline; text-underline-offset: 3px; }
.klab-info[open] summary span { visibility: hidden; }
.klab-info__scroll { overflow-x: auto; }
.klab-info table { width: 100%; min-width: 1100px; border-collapse: collapse; }
.klab-info th, .klab-info td { padding: 10px 12px; border-top: 1px solid color-mix(in srgb, var(--sw-ink) 20%, transparent); text-align: left; vertical-align: top; line-height: 1.4; font-size: 13px; }
.klab-info thead th { font-weight: 800; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.klab-info tbody th a { font-weight: 700; white-space: nowrap; }
.klab-info tr[aria-current] { background: color-mix(in srgb, var(--sw-accent) 14%, transparent); }
.klab-info__hinweis { padding: 10px 14px; border-top: 1px solid color-mix(in srgb, var(--sw-ink) 20%, transparent); color: var(--sw-text-2); font-size: 13px; }
.klab-leiste { position: fixed; left: 50%; bottom: 18px; z-index: 60; transform: translateX(-50%); display: flex; align-items: center; gap: 4px; padding: 6px; background: var(--sw-ink); box-shadow: 0 10px 30px rgba(20, 17, 15, .35); max-width: calc(100vw - 24px); overflow-x: auto; }
.klab-leiste__titel { padding: 0 10px 0 6px; color: var(--sw-signal); font-family: var(--sw-font-ui); font-weight: 800; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }
.klab-leiste a { padding: 8px 10px; color: var(--sw-paper) !important; font-family: var(--sw-font-ui); font-weight: 600; font-size: 13px; text-decoration: none; white-space: nowrap; }
.klab-leiste a b { font-family: var(--sw-font-display); font-weight: 400; font-size: 15px; margin-right: 2px; }
.klab-leiste a:hover { background: color-mix(in srgb, var(--sw-paper) 14%, transparent); }
.klab-leiste a[aria-current="page"] { background: var(--sw-accent); color: var(--sw-on-accent) !important; }

/* ==================================================================
   01 · EDITORIAL AGENDA
   ================================================================== */
.k1-kopf { padding-top: 56px; }
.k1-kopf__zeile { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 40px; margin-top: 24px; padding-bottom: 28px; border-bottom: 2px solid var(--sw-ink); }
.k1-marke { font-family: var(--sw-font-display); font-size: 84px; line-height: .86; text-transform: uppercase; }
.k1-h1 { flex: 1 1 280px; font-family: var(--sw-font-ui); font-weight: 700; font-size: 22px; line-height: 1.25; position: relative; top: -4px; }
.k1-ics { font-family: var(--sw-font-ui); font-weight: 800; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; border-bottom: 3px solid var(--sw-ink); padding-bottom: 2px; margin-bottom: 8px; }
.k1-ics:hover { border-bottom-color: var(--sw-word); }
.k1-filter { margin-top: 8px; }
.k1-f { display: grid; grid-template-columns: 96px minmax(0, 1fr) auto; align-items: center; gap: 10px 24px; padding: 14px 0; border-bottom: 1px solid color-mix(in srgb, var(--sw-ink) 25%, transparent); }
.k1-f__l { font-family: var(--sw-font-ui); font-weight: 800; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; }
.k1-f .k1-chips { grid-column: 2 / -1; }
.k1-seg { display: flex; flex-wrap: wrap; }
.k1-seg li + li { margin-left: -1.5px; }
.k1-seg a, .k1-chips a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border: 1.5px solid var(--sw-ink); font-family: var(--sw-font-ui); font-weight: 800; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; background: var(--sw-paper); transition: background-color .15s; }
.k1-seg a { min-height: 44px; padding: 0 18px; }
.k1-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.k1-chips--wo a { border-color: color-mix(in srgb, var(--sw-ink) 45%, transparent); }
:is(.k1-seg, .k1-chips) a:hover { background: var(--sw-accent-soft); }
:is(.k1-seg, .k1-chips) a[aria-current] { background: var(--sw-ink); color: var(--sw-paper); border-color: var(--sw-ink); position: relative; z-index: 1; }
.k1-datum { justify-self: end; }
.k1-datum label { grid-template-columns: auto auto; align-items: center; gap: 8px; }
.k1-aktiv { padding: 18px 0 0; }
.k1-block { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 0 32px; margin-top: 56px; }
.k1-tag { align-self: start; position: sticky; top: 84px; display: grid; gap: 6px; padding-top: 14px; border-top: 3px solid var(--sw-ink); }
.k1-tag__nr { font-family: var(--sw-font-display); font-size: 112px; line-height: .82; }
.k1-tag__nr--wort { font-size: 48px; line-height: .9; text-transform: uppercase; }
.k1-tag__wt { display: grid; font-family: var(--sw-font-ui); font-weight: 700; font-size: 18px; }
.k1-tag__wt b { justify-self: start; margin-bottom: 4px; padding: 3px 8px 2px; background: var(--sw-signal); color: var(--sw-on-signal); font-weight: 800; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.k1-tag__wt small { font-family: var(--sw-font-accent); font-style: italic; font-weight: 400; font-size: 18px; color: var(--sw-text-2); }
.k1-lauf .k1-tag__wt { font-family: var(--sw-font-accent); font-style: italic; font-weight: 400; font-size: 16px; line-height: 1.35; color: var(--sw-text-2); }
.k1-liste { border-top: 3px solid var(--sw-ink); }
.k1-z { display: grid; grid-template-columns: 112px minmax(0, 1fr) 170px 220px; gap: 6px 28px; align-items: start; padding: 22px 0; border-bottom: 1px solid color-mix(in srgb, var(--sw-ink) 25%, transparent); }
.k1-zeit { display: grid; font-family: var(--sw-font-display); font-size: 34px; line-height: .95; font-variant-numeric: tabular-nums; }
.k1-zeit small { margin-top: 6px; font-family: var(--sw-font-ui); font-weight: 700; font-size: 13px; line-height: 1.2; letter-spacing: .02em; color: var(--sw-text-2); }
.k1-zeit--lauf b { font-weight: 400; color: var(--sw-word); text-transform: uppercase; }
.k1-zeit b { font-weight: 400; }
.k1-titel { font-family: var(--sw-font-display); font-weight: 400; font-size: 30px; line-height: 1.04; text-transform: uppercase; overflow-wrap: anywhere; hyphens: auto; }
.k1-ort { margin-top: 8px; font-family: var(--sw-font-ui); font-size: 16px; color: var(--sw-text-2); }
.k1-hinweis { margin-top: 6px; font-family: var(--sw-font-accent); font-style: italic; font-size: 17px; line-height: 1.4; color: var(--sw-text-2); }
.k1-art { padding-top: 4px; }
.k1-preis { padding-top: 2px; }
.k1-seiten { margin-left: 232px; }
.k1-ende { display: grid; grid-template-columns: 200px minmax(0, 1fr) auto; gap: 16px 32px; align-items: center; margin: 80px 0 24px; padding-top: 28px; border-top: 2px solid var(--sw-ink); }
.k1-ende__l { font-family: var(--sw-font-display); font-size: 34px; line-height: 1; text-transform: uppercase; }
.k1-ende__links { display: flex; flex-wrap: wrap; gap: 8px 22px; font-family: var(--sw-font-ui); font-weight: 800; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; }
.k1-ende__links a { text-decoration: none; border-bottom: 3px solid var(--sw-ink); padding-bottom: 2px; }
.k1-ende__links a:hover, .k1-ende__ics:hover { border-bottom-color: var(--sw-word); }
.k1-ende__ics { font-family: var(--sw-font-accent); font-style: italic; font-size: 18px; text-decoration: none; border-bottom: 1.5px solid var(--sw-ink); }

@media (max-width: 1023px) {
	.k1-z { grid-template-columns: 96px minmax(0, 1fr) 180px; }
	.k1-art { grid-column: 2; grid-row: 2; }
	.k1-preis { grid-column: 3; grid-row: 1 / span 2; }
}
@media (max-width: 767px) {
	.k1-kopf { padding-top: 32px; }
	.k1-marke { font-size: clamp(44px, 14vw, 60px); }
	.k1-f { grid-template-columns: 1fr; gap: 8px; }
	.k1-f .k1-chips { grid-column: 1; }
	.k1-seg, .k1-chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-right: calc(-1 * var(--sw-gutter)); padding-right: var(--sw-gutter); }
	.k1-seg li, .k1-chips li { flex: none; }
	.k1-datum { justify-self: start; }
	.k1-block { grid-template-columns: 1fr; margin-top: 40px; }
	.k1-tag { position: static; grid-template-columns: auto 1fr; align-items: end; gap: 14px; }
	.k1-tag__nr { font-size: 64px; }
	.k1-z { grid-template-columns: 72px minmax(0, 1fr); gap: 6px 16px; }
	.k1-zeit { font-size: 26px; }
	.k1-titel { font-size: 24px; }
	.k1-art, .k1-preis { grid-column: 2; grid-row: auto; }
	.k1-seiten { margin-left: 0; }
	.k1-ende { grid-template-columns: 1fr; }
}

/* ==================================================================
   02 · BOLD CITY GUIDE
   ================================================================== */
.k2-kopf { background: var(--sw-accent); color: var(--sw-on-accent); padding: 40px 0 36px; border-bottom: 3px solid var(--sw-ink); }
.k2-kopf .kl-bc .last, .k2-kopf .kl-bc a:hover { border-bottom-color: currentColor; }
.k2-h1 { margin-top: 26px; font-family: var(--sw-font-display); font-weight: 400; font-size: clamp(56px, 7.4vw, 124px); line-height: .9; text-transform: uppercase; max-width: 14ch; }
.k2-wann { margin-top: 34px; }
.k2-wann__l { display: flex; flex-wrap: wrap; gap: 6px 10px; }
.k2-wann__l a { display: inline-flex; align-items: flex-start; padding: 8px 14px 4px; border: 2.5px solid currentColor; font-family: var(--sw-font-display); font-size: 40px; line-height: 1; text-transform: uppercase; text-decoration: none; transition: transform .15s, box-shadow .15s; }
.k2-wann__l a:hover { transform: translate(-3px, -3px); box-shadow: 4px 4px 0 var(--sw-ink); }
.k2-wann__l a[aria-current] { background: var(--sw-ink); color: var(--sw-paper); border-color: var(--sw-ink); }
.k2-wann__l .kl-n { margin: 2px 0 0 8px; font-size: 13px; opacity: .85; }
.k2-kopf__unten { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 16px; margin-top: 30px; }
.k2-kopf .kl-form label span { color: inherit; opacity: .85; }
.k2-kopf .kl-form input { border-color: var(--sw-ink); }
.k2-ics { font-family: var(--sw-font-ui); font-weight: 800; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; border-bottom: 3px solid currentColor; padding-bottom: 2px; }
.k2-filter { display: grid; gap: 18px; padding: 28px 0 24px; border-bottom: 2px solid var(--sw-ink); }
.k2-f { display: grid; grid-template-columns: 110px minmax(0, 1fr); align-items: center; gap: 12px 20px; }
.k2-f__l { font-family: var(--sw-font-display); font-size: 30px; line-height: 1; text-transform: uppercase; }
.k2-stempel { display: flex; flex-wrap: wrap; gap: 10px; }
.k2-stempel a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; border: 2px solid var(--sw-ink); font-family: var(--sw-font-display); font-size: 19px; text-transform: uppercase; text-decoration: none; transition: transform .15s, background-color .15s; }
.k2-stempel a:hover { transform: rotate(-1.5deg); background: var(--sw-accent-soft); }
.k2-stempel a[aria-current] { background: var(--sw-ink); color: var(--sw-paper); }
.k2-stempel li:not(:first-child) a::before { content: ""; width: 12px; height: 12px; border-radius: 50%; background: var(--kc, var(--sw-ink)); box-shadow: 0 0 0 1.5px var(--sw-paper); }
.k2-stempel li:nth-child(2) a { --kc: #6BA6C9; } .k2-stempel li:nth-child(3) a { --kc: #D4322B; } .k2-stempel li:nth-child(4) a { --kc: #14110F; }
.k2-stempel li:nth-child(5) a { --kc: #E2733A; } .k2-stempel li:nth-child(6) a { --kc: #B70074; } .k2-stempel li:nth-child(7) a { --kc: #5E554C; }
.k2-stempel li:nth-child(8) a { --kc: #F5C83C; } .k2-stempel li:nth-child(9) a { --kc: #8B0058; } .k2-stempel li:nth-child(10) a { --kc: #56829C; }
.k2-tabs { display: flex; flex-wrap: wrap; gap: 0 26px; }
.k2-tabs a { display: inline-flex; align-items: center; min-height: 44px; font-family: var(--sw-font-ui); font-weight: 800; font-size: 14px; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; border-bottom: 4px solid transparent; }
.k2-tabs a:hover { border-bottom-color: var(--sw-accent-soft); }
.k2-tabs a[aria-current] { border-bottom-color: var(--sw-ink); }
.k2-aktiv { padding-top: 6px; }
.k2-tag-block { margin-top: 44px; }
.k2-band { position: sticky; top: 60px; z-index: 5; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; padding: 12px 22px 12px 12px; background: var(--sw-ink); color: var(--sw-paper); }
.k2-band__datum { display: grid; place-items: center; width: 64px; height: 64px; background: var(--sw-accent); color: var(--sw-on-accent); font-family: var(--sw-font-display); font-size: 34px; line-height: .9; }
[data-theme="papier"] .k2-band__datum { background: var(--sw-signal); color: var(--sw-on-signal); }
.k2-band__datum b { font-family: var(--sw-font-ui); font-weight: 800; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }
.k2-band__text { font-family: var(--sw-font-display); font-size: 30px; line-height: 1; text-transform: uppercase; }
.k2-band > span:first-child:not(.k2-band__datum) { font-family: var(--sw-font-display); font-size: 30px; text-transform: uppercase; padding-left: 10px; }
.k2-band__rel { padding: 4px 10px 3px; background: var(--sw-signal); color: var(--sw-on-signal); font-family: var(--sw-font-ui); font-weight: 800; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; }
.k2-band__n { margin-left: auto; font-family: var(--sw-font-ui); font-weight: 700; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; opacity: .8; }
.k2-z { position: relative; display: grid; grid-template-columns: 150px minmax(0, 1fr) 240px 36px; gap: 8px 28px; align-items: start; padding: 26px 22px; border-bottom: 2px solid var(--sw-ink); transition: background-color .15s; }
.k2-z:hover { background: color-mix(in srgb, var(--sw-accent) 12%, transparent); }
.k2-z .k2-titel a::after { content: ""; position: absolute; inset: 0; }
.k2-zeit { display: grid; font-family: var(--sw-font-display); font-size: 48px; line-height: .9; font-variant-numeric: tabular-nums; }
.k2-zeit small { margin-top: 8px; font-family: var(--sw-font-ui); font-weight: 800; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; }
.k2-zeit--lauf { font-size: 38px; text-transform: uppercase; }
.k2-kat { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 8px; font-family: var(--sw-font-ui); font-weight: 800; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.k2-punkt { width: 14px; height: 14px; border-radius: 0; background: var(--kc); } /* quadratisch statt rund (Stefan 09.10.2026) */
.k2-titel { font-family: var(--sw-font-display); font-weight: 400; font-size: 38px; line-height: 1; text-transform: uppercase; overflow-wrap: anywhere; }
.k2-frei { display: inline-block; vertical-align: .35em; margin-left: 6px; padding: 5px 9px 4px; background: var(--sw-accent); color: var(--sw-on-accent); font-family: var(--sw-font-ui); font-weight: 800; font-size: 12px; letter-spacing: .1em; transform: rotate(-3deg); }
[data-theme="papier"] .k2-frei { background: var(--sw-ink); color: var(--sw-paper); }
.k2-ort { margin-top: 10px; font-family: var(--sw-font-ui); font-weight: 600; font-size: 16px; }
.k2-hinweis { margin-top: 6px; font-family: var(--sw-font-accent); font-style: italic; font-size: 17px; color: var(--sw-text-2); }
.k2-pfeil { align-self: center; font-family: var(--sw-font-display); font-size: 34px; transition: transform .2s; }
.k2-z:hover .k2-pfeil { transform: translateX(6px); }
.k2-preis { position: relative; z-index: 1; }
.k2-ende { margin-top: 88px; margin-bottom: -1px; padding: 64px 0; background: var(--sw-accent); color: var(--sw-on-accent); border-top: 3px solid var(--sw-ink); }
.k2-ende__h { font-family: var(--sw-font-display); font-size: 80px; line-height: .9; text-transform: uppercase; }
.k2-ende__links { display: flex; flex-wrap: wrap; gap: 10px; margin: 28px 0 22px; }
.k2-ende__links a { display: inline-flex; align-items: center; min-height: 48px; padding: 0 18px; border: 2.5px solid currentColor; font-family: var(--sw-font-display); font-size: 24px; text-transform: uppercase; text-decoration: none; transition: transform .15s, box-shadow .15s; }
.k2-ende__links a:hover { background: var(--sw-ink); color: var(--sw-paper); border-color: var(--sw-ink); }
.k2-ende__ics { font-family: var(--sw-font-ui); font-weight: 800; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; border-bottom: 3px solid currentColor; }
.klab--02 { padding-bottom: 0; }
.klab--02 .k2-ende { padding-bottom: 120px; }

@media (max-width: 1023px) {
	.k2-z { grid-template-columns: 110px minmax(0, 1fr) 200px; }
	.k2-pfeil { display: none; }
}
@media (max-width: 767px) {
	.k2-kopf { padding: 28px 0; }
	.k2-h1 { font-size: 11.2vw; max-width: none; }
	.k2-wann__l { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-right: calc(-1 * var(--sw-gutter)); }
	.k2-wann__l li { flex: none; }
	.k2-wann__l a { font-size: 28px; }
	.k2-f { grid-template-columns: 1fr; }
	.k2-stempel { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-right: calc(-1 * var(--sw-gutter)); padding: 4px 0; }
	.k2-stempel li { flex: none; }
	.k2-band { padding: 8px 14px 8px 8px; gap: 8px 14px; }
	.k2-band__datum { width: 48px; height: 48px; font-size: 26px; }
	.k2-band__text { font-size: 22px; }
	.k2-band__n { display: none; }
	.k2-z { grid-template-columns: 76px minmax(0, 1fr); padding: 18px 0; gap: 6px 14px; }
	.k2-zeit { font-size: 32px; }
	.k2-zeit--lauf { font-size: 24px; }
	.k2-titel { font-size: 26px; }
	.k2-preis { grid-column: 2; }
	.k2-ende__h { font-size: 48px; }
}

/* ==================================================================
   03 · DAY BY DAY
   ================================================================== */
.k3-kopf { padding-top: 48px; }
.k3-kopf__zeile { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 18px 32px; margin-top: 22px; }
.k3-h1 { font-family: var(--sw-font-display); font-weight: 400; font-size: 64px; line-height: .92; text-transform: uppercase; }
.k3-wann { display: flex; flex-wrap: wrap; gap: 6px; }
.k3-wann a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border: 1.5px solid var(--sw-ink); font-family: var(--sw-font-ui); font-weight: 800; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; }
.k3-wann a:hover { background: var(--sw-accent-soft); }
.k3-wann a[aria-current] { background: var(--sw-ink); color: var(--sw-paper); }
.k3-werkzeug { display: flex; flex-wrap: wrap; align-items: end; gap: 14px 22px; margin-top: 28px; padding: 18px 0; border-top: 2px solid var(--sw-ink); }
.k3-tage { position: sticky; top: 60px; z-index: 6; background: var(--sw-paper); border-block: 2px solid var(--sw-ink); }
.k3-tage ol { display: grid; grid-template-columns: repeat(14, minmax(0, 1fr)); }
.k3-tage li + li { border-left: 1px solid color-mix(in srgb, var(--sw-ink) 22%, transparent); }
.k3-tage a { display: grid; justify-items: center; gap: 2px; padding: 10px 2px 9px; text-decoration: none; transition: background-color .15s; }
.k3-tage a:hover { background: var(--sw-accent-soft); }
.k3-tage a[aria-current], .k3-tage a.is-sicht { background: var(--sw-ink); color: var(--sw-paper); }
.k3-tage li:first-child a { box-shadow: inset 0 4px 0 var(--sw-word); }
.k3-tage__wt { font-family: var(--sw-font-ui); font-weight: 800; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.k3-tage__nr { font-family: var(--sw-font-display); font-size: 32px; line-height: 1; }
.k3-tage__n { display: flex; gap: 3px; height: 8px; margin-top: 6px; align-items: center; font-family: var(--sw-font-ui); font-size: 11px; } /* mehr Luft zwischen Ziffer und Punkten (Stefan 09.10.2026) */
.k3-tage__n i { width: 7px; height: 7px; background: var(--sw-word); }
.k3-tage a[aria-current] .k3-tage__n i, .k3-tage a.is-sicht .k3-tage__n i { background: var(--sw-signal); }
/* aktiver Tag (Stefan 09.10.2026: nicht schwarz): Akzentfläche, Schrift und Punkte nach Farbwelt; Farbwelt Weiß in Tinte */
.k3-tage a[aria-current], .k3-tage a.is-sicht { background: var(--sw-accent); color: var(--sw-on-accent); }
.k3-tage a[aria-current] .k3-tage__n i, .k3-tage a.is-sicht .k3-tage__n i { background: var(--sw-on-accent); }
[data-theme="papier"] .k3-tage a:is([aria-current], .is-sicht) { background: var(--sw-ink); color: var(--sw-paper); }
[data-theme="papier"] .k3-tage a:is([aria-current], .is-sicht) .k3-tage__n i { background: var(--sw-signal); }
.k3-aktiv { padding: 16px 0 0; }
.k3-lauf { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 22px; margin-top: 28px; padding: 14px 18px; background: var(--sw-surface); border-left: 6px solid var(--sw-word); }
.k3-lauf__l { font-family: var(--sw-font-display); font-size: 20px; text-transform: uppercase; }
.k3-lauf ul { display: flex; flex-wrap: wrap; gap: 6px 28px; }
.k3-lauf a { font-family: var(--sw-font-ui); font-weight: 800; font-size: 15px; text-transform: uppercase; letter-spacing: .04em; }
.k3-lauf li span { font-family: var(--sw-font-ui); font-size: 14px; color: var(--sw-text-2); }
.k3-tag { margin-top: 56px; scroll-margin-top: 170px; }
.k3-tag__kopf { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px 22px; padding-bottom: 14px; border-bottom: 3px solid var(--sw-ink); }
.k3-tag__nr { font-family: var(--sw-font-display); font-size: 120px; line-height: .78; }
.k3-tag__wt { display: grid; font-family: var(--sw-font-display); font-size: 42px; line-height: .95; text-transform: uppercase; }
.k3-tag__wt small { font-family: var(--sw-font-accent); font-style: italic; font-size: 20px; text-transform: none; color: var(--sw-text-2); }
.k3-tag__rel { align-self: flex-start; margin-top: 6px; padding: 4px 10px 3px; background: var(--sw-signal); color: var(--sw-on-signal); font-family: var(--sw-font-ui); font-weight: 800; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; }
.k3-tag__n { margin-left: auto; font-family: var(--sw-font-ui); font-weight: 800; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.k3-z { display: grid; grid-template-columns: 120px minmax(0, 1fr) 180px 220px; gap: 6px 28px; align-items: start; padding: 20px 0; border-bottom: 1px solid color-mix(in srgb, var(--sw-ink) 25%, transparent); }
.k3-zeit { font-family: var(--sw-font-display); font-size: 38px; line-height: .95; font-variant-numeric: tabular-nums; }
.k3-zeit--lauf { font-size: 22px; text-transform: uppercase; }
.k3-titel { font-family: var(--sw-font-display); font-weight: 400; font-size: 30px; line-height: 1.04; text-transform: uppercase; overflow-wrap: anywhere; }
.k3-ort { margin-top: 8px; font-family: var(--sw-font-ui); font-size: 16px; color: var(--sw-text-2); }
.k3-hinweis { margin-top: 6px; font-family: var(--sw-font-accent); font-style: italic; font-size: 17px; color: var(--sw-text-2); }
.k3-art { padding-top: 4px; }
.k3-ende { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 28px; margin: 80px 0 24px; padding: 26px 0; border-block: 2px solid var(--sw-ink); }
.k3-ende__l { font-family: var(--sw-font-display); font-size: 30px; text-transform: uppercase; }
.k3-ende__links { display: flex; flex-wrap: wrap; gap: 8px; }
.k3-ende__links a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border: 1.5px solid var(--sw-ink); font-family: var(--sw-font-ui); font-weight: 800; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; }
.k3-ende__links a:hover { background: var(--sw-accent-soft); }
.k3-ende__ics { margin-left: auto; font-family: var(--sw-font-ui); font-weight: 700; font-size: 14px; }

@media (max-width: 1023px) {
	.k3-z { grid-template-columns: 96px minmax(0, 1fr) 180px; }
	.k3-art { grid-column: 2; grid-row: 2; }
	.k3-preis { grid-column: 3; grid-row: 1 / span 2; }
	.k3-tage { overflow-x: auto; scrollbar-width: none; }
	.k3-tage ol { grid-template-columns: repeat(14, 64px); }
}
@media (max-width: 767px) {
	.k3-h1 { font-size: 40px; }
	.k3-wann { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; width: 100%; }
	.k3-wann li { flex: none; }
	.k3-werkzeug { display: grid; grid-template-columns: 1fr 1fr; }
	.k3-werkzeug .kl-auswahl select { min-width: 0; width: 100%; }
	.klab .kl-auswahl select { padding: 0 44px 0 10px; font-size: 14px; background-position: right 11px center, right 34px top; background-size: 12px 8px, 1.5px 100%; }
	.k3-datum { grid-column: 1 / -1; }
	.k3-tage { margin-inline: calc(-1 * var(--sw-gutter)); }
	.k3-tage ol { grid-template-columns: repeat(14, 58px); }
	.k3-tag__nr { font-size: 72px; }
	.k3-tag__wt { font-size: 28px; }
	.k3-tag__n { display: none; }
	.k3-z { grid-template-columns: 72px minmax(0, 1fr); gap: 6px 14px; }
	.k3-zeit { font-size: 28px; }
	.k3-titel { font-size: 24px; }
	.k3-art, .k3-preis { grid-column: 2; grid-row: auto; }
	.k3-ende__ics { margin-left: 0; }
}

/* ==================================================================
   04 · EVENT INDEX
   ================================================================== */
.k4-kopf { padding-top: 44px; padding-bottom: 22px; border-bottom: 2px solid var(--sw-ink); }
.k4-h1 { margin-top: 18px; font-family: var(--sw-font-display); font-weight: 400; font-size: 52px; line-height: .95; text-transform: uppercase; }
.k4-raster { display: grid; grid-template-columns: 272px minmax(0, 1fr); gap: 0 44px; margin-top: 28px; align-items: start; }
.k4-filter { padding-right: 6px; }
.k4-filter__klapp > summary { list-style: none; font-family: var(--sw-font-display); font-size: 26px; text-transform: uppercase; padding-bottom: 10px; border-bottom: 3px solid var(--sw-ink); cursor: default; pointer-events: none; }
.k4-filter__klapp > summary::-webkit-details-marker { display: none; }
.k4-g { margin: 0; padding: 14px 0 12px; border: 0; border-bottom: 1px solid color-mix(in srgb, var(--sw-ink) 25%, transparent); }
.k4-g legend { float: left; width: 100%; padding: 0 0 8px; font-family: var(--sw-font-ui); font-weight: 800; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; }
.k4-g ul { clear: both; display: grid; }
.k4-g a { display: flex; align-items: center; gap: 10px; min-height: 36px; padding: 0 8px; margin: 0 -8px; font-family: var(--sw-font-ui); font-weight: 600; font-size: 15px; text-decoration: none; }
.k4-g a:hover { background: var(--sw-accent-soft); }
.k4-g a .kl-n { margin-left: auto; }
.k4-g__radio { flex: none; width: 16px; height: 16px; border: 1.5px solid var(--sw-ink); border-radius: 50%; display: grid; place-items: center; }
.k4-g a[aria-current] { font-weight: 800; }
.k4-g a[aria-current] .k4-g__radio::after { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--sw-ink); }
.k4-datum { margin-top: 2px; clear: both; }
.k4-datum label { flex: 1; }
.k4-datum input { width: 100%; }
.k4-reset { padding: 14px 0 0; }
.k4-reset a { font-family: var(--sw-font-ui); font-weight: 800; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; border-bottom: 3px solid var(--sw-ink); }
.k4-ics { display: inline-block; margin-top: 18px; font-family: var(--sw-font-ui); font-weight: 700; font-size: 14px; }
.k4-aktiv { padding-bottom: 16px; border-bottom: 3px solid var(--sw-ink); }
.k4-tab { width: 100%; border-collapse: collapse; border: 0; margin: 0; font-family: var(--sw-font-ui); font-size: 15px; background: transparent; }
.klab .k4-tab :is(td, th, tr, tbody, thead) { background: transparent; border: 0; }
.klab .k4-tab thead th { position: sticky; top: 60px; z-index: 3; background: var(--sw-paper); padding: 12px 10px 10px; border-bottom: 2px solid var(--sw-ink); text-align: left; font-weight: 800; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--sw-text-2); }
.klab .k4-tagz th { padding: 26px 10px 8px; border-bottom: 1.5px solid var(--sw-ink); text-align: left; font-weight: 700; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; }
.k4-tagz b { padding: 3px 8px 2px; background: var(--sw-signal); color: var(--sw-on-signal); font-weight: 800; }
.klab .k4-z > * { padding: 14px 10px; border-bottom: 1px solid color-mix(in srgb, var(--sw-ink) 20%, transparent); vertical-align: top; text-align: left; }
.klab .k4-z:hover > * { background: color-mix(in srgb, var(--sw-accent) 10%, transparent); }
.k4-d, .k4-t { font-family: var(--sw-font-display); font-size: 22px; line-height: 1; white-space: nowrap; font-variant-numeric: tabular-nums; }
.k4-d small { display: block; margin-top: 4px; font-family: var(--sw-font-ui); font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--sw-text-2); }
.k4-v { width: 34%; font-weight: 400; }
.k4-v a { font-family: var(--sw-font-display); font-size: 21px; line-height: 1.08; text-transform: uppercase; text-decoration: none; }
.k4-v a:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .15em; }
.k4-v small { display: block; margin-top: 6px; font-size: 13px; line-height: 1.4; color: var(--sw-text-2); }
.k4-serie { font-weight: 700; }
.k4-k .kl-kat { margin-bottom: 4px; }
.k4-o { width: 18%; }
.k4-p { width: 16%; font-size: 14px; line-height: 1.4; }
.k4-ohne { color: var(--sw-text-2); font-style: italic; }
.k4-ende { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; margin: 72px 0 24px; padding: 22px 0; border-top: 2px solid var(--sw-ink); font-family: var(--sw-font-ui); font-weight: 700; font-size: 14px; }
.k4-ende a { font-weight: 800; letter-spacing: .06em; text-transform: uppercase; font-size: 13px; }
.k4-ende__ics { margin-left: auto; text-transform: none !important; letter-spacing: 0 !important; font-weight: 700 !important; }

@media (max-width: 1023px) {
	.k4-raster { grid-template-columns: 1fr; }
	.k4-filter { position: static; max-height: none; overflow: visible; margin-bottom: 24px; padding: 0; }
	.k4-filter__klapp > summary { pointer-events: auto; cursor: pointer; display: flex; align-items: center; justify-content: space-between; min-height: 48px; border: 2px solid var(--sw-ink); padding: 0 14px; font-size: 22px; }
	.k4-filter__klapp > summary::after { content: "+"; font-family: var(--sw-font-ui); font-weight: 700; }
	.k4-filter__klapp[open] > summary::after { content: "–"; }
	.k4-filter__klapp[open] { padding: 0 14px 14px; border: 2px solid var(--sw-ink); }
	.k4-filter__klapp[open] > summary { margin: 0 -14px; border-width: 0 0 2px; }
	.k4-tab, .k4-tab tbody, .k4-tab tr, .k4-tab td, .k4-tab th { display: block; width: auto; }
	.k4-tab thead { display: none; }
	.k4-z { display: grid !important; grid-template-columns: 84px minmax(0, 1fr); gap: 2px 14px; padding: 14px 0; border-bottom: 1px solid color-mix(in srgb, var(--sw-ink) 20%, transparent); }
	.klab .k4-z > * { padding: 0; border: 0; }
	.k4-d { grid-row: 1 / span 2; }
	.k4-t { grid-column: 1; grid-row: 3; font-size: 18px; }
	.k4-v, .k4-k, .k4-o, .k4-s, .k4-p { grid-column: 2; width: auto; }
	.k4-o, .k4-s { display: inline !important; font-size: 14px; color: var(--sw-text-2); }
	.k4-p:empty { display: none; }
	.k4-s { margin-top: -2px; }
	.k4-o { margin-top: 4px; }
}

/* ==================================================================
   05 · CULTURE PROGRAM
   ================================================================== */
.k5-kopf { padding-top: 48px; }
.k5-kopf__zeile { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 18px 40px; margin-top: 28px; padding-bottom: 22px; border-bottom: 7px double var(--sw-ink); }
.k5-dach { font-family: var(--sw-font-accent); font-style: italic; font-size: 30px; line-height: 1.1; }
.k5-h1 { margin-top: 4px; font-family: var(--sw-font-display); font-weight: 400; font-size: 60px; line-height: .95; text-transform: uppercase; }
.k5-monat { font-family: var(--sw-font-accent); font-style: italic; font-size: 64px; line-height: 1; color: var(--sw-word); }
.k5-register { display: grid; grid-template-columns: 200px 1.6fr 1fr 230px; gap: 22px 36px; margin-top: 28px; padding: 26px 30px; background: var(--sw-surface); }
.k5-reg__l { margin-bottom: 10px; font-family: var(--sw-font-accent); font-style: italic; font-size: 22px; }
.k5-reg ul { display: grid; gap: 2px; }
.k5-reg:nth-child(2) ul { grid-template-columns: 1fr 1fr; column-gap: 24px; }
.k5-reg a { display: inline-flex; align-items: baseline; gap: 4px; min-height: 30px; padding-top: 4px; font-family: var(--sw-font-ui); font-weight: 600; font-size: 15px; text-decoration: none; border-bottom: 2px solid transparent; }
.k5-reg a:hover { border-bottom-color: var(--sw-accent-soft); }
.k5-reg a[aria-current] { font-weight: 800; border-bottom: 3px solid var(--sw-word); }
.k5-reg sup { font-size: 10px; font-weight: 700; color: var(--sw-text-2); }
.k5-datum { flex-direction: column; align-items: stretch; }
.k5-datum label span { display: none; }
.k5-aktiv { grid-column: 1 / -1; padding-top: 14px; border-top: 1px solid color-mix(in srgb, var(--sw-ink) 25%, transparent); }
.k5-block { margin-top: 64px; }
.k5-tag { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 16px; padding-bottom: 12px; border-bottom: 1.5px solid var(--sw-ink); font-family: var(--sw-font-accent); font-weight: 400; font-size: 44px; line-height: 1.05; }
.k5-tag em { font-style: italic; }
.k5-tag__rel { padding: 4px 10px 3px; background: var(--sw-signal); color: var(--sw-on-signal); font-family: var(--sw-font-ui); font-weight: 800; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; align-self: center; }
.k5-z { display: grid; grid-template-columns: 76px 108px minmax(0, 1fr) 170px 220px; gap: 6px 26px; align-items: start; padding: 22px 0; border-bottom: 1px solid color-mix(in srgb, var(--sw-ink) 25%, transparent); }
.k5-init { font-family: var(--sw-font-display); font-size: 62px; line-height: .8; text-transform: uppercase; color: var(--sw-word); }
.k5-z + .k5-z .k5-init { visibility: hidden; }
.k5-datum { font-family: var(--sw-font-ui); }
.k5-z time { display: grid; gap: 4px; }
.k5-z .k5-datum { font-weight: 800; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--sw-text-2); }
.k5-zeit { font-family: var(--sw-font-display); font-size: 32px; line-height: .95; font-variant-numeric: tabular-nums; }
.k5-zeit--lauf { font-size: 20px; text-transform: uppercase; }
.k5-titel { font-family: var(--sw-font-display); font-weight: 400; font-size: 28px; line-height: 1.04; text-transform: uppercase; overflow-wrap: anywhere; }
.k5-ort { margin-top: 6px; font-family: var(--sw-font-accent); font-style: italic; font-size: 19px; color: var(--sw-text-2); }
.k5-hinweis { margin-top: 6px; font-family: var(--sw-font-ui); font-size: 14px; line-height: 1.45; }
.k5-weitere { margin-top: 8px; font-family: var(--sw-font-ui); font-size: 13px; line-height: 1.45; color: var(--sw-text-2); }
.k5-sparte { padding-top: 6px; font-family: var(--sw-font-ui); font-weight: 800; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.k5-staetten { margin-top: 96px; padding-top: 22px; border-top: 7px double var(--sw-ink); }
.k5-staetten__h { font-family: var(--sw-font-accent); font-weight: 400; font-size: 54px; }
.k5-staetten__h em { font-style: italic; }
.k5-staetten dl { display: grid; grid-template-columns: 1fr 1fr; gap: 0 48px; margin-top: 18px; }
.k5-staetten dl > div { display: grid; grid-template-columns: 1fr 1.3fr; gap: 18px; padding: 16px 0; border-bottom: 1px solid color-mix(in srgb, var(--sw-ink) 25%, transparent); }
.k5-staetten dt { font-family: var(--sw-font-display); font-size: 21px; line-height: 1.1; text-transform: uppercase; }
.k5-staetten dd { font-family: var(--sw-font-ui); font-size: 14px; line-height: 1.6; }
.k5-staetten dd a { font-weight: 700; }
.k5-ende { margin: 96px 0 24px; text-align: center; }
.k5-ende__h { font-family: var(--sw-font-accent); font-weight: 400; font-size: 56px; }
.k5-ende__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 26px; margin: 18px 0; font-family: var(--sw-font-ui); font-weight: 800; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; }
.k5-ende__links a { text-decoration: none; border-bottom: 3px solid var(--sw-word); padding-bottom: 2px; }
.k5-ende__ics { font-family: var(--sw-font-accent); font-style: italic; font-size: 18px; }

@media (max-width: 1023px) {
	.k5-register { grid-template-columns: 1fr 1fr; }
	.k5-z { grid-template-columns: 60px 96px minmax(0, 1fr) 180px; }
	.k5-sparte { grid-column: 3; grid-row: 2; }
	.k5-preis { grid-column: 4; grid-row: 1 / span 2; }
	.k5-staetten dl { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
	.k5-h1 { font-size: 38px; }
	.k5-monat { font-size: 36px; }
	.k5-register { grid-template-columns: 1fr; padding: 20px 18px; }
	.k5-reg:nth-child(2) ul { grid-template-columns: 1fr 1fr; }
	.k5-tag { font-size: 30px; }
	.k5-z { grid-template-columns: 70px minmax(0, 1fr); gap: 6px 14px; }
	.k5-init { display: none; }
	.k5-sparte, .k5-preis { grid-column: 2; grid-row: auto; }
	.k5-titel { font-size: 23px; }
	.k5-staetten dl > div { grid-template-columns: 1fr; gap: 6px; }
	.k5-ende__h { font-size: 38px; }
}

/* ==================================================================
   06 · LINIENPLAN (WILDCARD)
   ================================================================== */
.k6-kopf { padding-top: 48px; }
.k6-kopf__zeile { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 18px 32px; margin-top: 22px; padding-bottom: 26px; }
.k6-h1 { font-family: var(--sw-font-display); font-weight: 400; font-size: 64px; line-height: .92; text-transform: uppercase; }
.k6-ics { font-family: var(--sw-font-ui); font-weight: 800; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; border-bottom: 3px solid var(--sw-ink); padding-bottom: 2px; }
.k6-tafel { background: var(--sw-ink); color: var(--sw-paper); padding: 26px 0 30px; }
.k6-tafel__kopf { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding-bottom: 14px; border-bottom: 1px solid color-mix(in srgb, var(--sw-paper) 25%, transparent); font-family: var(--sw-font-ui); }
.k6-tafel__kopf h2 { color: var(--sw-signal); font-weight: 800; font-size: 14px; letter-spacing: .22em; text-transform: uppercase; }
[data-theme="gold"] .k6-tafel__kopf h2, [data-theme="gold"] .k6-tafel__rel { color: #F5C83C; }
.k6-tafel__kopf p { font-weight: 600; font-size: 14px; font-variant-numeric: tabular-nums; color: var(--sw-text-inv-2, #B3A99D); }
.k6-tafel__liste li { display: grid; grid-template-columns: 170px 100px 44px minmax(0, 1fr) 320px; align-items: center; gap: 18px; padding: 14px 0; border-bottom: 1px solid color-mix(in srgb, var(--sw-paper) 14%, transparent); font-family: var(--sw-font-display); font-size: 30px; line-height: 1.05; text-transform: uppercase; }
.k6-tafel__rel { color: var(--sw-signal); }
.k6-tafel__zeit { font-variant-numeric: tabular-nums; }
.k6-tafel__liste a { color: var(--sw-paper) !important; text-decoration: none; }
.k6-tafel__liste a:hover { text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: .12em; }
.k6-tafel__ort { font-family: var(--sw-font-ui); font-weight: 600; font-size: 15px; text-transform: none; color: var(--sw-text-inv-2, #B3A99D); }
.k6-tafel__leer { padding-top: 18px; font-family: var(--sw-font-accent); font-style: italic; font-size: 22px; }
.k6-lk { display: inline-grid; place-items: center; flex: none; width: 30px; height: 30px; background: var(--kc); color: var(--kc-on); font-family: var(--sw-font-display); font-size: 18px; line-height: 1; text-transform: uppercase; box-shadow: 0 0 0 1.5px var(--sw-paper); }
.k6-lk--alle { --kc: var(--sw-paper); --kc-on: var(--sw-ink); box-shadow: inset 0 0 0 1.5px var(--sw-ink); }
.k6-filter { display: grid; gap: 0; margin-top: 8px; }
.k6-f { display: grid; grid-template-columns: 190px minmax(0, 1fr) auto; align-items: center; gap: 10px 22px; padding: 14px 0; border-bottom: 1px solid color-mix(in srgb, var(--sw-ink) 25%, transparent); }
.k6-f__l { font-family: var(--sw-font-ui); font-weight: 800; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; }
.k6-f > ul:last-child { grid-column: 2 / -1; }
.k6-richtung { display: flex; flex-wrap: wrap; align-items: center; }
.k6-richtung li:not(:last-child)::after { content: "→"; margin: 0 8px; font-family: var(--sw-font-display); color: var(--sw-text-2); }
.k6-richtung a, .k6-zonen a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 12px; border: 1.5px solid var(--sw-ink); font-family: var(--sw-font-ui); font-weight: 800; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; }
.k6-linien { display: flex; flex-wrap: wrap; gap: 8px; }
.k6-linien a { display: inline-flex; align-items: center; gap: 9px; min-height: 40px; padding: 0 12px 0 5px; border: 1.5px solid var(--sw-ink); font-family: var(--sw-font-ui); font-weight: 800; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; }
.k6-zonen { display: flex; flex-wrap: wrap; gap: 8px; }
.k6-zonen a { border-style: dashed; }
:is(.k6-richtung, .k6-linien, .k6-zonen) a:hover { background: var(--sw-accent-soft); }
:is(.k6-richtung, .k6-linien, .k6-zonen) a[aria-current] { background: var(--sw-ink); color: var(--sw-paper); border-style: solid; }
.k6-aktiv { padding-top: 16px; }
.k6-plan { position: relative; margin-top: 36px; padding-left: 76px; }
.k6-plan::before { content: ""; position: absolute; left: 25px; top: 18px; bottom: 18px; width: 8px; background: var(--sw-ink); }
.k6-station { margin-top: 36px; }
.k6-station__kopf { position: relative; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 18px; padding-bottom: 10px; }
.k6-station__punkt { position: absolute; left: -66px; top: 4px; width: 30px; height: 30px; border-radius: 50%; border: 7px solid var(--sw-ink); background: var(--sw-paper); }
.k6-station:first-child .k6-station__punkt, .k6-station__kopf:hover .k6-station__punkt { background: var(--sw-accent); }
.k6-station__rel { font-family: var(--sw-font-display); font-size: 44px; line-height: 1; text-transform: uppercase; }
.k6-station__name { font-family: var(--sw-font-ui); font-weight: 700; font-size: 17px; color: var(--sw-text-2); }
.k6-liste { border-top: 2px solid var(--sw-ink); }
.k6-z { position: relative; display: grid; grid-template-columns: 112px minmax(0, 1fr) 240px; gap: 6px 28px; align-items: start; padding: 20px 0; border-bottom: 1px solid color-mix(in srgb, var(--sw-ink) 25%, transparent); }
.k6-z.is-lauf::before { content: ""; position: absolute; left: -51px; top: 0; bottom: 0; width: 8px; background: repeating-linear-gradient(to bottom, var(--sw-word) 0 10px, transparent 10px 16px); }
.k6-zeit { display: grid; font-family: var(--sw-font-display); font-size: 36px; line-height: .95; font-variant-numeric: tabular-nums; }
.k6-zeit--lauf { font-size: 20px; text-transform: uppercase; }
.k6-zeit small { margin-top: 6px; font-family: var(--sw-font-ui); font-weight: 700; font-size: 13px; text-transform: none; }
.k6-kat { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 8px; font-family: var(--sw-font-ui); font-weight: 800; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.k6-kat .k6-lk { width: 24px; height: 24px; font-size: 15px; }
.k6-titel { font-family: var(--sw-font-display); font-weight: 400; font-size: 30px; line-height: 1.04; text-transform: uppercase; overflow-wrap: anywhere; }
.k6-ort { margin-top: 8px; font-family: var(--sw-font-ui); font-size: 16px; color: var(--sw-text-2); }
.k6-hinweis { margin-top: 6px; font-family: var(--sw-font-accent); font-style: italic; font-size: 17px; color: var(--sw-text-2); }
.k6-endstation { position: relative; margin-top: 36px; font-family: var(--sw-font-ui); font-weight: 800; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--sw-text-2); }
.k6-endstation .k6-station__punkt { top: -8px; background: var(--sw-ink); }
.k6-ende { margin-top: 88px; padding: 56px 0; background: var(--sw-accent); color: var(--sw-on-accent); border-top: 3px solid var(--sw-ink); }
.k6-ende__h { font-family: var(--sw-font-display); font-size: 72px; line-height: .9; text-transform: uppercase; }
.k6-ende__links { display: flex; flex-wrap: wrap; gap: 10px; margin: 24px 0 20px; }
.k6-ende__links a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; background: var(--sw-ink); color: var(--sw-paper) !important; font-family: var(--sw-font-display); font-size: 22px; text-transform: uppercase; text-decoration: none; transition: transform .15s; }
.k6-ende__links a:hover { transform: translate(-2px, -2px); box-shadow: 3px 3px 0 var(--sw-paper); }
.k6-ende__ics { font-family: var(--sw-font-ui); font-weight: 800; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; border-bottom: 3px solid currentColor; }
.klab--06 { padding-bottom: 0; }
.klab--06 .k6-ende { padding-bottom: 120px; }

@media (max-width: 1023px) {
	.k6-tafel__liste li { grid-template-columns: 130px 80px 40px minmax(0, 1fr); font-size: 24px; }
	.k6-tafel__ort { display: none; }
	.k6-z { grid-template-columns: 96px minmax(0, 1fr) 200px; }
}
@media (max-width: 767px) {
	.k6-h1 { font-size: 40px; }
	.k6-tafel__liste li { grid-template-columns: 74px 30px minmax(0, 1fr); gap: 4px 10px; font-size: 18px; }
	.k6-tafel__rel { grid-column: 1 / -1; font-size: 13px; font-family: var(--sw-font-ui); font-weight: 800; letter-spacing: .1em; }
	.k6-f { grid-template-columns: 1fr; gap: 8px; }
	.k6-f > ul:last-child { grid-column: 1; }
	:is(.k6-richtung, .k6-linien, .k6-zonen) { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-right: calc(-1 * var(--sw-gutter)); }
	:is(.k6-richtung, .k6-linien, .k6-zonen) li { flex: none; }
	.k6-plan { padding-left: 40px; }
	.k6-plan::before { left: 9px; width: 6px; }
	.k6-station__punkt { left: -40px; width: 24px; height: 24px; border-width: 6px; }
	.k6-station__rel { font-size: 30px; }
	.k6-z { grid-template-columns: 70px minmax(0, 1fr); gap: 6px 14px; }
	.k6-z.is-lauf::before { left: -31px; width: 6px; }
	.k6-zeit { font-size: 26px; }
	.k6-titel { font-size: 24px; }
	.k6-preis { grid-column: 2; }
	.k6-ende__h { font-size: 44px; }
}

/* ==================================================================
   07 · AUSWAHL: 01 Agenda + Kopf/Filter aus 03 + Farbpunkte + Etikett „Eintritt frei“ aus 02
   ================================================================== */
.klab--07 .k3-tage { margin-top: 0; }
/* Kopfbereich (Brotkrumen bis Trefferzeile) in hellem Gelb, randlos über die volle Breite (Stefan 09.10.2026).
   Fester Ton wie „Zahlen & Fakten“ (Über uns) und die Anliegen-Kästen (Kontakt), unabhängig von der Farbwelt.
   Kein Wrapper (die Tagesleiste bleibt über die ganze Agenda sticky); volle Breite über box-shadow + clip-path – kein Überlauf.
   Die Werkzeugzeile färbt ein Pseudo-Element, damit der aufklappende Datumswähler nicht beschnitten wird. */
.klab--07 { --k7-flaeche: color-mix(in srgb, var(--sw-accent) 17%, #F3EFE8); --k7-schrift: var(--sw-ink); } /* heller Ton der Farbwelt (17 % Akzent auf Papier, zuerst 22 %, dann 5 % heller), Schrift Tinte (Stefan 09.10.2026) */
[data-theme="papier"] .klab--07 { --k7-flaeche: color-mix(in srgb, #E9E3D8 95%, #FFFFFF); } /* Papier: Akzent = Papier, daher Papier-2 als Fläche */
.klab--07 :is(.k3-kopf, .k3-werkzeug, .k3-tage, .k3-aktiv) { --sw-text-2: #4A433C; } /* Zweitfarbe im getönten Kopf etwas dunkler – ≥ 4,5 : 1 in allen Farbwelten (Pink sonst 4,28) */
/* Tagesleiste: je Termin ein Quadrat in der Kategoriefarbe (ohne Kategorie Tinte); gewählter Tag und Hover behalten ihre Regeln */
.klab--07 .k3-tage__n i { width: 8px; height: 8px; background: var(--kc, var(--sw-ink)); box-shadow: inset 0 0 0 1px var(--sw-ink); } /* 1-px-Tintenkante: jede Kategoriefarbe bleibt auf jeder getönten Fläche sichtbar (Gelb, Blau, Orange sonst < 3 : 1) */
.klab--07 :is(.k3-kopf, .k3-tage, .k3-aktiv) { background: var(--k7-flaeche); color: var(--k7-schrift); box-shadow: 0 0 0 100vmax var(--k7-flaeche); clip-path: inset(0 -100vmax); }
.klab--07 .k3-werkzeug { color: var(--k7-schrift); }
.klab--07 .k3-kopf { padding-bottom: 28px; clip-path: inset(0 -100vmax -2px); } /* deckt die 2-px-Linie der Werkzeugzeile außerhalb der Inhaltsbreite */
.klab--07 .k3-werkzeug { position: relative; z-index: 7; margin-top: 0; }
.klab--07 .k3-werkzeug::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--k7-flaeche); box-shadow: 0 0 0 100vmax var(--k7-flaeche); clip-path: inset(0 -100vmax); }
.klab--07 .k3-aktiv { padding-top: 39px; padding-bottom: 32px; } /* gleich viel Luft über und unter der Trefferzeile (Stefan 09.10.2026) */
/* Farbwelt Pink: Hover-Flächen in --sw-accent-soft mit weißer Schrift statt Tinte (3,81 → ≈ 4,9 : 1; Stefan 09.10.2026) */
:is(html:not([data-theme]), [data-theme="pink"]) .klab :is(.k3-wann a:hover, .k3-tage a:hover:not([aria-current]):not(.is-sicht), .kl-dp__feld:hover, .kl-dp__feld[aria-expanded="true"], .kl-dp__tag:hover:not(:disabled), .kl-dp__nav:hover:not(:disabled), .kl-form select:hover:not(:focus-visible), .kl-auswahl select:hover:not(:focus-visible)),
:is(html:not([data-theme]), [data-theme="pink"]) .klab :is(.k3-wann a:hover, .k3-tage a:hover:not([aria-current]):not(.is-sicht), .kl-dp__feld:hover, .kl-dp__feld[aria-expanded="true"], .kl-dp__tag:hover:not(:disabled), .kl-dp__nav:hover:not(:disabled)) * { color: #FFFFFF; }
.klab--07 .k3-werkzeug { align-items: end; }
.k3-werkzeug .kl-form { column-gap: 22px; } /* gleicher Abstand wie zwischen den Feldern der Werkzeugzeile (Stefan 09.10.2026) */
.k7-ics { margin: 0 0 12px auto; font-family: var(--sw-font-ui); font-weight: 800; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; border-bottom: 3px solid var(--sw-ink); padding-bottom: 2px; }
.k7-ics:hover { border-bottom-color: var(--sw-word); }
/* Tooltip „Kalender abonnieren“ (Stefan 09.10.2026): bei Hover und Tastaturfokus, Text per aria-describedby auch für Screenreader */
.k7-abo { position: relative; display: inline-flex; margin: 0 0 12px auto; }
.k7-abo .k7-ics { margin: 0; }
.k7-abo--unten { margin: 0; } /* unten im Abschluss „Weiter im Kalender“, Tooltip öffnet nach oben */
.k7-abo--unten .k7-abo__tipp { top: auto; bottom: calc(100% + 12px); }
.k7-abo--unten .k7-abo__tipp::before { top: auto; bottom: -7px; }
/* Textlinks im Kalenderkopf (Stefan 12.10.2026): „Kalender – abonnieren“ und „Eigenes Event – eintragen“ – Icon + Newsreader kursiv wie „Alle Termine im eigenen Kalender – abonnieren (ICS)“ */
.k7-link { display: inline-flex; align-items: baseline; gap: 8px; color: inherit; text-decoration: none; }
.k7-link span { font-family: var(--sw-font-accent); font-style: italic; font-size: 18px; border-bottom: 1.5px solid var(--sw-ink); }
.k7-link:hover span, .k7-link:focus-visible span { border-bottom-color: var(--sw-word); }
.k7-link__icon { flex: none; width: 18px; height: 18px; align-self: center; position: relative; top: -3px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: square; } /* 3 px höher (Stefan 12.10.2026) */
.k7-eintragen { margin: 0 0 0 auto; align-self: baseline; } /* rechts in der Trefferzeile, erste Fassung (Stefan 12.10.2026) */
.k7-abo__tipp { position: absolute; z-index: 30; right: 0; top: calc(100% + 12px); width: min(340px, 86vw); padding: 12px 14px; background: var(--sw-ink); color: var(--sw-paper); font-family: var(--sw-font-ui); font-weight: 500; font-size: 14px; line-height: 1.45; letter-spacing: 0; text-transform: none; box-shadow: 4px 4px 0 var(--sw-accent); opacity: 0; visibility: hidden; transform: translateY(-4px); transition: opacity .15s, transform .15s, visibility 0s .15s; pointer-events: none; }
.k7-abo__tipp b { font-weight: 800; }
.k7-abo__tipp::before { content: ""; position: absolute; right: 24px; top: -7px; width: 12px; height: 12px; background: var(--sw-ink); transform: rotate(45deg); }
.k7-abo:is(:hover, :focus-within) .k7-abo__tipp { opacity: 1; visibility: visible; transform: none; transition: opacity .15s, transform .15s; }
[data-theme="papier"] .k7-abo__tipp { box-shadow: 4px 4px 0 var(--sw-signal); }
@media (prefers-reduced-motion: reduce) { .k7-abo__tipp { transition: none; transform: none; } }
.klab--07 .k1-block { scroll-margin-top: 170px; }
.klab--07 .k1-tag { top: 160px; }
.klab--07 .k1-ort { margin-top: 10px; } /* Ort 2 px tiefer unter dem Titel (Stefan 09.10.2026) */
.k7-kat { display: grid; gap: 8px; }
.k7-kat li { display: flex; align-items: center; gap: 8px; font-family: var(--sw-font-ui); font-weight: 800; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; line-height: 1.2; }
.k7-kat .k2-punkt { flex: none; position: relative; top: -.4px; } /* Mitte = Mitte der Versalhöhe (gemessen, Stefan 09.10.2026) */
.k7-kat li.k7-kat__auch { display: block; font: italic 400 13px/1.3 var(--sw-font-accent); letter-spacing: 0; text-transform: none; color: var(--sw-text-2); } /* Zusatzkategorien (Stefan 11.10.2026) */
.kl-alias { flex-basis: 100%; margin: 4px 0 0; font: 500 14px/1.6 var(--sw-font-ui); }
.kl-alias__chip { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; margin: 4px 6px 0 0; padding: 4px 10px; border: 1.5px solid var(--sw-ink); background: var(--sw-surface); color: var(--sw-ink); font-weight: 700; text-decoration: none; }
.kl-alias__chip:hover, .kl-alias__chip:focus-visible { background: var(--sw-ink); color: var(--sw-paper); }
.kl-alias__n { font-weight: 800; color: inherit; opacity: .75; }
.k7-preis { padding-top: 4px; }
.k7-frei { margin-left: 10px; vertical-align: .3em; text-transform: uppercase; white-space: nowrap; } /* wie in 02: schräges Etikett direkt hinter dem Titel */
.k7-frei { position: relative; top: 2px; transform: rotate(-5deg); } /* Stefan 09.10.2026: −8° → −3° → −5°; 2 px tiefer */
@media (min-width: 768px) { .k7-frei { position: relative; left: 15px; top: -8px; } } /* Stefan 09.10.2026: neben dem Titel 15 px nach rechts, 10 px nach oben, danach 2 px tiefer */
@media (min-width: 1024px) { /* Spalten getauscht (Stefan 09.10.2026): Eintritt vor Kategorie */
	.klab--07 .k7-z { grid-template-columns: 112px minmax(0, 1fr) 220px 170px; }
	.klab--07 .k7-z > :is(.k1-preis, .k7-preis) { grid-column: 3; grid-row: 1; }
	.klab--07 .k7-z > .k1-art { grid-column: 4; grid-row: 1; padding-top: 8.2px; } /* erste Kategorie auf der Mittelachse der Titel-Versalien (gemessen +4,2 px, Stefan 09.10.2026) */
}

@media (max-width: 767px) {
	.k7-ics { margin: 0; white-space: nowrap; }
	.k7-eintragen { margin: 2px 0 0; } /* mobil linksbündig in eigener Zeile (Umbruch der Trefferzeile) */
	.k7-abo { margin: 0; } .k7-abo__tipp { right: auto; left: 0; } .k7-abo__tipp::before { right: auto; left: 24px; }
	.klab--07 .k1-tag__nr--wort { font-size: 34px; }
	.klab--07 .k1-tag { position: static; }
	.k7-kat { display: flex; flex-wrap: wrap; gap: 6px 14px; }
}

/* ==================================================================
   SUBWAY-Datumswähler (Stefan 09.10.2026) – ersetzt das native Kalender-Popup, nur mit JavaScript
   ================================================================== */
/* Grund-Theme neutralisieren (Knopf-Innenabstand, Rundung, Tabellenlinien) – sonst sitzen Ziffern und Pfeile schief */
.klab .kl-dp :is(button) { margin: 0; padding: 0; border-radius: 0; font-stretch: normal; line-height: 1; text-shadow: none; }
.klab .kl-dp .kl-dp__feld { padding: 0 12px 0 14px; }
.klab .kl-dp .kl-dp__tag { padding-top: 1.5px; }
.klab .kl-dp :is(.kl-dp__tag:not(.is-wahl), .kl-dp__nav, .kl-dp__feld):is(:hover, :focus, :active) { color: var(--sw-ink); } /* Theme-Hoverfarbe (Weiß) übersteuern: Ziffern bleiben lesbar */ /* Anton-Ziffern optisch exakt mittig (gemessen −0,75 px) */
.klab .kl-dp .kl-dp__fuss button:not([data-x="weg"]) { padding: 0 12px; }
.klab .kl-dp .kl-dp__fuss button[data-x="weg"] { padding: 0 2px; }
.klab .kl-dp__tab, .klab .kl-dp__tab :is(thead, tbody, tr, th, td) { border: 0 !important; background: transparent; }
.kl-dp__nativ { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; border: 0 !important; opacity: 0; pointer-events: none; }
.kl-form label:has(.kl-dp) { position: relative; }
.kl-dp { position: relative; }
.kl-dp__feld { display: inline-flex; align-items: center; justify-content: space-between; gap: 14px; min-width: 190px; height: 44px; padding: 0 12px 0 14px; border: 1.5px solid var(--sw-ink); background: var(--sw-paper); color: var(--sw-ink); font-family: var(--sw-font-ui); font-weight: 600; font-size: 15px; cursor: pointer; transition: background-color .15s; }
.kl-dp__feld:hover, .kl-dp__feld[aria-expanded="true"] { background: var(--sw-accent-soft); }
[data-theme="papier"] .kl-dp__feld:hover, [data-theme="papier"] .kl-dp__feld[aria-expanded="true"] { background: var(--sw-surface); }
.kl-dp__feld svg { width: 20px; height: 20px; flex: none; }
.kl-dp__wert.is-leer { color: var(--sw-text-2); }
.klab .kl-dp__feld:is(:hover, [aria-expanded="true"]) .kl-dp__wert.is-leer { color: var(--sw-ink); }
.klab .k3-tage a:hover:not([aria-current]):not(.is-sicht) * { color: var(--sw-ink); } /* Wochentag beim Überfahren in Tinte statt Grau (Orange sonst < 4,5 : 1); Pink: Weiß-Regel bleibt stärker */ /* auf der Hover-Fläche Tinte statt Grau (Orange/Rot sonst < 4,5 : 1); Pink: Weiß-Regel bleibt stärker */
.kl-dp__pop { position: absolute; z-index: 40; top: calc(100% + 8px); left: 0; width: 336px; padding: 16px 16px 14px; background: var(--sw-paper); color: var(--sw-ink); border: 2px solid var(--sw-ink); box-shadow: 6px 6px 0 var(--sw-ink); }
.kl-dp__pop[hidden] { display: none; }
.kl-dp__kopf { display: grid; grid-template-columns: 40px 1fr 40px; align-items: center; gap: 8px; padding-bottom: 12px; margin-bottom: 8px; border-bottom: 2px solid var(--sw-ink); }
.kl-dp__monat { text-align: center; font-family: var(--sw-font-display); font-size: 28px; line-height: 1; text-transform: uppercase; }
.klab .kl-dp .kl-dp__monat span { font-family: var(--sw-font-accent); font-style: italic; font-weight: 400; font-size: 22px; letter-spacing: 0; text-transform: none; color: var(--sw-text-2); } /* Jahr wie „Ausstellungen und Zeiträume …“ (Newsreader kursiv), Stefan 09.10.2026 */
.kl-dp__nav { display: grid; place-items: center; width: 40px; height: 40px; border: 1.5px solid var(--sw-ink); background: var(--sw-paper); color: var(--sw-ink); cursor: pointer; transition: background-color .15s, transform .15s, box-shadow .15s; }
.kl-dp__nav svg { width: 20px; height: 20px; }
.kl-dp__nav:hover:not(:disabled) { background: var(--sw-accent-soft); transform: translate(-2px, -2px); box-shadow: 2px 2px 0 var(--sw-ink); }
.kl-dp__nav:disabled { opacity: .3; cursor: default; }
.kl-dp__tab { width: 100%; border-collapse: separate; border-spacing: 2px; table-layout: fixed; }
.klab .kl-dp__tab :is(th, td) { padding: 0; border: 0; background: transparent; text-align: center; }
.kl-dp__tab th { padding: 4px 0 6px; font-family: var(--sw-font-ui); font-weight: 800; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--sw-text-2); }
.kl-dp__tab th:nth-child(n+6) { color: var(--sw-ink); }
.kl-dp__tag { position: relative; display: grid; place-items: center; width: 100%; aspect-ratio: 1 / 1.16; border: 1.5px solid transparent; background: transparent; color: var(--sw-ink); font-family: var(--sw-font-display); font-size: 19px; line-height: 1; cursor: pointer; transition: background-color .12s, border-color .12s; }
.kl-dp__tag:hover:not(:disabled) { border-color: var(--sw-ink); background: var(--sw-accent-soft); }
.kl-dp__tag:disabled { color: color-mix(in srgb, var(--sw-ink) 28%, transparent); cursor: default; }
.kl-dp__tag.is-heute::after { content: ""; position: absolute; left: 22%; right: 22%; top: 5px; height: 3px; background: var(--sw-word); }
.kl-dp__tag.is-wahl { background: var(--sw-accent); color: var(--sw-on-accent); border-color: var(--sw-accent); }
[data-theme="papier"] .kl-dp__tag.is-wahl { background: var(--sw-ink); color: var(--sw-paper); border-color: var(--sw-ink); }
.kl-dp__pkt { position: absolute; left: 0; right: 0; bottom: 4px; display: flex; justify-content: center; gap: 2px; } /* tiefer, mehr Luft zur Ziffer */
.kl-dp__pkt i, .kl-dp__legende i { width: 4px; height: 4px; background: var(--sw-word); }
.kl-dp__tag.is-wahl .kl-dp__pkt i { background: var(--sw-on-accent); }
.kl-dp__tag:hover:not(:disabled):not(.is-wahl) .kl-dp__pkt i, .k3-tage a:hover:not([aria-current]):not(.is-sicht) .k3-tage__n i { background: var(--sw-ink); } /* Punkte beim Überfahren in Tinte – sonst verschwinden sie auf der hellen Akzentfläche (Stefan 09.10.2026) */
[data-theme="papier"] .kl-dp__tag.is-wahl .kl-dp__pkt i { background: var(--sw-signal); }
.kl-dp__tag:focus-visible { outline: 3px solid var(--sw-focus, var(--sw-accent)); outline-offset: 1px; z-index: 1; }
.kl-dp__fuss { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px; padding-top: 12px; border-top: 1.5px solid var(--sw-ink); }
.kl-dp__fuss button { display: inline-flex; align-items: center; min-height: 34px; padding: 0 12px; border: 1.5px solid var(--sw-ink); background: var(--sw-paper); color: var(--sw-ink); font-family: var(--sw-font-ui); font-weight: 800; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; transition: transform .15s, box-shadow .15s, background-color .15s, color .15s; }
.kl-dp__fuss button:hover { background: var(--sw-accent); color: var(--sw-on-accent); transform: translate(-2px, -2px); box-shadow: 2px 2px 0 var(--sw-ink); }
[data-theme="papier"] .kl-dp__fuss button:hover { background: var(--sw-ink); color: var(--sw-paper); }
.kl-dp__fuss button:active { transform: none; box-shadow: none; }
.kl-dp__fuss button[data-x="weg"] { margin-left: auto; padding: 0 2px; border-color: transparent; background: none; color: var(--sw-text-2); letter-spacing: .1em; }
.kl-dp__fuss button[data-x="weg"]::before { content: "×"; margin-right: 6px; font-size: 16px; line-height: 1; }
.kl-dp__fuss button[data-x="weg"]:hover { background: none; color: var(--sw-ink); transform: none; box-shadow: inset 0 -2px 0 var(--sw-word); }
.kl-dp__fuss button[hidden] { display: none; }
.kl-dp__legende { display: flex; align-items: center; gap: 6px; margin-top: 10px !important; font-family: var(--sw-font-ui); font-size: 12px; color: var(--sw-text-2); }
@media (max-width: 767px) {
	.kl-dp__feld { min-width: 0; width: 100%; }
	.kl-dp__pop { position: fixed; left: 12px; right: 12px; top: auto; bottom: 12px; width: auto; max-width: 420px; margin-inline: auto; }
}

/* ==================================================================
   Veranstaltungs-Detailseite – angeglichen an den Kalender V2 (Stefan 09.10.2026)
   ================================================================== */
.sw-event .kl-bc--event { margin-bottom: 18px; }
.sw-event .kl-bc--event a { color: inherit; }
.sw-event .kl-labels { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; }
.sw-event .kl-kat-link { display: inline-flex; align-items: center; gap: 8px; }
.sw-event .kl-kat-link .k2-punkt { flex: none; position: relative; top: -1px; width: 12px; height: 12px; border-radius: 0; background: var(--kc); } /* Mitte = Versalmitte (gemessen +1 px) */
.sw-event .kl-frei-detail { margin: 0; vertical-align: 0; text-transform: uppercase; white-space: nowrap; transform: rotate(-5deg); } /* wie im Kalender (Stefan 09.10.2026: −5°) */

@media (prefers-reduced-motion: reduce) {
	.klab *, .klab *::before, .klab *::after { transition: none !important; }
	.klab a:hover, .klab .k2-z:hover .k2-pfeil { transform: none !important; }
}

/* ==================================================================
   Einstieg Veranstalterportal „Mach dein Event sichtbar.“ (Stefan 10.10.2026)
   nach der Terminliste, vor „Weiter im Kalender“; Desktop nebeneinander, mobil gestapelt
   ================================================================== */
.klab--07 .k7-cta { display: grid; grid-template-columns: repeat(var(--sw-cols), minmax(0, 1fr)); gap: 24px var(--sw-gap); align-items: start; margin: 80px 0 0; padding-top: 56px; border-top: 2px solid var(--sw-ink); }
.klab--07 .k7-cta__h { grid-column: 3 / 7; } /* im Seitenraster mittig (Stefan 10.10.2026): Headline Spalten 3–6, Text + Knopf 7–10; Headline-Oberkante auf Höhe der ersten Textzeile */
.klab--07 .k7-cta__rechts { grid-column: 7 / 11; }
.klab--07 .k7-cta__h { margin: 0; font-family: var(--sw-font-display); font-weight: 400; font-size: clamp(40px, 4.2vw, 68px); line-height: .95; letter-spacing: .005em; text-transform: uppercase; color: var(--sw-ink); }
.klab--07 .k7-cta__z { display: block; }
.klab--07 .k7-cta__hl { display: inline-block; margin-top: .08em; padding: .02em .14em 0; background: var(--sw-accent); color: var(--sw-on-accent); transform: rotate(-2deg); transform-origin: 0 0; } /* Drehpunkt oben links: Etikett bleibt innerhalb der Inhaltskante */
[data-theme="papier"] .klab--07 .k7-cta__hl { background: var(--sw-ink); color: var(--sw-paper); } /* Papier: Akzent = Papier, daher Tinte */
.klab--07 .k7-cta__rechts { display: grid; gap: 22px; justify-items: start; }
.klab--07 .k7-cta__text { margin: 0; max-width: 34em; font-family: var(--sw-font-accent); font-style: italic; font-size: 20px; line-height: 1.4; color: var(--sw-ink); }
.klab--07 .k7-cta__aktion { margin: 0; }
.klab--07 .k7-cta__btn { display: inline-flex; align-items: center; gap: 14px; min-height: 52px; padding: 13px 26px; border: 2px solid var(--sw-ink); background: var(--sw-ink); color: var(--sw-paper); font-family: var(--sw-font-display); font-size: 20px; line-height: 1; letter-spacing: .03em; text-transform: uppercase; text-decoration: none; transition: background-color .15s ease, color .15s ease, box-shadow .15s ease, transform .15s ease; }
.klab--07 .k7-cta__pfeil { flex: none; width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: square; stroke-linejoin: miter; transition: transform .15s ease; } /* Pfeil wie „Nach oben“, nach rechts (Stefan 10.10.2026) */
.klab--07 .k7-cta__btn:hover .k7-cta__pfeil { transform: translateX(3px); }
.klab--07 .k7-cta__btn:hover { background: var(--sw-accent); color: var(--sw-on-accent); box-shadow: 4px 4px 0 var(--sw-ink); transform: translate(-2px, -2px); }
[data-theme="papier"] .klab--07 .k7-cta__btn:hover { background: var(--sw-paper); color: var(--sw-ink); }
.klab--07 .k7-cta__btn:focus-visible { outline: 3px solid var(--sw-ink); outline-offset: 4px; box-shadow: 0 0 0 2px var(--sw-paper); }
.klab--07 .k7-cta + .k1-ende { margin-top: 56px; } /* gleicher Abstand oben/unten: Inhalt mittig zwischen den Linien (Stefan 10.10.2026) */
@media (min-width: 1024px) {
	.klab--07 .k7-cta__h { margin-top: calc(11.5px - .057em); } /* Versal-Oberkante der Headline 5 px unter der Oberkante der ersten Textzeile (gemessen, Stefan 10.10.2026: „5 px runter“) */
}
@media (min-width: 1024px) and (max-width: 1199px) {
	.klab--07 .k7-cta__h { grid-column: 2 / 5; } /* 8er-Raster: ebenfalls mittig */
	.klab--07 .k7-cta__rechts { grid-column: 5 / 8; }
}
@media (max-width: 1023px) {
	.klab--07 .k7-cta { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	.klab--07 .k7-cta__h, .klab--07 .k7-cta__rechts { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
	.klab--07 .k7-cta { margin-top: 56px; padding-top: 40px; }
	.klab--07 .k7-cta__text { font-size: 18px; }
	.klab--07 .k7-cta__aktion, .klab--07 .k7-cta__btn { width: 100%; }
	.klab--07 .k7-cta__btn { justify-content: center; }
	.klab--07 .k7-cta + .k1-ende { margin-top: 40px; }
}
@media (prefers-reduced-motion: reduce) {
	.klab--07 .k7-cta__btn:hover, .klab--07 .k7-cta__btn:hover .k7-cta__pfeil { transform: none; }
}
