/* ============================================================
   Unterseiten-Styles — page.css
   Wird auf allen Unterseiten zusätzlich zu styles.css geladen
   ============================================================ */

/* Header/Footer-Wrapper aus dem Layout nehmen, damit position:sticky
   des Headers relativ zum <body> wirkt (sonst klebt er nur im Wrapper). */
#site-header { display: contents; }

/* Überschriften ausgewogen umbrechen → nie ein einzelnes Wort allein
   in der letzten Zeile (verhindert "Waisenwörter" wie "uns"). */
h1, h2, h3, h4,
.page-hero__inner h1, .head h2, .cta-box h2, .head__sub {
  text-wrap: balance;
}

/* Fließtexte/Sublines: "pretty" verhindert Waisenwörter (einzelnes Wort in der
   letzten Zeile) – wirkt auf Absätze in Cards, Heroes & Listen. Ein globaler
   Fix für die vielen Meldungen "ein Wort einzeln in einer Zeile". */
p, li,
.topic-card p, .feature-card p, .method-card p, .solution__benefit,
.info-card p, .cta-box > p, .cta-box__text p {
  text-wrap: pretty;
}

/* Kurze Sublines/Card-Texte zusätzlich "balance": verteilt die Wörter
   gleichmäßig auf die Zeilen → garantiert KEIN einzelnes Wort in der
   letzten Zeile (stärker als pretty, aber nur für kurze Texte sinnvoll). */
.page-hero__sub, .head__sub,
.topic-card p, .feature-card p, .method-card p,
.fact-card span, .solution__lead, .ws-mod h4, .ws-mod__goal {
  text-wrap: balance;
}

/* Anker-Ziele (TOC-Sprünge) NICHT unter die fixe Nav-Bar scrollen lassen.
   Nav-Unterkante liegt bei ~83px → 140px gibt klar sichtbaren Abstand über
   der Zielüberschrift (Test: vorher nur 7px Luft, jetzt ~55px). */
:target,
h1[id], h2[id], h3[id], h4[id],
.article__block[id], .head[id], section[id] {
  scroll-margin-top: 140px;
}

/* ---------- Page Hero ---------- */
.page-hero {
  padding: calc(150px + var(--nav-h)) 0 70px; margin-top: calc(var(--nav-h) * -1);
  position: relative;
  overflow: hidden;
}
.page-hero::before {
  content: "";
  position: absolute; inset: 0;
  background: radial-gradient(ellipse 70% 60% at 50% 0%, rgba(148,237,133,.07) 0%, transparent 70%);
  pointer-events: none;
}
.page-hero__inner {
  max-width: 800px; margin: 0 auto; text-align: center;
  position: relative; z-index: 1;
}
.page-hero__inner h1 {
  font-family: var(--ff-display); font-weight: 700;
  font-size: clamp(2rem, 5vw, 3.3rem); line-height: 1.12; letter-spacing: -.02em;
  margin: 18px 0 22px;
}
.page-hero__sub {
  font-size: 1.05rem; color: var(--muted); line-height: 1.75; max-width: 680px; margin: 0 auto 36px;
}
.page-hero__cta { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-bottom: 52px; }
.page-hero__stats {
  display: flex; gap: clamp(22px, 4vw, 46px); justify-content: center; flex-wrap: wrap;
  padding-top: 42px; border-top: 1px solid var(--line);
}
.stat { text-align: center; max-width: 210px; }
.stat strong { display: block; font-size: 1.9rem; font-weight: 800; background: var(--grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.stat span { font-size: .78rem; color: var(--muted-2); font-family: var(--ff-mono); text-transform: uppercase; letter-spacing: .1em; }

/* badge-pill in zentrierten Heads sauber zentrieren */
.head .badge-pill, .page-hero__inner .badge-pill, .cta-box .badge-pill { margin: 0 auto 20px; }
.head__sub { margin-top: 18px; color: var(--muted); line-height: 1.7; font-size: 1rem; }

/* ---------- Foto-Band ---------- */
.photo-band { padding: 0 0 20px; }
.photo-band__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.photo-band figure { margin: 0; border-radius: var(--radius); overflow: hidden; aspect-ratio: 4/3; border: 1px solid var(--line); }
.photo-band img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.photo-band figure:hover img { transform: scale(1.04); }

/* ---------- Prose (Fließtext) ---------- */
.prose { max-width: 760px; margin: 0 auto 36px; }
.prose p { color: var(--muted); line-height: 1.8; margin-bottom: 14px; }

/* ---------- Module (Akkordeon) ---------- */
.module {
  max-width: 920px; margin: 0 auto 14px;
  border: 1px solid var(--line); border-radius: var(--radius-sm);
  background: rgba(255,255,255,.02); overflow: hidden;
}
.module[open] { border-color: rgba(148,237,133,.22); }
.module > summary {
  list-style: none; cursor: pointer; padding: 22px 26px;
  display: flex; align-items: center; gap: 18px;
}
.module > summary::-webkit-details-marker { display: none; }
.module > summary::after {
  content: "+"; margin-left: auto; font-size: 1.5rem; line-height: 1;
  color: var(--lime); flex-shrink: 0; transition: transform .3s;
}
.module[open] > summary::after { transform: rotate(45deg); }
.module__day {
  font-family: var(--ff-mono); font-size: .66rem; letter-spacing: .14em; text-transform: uppercase;
  color: #04130b; background: var(--grad); padding: 5px 11px; border-radius: 100px; flex-shrink: 0; font-weight: 700;
}
.module__title { font-weight: 700; font-size: 1.02rem; }
.module__title em { font-style: normal; color: var(--muted-2); font-weight: 500; font-size: .9rem; }
.module__time { font-family: var(--ff-mono); font-size: .76rem; color: var(--muted-2); flex-shrink: 0; }
.module__body { padding: 0 26px 26px; }
.module__body > p { color: var(--muted); line-height: 1.7; margin-bottom: 22px; max-width: 760px; }
.module__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; }
.module__col h4 {
  font-family: var(--ff-mono); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--lime); margin-bottom: 16px; padding-bottom: 10px; border-bottom: 1px solid var(--line);
}

