

* { box-sizing: border-box; margin: 0; padding: 0; }


:root {
  /* Brand Style Guide v1.2 — exakte Werte */
  --bsg-haupt: #0A1F18;
  --bsg-akzent: #2F7855;
  --bsg-akzent-inv: #7FB79B;
  --bsg-bg: #FAFAF7;
  --bsg-bg-creme: #F5F2E8;
  --bsg-text-primary: #0A1F18;
  --bsg-text-secondary: #5F5E5A;
  --bsg-text-tertiary: #6C6B65;
  --bsg-line: #E0DFD9;
  --bsg-line-soft: rgba(10, 31, 24, 0.06);
}

body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  background: var(--bsg-bg);
  color: var(--bsg-text-primary);
  font-weight: 400;
  line-height: 1.55;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

body[data-lang="de"] .lang-en, body[data-lang="de"] .lang-cz { display: none !important; }
body[data-lang="en"] .lang-de, body[data-lang="en"] .lang-cz { display: none !important; }
body[data-lang="cz"] .lang-de, body[data-lang="cz"] .lang-en { display: none !important; }

/* ============================================================ */
/* LANDING                                                       */
/* ============================================================ */

.landing {
  position: fixed;
  top: 0; left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 100;
  background: #0a0a0a;
  display: none;
  overflow: hidden;
}

.landing.active { display: block; }

.landing-slides {
  position: absolute;
  inset: 0;
}

.landing-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1.2s ease-in-out;
}

.landing-slide.active { opacity: 1; }

.landing-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 50%;
}

/* Individuelle Bildausschnitte für vollflächige Landing */
.landing-slide[data-slide="0"] img { object-position: center 100%; } /* Bauhaus: bottom-aligned, Auto garantiert sichtbar */
.landing-slide[data-slide="1"] img { object-position: center 35%; } /* Richter: mehr Wand-Atmosphäre oben, Distanz */
.landing-slide[data-slide="2"] img { object-position: center 50%; } /* Stahl: zentriert */

.landing-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(0,0,0,0.40) 0%,
    rgba(0,0,0,0) 28%,
    rgba(0,0,0,0) 70%,
    rgba(0,0,0,0.55) 100%
  );
  pointer-events: none;
  z-index: 2;
}

/* Logo auf Landing — weiß, da auf Bild */
.landing-logo {
  position: absolute;
  top: 48px;
  left: 56px;
  z-index: 5;
  cursor: pointer;
  display: inline-block;
  padding: 12px;
  margin: -12px;
}

.landing-logo svg {
  height: 38px;
  width: auto;
  display: block;
}

/* Auf Landing alles weiß */
.landing-logo svg path,
.landing-logo svg rect {
  fill: #FFFFFF !important;
}

.landing-claim {
  position: absolute;
  bottom: 56px;
  left: 56px;
  z-index: 3;
  font-size: 12px;
  letter-spacing: 0.32em;
  color: #FFFFFF;
  font-weight: 500;
  text-shadow: 0 1px 8px rgba(0,0,0,0.4);
}




/* Pfeil-Sensorzonen: schmal am Rand, sodass Cursor nur dort zur Hand wird */
.landing-arrow {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 80px;
  z-index: 4;
  display: flex;
  align-items: center;
  opacity: 0;
  transition: opacity 0.4s ease;
}

.landing-arrow:hover { opacity: 1; }
.landing-arrow.prev { left: 0; justify-content: flex-start; padding-left: 24px; }
.landing-arrow.next { right: 0; justify-content: flex-end; padding-right: 24px; }

.landing-arrow-icon {
  font-size: 32px;
  font-weight: 200;
  color: #FFFFFF;
  text-shadow: 0 1px 8px rgba(0,0,0,0.5);
  user-select: none;
  line-height: 1;
}

/* ============================================================ */
/* SITE                                                          */
/* ============================================================ */

.site { display: none; }
.site.active { display: block; }

.site-header {
  padding: 40px 64px 0;
}

.site-header-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 120px;
}

.brand {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  padding: 8px;
  margin: -8px;
}

.brand svg {
  height: 36px;
  width: auto;
  display: block;
}

nav.main-nav {
  display: flex;
  gap: 44px;
  font-size: 13px;
  align-items: center;
  font-weight: 400;
}

nav.main-nav a.nav-link {
  color: var(--bsg-text-primary);
  text-decoration: none;
  opacity: 0.72;
  transition: opacity 0.25s, color 0.25s;
  cursor: pointer;
  letter-spacing: 0.02em;
}

nav.main-nav a.nav-link:hover,
nav.main-nav a.nav-link.active {
  opacity: 1;
  color: var(--bsg-haupt);
}

.lang-switch {
  margin-left: 28px;
  display: flex;
  gap: 8px;
  font-size: 11px;
  letter-spacing: 0.18em;
  font-weight: 500;
}

.lang-switch a {
  color: var(--bsg-text-primary);
  text-decoration: none;
  opacity: 0.35;
  cursor: pointer;
  transition: opacity 0.2s, color 0.2s;
  padding: 2px 4px;
}

.lang-switch a:hover { opacity: 0.7; }

body[data-lang="de"] .lang-switch a[data-set-lang="de"],
body[data-lang="en"] .lang-switch a[data-set-lang="en"],
body[data-lang="cz"] .lang-switch a[data-set-lang="cz"] {
  opacity: 1;
  color: var(--bsg-haupt);
}

.lang-sep { color: var(--bsg-text-tertiary); }

.page { display: none; padding: 0 0 160px; }
.page.active { display: block; }

/* ============================================================ */
/* PAGE TITLE — monumental aber pur Inter                       */
/* ============================================================ */

.page-title-zone {
  padding: 0 64px 96px;
  max-width: 1280px;
  margin: 0 auto;
}

