@o2vend/theme-cli 1.0.36 → 1.0.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/README.md +4 -0
  2. package/lib/lib/dev-server.js +344 -48
  3. package/lib/lib/liquid-engine.js +3 -1
  4. package/lib/lib/mock-data.js +473 -119
  5. package/lib/lib/widget-service.js +12 -4
  6. package/package.json +2 -2
  7. package/test-theme/assets/async-sections.js +32 -24
  8. package/test-theme/assets/cart-drawer.js +20 -22
  9. package/test-theme/assets/cart-manager.js +1 -15
  10. package/test-theme/assets/checkout-price-handler.js +12 -11
  11. package/test-theme/assets/checkout.css +1415 -0
  12. package/test-theme/assets/checkout.js +3174 -0
  13. package/test-theme/assets/components.css +178 -29
  14. package/test-theme/assets/delivery-zone.js +1 -1
  15. package/test-theme/assets/product-detail.css +1050 -0
  16. package/test-theme/assets/product-detail.js +2940 -0
  17. package/test-theme/assets/theme.css +95 -120
  18. package/test-theme/assets/theme.js +781 -186
  19. package/test-theme/layout/theme.liquid +91 -17
  20. package/test-theme/sections/content.liquid +64 -57
  21. package/test-theme/sections/footer-fallback.liquid +57 -7
  22. package/test-theme/sections/footer.liquid +63 -12
  23. package/test-theme/sections/header-fallback.liquid +41 -41
  24. package/test-theme/sections/header.liquid +41 -51
  25. package/test-theme/sections/hero-fallback.liquid +1 -1
  26. package/test-theme/sections/hero.liquid +159 -136
  27. package/test-theme/snippets/account-sidebar.liquid +121 -29
  28. package/test-theme/snippets/add-to-cart-modal.liquid +258 -206
  29. package/test-theme/snippets/breadcrumbs.liquid +98 -11
  30. package/test-theme/snippets/cart-drawer.liquid +93 -0
  31. package/test-theme/snippets/delivery-zone-city-selector.liquid +101 -15
  32. package/test-theme/snippets/delivery-zone-modal.liquid +529 -84
  33. package/test-theme/snippets/delivery-zone-search.liquid +104 -18
  34. package/test-theme/snippets/login-modal.liquid +269 -82
  35. package/test-theme/snippets/mega-menu.liquid +130 -43
  36. package/test-theme/snippets/news-thumbnail.liquid +120 -28
  37. package/test-theme/snippets/pagination.liquid +1 -1
  38. package/test-theme/snippets/price.liquid +100 -9
  39. package/test-theme/snippets/product-card-related.liquid +22 -4
  40. package/test-theme/snippets/product-card-simple.liquid +521 -25
  41. package/test-theme/snippets/product-card.liquid +145 -232
  42. package/test-theme/snippets/rating.liquid +100 -9
  43. package/test-theme/snippets/skeleton-collection-grid.liquid +94 -8
  44. package/test-theme/snippets/skeleton-product-card.liquid +102 -16
  45. package/test-theme/snippets/skeleton-product-grid.liquid +87 -1
  46. package/test-theme/snippets/social-sharing.liquid +133 -32
  47. package/test-theme/templates/account/dashboard.liquid +30 -0
  48. package/test-theme/templates/account/loyalty-redemption.liquid +29 -28
  49. package/test-theme/templates/account/loyalty.liquid +45 -43
  50. package/test-theme/templates/account/order-detail.liquid +15 -8
  51. package/test-theme/templates/account/orders.liquid +189 -35
  52. package/test-theme/templates/account/profile.liquid +509 -114
  53. package/test-theme/templates/account/register.liquid +18 -8
  54. package/test-theme/templates/account/return-orders.liquid +31 -30
  55. package/test-theme/templates/account/store-credit.liquid +27 -26
  56. package/test-theme/templates/account/subscriptions.liquid +22 -5
  57. package/test-theme/templates/account/wishlist.liquid +88 -19
  58. package/test-theme/templates/address-book.liquid +166 -69
  59. package/test-theme/templates/categories.liquid +90 -30
  60. package/test-theme/templates/checkout.liquid +137 -3834
  61. package/test-theme/templates/error.liquid +23 -21
  62. package/test-theme/templates/index.liquid +29 -0
  63. package/test-theme/templates/login.liquid +33 -6
  64. package/test-theme/templates/order-confirmation.liquid +67 -9
  65. package/test-theme/templates/page.liquid +418 -206
  66. package/test-theme/templates/product-detail.liquid +124 -3878
  67. package/test-theme/templates/products.liquid +155 -30
  68. package/test-theme/templates/search.liquid +739 -225
  69. package/test-theme/widgets/brand-carousel.liquid +102 -82
  70. package/test-theme/widgets/brand.liquid +78 -50
  71. package/test-theme/widgets/carousel.liquid +253 -121
  72. package/test-theme/widgets/category-list-carousel.liquid +32 -8
  73. package/test-theme/widgets/category-list.liquid +21 -6
  74. package/test-theme/widgets/category.liquid +104 -37
  75. package/test-theme/widgets/discount-time.liquid +326 -119
  76. package/test-theme/widgets/footer-menu.liquid +115 -23
  77. package/test-theme/widgets/footer.liquid +118 -5
  78. package/test-theme/widgets/gallery.liquid +29 -5
  79. package/test-theme/widgets/header-menu.liquid +25 -13
  80. package/test-theme/widgets/header.liquid +64 -26
  81. package/test-theme/widgets/html.liquid +29 -6
  82. package/test-theme/widgets/news.liquid +6 -0
  83. package/test-theme/widgets/product-canvas.liquid +20 -12
  84. package/test-theme/widgets/product-carousel.liquid +118 -56
  85. package/test-theme/widgets/shared/product-grid.liquid +12 -0
  86. package/test-theme/widgets/single-product.liquid +688 -250
  87. package/test-theme/widgets/spacebar-carousel.liquid +39 -10
  88. package/test-theme/widgets/spacebar.liquid +77 -6
  89. package/test-theme/widgets/splash.liquid +40 -30
  90. package/test-theme/widgets/testimonial-carousel.liquid +111 -67
