/* NSD Party Event Detail Preview Generator 20260624-103000 */
.ns-event-detail {
  --event-line: rgba(255,255,255,.12);
  --event-muted: rgba(255,255,255,.68);
  --event-soft: rgba(255,255,255,.045);
  --event-green: rgba(129, 244, 164, .82);
  color: rgba(255,255,255,.92);
}

.ns-event-breadcrumb {
  display: flex;
  gap: .55rem;
  align-items: center;
  margin: 0 0 1rem;
  color: var(--event-muted);
  font-size: .92rem;
}
.ns-event-breadcrumb a { color: var(--event-green); text-decoration: none; }
.ns-event-breadcrumb a:hover { text-decoration: underline; }

.ns-event-hero {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.35fr);
  gap: clamp(1rem, 3vw, 2.4rem);
  padding: clamp(1rem, 3vw, 2.4rem);
  border: 1px solid var(--event-line);
  border-radius: 1.2rem;
  background: linear-gradient(135deg, rgba(20,20,24,.96), rgba(16,22,21,.88));
  box-shadow: 0 16px 40px rgba(0,0,0,.24);
}
.ns-event-hero__media {
  min-height: 220px;
  border-radius: .95rem;
  border: 1px solid rgba(255,255,255,.10);
  background:
    radial-gradient(circle at 25% 20%, rgba(119,255,168,.18), transparent 34%),
    radial-gradient(circle at 78% 76%, rgba(122,87,255,.20), transparent 38%),
    linear-gradient(135deg, rgba(14,14,18,.95), rgba(30,38,36,.82));
}
.ns-event-hero--image .ns-event-hero__media {
  background-image:
    linear-gradient(to bottom, rgba(0,0,0,.12), rgba(0,0,0,.58)),
    var(--ns-event-image);
  background-size: cover;
  background-position: center;
}
.ns-event-image-label,
.ns-event-preview-badge {
  display: inline-flex;
  width: fit-content;
  border: 1px solid rgba(129,244,164,.28);
  color: rgba(186,255,207,.86);
  border-radius: 999px;
  padding: .28rem .58rem;
  font-size: .78rem;
  letter-spacing: .02em;
  background: rgba(8,14,12,.55);
}
.ns-event-image-label { margin: .8rem; }
.ns-event-preview-badge { margin: 0 0 .85rem; }
.ns-event-hero h1 {
  margin: 0;
  font-size: clamp(2rem, 5vw, 4rem);
  line-height: .98;
  letter-spacing: -.045em;
}
.ns-event-subtitle {
  margin: .85rem 0 1.05rem;
  color: var(--event-muted);
  font-size: clamp(1rem, 1.7vw, 1.18rem);
}
.ns-event-chips,
.ns-event-discover-links,
.ns-event-features {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}
.ns-event-chip,
.ns-event-features span {
  border: 1px solid rgba(129,244,164,.20);
  border-radius: 999px;
  padding: .24rem .58rem;
  color: rgba(220,255,229,.88);
  background: rgba(129,244,164,.055);
  font-size: .86rem;
}
.ns-event-source-button {
  display: inline-flex;
  align-items: center;
  margin-top: 1.25rem;
  padding: .72rem 1rem;
  border-radius: .72rem;
  color: #07110a;
  background: rgba(129,244,164,.88);
  font-weight: 700;
  text-decoration: none;
}
.ns-event-source-button:hover { background: rgba(164,255,191,.96); }

.ns-event-detail section:not(.ns-event-hero) {
  margin-top: clamp(1.4rem, 3vw, 2.4rem);
}
.ns-event-detail h2 {
  margin: 0 0 .85rem;
  font-size: clamp(1.18rem, 2vw, 1.55rem);
  letter-spacing: -.02em;
}
.ns-event-glance-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: .65rem;
}
.ns-event-glance-card {
  min-width: 0;
  padding: .85rem;
  border: 1px solid var(--event-line);
  border-radius: .9rem;
  background: var(--event-soft);
}
.ns-event-glance-card strong,
.ns-event-glance-card span { display: block; }
.ns-event-glance-card strong { font-size: .98rem; line-height: 1.2; }
.ns-event-glance-card span:not(.ns-event-glance-icon) { color: var(--event-muted); font-size: .82rem; margin-top: .28rem; }
.ns-event-glance-icon { color: var(--event-green); margin-bottom: .42rem; font-size: 1.05rem; }

.ns-event-facts,
.ns-event-nearby,
.ns-event-discover {
  border-top: 1px solid var(--event-line);
  padding-top: clamp(1.1rem, 2vw, 1.5rem);
}
.ns-event-fact-sentence,
.ns-event-description,
.ns-event-muted { color: var(--event-muted); }
.ns-event-description { white-space: pre-line; }
.ns-event-fact-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .55rem 1rem;
  margin: 1rem 0 0;
}
.ns-event-fact-list div {
  border-bottom: 1px solid rgba(255,255,255,.08);
  padding: .55rem 0;
}
.ns-event-fact-list dt {
  color: var(--event-muted);
  font-size: .82rem;
  margin-bottom: .18rem;
}
.ns-event-fact-list dd { margin: 0; }
.ns-event-fact-list a,
.ns-event-nearby-card a,
.ns-event-discover-links a { color: var(--event-green); }
.ns-event-features { margin-top: 1rem; }

.ns-event-nearby-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .8rem;
}
.ns-event-nearby-card {
  border: 1px solid var(--event-line);
  border-radius: .85rem;
  padding: .85rem;
  background: rgba(255,255,255,.035);
}
.ns-event-nearby-card h3 { margin: 0 0 .4rem; font-size: 1rem; }
.ns-event-nearby-card p { margin: .25rem 0; color: var(--event-muted); font-size: .9rem; }
.ns-event-discover-links a {
  text-decoration: none;
  border-bottom: 1px solid rgba(129,244,164,.34);
  padding-bottom: .08rem;
}
.ns-event-discover-links a:hover { border-bottom-color: rgba(129,244,164,.88); }

@media (max-width: 980px) {
  .ns-event-hero { grid-template-columns: 1fr; }
  .ns-event-hero__media { min-height: 170px; }
  .ns-event-glance-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ns-event-nearby-list { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .ns-event-hero { padding: 1rem; border-radius: .9rem; }
  .ns-event-fact-list { grid-template-columns: 1fr; }
  .ns-event-glance-grid { grid-template-columns: 1fr; }
}

/* NSD Party Event Detail Cleanup Preview Fix 20260624-114500 */
.ns-event-hero__media {
  position: relative;
  display: grid;
  place-items: center;
  overflow: hidden;
}
.ns-event-hero__media::after {
  content: "";
  position: absolute;
  inset: 1px;
  border-radius: inherit;
  background:
    linear-gradient(115deg, transparent 0 36%, rgba(255,255,255,.045) 48%, transparent 64%);
  pointer-events: none;
}
.ns-event-visual-fallback {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: center;
  gap: .38rem;
  text-align: center;
  padding: 1rem;
  color: rgba(232,255,239,.82);
}
.ns-event-visual-mark {
  display: inline-grid;
  place-items: center;
  width: 3.8rem;
  height: 3.8rem;
  border-radius: 1.1rem;
  border: 1px solid rgba(129,244,164,.24);
  background: rgba(129,244,164,.065);
  color: rgba(129,244,164,.82);
  font-weight: 800;
  letter-spacing: .08em;
  box-shadow: inset 0 0 26px rgba(129,244,164,.055);
}
.ns-event-visual-title {
  margin-top: .25rem;
  font-weight: 700;
  letter-spacing: .03em;
}
.ns-event-visual-fallback small {
  color: rgba(255,255,255,.58);
  font-size: .82rem;
}
.ns-event-fact-note {
  display: block;
  margin-top: .18rem;
  color: var(--event-muted);
  font-size: .82rem;
}
.ns-event-description {
  max-width: 72ch;
}
.ns-event-nearby h2 {
  color: rgba(232,255,239,.88);
}
@media (max-width: 640px) {
  .ns-event-visual-mark { width: 3.2rem; height: 3.2rem; border-radius: .9rem; }
}

/* NSD Party Event Detail Preview Finish 20260624-121500 */
.ns-event-fact-note--inline {
  display: inline;
  margin-top: 0;
  white-space: normal;
}
.ns-event-chip {
  line-height: 1.25;
}

/* NSD Party Event Detail Source Button Contrast Fix 20260624-133000
   Härtet die Lesbarkeit des Veranstalter-Buttons gegen globale Linkfarben. */
.ns-event-detail .ns-event-source-button,
.ns-event-detail .ns-event-source-button:visited {
  color: #06110a !important;
  background: linear-gradient(180deg, rgba(152,255,184,.96), rgba(106,226,142,.94));
  border: 1px solid rgba(209,255,221,.54);
  text-shadow: none !important;
  font-weight: 800;
  box-shadow: 0 .5rem 1.1rem rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.28);
}
.ns-event-detail .ns-event-source-button:hover,
.ns-event-detail .ns-event-source-button:focus-visible {
  color: #020805 !important;
  background: linear-gradient(180deg, rgba(180,255,201,.98), rgba(128,238,160,.96));
  border-color: rgba(225,255,234,.72);
  text-decoration: none;
}
.ns-event-detail .ns-event-source-button:focus-visible {
  outline: 2px solid rgba(232,255,239,.88);
  outline-offset: 3px;
}

/* NSD Party Event Detail Venue Address Block 20260624-183000 */
.ns-event-venue {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border: 1px solid rgba(129,244,164,.18);
  border-radius: 1rem;
  padding: clamp(1rem, 2vw, 1.35rem);
  background:
    radial-gradient(circle at 18% 16%, rgba(129,244,164,.10), transparent 34%),
    rgba(255,255,255,.04);
}
.ns-event-venue h2 {
  margin-bottom: .45rem;
}
.ns-event-venue__address {
  display: grid;
  gap: .16rem;
  color: var(--event-muted);
  font-style: normal;
  line-height: 1.45;
}
.ns-event-venue__address strong {
  color: rgba(255,255,255,.94);
  font-size: 1.05rem;
}
.ns-event-venue__address span {
  display: block;
}
.ns-event-venue__maplink,
.ns-event-venue__maplink:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-height: 2.55rem;
  padding: .68rem .95rem;
  border-radius: .72rem;
  border: 1px solid rgba(129,244,164,.28);
  color: rgba(224,255,233,.94);
  background: rgba(129,244,164,.08);
  font-weight: 700;
  text-decoration: none;
}
.ns-event-venue__maplink:hover,
.ns-event-venue__maplink:focus-visible {
  border-color: rgba(129,244,164,.55);
  background: rgba(129,244,164,.14);
  text-decoration: none;
}
.ns-event-venue__maplink:focus-visible {
  outline: 2px solid rgba(232,255,239,.82);
  outline-offset: 3px;
}
@media (max-width: 640px) {
  .ns-event-venue {
    align-items: flex-start;
    flex-direction: column;
  }
  .ns-event-venue__maplink {
    width: 100%;
  }
}

/* NSD Party Event Detail Venue Map UI Fix 20260624-211500 */
.ns-event-glance-icon {
  display: inline-grid !important;
  place-items: center;
  width: 1.35rem;
  height: 1.35rem;
  margin-bottom: .48rem;
  color: var(--event-green);
  font-size: 1.18rem;
  line-height: 1;
  text-align: center;
  text-shadow: 0 0 14px rgba(129,244,164,.22);
}
.ns-event-glance-card {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}
.ns-event-venue.ns-event-venue--map {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(17rem, .9fr);
  align-items: stretch;
  gap: clamp(1rem, 2.4vw, 1.6rem);
  padding: clamp(1rem, 2.4vw, 1.5rem);
}
.ns-event-venue--map .ns-event-venue__body {
  min-width: 0;
}
.ns-event-venue-map {
  display: grid;
  gap: .75rem;
  min-width: 0;
}
.ns-event-venue-map__placeholder,
.ns-event-venue-map__frame {
  min-height: 12rem;
  border: 1px solid rgba(129,244,164,.18);
  border-radius: .95rem;
  background:
    radial-gradient(circle at 24% 18%, rgba(129,244,164,.13), transparent 34%),
    radial-gradient(circle at 78% 72%, rgba(99,72,215,.14), transparent 34%),
    rgba(6,10,9,.42);
  overflow: hidden;
}
.ns-event-venue-map__placeholder {
  display: grid;
  place-items: center;
  align-content: center;
  gap: .55rem;
  padding: 1rem;
  text-align: center;
  color: var(--event-muted);
}
.ns-event-venue-map__mark {
  display: inline-grid;
  place-items: center;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: .8rem;
  border: 1px solid rgba(129,244,164,.26);
  background: rgba(129,244,164,.07);
  color: rgba(166,255,193,.9);
  font-size: 1.25rem;
}
.ns-event-venue-map__placeholder p {
  max-width: 28ch;
  margin: 0;
  font-size: .92rem;
  line-height: 1.35;
}
.ns-event-venue-map__frame iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 12rem;
  border: 0;
}
.ns-event-venue-map__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  justify-content: flex-end;
}
.ns-event-venue-map__button,
.ns-event-venue-map__button:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.55rem;
  padding: .68rem .95rem;
  border-radius: .72rem;
  border: 1px solid rgba(129,244,164,.28);
  color: rgba(224,255,233,.94);
  background: rgba(129,244,164,.08);
  font: inherit;
  font-weight: 800;
  line-height: 1.15;
  text-decoration: none;
  cursor: pointer;
}
.ns-event-venue-map__button:hover,
.ns-event-venue-map__button:focus-visible {
  border-color: rgba(129,244,164,.55);
  background: rgba(129,244,164,.14);
  text-decoration: none;
}
.ns-event-venue-map__button:focus-visible {
  outline: 2px solid rgba(232,255,239,.82);
  outline-offset: 3px;
}
.ns-event-venue-map__button--external,
.ns-event-venue-map__button--external:visited {
  color: #06110a;
  background: linear-gradient(180deg, rgba(152,255,184,.96), rgba(106,226,142,.94));
  border-color: rgba(209,255,221,.54);
}
.ns-event-venue-map__button--external:hover,
.ns-event-venue-map__button--external:focus-visible {
  color: #020805;
  background: linear-gradient(180deg, rgba(180,255,201,.98), rgba(128,238,160,.96));
  border-color: rgba(225,255,234,.72);
}
.ns-event-venue-map__button[disabled] {
  opacity: .72;
  cursor: default;
}
.ns-event-venue-map.is-loaded .ns-event-venue-map__placeholder {
  display: none;
}
@media (max-width: 820px) {
  .ns-event-venue.ns-event-venue--map {
    grid-template-columns: 1fr;
  }
  .ns-event-venue-map__actions {
    justify-content: stretch;
  }
  .ns-event-venue-map__button {
    flex: 1 1 13rem;
  }
}
@media (max-width: 640px) {
  .ns-event-venue-map__placeholder,
  .ns-event-venue-map__frame,
  .ns-event-venue-map__frame iframe {
    min-height: 11rem;
  }
  .ns-event-venue-map__button {
    width: 100%;
  }
}

