/* ==========================================================================
   WIR FÜR HIER — compiled brand stylesheet (main.css)
   Compiled from scss/main.scss. Bootstrap 5.3 is loaded from CDN and retinted
   here via its CSS custom properties; the brand component layer follows.
   ========================================================================== */

@import url("https://fonts.googleapis.com/css2?family=Oswald:wght@300;400;500;600;700&family=Inter:wght@400;500;600;700&family=Space+Mono:wght@400;700&display=swap");

/* —— Bootstrap retint (CSS custom properties) ——————————————————————— */
:root {
  --bs-primary: #cf2e26;
  --bs-primary-rgb: 207, 46, 38;
  --bs-secondary: #0196c9;
  --bs-secondary-rgb: 1, 150, 201;
  --bs-info: #1da5da;
  --bs-warning: #fbed4f;
  --bs-danger: #ea484b;
  --bs-light: #ffffff;
  --bs-dark: #1d1d1b;

  --bs-body-bg: #010101;
  --bs-body-bg-rgb: 1, 1, 1;
  --bs-body-color: #d4d8da;
  --bs-body-color-rgb: 212, 216, 218;
  --bs-border-color: rgba(255, 255, 255, 0.14);
  --bs-border-color-translucent: rgba(255, 255, 255, 0.14);

  --bs-body-font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --bs-body-font-size: 1.125rem;
  --bs-border-radius: 10px;
  --bs-border-radius-sm: 6px;
  --bs-border-radius-lg: 24px;
  --bs-border-radius-pill: 999px;

  --bs-link-color: #1da5da;
  --bs-link-color-rgb: 29, 165, 218;
  --bs-link-hover-color: #56c6ff;

  --bs-emphasis-color: #ffffff;
  --bs-heading-color: #ffffff;
}

/* Button-Varianten (btn-primary/btn-light/btn-outline-light) werden nicht mehr
   gebraucht — alle Buttons nutzen die zentrale Komponente weiter unten. */

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

