/* SB-Startseite v2 – MDJAMO-Linie, IT-Ausrichtung, SB-Farben. Alle Bewegung laeuft von selbst, nichts am Scrollweg. */
@font-face { font-family: "SB Serif"; src: url("schriften/serif-Light.woff2") format("woff2"); font-weight: 300; font-display: swap; }
@font-face { font-family: "SB Serif"; src: url("schriften/serif-LightItalic.woff2") format("woff2"); font-weight: 300; font-style: italic; font-display: swap; }
@font-face { font-family: "SB Serif"; src: url("schriften/serif-Regular.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Archivo"; src: url("schriften/archivo.woff2") format("woff2"); font-weight: 100 900; font-display: swap; }

:root {
  --nacht: #070e16;
  --navy: #0b1622;
  --navy-2: #0f1e2e;
  --navy-3: #16283c;
  --marine: #0d2036;
  --creme: #f6f1e7;
  --creme-2: #cfc6b6;
  --orange: #ee7b2d;
  --gold: #f2b434;
  --rot: #c9402b;
  --serif: "SB Serif", Georgia, serif;
  --sans: "Archivo", "Segoe UI", Arial, sans-serif;
  --mono: ui-monospace, "SFMono-Regular", Menlo, monospace;
  --rand: clamp(1.25rem, 4vw, 3rem);
  --weich: cubic-bezier(.65, 0, .25, 1);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--nacht); color: var(--creme); font: 1.0625rem/1.65 var(--sans); overflow-x: hidden; -webkit-font-smoothing: antialiased; }
img, video, svg { display: block; max-width: 100%; }
a { color: inherit; }
h1, h2, h3 { font-family: var(--serif); font-weight: 300; letter-spacing: -.015em; line-height: 1.08; margin: 0; text-wrap: balance; }
h2 { font-size: clamp(2.1rem, 4.4vw, 3.8rem); }
h2 em { font-style: italic; color: var(--orange); }
p { margin: 0 0 1em; }
.huelle { width: min(100% - 2 * var(--rand), 1240px); margin-inline: auto; }
.eyebrow { font: 600 .74rem/1 var(--mono); letter-spacing: .28em; text-transform: uppercase; color: var(--gold); margin: 0 0 1.4rem; display: flex; align-items: center; gap: .8rem; }
.eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; opacity: .6; }
.sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }

/* ---------- Einblenden wie MDJAMO: weich, gestaffelt ---------- */
.zeigen { opacity: 0; transform: translateY(42px); filter: blur(6px); transition: opacity 1.3s var(--weich), transform 1.4s var(--weich), filter 1.3s var(--weich); }
.zeigen.sichtbar { opacity: 1; transform: none; filter: none; }
/* Punkte und Schritte gleiten seitlich ins Bild (wie MDJAMO .namenszeile) */
.problem__liste li.zeigen { transform: translateX(-90px); }
.band li.zeigen { transform: translateX(70px); }
.problem__liste li.zeigen.sichtbar, .band li.zeigen.sichtbar { transform: none; }

/* ---------- Kopf ---------- */
.kopf { position: fixed; inset: 0 0 auto; z-index: 50; transition: background .5s var(--weich), backdrop-filter .5s; }
.kopf.fest { background: rgba(7, 14, 22, .82); backdrop-filter: blur(12px); box-shadow: 0 1px 0 rgba(246, 241, 231, .06); }
.kopf__innen { display: flex; align-items: center; justify-content: space-between; height: 76px; }
.marke { display: flex; align-items: center; gap: .8rem; text-decoration: none; font-weight: 600; letter-spacing: .02em; }
.marke img { width: 38px; height: 38px; }
.nav { display: flex; gap: clamp(1rem, 2.4vw, 2.2rem); font-size: .92rem; }
.nav a { text-decoration: none; opacity: .78; transition: opacity .3s; }
.nav a:hover, .nav a[aria-current] { opacity: 1; }
.nav a[aria-current] { color: var(--gold); }
.knopf { display: inline-flex; align-items: center; gap: .6rem; padding: .78rem 1.3rem; border-radius: 999px; font-weight: 600; font-size: .92rem; text-decoration: none; border: 1px solid rgba(238, 123, 45, .7); color: var(--creme); background: rgba(238, 123, 45, .08); transition: background .35s var(--weich), transform .35s var(--weich); cursor: pointer; }
.knopf:hover { background: var(--orange); color: var(--nacht); }
.knopf--voll { background: var(--orange); color: var(--nacht); border-color: var(--orange); }
.knopf--voll:hover { background: var(--gold); border-color: var(--gold); }
@media (max-width: 820px) { .nav { display: none; } }

