/* NSD Party Nearby Search Block UX Polish V1 20260712.
   Compact shared Nearby controls for /partys and the compatibility page. */

.nsd-nearby-search {
  margin-top: 2rem;
}

.nsd-nearby-search .nsd-nearby-search__header {
  max-width: 72rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(0, 255, 150, .28);
}

.nsd-nearby-search .nsd-nearby-search__title,
.nsd-nearby-search .ns-party-main-section-title {
  margin: 0 0 .45rem;
  color: #f3f6f5;
  font-size: clamp(1.25rem, 2.4vw, 1.7rem);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.nsd-nearby-search .nsd-nearby-search__intro {
  max-width: 60rem;
  margin: 0;
}

.nsd-nearby-search .nsd-nearby-search__privacy {
  max-width: 60rem;
  margin: .35rem 0 0;
  color: rgba(225, 234, 231, .72);
  font-size: .82rem;
  line-height: 1.5;
}

.nsd-nearby-search .nsd-nearby-search__controls {
  margin-top: 1rem;
  padding: 1rem 1.25rem;
  border: 1px solid rgba(0, 255, 150, .16);
  border-radius: 1rem;
  background: rgba(5, 12, 14, .72);
}

.nsd-nearby-search .nsd-nearby-search__control-row {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: .9rem 1rem;
}

.nsd-nearby-search .nsd-nearby-search__radius-label {
  flex: 0 0 auto;
  margin: 0;
}

.nsd-nearby-search .nsd-nearby-search__radius-label .ns-label {
  display: block;
  margin-bottom: .35rem;
}

.nsd-nearby-search .nsd-nearby-search__radius-label .ns-select {
  min-width: 8rem;
  min-height: 44px;
}

.nsd-nearby-search .ns-nearby-start {
  min-height: 44px;
  margin: 0;
  border: 0;
  cursor: pointer;
  font: inherit;
  white-space: nowrap;
}

.nsd-nearby-search .ns-nearby-start:disabled {
  cursor: wait;
  opacity: .65;
}

.nsd-nearby-search .ns-nearby-start:focus-visible,
.nsd-nearby-search .nsd-nearby-search__radius-label .ns-select:focus-visible {
  outline: 2px solid #00ff96;
  outline-offset: 3px;
}

.nsd-nearby-search .nsd-nearby-search__summary {
  margin: .8rem 0 0;
  color: rgba(225, 234, 231, .78);
  text-align: left;
}

.nsd-nearby-search .nsd-nearby-search__status {
  min-height: 1.25rem;
  margin: .35rem 0 0;
  color: rgba(225, 234, 231, .72);
  font-size: .82rem;
  line-height: 1.45;
  text-align: left;
}

.nsd-nearby-search .nsd-nearby-search__status:empty,
.nsd-nearby-search .ns-nearby-results:empty {
  display: none;
}

.nsd-nearby-search .nsd-nearby-search__status[data-state="error"] {
  color: #ff9c9c;
}

.nsd-nearby-search .nsd-nearby-search__status[data-state="success"],
.nsd-nearby-search .ns-nearby-distance {
  color: #00ff96;
}

.nsd-nearby-search .ns-nearby-card-list {
  margin-top: .3rem;
}

.nsd-nearby-search .ns-nearby-empty,
.nsd-nearby-search .ns-nearby-noscript {
  margin-top: 1rem;
}

.nsd-nearby-search .ns-nearby-empty p:last-child,
.nsd-nearby-search .ns-nearby-noscript p:last-child {
  margin-bottom: 0;
}

.nsd-nearby-search .ns-nearby-distance {
  margin-top: .25rem;
  font-size: .78rem;
  font-weight: 600;
}

.nsd-nearby-search .ns-party-main-initial {
  margin-top: 1.5rem;
}

.nsd-nearby-search .ns-party-main-initial > .ns-party-main-section-title {
  padding-top: 1rem;
  border-top: 1px solid rgba(0, 255, 150, .28);
}

@media (max-width: 700px) {
  .nsd-nearby-search .nsd-nearby-search__controls {
    padding: .9rem;
  }

  .nsd-nearby-search .nsd-nearby-search__control-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .75rem;
  }

  .nsd-nearby-search .nsd-nearby-search__radius-label,
  .nsd-nearby-search .nsd-nearby-search__radius-label .ns-select,
  .nsd-nearby-search .ns-nearby-start {
    width: 100%;
  }

  .nsd-nearby-search .ns-nearby-start {
    justify-content: center;
    white-space: normal;
  }

  .nsd-nearby-search .nsd-nearby-search__summary {
    margin-top: .75rem;
  }
}


