/* ===================== CSV Collection (page scope) ===================== */

/* Spaltenbreiten (Desktop) – an deine Stores-Ansicht angepasst */
body.nsd.page-csv-collection .ns-table th:nth-child(1),
body.nsd.page-csv-collection .ns-table td:nth-child(1){ width:32%; }
body.nsd.page-csv-collection .ns-table th:nth-child(2),
body.nsd.page-csv-collection .ns-table td:nth-child(2){ width:20%; }
body.nsd.page-csv-collection .ns-table th:nth-child(3),
body.nsd.page-csv-collection .ns-table td:nth-child(3){ width:14%; }
body.nsd.page-csv-collection .ns-table th:nth-child(4),
body.nsd.page-csv-collection .ns-table td:nth-child(4){ width:18%; }
body.nsd.page-csv-collection .ns-table th:nth-child(5),
body.nsd.page-csv-collection .ns-table td:nth-child(5){ width:16%; white-space:nowrap; }

/* Mobile: Breiten freigeben */
@media (max-width:860px){
  body.nsd.page-csv-collection .ns-table th,
  body.nsd.page-csv-collection .ns-table td{ width:auto !important; }
}

.ns-meta-inline {
  margin-top: 0.75rem;      /* näher an den Fließtext rücken */
  margin-bottom: 0.5rem;    /* weniger Luft nach unten, da direkt die Toolbar kommt */
  font-size: 0.75rem;       /* leicht größer als vorher, aber noch Meta */
  text-align: right;         /* linksbündig, wie der restliche Text */
  max-width: 42rem;         /* an die gleiche Textbreite wie Subtitle/Content anbinden */
  margin-right: auto;       /* sorgt dafür, dass es an der Textspalte „klebt“ */
  opacity: 0.75;
}

/* Intro-Box unter der H1 */
body.nsd.page-csv-collection .ns-intro {
  margin: 0 0 1.5rem;
  padding: 1rem 1.25rem;
  border-radius: 0.9rem;
  background: rgba(0, 0, 0, 0.5);
  border: 1px solid rgba(0, 255, 150, 0.25);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.7);
}

body.nsd.page-csv-collection .ns-intro p {
  margin: 0 0 0.5rem;
}

body.nsd.page-csv-collection .ns-intro p:last-child {
  margin-bottom: 0;
  opacity: 0.9;
  font-size: 0.9rem;
}

/* Toolbar als Card / Filterpanel */
body.nsd.page-csv-collection .ns-toolbar {
  margin: 0 0 1.25rem;
  padding: 0.75rem 1rem;
  border-radius: 0.9rem;
  background: rgba(0, 0, 0, 0.45);
  border: 1px solid rgba(255, 255, 255, 0.05);
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.75rem;
  align-items: center;
}

/* Suchfeld etwas prominenter */
body.nsd.page-csv-collection .ns-toolbar #csv-q {
  flex: 1 1 220px;
  max-width: none;
  height: 44px;
  line-height: 44px;
  font-size: 0.9rem;
  display: block;
  width: 100%;
  padding: 0 1rem;
  margin: 0;
  box-sizing: border-box;
}

/* Toolbar: Gruppen-Label + Select sauber ausrichten
   (Select selbst kommt aus shared.css via .ns-select) */
body.nsd.page-csv-collection .ns-toolbar .ns-group-field {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  height: 44px;
  padding: 0 0.25rem;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

body.nsd.page-csv-collection .ns-toolbar .ns-group-field .ns-label {
  margin: 0;
  line-height: 1;
  font-size: 0.8rem;
  opacity: 0.9;
}

/* Zurücksetzen-Button */
body.nsd.page-csv-collection .ns-toolbar #csv-clear {
  height: 44px;
  padding: 0 0.9rem;
  font-size: 0.85rem;
  text-transform: none;
  letter-spacing: 0.04em;
}

/* Wrapper für Zeitraum + Reset nebeneinander */
body.nsd.page-csv-collection .ns-toolbar .ns-when-wrap {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

/* Kleine Text-Schaltfläche "Zurücksetzen" */
body.nsd.page-csv-collection .ns-toolbar .ns-filter-reset {
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  font-size: 0.8rem;
  text-transform: none;
  letter-spacing: 0.05em;
  color: #00ff96;
  cursor: pointer;
  white-space: nowrap;
}

body.nsd.page-csv-collection .ns-toolbar .ns-filter-reset:hover,
body.nsd.page-csv-collection .ns-toolbar .ns-filter-reset:focus {
  text-decoration: underline;
}

/* Mobile: Toolbar untereinander (single source of truth) */
@media (max-width: 700px) {
  body.nsd.page-csv-collection .ns-toolbar {
    flex-direction: column;
    align-items: stretch;
    flex-wrap: nowrap;
  }

  body.nsd.page-csv-collection .ns-toolbar #csv-q,
  body.nsd.page-csv-collection .ns-toolbar select,
  body.nsd.page-csv-collection .ns-toolbar button,
  body.nsd.page-csv-collection .ns-toolbar .ns-filter-reset {
    width: 100%;
    max-width: none;
  }

  body.nsd.page-csv-collection .ns-toolbar #csv-q {
    flex: 1 1 200px;
    height: 40px;
    line-height: 40px;
  }

  /* Mobile: Filterzeilen einzeilig (Label links, Feld rechts) */
  body.nsd.page-csv-collection .ns-toolbar .ns-group-field {
    display: flex;
    flex-direction: row;
    align-items: center;
    height: 40px;
    gap: 0.6rem;
    padding: 0;
  }

  body.nsd.page-csv-collection .ns-toolbar .ns-group-field .ns-label {
    flex: 0 0 auto;
    min-width: 6.8rem; /* genug für "Bundesland:" / "Zeitraum:" */
    margin: 0;
    font-size: 0.8rem;
    line-height: 1;
    opacity: 0.9;
    white-space: nowrap;
  }

  body.nsd.page-csv-collection .ns-toolbar .ns-group-field select,
  body.nsd.page-csv-collection .ns-toolbar .ns-group-field .ns-select {
    flex: 1 1 auto;
    height: 40px;
    line-height: 40px;
    white-space: nowrap;
  }

  body.nsd.page-csv-collection .ns-toolbar .ns-when-wrap {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    gap: 0.5rem;
  }

  body.nsd.page-csv-collection .ns-toolbar .ns-filter-reset {
    height: 40px;
    line-height: 40px;
    text-align: center;
    border: 1px solid rgba(0, 255, 150, 0.35);
    border-radius: 0.75rem;
    background: rgba(0, 0, 0, 0.25);
    text-decoration: none;
  }

  body.nsd.page-csv-collection .ns-toolbar #csv-clear {
    width: 100%;
  }
}

/* Filterstatus-Zeile */
body.nsd.page-csv-collection .ns-filter-state {
  margin: 0.35rem 0 1.25rem;
  font-size: 0.75rem;
  opacity: 0.8;
}

body.nsd.page-csv-collection .ns-filter-state strong {
  color: #00ff96;
}

/* Event-Liste als Grid-Kacheln */
body.nsd.page-csv-collection .ns-list {
  margin-top: 0.3rem;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 0.9rem;
}

@media (max-width: 860px) {
  body.nsd.page-csv-collection .ns-list {
    grid-template-columns: 1fr;
  }
}

/* Einzelne Party als Card */
body.nsd.page-csv-collection .ns-item.csv-row {
  position: relative;
  padding: 0.85rem 1rem 0.9rem;
  border-radius: 0.95rem;
  background:
    radial-gradient(circle at top left, rgba(0, 255, 150, 0.16), transparent 55%),
    rgba(10, 10, 18, 0.95);
  border: 1px solid rgba(255, 255, 255, 0.06);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.8);
  transition:
    transform 0.16s ease-out,
    box-shadow 0.16s ease-out,
    border-color 0.16s ease-out,
    background 0.16s ease-out;
}

/* Hover-Effekt */
body.nsd.page-csv-collection .ns-item.csv-row:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.9);
  border-color: rgba(0, 255, 150, 0.45);
}

/* Titel innerhalb der Card */
body.nsd.page-csv-collection .ns-item .title {
  font-size: 0.96rem;
  letter-spacing: 0.02em;
  margin: 0 0 0.35rem;
}

body.nsd.page-csv-collection .ns-item .title strong {
  font-weight: 600;
}

/* Meta-Infos (Datum, Ort, Genres, Link) */
body.nsd.page-csv-collection .ns-item .meta {
  font-size: 0.8rem;
  line-height: 1.6;
  opacity: 0.93;
}

/* Der Link am Ende */
body.nsd.page-csv-collection .ns-item .meta a {
  font-weight: 500;
  text-decoration: none;
  border-bottom: 1px solid rgba(0, 255, 150, 0.7);
}

body.nsd.page-csv-collection .ns-item .meta a:hover,
body.nsd.page-csv-collection .ns-item .meta a:focus {
  border-bottom-style: solid;
}

.page-csv-collection .ns-hero {
  position: relative;
  margin: 0 calc(-50vw + 50%);
  width: 100vw;

  /* NEU/GEÄNDERT */
  min-height: 340px;              /* mehr Fläche fürs Bild */
  padding: 4rem 1.5rem 2rem; 
  background-size: cover;
  background-position: center 25%; /* statt center top → Motiv eher im oberen Drittel */
  background-repeat: no-repeat;
}

.page-csv-collection .ns-hero__overlay {
  position: relative;
  max-width: 900px;              /* statt 1100px */
  margin: -0.5rem auto 1.5rem auto; 
  padding: 1rem 2.5rem;
  border-radius: 1.5rem;

  background: radial-gradient(
    circle at top,
    rgba(0, 255, 150, 0.18),
    rgba(0, 0, 0, 0.82)
  );
  backdrop-filter: blur(4px);
  box-shadow:
    0 0 32px rgba(0, 0, 0, 0.8),
    0 0 60px rgba(0, 255, 150, 0.18);
}

.page-csv-collection .ns-hero h1 {
  font-size: 2.4rem;   /* nach Geschmack anpassen */
  line-height: 1.1;
  margin-bottom: 0.75rem;
}

.page-csv-collection .ns-hero__subtitle {
  margin-top: 0.4rem;
  margin-bottom: 1rem;   /* weniger Abstand nach unten */
  font-size: 1.05rem;       /* leicht über Body, unter H1 */
  line-height: 1.5;
  max-width: 42rem;         /* nicht über die ganze Breite laufen lassen */
  opacity: 0.85;            /* Subtitle = leicht softer als normaler Text */
}


.page-csv-collection .ns-hero__content {
  max-width: 46rem;
  font-size: 0.95rem;
  line-height: 1.55;
  margin-bottom: 0.75rem;   /* etwas weniger „Wall of Text“ */
}

/* Auf der Clubparty-Seite: Body-Bereich direkt unter den Header schieben */
body.nsd.page-csv-collection #header.section {
  margin-bottom: 0;
  padding-bottom: 0;
}

body.nsd.page-csv-collection #body-wrapper.section {
  padding-top: 0;      /* Standard-Abstand der Section entfernen */
  margin-top: 0;
}

body.nsd.page-csv-collection .ns-hero {
  margin-top: -2rem;   /* ggf. zwischen -1.5rem und -2.5rem feinjustieren */
}

/* ===================== Party Card Date/Time Typography =====================
   Note: Base card layout is defined later. This block keeps date/time typography centralized.
   ================================================================ */

/* Ort + Venue */

/* Genres */
body.nsd.page-csv-collection .ns-card__genres {
  font-size: 0.8rem;
  opacity: 0.9;
  margin-bottom: 0.35rem;
}

/* === Feintuning Kartenlayout === */

/* Linke Spalte: Datum */
body.nsd.page-csv-collection .ns-card__date {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.16em;          /* mehr „Display“-Look */
  opacity: 0.9;
}

/* Wochentag oben – leicht gesperrt */
body.nsd.page-csv-collection .ns-card__weekday {
  margin-bottom: 0.25rem;
  letter-spacing: 0.18em;
}

/* Monatskürzel: ebenfalls etwas mehr Letterspacing */
body.nsd.page-csv-collection .ns-card__month {
  font-size: 0.75rem;
  opacity: 0.9;
  letter-spacing: 0.18em;
}

/* feine Trennlinie vor der Uhrzeit */
body.nsd.page-csv-collection .ns-card__divider {
  width: 36px;
  height: 1px;
  margin: 0.45rem 0 0.25rem;
  background: linear-gradient(to right, rgba(0, 255, 150, 0.7), transparent);
}

/* Uhrzeit leicht betonen */
body.nsd.page-csv-collection .ns-card__time {
  font-size: 0.8rem;
  opacity: 0.95;
}

/* Rechte Spalte: Content */
body.nsd.page-csv-collection .ns-card__content {
  min-width: 0;
}

/* Mobile: Datumzeile kompakt in die Kopfzeile ziehen (<=700px)
   Contract: keep these overrides adjacent to base date/time typography to prevent scattered conflicts.
*/
@media (max-width: 700px) {

  /* Datum + Partynamen näher zusammen */
  body.nsd.page-csv-collection .ns-card__date {
    flex-direction: row;
    justify-content: flex-start;
    gap: 0.6rem;       /* etwas dichter */
    margin-bottom: -0.6rem;  /* Partynamen rückt näher ans Datum */
  }

  /* Wochentag im Row-Layout nicht mehr nach unten schieben */
  body.nsd.page-csv-collection .ns-card__weekday {
    margin-bottom: 0;
  }

  /* Vertikale Divider auf Mobile ausblenden */
  body.nsd.page-csv-collection .ns-card__divider {
    display: none;
  }
}

/* === Kachel-Layout: 2-spaltiges Grid für Karten === */

body.nsd.page-csv-collection /* ===================== Card List Layout Contract =====================
   Desktop: 2-column grid
   <=900px: 1 column on CSV Collection page
   Note: Selector is intentionally kept as-is to preserve historic cascade.
   ================================================================ */

.ns-card-list {
  margin-top: 0;
  margin-bottom: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)); /* 2 Spalten */
  gap: 1.1rem;                                      /* Abstand zwischen den Kacheln */
}

/* Mobile/Tablet: auf eine Spalte runterbrechen */
@media (max-width: 900px) {
  body.nsd.page-csv-collection .ns-card-list {
    grid-template-columns: 1fr;
  }
}

/* Basis für alle Party-/Release-Kacheln auf der CSV-Collection-Seite */
body.nsd.page-csv-collection .ns-card {
    position: relative;
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr);  /* hier 90px -> 80px */
  gap: 1rem;
  align-items: center;              /* Datum & Content vertikal ausrichten */

  /* Innenabstand / Form */
  padding: 1rem 1.2rem 1.05rem;
  border-radius: 1rem;

  /* Hintergrund & Rahmen */
  background:
    radial-gradient(circle at top left, rgba(0, 255, 150, 0.18), transparent 60%),
    rgba(10, 10, 18, 0.96);
  border: 1px solid rgba(255, 255, 255, 0.06);
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.85);

  /* Höhe: ruhigeres Grid */
  min-height: 180px;                /* nach Geschmack 170–190px testen */
  height: 100%;
  box-sizing: border-box;

  /* Interaktion / Animation */
  cursor: pointer;
  transition:
    transform 0.16s ease-out,
    box-shadow 0.16s ease-out,
    border-color 0.16s ease-out,
    background 0.16s ease-out;
}

/* Hover-Feedback für die gesamte Kachel */
body.nsd.page-csv-collection .ns-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.9);
  border-color: rgba(0, 255, 150, 0.5);
  background:
    radial-gradient(circle at top left, rgba(0, 255, 150, 0.24), transparent 65%),
    rgba(5, 10, 18, 0.98);
}

/* =========================================================
   Card link wrapper contract
   - Entire card is clickable without underline / fancy link lines
   - Only .ns-card__link-label looks like a link ("Mehr Infos")
   ========================================================= */

body.nsd.page-csv-collection .ns-card-link-wrapper,
body.nsd.page-csv-collection .ns-card-link-wrapper:link,
body.nsd.page-csv-collection .ns-card-link-wrapper:visited,
body.nsd.page-csv-collection .ns-card-link-wrapper:hover,
body.nsd.page-csv-collection .ns-card-link-wrapper:active {
  text-decoration: none !important;
  border-bottom: none !important;
  background-image: none !important;
  color: inherit;
  display: block;
  height: 100%;
}

/* Safety: prevent underline/border styling inside the card */
body.nsd.page-csv-collection .ns-card-link-wrapper .ns-card,
body.nsd.page-csv-collection .ns-card-link-wrapper .ns-card * {
  text-decoration: none !important;
  border-bottom: none !important;
  background-image: none !important;
}

/* "Mehr Infos" remains link-like */
body.nsd.page-csv-collection .ns-card-link-wrapper .ns-card__link-label {
  color: #00ff96;
  text-decoration: underline !important;
  text-decoration-style: solid;
  cursor: pointer;
  font-weight: 500;
}

/* Hover effect only for the label */
body.nsd.page-csv-collection .ns-card-link-wrapper:hover .ns-card__link-label {
  text-decoration-thickness: 1.5px;
}

/* Keyboard focus: visible */
body.nsd.page-csv-collection .ns-card-link-wrapper:focus-visible .ns-card__link-label {
  outline: 2px solid rgba(0, 255, 150, 0.7);
  outline-offset: 2px;
}

body.nsd.page-csv-collection .ns-card__link {
  margin-top: 0.5rem;
  padding-bottom: 0.3rem;
  text-align: right;
}

/* =========================================================
   CSV Group Layout Contract (Bundeslaender-Gruppen)
   - One source of truth for group spacing and headings
   ========================================================= */

/* Gruppen-Container: Basisabstand oben (wird durch visible+visible ueberschrieben) */
.page-csv-collection .csv-group,
body.nsd.page-csv-collection .csv-group {
  margin: 0.9rem 0 0 0 !important;
  padding: 0;
}

/* Abstand nur zwischen zwei sichtbaren Gruppen */
.page-csv-collection .csv-group--visible + .csv-group--visible,
body.nsd.page-csv-collection .csv-group--visible + .csv-group--visible {
  margin-top: 2.5rem !important;
}

/* Gruppen-Ueberschrift: Desktop uses Shared Section Heading; legacy mobile stays untouched until Mobile phase. */
@media (max-width: 700px) {
  .page-csv-collection .csv-group .nsd-section,
  body.nsd.page-csv-collection .csv-group .nsd-section {
    margin-top: 0 !important;
    margin-bottom: 0.75rem !important;
    padding-bottom: 0.25rem;
    font-size: 1rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    border-bottom: 1px solid rgba(0, 255, 150, 0.35);
  }
}

/* Freitext-Suche: auf eine Zeile begrenzen */

/* Ort + Venue */
body.nsd.page-csv-collection .ns-card__location {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem;

  font-size: 0.85rem;          /* kleiner als Titel */
  color: #e5e7eb;              /* helles Grau, gut lesbar */
  margin-bottom: 0.35rem;      /* etwas Luft zu den Genres */
}

body.nsd.page-csv-collection .ns-card__city {
  font-weight: 600;    /* Stadt fett */
  opacity: 1;
}

body.nsd.page-csv-collection .ns-card__venue {
  opacity: 0.9;        /* Venue leicht zurückgenommen */
  font-weight: 400;        /* Contract: venue bleibt normalgewichtet */
}

body.nsd.page-csv-collection .ns-card__sep {
  margin: 0 0.18rem;
  opacity: 0.8;
}

/* Mobile-Optimierung (bis 700px) */
@media (max-width: 700px) {

  .page-csv-collection .ns-hero__subtitle {
    font-size: 0.98rem;
    margin-bottom: 0.6rem;
  }

  .page-csv-collection .ns-hero__content {
    font-size: 0.9rem;
    margin-bottom: 0.6rem;
  }

  /* Hero etwas straffer oben */
  .page-csv-collection .ns-hero {
    min-height: 260px;
    padding: 1.6rem 1rem 2.2rem;
    background-position: center 20%;
    margin-top: 0.2rem;
  }

  /* Overlay näher an den Header ziehen */
  .page-csv-collection .ns-hero__overlay {
    margin: -25px auto 0 auto;
    padding: 0.9rem 1.4rem;
    border-radius: 1.1rem;
  }

  /* Karten-Layout einspaltig */
  body.nsd.page-csv-collection .ns-card {
    grid-template-columns: 1fr;
    padding: 0.75rem 0.9rem 0.85rem;
  }

  /* Bundesland-Heading auf Handy etwas kleiner */
  body.nsd.page-csv-collection .csv-group .nsd-section {
    font-size: 0.9rem;
    letter-spacing: 0.18em;
  }
}