.page-eyebrow {
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--bsg-akzent);
  font-weight: 500;
  margin-bottom: 32px;
}

h1.page-title {
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 76px;
  line-height: 1.02;
  letter-spacing: -0.035em;
  color: var(--bsg-haupt);
  max-width: 900px;
}

.title-zone-split {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}
.title-zone-these {
  flex: 0 0 400px;
  max-width: 400px;
  margin-left: 48px;
  margin-top: 58px;
  font-size: 16px;
  line-height: 1.68;
  color: var(--bsg-haupt);
}
@media (max-width: 980px) {
  .title-zone-split { display: block; }
  .title-zone-these {
    flex: none;
    max-width: 100%;
    margin: 28px 0 0;
  }
}

/* ============================================================ */
/* ÜBERSICHT — Editorial-Liste                                  */
/* ============================================================ */

.uebersicht-list {
  padding: 0 64px;
  max-width: 1280px;
  margin: 0 auto;
}

.standbein-entry {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 1fr;
  gap: 80px;
  align-items: center;
  padding: 88px 0;
  border-top: 1px solid var(--bsg-line);
  cursor: pointer;
  text-decoration: none;
  color: inherit;
  transition: opacity 0.4s ease;
}

.standbein-entry:last-child {
  border-bottom: 1px solid var(--bsg-line);
}

.standbein-entry:hover .standbein-headline {
  color: var(--bsg-akzent);
}

.standbein-entry:hover .standbein-img img {
  transform: scale(1.015);
}

.standbein-entry:nth-child(even) .standbein-img-wrap { order: 1; }
.standbein-entry:nth-child(even) .standbein-text { order: 2; }

.standbein-text {}

.standbein-marker {
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--bsg-akzent);
  font-weight: 500;
  margin-bottom: 28px;
}

.standbein-headline {
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 38px;
  line-height: 1.1;
  letter-spacing: -0.025em;
  color: var(--bsg-haupt);
  margin-bottom: 32px;
  transition: color 0.4s ease;
}

.standbein-intro {
  font-size: 16px;
  line-height: 1.65;
  color: var(--bsg-text-secondary);
  margin-bottom: 36px;
  max-width: 460px;
}

.standbein-more {
  font-size: 11px;
  letter-spacing: 0.22em;
  color: var(--bsg-akzent);
  text-transform: uppercase;
  font-weight: 500;
  display: inline-block;
}

.standbein-more::after {
  content: " →";
  display: inline-block;
  margin-left: 6px;
  transition: transform 0.3s ease;
}

.standbein-entry:hover .standbein-more::after {
  transform: translateX(6px);
}

.standbein-img-wrap {}

.standbein-img {
  overflow: hidden;
  aspect-ratio: 4 / 3;
}

.standbein-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(100%);
  transition: transform 0.7s ease;
}

.standbein-img-caption {
  font-size: 9px;
  letter-spacing: 0.12em;
  color: var(--bsg-text-tertiary);
  margin-top: 12px;
  text-transform: uppercase;
  font-weight: 500;
}

/* ============================================================ */
/* DETAIL                                                        */
/* ============================================================ */

.detail-back-zone {
  padding: 0 64px 64px;
  max-width: 1280px;
  margin: 0 auto;
}

.detail-back {
  display: inline-block;
  font-size: 11px;
  color: var(--bsg-akzent);
  letter-spacing: 0.22em;
  text-decoration: none;
  font-weight: 500;
  opacity: 0.8;
  transition: opacity 0.2s;
  cursor: pointer;
  text-transform: uppercase;
}

.detail-back:hover { opacity: 1; }

.detail-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  padding: 0 64px;
  max-width: 1280px;
  margin: 0 auto 120px;
  align-items: end;
}

.detail-hero-text { padding-bottom: 48px; }

.detail-hero-eyebrow {
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--bsg-akzent);
  font-weight: 500;
  margin-bottom: 32px;
}

.detail-hero-title {
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 52px;
  line-height: 1.05;
  letter-spacing: -0.028em;
  color: var(--bsg-haupt);
}

.detail-hero-img {
  aspect-ratio: 3 / 4;
  overflow: hidden;
}

.detail-hero-img.quer {
  aspect-ratio: 4 / 3;
}

.impressum-portrait {
  float: left;
  margin: 4px 26px 14px 0;
}
.impressum-portrait img {
  display: block;
  height: 100px;
  width: auto;
  filter: grayscale(100%);
}
.impressum-portrait-caption {
  font-size: 9px;
  letter-spacing: 0.12em;
  line-height: 1.5;
  color: var(--bsg-text-tertiary);
  margin-top: 8px;
  text-transform: uppercase;
  font-weight: 500;
  max-width: 92px;
}

.detail-hero-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(100%);
}

.detail-img-caption {
  font-size: 9px;
  letter-spacing: 0.12em;
  color: var(--bsg-text-tertiary);
  margin-top: 12px;
  text-transform: uppercase;
  font-weight: 500;
}

.detail-body {
  padding: 0 64px;
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 80px;
  align-items: start;
}

.detail-body-spacer {}

.detail-body-content { max-width: 720px; }

.detail-intro {
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 22px;
  line-height: 1.5;
  letter-spacing: -0.012em;
  color: var(--bsg-haupt);
  margin-bottom: 80px;
}

.detail-section { margin-bottom: 64px; }
.detail-section:last-child { margin-bottom: 0; }

.detail-section-label {
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--bsg-akzent);
  font-weight: 500;
  margin-bottom: 32px;
}

.detail-list-item {
  padding: 0 0 24px 28px;
  text-indent: -28px;
  line-height: 1.7;
  font-size: 15px;
  color: var(--bsg-text-primary);
}

.detail-list-item:last-child { padding-bottom: 0; }

.pitch-link { margin-top: 48px; font-size: 14px; }

