/* Niedersachsen.next Investoren-Slider – Frontend
   Farben nach CI Startup Niedersachsen, Typografie Frutiger 45 Light / 55 Roman */

.ndsinv{
  --ndsinv-rot:#e3002d;
  --ndsinv-schwarz:#000000;
  --ndsinv-ink:var(--ndsinv-schwarz);
  --ndsinv-body:#3c3c3b;
  --ndsinv-line:#d9d9d9;
  --ndsinv-surface:#ffffff;
  --ndsinv-card-w:340px;
  --ndsinv-gap:20px;
  --ndsinv-logo-h:72px;

  --ndsinv-light:"Frutiger 45 Light","Frutiger LT 45 Light","Frutiger LT Std Light","Frutiger LT Std",Frutiger,"Helvetica Neue",Helvetica,Arial,sans-serif;
  --ndsinv-roman:"Frutiger 55 Roman","Frutiger LT 55 Roman","Frutiger LT Std Roman","Frutiger LT Std",Frutiger,"Helvetica Neue",Helvetica,Arial,sans-serif;
  --ndsinv-bold:"Frutiger 65 Bold","Frutiger LT 65 Bold","Frutiger 55 Roman","Frutiger LT Std",Frutiger,"Helvetica Neue",Helvetica,Arial,sans-serif;

  position:relative;
  font-family:var(--ndsinv-light);
  font-weight:normal;
  color:var(--ndsinv-body);
  -webkit-font-smoothing:antialiased;
}
.ndsinv *,.ndsinv *::before,.ndsinv *::after{box-sizing:border-box;}