.ns-card__content {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
}

.ns-card__link {
  margin-top: 0.75rem;
  align-self: flex-end; /* Button immer rechts unten */
}

/* =========================================
   Titel & Location in der Party-Kachel
   ========================================= */

/* Event-Titel: leicht größer & prägnanter */
.ns-card__title {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 1.05rem;              /* minimal größer */
  font-weight: 700;                /* kräftig */
  letter-spacing: 0.04em;          /* leichtes Tracking → techiger Look */
  text-transform: none;            /* so wie geliefert (deine Titel sind schon CAPS/Case-gemischt) */

  color: #00ff96;                  /* Nerdschmie-Neon */
  margin: 0 0 0.10rem;
}




/* ---------- Spezielles Layout für Stores auf der CSV-Collection-Seite ---------- */


body.nsd.page-csv-collection .ns-card__content--store {
  padding: 0.4rem 1.4rem 0.2rem;  /* konsolidiert: Top/Bottom von Page-Override + L/R aus Basis */
  font-size: 0.9rem;

  display: flex;
  flex-direction: column;
}

body.nsd.page-csv-collection .ns-card__title--store {
  margin: 0 0 0.4rem;
  font-size: 1rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* Beschreibung etwas kompakter */
body.nsd.page-csv-collection .ns-card__desc--store {
  margin-top: 0.25rem;
  line-height: 1.45;
}

/* Tags auf dieser Seite leicht anders gestylt */
body.nsd.page-csv-collection .ns-tag--store {
  padding: 0.15rem 0.7rem;
  border: 1px solid rgba(0, 255, 150, 0.55);
  letter-spacing: 0.03em;
}

/* --- Store-Location als vertikale Glow-Spalte links --- */

/* Store-Karten: beide Spalten auf gleiche Höhe strecken */
body.nsd.page-csv-collection .ns-card--store {
  display: grid;                           /* wieder Grid, nicht Flex */
  grid-template-columns: 70px minmax(0,1fr); /* fixe Breite links, rechts flexibel */
  align-items: stretch;                    /* beide Spalten gleich hoch */
  min-height: 190px;   /* konsolidiert: war zuvor im 2. Block */

}

body.nsd.page-csv-collection .ns-card--store .ns-card__date {
  /* Store/Badge date column: keep visual glow + solid base, without duplicate selector blocks */
  align-self: stretch;         /* Höhe = Kartenhöhe */
  display: flex;
  align-items: center;         /* Inhalt vertikal mittig */
  justify-content: center;
  padding: 0;

  background-color: #000000;   /* einfarbige Spalte (Fallback / Base) */
  background: radial-gradient(circle at 50% 50%,
              rgba(0, 255, 150, 0.25) 0,
              rgba(0, 255, 150, 0.10) 40%,
              transparent 70%);
  box-shadow: 0 0 18px rgba(0, 255, 150, 0.35);

  color: #ffffff;
  border-radius: 0.5rem;       /* nur innen, wenn du magst */
}

/* Wrapper wird gedreht -> Text von unten nach oben */
body.nsd.page-csv-collection .ns-card__store-loc-vert {
  display: inline-block;
  transform: rotate(-90deg);       /* 90° gegen Uhrzeigersinn -> unten nach oben lesbar */
  transform-origin: center;
  white-space: normal;
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-align: center;
}

/* Ort + PLZ – sauber untereinander, zentriert */
body.nsd.page-csv-collection .ns-card__store-city {
  font-weight: 600;
  margin-bottom: 0.25rem;   /* kleiner Abstand zur PLZ */
}

body.nsd.page-csv-collection .ns-card__store-zip {
  font-size: 0.75rem;
  opacity: 0.75;
}

body.nsd.page-csv-collection .ns-card__footer--store {
  margin-top: auto;        /* bleibt: hält ihn unten */
  padding-top: 1.6rem;     /* vorher 0.7rem – ~15px mehr Abstand zum Text */
  text-align: right;
}
/* Globaler CTA-Stil für Karten (Party + Stores) */
body.nsd.page-csv-collection .ns-card__cta,
body.nsd.page-csv-collection .ns-card__cta--store,
body.nsd.page-csv-collection .ns-card__cta--party,
body.nsd.page-csv-collection .ns-card__cta--store:hover,
body.nsd.page-csv-collection .ns-card__cta--store:focus,
body.nsd.page-csv-collection .ns-card__cta--party:hover,
body.nsd.page-csv-collection .ns-card__cta--party:focus {
  display: inline-block;
  padding: 0.25rem 0.9rem;
  border-radius: 999px;
  border: none;  /* alle Border-Spielereien neutralisieren */

  /* Rahmen nach innen – kann nicht vom Kachelrand „abgeschnitten“ werden */
  box-shadow: inset 0 0 0 1px rgba(0, 255, 150, 0.45);

  font-size: 0.8rem;
  line-height: 1.3;
  cursor: pointer;
}

/* CTA: Text/Fokus-Verhalten (konsolidiert; vorher doppelt weiter unten) */
body.nsd.page-csv-collection .ns-card__cta,
body.nsd.page-csv-collection .ns-card__cta--store,
body.nsd.page-csv-collection .ns-card__cta--party {
  color: #00ff96;
  text-decoration-style: solid;
  cursor: pointer;
  font-weight: 500;
}

body.nsd.page-csv-collection .ns-card__cta:hover {
  text-decoration-thickness: 1.5px;
}

body.nsd.page-csv-collection .ns-card__cta:focus-visible {
  outline: 2px solid rgba(0, 255, 150, 0.7);
  outline-offset: 2px;
  border-radius: 6px;
}

body.nsd.page-csv-collection .ns-card__cta--canceled {
  opacity: 0.86;
  font-size: 0.92em;
  text-decoration-color: rgba(0,255,150,0.55) !important;
}

body.nsd.page-csv-collection .ns-card__store-street {
  font-size: 0.8rem;
  opacity: 0.5;
  padding-top: 100px;
}

/* Container für Filter + Suche (oberer Teil der Toolbar) */
body.nsd.page-csv-collection .ns-toolbar__controls {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.75rem;
  align-items: center;
}

/* Statuszeile: eigene Zeile, rechtsbündig unterhalb der Controls */
body.nsd.page-csv-collection .ns-toolbar__status {
  flex-basis: 100%;        /* eigene Zeile */
  margin-top: 0.25rem;     /* dezenter Abstand */
  display: flex;
  justify-content: flex-end;
}

/* Filterstatus innerhalb der Toolbar: kompakt, ohne Außenabstände */
body.nsd.page-csv-collection .ns-toolbar__status .ns-filter-state {
  margin: 0;
  font-size: 0.8rem;
  opacity: 0.9;
}

/* =========================================
   1. INTEGRATION & LAYOUT
   ========================================= */

/* Neutralisiert die äußere CSV-Kachel und zieht die innere Release-Kachel auf volle Breite */
:where(body.nsd.page-csv-collection) .ns-list .ns-item.csv-row:has(.ns-release-card) {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
}

/* Zieht die innere Release-Kachel auf volle Breite (spezifisch) */
:where(body.nsd.page-csv-collection) .ns-list .ns-item.csv-row:has(.ns-release-card) > .ns-release-card {
  width: 100%;
  margin: 0;
}

/* Wrapper-Zeile um die Release-Card */
:where(body.nsd.page-csv-collection) .ns-release-row {
  padding: 0;
  border: none;
  background: none;
  box-shadow: none;
}

/* =========================================
   2. CARD CONTAINER & FLEX LAYOUT
   ========================================= */

:where(body.nsd.page-csv-collection) .ns-release-card {
  /* Basis-Styles */
  background: radial-gradient(circle at top left,
                rgba(0, 255, 150, 0.12),
                rgba(0, 20, 10, 0.95));
  border: 1px solid rgba(0, 255, 150, 0.25);
  border-radius: 1rem;
  padding: 0.9rem 0.8rem 0.8rem;
  box-shadow: 0 0 18px rgba(0, 255, 150, 0.08);

  /* FLEX-Layout */
  min-height: 588px;
  display: flex;
  flex-direction: column;
}

/* Inhalt der Karte zentrieren und füllt den verfügbaren Platz */
:where(body.nsd.page-csv-collection) .ns-release-card__body {
  text-align: center;
  flex: 1;
  display: flex;
  flex-direction: column;
}

/* =========================================
   3. COVER BEREICH (1:1 Aspect Ratio)
   ========================================= */

:where(body.nsd.page-csv-collection) .ns-release-card__cover {
  position: relative;
  width: 100%;
  padding-top: 100%; /* 1:1 Aspect Ratio Hack */
  margin-bottom: 0.75rem;
  overflow: hidden;
  border-radius: 0.75rem;
}

/* Bild UND Platzhalter füllen den Quadratbereich absolut */
:where(body.nsd.page-csv-collection) .ns-release-card__cover img,
:where(body.nsd.page-csv-collection) .ns-release-card__cover-placeholder {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border-radius: 0.75rem;
  border: 1px solid rgba(0, 255, 150, 0.25);
}

/* Bild: komplett ins Quadrat stretchen */
:where(body.nsd.page-csv-collection) .ns-release-card__cover img {
  display: block;
  object-fit: fill;
}

/* Placeholder */
:where(body.nsd.page-csv-collection) .ns-release-card__cover-placeholder {
  background: rgba(0, 0, 0, 0.3);
}

/* =========================================
   4. TYPOGRAFIE: ARTIST & TITEL
   ========================================= */

/* --- Artist / Bandname --- */
:where(body.nsd.page-csv-collection) .ns-release-card__artist {
  margin-top: 0.4rem;
  margin-bottom: 0.4rem;
  font-family: var(--ns-font-heading, 'Orbitron', system-ui, sans-serif);
  font-weight: 600;
  font-size: 1.1rem;
  line-height: 1.25;
  letter-spacing: 0.03em;
  color: #00ff96; /* Nerdschmie-Neongrün */
  /* Reset für Artist-Links & Container (Kein Badge-Style) */
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

/* Reset für Artist-Links (Kein Badge-Style) - zusammengefasst mit .ns-release-card__artist */
:where(body.nsd.page-csv-collection) .ns-release-card__artist a,
:where(body.nsd.page-csv-collection) .ns-release-card__artist .ns-tag {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

/* Link-Verhalten im Artist-Namen */
:where(body.nsd.page-csv-collection) .ns-release-card__artist a {
  color: #00ff96;
  text-decoration: none;
  transition: color 0.15s ease, text-shadow 0.15s ease, transform 0.15s ease;
}

:where(body.nsd.page-csv-collection) .ns-release-card__artist a:hover {
  color: #00ffd0; /* heller */
  text-shadow: 0 0 6px rgba(0, 255, 150, 0.8);
  transform: translateY(-1px);
}

/* --- Album Titel --- */
:where(body.nsd.page-csv-collection) .ns-release-card__title {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-weight: 500;
  font-size: 0.95rem;
  color: #f5f5f5;
  margin-bottom: 0.1rem;
}

/* =========================================
   5. GENRES (TAGS)
   ========================================= */

/* Container: Releases + Partys - Styles zusammengefasst */
:where(body.nsd.page-csv-collection) .ns-release-card__genres,
:where(body.nsd.page-csv-collection) .ns-card__genres {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-self: flex-start;
  width: 100%;
  gap: 0.25rem;
  margin-top: 0.5rem;
  margin-bottom: 0.8rem;
}

/* Chips Style: Releases + Partys – zusammengefasst */
:where(body.nsd.page-csv-collection) .ns-release-card__genres .ns-tag.ns-tag--genre,
:where(body.nsd.page-csv-collection) .ns-card__genres .ns-tag.ns-tag--genre {
  /* Typografie */
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 0.60rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;

  /* Farben */
  color: #9ca3af;
  border: 1px solid rgba(75, 85, 99, 0.9);
  background: rgba(15, 23, 42, 0.5);

  /* Layout */
  padding: 0.10rem 0.45rem;
  border-radius: 999px;
  min-width: 60px;
  max-width: 140px;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;

  /* Verhalten */
  box-shadow: none;
  outline: none !important;
  cursor: pointer;
  transition:
    color 0.15s ease,
    border-color 0.15s ease,
    background-color 0.15s ease,
    box-shadow 0.15s ease,
    transform 0.15s ease;
}

/* Hover: Nerdschmie-Neon – nicht für den "+ mehr"-Chip */
:where(body.nsd.page-csv-collection) .ns-release-card__genres .ns-tag.ns-tag--genre:not(.ns-tag--more):hover,
:where(body.nsd.page-csv-collection) .ns-card__genres .ns-tag.ns-tag--genre:not(.ns-tag--more):hover {
  color: #00ff96;
  border-color: #00ff96;
  background: rgba(0, 255, 150, 0.18);
  box-shadow: 0 0 2px rgba(0, 255, 150, 0.5);
  transform: translateY(-1px);
}

/* Spezialchip für "mehr" (+) */
:where(body.nsd.page-csv-collection) .ns-tag.ns-tag--genre.ns-tag--more {
  opacity: 0.6;
  border-color: rgba(75, 85, 99, 0.9);
  color: rgba(148, 163, 184, 0.9);
  cursor: default;
  box-shadow: none;
  pointer-events: none;
}

/* =========================================
   6. METADATEN (Datum, Label)
   ========================================= */

:where(body.nsd.page-csv-collection) .ns-release-card__meta {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.25rem;
  margin-bottom: 0.4rem;
  font-size: 0.85rem;
  color: #f5f5f5;
}

:where(body.nsd.page-csv-collection) .ns-release-card__date {
  opacity: 0.9;
}

:where(body.nsd.page-csv-collection) .ns-release-card__meta-sep {
  opacity: 0.6;
}

/* Label-Link Style: :visited und Standard zusammengefasst */
:where(body.nsd.page-csv-collection) .ns-release-card__label,
:where(body.nsd.page-csv-collection) .ns-release-card__label:visited {
  /* Reset und Basis-Formatierung */
  color: #ffffff !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  text-decoration: none;

  /* Ellipsis für lange Label-Namen */
  display: inline-block;
  max-width: 18ch;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Hover dezent: Grün + Underline */
:where(body.nsd.page-csv-collection) .ns-release-card__label:hover {
  color: #00ff96 !important;
  text-decoration: underline;
}

/* =========================================
   7. STREAMS (ICONS)
   ========================================= */

/* Container: wird durch margin-top: auto nach unten gedrückt (korrigiert: margin-top: 0.4rem wird beibehalten) */
:where(body.nsd.page-csv-collection) .ns-release-card__streams {
  margin-top: 0.4rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.4rem;
}

/* Link-Wrapper */
:where(body.nsd.page-csv-collection) .ns-stream-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  /* Resets zusammengefasst */
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0;
  border-radius: 0;
}

/* Die Logos (IMG) */
:where(body.nsd.page-csv-collection) .ns-stream-icon img {
  width: 22px;
  height: 22px;
  max-width: none;
  object-fit: contain;
  transition: transform 0.15s ease, filter 0.15s ease;
}

/* Hover Effekt */
:where(body.nsd.page-csv-collection) .ns-stream-icon:hover img {
  transform: scale(1.08);
  filter: drop-shadow(0 0 4px #00ff96);
}

body.nsd.page-csv-collection .ns-card__day-badge {
  width: 52px;
  height: 52px;
  border-radius: 999px;

  display: flex;
  align-items: center;
  justify-content: center;

  font-size: 1.25rem;
  font-weight: 600;

  background: radial-gradient(
    circle at 30% 20%,
    rgba(0, 255, 150, 0.45),
    rgba(0, 0, 0, 0.96)
  );

  box-shadow: none;
  filter: drop-shadow(0 0 10px rgba(0, 255, 150, 0.55));

  margin-bottom: 0.2rem;
}

/* Container für DJ-Zeile */
.ns-card__djs {
  margin-top: 0.5rem;
  font-size: 0.85rem;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem;
}

/* Label "DJs:" – bewusst etwas prominenter */
.ns-card__djs-label {
  font-weight: 600;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.92); /* fast weiß */
  margin-right: 0.35rem;
}

/* DJs: dezenter Standard, keine Linie, klickbar */
.ns-card__dj-link,
.ns-card__dj-link:link,
.ns-card__dj-link:visited {
  color: rgba(255, 255, 255, 0.65) !important;  /* reduzierter als Label */
  text-decoration: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
  background-image: none !important;
  cursor: pointer;
  transition: color 0.15s ease;
}

/* Hover/Fokus: kräftig grün, weiterhin ohne Linie */
.ns-card__dj-link:hover,
.ns-card__dj-link:focus,
.ns-card__dj-link:active {
  color: var(--ns-accent, #00ff9a) !important;
  text-decoration: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
  background-image: none !important;
}

/* Trennzeichen zwischen DJs */
.ns-card__dj-separator {
  color: rgba(255, 255, 255, 0.35);
}

/* Container für Dresscode-Zeile – exakt wie DJs */
.ns-card__dresscode {
  margin-top: 0.5rem;          /* wie .ns-card__djs */
  font-size: 0.85rem;          /* wie .ns-card__djs */
  display: flex;
  flex-wrap: wrap;             /* wie DJs (bei langen Texten umbrechen) */
  align-items: baseline;
  gap: 0.25rem;                /* wie DJs */
  cursor: help;                /* Tooltip-Hinweis */
}

/* Label "Dresscode:" – exakt wie DJs-Label */
.ns-card__dresscode-label {
  font-weight: 600;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.92); /* wie .ns-card__djs-label */
  margin-right: 0.35rem;            /* wie .ns-card__djs-label */
}

/* Dresscode-Text – optisch wie DJ-Link (nur nicht klickbar) */
.ns-card__dresscode-text {
  color: rgba(255, 255, 255, 0.65);
  display: block;          /* oder inline-block */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}





/* =========================================================
   KPI + Ranking — COMPLETE CSS (Desktop: 2 cols / Mobile: 1 col)
   Goals:
   - Desktop: KPIs left stack (single-column), Ranking right column
   - Mobile: Ranking below KPIs (single-column)
   - KPI cards: consistent typography, calmer CTAs, better multi-metric handling
   - Ranking: lighter visual weight, tabular numbers, optional scroll area
   Scope: body.nsd.page-csv-collection
   ========================================================= */

body.nsd.page-csv-collection{
  /* spacing + shape */
  --ns-gap: 18px;
  --ns-radius: var(--nsd-radius-card);

  /* brand */
  --ns-neon: var(--nsd-color-accent);

  /* layout widths */
  --ns-rank-col: 420px;
  --ns-layout-max: 1220px;

  /* card surface */
  --ns-card-border: var(--nsd-border-subtle);
  --ns-card-border-hover: var(--nsd-border-hover);
  --ns-card-glow: rgba(0,255,150,0.06);

  --ns-card-shadow: var(--nsd-shadow-card);
  --ns-card-shadow-hover: var(--nsd-shadow-card-hover);

  /* typography */
  --ns-label: var(--nsd-type-label-size);
  --ns-meta: var(--nsd-type-meta-size);

  /* CTA */
  --ns-cta-border: var(--nsd-button-border);
  --ns-cta-border-hover: var(--nsd-button-border-hover);
  --ns-cta-bg: var(--nsd-button-bg);
  --ns-cta-bg-hover: var(--nsd-button-bg-hover);



}

/* Overview layout */
body.nsd.page-csv-collection .ns-kpi-layout{
  display: grid;
  gap: var(--ns-gap);
  align-items: start;
  max-width: var(--ns-layout-max);
}

/* top spacing for overview */
body.nsd.page-csv-collection #overview.ns-kpi-layout{
  margin-top: 18px;
}

/* prevent width overflow issues inside grid */
body.nsd.page-csv-collection .ns-kpi-left,
body.nsd.page-csv-collection .ns-kpi-right{
  min-width: 0;
}

/* KPI list ALWAYS single column */
body.nsd.page-csv-collection .ns-kpi-left .ns-kpi-list{
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--ns-gap);
}

/* Desktop: two columns */
@media (min-width: 901px){
  body.nsd.page-csv-collection .ns-kpi-layout{
    grid-template-columns: minmax(0, 1fr) minmax(320px, var(--ns-rank-col));
  }
}

/* <=900: one column */
@media (max-width: 900px){
  body.nsd.page-csv-collection .ns-kpi-layout{
    grid-template-columns: 1fr;
    max-width: none;
  }
}


/* Card base */
body.nsd.page-csv-collection .ns-item.csv-row.ns-kpi{
  text-align: left;

  border-radius: var(--ns-radius);
  border: 1px solid var(--ns-card-border);
  background:
    radial-gradient(120% 120% at 0% 100%, var(--ns-card-glow), transparent 55%),
    linear-gradient(180deg, rgba(255,255,255,0.035), rgba(255,255,255,0.02));
  box-shadow: var(--ns-card-shadow);

  padding: 0.95rem 1.05rem;
  min-height: 118px;

  display: flex;
  flex-direction: column;
  justify-content: space-between;

  transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

/* Disable KPI card hover effects */
body.nsd.page-csv-collection .ns-item.csv-row.ns-kpi:hover{
  border-color: var(--ns-card-border);
  box-shadow: var(--ns-card-shadow);
  transition: none !important;;
}


/* Context/info card */
body.nsd.page-csv-collection .ns-kpi--context{
  min-height: auto;
  margin-bottom: var(--ns-gap);
}

/* KPI label */
body.nsd.page-csv-collection .ns-kpi__label{
  font-size: var(--ns-label);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  opacity: 0.78;
  margin-bottom: 0.45rem;
}

/* Row layout */
body.nsd.page-csv-collection .ns-kpi__row{
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.9rem;
}

body.nsd.page-csv-collection .ns-kpi__main{
  min-width: 0; /* required for line clamp */
  flex: 1 1 auto;
}

/* Value (multi-metric capable) */
body.nsd.page-csv-collection .ns-kpi__value{
  font-size: clamp(1.55rem, 1.6vw, 2.05rem);
  font-weight: 850;
  line-height: 1.02;
  color: var(--ns-neon);
  margin-bottom: 0.28rem;

  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.9rem;

  text-wrap: balance;
  font-variant-numeric: tabular-nums;
}

body.nsd.page-csv-collection .ns-kpi__metric{
  display: inline-flex;
  align-items: baseline;
  gap: 0.35em;
  white-space: nowrap;
}

body.nsd.page-csv-collection .ns-kpi__unit{
  font-size: 1em;
  font-weight: inherit;
}

/* Meta (clamped) */
body.nsd.page-csv-collection .ns-kpi__meta{
  font-size: var(--ns-meta);
  opacity: 0.82;
  line-height: 1.25;

  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

body.nsd.page-csv-collection .ns-kpi--stores .ns-kpi__meta{
  -webkit-line-clamp: 3;
}

/* CTA container */
body.nsd.page-csv-collection .ns-kpi__link{
  flex: 0 0 auto;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
}

/* Empty CTA placeholder */
body.nsd.page-csv-collection .ns-kpi__link--empty{
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

/* CTA button */
body.nsd.page-csv-collection .ns-card__cta{
  border-radius: 999px;
  padding: 0.5rem 0.85rem;
  line-height: 1;
  font-weight: 750;
  text-decoration: none;

  border: 1px solid var(--ns-cta-border);
  background: var(--ns-cta-bg);

  transition: background 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

body.nsd.page-csv-collection .ns-card__cta:hover{
  transform: translateY(-1px);
  border-color: var(--ns-cta-border-hover);
  background: var(--ns-cta-bg-hover);
  box-shadow: 0 0 0.9rem rgba(0,255,150,0.12);
}

body.nsd.page-csv-collection .ns-card__cta:focus-visible{
  outline: 2px solid rgba(0,255,150,0.85);
  outline-offset: 2px;
}











/* Desktop: multi-metric calmer + CTA less detached */
@media (min-width: 901px){
  body.nsd.page-csv-collection .ns-kpi__row{
    gap: 0.75rem;
  }

  /* Explicit marker */
  body.nsd.page-csv-collection .ns-kpi--multi .ns-kpi__value{
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
  }

  /* Optional automatic stacking via :has() */
  body.nsd.page-csv-collection .ns-kpi__value:has(.ns-kpi__metric + .ns-kpi__metric){
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
  }
}





@media (max-width: 700px){
  body.nsd.page-csv-collection .ns-item.csv-row.ns-kpi{
    min-height: 0;
    padding: 0.82rem 0.92rem;
  }

  body.nsd.page-csv-collection .ns-kpi__label{
    margin-bottom: 0.35rem;
  }

  body.nsd.page-csv-collection .ns-kpi__value{
    font-size: 1.42rem;
    margin-bottom: 0.42rem;
    gap: 0.75rem;
  }

  body.nsd.page-csv-collection .ns-kpi__meta{
    font-size: 0.82rem;
    line-height: 1.32;
  }

  body.nsd.page-csv-collection .ns-card__cta{
    padding: 0.44rem 0.72rem;
    font-size: 0.96rem;
  }

  body.nsd.page-csv-collection .ns-kpi__row.has-cta{
    flex-direction: column;
    align-items: stretch;
    gap: 0.6rem;
  }

  body.nsd.page-csv-collection .ns-kpi__row.has-cta .ns-kpi__link{
    justify-content: flex-end;
  }

  /* On mobile: reduce long lists a bit more */
  body.nsd.page-csv-collection .ns-kpi--stores .ns-kpi__meta,
  body.nsd.page-csv-collection .ns-kpi--festivals .ns-kpi__meta{
    -webkit-line-clamp: 2;
  }
}

/* Kill any "lift" / jump on KPI cards (including wrapper links) */
body.nsd.page-csv-collection .ns-item.csv-row.ns-kpi,
body.nsd.page-csv-collection a.ns-item.csv-row.ns-kpi{
  transform: none !important;
  translate: none !important;      /* falls modern translate genutzt wird */
  top: auto !important;            /* falls position+top genutzt wird */
  margin-top: 0 !important;        /* falls margin-shift gemacht wird */
}

/* Ensure hover/focus/active never moves the card */
body.nsd.page-csv-collection .ns-item.csv-row.ns-kpi:hover,
body.nsd.page-csv-collection .ns-item.csv-row.ns-kpi:focus,
body.nsd.page-csv-collection .ns-item.csv-row.ns-kpi:focus-within,
body.nsd.page-csv-collection .ns-item.csv-row.ns-kpi:active,
body.nsd.page-csv-collection a.ns-item.csv-row.ns-kpi:hover,
body.nsd.page-csv-collection a.ns-item.csv-row.ns-kpi:focus,
body.nsd.page-csv-collection a.ns-item.csv-row.ns-kpi:active{
  transform: none !important;
  translate: none !important;
  top: auto !important;
  margin-top: 0 !important;
}





/* ---------- Ranking (Basis: CSV Collection + Hotspots Scope) ---------- */
/* ============================================================
   Ranking Table (ns-ranking--table) – consolidated
   Scope: only within CSV collection pages
   ============================================================ */

body.nsd.page-csv-collection .ns-kpi--ranking .ns-kpi__meta{
  font-size: .92rem;
  opacity: .78;
}

/* Container */
body.nsd.page-csv-collection .ns-ranking--table{
  margin-top: .65rem;
  gap: 0;
}

/* Shared grid geometry (ONE source of truth) 
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__head,
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__row{
  display: grid;
  grid-template-columns: 1.3rem 1fr 5.4rem 3.0rem; /* # | Bundesland | Index | Δ7T */
/*  column-gap: .35rem;
  align-items: center;
} */

/* Header row */
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__head{
  padding: .4rem .7rem;
  border-bottom: 1px solid rgba(255,255,255,.10);
  text-transform: none;
  letter-spacing: .03em;
  font-size: .78rem;
  opacity: .60;
}

/* Sticky header (desktop) */
@media (min-width: 901px){
  body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__head{
    position: sticky;
    top: 0;
    background: rgba(0,0,0,.55);
    backdrop-filter: blur(8px);
    z-index: 3;
  }
}

/* Rows (calm mode) */
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__row{
  position: relative;
  padding: .55rem .7rem;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background-image: none !important;
  background: transparent;
  border-radius: .55rem;
}

/* Subtle divider between rows */
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__row:not(:last-child){
  border-bottom: 1px solid rgba(255,255,255,.07);
}

/* Optional zebra (remove if you don’t want it) */
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__row:nth-child(even){
  background: rgba(255,255,255,.015);
}

/* Hover */
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__row:hover{
  background: rgba(255,255,255,.025);
}

/* Full-row clickable overlay */
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__rowlink{
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  text-decoration: none;
}

/* Ensure content is above overlay link */
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__row > *:not(.ns-ranking__rowlink){
  position: relative;
  z-index: 2;
}

/* Focus visible (keyboard) */
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__rowlink:focus-visible{
  outline: 2px solid rgba(57,255,20,.55);
  outline-offset: -2px;
  border-radius: inherit;
}

/* Text/link behavior */
body.nsd.page-csv-collection .ns-kpi--ranking .ns-ranking--table a{
  text-decoration: none;
}
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__state{
  text-decoration: none;
  hyphens: auto;
  overflow-wrap: anywhere;
}
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__name{
  min-width: 0;
}

/* Numbers alignment */
body.nsd.page-csv-collection .ns-ranking--table .ns-num{
  font-variant-numeric: tabular-nums;
}
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__count,
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__delta{
  text-align: right;
}

/* Rank: right-aligned with controlled “air” to name */
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__rank{
  text-align: right;
  padding-right: .35rem;
  opacity: .85;
}

/* State rows */
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__row.is-dim{
  opacity: .88;
}

/* Active: tint + left bar */
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__row.is-active{
  opacity: 1;
  background: rgba(57,255,20,.05);
}
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__row.is-active::before{
  content:"";
  position:absolute;
  left:.35rem;
  top:.55rem;
  bottom:.55rem;
  width:2px;
  border-radius:99px;
  background: rgba(57,255,20,.55);
}
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__row.is-active .ns-ranking__state{
  font-weight: 700;
}

/* Delta badges (calm) */
body.nsd.page-csv-collection .ns-ranking--table .ns-delta{
  display: inline-block;
  padding: .06rem .28rem;
  border-radius: .4rem;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.02);
  font-weight: 700;
  opacity: .85;
}

body.nsd.page-csv-collection .ns-ranking--table .ns-delta--up{
  border-color: rgba(57,255,20,.22);
  background: rgba(57,255,20,.06);
  opacity: 1;
}
body.nsd.page-csv-collection .ns-ranking--table .ns-delta--down{
  opacity: .75;
}
body.nsd.page-csv-collection .ns-ranking--table .ns-delta--flat{
  opacity: .55;
}

/* New badge */
body.nsd.page-csv-collection .ns-ranking--table .ns-badge{
  display: inline-block;
  padding: .06rem .28rem;
  border-radius: .4rem;
  border: 1px solid rgba(57,255,20,.22);
  font-weight: 700;
  letter-spacing: .03em;
}

/* =========================
   Ranking – Calm Mode (hard override)
   ========================= */
body.nsd.page-csv-collection .ns-kpi--ranking .ns-ranking__row,
body.nsd.page-csv-collection .ns-kpi--ranking .ns-ranking__rowlink{
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background-image: none !important;
}

body.nsd.page-csv-collection .ns-kpi--ranking .ns-ranking__row{
  background: transparent !important;
  border-radius: .55rem;
}

/* Ruhige Trennung statt Neon-Rahmen */
body.nsd.page-csv-collection .ns-kpi--ranking .ns-ranking__row:not(:last-child){
  border-bottom: 1px solid rgba(255,255,255,.07) !important;
}

/* Optional: leichte Zebra-Ruhe (statt Linien) */
body.nsd.page-csv-collection .ns-kpi--ranking .ns-ranking__row:nth-child(even){
  background: rgba(255,255,255,.015) !important;
}

/* Hover: nur minimal */
body.nsd.page-csv-collection .ns-kpi--ranking .ns-ranking__row:hover{
  background: rgba(255,255,255,.025) !important;
}

/* Active: nur TINT + linke Leiste, kein Rahmen */
body.nsd.page-csv-collection .ns-kpi--ranking .ns-ranking__row.is-active{
  background: rgba(57,255,20,.05) !important;
}
body.nsd.page-csv-collection .ns-kpi--ranking .ns-ranking__row.is-active::before{
  content:"";
  position:absolute;
  left:.35rem;
  top:.55rem;
  bottom:.55rem;
  width:2px;
  border-radius:99px;
  background: rgba(57,255,20,.55);
}

/* ONE source of truth for columns */
body.nsd.page-csv-collection .ns-ranking--table{
  --ns-rank-cols: 1.3rem 1fr 5.4rem 3.0rem;
  --ns-rank-gap: .35rem;
}

/* Apply to head + rows */
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__head,
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__row{
  display: grid;
  grid-template-columns: var(--ns-rank-cols);
  column-gap: var(--ns-rank-gap);
  align-items: center;
}
/* Header cells: enforce alignment per column */
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__head > :nth-child(1){ text-align: right; padding-right: .35rem; }
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__head > :nth-child(3),
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__head > :nth-child(4){ text-align: right; }

/* Whole row clickable (robust) */
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__rowlink{
  z-index: 5;
}

/* Let clicks go to overlay link */
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__row > *:not(.ns-ranking__rowlink){
  pointer-events: none;
}

/* Keep focus outline working */
body.nsd.page-csv-collection .ns-ranking--table .ns-ranking__rowlink:focus-visible{
  outline: 2px solid rgba(57,255,20,.55);
  outline-offset: -2px;
  border-radius: inherit;
}

.ns-badge--num{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width: 2.2rem;
  padding: .25rem .55rem;
  border-radius: .65rem;
  border: 1px solid rgba(57,255,20,.25);
  background: rgba(57,255,20,.10);
  font-variant-numeric: tabular-nums;
}

/* Header "Events" */
.ns-ranking--table .ns-ranking__h--delta{
  justify-self: end;
  text-align: right;
  padding-right: .35rem; /* optional */
}

/* Zelle mit dem Badge */
.ns-ranking--table .ns-ranking__row .ns-ranking__delta{
  justify-self: end;
  text-align: right;
  padding-right: .35rem; /* optional */
}

/* Beispiel: # | Name | Events (Auto, rechts) */
.ns-ranking--table .ns-ranking__head,
.ns-ranking--table .ns-ranking__row{
  grid-template-columns: 2.2rem 1fr auto;
  column-gap: .75rem;
}

/* Hotspots: eigene Grid-Geometrie (3 Spalten) */
body.nsd.page-csv-collection .ns-hotspots-scope .ns-ranking--table{
  --ns-hot-cols: 2.2rem 1fr 4.2rem; /* # | Name | Events */
  --ns-hot-gap: .75rem;
}

/* Apply nur in Hotspots */
body.nsd.page-csv-collection .ns-hotspots-scope .ns-ranking--table .ns-ranking__head,
body.nsd.page-csv-collection .ns-hotspots-scope .ns-ranking--table .ns-ranking__row{
  grid-template-columns: var(--ns-hot-cols);
  column-gap: var(--ns-hot-gap);
}

/* Entscheidend: weniger right-padding => Events näher am Rand */
body.nsd.page-csv-collection .ns-hotspots-scope .ns-ranking--table .ns-ranking__head{
  padding-right: .35rem;  /* vorher .7rem */
  padding-left: .7rem;
}

body.nsd.page-csv-collection .ns-hotspots-scope .ns-ranking--table .ns-ranking__row{
  padding-right: .35rem;  /* vorher .7rem */
  padding-left: .7rem;
}

/* Hotspots: links enger, rechts unverändert */
body.nsd.page-csv-collection .ns-hotspots-scope .ns-ranking--table .ns-ranking__head,
body.nsd.page-csv-collection .ns-hotspots-scope .ns-ranking--table .ns-ranking__row{
  padding-left: .35rem;   /* vorher .7rem */
  /* padding-right bleibt wie gehabt -> Events bleiben wo sie sind */
}

/* Optional: noch etwas “Air” bei der Rank-Spalte rausnehmen */
body.nsd.page-csv-collection .ns-hotspots-scope .ns-ranking--table .ns-ranking__rank{
  padding-right: .2rem;   /* vorher .35rem */
}

/* =========================
   Hotspots – Calm Mode (wie Bundesländer-Ranking)
   Scope: nur Hotspots
   ========================= */
body.nsd.page-csv-collection .ns-hotspots-scope .ns-ranking--table .ns-ranking__row,
body.nsd.page-csv-collection .ns-hotspots-scope .ns-ranking--table .ns-ranking__rowlink{
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background-image: none !important;
}

/* falls der grüne Strich über Pseudo-Elemente kommt */
body.nsd.page-csv-collection .ns-hotspots-scope .ns-ranking--table .ns-ranking__row::before,
body.nsd.page-csv-collection .ns-hotspots-scope .ns-ranking--table .ns-ranking__row::after{
  content: none !important;
}

body.nsd.page-csv-collection .ns-hotspots-scope .ns-ranking--table .ns-ranking__row{
  background: transparent !important;
  border-radius: .55rem;
}

/* Ruhige Trennung statt grünem Strich */
body.nsd.page-csv-collection .ns-hotspots-scope .ns-ranking--table .ns-ranking__row:not(:last-child){
  border-bottom: 1px solid rgba(255,255,255,.07) !important;
}

/* Optional: leichte Zebra-Ruhe wie beim Ranking */
body.nsd.page-csv-collection .ns-hotspots-scope .ns-ranking--table .ns-ranking__row:nth-child(even){
  background: rgba(255,255,255,.015) !important;
}

/* Optional: Hover minimal */
body.nsd.page-csv-collection .ns-hotspots-scope .ns-ranking--table .ns-ranking__row:hover{
  background: rgba(255,255,255,.025) !important;
}

/* Sichtbarer "Weiter lesen" Button im Infobox-Hero */
.ns-festival-infobox__more{
  display: inline-flex;
  align-items: center;
  gap: .4rem;

  margin-top: .6rem;
  padding: .35rem .7rem;

  border-radius: 999px;
  border: 1px solid rgba(57,255,20,.55);
  background: rgba(0,0,0,.25);

  color: rgba(57,255,20,.95);
  font: inherit;
  cursor: pointer;

  box-shadow:
    0 0 .6rem rgba(57,255,20,.12);
}

.ns-festival-infobox__more:hover{
  background: rgba(0,0,0,.35);
  border-color: rgba(57,255,20,.55);
}

.ns-festival-infobox__more:focus-visible{
  outline: 2px solid rgba(57,255,20,.55);
  outline-offset: 2px;
}

.ns-festival-infobox__chev{
  display: inline-block;
  transition: transform .18s ease;
}

.ns-festival-infobox__editorial.is-expanded .ns-festival-infobox__chev{
  transform: rotate(180deg);
}

.ns-chip.ns-festival-infobox__more{
  cursor: pointer;
  gap: .45rem;
  display: inline-flex;
  align-items: center;
  line-height: 1;
  border: 1px solid currentColor; /* falls Chips border via currentColor */
}

.ns-festival-infobox__chev{
  display:inline-block;
  transition: transform .18s ease;
}

.ns-festival-infobox__editorial.is-expanded .ns-festival-infobox__chev{
  transform: rotate(180deg);
}

/* Weiterlesen-Button im Festival-Hero: wie ein Chip, aber dezenter */
.ns-festival-infobox__more{
  display:inline-flex;
  align-items:center;
  gap:.45rem;

  margin-top:.65rem;
  padding:.38rem .72rem;

  border-radius:999px;
  border:1px solid rgba(57,255,20,.55);
  background: rgba(0,0,0,.18);

  color: rgba(57,255,20,.92);
  font: inherit;
  line-height: 1;
  cursor:pointer;

  box-shadow:
    0 0 .55rem rgba(57,255,20,.10);
  transition: transform .08s ease, background .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.ns-festival-infobox__more:hover{
  background: rgba(0,0,0,.28);
  border-color: rgba(57,255,20,.75);
  box-shadow:
    0 0 .75rem rgba(57,255,20,.16);
}

.ns-festival-infobox__more:active{
  transform: translateY(1px);
}

.ns-festival-infobox__more:focus-visible{
  outline:2px solid rgba(57,255,20,.85);
  outline-offset:2px;
}

/* Chevron: klein, sauber animiert */
.ns-festival-infobox__chev{
  display:inline-block;
  font-size: .9em;
  transform: translateY(1px);
  transition: transform .18s ease;
}

.ns-festival-infobox__editorial.is-expanded .ns-festival-infobox__chev{
  transform: rotate(180deg) translateY(-1px);
}

/* 1) Clamp nur im collapsed state */
.ns-festival-infobox__editorial.is-collapsed .ns-festival-infobox__editorial-text{
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;   /* <- exakt 3 Zeilen */
  overflow: hidden;
}

/* 2) Expanded entfernt Clamp */
.ns-festival-infobox__editorial.is-expanded .ns-festival-infobox__editorial-text{
  display: block;
  overflow: visible;
}

/* 3) Button (klickbar, kein Layout-Shift) */
.ns-festival-infobox__more{
  margin-top: .5rem;
  cursor: pointer;
  user-select: none;
}

/* Optional: kleiner Chevron/Rotation */
.ns-festival-infobox__editorial.is-expanded .ns-festival-infobox__chev{
  transform: rotate(180deg);
  display: inline-block;
}








/* "Neu" Badge unter dem Day-Kreis */
.ns-card__new-badge{
  margin-top: .35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .18rem .55rem;
  border-radius: 999px;
  font-weight: 700;
  font-size: .72rem;
  letter-spacing: .04em;
  line-height: 1;
  border: 1px solid rgba(57,255,20,.55);
  background: rgba(57,255,20,.12);
  color: rgba(57,255,20,.95);
}

/* optional: minimaler Extra-Glow nur wenn is-new */
.ns-card.is-new .ns-card__day-badge{
  box-shadow:
    0 0 .9rem rgba(57,255,20,.22),
    0 0 1.6rem rgba(57,255,20,.12);
}

.ns-card__new-badge{
  color: rgba(57,255,20,.98);            /* wie deine Headlines */
  border: 1px solid rgba(57,255,20,.75);
  background: rgba(57,255,20,.12);
}

.ns-card__new-badge{
  text-shadow: 0 0 .55rem rgba(57,255,20,.25);
}

.ns-card{
  position: relative;
}
.ns-card__new-badge{
  position: absolute;
  left: 1.15rem;          /* passt zur Datumsspalte/Glow-Kreis */
  top: 1.25rem;           /* Titelhöhe – Feintuning möglich */
  margin: 0;              /* wichtig: damit es nicht vom Flow abhängt */
  z-index: 3;
}

/* Karte als Bezug */
.ns-card{ position: relative; }

/* Default: Badge sitzt links, auf Titelhöhe */
.ns-card__new-badge{
  position: absolute;

  /* X: an der Datumsspalte ausrichten */
  left: var(--ns-new-x, 1.85rem);

  /* Y: auf Titelhöhe (Baseline-Nähe) */
  top: var(--ns-new-y, 2.00rem);

  /* Flow-Margins killen */
  margin: 0;

  z-index: 4;
}

/* Mobile: NEU ganz rechts auf der Zeilenhöhe der Date-Row (… 20:00) */
@media (max-width: 640px){
  .ns-card__new-badge{
    left: auto;
    right: 1.05rem;   /* Abstand zum Kartenrand */
    top: 1.72rem;     /* <- hier auf die 20:00-Zeile ausrichten */
    margin: 0;
    transform: none;
    z-index: 4;
  }
}
























.ns-genreprofile__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:.75rem;
}
.ns-genreprofile__title{ margin:0; }
.ns-genreprofile__meta{ font-size:.92rem; opacity:.78; }

.ns-genreprofile__insight{
  margin:.25rem 0 .55rem;
}

.ns-genreprofile__bar{
  display:flex;
  height:14px;
  border-radius:999px;
  overflow:hidden;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.10);
}
.ns-genreprofile__seg{
  position:relative;
  width:var(--w, 0%);
  min-width:2px;
  text-decoration:none;
}
.ns-genreprofile__segfill{
  position:absolute; inset:0;
  background:rgba(57,255,20,.55);
}
.ns-genreprofile__seg--rest .ns-genreprofile__segfill{
  background:rgba(255,255,255,.20);
}

.ns-genreprofile__chips{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
  margin-top:.6rem;
}
.ns-genreprofile__chip{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.25rem .55rem;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.06);
  text-decoration:none;
}
.ns-genreprofile__chip:hover{
  background:rgba(57,255,20,.14);
  border-color:rgba(57,255,20,.35);
}
.ns-genreprofile__chippct, .ns-genreprofile__chipdelta{
  opacity:.82;
  font-size:.92rem;
}

.ns-genreprofile__details{ margin-top:.55rem; }
.ns-genreprofile__details > summary{
  cursor:pointer;
  opacity:.86;
}
.ns-genreprofile__list{ margin-top:.4rem; }
.ns-genreprofile__row{ margin:.15rem 0; }
.ns-genreprofile__rowlink{
  display:flex;
  gap:.6rem;
  align-items:baseline;
  text-decoration:none;
}
.ns-genreprofile__rowpct, .ns-genreprofile__rowdelta{ opacity:.82; }


@media (max-width: 560px){
  .ns-genreprofile__head{
    display:grid;
    grid-template-columns: 1fr auto;
    gap:.4rem .75rem;
    align-items:baseline;
  }
  .ns-genreprofile__title{
    line-height:1.05;
  }
  .ns-genreprofile__meta{
    font-size:.95rem;
    opacity:.75;
    white-space:nowrap;
  }
  .ns-genreprofile__meta--right{
    justify-self:end;
    font-size:.9rem;
    opacity:.7;
    white-space:nowrap;
  }
}

@media (max-width: 560px){
  .ns-genreprofile__insight{
    display:flex;
    flex-wrap:wrap;
    gap:.4rem .5rem;
    align-items:center;
    margin:.4rem 0 .55rem;
    font-size:.95rem;
  }
  .ns-genreprofile__insight strong{
    font-weight:700;
  }
  .ns-genreprofile__insight .ns-genreprofile__meta{
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 999px;
    padding:.15rem .5rem;
    opacity:.85;
  }
}

@media (max-width: 560px){
  .ns-genreprofile__bar{
    display:flex;
    height:.45rem;
    border-radius:999px;
    overflow:hidden;
    background: rgba(255,255,255,.10);
    margin:.3rem 0 .65rem;
  }
  .ns-genreprofile__seg{
    width: var(--w);
    min-width: 6px; /* damit kleine Genres nicht verschwinden */
    display:block;
  }
  .ns-genreprofile__segfill{ height:100%; width:100%; display:block; }
  .ns-genreprofile__seg + .ns-genreprofile__seg{
    box-shadow: inset 2px 0 0 rgba(0,0,0,.55); /* Segmenttrenner */
  }
  .ns-genreprofile__seg--rest .ns-genreprofile__segfill{
    opacity:.35;
  }
}

@media (max-width: 560px){
  .ns-genreprofile__details > summary{
    list-style:none;
    cursor:pointer;
    margin-top:.55rem;
    padding:.6rem .8rem;
    border-radius: 14px;
    border: 1px solid rgba(255,255,255,.14);
    background: rgba(255,255,255,.06);
    font-weight:650;
  }
  .ns-genreprofile__details > summary::-webkit-details-marker{ display:none; }
}

@media (max-width: 560px){
  .ns-section{ padding-top: .9rem; }
  #genre-profil.ns-section{ padding-bottom: .65rem; }
  #trend.ns-section{ padding-top: .9rem; }
}

@media (max-width: 560px){
  .ns-genreprofile__head{
    display:flex;
    flex-direction:column;
    gap:.35rem;
    align-items:flex-start;
  }

  .ns-genreprofile__title{
    margin:0;
    line-height:1.05;
  }

  .ns-genreprofile__badges{
    display:flex;
    flex-wrap:wrap;
    gap:.4rem;
  }

  .ns-genreprofile__badge{
    display:inline-flex;
    align-items:center;
    padding:.18rem .55rem;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.14);
    background: rgba(255,255,255,.06);
    font-size:.9rem;
    opacity:.9;
    white-space:nowrap; /* verhindert Wortumbruch innerhalb des Badges */
  }
}

@media (max-width: 560px){
  .ns-genreprofile__head{
    display:grid;
    grid-template-columns: 1fr auto;
    grid-template-areas:
      "title title"
      "count cov";
    gap:.35rem .6rem;
  }
  .ns-genreprofile__title{ grid-area:title; }
  .ns-genreprofile__count{ grid-area:count; }
  .ns-genreprofile__cov{ grid-area:cov; justify-self:end; white-space:nowrap; }
}












.ns-festival-infobox__editorial.is-collapsed .ns-festival-infobox__editorial-text{
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.ns-festival-infobox__editorial.is-expanded .ns-festival-infobox__chev{
  transform:rotate(180deg);
  display:inline-block;
}

.ns-festival-infobox__more{
  margin-top:.5rem;
  background:transparent;
  border:0;
  padding:.25rem 0;
  font:inherit;
  cursor:pointer;
  opacity:.9;
}
.ns-festival-infobox__more:hover{ opacity:1; }
















/* Scope: nur diese Box */
.ns-hi-cta{ margin-top: 1.1rem; }

.ns-hi-cta__card{
  border-radius: 1rem;
  border: 1px solid rgba(255,255,255,0.06);
  background:
    radial-gradient(circle at top left, rgba(0, 255, 150, 0.14), transparent 60%),
    rgba(10, 10, 18, 0.92);
  box-shadow: 0 4px 18px rgba(0,0,0,0.75);
  padding: 1.15rem 1.25rem;
}

/* Typo */
.ns-hi-cta__title{
  font-weight: 750;
  letter-spacing: .02em;
  margin-bottom: .35rem;
}

.ns-hi-cta__text{
  opacity: .92;
  line-height: 1.4;
  margin-bottom: .55rem;
}

/* Optionaler Detailtext */
.ns-hi-cta__details{
  margin: .25rem 0 .55rem;
}
.ns-hi-cta__details-summary{
  list-style: none;
  cursor: pointer;
  opacity: .85;
  font-size: .92rem;
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  text-decoration: none;
}
.ns-hi-cta__details-summary::-webkit-details-marker{ display:none; }
.ns-hi-cta__details-summary:focus-visible{
  outline: 2px solid rgba(0, 255, 150, 0.65);
  outline-offset: 2px;
  border-radius: .5rem;
}
.ns-hi-cta__details-body{
  margin-top: .5rem;
  opacity: .88;
  line-height: 1.45;
  font-size: .95rem;
}

/* Statuszeile: ruhig, scanbar */
.ns-hi-cta__summary{
  opacity: .78;
  font-size: .95rem;
  line-height: 1.35;
}
.ns-hi-cta__summary-strong{
  opacity: .98;
  font-weight: 700;
}

/* Actions: klarer Block mit leichter Trennung */
.ns-hi-cta__actions{
  margin-top: .95rem;
  padding-top: .85rem;
  border-top: 1px solid rgba(255,255,255,0.06);
  background: linear-gradient(180deg, rgba(0,0,0,0.00), rgba(0,0,0,0.18));
  border-radius: .85rem;
}

/* Chips + Link */
.ns-hi-cta__chips{
  display:flex;
  flex-wrap: wrap;
  gap: .5rem .55rem;
  padding: .75rem .0 0;
  margin: 0 0 .75rem;
}

/* Chips (Secondary) */
.ns-hi-cta__chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height: 44px;               /* Touch */
  padding: .35rem .75rem;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(0,0,0,0.18);
  font-size: .92rem;
  opacity: .92;
  text-decoration:none;
  color: inherit;
  white-space: nowrap;
}
.ns-hi-cta__chip:hover{ border-color: rgba(0, 255, 150, 0.35); }
.ns-hi-cta__chip:focus-visible{
  outline: 2px solid rgba(0, 255, 150, 0.65);
  outline-offset: 2px;
}

/* Aktion-Link (klar als Aktion, nicht als Chip) */
.ns-hi-cta__link{
  display:inline-flex;
  align-items:center;
  min-height: 44px;               /* Touch */
  padding: .35rem .25rem;
  font-size: .95rem;
  font-weight: 700;
  letter-spacing: .01em;
  text-decoration: none;
  color: rgba(0, 255, 150, 0.95);
  border-bottom: 1px solid rgba(0, 255, 150, 0.35);
  opacity: .95;
  white-space: nowrap;
}
.ns-hi-cta__link:hover{
  border-bottom-color: rgba(0, 255, 150, 0.65);
}
.ns-hi-cta__link:focus-visible{
  outline: 2px solid rgba(0, 255, 150, 0.65);
  outline-offset: 2px;
  border-radius: .5rem;
}

/* Primary Button: Full width */
.ns-hi-cta__btn{
  display:flex;
  align-items:center;
  justify-content:center;
  width: 100%;
  min-height: 48px;               /* Touch */
  padding: .75rem 1rem;
  border-radius: 999px;
  border: 1px solid rgba(0, 255, 150, 0.70);
  color: rgba(0, 255, 150, 0.98);
  background: rgba(0,0,0,0.22);
  font-weight: 800;
  letter-spacing: .02em;
  text-decoration:none;
  box-shadow:
    0 0 0.9rem rgba(0, 255, 150, 0.10),
    0 0 1.7rem rgba(0, 255, 150, 0.06);
}
.ns-hi-cta__btn:hover{
  border-color: rgba(0, 255, 150, 0.85);
}

/* Hinweis unterhalb */
.ns-hi-cta__hint{
  margin-top: .6rem;
  opacity: .70;
  font-size: .92rem;
  line-height: 1.35;
  padding-bottom: .85rem;
}

/* Mobile: etwas kompaktere Typo/Spacing, ohne die Touch-Ziele zu verkleinern */
@media (max-width: 520px){
  .ns-hi-cta__card{ padding: 1.05rem 1.05rem; }
  .ns-hi-cta__title{ font-size: 1.05rem; }
  .ns-hi-cta__text{ font-size: .98rem; }
  .ns-hi-cta__summary{ font-size: .92rem; }
  .ns-hi-cta__chips{ margin-bottom: .65rem; }
}






































/* ---------- Hotspots 2-Spalten Layout ---------- */
.ns-hotspots{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
@media (max-width: 900px){
  .ns-hotspots{ grid-template-columns: 1fr; }
}

/* ---------- Hotspots Overrides: kein Highlight/Dim, alles weiß ---------- */
/* (am besten: im Twig gar kein is-active / is-dim setzen) */
.ns-hotspots-scope .ns-ranking__row{
  opacity: 1;
  outline: none !important;
  box-shadow: none !important;
  color: #fff;
}

.ns-hotspots-scope .ns-ranking__rank,
.ns-hotspots-scope .ns-ranking__name,
.ns-hotspots-scope .ns-ranking__count,
.ns-hotspots-scope .ns-ranking__delta{
  color: #fff;
  opacity: 1;
}



/* =========================================
   MARKETS: Store-Kachel als Event-Kachel (Date-Badge links)
   benötigt Twig-Klassen: ns-card--market, ns-card__date--market,
   ns-card__store-loc-vert--market, ns-card__market-*
   ========================================= */

body.nsd.page-csv-collection .ns-card--market{
  /* nutzt Store-Grid, bleibt aber eventiger */
  min-height: 190px;
}

/* Linke Spalte: wie Store, aber mit Date-Badge-Inhalt */
body.nsd.page-csv-collection .ns-card--market .ns-card__date--market{
  align-self: stretch;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  background-color: #000;
  color: #fff;
  border-radius: 0.5rem;
}

/* WICHTIG: bei Markets NICHT rotieren – sonst wird das Date-Badge unlesbar */
body.nsd.page-csv-collection .ns-card--market .ns-card__store-loc-vert--market{
  transform: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  white-space: normal;
  text-align: center;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 0.72rem;
}

/* Date-Bits */
body.nsd.page-csv-collection .ns-card__market-dow{
  opacity: 0.85;
  letter-spacing: 0.18em;
}

body.nsd.page-csv-collection .ns-card__market-day{
  font-size: 1.55rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  line-height: 1;
  color: #00ff96;
  text-shadow: 0 0 10px rgba(0,255,150,0.25);
}

body.nsd.page-csv-collection .ns-card__market-mon{
  opacity: 0.9;
  letter-spacing: 0.18em;
}

/* optional: Uhrzeit direkt im linken Streifen */
body.nsd.page-csv-collection .ns-card__market-time{
  margin-top: 0.25rem;
  font-size: 0.72rem;
  opacity: 0.8;
  letter-spacing: 0.10em;
  text-transform: none; /* "14–18" soll nicht wie ein Label wirken */
}

/* Content: kleine Meta-Zeile (Zeit/Preis) */
body.nsd.page-csv-collection .ns-card__meta--market{
  margin-top: 0.35rem;
  font-size: 0.82rem;
  opacity: 0.85;
}

/* Corner-Badge (Heute / Dieses Wochenende / …) */
body.nsd.page-csv-collection .ns-card__corner-badge{
  position: absolute;
  top: 0.75rem;
  right: 0.85rem;
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.18rem 0.55rem;
  border-radius: 999px;
  background: rgba(0,0,0,0.55);
  box-shadow: inset 0 0 0 1px rgba(0,255,150,0.35);
  color: rgba(255,255,255,0.9);
  pointer-events: none;
}

/* Tags: Market nutzt Store-Chips, nur optional ein Alias */
body.nsd.page-csv-collection .ns-tag--market{
  /* falls du im Twig ns-tag--market nutzt: */
  padding: 0.15rem 0.7rem;
  border: 1px solid rgba(0, 255, 150, 0.55);
  font-size: 0.75rem;
  letter-spacing: 0.03em;
  border-radius: 999px;
}

/* Quelle (optional) */
body.nsd.page-csv-collection .ns-card__source--market{
  margin-top: 0.55rem;
  font-size: 0.72rem;
  opacity: 0.55;
  word-break: break-word;
}

/* Mobile: Date-Badge-Zeile kompakt (passt zur bestehenden ns-card Mobile-Regel) */
@media (max-width: 700px){
  body.nsd.page-csv-collection .ns-card--market .ns-card__store-loc-vert--market{
    flex-direction: row;
    gap: 0.7rem;
  }

  body.nsd.page-csv-collection .ns-card__market-day{
    font-size: 1.25rem;
  }

  body.nsd.page-csv-collection .ns-card__market-time{
    margin-top: 0;
    opacity: 0.85;
  }
}



/* =========================================
   CANCELED UI (Badge + Text + CTA-Variante)
   ========================================= */

/* 1) Badge "Abgesagt" */
body.nsd.page-csv-collection .ns-badge{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.22rem .55rem;
  border-radius:999px;
  font-size:.72rem;
  letter-spacing:.10em;
  text-transform:uppercase;
  line-height:1;
  white-space:nowrap;
}

body.nsd.page-csv-collection .ns-badge--canceled{
  margin-left:.55rem; /* sitzt rechts neben City · Venue */
  color: rgba(255, 95, 95, 0.95);
  border: 1px solid rgba(255, 95, 95, 0.45);
  background: rgba(255, 95, 95, 0.10);
  box-shadow: 0 0 14px rgba(255, 95, 95, 0.10);
}

/* 3) Canceled-Text: kontrastreicher + gut lesbar, Absätze sichtbar */
body.nsd.page-csv-collection .ns-card__canceled{
  margin-top: .35rem;
  color: rgba(255, 95, 95, 0.96);
  font-weight: 650;
  line-height: 1.35;
  white-space: pre-line; /* \n / \n\n aus CSV anzeigen */
}














/* ===================== Band Tile (ohne .ns-card Grid) ===================== */
/* Ziel: gleiche Optik wie .ns-card, aber 1-spaltig (kein Datum-Grid). */
body.nsd.page-csv-collection .ns-item.csv-row.ns-band-tile{
  position: relative;

  display: flex;
  flex-direction: column;
  align-items: flex-start;  /* Titel + Genres links, aber untereinander */
  justify-content: flex-start;

  padding: 1rem 1.2rem 1.05rem;
  border-radius: 1rem;

  background:
    radial-gradient(circle at top left, rgba(0, 255, 150, 0.18), transparent 60%),
    rgba(10, 10, 18, 0.96);
  border: 1px solid rgba(255, 255, 255, 0.06);
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.85);

  min-height: 180px;
  height: 100%;
  box-sizing: border-box;

  cursor: pointer;
  transition:
    transform 0.16s ease-out,
    box-shadow 0.16s ease-out,
    border-color 0.16s ease-out,
    background 0.16s ease-out;
}

body.nsd.page-csv-collection .ns-item.csv-row.ns-band-tile:hover{
  transform: translateY(-2px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.9);
  border-color: rgba(0, 255, 150, 0.5);
  background:
    radial-gradient(circle at top left, rgba(0, 255, 150, 0.24), transparent 65%),
    rgba(5, 10, 18, 0.98);
}

/* Band-Titel: eigene Klasse (wie Event-Titel, aber unabhängig) */
body.nsd.page-csv-collection .ns-band-tile__title{
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: none;

  color: #00ff96;
  margin: 0 0 0.10rem;
  width: 100%;
}

/* Land: dezenter/dunkler */
body.nsd.page-csv-collection .ns-band-tile__country{
  margin-left: 0.35rem;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: rgba(0, 255, 150, 0.70);
}

/* Genres-Container: bleibt dein bestehender Chip-Container */
body.nsd.page-csv-collection .ns-item.csv-row.ns-band-tile .ns-card__genres{
  margin-top: 0.5rem; /* passt zu deinem existing contract */
}

.ns-band-tile { display:flex; flex-direction:column; }
.ns-band-tile__footer { margin-top:auto; }


/* Bandkachel muss Bezugspunkt sein */
body.nsd.page-csv-collection .ns-item.csv-row.ns-band-tile{
  position: relative;
  padding-bottom: 3.0rem; /* Platz reservieren, damit CTA nichts überlappt */
}

/* CTA unten rechts wie bei Events */
body.nsd.page-csv-collection .ns-item.csv-row.ns-band-tile .ns-band-tile__cta{
  position: absolute;
  right: 1.2rem;
  bottom: 1.05rem;
  display: flex;
  justify-content: flex-end;
  width: auto;
}

/* Optional: wenn Chips sehr viele werden, CTA immer “frei” halten */
body.nsd.page-csv-collection .ns-item.csv-row.ns-band-tile .ns-card__genres{
  margin-bottom: 0.9rem; /* Luft über dem CTA */
}

























/* =========================================================
   MOBILE TOOLBAR CONTRACT (max-width: 700px)

   Purpose:
   - Keep the filter toolbar compact and truly one-line per control on phones.
   - Neutralize shared/global form styles (esp. iOS Safari) that can turn the
     search field into a tall textarea-like box or shift select text metrics.

   Notes (do not remove lightly):
   - The !important flags are intentional: shared.css/global form rules may
     set min-height/padding/line-height, and iOS can ignore "height" alone.
   - font-size: 16px prevents iOS zoom and stabilizes baseline alignment.
   ========================================================= */
@media (max-width: 700px) {
  /* If #csv-q is a textarea or receives min-height from shared styles, force a compact one-line field */
  body.nsd.page-csv-collection .ns-toolbar #csv-q {
    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;
    line-height: 40px !important;
    padding: 0 1rem !important;
    resize: none;
    overflow: hidden;
    font-size: 16px !important; /* prevents iOS zoom + odd metrics */
  }

  /* Make select typography consistent on iOS */
  body.nsd.page-csv-collection .ns-toolbar select,
  body.nsd.page-csv-collection .ns-toolbar .ns-select select {
    font-size: 16px !important;
    line-height: 40px !important;
    height: 40px !important;
  }

  /* Some iOS builds render select text vertically off when padding is asymmetric */
  body.nsd.page-csv-collection .ns-toolbar .ns-group-field select,
  body.nsd.page-csv-collection .ns-toolbar .ns-group-field .ns-select select {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}


















//* ===== Bottom Navigation – Anpassung: höherer Hintergrund + weiter unten ===== */

/* =========================================
   Bottom Nav – polished + content-safe
   ========================================= */

/* Stellschrauben (einfach anpassbar) */
:root{
  --ns-bottomnav-gap: 16px;          /* Abstand zum unteren Rand */
  --ns-bottomnav-title-h: 22px;      /* angenommene Titelzeilenhöhe (für Padding-Kalkulation) */
  --ns-bottomnav-bar-h: 52px;        /* angenommene Chips-Bar-Höhe (für Padding-Kalkulation) */
  --ns-bottomnav-extra: 18px;        /* Extra-Luft, damit nichts “gequetscht” wirkt */
  --ns-bottomnav-bg: rgba(8, 10, 14, .78);
  --ns-bottomnav-border: rgba(57,255,20,.18);
  --ns-bottomnav-sep: rgba(255,255,255,.08);
}

/* 1) Bottom-Padding für Content (nav-height + safe-area + Luft) */
body{
  padding-bottom: calc(
    var(--ns-bottomnav-title-h) + var(--ns-bottomnav-bar-h) +
    var(--ns-bottomnav-gap) + var(--ns-bottomnav-extra) +
    env(safe-area-inset-bottom, 0px)
  );
}

/* Bottom Nav zentriert */
.ns-bottomnav{
  position: fixed;
  left: 50%;
  bottom: calc(var(--ns-bottomnav-gap) + env(safe-area-inset-bottom, 0px));
  transform: translateX(-50%);
  z-index: 9999;
  width: min(980px, calc(100vw - 20px));
  pointer-events: none;

  /* Auto-hide Animation */
  transition: transform 180ms ease, opacity 180ms ease;
}

/* 4) Auto-Hide: beim Scrollen nach unten ausblenden */
.ns-bottomnav.is-hidden{
  transform: translateX(-50%) translateY(calc(100% + 18px));
  opacity: 0;
}

/* 2) Visuelle Trennung: Top-Shadow + dünne Trennlinie */
.ns-bottomnav__inner{
  pointer-events: auto;

  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: .45rem;

  padding: .60rem .70rem;
  border-radius: 18px;

  background: var(--ns-bottomnav-bg);
  backdrop-filter: blur(12px) saturate(120%);
  -webkit-backdrop-filter: blur(12px) saturate(120%);

  border: 1px solid var(--ns-bottomnav-border);

  /* Shadow nach oben = “Overlay”, nicht Content */
  box-shadow:
    0 -12px 26px rgba(0,0,0,.34),
    0 0 0.9rem rgba(57,255,20,.08);

  position: relative;
  max-width: 100%;
}

.ns-bottomnav__inner::before{
  content: "";
  position: absolute;
  left: 10px;
  right: 10px;
  top: 0;
  height: 1px;
  background: var(--ns-bottomnav-sep);
  opacity: .9;
}

/* 3) Kontext im Sticky reduzieren: Titel dezenter, weniger Höhe */
.ns-bottomnav__title{
  text-align: center;

  font-weight: 500;
  font-size: .82rem;
  line-height: 1.1;
  letter-spacing: .16em;
  text-transform: uppercase;

  color: rgba(255,255,255,.70);

  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

/* Chips: eine Zeile + horizontal scroll */
.ns-bottomnav__chips{
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: .45rem;

  flex-wrap: nowrap !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch;

  width: 100%;
  max-width: 100%;
  min-width: 0;

  scrollbar-width: none;
  padding-bottom: .10rem;
}

.ns-bottomnav__chips::-webkit-scrollbar{
  height: 0;
}

/* Scroll-Hinweis (subtiler Fade) */
@media (max-width: 720px){
  .ns-bottomnav__chips{
    mask-image: linear-gradient(to right, transparent 0, black 16px, black calc(100% - 16px), transparent 100%);
    -webkit-mask-image: linear-gradient(to right, transparent 0, black 16px, black calc(100% - 16px), transparent 100%);
  }
}

/* Neon Chips: bewusst weniger dominant (outlined) */
.ns-bottomnav__link{
  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: .36rem .60rem;
  border-radius: 999px;

  text-decoration: none;
  font-weight: 800;
  font-size: .95rem;
  line-height: 1;

  white-space: nowrap;
  flex: 0 0 auto;

  color: rgba(57,255,20,.92);
  background: rgba(57,255,20,.07);
  border: 1px solid rgba(57,255,20,.28);

  box-shadow: inset 0 0 0 1px rgba(0,0,0,.10);
}

.ns-bottomnav__link:hover{
  background: rgba(57,255,20,.11);
  border-color: rgba(57,255,20,.44);
  transform: translateY(-1px);
}

.ns-bottomnav__link:focus-visible{
  outline: 2px solid rgba(57,255,20,.70);
  outline-offset: 3px;
}

/* 3) Option B: “compact” – Titel bleibt, wird noch kleiner, Bar niedriger */
.ns-bottomnav.is-compact .ns-bottomnav__inner{
  padding: .52rem .65rem;
  gap: .35rem;
}

.ns-bottomnav.is-compact .ns-bottomnav__title{
  font-size: .76rem;
  letter-spacing: .18em;
  opacity: .85;
}

/* 3) Option A (optional): Titel im Sticky komplett ausblenden */
.ns-bottomnav.is-title-hidden .ns-bottomnav__title{
  display: none;
}

/* Mobile Anpassung */
@media (max-width: 480px){
  :root{
    --ns-bottomnav-gap: 14px;
    --ns-bottomnav-title-h: 20px;
    --ns-bottomnav-bar-h: 50px;
  }

  .ns-bottomnav{
    width: calc(100vw - 16px);
  }

  .ns-bottomnav__inner{
    border-radius: 16px;
    padding: .56rem .62rem;
  }

  .ns-bottomnav__link{
    font-size: .92rem;
    padding: .34rem .56rem;
  }
}












/* ===== Chips: eine Zeile + horizontales Scrollen + Affordanz ===== */
.ns-bottomnav__chips{
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: .45rem;

  flex-wrap: nowrap !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch;

  width: 100%;
  max-width: 100%;
  min-width: 0;

  scrollbar-width: none;
  padding-bottom: .10rem;

  /* Scroll Snap (optional, fühlt sich hochwertig an) */
  scroll-snap-type: x mandatory;
  scroll-padding-left: .5rem; /* damit der erste Chip schön “einrastet” */
}

.ns-bottomnav__chips::-webkit-scrollbar{
  height: 0;
}

/* Scroll-Hint: Fade links/rechts IMMER (nicht nur mobile) */
.ns-bottomnav__chips{
  mask-image: linear-gradient(to right, transparent 0, black 14px, black calc(100% - 28px), transparent 100%);
  -webkit-mask-image: linear-gradient(to right, transparent 0, black 14px, black calc(100% - 28px), transparent 100%);
}

/* Zusätzlich: dezenter “More”-Indicator rechts (Pfeil), nur wenn es eng ist */
@media (max-width: 720px){
  .ns-bottomnav__inner{ position: relative; }

  .ns-bottomnav__inner::after{
    content: "›";
    position: absolute;
    right: 12px;
    bottom: 14px;               /* in Höhe der Chips */
    font-size: 1.2rem;
    line-height: 1;
    opacity: .45;
    pointer-events: none;
    color: rgba(255,255,255,.70);
    text-shadow: 0 8px 18px rgba(0,0,0,.55);
  }
}

/* ===== Chip Styling: outlined default, active filled ===== */
.ns-bottomnav__link{
  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: .36rem .60rem;
  border-radius: 999px;

  text-decoration: none;
  font-weight: 800;
  font-size: .95rem;
  line-height: 1;

  white-space: nowrap;
  flex: 0 0 auto;

  color: rgba(57,255,20,.92);
  background: rgba(57,255,20,.07);
  border: 1px solid rgba(57,255,20,.28);

  box-shadow: inset 0 0 0 1px rgba(0,0,0,.10);

  /* Scroll-Snap */
  scroll-snap-align: start;
}

.ns-bottomnav__link:hover{
  background: rgba(57,255,20,.11);
  border-color: rgba(57,255,20,.44);
  transform: translateY(-1px);
}

/* Active State: klar sichtbar */
.ns-bottomnav__link.is-active,
.ns-bottomnav__link[aria-current="page"]{
 /* color: #07110a;*/
    color: #000000;
  background: rgba(57,255,20,.92);
  border-color: rgba(57,255,20,.95);

  box-shadow:
    0 0 0.9rem rgba(57,255,20,.24),
    0 0 1.7rem rgba(57,255,20,.14);
}

/* Fokus */
.ns-bottomnav__link:focus-visible{
  outline: 2px solid rgba(57,255,20,.70);
  outline-offset: 3px;
}

/* Active State: erzwinge schwarze Schrift zuverlässig */
.ns-bottomnav .ns-bottomnav__inner .ns-bottomnav__chips a.ns-bottomnav__link.is-active,
.ns-bottomnav .ns-bottomnav__inner .ns-bottomnav__chips a.ns-bottomnav__link[aria-current="page"]{
  color: #000000 !important;
  background: rgba(57,255,20,.92) !important;
  border-color: rgba(57,255,20,.95) !important;

  box-shadow:
    0 0 0.9rem rgba(57,255,20,.24),
    0 0 1.7rem rgba(57,255,20,.14) !important;
}

/* Falls dein Theme Link-Zustände (visited/hover) überschreibt: ebenfalls fixen */
.ns-bottomnav .ns-bottomnav__inner .ns-bottomnav__chips a.ns-bottomnav__link.is-active:visited,
.ns-bottomnav .ns-bottomnav__inner .ns-bottomnav__chips a.ns-bottomnav__link[aria-current="page"]:visited,
.ns-bottomnav .ns-bottomnav__inner .ns-bottomnav__chips a.ns-bottomnav__link.is-active:hover,
.ns-bottomnav .ns-bottomnav__inner .ns-bottomnav__chips a.ns-bottomnav__link[aria-current="page"]:hover{
  color: #000000 !important;
}




.ns-trendbar{
  display:flex;
  align-items:center;
  gap: .9rem;
  flex-wrap:wrap;
}

.ns-trendbar__spark{
  display:flex;
  flex-direction:column;
  gap:.25rem;
}

.ns-trendbar__spark-sub{
  font-size:.78rem;
  opacity:.65;
  padding-left:.15rem;
}

canvas.ns-trend{
  --ns-trend-stroke: rgba(57,255,20,.92);
  --ns-trend-dot: rgba(57,255,20,1);
  --ns-trend-grid: rgba(255,255,255,.06);
  --ns-trend-base: rgba(255,255,255,.05);

  border: 1px solid rgba(57,255,20,.18);
  border-radius: 14px;
  background: rgba(0,0,0,.14);
}


.ns-trendbar__main{
  display:flex;
  align-items:center;
  gap:.9rem;
  flex-wrap:wrap;
}

/* Stat (statt "Bestand"-Chip) */
.ns-stat{
  display:flex;
  flex-direction:column;
  line-height:1.05;
  padding:.15rem .05rem;
  min-width: 8.5rem;
}
.ns-stat__label{
  font-size:.8rem;
  opacity:.7;
}
.ns-stat__value{
  font-size:1.35rem;
  font-weight:800;
  letter-spacing:.2px;
}

/* Chips kompakter */
.ns-trendbar__chips{
  display:flex;
  gap:.4rem;
  flex-wrap:wrap;
  align-items:center;
}

.ns-chip{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.16rem .48rem;
  border-radius: 999px;
  border: 1px solid rgba(57,255,20,.22);
  background: rgba(0,0,0,.18);
  font-size: .82rem;
  line-height: 1.2;
  white-space: nowrap;
}

.ns-chip--plus{
  border-color: rgba(57,255,20,.32);
  background: rgba(57,255,20,.10);
}

.ns-chip--minus{
  border-color: rgba(255,90,90,.28);
  background: rgba(255,90,90,.10);
}

/* Churn/Volatilität-Skala */
.ns-chip--muted{
  border-color: rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
}
.ns-chip--neutral{
  border-color: rgba(120,160,255,.22);
  background: rgba(120,160,255,.10);
}
.ns-chip--amber{
  border-color: rgba(255,190,80,.26);
  background: rgba(255,190,80,.10);
}
.ns-chip--danger{
  border-color: rgba(255,90,90,.30);
  background: rgba(255,90,90,.12);
}

.ns-sparkwrap{
  position: relative;
  display: inline-block;
}

.ns-sparkaxis{
  position:absolute;
  right: .35rem;
  top: .35rem;
  bottom: .35rem;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  pointer-events:none;
  font-size:.72rem;
  opacity:.72;
}

.ns-sparkaxis__max,
.ns-sparkaxis__min{
  background: rgba(0,0,0,.25);
  padding: .08rem .28rem;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.10);
}












html { scroll-behavior: smooth; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

@keyframes nsAnchorFlash {
  0%   { box-shadow: 0 0 0 rgba(57,255,20,0); }
  30%  { box-shadow: 0 0 0.9rem rgba(57,255,20,.25); }
  100% { box-shadow: 0 0 0 rgba(57,255,20,0); }
}

.ns-anchor-flash {
  animation: nsAnchorFlash 700ms ease-out;
}


/* === NSD State Landing CTA/Nav Fix 20260623-173000 === */
body.nsd.page-csv-collection .ns-state-discover{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:.45rem .65rem;
  margin:.55rem 0 1rem;
  padding:.48rem .62rem;
  border:1px solid rgba(0,255,150,.13);
  border-radius:14px;
  background:rgba(0,0,0,.16);
  box-shadow:none;
}

body.nsd.page-csv-collection .ns-state-discover__label{
  flex:0 0 auto;
  font-weight:700;
  font-size:.92rem;
  color:rgba(238,255,248,.90);
  line-height:1.3;
  margin-right:.12rem;
}

body.nsd.page-csv-collection .ns-state-discover__links{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.32rem;
  min-width:0;
}

body.nsd.page-csv-collection .ns-state-discover__link{
  display:inline-flex;
  align-items:center;
  min-height:1.8rem;
  padding:.22rem .52rem;
  border:1px solid rgba(0,255,150,.18);
  border-radius:999px;
  color:rgba(0,255,170,.90);
  background:rgba(0,255,150,.035);
  text-decoration:none;
  font-size:.88rem;
  line-height:1.2;
  transition:border-color .15s ease, background-color .15s ease, color .15s ease;
}

body.nsd.page-csv-collection .ns-state-discover__link:hover,
body.nsd.page-csv-collection .ns-state-discover__link:focus-visible{
  border-color:rgba(0,255,150,.34);
  background:rgba(0,255,150,.075);
  color:rgba(230,255,246,.98);
}

body.nsd.page-csv-collection .ns-state-discover__link--primary{
  border-color:rgba(0,255,150,.26);
  background:rgba(0,255,150,.055);
}

body.nsd.page-csv-collection .ns-state-discover__link--disabled{
  opacity:.45;
  cursor:default;
  pointer-events:none;
  color:rgba(210,230,224,.62);
  border-color:rgba(210,230,224,.12);
  background:rgba(255,255,255,.025);
}

@media (max-width: 680px){
  body.nsd.page-csv-collection .ns-state-discover{
    align-items:flex-start;
    padding:.52rem .58rem;
  }
  body.nsd.page-csv-collection .ns-state-discover__label{
    width:100%;
  }
  body.nsd.page-csv-collection .ns-state-discover__link{
    font-size:.84rem;
    min-height:1.72rem;
    padding:.2rem .48rem;
  }
}

/* NSD State Landing CTA/Nav Fix v2 20260623-184500
   V2 keeps the compact state discover bar styling and pairs it with robust NRW CTA labels. */


/* === NSD Homepage Ranking/Trust/Discover UI Fix 20260623-203000 ===
   Ruhigere Start-/Szene-Landingpages: Ranking als klickbares Entdeckungsmodul,
   positiver Datenhinweis, dezente Segment-Navigation. */

body.nsd.page-csv-collection .ns-kpi__hint--trust{
  color: rgba(225,245,238,.78);
  border-color: rgba(255,255,255,.08);
  background: rgba(255,255,255,.025);
}

body.nsd.page-csv-collection .ns-kpi--ranking .ns-ranking--table{
  --ns-rank-cols: 1.3rem minmax(0,1fr) 5.1rem 2.8rem 1.05rem;
  --ns-rank-gap: .35rem;
}

body.nsd.page-csv-collection .ns-kpi--ranking .ns-ranking__head{
  opacity: .66;
  font-size: .72rem;
  letter-spacing: .075em;
  text-transform: uppercase;
  color: rgba(225,245,238,.62);
  background: transparent !important;
  border-bottom-color: rgba(255,255,255,.055) !important;
}

body.nsd.page-csv-collection .ns-kpi--ranking .ns-ranking__row{
  cursor: pointer;
  padding-right: .08rem;
  transition: background-color .16s ease, box-shadow .16s ease, color .16s ease;
}

body.nsd.page-csv-collection .ns-kpi--ranking .ns-ranking__row:hover{
  background: rgba(57,255,20,.05) !important;
  box-shadow: inset 2px 0 0 rgba(57,255,20,.26) !important;
}

body.nsd.page-csv-collection .ns-kpi--ranking .ns-ranking__row:hover .ns-ranking__state,
body.nsd.page-csv-collection .ns-kpi--ranking .ns-ranking__row:focus-within .ns-ranking__state{
  color: rgba(183,255,203,.98);
}

body.nsd.page-csv-collection .ns-kpi--ranking .ns-ranking__h--more,
body.nsd.page-csv-collection .ns-kpi--ranking .ns-ranking__more{
  text-align: right;
}

body.nsd.page-csv-collection .ns-kpi--ranking .ns-ranking__more{
  color: rgba(151,255,183,.46);
  font-size: 1.16rem;
  line-height: 1;
  transition: color .16s ease, transform .16s ease;
}

body.nsd.page-csv-collection .ns-kpi--ranking .ns-ranking__row:hover .ns-ranking__more,
body.nsd.page-csv-collection .ns-kpi--ranking .ns-ranking__row:focus-within .ns-ranking__more{
  color: rgba(151,255,183,.86);
  transform: translateX(2px);
}

@media (max-width: 520px){
  body.nsd.page-csv-collection .ns-kpi--ranking .ns-ranking--table{
    --ns-rank-cols: 1.1rem minmax(0,1fr) 4.4rem 2.55rem .85rem;
    --ns-rank-gap: .25rem;
  }
  body.nsd.page-csv-collection .ns-kpi--ranking .ns-ranking__more{
    font-size: 1.02rem;
  }
}

body.nsd.page-csv-collection .ns-state-discover{
  gap:.36rem .7rem;
  margin:.35rem 0 1rem;
  padding:.42rem 0 .56rem;
  border:0;
  border-top:1px solid rgba(255,255,255,.075);
  border-bottom:1px solid rgba(255,255,255,.055);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

body.nsd.page-csv-collection .ns-state-discover__label{
  font-size:.86rem;
  font-weight:700;
  letter-spacing:.015em;
  color:rgba(231,247,241,.82);
  margin-right:.18rem;
}

body.nsd.page-csv-collection .ns-state-discover__links{
  gap:0;
}

body.nsd.page-csv-collection .ns-state-discover__link{
  min-height:auto;
  padding:.08rem 0;
  border:0;
  border-radius:0;
  background:transparent;
  color:rgba(214,236,228,.72);
  font-size:.85rem;
  line-height:1.35;
  text-decoration:none;
}

body.nsd.page-csv-collection .ns-state-discover__link + .ns-state-discover__link::before,
body.nsd.page-csv-collection .ns-state-discover__link + .ns-state-discover__link--disabled::before,
body.nsd.page-csv-collection .ns-state-discover__link--disabled + .ns-state-discover__link::before{
  content:"·";
  display:inline-block;
  margin:0 .46rem;
  color:rgba(214,236,228,.34);
}

body.nsd.page-csv-collection .ns-state-discover__link:hover,
body.nsd.page-csv-collection .ns-state-discover__link:focus-visible{
  color:rgba(178,255,201,.95);
  background:transparent;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:.18em;
}

body.nsd.page-csv-collection .ns-state-discover__link--primary{
  border:0;
  background:transparent;
  color:rgba(177,255,202,.84);
  font-weight:700;
}

body.nsd.page-csv-collection .ns-state-discover__link--disabled{
  opacity:.38;
  color:rgba(214,236,228,.55);
  border:0;
  background:transparent;
}

@media (max-width: 680px){
  body.nsd.page-csv-collection .ns-state-discover{
    padding:.44rem 0 .58rem;
  }
  body.nsd.page-csv-collection .ns-state-discover__label{
    width:100%;
    margin-bottom:.06rem;
  }
  body.nsd.page-csv-collection .ns-state-discover__link{
    font-size:.84rem;
    padding:.08rem 0;
    min-height:auto;
  }
}


/* === NSD State Landingpage Dedupe Layout Fix 20260623-213000 ===
   Bundeslandseiten: Entdecken-Leiste direkt nach Hero, KPIs ohne zweiten Introblock. */
body.nsd.page-csv-collection .ns-state-kpis{
  margin-top: .15rem;
}

body.nsd.page-csv-collection .ns-state-kpi-heading{
  margin: .15rem 0 .72rem;
}

body.nsd.page-csv-collection .ns-state-kpi-heading h2{
  margin: 0;
  font-size: clamp(1.02rem, 1vw, 1.22rem);
  line-height: 1.25;
  font-weight: 750;
  letter-spacing: .01em;
  color: rgba(232,249,243,.82);
}

body.nsd.page-csv-collection .ns-state-kpis #overview.ns-kpi-layout{
  margin-top: 0;
}

@media (max-width: 680px){
  body.nsd.page-csv-collection .ns-state-kpi-heading{
    margin-top: .05rem;
    margin-bottom: .62rem;
  }
}

/* === NSD Ranking/Discover Typography Fine Tune 20260623-220000 ===
   Reiner UI-Feinschliff: Ranking-Titel leiser, Entdecken-Leiste typografisch ruhiger.
   Keine Routen, Daten, Templates oder Klickziele geändert. */

/* Ranking-Kopf innerhalb der KPI-Karte leiser als die großen Zahlen links darstellen. */
body.nsd.page-csv-collection .ns-kpi--ranking .ns-kpi__label{
  margin-bottom:.24rem;
  font-size:.68rem;
  line-height:1.22;
  letter-spacing:.13em;
  color:rgba(225,245,238,.54);
  opacity:1;
}

body.nsd.page-csv-collection .ns-kpi--ranking .ns-kpi__value{
  margin-bottom:.12rem;
  font-size:clamp(1rem,1.05vw,1.18rem);
  font-weight:760;
  line-height:1.18;
  color:rgba(181,255,205,.80);
  gap:.45rem;
}

body.nsd.page-csv-collection .ns-kpi--ranking .ns-kpi__unit{
  font-size:1em;
  font-weight:760;
  letter-spacing:.005em;
  color:inherit;
}

body.nsd.page-csv-collection .ns-kpi--ranking .ns-kpi__meta{
  margin-top:.04rem;
  font-size:.76rem;
  line-height:1.25;
  color:rgba(225,245,238,.56);
  opacity:1;
}

body.nsd.page-csv-collection .ns-kpi--ranking .ns-ranking--table{
  margin-top:.52rem;
}

body.nsd.page-csv-collection .ns-kpi--ranking .ns-ranking__head{
  font-size:.68rem;
  line-height:1.2;
  letter-spacing:.07em;
  color:rgba(225,245,238,.50);
  opacity:1;
}

/* Entdecken-Leiste: von Chip-Leiste zu ruhiger Segment-/Textnavigation. */
body.nsd.page-csv-collection .ns-state-discover{
  align-items:baseline;
  gap:.32rem 1.05rem;
  margin:.32rem 0 .86rem;
  padding:.30rem 0 .42rem;
  border-top:1px solid rgba(255,255,255,.052);
  border-bottom:1px solid rgba(255,255,255,.030);
  background:transparent;
}

body.nsd.page-csv-collection .ns-state-discover__label{
  font-size:.80rem;
  line-height:1.35;
  font-weight:650;
  letter-spacing:.025em;
  color:rgba(235,250,244,.74);
  margin:0;
}

body.nsd.page-csv-collection .ns-state-discover__links{
  align-items:baseline;
  gap:0;
  line-height:1.35;
}

body.nsd.page-csv-collection .ns-state-discover__link{
  min-height:auto;
  padding:.02rem 0;
  font-size:.83rem;
  line-height:1.35;
  font-weight:500;
  color:rgba(220,238,231,.66);
  text-decoration:none;
  text-decoration-thickness:1px;
  text-underline-offset:.22em;
}

body.nsd.page-csv-collection .ns-state-discover__link + .ns-state-discover__link::before,
body.nsd.page-csv-collection .ns-state-discover__link + .ns-state-discover__link--disabled::before,
body.nsd.page-csv-collection .ns-state-discover__link--disabled + .ns-state-discover__link::before{
  margin:0 .50rem;
  color:rgba(220,238,231,.28);
}

body.nsd.page-csv-collection .ns-state-discover__link:hover,
body.nsd.page-csv-collection .ns-state-discover__link:focus-visible{
  color:rgba(172,255,201,.90);
  background:transparent;
  outline:none;
  text-decoration:underline;
}

body.nsd.page-csv-collection .ns-state-discover__link--primary{
  color:rgba(175,255,204,.78);
  font-weight:650;
}

body.nsd.page-csv-collection .ns-state-discover__link--disabled{
  color:rgba(220,238,231,.42);
  opacity:1;
}

@media (max-width: 680px){
  body.nsd.page-csv-collection .ns-state-discover{
    display:block;
    margin:.28rem 0 .82rem;
    padding:.34rem 0 .44rem;
  }

  body.nsd.page-csv-collection .ns-state-discover__label{
    display:block;
    width:auto;
    margin:0 0 .16rem;
    font-size:.80rem;
  }

  body.nsd.page-csv-collection .ns-state-discover__links{
    display:flex;
    flex-wrap:wrap;
    row-gap:.10rem;
  }

  body.nsd.page-csv-collection .ns-state-discover__link{
    font-size:.83rem;
    padding:.02rem 0;
  }
}

/* -------------------------------------------------------------------------
   SEO-Linkbox subtle interlinking module (20260623-223000)
   Turns "Weitere Szene-Seiten" into a compact internal link navigation.
   ------------------------------------------------------------------------- */
body.nsd.page-csv-collection .ns-seo-links{
  margin-top: 1.45rem;
  margin-bottom: .6rem;
}

body.nsd.page-csv-collection .ns-seo-links .ns-hi-cta__card{
  border: 0;
  border-top: 1px solid rgba(255,255,255,.075);
  border-bottom: 1px solid rgba(255,255,255,.045);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  padding: .95rem 0 .45rem;
}

body.nsd.page-csv-collection .ns-seo-links .ns-hi-cta__meta{
  margin-bottom: .45rem;
}

body.nsd.page-csv-collection .ns-seo-links .ns-hi-cta__title{
  margin: 0 0 .18rem;
  color: rgba(238,255,248,.86);
  font-size: clamp(.94rem, 1.15vw, 1.04rem);
  line-height: 1.25;
  font-weight: 680;
  letter-spacing: .012em;
}

body.nsd.page-csv-collection .ns-seo-links .ns-hi-cta__text{
  margin: 0;
  color: rgba(226,236,232,.66);
  font-size: .9rem;
  line-height: 1.38;
}

body.nsd.page-csv-collection .ns-seo-links .ns-hi-cta__actions{
  margin-top: .65rem;
  padding-top: 0;
  border-top: 0;
  background: transparent;
  border-radius: 0;
}

body.nsd.page-csv-collection .ns-seo-links__group{
  display: grid;
  grid-template-columns: minmax(7.4rem, auto) 1fr;
  gap: .35rem .85rem;
  align-items: start;
  padding: .22rem 0;
}

body.nsd.page-csv-collection .ns-seo-links__group + .ns-seo-links__group{
  margin-top: .28rem;
}

body.nsd.page-csv-collection .ns-seo-links__group-title{
  color: rgba(226,236,232,.56);
  font-size: .78rem;
  line-height: 1.65;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body.nsd.page-csv-collection .ns-seo-links .ns-hi-cta__chips,
body.nsd.page-csv-collection .ns-seo-links__chips{
  display: flex;
  flex-wrap: wrap;
  gap: .08rem .2rem;
  padding: 0;
  margin: 0;
}

body.nsd.page-csv-collection .ns-seo-links .ns-hi-cta__chip,
body.nsd.page-csv-collection .ns-seo-links__chip{
  min-height: 0;
  padding: .14rem .3rem;
  border: 1px solid transparent;
  border-radius: .45rem;
  background: transparent;
  color: rgba(235,246,242,.76);
  font-size: .9rem;
  line-height: 1.42;
  font-weight: 520;
  text-decoration: none;
  opacity: 1;
  box-shadow: none;
  white-space: normal;
}

body.nsd.page-csv-collection .ns-seo-links .ns-hi-cta__chip::after,
body.nsd.page-csv-collection .ns-seo-links__chip::after{
  content: "·";
  margin-left: .38rem;
  color: rgba(226,236,232,.34);
  font-weight: 400;
}

body.nsd.page-csv-collection .ns-seo-links .ns-hi-cta__chip:last-child::after,
body.nsd.page-csv-collection .ns-seo-links__chip:last-child::after{
  content: "";
  margin-left: 0;
}

body.nsd.page-csv-collection .ns-seo-links .ns-hi-cta__chip:hover,
body.nsd.page-csv-collection .ns-seo-links .ns-hi-cta__chip:focus-visible,
body.nsd.page-csv-collection .ns-seo-links__chip:hover,
body.nsd.page-csv-collection .ns-seo-links__chip:focus-visible{
  color: rgba(0,255,150,.92);
  border-color: rgba(0,255,150,.18);
  background: rgba(0,255,150,.035);
}

body.nsd.page-csv-collection .ns-seo-links .ns-hi-cta__chip:focus-visible,
body.nsd.page-csv-collection .ns-seo-links__chip:focus-visible{
  outline: 2px solid rgba(0,255,150,.45);
  outline-offset: 2px;
}

body.nsd.page-csv-collection .ns-seo-links .ns-hi-cta__hint{
  margin: .45rem 0 0;
  padding: 0;
  color: rgba(226,236,232,.56);
  font-size: .84rem;
  line-height: 1.36;
}

@media (max-width: 680px){
  body.nsd.page-csv-collection .ns-seo-links .ns-hi-cta__card{
    padding: .8rem 0 .35rem;
  }
  body.nsd.page-csv-collection .ns-seo-links__group{
    grid-template-columns: 1fr;
    gap: .15rem;
  }
  body.nsd.page-csv-collection .ns-seo-links__group-title{
    font-size: .75rem;
    line-height: 1.35;
  }
  body.nsd.page-csv-collection .ns-seo-links .ns-hi-cta__chip,
  body.nsd.page-csv-collection .ns-seo-links__chip{
    padding: .15rem .18rem;
    font-size: .88rem;
  }
}

/* === NSD State Landing Visual Polish V17 Unified Section Headings 20260627-124500 ===
   Homepage/Deutschland- und Bundeslandseiten: zentrale Section-Heading-Klasse.
   Betroffen: in Zahlen, Highlights am Wochenende, Hotspots, Genre-Profil, Trend. */
body.nsd.page-csv-collection h2.ns-state-section-title,
body.nsd.page-csv-collection .ns-state-kpi-heading h2.ns-state-section-title,
body.nsd.page-csv-collection .ns-genreprofile__title.ns-state-section-title{
  margin: 0 0 .78rem;
  font-size: var(--nsd-type-section-size);
  line-height: var(--nsd-type-section-line);
  font-weight: var(--nsd-type-section-weight);
  letter-spacing: var(--nsd-type-section-tracking);
  color: var(--nsd-color-text);
}

body.nsd.page-csv-collection .ns-state-kpi-heading h2.ns-state-section-title{
  margin: 0;
}

body.nsd.page-csv-collection .ns-genreprofile__title.ns-state-section-title{
  margin: 0;
}

@media (max-width: 680px){
  body.nsd.page-csv-collection h2.ns-state-section-title,
  body.nsd.page-csv-collection .ns-state-kpi-heading h2.ns-state-section-title,
  body.nsd.page-csv-collection .ns-genreprofile__title.ns-state-section-title{
    font-size: clamp(1.13rem, 4.8vw, 1.42rem);
    line-height: 1.16;
  }
}

/* === NSD State Landing Visual Polish V18 Section Heading Spacing 20260627-130000 ===
   Bundesland-/Deutschland-Landingpages: einheitliche Heading-Typografie aus V17 behalten,
   aber Section-Abstände wieder sauber herstellen. Eventdetailseiten sind nicht betroffen. */
body.nsd.page-csv-collection #highlights.ns-section,
body.nsd.page-csv-collection .ns-hotspots-scope,
body.nsd.page-csv-collection #genre-profil.ns-section,
body.nsd.page-csv-collection #trend.ns-section{
  padding-top: var(--nsd-space-section);
}

body.nsd.page-csv-collection #highlights.ns-section > h2.ns-state-section-title,
body.nsd.page-csv-collection .ns-hotspots-scope > h2.ns-state-section-title,
body.nsd.page-csv-collection #genre-profil.ns-section > h2.ns-state-section-title,
body.nsd.page-csv-collection #trend.ns-section > h2.ns-state-section-title,
body.nsd.page-csv-collection .ns-genreprofile__head > h2.ns-genreprofile__title.ns-state-section-title{
  margin-top: 0;
  margin-bottom: var(--nsd-space-heading-after);
}

body.nsd.page-csv-collection .ns-state-kpis{
  padding-top: 0;
}

body.nsd.page-csv-collection .ns-state-kpi-heading h2.ns-state-section-title{
  margin: 0;
}

@media (max-width: 680px){
  body.nsd.page-csv-collection #highlights.ns-section,
  body.nsd.page-csv-collection .ns-hotspots-scope,
  body.nsd.page-csv-collection #genre-profil.ns-section,
  body.nsd.page-csv-collection #trend.ns-section{
    padding-top: 1.55rem;
  }

  body.nsd.page-csv-collection #highlights.ns-section > h2.ns-state-section-title,
  body.nsd.page-csv-collection .ns-hotspots-scope > h2.ns-state-section-title,
  body.nsd.page-csv-collection #genre-profil.ns-section > h2.ns-state-section-title,
  body.nsd.page-csv-collection #trend.ns-section > h2.ns-state-section-title,
  body.nsd.page-csv-collection .ns-genreprofile__head > h2.ns-genreprofile__title.ns-state-section-title{
    margin-bottom: .78rem;
  }
}
/* === /NSD State Landing Visual Polish V18 Section Heading Spacing === */

/* === NSD State Landing Visual Polish V19 Coverage FAQ 20260627-141500 ===
   Homepage/Deutschland- und Bundeslandseiten: Hinweis zur Abdeckung und FAQ
   an das vereinheitlichte Section-Heading-System aus V17/V18 anschliessen. */
body.nsd.page-csv-collection .ns-state-coverage-section,
body.nsd.page-csv-collection .ns-state-faq-section{
  margin-top: clamp(1.85rem, 2.6vw, 2.8rem);
}

body.nsd.page-csv-collection .ns-state-coverage-section{
  padding: clamp(1.05rem, 1.45vw, 1.35rem) clamp(1.05rem, 1.7vw, 1.55rem);
  border: 1px solid rgba(0,255,150,.13);
  border-radius: 1rem;
  background:
    radial-gradient(circle at 14% 0%, rgba(0,255,150,.07), transparent 35%),
    linear-gradient(145deg, rgba(14,28,22,.64), rgba(8,10,14,.80));
  box-shadow: 0 1.05rem 2.2rem rgba(0,0,0,.22);
}

body.nsd.page-csv-collection .ns-state-coverage-section h2.ns-state-section-title{
  margin-bottom: .62rem;
}

body.nsd.page-csv-collection .ns-state-coverage-section p,
body.nsd.page-csv-collection .ns-state-coverage-section li{
  color: rgba(226,236,232,.78);
  font-size: clamp(.94rem, .22vw + .88rem, 1.02rem);
  line-height: 1.55;
}

body.nsd.page-csv-collection .ns-state-coverage-section p{
  margin: .52rem 0 0;
}

body.nsd.page-csv-collection .ns-state-coverage-section ul,
body.nsd.page-csv-collection .ns-state-coverage-section ol{
  margin: .62rem 0 0;
  padding-left: 1.2rem;
}

body.nsd.page-csv-collection .ns-state-faq-section > h2.ns-state-section-title{
  margin-bottom: .82rem;
}

body.nsd.page-csv-collection .ns-state-faq-list{
  display: grid;
  gap: .62rem;
}

body.nsd.page-csv-collection .ns-state-faq{
  border: 1px solid rgba(255,255,255,.075);
  border-radius: .95rem;
  background: linear-gradient(145deg, rgba(18,18,22,.78), rgba(8,10,14,.82));
  overflow: hidden;
}

body.nsd.page-csv-collection .ns-state-faq summary{
  cursor: pointer;
  list-style: none;
  padding: .86rem 1rem;
  color: rgba(238,255,248,.90);
  font-weight: 760;
  line-height: 1.28;
}

body.nsd.page-csv-collection .ns-state-faq summary::-webkit-details-marker{
  display: none;
}

body.nsd.page-csv-collection .ns-state-faq summary::after{
  content: '+';
  float: right;
  margin-left: 1rem;
  color: rgba(0,255,150,.72);
  font-weight: 900;
}

body.nsd.page-csv-collection .ns-state-faq[open] summary::after{
  content: '–';
}

body.nsd.page-csv-collection .ns-state-faq p{
  margin: 0;
  padding: 0 1rem 1rem;
  color: rgba(226,236,232,.74);
  font-size: .96rem;
  line-height: 1.52;
}

body.nsd.page-csv-collection .ns-state-faq:hover,
body.nsd.page-csv-collection .ns-state-faq:focus-within{
  border-color: rgba(0,255,150,.20);
}

@media (max-width: 680px){
  body.nsd.page-csv-collection .ns-state-coverage-section,
  body.nsd.page-csv-collection .ns-state-faq-section{
    margin-top: 1.55rem;
  }

  body.nsd.page-csv-collection .ns-state-coverage-section{
    padding: 1rem;
    border-radius: .9rem;
  }

  body.nsd.page-csv-collection .ns-state-faq summary{
    padding: .78rem .9rem;
  }

  body.nsd.page-csv-collection .ns-state-faq p{
    padding: 0 .9rem .9rem;
  }
}
/* === /NSD State Landing Visual Polish V19 Coverage FAQ === */

/* === NSD State Landing Visual Polish V20 Coverage Spacing + Party Group Headings 20260627-150000 ===
   Feinschliff nach V17/V18/V19:
   - Hinweis zur Abdeckung bekommt wieder klaren Abstand zu den umliegenden Sektionen.
   - Bundesland-Ueberschriften auf der Party-/Cards-Seite nutzen dieselbe zentrale Heading-Basis. */
body.nsd.page-csv-collection .ns-state-coverage-section{
  margin-top: clamp(2.35rem, 3.2vw, 3.45rem) !important;
  margin-bottom: clamp(2.15rem, 2.7vw, 3.05rem) !important;
}

body.nsd.page-csv-collection .ns-state-coverage-section + .ns-state-faq-section,
body.nsd.page-csv-collection .ns-state-faq-section + .ns-state-coverage-section{
  margin-top: clamp(2.15rem, 2.9vw, 3.15rem) !important;
}

body.nsd.page-csv-collection .ns-state-coverage-section h2.ns-state-section-title{
  margin-top: 0 !important;
  margin-bottom: .82rem !important;
}

/* Partyseite: Bundesland-/Gruppenueberschriften zentral an Landingpage-Headings angleichen. */
body.nsd.page-csv-collection .csv-group .ns-csv-group-title,
.page-csv-collection .csv-group .ns-csv-group-title{
  display: block;
  margin: 0 0 clamp(.9rem, 1.35vw, 1.25rem) 0 !important;
  padding: 0 0 .42rem 0 !important;
  color: rgba(224, 255, 244, .92);
  font-size: clamp(1.08rem, .55vw + .96rem, 1.32rem);
  line-height: 1.12;
  font-weight: 820;
  letter-spacing: .18em;
  text-transform: uppercase;
  border-bottom: 1px solid rgba(0, 255, 150, .36);
  text-shadow: 0 0 16px rgba(0,255,150,.10);
}

body.nsd.page-csv-collection .csv-group--visible + .csv-group--visible,
.page-csv-collection .csv-group--visible + .csv-group--visible{
  margin-top: clamp(2.45rem, 3.3vw, 3.65rem) !important;
}

/* Compatibility: wenn ein altes Template noch nur nsd-section nutzt, weiterhin sauber halten. */
body.nsd.page-csv-collection .csv-group .nsd-section:not(.ns-csv-group-title),
.page-csv-collection .csv-group .nsd-section:not(.ns-csv-group-title){
  margin-bottom: clamp(.9rem, 1.35vw, 1.25rem) !important;
}

@media (max-width: 700px){
  body.nsd.page-csv-collection .ns-state-coverage-section{
    margin-top: 1.85rem !important;
    margin-bottom: 1.7rem !important;
  }

  body.nsd.page-csv-collection .csv-group .ns-csv-group-title,
  .page-csv-collection .csv-group .ns-csv-group-title{
    font-size: 1rem;
    letter-spacing: .15em;
    margin-bottom: .78rem !important;
    padding-bottom: .34rem !important;
  }

  body.nsd.page-csv-collection .csv-group--visible + .csv-group--visible,
  .page-csv-collection .csv-group--visible + .csv-group--visible{
    margin-top: 2.05rem !important;
  }
}
/* === /NSD State Landing Visual Polish V20 Coverage Spacing + Party Group Headings === */

/* === NSD State Landing Visual Polish V21 Hotspots Ranking Table Style 20260627-170000 ===
   Top-Städte und Top-Clubs optisch an die Ranking-der-Bundesländer-Tabelle angleichen.
   Scope: nur Deutschland-/Bundesland-Landingpages, nur Hotspots-Karten. */
body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking{
  border:1px solid rgba(255,255,255,.10) !important;
  border-radius:.9rem !important;
  background:
    radial-gradient(circle at 0 100%, rgba(57,255,20,.055), transparent 42%),
    linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.012)) !important;
  box-shadow:0 18px 34px rgba(0,0,0,.25) !important;
  overflow:hidden;
}