/* Desktop Design Phase 5: Nearby stays in its mobile DOM order and overlaps the shared hero only on desktop. */
@media (min-width: 701px) {
  .nsd-nearby-search--hero { margin-top: 0; }
  .nsd-nearby-search--hero .nsd-page-hero--party-main { min-height: 300px; padding-top: 3rem; padding-bottom: 4.75rem; }
  .nsd-nearby-search--hero .nsd-page-hero--party-main .nsd-page-hero__content > p:nth-of-type(n+2) { display: none; }
  .nsd-nearby-search--hero > .nsd-nearby-search__header { display: none; }
  .nsd-nearby-search--hero > .nsd-nearby-search__controls { position: relative; z-index: 2; width: min(900px, calc(100% - 3rem)); margin: -5.7rem auto var(--nsd-space-4); padding: var(--nsd-space-3) var(--nsd-space-4); border: 1px solid var(--nsd-border-accent-soft); border-radius: var(--nsd-radius-panel); background: rgba(5,12,14,.72); backdrop-filter: blur(4px); }
  .nsd-nearby-search--hero .nsd-nearby-search__summary { margin-top: var(--nsd-space-2); }
  .nsd-nearby-search--hero .nsd-nearby-search__status { margin-top: var(--nsd-space-1); }
  .nsd-nearby-search--hero .nsd-nearby-search__privacy--compact { margin-top: var(--nsd-space-1); font-size: var(--nsd-type-label-size); }
  .nsd-nearby-search--hero .ns-party-main-initial { margin-top: var(--nsd-space-section); }
  .nsd-nearby-search--hero .ns-party-main-initial > .ns-party-main-section-title { padding-top: 0; border-top: 0; }
}
@media (max-width: 700px) {
  .nsd-nearby-search--hero { margin-top: 0; }
  .nsd-nearby-search--hero > .nsd-nearby-search__header { margin-top: 2rem; }
  .nsd-nearby-search--hero .nsd-nearby-search__privacy--compact { display: none; }
}

/* Desktop Design Phase 8 – Nearby utility visually belongs to the hero, without changing DOM/JS selectors. */
@media (min-width: 701px) {
  .nsd-nearby-search--hero .nsd-page-hero--party-main {
    min-height: 255px;
    padding-top: 2.35rem;
    padding-bottom: 5.35rem;
  }
  .nsd-nearby-search--hero > .nsd-nearby-search__controls {
    width: min(900px, calc(100% - 3rem));
    margin: -5.25rem auto var(--nsd-space-4);
    padding: var(--nsd-space-2) 0 0;
    border: 0;
    border-top: 1px solid rgba(255,255,255,.14);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
  }
  .nsd-nearby-search--hero .nsd-nearby-search__control-row {
    gap: var(--nsd-space-2) var(--nsd-space-3);
  }
  .nsd-nearby-search--hero .nsd-nearby-search__radius-label .ns-label {
    margin-bottom: var(--nsd-space-1);
  }
  .nsd-nearby-search--hero .nsd-nearby-search__summary,
  .nsd-nearby-search--hero .nsd-nearby-search__status,
  .nsd-nearby-search--hero .nsd-nearby-search__privacy--compact {
    color: rgba(232,249,243,.72);
  }
}

/* Nerdschmie.de Desktop Design Phase 8f – Party hero rhythm parity.
   /partys keeps its dedicated Nearby DOM and GPS logic, but the visible hero
   now uses the same desktop vertical geometry as the other landing heroes.
   The Nearby controls no longer consume reserved hero-bottom space via a
   negative overlap; they follow the hero with the shared 24px section gap. */
@media (min-width: 701px) {
  .nsd-nearby-search--hero .nsd-page-hero--party-main {
    min-height: 340px;
    padding: 4rem 1.5rem 2rem;
  }

  .nsd-nearby-search--hero > .nsd-nearby-search__controls {
    margin: var(--nsd-space-5) auto var(--nsd-space-4);
  }
}


/* Nerdschmie.de Desktop Design Phase 8g – Party Nearby slider inside hero.
   The visible Nearby UI is a single compact row in the hero. Required
   summary/status hooks remain screen-reader-only for the existing controller. */
.nsd-nearby-search__sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.nsd-page-hero--party-main .nsd-page-hero__after-content {
  margin-top: var(--nsd-space-4);
  padding-top: var(--nsd-space-3);
  border-top: 1px solid rgba(255,255,255,.14);
}

.nsd-nearby-hero-inline__row {
  display: flex;
  align-items: center;
  gap: var(--nsd-space-3);
  width: 100%;
}

.nsd-nearby-hero-inline__range-wrap {
  display: flex;
  align-items: center;
  gap: var(--nsd-space-3);
  min-width: 0;
  margin: 0;
}

.nsd-nearby-hero-inline__range {
  width: clamp(220px, 30vw, 360px);
  height: 24px;
  margin: 0;
  accent-color: var(--nsd-color-accent);
  cursor: pointer;
}

.nsd-nearby-hero-inline__range:focus-visible {
  outline: 2px solid var(--nsd-color-accent);
  outline-offset: 3px;
  border-radius: var(--nsd-radius-pill);
}

.nsd-nearby-hero-inline__value {
  min-width: 4.3rem;
  color: var(--nsd-color-text-body);
  font-size: var(--nsd-type-meta-size);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.nsd-nearby-hero-inline__button {
  min-height: 42px;
  margin: 0;
  border: 0;
  cursor: pointer;
  white-space: nowrap;
}

.nsd-nearby-hero-inline__button:disabled {
  cursor: wait;
  opacity: .65;
}

@media (min-width: 701px) {
  .nsd-nearby-search--hero .nsd-page-hero--party-main {
    min-height: 340px;
    padding: 4rem 1.5rem 2rem;
  }

  .nsd-nearby-search--hero .ns-party-main-initial {
    margin-top: var(--nsd-space-5);
  }
}

@media (max-width: 700px) {
  .nsd-nearby-hero-inline__row {
    align-items: stretch;
    flex-direction: column;
  }

  .nsd-nearby-hero-inline__range-wrap,
  .nsd-nearby-hero-inline__range,
  .nsd-nearby-hero-inline__button {
    width: 100%;
  }

  .nsd-nearby-hero-inline__range-wrap {
    justify-content: space-between;
  }
}