/* ---------- Listen ---------- */
.dots { list-style: none; display: flex; flex-direction: column; gap: 11px; }
.dots li { position: relative; padding-left: 20px; color: var(--muted); line-height: 1.6; font-size: .9rem; }
.dots li::before { content: ""; position: absolute; left: 0; top: .55em; width: 6px; height: 6px; border-radius: 50%; background: var(--grad); }
.dots li strong { color: var(--ink); font-weight: 600; }
.dots--sm li { font-size: .84rem; gap: 8px; }

.checks { list-style: none; display: flex; flex-direction: column; gap: 14px; }
/* Icon absolut links, Textinhalt (egal ob <strong>…:</strong> + Folgetext oder
   reiner Text) fließt als EIN zusammenhängender Block daneben. Behebt den
   "verschobenen Text" auf den Karriere-Stellen (Flex hatte <strong> und den
   Folge-Textknoten als getrennte Items zerrissen). */
.checks li { position: relative; padding-left: 34px; color: var(--muted); line-height: 1.6; font-size: .9rem; }
.checks .tick { position: absolute; left: 0; top: 1px; flex-shrink: 0; width: 22px; height: 22px; border-radius: 50%; background: rgba(148,237,133,.12); display: flex; align-items: center; justify-content: center; }
.checks .tick svg { width: 13px; height: 13px; stroke: var(--lime); }
.checks li strong { color: var(--ink); font-weight: 600; }
.checks--inline { flex-direction: row; flex-wrap: wrap; gap: 10px 22px; }
.checks--inline li { font-size: .88rem; }

/* ---------- Workshop-Blöcke (1 & 2) ---------- */
.ws {
  background: rgba(255,255,255,.02); border: 1px solid var(--line);
  border-radius: var(--radius); padding: 40px; margin-bottom: 28px;
}
.ws__head { display: flex; justify-content: space-between; gap: 32px; margin-bottom: 32px; flex-wrap: wrap; }
.ws__head > div:first-child { max-width: 640px; }
.ws__badge {
  display: inline-flex; padding: 5px 13px; border-radius: 100px;
  font-family: var(--ff-mono); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase;
  background: rgba(255,255,255,.06); border: 1px solid var(--line); color: var(--muted); margin-bottom: 14px;
}
.ws__badge--lime { background: rgba(148,237,133,.1); border-color: rgba(148,237,133,.28); color: var(--lime); }
.ws__head h3 { font-size: 1.45rem; font-weight: 700; margin-bottom: 12px; }
.ws__head p { color: var(--muted); line-height: 1.7; }
.ws__meta { display: flex; flex-direction: column; gap: 8px; align-items: flex-end; text-align: right; }
.ws__meta span:first-child { display: inline-flex; align-items: center; gap: 7px; font-weight: 700; color: var(--ink); white-space: nowrap; }
.ws__meta svg { width: 16px; height: 16px; stroke: var(--lime); }
.ws__meta-note { font-size: .8rem; color: var(--muted-2); }
.ws__modules { gap: 18px; margin-top: 0; }
.ws-mod {
  background: rgba(148,237,133,.03); border: 1px solid var(--line);
  border-radius: var(--radius-sm); padding: 22px;
}
.ws-mod__num {
  font-family: var(--ff-display); font-weight: 800; font-size: 1.4rem;
  background: var(--grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  margin-bottom: 12px;
}
.ws-mod h4 { font-size: .92rem; font-weight: 700; margin-bottom: 8px; line-height: 1.3; }
.ws-mod__goal { font-size: .82rem; color: var(--muted-2); line-height: 1.5; margin-bottom: 14px; font-style: italic; }

/* ---------- Feature Cards (Organisatorisches) ---------- */
.org-grid { margin-bottom: 32px; }
.feature-card {
  background: rgba(255,255,255,.02); border: 1px solid var(--line);
  border-radius: var(--radius-sm); padding: 30px; text-align: center;
}
.feature-card__icon {
  width: 54px; height: 54px; border-radius: 14px; margin: 0 auto 18px;
  background: linear-gradient(135deg, rgba(133,225,192,.15), rgba(148,237,133,.08));
  border: 1px solid rgba(133,225,192,.2);
  display: flex; align-items: center; justify-content: center;
}
.feature-card__icon svg { width: 24px; height: 24px; stroke: var(--lime); }
.feature-card h4 { font-size: 1rem; font-weight: 700; margin-bottom: 8px; }
.feature-card p { font-size: .88rem; color: var(--muted); line-height: 1.6; }

.org-note {
  max-width: 920px; margin: 40px auto 0;
  background: rgba(148,237,133,.04); border: 1px solid rgba(148,237,133,.15);
  border-radius: var(--radius); padding: 32px 36px;
}
.org-note > p { color: var(--ink); line-height: 1.7; margin-bottom: 20px; }

/* ---------- Team Grid ---------- */
.team-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; max-width: 1120px; margin: 0 auto; }
.team-card {
  background: rgba(255,255,255,.02); border: 1px solid var(--line);
  border-radius: var(--radius); overflow: hidden; text-align: center;
  transition: transform .3s var(--ease), border-color .3s;
}
.team-card:hover { transform: translateY(-4px); border-color: var(--line-2); }
.team-card__img-wrap { aspect-ratio: 1; overflow: hidden; background: rgba(148,237,133,.05); }
.team-card__img-wrap img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
/* Freigestellte Fotos (Marcel/Domenik) auf denselben Mint-Hintergrund wie die Studio-Fotos */
.team-card__img-wrap--mint { background: #88c6b8; }
.team-card__info { padding: 24px; display: flex; flex-direction: column; gap: 6px; align-items: center; }
.team-card__info h4 { font-size: 1.05rem; font-weight: 700; }
.team-card__info span { font-size: .82rem; color: var(--muted-2); margin-bottom: 10px; }
/* Karte als Link (Mitglieder mit Profilseite) */
a.team-card { display: block; color: inherit; text-decoration: none; }
/* Zwei gestapelte Bilder: Foto (Default) + Avatar (bei Hover eingeblendet) */
.team-card__photos { position: relative; }
.team-card__photos img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: opacity .45s var(--ease), transform .6s var(--ease); }
.team-card__avatar { opacity: 0; }
.team-card:hover .team-card__avatar { opacity: 1; }
/* Mitglieder ohne Avatar: sanfter Zoom beim Hover */
.team-card__photos--single:hover img { transform: scale(1.04); }
/* Platzhalter-Karte „Du ins Team?" – scrollt zur Bewerbungs-Sektion */
.team-card__join { width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px;
  background: radial-gradient(ellipse at 30% 25%, rgba(148,237,133,.18), transparent 60%), linear-gradient(160deg, rgba(255,255,255,.05), rgba(255,255,255,.012)); }