body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-kpi__label{
  margin-bottom:.24rem !important;
  font-size:.68rem !important;
  line-height:1.22 !important;
  letter-spacing:.13em !important;
  text-transform:uppercase !important;
  color:rgba(225,245,238,.54) !important;
  opacity:1 !important;
}

body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-kpi__value{
  margin-bottom:.12rem !important;
  font-size:clamp(1rem,1.05vw,1.18rem) !important;
  font-weight:760 !important;
  line-height:1.18 !important;
  letter-spacing:.005em !important;
  color:rgba(181,255,205,.80) !important;
  gap:.45rem !important;
}

body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-kpi__unit{
  font-size:1em !important;
  font-weight:760 !important;
  letter-spacing:.005em !important;
  color:inherit !important;
}

body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-kpi__meta{
  margin-top:.04rem !important;
  font-size:.76rem !important;
  line-height:1.25 !important;
  color:rgba(225,245,238,.56) !important;
  opacity:1 !important;
}

body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking--table{
  margin-top:.52rem !important;
  --ns-rank-cols:1.3rem minmax(0,1fr) 4.4rem 1.05rem;
  --ns-rank-gap:.35rem;
  --ns-hot-cols:var(--ns-rank-cols);
  --ns-hot-gap:var(--ns-rank-gap);
}

