body.modal-open { overflow:hidden; }
.purchase-dialog { position:fixed; inset:0; margin:auto; width:min(690px,94vw); max-width:94vw; max-height:88svh; overflow:auto; padding:36px; border:1px solid #572230; border-radius:12px; background:#100b0d; color:#f6f5ef; box-shadow:0 24px 100px #000b; opacity:0; transform:translateY(12px) scale(.97); transition:opacity .3s ease,transform .3s ease; font-family:Arial,Helvetica,sans-serif; }
.purchase-dialog.is-open { opacity:1; transform:none; }
.purchase-dialog::backdrop { background:#000c; backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px); }
.purchase-dialog h2 { font-size:28px; margin:0 35px 26px 0; color:#f6f5ef; }
.purchase-dialog .dialog-close { position:sticky; top:0; float:right; margin:-22px -18px 0 0; width:40px; height:40px; background:#1e1219; border:0; border-radius:8px; color:white; font-size:30px; line-height:1; z-index:8; cursor:pointer; }
.purchase-dialog .dialog-close:hover { background:#6c0821; }
.purchase-dialog :focus-visible { outline:2px solid #e9c77e; outline-offset:3px; }
.purchase-dialog #order-summary { margin:0 0 25px; padding-left:22px; font-size:14px; line-height:1.6; }
.purchase-dialog .checkout-fields { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.purchase-dialog .checkout-fields label { display:grid; gap:7px; font-size:14px; }
.purchase-dialog .wide-field { grid-column:1/-1; }
.purchase-dialog .checkout-fields input,.purchase-dialog .checkout-fields select,.purchase-dialog .field input,.purchase-dialog .field select { box-sizing:border-box; width:100%; min-width:0; background:#24181e; color:#fff; border:1px solid #78515e; border-radius:6px; padding:11px; font:14px Arial,sans-serif; }
.purchase-dialog .action-button { border:1px solid #b57c15; border-radius:20px; padding:11px 20px; background:linear-gradient(95deg,#e7ae28,#ffa914); color:#191007; font-weight:700; font-size:14px; min-height:42px; cursor:pointer; }
.purchase-dialog .action-button:hover { background:#ffd56d; box-shadow:0 0 17px #b87d2544; }
.purchase-dialog #checkout-form > button { margin-top:24px; width:100%; }
.purchase-dialog.donation-dialog { width:min(570px,94vw); padding:38px 30px 28px; }
.purchase-dialog.donation-dialog h2 { margin:0 40px 12px 0; font-size:27px; }
.purchase-dialog .modal-intro,.purchase-dialog .privacy-note { font-size:13px; line-height:1.5; color:#cdc3c6; }
.purchase-dialog .privacy-note { margin:0; font-size:12px; }
.purchase-dialog .donation-form { display:grid; gap:16px; }
.purchase-dialog .field { display:grid; gap:7px; }
.purchase-dialog .field label { font-size:14px; }
.purchase-dialog .field small { font-size:12px; color:#cdc3c6; }
.purchase-dialog .submit-donation { min-height:48px; border:0; border-radius:6px; background:#a21030; color:#fff; padding:12px; font-weight:700; cursor:pointer; }
.purchase-dialog .submit-donation:hover { background:#bd1539; }
@media(max-width:700px) { .purchase-dialog { padding:35px 22px 25px; }.purchase-dialog .checkout-fields { grid-template-columns:1fr; }.purchase-dialog.donation-dialog { padding:38px 22px 24px; } }
