/* barlow-latin-ext-400-normal */
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(fonts/barlow-latin-ext-400-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* barlow-latin-400-normal */
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(fonts/barlow-latin-400-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* barlow-latin-ext-500-normal */
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(fonts/barlow-latin-ext-500-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* barlow-latin-500-normal */
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(fonts/barlow-latin-500-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* barlow-latin-ext-600-normal */
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(fonts/barlow-latin-ext-600-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* barlow-latin-600-normal */
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(fonts/barlow-latin-600-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* barlow-latin-ext-700-normal */
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(fonts/barlow-latin-ext-700-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* barlow-latin-700-normal */
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(fonts/barlow-latin-700-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* barlow-latin-ext-800-normal */
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-display: swap;
  font-weight: 800;
  src: url(fonts/barlow-latin-ext-800-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* barlow-latin-800-normal */
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-display: swap;
  font-weight: 800;
  src: url(fonts/barlow-latin-800-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* barlow-condensed-latin-ext-600-normal */
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(fonts/barlow-condensed-latin-ext-600-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* barlow-condensed-latin-600-normal */
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(fonts/barlow-condensed-latin-600-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* barlow-condensed-latin-ext-700-normal */
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(fonts/barlow-condensed-latin-ext-700-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* barlow-condensed-latin-700-normal */
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(fonts/barlow-condensed-latin-700-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* barlow-condensed-latin-ext-800-normal */
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-display: swap;
  font-weight: 800;
  src: url(fonts/barlow-condensed-latin-ext-800-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* barlow-condensed-latin-800-normal */
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-display: swap;
  font-weight: 800;
  src: url(fonts/barlow-condensed-latin-800-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* Layout: Vereinsgrüne Kopfleiste, weißer Header mit überlappendem Wappen, tiefblaue Bühne – darunter helle Arbeitsflächen. */
:root {
  --green: #2f8f2a;
  --green-deep: #23701f;
  --lime: #4cc13a;
  --lime-text: #5fd34a;
  --navy: #0a2a63;
  --navy-2: #0e3a80;
  --blue: #0d4ea6;
  --blue-ink: #0d4ea6;
  --ink: #0f1d38;
  --muted: #5b6882;
  --bg: #ffffff;
  --surface: #ffffff;
  --surface-2: #f6f8fc;
  --line: #e3e9f2;
  --live: #e0262b;
  --warn: #c77700;
  --shadow: 0 1px 2px rgba(15, 29, 56, .06), 0 6px 18px rgba(15, 29, 56, .06);
  --display: "Barlow Condensed", "Arial Narrow", "Roboto Condensed", sans-serif;
  --body: "Barlow", "Segoe UI", system-ui, -apple-system, sans-serif;
  --gut: max(16px, env(safe-area-inset-left, 0px));
  --gut-r: max(16px, env(safe-area-inset-right, 0px));
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --ink: #e7edf8; --muted: #9aa9c4; --bg: #08122a; --surface: #0f1c38; --surface-2: #132345; --line: #213358;
    --blue-ink: #6ea4ff; --green: #2a7f26; --shadow: 0 1px 2px rgba(0,0,0,.3), 0 8px 24px rgba(0,0,0,.25); color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --ink: #e7edf8; --muted: #9aa9c4; --bg: #08122a; --surface: #0f1c38; --surface-2: #132345; --line: #213358;
  --blue-ink: #6ea4ff; --green: #2a7f26; --shadow: 0 1px 2px rgba(0,0,0,.3), 0 8px 24px rgba(0,0,0,.25); color-scheme: dark;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; margin: 0; padding: 0; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
body { margin: 0; padding: 0; background: var(--bg); color: var(--ink); font-family: var(--body); font-size: 16px; line-height: 1.55; -webkit-font-smoothing: antialiased; }
a { color: var(--blue-ink); }
button { font: inherit; color: inherit; cursor: pointer; }
:focus-visible { outline: 3px solid var(--lime); outline-offset: 2px; border-radius: 4px; }
h1, h2, h3, h4 { font-family: var(--display); line-height: 1.05; margin: 0; text-wrap: balance; letter-spacing: .005em; }
h2 { font-size: clamp(2rem, 4vw, 2.9rem); font-weight: 800; }
h3 { font-size: 1.35rem; font-weight: 700; }
p { margin: 0; }
.num, table { font-variant-numeric: tabular-nums; }

.wrap { max-width: 1240px; margin: 0 auto; padding-left: var(--gut); padding-right: var(--gut-r); }
.eyebrow { font-family: var(--body); font-weight: 700; font-size: .78rem; letter-spacing: .18em; text-transform: uppercase; color: var(--green); }
.muted { color: var(--muted); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ---------- Buttons ---------- */
.btn { display: inline-flex; align-items: center; gap: .55em; border: 0; border-radius: 6px; padding: .8em 1.4em; font-weight: 700; text-decoration: none; font-size: 1rem; line-height: 1.1; transition: transform .15s, background .15s, box-shadow .15s; white-space: nowrap; }
.btn svg { width: 1.1em; height: 1.1em; flex: none; }
.btn:hover { transform: translateY(-1px); }
.btn-lime { background: var(--lime); color: #082008; box-shadow: 0 6px 18px rgba(76, 193, 58, .35); }
.btn-lime:hover { background: #5ad147; }
.btn-blue { background: var(--blue); color: #fff; }
.btn-blue:hover { background: #0b5fc8; }
.btn-ghost { background: transparent; color: #fff; border: 2px solid rgba(255,255,255,.85); }
.btn-ghost:hover { background: rgba(255,255,255,.1); }
.btn-line { background: var(--surface); color: var(--ink); border: 1px solid var(--line); }
.btn-line:hover { border-color: var(--blue-ink); }
.btn-sm { padding: .5em .9em; font-size: .9rem; }
.btn[disabled] { opacity: .45; pointer-events: none; }

/* ---------- Topbar ---------- */
.topbar { background: var(--green); color: #fff; font-size: .9rem; }
.topbar .wrap { display: flex; align-items: center; gap: 1.6rem; min-height: 40px; }
.topbar .item { display: inline-flex; align-items: center; gap: .45rem; white-space: nowrap; }
.topbar svg { width: 16px; height: 16px; opacity: .95; }
.topbar .right { margin-left: auto; display: flex; align-items: center; gap: 1.4rem; }
.topbar button { background: none; border: 0; color: #fff; display: inline-flex; align-items: center; gap: .4rem; padding: 0; }
.lang { display: inline-flex; align-items: center; gap: .35rem; }
.lang button { font-weight: 600; opacity: .7; padding: 2px 2px; }
.lang button[aria-pressed="true"] { opacity: 1; text-decoration: underline; text-underline-offset: 4px; }
.lang span { opacity: .6; }

/* ---------- Header ---------- */
.header { background: #fff; position: sticky; top: env(safe-area-inset-top, 0px); z-index: 40; box-shadow: 0 1px 0 rgba(15,29,56,.08); }
.header .wrap { display: flex; align-items: center; gap: 1rem; min-height: 84px; position: relative; }
.logo { position: relative; width: 140px; flex: none; align-self: stretch; }
.logo button { position: absolute; top: 2px; left: 0; background: none; border: 0; padding: 0; z-index: 2; }
.logo img { width: 128px; height: auto; display: block; filter: drop-shadow(0 6px 10px rgba(10,42,99,.25)); transition: width .2s; }
.header.compact .logo img { width: 74px; }
.nav { display: flex; gap: .2rem; flex-wrap: nowrap; margin-left: .5rem; }
.nav button { background: none; border: 0; padding: .55rem .7rem; font-weight: 600; color: #15284e; border-radius: 6px; white-space: nowrap; font-size: .98rem; position: relative; }
.nav button:hover { background: #eef3fb; }
.nav button[aria-current="page"] { color: var(--blue); }
.nav button[aria-current="page"]::after { content: ""; position: absolute; left: .7rem; right: .7rem; bottom: .15rem; height: 3px; border-radius: 2px; background: var(--lime); }
.header .cta { margin-left: auto; }
.burger { display: none; margin-left: auto; background: none; border: 0; padding: .4rem; color: #15284e; }
.burger svg { width: 28px; height: 28px; }

@media (max-width: 1320px) {
  .nav button { padding: .5rem .45rem; font-size: .92rem; }
  .topbar .hide-md { display: none; }
}
@media (max-width: 1140px) {
  .nav, .header .cta { display: none; }
  .burger { display: inline-flex; }
  .header .wrap { min-height: 64px; }
  .logo { width: 84px; }
  .logo img, .header.compact .logo img { width: 78px; }
  .topbar .hide-sm { display: none; }
  .topbar .wrap { gap: 1rem; }
}

.drawer { position: fixed; inset: 0; z-index: 60; background: rgba(5, 15, 38, .55); display: flex; justify-content: flex-end; }
.drawer .panel { width: min(360px, 88vw); height: 100%; background: var(--surface); padding: calc(1.2rem + env(safe-area-inset-top, 0px)) calc(1.2rem + env(safe-area-inset-right, 0px)) 1.2rem 1.2rem; display: flex; flex-direction: column; gap: .3rem; overflow-y: auto; }
.drawer .panel button.link { text-align: left; background: none; border: 0; padding: .85rem .6rem; font-family: var(--display); font-size: 1.45rem; font-weight: 700; border-bottom: 1px solid var(--line); color: var(--ink); }
.drawer .close { align-self: flex-end; background: none; border: 0; padding: .3rem; }

/* ---------- Hero ---------- */
.hero { position: relative; background: var(--navy); color: #fff; overflow: hidden; isolation: isolate; }
.hero .bg { position: absolute; inset: 0 0 0 auto; width: min(62%, 980px); background-size: cover; background-position: 40% 30%; z-index: -2; }
.hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, var(--navy) 36%, rgba(10,42,99,.82) 48%, rgba(10,42,99,.25) 70%, rgba(10,42,99,.15)), radial-gradient(120% 90% at 85% 120%, rgba(10,42,99,.9), transparent 60%); }
.hero .wrap { padding-block: clamp(3.2rem, 7vw, 5.5rem) clamp(2.6rem, 5vw, 4rem); display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 2rem; align-items: end; }
.hero .eyebrow { color: #cfe0ff; letter-spacing: .24em; }
.hero h1 { font-size: clamp(3.4rem, 9vw, 7.2rem); font-weight: 800; text-transform: uppercase; line-height: .86; margin: .7rem 0 1.1rem; letter-spacing: -.005em; }
.hero h1 span { display: block; }
.hero h1 .g { color: var(--lime-text); }
.hero .lead { font-size: clamp(1.05rem, 1.6vw, 1.28rem); max-width: 34rem; color: #e3ebfa; }
.hero .actions { display: flex; gap: .9rem; flex-wrap: wrap; margin-top: 1.8rem; }
.factbox { background: rgba(9, 32, 78, .82); backdrop-filter: blur(6px); border: 1px solid rgba(255,255,255,.12); border-radius: 10px; padding: 1.1rem 1.3rem; display: grid; grid-template-columns: auto 1fr; gap: .8rem 1rem; align-items: center; max-width: 470px; justify-self: end; width: 100%; }
.factbox svg { width: 26px; height: 26px; color: #fff; }
.factbox strong { font-weight: 600; }
.countdown { display: flex; gap: .6rem; margin-top: .2rem; grid-column: 1 / -1; border-top: 1px solid rgba(255,255,255,.14); padding-top: .9rem; }
.countdown div { flex: 1; text-align: center; }
.countdown b { display: block; font-family: var(--display); font-size: 2.1rem; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; }
.countdown small { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: #b8c9ea; }
@media (max-width: 860px) {
  .hero .wrap { grid-template-columns: 1fr; }
  .hero .bg { width: 100%; opacity: .55; background-position: 70% 20%; }
  .hero::before { background: linear-gradient(180deg, rgba(10,42,99,.55), var(--navy) 75%); }
  .factbox { justify-self: stretch; max-width: none; }
}

/* ---------- Schnellzugriff ---------- */
.quick { margin-top: -1px; padding-block: 1.4rem; background: var(--surface); border-bottom: 1px solid var(--line); }
.quick .grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.qcard { display: grid; grid-template-columns: auto 1fr auto; gap: .9rem; align-items: center; text-align: left; background: var(--surface); border: 1px solid var(--line); border-radius: 8px; padding: 1.05rem 1.1rem; transition: border-color .15s, box-shadow .15s, transform .15s; }
.qcard:hover { border-color: var(--blue-ink); box-shadow: var(--shadow); transform: translateY(-2px); }
.qcard .ic { width: 42px; height: 42px; color: var(--blue-ink); }
.qcard b { display: block; color: var(--blue-ink); font-size: 1.08rem; }
.qcard small { display: block; color: var(--muted); font-size: .9rem; line-height: 1.35; }
.qcard .chev { width: 20px; color: var(--ink); }
@media (max-width: 1020px) { .quick .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .quick .grid { grid-template-columns: 1fr; gap: .6rem; } }

/* ---------- Abschnitte ---------- */
.section { padding-block: clamp(3rem, 6vw, 4.8rem); }
.section.tint { background: #f5f8fd; }
:root[data-theme="dark"] .section.tint { background: #0b1733; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .section.tint { background: #0b1733; } }
.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.split h2 { margin: .5rem 0 1rem; color: var(--ink); }
.split p { color: var(--muted); font-size: 1.08rem; max-width: 36rem; }
.split .btn { margin-top: 1.4rem; }
.media { border-radius: 10px; overflow: hidden; position: relative; aspect-ratio: 16 / 8; background: var(--navy); max-width: 100%; }
.media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.media .cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.2rem 1.4rem; color: #fff; background: linear-gradient(transparent, rgba(5,20,50,.85)); font-family: var(--display); font-size: 1.6rem; font-weight: 700; }
@media (max-width: 860px) { .split { grid-template-columns: 1fr; } }

.stats { background: var(--surface); border-block: 1px solid var(--line); }
.stats .wrap { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.stat { display: flex; gap: .9rem; align-items: flex-start; padding: 1.5rem 1.2rem; border-left: 1px solid var(--line); }
.stat:first-child { border-left: 0; padding-left: 0; }
.stat svg { width: 36px; height: 36px; color: var(--blue-ink); flex: none; }
.stat b { display: block; font-size: 1.1rem; }
.stat span { color: var(--muted); font-size: .95rem; line-height: 1.35; display: block; }
@media (max-width: 860px) { .stats .wrap { grid-template-columns: repeat(2, minmax(0, 1fr)); } .stat:nth-child(3) { border-left: 0; padding-left: 0; } .stat { border-top: 1px solid var(--line); } .stat:nth-child(-n+2) { border-top: 0; } }

.triple { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; }
.panel-card { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 1.5rem; display: flex; flex-direction: column; gap: .8rem; min-width: 0; }
.panel-card h3 { font-size: 1.75rem; }
.panel-card .btn { align-self: flex-start; margin-top: auto; }
.checklist { list-style: none; padding: 0; margin: 0; display: grid; gap: .45rem; }
.checklist li { display: flex; gap: .6rem; align-items: baseline; }
.checklist li::before { content: ""; width: 16px; height: 16px; flex: none; border-radius: 50%; background: var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.2l2.2 2.2 4.8-4.8' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100%; transform: translateY(2px); }
.checklist small { color: var(--muted); }
.thumb { border-radius: 8px; overflow: hidden; aspect-ratio: 16/9; max-width: 100%; }
.thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 960px) { .triple { grid-template-columns: 1fr; } }

/* Live-Teaser */
.livestrip { background: var(--navy); color: #fff; }
.livestrip .wrap { padding-block: 1rem; display: flex; gap: 1rem; align-items: center; overflow-x: auto; }
.livestrip .label { font-family: var(--display); font-size: 1.3rem; font-weight: 800; letter-spacing: .04em; white-space: nowrap; display: flex; align-items: center; gap: .5rem; }
.tick { display: grid; grid-template-columns: 1fr auto; gap: .1rem .8rem; flex: none; min-width: 270px !important; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); border-radius: 8px; padding: .55rem .8rem; min-width: 230px; text-align: left; color: #fff; }
.tick:hover { background: rgba(255,255,255,.13); }
.tick small { grid-column: 1 / -1; color: #aac0e8; font-size: .76rem; white-space: nowrap; }
.tick .sc { font-family: var(--display); font-weight: 800; font-size: 1.15rem; text-align: right; }

.dot { width: 9px; height: 9px; border-radius: 50%; background: var(--live); display: inline-block; box-shadow: 0 0 0 0 rgba(224,38,43,.6); animation: pulse 1.6s infinite; flex: none; }
@keyframes pulse { 70% { box-shadow: 0 0 0 8px rgba(224,38,43,0); } 100% { box-shadow: 0 0 0 0 rgba(224,38,43,0); } }

/* Sponsoren */
.sponsors { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 1rem; }
.sp { background: var(--surface); border: 1px solid var(--line); border-radius: 8px; padding: 1.2rem 1rem; text-align: center; display: grid; place-items: center; min-height: 92px; gap: .2rem; }
.sp b { font-family: var(--display); font-size: 1.3rem; font-weight: 700; letter-spacing: .02em; }
.sp small { color: var(--muted); font-size: .82rem; }
.sp.main { margin-bottom: 1rem; background: linear-gradient(120deg, var(--navy), var(--navy-2)); color: #fff; border: 0; padding: 2rem; }
.sp.main b { font-size: clamp(1.8rem, 4vw, 2.6rem); font-weight: 800; }
.sp.main small { color: #cfe0ff; }
.sp.cta { border-style: dashed; color: var(--blue-ink); }

/* Footer */
.footer { background: #071d47; color: #c9d6ef; padding-block: 3rem 2rem; margin-top: 0; }
.footer .cols { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 2rem; }
.footer h4 { color: #fff; font-size: 1.2rem; margin-bottom: .7rem; }
.footer button, .footer a { background: none; border: 0; padding: .15rem 0; color: #c9d6ef; text-decoration: none; display: block; text-align: left; }
.footer button:hover, .footer a:hover { color: #fff; }
.footer .legal { border-top: 1px solid rgba(255,255,255,.12); margin-top: 2rem; padding-top: 1.2rem; font-size: .85rem; display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; }
@media (max-width: 860px) { .footer .cols { grid-template-columns: 1fr 1fr; } }

/* ---------- Unterseiten ---------- */
.pagehead { background: var(--navy); color: #fff; position: relative; overflow: hidden; isolation: isolate; }
.pagehead .bg { position: absolute; inset: 0 0 0 auto; width: min(64%, 1000px); background-size: cover; background-position: center 30%; z-index: -2; }
.pagehead::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, var(--navy) 34%, rgba(10,42,99,.86) 48%, rgba(10,42,99,.35) 72%, rgba(10,42,99,.2)); }
@media (max-width: 860px) { .pagehead .bg { width: 100%; opacity: .45; } .pagehead::before { background: linear-gradient(180deg, rgba(10,42,99,.55), rgba(10,42,99,.92)); } }
.pagehead::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 5px; background: linear-gradient(90deg, var(--green), var(--lime)); }
.pagehead .wrap { padding-block: 5rem 3rem; position: relative; z-index: 1; }
@media (max-width: 1020px) { .pagehead .wrap { padding-block: 2.6rem 2rem; } }
.pagehead .eyebrow { color: var(--lime-text); }
.pagehead h1 { font-size: clamp(2.6rem, 6vw, 4.4rem); font-weight: 800; text-transform: uppercase; margin-top: .4rem; }
.pagehead p { color: #e3ebfa; max-width: 40rem; margin-top: .6rem; font-size: 1.08rem; }
.demo-note { display: inline-flex; gap: .5rem; align-items: center; margin-top: 1rem; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2); border-radius: 999px; padding: .3rem .8rem; font-size: .84rem; color: #e3ebfa; }

.tabs { display: flex; gap: .3rem; border-bottom: 1px solid var(--line); overflow-x: auto; scrollbar-width: thin; }
.tabs button { background: none; border: 0; padding: .85rem 1rem; font-weight: 600; color: var(--muted); border-bottom: 3px solid transparent; white-space: nowrap; margin-bottom: -1px; }
.tabs button[aria-selected="true"] { color: var(--blue-ink); border-bottom-color: var(--lime); }
.tabs .count { background: var(--surface-2); border: 1px solid var(--line); border-radius: 999px; padding: 0 .45rem; font-size: .78rem; margin-left: .3rem; }

.filters { display: flex; flex-wrap: wrap; gap: .7rem; align-items: end; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 1rem; }
.field { display: grid; gap: .3rem; min-width: 0; }
.field label { font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.field input, .field select, .field textarea { font: inherit; color: var(--ink); background: var(--surface-2); border: 1px solid var(--line); border-radius: 6px; padding: .6rem .7rem; min-width: 0; width: 100%; }
.field input:focus, .field select:focus, .field textarea:focus { outline: 2px solid var(--blue-ink); outline-offset: 0; border-color: transparent; }
.field.err input, .field.err select { border-color: var(--live); }
.field .hint { font-size: .82rem; color: var(--muted); }
.field .msg { font-size: .82rem; color: var(--live); }
.filters .field { flex: 1 1 150px; }
.filters .field.search { flex: 2 1 220px; }
.chips { display: flex; gap: .4rem; flex-wrap: wrap; }
.chip { border: 1px solid var(--line); background: var(--surface); border-radius: 999px; padding: .35rem .8rem; font-size: .9rem; font-weight: 600; color: var(--muted); }
.chip[aria-pressed="true"] { background: var(--blue); border-color: var(--blue); color: #fff; }

/* Spielliste */
.daylabel { font-family: var(--display); font-weight: 800; font-size: 1.5rem; margin: 1.8rem 0 .7rem; display: flex; align-items: baseline; gap: .7rem; }
.daylabel small { font-family: var(--body); font-size: .9rem; font-weight: 500; color: var(--muted); }
.mlist { display: grid; gap: .5rem; container: mlist / inline-size; }
.match { display: grid; grid-template-columns: 64px 92px minmax(0, 1fr) 96px minmax(0, 1fr) 132px; align-items: center; gap: .8rem; background: var(--surface); border: 1px solid var(--line); border-radius: 8px; padding: .7rem .9rem; text-align: left; width: 100%; transition: border-color .15s, box-shadow .15s; }
.match:hover { border-color: var(--blue-ink); box-shadow: var(--shadow); }
.match.is-live { border-color: rgba(224,38,43,.5); box-shadow: inset 4px 0 0 var(--live); }
.match .time { font-weight: 700; font-variant-numeric: tabular-nums; }
.match .time small { display: block; color: var(--muted); font-weight: 500; font-size: .78rem; }
.match .comp { font-size: .8rem; font-weight: 700; color: var(--muted); line-height: 1.25; }
.match .comp i { font-style: normal; display: block; font-weight: 500; }
.team { display: flex; align-items: center; gap: .5rem; min-width: 0; font-weight: 600; }
.team.home { justify-content: flex-end; text-align: right; }
.team .nm { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.team.win .nm { color: var(--ink); font-weight: 800; }
.team.tbd .nm { color: var(--muted); font-weight: 500; font-style: italic; }
.cc { font-size: .66rem; font-weight: 700; letter-spacing: .06em; border: 1px solid var(--line); border-radius: 3px; padding: 0 .25rem; color: var(--muted); flex: none; }
.score { font-family: var(--display); font-weight: 800; font-size: 1.6rem; text-align: center; font-variant-numeric: tabular-nums; line-height: 1; }
.score small { display: block; font-family: var(--body); font-weight: 500; font-size: .74rem; color: var(--muted); margin-top: .2rem; }
.score.planned { font-size: 1rem; color: var(--muted); font-family: var(--body); font-weight: 600; }
.status { justify-self: end; display: inline-flex; align-items: center; gap: .4rem; font-size: .82rem; font-weight: 700; border-radius: 999px; padding: .2rem .65rem; white-space: nowrap; }
.status.live { color: var(--live); background: rgba(224,38,43,.1); }
.status.finished { color: var(--muted); background: var(--surface-2); }
.status.planned { color: var(--blue-ink); background: rgba(13,78,166,.08); }
@container mlist (max-width: 640px) {
  .match { grid-template-columns: 54px minmax(0, 1fr) 70px; grid-template-areas: "time home score" "time away score" "meta meta status"; row-gap: .2rem; }
  .match .time { grid-area: time; align-self: start; }
  .match .comp { grid-area: meta; display: flex; gap: .4rem; }
  .match .comp i::before { content: "· "; }
  .match .team.home { grid-area: home; justify-content: flex-start; text-align: left; }
  .match .team.away { grid-area: away; }
  .match .score { grid-area: score; font-size: 1.35rem; }
  .match .status { grid-area: status; }
}

/* Tabellen */
.tables { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 860px) { .tables { grid-template-columns: 1fr; } }
.tbl { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; overflow: hidden; min-width: 0; }
.tbl header { display: flex; justify-content: space-between; align-items: center; padding: .8rem 1rem; border-bottom: 1px solid var(--line); gap: .5rem; }
.tbl header h3 { font-size: 1.3rem; }
.tbl .scroll { overflow-x: auto; }
table.std { width: 100%; border-collapse: collapse; font-size: .95rem; }
table.std th { font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); text-align: right; padding: .55rem .6rem; font-weight: 700; }
table.std td { padding: .55rem .6rem; text-align: right; border-top: 1px solid var(--line); white-space: nowrap; }
table.std th:nth-child(2), table.std td:nth-child(2) { text-align: left; width: 100%; }
table.std td:first-child { width: 2rem; font-weight: 700; color: var(--muted); }
table.std tr.q td:first-child { color: var(--green); }
table.std tr.q td:first-child::before { content: ""; display: inline-block; width: 4px; height: 1.1em; background: var(--lime); border-radius: 2px; margin-right: .4rem; vertical-align: -2px; }
table.std td.pts { font-weight: 800; }
.tag { display: inline-flex; align-items: center; gap: .3rem; font-size: .74rem; font-weight: 700; border-radius: 999px; padding: .12rem .55rem; background: var(--surface-2); color: var(--muted); border: 1px solid var(--line); white-space: nowrap; }
.tag.ok { color: var(--green); border-color: rgba(47,143,42,.35); background: rgba(47,143,42,.08); }
.tag.live { color: var(--live); border-color: rgba(224,38,43,.35); background: rgba(224,38,43,.08); }

/* Turnierbaum */
.bracket { display: grid; grid-template-columns: repeat(3, minmax(220px, 1fr)); gap: 1.2rem; overflow-x: auto; padding-bottom: .5rem; }
.bracket .col { display: grid; gap: .7rem; align-content: space-around; }
.bracket h4 { font-family: var(--body); font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.bm { background: var(--surface); border: 1px solid var(--line); border-radius: 8px; overflow: hidden; text-align: left; width: 100%; padding: 0; }
.bm:hover { border-color: var(--blue-ink); }
.bm .r { display: flex; justify-content: space-between; gap: .5rem; padding: .5rem .7rem; font-weight: 600; }
.bm .r + .r { border-top: 1px solid var(--line); }
.bm .r.w { font-weight: 800; }
.bm .r.tbd { color: var(--muted); font-style: italic; font-weight: 500; }
.bm .meta { font-size: .76rem; color: var(--muted); padding: .35rem .7rem; background: var(--surface-2); border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: .4rem; }

/* Modal / Spielbericht */
.modal { position: fixed; inset: 0; z-index: 80; background: rgba(4, 12, 32, .62); display: grid; place-items: center; padding: max(16px, env(safe-area-inset-top, 0px)) var(--gut-r) max(16px, env(safe-area-inset-bottom, 0px)) var(--gut); }
.sheet { background: var(--surface); width: min(760px, 100%); max-height: 100%; overflow-y: auto; border-radius: 12px; box-shadow: 0 30px 80px rgba(0,0,0,.35); }
.sheet .top { background: linear-gradient(120deg, var(--navy), var(--navy-2)); color: #fff; padding: 1.2rem 1.4rem 1.6rem; position: relative; }
.sheet .x { position: absolute; top: .8rem; right: .8rem; background: rgba(255,255,255,.12); border: 0; border-radius: 50%; width: 38px; height: 38px; display: grid; place-items: center; color: #fff; }
.sheet .x svg { width: 20px; height: 20px; }
.sheet .meta { font-size: .85rem; color: #c3d3f1; display: flex; flex-wrap: wrap; gap: .3rem .9rem; padding-right: 2.6rem; }
.scoreboard { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 1rem; align-items: center; margin-top: 1.1rem; }
.scoreboard .t { font-family: var(--display); font-size: clamp(1.25rem, 3vw, 1.8rem); font-weight: 700; line-height: 1.05; }
.scoreboard .t small { display: block; font-family: var(--body); font-size: .76rem; color: #aac0e8; letter-spacing: .1em; font-weight: 600; margin-top: .25rem; }
.scoreboard .t.r { text-align: right; }
.scoreboard .big { font-family: var(--display); font-size: clamp(2.8rem, 7vw, 4rem); font-weight: 800; line-height: 1; text-align: center; font-variant-numeric: tabular-nums; }
.scoreboard .big small { display: block; font-family: var(--body); font-size: .85rem; font-weight: 600; color: #c3d3f1; margin-top: .3rem; }
.sheet .body { padding: 1.2rem 1.4rem 1.6rem; display: grid; gap: 1.4rem; }
.timeline { display: grid; gap: 0; }
.ev { display: grid; grid-template-columns: minmax(0, 1fr) 70px minmax(0, 1fr); align-items: center; gap: .6rem; padding: .32rem 0; border-bottom: 1px dashed var(--line); font-size: .94rem; }
.ev .mid { text-align: center; font-weight: 700; color: var(--muted); font-variant-numeric: tabular-nums; font-size: .85rem; }
.ev .mid b { display: block; color: var(--ink); font-family: var(--display); font-size: 1.1rem; }
.ev .side { display: flex; gap: .45rem; align-items: center; min-width: 0; }
.ev .side.h { justify-content: flex-end; text-align: right; }
.ev .side span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ev.half { grid-template-columns: 1fr; text-align: center; font-weight: 700; color: var(--muted); background: var(--surface-2); border-radius: 6px; padding: .4rem; border: 0; margin: .3rem 0; }
.evi { width: 20px; height: 20px; flex: none; display: inline-grid; place-items: center; border-radius: 4px; font-size: .68rem; font-weight: 800; }
.evi.goal { background: rgba(47,143,42,.15); color: var(--green); }
.evi.m7 { background: rgba(13,78,166,.12); color: var(--blue-ink); }
.evi.yellow { background: #f2c200; width: 13px; height: 18px; border-radius: 2px; }
.evi.min2 { background: rgba(224,38,43,.12); color: var(--live); }
.evi.to { background: var(--surface-2); color: var(--muted); border: 1px solid var(--line); }
.legend { display: flex; flex-wrap: wrap; gap: .4rem 1rem; font-size: .82rem; color: var(--muted); }
.legend span { display: inline-flex; align-items: center; gap: .35rem; }
.scorers { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.scorers h4 { font-family: var(--body); font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); margin-bottom: .4rem; }
.scorers ol { margin: 0; padding-left: 1.2rem; font-size: .94rem; }
@media (max-width: 560px) { .ev { grid-template-columns: minmax(0,1fr) 52px minmax(0,1fr); font-size: .84rem; } .scorers { grid-template-columns: 1fr; } }

/* ---------- Anmeldung ---------- */
.reg { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 1.6rem; align-items: start; }
@media (max-width: 960px) { .reg { grid-template-columns: 1fr; } }
.steps { display: flex; gap: .4rem; counter-reset: s; margin-bottom: 1.2rem; flex-wrap: wrap; }
.steps button { flex: 1 1 120px; background: var(--surface); border: 1px solid var(--line); border-radius: 8px; padding: .6rem .8rem; text-align: left; display: flex; gap: .55rem; align-items: center; font-weight: 600; font-size: .92rem; color: var(--muted); }
.steps button b { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--surface-2); border: 1px solid var(--line); font-size: .85rem; flex: none; color: var(--muted); }
.steps button[aria-current="step"] { border-color: var(--blue-ink); color: var(--ink); }
.steps button[aria-current="step"] b { background: var(--blue); border-color: var(--blue); color: #fff; }
.steps button.done b { background: var(--green); border-color: var(--green); color: #fff; }
.form-card { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: clamp(1rem, 3vw, 1.8rem); display: grid; gap: 1.2rem; }
.form-card h2 { font-size: 2rem; }
.grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 600px) { .grid2 { grid-template-columns: 1fr; } }
.comprow { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .8rem; align-items: center; padding: .8rem 0; border-top: 1px solid var(--line); }
.comprow:first-of-type { border-top: 0; }
.comprow b { display: block; }
.comprow small { color: var(--muted); }
.stepper { display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: var(--surface-2); }
.stepper button { background: none; border: 0; width: 40px; height: 40px; font-size: 1.3rem; font-weight: 700; color: var(--blue-ink); }
.stepper button:disabled { opacity: .3; }
.stepper output { min-width: 36px; text-align: center; font-weight: 800; font-variant-numeric: tabular-nums; }
.choice { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; }
@media (max-width: 700px) { .choice { grid-template-columns: 1fr; } }
.choice label { border: 1px solid var(--line); border-radius: 8px; padding: .9rem; display: grid; gap: .2rem; cursor: pointer; background: var(--surface-2); }
.choice label:has(input:checked) { border-color: var(--blue-ink); box-shadow: inset 0 0 0 1px var(--blue-ink); background: var(--surface); }
.choice input { accent-color: var(--blue); }
.choice b { display: flex; gap: .5rem; align-items: center; }
.choice small { color: var(--muted); }
.check { display: flex; gap: .6rem; align-items: flex-start; }
.check input { width: 18px; height: 18px; accent-color: var(--blue); margin-top: .2rem; flex: none; }
.form-nav { display: flex; justify-content: space-between; gap: .8rem; flex-wrap: wrap; }
.fees { position: sticky; top: calc(100px + env(safe-area-inset-top, 0px)); background: var(--navy); color: #fff; border-radius: 10px; padding: 1.4rem; display: grid; gap: .8rem; }
.fees h3 { font-size: 1.6rem; }
.fees .row { display: flex; justify-content: space-between; gap: .8rem; font-size: .95rem; font-variant-numeric: tabular-nums; }
.fees .row span:first-child { color: #c9d6ef; }
.fees .row.minus span:last-child { color: var(--lime-text); }
.fees .total { border-top: 1px solid rgba(255,255,255,.2); padding-top: .8rem; display: flex; justify-content: space-between; align-items: baseline; }
.fees .total b { font-family: var(--display); font-size: 2.4rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.fees .note { font-size: .8rem; color: #aac0e8; }
.fees .fee-empty { color: #aac0e8; font-size: .95rem; }
.success { text-align: center; padding: 2.4rem 1rem; display: grid; gap: .8rem; justify-items: center; }
.success .ring { width: 74px; height: 74px; border-radius: 50%; background: rgba(47,143,42,.12); display: grid; place-items: center; color: var(--green); }
.success .ring svg { width: 40px; height: 40px; }
.success code { font-family: ui-monospace, Menlo, monospace; background: var(--surface-2); border: 1px solid var(--line); border-radius: 6px; padding: .2rem .5rem; font-size: 1.1rem; }

/* ---------- MyTeam ---------- */
.login { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); background: var(--surface); border: 1px solid var(--line); border-radius: 12px; overflow: hidden; max-width: 920px; margin: 0 auto; }
.login .art { background: var(--navy) center/cover; min-height: 320px; position: relative; }
.login .art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(160deg, rgba(10,42,99,.2), rgba(10,42,99,.9)); }
.login .art p { position: absolute; z-index: 1; left: 1.4rem; right: 1.4rem; bottom: 1.4rem; color: #fff; font-family: var(--display); font-size: 1.9rem; font-weight: 700; line-height: 1.05; }
.login form { padding: clamp(1.2rem, 3vw, 2.2rem); display: grid; gap: 1rem; align-content: center; }
.login .demo { background: var(--surface-2); border: 1px dashed var(--line); border-radius: 8px; padding: .7rem .9rem; font-size: .9rem; }
@media (max-width: 760px) { .login { grid-template-columns: 1fr; } .login .art { min-height: 180px; } }
.teamhead { display: flex; gap: 1.2rem; align-items: center; flex-wrap: wrap; justify-content: space-between; }
.teamhead h2 { font-size: clamp(2rem, 4vw, 2.6rem); }
.kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 860px) { .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.kpi { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 1rem 1.1rem; display: grid; gap: .25rem; min-width: 0; }
.kpi small { font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); font-weight: 700; }
.kpi b { font-family: var(--display); font-size: 1.6rem; font-weight: 800; line-height: 1.1; }
.kpi span { color: var(--muted); font-size: .9rem; }
.twocol { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 1.2rem; align-items: start; }
@media (max-width: 960px) { .twocol { grid-template-columns: 1fr; } }
.box { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 1.2rem; min-width: 0; display: grid; gap: .9rem; align-content: start; }
.box h3 { font-size: 1.45rem; }
table.roster { width: 100%; border-collapse: collapse; font-size: .95rem; }
table.roster th { text-align: left; font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); padding: .5rem .5rem; }
table.roster td { padding: .55rem .5rem; border-top: 1px solid var(--line); }
table.roster td.no { font-family: var(--display); font-weight: 800; font-size: 1.25rem; width: 3rem; color: var(--blue-ink); }
table.roster input { width: 4rem; font: inherit; padding: .3rem .4rem; border: 1px solid var(--line); border-radius: 5px; background: var(--surface-2); color: var(--ink); }
.iconbtn { background: none; border: 0; padding: .3rem; color: var(--muted); border-radius: 5px; }
.iconbtn:hover { color: var(--live); background: rgba(224,38,43,.08); }
.iconbtn svg { width: 18px; height: 18px; display: block; }
.addrow { display: grid; grid-template-columns: minmax(0, 2fr) 90px auto; gap: .6rem; align-items: end; }
@media (max-width: 600px) { .addrow { grid-template-columns: 1fr 90px; } .addrow .btn { grid-column: 1 / -1; justify-content: center; } }
.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1rem; }
.pcard { border-radius: 12px; overflow: hidden; background: #fff; color: #0f1d38; border: 1px solid var(--line); box-shadow: var(--shadow); display: grid; grid-template-rows: auto 1fr; }
.pcard .h { background: linear-gradient(120deg, var(--navy), var(--blue)); color: #fff; padding: .8rem 1rem; display: flex; gap: .7rem; align-items: center; }
.pcard .h img { width: 44px; height: auto; }
.pcard .h b { font-family: var(--display); font-size: 1.15rem; letter-spacing: .04em; display: block; line-height: 1; }
.pcard .h small { font-size: .74rem; color: #cfe0ff; }
.pcard .b { padding: .9rem 1rem; display: grid; grid-template-columns: 1fr auto; gap: .2rem .8rem; align-items: start; }
.pcard .name { font-family: var(--display); font-size: 1.5rem; font-weight: 800; line-height: 1.05; }
.pcard .role { font-size: .82rem; color: #5b6882; }
.pcard .perks { grid-column: 1 / 2; font-size: .78rem; color: #5b6882; margin-top: .4rem; display: flex; flex-wrap: wrap; gap: .25rem; }
.pcard .perks span { border: 1px solid #dde4ef; border-radius: 4px; padding: 0 .35rem; }
.pcard .qr { grid-row: 1 / span 3; grid-column: 2; width: 84px; height: 84px; }
.pcard .stripe { height: 6px; background: linear-gradient(90deg, var(--green), var(--lime)); grid-column: 1 / -1; }
.msgs { display: grid; gap: .6rem; }
.mcard { border: 1px solid var(--line); border-radius: 8px; padding: .9rem 1rem; background: var(--surface); text-align: left; display: grid; gap: .3rem; width: 100%; }
.mcard.unread { border-color: var(--blue-ink); box-shadow: inset 4px 0 0 var(--blue); }
.mcard header { display: flex; justify-content: space-between; gap: .6rem; flex-wrap: wrap; font-size: .82rem; color: var(--muted); }
.mcard b { font-size: 1.02rem; }
.mcard p { color: var(--muted); }

/* ---------- Gästemappe / Info ---------- */
.gcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 1rem; }
.gcard { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 1.2rem; display: grid; gap: .6rem; align-content: start; }
.gcard h3 { font-size: 1.45rem; }
.gcard p { color: var(--muted); }
.gcard ul { margin: 0; padding: 0; list-style: none; display: grid; gap: .25rem; font-size: .92rem; }
.gcard ul li { display: flex; gap: .45rem; align-items: baseline; }
.gcard ul li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--lime); flex: none; transform: translateY(-2px); }
.maplink { display: inline-flex; align-items: center; gap: .4rem; font-weight: 700; text-decoration: none; margin-top: .2rem; }
.maplink svg { width: 18px; height: 18px; }
.flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; counter-reset: f; }
@media (max-width: 960px) { .flow { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .flow { grid-template-columns: 1fr; } }
.flow .gcard { position: relative; padding-top: 3rem; }
.flow .gcard::before { counter-increment: f; content: counter(f); position: absolute; top: 1rem; left: 1.2rem; font-family: var(--display); font-weight: 800; font-size: 1.1rem; width: 30px; height: 30px; border-radius: 50%; background: var(--blue); color: #fff; display: grid; place-items: center; }
.agenda { display: grid; gap: .7rem; }
.agi { display: grid; grid-template-columns: 130px minmax(0, 1fr) auto; gap: 1rem; align-items: center; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 1rem 1.2rem; }
.agi .when { font-family: var(--display); font-weight: 800; font-size: 1.35rem; line-height: 1; }
.agi .when small { display: block; font-family: var(--body); font-size: .82rem; color: var(--muted); font-weight: 600; margin-top: .25rem; }
.agi p { color: var(--muted); }
@media (max-width: 700px) { .agi { grid-template-columns: 1fr; gap: .4rem; } }

.faq { display: grid; gap: .6rem; }
.faq details { background: var(--surface); border: 1px solid var(--line); border-radius: 8px; }
.faq summary { cursor: pointer; padding: 1rem 1.1rem; font-weight: 700; list-style: none; display: flex; justify-content: space-between; gap: 1rem; align-items: center; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font-size: 1.4rem; color: var(--blue-ink); line-height: 1; }
.faq details[open] summary::after { content: "–"; }
.faq details p { padding: 0 1.1rem 1.1rem; color: var(--muted); max-width: 62rem; }
.faq mark { background: rgba(76,193,58,.3); color: inherit; border-radius: 2px; }
.empty { text-align: center; color: var(--muted); padding: 2rem 1rem; background: var(--surface); border: 1px dashed var(--line); border-radius: 10px; }
.rules { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 1rem; }
.rules ol { margin: 0; padding-left: 1.2rem; display: grid; gap: .4rem; color: var(--muted); }
.yeartable { width: 100%; border-collapse: collapse; }
.yeartable th, .yeartable td { text-align: left; padding: .7rem .8rem; border-top: 1px solid var(--line); }
.yeartable th { font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); border-top: 0; }
.yeartable td:first-child { font-weight: 700; }

/* ---------- Erlebniswelt ---------- */
.cdbig { background: var(--navy); color: #fff; border-radius: 12px; padding: clamp(1.4rem, 4vw, 2.6rem); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; align-items: center; position: relative; overflow: hidden; }
.cdbig::after { content: ""; position: absolute; right: -80px; bottom: -120px; width: 360px; height: 360px; border-radius: 50%; border: 50px solid rgba(76,193,58,.15); }
.cdbig h2 { color: #fff; }
.cdbig h2 .g { color: var(--lime-text); }
.cdbig .countdown { border: 0; padding: 0; gap: clamp(.6rem, 2vw, 1.4rem); position: relative; z-index: 1; }
.cdbig .countdown b { font-size: clamp(2.6rem, 7vw, 4.6rem); }
@media (max-width: 760px) { .cdbig { grid-template-columns: 1fr; } }
.gal { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 180px; gap: .8rem; }
.gal button { border: 0; padding: 0; border-radius: 8px; overflow: hidden; position: relative; background: var(--navy); }
.gal button img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s; }
.gal button:hover img { transform: scale(1.05); }
.gal button span { position: absolute; left: 0; right: 0; bottom: 0; padding: .6rem .7rem; text-align: left; color: #fff; font-size: .85rem; font-weight: 600; background: linear-gradient(transparent, rgba(5,20,50,.85)); }
.gal button.w2 { grid-column: span 2; }
.gal button.h2 { grid-row: span 2; }
@media (max-width: 760px) { .gal { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 140px; } .gal button.w2 { grid-column: span 2; } }
.lightbox { position: fixed; inset: 0; z-index: 90; background: rgba(2, 8, 22, .94); display: grid; grid-template-rows: 1fr auto; padding: max(16px, env(safe-area-inset-top, 0px)) var(--gut-r) max(16px, env(safe-area-inset-bottom, 0px)) var(--gut); color: #fff; }
.lightbox figure { margin: 0; display: grid; place-items: center; min-height: 0; }
.lightbox img { max-width: 100%; max-height: 78vh; object-fit: contain; border-radius: 6px; }
.lightbox figcaption { text-align: center; padding: .8rem; display: flex; justify-content: center; align-items: center; gap: 1rem; flex-wrap: wrap; }
.lightbox .nav-btn { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(255,255,255,.12); border: 0; color: #fff; width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; }
.lightbox .prev { left: max(12px, env(safe-area-inset-left, 0px)); }
.lightbox .next { right: max(12px, env(safe-area-inset-right, 0px)); }
.lightbox .close { position: absolute; top: max(12px, env(safe-area-inset-top, 0px)); right: max(12px, env(safe-area-inset-right, 0px)); background: rgba(255,255,255,.12); border: 0; color: #fff; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; }
.lightbox svg { width: 22px; height: 22px; }

/* Suche */
.search-ov { position: fixed; inset: 0; z-index: 85; background: rgba(4, 12, 32, .6); display: flex; justify-content: center; align-items: flex-start; padding: max(60px, env(safe-area-inset-top, 0px)) var(--gut-r) 16px var(--gut); }
.search-box { background: var(--surface); width: min(640px, 100%); border-radius: 12px; overflow: hidden; box-shadow: 0 30px 80px rgba(0,0,0,.35); }
.search-box input { width: 100%; border: 0; border-bottom: 1px solid var(--line); padding: 1.1rem 1.2rem; font: inherit; font-size: 1.15rem; background: var(--surface); color: var(--ink); }
.search-box input:focus { outline: none; }
.search-box ul { list-style: none; margin: 0; padding: .4rem; max-height: 60vh; overflow-y: auto; }
.search-box li button { width: 100%; text-align: left; background: none; border: 0; padding: .7rem .8rem; border-radius: 6px; display: grid; gap: .1rem; }
.search-box li button:hover, .search-box li button:focus-visible { background: var(--surface-2); }
.search-box li small { color: var(--muted); }

.stack { display: grid; gap: 1.4rem; }
.row-between { display: flex; justify-content: space-between; align-items: end; gap: 1rem; flex-wrap: wrap; }
.toast { position: fixed; left: 50%; bottom: max(20px, env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); background: var(--ink); color: var(--bg); padding: .7rem 1.1rem; border-radius: 8px; z-index: 95; font-weight: 600; box-shadow: 0 10px 30px rgba(0,0,0,.25); max-width: calc(100% - 32px); }
[v-cloak] { display: none; }

/* Kacheln Startseite */
.tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
@media (max-width: 960px) { .tiles { grid-template-columns: 1fr; } }
.tile { position: relative; isolation: isolate; overflow: hidden; border: 0; border-radius: 18px; padding: 1.6rem; min-height: 440px; display: flex; flex-direction: column; text-align: left; color: #fff; background: var(--navy); box-shadow: 0 2px 4px rgba(10,42,99,.08), 0 18px 40px -18px rgba(10,42,99,.45); transition: transform .25s ease, box-shadow .25s ease; }
.tile:hover { transform: translateY(-4px); box-shadow: 0 2px 4px rgba(10,42,99,.1), 0 28px 50px -20px rgba(10,42,99,.55); }
.tile .eyebrow { color: var(--lime-text); }
.tile-top { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.tile-go { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.14); backdrop-filter: blur(6px); transition: background .2s, transform .2s; flex: none; }
.tile-go svg { width: 20px; height: 20px; }
.tile:hover .tile-go { background: var(--lime); color: #082008; transform: rotate(-45deg); }
.tile-h { font-family: var(--display); font-weight: 800; font-size: clamp(1.9rem, 2.6vw, 2.4rem); line-height: 1; text-transform: uppercase; display: block; }
.tile-p { color: #dbe5f7; font-size: .98rem; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.tile-link { display: inline-flex; align-items: center; gap: .4rem; font-weight: 700; color: var(--lime-text); }
.tile-link svg { width: 18px; height: 18px; transition: transform .2s; }
.tile:hover .tile-link svg { transform: translateX(4px); }
.tile-comp { background: radial-gradient(120% 80% at 100% 0%, var(--blue) 0%, transparent 60%), var(--navy); }
.tile-big { position: absolute; right: -.4rem; bottom: -3.6rem; font-family: var(--display); font-weight: 800; font-size: 22rem; line-height: 1; color: rgba(255,255,255,.05); z-index: -1; pointer-events: none; }
.tile-comp .tile-h { margin-top: auto; margin-bottom: 1rem; }
.comp-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.comp-pill { display: flex; align-items: center; gap: .65rem; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); border-radius: 12px; padding: .55rem .7rem; }
.comp-pill b { font-family: var(--display); font-size: 1.55rem; font-weight: 800; width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; flex: none; background: var(--blue); }
.comp-pill.w b { background: var(--green); }
.comp-pill span { font-weight: 600; font-size: .92rem; line-height: 1.15; }
.comp-pill small { display: block; font-weight: 500; font-size: .76rem; color: #aac0e8; margin-top: .1rem; }
.tile-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .6s ease; }
.tile-photo:hover img { transform: scale(1.06); }
.tile-photo::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(6,22,56,.35) 0%, rgba(6,22,56,0) 30%, rgba(6,22,56,.55) 55%, rgba(6,22,56,.94) 100%); }
.tile-body { margin-top: auto; display: grid; gap: .7rem; }
.tile-days { font-weight: 600; color: #dbe5f7; display: flex; align-items: baseline; gap: .55rem; flex-wrap: wrap; }
.tile-days b { font-family: var(--display); font-size: 4.6rem; font-weight: 800; line-height: .85; color: #fff; font-variant-numeric: tabular-nums; }

/* Gästemappe: Orte */
.places { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.25rem; }
.place { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--line); border-radius: 18px; overflow: hidden; transition: transform .25s ease, box-shadow .25s ease, border-color .25s; }
.place:hover { transform: translateY(-4px); border-color: transparent; box-shadow: 0 2px 4px rgba(10,42,99,.06), 0 22px 44px -20px rgba(10,42,99,.4); }
.place-vis { position: relative; height: 128px; display: flex; align-items: flex-end; justify-content: space-between; padding: 1rem 1.2rem; color: #fff; overflow: hidden;
  background: radial-gradient(120% 120% at 100% 0%, var(--blue) 0%, transparent 65%), var(--navy); }
.k-halls .place-vis { background:
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 200' preserveAspectRatio='xMidYMid slice'%3E%3Cg fill='none' stroke='white' stroke-opacity='.18' stroke-width='2'%3E%3Crect x='20' y='10' width='360' height='180'/%3E%3Cline x1='200' y1='10' x2='200' y2='190'/%3E%3Cpath d='M20 32.5 A54 54 0 0 1 74 86.5 L74 113.5 A54 54 0 0 1 20 167.5'/%3E%3Cpath d='M46.6 10 A81 81 0 0 1 101 86.5 L101 113.5 A81 81 0 0 1 46.6 190' stroke-dasharray='7 7'/%3E%3Cpath d='M83 95.5 L83 104.5' stroke-width='3'/%3E%3Cpath d='M56 98.5 L56 101.5'/%3E%3Cpath d='M20 86.5 L11 86.5 L11 113.5 L20 113.5' stroke-width='2.5'/%3E%3Cpath d='M380 32.5 A54 54 0 0 0 326 86.5 L326 113.5 A54 54 0 0 0 380 167.5'/%3E%3Cpath d='M353.4 10 A81 81 0 0 0 299 86.5 L299 113.5 A81 81 0 0 0 353.4 190' stroke-dasharray='7 7'/%3E%3Cpath d='M317 95.5 L317 104.5' stroke-width='3'/%3E%3Cpath d='M344 98.5 L344 101.5'/%3E%3Cpath d='M380 86.5 L389 86.5 L389 113.5 L380 113.5' stroke-width='2.5'/%3E%3C/g%3E%3C/svg%3E") center/cover,
  radial-gradient(120% 120% at 100% 0%, var(--blue) 0%, transparent 65%), var(--navy); }
.k-restaurants .place-vis { background: radial-gradient(120% 120% at 100% 0%, var(--lime) 0%, transparent 60%), var(--green-deep); }
.place-no { font-family: var(--display); font-weight: 800; font-size: 5.4rem; line-height: .8; letter-spacing: -.02em; }
.place-ic { width: 52px; height: 52px; opacity: .95; }
.place-tag { font-size: .74rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; background: rgba(255,255,255,.16); backdrop-filter: blur(6px); border: 1px solid rgba(255,255,255,.2); border-radius: 999px; padding: .3rem .7rem; white-space: nowrap; }
.place-body { padding: 1.2rem 1.25rem .4rem; display: grid; gap: .6rem; align-content: start; flex: 1; }
.place-body h3 { font-size: 1.55rem; }
.place-body p { color: var(--muted); font-size: .96rem; }
.place-facts { display: flex; flex-wrap: wrap; gap: .4rem; }
.place-facts span { display: inline-flex; align-items: center; gap: .35rem; font-size: .84rem; font-weight: 600; background: var(--surface-2); border: 1px solid var(--line); border-radius: 999px; padding: .3rem .65rem; }
.place-facts svg { width: 15px; height: 15px; color: var(--blue-ink); flex: none; }
.place-map { margin: .8rem 1.25rem 1.25rem; display: flex; align-items: center; gap: .55rem; padding: .7rem .9rem; border-radius: 12px; background: var(--surface-2); color: var(--blue-ink); font-weight: 700; text-decoration: none; transition: background .2s, color .2s; }
.place-map svg { width: 19px; height: 19px; flex: none; }
.place-map .go { margin-left: auto; transition: transform .2s; }
.place-map:hover { background: var(--blue); color: #fff; }
.place-map:hover .go { transform: translateX(4px); }

.place-ic { flex: none; }
.places.p-halls { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.places.p-halls .place:first-child { grid-column: span 2; }
.places.p-halls .place:first-child .place-vis { height: 200px; }
.places.p-halls .place:first-child .place-no { font-size: 8rem; }
.places.p-halls .place:first-child h3 { font-size: 2rem; }
@media (max-width: 960px) { .places.p-halls { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .places.p-halls { grid-template-columns: 1fr; } .places.p-halls .place:first-child { grid-column: auto; } }

/* Gästemappe: Veranstaltungen */
.evt { display: grid; gap: 2.2rem; position: relative; }
.evt-day { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 1.6rem; position: relative; }
.evt-day::before { content: ""; position: absolute; left: 59px; top: 118px; bottom: -2.2rem; width: 2px; background: linear-gradient(var(--line), transparent); }
.evt-day:last-child::before { display: none; }
.evt-date { position: sticky; top: calc(100px + env(safe-area-inset-top, 0px)); align-self: start; width: 120px; height: 112px; border-radius: 18px; background: var(--navy); color: #fff; display: grid; place-items: center; align-content: center; text-align: center; gap: .1rem; box-shadow: 0 16px 30px -18px rgba(10,42,99,.6); }
.evt-date b { font-family: var(--display); font-size: 3.2rem; font-weight: 800; line-height: .85; }
.evt-date span { font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--lime-text); }
.evt-date small { font-size: .78rem; color: #cfe0ff; }
.evt-list { display: grid; gap: 1rem; min-width: 0; }
.ev-card { display: grid; grid-template-columns: minmax(0, 1fr); background: var(--surface); border: 1px solid var(--line); border-radius: 18px; overflow: hidden; transition: transform .25s, box-shadow .25s; }
.ev-card.has-img { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.ev-card:hover { transform: translateY(-3px); box-shadow: 0 22px 44px -22px rgba(10,42,99,.45); }
.ev-media { position: relative; min-height: 220px; overflow: hidden; }
.ev-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.ev-card:hover .ev-media img { transform: scale(1.06); }
.ev-content { padding: 1.4rem 1.5rem; display: grid; gap: .65rem; align-content: start; }
.ev-head { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.ev-time { display: inline-flex; align-items: center; gap: .4rem; font-family: var(--display); font-weight: 800; font-size: 1.35rem; color: var(--blue-ink); font-variant-numeric: tabular-nums; }
.ev-time svg { width: 20px; height: 20px; }
.ev-badge { font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; background: var(--lime); color: #082008; border-radius: 999px; padding: .25rem .65rem; }
.ev-kind { margin-left: auto; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--surface-2); color: var(--blue-ink); }
.ev-kind svg { width: 22px; height: 22px; }
.ev-content h3 { font-size: 1.9rem; text-transform: uppercase; }
.ev-content p { color: var(--muted); }
.ev-meta { display: flex; flex-wrap: wrap; gap: .4rem; }
.ev-meta span { display: inline-flex; align-items: center; gap: .35rem; font-size: .84rem; font-weight: 600; background: var(--surface-2); border: 1px solid var(--line); border-radius: 999px; padding: .3rem .7rem; }
.ev-meta svg { width: 15px; height: 15px; color: var(--blue-ink); }
.ev-map { justify-self: start; display: inline-flex; align-items: center; gap: .4rem; font-weight: 700; text-decoration: none; color: var(--blue-ink); margin-top: .2rem; }
.ev-map svg { width: 18px; height: 18px; transition: transform .2s; }
.ev-map:hover svg { transform: translateX(4px); }
/* Highlights: Bild als Bühne */
.ev-card.hl { grid-template-columns: minmax(0, 1fr); position: relative; isolation: isolate; border: 0; color: #fff; min-height: 340px; box-shadow: 0 24px 50px -26px rgba(10,42,99,.7); }
.ev-card.hl .ev-media { position: absolute; inset: 0; z-index: -2; min-height: 0; }
.ev-card.hl::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(6,22,56,.95) 0%, rgba(6,22,56,.75) 45%, rgba(6,22,56,.2) 100%); }
.ev-card.hl .ev-content { align-content: end; max-width: 620px; padding: 1.8rem; }
.ev-card.hl h3 { font-size: clamp(2.6rem, 5vw, 3.8rem); line-height: .9; }
.ev-card.hl .ev-time { color: var(--lime-text); font-size: 1.6rem; }
.ev-card.hl p { color: #dbe5f7; font-size: 1.05rem; }
.ev-card.hl .ev-kind { background: rgba(255,255,255,.14); color: #fff; backdrop-filter: blur(6px); }
.ev-card.hl .ev-meta span { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.2); color: #fff; }
.ev-card.hl .ev-meta svg { color: var(--lime-text); }
.ev-card.hl .ev-map { color: var(--lime-text); }
@media (max-width: 760px) {
  .evt-day { grid-template-columns: 1fr; gap: .8rem; }
  .evt-day::before { display: none; }
  .evt-date { position: static; width: auto; height: auto; grid-auto-flow: column; justify-content: start; gap: .7rem; padding: .7rem 1rem; border-radius: 14px; align-items: baseline; }
  .evt-date b { font-size: 2rem; }
  .ev-card.has-img { grid-template-columns: 1fr; }
  .ev-media { min-height: 170px; }
  .ev-card.hl .ev-media { min-height: 0; }
  .ev-card.hl::after { background: linear-gradient(180deg, rgba(6,22,56,.35), rgba(6,22,56,.95) 60%); }
  .ev-card.hl { min-height: 420px; }
}
.ev-card.hl .ev-kind { position: absolute; top: 1.4rem; right: 1.4rem; margin: 0; width: 48px; height: 48px; }

/* Partner & Sponsoren */
.spw { display: grid; gap: 1.25rem; }
.spw-head { display: flex; justify-content: space-between; align-items: end; gap: 1rem; flex-wrap: wrap; margin-bottom: .4rem; }
.spw-head h2 { margin-top: .3rem; }
.spw-main { position: relative; isolation: isolate; overflow: hidden; border-radius: 22px; min-height: 260px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 1.5rem; padding: clamp(1.4rem, 3.5vw, 2.6rem); color: #fff; box-shadow: 0 26px 50px -28px rgba(10,42,99,.7); }
.spw-main > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; object-position: 70% 30%; }
.spw-main::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(100deg, rgba(10,42,99,.97) 30%, rgba(10,42,99,.75) 60%, rgba(13,78,166,.45)); }
.spw-main-txt { display: grid; gap: .6rem; max-width: 560px; }
.spw-label { justify-self: start; font-size: .72rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; background: var(--lime); color: #082008; border-radius: 999px; padding: .3rem .75rem; }
.spw-main b { font-family: var(--display); font-weight: 800; font-size: clamp(2.4rem, 5.5vw, 4.2rem); line-height: .9; text-transform: uppercase; }
.spw-main p { color: #dbe5f7; font-size: 1.05rem; }
.spw-cup { display: grid; justify-items: center; gap: .5rem; text-align: center; font-family: var(--display); font-weight: 700; font-size: 1.15rem; line-height: 1.05; text-transform: uppercase; letter-spacing: .04em; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2); backdrop-filter: blur(8px); border-radius: 18px; padding: 1.2rem 1.4rem; }
.spw-cup svg { width: 54px; height: 54px; color: var(--lime-text); }
@media (max-width: 700px) { .spw-main { grid-template-columns: 1fr; } .spw-cup { justify-self: start; grid-auto-flow: column; align-items: center; padding: .7rem 1rem; } .spw-cup svg { width: 32px; height: 32px; } }
.spw-premium { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 860px) { .spw-premium { grid-template-columns: 1fr; } }
.spw-p { position: relative; display: flex; align-items: center; gap: 1rem; background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 1.2rem 1.3rem; transition: transform .25s, box-shadow .25s, border-color .25s; min-width: 0; }
.spw-p:hover { transform: translateY(-3px); border-color: transparent; box-shadow: 0 20px 40px -22px rgba(10,42,99,.45); }
.spw-mono { width: 58px; height: 58px; flex: none; border-radius: 16px; display: grid; place-items: center; font-family: var(--display); font-weight: 800; font-size: 1.6rem; color: #fff; background: linear-gradient(135deg, var(--blue), var(--navy)); }
.spw-p:nth-child(2) .spw-mono { background: linear-gradient(135deg, var(--lime), var(--green-deep)); }
.spw-p b { display: block; font-family: var(--display); font-weight: 700; font-size: 1.35rem; line-height: 1.1; }
.spw-p small { color: var(--muted); font-size: .9rem; }
.spw-tier { position: absolute; top: .8rem; right: .9rem; font-size: .66rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.spw-marquee { position: relative; overflow: hidden; border-block: 1px solid var(--line); padding-block: 1.1rem; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.spw-track { display: flex; gap: 3.5rem; width: max-content; animation: spw-scroll 32s linear infinite; }
.spw-marquee:hover .spw-track { animation-play-state: paused; }
.spw-track span { font-family: var(--display); font-weight: 700; font-size: 1.6rem; letter-spacing: .02em; text-transform: uppercase; color: var(--muted); opacity: .7; white-space: nowrap; transition: color .2s, opacity .2s; }
.spw-track span:hover { color: var(--ink); opacity: 1; }
@keyframes spw-scroll { to { transform: translateX(calc(-50% - 1.75rem)); } }
@media (prefers-reduced-motion: reduce) { .spw-track { flex-wrap: wrap; width: auto; gap: 1rem 2.5rem; } }
.spw-cta { display: grid; grid-template-columns: minmax(0, 1.2fr) auto auto; gap: 1.5rem 2rem; align-items: center; border-radius: 22px; padding: clamp(1.3rem, 3vw, 2rem); background: radial-gradient(120% 140% at 100% 0%, rgba(76,193,58,.22), transparent 55%), var(--surface-2); border: 1px solid var(--line); }
.spw-cta h3 { font-size: 2rem; text-transform: uppercase; }
.spw-cta p { color: var(--muted); margin-top: .3rem; }
.spw-stats { display: flex; gap: 1.6rem; }
.spw-stats b { display: block; font-family: var(--display); font-weight: 800; font-size: 2.2rem; line-height: 1; color: var(--blue-ink); }
.spw-stats small { color: var(--muted); font-size: .82rem; }
@media (max-width: 960px) { .spw-cta { grid-template-columns: 1fr; } .spw-cta .btn { justify-self: start; } }
.spw-cta .btn { white-space: normal; max-width: 100%; }

/* Partner werden */
.pitch { display: grid; gap: 2.2rem; scroll-margin-top: 110px; }
.pitch-hero { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 2rem; align-items: center; background: radial-gradient(120% 140% at 100% 0%, rgba(76,193,58,.28), transparent 55%), var(--navy); color: #fff; border-radius: 22px; padding: clamp(1.5rem, 4vw, 3rem); }
.pitch-hero h2 { color: #fff; font-size: clamp(2.2rem, 4.4vw, 3.4rem); text-transform: uppercase; line-height: .95; margin: .9rem 0 1rem; }
.pitch-hero p { color: #dbe5f7; font-size: 1.08rem; max-width: 36rem; }
.pitch-stats { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.pitch-stats div { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); border-radius: 16px; padding: 1.1rem 1.2rem; }
.pitch-stats b { display: block; font-family: var(--display); font-weight: 800; font-size: clamp(2rem, 4vw, 2.8rem); line-height: 1; color: var(--lime-text); font-variant-numeric: tabular-nums; }
.pitch-stats small { color: #cfe0ff; font-size: .88rem; }
@media (max-width: 860px) { .pitch-hero { grid-template-columns: 1fr; } }
.reasons { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 960px) { .reasons { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .reasons { grid-template-columns: 1fr; } }
.reason { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 1.4rem; display: grid; gap: .55rem; align-content: start; transition: transform .25s, box-shadow .25s, border-color .25s; }
.reason:hover { transform: translateY(-3px); border-color: transparent; box-shadow: 0 20px 40px -22px rgba(10,42,99,.45); }
.reason-ic { width: 50px; height: 50px; border-radius: 14px; display: grid; place-items: center; background: linear-gradient(135deg, var(--blue), var(--navy)); color: #fff; margin-bottom: .3rem; }
.reason:nth-child(even) .reason-ic { background: linear-gradient(135deg, var(--lime), var(--green-deep)); }
.reason-ic svg { width: 26px; height: 26px; }
.reason h3 { font-size: 1.5rem; text-transform: uppercase; }
.reason p { color: var(--muted); }
.pk-head { display: flex; justify-content: space-between; align-items: end; gap: 1rem; flex-wrap: wrap; margin-bottom: -1rem; }
.pk-head h3 { font-size: 2rem; text-transform: uppercase; }
.packages { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 1020px) { .packages { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .packages { grid-template-columns: 1fr; } }
.pk { position: relative; text-align: left; background: var(--surface); border: 1.5px solid var(--line); border-radius: 18px; padding: 1.3rem; display: flex; flex-direction: column; gap: .5rem; transition: border-color .2s, box-shadow .2s, transform .2s; }
.pk:hover { transform: translateY(-3px); box-shadow: 0 20px 40px -24px rgba(10,42,99,.45); }
.pk.hot { border-color: var(--lime); }
.pk.sel { border-color: var(--blue-ink); box-shadow: 0 0 0 3px rgba(13,78,166,.15); }
.pk-flag { position: absolute; top: -11px; left: 1.2rem; background: var(--lime); color: #082008; font-size: .68rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; border-radius: 999px; padding: .22rem .6rem; }
.pk b { font-family: var(--display); font-weight: 800; font-size: 1.6rem; text-transform: uppercase; line-height: 1; }
.pk small { color: var(--muted); font-size: .9rem; }
.pk ul { list-style: none; margin: .3rem 0 .6rem; padding: 0; display: grid; gap: .35rem; font-size: .92rem; }
.pk li { display: flex; gap: .5rem; align-items: baseline; }
.pk li::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--lime); flex: none; transform: translateY(-1px); }
.pk-cta { margin-top: auto; display: inline-flex; align-items: center; gap: .4rem; font-weight: 700; color: var(--blue-ink); }
.pk-cta svg { width: 18px; height: 18px; }
.contact { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); border: 1px solid var(--line); border-radius: 22px; overflow: hidden; background: var(--surface); }
@media (max-width: 860px) { .contact { grid-template-columns: 1fr; } }
.contact-side { background: linear-gradient(160deg, var(--blue), var(--navy)); color: #fff; padding: clamp(1.4rem, 3vw, 2.2rem); display: grid; gap: 1rem; align-content: start; }
.contact-side h3 { font-size: 2.2rem; text-transform: uppercase; }
.contact-side p { color: #dbe5f7; }
.contact-list { list-style: none; margin: .4rem 0 0; padding: 0; display: grid; gap: .8rem; }
.contact-list li { display: flex; gap: .7rem; align-items: center; }
.contact-list svg { width: 36px; height: 36px; padding: 8px; border-radius: 10px; background: rgba(255,255,255,.12); flex: none; color: var(--lime-text); }
.contact-form { padding: clamp(1.4rem, 3vw, 2.2rem); display: grid; gap: 1rem; align-content: start; }

.pk b { font-size: 1.4rem; overflow-wrap: anywhere; hyphens: auto; }

/* Infos */
.seg { display: inline-flex; gap: .3rem; padding: .3rem; background: var(--surface-2); border: 1px solid var(--line); border-radius: 14px; justify-self: start; max-width: 100%; overflow-x: auto; }
.seg button { display: inline-flex; align-items: center; gap: .5rem; border: 0; background: none; padding: .65rem 1.1rem; border-radius: 10px; font-weight: 700; color: var(--muted); white-space: nowrap; }
.seg button svg { width: 18px; height: 18px; }
.seg button[aria-selected="true"] { background: var(--surface); color: var(--blue-ink); box-shadow: 0 2px 8px rgba(10,42,99,.12); }
.faqx { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 2rem; align-items: start; }
@media (max-width: 900px) { .faqx { grid-template-columns: 1fr; } }
.faq-side { position: sticky; top: calc(100px + env(safe-area-inset-top, 0px)); display: grid; gap: 1rem; }
@media (max-width: 900px) { .faq-side { position: static; } }
.faq-search { display: flex; align-items: center; gap: .6rem; background: var(--surface); border: 1.5px solid var(--line); border-radius: 14px; padding: 0 .9rem; transition: border-color .2s, box-shadow .2s; }
.faq-search:focus-within { border-color: var(--blue-ink); box-shadow: 0 0 0 4px rgba(13,78,166,.12); }
.faq-search svg { width: 20px; height: 20px; color: var(--muted); flex: none; }
.faq-search input { border: 0; background: none; font: inherit; color: var(--ink); padding: .85rem 0; width: 100%; min-width: 0; outline: none; }
.faq-cats { display: grid; gap: .3rem; }
@media (max-width: 900px) { .faq-cats { display: flex; overflow-x: auto; gap: .4rem; } }
.faq-cats button { display: flex; align-items: center; gap: .7rem; border: 0; background: none; padding: .55rem .6rem; border-radius: 12px; font-weight: 600; text-align: left; color: var(--ink); white-space: nowrap; }
.faq-cats button:hover { background: var(--surface-2); }
.faq-cats button[aria-pressed="true"] { background: var(--navy); color: #fff; }
.fc-ic { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: var(--surface-2); color: var(--blue-ink); flex: none; }
.faq-cats button[aria-pressed="true"] .fc-ic { background: rgba(255,255,255,.14); color: var(--lime-text); }
.fc-ic svg { width: 18px; height: 18px; }
.faq-cats em { margin-left: auto; font-style: normal; font-size: .8rem; font-weight: 700; color: var(--muted); }
.faq-cats button[aria-pressed="true"] em { color: #cfe0ff; }
.faq-help { border-radius: 16px; padding: 1.1rem 1.2rem; background: radial-gradient(120% 140% at 100% 0%, rgba(76,193,58,.25), transparent 60%), var(--surface-2); border: 1px solid var(--line); display: grid; gap: .3rem; font-size: .92rem; }
.faq-help b { font-family: var(--display); font-size: 1.3rem; text-transform: uppercase; }
.faq-help p { color: var(--muted); }
.faq-help span { font-weight: 700; color: var(--blue-ink); }
@media (max-width: 900px) { .faq-help { display: none; } }
.faq-list { display: grid; gap: .7rem; min-width: 0; }
.faq-count { font-size: .82rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.fq { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; overflow: hidden; transition: box-shadow .25s, border-color .25s; }
.fq:hover { border-color: rgba(13,78,166,.35); }
.fq.open { border-color: transparent; box-shadow: 0 20px 40px -24px rgba(10,42,99,.45), inset 4px 0 0 var(--lime); }
.fq-q { width: 100%; display: flex; align-items: center; gap: 1rem; text-align: left; border: 0; background: none; padding: 1.05rem 1.2rem; }
.fq-ic { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--surface-2); color: var(--blue-ink); flex: none; transition: background .2s, color .2s; }
.fq.open .fq-ic { background: var(--blue); color: #fff; }
.fq-ic svg { width: 20px; height: 20px; }
.fq-t { font-weight: 700; font-size: 1.06rem; flex: 1; min-width: 0; }
.fq-tog { width: 32px; height: 32px; border-radius: 50%; border: 1.5px solid var(--line); flex: none; position: relative; transition: transform .25s, background .2s, border-color .2s; }
.fq-tog::before, .fq-tog::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; background: var(--blue-ink); transform: translate(-50%, -50%); border-radius: 2px; }
.fq-tog::after { transform: translate(-50%, -50%) rotate(90deg); transition: opacity .2s; }
.fq.open .fq-tog { background: var(--lime); border-color: var(--lime); transform: rotate(180deg); }
.fq.open .fq-tog::before, .fq.open .fq-tog::after { background: #082008; }
.fq.open .fq-tog::after { opacity: 0; }
.fq-a { padding: 0 1.2rem 1.2rem calc(1.2rem + 40px + 1rem); }
.fq-a p { color: var(--muted); max-width: 60ch; }
@media (max-width: 560px) { .fq-a { padding-left: 1.2rem; } }
.kfacts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 960px) { .kfacts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .kfacts { grid-template-columns: 1fr; } }
.kfact { position: relative; overflow: hidden; border-radius: 18px; padding: 1.3rem; display: grid; gap: .2rem; background: var(--navy); color: #fff; }
.kfact:nth-child(even) { background: linear-gradient(135deg, var(--blue), var(--navy)); }
.kf-ic { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: rgba(255,255,255,.12); color: var(--lime-text); margin-bottom: .6rem; }
.kf-ic svg { width: 22px; height: 22px; }
.kfact small { font-size: .74rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #aac0e8; }
.kfact b { font-family: var(--display); font-size: 1.8rem; font-weight: 800; line-height: 1.05; }
.kfact > span:last-child { color: #cfe0ff; font-size: .9rem; }
.block { display: grid; gap: 1.1rem; }
.block-h h2 { margin-top: .3rem; }
.stages { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; counter-reset: stg; }
@media (max-width: 860px) { .stages { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .stages { grid-template-columns: 1fr; } }
.stages li { position: relative; background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 1.2rem 1.2rem 1.3rem; display: grid; gap: .3rem; counter-increment: stg; }
.stages li::before { content: counter(stg); position: absolute; right: 1rem; top: .4rem; font-family: var(--display); font-size: 4rem; font-weight: 800; line-height: 1; color: var(--surface-2); -webkit-text-stroke: 1.5px var(--line); }
.stages li:last-child { background: var(--navy); color: #fff; border-color: transparent; }
.stages li:last-child::before { color: rgba(255,255,255,.06); -webkit-text-stroke: 1.5px rgba(255,255,255,.18); }
.stages li:last-child span { color: #cfe0ff; }
.st-day { justify-self: start; font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; background: rgba(76,193,58,.16); color: var(--green); border-radius: 999px; padding: .2rem .6rem; position: relative; }
.stages li:last-child .st-day { background: var(--lime); color: #082008; }
.stages b { font-family: var(--display); font-size: 1.6rem; font-weight: 800; text-transform: uppercase; position: relative; }
.stages span { color: var(--muted); font-size: .94rem; position: relative; }
.compx { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 860px) { .compx { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .compx { grid-template-columns: 1fr; } }
.cx { display: flex; gap: 1rem; align-items: center; background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 1.1rem 1.2rem; }
.cx-age { width: 60px; height: 60px; border-radius: 16px; display: grid; place-items: center; font-family: var(--display); font-size: 2.2rem; font-weight: 800; color: #fff; background: linear-gradient(135deg, var(--blue), var(--navy)); flex: none; }
.cx.w .cx-age { background: linear-gradient(135deg, var(--lime), var(--green-deep)); }
.cx b { display: block; font-size: 1.05rem; margin-bottom: .2rem; }
.cx div span { display: flex; align-items: center; gap: .35rem; font-size: .88rem; color: var(--muted); }
.cx div span svg { width: 14px; height: 14px; }
.hallx { display: grid; gap: .6rem; }
.hx { display: flex; align-items: center; gap: 1rem; text-align: left; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: .8rem 1.1rem; transition: border-color .2s, transform .2s; }
.hx:hover { border-color: var(--blue-ink); transform: translateX(4px); }
.hx-no { font-family: var(--display); font-size: 2rem; font-weight: 800; width: 44px; color: var(--blue-ink); text-align: center; flex: none; }
.hx b { display: block; }
.hx div span { font-size: .88rem; color: var(--muted); }
.hx div { flex: 1; min-width: 0; }
.hx-walk { font-size: .82rem; font-weight: 700; background: var(--surface-2); border: 1px solid var(--line); border-radius: 999px; padding: .25rem .7rem; white-space: nowrap; }
.rule-note { display: flex; gap: .7rem; align-items: center; background: rgba(13,78,166,.07); border: 1px solid rgba(13,78,166,.2); color: var(--blue-ink); border-radius: 14px; padding: .8rem 1rem; font-weight: 600; }
.rule-note svg { width: 22px; height: 22px; flex: none; }
.rulex { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1rem; }
.rx { grid-column: span 3; }
.rx:nth-child(n+3) { grid-column: span 2; }
.rx:nth-child(n+6) { grid-column: span 3; }
@media (max-width: 960px) { .rulex { grid-template-columns: 1fr 1fr; } .rx, .rx:nth-child(n+3), .rx:nth-child(n+6) { grid-column: auto; } .rx:last-child { grid-column: 1 / -1; } }
@media (max-width: 600px) { .rulex { grid-template-columns: 1fr; } }
.rx { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 1.4rem; display: grid; gap: .8rem; align-content: start; transition: box-shadow .25s, transform .25s, border-color .25s; }
.rx:hover { transform: translateY(-3px); border-color: transparent; box-shadow: 0 20px 40px -24px rgba(10,42,99,.45); }
.rx header { display: flex; justify-content: space-between; align-items: center; }
.rx-no { font-family: var(--display); font-size: 2.6rem; font-weight: 800; line-height: 1; color: var(--blue-ink); }
.rx-ic { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: linear-gradient(135deg, var(--lime), var(--green-deep)); color: #fff; }
.rx-ic svg { width: 22px; height: 22px; }
.rx h3 { font-size: 1.6rem; text-transform: uppercase; }
.rx ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.rx li { display: flex; gap: .6rem; align-items: flex-start; color: var(--muted); }
.rx li svg { width: 18px; height: 18px; color: var(--green); flex: none; margin-top: .2rem; }

.linkbtn { background: none; border: 0; padding: 0; color: var(--blue-ink); font-weight: 700; text-decoration: underline; }
/* Demo-Zeitschalter */
.simsw { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; padding: .35rem; border: 1px dashed var(--line); border-radius: 14px; justify-self: start; background: var(--surface-2); }
.simsw-l { display: inline-flex; align-items: center; gap: .4rem; font-size: .76rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); padding: 0 .5rem; }
.simsw-l svg { width: 16px; height: 16px; }
.simsw button { display: inline-flex; align-items: center; gap: .45rem; border: 0; background: none; padding: .5rem .9rem; border-radius: 10px; font-weight: 700; font-size: .9rem; color: var(--muted); }
.simsw button svg { width: 16px; height: 16px; }
.simsw button[aria-pressed="true"] { background: var(--surface); color: var(--ink); box-shadow: 0 2px 8px rgba(10,42,99,.12); }
/* Abschlusstabellen */
.champs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
@media (max-width: 860px) { .champs { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .champs { grid-template-columns: 1fr; } }
.champ { position: relative; display: flex; align-items: center; gap: .9rem; text-align: left; background: var(--surface); border: 1.5px solid var(--line); border-radius: 16px; padding: .8rem 1rem; transition: border-color .2s, box-shadow .2s; overflow: hidden; }
.champ:hover { border-color: rgba(13,78,166,.4); }
.champ[aria-pressed="true"] { border-color: var(--blue-ink); box-shadow: 0 0 0 3px rgba(13,78,166,.14); }
.champ-age { width: 46px; height: 46px; border-radius: 13px; display: grid; place-items: center; font-family: var(--display); font-size: 1.7rem; font-weight: 800; color: #fff; background: linear-gradient(135deg, var(--blue), var(--navy)); flex: none; }
.champ.w .champ-age { background: linear-gradient(135deg, var(--lime), var(--green-deep)); }
.champ small { display: block; font-size: .78rem; color: var(--muted); font-weight: 600; }
.champ b { display: block; font-size: 1.02rem; }
.champ-cup { width: 26px; height: 26px; color: #d9a400; margin-left: auto; flex: none; }
.final-card { background: var(--surface); border: 1px solid var(--line); border-radius: 22px; padding: clamp(1.2rem, 3vw, 2rem); display: grid; gap: 1.6rem; }
.final-head { display: flex; justify-content: space-between; align-items: end; gap: 1rem; flex-wrap: wrap; }
.final-head h2 { margin-top: .3rem; }
.podium { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; align-items: end; max-width: 760px; width: 100%; margin: 0 auto; }
.pod { display: grid; justify-items: center; text-align: center; gap: .3rem; min-width: 0; }
.pod b { font-family: var(--display); font-size: clamp(1.05rem, 2.4vw, 1.5rem); font-weight: 800; line-height: 1.05; text-transform: uppercase; overflow-wrap: anywhere; }
.pod small { font-size: .74rem; font-weight: 700; color: var(--muted); letter-spacing: .1em; }
.pod-medal { width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; font-family: var(--display); font-weight: 800; font-size: 1.6rem; color: #3a2a00; background: radial-gradient(circle at 30% 30%, #fff4c2, #e2b200 60%, #a87f00); box-shadow: 0 6px 16px -6px rgba(168,127,0,.7); }
.pod.p2 .pod-medal { color: #2c3440; background: radial-gradient(circle at 30% 30%, #ffffff, #c4cbd6 60%, #8a94a3); box-shadow: 0 6px 16px -6px rgba(90,100,115,.6); }
.pod.p3 .pod-medal { color: #3a1d06; background: radial-gradient(circle at 30% 30%, #ffd9b8, #c77b3a 60%, #8c4f1d); box-shadow: 0 6px 16px -6px rgba(140,79,29,.6); }
.pod-step { width: 100%; border-radius: 14px 14px 4px 4px; background: linear-gradient(180deg, var(--blue), var(--navy)); color: #fff; display: grid; place-items: center; margin-top: .4rem; }
.pod-step span { font-family: var(--display); font-size: 2.4rem; font-weight: 800; opacity: .35; }
.pod.p1 .pod-step { height: 130px; background: linear-gradient(180deg, var(--lime), var(--green-deep)); }
.pod.p2 .pod-step { height: 95px; }
.pod.p3 .pod-step { height: 70px; }
.final-tbl td:nth-child(3), .final-tbl th:nth-child(3) { text-align: left; }
.fplace { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--surface-2); font-weight: 800; color: var(--ink); font-size: .85rem; }
.fplace.f1 { background: #e2b200; color: #3a2a00; } .fplace.f2 { background: #c4cbd6; color: #2c3440; } .fplace.f3 { background: #c77b3a; color: #fff; }
.final-tbl tr.top td { font-weight: 700; }
/* Karte */
.maprow { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 1.2rem; align-items: start; }
@media (max-width: 960px) { .maprow { grid-template-columns: 1fr; } }
.emap { position: relative; border-radius: 22px; overflow: hidden; border: 1px solid var(--line); background: #dbe7f6; touch-action: none; }
.emap svg { display: block; width: 100%; height: auto; aspect-ratio: 1000 / 820; cursor: grab; max-width: 100%; }
.emap svg.grabbing { cursor: grabbing; }
.emap .sea { fill: #dbe7f6; }
.emap .land { fill: #f7f9fc; stroke: #b9c8dd; stroke-linejoin: round; transition: fill .2s; }
.emap .land.on { fill: #e9f6e6; stroke: #8fc985; }
.emap .arcs path { fill: none; stroke: var(--blue); stroke-opacity: .35; stroke-dasharray: 4 3; }
.emap .arcs path.hi { stroke: var(--lime); stroke-opacity: 1; stroke-dasharray: none; }
.emap .mk { cursor: pointer; outline: none; }
.emap .mk circle:not(.pulse) { fill: var(--blue); stroke: #fff; transition: fill .2s; }
.emap .mk:hover circle:not(.pulse), .emap .mk:focus circle:not(.pulse), .emap .mk.sel circle:not(.pulse) { fill: var(--lime); }
.emap .mk.host circle:not(.pulse) { fill: var(--green); }
.emap .pulse { fill: var(--lime); opacity: .35; animation: mpulse 2s ease-out infinite; transform-box: fill-box; transform-origin: center; }
@keyframes mpulse { from { transform: scale(.4); opacity: .6; } to { transform: scale(1.4); opacity: 0; } }
.emap text { font-family: var(--body); font-weight: 700; fill: #0f1d38; paint-order: stroke; stroke: #fff; pointer-events: none; }
.emap-ctrl { position: absolute; right: 12px; top: 12px; display: grid; gap: 6px; }
.emap-ctrl button { width: 38px; height: 38px; border-radius: 10px; border: 1px solid #c9d5e6; background: #fff; color: #0f1d38; font-size: 1.2rem; font-weight: 700; box-shadow: 0 4px 10px rgba(10,42,99,.12); }
.emap-tip { position: absolute; transform: translate(-50%, calc(-100% - 14px)); background: #0a2a63; color: #fff; border-radius: 10px; padding: .55rem .75rem; pointer-events: none; display: grid; gap: .1rem; font-size: .82rem; white-space: nowrap; box-shadow: 0 10px 24px rgba(0,0,0,.25); }
.emap-tip b { font-size: .95rem; }
.emap-tip span { color: #cfe0ff; }
.emap-legend { position: absolute; left: 12px; bottom: 12px; display: flex; gap: .8rem; flex-wrap: wrap; background: rgba(255,255,255,.9); border-radius: 10px; padding: .4rem .7rem; font-size: .78rem; font-weight: 600; color: #0f1d38; }
.emap-legend span { display: inline-flex; align-items: center; gap: .35rem; }
.lg { width: 12px; height: 12px; border-radius: 50%; display: inline-block; border: 2px solid #fff; box-shadow: 0 0 0 1px #c9d5e6; }
.lg.host { background: var(--green); } .lg.club { background: var(--blue); }
.ctry { background: var(--surface); border: 1px solid var(--line); border-radius: 22px; padding: 1.2rem; display: grid; gap: .3rem; }
.ctry h3 { font-size: 1.4rem; text-transform: uppercase; margin-bottom: .4rem; }
.ctry-row { display: grid; grid-template-columns: auto minmax(0, 1fr) 60px 28px; align-items: center; gap: .6rem; border: 0; background: none; padding: .45rem .5rem; border-radius: 10px; text-align: left; }
.ctry-row:hover { background: var(--surface-2); }
.ctry-row[aria-pressed="true"] { background: rgba(13,78,166,.08); }
.ctry-n { font-weight: 600; font-size: .92rem; line-height: 1.15; }
.ctry-n small { display: block; color: var(--muted); font-weight: 500; font-size: .76rem; }
.ctry-bar { height: 6px; border-radius: 3px; background: var(--surface-2); overflow: hidden; }
.ctry-bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--blue), var(--lime)); border-radius: 3px; }
.ctry-row b { text-align: right; font-variant-numeric: tabular-nums; }
/* Kapazität & Status */
.caps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 960px) { .caps { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .caps { grid-template-columns: 1fr; } }
.cap { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 1.1rem; display: grid; gap: .9rem; }
.cap-h { display: flex; align-items: center; gap: .8rem; }
.cap-h .cx-age { width: 46px; height: 46px; font-size: 1.7rem; border-radius: 13px; }
.cap.w .cx-age { background: linear-gradient(135deg, var(--lime), var(--green-deep)); }
.cap-h div { flex: 1; min-width: 0; }
.cap-h b { display: block; }
.cap-h small { color: var(--muted); font-size: .84rem; }
.capbar { display: flex; height: 10px; border-radius: 5px; background: var(--surface-2); overflow: hidden; gap: 2px; }
.capbar i { display: block; height: 100%; }
.s-confirmed { background: var(--green); } .s-invoice { background: #e5a100; } .s-received { background: var(--blue); } .s-waitlist { background: #98a3b8; }
.sdot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; flex: none; }
.entries { display: grid; gap: .5rem; }
.entry { display: grid; grid-template-columns: 52px minmax(0, 1.6fr) minmax(0, 1fr) 100px 160px; align-items: center; gap: 1rem; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: .7rem 1rem; }
.entry.hi { border-color: var(--lime); box-shadow: inset 4px 0 0 var(--lime); }
.entry-mono { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; font-family: var(--display); font-weight: 800; font-size: 1rem; color: #fff; background: linear-gradient(135deg, var(--blue), var(--navy)); flex: none; }
.entry-mono.host { background: linear-gradient(135deg, var(--lime), var(--green-deep)); }
.entry-main { min-width: 0; }
.entry-main b { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.entry-main span { display: flex; align-items: center; gap: .3rem; font-size: .85rem; color: var(--muted); }
.entry-main svg { width: 14px; height: 14px; flex: none; }
.entry-comp { font-size: .9rem; font-weight: 600; }
.entry-date { font-size: .85rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.spill { justify-self: end; display: inline-flex; align-items: center; gap: .45rem; font-size: .82rem; font-weight: 700; border-radius: 999px; padding: .3rem .75rem; background: var(--surface-2); border: 1px solid var(--line); white-space: nowrap; }
.spill.s-confirmed { color: var(--green); background: rgba(47,143,42,.08); border-color: rgba(47,143,42,.3); }
.spill.s-invoice { color: #a86f00; background: rgba(229,161,0,.1); border-color: rgba(229,161,0,.35); }
.spill.s-received { color: var(--blue-ink); background: rgba(13,78,166,.07); border-color: rgba(13,78,166,.25); }
.spill.s-waitlist { color: var(--muted); }
.spill .sdot { width: 8px; height: 8px; }
@media (max-width: 860px) {
  .entry { grid-template-columns: 44px minmax(0, 1fr) auto; grid-template-areas: "m main pill" "m comp date"; row-gap: .25rem; }
  .entry-mono { grid-area: m; align-self: start; }
  .entry-main { grid-area: main; } .entry-comp { grid-area: comp; font-size: .84rem; color: var(--muted); } .entry-date { grid-area: date; justify-self: end; } .spill { grid-area: pill; }
}
/* Turnierbüro */
.office-top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) minmax(0, 1fr); gap: 1rem; }
@media (max-width: 960px) { .office-top { grid-template-columns: 1fr; } }
.office-status { display: flex; gap: 1rem; align-items: center; background: var(--navy); color: #fff; border-radius: 18px; padding: 1.3rem; }
.office-status small, .office-where small { display: block; font-size: .74rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #aac0e8; }
.office-status b { display: block; font-family: var(--display); font-size: 1.7rem; font-weight: 800; line-height: 1.05; }
.office-status span:last-child { color: #cfe0ff; font-size: .9rem; }
.os-dot { width: 16px; height: 16px; border-radius: 50%; background: #e5a100; flex: none; box-shadow: 0 0 0 6px rgba(229,161,0,.2); }
.office-status.open .os-dot { background: var(--lime); box-shadow: 0 0 0 6px rgba(76,193,58,.25); animation: pulse 1.6s infinite; }
.office-where { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; background: linear-gradient(135deg, var(--blue), var(--navy)); color: #fff; border-radius: 18px; padding: 1.3rem; }
.office-where div { flex: 1; min-width: 180px; }
.office-where b { font-size: 1.1rem; }
.office-where .btn-line { background: rgba(255,255,255,.12); color: #fff; border-color: rgba(255,255,255,.25); }
.office-sos { display: flex; gap: 1rem; align-items: center; border-radius: 18px; padding: 1.3rem; background: rgba(224,38,43,.07); border: 1px solid rgba(224,38,43,.3); }
.office-sos b { font-family: var(--display); font-size: 3rem; font-weight: 800; color: var(--live); line-height: 1; }
.office-sos span { font-size: .92rem; }
.hours { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 860px) { .hours { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .hours { grid-template-columns: 1fr; } }
.hr { display: flex; align-items: center; gap: .9rem; background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 1rem 1.1rem; position: relative; }
.hr.now { border-color: var(--lime); box-shadow: 0 0 0 3px rgba(76,193,58,.18); }
.hr-d { width: 56px; height: 60px; border-radius: 14px; background: var(--navy); color: #fff; display: grid; place-items: center; align-content: center; font-size: .66rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; flex: none; }
.hr-d b { font-family: var(--display); font-size: 1.7rem; line-height: .9; }
.hr small { display: block; color: var(--muted); font-size: .82rem; }
.hr div b { font-family: var(--display); font-size: 1.45rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.hr .tag { position: absolute; top: .6rem; right: .6rem; }
.contacts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 1100px) { .contacts { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .contacts { grid-template-columns: 1fr; } }
.ct { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 1.2rem; display: grid; gap: .5rem; align-content: start; min-width: 0; }
.ct small { font-size: .74rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--green); }
.ct > b { font-family: var(--display); font-size: 1.45rem; font-weight: 800; line-height: 1.05; }
.ct-line { display: flex; align-items: center; gap: .55rem; border: 1px solid var(--line); background: var(--surface-2); border-radius: 10px; padding: .55rem .7rem; text-align: left; min-width: 0; }
.ct-line:hover { border-color: var(--blue-ink); }
.ct-line svg { width: 17px; height: 17px; color: var(--blue-ink); flex: none; }
.ct-line span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .9rem; font-weight: 600; }
.ct-line em { font-style: normal; font-size: .72rem; font-weight: 700; color: var(--muted); }
.ct.orga { background: var(--navy); color: #fff; border-color: transparent; }
.ct.orga small { color: var(--lime-text); }
.ct.orga ul { list-style: none; margin: .3rem 0 0; padding: 0; display: grid; gap: .55rem; }
.ct.orga li { display: flex; align-items: center; gap: .7rem; font-weight: 600; }
.ct.orga .entry-mono { width: 36px; height: 36px; border-radius: 10px; font-size: .85rem; background: rgba(255,255,255,.14); }
.office-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 860px) { .office-links { grid-template-columns: 1fr; } }

/* Players Party Teaser */
.party { position: relative; isolation: isolate; overflow: hidden; background: #050d22; color: #fff; }
.party-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -3; opacity: .35; filter: grayscale(1) contrast(1.2); mix-blend-mode: luminosity; }
.party::before { content: ""; position: absolute; inset: 0; z-index: -2; background: radial-gradient(60% 90% at 85% 20%, rgba(76,193,58,.45), transparent 60%), radial-gradient(50% 80% at 10% 100%, rgba(13,78,166,.75), transparent 60%), linear-gradient(90deg, rgba(5,13,34,.95) 30%, rgba(5,13,34,.6)); }
.party-beams { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.party-beams i { position: absolute; top: -40%; width: 22%; height: 180%; background: linear-gradient(180deg, rgba(95,211,74,.28), transparent 70%); filter: blur(8px); transform-origin: top center; animation: beam 7s ease-in-out infinite alternate; }
.party-beams i:nth-child(1) { left: 55%; } .party-beams i:nth-child(2) { left: 72%; animation-delay: -2.5s; background: linear-gradient(180deg, rgba(110,164,255,.3), transparent 70%); } .party-beams i:nth-child(3) { left: 88%; animation-delay: -5s; }
@keyframes beam { from { transform: rotate(-22deg); } to { transform: rotate(18deg); } }
.party-in { padding-block: clamp(3rem, 7vw, 5rem); display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 2.5rem; align-items: center; }
@media (max-width: 900px) { .party-in { grid-template-columns: 1fr; } }
.party-kicker { display: inline-flex; align-items: center; gap: .55rem; font-size: .8rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--lime-text); }
.party-h { font-family: var(--display); font-weight: 800; text-transform: uppercase; line-height: .82; font-size: clamp(4rem, 11vw, 8.5rem); margin: 1rem 0 1.2rem; letter-spacing: -.01em; }
.party-h span { display: block; }
.party-h span:last-child { color: transparent; -webkit-text-stroke: 2px var(--lime-text); text-shadow: 0 0 40px rgba(95,211,74,.45); }
.party-copy p { color: #d6e1f5; font-size: 1.1rem; max-width: 34rem; }
.party-actions { display: flex; gap: .8rem; flex-wrap: wrap; margin-top: 1.6rem; }
.party-dates { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.pdate { position: relative; overflow: hidden; border-radius: 20px; padding: 1.3rem 1.2rem; display: grid; justify-items: start; gap: .1rem; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.16); backdrop-filter: blur(10px); transition: transform .25s, border-color .25s; }
.pdate:hover { transform: translateY(-4px) rotate(-1deg); border-color: var(--lime); }
.pd-day { font-size: .78rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: #aac0e8; }
.pdate b { font-family: var(--display); font-size: clamp(4rem, 9vw, 5.6rem); font-weight: 800; line-height: .9; }
.pd-mon { font-family: var(--display); font-size: 1.3rem; font-weight: 700; text-transform: uppercase; color: #cfe0ff; }
.pd-time { margin-top: .7rem; display: inline-flex; font-weight: 800; font-size: .95rem; background: var(--lime); color: #082008; border-radius: 999px; padding: .3rem .8rem; }
.pwhere { grid-column: 1 / -1; display: flex; align-items: center; gap: .9rem; border-radius: 20px; padding: 1rem 1.2rem; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.16); backdrop-filter: blur(10px); }
.pwhere svg { width: 42px; height: 42px; padding: 9px; border-radius: 12px; background: var(--lime); color: #082008; flex: none; }
.pwhere b { display: block; font-family: var(--display); font-size: 1.6rem; font-weight: 800; text-transform: uppercase; line-height: 1; }
.pwhere span { color: #cfe0ff; font-size: .92rem; }

/* Werkstatt im Party-Teaser */
.pwerk { grid-column: 1 / -1; border-radius: 20px; padding: 1.1rem 1.2rem; background: linear-gradient(135deg, rgba(110,164,255,.18), rgba(255,255,255,.04)); border: 1px dashed rgba(255,255,255,.3); display: grid; gap: .3rem; }
.pw-tag { justify-self: start; font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #cfe0ff; }
.pwerk b { font-family: var(--display); font-size: 1.7rem; font-weight: 800; text-transform: uppercase; line-height: 1; }
.pwerk p { color: #d6e1f5; font-size: .92rem; }
/* Frühstück hervorgehoben */
.place.feature { grid-column: span 2; }
@media (max-width: 700px) { .place.feature { grid-column: auto; } }
.place.feature .place-vis { height: 150px; background: radial-gradient(120% 140% at 100% 0%, #ffd34d 0%, transparent 55%), linear-gradient(135deg, var(--lime), var(--green-deep)); }
.place-time { display: flex; align-items: baseline; gap: .4rem; font-family: var(--display); font-weight: 800; }
.place-time b { font-size: 3.4rem; line-height: .85; }
.place-time i { font-style: normal; font-size: 2rem; opacity: .7; }
.place-time small { font-family: var(--body); font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; margin-left: .4rem; }
/* Kapazität mit Platzlinie */
.capbar-wrap { position: relative; }
.cap-line { position: absolute; top: -5px; bottom: -5px; width: 2px; background: var(--ink); border-radius: 1px; }
.cap-line-lg { display: inline-block; width: 2px; height: 12px; background: var(--ink); vertical-align: -1px; margin-right: .2rem; }
.s-complete { background: var(--green); } .s-accepted { background: var(--blue); } .s-declined { background: #98a3b8; }
.spill.s-complete { color: var(--green); background: rgba(47,143,42,.08); border-color: rgba(47,143,42,.3); }
.spill.s-accepted { color: var(--blue-ink); }
/* Turnierinfos Intro */
.intro-facts { display: grid; gap: 1.2rem; }
.lead-big { font-size: clamp(1.15rem, 2vw, 1.4rem); line-height: 1.5; max-width: 60rem; color: var(--ink); }
.fact-pills { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; }
@media (max-width: 860px) { .fact-pills { grid-template-columns: 1fr 1fr; } }
.fact-pills div { display: grid; gap: .1rem; background: var(--surface-2); border: 1px solid var(--line); border-radius: 16px; padding: 1rem 1.1rem; }
.fact-pills svg { width: 22px; height: 22px; color: var(--green); margin-bottom: .3rem; }
.fact-pills b { font-family: var(--display); font-size: 1.6rem; font-weight: 800; line-height: 1.05; }
.fact-pills span { color: var(--muted); font-size: .88rem; }
/* Schiedsrichter */
.sr-intro { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 2rem; align-items: center; }
@media (max-width: 900px) { .sr-intro { grid-template-columns: 1fr; } }
.sr-copy { display: grid; gap: 1rem; justify-items: start; }
.sr-copy h2 { text-transform: uppercase; line-height: .95; }
.sr-copy p { color: var(--muted); font-size: 1.06rem; max-width: 40rem; }
.sr-quote { margin: 0; position: relative; overflow: hidden; border-radius: 22px; padding: 2rem 1.8rem; background: radial-gradient(120% 140% at 100% 0%, rgba(76,193,58,.35), transparent 55%), var(--navy); color: #fff; display: grid; gap: 1rem; box-shadow: 0 26px 50px -28px rgba(10,42,99,.7); }
.sr-q-ic { width: 54px; height: 54px; padding: 12px; border-radius: 16px; background: var(--lime); color: #082008; }
.sr-quote blockquote { margin: 0; font-family: var(--display); font-weight: 800; font-size: clamp(1.6rem, 3vw, 2.2rem); line-height: 1.05; text-transform: uppercase; }
.sr-quote figcaption { font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--lime-text); }
.perks { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 960px) { .perks { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .perks { grid-template-columns: 1fr; } }
.perk { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 1.3rem; display: grid; gap: .35rem; align-content: start; transition: transform .25s, box-shadow .25s, border-color .25s; }
.perk:hover { transform: translateY(-3px); border-color: transparent; box-shadow: 0 20px 40px -22px rgba(10,42,99,.45); }
.perk:nth-child(even) .reason-ic { background: linear-gradient(135deg, var(--lime), var(--green-deep)); }
.perk b { font-family: var(--display); font-size: 1.9rem; font-weight: 800; line-height: 1; text-transform: uppercase; margin-top: .3rem; }
.perk span { color: var(--muted); }
.perk em { font-style: normal; justify-self: start; font-size: .8rem; font-weight: 800; background: rgba(76,193,58,.15); color: var(--green); border-radius: 999px; padding: .2rem .6rem; margin-top: .2rem; }
.sr-two { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.2rem; }
@media (max-width: 860px) { .sr-two { grid-template-columns: 1fr; } }
.sr-needs { border-radius: 22px; padding: 1.6rem; }
.sr-needs h3 { font-size: 2rem; text-transform: uppercase; }
.sr-needs ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; }
.sr-needs li { display: flex; gap: .7rem; align-items: flex-start; }
.sr-needs li svg { width: 22px; height: 22px; padding: 3px; border-radius: 50%; background: var(--green); color: #fff; flex: none; margin-top: .1rem; }
.sr-table { border-radius: 22px; padding: 1.6rem; display: grid; gap: .8rem; align-content: start; background: linear-gradient(160deg, var(--blue), var(--navy)); color: #fff; }
.sr-table h3 { font-size: 2rem; text-transform: uppercase; }
.sr-table p { color: #dbe5f7; }
.sr-hours { display: flex; align-items: baseline; gap: .8rem; flex-wrap: wrap; border-top: 1px solid rgba(255,255,255,.2); padding-top: .9rem; margin-top: .2rem; }
.sr-hours b { font-family: var(--display); font-size: 3rem; font-weight: 800; line-height: 1; color: var(--lime-text); }
.sr-hours span { color: #cfe0ff; }
.chip-check { display: inline-flex; align-items: center; gap: .45rem; border: 1px solid var(--line); background: var(--surface-2); border-radius: 999px; padding: .4rem .85rem; font-weight: 600; font-size: .92rem; cursor: pointer; }
.chip-check:has(input:checked) { border-color: var(--blue-ink); background: rgba(13,78,166,.08); color: var(--blue-ink); }
.chip-check input { accent-color: var(--blue); margin: 0; }

.places.p-restaurants { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 960px) { .places.p-restaurants { grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px) { .places.p-restaurants { grid-template-columns: 1fr; } }

.rx-zf { font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.rx-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; }
.rx-list li { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: .7rem; align-items: start; color: var(--muted); }
.rx-n { width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; font-family: var(--display); font-weight: 800; font-size: 1.05rem; background: var(--surface-2); border: 1px solid var(--line); color: var(--blue-ink); }

/* Teilnahmepakete */
.pkg-choice { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
@media (max-width: 760px) { .pkg-choice { grid-template-columns: 1fr; } }
.pkg { position: relative; display: grid; gap: .4rem; align-content: start; border: 1.5px solid var(--line); border-radius: 16px; padding: 1.1rem; cursor: pointer; background: var(--surface); transition: border-color .2s, box-shadow .2s; }
.pkg:hover { border-color: rgba(13,78,166,.4); }
.pkg.on { border-color: var(--blue-ink); box-shadow: 0 0 0 3px rgba(13,78,166,.14); }
.pkg input { position: absolute; top: 1rem; right: 1rem; accent-color: var(--blue); width: 18px; height: 18px; }
.pkg-price b { font-family: var(--display); font-size: 2.2rem; font-weight: 800; line-height: 1; color: var(--blue-ink); }
.pkg-price small { display: block; font-size: .78rem; color: var(--muted); font-weight: 600; }
.pkg-name { font-weight: 800; font-size: 1.02rem; }
.pkg ul { list-style: none; margin: .2rem 0 0; padding: 0; display: grid; gap: .3rem; font-size: .9rem; }
.pkg li { display: flex; gap: .45rem; align-items: baseline; }
.pkg li::before { content: "✓"; color: var(--green); font-weight: 800; }
.pkg li.no::before { content: "+"; color: var(--muted); }
.fees .row.dep { border-top: 1px dashed rgba(255,255,255,.25); padding-top: .7rem; }
.fee-incl { display: grid; gap: .1rem; background: rgba(255,255,255,.08); border-radius: 10px; padding: .7rem .8rem; font-size: .88rem; color: #cfe0ff; }
.fee-incl b { color: var(--lime-text); font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; }

/* Check-in / Check-out */
.ci { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.2rem; }
@media (max-width: 900px) { .ci { grid-template-columns: 1fr; } }
.ci-keys { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; }
@media (max-width: 900px) { .ci-keys { grid-template-columns: 1fr 1fr; } }
.ci-keys div { background: var(--navy); color: #fff; border-radius: 16px; padding: 1rem 1.1rem; display: grid; gap: .15rem; }
.ci-keys div:nth-child(2) { background: linear-gradient(135deg, var(--lime), var(--green-deep)); }
.ci-keys svg { width: 22px; height: 22px; color: var(--lime-text); margin-bottom: .3rem; }
.ci-keys div:nth-child(2) svg { color: #fff; }
.ci-keys b { font-family: var(--display); font-size: 1.7rem; font-weight: 800; line-height: 1.05; }
.ci-keys span { font-size: .86rem; color: #dbe5f7; }
.ci-keys div:nth-child(2) span { color: #f0fff0; }
.ci-phase { background: var(--surface); border: 1px solid var(--line); border-radius: 20px; padding: 1.4rem; display: grid; gap: 1rem; align-content: start; }
.ci-phase header { display: flex; align-items: baseline; gap: .7rem; }
.ci-phase h3 { font-size: 2rem; text-transform: uppercase; }
.ci-tag { font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; border-radius: 999px; padding: .25rem .65rem; background: rgba(13,78,166,.1); color: var(--blue-ink); }
.ci-phase.out .ci-tag { background: rgba(47,143,42,.12); color: var(--green); }
.ci-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; counter-reset: ci; }
.ci-steps li { position: relative; display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 1rem; padding-bottom: 1.3rem; }
.ci-steps li:not(:last-child)::after { content: ""; position: absolute; left: 22px; top: 50px; bottom: 4px; width: 2px; background: var(--line); }
.ci-ic { width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: linear-gradient(135deg, var(--blue), var(--navy)); color: #fff; }
.ci-phase.out .ci-ic { background: linear-gradient(135deg, var(--lime), var(--green-deep)); }
.ci-ic svg { width: 22px; height: 22px; }
.ci-steps b { display: block; font-size: 1.05rem; margin-top: .15rem; }
.ci-steps p { color: var(--muted); margin-top: .2rem; }
.ci-fact { display: inline-flex; margin-top: .5rem; font-size: .8rem; font-weight: 800; border-radius: 999px; padding: .25rem .7rem; background: var(--surface-2); border: 1px solid var(--line); }

.ev-badge.tent { background: var(--surface-2); color: var(--muted); border: 1px dashed var(--line); }
.ev-card.hl .ev-badge.tent { background: rgba(255,255,255,.12); color: #fff; border-color: rgba(255,255,255,.3); }

.ow-sub { display: block; font-size: .85rem; color: #cfe0ff; margin-top: .2rem; }
.todo { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
@media (max-width: 860px) { .todo { grid-template-columns: 1fr; } }
.todo-col { background: var(--surface); border: 1px solid var(--line); border-radius: 20px; padding: 1.4rem; display: grid; gap: 1rem; align-content: start; }
.todo-col header { display: flex; align-items: baseline; gap: .7rem; flex-wrap: wrap; }
.todo-col h3 { font-size: 1.8rem; text-transform: uppercase; }
.todo-col.can .ci-tag { background: rgba(47,143,42,.12); color: var(--green); }
.todo-col.can .ci-ic { background: linear-gradient(135deg, var(--lime), var(--green-deep)); }
.todo-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; }
.todo-col li { display: flex; align-items: center; gap: .9rem; }
.todo-col li b { display: block; font-size: 1.05rem; }
.todo-col li small { color: var(--muted); }
.office-team { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 1.2rem; }
@media (max-width: 860px) { .office-team { grid-template-columns: 1fr; } }
.ct-main { background: linear-gradient(160deg, var(--blue), var(--navy)); color: #fff; border-radius: 20px; padding: 1.4rem; display: grid; gap: .8rem; align-content: start; }
.ct-main small { font-size: .74rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--lime-text); }
.ct-big { display: flex; align-items: center; gap: .9rem; text-align: left; border: 1px solid rgba(255,255,255,.2); background: rgba(255,255,255,.08); border-radius: 14px; padding: .9rem 1rem; color: #fff; min-width: 0; }
.ct-big:hover { background: rgba(255,255,255,.14); }
.ct-big svg { width: 40px; height: 40px; padding: 9px; border-radius: 12px; background: var(--lime); color: #082008; flex: none; }
.ct-big span { flex: 1; min-width: 0; }
.ct-big em { display: block; font-style: normal; font-size: .78rem; color: #cfe0ff; }
.ct-big b { display: block; font-size: 1.15rem; overflow-wrap: anywhere; }
.ct-big i { font-style: normal; font-size: .74rem; font-weight: 700; color: #cfe0ff; }
.team-grid { grid-template-columns: 1fr 1fr; }
@media (max-width: 480px) { .team-grid { grid-template-columns: 1fr; } }
.ct.orga ul.team-grid { display: grid; }

.footer .legal-links { display: inline-flex; gap: 1rem; flex-wrap: wrap; align-items: center; }
.footer .legal-links button { display: inline; padding: 0; text-decoration: underline; text-underline-offset: 3px; }
.legal-wrap { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 2.5rem; align-items: start; }
@media (max-width: 900px) { .legal-wrap { grid-template-columns: 1fr; } .legal-toc { display: none !important; } }
.legal-toc { position: sticky; top: calc(100px + env(safe-area-inset-top, 0px)); display: grid; gap: .2rem; background: var(--surface-2); border: 1px solid var(--line); border-radius: 16px; padding: 1rem; }
.legal-toc b { font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin-bottom: .3rem; }
.legal-toc a { color: var(--ink); text-decoration: none; font-size: .9rem; padding: .3rem .4rem; border-radius: 8px; }
.legal-toc a:hover { background: var(--surface); color: var(--blue-ink); }
.legal-body { max-width: 760px; display: grid; gap: 1.8rem; }
.legal-body h2 { font-size: 1.6rem; text-transform: uppercase; margin-bottom: .5rem; }
.legal-body p { color: var(--muted); line-height: 1.7; }
.legal-body p + p { margin-top: .7rem; }
.legal-body section { scroll-margin-top: 110px; }
.ph { background: #fff3a8; color: #5a4600; border-radius: 4px; padding: 0 .3rem; font-weight: 600; }
.ph-note { background: rgba(229,161,0,.1); border-color: rgba(229,161,0,.4); color: #8a5c00; }

.spw-prem { display: flex; align-items: center; gap: 1.2rem; flex-wrap: wrap; background: var(--surface); border: 1px solid var(--line); border-radius: 20px; padding: 1.3rem 1.5rem; box-shadow: 0 20px 40px -30px rgba(10,42,99,.45); }
.spw-prem .spw-mono { width: 68px; height: 68px; font-size: 1.9rem; border-radius: 18px; background: linear-gradient(135deg, var(--lime), var(--green-deep)); }
.spw-prem-txt { flex: 1; min-width: 200px; display: grid; gap: .1rem; }
.spw-prem-txt b { font-family: var(--display); font-weight: 800; font-size: clamp(1.8rem, 3.5vw, 2.4rem); line-height: 1; text-transform: uppercase; }
.spw-prem-txt small { color: var(--muted); font-size: .95rem; }
.spw-tier2 { font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--green); }
.spw-prem-icons { display: flex; gap: .5rem; flex-wrap: wrap; }
.spw-prem-icons span { display: inline-flex; align-items: center; gap: .35rem; font-size: .84rem; font-weight: 600; background: var(--surface-2); border: 1px solid var(--line); border-radius: 999px; padding: .35rem .75rem; }
.spw-prem-icons svg { width: 16px; height: 16px; color: var(--blue-ink); }
.spw-partners { display: grid; gap: .7rem; }
.spw-plist { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 700px) { .spw-plist { grid-template-columns: 1fr; } }
.spw-pc { display: flex; align-items: center; gap: .9rem; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 1rem 1.1rem; transition: transform .25s, box-shadow .25s; }
.spw-pc:hover { transform: translateY(-3px); box-shadow: 0 18px 36px -24px rgba(10,42,99,.45); }
.spw-pc b { font-family: var(--display); font-size: 1.4rem; font-weight: 700; text-transform: uppercase; line-height: 1.05; }
.spw-mono.sm { width: 46px; height: 46px; font-size: 1.15rem; border-radius: 13px; }

.spw-logo-plate { justify-self: start; background: #fff; border-radius: 14px; padding: .8rem 1.1rem; box-shadow: 0 10px 24px -12px rgba(0,0,0,.4); }
.spw-logo-plate img { display: block; height: 64px; width: auto; max-width: 100%; }
@media (max-width: 600px) { .spw-logo-plate img { height: 48px; } }
.spw-logo-box { width: 96px; height: 68px; flex: none; display: flex; align-items: center; justify-content: center; overflow: hidden; background: #fff; border: 1px solid #e3e9f2; border-radius: 14px; padding: .4rem; }
.spw-logo-box img { max-width: 100%; max-height: 100%; width: auto; height: auto; display: block; }
.spw-logo-box.sm { width: 64px; height: 56px; padding: .3rem; }
.spw-prem .spw-logo-box { width: 120px; height: 72px; }

/* Sponsoren – Logos als Hauptdarsteller */
.sx-tier { font-size: .7rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--green); }
.sx-main { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); border-radius: 26px; overflow: hidden; background: #fff; border: 1px solid #e3e9f2; box-shadow: 0 30px 60px -40px rgba(10,42,99,.55); }
@media (max-width: 800px) { .sx-main { grid-template-columns: 1fr; } }
.sx-main-logo { display: grid; gap: 1.2rem; align-content: center; justify-items: start; padding: clamp(1.6rem, 4vw, 3rem); }
.sx-main-logo img { width: min(520px, 100%); height: auto; display: block; }
.sx-main-logo p { color: #5b6882; font-size: 1.05rem; max-width: 32rem; }
.sx-main-cup { position: relative; isolation: isolate; min-height: 240px; display: grid; place-items: center; color: #fff; text-align: center; }
.sx-main-cup > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.sx-main-cup::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(160deg, rgba(10,42,99,.75), rgba(10,42,99,.95)); }
.sx-main-cup div { display: grid; justify-items: center; gap: .2rem; padding: 1.5rem; }
.sx-main-cup svg { width: 64px; height: 64px; padding: 14px; border-radius: 18px; background: var(--lime); color: #082008; margin-bottom: .6rem; }
.sx-main-cup span { font-size: .8rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #cfe0ff; }
.sx-main-cup b { font-family: var(--display); font-size: clamp(1.8rem, 3vw, 2.4rem); font-weight: 800; text-transform: uppercase; line-height: 1; }
.sx-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 1000px) { .sx-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .sx-grid { gap: .7rem; } .sx-prem { grid-column: 1 / -1; } .sx-tile { min-height: 190px; padding: .9rem .9rem .8rem; } .sx-logo { min-height: 100px; } .sx-logo img { max-height: 90px; } }
.sx-tile { position: relative; display: grid; grid-template-rows: auto 1fr auto; gap: .6rem; background: #fff; border: 1px solid #e3e9f2; border-radius: 22px; padding: 1.1rem 1.2rem 1rem; min-height: 250px; transition: transform .25s ease, box-shadow .25s ease, border-color .25s; }
.sx-tile:hover { transform: translateY(-5px); border-color: transparent; box-shadow: 0 26px 50px -30px rgba(10,42,99,.55); }
.sx-tile::after { content: ""; position: absolute; left: 1.2rem; right: 1.2rem; bottom: 0; height: 3px; border-radius: 3px 3px 0 0; background: linear-gradient(90deg, var(--blue), var(--lime)); opacity: 0; transition: opacity .25s; }
.sx-tile:hover::after { opacity: 1; }
.sx-prem { grid-column: span 1; background: linear-gradient(180deg, #fff 60%, #f1f8ef); border-color: rgba(47,143,42,.35); }
.sx-logo { display: flex; align-items: center; justify-content: center; padding: .6rem .4rem; min-height: 140px; }
.sx-logo img { max-width: 100%; max-height: 130px; width: auto; height: auto; display: block; transition: transform .3s ease; }
.sx-tile:hover .sx-logo img { transform: scale(1.04); }
.sx-name { font-family: var(--display); font-size: 1.6rem; font-weight: 800; text-transform: uppercase; color: #0f1d38; text-align: center; }
.sx-foot { display: grid; gap: .1rem; border-top: 1px solid #edf1f7; padding-top: .7rem; }
.sx-foot b { font-size: .95rem; color: #0f1d38; }
.sx-foot span { font-size: .82rem; color: #5b6882; }

.sx-tier.gold { color: var(--blue-ink); }
.places.p-hotels { grid-template-columns: repeat(2, minmax(0, 1fr)); } @media (max-width: 760px) { .places.p-hotels { grid-template-columns: 1fr; } }

.place.wide { grid-column: span 2; }
@media (max-width: 960px) { .place.wide { grid-column: auto; } }

.places.p-schools{grid-template-columns:repeat(3,minmax(0,1fr));}
@media (max-width:960px){.places.p-schools{grid-template-columns:1fr;}}

/* ---------- Hauptsponsor-Präsenz ---------- */
.fb-sponsor { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 1rem; background: #fff; border: 0; border-radius: 8px; padding: .7rem 1rem; margin-top: .2rem; cursor: pointer; transition: transform .15s; }
.fb-sponsor:hover { transform: translateY(-1px); }
.fb-sponsor small, .presented small, .rep-sponsor small, .sband-main small { font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #5b6b86; }
.fb-sponsor img { height: 40px; width: auto; }
.presented { display: inline-flex; align-items: center; gap: .9rem; margin-top: 1.2rem; background: #fff; border: 0; border-radius: 8px; padding: .55rem .9rem; cursor: pointer; }
.presented img { height: 32px; width: auto; }
.rep-sponsor { display: flex; align-items: center; justify-content: center; gap: .9rem; margin-top: 1.4rem; padding-top: 1rem; border-top: 1px solid var(--line, #e3e8f0); }
.rep-sponsor img { height: 30px; width: auto; }
.sband { background: #fff; border-top: 1px solid #e6ebf3; }
.sband .wrap { display: flex; align-items: center; gap: 2rem; padding-block: 1.6rem; flex-wrap: wrap; }
.sband-main { display: flex; flex-direction: column; align-items: flex-start; gap: .35rem; background: none; border: 0; padding: 0 2rem 0 0; border-right: 1px solid #e6ebf3; cursor: pointer; }
.sband-main img { height: 56px; width: auto; }
.sband-rest { display: flex; align-items: center; gap: 1.8rem; flex-wrap: wrap; flex: 1; justify-content: flex-end; }
.sband-rest button { background: none; border: 0; padding: 0; cursor: pointer; opacity: .75; filter: grayscale(1); transition: opacity .15s, filter .15s; }
.sband-rest button:hover { opacity: 1; filter: none; }
.sband-rest img { height: 32px; width: auto; max-width: 130px; object-fit: contain; }
@media (max-width: 700px) {
  .sband .wrap { flex-direction: column; align-items: center; gap: 1.2rem; }
  .sband-main { align-items: center; border-right: 0; padding: 0; }
  .sband-rest { justify-content: center; gap: 1.2rem; }
  .sband-rest img { height: 26px; }
}

/* ---------- Livestream ---------- */
.rec { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: #ff3b3b; box-shadow: 0 0 0 0 rgba(255,59,59,.6); animation: recpulse 1.6s infinite; flex: none; }
@keyframes recpulse { 0% { box-shadow: 0 0 0 0 rgba(255,59,59,.55); } 70% { box-shadow: 0 0 0 8px rgba(255,59,59,0); } 100% { box-shadow: 0 0 0 0 rgba(255,59,59,0); } }
.stream { background: linear-gradient(135deg, #0a2a63 0%, #071d47 60%, #0d4ea6 140%); color: #fff; position: relative; overflow: hidden; }
.stream::after { content: ""; position: absolute; right: -10%; top: -40%; width: 60%; height: 180%; background: radial-gradient(closest-side, rgba(95,211,74,.18), transparent); pointer-events: none; }
.stream-in { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(2rem, 5vw, 4rem); align-items: center; padding-block: clamp(3rem, 6vw, 4.5rem); position: relative; z-index: 1; }
.stream-kicker { display: inline-flex; align-items: center; gap: .6rem; font-size: .8rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: #ffb3b3; background: rgba(255,59,59,.12); border: 1px solid rgba(255,59,59,.35); padding: .35rem .8rem; border-radius: 999px; }
.stream h2 { font-family: var(--display); font-weight: 800; text-transform: uppercase; font-size: clamp(2.2rem, 4.6vw, 3.6rem); line-height: .95; margin: 1rem 0 1rem; }
.stream-copy p { color: #d6e2f7; font-size: 1.08rem; max-width: 34rem; }
.stream-actions { display: flex; gap: .8rem; flex-wrap: wrap; margin-top: 1.6rem; }
.stream-actions .btn svg { width: 20px; height: 20px; }
.stream-src { display: block; margin-top: 1.1rem; color: #9fb3d6; font-size: .85rem; }
.stream-src b { color: #fff; }
.stream-screen { position: relative; display: block; aspect-ratio: 16 / 9; border-radius: 14px; overflow: hidden; background: #000; box-shadow: 0 30px 60px -20px rgba(0,0,0,.6), 0 0 0 1px rgba(255,255,255,.12); text-decoration: none; color: #fff; }
.stream-screen img { width: 100%; height: 100%; object-fit: cover; opacity: .72; transition: transform .5s, opacity .3s; }
.stream-screen:hover img { transform: scale(1.03); opacity: .85; }
.stream-screen::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.05) 50%, rgba(5,13,34,.85)); }
.ss-live { position: absolute; top: 14px; left: 14px; z-index: 2; display: inline-flex; align-items: center; gap: .45rem; background: #e11d2a; color: #fff; font-weight: 800; font-size: .78rem; letter-spacing: .12em; padding: .3rem .65rem; border-radius: 6px; }
.ss-live .rec { background: #fff; width: 7px; height: 7px; }
.ss-play { position: absolute; z-index: 2; left: 50%; top: 46%; transform: translate(-50%, -50%); width: 84px; height: 84px; border-radius: 50%; background: rgba(255,255,255,.18); backdrop-filter: blur(6px); border: 2px solid rgba(255,255,255,.7); display: grid; place-items: center; transition: transform .2s, background .2s; }
.ss-play svg { width: 44px; height: 44px; }
.stream-screen:hover .ss-play { transform: translate(-50%, -50%) scale(1.08); background: var(--green); border-color: var(--green); }
.ss-halls { position: absolute; z-index: 2; left: 14px; right: 14px; bottom: 14px; display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; }
.ss-halls span { background: rgba(255,255,255,.12); backdrop-filter: blur(4px); border: 1px solid rgba(255,255,255,.18); border-radius: 6px; padding: .35rem .4rem; font-size: .75rem; font-weight: 700; display: flex; align-items: center; gap: .35rem; justify-content: center; white-space: nowrap; }
.ss-halls b { color: var(--lime); }
.tb-live { display: inline-flex; align-items: center; gap: .45rem; color: #fff; text-decoration: none; font-weight: 700; background: rgba(0,0,0,.18); padding: .2rem .65rem; border-radius: 999px; }
.tb-live:hover { background: rgba(0,0,0,.3); }
.ph-stream { margin-top: 1.2rem; margin-right: .6rem; }
.ph-stream svg { width: 20px; height: 20px; }
.rep-stream { display: flex; align-items: center; justify-content: center; gap: .6rem; margin-top: 1.4rem; padding: .8rem 1rem; border-radius: 10px; background: #0a2a63; color: #fff; text-decoration: none; font-weight: 700; }
.rep-stream:hover { background: #0d4ea6; }
.rep-stream svg { width: 18px; height: 18px; }
@media (max-width: 900px) { .stream-in { grid-template-columns: 1fr; } .stream-screen { order: -1; } }
@media (max-width: 480px) { .ss-halls span { font-size: .65rem; padding: .25rem .2rem; } .ss-play { width: 64px; height: 64px; } .ss-play svg { width: 34px; height: 34px; } }
@media (max-width: 480px) { .topbar .tb-date { display: none; } .topbar .wrap { justify-content: flex-end; } }
.stream h2 span { display: block; } .stream h2 .g { color: var(--lime); }

.sr-person { border: 1px solid var(--line); border-radius: 12px; padding: 1rem 1.1rem 1.2rem; margin: 0; min-width: 0; background: var(--surface-2, #f7f9fc); }
.sr-person legend { display: inline-flex; align-items: center; gap: .55rem; font-weight: 800; padding: 0 .4rem; font-size: 1rem; }
.sr-no { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--blue, #0d4ea6); color: #fff; font-size: .85rem; }
@media (max-width: 600px) { .sr-person .grid2 { grid-template-columns: 1fr; } }

/* ---------- Mittendrin: News ---------- */
.backlink { display: inline-flex; align-items: center; gap: .35rem; background: none; border: 0; padding: .3rem 0; color: var(--blue, #0d4ea6); font-weight: 700; cursor: pointer; margin-bottom: 1rem; }
.backlink svg { width: 18px; height: 18px; }
.news-head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.news-head h2 { margin-top: .2rem; }
.nfilter { display: flex; gap: .5rem; flex-wrap: wrap; }
.nfilter button { border: 1px solid var(--line); background: var(--surface); border-radius: 999px; padding: .45rem 1rem; font-weight: 700; font-size: .9rem; color: var(--ink); cursor: pointer; }
.nfilter button[aria-pressed="true"] { background: var(--navy); border-color: var(--navy); color: #fff; }
.nmeta { display: flex; align-items: center; gap: .6rem; font-size: .8rem; color: var(--muted); font-weight: 600; flex-wrap: wrap; }
.ncat { display: inline-block; background: rgba(76,193,58,.14); color: #23801b; font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; padding: .2rem .55rem; border-radius: 5px; }
.news-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 1.4rem; }
.nlead { position: relative; display: block; border: 0; padding: 0; border-radius: 16px; overflow: hidden; min-height: 440px; text-align: left; cursor: pointer; background: #000; color: #fff; isolation: isolate; }
.nlead img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .5s; }
.nlead:hover img { transform: scale(1.03); }
.nlead::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(5,13,34,0) 25%, rgba(5,13,34,.92) 85%); }
.nl-body { position: absolute; left: 0; right: 0; bottom: 0; padding: clamp(1.2rem, 3vw, 2rem); display: grid; gap: .6rem; }
.nl-body .nmeta { color: #cfe0ff; }
.nl-body .ncat { background: var(--lime); color: #0a2a63; }
.nl-body b { font-family: var(--display); font-size: clamp(1.5rem, 2.8vw, 2.2rem); line-height: 1.08; font-weight: 800; }
.nl-p { color: #dbe6f8; max-width: 38rem; }
.nl-go { display: inline-flex; align-items: center; gap: .4rem; font-weight: 800; color: var(--lime); }
.nl-go svg { width: 18px; height: 18px; }
.nside { display: grid; gap: 1rem; align-content: start; }
.nrow { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 1rem; border: 1px solid var(--line); background: var(--surface); border-radius: 14px; padding: .7rem; text-align: left; cursor: pointer; transition: border-color .15s, box-shadow .15s, transform .15s; color: var(--ink); }
.nrow:hover, .ncard:hover { border-color: rgba(13,78,166,.35); box-shadow: 0 10px 24px -14px rgba(10,42,99,.35); transform: translateY(-2px); }
.nr-img { border-radius: 10px; overflow: hidden; aspect-ratio: 4 / 3; position: relative; }
.nr-img img, .nc-img img { position: absolute; inset: 0; }
.nc-img { position: relative; }
.nr-img img, .nc-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nr-body { display: grid; gap: .35rem; align-content: center; }
.nr-body b, .nc-body b { font-size: 1.05rem; line-height: 1.25; }
.nr-p { color: var(--muted); font-size: .9rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ncards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; }
.ncard { display: grid; grid-template-rows: auto 1fr; border: 1px solid var(--line); background: var(--surface); border-radius: 14px; overflow: hidden; padding: 0; text-align: left; cursor: pointer; transition: border-color .15s, box-shadow .15s, transform .15s; color: var(--ink); }
.nc-img { aspect-ratio: 16 / 9; overflow: hidden; }
.nc-body { display: grid; gap: .45rem; padding: 1rem 1.1rem 1.2rem; align-content: start; }
/* Artikel */
.art-read { max-width: 760px; margin-inline: auto; }
.art-meta { display: flex; gap: .8rem; align-items: center; color: var(--muted); font-weight: 600; font-size: .9rem; }
.art-read h1 { font-family: var(--display); font-weight: 800; font-size: clamp(1.9rem, 4.4vw, 3rem); line-height: 1.05; margin: .8rem 0 .8rem; }
.art-lead { font-size: 1.2rem; color: var(--ink); opacity: .85; }
.art-fig { margin: 1.6rem 0; border-radius: 16px; overflow: hidden; aspect-ratio: 16 / 9; }
.art-fig img { width: 100%; height: 100%; object-fit: cover; display: block; }
.art-body p { font-size: 1.08rem; line-height: 1.7; margin-bottom: 1rem; }
.art-actions { display: flex; gap: .7rem; flex-wrap: wrap; margin-top: 1.2rem; }
.art-actions .btn svg { width: 18px; height: 18px; }
.art-more { max-width: 1100px; margin: 3.4rem auto 0; border-top: 1px solid var(--line); padding-top: 2rem; }
.art-more h2 { margin-bottom: 1.2rem; }
/* Galerien */
.albums { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.6rem 1.4rem; }
.alb { border: 0; background: none; padding: 0; text-align: left; cursor: pointer; display: grid; gap: .9rem; color: var(--ink); }
.alb-stack { position: relative; display: block; aspect-ratio: 4 / 3; border-radius: 14px; margin-top: 14px; min-height: 0; }
.alb-stack::before, .alb-stack::after { content: ""; position: absolute; left: 7%; right: 7%; height: 100%; border-radius: 14px; background: #b9cbea; z-index: 0; top: -14px; opacity: .6; }
.alb-stack::after { top: -7px; left: 3.5%; right: 3.5%; opacity: .9; background: #9fb6e0; }
.alb-stack img { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; object-fit: cover; border-radius: 14px; display: block; box-shadow: 0 14px 28px -16px rgba(10,42,99,.55); transition: transform .3s; }
.alb:hover .alb-stack img { transform: translateY(-4px); }
.alb-n { position: absolute; z-index: 2; right: 10px; bottom: 10px; display: inline-flex; align-items: center; gap: .35rem; background: rgba(5,13,34,.75); color: #fff; font-weight: 800; font-size: .82rem; padding: .3rem .6rem; border-radius: 999px; backdrop-filter: blur(4px); }
.alb-n svg, .alb-count svg { width: 16px; height: 16px; }
.alb-body { display: grid; gap: .25rem; }
.alb-body small { color: var(--muted); font-weight: 700; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.alb-body b { font-size: 1.2rem; }
.alb-body span { color: var(--muted); font-size: .92rem; }
.alb-head { display: flex; justify-content: space-between; align-items: end; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.4rem; }
.alb-head h1 { font-family: var(--display); font-weight: 800; font-size: clamp(1.9rem, 4.4vw, 3rem); margin: .3rem 0 .4rem; }
.alb-head p { color: var(--muted); max-width: 40rem; }
.alb-count { display: inline-flex; align-items: center; gap: .4rem; font-weight: 800; background: var(--surface); border: 1px solid var(--line); padding: .45rem .9rem; border-radius: 999px; }
.alb-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 200px; gap: .8rem; }
.alb-grid button { position: relative; border: 0; padding: 0; border-radius: 12px; overflow: hidden; cursor: zoom-in; background: #000; }
.alb-grid button.big { grid-column: span 2; grid-row: span 2; }
.alb-grid img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s, opacity .3s; }
.alb-grid button:hover img { transform: scale(1.04); opacity: .9; }
.alb-grid span { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.6rem .8rem .6rem; color: #fff; font-size: .85rem; font-weight: 600; text-align: left; background: linear-gradient(transparent, rgba(0,0,0,.7)); opacity: 0; transition: opacity .2s; }
.alb-grid button:hover span, .alb-grid button:focus-visible span { opacity: 1; }
@media (max-width: 960px) {
  .news-grid { grid-template-columns: 1fr; }
  .nlead { min-height: 360px; }
  .ncards, .albums { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .alb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 160px; }
}
@media (max-width: 600px) {
  .ncards, .albums { grid-template-columns: 1fr; }
  .nrow { grid-template-columns: 96px minmax(0, 1fr); }
  .nr-p { display: none; }
  .alb-grid span { opacity: 1; }
}
.alb, .ncard { grid-template-columns: minmax(0, 1fr); width: 100%; min-width: 0; }
.alb > *, .ncard > * { min-width: 0; }
.alb, .ncard { align-content: start; }
@media (max-width: 600px) { .nfilter { flex-wrap: nowrap; overflow-x: auto; margin-inline: -16px; padding-inline: 16px; scrollbar-width: none; } .nfilter button { flex: none; } }
@media (max-width: 600px) { .pagehead h1 { font-size: clamp(1.9rem, 8.6vw, 2.6rem); overflow-wrap: anywhere; } }
@media (max-width: 600px) { .hero .bg { inset: 0 0 auto 0; width: 100%; height: 52%; opacity: .9; background-position: 32% 20%; } .hero::before { background: linear-gradient(180deg, rgba(10,42,99,.3) 0%, rgba(10,42,99,.5) 28%, rgba(10,42,99,.82) 44%, var(--navy) 54%); } }
.maprow.nomap { grid-template-columns: 1fr; }
.portal-go { display: grid; gap: 1rem; align-content: center; justify-items: start; padding: clamp(1.4rem, 3vw, 2.4rem); }
@media (max-width: 600px) { .login .art p { font-size: 1.5rem; padding-right: 1rem; overflow-wrap: anywhere; } .portal-go .btn { width: 100%; justify-content: center; white-space: normal; } }

/* MyTeam mit TurnierOS (0.41) */
.mt-todo { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.mt-todo li { padding: .55rem .8rem; border-radius: 8px; background: var(--surface-2, #f3f5f8); border-left: 4px solid var(--line); font-size: .95rem; }
.mt-todo li.t-error { border-left-color: var(--live); }
.mt-todo li.t-warning { border-left-color: #e0a100; }
.mt-todo li.t-info { border-left-color: var(--blue); }
.teamhead select { padding: .45rem .6rem; border-radius: 8px; border: 1px solid var(--line); font: inherit; background: var(--surface); }
.mt-add { display: grid; gap: .6rem; margin-bottom: .6rem; }
.mt-add2 { grid-template-columns: 1fr 1fr; }
.mt-add3 { grid-template-columns: 1.3fr 1fr .8fr; }
@media (max-width: 560px) { .mt-add2, .mt-add3 { grid-template-columns: 1fr; } }

/* Fehlerseite, wenn TurnierOS nicht erreichbar ist */
.load-error { min-height: 100vh; display: grid; place-content: center; justify-items: center; gap: 1rem; padding: 2rem var(--gut, 1rem); text-align: center; background: var(--bg); }
.load-error img { width: 110px; height: auto; }
.load-error h1 { font-size: 2.4rem; }
.load-error p { max-width: 34rem; color: var(--muted); }
