/* === Keyvisual (wie auf deinen Subpages) ================================= */
.hero-image{
  position:relative;
  height:20vh;
  background-image:url('assets/img/kv_projektgalerie.png');
  background-size:cover;
  background-position:center;
  z-index:1;
}
.hero-image::after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.3);
  z-index:2;
}
header{ position:relative; z-index:3; }
main{ position:relative; z-index:4; padding:2rem; }

/* === Splide Bühne zentriert ============================================ */
#proj-splide{
  position: relative;
  max-width: 2000px;
  margin: 0 auto;
  padding: 0;
}

/* === Splide: Sichtbarkeit & Layout ===================================== */
/* Splide-Layout: nur Track clippt; KEIN scale() auf Slides */
#proj-splide .splide__track { overflow: hidden; }

#proj-splide .splide__slide{
  opacity: .95;
  filter: grayscale(100%) contrast(.95) brightness(.95);
  transition: opacity .25s ease, filter .25s ease;
}
#proj-splide .splide__slide.is-active{
  opacity: 1;
  filter: none;
  z-index: 2;
}

/* === Karten (Slides) ==================================================== */
.fs-card{
  position: relative;
  overflow: hidden;
  border-radius: 18px;
  height: clamp(280px, 32vw, 520px);
  background: #eee;
  box-shadow: 0 18px 50px rgba(0,0,0,.20);
  transform: translateZ(0);
  will-change: transform;
}
.fs-card img{ width:100%; height:100%; display:block; object-fit:cover; }

/* Caption */
.fs-cap{
  position:absolute; inset:0;
  display:flex; flex-direction:column; justify-content:flex-end; align-items:center;
  padding:14px 16px; color:#fff;
  background:linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,.55) 100%);
  opacity:0; transform:translateY(12px);
  transition:opacity .5s ease, transform .5s ease; pointer-events:none;
}
.splide__slide.is-active .fs-cap{ opacity:1; transform:translateY(0); }

/* Pfeile rund & CI-Farben */
.splide__arrow{
  width:64px; height:64px; border-radius:50%; border:none;
  background:#3a7cd4; color:#fff; font-size:28px;
  box-shadow:0 12px 32px rgba(0,0,0,.18);
  z-index:10;
}
.splide__arrow--prev{ left:-10px; }
.splide__arrow--next{ right:-10px; }
.splide__arrow:hover{ background:#ffc000; }

/* === Eingebaute Splide-Pagination (Dots) =============================== */
#proj-splide .splide__pagination{
  position: static;
  margin-top: 12px;
  display:flex; justify-content:center; gap:10px;
}
#proj-splide .splide__pagination__page{
  width:12px; height:12px; border:none; border-radius:50%;
  background:#3a7cd4; opacity:1;
}
#proj-splide .splide__pagination__page.is-active{
  transform:scale(1.25);
  background:#ffc000;
  box-shadow:0 0 0 6px rgba(255,192,0,.18);
}

/* Text auf den Slides */
.fs-t{
  margin:0; font-weight:800; font-size:clamp(18px,3vw,34px);
  text-shadow:0 3px 10px rgba(0,0,0,.7);
}
.fs-s {
  margin: 4px 0 0;
  color: #e6effc;
  font-weight: 600;
  text-shadow: 0 3px 10px rgba(0,0,0,.7);
  font-size: clamp(14px, 1.8vw, 22px);
}

/* === Modal ============================================================= */
.ol{
  position:fixed; inset:0; background:rgba(0,0,0,.35);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  opacity:0; visibility:hidden; transition:opacity .18s ease, visibility .18s ease;
  z-index:2147483640;
}
.ol.open{ opacity:1; visibility:visible; }

.md{
  position:fixed; inset:0; display:grid; place-items:center;
  opacity:0; visibility:hidden; transition:opacity .18s ease, visibility .18s ease;
  z-index:2147483647;
}
.md.open{ opacity:1; visibility:visible; }

/* WICHTIG: Die Box selbst scrollt NICHT mehr – nur der Body. */
.box{
  position:relative; background:#fff; border-radius:14px;
  width:min(100%,980px); max-height:calc(100vh - 48px);
  box-shadow:0 24px 64px rgba(0,0,0,.28);
  padding:24px;

  /* Neu: fixiertes Layout für sticky Close-Button */
  overflow:hidden;                 /* vorher: auto */
  display:flex; flex-direction:column;
}

/* Schließen-Button (bleibt fix in der Ecke der Box) */
.close{
  position:absolute; top:12px; right:12px;
  width:40px; height:40px; border-radius:50%;
  border:none; background:transparent; color:#3a7cd4;
  font-size:20px; display:grid; place-items:center; cursor:pointer;
  transition: background .2s ease, box-shadow .2s ease, color .2s ease;
  z-index: 2; /* über dem scrollenden Inhalt */
}
.close:hover{
  background:#ffc000; color:#fff;
  box-shadow:0 0 0 3px #fff;
}
.close:focus-visible{
  outline: none;
  box-shadow:0 0 0 3px #fff, 0 0 0 6px rgba(255,192,0,.6);
}

.box-title{ margin:0 40px 8px 0; font-size:2rem; font-weight:800; color:#3a7cd4; }
.box-sub{ margin:0 40px 18px 0; font-size:1.4rem; color:#3a7cd4; font-weight:600; }

/* Nur der Body scrollt jetzt */
.box-body{
  overflow:auto;
  -webkit-overflow-scrolling: touch;
  /* nimmt die volle restliche Höhe der Box ein */
  flex: 1 1 auto;
}

/* --- Popup-Typo & Abstände ------------------------------------------- */
.box-body.lk-bio { line-height: 1.6; font-size: 1rem; }
.lk-section { margin: 14px 0; }
.lk-desc { margin: 10px 0 14px; }
.lk-h4 {
  margin: 16px 0 6px;
  font-size: 1.15rem;
  font-weight: 800;
  color: #3a7cd4;
}
.lk-content p { margin: 0 0 10px; }

/* Bio/Listen-Optik */
.lk-bio ul { list-style:none; padding-left:0; margin:8px 0 0; }
.lk-bio li { position:relative; padding-left:1.2rem; margin:6px 0; }
.lk-bio li::before {
  content:""; width:10px; height:10px; background:#3a7cd4;
  position:absolute; left:0; top:0.9em; transform:translateY(-50%);
}

/* Projektgalerie-Popup: Schatten unter der sticky Überschrift */
.box-body .box-title,
.box-body .box-sub{
  background:#fff;          /* damit nichts durchscheint */
  z-index:3;                /* über dem Inhalt */
}

/* eine einzige Schattenkante direkt unter der Subline */
.box-body .box-sub::after{
  content:"";
  display:block;
  height:12px;              /* “Puffer” für die Schattenkante */
  margin-top:12px;
  box-shadow:0 8px 14px -10px rgba(0,0,0,.25); /* wie im Leistungskatalog */
}

/* Responsive */
@media (max-width: 1100px){
  #proj-splide{ padding: 0 12px; }
  .splide__arrow--prev{ left: 0; }
  .splide__arrow--next{ right: 0; }
}

@media (max-width: 600px){
  .fs-t, .fs-s{
    width: 100%;
    text-align: center;
  }
}