/* NSD Event Detail Visual Polish V1 20260626-151500
   Template/CSS-only polish: compact detail-page typography, date panel, quieter meta/facts, outline CTA. */
.ns-event-detail {
  --event-card: rgba(255,255,255,.038);
  --event-card-strong: rgba(129,244,164,.075);
}
.ns-event-detail .ns-event-breadcrumb {
  margin-bottom: .85rem;
  font-size: .86rem;
}
.ns-event-detail .ns-event-hero {
  grid-template-columns: minmax(11.5rem, .56fr) minmax(0, 1.7fr);
  gap: clamp(.9rem, 2.2vw, 1.7rem);
  padding: clamp(1rem, 2.2vw, 1.75rem);
  border-radius: 1rem;
  box-shadow: 0 12px 30px rgba(0,0,0,.22);
}
.ns-event-detail .ns-event-hero__media {
  min-height: 178px;
  border-radius: .9rem;
}
.ns-event-detail .ns-event-hero__content {
  align-self: center;
  min-width: 0;
}
.ns-event-detail .ns-event-hero h1 {
  max-width: 13ch;
  color: rgba(144,255,177,.94);
  font-size: clamp(2.05rem, 3.65vw, 3.35rem);
  line-height: 1.04;
  letter-spacing: -.035em;
  overflow-wrap: anywhere;
  text-wrap: balance;
}
.ns-event-detail .ns-event-subtitle {
  display: flex;
  flex-wrap: wrap;
  gap: .18rem .58rem;
  margin: .7rem 0 .9rem;
  color: rgba(255,255,255,.62);
  font-size: clamp(.88rem, 1.2vw, 1rem);
  line-height: 1.45;
}
.ns-event-detail .ns-event-subtitle span {
  min-width: 0;
}
.ns-event-detail .ns-event-subtitle span + span::before {
  content: "·";
  margin-right: .58rem;
  color: rgba(129,244,164,.46);
}
.ns-event-detail .ns-event-chips {
  gap: .38rem;
}
.ns-event-detail .ns-event-chip,
.ns-event-detail .ns-event-features span {
  padding: .2rem .52rem;
  font-size: .8rem;
  border-color: rgba(129,244,164,.24);
  background: rgba(129,244,164,.045);
}
.ns-event-detail .ns-event-date-panel {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: center;
  align-content: center;
  gap: .1rem;
  width: min(100%, 10.8rem);
  min-height: 10.8rem;
  padding: 1rem .8rem;
  border: 1px solid rgba(129,244,164,.26);
  border-radius: .95rem;
  background:
    radial-gradient(circle at 50% 12%, rgba(129,244,164,.18), transparent 34%),
    rgba(7,13,11,.54);
  color: rgba(232,255,239,.9);
  text-align: center;
  box-shadow: inset 0 0 24px rgba(129,244,164,.05), 0 10px 24px rgba(0,0,0,.18);
}
.ns-event-detail .ns-event-date-panel__weekday,
.ns-event-detail .ns-event-date-panel__month,
.ns-event-detail .ns-event-date-panel__type {
  text-transform: uppercase;
  letter-spacing: .12em;
  font-weight: 800;
}
.ns-event-detail .ns-event-date-panel__weekday {
  color: rgba(129,244,164,.88);
  font-size: .96rem;
}
.ns-event-detail .ns-event-date-panel__day {
  margin: .08rem 0 -.08rem;
  color: rgba(255,255,255,.96);
  font-size: clamp(3rem, 7vw, 4.25rem);
  font-weight: 900;
  line-height: .9;
  letter-spacing: -.06em;
  text-shadow: 0 0 24px rgba(129,244,164,.16);
}
.ns-event-detail .ns-event-date-panel__month {
  color: rgba(129,244,164,.86);
  font-size: 1rem;
}
.ns-event-detail .ns-event-date-panel__time {
  margin-top: .45rem;
  padding: .28rem .55rem;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 999px;
  background: rgba(255,255,255,.045);
  color: rgba(255,255,255,.82);
  font-size: .86rem;
  font-weight: 800;
}
.ns-event-detail .ns-event-date-panel__type {
  margin-top: .38rem;
  max-width: 100%;
  color: rgba(255,255,255,.55);
  font-size: .68rem;
  line-height: 1.2;
}
.ns-event-detail .ns-event-context-line {
  max-width: 74ch;
  margin: clamp(1rem, 2vw, 1.35rem) 0 0;
  padding: .78rem 1rem;
  border: 1px solid rgba(129,244,164,.14);
  border-radius: .9rem;
  background: rgba(255,255,255,.028);
  color: rgba(232,255,239,.78);
  font-size: .94rem;
  line-height: 1.5;
}
.ns-event-detail .ns-event-source-button,
.ns-event-detail .ns-event-source-button:visited {
  margin-top: 1rem;
  min-height: 2.55rem;
  padding: .66rem .94rem;
  border: 1px solid rgba(129,244,164,.42);
  border-radius: .72rem;
  color: rgba(224,255,233,.94) !important;
  background: rgba(129,244,164,.075);
  box-shadow: inset 0 0 0 1px rgba(129,244,164,.035), 0 0 18px rgba(129,244,164,.045);
  font-size: .9rem;
  font-weight: 800;
}
.ns-event-detail .ns-event-source-button:hover,
.ns-event-detail .ns-event-source-button:focus-visible {
  color: rgba(244,255,247,.98) !important;
  background: rgba(129,244,164,.13);
  border-color: rgba(129,244,164,.68);
  box-shadow: 0 0 0 3px rgba(129,244,164,.08), 0 0 22px rgba(129,244,164,.08);
}
.ns-event-detail section:not(.ns-event-hero) {
  margin-top: clamp(1.1rem, 2.2vw, 1.8rem);
}
.ns-event-detail h2 {
  margin-bottom: .72rem;
  font-size: clamp(1.02rem, 1.45vw, 1.28rem);
  letter-spacing: -.01em;
}
.ns-event-detail .ns-event-glance h2 {
  color: rgba(232,255,239,.9);
  font-size: .82rem;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.ns-event-detail .ns-event-glance-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .58rem;
  align-items: stretch;
}
.ns-event-detail .ns-event-glance-card {
  min-height: 7.2rem;
  padding: .78rem .82rem;
  border-color: rgba(255,255,255,.095);
  border-radius: .82rem;
  background: var(--event-card);
}
.ns-event-detail .ns-event-glance-card strong {
  color: rgba(255,255,255,.9);
  font-size: .92rem;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.ns-event-detail .ns-event-glance-card span:not(.ns-event-glance-icon) {
  color: rgba(255,255,255,.57);
  font-size: .76rem;
  line-height: 1.25;
}
.ns-event-detail .ns-event-glance-icon {
  width: 1.18rem;
  height: 1.18rem;
  margin-bottom: .42rem;
  color: rgba(129,244,164,.75);
  font-size: .98rem;
  text-shadow: 0 0 10px rgba(129,244,164,.14);
}
.ns-event-detail .ns-event-facts,
.ns-event-detail .ns-event-nearby,
.ns-event-detail .ns-event-discover {
  padding-top: clamp(.9rem, 1.8vw, 1.25rem);
}
.ns-event-detail .ns-event-fact-sentence,
.ns-event-detail .ns-event-description {
  max-width: 74ch;
  font-size: .95rem;
  line-height: 1.58;
}
.ns-event-detail .ns-event-fact-list {
  gap: .45rem .9rem;
  margin-top: .85rem;
}
.ns-event-detail .ns-event-fact-list div {
  padding: .48rem 0;
}
.ns-event-detail .ns-event-fact-list dt {
  color: rgba(255,255,255,.55);
  font-size: .76rem;
  letter-spacing: .035em;
  text-transform: uppercase;
}
.ns-event-detail .ns-event-fact-list dd {
  color: rgba(255,255,255,.86);
  font-size: .92rem;
  line-height: 1.35;
}
.ns-event-detail .ns-event-venue.ns-event-venue--map {
  gap: clamp(.9rem, 2vw, 1.35rem);
  padding: clamp(.95rem, 2vw, 1.25rem);
  border-radius: .95rem;
  background:
    radial-gradient(circle at 18% 16%, rgba(129,244,164,.085), transparent 34%),
    rgba(255,255,255,.035);
}
.ns-event-detail .ns-event-venue h2 {
  color: rgba(232,255,239,.9);
}
.ns-event-detail .ns-event-venue__address {
  gap: .12rem;
  color: rgba(255,255,255,.64);
  font-size: .92rem;
}
.ns-event-detail .ns-event-venue__address strong {
  margin-bottom: .1rem;
  color: rgba(255,255,255,.93);
  font-size: 1rem;
}
.ns-event-detail .ns-event-venue-map__placeholder,
.ns-event-detail .ns-event-venue-map__frame,
.ns-event-detail .ns-event-venue-map__frame iframe {
  min-height: 10.5rem;
}
.ns-event-detail .ns-event-venue-map__placeholder p {
  font-size: .86rem;
}
.ns-event-detail .ns-event-venue-map__actions .ns-card__cta,
.ns-event-detail .ns-event-venue-map__actions .ns-card__cta:visited {
  border-color: rgba(129,244,164,.34);
  color: rgba(224,255,233,.94);
  background: rgba(129,244,164,.075);
  box-shadow: none;
}
.ns-event-detail .ns-event-venue-map__actions .ns-card__cta:hover,
.ns-event-detail .ns-event-venue-map__actions .ns-card__cta:focus-visible {
  border-color: rgba(129,244,164,.62);
  color: rgba(244,255,247,.98);
  background: rgba(129,244,164,.13);
}
@media (max-width: 980px) {
  .ns-event-detail .ns-event-hero {
    grid-template-columns: minmax(9.8rem, .42fr) minmax(0, 1fr);
  }
  .ns-event-detail .ns-event-hero__media {
    min-height: 160px;
  }
  .ns-event-detail .ns-event-glance-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 720px) {
  .ns-event-detail .ns-event-hero {
    grid-template-columns: 1fr;
  }
  .ns-event-detail .ns-event-hero__media {
    min-height: auto;
  }
  .ns-event-detail .ns-event-date-panel {
    justify-self: stretch;
    width: 100%;
    min-height: auto;
    grid-template-columns: auto auto auto 1fr;
    justify-items: start;
    align-items: baseline;
    gap: .22rem .45rem;
    text-align: left;
  }
  .ns-event-detail .ns-event-date-panel__day {
    font-size: 2.55rem;
  }
  .ns-event-detail .ns-event-date-panel__time {
    justify-self: end;
    margin-top: 0;
  }
  .ns-event-detail .ns-event-date-panel__type {
    grid-column: 1 / -1;
    margin-top: .15rem;
  }
  .ns-event-detail .ns-event-hero h1 {
    max-width: 100%;
    font-size: clamp(1.85rem, 10vw, 2.7rem);
  }
}
@media (max-width: 520px) {
  .ns-event-detail .ns-event-hero {
    padding: .9rem;
  }
  .ns-event-detail .ns-event-subtitle {
    display: block;
    font-size: .88rem;
  }
  .ns-event-detail .ns-event-subtitle span {
    display: inline;
  }
  .ns-event-detail .ns-event-subtitle span + span::before {
    margin-left: .28rem;
    margin-right: .28rem;
  }
  .ns-event-detail .ns-event-glance-grid {
    grid-template-columns: 1fr;
  }
  .ns-event-detail .ns-event-glance-card {
    min-height: auto;
  }
  .ns-event-detail .ns-event-date-panel {
    grid-template-columns: auto auto auto;
  }
  .ns-event-detail .ns-event-date-panel__time {
    grid-column: 1 / -1;
    justify-self: start;
    margin-top: .3rem;
  }
  .ns-event-detail .ns-event-source-button {
    width: 100%;
    justify-content: center;
  }
}

/* NSD Event Detail Visual Polish V2 20260626-153000
   Template/CSS-only flow polish: eventcard-like date panel, integrated hero prose,
   compact editorial details, balanced recommendation grids and dark framed maps. */
.ns-event-detail {
  --event-card-border: rgba(129,244,164,.16);
}
.ns-event-detail .ns-event-hero {
  align-items: stretch;
}
.ns-event-detail .ns-event-hero__media {
  min-height: 172px;
}
.ns-event-detail .ns-event-date-panel {
  width: min(100%, 9.9rem);
  min-height: 10.2rem;
  gap: .08rem;
  border-radius: 1rem;
  background:
    radial-gradient(circle at 50% 30%, rgba(129,244,164,.14), transparent 42%),
    linear-gradient(180deg, rgba(13,20,18,.84), rgba(7,11,10,.64));
  box-shadow:
    inset 0 0 22px rgba(129,244,164,.055),
    0 0 0 1px rgba(129,244,164,.055),
    0 16px 28px rgba(0,0,0,.24);
}
.ns-event-detail .ns-event-date-panel__weekday {
  margin-bottom: .16rem;
  font-size: .82rem;
  letter-spacing: .16em;
}
.ns-event-detail .ns-event-date-panel__day {
  display: inline-grid;
  place-items: center;
  width: clamp(4.25rem, 7vw, 5.25rem);
  height: clamp(4.25rem, 7vw, 5.25rem);
  margin: .02rem 0 .18rem;
  border: 1px solid rgba(129,244,164,.22);
  border-radius: 999px;
  background:
    radial-gradient(circle at 38% 28%, rgba(255,255,255,.12), transparent 30%),
    rgba(129,244,164,.075);
  color: rgba(255,255,255,.97);
  font-size: clamp(2.65rem, 5.4vw, 3.55rem);
  line-height: 1;
  letter-spacing: -.055em;
  box-shadow: inset 0 0 24px rgba(129,244,164,.055), 0 0 26px rgba(129,244,164,.13);
}
.ns-event-detail .ns-event-date-panel__month {
  font-size: .86rem;
  letter-spacing: .18em;
}
.ns-event-detail .ns-event-date-panel__divider {
  width: 2.25rem;
  height: 1px;
  margin: .45rem 0 .22rem;
  background: linear-gradient(90deg, transparent, rgba(129,244,164,.46), transparent);
}
.ns-event-detail .ns-event-date-panel__time {
  margin-top: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: rgba(255,255,255,.78);
  font-size: .86rem;
  letter-spacing: .04em;
}
.ns-event-detail .ns-event-date-panel__type,
.ns-event-detail .ns-event-context-line {
  display: none !important;
}
.ns-event-detail .ns-event-hero__context {
  max-width: 68ch;
  margin: .78rem 0 0;
  color: rgba(232,255,239,.74);
  font-size: .92rem;
  line-height: 1.52;
}
.ns-event-detail .ns-event-source-button,
.ns-event-detail .ns-event-source-button:visited {
  margin-top: 1.05rem;
}
.ns-event-detail .ns-event-glance {
  margin-top: clamp(1rem, 2vw, 1.45rem);
}
.ns-event-detail .ns-event-facts,
.ns-event-detail .ns-event-nearby,
.ns-event-detail .ns-event-discover {
  margin-top: clamp(1.15rem, 2.1vw, 1.7rem);
  padding-top: clamp(1rem, 1.9vw, 1.35rem);
}
.ns-event-detail .ns-event-facts {
  border-top-color: rgba(129,244,164,.11);
}
.ns-event-detail .ns-event-fact-sentence,
.ns-event-detail .ns-event-description {
  max-width: 78ch;
  margin: 0;
  color: rgba(232,255,239,.74);
}
.ns-event-detail .ns-event-detail-notes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .65rem;
  margin-top: .95rem;
}
.ns-event-detail .ns-event-detail-note {
  min-width: 0;
  padding: .78rem .85rem;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: .78rem;
  background: rgba(255,255,255,.028);
}
.ns-event-detail .ns-event-detail-note--wide {
  grid-column: span 2;
}
.ns-event-detail .ns-event-detail-note--source {
  background: rgba(129,244,164,.045);
  border-color: rgba(129,244,164,.17);
}
.ns-event-detail .ns-event-detail-note > span {
  display: block;
  margin-bottom: .26rem;
  color: rgba(255,255,255,.54);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.ns-event-detail .ns-event-detail-note strong {
  display: block;
  color: rgba(255,255,255,.88);
  font-size: .92rem;
  font-weight: 650;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.ns-event-detail .ns-event-detail-note small {
  display: block;
  margin-top: .18rem;
  color: rgba(255,255,255,.58);
  font-size: .78rem;
  font-weight: 500;
}
.ns-event-detail .ns-event-detail-note a,
.ns-event-detail .ns-event-detail-note a:visited {
  color: rgba(184,255,205,.92);
  text-decoration: none;
  border-bottom: 1px solid rgba(129,244,164,.28);
}
.ns-event-detail .ns-event-detail-note a:hover,
.ns-event-detail .ns-event-detail-note a:focus-visible {
  border-bottom-color: rgba(129,244,164,.72);
}
.ns-event-detail .ns-event-nearby {
  border-top-color: rgba(129,244,164,.10);
}
.ns-event-detail .ns-event-recommendation-cards {
  margin-top: .78rem;
}
.ns-event-detail .ns-event-recommendation-cards .ns-card-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
  align-items: stretch;
}
.ns-event-detail .ns-event-recommendation-cards .ns-card-list > .ns-card:only-child {
  max-width: min(100%, 43rem);
}
.ns-event-detail .ns-event-recommendation-cards .ns-card {
  height: 100%;
  margin: 0;
}
.ns-event-detail .ns-event-recommendation-cards .ns-card__date {
  align-self: stretch;
}
.ns-event-detail .ns-event-recommendation-cards .ns-card__location,
.ns-event-detail .ns-event-recommendation-cards .ns-card__title {
  overflow-wrap: anywhere;
}
.ns-event-detail .ns-event-discover {
  border-top-color: rgba(129,244,164,.10);
}
.ns-event-detail .ns-event-discover-links {
  gap: .55rem;
}
.ns-event-detail .ns-event-discover-links a,
.ns-event-detail .ns-event-discover-links a:visited {
  display: inline-flex;
  align-items: center;
  min-height: 2.25rem;
  padding: .48rem .76rem;
  border: 1px solid rgba(129,244,164,.26);
  border-radius: 999px;
  background: rgba(129,244,164,.055);
  color: rgba(224,255,233,.9);
  font-size: .86rem;
  font-weight: 800;
  line-height: 1.15;
  text-decoration: none;
  box-shadow: inset 0 0 0 1px rgba(129,244,164,.025);
}
.ns-event-detail .ns-event-discover-links a:hover,
.ns-event-detail .ns-event-discover-links a:focus-visible {
  border-color: rgba(129,244,164,.62);
  background: rgba(129,244,164,.11);
  color: rgba(244,255,247,.98);
  text-decoration: none;
}
.ns-event-detail .ns-event-venue-map {
  gap: .82rem;
}
.ns-event-detail .ns-event-venue-map__placeholder,
.ns-event-detail .ns-event-venue-map__frame {
  min-height: 9.7rem;
  border-color: rgba(255,255,255,.12);
  border-radius: .9rem;
  background:
    radial-gradient(circle at 24% 18%, rgba(129,244,164,.10), transparent 34%),
    rgba(5,8,8,.54);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.18), 0 10px 22px rgba(0,0,0,.18);
}
.ns-event-detail .ns-event-venue-map__frame iframe {
  min-height: 9.7rem;
  filter: brightness(.74) contrast(1.08) saturate(.78);
}
.ns-event-detail .ns-event-venue-map.is-loaded .ns-event-venue-map__frame {
  border-color: rgba(129,244,164,.18);
  background: rgba(3,5,5,.76);
}
.ns-event-detail .ns-event-venue-map__actions {
  margin-top: .08rem;
}
@media (max-width: 980px) {
  .ns-event-detail .ns-event-detail-notes,
  .ns-event-detail .ns-event-recommendation-cards .ns-card-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ns-event-detail .ns-event-detail-note--wide {
    grid-column: span 2;
  }
}
@media (max-width: 720px) {
  .ns-event-detail .ns-event-date-panel {
    grid-template-columns: 1fr;
    justify-items: center;
    width: min(100%, 12rem);
    min-height: 9.7rem;
    padding: .85rem .75rem;
    text-align: center;
  }
  .ns-event-detail .ns-event-date-panel__divider {
    margin: .34rem 0 .14rem;
  }
  .ns-event-detail .ns-event-date-panel__time {
    justify-self: center;
    grid-column: auto;
    margin-top: 0;
  }
  .ns-event-detail .ns-event-hero__context {
    font-size: .9rem;
  }
}
@media (max-width: 640px) {
  .ns-event-detail .ns-event-detail-notes,
  .ns-event-detail .ns-event-recommendation-cards .ns-card-list {
    grid-template-columns: 1fr;
  }
  .ns-event-detail .ns-event-detail-note--wide {
    grid-column: auto;
  }
  .ns-event-detail .ns-event-discover-links a {
    flex: 1 1 auto;
    justify-content: center;
  }
  .ns-event-detail .ns-event-venue-map__placeholder,
  .ns-event-detail .ns-event-venue-map__frame,
  .ns-event-detail .ns-event-venue-map__frame iframe {
    min-height: 9rem;
  }
}

