.swp-overlay {
    position: fixed; inset: 0;
    display: none;
    background: rgba(0,0,0,0.5);
    z-index: 999999;
  }
  .swp-overlay[aria-hidden="false"] { display: block; }
  
  .swp-modal {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%,-50%);
    width: min(92vw, 560px);
    background: #fff;
    border-radius: 16px;
    padding: 28px 24px;
    box-shadow: 0 20px 50px rgba(0,0,0,0.25);
    font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  }
  
  .swp-close {
    position: absolute;
    top: 10px; right: 12px;
    border: 0; background: transparent; font-size: 28px; line-height: 1; cursor: pointer;
    color: #333;
  }
  
  .swp-title {
    font-size: 22px;
    line-height: 1.25;
    font-weight: 700;
    margin: 0 0 8px 0;
    color: #111;
  }
  
  .swp-subline {
    margin: 0 0 18px 0;
    color: #444;
    font-size: 15px;
  }
  
  .swp-field { margin-bottom: 12px; }
  .swp-label { display: block; font-size: 13px; color: #333; margin-bottom: 6px; }
  #swp-email, #swp-mobile {
    width: 100%;
    height: 44px;
    border-radius: 10px;
    border: 1px solid #d9d9d9;
    padding: 0 12px;
    font-size: 15px;
    outline: none;
  }
  #swp-email:focus, #swp-mobile:focus {
    border-color: #111;
  }
  
  .swp-btn {
    width: 100%;
    height: 46px;
    border-radius: 12px;
    border: 0;
    cursor: pointer;
    background: #000; /* black button */
    color: #fff;
    font-weight: 700;
    font-size: 15px;
    transition: transform .05s ease, opacity .2s ease;
  }
  .swp-btn:hover { opacity: .9; }
  .swp-btn:active { transform: translateY(1px); }
  
  /* subtle wavy text animation for button label */
  .swp-btn span .w {
    display: inline-block;
    animation: swp-wave 1.6s ease-in-out infinite;
  }
  .swp-btn span .w:nth-child(2){ animation-delay: .05s; }
  .swp-btn span .w:nth-child(3){ animation-delay: .1s; }
  .swp-btn span .w:nth-child(4){ animation-delay: .15s; }
  .swp-btn span .w:nth-child(5){ animation-delay: .2s; }
  @keyframes swp-wave {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-2px); }
  }
  
  .swp-note {
    margin-top: 12px;
    font-size: 12px;
    color: #666;
  }
  
  /* Thank you state */
  .swp-thanks-title { margin: 0 0 8px 0; }
  .swp-thanks-text { margin: 0; }
  
  /* Ensure the whole label respects spaces */
.swp-btn .swp-wave {
  display: inline-block;
  white-space: pre-wrap;
}

/* Slight breathing room between letters */
.swp-btn span .w {
  display: inline-block;
  animation: swp-wave 1.6s ease-in-out infinite;
  margin-right: 0.02em;           /* tiny kerning */
}

/* Give spaces real width so words separate properly */
.swp-btn span .w-space {
  width: 0.38em;                  /* adjust if needed */
  margin-right: 0;                /* no extra gap after space */
}

/* Optional: global letter spacing for even more readability */
.swp-btn { letter-spacing: 0.2px; }

  
  
  @media (max-width: 360px) {
  .swp-btn span .w { animation: none; }
}
