.ne-location-dialog {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: none;
  place-items: center;
  padding: 22px;
  box-sizing: border-box;
}

.ne-location-dialog.is-open { display: grid; }

.ne-location-dialog-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .82);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}

.ne-location-dialog-card {
  position: relative;
  width: min(520px, 100%);
  max-height: calc(100vh - 44px);
  overflow-y: auto;
  padding: 38px 34px;
  box-sizing: border-box;
  text-align: center;
  background: linear-gradient(145deg, #171717, #080808);
  border: 1px solid rgba(216, 170, 59, .65);
  border-radius: 22px;
  box-shadow: 0 28px 90px rgba(0, 0, 0, .72), 0 0 40px rgba(216, 170, 59, .12);
  color: #fff;
}

.ne-location-dialog-icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 20px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(135deg, #ad781b, #e7b431 55%, #f1d27b);
  box-shadow: 0 10px 30px rgba(216, 170, 59, .3);
  color: #090909;
  font-size: 27px;
}

.ne-location-dialog-card h2 {
  margin: 0 0 13px;
  color: #fff;
  font-size: clamp(26px, 4vw, 34px);
  line-height: 1.1;
}

.ne-location-dialog-card p {
  margin: 0 auto 25px;
  max-width: 420px;
  color: #c9c4ba;
  font-size: 16px;
  line-height: 1.65;
}

.ne-location-dialog-actions { display: grid; gap: 11px; }

.ne-location-dialog-actions button {
  width: 100%;
  min-height: 56px;
  padding: 13px 20px;
  border-radius: 13px;
  font: inherit;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .03em;
  cursor: pointer;
}

.ne-location-dialog-allow {
  border: 0;
  background: linear-gradient(135deg, #ad781b, #e7b431 55%, #f1d27b);
  color: #090909;
}

.ne-location-dialog-cancel {
  border: 1px solid #3b3b3b;
  background: #202020;
  color: #fff;
}

.ne-location-dialog-actions button:hover,
.ne-location-dialog-actions button:focus-visible {
  transform: translateY(-1px);
  outline: 2px solid #f1d27b;
  outline-offset: 2px;
}

.ne-location-dialog-card small {
  display: block;
  margin-top: 17px;
  color: #929292;
  font-size: 12px;
}

.ne-location-dialog-open { overflow: hidden; }
.ne-location-dialog[aria-hidden="true"] { pointer-events: none; }

@media (max-width: 575px) {
  .ne-location-dialog { padding: 15px; }
  .ne-location-dialog-card { padding: 30px 20px; border-radius: 17px; }
  .ne-location-dialog-card p { font-size: 14px; }
  .ne-location-dialog-icon { width: 56px; height: 56px; font-size: 23px; }
}