.pitch-link a {
  color: var(--bsg-akzent);
  text-decoration: none;
  border-bottom: 1px solid var(--bsg-line);
  padding-bottom: 2px;
  transition: border-color 0.2s;
}

.pitch-link a:hover { border-bottom-color: var(--bsg-akzent); }

/* ============================================================ */
/* PERSON                                                        */
/* ============================================================ */

.person-zone {
  padding: 0 64px;
  max-width: 1280px;
  margin: 0 auto;
}

.person-intro {
  display: grid;
  grid-template-columns: 280px 1fr; /* Foto-Modus: 280px 1fr */
  gap: 80px;
  margin-bottom: 120px;
  align-items: start;
}

.photo-placeholder {
  /* Portrait liegt noch nicht vor — Platzhalter bis dahin unsichtbar.
     Reaktivieren: display:none entfernen UND .person-intro auf 280px 1fr zurückstellen. */
  display: none;
  width: 220px;
  height: 270px;
  background: rgba(10, 31, 24, 0.03);
  border: 1px dashed var(--bsg-line);
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  color: var(--bsg-text-tertiary);
  letter-spacing: 0.18em;
  text-align: center;
  padding: 16px;
  line-height: 1.6;
  text-transform: uppercase;
  font-weight: 500;
}

.person-text { max-width: 680px; }

.person-text p {
  font-size: 18px;
  line-height: 1.65;
  margin-bottom: 28px;
  color: var(--bsg-text-primary);
  font-weight: 400;
}

.person-text p:last-child { margin-bottom: 0; }

.person-section {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 80px;
  margin-bottom: 88px;
  align-items: start;
}

.person-section .marker {
  font-size: 11px;
  color: var(--bsg-akzent);
  font-weight: 500;
  letter-spacing: 0.32em;
  text-transform: uppercase;
}

.person-section-content {
  max-width: 680px;
  font-size: 15px;
  line-height: 1.7;
  color: var(--bsg-text-primary);
}

.person-section-content p { margin-bottom: 24px; }
.person-section-content p:last-child { margin-bottom: 0; }

.publication-list .item {
  padding: 0 0 20px 28px;
  text-indent: -28px;
  line-height: 1.65;
  color: var(--bsg-text-primary);
}

/* ============================================================ */
/* KONTAKT                                                       */
/* ============================================================ */

.contact-zone {
  padding: 0 64px;
  max-width: 1280px;
  margin: 0 auto;
}

.contact-content {
  max-width: 560px;
  font-size: 18px;
  line-height: 1.75;
  color: var(--bsg-text-primary);
}

.contact-content .name {
  font-weight: 500;
  color: var(--bsg-haupt);
  margin-bottom: 6px;
  font-size: 22px;
}

.contact-content .role {
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--bsg-akzent);
  margin-bottom: 48px;
  font-weight: 500;
}

.contact-content .address { margin-bottom: 36px; }

.contact-content .cz-intro {
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--bsg-akzent);
  font-weight: 500;
  margin-bottom: 20px;
}

.contact-divider {
  border: 0;
  border-top: 1px solid var(--bsg-line);
  margin: 56px 0;
  width: 80px;
}

/* ============================================================ */
/* PFLICHTSEITEN                                                 */
/* ============================================================ */

.pflicht-zone {
  padding: 0 64px;
  max-width: 1280px;
  margin: 0 auto;
}

.pflicht-content {
  max-width: 720px;
  font-size: 14px;
  line-height: 1.7;
  color: var(--bsg-text-primary);
}

.pflicht-content h2 {
  font-size: 11px;
  color: var(--bsg-akzent);
  font-weight: 500;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  margin: 56px 0 20px;
}

.pflicht-content h2:first-child { margin-top: 0; }
.pflicht-content p { margin-bottom: 16px; }

/* ============================================================ */
/* FOOTER                                                        */
/* ============================================================ */

footer.site-footer {
  padding: 64px 64px 56px;
}

.footer-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 500;
}

.footer-bildmarke {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--bsg-akzent);
  opacity: 0.5;
}

.footer-bildmarke svg {
  height: 20px;
  width: auto;
}

.footer-bildmarke span {
  font-size: 12.4px;
  text-transform: none;
  letter-spacing: normal;
}

.footer-nav {
  display: flex;
  gap: 36px;
}

.footer-nav a {
  color: var(--bsg-akzent);
  text-decoration: none;
  opacity: 0.6;
  transition: opacity 0.2s;
  cursor: pointer;
}

.footer-nav a:hover { opacity: 1; }

/* ============================================================ */
/* RESPONSIVE                                                    */
/* ============================================================ */