/* NSD Event Detail Visual Polish V3 Date Panel 20260626-160000
   Aligns the detail-page date panel with party event cards: no outer date-panel frame,
   transparent date-panel background, event-card green day circle, matching letterspacing,
   slightly taller date/time block. */
.ns-event-detail .ns-event-date-panel {
  width: min(100%, 8.6rem);
  min-height: 11.8rem;
  padding: 1.15rem .55rem;
  gap: .14rem;
  border: 0 !important;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none !important;
  filter: none;
}
.ns-event-detail .ns-event-date-panel__weekday,
.ns-event-detail .ns-event-date-panel__month,
.ns-event-detail .ns-event-date-panel__time {
  text-transform: uppercase;
  letter-spacing: .16em;
  font-weight: 600;
}
.ns-event-detail .ns-event-date-panel__weekday {
  margin-bottom: .25rem;
  color: rgba(232,255,239,.82);
  font-size: .72rem;
  letter-spacing: .18em;
}
.ns-event-detail .ns-event-date-panel__day {
  width: clamp(4.25rem, 5.8vw, 5.05rem);
  height: clamp(4.25rem, 5.8vw, 5.05rem);
  margin: 0 0 .28rem;
  border: 0 !important;
  border-radius: 999px;
  background: radial-gradient(
    circle at 30% 20%,
    rgba(0, 255, 150, .45),
    rgba(0, 0, 0, .96)
  ) !important;
  color: rgba(255,255,255,.96);
  font-size: clamp(2.45rem, 4.8vw, 3.35rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  box-shadow: none !important;
  filter: drop-shadow(0 0 10px rgba(0,255,150,.55));
  text-shadow: none;
}
.ns-event-detail .ns-event-date-panel__month {
  color: rgba(232,255,239,.82);
  font-size: .75rem;
  letter-spacing: .18em;
}
.ns-event-detail .ns-event-date-panel__divider {
  width: 36px;
  height: 1px;
  margin: .45rem 0 .25rem;
  background: linear-gradient(to right, rgba(0,255,150,.7), transparent);
}
.ns-event-detail .ns-event-date-panel__time {
  color: rgba(232,255,239,.9);
  font-size: .8rem;
  letter-spacing: .16em;
  opacity: .95;
}
@media (max-width: 720px) {
  .ns-event-detail .ns-event-date-panel {
    width: min(100%, 8.4rem);
    min-height: 11.2rem;
    padding: 1rem .5rem;
  }
  .ns-event-detail .ns-event-date-panel__day {
    width: 4.5rem;
    height: 4.5rem;
    font-size: 2.55rem;
  }
}

/* NSD Event Detail Visual Polish V4 Mobile Date Row 20260626-161500
   On mobile, the date panel is a single horizontal row: weekday, green day circle,
   month, divider and time. Desktop/tablet V3 date-panel styling remains unchanged. */
@media (max-width: 720px) {
  .ns-event-detail .ns-event-date-panel {
    display: grid;
    grid-template-columns: auto auto auto 22px auto;
    align-items: center;
    justify-content: center;
    justify-items: center;
    gap: 0 .42rem;
    width: 100%;
    min-height: 5.1rem;
    padding: .85rem .2rem;
    text-align: center;
  }
  .ns-event-detail .ns-event-date-panel__weekday {
    align-self: center;
    margin: 0;
    font-size: .72rem;
    line-height: 1;
    letter-spacing: .18em;
  }
  .ns-event-detail .ns-event-date-panel__day {
    width: 3.45rem;
    height: 3.45rem;
    margin: 0;
    font-size: 2rem;
    line-height: 1;
  }
  .ns-event-detail .ns-event-date-panel__month {
    align-self: center;
    font-size: .72rem;
    line-height: 1;
    letter-spacing: .18em;
  }
  .ns-event-detail .ns-event-date-panel__divider {
    width: 22px;
    height: 1px;
    margin: 0;
    background: linear-gradient(to right, rgba(0,255,150,.7), transparent);
  }
  .ns-event-detail .ns-event-date-panel__time {
    justify-self: start;
    grid-column: auto;
    margin: 0;
    font-size: .72rem;
    line-height: 1;
    letter-spacing: .14em;
    white-space: nowrap;
  }
}
@media (max-width: 380px) {
  .ns-event-detail .ns-event-date-panel {
    grid-template-columns: auto auto auto 18px auto;
    gap: 0 .28rem;
    min-height: 4.85rem;
  }
  .ns-event-detail .ns-event-date-panel__day {
    width: 3.15rem;
    height: 3.15rem;
    font-size: 1.82rem;
  }
  .ns-event-detail .ns-event-date-panel__weekday,
  .ns-event-detail .ns-event-date-panel__month,
  .ns-event-detail .ns-event-date-panel__time {
    font-size: .66rem;
  }
}


/* NSD Event Detail Visual Polish V5 Mobile Hero Compact 20260626-163000
   Mobile-only refinement: flatter surrounding date rectangle so the title moves up,
   and event title reduced to about 80% of the previous mobile size. Desktop/tablet unchanged. */
@media (max-width: 720px) {
  .ns-event-detail .ns-event-hero {
    gap: .62rem;
  }
  .ns-event-detail .ns-event-hero__media {
    min-height: 4.35rem;
    border-radius: .78rem;
  }
  .ns-event-detail .ns-event-date-panel {
    min-height: 4.15rem;
    padding: .34rem .18rem;
  }
  .ns-event-detail .ns-event-hero h1 {
    font-size: clamp(1.48rem, 8vw, 2.16rem);
    line-height: 1.03;
    letter-spacing: -.035em;
  }
}
@media (max-width: 380px) {
  .ns-event-detail .ns-event-hero {
    gap: .55rem;
  }
  .ns-event-detail .ns-event-hero__media {
    min-height: 4rem;
  }
  .ns-event-detail .ns-event-date-panel {
    min-height: 3.9rem;
    padding: .28rem .1rem;
  }
  .ns-event-detail .ns-event-hero h1 {
    font-size: clamp(1.38rem, 7.6vw, 1.95rem);
  }
}


/* NSD Event Detail Visual Polish V6 Mobile Detail Cleanup 20260626-170000
   Mobile subtitle splits date/time and place into two lines, mobile glance stays two-column,
   details get dresscode prose while genre/price detail cards are removed in the template.
   Series recommendations no longer get an additional regional/radius block directly below. */
.ns-event-detail .ns-event-subtitle__datetime,
.ns-event-detail .ns-event-subtitle__place {
  min-width: 0;
}
@media (max-width: 640px) {
  .ns-event-detail .ns-event-subtitle {
    display: grid;
    gap: .16rem;
    margin: .56rem 0 .78rem;
  }
  .ns-event-detail .ns-event-subtitle__datetime,
  .ns-event-detail .ns-event-subtitle__place {
    display: block;
  }
  .ns-event-detail .ns-event-subtitle__datetime + .ns-event-subtitle__place::before,
  .ns-event-detail .ns-event-subtitle span + span::before {
    content: none;
    margin: 0;
  }
  .ns-event-detail .ns-event-subtitle__place {
    color: rgba(232,255,239,.78);
  }
  .ns-event-detail .ns-event-glance-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem;
  }
  .ns-event-detail .ns-event-glance-card {
    min-height: 6.6rem;
    padding: .72rem .68rem;
  }
  .ns-event-detail .ns-event-glance-card strong {
    font-size: .86rem;
  }
  .ns-event-detail .ns-event-glance-card span:not(.ns-event-glance-icon) {
    font-size: .72rem;
  }
}
@media (max-width: 380px) {
  .ns-event-detail .ns-event-glance-grid {
    gap: .44rem;
  }
  .ns-event-detail .ns-event-glance-card {
    padding: .66rem .58rem;
  }
}