/* ---------- Hero: Vollbild-Rechenzentrum ---------- */
.hero { position: relative; height: 100svh; min-height: 560px; overflow: hidden; background: var(--nacht); }
.hero__bild, .hero__film { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--fokus-x, 50%) 50%; }
@media (max-aspect-ratio: 1/1) { .hero { --fokus-x: 64%; } }
/* Hero v3 (06.10.): Schrift liegt bei 57-74 % der Bildbreite, im Hochformat ganz zeigen (alte Fassung bleibt bei 64 %) */
@media (max-aspect-ratio: 1/1) { .hero:not(.hero--alt) { --fokus-x: 72%; } }
/* 07.10.: Standbild UND Film fahren synchron ein (vorher: Bild im 106-%-Zoom, Film ohne Zoom darüber = Sprung beim Start).
   Bis der Film läuft, zeigt das Video-Element sein Poster – dasselbe Bild. */
.hero__bild, .hero__film { animation: hero-auf 2.6s var(--weich) both; }
/* Hero je Sprache (07.10.): nur das Poster der aktiven Sprache wird angezeigt (html[lang] setzt sprache.js im <head>) */
html[lang="de"] .hero__bild--en, html:not([lang="de"]) .hero__bild--de { display: none; }
.hero__film { opacity: 0; transition: opacity 1.6s var(--weich); }
.hero__film.laeuft { opacity: 1; }
.hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7, 14, 22, .55) 0%, transparent 22%, transparent 70%, var(--nacht) 100%); pointer-events: none; }
.hero__unten { position: absolute; left: 0; right: 0; bottom: clamp(5.2rem, 11vh, 6.5rem); z-index: 2; display: flex; justify-content: flex-start; align-items: end; gap: 1.5rem; opacity: 0; animation: auftritt 1.4s 1.6s var(--weich) forwards; }
/* .hero__satz entfernt (Leon 06.10.): im Hero stehen nur noch die Knoepfe */
.hero__knoepfe { display: flex; gap: .8rem; flex-wrap: wrap; }
.hero__runter { position: absolute; left: 50%; bottom: 1rem; z-index: 2; width: 1px; height: 46px; background: linear-gradient(var(--gold), transparent); animation: rieseln 2.4s infinite var(--weich); }
@keyframes hero-auf { from { opacity: 0; transform: scale(1.06); filter: brightness(.4); } to { opacity: 1; transform: none; filter: none; } }
@keyframes auftritt { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes rieseln { 0% { transform: scaleY(0); transform-origin: top; } 50% { transform: scaleY(1); transform-origin: top; } 51% { transform-origin: bottom; } 100% { transform: scaleY(0); transform-origin: bottom; } }
@media (max-width: 700px) { .hero__unten { flex-direction: column; align-items: start; } }

/* ---------- Abschnitte allgemein: dunkel, mit Tiefe statt weisser Flaechen ---------- */
.abschnitt { position: relative; padding: clamp(5rem, 11vw, 9rem) 0; overflow: hidden; }
/* Abschnittsgrund liegt als ::before-Ebene (z-index −2) UNTER dem Glutnebel (atmosphaere.css, z-index −1),
   Inhalte liegen darüber. Eigene Abschnittsfarben daher über --abschnitt-grund setzen, nicht über background. */
.abschnitt--nacht { --abschnitt-grund: var(--nacht); }
.abschnitt--navy { --abschnitt-grund: radial-gradient(120% 80% at 80% 0%, var(--navy-3) 0%, var(--navy) 55%, var(--nacht) 100%); }
.abschnitt--marine { --abschnitt-grund: linear-gradient(180deg, var(--nacht) 0%, var(--marine) 18%, var(--marine) 82%, var(--nacht) 100%); }
.abschnitt--nacht::before, .abschnitt--navy::before, .abschnitt--marine::before { content: ""; position: absolute; inset: 0; z-index: -2; background: var(--abschnitt-grund); pointer-events: none; }
.glut { position: absolute; width: 46vw; height: 46vw; border-radius: 50%; background: radial-gradient(circle, rgba(238, 123, 45, .16), transparent 62%); filter: blur(30px); pointer-events: none; animation: schweben 22s ease-in-out infinite alternate; }
@keyframes schweben { from { transform: translate(0, 0) scale(1); } to { transform: translate(6vw, 4vw) scale(1.15); } }

/* ---------- Kennen Sie das + Maennchen ---------- */
.problem { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.problem__liste { list-style: none; margin: 2.6rem 0 0; padding: 0 0 0 2rem; position: relative; }
.problem__liste::before { content: ""; position: absolute; left: 0; top: .4rem; bottom: .4rem; width: 2px; background: linear-gradient(var(--orange), var(--rot)); transform: scaleY(0); transform-origin: top; transition: transform 2.6s var(--weich); }
.problem__liste.sichtbar::before { transform: none; }
.problem__liste li { position: relative; padding: 0 0 1.9rem; }
.problem__liste li::before { content: ""; position: absolute; left: calc(-2rem - 5px); top: .55rem; width: 12px; height: 12px; border-radius: 50%; background: var(--nacht); border: 2px solid var(--orange); box-shadow: 0 0 0 6px rgba(238, 123, 45, .1); }
.problem__liste strong { display: block; font-family: var(--serif); font-weight: 400; font-size: clamp(1.25rem, 1.9vw, 1.6rem); line-height: 1.25; margin-bottom: .3rem; }
.problem__liste span { color: var(--creme-2); }
.problem__fuss { margin-top: .8rem; font-family: var(--serif); font-style: italic; font-size: 1.35rem; color: var(--gold); }
.ball { position: relative; aspect-ratio: 1; width: min(100%, 460px); justify-self: center; }
.ball::before { content: ""; position: absolute; inset: -12%; border-radius: 50%; background: radial-gradient(circle, rgba(238, 123, 45, .22), transparent 60%); animation: glimmen 5s ease-in-out infinite; }
.ball svg { position: relative; width: 100%; height: 100%; filter: drop-shadow(0 30px 60px rgba(0, 0, 0, .6)); }
/* Drahtmaennchen v2 (06.10.): Poster = Standbild, Kreisgrund = Filmhintergrund (#09131F), keine Maus-/Hover-Lichter */
.ball__bild { position: relative; display: block; width: 100%; height: 100%; border-radius: 50%; background: #09131f; box-shadow: 0 30px 60px rgba(0, 0, 0, .6), inset 0 0 0 1.5px #1c2c42; pointer-events: none; }
@keyframes glimmen { 0%, 100% { opacity: .55; transform: scale(.96); } 50% { opacity: 1; transform: scale(1.04); } }
/* Maennchen lebt: Kopf kreist und wippt, Koerper atmet, Energie fliesst durch die Adern, Enden funkeln */
.maennchen .m-kopf { transform-box: fill-box; transform-origin: 50% 70%; animation: kopf 7.5s ease-in-out infinite; }
.maennchen .m-koerper { transform-box: fill-box; transform-origin: 50% 0%; animation: atmen 6s ease-in-out infinite; }
.maennchen .m-licht path { stroke-dasharray: 26 140; animation: fluss 3.2s linear infinite; }
.maennchen .m-licht path:nth-child(2n) { animation-duration: 4.1s; animation-delay: -1.3s; }
.maennchen .m-licht path:nth-child(3n) { animation-duration: 3.7s; animation-delay: -2.2s; }
.maennchen .m-enden circle { transform-box: fill-box; transform-origin: center; animation: funkeln 2.8s ease-in-out infinite; }
.maennchen .m-enden circle:nth-child(2n) { animation-delay: -.9s; }
.maennchen .m-enden circle:nth-child(3n) { animation-delay: -1.7s; }
@keyframes kopf { 0%, 100% { transform: rotate(-4deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-3px); } 50% { transform: rotate(6deg) translateY(1px); } 75% { transform: rotate(-2deg) translateY(-2px); } }
@keyframes atmen { 0%, 100% { transform: scale(1, 1) skewX(0); } 35% { transform: scale(1.025, .985) skewX(1.2deg); } 70% { transform: scale(.985, 1.02) skewX(-1deg); } }
@keyframes fluss { from { stroke-dashoffset: 166; } to { stroke-dashoffset: 0; } }
@keyframes funkeln { 0%, 100% { opacity: .35; transform: scale(.8); } 50% { opacity: 1; transform: scale(1.35); } }
@media (max-width: 860px) { .problem { grid-template-columns: 1fr; } .ball { width: min(80%, 340px); order: -1; } }

/* ---------- Live-Raum: Was wir fuer Ihren Betrieb bauen ---------- */
/* 06.10.: Raum geht über die Inhaltsbreite hinaus Richtung randlos (16:9 bleibt, Stationen bleiben auf den Objekten),
   die Überschrift wagt sich mit der unteren Zeile auf die dunkle Wand des Raums. */
#bauen { --raum-luft: clamp(.75rem, 2.2vw, 2.4rem); --raum-radius: 22px; --raum-tief: clamp(1.1rem, 2.6vw, 2.5rem);
  --raum-b: max(100%, min(100vw - 2 * var(--raum-luft), 1720px, (100svh - 4.5rem) * 16 / 9)); }
.raum__kopf { position: relative; z-index: 3; display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-bottom: calc(-1 * var(--raum-tief)); padding-left: clamp(0rem, 2vw, 2rem); pointer-events: none; }
.raum__kopf h2 { text-shadow: 0 2px 28px rgba(7, 14, 22, .65), 0 0 2px rgba(7, 14, 22, .4); }
.raum__kopf p { max-width: 26rem; color: var(--creme-2); margin: 0; }
.raum { position: relative; width: var(--raum-b); margin-inline: calc((100% - var(--raum-b)) / 2); border-radius: var(--raum-radius); overflow: hidden; aspect-ratio: 16 / 9; background: var(--navy); box-shadow: 0 40px 120px rgba(0, 0, 0, .55), 0 0 0 1px rgba(246, 241, 231, .06); }
/* oben ein Hauch Marine, damit die Überschrift auf der Wand ruhig steht */
.raum::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(13, 32, 54, .78) 0%, rgba(13, 32, 54, 0) 26%); pointer-events: none; }
.raum__bild, .raum__film { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.raum__film { opacity: 0; transition: opacity 1.4s var(--weich); }
.raum__film.laeuft { opacity: 1; }
.raum::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(7, 14, 22, .7)); pointer-events: none; }
.station { position: absolute; top: 18%; bottom: 22%; width: 21%; transform: translateX(-50%); z-index: 2; border: 0; background: none; cursor: pointer; padding: 0; color: inherit; }
/* raum3 (06.10.): drei Stationen; die Bank mit beiden Figuren ist breiter, der Puls sitzt je Station auf dem Objekt (--puls-y) */
.station--breit { width: 27%; }
.station::before { content: ""; position: absolute; inset: 0; border-radius: 18px; background: radial-gradient(ellipse at 50% 70%, rgba(242, 180, 52, .18), transparent 70%); opacity: 0; transition: opacity .5s var(--weich); }
.station:hover::before, .station:focus-visible::before, .station[aria-expanded="true"]::before { opacity: 1; }
.station__name { position: absolute; left: 50%; bottom: -13%; transform: translateX(-50%); white-space: nowrap; font: 600 .78rem/1 var(--mono); letter-spacing: .14em; text-transform: uppercase; padding: .55rem .9rem; border-radius: 999px; background: rgba(7, 14, 22, .72); border: 1px solid rgba(238, 123, 45, .45); backdrop-filter: blur(6px); transition: background .35s, color .35s; }
.station:hover .station__name, .station[aria-expanded="true"] .station__name { background: var(--orange); color: var(--nacht); }
.station__puls { position: absolute; left: 50%; top: var(--puls-y, 12%); width: 12px; height: 12px; margin-left: -6px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 0 rgba(242, 180, 52, .6); animation: puls 2.4s infinite;
  outline: 2px solid rgba(7, 14, 22, .55); /* raum3: Puls liegt auch auf hellem Monitor und orangem Kern */ }