@media (max-width: 980px) {
  body { font-size: 15px; }

  .site-header { padding: 28px 32px 0; }
  .site-header-inner {
    flex-direction: column;
    gap: 24px;
    align-items: flex-start;
    padding-bottom: 64px;
  }

  nav.main-nav { gap: 22px; flex-wrap: wrap; }

  .page-title-zone,
  .uebersicht-list,
  .detail-back-zone,
  .detail-hero,
  .detail-body,
  .person-zone,
  .contact-zone,
  .pflicht-zone {
    padding-left: 32px;
    padding-right: 32px;
  }

  h1.page-title { font-size: 42px; }

  .standbein-entry {
    grid-template-columns: 1fr;
    gap: 36px;
    padding: 56px 0;
  }

  /* Auf schmalen Geraeten steht ueberall der Text ueber dem Bild.
     Vorher uebernahmen die geraden Eintraege die Wechselordnung der
     Breitansicht — Bild oben, Text unten — und brachen damit die Folge. */
  .standbein-entry:nth-child(even) .standbein-text { order: 0; }
  .standbein-entry:nth-child(even) .standbein-img-wrap { order: 1; }

  .standbein-headline { font-size: 28px; }

  .detail-hero {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .detail-hero-title { font-size: 30px; }
  .detail-hero-text { padding-bottom: 0; }

  .detail-body { grid-template-columns: 1fr; gap: 32px; }
  .detail-intro { font-size: 18px; margin-bottom: 56px; }

  .person-intro,
  .person-section {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .person-text p { font-size: 17px; }
  .contact-content { font-size: 17px; }
  .contact-content .name { font-size: 20px; }
  .photo-placeholder { width: 180px; height: 220px; }

  footer.site-footer { padding: 48px 32px 40px; }
  .footer-inner {
    flex-direction: column;
    gap: 24px;
    text-align: center;
  }
  .footer-nav {
    flex-wrap: wrap;
    justify-content: center;
    gap: 22px;
  }

  .landing-logo { top: 28px; left: 32px; }
  .landing-logo svg { height: 30px; }
  .landing-claim { bottom: 28px; left: 32px; font-size: 10px; }
  .landing-arrow.prev { padding-left: 16px; }
  .landing-arrow.next { padding-right: 16px; }
}


/* Bereichs-Nummerierung im Marker (I / III) */
.standbein-marker .sb-num { color: var(--bsg-text-tertiary); margin-right: 16px; font-weight: 500; letter-spacing: .05em; font-variant-numeric: tabular-nums; }


/* Cursor auf der Landing: unsichtbar bei Ruhe, Hand bei Bewegung */
.landing, .landing * { cursor: none; }
.landing.show-cursor, .landing.show-cursor * { cursor: pointer; }

/* ============================================================ */
/* V52 — technische Ergaenzungen (SEO/GEO-Durchlauf, unsichtbar) */
/* ============================================================ */


.landing { position: relative; display: block; width: 100%; height: 100vh; height: 100svh; }
.site { display: block; }
.page { display: block; }
figure { margin: 0; }
picture { display: contents; }
img { max-width: 100%; height: auto; }
.landing-slide img, .landing img { max-width: none; height: 100%; }

button.landing-arrow { background: transparent; border: 0; padding: 0; font: inherit; color: inherit; cursor: pointer; }
.landing-arrow:focus-visible { opacity: 1; }
:focus-visible { outline: 2px solid var(--bsg-akzent); outline-offset: 2px; }
.sr-skip { position: absolute; left: -9999px; top: 0; background: var(--bsg-haupt); color: #fff; padding: 10px 16px; z-index: 300; font-size: 13px; text-decoration: none; }
.sr-skip:focus { left: 16px; top: 16px; }

.person-pub-link { margin-top: 32px; }
.person-pub-link a { color: var(--bsg-akzent); text-decoration: none; font-size: 14px; letter-spacing: 0.02em; }
.person-pub-link a:hover { text-decoration: underline; }
.publication-list a { color: var(--bsg-akzent); text-decoration: none; }
.publication-list a:hover { text-decoration: underline; }
.pub-intro { font-size: 17px; line-height: 1.7; color: var(--bsg-text-secondary); max-width: 640px; margin-bottom: 56px; }
.pub-note { margin-top: 48px; font-size: 13px; color: var(--bsg-text-tertiary); }
.pub-cat { font-size: 11px; letter-spacing: 0.32em; text-transform: uppercase; color: var(--bsg-akzent);
           font-weight: 500; margin: 56px 0 24px; }
.pub-cat:first-child { margin-top: 0; }
.publication-list .item a[href^="pdf/"],
.publication-list .item a[href^="https://farn"] { color: var(--bsg-akzent); text-decoration: none;
           border-bottom: 1px solid var(--bsg-line); }
.publication-list .item a:hover { border-bottom-color: var(--bsg-akzent); }
.legal-note { font-size: 13px; color: var(--bsg-text-tertiary); margin-bottom: 40px; }
/* Sprungziele der Uebersicht (v53): etwas Luft ueber der Trennlinie */
.standbein-entry { scroll-margin-top: 40px; }
.site-header { scroll-margin-top: 0; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .landing-slide { transition: none; }
}

/* ============================================================ */
/* v54 — ANALYSEN                                               */
/* ============================================================ */

.analysen-list .item { padding: 0 0 30px 0; text-indent: 0; }

.analysen-datum {
  display: block;
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bsg-text-tertiary);
  margin-bottom: 8px;
}

.analysen-titel { display: block; color: var(--bsg-text-primary); line-height: 1.5; }

.analysen-list a.analysen-titel {
  color: var(--bsg-text-primary);
  text-decoration: none;
  border-bottom: 1px solid var(--bsg-line);
}
.analysen-list a.analysen-titel:hover {
  color: var(--bsg-akzent);
  border-bottom-color: var(--bsg-akzent);
}

.analysen-anriss {
  display: block;
  margin-top: 8px;
  max-width: 640px;
  font-size: 15px;
  line-height: 1.6;
  color: var(--bsg-text-secondary);
}

/* Coda unter den drei Standbeinen — ohne eigene Haarlinie, die
   Abschlusslinie der Uebersichtsliste schliesst den Block bereits ab. */
.analysen-block {
  padding: 72px 64px 8px;
  max-width: 1280px;
  margin: 0 auto;
}
.analysen-block .pub-cat { margin-top: 0; margin-bottom: 28px; }
.analysen-block .analysen-list .item { padding-bottom: 26px; }

@media (max-width: 980px) {
  .analysen-block { padding-left: 32px; padding-right: 32px; padding-top: 56px; }
}

/* ============================================================ */
/* v57 — GLIEDERUNG DER PUBLIKATIONSSEITE                       */
/* ============================================================ */

.pub-toc {
  margin: 4px 0 8px;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--bsg-text-tertiary);
  line-height: 2;
}
.pub-toc a {
  color: var(--bsg-text-tertiary);
  text-decoration: none;
  border-bottom: 1px solid transparent;
}
.pub-toc a:hover {
  color: var(--bsg-akzent);
  border-bottom-color: var(--bsg-akzent);
}

/* Sprungziele nicht unmittelbar an die Fensterkante setzen */
.pub-cat[id] { scroll-margin-top: 32px; }

/* ============================================================ */
/* v60 — KATEGORIEN DER PUBLIKATIONSSEITE ALS UEBERSCHRIFTEN    */
/* Auszeichnung geaendert, Erscheinungsbild unveraendert.       */
/* ============================================================ */

h2.pub-cat {
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--bsg-akzent);
  font-weight: 500;
  line-height: 1.55;
  margin: 56px 0 24px;
  scroll-margin-top: 32px;
}

