.sp-lock, .sp-lock body { overflow: hidden; }

.sp-overlay {
  position: fixed; inset: 0; z-index: 2147483000;
  display: flex; align-items: center; justify-content: center;
  padding: 16px; box-sizing: border-box;
  background: rgba(14, 32, 56, 0.62);
  opacity: 0; transition: opacity .25s ease;
}
.sp-overlay.sp-in { opacity: 1; }

.sp-box {
  position: relative; width: 100%; max-width: 720px;
  max-height: calc(100vh - 32px); overflow-y: auto;
  background: #fff; border-radius: 6px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, .35);
  transform: translateY(14px) scale(.98); transition: transform .3s ease;
  -webkit-overflow-scrolling: touch;
}
.sp-in .sp-box { transform: none; }

.sp-close {
  position: absolute; top: 6px; right: 8px; z-index: 2;
  width: 40px; height: 40px; border: 0; background: transparent;
  font: 400 32px/1 Arial, sans-serif; color: #6b7785; cursor: pointer;
}
.sp-close:hover { color: #1b2a3f; }
.sp-close:focus-visible { outline: 2px solid #3f6fa8; outline-offset: 2px; }

/* Slide-in: bottom-right card, page stays usable */
.sp-overlay.sp-slidein {
  inset: auto 16px 16px auto; padding: 0; background: transparent; display: block;
}
.sp-slidein .sp-box { max-width: 400px; max-height: 80vh; }

/* Fullscreen takeover */
.sp-overlay.sp-fullscreen { padding: 0; background: #fff; }
.sp-fullscreen .sp-box { max-width: none; height: 100%; max-height: none; border-radius: 0; box-shadow: none; display: flex; align-items: center; justify-content: center; }

/* Honeypot and errors */
.sp-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.sp-error { color: #b42318; font: 15px/1.4 Arial, sans-serif; margin: 8px 0 0; text-align: center; }
.sp-error:empty { display: none; }

@media (max-width: 600px) {
  .sp-overlay.sp-slidein { inset: auto 8px 8px 8px; }
  .sp-slidein .sp-box { max-width: none; }
}
@media (prefers-reduced-motion: reduce) {
  .sp-overlay, .sp-box { transition: none; }
}