.team-card__join svg { width: 52px; height: 52px; stroke: var(--lime); transition: transform .3s var(--ease); }
.team-card--join:hover .team-card__join svg { transform: scale(1.1); }
.team-card--join .team-card__info span { color: var(--lime); }
/* Einblick-Fotos (Team-Alltag) */
.team-shots { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; max-width: 900px; margin: 40px auto 0; }
.team-shots img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--radius); border: 1px solid var(--line); }
@media (max-width: 640px) { .team-shots { grid-template-columns: 1fr; max-width: 340px; } }

/* ---------- FAQ ---------- */
.faq-list { max-width: 820px; margin: 0 auto; display: flex; flex-direction: column; gap: 8px; }
.faq { border: 1px solid var(--line); border-radius: var(--radius-sm); overflow: hidden; background: rgba(255,255,255,.02); }
.faq summary {
  padding: 20px 26px; cursor: pointer; font-weight: 600; font-size: .98rem;
  list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; transition: color .2s;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font-size: 1.4rem; line-height: 1; color: var(--lime); flex-shrink: 0; transition: transform .3s; }
.faq[open] summary::after { transform: rotate(45deg); }
.faq[open] summary { color: var(--lime); }
.faq p { padding: 0 26px 22px; color: var(--muted); line-height: 1.75; font-size: .92rem; }

/* ---------- CTA Section ---------- */
.cta-section { padding-bottom: 110px; }
.cta-box {
  max-width: 980px; margin: 0 auto; text-align: center;
  background: rgba(148,237,133,.04); border: 1px solid rgba(148,237,133,.15);
  border-radius: var(--radius); padding: 56px 48px;
}
.cta-box h2 { font-size: clamp(1.6rem, 3vw, 2.3rem); font-weight: 800; margin: 12px 0 16px; }
.cta-box > p, .cta-box__text p { color: var(--muted); line-height: 1.7; margin-bottom: 28px; }
.cta-box__btns { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

/* CTA mit Person (Split) */
.cta-box--split { display: grid; grid-template-columns: 1.4fr .8fr; gap: 48px; align-items: center; text-align: left; }
.cta-box--split .badge-pill { margin: 0 0 18px; }
.cta-box__text .checks--inline { margin-bottom: 28px; }
.cta-box--split .cta-box__btns { justify-content: flex-start; }
.cta-box__person { display: flex; flex-direction: column; align-items: center; gap: 16px; }
.cta-box__person img { width: 100%; max-width: 220px; aspect-ratio: 1; object-fit: cover; object-position: top center; border-radius: var(--radius); border: 1px solid var(--line-2); }
.cta-box__person-info { text-align: center; }
.cta-box__person-info strong { display: block; font-size: 1.05rem; font-weight: 700; }
.cta-box__person-info span { font-size: .85rem; color: var(--muted-2); }

/* ---------- Artikel-Layout (TOC + Body) ---------- */
.article__wrap { display: grid; grid-template-columns: 230px 1fr; gap: 56px; align-items: start; max-width: 1060px; margin: 0 auto; }

.toc { position: sticky; top: 110px; }
.toc__label {
  font-family: var(--ff-mono); font-size: .68rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--muted-2); display: block; margin-bottom: 16px; padding-left: 14px;
}
.toc nav { display: flex; flex-direction: column; gap: 2px; border-left: 1px solid var(--line); }
.toc nav a {
  padding: 8px 14px; font-size: .85rem; color: var(--muted);
  border-left: 2px solid transparent; margin-left: -1px; transition: color .2s, border-color .2s;
}
.toc nav a:hover, .toc nav a.active { color: var(--lime); border-left-color: var(--lime); }

.article__body { min-width: 0; max-width: 720px; }

/* Blog-Fließtext luftiger: größere Schrift, mehr Zeilen- und Absatzabstand,
   damit die langen Artikel nicht als "geballter Text" wirken. Greift auf die
   direkten <p>/<h2>/<ul> im Artikel-Body (Blog-Posts ohne .article__block). */
