diff --git a/web/app/cart/page.js b/web/app/cart/page.js index cb378a25..82a3d8bb 100644 --- a/web/app/cart/page.js +++ b/web/app/cart/page.js @@ -57,6 +57,11 @@ function PaymentForm({ clientSecret, totalAmount, onSuccess, onCancel }) {

Total to pay: ${parseFloat(totalAmount).toFixed(2)}

+
+ Demo mode — no real charge. Use test card: + 4242 4242 4242 4242 + · any future date · any 3-digit CVC +
{payError &&

{payError}

}
diff --git a/web/app/globals.css b/web/app/globals.css index bd87fc76..b33b8f62 100644 --- a/web/app/globals.css +++ b/web/app/globals.css @@ -152,7 +152,7 @@ body { .image-links-container { display: grid; - grid-template-columns: repeat(4, 1fr); + grid-template-columns: repeat(3, 1fr); gap: 2rem; justify-content: center; align-items: stretch; @@ -710,6 +710,7 @@ body { margin: 0 auto; padding: 0 2rem 4rem; display: grid; + grid-template-columns: repeat(3, 1fr); gap: 1.5rem; } @@ -884,11 +885,15 @@ body { .slideshow-container { height: 300px; } - + .image-links-container { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; } + + .info-content { + grid-template-columns: 1fr; + } .main-title { font-size: 2rem; @@ -2637,6 +2642,25 @@ body { margin: 0; } +.cart-demo-banner { + background: #fffbeb; + border: 1px solid #fcd34d; + border-radius: 8px; + padding: 0.6rem 0.9rem; + font-size: 0.85rem; + color: #78350f; + line-height: 1.5; +} + +.cart-demo-card { + font-family: monospace; + font-weight: 700; + margin: 0 0.25rem; + background: #fef3c7; + padding: 0.1rem 0.35rem; + border-radius: 4px; +} + .cart-payment-actions { display: flex; flex-direction: column;