/* —— Helpers ————————————————————————————————————————————————————————— */
.font-display { font-family: "Oswald", "Arial Narrow", system-ui, sans-serif; text-transform: uppercase; letter-spacing: -0.01em; }
.font-mono    { font-family: "Space Mono", ui-monospace, Menlo, monospace; }
.text-body-2  { color: #d4d8da; }
.text-muted-2 { color: #a8a8a6; }
.text-yellow  { color: #fbed4f; }
.text-cyan-bright { color: #1da5da; }
.bg-stage { background: #010101; }

.section-title {
  font-family: "Oswald", "Arial Narrow", system-ui, sans-serif;
  font-weight: 600;
  font-size: clamp(2.4rem, 4vw, 4.5rem);
  line-height: 1;
  /* text-transform: uppercase; */
  letter-spacing: -0.01em;
  background: linear-gradient(90deg, #FFFFFF 0%, #CDEFFE 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
  margin: 0;
}

/* .section-title--outline { color: transparent; -webkit-text-stroke: 1.5px #fff; } */

.eyebrow {
  font-family: "Space Mono", ui-monospace, Menlo, monospace;
  font-size: 0.85rem; letter-spacing: 0.04em; text-transform: uppercase; color: #1da5da;
}

/* —— Emergency-light bloom & stage ————————————————————————————————— */
.glow { position: absolute; border-radius: 50%; filter: blur(60px); pointer-events: none; z-index: 0; }
.glow--blue { background: rgba(1, 150, 201, 0.5); }
.glow--red  { background: rgba(234, 72, 75, 0.45); }
.stage { position: relative; overflow: hidden; background: #010101; }
.stage > .container, .stage > .container-fluid { position: relative; z-index: 1; }

/* —— Navbar ——————————————————————————————————————————————————————— */
.site-nav { position: absolute; top: 0; left: 0; right: 0; z-index: 20; background: transparent; padding-top: 28px; padding-bottom: 8px; }
.site-logo { display: inline-block; line-height: 0; }
/* Logo-Größe wie im Design (Figma: 280px breit bei 1920 ≈ 14.6vw) */
.site-logo img { width: clamp(150px, 15vw, 280px); height: auto; display: block; }

/* —— Rechtsseiten (Impressum / Datenschutz) ———————————————————————— */
.legal-page { background: #010101; }
.legal-header { padding: 28px 0 8px; }
.legal-header .site-logo img { width: clamp(140px, 12vw, 220px); }
.legal { padding: 2.5rem 0 5rem; }
.legal-content { max-width: 820px; color: #d4d8da; line-height: 1.7; }
.legal-content h2 {
  font-family: "Oswald", sans-serif; color: #fff; font-weight: 600;
  text-transform: uppercase; letter-spacing: -0.01em; font-size: 1.35rem; margin: 2.5rem 0 0.6rem;
}
.legal-content h3 {
  color: #fff; font-weight: 600; font-size: 1.08rem; margin: 1.6rem 0 0.4rem;
}
.legal-content p, .legal-content ul { margin-bottom: 1rem; }
.legal-content a { color: #1da5da; }
.legal-content em { color: #a8a8a6; }

/* —— Buttons — EINE zentrale, wiederverwendbare Komponente ————————————
   Gilt für ALLE Buttons der Landingpage: .btn (inkl. footer-cta & Legal),
   Banner-„Zur Website" (.cb-visit), „ansehen" (.gr-btn), Instagram-Badge
   (.social-ig-badge) und die Cookie-Buttons (consent.php via Tokens).
   Änderungen bitte nur an den Tokens vornehmen. */
:root {
  --btn-bg:       #131313;                                        /* Primary-Fill */
  --btn-bg-hover: linear-gradient(135deg, #00445b 0%, #52b8da 100%);
  --btn-border:   linear-gradient(135deg, #1da5da 0%, #57adce 100%);
  --btn-shadow:   0 0 5.8px #1ba4d9;                              /* Schlagschatten */
  --btn-color:    #ffffff;
  --btn-radius:   999px;
  --btn-border-w: 1.5px;
  --btn-pad-y:    0.62rem;
  --btn-pad-x:    1.4rem;
  --btn-font:     "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

/* Grundzustand (Primary) — Gradient-Rahmen via padding-box/border-box-Trick */
.btn,
.contact-banner .cb-visit,
.gr-btn,
.social-ig-badge {
  display: inline-flex; align-items: center; justify-content: center; gap: 1rem;
  font-family: var(--btn-font); font-weight: 700; font-size: 1.2rem; 
  /* line-height: 1.1; */
  letter-spacing: 0; text-transform: none; text-decoration: none; white-space: nowrap;
  color: var(--btn-color);
  padding: var(--btn-pad-y) var(--btn-pad-x);
  border: var(--btn-border-w) solid transparent; border-radius: var(--btn-radius);
  background: linear-gradient(var(--btn-bg), var(--btn-bg)) padding-box,
              var(--btn-border) border-box;
  box-shadow: var(--btn-shadow);
  cursor: pointer;
  transition: background .22s ease, box-shadow .22s ease, color .22s ease, transform .14s ease;
}
/* Bootstraps eigene .btn-Farb-States neutralisieren, damit unsere Gradienten
   nicht überschrieben werden (betrifft nur echte .btn-Elemente). */
.btn {
  --bs-btn-bg: transparent; --bs-btn-hover-bg: transparent; --bs-btn-active-bg: transparent;
  --bs-btn-border-color: transparent; --bs-btn-hover-border-color: transparent; --bs-btn-active-border-color: transparent;
  --bs-btn-color: #fff; --bs-btn-hover-color: #fff; --bs-btn-active-color: #fff;
}

/* Hover / Fokus — Fill wechselt auf Verlauf, Rahmen/Schatten bleiben */
.btn:hover, .btn:focus-visible,
.contact-banner.cb-link:hover .cb-visit,
.contact-banner.cb-link:focus-visible .cb-visit,
.gr-btn:hover, .gr-btn:focus-visible,
.social-ig-badge:hover, .social-ig-badge:focus-visible {
  color: var(--btn-color);
  background: var(--btn-bg-hover) padding-box,
              var(--btn-border) border-box;
  box-shadow: var(--btn-shadow);
  transform: translateY(-1px);
}
.btn:active,
.contact-banner.cb-link:active .cb-visit,
.gr-btn:active,
.social-ig-badge:active { transform: translateY(0); }

/* Pfeil-Icon (pfile.svg) — als Markup-Icon (.btn-ico) und für .btn-arrow (::after).
   Beide werden durch das flex-gap des Buttons automatisch abgesetzt. */
.btn-ico { width: 0.88em; height: 0.82em; object-fit: contain; flex: 0 0 auto; }
.btn-arrow::after {
  content: ""; width: 0.88em; height: 0.82em; flex: 0 0 auto;
  background: currentColor;
  -webkit-mask: url("../assets/photos/pfile.svg") center / contain no-repeat;
          mask: url("../assets/photos/pfile.svg") center / contain no-repeat;
}

/* —— Hero ————————————————————————————————————————————————————————— */
.hero {
  position: relative; overflow: hidden;
  background: #000 url("../assets/brand/lights-bg.jpg") center top / cover no-repeat;
  padding-top: 70px;
}
.hero__bars {
  position: absolute; left: 50%; top: 60px; transform: translateX(-50%);
  display: flex; gap: 30px; opacity: 0.9; z-index: 1;
}
.hero__bars span { width: 26px; height: 700px; background: linear-gradient(#fff, rgba(255, 255, 255, 1)); }
.hero__plaque {
  /* —— Diese drei Werte steuern Wortmarke und Hintergrund UNABHÄNGIG —— */
  --wm-w: clamp(280px, 40vw, 520px);    /* Größe von wirfuerhier.png (Wortmarke) */
  --mask-w: clamp(560px, 82vw, 910px);  /* Breite von Mask.png (Hintergrund) */
  --mask-h: clamp(230px, 32vw, 400px);  /* Höhe  von Mask.png (Hintergrund) */

  position: relative; z-index: 2;
  display: inline-flex; align-items: center; justify-content: center;
}
/* Mask.png als eigener Hintergrund-Layer hinter der Wortmarke, frei skalierbar.
   background-size:100% 100% füllt die --mask-w × --mask-h-Box (Breite/Höhe frei);
   für unverzerrte Skalierung stattdessen "center / contain" nutzen. */
.hero__plaque::before {
  content: ""; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: var(--mask-w); height: var(--mask-h);
  background: url("../assets/brand/Mask.png") center / 100% 100% no-repeat;
  z-index: -1; pointer-events: none;
}
/* wirfuerhier.png behält seine eigene Größe (--wm-w), unabhängig vom Hintergrund */
.hero__plaque img.wordmark { position: relative; display: block; width: var(--wm-w); height: auto; margin-bottom: 18px; }
.hero__team {
  position: relative; z-index: 2; display: block; width: 100%; margin: -40px auto 0;
  filter: drop-shadow(0 30px 60px rgba(0, 0, 0, 0.6));
}
.hero__fade { position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background: linear-gradient(180deg, transparent 60%, #010101 100%); }

/* Mobile-Team-Gruppe: auf Desktop komplett versteckt (Einzelbild bleibt unverändert) */
.hero__team-group { display: none; }

@media (max-width: 768px) {
  .hero__bars { gap: 20px; top: 24px; }
  .hero__bars span { width: 20px; height: 240px; }
  /* Plaque skaliert über width-clamp + aspect-ratio selbst — keine Overrides nötig */
}

/* —— Mobile (≤768px): Einzel-Hero-Bild → überlappende 7-Figuren-Komposition —— */
@media (max-width: 768px) {
  .hero__team { display: none; }
  .hero__team-group {
    display: block; position: relative; width: 100%; height: 74vw; max-height: 380px;
    margin: -4px auto 0; z-index: 2;
    filter: drop-shadow(0 24px 42px rgba(0, 0, 0, 0.6));
  }
  /* Alle Figuren am Boden ausgerichtet; Bogen über bottom + z-index, Überlappung über left/width */
  .hero__team-group .tg { position: absolute; bottom: 0; height: auto; }
  .tg-1 { width: 53%; left: -16%; bottom: 4%;  z-index: 3; }
  .tg-2 { width: 46%; left: 18%; bottom: 9%;  z-index: 4; }
  .tg-3 { width: 43%; left: 43%; bottom: 13%; z-index: 5; }
  .tg-7 { width: 78%; left: 14%; margin-bottom: -62px;   z-index: 9; }  
  .tg-4 { width: 57%; left: 62%; bottom: 11%; z-index: 5; }
  .tg-5 { width: 51%; left: 4%;  margin-bottom: -197px;  z-index: 4; }
  .tg-6 { width: 49%; left: 64%; margin-bottom: -12%;  z-index: 5; }
}

/* —— NUR 576–768px: eigene Positionen (überschreibt den Block oben) ——————
   Muss NACH dem ≤768px-Block stehen (Media-Queries erhöhen die Spezifität
   nicht → Reihenfolge entscheidet). Werte hier frei anpassen; unter 576px
   gelten weiterhin die Werte aus dem Block darüber. */
@media (min-width: 576px) and (max-width: 768px) {
  .tg-1 { width: 43%; left: -16%; bottom: 4%;  z-index: 3; }
  .tg-2 { width: 36%; left: 18%;  bottom: 9%;  z-index: 4; }
  .tg-3 { width: 34%; left: 51%;  bottom: 13%; z-index: 5; }
  .tg-7 { width: 71%; left: 14%;  z-index: 9; }
  .tg-4 { width: 48%; left: 62%;  bottom: 11%; z-index: 5; }
  .tg-5 { width: 41%; left: 4%;   margin-bottom: -197px; z-index: 4; }
  .tg-6 { width: 44%; left: 65%;  z-index: 5; }
}

/* —— Member rail ——————————————————————————————————————————————————— */
.member-scroll { overflow-x: auto; padding-bottom: 8px; }

/* Mobile-„ansehen"-Trigger (nur auf Mobile sichtbar, s. Media-Query unten) */
.geschichte-reveal { display: none; flex-direction: column; align-items: center; gap: .4rem; }
.gr-chevrons { color: #fff; font-size: 2rem; line-height: .8; opacity: .85; }
/* „ansehen"-Trigger: nur Layout (Vollbreite/Größe) — Optik zentral (siehe Buttons) */
.gr-btn { width: 100%; max-width: 420px; }
.member-rail {
  display: flex; width: fit-content; margin: 0 auto;   /* horizontal zentriert (wie Figma) */
  border: 1px solid rgba(255, 255, 255, 0.14); border-right: 8px solid #fff;
  box-shadow: 0 0 10px 3px rgba(255, 255, 255, 0.45);
}
.member-card {
  position: relative; flex: 0 0 auto; width: 100px; height: 710px; background: #010101;
      border-left: 8px solid #fff; overflow: hidden; cursor: pointer;
  transition: width 0.45s cubic-bezier(0.4, 0, 0.2, 1), background 0.24s ease;
}
.member-card .m-collapsed {
  height: 100%; padding: 28px 0;
  display: flex; flex-direction: column; align-items: center;
}
/* Desktop: Wrapper „auflösen" → m-name/m-dot bleiben direkte Flex-Kinder (Layout wie bisher) */
.member-card .m-nd { display: contents; }
/* Name nach unten: alle Namen beginnen unten auf gleicher Höhe (bottom-bündig) */
.member-card .m-collapsed .m-name { margin-top: auto; }
.member-card .m-collapsed .m-dot { margin-top: 22px; }
.member-card .m-open { display: none; }
.member-card.is-open { width: min(780px, 92vw); background: #0d0f12; }
.member-card.is-open .m-collapsed { display: none; }
.member-card.is-open .m-open {
  display: flex; flex-direction: column; height: 100%; padding: 0; box-sizing: border-box;
  overflow-y: auto; background-color: #010101;  /* Steckbrief-Felder unter dem Foto können scrollen */
}
.m-open-media {
  flex: 1 1 auto; min-height: 0; border-radius: 10px; position: relative;
  background: #dfe1e4 center / cover no-repeat;
}
/* Steckbrief-Foto oben in der offenen Karte. Nicht mehr flex-füllend, sondern
   feste, QUADRAT-fähige Fläche (aspect-ratio 1/1) → sobald die Fotos quadratisch
   sind, sitzen sie randlos; das aktuelle Hochformat-Poster wird per contain
   vollständig (ohne Beschnitt) eingepasst. Darunter bleibt Platz für die Felder. */
.m-open-poster {
  flex: 0 0 auto; width: 100%; aspect-ratio: 1 / 1; max-height: 36vh;
  border-radius: 0;
  background-size: contain; background-position: center; background-repeat: no-repeat;
  background-color: #010101;
}

@media (max-width: 768px) {
  .m-open-poster {
    max-height: 100%;
  } }


/* Platzhalter-Variante (ohne Foto) braucht Innenabstand */
.member-card.is-open .m-open-media:not(.m-open-poster) { margin: 18px 18px 0; }
.member-card.is-open .m-open-cap { margin: 12px 18px 18px; }
.m-open-logo { position: absolute; right: 14px; bottom: 14px; height: 32px; width: auto; }
.m-open-cap { margin-top: 14px; display: flex; flex-direction: column; align-items: flex-start; }
.m-open-name {
  color: #fff; font-family: "Oswald", sans-serif; font-weight: 500; font-size: 20px;
  border-bottom: 2px solid #fff; padding-bottom: 2px;
}
.m-open-role {
  color: #a8a8a6; font-size: 11px; letter-spacing: 0.05em; text-transform: uppercase; margin-top: 6px;
}
/* Textblock DIREKT UNTER dem Foto — pro Karte über orgs.json editierbar
   (member_quote + steckbrief[{label,value}]). Sitzt unter dem Poster und
   scrollt bei Bedarf mit (.m-open overflow-y). */
.m-open-info { flex: 0 0 auto; padding: 16px 18px 20px; background-color: #010101;}
.m-open-quote {
  color: #d7d8da; font-family: "Oswald", sans-serif; font-size: 14px;
  font-style: italic; line-height: 1.4; white-space: pre-line; margin-bottom: 16px;
}
/* Steckbrief-Felder als Label/Wert-Liste (tabellenartig, einzeln editierbar) */
.m-open-fields { margin: 0; }
.m-open-fields .sb-row {
  padding: 8px 0; border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.m-open-fields .sb-row:first-child { border-top: 0; }
.m-open-fields .sb-label {
  margin: 0; color: #a8a8a6; font-size: 11px;
  letter-spacing: 0.05em; text-transform: uppercase;
}
.m-open-fields .sb-value {
  margin: 3px 0 0; color: #fff; font-family: "Oswald", sans-serif;
  font-weight: 500; font-size: 15px; line-height: 1.3;
}
.m-open-fields .sb-value:empty { display: none; }
/* Desktop (>768px): Steckbrief zweispaltig als Tabelle. Grid-Auto-Flow ordnet die
   .sb-row-Zellen paarweise (1|2, 3|4, …); bei ungerader Anzahl bleibt die letzte
   Zelle leer. Mobile (≤768px) bleibt unverändert der Einspalter oben. */
@media (min-width: 768.02px) {
  .m-open-fields { display: grid; grid-template-columns: 1fr 1fr; column-gap: 22px; }
  /* Trennlinie pro Tabellenzeile: erste Zeile (Zelle 1+2) ohne, alle weiteren mit */
  .m-open-fields .sb-row:nth-child(2) { border-top: 0; }
}
.member-card .m-org {
  writing-mode: vertical-rl; transform: rotate(180deg);
  font-family: "Space Mono", ui-monospace, Menlo, monospace; font-size: 15px;
  letter-spacing: 0.01em; text-transform: uppercase; color: #a8a8a6; white-space: nowrap;
}
.member-card .m-name {
  writing-mode: vertical-rl; transform: rotate(180deg);
  font-family: "Oswald", sans-serif; font-weight: 500; font-size: 26px;
  text-transform: uppercase; color: #fff; white-space: nowrap;
}
.member-card .m-dot {
  width: 9px; height: 9px; border-radius: 50%;
  background: linear-gradient(137deg, #56c6ff -2%, #0196c9 38%, #0b6583 81%);
}

/* —— Org buttons ——————————————————————————————————————————————————— */
.org-btn {
  width: 100%; max-width: 300px; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  background: #fff; border: 2px solid transparent; border-radius: 12px;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.3); cursor: pointer;
  transition: transform 0.14s ease, box-shadow 0.24s ease, border-color 0.24s ease;
  /* Einheitliche weiße Karte: fixe Höhe + Innenabstand, Logo wird eingepasst */
  height: 90px; padding: 16px 22px;
  /* Fallback-Text, falls kein Logo vorhanden */
  font-family: "Oswald", sans-serif; font-weight: 700; font-size: 22px;
  line-height: 1.05; text-transform: uppercase; text-align: center; white-space: pre-line; color: #1d1d1b;
}
/* Logo verlustfrei einpassen — nie beschnitten, nie verzerrt, immer zentriert */
.org-btn img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.org-btn:hover { transform: translateY(-2px); }
.org-btn.is-active { border-color: #0196c9;     
        box-shadow:
        0 0 10px #1BA4D9,
        inset 4px -4px 10px rgba(27, 164, 217, 0.5); }

/* —— Verbindungslinie aktives Logo → Banner ("Wir brauchen Dich") —— */
.mitmachen-row { position: relative; }
/* Rechter Bereich (Screenshot) 60 %, Logos 40 % → Screenshot höher */
@media (min-width: 992px) {
  .mitmachen-row .mm-logos  { flex: 0 0 auto; width: 40%; }
  .mitmachen-row .mm-banner { flex: 0 0 auto; width: 60%; }
}
.org-connector {
  position: absolute; height: 2px; pointer-events: none; display: none; z-index: 3;
  background-image: repeating-linear-gradient(to right, rgba(255, 255, 255, 0.65) 0 9px, transparent 9px 17px);
  /* NUR width animieren: Die Linie „zeichnet" sich vom Logo zum Banner (Strich-
     muster wird von links progressiv freigelegt, der Endpunkt wandert mit).
     top/left bleiben ohne Transition — sonst würde die Selbst-Kalibrierung in
     app.js Zwischenwerte messen (getBoundingClientRect). */
  transition: width 0.6s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (prefers-reduced-motion: reduce) { .org-connector { transition: none; } }
.org-connector.is-visible { display: block; }
.org-connector::after {
  content: ""; position: absolute; right: -6px; top: -6px; width: 12px; height: 12px;
  border-radius: 50%; background: linear-gradient(137deg, #56c6ff -2%, #0196c9 38%, #0b6583 81%);
}
@media (max-width: 991px) { .org-connector { display: none !important; } }

/* —— Contact banner ———————————————————————————————————————————————— */
/* Banner = nur Screenshot (klickbar) + „Zur Website"-Button */
.contact-banner.cb-link {
  display: flex; flex-direction: column; overflow: hidden; text-decoration: none;
  border-radius: 24px; border: 1px solid rgba(255, 255, 255, 0.14); background: #010101;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.45); transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.contact-banner.cb-link:hover { transform: translateY(-2px); box-shadow: 0 18px 50px rgba(0, 0, 0, 0.55); }
.contact-banner .cb-photo {
  display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover;
}
/* „Zur Website": sitzt jetzt unter dem Foto (im Fluss) — Optik zentral (siehe Buttons) */
.contact-banner .cb-visit { align-self: flex-end; margin: 22px 16px 26px; }
.contact-banner .cb-title {
  font-family: "Oswald", sans-serif; font-weight: 600; font-size: 1.9rem; line-height: 1.12;
  text-transform: uppercase; letter-spacing: -0.01em; color: #fff;
}

/* —— Social cards —————————————————————————————————————————————————— */
.social-masonry { columns: 4 280px; column-gap: 20px; }
.social-item { break-inside: avoid; margin-bottom: 20px; }
.social-card {
  background: #0d0f12; border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 10px;
  overflow: hidden; box-shadow: 0 6px 24px rgba(0, 0, 0, 0.3);
}
.social-card .sc-head { display: flex; align-items: center; gap: 10px; padding: 11px 14px; border-bottom: 1px solid rgba(255, 255, 255, 0.14); }
.social-card .sc-date { margin-left: auto; font-family: "Space Mono", monospace; font-size: 0.8rem; color: #a8a8a6; }
.social-card .sc-media { aspect-ratio: 4 / 5; background-size: cover; background-position: center; background-color: #000; }
.social-card .sc-body { padding: 16px 16px 18px; }
.social-card .sc-title { font-family: "Oswald", sans-serif; font-weight: 600; font-size: 1.35rem; line-height: 1.1; color: #fff; margin: 0 0 0.55rem; }
.social-card .sc-text { font-size: 1rem; color: #d4d8da; margin: 0 0 0.55rem; }
/* Instagram-Caption: Zeilenumbräche/Absätze erhalten, langer Text abgesetzt */
.social-card .sc-text--caption { white-space: pre-line; line-height: 1.5; font-size: 0.95rem; }
.social-card .sc-link { display: inline-block; margin-top: 0.35rem; font-weight: 600; font-size: 0.9rem; color: #1da5da; }

/* Instagram-Badge im Kopf des Social-Abschnitts — Optik zentral (siehe Buttons) */
.social-ig-badge i { font-size: 1.15rem; }
.ch-linkedin { color: #FFFFFF; }
.ch-instagram { color: #FFFFFF; }
.ch-youtube { color: #FFFFFF; }
.ch-facebook { color: #FFFFFF; }

/* —— Footer CTA + footer ——————————————————————————————————————————— */
.footer-cta {
  display: flex; align-items: center; gap: 3rem; flex-wrap: wrap;
  background: linear-gradient(180deg, rgba(0, 138, 194, 0.23) 0%, rgba(0, 138, 194, 0) 100%);
  border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 24px; padding: 2rem 3rem;
  width: 70%;
   margin: 0 auto;
}
.footer-cta img { height: 150px; }
.footer-cta .fc-title {
  /* font-family: "Oswald", sans-serif; text-transform: uppercase; letter-spacing: -0.01em; */
  font-size: 2.85rem; color: #fff; max-width: 760px; line-height: 1.3;
}

/* —— footer-cta responsive —————————————————————————————————————————— */
/* Tablet: schmale 60%-Karte wäre zu eng → verbreitern, Schrift skalieren */
@media (max-width: 992px) {
  .footer-cta { width: 100%; gap: 2rem; padding: 2rem 2.25rem; }
  .footer-cta .fc-title { font-size: clamp(1.6rem, 3.6vw, 2.4rem); }
}
/* Mobile: gestapelt + zentriert, Maskottchen oben */
@media (max-width: 768px) {
  .footer-cta {
    flex-direction: column; text-align: center; align-items: center;
    gap: 1.25rem; padding: 1.75rem 1.5rem; border-radius: 20px;
  }
  .footer-cta img { height: clamp(88px, 22vw, 120px); }
  /* Text-Container auf volle Kartenbreite zwingen (sonst sizet er auf Inhalt → Überlauf) */
  .footer-cta > div { width: 100%; }
  .footer-cta .fc-title { max-width: 100%; font-size: clamp(1.3rem, 5.4vw, 1.9rem); line-height: 1.25; margin-bottom: 1rem !important; }
}
.site-footer { background: #010101; border-top: 1px solid rgba(255, 255, 255, 0.14); }
.site-footer a { color: #a8a8a6; text-decoration: none; }
.site-footer a:hover { color: #1da5da; }

.badge-pill { border-radius: 999px; font-family: "Space Mono", monospace; font-weight: 400; text-transform: none; padding: 0.35em 0.8em; }

/* Filter pills — brand active state = white (matches FilterTabs) */
#socialFilter .nav-link { --bs-nav-pills-link-active-bg: #ffffff; --bs-nav-pills-link-active-color: #1d1d1b;
  color: #a8a8a6; font-weight: 600; }
#socialFilter .nav-link.active { color: #1d1d1b; }
#socialFilter .nav-link.active .ch-linkedin,
#socialFilter .nav-link.active .ch-instagram,
#socialFilter .nav-link.active .ch-youtube,
#socialFilter .nav-link.active .ch-facebook { filter: none; }

/* —— Section rhythm ———————————————————————————————————————————————— */
.section { padding: 6rem 0; }
.gutter-x { padding-left: clamp(20px, 4vw, 70px); padding-right: clamp(20px, 4vw, 70px); }

/* —— Overflow-Schutz (kein seitliches Scrollen auf Mobile) ————————— */
html, body { overflow-x: hidden; }

/* —— Mobile (< 768px) —————————————————————————————————————————————— */
@media (max-width: 768px) {
  /* Nur vertikal reduzieren — NICHT das horizontale gutter-x-Padding überschreiben */
  .section { padding-top: 3.5rem; padding-bottom: 3.5rem; }

  /* Bootstrap-.row-Negativmargen auf Mobile klein halten → kein seitl. Abschneiden */
  .stage .row { --bs-gutter-x: 1rem; }

  /* „Unsere Geschichte": Rail erst nach „ansehen" zeigen */
  .geschichte-reveal { display: flex; }
  .stage:not(.is-revealed) .member-scroll { display: none; }
  .stage.is-revealed .geschichte-reveal { display: none; }
  /* (Member-Rail-Layout: siehe eigener 768px-Block unten) */

  /* „Soziale Medien": Kopf zentriert (Titel + Filter untereinander) */
  .social-head { flex-direction: column; align-items: center; text-align: center; justify-content: center; }

  /* Kontakt-Banner ohne Verbindungslinie unter den Logos */
  /* .mitmachen-row { margin-top: 0; } */

  /* Footer mobil: gestapelt + zentriert, Rechtslinks umbrechen (sonst ~18px Überlauf) */
  .site-footer .container-fluid { flex-direction: column; text-align: center; }
  .site-footer .text-lg-end { text-align: center; }
  .site-footer .text-lg-end > .d-flex { flex-wrap: wrap; justify-content: center; }
}

/* —— Org-Logos ≤767.98px: 2-Spalten-Grid, letztes (7.) Logo zentriert in eigener Zeile ——
   Nur die Anordnung im #orgGrid wird geändert; Logo-Größen/Styling bleiben gleich. */
@media (max-width: 991px) {
  #orgGrid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 1rem;
    margin: 0;                          /* Bootstrap-.row-Negativmargen aufheben */
  }
  #orgGrid > * { width: 100%; padding: 0; }   /* Bootstrap-Col-Breiten/Padding neutralisieren */
  /* Ungerade: das letzte Logo überspannt beide Spalten und wird auf Spaltenbreite mittig gesetzt */
  #orgGrid > :last-child {
    grid-column: 1 / -1;
    justify-self: center;
    width: calc(50% - 0.5rem);          /* exakt eine Spaltenbreite (gap 1rem) */
  }
}

/* —— Member-Rail responsive (≤768px): vertikal gestapelt statt horizontal ————
   Nur die .member-card-Struktur wird angepasst. .m-open bleibt unverändert und
   behält sein horizontales Layout (nur die offene Karten-HÖHE wird gesetzt,
   damit das Poster wie gehabt gefüllt wird). */
@media (max-width: 768px) {
  .member-scroll { overflow-x: visible; }
  /* Rail: Spalte statt Reihe; weißer Trenner wandert von rechts nach unten */
  .member-rail {
    flex-direction: column; width: 100%;
    border-right: none; border-bottom: 8px solid #fff;
  }
  /* Karten: volle Breite, Höhe aus Inhalt; Trenner von links nach oben */
  .member-card {
    flex: 0 0 auto; width: 100%; height: auto;
    border-left: none; border-top: 8px solid #fff;
    transition: background 0.24s ease;   /* keine Breiten-Animation nötig */
  }
  .member-card:first-child { border-top: none; }

  /* Collapsed: Inhalt untereinander, Schrift entrollt (normal lesbar) */
  .member-card .m-collapsed {
    height: auto; padding: 16px 22px;
    flex-direction: column; align-items: flex-start; gap: 6px;
  }
  /* Punkt + Name in EINER Zeile, Punkt zuerst (order), dann der Name */
  .member-card .m-nd {
    display: flex; flex-direction: row; align-items: center; gap: 10px;
  }
  .member-card .m-nd .m-dot  { order: -1; margin-top: 0; }   /* zuerst */
  .member-card .m-nd .m-name { margin-top: 0; }
  .member-card .m-org,
  .member-card .m-name {
    writing-mode: horizontal-tb; transform: none; white-space: normal;
  }
  .member-card .m-name { font-size: 22px; line-height: 1.05; }

  /* Offene Karte: volle Breite + feste Höhe → .m-open (unverändert) füllt das Poster */
  .member-card.is-open { width: 100%; height: 150vh; 
    /* max-height: 620px; */
   }
}


.sc-link:hover {
    color: #1da5da !important;
    text-decoration: underline;
    
}

.sc-link {
    color: #FFFFFF !important;
    text-decoration: none;
}