/* =============================================================================
   Storefront — payment modal (Razorpay checkout overlay)
   Used by: index.html (#payment-modal)

   Distinct from .modal-overlay above — different z-index (3000 so it sits
   above generic modals), darker backdrop, more pronounced shadow. The mobile
   scroll-the-overlay treatment is the same as components/modal.css and for
   the same iOS Safari keyboard reason — the guest-checkout form was the
   original repro of that bug.
   ============================================================================= */

.payment-modal {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.8);
  backdrop-filter: blur(10px);
  z-index: 3000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  overflow-y: auto;
}
.payment-modal.active { display: flex; }

.payment-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  width: 100%;
  max-width: 480px;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.5);
  margin: auto;
}
.payment-header { padding: 2rem; border-bottom: 1px solid var(--border); text-align: center; }
.payment-header h2 { font-family: var(--font-display); font-size: 1.5rem; }
.payment-body { padding: 2rem; }
.payment-amount { font-size: 2rem; font-weight: 700; color: var(--accent); text-align: center; margin-bottom: 2rem; }
.payment-form { display: none; flex-direction: column; gap: 1rem; }
.payment-form.active { display: flex; }
.payment-footer { padding: 1.5rem 2rem; background: rgba(255, 255, 255, 0.02); display: flex; gap: 1rem; }
.payment-processing { display: none; flex-direction: column; align-items: center; gap: 1.5rem; padding: 4rem 2rem; }
.payment-processing.active { display: flex; }
.payment-spinner {
  width: 50px;
  height: 50px;
  border: 4px solid rgba(255, 107, 53, 0.1);
  border-top-color: var(--secondary);
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@media (max-width: 768px) {
  .payment-modal { align-items: flex-start; justify-content: center; padding: 0.5rem; -webkit-overflow-scrolling: touch; }
  .payment-card { max-height: none; overflow-y: visible; margin: 0.5rem auto; max-width: 100%; }
  .payment-header { padding: 1.25rem; position: sticky; top: 0; background: var(--surface); z-index: 1; }
  .payment-body { padding: 1.25rem; }
  .payment-footer { padding: 1rem 1.25rem; flex-direction: column; gap: 0.6rem; }
  .payment-footer .btn { width: 100%; }
}

@media (max-width: 480px) {
  .payment-header h2 { font-size: 1.2rem; }
  .payment-amount { font-size: 1.75rem; margin-bottom: 1.25rem; }
  .payment-body { padding: 1rem; }
}