/* ============================================================ */
/* v62 — UEBERLAUF AUF SCHMALEN GERAETEN                        */
/* ============================================================ */

/* Rasterfelder duerfen unter ihre Mindestbreite schrumpfen. Ohne dies
   haelt ein einziges langes Wort das ganze Raster breiter als das
   Fenster; der Seiteninhalt rutscht dann seitlich aus dem Bild. */
.detail-hero > *,
.detail-body > *,
.person-intro > *,
.person-section > * { min-width: 0; }

/* Greift nur, wenn ein Wort tatsaechlich nicht in die Zeile passt.
   Auf breiten Bildschirmen ohne jede Wirkung. */
.detail-intro,
.detail-list-item,
.detail-body-content,
.detail-hero-text,
.person-text,
.pflicht-content,
.publication-list .item,
.analysen-anriss { overflow-wrap: break-word; }

/* ============================================================ */
/* v64 — BEITRAGSSEITEN DES PUBLIKATIONSARCHIVS                 */
/* ============================================================ */

h1.beitrag-titel {
  font-size: 34px; font-weight: 400; line-height: 1.25;
  letter-spacing: -0.01em; color: var(--bsg-text-primary);
  max-width: 780px; margin: 0;
}

.beitrag-untertitel {
  font-size: 17px; color: var(--bsg-text-secondary);
  margin: 0 0 18px; max-width: 640px; line-height: 1.5;
}

.beitrag-meta {
  font-size: 13px; color: var(--bsg-text-tertiary);
  line-height: 1.7; margin: 0 0 10px;
}

.beitrag-text { max-width: 680px; margin-top: 34px; }
.beitrag-text p {
  font-size: 16px; line-height: 1.72;
  color: var(--bsg-text-primary); margin: 0 0 18px;
}

h2.beitrag-zwischentitel {
  font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase;
  color: var(--bsg-akzent); font-weight: 500; line-height: 1.55;
  margin: 42px 0 16px;
}

.beitrag-fussnoten {
  margin: 0 0 18px 18px; padding: 0;
  font-size: 14px; line-height: 1.6; color: var(--bsg-text-secondary);
}
.beitrag-fussnoten li { margin-bottom: 10px; }

@media (max-width: 980px) {
  h1.beitrag-titel { font-size: 28px; }
}

/* ============================================================ */
/* v65 — PORTRÄT                                                */
/* ============================================================ */

.person-portrait {
  width: 220px; aspect-ratio: 4 / 5; object-fit: cover;
  object-position: 50% 22%; display: block; background: var(--bsg-bg-creme);
}
@media (max-width: 980px) { .person-portrait { width: 100%; max-width: 320px; } }

/* ============================================================ */
/* v65.2 — PORTRÄT NEBEN DEM TEXT                               */
/* Der Bildmodus war im Entwurf vorgesehen und ist jetzt aktiv. */
/* ============================================================ */

.person-intro { grid-template-columns: 280px 1fr; gap: 56px; }
/* picture ist von Haus aus inline; als Rasterfeld soll es die Spalte füllen */
.person-intro > picture { display: block; }

/* Höhe aus dem Seitenverhältnis der Datei, nicht aus aspect-ratio:
   das trägt auch in älteren Browsern. Das Bild ist bereits 4:5,
   ein Beschnitt ist deshalb nicht nötig. */
.person-portrait { width: 100%; height: auto; aspect-ratio: auto; object-fit: fill; }

@media (max-width: 980px) {
  .person-intro { grid-template-columns: 1fr; gap: 32px; }
  .person-portrait { width: 100%; max-width: 320px; }
}

/* ============================================================ */
/* v68 — CLAIM ALS WEGWEISER                                    */
/* Die drei Wörter des Claims führen in die drei Tätigkeits-    */
/* felder. Optisch bleibt der Claim, was er war.                */
/* ============================================================ */

.claim .claim-link {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color 0.2s ease, border-color 0.2s ease;
}
.claim .claim-link:hover,
.claim .claim-link:focus-visible {
  color: var(--bsg-akzent);
  border-bottom-color: currentColor;
}
.landing-claim .claim-link:hover,
.landing-claim .claim-link:focus-visible {
  color: var(--bsg-bg-creme);
  border-bottom-color: currentColor;
}

/* ============================================================ */
/* v68 — ZWEITE ÜBERSCHRIFTENEBENE IN DEN BEITRÄGEN             */
/* Gliederungspunkte wie „1.", „a)" oder „aa)" vertragen die    */
/* gesperrte Versalienform nicht — dieselbe Farbe, andere Form. */
/* ============================================================ */

h3.beitrag-unterpunkt {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--bsg-akzent);
  margin: 26px 0 10px;
  letter-spacing: 0;
  text-transform: none;
}

/* Hinweis auf Fußnoten, die nur im PDF stehen */
.beitrag-fussnotenhinweis { color: var(--bsg-text-tertiary); font-style: italic; }