@keyframes puls { 0% { box-shadow: 0 0 0 0 rgba(242, 180, 52, .55); } 80%, 100% { box-shadow: 0 0 0 18px rgba(242, 180, 52, 0); } }
.raum__info { margin-top: 1.6rem; min-height: 6.5rem; display: grid; grid-template-columns: auto 1fr auto; gap: 1.6rem; align-items: center; padding: 1.4rem 1.6rem; border-radius: 16px; background: rgba(246, 241, 231, .04); border: 1px solid rgba(246, 241, 231, .07); }
.raum__info h3 { font-size: 1.6rem; }
.raum__info p { margin: 0; color: var(--creme-2); }
.raum__info .nr { font: 600 .8rem/1 var(--mono); color: var(--gold); letter-spacing: .2em; }
.raum__info.wechselt { animation: auftritt .7s var(--weich); }
@media (max-width: 760px) {
  #bauen { --raum-luft: 0px; --raum-radius: 0px; --raum-tief: 1.1rem; }
  .raum__kopf { flex-direction: column; align-items: start; padding-left: 0; }
  .station__name { display: none; }
  .station__puls { width: 16px; height: 16px; margin-left: -8px; top: var(--puls-y, 30%); }
  .raum__info { grid-template-columns: 1fr; }
}

/* ---------- Zusammenarbeit: Band mit laufendem Punkt ---------- */
.band { position: relative; display: grid; grid-template-columns: repeat(5, 1fr); gap: 1.4rem; margin-top: 3.4rem; list-style: none; padding: 0; }
.band::before { content: ""; position: absolute; left: 0; right: 0; top: 7px; height: 1px; background: linear-gradient(90deg, transparent, rgba(238, 123, 45, .55) 10%, rgba(238, 123, 45, .55) 90%, transparent); }
.band::after { content: ""; position: absolute; top: 3px; left: 0; width: 9px; height: 9px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 18px 4px rgba(242, 180, 52, .7); animation: wandern 9s var(--weich) infinite; }
@keyframes wandern { 0% { left: 0; opacity: 0; } 8% { opacity: 1; } 92% { opacity: 1; } 100% { left: calc(100% - 9px); opacity: 0; } }
.band li { position: relative; padding-top: 2.2rem; }
.band li::before { content: ""; position: absolute; top: 2px; left: 0; width: 11px; height: 11px; border-radius: 50%; border: 2px solid var(--orange); background: var(--nacht); }
.band .nr { font: 600 .78rem/1 var(--mono); color: var(--gold); letter-spacing: .2em; }
.band h3 { font-size: 1.35rem; margin: .7rem 0 .5rem; }
.band p { color: var(--creme-2); font-size: .96rem; margin: 0; }
@media (max-width: 860px) { .band { grid-template-columns: 1fr; } .band::before, .band::after { display: none; } }

