@ticketboothapp/booking 0.1.19 → 0.1.22

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 (106) hide show
  1. package/package.json +2 -1
  2. package/src/components/BookingWidget.tsx +282 -26
  3. package/src/components/ManageBookingView.tsx +75 -23
  4. package/src/components/PostBookingDependentAddOnUpsell.tsx +1 -1
  5. package/src/components/booking/BookingProductGrid.tsx +1 -1
  6. package/src/components/booking/Calendar.module.css +3 -3
  7. package/src/components/booking/CheckoutForm.tsx +1 -1
  8. package/src/components/booking/InfoTooltip.tsx +2 -13
  9. package/src/components/booking/PickupLocationSelector.tsx +2 -2
  10. package/src/components/booking/PriceBreakdown.tsx +11 -34
  11. package/src/index.ts +3 -1
  12. package/tsconfig.json +1 -1
  13. package/src/components/JobApplicationDialog.module.css +0 -440
  14. package/src/components/JobApplicationDialog.tsx +0 -620
  15. package/src/components/PickupLocationMap.tsx +0 -110
  16. package/src/components/accordion.css +0 -27
  17. package/src/components/accordion.tsx +0 -29
  18. package/src/components/analytics/AnalyticsConsentRestore.tsx +0 -19
  19. package/src/components/analytics/AnalyticsScripts.tsx +0 -106
  20. package/src/components/analytics/CookieConsentBanner.css +0 -86
  21. package/src/components/analytics/CookieConsentBanner.tsx +0 -102
  22. package/src/components/bottom-sheet.module.css +0 -78
  23. package/src/components/bottom-sheet.tsx +0 -60
  24. package/src/components/breadcrumb.module.css +0 -40
  25. package/src/components/breadcrumb.tsx +0 -36
  26. package/src/components/client-bottom-sheet.tsx +0 -14
  27. package/src/components/conditional-footer.tsx +0 -27
  28. package/src/components/contact-us.module.css +0 -147
  29. package/src/components/contact-us.tsx +0 -49
  30. package/src/components/email-signup.css +0 -151
  31. package/src/components/email-signup.tsx +0 -63
  32. package/src/components/faq-wrapper.module.css +0 -47
  33. package/src/components/faq-wrapper.tsx +0 -15
  34. package/src/components/footer.css +0 -187
  35. package/src/components/footer.tsx +0 -143
  36. package/src/components/global-simple-modal.tsx +0 -33
  37. package/src/components/google-review-summary.module.css +0 -77
  38. package/src/components/google-review-summary.tsx +0 -50
  39. package/src/components/hero-image.css +0 -13
  40. package/src/components/hero-image.tsx +0 -44
  41. package/src/components/language-aware-link.tsx +0 -72
  42. package/src/components/language-switcher.module.css +0 -124
  43. package/src/components/language-switcher.tsx +0 -75
  44. package/src/components/map-section.css +0 -59
  45. package/src/components/map-section.tsx +0 -63
  46. package/src/components/navbar.module.css +0 -152
  47. package/src/components/navbar.tsx +0 -125
  48. package/src/components/parallax-provider.tsx +0 -11
  49. package/src/components/product-theme-pages/best-option.module.css +0 -70
  50. package/src/components/product-theme-pages/best-option.tsx +0 -35
  51. package/src/components/product-theme-pages/extended-tour-options.module.css +0 -22
  52. package/src/components/product-theme-pages/extended-tour-options.tsx +0 -11
  53. package/src/components/product-theme-pages/photo-gallery.tsx +0 -90
  54. package/src/components/product-theme-pages/product-theme-page-layout.module.css +0 -13
  55. package/src/components/product-theme-pages/product-theme-page-layout.tsx +0 -67
  56. package/src/components/product-theme-pages/top-of-fold.module.css +0 -179
  57. package/src/components/product-theme-pages/top-of-fold.tsx +0 -80
  58. package/src/components/product-tile/image-only-product-tile-desktop.module.css +0 -106
  59. package/src/components/product-tile/image-only-product-tile-desktop.tsx +0 -56
  60. package/src/components/product-tile/image-only-product-tile-mobile.module.css +0 -122
  61. package/src/components/product-tile/image-only-product-tile-mobile.tsx +0 -89
  62. package/src/components/product-tile/image-only-product-tile.tsx +0 -44
  63. package/src/components/product-tile/product-tile-card.module.css +0 -84
  64. package/src/components/product-tile/product-tile-card.tsx +0 -61
  65. package/src/components/review-highlights-section.css +0 -85
  66. package/src/components/review-highlights-section.tsx +0 -127
  67. package/src/components/season-closure-overlay.module.css +0 -99
  68. package/src/components/season-closure-overlay.tsx +0 -98
  69. package/src/components/simple-modal.tsx +0 -69
  70. package/src/components/simple-top-of-fold.module.css +0 -76
  71. package/src/components/simple-top-of-fold.tsx +0 -34
  72. package/src/components/spacer.css +0 -41
  73. package/src/components/spacer.tsx +0 -23
  74. package/src/components/star-rating.module.css +0 -74
  75. package/src/components/star-rating.tsx +0 -48
  76. package/src/components/title-subtitle.module.css +0 -10
  77. package/src/components/title-subtitle.tsx +0 -30
  78. package/src/components/translatable-reviews.tsx +0 -75
  79. package/src/components/value-props.css +0 -185
  80. package/src/components/value-props.tsx +0 -88
  81. package/src/constants/booking-guide-quiz.ts +0 -64
  82. package/src/constants/contact-info.ts +0 -2
  83. package/src/constants/faq.ts +0 -44
  84. package/src/constants/json-ld/faq-json-ld.tsx +0 -170
  85. package/src/constants/json-ld/homepage-json-ld.tsx +0 -138
  86. package/src/constants/json-ld/job-posting-json-ld.tsx +0 -92
  87. package/src/constants/json-ld/organization-json-ld.tsx +0 -62
  88. package/src/constants/json-ld/page-json-ld.tsx +0 -6
  89. package/src/constants/json-ld/product-json-ld.tsx +0 -154
  90. package/src/constants/json-ld/review-json-ld.tsx +0 -377
  91. package/src/constants/navigation-links/footer-links.ts +0 -48
  92. package/src/constants/navigation-links/nav-bar-links.ts +0 -41
  93. package/src/constants/navigation-links/navigation-link.ts +0 -6
  94. package/src/constants/quiz-recommendations.ts +0 -506
  95. package/src/constants/reviews.ts +0 -75
  96. package/src/constants/staff.ts +0 -197
  97. package/src/constants/value-props.ts +0 -58
  98. package/src/hooks/use-bottom-sheet.tsx +0 -15
  99. package/src/hooks/use-simple-modal.tsx +0 -27
  100. package/src/hooks/useEmailSubscription.tsx +0 -103
  101. package/src/hooks/useEmbeddedInIframe.ts +0 -16
  102. package/src/hooks/useQuiz.tsx +0 -210
  103. package/src/providers/bottom-sheet-provider.tsx +0 -40
  104. package/src/types/fareharbor.d.ts +0 -12
  105. package/src/types/quiz.ts +0 -59
  106. /package/src/{app/photo-sessions → lib}/photo-packages.ts +0 -0