.article__body > p { color: var(--muted); font-size: 1.05rem; line-height: 1.85; margin-bottom: 26px; }
.article__body > h2 {
  font-family: var(--ff-display); font-weight: 700; font-size: clamp(1.45rem, 3vw, 1.95rem);
  line-height: 1.25; letter-spacing: -.01em; margin: 48px 0 20px; padding-top: 8px;
}
.article__body > h3 { font-size: 1.2rem; font-weight: 700; color: var(--lime); margin: 38px 0 14px; }
.article__body > ul, .article__body > ol { margin: 0 0 26px; }
.article__body > .dots { gap: 14px; }
.article__body > blockquote {
  margin: 0 0 28px; padding: 18px 24px; border-left: 3px solid var(--lime);
  background: rgba(148,237,133,.05); border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  color: var(--ink); font-size: 1.05rem; line-height: 1.7;
}
.article__body > p:first-child {
  font-size: 1.15rem; color: var(--ink); line-height: 1.75; margin-bottom: 30px;
}

.article__block { margin-bottom: 52px; }
.article__block .badge-pill { margin-bottom: 18px; }
.article__block h2 {
  font-family: var(--ff-display); font-weight: 700; font-size: clamp(1.5rem, 3vw, 2rem);
  line-height: 1.2; letter-spacing: -.01em; margin-bottom: 20px; display: flex; align-items: baseline; gap: 14px;
}
.article__num {
  font-family: var(--ff-mono); font-size: 1rem; font-weight: 500;
  background: var(--grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  flex-shrink: 0;
}
/* h3 deutlich vom Fließtext abheben (Lime + mehr Abstand oben) – sonst
   "verschwinden" die Unter-Überschriften im langen Datenschutztext. */
.article__block h3 { font-size: 1.15rem; font-weight: 700; margin: 38px 0 12px; color: var(--lime); padding-top: 6px; }
.article__block h3:first-child { margin-top: 0; }
.article__block p { color: var(--muted); line-height: 1.8; margin-bottom: 16px; }
.article__block .checks { margin: 8px 0 20px; }

/* Tag-Reihe */
.tag-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.tag {
  display: inline-flex; padding: 7px 14px; border-radius: 100px; font-size: .82rem;
  background: rgba(148,237,133,.07); border: 1px solid rgba(148,237,133,.18); color: var(--mint);
}

/* Methoden-Karten */
.method-grid { gap: 18px; margin: 8px 0 28px; }
.method-card {
  background: rgba(255,255,255,.02); border: 1px solid var(--line);
  border-radius: var(--radius-sm); padding: 24px;
}
.method-card h4 { font-size: 1rem; font-weight: 700; margin-bottom: 8px; color: var(--lime); }
.method-card p { font-size: .88rem; color: var(--muted); line-height: 1.5; margin: 0; }

/* Beispiel-Karten (Amazon/Netflix/Spotify) */
.example-grid { display: flex; flex-direction: column; gap: 16px; margin-top: 16px; }
.example-card {
  background: rgba(255,255,255,.02); border: 1px solid var(--line);
  border-radius: var(--radius-sm); padding: 26px 28px;
  border-left: 3px solid transparent; border-image: linear-gradient(180deg, #85e1c0, #94ed85) 1;
  border-top: 1px solid var(--line); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line);
}
.example-card h4 { font-size: 1.05rem; font-weight: 700; margin-bottom: 10px; }
.example-card p { font-size: .9rem; line-height: 1.7; margin: 0; }

/* ---------- Topic-Karten (Themen/Trainings) ---------- */
.topic-grid { gap: 20px; }
.topic-card {
  background: rgba(255,255,255,.02); border: 1px solid var(--line);
  border-radius: var(--radius-sm); padding: 30px;
  transition: transform .3s var(--ease), border-color .3s, background .3s;
}
.topic-card:hover { transform: translateY(-4px); border-color: rgba(148,237,133,.25); background: rgba(148,237,133,.03); }
.topic-card__icon {
  width: 50px; height: 50px; border-radius: 13px; margin-bottom: 18px;
  background: linear-gradient(135deg, rgba(133,225,192,.15), rgba(148,237,133,.08));
  border: 1px solid rgba(133,225,192,.2);
  display: flex; align-items: center; justify-content: center;
}
.topic-card__icon svg { width: 24px; height: 24px; stroke: var(--lime); }
.topic-card h4 { font-size: 1.05rem; font-weight: 700; margin-bottom: 10px; line-height: 1.3; }
.topic-card p { font-size: .9rem; color: var(--muted); line-height: 1.6; }
.topic-card--cta {
  background: rgba(148,237,133,.05); border-color: rgba(148,237,133,.2);
  display: flex; flex-direction: column; justify-content: center;
}
.topic-card .btn { margin-top: 18px; align-self: flex-start; }
.topic-card__num {
  width: 42px; height: 42px; border-radius: 12px; margin-bottom: 16px;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--ff-display); font-weight: 800; font-size: 1.1rem; color: #04130b;
  background: var(--grad);
}

