/* Intentionally scoped to payment modal; existing product registry styles are untouched. */
.wreg-payment-scroll-lock { overflow: hidden !important; }
.wreg-payment-modal { position: fixed; inset: 0; z-index: 2147483000; display: none; font-family: 'Manrope', Arial, sans-serif; }
.wreg-payment-modal.is-open { display: flex; align-items: center; justify-content: center; padding: 12px; }
.wreg-payment-modal * { box-sizing: border-box; }
.wreg-payment-backdrop { position: absolute; inset: 0; background: rgba(30,22,25,.66); backdrop-filter: blur(5px); -webkit-backdrop-filter:blur(5px); }
.wreg-payment-dialog { position: relative; display: flex; flex-direction: column; width: min(590px, 100%); height: min(94dvh, 960px); max-height: min(94dvh, 960px); background: #fff; border-radius: 15px; box-shadow: 0 24px 80px rgba(0,0,0,.2); overflow: hidden; overscroll-behavior: contain; color: #403838; }
.wreg-payment-header { flex: 0 0 auto; position: relative; z-index: 1; background: #fff; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 27px 28px 13px; }
.wreg-payment-heading-wrap { min-width: 0; }
.wreg-payment-eyebrow { display:block; margin-bottom: 8px; color: #96656e; font-size: 10px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.wreg-payment-title { margin: 0; font: italic 400 clamp(26px,4vw,35px)/1.05 'Cormorant Garamond', Georgia, serif; color: #96656e; }
.wreg-payment-product { margin: 10px 0 0; font-size: 12px; font-weight: 500; line-height: 1.55; color: #625859; }
.wreg-payment-close { flex: 0 0 36px; width: 36px; height: 36px; padding: 0; display:grid; place-items:center; cursor: pointer; background: #f8f2f3; border: 0; border-radius: 100%; font-size: 28px; font-weight: 300; line-height: 1; color: #855e66; }
.wreg-payment-close:hover { background: #f0e2e6; }
.wreg-payment-close:focus-visible { outline: 2px solid #855e66; outline-offset: 3px; }
.wreg-payment-content { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 0 22px; }
.wreg-payment-status { padding: 16px 12px; margin: 8px 0; background: #fbf7f5; color: #685759; font-size: 13px; line-height: 1.6; border-radius: 8px; }
.wreg-payment-status[data-status="error"] { background:#fff0ee; color:#922f34; }
.wreg-payment-status[data-status="success"] { background:#eff7f2; color:#1d6744; }
.wreg-payment-status[hidden] { display:none; }
.wreg-payment-stripe { min-height: 0; width:100%; }
.wreg-payment-footer { flex: 0 0 auto; background: #fff; text-align:center; border-top:1px solid #efe8e6; padding: 15px 24px 20px; font-size: 10px; color:#847476; line-height:1.6; }
@media (max-width: 520px) {
  .wreg-payment-modal.is-open { padding: 0; align-items: stretch; }
  .wreg-payment-dialog { border-radius: 0; width:100%; height:100dvh; min-height:100dvh; max-height:100dvh; }
  .wreg-payment-header { padding: 19px 20px 13px; }
  .wreg-payment-content { padding: 0 13px; }
  .wreg-payment-footer { padding: 12px 18px 18px; }
}
@media (prefers-reduced-motion:reduce){.wreg-payment-modal * {scroll-behavior:auto !important;transition:none !important;}}

/* v1.6.2: Stripe owns its embedded iframe's scrolling. The dialog shell
   never scrolls: heading and close control remain accessible at all times. */
@supports (height: 100svh) {
  @media (max-width: 520px) {
    .wreg-payment-dialog { height: 100dvh; }
  }
}
.wreg-payment-content:focus-visible { outline: 2px solid #96656e; outline-offset: -2px; }
