/* ==========================================================================
   DCG-Health – Website
   Farben und Schrift nach bisherigem CD (Elementor-Kit):
   Rostrot #A63117, Petrol #15779B, Hellblau #80A7D9, Helvetica.
   Keine Webfonts, keine Fremdquellen.
   ========================================================================== */

:root {
  --rot: #a63117;
  --rot-dunkel: #85260f;
  --rot-hell: #f6e7e2;
  --petrol: #15779b;
  --petrol-dunkel: #0e5470;
  --petrol-tief: #0c374a;
  --blau: #80a7d9;
  --blau-hell: #e9f0f8;
  --tinte: #1b262c;
  --text: #33424a;
  --grau: #5d6b73;
  --linie: #d9e0e4;
  --flaeche: #f3f5f6;
  --papier: #ffffff;

  --schrift: "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Noto Sans CJK SC", sans-serif;

  --rahmen: 1200px;
  --rand: clamp(1rem, 4vw, 2.5rem);
  --luft: clamp(3rem, 7vw, 6rem);
  --radius: 4px;
  --schatten: 0 1px 2px rgba(12, 55, 74, .06), 0 8px 24px rgba(12, 55, 74, .07);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 5.5rem; }
body {
  margin: 0;
  font-family: var(--schrift);
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--text);
  background: var(--papier);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
.l-zh body, body.l-zh { line-height: 1.8; letter-spacing: .01em; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--petrol); text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { color: var(--rot); }
h1, h2, h3, h4 { color: var(--tinte); line-height: 1.2; margin: 0 0 .6em; font-weight: 700; letter-spacing: -.01em; }
p { margin: 0 0 1em; }
:focus-visible { outline: 3px solid var(--blau); outline-offset: 2px; }
main:focus { outline: none; }
[hidden] { display: none !important; }

