/* SmartPush popup — the theme's frame around a SmartPush embedded form. */
/* Closed = invisible but still laid out, so SmartPush measures a real box when it draws the form. */
.sp-popup[hidden] { visibility: hidden; pointer-events: none; }
.sp-popup { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: var(--gutter); }
.sp-popup__overlay { position: absolute; inset: 0; background: rgb(26 26 26 / var(--sp-overlay)); opacity: 0; transition: opacity .25s ease; }
.sp-popup__dialog {
  position: relative; display: grid; grid-template-columns: 1fr;
  width: 100%; max-width: var(--sp-width); max-height: calc(100dvh - 2 * var(--gutter)); overflow: auto; overscroll-behavior: contain;
  background: rgba(var(--color-background)); color: rgba(var(--color-text));
  font-family: var(--font-ui); font-size: var(--fs-body); line-height: var(--lh-normal);
  box-shadow: 0 24px 60px rgba(26, 26, 26, .18);
  opacity: 0; transform: translateY(12px); transition: opacity .25s ease, transform .25s ease;
}
.sp-popup__dialog:focus { outline: none; }
.sp-popup.is-open .sp-popup__overlay,
.sp-popup.is-open .sp-popup__dialog { opacity: 1; transform: none; }

.sp-popup__close {
  position: absolute; top: 10px; right: 10px; z-index: 2;
  width: 36px; height: 36px; display: grid; place-items: center;
  border: 0; border-radius: 50%; background: rgba(var(--color-background), .85); color: inherit; cursor: pointer;
}
.sp-popup__close:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* The SmartPush form brings its own padding, and scales itself to the width it gets. */
.sp-popup__body { min-width: 0; }
.sp-popup.is-empty .sp-popup__body { padding: 3rem 2rem 2rem; }
.sp-popup__body > [data-sp-mount] { max-width: 100%; }
.sp-popup__body > [data-sp-mount] * { max-width: 100%; }
.sp-popup__media { display: none; }
.sp-popup__media img { width: 100%; height: 100%; object-fit: cover; display: block; }

.sp-popup__empty { display: none; margin: 0; font-size: var(--fs-sm); color: var(--body); }
.sp-popup.is-empty .sp-popup__empty { display: block; }

@media (min-width: 750px) {
  .sp-popup--has-image .sp-popup__dialog { grid-template-columns: 2fr 3fr; max-width: calc(var(--sp-width) * 1.5); }
  .sp-popup--has-image .sp-popup__media { display: block; }
}

/* Bottom-left slide-in: no page lock, overlay stays out of the way. */
.sp-popup--corner { inset: auto auto 0 0; padding: 16px; width: 100%; max-width: calc(var(--sp-width) + 32px); display: block; }
.sp-popup--corner .sp-popup__overlay { display: none; }
.sp-popup--corner .sp-popup__dialog { max-height: calc(100dvh - 32px); }
.sp-popup--corner.sp-popup--has-image .sp-popup__dialog { max-width: 100%; grid-template-columns: 1fr; }
.sp-popup--corner .sp-popup__media { display: none; }

@media (prefers-reduced-motion: reduce) {
  .sp-popup__overlay, .sp-popup__dialog { transition: none; }
}

@media (max-width: 749px) {
  .sp-popup { padding: 12px; }
}

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