/* NSD Event Detail Visual Polish V7 Dresscode Prose + DJ Glance 20260626-171500
   Dresscode wording is part of the normal detail prose, not a separate box;
   DJs are available as an additional Auf-einen-Blick card. */
.ns-event-detail .ns-event-glance-card--djs strong {
  line-height: 1.22;
}
.ns-event-detail .ns-event-description {
  white-space: pre-line;
}


/* NSD Event Detail Visual Polish V8 Related Cleanup + DJ Glance 20260626-173000
   Event detail pages show only true series recommendations; regional/Umkreis fallback cards are removed.
   DJ glance cards are kept readable on narrow mobile cards. */
.ns-event-detail .ns-event-glance-card--djs strong {
  overflow-wrap: anywhere;
}
@media (max-width: 640px) {
  .ns-event-detail .ns-event-glance-card--djs {
    min-height: 7.2rem;
  }
}


/* NSD Event Detail Visual Polish V9 Nearby Restore + DJ Glance 20260626-174500
   True nearby recommendations are visible again as their own section; regional/state fallback cards remain removed. */
.ns-event-detail .ns-event-nearby--nearby h2 {
  color: var(--event-text);
}


/* NSD Event Detail Visual Polish V16 Unified Section Headings 20260627-123000
   All visible event-detail section headings share one class. This makes Auf einen Blick,
   Details, series and nearby headings consistent and about 20% larger than the previous
   compact Auf-einen-Blick heading. */
.ns-event-detail h2.ns-event-section-title,
.ns-event-detail .ns-event-glance h2.ns-event-section-title,
.ns-event-detail .ns-event-venue h2.ns-event-section-title,
.ns-event-detail .ns-event-facts h2.ns-event-section-title,
.ns-event-detail .ns-event-nearby h2.ns-event-section-title,
.ns-event-detail .ns-event-discover h2.ns-event-section-title,
.ns-event-detail .ns-event-nearby--nearby h2.ns-event-section-title {
  margin: 0 0 .82rem;
  color: rgba(232,255,239,.9);
  font-size: clamp(.98rem, 1.25vw, 1.12rem);
  font-weight: 900;
  letter-spacing: .13em;
  line-height: 1.18;
  text-transform: uppercase;
}
.ns-event-detail h2.ns-event-section-title span {
  display: inline;
}
@media (max-width: 640px) {
  .ns-event-detail h2.ns-event-section-title,
  .ns-event-detail .ns-event-glance h2.ns-event-section-title,
  .ns-event-detail .ns-event-venue h2.ns-event-section-title,
  .ns-event-detail .ns-event-facts h2.ns-event-section-title,
  .ns-event-detail .ns-event-nearby h2.ns-event-section-title,
  .ns-event-detail .ns-event-discover h2.ns-event-section-title,
  .ns-event-detail .ns-event-nearby--nearby h2.ns-event-section-title {
    margin-bottom: .72rem;
    font-size: clamp(.94rem, 3.2vw, 1.04rem);
    letter-spacing: .11em;
  }
}

/* -------------------------------------------------------------------------
   NSD Event Detail Visual Polish V17 Discover Scene Links 20260627-153000
   Mirrors the compact "Weitere Szene-Seiten" module from party pages.
   ------------------------------------------------------------------------- */
.ns-event-detail .ns-event-seo-links{
  margin-top: clamp(1.65rem, 3vw, 2.65rem);
  margin-bottom: .6rem;
}

.ns-event-detail .ns-event-seo-links .ns-event-section-title{
  margin-bottom: .18rem;
}

.ns-event-detail .ns-event-seo-links__text{
  margin: 0 0 .74rem;
  color: rgba(226,236,232,.66);
  font-size: clamp(.92rem, 1.1vw, 1rem);
  line-height: 1.38;
}

.ns-event-detail .ns-event-seo-links__nav{
  display: grid;
  gap: .28rem;
}

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

.ns-event-detail .ns-event-seo-links__group + .ns-event-seo-links__group{
  margin-top: .28rem;
}

.ns-event-detail .ns-event-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;
}

.ns-event-detail .ns-event-seo-links__chips{
  display: flex;
  flex-wrap: wrap;
  gap: .08rem .2rem;
  padding: 0;
  margin: 0;
}

.ns-event-detail .ns-event-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;
}

.ns-event-detail .ns-event-seo-links__chip::after{
  content: "·";
  margin-left: .38rem;
  color: rgba(226,236,232,.34);
  font-weight: 400;
}

.ns-event-detail .ns-event-seo-links__chip:last-child::after{
  content: "";
  margin-left: 0;
}

.ns-event-detail .ns-event-seo-links__chip:hover,
.ns-event-detail .ns-event-seo-links__chip:focus-visible{
  color: rgba(0,255,150,.92);
  border-color: rgba(0,255,150,.18);
  background: rgba(0,255,150,.035);
}

.ns-event-detail .ns-event-seo-links__chip:focus-visible{
  outline: 2px solid rgba(0,255,150,.45);
  outline-offset: 2px;
}

@media (max-width: 680px){
  .ns-event-detail .ns-event-seo-links{
    margin-top: 1.35rem;
  }
  .ns-event-detail .ns-event-seo-links__group{
    grid-template-columns: 1fr;
    gap: .15rem;
  }
  .ns-event-detail .ns-event-seo-links__group-title{
    font-size: .75rem;
    line-height: 1.35;
  }
  .ns-event-detail .ns-event-seo-links__chip{
    padding: .15rem .18rem;
    font-size: .88rem;
  }
}

/* -------------------------------------------------------------------------
   NSD Event Detail Visual Polish V18 Discover Scene Links Party Style 20260627-160000
   Refines the Eventdetail discover module so it matches the Party page link module:
   title case, compact spacing, off-white links by default, green only on hover.
   ------------------------------------------------------------------------- */
.ns-event-detail .ns-event-seo-links{
  margin-top: clamp(1.55rem, 2.8vw, 2.35rem);
  padding-top: clamp(1.15rem, 2.2vw, 1.55rem);
}

.ns-event-detail .ns-event-seo-links .ns-event-section-title{
  margin: 0 0 .28rem;
  color: rgba(235,246,242,.92);
  font-size: clamp(1.08rem, 1.55vw, 1.32rem);
  line-height: 1.2;
  font-weight: 760;
  letter-spacing: 0;
  text-transform: none;
}

.ns-event-detail .ns-event-seo-links__text{
  margin: 0 0 .8rem;
  color: rgba(226,236,232,.62);
  font-size: clamp(.95rem, 1.12vw, 1.02rem);
  line-height: 1.42;
}

.ns-event-detail .ns-event-seo-links__nav{
  gap: .38rem;
}

.ns-event-detail .ns-event-seo-links__group{
  grid-template-columns: minmax(8rem, auto) 1fr;
  gap: .32rem 1rem;
  padding: .08rem 0;
}

.ns-event-detail .ns-event-seo-links__group + .ns-event-seo-links__group{
  margin-top: .48rem;
}

.ns-event-detail .ns-event-seo-links__group-title{
  color: rgba(226,236,232,.58);
  font-size: .78rem;
  line-height: 1.7;
  font-weight: 760;
  letter-spacing: .075em;
  text-transform: uppercase;
}

.ns-event-detail .ns-event-seo-links__chips{
  gap: .06rem .2rem;
}

.ns-event-detail .ns-event-seo-links__chip{
  padding: .08rem .24rem;
  color: rgba(235,246,242,.78);
  font-size: clamp(.94rem, 1.08vw, 1.02rem);
  line-height: 1.48;
  font-weight: 560;
  border-radius: .38rem;
  background: transparent;
  border-color: transparent;
  text-shadow: none;
}

.ns-event-detail .ns-event-seo-links__chip::after{
  margin-left: .42rem;
  color: rgba(226,236,232,.32);
}

.ns-event-detail .ns-event-seo-links__chip:hover,
.ns-event-detail .ns-event-seo-links__chip:focus-visible{
  color: rgba(0,255,150,.92);
  background: rgba(0,255,150,.035);
  border-color: rgba(0,255,150,.16);
}

@media (max-width: 680px){
  .ns-event-detail .ns-event-seo-links{
    margin-top: 1.25rem;
    padding-top: 1rem;
  }
  .ns-event-detail .ns-event-seo-links .ns-event-section-title{
    font-size: 1.08rem;
  }
  .ns-event-detail .ns-event-seo-links__text{
    margin-bottom: .65rem;
  }
  .ns-event-detail .ns-event-seo-links__group{
    grid-template-columns: 1fr;
    gap: .12rem;
  }
  .ns-event-detail .ns-event-seo-links__group + .ns-event-seo-links__group{
    margin-top: .55rem;
  }
  .ns-event-detail .ns-event-seo-links__chip{
    padding: .08rem .16rem;
    font-size: .92rem;
  }
}

/* -------------------------------------------------------------------------
   NSD Event Detail Visual Polish V19 Discover Scene Links Force Style Cachebuster 20260627-163000
   Robust override for the Eventdetail "Weitere Szene-Seiten" block.
   V18 was too narrowly scoped on some pages/browsers. This block intentionally
   avoids the .ns-event-detail parent dependency and normalizes :link/:visited.
   ------------------------------------------------------------------------- */
.ns-event-seo-links{
  margin-top: clamp(1.55rem, 2.8vw, 2.35rem);
  padding-top: clamp(1.15rem, 2.2vw, 1.55rem);
}

