/**
 * Simform Popup Builder – Frontend Styles
 *
 * @package SimformPopupBuilder
 */

/* =========================================================================
   CSS Custom Properties
   ========================================================================= */
:root {
  --spb-z-overlay: 99999;
  --spb-radius: 12px;
  --spb-shadow: 0 24px 60px rgba(0, 0, 0, 0.25);
  --spb-transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --spb-backdrop-bg: rgba(0, 0, 0, 0.55);
  --spb-close-size: 32px;
  --spb-max-width: 620px;
}

/* =========================================================================
   Overlay
   ========================================================================= */
.spb-popup-overlay {
  position: fixed;
  inset: 0;
  z-index: var(--spb-z-overlay);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 40px 16px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.spb-popup-overlay.spb-is-open {
  display: flex !important;
}

/* =========================================================================
   Backdrop
   ========================================================================= */
.spb-popup__backdrop {
  position: fixed;
  inset: 0;
  background: var(--spb-backdrop-bg);
  cursor: pointer;
}

/* =========================================================================
   Popup Wrap
   ========================================================================= */
.spb-popup__wrap {
  position: relative;
  z-index: 1;
  max-width: 60vw;
  width: auto;
  background: #ffffff;
  color: #1a1a1a;
  border-radius: var(--spb-radius);
  box-shadow: var(--spb-shadow);
  margin: auto;
  overflow: visible;
}

/* =========================================================================
   Image
   ========================================================================= */
.spb-popup__image {
  width: 100%;
  line-height: 0;
}

.spb-popup__image img {
  max-width: 100%;
  height: auto;
  display: block;
  border-radius: var(--spb-radius) var(--spb-radius) 0 0;
}

/* =========================================================================
   Body
   ========================================================================= */
.spb-popup__body {
  padding: 36px 40px 32px;
}

.spb-popup__content {
  margin-bottom: 24px;
  font-size: 1rem;
  color: inherit;
}

/* =========================================================================
   Close Button
   ========================================================================= */
.spb-popup__close {
  position: absolute;
  top: -30px;
  right: -35px;
  width: var(--spb-close-size);
  height: var(--spb-close-size);
  border: none;
  background: #D9C3FF !important;
  border-radius: 50%;
  z-index: 10 !important;
}

.spb-popup__close:hover {
  transform: scale(1.1);
}

.spb-popup__close:focus-visible {
  outline: none;
  box-shadow: none;
}

/* =========================================================================
   Animations
   ========================================================================= */

/* --- Fade --- */
.spb-anim-fade .spb-popup__wrap {
  animation: spbFadeIn var(--spb-transition) both;
}

@keyframes spbFadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

/* --- Slide Up --- */
.spb-anim-slide_up .spb-popup__wrap {
  animation: spbSlideUp var(--spb-transition) both;
}

@keyframes spbSlideUp {
  from {
    opacity: 0;
    transform: translateY(40px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* --- Slide Down --- */
.spb-anim-slide_down .spb-popup__wrap {
  animation: spbSlideDown var(--spb-transition) both;
}

@keyframes spbSlideDown {
  from {
    opacity: 0;
    transform: translateY(-40px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* --- Zoom In --- */
.spb-anim-zoom_in .spb-popup__wrap {
  animation: spbZoomIn var(--spb-transition) both;
}

@keyframes spbZoomIn {
  from {
    opacity: 0;
    transform: scale(0.85);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* Bounce */
.spb-anim-bounce .spb-popup__wrap {
  animation: spbBounce 0.5s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
}

@keyframes spbBounce {
  0% {
    opacity: 0;
    transform: scale(0.7);
  }

  60% {
    opacity: 1;
    transform: scale(1.05);
  }

  80% {
    transform: scale(0.97);
  }

  100% {
    transform: scale(1);
  }
}

/* Responsive */
@media (max-width: 600px) {
  .spb-popup-overlay {
    align-items: flex-start;
    padding: 16px;
  }

  .spb-popup__wrap {
    max-width: 100vw;
    width: 100%;
    border-radius: var(--spb-radius);
    margin: auto;
  }

  .spb-popup__body {
    padding: 28px 24px 32px;
  }
}