/* ---------- Assistenten: Klausmeister (orange) + Franky (blau), Porträts seit 07.10.2026 ---------- */
.assist { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.assist__text p { color: var(--creme-2); }
.assist h2 em.assist__blau { color: #5b9dff; text-shadow: 0 0 34px rgba(61, 139, 255, .3); }
.assist__figuren { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.figur { --f-rgb: 238, 123, 45; position: relative; margin: 0; aspect-ratio: 4 / 5; border-radius: 20px; overflow: hidden; background: #0c1826;
  border: 1px solid rgba(246, 241, 231, .07); display: flex; flex-direction: column; justify-content: end; padding: 1.2rem;
  transition: border-color .6s var(--weich), transform .6s var(--weich), box-shadow .6s var(--weich); }
.figur--franky { --f-rgb: 61, 139, 255; }
.figur:hover { border-color: rgba(var(--f-rgb), .5); transform: translateY(-4px); box-shadow: 0 30px 80px rgba(0, 0, 0, .35), 0 0 60px rgba(var(--f-rgb), .12); }
.figur__bild { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; transform-origin: 50% 35%; animation: figur-atmen 11s ease-in-out infinite; }
.figur--franky .figur__bild { animation-delay: -5.5s; }
/* Lichtschein in der Figurfarbe glimmt langsam, dazu wenige funkelnde Lichtpunkte */
.figur::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; mix-blend-mode: screen;
  background: radial-gradient(ellipse 55% 45% at 50% 38%, rgba(var(--f-rgb), .16), transparent 70%); animation: glimmen 7s ease-in-out infinite; }
.figur::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; mix-blend-mode: screen;
  background: radial-gradient(circle at 22% 30%, rgba(var(--f-rgb), .9) 0 1px, transparent 2.5px), radial-gradient(circle at 78% 22%, rgba(var(--f-rgb), .8) 0 1px, transparent 2.5px),
    radial-gradient(circle at 68% 58%, rgba(255, 240, 220, .8) 0 1px, transparent 2px), radial-gradient(circle at 30% 64%, rgba(var(--f-rgb), .7) 0 1px, transparent 2.5px),
    radial-gradient(circle at 84% 44%, rgba(var(--f-rgb), .7) 0 1px, transparent 2px);
  animation: figur-funkeln 5.2s ease-in-out infinite; }
.figur--franky::after { animation-delay: -2.6s; }
.figur figcaption { position: relative; z-index: 2; display: flex; flex-direction: column; margin: 0 -1.2rem -1.2rem; padding: 5rem 1.2rem 1.2rem; background: linear-gradient(0deg, rgba(12, 24, 38, .94) 0%, rgba(12, 24, 38, .6) 50%, rgba(12, 24, 38, 0) 100%); }
.figur__name { font-family: var(--serif); font-size: 1.5rem; }
.figur__art { font: 600 .7rem/1 var(--mono); letter-spacing: .22em; text-transform: uppercase; color: rgb(var(--f-rgb)); margin-top: .35rem; }
.figur--franky .figur__art { color: #9cc6ff; }
@keyframes figur-atmen { 0%, 100% { transform: scale(1.01); } 50% { transform: scale(1.045); } }
@keyframes figur-funkeln { 0%, 100% { opacity: .75; } 50% { opacity: 1; } }
@media (max-width: 860px) { .assist { grid-template-columns: 1fr; } }
@media (max-width: 420px) { .figur { padding: .9rem; } .figur figcaption { margin: 0 -.9rem -.9rem; padding: 4rem .9rem .9rem; } .figur__name { font-size: 1.25rem; } .figur__art { font-size: .6rem; letter-spacing: .16em; } }
@media (prefers-reduced-motion: reduce) { .figur__bild, .figur::before, .figur::after { animation: none; } }

/* ---------- Wer mit Ihnen spricht ---------- */
.kontakt { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.person { display: flex; gap: 1.4rem; align-items: center; padding: 1.6rem; border-radius: 18px; background: rgba(246, 241, 231, .04); border: 1px solid rgba(246, 241, 231, .07); }
.person__bild { width: 84px; height: 84px; border-radius: 50%; flex: none; background: radial-gradient(circle at 50% 38%, rgba(238, 123, 45, .35), var(--navy-3)); }
.person h3 { font-size: 1.45rem; }
.person p { margin: .2rem 0 0; color: var(--creme-2); font-size: .95rem; }
.zahl { font-family: var(--serif); font-size: clamp(3.4rem, 7vw, 5.6rem); line-height: 1; color: var(--orange); }
.quelle { font-size: .78rem; color: rgba(207, 198, 182, .65); margin-top: 1rem; }
@media (max-width: 860px) { .kontakt { grid-template-columns: 1fr; } }

/* ---------- Fuss ---------- */

/* ---------- Chat-Assistent unten rechts ---------- */
.chat-knopf { position: fixed; right: 1.2rem; bottom: 1.2rem; z-index: 60; display: flex; align-items: center; gap: .7rem; padding: .6rem 1.1rem .6rem .6rem; border-radius: 999px; border: 1px solid rgba(238, 123, 45, .6); background: rgba(7, 14, 22, .88); color: var(--creme); backdrop-filter: blur(10px); cursor: pointer; font-weight: 600; font-size: .9rem; box-shadow: 0 14px 40px rgba(0, 0, 0, .45); }
.chat-knopf img { width: 34px; height: 34px; }
.chat { position: fixed; right: 1.2rem; bottom: 5.2rem; z-index: 60; width: min(360px, calc(100vw - 2.4rem)); border-radius: 18px; background: var(--navy-2); border: 1px solid rgba(246, 241, 231, .1); box-shadow: 0 30px 80px rgba(0, 0, 0, .55); overflow: hidden; transform: translateY(14px) scale(.98); opacity: 0; pointer-events: none; transition: all .4s var(--weich); }
.chat.offen { transform: none; opacity: 1; pointer-events: auto; }
.chat__kopf { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.1rem; border-bottom: 1px solid rgba(246, 241, 231, .07); }
.chat__kopf small { display: block; color: var(--creme-2); font-size: .74rem; }
.chat__zu { background: none; border: 0; color: var(--creme); font-size: 1.4rem; cursor: pointer; line-height: 1; }
.chat__verlauf { padding: 1rem 1.1rem; display: grid; gap: .6rem; font-size: .92rem; }
.chat__blase { background: rgba(246, 241, 231, .06); padding: .7rem .9rem; border-radius: 14px 14px 14px 4px; }
.chat__wahl { display: flex; flex-wrap: wrap; gap: .5rem; padding: 0 1.1rem 1.1rem; }
.chat__wahl a, .chat__wahl button { font: inherit; font-size: .84rem; padding: .5rem .8rem; border-radius: 999px; border: 1px solid rgba(238, 123, 45, .5); background: none; color: var(--creme); text-decoration: none; cursor: pointer; }
.chat__wahl a:hover, .chat__wahl button:hover { background: var(--orange); color: var(--nacht); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition-duration: .01ms !important; }
  .zeigen { opacity: 1; transform: none; }
  .hero__film, .raum__film { display: none; }
}

/* ---------- Schweissfunke auf den Linien (Leon 05.10.) ---------- */
.funke { position: absolute; z-index: 2; width: 10px; height: 10px; border-radius: 50%; background: #fff4dc; opacity: 0; pointer-events: none;
  box-shadow: 0 0 6px 2px #fff1c9, 0 0 16px 5px var(--gold), 0 0 38px 12px rgba(238, 123, 45, .55);
  transition: top .75s cubic-bezier(.6, .05, .25, 1), left .75s cubic-bezier(.6, .05, .25, 1), opacity .4s; }
.funke.an { opacity: 1; }
.funke::before { content: ""; position: absolute; border-radius: 2px; opacity: 0; transition: opacity .25s; }
.funke--v { left: -4px; top: .4rem; }
.funke--v::before { left: 4px; bottom: 50%; width: 2px; height: 80px; background: linear-gradient(transparent, var(--gold) 70%, #fff4dc); }
.funke--h { top: 2px; left: 0; }
.funke--h::before { top: 4px; right: 50%; height: 2px; width: 90px; background: linear-gradient(90deg, transparent, var(--gold) 70%, #fff4dc); }
.funke.zieht::before { opacity: 1; }
.funke.zieht--hoch.funke--v::before { bottom: auto; top: 50%; background: linear-gradient(#fff4dc, var(--gold) 30%, transparent); }
.funke.zieht--links.funke--h::before { right: auto; left: 50%; background: linear-gradient(90deg, #fff4dc, var(--gold) 30%, transparent); }
.funke.knall { animation: knall .6s ease-out; }
@keyframes knall { 0% { transform: scale(1); } 30% { transform: scale(2.3); box-shadow: 0 0 10px 4px #fff1c9, 0 0 30px 10px var(--gold), 0 0 70px 24px rgba(238, 123, 45, .6); } 100% { transform: scale(1); } }

/* Kennen Sie das: Punkt unter der Maus leuchtet, Text rueckt minimal nach */
.problem__liste li strong, .problem__liste li span { transition: transform .6s var(--weich), color .6s, opacity .6s; }
.problem__liste li::before { transition: box-shadow .5s, background .5s; }
.problem__liste.hat-fokus li { opacity: .55; }
.problem__liste li.fokus { opacity: 1; }
.problem__liste li.fokus strong, .problem__liste li.fokus span { transform: translateX(8px); }
.problem__liste li.fokus::before { background: var(--orange); box-shadow: 0 0 0 7px rgba(238, 123, 45, .18), 0 0 22px 4px rgba(242, 180, 52, .55); }
.problem__liste li { transition: opacity .6s var(--weich); }

/* Zusammenarbeit: Schritt unter der Maus wird angehoben und groesser */
.band::after { display: none; }
.band li { transition: transform .6s var(--weich), opacity .6s var(--weich); transform-origin: 0 0; }
.band.hat-fokus li.sichtbar { opacity: .5; }
.band li.fokus.sichtbar { opacity: 1; transform: translateY(-10px) scale(1.07); }
.band li.fokus h3 { color: var(--gold); }
.band li::before { transition: background .5s, box-shadow .5s; }
.band li.fokus::before { background: var(--orange); box-shadow: 0 0 18px 4px rgba(242, 180, 52, .55); }

/* Maennchen als Video ueber dem Poster-Standbild (.ball__bild); altes SVG entfernt (medien/maennchen.svg bleibt liegen) */
.ball__film { position: absolute; inset: 0; width: 100%; height: 100%; border-radius: 50%; clip-path: circle(50%); background: #09131f; object-fit: cover; opacity: 0; transition: opacity 1.2s var(--weich); z-index: 1; pointer-events: none; }
.ball__film.laeuft { opacity: 1; }
.ball__film.laeuft ~ svg { opacity: 0; }
.ball svg { transition: opacity 1.2s; }
/* ruhigere Ersatzbewegung, kein Wackeln */
.maennchen .m-kopf { animation-duration: 11s; }
.maennchen .m-koerper { animation-duration: 9s; }

@media (prefers-reduced-motion: reduce) {
  .problem__liste li.zeigen, .band li.zeigen { transform: none; filter: none; }
  .funke { display: none; }
}

/* ---------- Hero-Live-Schicht ---------- */
.hero__film--b { z-index: 0; }
.hero__leben { position: absolute; inset: 0; pointer-events: none; z-index: 1; }
.hero__unten, .hero__runter { z-index: 3; }
.hero::after { z-index: 2; pointer-events: none; }

/* ================= Handy (07.10.2026) – nur in Media-Queries, Desktop bleibt unverändert ================= */
/* Kopf: Notch/Statusleiste (viewport-fit=cover) und kompakte Zeile Marke · Erstgespräch · Menü (menue.css) */
@media (max-width: 1024px) {
  .kopf { padding-top: env(safe-area-inset-top, 0px); padding-left: env(safe-area-inset-left, 0px); padding-right: env(safe-area-inset-right, 0px); }
}
@media (max-width: 440px) {
  .kopf__innen { height: 68px; gap: .6rem; }
  .kopf .marke { gap: .5rem; font-size: .84rem; letter-spacing: .01em; white-space: nowrap; min-height: 44px; }
  .kopf .marke img { width: 34px; height: 34px; }
  .kopf__innen > .knopf { min-height: 44px; padding: .55rem .85rem; font-size: .85rem; }
}
@media (max-width: 374px) {
  /* Ganz schmal (z. B. 360 px): Schriftzug ausblenden, das Abzeichen bleibt Link zur Startseite */
  .kopf .marke span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

/* Hero v4 im Hochformat (07.10.2026): eigener 9:16-Film mit beiden Figuren (hero-v4-hoch, Auswahl per <picture>/<source media>).
   Ersetzt den Notbehelf (16:9-Ausschnitt mit Schwenk, Klausmeister fehlte). Das Bild beginnt knapp unter dem Kopf,
   damit die Leuchtschrift frei steht; Figuren liegen im mittleren Drittel, unten bleibt Boden fuer Knoepfe und Sprechball. */
@media (max-aspect-ratio: 3/4) {
  .hero:not(.hero--alt):not(.hero--sonder) { --fokus-x: 50%; }
  .hero:not(.hero--alt):not(.hero--sonder) .hero__bild, .hero:not(.hero--alt):not(.hero--sonder) .hero__film {
    inset: calc(24px + env(safe-area-inset-top, 0px)) 0 0 0; height: auto; object-position: 50% 0%;
  }
  .hero:not(.hero--alt):not(.hero--sonder)::after { background: linear-gradient(180deg, rgba(7, 14, 22, .6) 0%, transparent 9%, transparent 70%, var(--nacht) 100%); }
}

/* Abstände und Band „So läuft die Zusammenarbeit“ auf dem Handy */
@media (max-width: 600px) {
  .abschnitt { padding: 4.25rem 0; }
  /* Hero-Knöpfe über Ball und Sprechblase (diese reichen ~106 px vom unteren Rand herauf) */
  .hero__unten { bottom: calc(7.6rem + env(safe-area-inset-bottom, 0px)); }
}
@media (max-width: 860px) {
  /* Punkte sitzen auf einer senkrechten Linie neben der Nummer, statt allein über dem Schritt zu stehen */
  .band { gap: 1.7rem; margin-top: 2.6rem; padding-left: 2rem; }
  .band::before { display: block; left: 5px; right: auto; top: .5rem; bottom: .5rem; width: 1px; height: auto;
    background: linear-gradient(180deg, rgba(238, 123, 45, .55), rgba(238, 123, 45, .55) 85%, transparent); }
  .band li { padding-top: 0; }
  .band li::before { top: .05rem; left: -2rem; }
  .band h3 { margin-top: .5rem; }
}
/* Touch: kein blaues System-Tipp-Highlight (wirkte beim Antippen von Stationen und Karten wie ein Blitz vor dem Übergang);
   Rückmeldung geben die eigenen Hover-/Aktiv-Zustände. */
@media (hover: none) and (pointer: coarse) {
  a, button, summary, label, [role="button"], [role="tab"] { -webkit-tap-highlight-color: transparent; }
}