.ns-event-seo-links .ns-event-section-title,
.ns-event-seo-links > .ns-event-section-title{
  margin: 0 0 .28rem !important;
  color: rgba(235,246,242,.92) !important;
  font-size: clamp(1.08rem, 1.55vw, 1.32rem) !important;
  line-height: 1.2 !important;
  font-weight: 760 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

.ns-event-seo-links__text{
  margin: 0 0 .8rem !important;
  color: rgba(226,236,232,.62) !important;
  font-size: clamp(.95rem, 1.12vw, 1.02rem) !important;
  line-height: 1.42 !important;
}

.ns-event-seo-links__nav{
  gap: .38rem !important;
}

.ns-event-seo-links__group{
  grid-template-columns: minmax(8rem, auto) 1fr !important;
  gap: .32rem 1rem !important;
  padding: .08rem 0 !important;
}

.ns-event-seo-links__group + .ns-event-seo-links__group{
  margin-top: .48rem !important;
}

.ns-event-seo-links__group-title{
  color: rgba(226,236,232,.58) !important;
  font-size: .78rem !important;
  line-height: 1.7 !important;
  font-weight: 760 !important;
  letter-spacing: .075em !important;
  text-transform: uppercase !important;
}

.ns-event-seo-links__chips{
  gap: .06rem .2rem !important;
}

.ns-event-seo-links__chip,
.ns-event-seo-links__chip:link,
.ns-event-seo-links__chip:visited{
  padding: .08rem .24rem !important;
  color: rgba(235,246,242,.78) !important;
  font-size: clamp(.94rem, 1.08vw, 1.02rem) !important;
  line-height: 1.48 !important;
  font-weight: 560 !important;
  border-radius: .38rem !important;
  background: transparent !important;
  border-color: transparent !important;
  text-shadow: none !important;
  text-decoration: none !important;
}

.ns-event-seo-links__chip::after{
  margin-left: .42rem !important;
  color: rgba(226,236,232,.32) !important;
}

.ns-event-seo-links__chip:hover,
.ns-event-seo-links__chip:focus-visible{
  color: rgba(0,255,150,.92) !important;
  background: rgba(0,255,150,.035) !important;
  border-color: rgba(0,255,150,.16) !important;
}

@media (max-width: 680px){
  .ns-event-seo-links{
    margin-top: 1.25rem;
    padding-top: 1rem;
  }
  .ns-event-seo-links .ns-event-section-title,
  .ns-event-seo-links > .ns-event-section-title{
    font-size: 1.08rem !important;
  }
  .ns-event-seo-links__text{
    margin-bottom: .65rem !important;
  }
  .ns-event-seo-links__group{
    grid-template-columns: 1fr !important;
    gap: .12rem !important;
  }
  .ns-event-seo-links__group + .ns-event-seo-links__group{
    margin-top: .55rem !important;
  }
  .ns-event-seo-links__chip,
  .ns-event-seo-links__chip:link,
  .ns-event-seo-links__chip:visited{
    padding: .08rem .16rem !important;
    font-size: .92rem !important;
  }
}



/* -------------------------------------------------------------------------
   NSD EventStatus Highlights/Detailseiten 20260628-113000
   Prominenter Detailseiten-Hinweis für abgesagte und verschobene Events.
   ------------------------------------------------------------------------- */
.ns-event-status-alert{
  margin-top: clamp(1rem, 2.3vw, 1.6rem) !important;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 1.05rem;
  background:
    linear-gradient(135deg, rgba(26,22,18,.96), rgba(18,20,24,.92));
  box-shadow: 0 14px 34px rgba(0,0,0,.20);
  overflow: hidden;
}

.ns-event-status-alert__inner{
  padding: clamp(1rem, 2.2vw, 1.45rem);
}

.ns-event-status-alert__eyebrow{
  margin: 0 0 .35rem;
  color: rgba(255,255,255,.62);
  font-size: .78rem;
  font-weight: 760;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.ns-event-status-alert__title{
  margin: 0 0 .45rem !important;
  font-size: clamp(1.25rem, 2.2vw, 1.72rem) !important;
  line-height: 1.12 !important;
  letter-spacing: -.025em !important;
}

.ns-event-status-alert__message{
  margin: 0;
  color: rgba(255,255,255,.82);
  font-size: clamp(.98rem, 1.2vw, 1.05rem);
  line-height: 1.48;
}

.ns-event-status-alert__source{
  margin-top: .9rem;
  padding-top: .9rem;
  border-top: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.82);
}

.ns-event-status-alert__source strong{
  display: block;
  margin-bottom: .28rem;
  color: rgba(255,255,255,.72);
  font-size: .88rem;
}

.ns-event-status-alert__source-text{
  margin: 0;
  color: rgba(255,255,255,.92);
  line-height: 1.5;
  white-space: pre-line;
}

.ns-event-status-alert--cancelled{
  border-color: rgba(255,107,107,.42);
  background:
    radial-gradient(circle at 2% 0%, rgba(255,107,107,.18), transparent 34%),
    linear-gradient(135deg, rgba(34,18,20,.98), rgba(18,20,24,.94));
}

.ns-event-status-alert--cancelled .ns-event-status-alert__title{
  color: rgba(255,190,190,.96);
}

.ns-event-status-alert--postponed{
  border-color: rgba(255,202,111,.42);
  background:
    radial-gradient(circle at 2% 0%, rgba(255,202,111,.18), transparent 34%),
    linear-gradient(135deg, rgba(34,27,16,.98), rgba(18,20,24,.94));
}

.ns-event-status-alert--postponed .ns-event-status-alert__title{
  color: rgba(255,225,166,.96);
}

@media (max-width: 640px){
  .ns-event-status-alert__inner{
    padding: 1rem;
  }
}

/* NSD Eventdetail Glance Entfernung 20260629-143000: click-only distance card; no region/country glance cards. */
.ns-event-glance-card--distance {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.ns-event-distance__button {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  color: rgba(255,255,255,.94);
  background: transparent;
  font: inherit;
  font-weight: 700;
  font-size: .98rem;
  line-height: 1.2;
  text-align: left;
  cursor: pointer;
}

.ns-event-distance__button:hover {
  color: rgba(186,255,207,.98);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .18em;
}

.ns-event-distance__button:focus-visible {
  outline: 2px solid rgba(129,244,164,.72);
  outline-offset: .18rem;
  border-radius: .35rem;
}

.ns-event-distance__button:disabled {
  cursor: progress;
  opacity: .76;
  text-decoration: none;
}

.ns-event-distance__label,
.ns-event-distance__status {
  display: block;
}

.ns-event-distance__label {
  color: var(--event-muted);
  font-size: .82rem;
  margin-top: .28rem;
}

.ns-event-distance__status {
  min-height: 1em;
  color: rgba(255,255,255,.62);
  font-size: .78rem;
  line-height: 1.25;
  margin-top: .34rem;
}

@media (max-width: 640px) {
  .ns-event-distance__button {
    font-size: .96rem;
  }
}


/* NSD Eventdetail UX Layout Polish Prosa/Hinweise 20260629-150000:
   generated prose moves to hero; source becomes subtle; Dresscode/feature hints live in Hinweise. */
.ns-event-detail .ns-event-hero__prose {
  max-width: 76ch;
  margin: .9rem 0 0;
  color: rgba(232,255,239,.80);
  font-size: clamp(.94rem, 1.25vw, 1.02rem);
  line-height: 1.58;
}

.ns-event-detail .ns-event-hero__source {
  margin: .68rem 0 0;
  color: rgba(255,255,255,.56);
  font-size: .82rem;
  line-height: 1.35;
}

.ns-event-detail .ns-event-hero__source a,
.ns-event-detail .ns-event-hero__source a:visited {
  color: rgba(184,255,205,.88);
  text-decoration: none;
  border-bottom: 1px solid rgba(129,244,164,.26);
}

.ns-event-detail .ns-event-hero__source a:hover,
.ns-event-detail .ns-event-hero__source a:focus-visible {
  color: rgba(214,255,225,.98);
  border-bottom-color: rgba(129,244,164,.72);
}

.ns-event-detail .ns-event-hero__source a:focus-visible {
  outline: 2px solid rgba(129,244,164,.65);
  outline-offset: .18rem;
  border-radius: .18rem;
}

.ns-event-detail .ns-event-notices {
  border-top: 1px solid rgba(129,244,164,.10);
  padding-top: clamp(1rem, 1.9vw, 1.35rem);
  margin-top: clamp(1.15rem, 2.1vw, 1.7rem);
}

.ns-event-detail .ns-event-notices__list {
  display: grid;
  gap: .62rem;
  margin: 0;
  padding: 0;
  list-style: none;
  max-width: 78ch;
}

.ns-event-detail .ns-event-notices__item {
  padding: .78rem .9rem;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: .82rem;
  background: rgba(255,255,255,.028);
  color: rgba(232,255,239,.76);
  line-height: 1.48;
}

.ns-event-detail .ns-event-notices__item strong {
  color: rgba(255,255,255,.88);
  font-weight: 800;
}

.ns-event-detail .ns-event-notices__item span {
  overflow-wrap: anywhere;
}

/* Keep the old context class harmless for cached/legacy pages, but new pages use hero__prose. */
.ns-event-detail .ns-event-hero__context {
  display: none;
}

@media (max-width: 640px) {
  .ns-event-detail .ns-event-hero__prose {
    font-size: .93rem;
    line-height: 1.55;
  }

  .ns-event-detail .ns-event-notices__item {
    padding: .72rem .78rem;
  }
}


/* -------------------------------------------------------------------------
   NSD Eventdetail UX/UI Polish V2 Hero CTA Hinweise 20260629-160000
   Visual hierarchy and compact glance: smaller H1, hero place without region/country,
   clear organizer CTA, notices before venue, merged Ort card, distance microtype.
   ------------------------------------------------------------------------- */
.ns-event-detail .ns-event-hero h1 {
  font-size: clamp(1.78rem, 2.65vw, 2.82rem);
  line-height: 1.08;
  letter-spacing: -.038em;
  overflow-wrap: break-word;
  hyphens: auto;
}

.ns-event-detail .ns-event-subtitle {
  margin-top: .5rem;
  margin-bottom: .72rem;
}

.ns-event-detail .ns-event-subtitle__place {
  color: rgba(232,255,239,.78);
}

.ns-event-detail .ns-event-hero__source-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .52rem .78rem;
  margin-top: .9rem;
}

.ns-event-detail .ns-event-hero__source-cta,
.ns-event-detail .ns-event-hero__source-cta:link,
.ns-event-detail .ns-event-hero__source-cta:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.35rem;
  padding: .54rem .88rem;
  border: 1px solid rgba(129,244,164,.34);
  border-radius: .78rem;
  background: linear-gradient(135deg, rgba(0,255,150,.13), rgba(0,255,150,.055));
  color: rgba(232,255,239,.95);
  font-size: .93rem;
  font-weight: 820;
  line-height: 1.1;
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(0,0,0,.16);
}

.ns-event-detail .ns-event-hero__source-cta:hover,
.ns-event-detail .ns-event-hero__source-cta:focus-visible {
  border-color: rgba(129,244,164,.7);
  background: linear-gradient(135deg, rgba(0,255,150,.18), rgba(0,255,150,.08));
  color: rgba(255,255,255,.98);
}

.ns-event-detail .ns-event-hero__source-cta:focus-visible {
  outline: 2px solid rgba(129,244,164,.72);
  outline-offset: .18rem;
}

.ns-event-detail .ns-event-hero__source-note {
  color: rgba(232,255,239,.62);
  font-size: .85rem;
  line-height: 1.35;
}

.ns-event-detail .ns-event-glance-grid {
  gap: .66rem;
}

.ns-event-detail .ns-event-glance-card--place strong {
  overflow-wrap: anywhere;
}

.ns-event-detail .ns-event-glance-card--place span:not(.ns-event-glance-icon),
.ns-event-detail .ns-event-glance-card--event-format span:not(.ns-event-glance-icon),
.ns-event-detail .ns-event-glance-card--distance .ns-event-distance__label {
  color: rgba(232,255,239,.58);
}

.ns-event-detail .ns-event-glance-card--event-format strong {
  color: rgba(232,255,239,.94);
}

.ns-event-detail .ns-event-glance-card--distance .ns-event-distance__button {
  color: rgba(232,255,239,.94);
  font-weight: 820;
  line-height: 1.18;
}

.ns-event-detail .ns-event-glance-card--distance .ns-event-distance__status {
  color: rgba(232,255,239,.58);
  font-size: .78rem;
}

.ns-event-detail .ns-event-notices {
  margin-top: clamp(1rem, 1.75vw, 1.45rem);
  padding: clamp(.92rem, 1.7vw, 1.18rem);
  border: 1px solid rgba(255,255,255,.085);
  border-radius: 1rem;
  background: rgba(255,255,255,.026);
}

.ns-event-detail .ns-event-notices .ns-event-section-title {
  margin-bottom: .62rem;
}

.ns-event-detail .ns-event-notices__item {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.ns-event-detail .ns-event-venue {
  margin-top: clamp(1.15rem, 2.1vw, 1.75rem);
}

@media (max-width: 720px) {
  .ns-event-detail .ns-event-hero h1 {
    font-size: clamp(1.46rem, 7.3vw, 2.02rem);
    line-height: 1.1;
    letter-spacing: -.034em;
  }
}

@media (max-width: 640px) {
  .ns-event-detail .ns-event-hero__source-actions {
    align-items: stretch;
    gap: .45rem;
  }

  .ns-event-detail .ns-event-hero__source-cta {
    width: 100%;
  }

  .ns-event-detail .ns-event-hero__source-note {
    font-size: .82rem;
  }

  .ns-event-detail .ns-event-glance-card--place,
  .ns-event-detail .ns-event-glance-card--distance {
    min-height: 6.65rem;
  }
}

/* -------------------------------------------------------------------------
   NSD Eventdetail UI Typografie Feinschliff V3 20260629-170000
   Unified section headings, calmer type scale, short/long dresscode placement,
   calmer venue box, stable distance action.
   ------------------------------------------------------------------------- */
.ns-event-detail {
  --ns-event-font-body: .98rem;
  --ns-event-font-label: .8rem;
  --ns-event-font-card-value: 1.03rem;
  --ns-event-line-body: 1.55;
}

.ns-event-detail .ns-event-hero h1,
.ns-event-detail .ns-event-hero__title {
  font-size: clamp(1.75rem, 2.55vw, 2.65rem);
  line-height: 1.08;
  letter-spacing: -.032em;
  overflow-wrap: break-word;
  hyphens: auto;
}

.ns-event-detail .ns-event-section {
  margin-block: clamp(1.25rem, 2vw, 1.75rem);
}

.ns-event-detail .ns-event-section > .ns-event-section-title,
.ns-event-detail h2.ns-event-section-title,
.ns-event-detail .ns-event-glance h2.ns-event-section-title,
.ns-event-detail .ns-event-venue h2.ns-event-section-title,
.ns-event-detail .ns-event-facts h2.ns-event-section-title,
.ns-event-detail .ns-event-nearby h2.ns-event-section-title,
.ns-event-detail .ns-event-discover h2.ns-event-section-title {
  margin: 0 0 .65rem;
  padding: 0;
  font-size: .82rem;
  line-height: 1.2;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(232,255,239,.82);
}

.ns-event-detail h2.ns-event-section-title span {
  display: inline;
}

.ns-event-detail .ns-event-glance-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .72rem;
}