@@ -93,18 +93,11 @@ export function PriceBreakdown({
93
93
  >
94
94
  {hasDiscount ? (
95
95
  <>
96
- <span
97
- style={{
98
- textDecorationLine: 'line-through',
99
- textDecorationThickness: '1.5px',
100
- textDecorationColor: '#a8a29e',
101
- color: '#a8a29e',
102
- marginRight: '0.35rem',
103
- }}
104
- >
96
+ <span className="line-through text-stone-400">
105
97
  {formatCurrencyAmount(baseTotal, currency, locale)}
106
98
  </span>
107
- <span style={{ color: '#059669', fontWeight: 600 }}>
99
+ {' '}
100
+ <span className="text-emerald-600">
108
101
  {formatCurrencyAmount(itemTotal, currency, locale)}
109
102
  </span>
110
103
  </>
@@ -113,33 +106,17 @@ export function PriceBreakdown({
113
106
  )}
114
107
  </span>
115
108
  {canShowBreakdown && showTooltip && (
116
- <div
117
- style={{
118
- position: 'absolute',
119
- right: 0,
120
- top: '100%',
121
- marginTop: '0.5rem',
122
- width: '18rem',
123
- padding: '0.75rem',
124
- backgroundColor: '#1c1917',
125
- color: '#ffffff',
126
- fontSize: '0.75rem',
127
- borderRadius: '0.5rem',
128
- boxShadow: '0 12px 24px rgba(0,0,0,0.24)',
129
- zIndex: 100000,
130
- border: '1px solid rgba(255,255,255,0.08)',
131
- }}
132
- >
133
- <div style={{ fontWeight: 600, marginBottom: '0.5rem', paddingBottom: '0.5rem', borderBottom: '1px solid #44403c' }}>
109
+ <div className="absolute right-0 top-full mt-2 w-72 p-3 bg-stone-900 text-white text-xs rounded-lg shadow-xl z-50">
110
+ <div className="font-semibold mb-2 pb-2 border-b border-stone-700">
134
111
  Price Breakdown ({category})
135
112
  </div>
136
- <div style={{ display: 'grid', rowGap: '0.375rem' }}>
113
+ <div className="space-y-1.5">
137
114
  {breakdown.lineItems.map((line) => (
138
115
  <div key={line.id ?? line.name} className="flex justify-between">
139
- <span style={{ color: '#a8a29e' }}>
116
+ <span className="text-stone-400">
140
117
  {line.name}{line.type === 'base' ? ` (${currency})` : ''}{formatAdjustmentDetail(line.adjustmentType, line.adjustmentValue, line.amountInDisplayCurrency < 0)}
141
118
  </span>
142
- <span style={line.type === 'adjustment' && line.amountInDisplayCurrency < 0 ? { color: '#fca5a5' } : undefined}>
119
+ <span className={line.type === 'adjustment' && line.amountInDisplayCurrency < 0 ? 'text-red-300' : ''}>
143
120
  {line.type === 'adjustment' && line.amountInDisplayCurrency >= 0 ? '+' : ''}
144
121
  {formatCurrencyAmount(line.amountInDisplayCurrency, currency, locale)}
145
122
  </span>
@@ -150,21 +127,21 @@ export function PriceBreakdown({
150
127
  <>
151
128
  {breakdown.feeLines.map((fee) => (
152
129
  <div key={fee.name} className="flex justify-between">
153
- <span style={{ color: '#a8a29e' }} title={fee.description}>
130
+ <span className="text-stone-400" title={fee.description}>
154
131
  {fee.name}:
155
132
  </span>
156
133
  <span>{formatCurrencyAmount(fee.feeAmount, currency, locale)}</span>
157
134
  </div>
158
135
  ))}
159
136
  <div className="flex justify-between">
160
- <span style={{ color: '#a8a29e' }}>
137
+ <span className="text-stone-400">
161
138
  {`${t('booking.tax') !== 'booking.tax' ? t('booking.tax') : 'Taxes and fees'} (included):`}
162
139
  </span>
163
140
  <span>{formatCurrencyAmount(breakdown.taxAmount, currency, locale)}</span>
164
141
  </div>
165
142
  </>
166
143
  )}
167
- <div style={{ display: 'flex', justifyContent: 'space-between', paddingTop: '0.5rem', marginTop: '0.5rem', borderTop: '1px solid #44403c', fontWeight: 600 }}>
144
+ <div className="flex justify-between pt-2 mt-2 border-t border-stone-700 font-semibold">
168
145
  <span>Final price ({currency}):</span>
169
146
  <span>{formatCurrencyAmount(breakdown.finalPrice, currency, locale)}</span>
170
147
  </div>
package/src/index.ts CHANGED
@@ -31,9 +31,10 @@ export {
31
31
  CompanyProvider,
32
32
  useCompany,
33
33
  useCompanyTimezone,
34
- type Company,
35
34
  } from './contexts/CompanyContext';
36
35
 
36
+ export { type Company } from './lib/booking-api';
37
+
37
38
  export {
38
39
  AVAILABILITIES_CACHE_TTL_MS,
39
40
  AvailabilitiesCacheProvider,
@@ -55,6 +56,7 @@ export {
55
56
 
56
57
  export {
57
58
  setPartnerPortalBookingJwtGetter,
59
+ type Product,
58
60
  } from './lib/booking-api';
59
61
 
60
62
  export {
package/tsconfig.json CHANGED
@@ -15,6 +15,6 @@
15
15
  "@/*": ["src/*"]
16
16
  }
17
17
  },
18
- "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.json", "src/**/*.d.ts"],
18
+ "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.js", "src/**/*.json", "src/**/*.d.ts"],
19
19
  "exclude": ["src/**/*.test.ts", "src/**/*.test.tsx"]
20
20
  }
@@ -1,440 +0,0 @@
1
- .overlay {
2
- position: fixed;
3
- inset: 0;
4
- background: rgba(0, 0, 0, 0.6);
5
- display: flex;
6
- align-items: center;
7
- justify-content: center;
8
- z-index: 1000;
9
- padding: 1rem;
10
- }
11
-
12
- .modal {
13
- background: var(--primary-background, #fff);
14
- border-radius: 24px;
15
- width: 100%;
16
- max-width: 720px;
17
- max-height: 90vh;
18
- overflow: hidden;
19
- display: flex;
20
- flex-direction: column;
21
- box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
22
- }
23
-
24
- @media (min-width: 900px) {
25
- .modal {
26
- max-width: 960px;
27
- }
28
- }
29
-
30
- .formRow {
31
- display: flex;
32
- flex-direction: column;
33
- flex: 1;
34
- min-height: 0;
35
- overflow: hidden;
36
- }
37
-
38
- @media (min-width: 900px) {
39
- .formRow {
40
- flex-direction: row;
41
- }
42
- }
43
-
44
- .rightColumn {
45
- display: none;
46
- }
47
-
48
- @media (min-width: 900px) {
49
- .rightColumn {
50
- display: flex;
51
- flex-direction: column;
52
- justify-content: center;
53
- gap: 0.5rem;
54
- padding: var(--spacing-large);
55
- width: 200px;
56
- flex-shrink: 0;
57
- background: var(--light-orange-background, #fff1eb);
58
- border-left: 1px solid var(--accent-orange-10, rgba(0, 0, 0, 0.08));
59
- }
60
-
61
- .rightColumnText {
62
- font-family: 'Poppins', sans-serif;
63
- font-weight: 800;
64
- font-size: 1.125rem;
65
- color: var(--accent-orange, #e85a2e);
66
- margin: 0;
67
- line-height: 1.3;
68
- }
69
- }
70
-
71
- .header {
72
- position: relative;
73
- padding: var(--spacing-large) var(--spacing-large) var(--spacing-small) var(--spacing-large);
74
- border-bottom: 1px solid var(--accent-orange-10, rgba(0, 0, 0, 0.08));
75
- }
76
-
77
- .header.headerExpanded {
78
- flex: 1;
79
- min-height: 0;
80
- display: flex;
81
- flex-direction: column;
82
- }
83
-
84
- .headerExpanded .headerContent {
85
- flex: 1;
86
- min-height: 0;
87
- display: flex;
88
- flex-direction: column;
89
- }
90
-
91
- .headerContent {
92
- display: block;
93
- }
94
-
95
- .title {
96
- font-family: 'Poppins', sans-serif;
97
- font-weight: 800;
98
- font-size: 1.5rem;
99
- color: var(--accent-orange, #e85a2e);
100
- margin: 0 0 0.25rem 0;
101
- }
102
-
103
- @media (max-width: 768px) {
104
- .title {
105
- font-size: 1.25rem;
106
- }
107
- }
108
-
109
- .descriptionSection {
110
- margin: 0;
111
- }
112
-
113
- .descriptionSection:not(.descriptionExpanded) .description {
114
- display: -webkit-box;
115
- -webkit-line-clamp: 3;
116
- -webkit-box-orient: vertical;
117
- overflow: hidden;
118
- text-overflow: ellipsis;
119
- }
120
-
121
- .descriptionSection.descriptionExpanded {
122
- flex: 1;
123
- min-height: 0;
124
- display: flex;
125
- flex-direction: column;
126
- overflow: hidden;
127
- }
128
-
129
- .descriptionExpandedContent {
130
- flex: 1;
131
- min-height: 0;
132
- overflow-y: auto;
133
- font-size: 0.9375rem;
134
- color: var(--grey-text, #6b7280);
135
- line-height: 1.5;
136
- text-align: left;
137
- }
138
-
139
- /* Override global h3/h4 styles - match collapsed text, bold only for titles */
140
- .descriptionExpandedContent h3 {
141
- font-family: 'Figtree', sans-serif;
142
- font-size: 0.9375rem;
143
- font-weight: 700;
144
- color: var(--grey-text, #6b7280);
145
- text-transform: none;
146
- text-align: left;
147
- margin: 1.25rem 0 0.5rem 0;
148
- }
149
-
150
- .descriptionExpandedContent h3:first-child {
151
- margin-top: 0;
152
- }
153
-
154
- .descriptionExpandedContent h4 {
155
- font-family: 'Figtree', sans-serif;
156
- font-size: 0.9375rem;
157
- font-weight: 700;
158
- color: var(--grey-text, #6b7280);
159
- text-transform: none;
160
- text-align: left;
161
- margin: 1rem 0 0.375rem 0;
162
- }
163
-
164
- /* Override global p - match collapsed description exactly */
165
- .descriptionExpandedContent p {
166
- font-size: 0.9375rem;
167
- color: var(--grey-text, #6b7280);
168
- margin: 0 0 0.75rem 0;
169
- }
170
-
171
- .descriptionExpandedContent ul {
172
- margin: 0 0 0.75rem 0;
173
- padding-left: 1.25rem;
174
- }
175
-
176
- .descriptionExpandedContent li {
177
- font-size: 0.9375rem;
178
- color: var(--grey-text, #6b7280);
179
- margin-bottom: 0.25rem;
180
- }
181
-
182
- .description {
183
- font-size: 0.9375rem;
184
- color: var(--grey-text, #6b7280);
185
- margin: 0;
186
- line-height: 1.5;
187
- text-align: left;
188
- }
189
-
190
- .descriptionToggle {
191
- display: flex;
192
- align-items: center;
193
- justify-content: center;
194
- gap: 0.25rem;
195
- background: none;
196
- border: none;
197
- padding: 0.25rem 0;
198
- margin: 0.25rem auto 0;
199
- cursor: pointer;
200
- color: var(--grey-text, #6b7280);
201
- font-size: 0.875rem;
202
- transition: color 0.2s ease;
203
- }
204
-
205
- .descriptionToggle:hover {
206
- color: var(--accent-orange, #e85a2e);
207
- }
208
-
209
- .descriptionToggle svg {
210
- display: block;
211
- transition: transform 0.2s ease;
212
- }
213
-
214
- .descriptionSection.descriptionExpanded .descriptionToggle svg {
215
- transform: rotate(180deg);
216
- }
217
-
218
- .bodyScroll {
219
- flex: 1;
220
- min-height: 0;
221
- min-width: 0;
222
- overflow-y: auto;
223
- display: flex;
224
- flex-direction: column;
225
- }
226
-
227
- .headerExpanded ~ .formRow {
228
- flex: 0;
229
- }
230
-
231
- .closeBtn {
232
- position: absolute;
233
- top: var(--spacing-small);
234
- right: var(--spacing-small);
235
- background: none;
236
- border: none;
237
- padding: 0.5rem;
238
- cursor: pointer;
239
- color: var(--grey-text, #6b7280);
240
- }
241
-
242
- .closeBtn:hover {
243
- color: var(--primary-text, #1f2937);
244
- }
245
-
246
- .content {
247
- padding: var(--spacing-large);
248
- flex-shrink: 0;
249
- }
250
-
251
- .form {
252
- display: flex;
253
- flex-direction: column;
254
- gap: var(--spacing-medium);
255
- }
256
-
257
- .formGroup {
258
- display: flex;
259
- flex-direction: column;
260
- }
261
-
262
- .label {
263
- font-weight: 500;
264
- color: var(--primary-text, #1f2937);
265
- font-size: 0.875rem;
266
- text-align: left;
267
- }
268
-
269
- .radioGroup {
270
- display: flex;
271
- gap: 1.5rem;
272
- margin-top: 0.25rem;
273
- }
274
-
275
- .radioLabel {
276
- display: flex;
277
- align-items: center;
278
- gap: 0.5rem;
279
- cursor: pointer;
280
- font-size: 0.9375rem;
281
- font-weight: 400;
282
- }
283
-
284
- .input {
285
- width: 100%;
286
- padding: 0.75rem 1rem;
287
- border: 1px solid var(--grey-text, #6b7280);
288
- border-radius: 12px;
289
- font-size: 1rem;
290
- font-family: 'Figtree', sans-serif;
291
- transition: border-color 0.2s, box-shadow 0.2s;
292
- box-sizing: border-box;
293
- text-align: left;
294
- }
295
-
296
- .input:focus {
297
- outline: none;
298
- border-color: var(--accent-orange, #e85a2e);
299
- box-shadow: 0 0 0 3px rgba(232, 90, 46, 0.15);
300
- }
301
-
302
- /* Match phone input outline to other form fields */
303
- .phoneInputMatch :global(.react-international-phone-input-container) {
304
- border: 1px solid var(--grey-text, #6b7280);
305
- transition: border-color 0.2s, box-shadow 0.2s;
306
- }
307
-
308
- .phoneInputMatch:focus-within :global(.react-international-phone-input-container) {
309
- border-color: var(--accent-orange, #e85a2e);
310
- box-shadow: 0 0 0 3px rgba(232, 90, 46, 0.15);
311
- }
312
-
313
- .textarea {
314
- min-height: 120px;
315
- resize: vertical;
316
- }
317
-
318
- .fileInput {
319
- padding: 0.5rem 0;
320
- text-align: left;
321
- }
322
-
323
- .fileInputHidden {
324
- position: absolute;
325
- width: 0.1px;
326
- height: 0.1px;
327
- opacity: 0;
328
- overflow: hidden;
329
- z-index: -1;
330
- }
331
-
332
- .fileInputButton {
333
- display: inline-block;
334
- padding: 0.5rem 1.25rem;
335
- background: var(--accent-orange, #e85a2e);
336
- color: white;
337
- border: none;
338
- border-radius: 12px;
339
- font-weight: 600;
340
- font-size: 0.9375rem;
341
- font-family: 'Poppins', sans-serif;
342
- cursor: pointer;
343
- transition: opacity 0.2s;
344
- }
345
-
346
- .fileInputButton:hover {
347
- opacity: 0.9;
348
- }
349
-
350
- .fileInputDisabled .fileInputButton {
351
- opacity: 0.6;
352
- cursor: not-allowed;
353
- pointer-events: none;
354
- }
355
-
356
- .fileName {
357
- font-size: 0.8125rem;
358
- color: var(--accent-orange);
359
- margin-top: 0.5rem;
360
- }
361
-
362
- .error {
363
- color: #dc2626;
364
- font-size: 0.875rem;
365
- margin-top: 0.25rem;
366
- }
367
-
368
- .success {
369
- color: #16a34a;
370
- font-size: 0.9375rem;
371
- padding: 1rem;
372
- background: #f0fdf4;
373
- border-radius: 12px;
374
- margin-bottom: var(--spacing-medium);
375
- }
376
-
377
- .closeConfirm {
378
- text-align: center;
379
- }
380
-
381
- .closeConfirmTitle {
382
- font-weight: 600;
383
- font-size: 1.125rem;
384
- color: var(--primary-text, #1f2937);
385
- margin: 0 0 0.25rem 0;
386
- }
387
-
388
- .closeConfirmMessage {
389
- font-size: 0.9375rem;
390
- color: var(--grey-text, #6b7280);
391
- margin: 0 0 var(--spacing-medium) 0;
392
- }
393
-
394
- .closeConfirmActions {
395
- display: flex;
396
- justify-content: center;
397
- gap: 0.75rem;
398
- flex-wrap: wrap;
399
- }
400
-
401
- .footer {
402
- display: flex;
403
- justify-content: flex-end;
404
- gap: 0.75rem;
405
- padding-top: var(--spacing-large);
406
- border-top: 1px solid var(--accent-orange-10, rgba(0, 0, 0, 0.08));
407
- }
408
-
409
- .cancelBtn {
410
- padding: 0.625rem 1.25rem;
411
- background: transparent;
412
- border: 1px solid var(--grey-text);
413
- border-radius: 12px;
414
- font-weight: 500;
415
- cursor: pointer;
416
- color: var(--grey-text);
417
- }
418
-
419
- .cancelBtn:hover {
420
- background: rgba(0, 0, 0, 0.05);
421
- }
422
-
423
- .submitBtn {
424
- padding: 0.625rem 1.5rem;
425
- background: var(--accent-orange, #e85a2e);
426
- color: white;
427
- border: none;
428
- border-radius: 12px;
429
- font-weight: 600;
430
- cursor: pointer;
431
- }
432
-
433
- .submitBtn:hover:not(:disabled) {
434
- opacity: 0.9;
435
- }
436
-
437
- .submitBtn:disabled {
438
- opacity: 0.6;
439
- cursor: not-allowed;
440
- }