/* Filterleiste */
.ndsinv__bar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 22px;}
.ndsinv__filters{display:flex;flex-wrap:wrap;gap:6px;}
.ndsinv__chip{
  font-family:var(--ndsinv-roman);
  font-size:12px;font-weight:normal;letter-spacing:.06em;text-transform:uppercase;
  padding:9px 16px;border-radius:0;border:1px solid var(--ndsinv-line);cursor:pointer;
  background:#fff;color:var(--ndsinv-body);
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}
.ndsinv__chip:hover{border-color:var(--ndsinv-schwarz);color:var(--ndsinv-schwarz);}
.ndsinv__chip:focus-visible{outline:2px solid var(--ndsinv-rot);outline-offset:2px;}
.ndsinv__chip.is-active{color:#fff;}
.ndsinv__chip--alle.is-active{background:var(--ndsinv-schwarz);border-color:var(--ndsinv-schwarz);}
.ndsinv__chip.is-cat.is-active{background:var(--ndsinv-cat,var(--ndsinv-rot));border-color:var(--ndsinv-cat,var(--ndsinv-rot));}

.ndsinv__nav{display:flex;gap:8px;flex:0 0 auto;}
.ndsinv__btn{
  width:44px;height:44px;border-radius:0;border:1px solid var(--ndsinv-line);
  background:#fff;color:var(--ndsinv-schwarz);
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:background .18s ease,border-color .18s ease,color .18s ease,opacity .18s ease;
}
.ndsinv__btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.ndsinv__btn:hover:not(:disabled){background:var(--ndsinv-rot);border-color:var(--ndsinv-rot);color:#fff;}
.ndsinv__btn:focus-visible{outline:2px solid var(--ndsinv-rot);outline-offset:3px;}
.ndsinv__btn:disabled{opacity:.3;cursor:default;}

/* Slider */
.ndsinv__viewport{
  overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x mandatory;scroll-behavior:smooth;
  scrollbar-width:none;-ms-overflow-style:none;
  margin:0 -4px;padding:4px;
}
.ndsinv__viewport::-webkit-scrollbar{display:none;}
.ndsinv__viewport:focus-visible{outline:2px solid var(--ndsinv-rot);outline-offset:2px;}
.ndsinv__viewport.is-dragging{scroll-behavior:auto;cursor:grabbing;}
.ndsinv__viewport.is-dragging .ndsinv__card{pointer-events:none;}

.ndsinv__track{display:flex;gap:var(--ndsinv-gap);margin:0;padding:0;list-style:none;}
.ndsinv__track li{margin:0;}

.ndsinv__card{
  scroll-snap-align:start;
  flex:0 0 var(--ndsinv-card-w);
  display:flex;flex-direction:column;
  background:var(--ndsinv-surface);
  border:1px solid var(--ndsinv-line);
  border-radius:0;padding:0 0 22px;
  transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.ndsinv__card:hover{border-color:#b3b3b3;box-shadow:0 10px 28px rgba(0,0,0,.08);transform:translateY(-2px);}
.ndsinv__card.is-hidden{display:none;}

/* Kategoriestreifen mit weisser Typografie */
.ndsinv__tag{
  display:block;width:100%;
  font-family:var(--ndsinv-roman);
  font-size:12px;font-weight:normal;letter-spacing:.06em;text-transform:uppercase;
  padding:10px 24px;color:#fff;background:var(--ndsinv-rot);
}

/* Logo, oben zentriert */
.ndsinv__logo{
  display:flex;align-items:center;justify-content:center;
  min-height:var(--ndsinv-logo-h);
  margin:24px 24px 4px;
}
.ndsinv__logo-img{
  max-height:var(--ndsinv-logo-h);width:auto;max-width:100%;
  height:auto;object-fit:contain;display:block;
}

/* Schrifthierarchie */
.ndsinv__name{
  font-family:var(--ndsinv-bold);
  margin:22px 24px 2px;font-size:23px;line-height:1.2;font-weight:700;
  letter-spacing:-.005em;color:var(--ndsinv-ink);
}
.ndsinv__logo + .ndsinv__name{margin-top:14px;}
.ndsinv__region{
  font-family:var(--ndsinv-light);
  margin:0 24px 16px;font-size:16px;line-height:1.35;color:var(--ndsinv-ink);
}
.ndsinv__text{
  font-family:var(--ndsinv-light);
  margin:0 24px 16px;font-size:15px;line-height:1.6;
}
.ndsinv__facts{
  font-family:var(--ndsinv-light);
  margin:0 24px 20px;padding:0;list-style:none;
  border-top:1px solid var(--ndsinv-line);
}
.ndsinv__facts li{position:relative;padding:9px 0 0 18px;font-size:14px;line-height:1.45;margin:0;}
.ndsinv__facts li::before{content:"";position:absolute;left:0;top:17px;width:6px;height:6px;background:var(--ndsinv-rot);}
.ndsinv__link{
  font-family:var(--ndsinv-roman);
  margin:auto 24px 0;display:inline-flex;align-items:center;gap:8px;align-self:flex-start;
  font-size:15px;font-weight:normal;color:var(--ndsinv-rot);text-decoration:none;
}
.ndsinv__link span{transition:transform .18s ease;}
.ndsinv__link:hover span{transform:translateX(4px);}
.ndsinv__link:focus-visible{outline:2px solid var(--ndsinv-rot);outline-offset:3px;}

/* Fortschritt */
.ndsinv__progress{margin-top:22px;height:3px;background:var(--ndsinv-line);overflow:hidden;}
.ndsinv__progress-bar{display:block;height:100%;width:25%;background:var(--ndsinv-rot);transition:width .2s ease,transform .2s ease;transform-origin:left;}
.ndsinv__progress.is-off{opacity:0;}

@media (max-width:781px){
  .ndsinv{--ndsinv-card-w:82vw;--ndsinv-gap:14px;}
  .ndsinv__bar{align-items:flex-start;}
  .ndsinv__nav{display:none;}
  .ndsinv__chip{padding:8px 12px;font-size:11px;}
  .ndsinv__card{padding:0 0 20px;}
  .ndsinv__tag{padding:9px 20px;}
  .ndsinv__logo{margin:20px 20px 4px;}
  .ndsinv__name{margin:18px 20px 2px;}
  .ndsinv__region,.ndsinv__text,.ndsinv__facts{margin-left:20px;margin-right:20px;}
  .ndsinv__link{margin-left:20px;margin-right:20px;}
}

@media (prefers-reduced-motion:reduce){
  .ndsinv__viewport{scroll-behavior:auto;}
  .ndsinv__card,.ndsinv__link span,.ndsinv__progress-bar{transition:none;}
}