body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__head,
body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__row{
  display:grid !important;
  grid-template-columns:var(--ns-rank-cols) !important;
  column-gap:var(--ns-rank-gap) !important;
  align-items:center !important;
}

body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__head{
  margin:0 0 .34rem !important;
  padding:.44rem .58rem .48rem !important;
  border-radius:0 !important;
  background:rgba(0,0,0,.30) !important;
  font-size:.68rem !important;
  line-height:1.2 !important;
  letter-spacing:.07em !important;
  text-transform:uppercase !important;
  color:rgba(225,245,238,.50) !important;
  opacity:1 !important;
}

body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__row,
body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__rowlink{
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
  background-image:none !important;
}

body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__row::before,
body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__row::after{
  content:none !important;
}

body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__row{
  position:relative !important;
  min-height:2.65rem !important;
  padding:.54rem .58rem !important;
  border-radius:.55rem !important;
  background:transparent !important;
  color:rgba(225,245,238,.82) !important;
  opacity:1 !important;
}

body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__row:not(:last-child){
  border-bottom:1px solid rgba(255,255,255,.07) !important;
}

body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__row:nth-child(even){
  background:rgba(255,255,255,.015) !important;
}

body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__row:hover,
body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__row:focus-within{
  background:rgba(255,255,255,.025) !important;
}