/* ============================================================ */
/* v68 — AUFZÄHLUNGEN IN DEN BEITRÄGEN                          */
/* Gedankenstrich statt Punkt, wie im Original der Sonderdrucke */
/* ============================================================ */

ul.beitrag-liste { list-style: none; margin: 16px 0 18px; padding: 0; }
ul.beitrag-liste li {
  position: relative;
  padding-left: 20px;
  font-size: 16px;
  line-height: 1.72;
  color: var(--bsg-text-primary);
  margin-bottom: 10px;
}
ul.beitrag-liste li::before {
  content: "–";
  position: absolute;
  left: 0;
  color: var(--bsg-akzent);
}

/* Sprecherangaben im Interview — Farbe wie die Überschriften */
.interview-sprecher { color: var(--bsg-akzent); font-weight: 500; }

/* ============================================================ */
/* v69 — FUSSNOTEN IN DEN ANALYSEN                              */
/* ============================================================ */

sup.fn { font-size: 0.7em; line-height: 0; }
sup.fn a { color: var(--bsg-akzent); text-decoration: none; }
sup.fn a:hover { text-decoration: underline; }

ol.beitrag-fussnoten-liste {
  margin: 16px 0 24px 20px; padding: 0;
  font-size: 13.5px; line-height: 1.62; color: var(--bsg-text-secondary);
}
ol.beitrag-fussnoten-liste li { margin-bottom: 9px; padding-left: 4px; }
ol.beitrag-fussnoten-liste li:target { background: rgba(47,120,85,0.07); }
.fn-zurueck { color: var(--bsg-text-tertiary); text-decoration: none; margin-left: 4px; }
.fn-zurueck:hover { color: var(--bsg-akzent); }

.analysen-titel a { color: inherit; text-decoration: none;
  border-bottom: 1px solid transparent; transition: border-color 0.2s ease; }
.analysen-titel a:hover { border-bottom-color: var(--bsg-akzent); }

/* Zweizeilige Überschrift ohne Abstand zwischen den Zeilen */
h2.beitrag-zwischentitel.zweizeilig { line-height: 1.35; }

/* Verweis auf den Beitrag unter dem Anriss */
.analysen-mehr { display: block; margin-top: 8px; font-size: 13px; }
.analysen-mehr a { color: var(--bsg-akzent); text-decoration: none;
  border-bottom: 1px solid transparent; transition: border-color 0.2s ease; }
.analysen-mehr a:hover { border-bottom-color: currentColor; }

/* ============================================================ */
/* v71 — ANGEKÜNDIGTE BEITRÄGE                                  */
/* Was noch nicht geschrieben ist, steht blasser — der          */
/* Unterschied soll auf den ersten Blick erkennbar sein.        */
/* ============================================================ */

.analysen-list .item.angekuendigt { opacity: 0.45; }
.analysen-list .item.angekuendigt .analysen-titel { font-weight: 400; }

/* ============================================================ */
/* v72 — EIN UNTERSTRICH STATT ZWEI                             */
/* Die Umrandung lag auf dem umgebenden span und zusätzlich auf */
/* dem Verweis. Der span trägt sie jetzt nur noch, wenn kein    */
/* Verweis darin liegt.                                         */
/* ============================================================ */

.analysen-titel:has(a) { border-bottom: none; }
.analysen-titel a {
  border-bottom: 1px solid var(--bsg-line);
}
.analysen-titel a:hover,
.analysen-titel a:focus-visible {
  color: var(--bsg-akzent);
  border-bottom-color: var(--bsg-akzent);
}
/* Rückfall für Browser ohne :has() — dort trägt der span keine Linie */
.analysen-list .item .analysen-titel { border-bottom: none; }
.analysen-list .item.angekuendigt .analysen-titel { border-bottom: none; }

/* ============================================================ */
/* v73 — NUR NOCH EINE LINIE                                    */
/* Die Analysenliste ist auch eine publication-list. Deren      */
/* Regel setzt beim Überfahren eine Textunterstreichung, die    */
/* zur Rahmenlinie hinzukam. Hier wird sie abgeschaltet.        */
/* ============================================================ */

.analysen-list a:hover,
.analysen-list a:focus-visible { text-decoration: none; }

/* ============================================================ */
/* v79 — CLAIM AM FUSS DER BEITRAGSSEITEN                       */
/* Derselbe Marker wie auf der Übersichtsseite — er zeigt, zu    */
/* welchem der drei Felder der Beitrag gehört.                  */
/* ============================================================ */

.standbein-marker.beitrag-standbein { margin: 34px 0 8px; }
.beitrag-standbein + .person-pub-link { margin-top: 0; }

/* ============================================================ */
/* v79 — QUERVERWEIS VOM MANDAT ZUR VERÖFFENTLICHUNG            */
/* ============================================================ */

.mandat-bezug {
  display: block;
  margin-top: 7px;
  font-size: 13.5px;
  line-height: 1.55;
  text-indent: 0;
}
.mandat-bezug .marke {
  font-size: 10.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--bsg-text-tertiary);
  margin-right: 10px;
  white-space: nowrap;
}
.mandat-bezug a {
  color: var(--bsg-akzent);
  text-decoration: none;
  border-bottom: 1px solid var(--bsg-line);
  transition: border-color 0.2s ease;
}
.mandat-bezug a:hover,
.mandat-bezug a:focus-visible { border-bottom-color: var(--bsg-akzent); }

/* ============================================================ */
/* v80 — GEGENUEBERSTELLUNG AUF DER PROJEKTSTEUERUNGSSEITE      */
/* Aus dem Leistungsbild, Abschnitt 01. Eine echte Tabelle:     */
/* der Inhalt ist ein Vergleich, und Tabellen tragen ueberall.  */
/* ============================================================ */