.ns-event-detail .ns-event-glance-card {
  min-height: 6.05rem;
  padding: .86rem .92rem;
}

.ns-event-detail .ns-event-glance-card strong,
.ns-event-detail .ns-event-glance-card__value,
.ns-event-detail .ns-event-distance__button {
  font-size: var(--ns-event-font-card-value);
  line-height: 1.25;
  font-weight: 820;
}

.ns-event-detail .ns-event-glance-card span:not(.ns-event-glance-icon),
.ns-event-detail .ns-event-glance-card__label,
.ns-event-detail .ns-event-distance__label,
.ns-event-detail .ns-event-distance__status {
  font-size: var(--ns-event-font-label);
  line-height: 1.3;
}

.ns-event-detail .ns-event-glance-card--dresscode strong {
  overflow-wrap: anywhere;
}

.ns-event-detail .ns-event-section--notices .ns-event-notices {
  margin-top: 0;
  padding: clamp(.86rem, 1.45vw, 1.05rem);
  border: 1px solid rgba(255,255,255,.085);
  border-radius: 1rem;
  background: rgba(255,255,255,.024);
}

.ns-event-detail .ns-event-notices__list {
  margin: 0;
  padding: 0;
}

.ns-event-detail .ns-event-notices__item {
  font-size: var(--ns-event-font-body);
  line-height: var(--ns-event-line-body);
  color: rgba(232,255,239,.8);
}

.ns-event-detail .ns-event-notices__item strong {
  color: rgba(232,255,239,.92);
}

.ns-event-detail .ns-event-section--venue .ns-event-venue {
  margin-top: 0;
}

.ns-event-detail .ns-event-section--venue .ns-event-venue__body {
  padding: clamp(.9rem, 1.6vw, 1.15rem);
}

.ns-event-detail .ns-event-venue__address {
  font-size: var(--ns-event-font-body);
  line-height: var(--ns-event-line-body);
  color: rgba(232,255,239,.76);
}

.ns-event-detail .ns-event-venue__address strong {
  font-size: var(--ns-event-font-body);
  line-height: 1.35;
  font-weight: 850;
  color: rgba(232,255,239,.95);
}

.ns-event-detail .ns-event-venue__address span {
  font-size: var(--ns-event-font-body);
  line-height: var(--ns-event-line-body);
}

.ns-event-detail .ns-event-venue-map__placeholder p {
  font-size: var(--ns-event-font-body);
  line-height: var(--ns-event-line-body);
  color: rgba(232,255,239,.72);
}

.ns-event-detail .ns-event-venue-map__actions .ns-card__cta {
  font-size: .92rem;
  font-weight: 780;
}

.ns-event-detail .ns-event-glance-card--distance .ns-event-distance__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-height: 2rem;
  padding: .18rem 0;
  color: rgba(232,255,239,.95);
  text-align: left;
}

.ns-event-detail .ns-event-glance-card--distance .ns-event-distance__status:not(:empty) {
  margin-top: .3rem;
  color: rgba(232,255,239,.78);
}

@media (max-width: 960px) {
  .ns-event-detail .ns-event-glance-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .ns-event-detail .ns-event-hero h1,
  .ns-event-detail .ns-event-hero__title {
    font-size: clamp(1.45rem, 7.2vw, 2rem);
    line-height: 1.12;
  }
}

@media (max-width: 560px) {
  .ns-event-detail .ns-event-glance-grid {
    grid-template-columns: 1fr;
  }

  .ns-event-detail .ns-event-glance-card {
    min-height: auto;
  }
}


/* -------------------------------------------------------------------------
   NSD Eventdetail Share Web Share API 20260629-193000
   Secondary hero CTA for native Web Share API, Clipboard fallback and manual copy.
   ------------------------------------------------------------------------- */
.ns-event-detail .ns-event-hero__source-wrap {
  margin-top: .9rem;
}

.ns-event-detail .ns-event-hero__share-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.35rem;
  padding: .54rem .88rem;
  border: 1px solid rgba(232,255,239,.24);
  border-radius: .78rem;
  background: rgba(255,255,255,.045);
  color: rgba(232,255,239,.92);
  font: inherit;
  font-size: .93rem;
  font-weight: 780;
  line-height: 1.1;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 8px 20px rgba(0,0,0,.13);
}

.ns-event-detail .ns-event-hero__share-button:hover,
.ns-event-detail .ns-event-hero__share-button:focus-visible {
  border-color: rgba(129,244,164,.52);
  background: rgba(129,244,164,.09);
  color: rgba(255,255,255,.98);
}

.ns-event-detail .ns-event-hero__share-button:focus-visible {
  outline: 2px solid rgba(129,244,164,.7);
  outline-offset: .18rem;
}

.ns-event-detail .ns-event-hero__source-wrap .ns-event-hero__source-note {
  margin: .45rem 0 0;
}

.ns-event-detail .ns-event-share__status {
  min-height: 1.1em;
  margin: .42rem 0 0;
  color: rgba(232,255,239,.68);
  font-size: .84rem;
  line-height: 1.35;
}

.ns-event-detail .ns-event-share__status:empty {
  margin-top: 0;
}

.ns-event-detail .ns-event-share__manual {
  margin-top: .55rem;
  max-width: 46rem;
}

.ns-event-detail .ns-event-share__manual[hidden] {
  display: none !important;
}

.ns-event-detail .ns-event-share__manual label {
  display: block;
  margin-bottom: .32rem;
  color: rgba(232,255,239,.7);
  font-size: .82rem;
  line-height: 1.35;
}

.ns-event-detail .ns-event-share__manual input {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  min-height: 2.45rem;
  padding: .5rem .62rem;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: .62rem;
  background: rgba(0,0,0,.18);
  color: rgba(232,255,239,.92);
  font: inherit;
  font-size: .9rem;
}

@media (max-width: 640px) {
  .ns-event-detail .ns-event-hero__source-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .ns-event-detail .ns-event-hero__source-cta,
  .ns-event-detail .ns-event-hero__share-button {
    width: 100%;
  }
}

/* -------------------------------------------------------------------------
   NSD Eventdetail Mobile Gutter Fix V2 / Page Frame Harmonization 20260629-191500
   Outer mobile gutter is now centralized in css/ns-page-frame.css via
   #body-wrapper > .container.ns-page-frame. This block only keeps eventdetail
   inner frame safeguards and hero compactness. Desktop/tablet unchanged.
   ------------------------------------------------------------------------- */
@media (max-width: 767px) {
  body.nsd .ns-event-detail,
  body.nsd .ns-event-detail .ns-event-hero,
  body.nsd .ns-event-detail .ns-event-section,
  body.nsd .ns-event-detail .ns-event-glance-grid,
  body.nsd .ns-event-detail .ns-event-notices,
  body.nsd .ns-event-detail .ns-event-venue,
  body.nsd .ns-event-detail .ns-event-facts,
  body.nsd .ns-event-detail .ns-event-nearby,
  body.nsd .ns-event-detail .ns-event-discover,
  body.nsd .ns-event-detail .ns-event-seo-links {
    max-width: 100%;
    box-sizing: border-box;
  }

  body.nsd .ns-event-detail .ns-event-hero {
    padding-left: .72rem;
    padding-right: .72rem;
    border-radius: .86rem;
  }

  body.nsd .ns-event-detail .ns-event-section {
    margin-left: 0;
    margin-right: 0;
  }
}

@media (max-width: 380px) {
  body.nsd .ns-event-detail .ns-event-hero {
    padding-left: .62rem;
    padding-right: .62rem;
  }
}



/* -------------------------------------------------------------------------
   NSD Eventdetail Line-up Long DJ Lists 20260629-194500
   Long DJ lists are summarized in Auf einen Blick and rendered once in Line-up.
   DJ detection/data remain untouched; this is Eventdetail UI only.
   ------------------------------------------------------------------------- */
.ns-event-detail .ns-event-glance-card--djs-summary strong {
  white-space: nowrap;
  overflow-wrap: normal;
}

.ns-event-detail .ns-event-lineup {
  margin-top: 0;
  padding: clamp(.86rem, 1.45vw, 1.05rem);
  border: 1px solid rgba(255,255,255,.085);
  border-radius: 1rem;
  background: rgba(255,255,255,.024);
  color: rgba(232,255,239,.8);
  overflow-wrap: break-word;
}

.ns-event-detail .ns-event-lineup p {
  margin: 0;
  font-size: var(--ns-event-font-body, .98rem);
  line-height: var(--ns-event-line-body, 1.55);
}

.ns-event-detail .ns-event-lineup strong {
  color: rgba(232,255,239,.92);
  font-weight: 850;
}

.ns-event-detail .ns-event-lineup__text {
  overflow-wrap: anywhere;
}

@media (max-width: 767px) {
  body.nsd .ns-event-detail .ns-event-lineup {
    max-width: 100%;
    box-sizing: border-box;
  }
}


/* -------------------------------------------------------------------------
   NSD Eventdetail Share UI Polish CTA/Icon/Button-State 20260629-200000
   Keeps the share action in the hero CTA row. Shares only the canonical
   public event detail URL from data-share-url; no source URL, tracking,
   location or distance data.
   ------------------------------------------------------------------------- */
.ns-event-detail .ns-event-hero__source-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .6rem;
}

.ns-event-detail .nsd-event-share-btn {
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .46rem;
  min-height: 2.35rem;
  padding: .54rem .88rem;
  border: 1px solid rgba(129,244,164,.36);
  border-radius: .78rem;
  background: rgba(129,244,164,.055);
  color: rgba(232,255,239,.94);
  font: inherit;
  font-size: .93rem;
  font-weight: 780;
  line-height: 1.1;
  cursor: pointer;
  text-decoration: none;
  box-shadow: 0 8px 20px rgba(0,0,0,.11);
  transition: border-color .16s ease, background-color .16s ease, color .16s ease, transform .16s ease;
}

.ns-event-detail .nsd-event-share-btn:hover {
  border-color: rgba(129,244,164,.62);
  background: rgba(129,244,164,.105);
  color: rgba(255,255,255,.98);
  text-decoration: none;
}

.ns-event-detail .nsd-event-share-btn:focus-visible {
  outline: 2px solid rgba(129,244,164,.72);
  outline-offset: .18rem;
  border-color: rgba(129,244,164,.7);
  background: rgba(129,244,164,.12);
  color: rgba(255,255,255,.98);
}

.ns-event-detail .nsd-event-share-btn[data-share-copied="1"] {
  border-color: rgba(129,244,164,.74);
  background: rgba(129,244,164,.16);
  color: rgba(255,255,255,.98);
}