body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__rank,
body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__name,
body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__count,
body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__delta{
  color:rgba(225,245,238,.82) !important;
  opacity:1 !important;
}

body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__rank,
body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__h--rank{
  text-align:right !important;
  padding-right:.35rem !important;
  color:rgba(225,245,238,.70) !important;
}

body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__state{
  color:rgba(240,250,246,.84) !important;
  font-weight:500 !important;
}

body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-muted{
  color:rgba(158,176,184,.78) !important;
}

body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__h--delta,
body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__delta{
  justify-self:end !important;
  text-align:right !important;
  padding-right:0 !important;
}

body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-badge--num{
  min-width:2.0rem !important;
  padding:.10rem .46rem !important;
  border-radius:.55rem !important;
  border:1px solid rgba(57,255,20,.20) !important;
  background:rgba(57,255,20,.08) !important;
  color:rgba(216,255,225,.88) !important;
  font-size:.80rem !important;
  font-weight:760 !important;
  line-height:1.1 !important;
}

body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__h--more,
body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__more{
  justify-self:end !important;
  text-align:right !important;
  color:rgba(57,255,20,.42) !important;
  opacity:1 !important;
}

body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__more{
  font-size:1.1rem !important;
  line-height:1 !important;
  transform:translateX(-.05rem) !important;
  transition:transform 160ms ease, color 160ms ease !important;
}