.gegen-vorspann {
  font-size: 16px; line-height: 1.72; color: var(--bsg-text-primary);
  margin: 0 0 26px; max-width: 640px;
}
table.gegenueber {
  width: 100%; border-collapse: collapse; margin: 0 0 56px; table-layout: fixed;
}
table.gegenueber th, table.gegenueber td {
  vertical-align: top; text-align: left; padding: 14px 24px 14px 0;
  border-bottom: 1px solid var(--bsg-line);
}
table.gegenueber thead th {
  font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
  font-weight: 500; line-height: 1.5; padding-bottom: 10px;
  border-bottom: 1px solid var(--bsg-text-primary);
}
table.gegenueber thead td { border-bottom: 1px solid var(--bsg-text-primary); width: 130px; }
table.gegenueber thead th.eigen { color: var(--bsg-akzent); }
table.gegenueber thead th.andere { color: var(--bsg-text-tertiary); }
table.gegenueber tbody th {
  font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--bsg-text-tertiary); font-weight: 500; line-height: 1.6;
}
table.gegenueber td.eigen { font-size: 15px; line-height: 1.62; color: var(--bsg-text-primary); }
table.gegenueber td.andere { font-size: 15px; line-height: 1.62; color: var(--bsg-text-tertiary); }

@media (max-width: 980px) {
  table.gegenueber, table.gegenueber tbody, table.gegenueber tr,
  table.gegenueber th, table.gegenueber td { display: block; width: auto; }
  table.gegenueber thead { display: none; }
  table.gegenueber tbody tr { padding: 16px 0; border-bottom: 1px solid var(--bsg-line); }
  table.gegenueber th, table.gegenueber td { border-bottom: none; padding: 0; }
  table.gegenueber td.eigen::before {
    content: "Juristische Projektsteuerung"; display: block;
    font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase;
    color: var(--bsg-akzent); margin: 8px 0 3px;
  }
  table.gegenueber td.andere::before {
    content: "Klassische Rechtsberatung"; display: block;
    font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase;
    color: var(--bsg-text-tertiary); margin: 12px 0 3px;
  }
}

/* ============================================================ */
/* v81 — ANALYSENTITEL IN DER VERWEISFARBE                      */
/* Jeder Verweis in einer Publikationsliste ist gruen; der      */
/* Analysentitel war die Ausnahme. Das gilt auch fuer kuenftige */
/* Beitraege, weil die Regel am Titel haengt, nicht am Text.    */
/* ============================================================ */

.analysen-titel a,
.analysen-list a.analysen-titel { color: var(--bsg-akzent); }
.analysen-titel a:hover,
.analysen-titel a:focus-visible,
.analysen-list a.analysen-titel:hover { color: var(--bsg-text-primary); }

/* Schmalansicht: die Spaltenkoepfe wandern in die Zeilen und
   muessen deshalb je Sprache gesetzt werden. */
@media (max-width: 980px) {
  html[lang="en"] table.gegenueber td.eigen::before { content: "Legal project management"; }
  html[lang="en"] table.gegenueber td.andere::before { content: "Conventional legal advice"; }
  html[lang="cs"] table.gegenueber td.eigen::before { content: "Právní řízení projektů"; }
  html[lang="cs"] table.gegenueber td.andere::before { content: "Klasické právní poradenství"; }
}

/* ============================================================ */
/* v83 — CLAIM UEBER DEN PFEILFLAECHEN                          */
/* Die linke Pfeilflaeche ist 80 px breit und lag ueber dem     */
/* Claim, der bei 56 px beginnt. Bei kurzen Woertern wie „LAW." */
/* war dadurch fast das ganze Wort nicht anklickbar.            */
/* ============================================================ */

.landing-claim { z-index: 6; }
.landing-arrow { z-index: 3; }
.landing-logo { z-index: 7; }

/* Sprachhinweis am Querverweis, wenn die Zielseite nur deutsch vorliegt */
.bezug-sprache { color: var(--bsg-text-tertiary); }

/* ============================================================ */
/* v86.1 — VERWEISE IM BEITRAGSTEXT                             */
/* Fuer Verweise innerhalb eines Beitrags gab es keine Regel;    */
/* sie erschienen in der Standardfarbe des Browsers. Jetzt wie   */
/* ueberall sonst: gruen, mit heller Linie, beim Ueberfahren     */
/* kraeftiger.                                                   */
/* ============================================================ */

.beitrag-text a,
.beitrag-text ul.beitrag-liste a,
.beitrag-text ol.beitrag-fussnoten-liste a {
  color: var(--bsg-akzent);
  text-decoration: none;
  border-bottom: 1px solid var(--bsg-line);
  transition: border-color 0.2s ease;
}
.beitrag-text a:hover,
.beitrag-text a:focus-visible { border-bottom-color: var(--bsg-akzent); }

/* Die Fussnotenziffer im Text und der Ruecksprungpfeil tragen keine Linie */
.beitrag-text sup.fn a,
.beitrag-text .fn-zurueck {
  border-bottom: none;
  color: var(--bsg-akzent);
}
.beitrag-text .fn-zurueck { color: var(--bsg-text-tertiary); }
.beitrag-text .fn-zurueck:hover { color: var(--bsg-akzent); }

/* ============================================================ */
/* v87 — KONTRAST                                               */
/* PageSpeed hat das Kontrastverhaeltnis geruegt. Gemessen:      */
/* text-tertiary erreichte 3,45:1, noetig sind 4,5:1. Die        */
/* Fusszeilenverweise lagen durch 60 % Deckkraft bei 2,43:1.     */
/* Farbwerte und Deckkraft angepasst, Groessen und Abstaende     */
/* unveraendert — das Layout bleibt, wie es ist.                 */
/* ============================================================ */


/* Fusszeile: die Verweise tragen die Akzentfarbe ohne Abschwaechung.
   Zurueckhaltend bleiben sie durch Groesse und Stellung, nicht durch
   verminderte Deckkraft. */