@@ -0,0 +1,1415 @@
1
+ /* Checkout Page - Shopify Horizon Style */
2
+ /* Base Typography - Shopify uses 10px base */
3
+ /* Set base font-size on html when checkout page is present */
4
+ html:has(.checkout-page) {
5
+ font-size: 10px;
6
+ }
7
+
8
+ .checkout-page {
9
+ min-height: calc(100vh - 200px);
10
+ padding: 0;
11
+ background: var(--color-background, #ffffff);
12
+ font-family: var(--font-body, -apple-system, "system-ui", "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");
13
+ color: var(--color-text, #000000);
14
+ line-height: var(--line-height-base, 1.5);
15
+ font-size: var(--text-base, 1.4rem);
16
+ }
17
+
18
+ .checkout-container {
19
+ max-width: var(--container-width, 1200px);
20
+ margin: 0 auto;
21
+ padding: 0;
22
+ }
23
+
24
+ .checkout-header {
25
+ margin-bottom: 0;
26
+ padding: 1rem 1.5rem 0; /* Reduced top padding to optimize space */
27
+ border-bottom: none;
28
+ }
29
+
30
+ .checkout-title {
31
+ font-size: var(--text-4xl, 2.8rem);
32
+ font-weight: var(--font-weight-bold, 700);
33
+ color: var(--color-text, #000000);
34
+ margin: 0 -1px 0 0; /* Match Shopify's -1px margin */
35
+ letter-spacing: var(--letter-spacing-heading, -0.01em);
36
+ }
37
+
38
+ /* Price Change Banner */
39
+ .price-change-banner {
40
+ background: linear-gradient(135deg, var(--color-warning-light, #fff3cd) 0%, var(--color-warning, #ffe69c) 100%);
41
+ border: 2px solid var(--color-warning, #ffc107);
42
+ border-radius: var(--border-radius-large, 12px);
43
+ padding: var(--spacing-component, 1.5rem);
44
+ margin-bottom: var(--spacing-section, 2rem);
45
+ box-shadow: 0 4px 12px rgba(255, 193, 7, 0.2);
46
+ }
47
+
48
+ .price-change-banner.price-decrease {
49
+ background: linear-gradient(135deg, var(--color-success-light, #d1f2eb) 0%, var(--color-success, #a8e6cf) 100%);
50
+ border-color: var(--color-success, #28a745);
51
+ }
52
+
53
+ .price-change-banner.price-critical {
54
+ background: linear-gradient(135deg, var(--color-error-light, #f8d7da) 0%, var(--color-error, #f5c6cb) 100%);
55
+ border-color: var(--color-error, #dc3545);
56
+ }
57
+
58
+ .price-change-banner-content {
59
+ display: flex;
60
+ align-items: flex-start;
61
+ gap: 1rem;
62
+ }
63
+
64
+ .price-change-icon {
65
+ flex-shrink: 0;
66
+ color: #ff8c00;
67
+ }
68
+
69
+ .price-change-banner.price-decrease .price-change-icon {
70
+ color: #28a745;
71
+ }
72
+
73
+ .price-change-banner.price-critical .price-change-icon {
74
+ color: #dc3545;
75
+ }
76
+
77
+ .price-change-message {
78
+ flex: 1;
79
+ }
80
+
81
+ .price-change-title {
82
+ font-size: var(--text-xl, 1.25rem);
83
+ font-weight: var(--font-weight-bold, 600);
84
+ margin: 0 0 var(--spacing-element, 0.5rem) 0;
85
+ color: var(--color-warning-dark, #856404);
86
+ }
87
+
88
+ .price-change-banner.price-decrease .price-change-title {
89
+ color: var(--color-success-dark, #155724);
90
+ }
91
+
92
+ .price-change-banner.price-critical .price-change-title {
93
+ color: var(--color-error-dark, #721c24);
94
+ }
95
+
96
+ .price-change-description {
97
+ margin: 0 0 0.75rem 0;
98
+ color: #856404;
99
+ line-height: 1.5;
100
+ }
101
+
102
+ .price-change-banner.price-decrease .price-change-description {
103
+ color: #155724;
104
+ }
105
+
106
+ .price-change-banner.price-critical .price-change-description {
107
+ color: #721c24;
108
+ }
109
+
110
+ .price-change-warnings-list {
111
+ margin: 0.75rem 0 0 0;
112
+ padding-left: 1.5rem;
113
+ color: #856404;
114
+ }
115
+
116
+ .price-change-warnings-list li {
117
+ margin-bottom: 0.25rem;
118
+ }
119
+
120
+ .price-change-actions {
121
+ display: flex;
122
+ gap: 0.75rem;
123
+ flex-shrink: 0;
124
+ }
125
+
126
+ /* Price Change Details */
127
+ .price-change-details {
128
+ background: var(--color-surface, #f8f9fa);
129
+ border: 1px solid var(--color-border, #dee2e6);
130
+ border-radius: var(--border-radius-medium, 8px);
131
+ padding: var(--spacing-component, 1.5rem);
132
+ margin-bottom: var(--spacing-section, 2rem);
133
+ }
134
+
135
+ .price-change-details-title {
136
+ font-size: var(--text-lg, 1.125rem);
137
+ font-weight: var(--font-weight-bold, 600);
138
+ margin: 0 0 var(--spacing-component, 1rem) 0;
139
+ color: var(--color-text, #1a1a1a);
140
+ }
141
+
142
+ .price-change-items-list {
143
+ display: flex;
144
+ flex-direction: column;
145
+ gap: 1rem;
146
+ }
147
+
148
+ .price-change-item {
149
+ display: flex;
150
+ justify-content: space-between;
151
+ align-items: center;
152
+ padding: 1rem;
153
+ background: white;
154
+ border-radius: 6px;
155
+ border: 1px solid #e9ecef;
156
+ }
157
+
158
+ .price-change-item-info {
159
+ flex: 1;
160
+ }
161
+
162
+ .price-change-item-title {
163
+ font-size: 1rem;
164
+ font-weight: 500;
165
+ margin: 0 0 0.25rem 0;
166
+ color: #1a1a1a;
167
+ }
168
+
169
+ .price-change-item-sku {
170
+ font-size: 0.875rem;
171
+ color: #6c757d;
172
+ margin: 0;
173
+ }
174
+
175
+ .price-change-item-prices {
176
+ display: flex;
177
+ align-items: center;
178
+ gap: 0.5rem;
179
+ }
180
+
181
+ .price-change-old-price {
182
+ text-decoration: line-through;
183
+ color: #6c757d;
184
+ font-size: 0.9375rem;
185
+ }
186
+
187
+ .price-change-arrow {
188
+ color: #6c757d;
189
+ font-weight: 600;
190
+ }
191
+
192
+ .price-change-new-price {
193
+ font-weight: 600;
194
+ color: #1a1a1a;
195
+ font-size: 1rem;
196
+ }
197
+
198
+ .price-change-percentage {
199
+ font-size: 0.875rem;
200
+ font-weight: 500;
201
+ padding: 0.25rem 0.5rem;
202
+ border-radius: 4px;
203
+ }
204
+
205
+ .price-change-percentage.price-increase {
206
+ background: #fff3cd;
207
+ color: #856404;
208
+ }
209
+
210
+ .price-change-percentage.price-decrease {
211
+ background: #d1f2eb;
212
+ color: #155724;
213
+ }
214
+
215
+ /* Price Change Acknowledgment */
216
+ .price-change-acknowledgment {
217
+ margin-top: 1rem;
218
+ padding: 1rem;
219
+ background: #f8f9fa;
220
+ border-radius: 8px;
221
+ border: 1px solid #dee2e6;
222
+ }
223
+
224
+ .price-change-acknowledgment .checkbox-label {
225
+ display: flex;
226
+ align-items: flex-start;
227
+ gap: 0.75rem;
228
+ cursor: pointer;
229
+ font-size: 0.9375rem;
230
+ line-height: 1.5;
231
+ }
232
+
233
+ .price-change-acknowledgment input[type="checkbox"] {
234
+ margin-top: 0.25rem;
235
+ flex-shrink: 0;
236
+ }
237
+
238
+ @media (max-width: 768px) {
239
+ .price-change-banner-content {
240
+ flex-direction: column;
241
+ }
242
+
243
+ .price-change-actions {
244
+ width: 100%;
245
+ flex-direction: column;
246
+ }
247
+
248
+ .price-change-actions .btn {
249
+ width: 100%;
250
+ }
251
+
252
+ .price-change-item {
253
+ flex-direction: column;
254
+ align-items: flex-start;
255
+ gap: 0.75rem;
256
+ }
257
+
258
+ .price-change-item-prices {
259
+ width: 100%;
260
+ justify-content: space-between;
261
+ }
262
+ }
263
+
264
+ .checkout-layout {
265
+ display: grid;
266
+ grid-template-columns: 1fr;
267
+ gap: 0;
268
+ max-width: 1200px;
269
+ margin: 0 auto;
270
+ align-items: start; /* Align items to top */
271
+ }
272
+
273
+ /* Desktop: Two-column layout - Shopify Horizon style */
274
+ @media (min-width: 1000px) {
275
+ .checkout-layout {
276
+ grid-template-columns: 1fr 440px;
277
+ gap: 0;
278
+ align-items: start;
279
+ }
280
+
281
+ .checkout-main {
282
+ max-width: 100%;
283
+ border-right: 1px solid #e5e7eb;
284
+ padding-right: 3rem;
285
+ }
286
+
287
+ .checkout-sidebar {
288
+ position: sticky;
289
+ top: 1rem; /* Reduced top offset to optimize space */
290
+ align-self: start;
291
+ padding-left: 3rem;
292
+ background: #fafafa;
293
+ max-height: calc(100vh - 2rem); /* Optimized height calculation */
294
+ overflow-y: auto; /* Allow sidebar content to scroll */
295
+ overflow-x: hidden;
296
+ }
297
+ }
298
+
299
+ .checkout-main {
300
+ background: #ffffff;
301
+ border-radius: 0;
302
+ padding: 1.5rem 1.5rem; /* Reduced top padding to optimize space */
303
+ box-shadow: none;
304
+ }
305
+
306
+ .checkout-sidebar {
307
+ background: #fafafa;
308
+ border-radius: 0;
309
+ padding: 1rem 1.5rem; /* Further reduced padding to optimize space */
310
+ box-shadow: none;
311
+ display: flex;
312
+ flex-direction: column;
313
+ min-height: 0; /* Allow flex shrinking */
314
+ }
315
+
316
+ .checkout-section {
317
+ margin-bottom: 2rem; /* Reduced spacing to optimize space */
318
+ padding-bottom: 2rem; /* Reduced spacing to optimize space */
319
+ border-bottom: 1px solid #e5e7eb;
320
+ }
321
+
322
+ .checkout-section:last-of-type {
323
+ margin-bottom: 0;
324
+ border-bottom: none;
325
+ padding-bottom: 0;
326
+ }
327
+
328
+ .checkout-section-title {
329
+ font-size: 2.1rem; /* 21px for H2 section titles */
330
+ font-weight: 600;
331
+ color: #000000;
332
+ margin: 0 0 1.5rem;
333
+ letter-spacing: 0;
334
+ text-transform: none;
335
+ line-height: 1.2;
336
+ }
337
+
338
+ .checkout-section-title h2,
339
+ h2.checkout-section-title {
340
+ font-size: 2.1rem; /* 21px */
341
+ font-weight: 600;
342
+ color: #000000;
343
+ margin: 0 0 1.5rem;
344
+ }
345
+
346
+ .checkout-section-title h3,
347
+ h3.checkout-section-title {
348
+ font-size: 1.4rem; /* 14px */
349
+ font-weight: 600;
350
+ color: #000000;
351
+ margin: 0 0 1rem;
352
+ }
353
+
354
+ .checkout-section-content {
355
+ margin-top: 0;
356
+ flex: 1 1 auto;
357
+ min-height: 0; /* Allow flex shrinking */
358
+ overflow-y: auto; /* Allow scrolling of coupon content */
359
+ overflow-x: hidden;
360
+ }
361
+
362
+ /* Form Styles - Shopify style */
363
+ .form-grid {
364
+ display: grid;
365
+ grid-template-columns: 1fr;
366
+ gap: 1rem;
367
+ }
368
+
369
+ @media (min-width: 640px) {
370
+ .form-grid {
371
+ grid-template-columns: repeat(2, 1fr);
372
+ }
373
+
374
+ .form-group-full {
375
+ grid-column: 1 / -1;
376
+ }
377
+ }
378
+
379
+ /* intl-tel-input styling */
380
+ .iti {
381
+ width: 100%;
382
+ }
383
+
384
+ .iti__flag-container {
385
+ z-index: 1;
386
+ }
387
+
388
+ .iti__selected-flag {
389
+ padding: 0 0.75rem 0 0.5rem;
390
+ border-right: 1px solid var(--color-border, #e5e7eb);
391
+ }
392
+
393
+ .iti__selected-flag:hover {
394
+ background-color: var(--color-background, #f9fafb);
395
+ }
396
+
397
+ .iti__country-list {
398
+ z-index: 1000;
399
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
400
+ border: 1px solid var(--color-border, #e5e7eb);
401
+ border-radius: var(--border-radius-medium, 8px);
402
+ max-height: 200px;
403
+ overflow-y: auto;
404
+ }
405
+
406
+ .iti__country {
407
+ padding: 0.5rem 0.75rem;
408
+ }
409
+
410
+ .iti__country:hover,
411
+ .iti__country.iti__highlight {
412
+ background-color: var(--color-primary-light, #dbeafe);
413
+ }
414
+
415
+ #shipping-phone {
416
+ padding-left: 3.5rem;
417
+ }
418
+
419
+ .form-group {
420
+ display: flex;
421
+ flex-direction: column;
422
+ gap: 0.5rem;
423
+ }
424
+
425
+ .form-label {
426
+ font-size: 1.4rem; /* 14px */
427
+ font-weight: 500;
428
+ color: #000000;
429
+ display: block;
430
+ margin-bottom: 0.5rem;
431
+ }
432
+
433
+ .form-input,
434
+ .form-select,
435
+ .form-textarea {
436
+ width: 100%;
437
+ padding: 13.5px 11px; /* Exact Shopify padding */
438
+ font-size: 1.4rem; /* 14px */
439
+ color: #000000;
440
+ background: #ffffff;
441
+ border: 1px solid #e5e7eb; /* Lighter border */
442
+ border-radius: 8px; /* 8px border radius */
443
+ transition: border-color 0.15s ease;
444
+ font-family: inherit;
445
+ -webkit-appearance: none;
446
+ -moz-appearance: none;
447
+ appearance: none;
448
+ line-height: 1.5;
449
+ }
450
+
451
+ .form-input::placeholder,
452
+ .form-textarea::placeholder {
453
+ color: #9ca3af;
454
+ }
455
+
456
+ .form-select {
457
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23000000' d='M6 9L1 4h10z'/%3E%3C/svg%3E");
458
+ background-repeat: no-repeat;
459
+ background-position: right 1rem center;
460
+ background-size: 12px;
461
+ padding-right: 2.75rem;
462
+ }
463
+
464
+ .form-input:focus,
465
+ .form-select:focus,
466
+ .form-textarea:focus {
467
+ outline: none;
468
+ border-color: #000000;
469
+ box-shadow: none; /* Remove box-shadow for cleaner look */
470
+ }
471
+
472
+ .form-textarea {
473
+ resize: vertical;
474
+ min-height: 100px;
475
+ }
476
+
477
+ .checkbox-label {
478
+ display: flex;
479
+ align-items: flex-start;
480
+ gap: 0.75rem;
481
+ cursor: pointer;
482
+ font-size: 1.4rem; /* 14px */
483
+ color: #000000;
484
+ line-height: 1.5;
485
+ }
486
+
487
+ .checkbox-label input[type="checkbox"] {
488
+ width: 18px;
489
+ height: 18px;
490
+ cursor: pointer;
491
+ margin-top: 0.125rem;
492
+ flex-shrink: 0;
493
+ appearance: none;
494
+ -webkit-appearance: none;
495
+ -moz-appearance: none;
496
+ border: 2px solid #d1d5db;
497
+ border-radius: 4px; /* Slightly more rounded */
498
+ background-color: #ffffff;
499
+ position: relative;
500
+ transition: all 0.2s ease;
501
+ }
502
+
503
+ .checkbox-label input[type="checkbox"]:hover {
504
+ border-color: #000000;
505
+ }
506
+
507
+ .checkbox-label input[type="checkbox"]:checked {
508
+ background-color: #000000;
509
+ border-color: #000000;
510
+ }
511
+
512
+ .checkbox-label input[type="checkbox"]:checked::after {
513
+ content: '';
514
+ position: absolute;
515
+ left: 4px;
516
+ top: 1px;
517
+ width: 5px;
518
+ height: 10px;
519
+ border: solid #ffffff;
520
+ border-width: 0 2px 2px 0;
521
+ transform: rotate(45deg);
522
+ display: block;
523
+ }
524
+
525
+ .checkbox-label input[type="checkbox"]:focus {
526
+ outline: 2px solid #000000;
527
+ outline-offset: 2px;
528
+ }
529
+
530
+ /* Payment Methods */
531
+ .payment-methods {
532
+ display: flex;
533
+ flex-direction: column;
534
+ gap: 1.5rem;
535
+ margin-bottom: 1.5rem;
536
+ }
537
+
538
+ .payment-method-group {
539
+ display: flex;
540
+ flex-direction: column;
541
+ gap: 0.75rem;
542
+ }
543
+
544
+ .payment-method-group-title {
545
+ font-size: 1.4rem; /* 14px for H3 */
546
+ font-weight: 600;
547
+ color: #000000;
548
+ margin: 0 0 1rem;
549
+ }
550
+
551
+ .payment-method {
552
+ border: 1px solid #e5e7eb;
553
+ border-radius: 8px; /* 8px border radius */
554
+ padding: 1rem;
555
+ transition: all 0.15s ease;
556
+ background: #ffffff;
557
+ }
558
+
559
+ .payment-method:hover {
560
+ border-color: #d1d5db;
561
+ background: #fafafa;
562
+ }
563
+
564
+ .payment-method:has(input[type="radio"]:checked) {
565
+ border-color: #000000;
566
+ background: #ffffff;
567
+ }
568
+
569
+ .payment-method-label {
570
+ display: flex;
571
+ align-items: flex-start;
572
+ gap: 0.75rem;
573
+ cursor: pointer;
574
+ margin: 0;
575
+ }
576
+
577
+ .payment-method-label input[type="radio"] {
578
+ width: 18px;
579
+ height: 18px;
580
+ cursor: pointer;
581
+ margin-top: 0.125rem;
582
+ flex-shrink: 0;
583
+ appearance: none;
584
+ -webkit-appearance: none;
585
+ -moz-appearance: none;
586
+ border: 2px solid #d1d5db;
587
+ border-radius: 50%;
588
+ background-color: #ffffff;
589
+ position: relative;
590
+ transition: all 0.2s ease;
591
+ }
592
+
593
+ .payment-method-label input[type="radio"]:hover {
594
+ border-color: #000000;
595
+ }
596
+
597
+ .payment-method-label input[type="radio"]:checked {
598
+ border-color: #000000;
599
+ background-color: #ffffff;
600
+ }
601
+
602
+ .payment-method-label input[type="radio"]:checked::after {
603
+ background-color: #000000;
604
+ }
605
+
606
+ .payment-method-label input[type="radio"]:checked::after {
607
+ content: '';
608
+ position: absolute;
609
+ left: 50%;
610
+ top: 50%;
611
+ transform: translate(-50%, -50%);
612
+ width: 8px;
613
+ height: 8px;
614
+ border-radius: 50%;
615
+ background-color: #111827;
616
+ display: block;
617
+ }
618
+
619
+ .payment-method-label input[type="radio"]:focus {
620
+ outline: 2px solid #000000;
621
+ outline-offset: 2px;
622
+ }
623
+
624
+ .payment-method-content {
625
+ flex: 1;
626
+ display: flex;
627
+ flex-direction: column;
628
+ gap: 0.25rem;
629
+ }
630
+
631
+ .payment-method-name {
632
+ font-size: 1.4rem; /* 14px */
633
+ font-weight: 500;
634
+ color: #000000;
635
+ }
636
+
637
+ .payment-method-description {
638
+ font-size: 1.4rem; /* 14px */
639
+ color: #6b7280;
640
+ font-weight: normal;
641
+ }
642
+
643
+ .payment-method-balance {
644
+ font-size: 0.8125rem;
645
+ color: #059669;
646
+ font-weight: 500;
647
+ }
648
+
649
+ .payment-method-config {
650
+ display: flex;
651
+ flex-wrap: wrap;
652
+ gap: 0.5rem;
653
+ margin-top: 0.5rem;
654
+ padding-top: 0.5rem;
655
+ border-top: 1px solid #f3f4f6;
656
+ }
657
+
658
+ .config-text,
659
+ .config-fee,
660
+ .config-min,
661
+ .config-max {
662
+ font-size: 1.2rem; /* 12px */
663
+ color: #6b7280;
664
+ padding: 0.25rem 0.5rem;
665
+ background: #f9fafb;
666
+ border-radius: 8px; /* 8px border radius */
667
+ }
668
+
669
+ .config-fee {
670
+ color: #dc2626;
671
+ font-weight: 500;
672
+ }
673
+
674
+ .payment-methods-empty {
675
+ padding: 1rem;
676
+ text-align: center;
677
+ color: #6b7280;
678
+ font-size: 1.4rem; /* 14px */
679
+ }
680
+
681
+ /* Shipping Methods - Product-based Layout */
682
+ .shipping-product-row {
683
+ display: flex;
684
+ gap: 2rem;
685
+ align-items: flex-start;
686
+ margin-bottom: 2rem;
687
+ padding-bottom: 2rem;
688
+ border-bottom: 1px solid #e5e7eb;
689
+ }
690
+
691
+ .shipping-product-row:last-child {
692
+ margin-bottom: 0;
693
+ padding-bottom: 0;
694
+ border-bottom: none;
695
+ }
696
+
697
+ .shipping-product-column {
698
+ flex: 0 0 300px;
699
+ display: flex;
700
+ flex-direction: column;
701
+ gap: 1rem;
702
+ }
703
+
704
+ .shipping-product-item {
705
+ display: flex;
706
+ gap: 1rem;
707
+ align-items: center;
708
+ }
709
+
710
+ .shipping-product-image {
711
+ width: 60px;
712
+ height: 60px;
713
+ object-fit: cover;
714
+ border-radius: 4px;
715
+ flex-shrink: 0;
716
+ background: #f3f4f6;
717
+ }
718
+
719
+ .shipping-product-details {
720
+ display: flex;
721
+ flex-direction: column;
722
+ gap: 0.25rem;
723
+ flex: 1;
724
+ }
725
+
726
+ .shipping-product-name {
727
+ font-size: 1.4rem; /* 14px */
728
+ font-weight: 500;
729
+ color: #000000;
730
+ }
731
+
732
+ .shipping-product-price {
733
+ font-size: 1.4rem; /* 14px */
734
+ color: #6b7280;
735
+ }
736
+
737
+ .shipping-methods-column {
738
+ flex: 1;
739
+ display: flex;
740
+ flex-direction: column;
741
+ gap: 0.75rem;
742
+ }
743
+
744
+ .shipping-unavailable-message {
745
+ padding: 1rem;
746
+ background-color: #fef3c7;
747
+ border: 1px solid #fde68a;
748
+ border-radius: 8px;
749
+ color: #92400e;
750
+ font-size: 1.4rem; /* 14px */
751
+ text-align: center;
752
+ }
753
+
754
+ .shipping-method {
755
+ border: 1px solid #e5e7eb;
756
+ border-radius: 8px; /* 8px border radius */
757
+ padding: 1rem;
758
+ transition: all 0.15s ease;
759
+ background: #ffffff;
760
+ }
761
+
762
+ .shipping-method:hover {
763
+ border-color: #d1d5db;
764
+ background: #fafafa;
765
+ }
766
+
767
+ .shipping-method:has(input[type="radio"]:checked) {
768
+ border-color: #000000;
769
+ background: #ffffff;
770
+ }
771
+
772
+ .shipping-method-label {
773
+ display: flex;
774
+ align-items: flex-start;
775
+ gap: 0.75rem;
776
+ cursor: pointer;
777
+ margin: 0;
778
+ }
779
+
780
+ .shipping-method-label input[type="radio"] {
781
+ width: 18px;
782
+ height: 18px;
783
+ cursor: pointer;
784
+ flex-shrink: 0;
785
+ appearance: none;
786
+ -webkit-appearance: none;
787
+ -moz-appearance: none;
788
+ border: 2px solid #d1d5db;
789
+ border-radius: 50%;
790
+ background-color: #ffffff;
791
+ position: relative;
792
+ transition: all 0.2s ease;
793
+ margin-top: 2px;
794
+ }
795
+
796
+ .shipping-method-label input[type="radio"]:hover {
797
+ border-color: #000000;
798
+ }
799
+
800
+ .shipping-method-label input[type="radio"]:checked {
801
+ border-color: #000000;
802
+ background-color: #ffffff;
803
+ }
804
+
805
+ .shipping-method-label input[type="radio"]:checked::after {
806
+ content: '';
807
+ position: absolute;
808
+ left: 50%;
809
+ top: 50%;
810
+ transform: translate(-50%, -50%);
811
+ width: 8px;
812
+ height: 8px;
813
+ border-radius: 50%;
814
+ background-color: #000000;
815
+ display: block;
816
+ }
817
+
818
+ .shipping-method-label input[type="radio"]:focus {
819
+ outline: 2px solid #000000;
820
+ outline-offset: 2px;
821
+ }
822
+
823
+ .shipping-method-content {
824
+ flex: 1;
825
+ display: flex;
826
+ flex-direction: column;
827
+ gap: 0.5rem;
828
+ }
829
+
830
+ .shipping-method-title-row {
831
+ display: flex;
832
+ justify-content: space-between;
833
+ align-items: center;
834
+ gap: 1rem;
835
+ }
836
+
837
+ .shipping-method-name {
838
+ font-size: 1.4rem; /* 14px */
839
+ font-weight: 500;
840
+ color: #000000;
841
+ }
842
+
843
+ .shipping-method-price {
844
+ font-size: 1.4rem; /* 14px */
845
+ font-weight: 500;
846
+ color: #000000;
847
+ }
848
+
849
+ .shipping-method-time-row {
850
+ display: flex;
851
+ flex-direction: column;
852
+ gap: 0.25rem;
853
+ margin-top: 0.25rem;
854
+ }
855
+
856
+ .shipping-method-time {
857
+ font-size: 1.2rem; /* 12px */
858
+ color: #6b7280;
859
+ line-height: 1.5;
860
+ }
861
+
862
+ /* Responsive: Stack columns on mobile */
863
+ @media (max-width: 768px) {
864
+ .shipping-product-row {
865
+ flex-direction: column;
866
+ gap: 1.5rem;
867
+ }
868
+
869
+ .shipping-product-column {
870
+ flex: 1;
871
+ width: 100%;
872
+ }
873
+
874
+ .shipping-methods-column {
875
+ width: 100%;
876
+ }
877
+ }
878
+
879
+ .shipping-methods-loading,
880
+ .shipping-methods-empty,
881
+ .shipping-methods-error {
882
+ padding: 1rem;
883
+ text-align: center;
884
+ color: #6b7280;
885
+ font-size: 1.4rem; /* 14px */
886
+ }
887
+
888
+ .shipping-methods-error {
889
+ color: #dc2626;
890
+ }
891
+
892
+ .payment-form {
893
+ margin-top: 1.5rem;
894
+ padding-top: 1.5rem;
895
+ border-top: 1px solid #e5e7eb;
896
+ }
897
+
898
+ .payment-gateway-forms {
899
+ margin-top: 1.5rem;
900
+ padding-top: 1.5rem;
901
+ border-top: 1px solid #e5e7eb;
902
+ }
903
+
904
+ /* Order Summary - Shopify Horizon Style */
905
+ .order-summary {
906
+ display: flex;
907
+ flex-direction: column;
908
+ flex: 1 1 auto; /* Take available space in flex container */
909
+ min-height: 0; /* Allow flex shrinking */
910
+ }
911
+
912
+ .order-summary-title {
913
+ font-size: 2.1rem; /* 21px for H2 */
914
+ font-weight: 600;
915
+ color: #000000;
916
+ margin: 0 0 0.75rem; /* Further reduced margin */
917
+ letter-spacing: 0;
918
+ flex-shrink: 0; /* Keep title fixed */
919
+ }
920
+
921
+ .order-summary-items {
922
+ display: flex;
923
+ flex-direction: column;
924
+ gap: 0.75rem; /* Reduced gap to fit more items */
925
+ margin-bottom: 0;
926
+ padding-bottom: 0.75rem;
927
+ border-bottom: 1px solid #e5e7eb;
928
+ flex: 1 1 auto; /* Take available space, allow shrinking */
929
+ overflow-y: auto; /* Only items scroll */
930
+ overflow-x: hidden;
931
+ min-height: 0; /* Allow flex shrinking - critical for scrolling */
932
+ -webkit-overflow-scrolling: touch; /* Smooth scrolling on iOS */
933
+ max-height: none; /* Remove fixed max-height, let flex handle it */
934
+ }
935
+
936
+ .order-summary-item {
937
+ display: flex;
938
+ gap: 1rem;
939
+ align-items: flex-start;
940
+ }
941
+
942
+ .order-summary-item-image {
943
+ flex-shrink: 0;
944
+ width: 64px;
945
+ height: 64px;
946
+ border-radius: 6px;
947
+ overflow: hidden;
948
+ background: #f3f4f6;
949
+ border: 1px solid #e5e7eb;
950
+ }
951
+
952
+ .order-summary-item-image img {
953
+ width: 100%;
954
+ height: 100%;
955
+ object-fit: cover;
956
+ display: block;
957
+ }
958
+
959
+ .order-summary-item-details {
960
+ flex: 1;
961
+ min-width: 0;
962
+ }
963
+
964
+ .order-summary-item-title {
965
+ font-size: 1.4rem; /* 14px */
966
+ font-weight: 500;
967
+ color: #000000;
968
+ margin: 0 0 0.25rem;
969
+ line-height: 1.4;
970
+ }
971
+
972
+ .order-summary-item-variant {
973
+ font-size: 1.4rem; /* 14px */
974
+ color: #6b7280;
975
+ margin: 0 0 0.25rem;
976
+ }
977
+
978
+ .order-summary-item-quantity {
979
+ font-size: 1.4rem; /* 14px */
980
+ color: #6b7280;
981
+ margin: 0;
982
+ }
983
+
984
+ .order-summary-item-price {
985
+ font-size: 1.4rem; /* 14px */
986
+ font-weight: 600;
987
+ color: #000000;
988
+ flex-shrink: 0;
989
+ margin-left: auto;
990
+ }
991
+
992
+ .order-summary-totals {
993
+ display: flex;
994
+ flex-direction: column;
995
+ gap: 0.5rem; /* Reduced gap */
996
+ margin-top: auto; /* Push to bottom */
997
+ padding-top: 0.75rem;
998
+ padding-bottom: 0.5rem;
999
+ flex-shrink: 0; /* Keep totals fixed, don't shrink */
1000
+ background: #fafafa; /* Match sidebar background */
1001
+ border-top: 1px solid #e5e7eb; /* Visual separator */
1002
+ }
1003
+
1004
+ .summary-line {
1005
+ display: flex;
1006
+ justify-content: space-between;
1007
+ align-items: center;
1008
+ padding: 0.5rem 0;
1009
+ font-size: 1.4rem; /* 14px */
1010
+ }
1011
+
1012
+ .summary-line.summary-discount {
1013
+ color: #059669; /* Green color for discount */
1014
+ }
1015
+
1016
+ .summary-line.summary-discount .summary-label {
1017
+ color: #059669;
1018
+ }
1019
+
1020
+ .summary-line.summary-discount .summary-value {
1021
+ color: #059669;
1022
+ font-weight: 500;
1023
+ }
1024
+
1025
+ .summary-label {
1026
+ color: #6b7280;
1027
+ font-size: 1.4rem; /* 14px */
1028
+ }
1029
+
1030
+ .summary-value {
1031
+ color: #000000;
1032
+ font-weight: 500;
1033
+ font-size: 1.4rem; /* 14px */
1034
+ }
1035
+
1036
+ .summary-total {
1037
+ padding-top: 1rem;
1038
+ border-top: 1px solid #e5e7eb;
1039
+ margin-top: 0.5rem;
1040
+ }
1041
+
1042
+ .summary-total .summary-label {
1043
+ font-size: 1.4rem; /* 14px */
1044
+ font-weight: 600;
1045
+ color: #000000;
1046
+ }
1047
+
1048
+ .summary-total .summary-value {
1049
+ font-size: 1.4rem; /* 14px */
1050
+ font-weight: 600;
1051
+ color: #000000;
1052
+ }
1053
+
1054
+ /* Checkout Actions */
1055
+ .checkout-actions {
1056
+ display: flex;
1057
+ flex-direction: column;
1058
+ gap: 0.75rem;
1059
+ margin-top: 2rem;
1060
+ padding-top: 2rem;
1061
+ border-top: 1px solid #e5e7eb;
1062
+ }
1063
+
1064
+ .checkout-actions .btn {
1065
+ width: 100%;
1066
+ padding: 1.4rem 1.5rem; /* Match Shopify button padding */
1067
+ font-size: 1.4rem; /* 14px */
1068
+ font-weight: 500;
1069
+ border-radius: 8px; /* 8px border radius */
1070
+ transition: all 0.15s ease;
1071
+ text-align: center;
1072
+ cursor: pointer;
1073
+ border: none;
1074
+ font-family: inherit;
1075
+ }
1076
+
1077
+ .checkout-actions .btn-primary {
1078
+ background: #000000;
1079
+ color: #ffffff;
1080
+ border: 1px solid #000000;
1081
+ }
1082
+
1083
+ .checkout-actions .btn-primary:hover:not(:disabled) {
1084
+ background: #1a1a1a;
1085
+ border-color: #1a1a1a;
1086
+ }
1087
+
1088
+ .checkout-actions .btn-primary:disabled {
1089
+ opacity: 0.6;
1090
+ cursor: not-allowed;
1091
+ }
1092
+
1093
+ /* Checkout Button Loading State */
1094
+ .checkout-button-loading {
1095
+ position: relative;
1096
+ }
1097
+
1098
+ .checkout-button-loading .checkout-button-icon {
1099
+ display: inline-block;
1100
+ }
1101
+
1102
+ /* Button loading states */
1103
+ .btn.loading {
1104
+ opacity: 0.7;
1105
+ cursor: not-allowed;
1106
+ pointer-events: none;
1107
+ transition: opacity 0.2s ease;
1108
+ }
1109
+
1110
+ .btn-loading {
1111
+ display: flex;
1112
+ align-items: center;
1113
+ gap: 0.5rem;
1114
+ }
1115
+
1116
+ .btn-spinner {
1117
+ width: 16px;
1118
+ height: 16px;
1119
+ border: 2px solid currentColor;
1120
+ border-top-color: transparent;
1121
+ border-radius: 50%;
1122
+ animation: spin 0.6s linear infinite;
1123
+ }
1124
+
1125
+ .checkout-button-text {
1126
+ transition: opacity 0.2s ease;
1127
+ }
1128
+
1129
+ @keyframes spin {
1130
+ from {
1131
+ transform: rotate(0deg);
1132
+ }
1133
+ to {
1134
+ transform: rotate(360deg);
1135
+ }
1136
+ }
1137
+
1138
+ .checkout-actions .btn-outline {
1139
+ background: transparent;
1140
+ color: #000000;
1141
+ border: 1px solid #d1d5db;
1142
+ }
1143
+
1144
+ .checkout-actions .btn-outline:hover {
1145
+ background: #fafafa;
1146
+ border-color: #9ca3af;
1147
+ }
1148
+
1149
+ /* Coupon Section Styles */
1150
+ .checkout-coupons-section {
1151
+ margin-bottom: 2rem;
1152
+ padding: 1.5rem;
1153
+ background: #fff;
1154
+ border: 1px solid #e5e7eb;
1155
+ border-radius: 0.8rem;
1156
+ flex-shrink: 0; /* Don't shrink, but allow scrolling within */
1157
+ max-height: 40vh; /* Limit coupon section height */
1158
+ display: flex;
1159
+ flex-direction: column;
1160
+ }
1161
+
1162
+ .checkout-coupons-section .checkout-section-title {
1163
+ font-size: 1.6rem;
1164
+ font-weight: 600;
1165
+ margin-bottom: 1.2rem;
1166
+ color: #111827;
1167
+ flex-shrink: 0; /* Keep title fixed */
1168
+ }
1169
+
1170
+ .coupons-loading,
1171
+ .coupons-empty {
1172
+ padding: 1rem;
1173
+ text-align: center;
1174
+ color: #6b7280;
1175
+ font-size: 1.4rem;
1176
+ }
1177
+
1178
+ .coupons-error {
1179
+ padding: 1rem;
1180
+ background: #fef2f2;
1181
+ border: 1px solid #fecaca;
1182
+ border-radius: 0.4rem;
1183
+ color: #991b1b;
1184
+ font-size: 1.4rem;
1185
+ margin-top: 1rem;
1186
+ }
1187
+
1188
+ .coupons-list {
1189
+ display: flex;
1190
+ flex-direction: column;
1191
+ gap: 1rem;
1192
+ min-height: 0; /* Allow flex shrinking */
1193
+ -webkit-overflow-scrolling: touch; /* Smooth scrolling on iOS */
1194
+ }
1195
+
1196
+ .coupon-item {
1197
+ display: flex;
1198
+ justify-content: space-between;
1199
+ align-items: center;
1200
+ padding: 1.2rem;
1201
+ background: #f9fafb;
1202
+ border: 1px solid #e5e7eb;
1203
+ border-radius: 0.6rem;
1204
+ transition: all 0.2s ease;
1205
+ }
1206
+
1207
+ .coupon-item:hover {
1208
+ border-color: #d1d5db;
1209
+ background: #f3f4f6;
1210
+ }
1211
+
1212
+ .coupon-info {
1213
+ flex: 1;
1214
+ display: flex;
1215
+ flex-direction: column;
1216
+ gap: 0.4rem;
1217
+ }
1218
+
1219
+ .coupon-code {
1220
+ font-size: 1.5rem;
1221
+ font-weight: 600;
1222
+ color: #111827;
1223
+ }
1224
+
1225
+ .coupon-description {
1226
+ font-size: 1.3rem;
1227
+ color: #6b7280;
1228
+ }
1229
+
1230
+ .coupon-min-amount {
1231
+ font-size: 1.2rem;
1232
+ color: #9ca3af;
1233
+ margin-top: 0.4rem;
1234
+ }
1235
+
1236
+ .apply-coupon-btn,
1237
+ .remove-coupon-btn {
1238
+ padding: 0.8rem 1.6rem;
1239
+ font-size: 1.4rem;
1240
+ font-weight: 500;
1241
+ white-space: nowrap;
1242
+ }
1243
+
1244
+ .apply-coupon-btn:disabled {
1245
+ opacity: 0.6;
1246
+ cursor: not-allowed;
1247
+ }
1248
+
1249
+ .remove-coupon-btn {
1250
+ background: #dc2626;
1251
+ color: #fff;
1252
+ border: none;
1253
+ }
1254
+
1255
+ .remove-coupon-btn:hover {
1256
+ background: #b91c1c;
1257
+ }
1258
+
1259
+ .remove-coupon-btn:disabled {
1260
+ opacity: 0.6;
1261
+ cursor: not-allowed;
1262
+ }
1263
+
1264
+
1265
+ .btn-remove-coupon {
1266
+ padding: 0.6rem 1.2rem;
1267
+ font-size: 1.3rem;
1268
+ background: #dc2626;
1269
+ color: #fff;
1270
+ border: none;
1271
+ border-radius: 0.4rem;
1272
+ cursor: pointer;
1273
+ transition: background 0.2s ease;
1274
+ }
1275
+
1276
+ .btn-remove-coupon:hover {
1277
+ background: #b91c1c;
1278
+ }
1279
+
1280
+ /* Custom Scrollbar Styling for Better UX */
1281
+ .checkout-sidebar::-webkit-scrollbar,
1282
+ .order-summary-items::-webkit-scrollbar,
1283
+ .checkout-section-content::-webkit-scrollbar {
1284
+ width: 8px;
1285
+ }
1286
+
1287
+ .checkout-sidebar::-webkit-scrollbar-track,
1288
+ .order-summary-items::-webkit-scrollbar-track,
1289
+ .checkout-section-content::-webkit-scrollbar-track {
1290
+ background: #f1f1f1;
1291
+ border-radius: 4px;
1292
+ }
1293
+
1294
+ .checkout-sidebar::-webkit-scrollbar-thumb,
1295
+ .order-summary-items::-webkit-scrollbar-thumb,
1296
+ .checkout-section-content::-webkit-scrollbar-thumb {
1297
+ background: #888;
1298
+ border-radius: 4px;
1299
+ }
1300
+
1301
+ .checkout-sidebar::-webkit-scrollbar-thumb:hover,
1302
+ .order-summary-items::-webkit-scrollbar-thumb:hover,
1303
+ .checkout-section-content::-webkit-scrollbar-thumb:hover {
1304
+ background: #555;
1305
+ }
1306
+
1307
+ /* Firefox scrollbar styling */
1308
+ .checkout-sidebar,
1309
+ .order-summary-items,
1310
+ .checkout-section-content {
1311
+ scrollbar-width: thin;
1312
+ scrollbar-color: #888 #f1f1f1;
1313
+ }
1314
+
1315
+ /* Mobile Optimizations */
1316
+ @media (max-width: 1023px) {
1317
+ .checkout-page {
1318
+ padding: 1rem 0 2rem;
1319
+ }
1320
+
1321
+ .checkout-container {
1322
+ padding: 0 1rem;
1323
+ }
1324
+
1325
+ .checkout-title {
1326
+ font-size: 2.4rem; /* Slightly smaller on mobile */
1327
+ }
1328
+
1329
+ .checkout-sidebar {
1330
+ position: relative; /* Remove sticky on mobile */
1331
+ top: 0;
1332
+ max-height: none;
1333
+ padding: 1.5rem 1rem;
1334
+ overflow: visible; /* Allow natural flow on mobile - no scrollbar */
1335
+ }
1336
+
1337
+ .order-summary {
1338
+ max-height: none; /* Remove height restriction on mobile */
1339
+ }
1340
+
1341
+ .order-summary-items {
1342
+ max-height: none; /* Remove height restriction on mobile */
1343
+ flex: none; /* Don't use flex on mobile */
1344
+ overflow: visible; /* Allow natural flow - no scrollbar on mobile */
1345
+ }
1346
+
1347
+ .order-summary-totals {
1348
+ position: relative; /* Remove sticky on mobile */
1349
+ margin-top: 1rem;
1350
+ }
1351
+
1352
+ .checkout-coupons-section {
1353
+ max-height: none; /* Remove height restriction on mobile */
1354
+ }
1355
+
1356
+ .checkout-section-content {
1357
+ max-height: none; /* Remove height restriction on mobile */
1358
+ overflow: visible; /* Allow natural flow - no scrollbar on mobile */
1359
+ }
1360
+
1361
+ .checkout-section {
1362
+ margin-bottom: 1.5rem;
1363
+ padding-bottom: 1.5rem;
1364
+ }
1365
+ }
1366
+
1367
+ @media (max-width: 640px) {
1368
+ .form-grid {
1369
+ grid-template-columns: 1fr;
1370
+ }
1371
+
1372
+ .checkout-section {
1373
+ margin-bottom: 1.5rem;
1374
+ padding-bottom: 1.25rem;
1375
+ }
1376
+ }
1377
+
1378
+ @media (max-width: 768px) {
1379
+ .checkout-page {
1380
+ padding: 1rem 0 calc(96px + env(safe-area-inset-bottom));
1381
+ }
1382
+
1383
+ .checkout-container {
1384
+ padding: 0 0.75rem;
1385
+ }
1386
+
1387
+ .checkout-main,
1388
+ .checkout-sidebar {
1389
+ padding: 1rem;
1390
+ }
1391
+
1392
+ .checkout-section-content {
1393
+ overflow: visible;
1394
+ }
1395
+ }
1396
+
1397
+ @media (max-width: 480px) {
1398
+ .checkout-main,
1399
+ .checkout-sidebar {
1400
+ padding: 0.75rem;
1401
+ }
1402
+
1403
+ .checkout-section-title {
1404
+ font-size: 1.8rem;
1405
+ }
1406
+
1407
+ .order-summary-item {
1408
+ gap: 0.75rem;
1409
+ }
1410
+
1411
+ .order-summary-item-image {
1412
+ width: 56px;
1413
+ height: 56px;
1414
+ }
1415
+ }