.ns-event-detail .nsd-share-icon {
  width: 1.05em;
  height: 1.05em;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ns-event-detail .nsd-share-icon circle {
  fill: currentColor;
  stroke: none;
}

.ns-event-detail .nsd-event-share__status {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.ns-event-detail .nsd-event-share__manual {
  margin-top: .55rem;
  max-width: 46rem;
}

.ns-event-detail .nsd-event-share__manual[hidden] {
  display: none !important;
}

.ns-event-detail .nsd-event-share__manual label {
  display: block;
  margin-bottom: .32rem;
  color: rgba(232,255,239,.72);
  font-size: .82rem;
  line-height: 1.35;
}

.ns-event-detail .nsd-event-share__manual input {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  min-height: 2.45rem;
  padding: .5rem .62rem;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: .62rem;
  background: rgba(0,0,0,.18);
  color: rgba(232,255,239,.92);
  font: inherit;
  font-size: .9rem;
}

@media (max-width: 640px) {
  .ns-event-detail .ns-event-hero__source-actions {
    display: grid;
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: .45rem;
  }

  .ns-event-detail .ns-event-hero__source-cta,
  .ns-event-detail .nsd-event-share-btn {
    width: 100%;
  }
}

/* NSD Eventdetail Nearby Card Date Align 20260629-231500
   Center the date column for shared eventcards rendered inside Eventdetail recommendation/nearby sections.
   Scoped to Eventdetail only; Party lists and Club pages remain untouched. */
body.nsd .ns-event-detail .ns-event-recommendation-cards .ns-card {
  align-items: center !important;
}

body.nsd .ns-event-detail .ns-event-recommendation-cards .ns-card__date {
  align-self: center !important;
  justify-content: center !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

body.nsd .ns-event-detail .ns-event-recommendation-cards .ns-card__weekday,
body.nsd .ns-event-detail .ns-event-recommendation-cards .ns-card__month,
body.nsd .ns-event-detail .ns-event-recommendation-cards .ns-card__time {
  text-align: center !important;
}

@media (max-width: 700px) {
  body.nsd .ns-event-detail .ns-event-recommendation-cards .ns-card__date {
    align-self: center !important;
    justify-content: center !important;
  }
}



/* =========================================================
   NSD Eventdetail Venue Club Route 20260629-233000
   Compact internal club page CTA + clearer route CTA in Eventdetail venue block.
   ========================================================= */
.ns-event-detail .ns-event-venue-map__actions {
  align-items: center;
  gap: .55rem;
}

.ns-event-detail .ns-event-venue__club-cta,
.ns-event-detail .ns-event-venue__club-cta:link,
.ns-event-detail .ns-event-venue__club-cta:visited {
  color: #00ff96 !important;
  border-color: rgba(0, 255, 150, .64) !important;
  background: rgba(0, 255, 150, .045) !important;
  box-shadow: 0 0 .75rem rgba(0, 255, 150, .08);
  text-decoration: none !important;
}

.ns-event-detail .ns-event-venue__club-cta:hover,
.ns-event-detail .ns-event-venue__club-cta:focus-visible {
  color: #00ff96 !important;
  border-color: rgba(0, 255, 150, .88) !important;
  background: rgba(0, 255, 150, .11) !important;
  box-shadow: 0 0 .9rem rgba(0, 255, 150, .14);
  text-decoration: none !important;
}

.ns-event-detail .ns-event-venue__map-load-cta {
  opacity: .78;
  background: transparent !important;
}

.ns-event-detail .ns-event-venue__map-load-cta:hover,
.ns-event-detail .ns-event-venue__map-load-cta:focus-visible {
  opacity: .95;
  background: rgba(0, 255, 150, .07) !important;
}

@media (max-width: 640px) {
  .ns-event-detail .ns-event-venue-map__actions {
    justify-content: stretch;
  }

  .ns-event-detail .ns-event-venue-map__actions .ns-card__cta {
    flex: 1 1 100%;
    width: 100%;
  }
}

/* NSD Eventdetail Venue Club Route V2 Map Load Button Downgrade CSS Hotfix 20260629-234500
   Keep the click-to-load map action visually secondary after adding Clubseite ansehen + Route öffnen. */
body.nsd .ns-event-detail .ns-event-venue-map__actions [data-ns-venue-map-load],
body.nsd .ns-event-detail .ns-event-venue-map__actions button.ns-card__cta[data-ns-venue-map-load],
body.nsd .ns-event-detail .ns-event-venue-map__actions .ns-event-venue-map__button[data-ns-venue-map-load] {
  appearance: none;
  color: rgba(224, 255, 233, 0.90) !important;
  background: rgba(129, 244, 164, 0.055) !important;
  border-color: rgba(129, 244, 164, 0.26) !important;
  box-shadow: none !important;
  text-decoration: none !important;
}

body.nsd .ns-event-detail .ns-event-venue-map__actions [data-ns-venue-map-load]:hover,
body.nsd .ns-event-detail .ns-event-venue-map__actions [data-ns-venue-map-load]:focus-visible,
body.nsd .ns-event-detail .ns-event-venue-map__actions button.ns-card__cta[data-ns-venue-map-load]:hover,
body.nsd .ns-event-detail .ns-event-venue-map__actions button.ns-card__cta[data-ns-venue-map-load]:focus-visible,
body.nsd .ns-event-detail .ns-event-venue-map__actions .ns-event-venue-map__button[data-ns-venue-map-load]:hover,
body.nsd .ns-event-detail .ns-event-venue-map__actions .ns-event-venue-map__button[data-ns-venue-map-load]:focus-visible {
  color: rgba(224, 255, 233, 0.96) !important;
  background: rgba(129, 244, 164, 0.11) !important;
  border-color: rgba(129, 244, 164, 0.44) !important;
  box-shadow: 0 0 0.75rem rgba(129, 244, 164, 0.10) !important;
  text-decoration: none !important;
}


/* =========================================================
   NSD Eventdetail Venue Club CTA Address Row 20260629-235500
   Place the internal club-page action below the address column; keep map actions on the map side.
   ========================================================= */
body.nsd .ns-event-detail .ns-event-venue__address-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: .55rem;
  margin-top: .95rem;
}

body.nsd .ns-event-detail .ns-event-venue__address-actions .ns-event-venue__club-cta,
body.nsd .ns-event-detail .ns-event-venue__address-actions .ns-event-venue__club-cta:link,
body.nsd .ns-event-detail .ns-event-venue__address-actions .ns-event-venue__club-cta:visited {
  color: #00ff96 !important;
  border-color: rgba(0, 255, 150, .62) !important;
  background: rgba(0, 255, 150, .045) !important;
  box-shadow: 0 0 .75rem rgba(0, 255, 150, .08) !important;
  text-decoration: none !important;
}

body.nsd .ns-event-detail .ns-event-venue__address-actions .ns-event-venue__club-cta:hover,
body.nsd .ns-event-detail .ns-event-venue__address-actions .ns-event-venue__club-cta:focus-visible {
  color: #00ff96 !important;
  border-color: rgba(0, 255, 150, .88) !important;
  background: rgba(0, 255, 150, .11) !important;
  box-shadow: 0 0 .9rem rgba(0, 255, 150, .14) !important;
  text-decoration: none !important;
}

body.nsd .ns-event-detail .ns-event-venue-map__actions .ns-event-venue__club-cta {
  display: none !important;
}

body.nsd .ns-event-detail .ns-event-venue-map__actions {
  align-items: center;
  justify-content: flex-end;
}

@media (max-width: 820px) {
  body.nsd .ns-event-detail .ns-event-venue__address-actions {
    margin-top: .8rem;
  }
}

@media (max-width: 640px) {
  body.nsd .ns-event-detail .ns-event-venue__address-actions .ns-event-venue__club-cta {
    width: 100%;
  }
}

/* NSD UI Template Polish Stage 4 Card Layout Mobile Polish 20260630
   Eventdetail-Untercards: Nearby-/Series-Shared-Cards angleichen, Hero/Venue/Map/GPS nicht anfassen. */
body.nsd .ns-event-detail .ns-event-nearby .ns-card__link,
body.nsd .ns-event-detail .ns-event-series .ns-card__link,
body.nsd .ns-event-detail .ns-event-recommendation-cards .ns-card__link {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
}

body.nsd .ns-event-detail .ns-event-nearby .ns-card__link .ns-card__cta,
body.nsd .ns-event-detail .ns-event-nearby .ns-card__link .nsd-event-card-share-btn,
body.nsd .ns-event-detail .ns-event-series .ns-card__link .ns-card__cta,
body.nsd .ns-event-detail .ns-event-series .ns-card__link .nsd-event-card-share-btn,
body.nsd .ns-event-detail .ns-event-recommendation-cards .ns-card__link .ns-card__cta,
body.nsd .ns-event-detail .ns-event-recommendation-cards .ns-card__link .nsd-event-card-share-btn {
  flex: 0 0 auto;
  max-width: 100%;
}

body.nsd .ns-event-detail .ns-event-nearby .nsd-event-card-share-btn__label,
body.nsd .ns-event-detail .ns-event-series .nsd-event-card-share-btn__label,
body.nsd .ns-event-detail .ns-event-recommendation-cards .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 .ns-event-detail .ns-event-nearby .ns-card__genres,
body.nsd .ns-event-detail .ns-event-nearby .ns-card__djs,
body.nsd .ns-event-detail .ns-event-nearby .ns-card__dresscode,
body.nsd .ns-event-detail .ns-event-series .ns-card__genres,
body.nsd .ns-event-detail .ns-event-series .ns-card__djs,
body.nsd .ns-event-detail .ns-event-series .ns-card__dresscode,
body.nsd .ns-event-detail .ns-event-recommendation-cards .ns-card__genres,
body.nsd .ns-event-detail .ns-event-recommendation-cards .ns-card__djs,
body.nsd .ns-event-detail .ns-event-recommendation-cards .ns-card__dresscode {
  min-width: 0;
  overflow-wrap: anywhere;
}

@media (max-width: 640px) {
  body.nsd .ns-event-detail .ns-event-nearby .ns-card__date,
  body.nsd .ns-event-detail .ns-event-series .ns-card__date,
  body.nsd .ns-event-detail .ns-event-recommendation-cards .ns-card__date {
    align-items: center;
    text-align: center;
  }
}

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

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

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

body.nsd .ns-event-detail .ns-card__dresscode-label {
  flex: 0 0 auto;
  white-space: nowrap;
  margin-right: 0;
}

body.nsd .ns-event-detail .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 DJ/Club Card Crosslinks V1 20260713
   Entity names inside Eventdetail glance and line-up blocks use generated-page resolvers. */
.ns-event-detail .ns-event-entity-link,
.ns-event-detail .ns-event-entity-link:link,
.ns-event-detail .ns-event-entity-link:visited {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid rgba(129,244,164,.42);
  text-underline-offset: .14em;
  transition: color .15s ease, border-color .15s ease;
}

.ns-event-detail .ns-event-entity-link:hover,
.ns-event-detail .ns-event-entity-link:focus-visible {
  color: var(--event-green);
  border-bottom-color: currentColor;
  outline: none;
}

.ns-event-detail .ns-event-entity-links {
  white-space: normal;
}


/* NSD Manual Event Description Pipeline Fix V1 20260716
   Dedicated editorial event prose; hidden automatically when description is empty. */
body.nsd .ns-event-detail .ns-event-description-panel {
  min-width: 0;
}

body.nsd .ns-event-detail .ns-event-description__text {
  max-width: 78ch;
  white-space: pre-line;
  overflow-wrap: anywhere;
  line-height: 1.7;
  color: rgba(232, 242, 236, 0.94);
}

/* NSD Desktop Design Phase 8h – Event Hero Title Natural Width Fix 20260830-110000
   Desktop only: release the historical 13ch cap so titles use the available hero content width.
   Mobile breakpoints and natural wrapping remain untouched. */
@media (min-width: 721px) {
  body.nsd .ns-event-detail .ns-event-hero h1 {
    max-width: 100%;
  }
}

/* =========================================================
   NSD Desktop Design Phase 8i Eventdetail Information Venue Actions 20260830
   Calm participation/genre panels + one coherent desktop map-action row.
   Scope: Eventdetail only. No JS/data/GPS/Nearby changes.
   ========================================================= */

body.nsd .ns-event-detail .ns-event-participation-notice,
body.nsd .ns-event-detail .ns-event-genre-panel {
  box-sizing: border-box;
  width: 100%;
  margin: 1rem 0;
  padding: 1rem 1.1rem;
  border: 1px solid var(--nsd-border-subtle, rgba(255,255,255,.10));
  border-radius: var(--nsd-radius-card, .95rem);
  background: linear-gradient(135deg, rgba(13,18,17,.76), rgba(7,9,9,.82));
}

body.nsd .ns-event-detail .ns-event-participation-notice__body {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-width: 0;
}

body.nsd .ns-event-detail .ns-event-participation-notice__body p {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  color: var(--nsd-color-text-body, rgba(232,242,236,.90));
  line-height: 1.55;
}

body.nsd .ns-event-detail .ns-event-participation-notice__cta {
  flex: 0 0 auto;
  margin: 0;
  white-space: nowrap;
}

body.nsd .ns-event-detail .ns-event-genre-panel__title {
  margin: 0 0 .7rem;
  color: var(--nsd-color-text, rgba(238,247,242,.96));
  font-size: .92rem;
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: .035em;
}

body.nsd .ns-event-detail .ns-event-genre-panel__chips {
  min-width: 0;
}

/* Venue actions: DOM order is Karte -> Entfernung -> Route. */
@media (min-width: 901px) {
  body.nsd .ns-event-detail .ns-event-venue-map__actions {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    justify-content: flex-end !important;
    gap: .45rem !important;
    width: 100%;
  }

  body.nsd .ns-event-detail .ns-event-venue-map__actions > .ns-card__cta,
  body.nsd .ns-event-detail .ns-event-venue-map__actions .ns-event-distance-action > .ns-card__cta {
    box-sizing: border-box;
    min-height: 2.7rem;
    margin: 0;
    padding: .68rem .78rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    line-height: 1.1;
  }

  body.nsd .ns-event-detail .ns-event-venue-map__actions .ns-event-distance-action {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-width: 0;
  }

  body.nsd .ns-event-detail .ns-event-venue-map__actions .ns-event-distance__status:not(:empty) {
    margin-top: .32rem;
    text-align: center;
  }

  /* Karte anzeigen is the primary action of the map area. */
  body.nsd .ns-event-detail .ns-event-venue-map__actions [data-ns-venue-map-load],
  body.nsd .ns-event-detail .ns-event-venue-map__actions button.ns-card__cta[data-ns-venue-map-load] {
    border-color: rgba(0,255,150,.55) !important;
    background: rgba(0,255,150,.12) !important;
    color: var(--nsd-color-accent, #00ff96) !important;
    opacity: 1 !important;
  }
}

@media (max-width: 900px) {
  body.nsd .ns-event-detail .ns-event-venue-map__actions {
    flex-wrap: wrap;
  }
}

@media (max-width: 700px) {
  body.nsd .ns-event-detail .ns-event-participation-notice__body {
    align-items: stretch;
    flex-direction: column;
  }

  body.nsd .ns-event-detail .ns-event-participation-notice__cta,
  body.nsd .ns-event-detail .ns-event-venue-map__actions .ns-event-distance-action {
    width: 100%;
  }
}


/* NSD Desktop Design Phase 8j Eventdetail Content Polish 20260830-141500 */
body.nsd .ns-event-detail .ns-event-hero__prose-actions{display:flex;align-items:center;margin-top:.72rem;}
body.nsd .ns-event-detail .ns-event-hero__organizer-cta{margin:0;}
body.nsd .ns-event-detail .ns-event-genre-panel__title{display:flex;align-items:center;gap:.5rem;margin:0 0 .72rem;font-size:var(--ns-event-font-body,1rem);line-height:1.35;font-weight:700;letter-spacing:0;}
body.nsd .ns-event-detail .ns-event-genre-panel__icon{display:inline-grid;place-items:center;width:1.2rem;height:1.2rem;color:var(--nsd-color-accent,#00ff96);font-size:1.05rem;line-height:1;}
body.nsd .ns-event-detail .ns-event-participation-notice__title{margin:0 0 .55rem;color:var(--nsd-color-text,rgba(238,247,242,.96));font-size:var(--ns-event-font-body,1rem);line-height:1.35;font-weight:700;letter-spacing:0;}
body.nsd .ns-event-detail .ns-event-participation-notice__body p{font-size:var(--ns-event-font-body,1rem);line-height:var(--ns-event-line-body,1.55);}
body.nsd .ns-event-detail .ns-event-description-panel--plain{width:100%;margin:.9rem 0;}
body.nsd .ns-event-detail .ns-event-description-panel--plain .ns-event-description__text{margin:0;font-size:var(--ns-event-font-body,1rem);}
@media(max-width:700px){body.nsd .ns-event-detail .ns-event-hero__prose-actions,body.nsd .ns-event-detail .ns-event-hero__organizer-cta{width:100%;}}

/* =========================================================
   NSD Desktop Design Phase 8k Eventdetail Glance / Notice / Button Parity 20260830-160000
   Genres sit directly below "Auf einen Blick"; notice leaves the card surface;
   organizer links use the same visual button contract as "Teilen".
   ========================================================= */

body.nsd .ns-event-detail .ns-event-glance .ns-event-genre-panel--in-glance {
  box-sizing: border-box;
  width: 100%;
  margin: .66rem 0;
  padding: .78rem .82rem;
  border: 1px solid rgba(255,255,255,.095);
  border-radius: .82rem;
  background: var(--event-card, rgba(255,255,255,.038));
  box-shadow: none;
}

body.nsd .ns-event-detail .ns-event-glance .ns-event-genre-panel__title {
  margin: 0 0 .58rem;
}

body.nsd .ns-event-detail .ns-event-glance .ns-event-glance-grid {
  margin-top: 0;
}

/* "Hinweis" follows the same section hierarchy as "Auf einen Blick". */
body.nsd .ns-event-detail .ns-event-participation-section {
  margin-top: var(--nsd-space-section, 1.75rem);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.nsd .ns-event-detail .ns-event-participation-section .ns-event-section-title {
  margin: 0 0 .72rem;
}

body.nsd .ns-event-detail .ns-event-participation-section .ns-event-participation-notice__body {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0;
}

body.nsd .ns-event-detail .ns-event-participation-section .ns-event-participation-notice__body p {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  font-size: var(--ns-event-font-body, 1rem);
  line-height: var(--ns-event-line-body, 1.55);
  color: var(--nsd-color-text-body, rgba(232,242,236,.90));
}

/* Organizer CTAs intentionally share the exact visual class contract of "Teilen". */
body.nsd .ns-event-detail .ns-event-organizer-secondary-btn {
  margin: 0;
}

@media (max-width: 700px) {
  body.nsd .ns-event-detail .ns-event-participation-section .ns-event-participation-notice__body {
    align-items: stretch;
    flex-direction: column;
  }

  body.nsd .ns-event-detail .ns-event-participation-section .ns-event-participation-notice__cta {
    width: 100%;
  }
}

/* NSD Eventdetail Hero + Nearby Actions Fix V1 20260911-153500
   Desktop/tablet: organizer + share stay in one hero action row.
   Existing <=640px accessibility layout may stack when the viewport is too narrow. */
@media (min-width: 641px) {
  body.nsd .ns-event-detail .ns-event-hero__source-actions {
    flex-wrap: nowrap;
  }
}

/* =========================================================
   NSD Eventdetail Music Glance V1d 20260911-174500
   One wide Musik panel contains linked DJs first and genre chips below.
   The old standalone DJ KPI card / long-DJ Line-up are no longer rendered.
   ========================================================= */
body.nsd .ns-event-detail .ns-event-music-panel__title {
  margin-bottom: .66rem;
}

body.nsd .ns-event-detail .ns-event-music-panel__djs {
  min-width: 0;
  margin: 0 0 .72rem;
}

body.nsd .ns-event-detail .ns-event-music-panel__label {
  display: block;
  margin: 0 0 .18rem;
  color: var(--nsd-color-text-muted, rgba(205,220,211,.72));
  font-size: .76rem;
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: .075em;
  text-transform: uppercase;
}

body.nsd .ns-event-detail .ns-event-music-panel__dj-list {
  display: block;
  min-width: 0;
  color: var(--nsd-color-text, rgba(238,247,242,.96));
  font-size: 1.05rem;
  line-height: 1.45;
  font-weight: 700;
  overflow-wrap: anywhere;
}

body.nsd .ns-event-detail .ns-event-music-panel__dj-separator {
  color: var(--nsd-color-text-muted, rgba(205,220,211,.72));
  font-weight: 400;
}

body.nsd .ns-event-detail .ns-event-music-panel__genres {
  min-width: 0;
}

body.nsd .ns-event-detail .ns-event-music-panel__djs + .ns-event-music-panel__genres {
  padding-top: .66rem;
  border-top: 1px solid rgba(255,255,255,.07);
}

@media (max-width: 700px) {
  body.nsd .ns-event-detail .ns-event-music-panel__dj-list {
    font-size: 1rem;
  }
}

/* =========================================================
   NSD Eventdetail Music Glance Surface Parity V1f 20260911-181500
   The wide Musik panel uses the exact same surface token as the KPI cards.
   ========================================================= */
body.nsd .ns-event-detail .ns-event-glance .ns-event-genre-panel--in-glance.ns-event-music-panel {
  background: var(--nsd-color-surface-soft);
}

/* =========================================================
   NSD Scene Market Detail Button Harmonization V1 20260920-155649
   Hero and venue actions share one calm, rectangular CTA treatment.
   Scope: scene-market detail pages only; ordinary eventdetail pages stay unchanged.
   SCENE_MARKET_BUTTON_HARMONIZATION_V1
   ========================================================= */
body.nsd .ns-event-detail.ns-scene-market-detail .ns-scene-market-action,
body.nsd .ns-event-detail.ns-scene-market-detail .ns-scene-market-action:link,
body.nsd .ns-event-detail.ns-scene-market-detail .ns-scene-market-action:visited,
body.nsd .ns-event-detail.ns-scene-market-detail .ns-event-venue-map__actions .ns-scene-market-action[data-ns-venue-map-load] {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 2.35rem;
  padding: .54rem .88rem;
  border: 1px solid rgba(129,244,164,.34) !important;
  border-radius: .78rem;
  background: linear-gradient(135deg, rgba(0,255,150,.13), rgba(0,255,150,.055)) !important;
  color: rgba(232,255,239,.95) !important;
  font: inherit;
  font-size: .93rem;
  font-weight: 820;
  line-height: 1.1;
  text-decoration: none !important;
  box-shadow: 0 10px 24px rgba(0,0,0,.16) !important;
  cursor: pointer;
  opacity: 1 !important;
  white-space: nowrap;
}

body.nsd .ns-event-detail.ns-scene-market-detail .ns-scene-market-action:hover,
body.nsd .ns-event-detail.ns-scene-market-detail .ns-scene-market-action:focus-visible,
body.nsd .ns-event-detail.ns-scene-market-detail .ns-event-venue-map__actions .ns-scene-market-action[data-ns-venue-map-load]:hover,
body.nsd .ns-event-detail.ns-scene-market-detail .ns-event-venue-map__actions .ns-scene-market-action[data-ns-venue-map-load]:focus-visible {
  border-color: rgba(129,244,164,.70) !important;
  background: linear-gradient(135deg, rgba(0,255,150,.18), rgba(0,255,150,.08)) !important;
  color: rgba(255,255,255,.98) !important;
  box-shadow: 0 10px 24px rgba(0,0,0,.18) !important;
  text-decoration: none !important;
}

body.nsd .ns-event-detail.ns-scene-market-detail .ns-scene-market-action:focus-visible {
  outline: 2px solid rgba(129,244,164,.72);
  outline-offset: .18rem;
}

/* Venue controls receive the same visual weight and a common minimum width. */
body.nsd .ns-event-detail.ns-scene-market-detail .ns-event-venue__address-actions .ns-scene-market-action,
body.nsd .ns-event-detail.ns-scene-market-detail .ns-event-venue-map__actions .ns-scene-market-action {
  min-width: 10rem;
}

@media (max-width: 640px) {
  body.nsd .ns-event-detail.ns-scene-market-detail .ns-event-hero__source-actions .ns-scene-market-action,
  body.nsd .ns-event-detail.ns-scene-market-detail .ns-event-venue__address-actions .ns-scene-market-action,
  body.nsd .ns-event-detail.ns-scene-market-detail .ns-event-venue-map__actions .ns-scene-market-action {
    width: 100%;
    min-width: 0;
  }
}


/* =========================================================
   NSD Scene Market Venue Button Row Alignment V1 20260920-161630
   Desktop: the left club action and right map actions share the same bottom row.
   Mobile/tablet stacking remains unchanged at <= 820px.
   SCENE_MARKET_VENUE_BUTTON_ROW_ALIGNMENT_V1
   ========================================================= */
@media (min-width: 821px) {
  body.nsd .ns-event-detail.ns-scene-market-detail .ns-event-venue.ns-event-venue--map .ns-event-venue__body {
    display: flex;
    flex-direction: column;
    padding-bottom: 0;
  }

  body.nsd .ns-event-detail.ns-scene-market-detail .ns-event-venue__address-actions {
    margin-top: auto;
    padding-top: .95rem;
  }

  body.nsd .ns-event-detail.ns-scene-market-detail .ns-event-venue-map {
    grid-template-rows: minmax(0, 1fr) auto;
  }
}

/* =========================================================
   NSD Eventdetail Venue Button Row Alignment V1 20260920-164500
   Desktop: club action and map/distance/route actions share one bottom row
   and the same control height. Scene-market detail keeps its dedicated rules.
   Tablet/mobile behavior remains unchanged at <= 900px.
   EVENTDETAIL_VENUE_BUTTON_ROW_ALIGNMENT_V1
   ========================================================= */
@media (min-width: 901px) {
  body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue.ns-event-venue--map .ns-event-venue__body {
    display: flex;
    flex-direction: column;
    padding-bottom: 0;
  }

  body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue__address-actions {
    margin-top: auto;
    padding-top: .95rem;
  }

  body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue__address-actions .ns-event-venue__club-cta {
    box-sizing: border-box;
    min-height: 2.7rem;
    margin: 0;
    padding: .68rem .78rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1.1;
  }

  body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue-map {
    grid-template-rows: minmax(0, 1fr) auto;
  }
}

/* =========================================================
   NSD Eventdetail Venue Button Style Parity V2 20260920-165000
   Ordinary eventdetail venue actions reuse the calm rectangular treatment
   of scene-market venue actions. Three-action event rows keep content-driven
   widths so Karte + Entfernung + Route continue to fit on one desktop row.
   EVENTDETAIL_VENUE_BUTTON_STYLE_PARITY_V2
   ========================================================= */
body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue__address-actions .ns-event-venue__club-cta,
body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue__address-actions .ns-event-venue__club-cta:link,
body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue__address-actions .ns-event-venue__club-cta:visited,
body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue-map__actions .ns-card__cta,
body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue-map__actions .ns-card__cta:link,
body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue-map__actions .ns-card__cta:visited,
body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue-map__actions button.ns-card__cta[data-ns-venue-map-load] {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 2.35rem;
  margin: 0;
  padding: .54rem .88rem;
  border: 1px solid rgba(129,244,164,.34) !important;
  border-radius: .78rem !important;
  background: linear-gradient(135deg, rgba(0,255,150,.13), rgba(0,255,150,.055)) !important;
  color: rgba(232,255,239,.95) !important;
  font: inherit;
  font-size: .93rem;
  font-weight: 820;
  line-height: 1.1;
  text-decoration: none !important;
  box-shadow: 0 10px 24px rgba(0,0,0,.16) !important;
  cursor: pointer;
  opacity: 1 !important;
  white-space: nowrap;
}

body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue__address-actions .ns-event-venue__club-cta {
  min-width: 10rem;
}

body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue-map__actions {
  gap: .55rem !important;
}

body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue__address-actions .ns-event-venue__club-cta:hover,
body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue__address-actions .ns-event-venue__club-cta:focus-visible,
body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue-map__actions .ns-card__cta:hover,
body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue-map__actions .ns-card__cta:focus-visible,
body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue-map__actions button.ns-card__cta[data-ns-venue-map-load]:hover,
body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue-map__actions button.ns-card__cta[data-ns-venue-map-load]:focus-visible {
  border-color: rgba(129,244,164,.70) !important;
  background: linear-gradient(135deg, rgba(0,255,150,.18), rgba(0,255,150,.08)) !important;
  color: rgba(255,255,255,.98) !important;
  box-shadow: 0 10px 24px rgba(0,0,0,.18) !important;
  text-decoration: none !important;
}

body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue__address-actions .ns-event-venue__club-cta:focus-visible,
body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue-map__actions .ns-card__cta:focus-visible {
  outline: 2px solid rgba(129,244,164,.72);
  outline-offset: .18rem;
}

body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue-map__actions .ns-card__cta[disabled] {
  opacity: .72 !important;
  cursor: default;
}

/* =========================================================
   NSD Eventdetail Venue Button Geometry V3 20260920-170500
   Ordinary eventdetail only:
   - collapse the empty distance-status placeholder so it does not reserve
     a phantom line below the distance action;
   - keep all four venue buttons on one visual baseline on desktop;
   - give the three-action map side enough width to stay inside the panel.
   Scene-market detail remains untouched.
   EVENTDETAIL_VENUE_BUTTON_GEOMETRY_V3
   ========================================================= */
@media (min-width: 901px) {
  body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue.ns-event-venue--map {
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  }

  body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue-map,
  body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue-map__placeholder,
  body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue-map__frame,
  body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue-map__actions {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
  }

  body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue-map__actions .ns-event-distance__status:empty {
    display: none;
    min-height: 0;
    margin: 0;
  }
}

/* Between the normal two-column desktop layout and the existing <=820px
   mobile stack, prefer a safe single-column venue block over horizontal
   overflow from the three action buttons. */
@media (min-width: 821px) and (max-width: 1050px) {
  body.nsd .ns-event-detail:not(.ns-scene-market-detail) .ns-event-venue.ns-event-venue--map {
    grid-template-columns: 1fr;
  }
}