.footer-nav a { opacity: 1; color: var(--bsg-akzent); }
.footer-nav a:hover,
.footer-nav a:focus-visible { color: var(--bsg-text-primary); }

/* Die Wort-Bild-Marke in der Fusszeile ist kein Verweis und traegt
   keinen Text, der gelesen werden muss — sie darf zurueckhaltend
   bleiben. Angehoben auf den Wert, ab dem auch Bildmarken tragen. */
.footer-bildmarke { opacity: 0.75; }

/* ============================================================ */
/* v88 — GRUNDREGEL FUER VERWEISE IM INHALT                     */
/* Ein Verweis erbt die Textfarbe nicht, er bringt seine eigene  */
/* mit. Wo keine Regel griff, blieb die Vorgabe des Browsers:    */
/* blau und unterstrichen. Betroffen waren Telefonnummer,        */
/* E-Mail-Adresse und LinkedIn auf der Kontaktseite sowie        */
/* Telefon und E-Mail im Impressum.                              */
/* Die Regel steht bewusst niedrig in der Rangfolge: jede        */
/* bestehende Sonderregel behaelt Vorrang.                       */
/* ============================================================ */

main a, footer a {
  color: var(--bsg-akzent);
  text-decoration: none;
}
main a:hover, main a:focus-visible {
  color: var(--bsg-text-primary);
}
/* Die Wort-Bild-Marke traegt eigene Farben im SVG und darf sich
   nicht mitfaerben. */
main a.brand, main a.landing-logo,
footer a.brand { color: inherit; }

/* ============================================================ */
/* v93 — KONTRAST, ZWEITER ANLAUF                               */
/* v88 hat Farbwerte geprueft, aber nicht die Deckkraft. An      */
/* diesen Stellen entsteht der schwache Kontrast erst beim       */
/* Uebereinanderlegen: Die Schriftfarbe ist fuer sich in         */
/* Ordnung, wird aber durchsichtig gezeichnet.                   */
/* Alle Werte gegen #FAFAF7 gerechnet, noetig sind 4,5:1.        */
/* ============================================================ */

/* vorher 0,35 — wirksam #A6ADA9, 2,19:1 · jetzt #52615B, 6,24:1 */
.lang-switch a { opacity: 0.7; }
.lang-switch a:hover { opacity: 1; }

/* Die Deckkraft lag auf dem Behaelter und erfasste damit auch den
   Schriftzug. Jetzt traegt sie nur das Zeichen; der Schriftzug
   steht voll — 5,10:1. */
.footer-bildmarke { opacity: 1; }
.footer-bildmarke svg { opacity: 0.62; }

/* vorher 0,45 — wirksam #8E9793, 2,87:1 · jetzt #52615B, 6,24:1.
   Das Zurueckgenommene traegt jetzt der Schriftschnitt und die
   fehlende Verweisfarbe, nicht mehr die Durchsichtigkeit. */
.analysen-list .item.angekuendigt { opacity: 0.7; }

/* Taetigkeitsfeld am Ende eines Analysen-Beitrags, vor dem Archivblock */
.beitrag-standbein { margin: 46px 0 8px; }
.beitrag-feld { margin: 0 0 40px; }

/* Einleitungssatz ueber der Gegenueberstellung — Formulierung von
   JUDr. Martina Dvorakova, ČAK 13124 */
.gegen-satz {
  font-size: 18px; line-height: 1.6; color: var(--bsg-text-primary);
  margin: 0 0 18px; max-width: 640px;
}

/* Zwei Stellen, die erst die neue Pruefung gefunden hat — sie rechnet
   die wirksame Farbe aus Schriftfarbe, Deckkraft und Grundflaeche. */

/* Rueckverweis unter den Taetigkeitsfeldern: 0,8 ergab 3,47:1 */
.detail-back { opacity: 1; }

/* Das Datum der Ankuendigung erbte die Deckkraft des Eintrags und
   lag dadurch bei 2,83:1. Die Zurueckhaltung traegt jetzt allein die
   Deckkraft des Eintrags, nicht zusaetzlich die helle Schriftfarbe. */
.analysen-list .item.angekuendigt .analysen-datum { color: var(--bsg-text-primary); }

/* Sprachhinweis am Querverweis, wenn die Zielseite nur deutsch vorliegt */
.bezug-sprache { color: var(--bsg-text-tertiary); }

/* Sprachhinweis am Querverweis, wenn die Zielseite nur deutsch vorliegt */
.bezug-sprache { color: var(--bsg-text-tertiary); }

/* ============================================================ */
/* v97.1 — BILDHINWEIS AUF DER LANDING                          */
/* Kleiner Verweis rechts unten, fuehrt zum Bildnachweis im      */
/* Impressum. Volle Deckkraft — die Zuruecknahme traegt die      */
/* Schriftgroesse, nicht die Durchsichtigkeit (Kontrastregel).   */
/* ============================================================ */
.landing-bildhinweis {
  position: absolute; right: 56px; bottom: 56px; z-index: 6;
  font-size: 11px; letter-spacing: 0.08em; line-height: 1;
  color: #FFFFFF; text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,0.45); padding-bottom: 3px;
  text-shadow: 0 1px 8px rgba(0,0,0,0.5);
}
.landing-bildhinweis:hover,
.landing-bildhinweis:focus-visible { color: var(--bsg-bg-creme); border-bottom-color: currentColor; }
@media (max-width: 980px) {
  /* schmal: eine Zeile ueber dem Claim, rechtsbuendig — sonst ueberlappen beide */
  .landing-bildhinweis { right: 32px; bottom: 54px; font-size: 10px; }
}
/* Sprungziel unterhalb der Kopfleiste */
#bildnachweis { scroll-margin-top: 110px; }