/* ---------- Fakten-Karten (Zahlen/Voraussetzungen) ---------- */
.fact-card {
  background: rgba(148,237,133,.04); border: 1px solid rgba(148,237,133,.15);
  border-radius: var(--radius-sm); padding: 30px 24px; text-align: center;
  display: flex; flex-direction: column; gap: 6px;
}
.fact-card strong {
  font-family: var(--ff-display); font-weight: 800; font-size: 1.6rem;
  background: var(--grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.fact-card span { font-size: .85rem; color: var(--muted-2); font-family: var(--ff-mono); text-transform: uppercase; letter-spacing: .08em; }

/* ---------- Prozess-Schritte (procstep, eigener Name wg. .step in styles.css) ---------- */
.procsteps { max-width: 880px; margin: 0 auto; display: flex; flex-direction: column; gap: 16px; }
.procstep {
  display: grid; grid-template-columns: 80px 1fr; gap: 28px; align-items: start;
  background: rgba(255,255,255,.02); border: 1px solid var(--line);
  border-radius: var(--radius); padding: 30px 34px;
  transition: border-color .3s, background .3s;
}
.procstep:hover { border-color: rgba(148,237,133,.22); background: rgba(148,237,133,.025); }
.procstep__num {
  font-family: var(--ff-display); font-weight: 800; font-size: 2.2rem; line-height: 1;
  background: var(--grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.procstep__body h3 { font-size: 1.15rem; font-weight: 700; margin-bottom: 8px; }
.procstep__body p { color: var(--muted); line-height: 1.7; font-size: .95rem; margin: 0; }

@media (max-width: 600px) {
  .procstep { grid-template-columns: 1fr; gap: 10px; padding: 24px; }
}

/* ---------- Solution-Liste (Icon links + Inhalt) ---------- */
.solution-list { display: flex; flex-direction: column; gap: 20px; max-width: 920px; margin: 0 auto; }
.solution {
  display: grid; grid-template-columns: 72px 1fr; gap: 28px; align-items: start;
  background: rgba(255,255,255,.02); border: 1px solid var(--line);
  border-radius: var(--radius); padding: 32px 36px;
  transition: border-color .3s, background .3s;
}
.solution:hover { border-color: rgba(148,237,133,.22); background: rgba(148,237,133,.025); }
.solution__icon {
  width: 72px; height: 72px; border-radius: 16px;
  background: linear-gradient(135deg, rgba(133,225,192,.15), rgba(148,237,133,.08));
  border: 1px solid rgba(133,225,192,.2);
  display: flex; align-items: center; justify-content: center;
}
.solution__icon svg { width: 32px; height: 32px; stroke: var(--lime); }
.solution__body h3 { font-size: 1.2rem; font-weight: 700; margin-bottom: 4px; }
.solution__lead { color: var(--lime); font-size: .92rem; font-weight: 600; margin-bottom: 18px; }
.solution__body .checks { margin-bottom: 16px; }
.solution__benefit {
  font-size: .9rem; color: var(--muted); line-height: 1.6;
  padding-top: 14px; border-top: 1px solid var(--line); margin: 0;
}
.solution__benefit strong { color: var(--ink); }

@media (max-width: 680px) {
  .solution { grid-template-columns: 1fr; gap: 18px; padding: 24px; }
  .solution__icon { width: 56px; height: 56px; }
  .solution__icon svg { width: 26px; height: 26px; }
}

/* ---------- Feature-Row mit Animation (Bild/Text alternierend) ---------- */
.feature-row {
  display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 5vw, 72px);
  align-items: center;
  background: rgba(255,255,255,.02); border: 1px solid var(--line);
  border-radius: var(--radius); padding: 40px clamp(28px, 4vw, 48px);
}
.feature-row--rev .feature-row__media { order: 2; }
.feature-row__media {
  position: relative; border-radius: var(--radius-sm); overflow: hidden;
  background: radial-gradient(ellipse at center, rgba(148,237,133,.08), transparent 70%);
  display: flex; align-items: center; justify-content: center; min-height: 260px;
}
.feature-row__media .lottie { width: 100%; max-width: 380px; aspect-ratio: 1; }
.feature-row__media .lottie svg { width: 100% !important; height: 100% !important; }
.feature-row__text h3 { font-size: 1.35rem; font-weight: 700; margin-bottom: 6px; }

@media (max-width: 760px) {
  .feature-row { grid-template-columns: 1fr; gap: 24px; padding: 28px; }
  .feature-row--rev .feature-row__media { order: 0; }
  .feature-row__media { min-height: 200px; }
}

/* ---------- Personen-Monogramm (Platzhalter, wenn kein Foto existiert) ---------- */
.person-mono {
  aspect-ratio: 1; width: 100%; border-radius: var(--radius);
  border: 1px solid var(--line-2); overflow: hidden; position: relative;
  background: radial-gradient(ellipse at 30% 25%, rgba(148,237,133,.16), transparent 60%), linear-gradient(160deg, rgba(255,255,255,.05), rgba(255,255,255,.012));
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; text-align: center;
}
.person-mono__letter {
  font-family: var(--ff-display); font-weight: 800; font-size: clamp(5rem, 14vw, 9rem); line-height: 1;
  background: var(--grad); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.person-mono__name { font-weight: 700; font-size: 1.1rem; color: var(--ink); margin-top: 10px; }
.person-mono__role { font-family: var(--ff-mono); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted-2); }

/* ---------- Werte-Liste (Philosophie) ---------- */
.value-list { display: flex; flex-direction: column; gap: 20px; }
.value-item { padding-left: 20px; border-left: 2px solid; border-image: linear-gradient(180deg, #85e1c0, #94ed85) 1; }
.value-item h4 { font-size: 1.05rem; font-weight: 700; margin-bottom: 6px; }
.value-item p { color: var(--muted); line-height: 1.6; font-size: .92rem; margin: 0; }

/* ============================================================
   Kontaktseite (aufgewertet)
   ============================================================ */
.contact-section { padding-top: 24px; }
.contact-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 30px; align-items: start; }

/* Formular-Karte mit animiertem Glow-Rand */
.contact-form {
  position: relative; border-radius: var(--radius); padding: 38px clamp(24px, 3vw, 40px);
  background: rgba(13, 24, 18, .55); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  border: 1px solid var(--line-2); box-shadow: 0 30px 70px -30px rgba(0, 0, 0, .8);
  transform: translateZ(0); /* eigener Layer → kein Flackern durch animierten Rand */
}
@property --ca { syntax: "<angle>"; initial-value: 0deg; inherits: false; }
.contact-form::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px;
  background: conic-gradient(from var(--ca), transparent 0deg, transparent 210deg, var(--mint) 290deg, var(--lime) 330deg, transparent 360deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  pointer-events: none; animation: contactBorder 6s linear infinite;
}
@keyframes contactBorder { to { --ca: 360deg; } }
.contact-form h3 { font-size: 1.3rem; font-weight: 700; margin-bottom: 6px; }
.contact-form > p { color: var(--muted); font-size: .92rem; margin-bottom: 26px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.field { display: flex; flex-direction: column; gap: 7px; margin-bottom: 16px; }
.field label { font-family: var(--ff-mono); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted-2); }
.field input, .field textarea {
  width: 100%; padding: 13px 15px; border-radius: 11px; box-sizing: border-box;
  background: rgba(255, 255, 255, .04); border: 1px solid var(--line-2); color: var(--ink);
  font-family: inherit; font-size: .95rem; outline: none;
  transition: border-color .25s, background .25s, box-shadow .25s;
}
.field textarea { resize: vertical; min-height: 130px; }
.field input:focus, .field textarea:focus { border-color: var(--lime); background: rgba(148, 237, 133, .05); box-shadow: 0 0 0 3px rgba(148, 237, 133, .12); }
.field input::placeholder, .field textarea::placeholder { color: rgba(200, 220, 210, .35); }
.form-consent { display: flex; align-items: flex-start; gap: 10px; margin: 4px 0 22px; font-size: .82rem; color: var(--muted); line-height: 1.5; }
.form-consent input { margin-top: 2px; accent-color: #94ed85; width: 16px; height: 16px; flex: none; }
.form-consent a { color: var(--lime); text-decoration: underline; }
.contact-form .btn { width: 100%; justify-content: center; }
.form-note { text-align: center; font-size: .82rem; color: var(--lime); margin-top: 14px; min-height: 18px; }

/* Kontakt-Sidebar: Kanäle + Person */
.contact-side { display: flex; flex-direction: column; gap: 14px; }
.channel {
  display: flex; align-items: center; gap: 16px; padding: 20px 22px; border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, .02); border: 1px solid var(--line); text-decoration: none;
  transition: transform .3s var(--ease), border-color .3s, background .3s;
}
.channel:hover { transform: translateY(-3px); border-color: rgba(148, 237, 133, .3); background: rgba(148, 237, 133, .04); }
.channel__icon {
  width: 48px; height: 48px; border-radius: 13px; flex: none; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, rgba(133, 225, 192, .18), rgba(148, 237, 133, .1)); border: 1px solid rgba(133, 225, 192, .25);
}
.channel__icon svg { width: 22px; height: 22px; stroke: var(--lime); }
.channel__label { font-family: var(--ff-mono); font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted-2); display: block; margin-bottom: 3px; }
.channel__value { font-weight: 700; color: var(--ink); font-size: 1rem; }

.contact-person {
  display: flex; align-items: center; gap: 16px; padding: 18px 22px; border-radius: var(--radius-sm);
  background: rgba(148, 237, 133, .05); border: 1px solid rgba(148, 237, 133, .18);
}
.contact-person img { width: 58px; height: 58px; border-radius: 50%; object-fit: cover; object-position: top center; flex: none; border: 1px solid var(--line-2); }
.contact-person strong { display: block; font-size: 1rem; }
.contact-person span { font-size: .8rem; color: var(--muted-2); }

/* Eingebettete Karte im Dark-Look */
.contact-map { position: relative; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line-2); min-height: 440px; }
.contact-map iframe { display: block; width: 100%; height: 440px; border: 0; filter: invert(.92) hue-rotate(180deg) brightness(.95) contrast(.9) saturate(.8); }
.contact-map::after { content: ""; position: absolute; inset: 0; pointer-events: none; box-shadow: inset 0 0 140px -30px rgba(8, 17, 13, .95); border-radius: inherit; }

/* Datenschutz-Layer über der Karte (Klick-zum-Laden) */
.map-consent {
  position: absolute; inset: 0; z-index: 2;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
  text-align: center; padding: 32px;
  background: radial-gradient(ellipse at center, rgba(13,24,18,.85), rgba(8,15,11,.96));
  backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
}
.map-consent svg { width: 40px; height: 40px; stroke: var(--lime); margin-bottom: 4px; }
.map-consent h4 { font-size: 1.1rem; font-weight: 700; }
.map-consent p { color: var(--muted); font-size: .9rem; line-height: 1.6; max-width: 420px; margin: 0 0 8px; }
.map-consent a { color: var(--lime); text-decoration: underline; }

@media (max-width: 880px) {
  .contact-grid { grid-template-columns: 1fr; }
  .form-row { grid-template-columns: 1fr; }
  .contact-map iframe { height: 320px; }
}

/* ---------- Impressum: Info-Cards + Rechtstext ---------- */
.imprint-grid { gap: 20px; }
.info-card {
  background: rgba(255,255,255,.02); border: 1px solid var(--line);
  border-radius: var(--radius-sm); padding: 28px; text-decoration: none; color: inherit;
  transition: transform .3s var(--ease), border-color .3s, background .3s;
}
.info-card:hover { transform: translateY(-4px); border-color: rgba(148,237,133,.3); background: rgba(148,237,133,.04); }
.info-card__icon {
  width: 48px; height: 48px; border-radius: 13px; margin-bottom: 16px;
  background: linear-gradient(135deg, rgba(133,225,192,.15), rgba(148,237,133,.08));
  border: 1px solid rgba(133,225,192,.2);
  display: flex; align-items: center; justify-content: center;
}
.info-card__icon svg { width: 22px; height: 22px; stroke: var(--lime); }
.info-card h3 { font-size: 1rem; font-weight: 700; margin-bottom: 8px; }
.info-card p { color: var(--muted); line-height: 1.6; font-size: .92rem; margin: 0; }
.info-card__muted { color: var(--muted-2); font-size: .85rem; }

.legal-block { max-width: 760px; margin: 0 auto 28px; }
.legal-block:last-child { margin-bottom: 0; }
.legal-block h2 { font-size: 1.15rem; font-weight: 700; margin-bottom: 10px; }
.legal-block p { color: var(--muted); line-height: 1.75; font-size: .92rem; margin-bottom: 10px; }
.legal-block a { color: var(--lime); text-decoration: underline; word-break: break-word; }

/* ---------- Einheitlicher Hover für ALLE Karten-Typen ---------- */
.feature-card, .method-card, .fact-card, .ws-mod, .example-card, .mega-col {
  transition: transform .3s var(--ease), border-color .3s, background .3s;
}
.feature-card:hover, .method-card:hover, .fact-card:hover, .ws-mod:hover {
  transform: translateY(-4px); border-color: rgba(148,237,133,.28); background: rgba(148,237,133,.045);
}
/* example-card hat einen Gradient-Rand → nur anheben + Hintergrund, Rand unberührt */
.example-card:hover { transform: translateY(-4px); background: rgba(148,237,133,.045); }

/* ---------- Section Alt ---------- */
.section--alt { background: rgba(255,255,255,.015); }

/* ---------- Btn Small ---------- */
.btn--sm { padding: 8px 18px; font-size: .8rem; }

/* ---------- Helper: Wort/Begriff nie umbrechen ---------- */
.nowrap { white-space: nowrap; }

/* ---------- Termin-Seite: Split-Hero ---------- */
.termin-hero { padding: 150px 0 80px; }
.termin-hero__grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(40px, 6vw, 80px); align-items: center; }
.termin-hero__text h1 { font-size: clamp(1.9rem, 4vw, 2.9rem); line-height: 1.12; margin: 18px 0 20px; }
.termin-hero__text .checks { margin: 24px 0 30px; }