.rahmen { width: 100%; max-width: var(--rahmen); margin-inline: auto; padding-inline: var(--rand); }
.schmal { max-width: 860px; }
.sprung { position: absolute; left: -999px; top: 0; background: var(--tinte); color: #fff; padding: .6rem 1rem; z-index: 100; }
.sprung:focus { left: 1rem; }

/* ── Kleine Marke über Überschriften ─────────────────────────────── */
.marke-klein {
  display: flex; align-items: center; gap: .6rem; flex-wrap: wrap;
  font-size: .78rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase;
  color: var(--rot); margin: 0 0 .75rem;
}
.marke-klein::before { content: ""; width: 1.6rem; height: 2px; background: currentColor; flex: none; }
.marke-klein a { color: inherit; text-decoration: none; }
.marke-klein a:hover { text-decoration: underline; }
.marke-klein--hell { color: #fff; }
.l-zh .marke-klein { letter-spacing: .04em; }

/* ── Knöpfe ──────────────────────────────────────────────────────── */
.knopf {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  min-height: 2.9rem; padding: .7rem 1.4rem;
  font: inherit; font-weight: 700; font-size: .95rem; line-height: 1.2;
  color: #fff; background: var(--rot); border: 2px solid var(--rot); border-radius: var(--radius);
  text-decoration: none; cursor: pointer; transition: background .15s, border-color .15s, color .15s;
}
.knopf:hover { background: var(--rot-dunkel); border-color: var(--rot-dunkel); color: #fff; }
.knopf--hell { background: #fff; border-color: #fff; color: var(--rot); }
.knopf--hell:hover { background: var(--rot-hell); border-color: var(--rot-hell); color: var(--rot-dunkel); }
.knopf--rand { background: transparent; border-color: rgba(255,255,255,.7); color: #fff; }
.knopf--rand:hover { background: rgba(255,255,255,.12); border-color: #fff; color: #fff; }
.knopf--leise { background: transparent; color: var(--petrol); border-color: var(--linie); }
.knopf--leise:hover { background: var(--flaeche); color: var(--petrol-dunkel); border-color: var(--petrol); }
.knopf--voll { width: 100%; margin-top: 1.25rem; }
.knopf:disabled { opacity: .6; cursor: wait; }

/* ── Kopf ────────────────────────────────────────────────────────── */
.kopf {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid var(--linie);
  backdrop-filter: saturate(1.4) blur(8px);
}
.kopf__innen { display: flex; align-items: center; gap: 1.5rem; min-height: 4.5rem; }
.marke { display: flex; align-items: center; gap: .9rem; color: var(--petrol); text-decoration: none; flex: none; }
.marke svg { width: 132px; height: auto; }
.marke:hover { color: var(--petrol-dunkel); }
.marke__claim {
  font-size: .72rem; line-height: 1.25; color: var(--grau); max-width: 15.5em;
  border-left: 1px solid var(--linie); padding-left: .9rem; display: none;
}
@media (min-width: 1480px) { .marke__claim { display: block; } }

.kopf__menue {
  margin-left: auto; display: inline-flex; align-items: center; gap: .6rem;
  font: inherit; font-weight: 700; font-size: .9rem; color: var(--tinte);
  background: none; border: 1px solid var(--linie); border-radius: var(--radius); padding: .55rem .85rem; cursor: pointer;
}
.kopf__menue-striche, .kopf__menue-striche::before, .kopf__menue-striche::after {
  display: block; width: 18px; height: 2px; background: currentColor; position: relative; transition: transform .2s;
}
.kopf__menue-striche::before, .kopf__menue-striche::after { content: ""; position: absolute; left: 0; }
.kopf__menue-striche::before { top: -6px; }
.kopf__menue-striche::after { top: 6px; }
.kopf__menue[aria-expanded="true"] .kopf__menue-striche { background: transparent; }
.kopf__menue[aria-expanded="true"] .kopf__menue-striche::before { transform: translateY(6px) rotate(45deg); }
.kopf__menue[aria-expanded="true"] .kopf__menue-striche::after { transform: translateY(-6px) rotate(-45deg); }

.nav { display: none; }
.nav.ist-offen {
  display: block; position: absolute; left: 0; right: 0; top: 100%;
  background: #fff; border-bottom: 1px solid var(--linie); box-shadow: var(--schatten);
  padding: .5rem var(--rand) 1.25rem; max-height: calc(100vh - 4.5rem); overflow: auto;
}
.nav__liste, .sprachen { list-style: none; margin: 0; padding: 0; }
.nav__liste a {
  display: block; padding: .8rem 0; border-bottom: 1px solid var(--flaeche);
  color: var(--tinte); font-weight: 700; text-decoration: none;
}
.nav__liste a[aria-current="page"] { color: var(--rot); }
.sprachen { display: flex; gap: .25rem; margin-top: 1rem; flex-shrink: 0; }
.sprachen li { flex-shrink: 0; }
.sprachen a {
  white-space: nowrap; word-break: keep-all; text-align: center; min-width: 2.4rem;
  display: inline-block; padding: .35rem .6rem; font-size: .82rem; font-weight: 700;
  color: var(--grau); text-decoration: none; border-radius: var(--radius);
}
.sprachen a[aria-current="true"] { background: var(--tinte); color: #fff; }
.sprachen a:hover { color: var(--rot); }
.sprachen a[aria-current="true"]:hover { color: #fff; }

@media (min-width: 1180px) {
  .kopf__menue { display: none; }
  .nav { display: flex !important; align-items: center; gap: 1.5rem; margin-left: auto; position: static; box-shadow: none; padding: 0; border: 0; }
  .nav__liste { display: flex; gap: .15rem; flex-shrink: 1; min-width: 0; }
  .nav__liste a { border: 0; padding: .5rem .55rem; font-size: .92rem; border-radius: var(--radius); position: relative; white-space: nowrap; }
  .nav__liste a:hover { color: var(--rot); }
  .nav__liste a[aria-current="page"]::after { content: ""; position: absolute; left: .6rem; right: .6rem; bottom: .1rem; height: 2px; background: var(--rot); }
  .sprachen { margin: 0; padding-left: 1.25rem; border-left: 1px solid var(--linie); }
}

.hinweisband { background: var(--blau-hell); color: var(--petrol-tief); font-size: .88rem; padding: .55rem 0; }

/* ── Startseite: Einstieg ────────────────────────────────────────── */
.held {
  position: relative; isolation: isolate; color: #fff; overflow: hidden;
  min-height: clamp(26rem, 62vh, 40rem); display: flex; align-items: flex-end;
  background: var(--petrol-tief);
}
.held__bild { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% 30%; z-index: -2; }
.held::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, rgba(12,55,74,.93) 0%, rgba(12,55,74,.78) 38%, rgba(12,55,74,.15) 75%),
              linear-gradient(0deg, rgba(12,55,74,.6) 0%, rgba(12,55,74,0) 45%);
}
.held__innen { padding-block: clamp(3rem, 8vw, 5.5rem); }
.held__titel { color: #fff; font-size: clamp(2.2rem, 5.4vw, 4rem); max-width: 13em; letter-spacing: -.02em; margin-bottom: .45em; }
.held__text { font-size: clamp(1.05rem, 1.6vw, 1.3rem); max-width: 36em; color: rgba(255,255,255,.92); }
.held__knoepfe { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1.75rem 0 0; }

/* ── Abschnitte ──────────────────────────────────────────────────── */
.abschnitt { padding-block: var(--luft) 0; }
.abschnitt:last-child { padding-bottom: var(--luft); }
main > .abschnitt:last-child, main > .rahmen:last-child { padding-bottom: var(--luft); }
.abschnitt--flaeche { background: var(--flaeche); padding-block: var(--luft); margin-top: var(--luft); }
.abschnitt--flaeche + .abschnitt--flaeche { margin-top: 0; }
.abschnitt--flaeche + .abschnitt { }
.spalten .abschnitt { padding-top: 2.5rem; }
.abschnitt__kopf { margin-bottom: 1.75rem; }
.abschnitt__kopf--zeile { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; flex-wrap: wrap; }
.abschnitt__titel { font-size: clamp(1.5rem, 2.8vw, 2.1rem); margin: 0; }
.mehrlink { font-weight: 700; text-decoration: none; white-space: nowrap; }

.seitenkopf { padding-top: clamp(2.5rem, 6vw, 4.5rem); }
.seitenkopf__titel { font-size: clamp(2rem, 4.6vw, 3.3rem); max-width: 18em; letter-spacing: -.02em; }
.seitenkopf__text { font-size: 1.2rem; max-width: 42em; color: var(--grau); }

.sprungleiste { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.75rem; }
.sprungleiste a {
  font-size: .88rem; font-weight: 700; text-decoration: none; color: var(--tinte);
  padding: .45rem .8rem; border: 1px solid var(--linie); border-radius: 999px; background: #fff;
}
.sprungleiste a:hover { border-color: var(--rot); color: var(--rot); }

/* ── Fließtext ───────────────────────────────────────────────────── */
.fliess { max-width: 44em; }
.fliess--gross { font-size: 1.12rem; }
.fliess > :last-child { margin-bottom: 0; }
.fliess h2, .fliess h3 { font-size: 1.3rem; margin-top: 2rem; }
.fliess h3:first-child, .fliess h2:first-child { margin-top: 0; }
.fliess h5 { font-size: 1rem; margin: 1rem 0 .4rem; }
.fliess ul { padding-left: 1.2rem; margin: 0 0 1em; }
.fliess li { margin-bottom: .35em; }
.fliess li::marker { color: var(--rot); }
.fliess strong { color: var(--tinte); }

.themen { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; }
.themen li {
  position: relative; padding: .9rem 1rem .9rem 3rem; background: var(--flaeche); border-radius: var(--radius);
  color: var(--tinte); font-weight: 500;
}
.themen li::before {
  content: ""; position: absolute; left: 1.1rem; top: 1.25rem; width: .9rem; height: .9rem;
  border: 2px solid var(--rot); border-radius: 50%;
}
.themen--zweispaltig { margin-block: 1.5rem; }
@media (min-width: 700px) { .themen--zweispaltig { grid-template-columns: 1fr 1fr; } }

.hinweiskasten {
  margin-top: 2.5rem; padding: 1.4rem 1.6rem; border-left: 4px solid var(--petrol);
  background: var(--blau-hell); border-radius: 0 var(--radius) var(--radius) 0;
}
.hinweiskasten h2, .hinweiskasten h3 { font-size: 1.15rem; margin-top: 0; }

/* ── Termine ─────────────────────────────────────────────────────── */
.termine { display: grid; gap: 1rem; }
@media (min-width: 800px) { .termine { grid-template-columns: 1fr 1fr; } }
.termin {
  display: grid; grid-template-columns: auto 1fr; gap: 1.25rem; align-items: start;
  padding: 1.5rem; border: 1px solid var(--linie); border-radius: var(--radius); background: #fff;
  position: relative; transition: border-color .15s, box-shadow .15s;
}
.termin:hover { border-color: var(--petrol); box-shadow: var(--schatten); }
.termin__art { margin: 0 0 .25rem; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--petrol); }
.termin__titel { font-size: 1.2rem; margin: 0 0 .4rem; }
.termin__titel a { color: var(--tinte); text-decoration: none; }
.termin__titel a::after { content: ""; position: absolute; inset: 0; }
.termin__meta { font-size: .92rem; color: var(--grau); margin: 0 0 .6rem; }
.termin__teaser { margin: 0; font-size: .97rem; }
.termin__anm { margin: .75rem 0 0; font-weight: 700; color: var(--rot); font-size: .92rem; }

.datum {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  min-width: 5.2rem; padding: .7rem .6rem .6rem; text-align: center;
  background: var(--rot); color: #fff; border-radius: var(--radius); line-height: 1;
}
.datum__tag { font-size: 2.1rem; font-weight: 700; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.datum__tag--lang { font-size: 1.15rem; letter-spacing: 0; }
.datum__monat { margin-top: .45rem; font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; opacity: .92; white-space: nowrap; }

.status { display: inline-block; padding: .2rem .55rem; border-radius: 999px; font-size: .7rem; letter-spacing: .06em; font-weight: 700; text-transform: uppercase; }
.status--kommend { background: var(--rot-hell); color: var(--rot-dunkel); }
.status--laeuft { background: #e3f3e8; color: #1d6b3a; }
.status--vorbei { background: var(--flaeche); color: var(--grau); }

/* ── Säulen ──────────────────────────────────────────────────────── */
.saeulen { display: grid; gap: 2rem; }
@media (min-width: 800px) { .saeulen { grid-template-columns: repeat(3, 1fr); gap: 3rem; } }
.saeule { border-top: 2px solid var(--tinte); padding-top: 1.25rem; }
.saeule__nr { display: block; font-size: .8rem; font-weight: 700; color: var(--rot); letter-spacing: .1em; margin-bottom: .6rem; }
.saeule__titel { font-size: 1.5rem; }
.saeule p { margin: 0; }

/* ── Formate ─────────────────────────────────────────────────────── */
.formate { display: grid; gap: 1.25rem; }
@media (min-width: 900px) { .formate { grid-template-columns: repeat(3, 1fr); } }
.format {
  display: flex; flex-direction: column; padding: 1.75rem; border-radius: var(--radius);
  background: #fff; border: 1px solid var(--linie); position: relative;
}
.format:hover { border-color: var(--petrol); }
.format__logo { color: var(--blau); height: 4.5rem; margin-bottom: 1.25rem; }
.format__logo svg { height: 100%; width: auto; }
.format__titel { font-size: 1.25rem; }
.format__titel a { color: var(--tinte); text-decoration: none; }
.format__titel a::after { content: ""; position: absolute; inset: 0; }
.format p:last-child { margin-bottom: 0; }
.format__akt { margin-top: auto !important; padding-top: 1rem; font-weight: 700; color: var(--rot); font-size: .95rem; }
.format--reisen { background: var(--petrol-tief); border-color: var(--petrol-tief); color: rgba(255,255,255,.88); }
.format--reisen .format__titel a, .format--reisen .marke-klein { color: #fff; }
.format--reisen .marke-klein::before { background: var(--blau); }

/* ── Partner ─────────────────────────────────────────────────────── */
.partner { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 1rem; }
.partner__e {
  display: flex; align-items: center; justify-content: center; min-height: 6rem; padding: 1rem;
  border: 1px solid var(--linie); border-radius: var(--radius); background: #fff; text-align: center;
}
.abschnitt--flaeche .partner__e { border-color: transparent; }
.partner__e img { max-height: 4rem; width: auto; filter: grayscale(1) contrast(1.1); }
.partner__e--text span { font-size: .85rem; font-weight: 700; color: var(--tinte); line-height: 1.3; }
.partner__e a { text-decoration: none; }

/* ── Bühne (Kopf einer Veranstaltung/Reise) ─────────────────────── */
.buehne { background: var(--petrol-tief); color: rgba(255,255,255,.9); position: relative; isolation: isolate; overflow: hidden; }
.buehne--reise::before {
  content: ""; position: absolute; inset: 0; z-index: -1; background-image: var(--buehne-bild); background-size: cover; background-position: center;
  opacity: .28; filter: grayscale(.3);
}
.buehne__innen { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; padding-block: clamp(2.5rem, 6vw, 4.5rem); }
.buehne .marke-klein { color: #fff; }
.buehne .marke-klein::before { background: var(--blau); }
.buehne__titel { color: #fff; font-size: clamp(1.8rem, 4.2vw, 3rem); max-width: 22em; letter-spacing: -.02em; }
.buehne__motto { font-size: clamp(1.05rem, 1.8vw, 1.3rem); color: var(--blau); max-width: 38em; }
.buehne__meta { font-weight: 700; color: #fff; }
.buehne .datum { flex: none; min-width: 7rem; padding: 1rem .8rem; }
.buehne .datum__tag { font-size: 3rem; }
.buehne .datum__tag--lang { font-size: 1.5rem; }
@media (max-width: 699px) { .buehne .datum { display: none; } }
.buehne .status--vorbei { background: rgba(255,255,255,.14); color: #fff; }

.reihenkopf { border-bottom: 1px solid var(--linie); }
.reihenkopf__innen { display: flex; justify-content: space-between; align-items: center; gap: 2rem; padding-block: 2rem; }
.reihenkopf__titel { font-size: clamp(1.4rem, 2.8vw, 2rem); max-width: 26em; margin: 0; }
.reihenkopf__logo { color: var(--blau); flex: none; width: clamp(140px, 22vw, 260px); }
.reihenkopf__logo svg { width: 100%; height: auto; }
@media (max-width: 699px) { .reihenkopf__logo { display: none; } }

/* ── Zweispaltig: Text + Faktenkarte ─────────────────────────────── */
.spalten { display: grid; gap: 2.5rem; padding-top: clamp(2.5rem, 5vw, 4rem); }
@media (min-width: 960px) {
  .spalten { grid-template-columns: minmax(0, 1fr) 340px; gap: 4rem; align-items: start; }
  .spalten__rand { position: sticky; top: 6rem; }
}
.faktenkarte { border: 1px solid var(--linie); border-top: 4px solid var(--rot); border-radius: var(--radius); padding: 1.5rem; background: #fff; }
.fakten { margin: 0; display: grid; gap: 1rem; }
.fakten dt { font-size: .72rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--grau); margin-bottom: .15rem; }
.fakten dd { margin: 0; color: var(--tinte); font-weight: 500; }
.faktenkarte__bezug { margin: 1.25rem 0 0; padding-top: 1rem; border-top: 1px solid var(--linie); font-size: .92rem; color: var(--grau); }
.faktenkarte__bezug a { display: block; font-weight: 700; margin-top: .2rem; }
.kennzahlen { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin: 1.25rem 0 0; padding-top: 1.25rem; border-top: 1px solid var(--linie); text-align: center; }
.kennzahlen div { display: flex; flex-direction: column-reverse; }
.kennzahlen dd { margin: 0; font-size: 1.8rem; font-weight: 700; color: var(--petrol); line-height: 1; }
.kennzahlen dt { font-size: .72rem; color: var(--grau); margin-top: .35rem; }

/* ── Programm ────────────────────────────────────────────────────── */
.programm { display: grid; gap: 2.5rem; }
.programm__datum {
  display: flex; align-items: baseline; gap: .75rem; flex-wrap: wrap;
  font-size: 1.15rem; margin: 0 0 .25rem; padding-bottom: .75rem; border-bottom: 2px solid var(--tinte);
}
.programm__wt { font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--rot); }
.programm__liste { list-style: none; margin: 0; padding: 0; }
.punkt { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: 1.25rem; padding: 1.25rem 0; border-bottom: 1px solid var(--linie); }
@media (min-width: 700px) { .punkt { grid-template-columns: 8rem minmax(0, 1fr); gap: 2rem; } }
.punkt__zeit { font-weight: 700; color: var(--tinte); font-variant-numeric: tabular-nums; font-size: 1.05rem; }
.punkt__bis { display: block; font-weight: 400; color: var(--grau); font-size: .9rem; }
.punkt__ort { display: block; font-size: .9rem; color: var(--petrol); }
.punkt__ortzeile { margin: 0 0 .2rem; font-size: .82rem; font-weight: 700; color: var(--petrol); }
.punkt__titel { font-size: 1.08rem; margin: 0 0 .35rem; }
.punkt__text { font-size: .97rem; color: var(--text); }
.punkt__text ul { margin-top: .35rem; }
.punkt__personen { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin-top: .75rem; }
.pers { display: flex; flex-direction: column; font-size: .9rem; line-height: 1.35; max-width: 22rem; }
.pers__name { font-weight: 700; color: var(--tinte); }
.pers__zeile { color: var(--grau); font-size: .85rem; }
.punkt__moderation { margin: .6rem 0 0; font-size: .88rem; color: var(--grau); }
.punkt--pause, .punkt--netzwerk { background: linear-gradient(90deg, var(--flaeche), transparent); }
.punkt--pause .punkt__titel, .punkt--netzwerk .punkt__titel { color: var(--grau); font-weight: 500; }
.abschnitt--flaeche .punkt--pause, .abschnitt--flaeche .punkt--netzwerk { background: linear-gradient(90deg, #fff, transparent); }
.punkt:has(> .punkt__zeit:empty) { grid-template-columns: minmax(0, 1fr); }
.punkt__zeit:empty { display: none; }

/* ── Personen ────────────────────────────────────────────────────── */
.referenten { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.5rem 2rem; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.referent { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: 1rem; align-items: start; }
.referent p { margin: 0; }
.referent__name { font-weight: 700; color: var(--tinte); }
.referent__zeile { font-size: .88rem; color: var(--grau); line-height: 1.4; }
.referent__vortrag { font-size: .9rem; margin-top: .4rem !important; font-style: italic; }
.portrait { width: 4.5rem; height: 4.5rem; border-radius: 50%; object-fit: cover; background: var(--flaeche); }
.portrait--initialen, .team__foto--initialen {
  display: flex; align-items: center; justify-content: center; font-weight: 700; color: var(--petrol); background: var(--blau-hell); font-size: 1.2rem;
}

.team { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.5rem; }
@media (min-width: 800px) { .team { grid-template-columns: 1fr 1fr; } }
.team__e { display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: 1.5rem; padding: 1.5rem; background: #fff; border-radius: var(--radius); align-items: start; }
.team__foto { width: 7rem; height: 7rem; object-fit: cover; object-position: top; border-radius: var(--radius); }
.team__name { font-size: 1.25rem; margin: 0 0 .15rem; }
.team__funktion { color: var(--grau); font-size: .92rem; margin-bottom: .75rem; }
.team__text > p:last-of-type { margin-bottom: 0; }
.team__bio { margin-top: .9rem; }
.team__bio summary { cursor: pointer; font-weight: 700; color: var(--petrol); }
.team__bio[open] summary { margin-bottom: .75rem; }
.team__bio .fliess { font-size: .96rem; }
@media (max-width: 520px) { .team__e { grid-template-columns: 1fr; } }

/* ── Medien ──────────────────────────────────────────────────────── */
.medienreihe { display: grid; gap: 3rem; }
@media (min-width: 960px) { .medienreihe:has(> div + div) { grid-template-columns: 1.3fr 1fr; } }

.video { position: relative; aspect-ratio: 16 / 9; background: var(--petrol-tief); border-radius: var(--radius); overflow: hidden; }
.video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.video__start {
  position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .6rem;
  width: 100%; border: 0; cursor: pointer; font: inherit; color: #fff; padding: 1.5rem; text-align: center;
  background: radial-gradient(circle at 50% 45%, rgba(21,119,155,.55), transparent 60%), var(--petrol-tief);
}
.video__play { width: 4.5rem; height: 4.5rem; border-radius: 50%; background: var(--rot); position: relative; transition: transform .15s; }
.video__play::after { content: ""; position: absolute; left: 53%; top: 50%; transform: translate(-50%, -50%); border-style: solid; border-width: .75rem 0 .75rem 1.2rem; border-color: transparent transparent transparent #fff; }
.video__start:hover .video__play { transform: scale(1.06); }
.video__text { font-weight: 700; }
.video__hinweis { font-size: .8rem; opacity: .75; max-width: 28em; }

.downloads { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.download {
  display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: 1rem; align-items: center;
  padding: .75rem; border: 1px solid var(--linie); border-radius: var(--radius); background: #fff;
  text-decoration: none; color: var(--text); height: 100%;
}
.download:hover { border-color: var(--petrol); color: var(--text); box-shadow: var(--schatten); }
.download__bild { width: 4.5rem; height: 6.2rem; object-fit: cover; object-position: top; border: 1px solid var(--linie); background: var(--flaeche); }
.download__bild--leer { display: flex; align-items: center; justify-content: center; font-weight: 700; color: var(--rot); font-size: .85rem; }
.download__text { display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.download__medium { font-size: .72rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--rot); }
.download__titel { font-weight: 700; color: var(--tinte); line-height: 1.3; }
.download__meta { font-size: .8rem; color: var(--grau); }

.galerie { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; grid-template-columns: repeat(auto-fill, minmax(min(46%, 220px), 1fr)); }
.galerie a { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--radius); background: var(--flaeche); }
.galerie img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.galerie a:hover img { transform: scale(1.04); }
.galerie + p { margin-top: 1rem; }

.leuchtkasten { position: fixed; inset: 0; z-index: 200; background: rgba(8,20,26,.94); display: flex; align-items: center; justify-content: center; }
.leuchtkasten__figur { margin: 0; max-width: min(92vw, 1600px); max-height: 90vh; display: flex; flex-direction: column; align-items: center; }
.leuchtkasten__figur img { max-height: 82vh; width: auto; object-fit: contain; }
.leuchtkasten__figur figcaption { color: rgba(255,255,255,.8); font-size: .9rem; margin-top: .75rem; text-align: center; }
.leuchtkasten button { position: absolute; background: rgba(255,255,255,.08); color: #fff; border: 0; cursor: pointer; font-size: 2rem; line-height: 1; width: 3rem; height: 3rem; border-radius: 50%; }
.leuchtkasten button:hover { background: rgba(255,255,255,.2); }
.leuchtkasten__zu { top: 1rem; right: 1rem; }
.leuchtkasten__nav--zurueck { left: 1rem; top: 50%; transform: translateY(-50%); }
.leuchtkasten__nav--weiter { right: 1rem; top: 50%; transform: translateY(-50%); }

/* ── Archiv ──────────────────────────────────────────────────────── */
.archiv { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.archiv__e a { display: flex; flex-direction: column; text-decoration: none; color: var(--text); height: 100%; border: 1px solid var(--linie); border-radius: var(--radius); overflow: hidden; background: #fff; }
.archiv__e a:hover { border-color: var(--petrol); box-shadow: var(--schatten); }
.archiv__bild { position: relative; aspect-ratio: 16 / 10; background: var(--petrol-tief); display: block; }
.archiv__bild { overflow: hidden; }
.archiv__bild img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .7; transition: opacity .2s; }
.archiv__e a:hover .archiv__bild img { opacity: .9; }
.archiv__jahr { position: absolute; left: 1rem; bottom: .6rem; color: #fff; font-size: 2.2rem; font-weight: 700; letter-spacing: -.03em; text-shadow: 0 1px 12px rgba(0,0,0,.35); }
.archiv__text { padding: 1rem 1.1rem 1.2rem; display: flex; flex-direction: column; gap: .3rem; }
.archiv__nr { font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--rot); }
.archiv__titel { font-weight: 700; color: var(--tinte); line-height: 1.35; }

.einfuehrung { }

/* ── Reisen ──────────────────────────────────────────────────────── */
.reisen { display: grid; gap: 1.5rem; }
@media (min-width: 800px) { .reisen { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1000px) { .reisen--klein { grid-template-columns: repeat(3, 1fr); } }
.reisekarte { display: flex; flex-direction: column; border: 1px solid var(--linie); border-radius: var(--radius); overflow: hidden; background: #fff; }
.reisekarte__bild { position: relative; aspect-ratio: 16 / 9; background: var(--petrol-tief); display: block; }
.reisekarte__bild { overflow: hidden; }
.reisekarte__bild img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.reisekarte__richtung { position: absolute; left: .9rem; top: .9rem; background: #fff; color: var(--tinte); font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: .3rem .6rem; border-radius: var(--radius); }
.reisekarte__text { padding: 1.4rem 1.5rem 1.5rem; display: flex; flex-direction: column; flex: 1; }
.reisekarte__datum { font-size: .88rem; font-weight: 700; color: var(--rot); margin-bottom: .4rem; }
.reisekarte__titel { font-size: 1.3rem; }
.reisekarte__titel a { color: var(--tinte); text-decoration: none; }
.reisekarte__titel a:hover { color: var(--rot); }
.reisekarte__status { margin: auto 0 0; padding-top: .5rem; }
.reisen--klein .reisekarte__titel { font-size: 1.1rem; }

/* ── Projekte ────────────────────────────────────────────────────── */
.projekt { padding-top: var(--luft); scroll-margin-top: 5rem; }
.projekt:last-child { padding-bottom: var(--luft); }
.projekt__innen { display: grid; gap: 2rem; }
@media (min-width: 900px) {
  .projekt__innen { grid-template-columns: 5fr 7fr; gap: 4rem; align-items: start; }
  .projekt--gespiegelt .projekt__bild { order: 2; }
}
.projekt__bild { margin: 0; border-radius: var(--radius); overflow: hidden; aspect-ratio: 4 / 3; background: var(--flaeche); position: relative; }
.projekt__bild img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.projekt__teaser { font-size: 1.2rem; color: var(--tinte); margin: 1rem 0 1.25rem; }
.projekt .downloads { margin-top: 1.5rem; }

/* ── Formular ────────────────────────────────────────────────────── */
.anmeldung { margin-top: var(--luft); padding: clamp(1.5rem, 4vw, 3rem); background: var(--flaeche); border-radius: var(--radius); border-top: 4px solid var(--rot); scroll-margin-top: 5.5rem; }
.anmeldung__kopf { margin-bottom: 1.5rem; }
.formular__raster { display: grid; gap: 1rem 1.25rem; grid-template-columns: 1fr; }
@media (min-width: 700px) {
  .formular__raster { grid-template-columns: repeat(6, 1fr); }
  .feld { grid-column: span 3; }
  .feld--klein { grid-column: span 2; }
  .feld--klein + .feld:not(.feld--breit) { grid-column: span 4; }
  .feld--breit { grid-column: 1 / -1; }
  .feld:has(#f-vorname) { grid-column: span 2; }
  .feld:has(#f-name) { grid-column: span 2; }
}
.feld label { display: block; font-size: .88rem; font-weight: 700; color: var(--tinte); margin-bottom: .3rem; }
.feld__pflicht { color: var(--rot); }
.feld input, .feld textarea {
  width: 100%; font: inherit; font-size: 1rem; padding: .7rem .8rem; border: 1px solid #b8c3c9; border-radius: var(--radius); background: #fff; color: var(--tinte);
}
.feld input:focus, .feld textarea:focus { border-color: var(--petrol); outline: 2px solid var(--blau); outline-offset: 0; }
.formular__wahl { border: 0; padding: 0; margin: 0 0 1.25rem; display: flex; gap: 1.5rem; flex-wrap: wrap; }
.formular__wahl legend { font-weight: 700; font-size: .88rem; color: var(--tinte); margin-bottom: .4rem; width: 100%; }
.formular__wahl label { display: flex; gap: .45rem; align-items: center; cursor: pointer; }
.formular__wahl input { accent-color: var(--rot); width: 1.1rem; height: 1.1rem; }
.formular__honig { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.formular__ds { font-size: .85rem; color: var(--grau); margin: 1.25rem 0; }
.js .feld--frage { display: none; }
.meldung { padding: 1rem 1.25rem; border-radius: var(--radius); margin-bottom: 1.25rem; }
.meldung ul { margin: .4rem 0 0; padding-left: 1.2rem; }
.meldung--ok { background: #e3f3e8; color: #174f2c; }
.meldung--fehler { background: var(--rot-hell); color: var(--rot-dunkel); }
.kontaktkurz { display: flex; gap: 2rem; flex-wrap: wrap; align-items: center; }
.kontaktkurz p { margin: 0; font-weight: 700; font-size: 1.1rem; line-height: 1.8; }
.kontaktkurz figure { margin: 0; display: flex; gap: .9rem; align-items: center; }
.kontaktkurz figcaption { font-size: .88rem; color: var(--grau); max-width: 12em; }
.kontaktkurz img { border: 1px solid var(--linie); background: #fff; padding: 4px; }

/* ── Rechtstexte / Leerseite ─────────────────────────────────────── */
.rechtstext { padding-block: clamp(2.5rem, 6vw, 4.5rem) var(--luft); }
.rechtstext h1 { font-size: clamp(2rem, 4vw, 2.8rem); margin-bottom: 1.5rem; }
.rechtstext .fliess h2 { font-size: 1.2rem; margin-top: 2rem; }
.leer { padding-block: 6rem; text-align: left; }
.leer h1 { font-size: clamp(2rem, 4vw, 3rem); }

/* ── Fuß ─────────────────────────────────────────────────────────── */
.fuss { background: var(--petrol-tief); color: rgba(255,255,255,.82); margin-top: 0; }
.fuss a { color: #fff; }
.fuss a:hover { color: var(--blau); }
.fuss__kontakt { display: grid; gap: 2.5rem; padding-block: clamp(3rem, 6vw, 4.5rem); }
@media (min-width: 900px) { .fuss__kontakt { grid-template-columns: 2fr 1fr auto; align-items: end; } }
.fuss__titel { color: #fff; font-size: clamp(1.6rem, 3vw, 2.3rem); }
.fuss__ruf p { max-width: 34em; }
.fuss__direkt { display: flex; flex-wrap: wrap; gap: .5rem 2rem; font-size: 1.2rem; font-weight: 700; margin: 0; }
.fuss__direkt a { text-decoration: none; }
.fuss__adresse { font-style: normal; line-height: 1.7; }
.fuss__li { display: inline-block; margin-top: .6rem; font-weight: 700; }
.fuss__wechat { margin: 0; text-align: center; font-size: .8rem; }
.fuss__wechat img { background: #fff; padding: 5px; border-radius: var(--radius); margin-bottom: .35rem; }
.fuss__leiste { border-top: 1px solid rgba(255,255,255,.12); font-size: .85rem; }
.fuss__leiste-innen { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding-block: 1.1rem; }
.fuss__leiste nav { display: flex; gap: 1.5rem; }
.fuss__leiste a { text-decoration: none; color: rgba(255,255,255,.82); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

@media print {
  .kopf, .fuss, .anmeldung, .video, .sprachen, .hinweisband { display: none !important; }
  .buehne, .held { background: none !important; color: #000 !important; }
  .buehne__titel, .held__titel { color: #000 !important; }
  .abschnitt--flaeche { background: none; }
}

/* ── Über uns ────────────────────────────────────────────────────── */
.ue-kopf { padding-top: clamp(2.5rem, 6vw, 4.5rem); overflow: hidden; }
.ue-kopf__innen { display: grid; gap: 2.5rem; align-items: center; }
@media (min-width: 960px) { .ue-kopf__innen { grid-template-columns: 5fr 6fr; gap: 4rem; } }
.ue-kopf__titel { font-size: clamp(2rem, 4.4vw, 3.4rem); letter-spacing: -.025em; line-height: 1.1; margin-bottom: .5em; }
.ue-kopf__lead { font-size: clamp(1.1rem, 1.6vw, 1.3rem); color: var(--grau); max-width: 32em; margin: 0; }
.ue-mosaik { display: grid; grid-template-columns: 3fr 2fr; grid-template-rows: 1fr 1fr; gap: .75rem; aspect-ratio: 6 / 5; }
.ue-mosaik__b { margin: 0; border-radius: var(--radius); overflow: hidden; position: relative; background: var(--flaeche); }
.ue-mosaik__b img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ue-mosaik__b--1 { grid-row: 1 / 3; }
.ue-mosaik__b--1::after { content: ""; position: absolute; left: 0; bottom: 0; width: 38%; height: 6px; background: var(--rot); }

.ue-zahlen { background: var(--petrol-tief); color: #fff; margin-top: clamp(2.5rem, 6vw, 4.5rem); }
.ue-zahlen__liste { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1.5rem 2rem; margin-block: 0; padding-block: clamp(2rem, 4vw, 3rem); }
.ue-zahlen__liste div { display: flex; flex-direction: column-reverse; gap: .35rem; border-left: 2px solid rgba(128,167,217,.45); padding-left: 1rem; }
.ue-zahlen__liste dd { margin: 0; font-size: clamp(2rem, 4vw, 2.9rem); font-weight: 700; letter-spacing: -.03em; line-height: 1; font-variant-numeric: tabular-nums; }
.ue-zahlen__liste dt { font-size: .88rem; color: rgba(255,255,255,.75); }

.ue-formate { display: grid; gap: 2.5rem; }
@media (min-width: 960px) { .ue-formate { grid-template-columns: 7fr 5fr; gap: 4rem; align-items: start; } }
.ue-formate__karten { display: grid; gap: .9rem; }
@media (min-width: 960px) { .ue-formate__karten { padding-top: 4.2rem; } }
.ue-format {
  position: relative; display: grid; gap: .35rem; padding: 1.4rem 3.5rem 1.4rem 1.4rem; border: 1px solid var(--linie); border-radius: var(--radius);
  background: #fff; text-decoration: none; color: var(--text); transition: border-color .15s, box-shadow .15s, transform .15s;
}
.ue-format:hover { border-color: var(--petrol); box-shadow: var(--schatten); color: var(--text); transform: translateY(-2px); }
.ue-format__logo { color: var(--blau); height: 3rem; margin-bottom: .35rem; }
.ue-format__logo svg { height: 100%; width: auto; }
.ue-format__name { font-weight: 700; font-size: 1.08rem; color: var(--tinte); line-height: 1.3; }
.ue-format__termin { font-size: .9rem; color: var(--grau); }
.ue-format__pfeil { position: absolute; right: 1.25rem; top: 50%; transform: translateY(-50%); font-size: 1.3rem; color: var(--rot); transition: transform .15s; }
.ue-format:hover .ue-format__pfeil { transform: translate(4px, -50%); }
.ue-format--reisen { background: var(--petrol-tief); border-color: var(--petrol-tief); }
.ue-format--reisen .ue-format__name { color: #fff; }
.ue-format--reisen .ue-format__termin { color: rgba(255,255,255,.78); }
.ue-format--reisen .ue-format__pfeil { color: var(--blau); }

.ue-gruender { display: grid; gap: 2rem; }

.ue-person { display: flex; flex-direction: column; background: #fff; border-radius: var(--radius); overflow: hidden; }
.ue-person__foto { margin: 0; position: relative; aspect-ratio: 4 / 5; background: var(--flaeche); overflow: hidden; }
.ue-person__foto img, .ue-person__foto .portrait { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; border-radius: 0; font-size: 2.5rem; }
.ue-person__text { padding: 1.25rem 1.3rem 1.4rem; }
.ue-person__name { font-size: 1.25rem; margin: 0 0 .2rem; }
.ue-person__rolle { font-size: .88rem; color: var(--rot); font-weight: 700; margin: 0 0 .8rem; line-height: 1.4; }
.ue-person__kurz { font-size: .96rem; margin: 0; }
.ue-person__mehr { margin-top: .9rem; }
.ue-person__mehr summary { cursor: pointer; font-weight: 700; color: var(--petrol); list-style: none; display: inline-flex; gap: .4rem; align-items: center; }
.ue-person__mehr summary::-webkit-details-marker { display: none; }
.ue-person__mehr summary::after { content: "+"; font-size: 1.2rem; line-height: 1; }
.ue-person__mehr[open] summary::after { content: "–"; }
.ue-person__mehr[open] summary { margin-bottom: .6rem; }
.ue-person__mehr .fliess { font-size: .94rem; }

.ue-person--gross { background: none; display: grid; gap: 1.5rem; }
@media (min-width: 700px) { .ue-person--gross { grid-template-columns: minmax(220px, 4fr) 8fr; gap: 3rem; align-items: center; } .ue-gruender { gap: 3.5rem; } }
@media (min-width: 700px) { .ue-person--gross:nth-child(even) { grid-template-columns: 8fr minmax(220px, 4fr); } .ue-person--gross:nth-child(even) .ue-person__foto { order: 2; } }
.ue-person--gross .ue-person__foto { border-radius: var(--radius); }
.ue-person--gross .ue-person__foto::after { content: ""; position: absolute; left: 0; bottom: 0; width: 45%; height: 5px; background: var(--rot); }
.ue-person--gross .ue-person__text { padding: 0; }
.ue-person--gross .ue-person__name { font-size: 1.6rem; }
.ue-person__bio { font-size: 1.05rem; max-width: 40em; }
.ue-person--gross .ue-person__foto { max-width: 380px; }

.ue-team { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.ue-team .ue-person__foto { aspect-ratio: 1 / 1; }

.ue-geschichte { display: grid; gap: 2.5rem; }
@media (min-width: 960px) { .ue-geschichte { grid-template-columns: 5fr 6fr; gap: 4rem; align-items: start; } .ue-geschichte__text { position: sticky; top: 6rem; } }
.ue-geschichte__untertitel { font-size: 1.15rem; margin-top: 0; }
.zeitleiste { list-style: none; margin: 0; padding: 0; position: relative; }
.zeitleiste::before { content: ""; position: absolute; left: 2.35rem; top: .5rem; bottom: .5rem; width: 2px; background: var(--linie); }
.zeitleiste__jahr { display: grid; grid-template-columns: 4.7rem 1fr; gap: 1.25rem; padding-bottom: 1.75rem; position: relative; }
.zeitleiste__zahl {
  position: relative; z-index: 1; justify-self: start; align-self: start; font-weight: 700; font-size: .95rem; color: #fff; background: var(--petrol);
  border-radius: 999px; padding: .3rem .8rem; font-variant-numeric: tabular-nums; margin-top: .1rem;
}
.zeitleiste__jahr:last-child .zeitleiste__zahl { background: var(--rot); }
.zeitleiste__liste { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; }
.zeitleiste__e { display: grid; gap: .1rem; padding: .85rem 1rem; background: var(--flaeche); border-radius: var(--radius); border-left: 3px solid var(--blau); }
.zeitleiste__e a, .zeitleiste__e strong { font-weight: 700; color: var(--tinte); text-decoration: none; line-height: 1.35; }
.zeitleiste__e a:hover { color: var(--rot); }
.zeitleiste__e span { font-size: .88rem; color: var(--grau); }
.zeitleiste__e--tcm-konferenz { border-left-color: var(--petrol); }
.zeitleiste__e--krankenhaustag { border-left-color: var(--rot); }
.zeitleiste__e--reise { border-left-color: var(--blau); }
.zeitleiste__e--gruendung { background: var(--petrol-tief); border-left-color: var(--rot); }
.zeitleiste__e--gruendung strong { color: #fff; }
.zeitleiste__e--gruendung span { color: rgba(255,255,255,.8); }

/* ==========================================================================
   Modernisierung (Runde 2): weichere Formen, größere Typo, mehr Luft,
   Bildkarten, gläserner Kopf. Überschreibt die Grundregeln oben.
   ========================================================================== */
:root {
  --rahmen: 1280px;
  --radius: 14px;
  --radius-gross: 22px;
  --luft: clamp(4rem, 9vw, 8rem);
  --flaeche: #f4f6f5;
  --linie: #e3e8ea;
  --schatten: 0 1px 2px rgba(12, 55, 74, .04), 0 12px 32px -8px rgba(12, 55, 74, .12);
  --schatten-hoch: 0 2px 4px rgba(12, 55, 74, .05), 0 24px 48px -12px rgba(12, 55, 74, .22);
  --weich: cubic-bezier(.22, .8, .24, 1);
}
body { font-size: 1.08rem; line-height: 1.65; }
h1, h2, h3, h4 { letter-spacing: -.022em; line-height: 1.12; }
.abschnitt__titel { font-size: clamp(1.9rem, 3.6vw, 2.9rem); letter-spacing: -.03em; }
.abschnitt__kopf { margin-bottom: clamp(1.75rem, 3vw, 2.75rem); }
.marke-klein { font-size: .74rem; letter-spacing: .14em; }
.marke-klein::before { width: 1.25rem; border-radius: 2px; }

/* Knöpfe als Pillen mit Pfeil */
.knopf { border-radius: 999px; padding: .8rem 1.5rem; min-height: 3rem; gap: .6rem; transition: background .2s, color .2s, border-color .2s, transform .2s var(--weich), box-shadow .2s; }
.knopf::after { content: "→"; font-weight: 400; transition: transform .2s var(--weich); }
.knopf:hover { transform: translateY(-1px); box-shadow: 0 8px 20px -8px rgba(166, 49, 23, .55); }
.knopf:hover::after { transform: translateX(3px); }
.knopf--glas { background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.35); color: #fff; backdrop-filter: blur(10px); }
.knopf--glas:hover { background: rgba(255,255,255,.24); color: #fff; box-shadow: none; }
.knopf--hell:hover { box-shadow: 0 10px 24px -10px rgba(0,0,0,.4); }
.knopf--leise { border-radius: 999px; }
.knopf--leise::after, .knopf[type="submit"]::after { content: none; }

/* Kopf: gläsern, auf der Startseite zunächst transparent über dem Bild */
.kopf { background: rgba(255,255,255,.82); border-bottom-color: transparent; backdrop-filter: saturate(1.6) blur(14px); -webkit-backdrop-filter: saturate(1.6) blur(14px); transition: background .3s, box-shadow .3s, color .3s; }
.kopf.ist-gescrollt { box-shadow: 0 1px 0 rgba(12,55,74,.06), 0 10px 30px -18px rgba(12,55,74,.35); }
.kopf__innen { min-height: 4.75rem; }
.kopf__menue { border-radius: 999px; border-color: var(--linie); }
@media (min-width: 1180px) {
  .nav__liste a { border-radius: 999px; padding: .5rem .85rem; transition: background .2s, color .2s; }
  .nav__liste a:hover { background: rgba(21,119,155,.08); color: var(--petrol-dunkel); }
  .nav__liste a[aria-current="page"] { background: var(--tinte); color: #fff; }
  .nav__liste a[aria-current="page"]::after { content: none; }
  .sprachen a { border-radius: 999px; }
}
body.s-start .kopf { position: fixed; left: 0; right: 0; }
body.s-start .kopf:not(.ist-gescrollt):not(:has(.nav.ist-offen)) { background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; }
body.s-start .kopf:not(.ist-gescrollt):not(:has(.nav.ist-offen)) .marke { color: #fff; }
body.s-start .kopf:not(.ist-gescrollt):not(:has(.nav.ist-offen)) .kopf__menue { color: #fff; border-color: rgba(255,255,255,.45); }
@media (min-width: 1180px) {
  body.s-start .kopf:not(.ist-gescrollt) .nav__liste a { color: rgba(255,255,255,.9); }
  body.s-start .kopf:not(.ist-gescrollt) .nav__liste a:hover { background: rgba(255,255,255,.14); color: #fff; }
  body.s-start .kopf:not(.ist-gescrollt) .sprachen { border-left-color: rgba(255,255,255,.3); }
  body.s-start .kopf:not(.ist-gescrollt) .sprachen a { color: rgba(255,255,255,.8); }
  body.s-start .kopf:not(.ist-gescrollt) .sprachen a[aria-current="true"] { background: #fff; color: var(--tinte); }
}
body.s-start .hinweisband { position: absolute; top: 4.75rem; left: 0; right: 0; z-index: 40; margin: 0; background: rgba(12,55,74,.55); color: #fff; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }

/* Einstieg */
.held { min-height: max(34rem, 92vh); align-items: stretch; }
.held::before {
  background:
    linear-gradient(100deg, rgba(8,38,52,.94) 0%, rgba(8,38,52,.78) 36%, rgba(8,38,52,.22) 72%, rgba(8,38,52,.1) 100%),
    linear-gradient(0deg, rgba(8,38,52,.75) 0%, rgba(8,38,52,0) 40%),
    linear-gradient(180deg, rgba(8,38,52,.55) 0%, rgba(8,38,52,0) 22%);
}
.held__innen { display: grid; align-content: end; gap: 2.5rem; padding-top: 8rem; padding-bottom: clamp(2.5rem, 6vw, 4.5rem); }
@media (min-width: 1000px) { .held__innen { grid-template-columns: minmax(0, 1fr) 21rem; align-items: end; } }
.held__titel { font-size: clamp(2.8rem, 7vw, 5.6rem); line-height: 1.02; letter-spacing: -.04em; max-width: 11em; }
.held__text { font-size: clamp(1.1rem, 1.5vw, 1.3rem); max-width: 34em; color: rgba(255,255,255,.86); }
.held__knoepfe { margin-top: 2.25rem; }
.held__termin {
  display: grid; gap: .3rem; position: relative; padding: 1.4rem 3.5rem 1.4rem 1.4rem; border-radius: var(--radius-gross);
  color: #fff; text-decoration: none; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.25);
  backdrop-filter: blur(16px) saturate(1.3); -webkit-backdrop-filter: blur(16px) saturate(1.3);
  transition: background .25s, transform .25s var(--weich);
}
.held__termin:hover { background: rgba(255,255,255,.2); color: #fff; transform: translateY(-3px); }
.held__termin-marke { font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--blau); }
.held__termin-datum { font-size: 1.5rem; font-weight: 700; letter-spacing: -.02em; margin-top: .2rem; }
.held__termin-titel { font-weight: 700; line-height: 1.3; }
.held__termin-ort { font-size: .9rem; color: rgba(255,255,255,.75); }
.held__termin-pfeil { position: absolute; right: 1.3rem; bottom: 1.3rem; width: 2.2rem; height: 2.2rem; border-radius: 50%; background: var(--rot); display: grid; place-items: center; transition: transform .25s var(--weich); }
.held__termin:hover .held__termin-pfeil { transform: translateX(3px); }

/* Abschnitte: weniger graue Flächen, mehr Weißraum */
.abschnitt--flaeche { background: var(--flaeche); border-radius: 0; }
.abschnitt--flaeche > .rahmen { }

/* Termine als Bento-Raster */
.termine { gap: 1.25rem; }
@media (min-width: 900px) {
  .termine { grid-template-columns: repeat(12, 1fr); grid-auto-rows: minmax(0, auto); }
  .termin { grid-column: span 6; }
  .termin--gross { grid-column: 1 / span 7; grid-row: span 3; }
  .termine .termin:not(.termin--gross) { grid-column: 8 / span 5; }
}
.termin {
  display: flex; flex-direction: column; gap: 1rem; padding: 1.5rem 1.6rem; border: 0; border-radius: var(--radius-gross);
  background: var(--flaeche); box-shadow: none; transition: transform .3s var(--weich), box-shadow .3s, background .3s;
}
.termin:hover { transform: translateY(-4px); box-shadow: var(--schatten-hoch); background: #fff; border: 0; }
.termin__kopf { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.termin .datum { flex-direction: row; align-items: baseline; gap: .5rem; min-width: 0; padding: 0; background: none; color: var(--rot); }
.termin .datum__tag { font-size: 2.2rem; }
.termin .datum__tag--lang { font-size: 1.35rem; }
.termin .datum__monat { margin: 0; color: var(--grau); font-size: .72rem; }
.termin__art { margin: 0; padding: .3rem .7rem; border-radius: 999px; background: #fff; font-size: .68rem; }
.termin__titel { font-size: 1.2rem; letter-spacing: -.015em; }
.termin__meta { margin-bottom: 0; }
.termin__mehr { margin: auto 0 0; padding-top: .9rem; font-weight: 700; font-size: .9rem; color: var(--rot); display: flex; gap: .45rem; align-items: center; }
.termin__mehr span { transition: transform .25s var(--weich); }
.termin:hover .termin__mehr span { transform: translateX(4px); }
.termin__text { display: flex; flex-direction: column; flex: 1; }
.termin--bild { position: relative; overflow: hidden; color: #fff; min-height: 30rem; justify-content: space-between; padding: 2rem; isolation: isolate; background: var(--petrol-tief); }
.termin--bild:hover { background: var(--petrol-tief); }
.termin__bild { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .8s var(--weich); }
.termin--bild:hover .termin__bild { transform: scale(1.04); }
.termin--bild::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(8,38,52,.94) 0%, rgba(8,38,52,.55) 50%, rgba(8,38,52,.15) 100%); }
.termin--bild .datum { color: #fff; }
.termin--bild .datum__tag { font-size: clamp(3rem, 5vw, 4.2rem); }
.termin--bild .datum__monat { color: rgba(255,255,255,.8); font-size: .8rem; }
.termin--bild .termin__art { background: rgba(255,255,255,.16); color: #fff; backdrop-filter: blur(8px); }
.termin--bild .termin__titel { font-size: clamp(1.5rem, 2.6vw, 2.1rem); }
.termin--bild .termin__titel a, .termin--bild .termin__titel a:hover { color: #fff; }
.termin--bild .termin__meta, .termin--bild .termin__teaser { color: rgba(255,255,255,.85); }
.termin--bild .termin__teaser { font-size: 1.02rem; max-width: 34em; margin: .75rem 0 0; }
.termin--bild .termin__mehr { color: #fff; }
.termin--bild .termin__text { flex: 0; }

/* Säulen: groß gesetzte Ziffern statt Linien */
.saeulen { gap: 1.25rem; }
.saeule { border: 0; padding: 2rem 1.75rem; border-radius: var(--radius-gross); background: var(--flaeche); }
.saeule__nr { font-size: 3.2rem; line-height: 1; letter-spacing: -.04em; color: transparent; -webkit-text-stroke: 1.5px var(--blau); margin-bottom: 1.5rem; }
.saeule__titel { font-size: 1.6rem; }

/* Formate als Bildkarten */
.formate { gap: 1.25rem; }
.format {
  position: relative; min-height: 26rem; padding: 0; border: 0; border-radius: var(--radius-gross); overflow: hidden; isolation: isolate;
  background: var(--petrol-tief); color: #fff; text-decoration: none; display: flex; flex-direction: column; justify-content: flex-end; align-items: stretch;
  transition: transform .35s var(--weich), box-shadow .35s;
}
.format:hover { transform: translateY(-5px); box-shadow: var(--schatten-hoch); color: #fff; border: 0; }
.format__bild { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .9s var(--weich); }
.format:hover .format__bild { transform: scale(1.06); }
.format::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(8,38,52,.96) 0%, rgba(8,38,52,.6) 55%, rgba(8,38,52,.2) 100%); }
.format__inhalt { display: grid; gap: .5rem; padding: 1.75rem 4.5rem 1.75rem 1.75rem; position: relative; width: 100%; }
.format__zahl { font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--blau); }
.format__titel { font-size: 1.4rem; font-weight: 700; line-height: 1.2; letter-spacing: -.02em; }
.format__akt { font-size: .92rem; color: rgba(255,255,255,.8); margin: 0; padding: 0; font-weight: 400; }
.format__pfeil { position: absolute; right: 1.5rem; bottom: 1.6rem; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.3); display: grid; place-items: center; transition: background .25s, transform .25s var(--weich); }
.format:hover .format__pfeil { background: var(--rot); border-color: var(--rot); transform: translateX(3px); }
.format__logo, .format--reisen { }

/* Downloads / Presse */
.downloads { gap: 1rem; }
.download { border: 0; background: var(--flaeche); border-radius: var(--radius); padding: .9rem; transition: transform .25s var(--weich), box-shadow .25s, background .25s; }
.download:hover { background: #fff; transform: translateY(-3px); box-shadow: var(--schatten-hoch); }
.download__bild { border: 0; border-radius: 8px; box-shadow: 0 6px 16px -8px rgba(12,55,74,.35); }

/* Partner-Band */
.abschnitt--partner { overflow: hidden; }
.band { position: relative; overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.band__spur { list-style: none; margin: 0; padding: .5rem 0; display: flex; gap: 4rem; width: max-content; animation: band-laufen 45s linear infinite; }
.band:hover .band__spur { animation-play-state: paused; }
.band__e { flex: none; height: 4.5rem; display: flex; align-items: center; }
.band__e img { max-height: 4rem; width: auto; filter: grayscale(1); opacity: .7; transition: filter .3s, opacity .3s; }
.band__e img:hover { filter: none; opacity: 1; }
.band__e--text span { font-weight: 700; color: var(--grau); font-size: .95rem; white-space: nowrap; }
@keyframes band-laufen { to { transform: translateX(-50%); } }

/* Partner im Raster (Detailseiten) */
.partner__e { border: 0; background: var(--flaeche); border-radius: var(--radius); }

/* Bühne der Detailseiten mit Bild */
.buehne--bild::before {
  content: ""; position: absolute; inset: 0; z-index: -1; background-image: linear-gradient(100deg, rgba(8,38,52,.95) 20%, rgba(8,38,52,.72) 60%, rgba(8,38,52,.45)), var(--buehne-bild);
  background-size: cover; background-position: center;
}
.buehne--reise::before { opacity: 1; filter: none; background-image: linear-gradient(100deg, rgba(8,38,52,.95) 20%, rgba(8,38,52,.72) 60%, rgba(8,38,52,.45)), var(--buehne-bild); }
.buehne__innen { padding-block: clamp(3.5rem, 8vw, 6.5rem); }
.buehne__titel { font-size: clamp(2.1rem, 5vw, 3.8rem); letter-spacing: -.035em; line-height: 1.05; }
.buehne .datum { border-radius: var(--radius-gross); min-width: 8rem; padding: 1.25rem 1rem; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.25); backdrop-filter: blur(12px); }
.buehne .datum__tag { color: #fff; }

/* Karten, Kästen, Programm */
.faktenkarte { border: 0; border-top: 0; border-radius: var(--radius-gross); background: var(--flaeche); padding: 1.75rem; }
.hinweiskasten { border-left: 0; border-radius: var(--radius-gross); padding: 1.6rem 1.8rem; }
.themen li { border-radius: var(--radius); background: var(--flaeche); }
.abschnitt--flaeche .punkt--pause, .abschnitt--flaeche .punkt--netzwerk, .punkt--pause, .punkt--netzwerk { background: none; }
.programm__datum { border-bottom-width: 1px; }
.punkt { border-bottom-color: var(--linie); }
.archiv__e a, .reisekarte { border: 0; border-radius: var(--radius-gross); background: var(--flaeche); transition: transform .3s var(--weich), box-shadow .3s; }
.archiv__e a:hover, .reisekarte:hover { transform: translateY(-4px); box-shadow: var(--schatten-hoch); border: 0; }
.reisekarte__richtung { border-radius: 999px; }
.galerie { gap: .75rem; }
.galerie a { border-radius: var(--radius); }
.video { border-radius: var(--radius-gross); }
.anmeldung { border-top: 0; border-radius: var(--radius-gross); }
.feld input, .feld textarea { border-radius: 10px; }
.sprungleiste a { border: 0; background: var(--flaeche); }
.sprungleiste a:hover { background: var(--tinte); color: #fff; }

/* Über uns an die neue Formensprache anpassen */
.ue-mosaik__b, .ue-person--gross .ue-person__foto, .ue-person, .ue-format, .zeitleiste__e { border-radius: var(--radius-gross); }
.ue-format { border: 0; background: var(--flaeche); }
.ue-format.ue-format--reisen { background: var(--petrol-tief); }
.ue-format.ue-format--reisen:hover { background: #0f4a63; }
.zeitleiste__e { border-left: 0; }
.ue-zahlen { border-radius: 0; }

/* Fuß: große Einladung zum Kontakt */
.fuss { background: var(--petrol-tief); position: relative; overflow: hidden; }
.fuss::before { content: ""; position: absolute; right: -8rem; top: -8rem; width: 28rem; height: 28rem; border-radius: 50%; background: radial-gradient(circle, rgba(21,119,155,.55), transparent 65%); pointer-events: none; }
.fuss__kontakt { position: relative; padding-block: clamp(4rem, 8vw, 6.5rem); }
.fuss__titel { font-size: clamp(2.2rem, 5vw, 3.8rem); letter-spacing: -.035em; line-height: 1.05; }
.fuss__direkt { font-size: clamp(1.15rem, 2vw, 1.5rem); }
.fuss__direkt a { border-bottom: 2px solid rgba(128,167,217,.5); padding-bottom: .1rem; transition: border-color .2s; }
.fuss__direkt a:hover { border-color: var(--blau); }
.fuss__wechat img { border-radius: 12px; }

/* Sanftes Einblenden beim Scrollen */
@media (prefers-reduced-motion: no-preference) {
  .js [data-zeigen] { opacity: 0; transform: translateY(18px); transition: opacity .7s var(--weich), transform .7s var(--weich); }
  .js [data-zeigen].ist-sichtbar { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .band__spur { animation: none; flex-wrap: wrap; width: auto; justify-content: center; }
  .band__e[aria-hidden="true"] { display: none; }
}

/* Kleine Bildschirme: lange Wörter und große Zahlen im Zaum halten */
.held__titel, .buehne__titel, .abschnitt__titel, .termin__titel, .format__titel { overflow-wrap: break-word; hyphens: auto; }
@media (max-width: 600px) {
  .held__titel { font-size: clamp(2.1rem, 10.5vw, 3rem); }
  .termin__kopf { flex-wrap: wrap; align-items: flex-start; gap: .6rem; }
  .termin .datum { white-space: nowrap; }
  .termin--bild { min-height: 26rem; padding: 1.5rem; }
  .termin--bild .datum__tag { font-size: 2.6rem; }
  .termin--bild .datum__tag--lang { font-size: 2rem; }
  .termin__art { max-width: 100%; }
}

/* Einstieg: Wörter nie trennen – Schriftgröße passt sich stattdessen an */
.held__titel { hyphens: manual; -webkit-hyphens: manual; overflow-wrap: normal; word-break: normal; }
/* Größe folgt der Spaltenbreite (Container-Einheiten): das längste Wort passt immer in eine Zeile */
.held__text-box { container-type: inline-size; min-width: 0; }
.held__titel { font-size: clamp(1.8rem, 10.6cqi, 5.6rem); }
@supports not (font-size: 1cqi) { @media (max-width: 600px) { .held__titel { font-size: clamp(1.8rem, 9.2vw, 3rem); } } }

/* WordPress: Werkzeugleiste für angemeldete Redakteure */
body.admin-bar .kopf { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { body.admin-bar .kopf { top: 0; } #wpadminbar { position: absolute; } }
body.s-start.admin-bar .hinweisband { top: calc(4.75rem + var(--wp-admin--admin-bar--height, 32px)); }
@media (max-width: 600px) { body.s-start.admin-bar .hinweisband { top: 4.75rem; } }
.fuss__leiste nav { flex-wrap: wrap; } .fuss__credit { opacity: .7; } .fuss__credit:hover { opacity: 1; }

/* ── Impressum und Datenschutz ───────────────────────────────────── */
.rechtskopf { background: linear-gradient(150deg, var(--petrol-tief) 0%, #0f4f69 60%, var(--petrol) 100%); color: #fff; padding-block: clamp(2.75rem, 7vw, 5rem) clamp(2rem, 4vw, 3rem); }
.marke-klein--hell { color: rgba(255,255,255,.75); }
.rechtskopf__titel { color: #fff; font-size: clamp(2.1rem, 5vw, 3.4rem); letter-spacing: -.02em; margin: .4rem 0 1.6rem; }
.rechtskopf__reiter { display: flex; gap: .5rem; flex-wrap: wrap; }
.rechtskopf__reiter a { color: #fff; text-decoration: none; font-weight: 700; font-size: .92rem; padding: .5rem 1.1rem; border-radius: 999px; border: 1px solid rgba(255,255,255,.35); transition: background .2s, color .2s; }
.rechtskopf__reiter a:hover { background: rgba(255,255,255,.12); }
.rechtskopf__reiter a[aria-current="page"] { background: #fff; color: var(--petrol-tief); border-color: #fff; }
.rechtstext { padding-block: clamp(2rem, 5vw, 3.5rem) var(--luft); }
.rechtstext__hinweis { background: var(--blau-hell); border-left: 4px solid var(--petrol); border-radius: 0 var(--radius) var(--radius) 0; padding: .9rem 1.2rem; margin-bottom: 2rem; font-size: .95rem; }
.rechtstext__hinweis p { margin: 0; }
.rechtstext__vorspann { margin-bottom: 2rem; max-width: 48rem; }
/* Impressum: Karten */
.rechtskarten { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr)); }
.rechtskarte { background: var(--flaeche); border-radius: var(--radius-gross, 22px); padding: 1.5rem 1.6rem; }
.rechtskarte__titel { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--rot); margin: 0 0 .7rem; }
.rechtskarte .fliess p { margin: 0 0 .5rem; }
.rechtskarte .fliess p:last-child { margin-bottom: 0; }
/* Datenschutz: Inhaltsverzeichnis + nummerierte Abschnitte */
.rechtstext__spalten { display: grid; gap: 2rem; }
@media (min-width: 1000px) { .rechtstext__spalten { grid-template-columns: 17rem 1fr; gap: 3.5rem; align-items: start; } }
.rechtstext__inhalt { background: var(--flaeche); border-radius: var(--radius-gross, 22px); padding: 1.3rem 1.4rem; }
@media (min-width: 1000px) { .rechtstext__inhalt { position: sticky; top: 6.5rem; max-height: calc(100vh - 8rem); overflow: auto; } }
.rechtstext__inhalt-titel { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--rot); font-weight: 700; margin: 0 0 .6rem; }
.rechtstext__inhalt ol { list-style: none; margin: 0; padding: 0; }
.rechtstext__inhalt li + li { border-top: 1px solid var(--linie); }
.rechtstext__inhalt a { display: flex; gap: .6rem; padding: .45rem 0; color: var(--text); text-decoration: none; font-size: .9rem; line-height: 1.35; }
.rechtstext__inhalt a span { color: var(--grau); font-variant-numeric: tabular-nums; font-size: .8rem; padding-top: .1rem; }
.rechtstext__inhalt a:hover { color: var(--petrol); }
@media (max-width: 999px) { .rechtstext__inhalt ol { columns: 2 14rem; column-gap: 1.5rem; } .rechtstext__inhalt li { break-inside: avoid; } .rechtstext__inhalt li + li { border-top: 0; } }
.rechtstext__haupt { max-width: 48rem; }
.rechtsabschnitt { padding: 1.6rem 0; border-top: 1px solid var(--linie); scroll-margin-top: 6.5rem; }
.rechtsabschnitt:first-of-type { border-top: 0; padding-top: 0; }
.rechtsabschnitt__titel { font-size: clamp(1.15rem, 2.2vw, 1.4rem); margin: 0 0 .8rem; display: flex; gap: .8rem; align-items: baseline; }
.rechtsabschnitt__nr { color: var(--rot); font-size: .85rem; font-weight: 700; letter-spacing: .05em; flex: none; }
.rechtsabschnitt .fliess p:last-child { margin-bottom: 0; }
body.admin-bar .rechtsabschnitt { scroll-margin-top: calc(6.5rem + 32px); }