body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__row:hover .ns-ranking__more,
body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__row:focus-within .ns-ranking__more{
  color:rgba(57,255,20,.72) !important;
  transform:translateX(.05rem) !important;
}

@media (max-width:760px){
  body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking--table{
    --ns-rank-cols:1.05rem minmax(0,1fr) 3.35rem .85rem;
    --ns-rank-gap:.28rem;
  }
  body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__head,
  body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__row{
    padding-left:.45rem !important;
    padding-right:.45rem !important;
  }
  body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-kpi__value{
    font-size:1.02rem !important;
  }
}


/* NSD Genre-Profil UX Polish 20260628-230000 */
.ns-genreprofile--ux{
  position:relative;
}
.ns-genreprofile__head--ux{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:.85rem;
}
.ns-genreprofile__basis{
  margin:.25rem 0 0;
  opacity:.78;
  font-size:.95rem;
}
.ns-genreprofile__interpretation{
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  padding:.85rem 1rem;
  margin:.75rem 0 1rem;
  background:rgba(255,255,255,.035);
}
.ns-genreprofile__interpretation strong{
  display:block;
  margin-bottom:.2rem;
  font-size:1.05rem;
}
.ns-genreprofile__interpretation span{
  display:block;
  opacity:.86;
}
.ns-genreprofile__subtitle{
  margin:0 0 .55rem;
  font-size:1rem;
}
.ns-genreprofile__ranklist{
  display:grid;
  gap:.45rem;
}
.ns-genreprofile__rankrow{
  display:grid;
  grid-template-columns:minmax(8rem, 1fr) auto minmax(7rem, 34%);
  align-items:center;
  gap:.75rem;
  padding:.55rem .65rem;
  border:1px solid rgba(255,255,255,.10);
  border-radius:12px;
  background:rgba(255,255,255,.025);
  text-decoration:none;
}
a.ns-genreprofile__rankrow:hover,
a.ns-genreprofile__rankrow:focus{
  border-color:rgba(131,255,120,.40);
  background:rgba(131,255,120,.055);
}
.ns-genreprofile__rankname{
  font-weight:700;
}
.ns-genreprofile__rankpct{
  font-variant-numeric:tabular-nums;
  opacity:.88;
  white-space:nowrap;
}
.ns-genreprofile__meter{
  display:block;
  height:.45rem;
  border-radius:999px;
  overflow:hidden;
  background:rgba(255,255,255,.10);
}
.ns-genreprofile__meter > span{
  display:block;
  width:var(--w, 0%);
  max-width:100%;
  min-width:.18rem;
  height:100%;
  border-radius:inherit;
  background:rgba(131,255,120,.70);
}
.ns-genreprofile__list--ux{
  display:grid;
  gap:.25rem;
  margin-top:.5rem;
}
.ns-genreprofile__detailrow{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:baseline;
}
.ns-genreprofile__detailrow span{
  opacity:.78;
  text-align:right;
}
.ns-genreprofile--club{
  margin-top:1.5rem;
}
@media (max-width: 720px){
  .ns-genreprofile__rankrow{
    grid-template-columns:1fr auto;
  }
  .ns-genreprofile__meter{
    grid-column:1 / -1;
  }
  .ns-genreprofile__head--ux{
    display:block;
  }
}