/* Termin-Card mit Foto */
.termin-card {
  position: relative; border-radius: var(--radius);
  border: 1px solid var(--line-2); overflow: hidden;
  background: linear-gradient(160deg, rgba(255,255,255,.05), rgba(255,255,255,.012));
  aspect-ratio: 4/5; max-width: 440px; margin: 0 auto;
}
.termin-card__glow { position: absolute; inset: -20%; background: var(--grad-soft); filter: blur(70px); z-index: 0; }
.termin-card__person { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.termin-card__badge {
  position: absolute; top: 18px; left: 18px; z-index: 3;
  width: 64px; height: 64px; border-radius: 16px; overflow: hidden;
  border: 1px solid var(--line-2); background: rgba(8,17,13,.7); backdrop-filter: blur(8px);
  display: flex; align-items: center; justify-content: center;
}
.termin-card__badge img { width: 100%; height: 100%; object-fit: cover; }
.termin-card__info {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 3;
  padding: 60px 24px 24px; display: flex; flex-direction: column; gap: 2px;
  background: linear-gradient(transparent, rgba(8,15,11,.92));
  padding-right: 180px; /* Platz für den Termin-Button rechts unten */
}
.termin-card__info strong { font-size: 1.15rem; font-weight: 700; }
.termin-card__info span { font-size: .85rem; color: var(--muted-2); }
.termin-card__play {
  position: absolute; z-index: 4; right: 18px; bottom: 18px;
  display: inline-flex; align-items: center; gap: 10px; padding: 13px 22px; border-radius: 100px;
  background: var(--grad); color: #04130b; font-family: var(--ff-display); font-weight: 700; font-size: .92rem;
  cursor: pointer; box-shadow: 0 12px 40px -8px rgba(148,237,133,.6);
  transition: transform .25s var(--ease), box-shadow .25s var(--ease);
}
.termin-card__play svg { width: 18px; height: 18px; }
.termin-card__play:hover { transform: scale(1.05); box-shadow: 0 16px 50px -8px rgba(148,237,133,.8); }

@media (max-width: 880px) {
  .termin-hero__grid { grid-template-columns: 1fr; gap: 40px; }
  .termin-hero__media { order: -1; }
  .termin-card { max-width: 360px; }
}

/* ---------- Calendly Overlay ---------- */
.cal-overlay { position: fixed; inset: 0; z-index: 1000; display: none; }
.cal-overlay.open { display: block; }
.cal-overlay__backdrop { position: absolute; inset: 0; background: rgba(4,10,7,.8); backdrop-filter: blur(6px); animation: calFade .25s var(--ease); }
.cal-overlay__panel {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: min(440px, 94vw); height: min(760px, 90vh);
  background: #101d17; border: 1px solid var(--line-2); border-radius: var(--radius);
  overflow: hidden; box-shadow: 0 40px 100px -20px rgba(0,0,0,.9);
  animation: calPop .3s var(--ease);
}
.cal-overlay__close {
  position: absolute; top: 12px; right: 12px; z-index: 5;
  width: 38px; height: 38px; border-radius: 50%; cursor: pointer;
  background: rgba(8,17,13,.8); border: 1px solid var(--line-2);
  display: flex; align-items: center; justify-content: center; color: var(--ink);
  transition: background .2s, border-color .2s;
}
.cal-overlay__close:hover { background: var(--surface-2); border-color: var(--lime); }
.cal-overlay__close svg { width: 18px; height: 18px; }
.cal-overlay__body { width: 100%; height: 100%; }
.cal-overlay__body .calendly-inline-widget { width: 100%; height: 100%; }
@keyframes calFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes calPop { from { opacity: 0; transform: translate(-50%, -48%) scale(.97); } to { opacity: 1; transform: translate(-50%, -50%) scale(1); } }

/* ---------- Responsive ---------- */
@media (max-width: 980px) {
  .cta-box--split { grid-template-columns: 1fr; text-align: center; }
  .cta-box--split .badge-pill { margin: 0 auto 18px; }
  .cta-box__btns,
  .cta-box--split .cta-box__btns { justify-content: center; }
  .cta-box__text .checks--inline { justify-content: center; }
  .cta-box__person { order: -1; }
}
@media (max-width: 900px) {
  .article__wrap { grid-template-columns: 1fr; gap: 32px; }
  .toc { position: static; }
  .toc nav { flex-direction: row; flex-wrap: wrap; border-left: none; gap: 8px; }
  .toc nav a { border: 1px solid var(--line); border-radius: 100px; padding: 7px 14px; margin: 0; }
  .toc nav a.active, .toc nav a:hover { border-color: var(--lime); }
  .method-grid { grid-template-columns: 1fr; }
  .module__cols { grid-template-columns: 1fr; gap: 26px; }
  .ws { padding: 28px; }
  .ws__head { flex-direction: column; gap: 16px; }
  .ws__meta { align-items: flex-start; text-align: left; }
  .team-grid { grid-template-columns: repeat(3, 1fr); }
  .page-hero__stats { gap: 32px; }
}
@media (max-width: 680px) {
  .photo-band__grid { grid-template-columns: 1fr; }
  .team-grid { grid-template-columns: repeat(2, 1fr); max-width: 400px; gap: 14px; }
  .module > summary { flex-wrap: wrap; gap: 10px; }
  .module__time { width: 100%; }
  .page-hero { padding: calc(120px + var(--nav-h)) 0 56px; }
  .cta-box { padding: 36px 22px; }
  .org-note { padding: 24px; }
}

/* ===== Blog: vollständige Artikel-Liste mit „Mehr laden“ ===== */
.post-card { display: flex; flex-direction: column; text-decoration: none; color: inherit; }
.post-card[hidden] { display: none; }
.post-card__date {
  font-size: .78rem; font-weight: 600; color: var(--lime);
  letter-spacing: .03em; margin-bottom: 12px;
}
.post-card h4 { font-size: 1.05rem; font-weight: 700; line-height: 1.35; margin-bottom: 0; }
.post-card__cta {
  margin-top: auto; padding-top: 16px;
  font-size: .85rem; font-weight: 600; color: var(--lime);
}
.blog-loadmore { text-align: center; margin-top: 40px; }

/* ===== Bewerbungsseite: Datei-Upload ===== */
.upload {
  display: block; cursor: pointer; border: 1.5px dashed var(--line-2);
  border-radius: var(--radius-sm); background: rgba(255,255,255,.02);
  padding: 26px 20px; text-align: center; transition: border-color .25s, background .25s;
}
.upload:hover, .upload.is-drag { border-color: var(--lime); background: rgba(148,237,133,.05); }
.upload input[type="file"] { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.upload__inner { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.upload__inner svg { width: 26px; height: 26px; stroke: var(--lime); margin-bottom: 4px; }
.upload__text { font-weight: 600; font-size: .92rem; color: var(--ink); }
.upload__hint { font-size: .76rem; color: var(--muted-2); }
.upload__list { list-style: none; display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.upload__list li {
  display: flex; align-items: center; gap: 10px; padding: 9px 12px;
  border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.02);
  font-size: .84rem; color: var(--muted);
}
.upload__list li svg { width: 16px; height: 16px; stroke: var(--lime); flex: none; }
.upload__list li span { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.upload__list li b { font-weight: 600; color: var(--muted-2); font-size: .76rem; flex: none; }

/* Sidebar-Box "Warum zu uns" */
.apply-side {
  border: 1px solid var(--line); border-radius: var(--radius-sm);
  background: rgba(148,237,133,.04); padding: 22px 24px;
}
.apply-side h3 { font-size: 1.05rem; font-weight: 700; margin-bottom: 14px; }

/* Beschreibungstext in fact-cards (z. B. „Bereit für KI"-Sektion) */
.fact-card p { font-size: .9rem; color: var(--muted); line-height: 1.6; margin-top: 6px; font-family: var(--ff-body); text-transform: none; letter-spacing: normal; }

/* ===== Anbieter-Logos auf der Modell-Übersicht ===== */
.model-logo {
  height: 40px; width: auto; display: block; margin: 0 auto 20px;
  filter: brightness(0) invert(1); opacity: .92;   /* einheitlich hell auf dunklem Grund */
}
.model-logos { display: flex; gap: 30px 36px; justify-content: center; align-items: center; flex-wrap: wrap; margin: 0 auto 20px; }
.model-logos img { height: 30px; width: auto; filter: brightness(0) invert(1); opacity: .85; }

/* Anbieter-Logo in den Modell-Cards */
.model-card-logo { height: 24px; width: auto; display: block; margin-bottom: 14px; filter: brightness(0) invert(1); opacity: .85; }