/* NSD Genre-Profil UI Polish V2 20260629-003000 START */
.ns-genreprofile--ui-v2{
  padding:clamp(1rem, 2vw, 1.25rem) !important;
}
.ns-genreprofile--ui-v2 .ns-genreprofile__head--ui-v2{
  display:block;
  margin-bottom:.55rem;
}
.ns-genreprofile--ui-v2 .ns-genreprofile__title{
  margin-bottom:.25rem;
}
.ns-genreprofile--ui-v2 .ns-genreprofile__basis{
  margin:.15rem 0 0;
  color:rgba(255,255,255,.72);
  font-size:.92rem;
  line-height:1.4;
}
.ns-genreprofile--ui-v2 .ns-genreprofile__summary{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:.22rem .38rem;
  margin:.55rem 0 .85rem;
  color:rgba(255,255,255,.84);
  font-size:.96rem;
  line-height:1.45;
}
.ns-genreprofile--ui-v2 .ns-genreprofile__summary strong{
  color:rgba(255,255,255,.96);
  font-weight:800;
}
.ns-genreprofile--ui-v2 .ns-genreprofile__summary-sep{
  color:rgba(255,255,255,.42);
}
.ns-genreprofile--ui-v2 .ns-genreprofile__top{
  margin-top:.1rem;
}
.ns-genreprofile--ui-v2 .ns-genreprofile__subtitle{
  margin:0 0 .42rem;
  color:rgba(255,255,255,.62);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.035em;
  line-height:1.2;
  text-transform:uppercase;
}
.ns-genreprofile--ui-v2 .ns-genreprofile__chips--compact{
  display:flex;
  flex-wrap:wrap;
  gap:.42rem;
}
.ns-genreprofile--ui-v2 .ns-genreprofile__chip--compact{
  display:inline-flex;
  align-items:baseline;
  gap:.38rem;
  min-height:0;
  padding:.34rem .62rem;
  border:1px solid rgba(255,255,255,.11);
  border-radius:999px;
  background:rgba(255,255,255,.045);
  color:rgba(255,255,255,.9);
  font-size:.88rem;
  line-height:1.15;
  text-decoration:none;
  box-shadow:none;
  transition:background .16s ease, border-color .16s ease, transform .16s ease;
}
.ns-genreprofile--ui-v2 a.ns-genreprofile__chip--compact:hover{
  border-color:rgba(131,255,120,.34);
  background:rgba(131,255,120,.07);
  transform:translateY(-1px);
}
.ns-genreprofile--ui-v2 a.ns-genreprofile__chip--compact:focus-visible{
  outline:2px solid rgba(131,255,120,.76);
  outline-offset:2px;
}
.ns-genreprofile--ui-v2 .ns-genreprofile__chip-name{
  font-weight:750;
}
.ns-genreprofile--ui-v2 .ns-genreprofile__chip-value{
  color:rgba(255,255,255,.68);
  font-size:.82em;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.ns-genreprofile--ui-v2 .ns-genreprofile__details--v2{
  margin-top:.75rem;
}
.ns-genreprofile--ui-v2 .ns-genreprofile__details--v2 > summary{
  display:inline-flex;
  align-items:center;
  color:rgba(255,255,255,.72);
  cursor:pointer;
  font-size:.9rem;
  font-weight:700;
}
.ns-genreprofile--ui-v2 .ns-genreprofile__details--v2 > summary:hover,
.ns-genreprofile--ui-v2 .ns-genreprofile__details--v2 > summary:focus-visible{
  color:rgba(131,255,120,.86);
}
.ns-genreprofile--ui-v2 .ns-genreprofile__details--v2 > summary:focus-visible{
  outline:2px solid rgba(131,255,120,.76);
  outline-offset:3px;
  border-radius:.35rem;
}
.ns-genreprofile--ui-v2 .ns-genreprofile__detail-list{
  display:grid;
  gap:.35rem;
  margin-top:.65rem;
}
.ns-genreprofile--ui-v2 .ns-genreprofile__detail-row{
  display:grid;
  grid-template-columns:minmax(7rem, 1fr) auto minmax(5rem, 10rem) minmax(8rem, auto);
  align-items:center;
  gap:.55rem;
  padding:.32rem 0;
  border-top:1px solid rgba(255,255,255,.065);
  font-size:.9rem;
}
.ns-genreprofile--ui-v2 .ns-genreprofile__detail-name{
  color:rgba(255,255,255,.88);
  font-weight:700;
  text-decoration:none;
}
.ns-genreprofile--ui-v2 a.ns-genreprofile__detail-name:hover,
.ns-genreprofile--ui-v2 a.ns-genreprofile__detail-name:focus-visible{
  color:rgba(131,255,120,.86);
}
.ns-genreprofile--ui-v2 a.ns-genreprofile__detail-name:focus-visible{
  outline:2px solid rgba(131,255,120,.76);
  outline-offset:2px;
  border-radius:.25rem;
}
.ns-genreprofile--ui-v2 .ns-genreprofile__detail-pct{
  color:rgba(255,255,255,.72);
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.ns-genreprofile--ui-v2 .ns-genreprofile__detail-bar{
  display:block;
  height:.36rem;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.08);
}
.ns-genreprofile--ui-v2 .ns-genreprofile__detail-bar > span{
  display:block;
  width:var(--w, 0%);
  max-width:100%;
  min-width:.16rem;
  height:100%;
  border-radius:inherit;
  background:rgba(131,255,120,.62);
}
.ns-genreprofile--ui-v2 .ns-genreprofile__detail-meta{
  color:rgba(255,255,255,.55);
  font-size:.84rem;
  text-align:right;
  white-space:nowrap;
}
.ns-genreprofile--ui-v2.ns-genreprofile--club,
.ns-genreprofile--ui-v2.ns-genreprofile--compact{
  margin-top:1.15rem;
}
.ns-genreprofile--ui-v2.ns-genreprofile--compact .ns-genreprofile__chip--compact{
  font-size:.84rem;
  padding:.3rem .55rem;
}
@media (max-width: 760px){
  .ns-genreprofile--ui-v2 .ns-genreprofile__detail-row{
    grid-template-columns:1fr auto;
    gap:.35rem .55rem;
  }
  .ns-genreprofile--ui-v2 .ns-genreprofile__detail-bar{
    grid-column:1 / -1;
  }
  .ns-genreprofile--ui-v2 .ns-genreprofile__detail-meta{
    grid-column:1 / -1;
    text-align:left;
    white-space:normal;
  }
}
@media (max-width: 520px){
  .ns-genreprofile--ui-v2 .ns-genreprofile__chip--compact{
    font-size:.84rem;
  }
}
/* NSD Genre-Profil UI Polish V2 20260629-003000 END */


/* NSD Genre-Profil UI Polish V2 Left Align Fix 20260629-004500 START */
/*
   The V2 component is now editorial/transparent on landing pages. The outer
   component must not add horizontal padding, otherwise the Genre-Profil heading
   starts inside the page grid while neighbouring section headings start on the
   page grid edge.
*/
.ns-genreprofile--ui-v2.ns-genreprofile--landing{
  margin-left:0 !important;
  margin-right:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
  background:transparent !important;
  border-color:transparent !important;
  box-shadow:none !important;
}
.ns-genreprofile--ui-v2.ns-genreprofile--landing .ns-genreprofile__head--ui-v2,
.ns-genreprofile--ui-v2.ns-genreprofile--landing .ns-genreprofile__title,
.ns-genreprofile--ui-v2.ns-genreprofile--landing .ns-genreprofile__basis,
.ns-genreprofile--ui-v2.ns-genreprofile--landing .ns-genreprofile__summary,
.ns-genreprofile--ui-v2.ns-genreprofile--landing .ns-genreprofile__top,
.ns-genreprofile--ui-v2.ns-genreprofile--landing .ns-genreprofile__details--v2{
  margin-left:0 !important;
  margin-right:0 !important;
}
.ns-genreprofile--ui-v2.ns-genreprofile--landing .ns-genreprofile__chips--compact{
  padding-left:0 !important;
}
@media (max-width: 760px){
  .ns-genreprofile--ui-v2.ns-genreprofile--landing{
    padding-left:0 !important;
    padding-right:0 !important;
  }
}
/* NSD Genre-Profil UI Polish V2 Left Align Fix 20260629-004500 END */


/* NSD Genre-Profil UI Polish V2 Visited Link Fix 20260629-005500 START */
/*
   Keep visited genre links visually identical to unvisited genre links.
   Global :visited rules can otherwise turn already visited genre chips/details green.
*/
.ns-genreprofile--ui-v2 a.ns-genreprofile__chip--compact:visited,
.ns-genreprofile--ui-v2 a.ns-genreprofile__chip--compact:visited .ns-genreprofile__chip-name{
  color:rgba(255,255,255,.9) !important;
}
.ns-genreprofile--ui-v2 a.ns-genreprofile__chip--compact:visited .ns-genreprofile__chip-value{
  color:rgba(255,255,255,.68) !important;
}
.ns-genreprofile--ui-v2 a.ns-genreprofile__detail-name:visited{
  color:rgba(255,255,255,.88) !important;
}
.ns-genreprofile--ui-v2 a.ns-genreprofile__chip--compact:hover,
.ns-genreprofile--ui-v2 a.ns-genreprofile__chip--compact:focus-visible{
  color:rgba(255,255,255,.9) !important;
}
.ns-genreprofile--ui-v2 a.ns-genreprofile__chip--compact:hover .ns-genreprofile__chip-name,
.ns-genreprofile--ui-v2 a.ns-genreprofile__chip--compact:focus-visible .ns-genreprofile__chip-name{
  color:rgba(255,255,255,.96) !important;
}
.ns-genreprofile--ui-v2 a.ns-genreprofile__chip--compact:hover .ns-genreprofile__chip-value,
.ns-genreprofile--ui-v2 a.ns-genreprofile__chip--compact:focus-visible .ns-genreprofile__chip-value{
  color:rgba(255,255,255,.72) !important;
}
/* NSD Genre-Profil UI Polish V2 Visited Link Fix 20260629-005500 END */

/* NSD Mobile UI Polish 20260629-180000 / Page Frame Harmonization 20260629-191500 START
   Mobile-only: centered event-card date row; shared gutter lives in ns-page-frame.css.
   Desktop stays untouched; tag styling is intentionally not changed. */
@media (max-width: 767px) {
  /* NSD Mobile Gutter now comes from css/ns-page-frame.css via .ns-page-frame.
     Keep this block focused on eventcard date centering and overflow safety. */
  body.nsd.page-csv-collection .ns-intro,
  body.nsd.page-csv-collection .ns-toolbar,
  body.nsd.page-csv-collection .ns-card,
  body.nsd.page-csv-collection .ns-section,
  body.nsd.page-csv-collection .ns-state-coverage-section,
  body.nsd.page-csv-collection .ns-state-faq-section {
    box-sizing: border-box;
    max-width: 100%;
  }

  /* NSD Mobile Eventcard Date Center */
  body.nsd.page-csv-collection .ns-card-list .ns-card__date {
    width: 100%;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 0.42rem;
    margin-bottom: -0.35rem;
  }

  body.nsd.page-csv-collection .ns-card-list .ns-card__weekday,
  body.nsd.page-csv-collection .ns-card-list .ns-card__month,
  body.nsd.page-csv-collection .ns-card-list .ns-card__time {
    margin-bottom: 0;
    line-height: 1;
    white-space: nowrap;
  }

  body.nsd.page-csv-collection .ns-card-list .ns-card__day-badge {
    width: 45px;
    height: 45px;
    min-width: 45px;
    flex: 0 0 45px;
    margin-bottom: 0;
    font-size: 1.12rem;
  }
}
/* NSD Mobile UI Polish 20260629-180000 END */

/* =========================================================
   NSD Eventcard Share Icon Detail URL 20260629-203000
   Icon-only share button for eventcards. Shares only the internal detail URL.
   ========================================================= */

body.nsd.page-csv-collection .ns-card__link {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 0.45rem;
}

body.nsd.page-csv-collection .nsd-event-card-share {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

body.nsd.page-csv-collection .nsd-event-card-share-btn {
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  min-width: 2.35rem;
  height: 2.35rem;
  min-height: 2.35rem;
  padding: 0;
  border-radius: 999px;
  border: 1px solid var(--ns-cta-border, rgba(0, 255, 150, 0.58));
  background: var(--ns-cta-bg, rgba(0, 255, 150, 0.035));
  color: #00ff96;
  box-shadow: inset 0 0 0 1px rgba(0, 255, 150, 0.08);
  cursor: pointer;
  line-height: 1;
  text-decoration: none;
  transition: background 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease, opacity 160ms ease;
}

body.nsd.page-csv-collection .nsd-event-card-share-btn:hover {
  transform: translateY(-1px);
  border-color: var(--ns-cta-border-hover, rgba(0, 255, 150, 0.86));
  background: var(--ns-cta-bg-hover, rgba(0, 255, 150, 0.09));
  box-shadow: 0 0 0.9rem rgba(0, 255, 150, 0.12);
}

body.nsd.page-csv-collection .nsd-event-card-share-btn:focus-visible {
  outline: 2px solid rgba(0, 255, 150, 0.85);
  outline-offset: 2px;
}

body.nsd.page-csv-collection .nsd-event-card-share-btn[data-share-copied="1"] {
  opacity: 0.96;
}

body.nsd.page-csv-collection .nsd-event-card-share-btn[data-share-copied="1"] .nsd-share-icon {
  display: none;
}

body.nsd.page-csv-collection .nsd-event-card-share-btn[data-share-copied="1"]::before {
  content: "✓";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  font-size: 1rem;
  line-height: 1;
}

body.nsd.page-csv-collection .nsd-share-icon {
  width: 1.05rem;
  height: 1.05rem;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body.nsd.page-csv-collection .nsd-share-icon circle {
  fill: currentColor;
  stroke: none;
}

body.nsd.page-csv-collection .nsd-event-card-share-btn__label,
body.nsd.page-csv-collection .nsd-event-card-share__status {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

body.nsd.page-csv-collection .nsd-event-card-share__manual {
  position: absolute;
  right: 0;
  bottom: calc(100% + 0.45rem);
  z-index: 30;
  width: min(78vw, 22rem);
  padding: 0.7rem;
  border: 1px solid rgba(0, 255, 150, 0.32);
  border-radius: 0.85rem;
  background: rgba(3, 8, 14, 0.98);
  box-shadow: 0 0.85rem 2rem rgba(0, 0, 0, 0.55);
  color: #e5e7eb;
  text-align: left;
}

body.nsd.page-csv-collection .nsd-event-card-share__manual[hidden] {
  display: none !important;
}

body.nsd.page-csv-collection .nsd-event-card-share__manual label {
  display: block;
  margin: 0 0 0.35rem;
  color: #00ff96;
  font-size: 0.78rem;
  font-weight: 750;
}

body.nsd.page-csv-collection .nsd-event-card-share__manual input {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  border: 1px solid rgba(0, 255, 150, 0.28);
  border-radius: 0.55rem;
  background: rgba(0, 0, 0, 0.42);
  color: #f3f4f6;
  padding: 0.45rem 0.55rem;
  font: inherit;
  font-size: 0.8rem;
}

@media (max-width: 700px) {
  body.nsd.page-csv-collection .ns-card__link {
    gap: 0.42rem;
  }

  body.nsd.page-csv-collection .nsd-event-card-share-btn {
    width: 2.3rem;
    min-width: 2.3rem;
    height: 2.3rem;
    min-height: 2.3rem;
  }
}



/* =========================================================
   NSD Eventcards Consistent Card Logic 20260629-204500
   Shared card CTA / Share / DJ / Dresscode polish for party lists and nearby cards.
   ========================================================= */

body.nsd.page-csv-collection .ns-card__link {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 0.45rem;
}

body.nsd.page-csv-collection .nsd-event-card-share {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

body.nsd.page-csv-collection .nsd-event-card-share-btn {
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  min-width: 2.35rem;
  height: 2.35rem;
  min-height: 2.35rem;
  padding: 0;
  border-radius: 999px;
  border: 1px solid var(--ns-cta-border, rgba(0, 255, 150, 0.58));
  background: var(--ns-cta-bg, rgba(0, 255, 150, 0.035));
  color: #00ff96;
  font: inherit;
  line-height: 1;
  cursor: pointer;
  text-decoration: none;
  box-shadow: inset 0 0 0 1px rgba(0, 255, 150, 0.04), 0 0 14px rgba(0, 255, 150, 0.07);
}

body.nsd.page-csv-collection .nsd-event-card-share-btn:hover,
body.nsd.page-csv-collection .nsd-event-card-share-btn:focus-visible {
  border-color: rgba(0, 255, 150, 0.95);
  background: rgba(0, 255, 150, 0.12);
  box-shadow: 0 0 0 2px rgba(0, 255, 150, 0.12), 0 0 18px rgba(0, 255, 150, 0.18);
}

body.nsd.page-csv-collection .nsd-event-card-share-btn:focus-visible {
  outline: 2px solid rgba(0, 255, 150, 0.85);
  outline-offset: 3px;
}

body.nsd.page-csv-collection .nsd-event-card-share-btn[data-share-copied="1"] .nsd-share-icon {
  opacity: 0;
}

body.nsd.page-csv-collection .nsd-event-card-share-btn[data-share-copied="1"]::before {
  content: "✓";
  position: absolute;
  font-weight: 900;
  font-size: 1.05rem;
  line-height: 1;
}

body.nsd.page-csv-collection .nsd-share-icon {
  display: inline-block;
  width: 1.05rem;
  height: 1.05rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  pointer-events: none;
}

body.nsd.page-csv-collection .nsd-share-icon circle {
  fill: currentColor;
  stroke: none;
}

body.nsd.page-csv-collection .nsd-event-card-share-btn__label {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

body.nsd.page-csv-collection .nsd-event-card-share__status {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

body.nsd.page-csv-collection .nsd-event-card-share__manual {
  position: absolute;
  right: 0;
  top: calc(100% + 0.35rem);
  z-index: 15;
  width: min(18rem, 72vw);
  padding: 0.55rem;
  border: 1px solid rgba(0, 255, 150, 0.35);
  border-radius: 0.75rem;
  background: rgba(3, 7, 18, 0.96);
  color: #e5e7eb;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.35);
}

body.nsd.page-csv-collection .nsd-event-card-share__manual input {
  width: 100%;
  max-width: 100%;
  margin-top: 0.35rem;
  color: inherit;
  background: rgba(15, 23, 42, 0.75);
  border: 1px solid rgba(148, 163, 184, 0.4);
  border-radius: 0.45rem;
  padding: 0.35rem 0.45rem;
}

body.nsd.page-csv-collection .ns-card__djs,
body.nsd.page-csv-collection .ns-card__dresscode {
  max-width: 100%;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

body.nsd.page-csv-collection .ns-card__dresscode-text,
body.nsd.page-csv-collection .ns-card__dj-link {
  overflow-wrap: anywhere;
}

@media (max-width: 700px) {
  body.nsd.page-csv-collection .ns-card__link {
    justify-content: flex-end;
    gap: 0.38rem;
  }

  body.nsd.page-csv-collection .nsd-event-card-share-btn {
    width: 2.25rem;
    min-width: 2.25rem;
    height: 2.25rem;
    min-height: 2.25rem;
  }
}

/* NSD UI Template Polish Stage 4 Card Layout Mobile Polish 20260630
   Partylisten/Eventcards: mobile Aktionszeile, Share-Label, Genre-/DJ-/Dresscode-Umbruch.
   Additiv und strikt auf page-csv-collection gescoped. */
body.nsd.page-csv-collection .ns-card__link {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
}

body.nsd.page-csv-collection .ns-card__link .ns-card__cta,
body.nsd.page-csv-collection .ns-card__link .nsd-event-card-share-btn {
  flex: 0 0 auto;
  max-width: 100%;
}

body.nsd.page-csv-collection .nsd-event-card-share-btn__label {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

body.nsd.page-csv-collection .ns-card__genres,
body.nsd.page-csv-collection .ns-card__djs,
body.nsd.page-csv-collection .ns-card__dresscode {
  min-width: 0;
  overflow-wrap: anywhere;
}

body.nsd.page-csv-collection .ns-card__genres {
  flex-wrap: wrap;
}

body.nsd.page-csv-collection .ns-card__djs a,
body.nsd.page-csv-collection .ns-card__dresscode-text {
  overflow-wrap: anywhere;
}

@media (max-width: 640px) {
  body.nsd.page-csv-collection .ns-card__date {
    align-items: center;
    text-align: center;
  }

  body.nsd.page-csv-collection .ns-card__time {
    text-align: center;
  }

  body.nsd.page-csv-collection .ns-card__link {
    gap: 0.45rem;
  }
}

/* NSD UI Template Polish Stage 6 Eventcard Genre More Distance Layout 20260630-181500 */
body.nsd.page-csv-collection .ns-card__distance {
  margin-top: .2rem;
  margin-bottom: .7rem;
  font-size: .9rem;
  line-height: 1.35;
  opacity: .84;
}
body.nsd.page-csv-collection .ns-card__genres .ns-tag--more,
body.nsd.page-csv-collection .ns-release-card__genres .ns-tag--more {
  text-decoration: none;
  cursor: default;
  opacity: .82;
}
@media (max-width: 640px) {
  body.nsd.page-csv-collection .ns-card__distance {
    margin-top: .15rem;
    margin-bottom: .6rem;
  }
}

/* NSD UI Template Polish Stage 6 v2a Distance Placement Fix 20260630-190000 */
body.nsd.page-csv-collection .ns-card__date .ns-card__distance,
body.nsd.page-csv-collection .ns-card__date [class*="distance"] {
  display: none !important;
}
body.nsd.page-csv-collection .ns-card__content > .ns-card__distance {
  display: block;
}

/* NSD UI Template Polish Stage 7 Dresscode Single Line Clamp 20260630-200000 */
body.nsd.page-csv-collection .ns-card__dresscode {
  display: flex;
  flex-wrap: nowrap;
  align-items: baseline;
  gap: .35rem;
  min-width: 0;
  max-width: 100%;
}

body.nsd.page-csv-collection .ns-card__dresscode-label {
  flex: 0 0 auto;
  white-space: nowrap;
  margin-right: 0;
}

body.nsd.page-csv-collection .ns-card__dresscode-text {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  display: block;
}
/* NSD KPI CTA Stable Hitbox V1 20260713 START */
body.nsd.page-csv-collection .ns-kpi .ns-card__cta,
body.nsd.page-csv-collection .ns-kpi .ns-card__cta:hover,
body.nsd.page-csv-collection .ns-kpi .ns-card__cta:focus,
body.nsd.page-csv-collection .ns-kpi .ns-card__cta:focus-visible,
body.nsd.page-csv-collection .ns-kpi .ns-card__cta:active {
  transform: none;
  border-radius: 999px;
  text-decoration: none;
}

body.nsd.page-csv-collection .ns-kpi .ns-card__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.35rem;
  margin: 0;
  box-sizing: border-box;
  vertical-align: middle;
  line-height: 1;
  transition: background 160ms ease, border-color 160ms ease, box-shadow 160ms ease, color 160ms ease;
}

body.nsd.page-csv-collection .ns-kpi .ns-kpi__link {
  display: flex;
  align-items: center;
  min-height: 2.35rem;
}
/* NSD KPI CTA Stable Hitbox V1 20260713 END */


/* NSD DJ/Club Card Crosslinks V1 20260713
   Venue names in shared event cards link to generated club pages. */
body.nsd .ns-card__venue-link,
body.nsd .ns-card__venue-link:link,
body.nsd .ns-card__venue-link:visited {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid rgba(0,255,154,.28);
  transition: color .15s ease, border-color .15s ease;
}

body.nsd .ns-card__venue-link:hover,
body.nsd .ns-card__venue-link:focus-visible {
  color: var(--ns-accent, #00ff9a);
  border-bottom-color: currentColor;
  outline: none;
}


/* Nerdschmie.de Desktop Design Phase 5 – Homepage secondary polish only. */
@media (min-width: 701px) {
  body.nsd.page-csv-collection .ns-trendbar--summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--nsd-space-5);
    padding: var(--nsd-space-4) 0;
    border-top: 1px solid var(--nsd-border-subtle);
    border-bottom: 1px solid var(--nsd-border-subtle);
    background: transparent;
    box-shadow: none;
  }
  body.nsd.page-csv-collection .ns-trend-summary__value { margin: 0; color: var(--nsd-color-text); font-size: var(--nsd-type-lead-size); }
  body.nsd.page-csv-collection .ns-trend-summary__value strong { color: var(--nsd-color-accent); font-size: clamp(1.45rem, 2vw, 1.8rem); }
  body.nsd.page-csv-collection .ns-trend-summary__meta { display:flex; flex-wrap:wrap; gap:.25rem .55rem; margin:.35rem 0 0; color:var(--nsd-color-text-muted); font-size:var(--nsd-type-meta-size); }
  body.nsd.page-csv-collection .ns-trend-summary__meta .is-positive { color:var(--nsd-color-accent); }
  body.nsd.page-csv-collection .ns-trend-summary__meta .is-negative { color:#ff9c9c; }
  body.nsd.page-csv-collection .ns-trendbar__spark--secondary { opacity:.72; transform:scale(.9); transform-origin:right center; }
  body.nsd.page-csv-collection .ns-state-faq-list { gap: var(--nsd-space-2); }
  body.nsd.page-csv-collection .ns-state-faq { border-color:var(--nsd-border-subtle); border-radius:var(--nsd-radius-card); background:var(--nsd-color-surface); box-shadow:none; }
  body.nsd.page-csv-collection .ns-state-faq summary { padding:.72rem .9rem; color:var(--nsd-color-text); font-size:var(--nsd-type-body-size); font-weight:700; }
  body.nsd.page-csv-collection .ns-state-faq p { padding:0 .9rem .85rem; color:var(--nsd-color-text-body); font-size:var(--nsd-type-body-size); line-height:var(--nsd-type-body-line); }
  body.nsd.page-csv-collection .ns-state-faq summary:focus-visible { outline:var(--nsd-focus-width) solid var(--nsd-focus-color); outline-offset:calc(var(--nsd-focus-offset) * -1); }
}

/* Desktop Design Phase 8 – live homepage/directory density corrections. */
@media (min-width: 701px) {
  body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking {
    align-content: start;
  }
  body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking--table {
    margin-top: var(--nsd-space-2) !important;
  }
  body.nsd.page-csv-collection .ns-trendbar--summary {
    grid-template-columns: minmax(0, 1fr) minmax(15rem, 21rem);
    gap: var(--nsd-space-3);
    align-items: end;
    padding-block: var(--nsd-space-3);
  }
  body.nsd.page-csv-collection .ns-trendbar__spark--secondary {
    width: 100%;
    opacity: .78;
    transform: none;
  }
  body.nsd.page-csv-collection .ns-band-tile {
    min-height: 0 !important;
    padding-block: var(--nsd-space-3) !important;
  }
  body.nsd.page-csv-collection .ns-band-tile__cta {
    margin-top: var(--nsd-space-2) !important;
  }
  body.nsd.page-csv-collection .ns-band-tile__cta .ns-card__cta {
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--nsd-color-text-muted) !important;
    font-size: var(--nsd-type-meta-size) !important;
    font-weight: 600 !important;
  }
  body.nsd.page-csv-collection .ns-band-tile__cta .ns-card__cta:hover,
  body.nsd.page-csv-collection .ns-band-tile__cta .ns-card__cta:focus-visible { color: var(--nsd-color-accent) !important; }
  body.nsd.page-csv-collection .ns-card--festival .nsd-card-meta-line a { color: var(--nsd-color-text-muted); font-weight: 600; }
}

/* Nerdschmie.de Desktop Design Phase 8e – Hotspot ranking table cohesion live fix.
   Scope: state/country landing Hotspots only. Keep ranking data/markup unchanged. */
@media (min-width: 701px) {
  body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking {
    justify-content: flex-start !important;
    align-content: initial !important;
  }

  body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking--table {
    width: 100% !important;
    margin-top: var(--nsd-space-3) !important;
    gap: 0 !important;
    --ns-rank-cols: 1.55rem minmax(0, 1fr) 5rem;
    --ns-rank-gap: .55rem;
    --ns-hot-cols: var(--ns-rank-cols);
    --ns-hot-gap: var(--ns-rank-gap);
  }

  body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__head,
  body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__row {
    grid-template-columns: var(--ns-rank-cols) !important;
    column-gap: var(--ns-rank-gap) !important;
  }

  body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__head {
    margin: 0 !important;
    padding: .48rem .58rem !important;
    border-bottom: 1px solid var(--nsd-border-subtle) !important;
    border-radius: 0 !important;
  }

  body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__h--more {
    display: none !important;
  }

  body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__row {
    min-height: 0 !important;
    padding: .58rem !important;
    border-radius: 0 !important;
    background: transparent !important;
  }

  body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__row:nth-child(even) {
    background: transparent !important;
  }

  body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__row:not(:last-child) {
    border-bottom: 1px solid var(--nsd-border-subtle) !important;
  }

  body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__row:hover,
  body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__row:focus-within {
    background: rgba(255,255,255,.025) !important;
  }

  body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__delta,
  body.nsd.page-csv-collection .ns-hotspots-scope .ns-kpi--hotspot-ranking .ns-ranking__h--delta {
    justify-self: end !important;
    text-align: right !important;
  }

  body.nsd.page-csv-collection .ns-hotspots-scope .ns-hotspots-cityscene-v2 .ns-ranking__name .ns-muted {
    line-height: 1.35 !important;
  }
}
