@ticketboothapp/booking 0.1.23 → 1.2.24

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 (158) hide show
  1. package/package.json +2 -29
  2. package/src/index.ts +0 -79
  3. package/tsconfig.json +2 -8
  4. package/src/assets/icons/minus.svg +0 -7
  5. package/src/assets/icons/partner-logos/getyourguide.svg +0 -8
  6. package/src/assets/icons/plus.svg +0 -3
  7. package/src/colours.css +0 -23
  8. package/src/components/BookingDetails.module.css +0 -1591
  9. package/src/components/BookingDetails.tsx +0 -2264
  10. package/src/components/BookingWidget.tsx +0 -302
  11. package/src/components/ManageBookingView.tsx +0 -437
  12. package/src/components/PhoneInputWithCountry.module.css +0 -131
  13. package/src/components/PhoneInputWithCountry.tsx +0 -44
  14. package/src/components/PickupLocationDialog.module.css +0 -360
  15. package/src/components/PickupLocationDialog.tsx +0 -357
  16. package/src/components/PostBookingDependentAddOnUpsell.module.css +0 -174
  17. package/src/components/PostBookingDependentAddOnUpsell.tsx +0 -407
  18. package/src/components/booking/AddOnsSection.module.css +0 -10
  19. package/src/components/booking/AddOnsSection.tsx +0 -184
  20. package/src/components/booking/AdminPaymentChoiceModal.tsx +0 -98
  21. package/src/components/booking/BookingDialog.module.css +0 -643
  22. package/src/components/booking/BookingDialog.tsx +0 -356
  23. package/src/components/booking/BookingFlow.tsx +0 -4385
  24. package/src/components/booking/BookingFlowCollage.module.css +0 -148
  25. package/src/components/booking/BookingFlowCollage.tsx +0 -184
  26. package/src/components/booking/BookingFlowPlaceholder.module.css +0 -27
  27. package/src/components/booking/BookingFlowPlaceholder.tsx +0 -25
  28. package/src/components/booking/BookingFlowPreview.tsx +0 -51
  29. package/src/components/booking/BookingProductGrid.module.css +0 -359
  30. package/src/components/booking/BookingProductGrid.tsx +0 -497
  31. package/src/components/booking/Calendar.module.css +0 -616
  32. package/src/components/booking/Calendar.tsx +0 -1123
  33. package/src/components/booking/CancellationPolicySelector.module.css +0 -124
  34. package/src/components/booking/CancellationPolicySelector.tsx +0 -142
  35. package/src/components/booking/ChangeBookingDialog.tsx +0 -562
  36. package/src/components/booking/CheckoutForm.module.css +0 -244
  37. package/src/components/booking/CheckoutForm.tsx +0 -364
  38. package/src/components/booking/CheckoutModal.tsx +0 -451
  39. package/src/components/booking/CurrencySwitcher.tsx +0 -81
  40. package/src/components/booking/DapFlowCollage.tsx +0 -88
  41. package/src/components/booking/DapTourDescription.tsx +0 -35
  42. package/src/components/booking/DependentAddOnBookingDialog.tsx +0 -1350
  43. package/src/components/booking/DependentAddOnPaymentForm.tsx +0 -124
  44. package/src/components/booking/ErrorBoundary.tsx +0 -63
  45. package/src/components/booking/InfoTooltip.tsx +0 -108
  46. package/src/components/booking/ItineraryBox.module.css +0 -258
  47. package/src/components/booking/ItineraryBox.tsx +0 -550
  48. package/src/components/booking/ItineraryBuilder.tsx +0 -82
  49. package/src/components/booking/ItineraryPlaceholder.module.css +0 -45
  50. package/src/components/booking/ItineraryPlaceholder.tsx +0 -26
  51. package/src/components/booking/MealDrinkAddOnSelector.tsx +0 -338
  52. package/src/components/booking/PickupLocationSelector.module.css +0 -124
  53. package/src/components/booking/PickupLocationSelector.tsx +0 -1566
  54. package/src/components/booking/PickupTimeSelector.module.css +0 -134
  55. package/src/components/booking/PickupTimeSelector.tsx +0 -112
  56. package/src/components/booking/PriceBreakdown.tsx +0 -154
  57. package/src/components/booking/PriceSummary.tsx +0 -234
  58. package/src/components/booking/PrivateShuttleBookingFlow.module.css +0 -357
  59. package/src/components/booking/PrivateShuttleBookingFlow.tsx +0 -2662
  60. package/src/components/booking/PromoCodeInput.module.css +0 -166
  61. package/src/components/booking/PromoCodeInput.tsx +0 -99
  62. package/src/components/booking/ReturnTimeSelector.module.css +0 -173
  63. package/src/components/booking/ReturnTimeSelector.tsx +0 -145
  64. package/src/components/booking/TermsAcceptance.tsx +0 -111
  65. package/src/components/booking/TicketSelector.module.css +0 -164
  66. package/src/components/booking/TicketSelector.tsx +0 -199
  67. package/src/components/booking/TourDescription.module.css +0 -304
  68. package/src/components/booking/TourDescription.tsx +0 -273
  69. package/src/components/booking/booking-flow-ui.ts +0 -38
  70. package/src/components/booking/booking-flow.css +0 -944
  71. package/src/components/button.css +0 -245
  72. package/src/components/button.tsx +0 -152
  73. package/src/components/colorable-svg.tsx +0 -29
  74. package/src/components/image.css +0 -29
  75. package/src/components/image.tsx +0 -113
  76. package/src/components/partner/PartnerBookingPage.module.css +0 -130
  77. package/src/components/partner/PartnerBookingPage.tsx +0 -390
  78. package/src/components/partner/PartnerBookingPageWithBrowserMetadata.tsx +0 -45
  79. package/src/components/product-tag.module.css +0 -30
  80. package/src/components/product-tag.tsx +0 -34
  81. package/src/components/product-theme-pages/image-modal.tsx +0 -248
  82. package/src/components/product-theme-pages/photo-gallery.module.css +0 -200
  83. package/src/components/terms/TermsContent.tsx +0 -178
  84. package/src/components/value-pill.module.css +0 -59
  85. package/src/components/value-pill.tsx +0 -46
  86. package/src/constants/images.ts +0 -556
  87. package/src/constants/pill-values.ts +0 -210
  88. package/src/constants/products.ts +0 -155
  89. package/src/contexts/AvailabilitiesCacheContext.tsx +0 -125
  90. package/src/contexts/BookingAppContext.tsx +0 -134
  91. package/src/contexts/CompanyContext.tsx +0 -70
  92. package/src/data/dap-descriptions/session-couples-families-friends.en.json +0 -61
  93. package/src/data/dap-descriptions/session-elopements.en.json +0 -60
  94. package/src/data/dap-descriptions/session-proposals.en.json +0 -60
  95. package/src/data/product-descriptions/afternoon-delight.en.json +0 -35
  96. package/src/data/product-descriptions/emerald-lake-escape.en.json +0 -68
  97. package/src/data/product-descriptions/lake-louise-adventure.en.json +0 -74
  98. package/src/data/product-descriptions/moraine-lake-adventure.en.json +0 -78
  99. package/src/data/product-descriptions/moraine-lake-sunrise-lake-louise-golden-hour.en.json +0 -65
  100. package/src/data/product-descriptions/moraine-lake-sunrise.en.json +0 -64
  101. package/src/data/product-descriptions/private-tour.en.json +0 -80
  102. package/src/data/product-descriptions/two-lakes-combo.en.json +0 -65
  103. package/src/data/products-config.json +0 -101
  104. package/src/hooks/useBookingSourceMetadataFromLocation.ts +0 -21
  105. package/src/hooks/useIsBookingLaunchLive.ts +0 -49
  106. package/src/lib/analytics.ts +0 -197
  107. package/src/lib/booking/booking-source.ts +0 -51
  108. package/src/lib/booking/checkout-breakdown.ts +0 -69
  109. package/src/lib/booking/correlation-id.ts +0 -46
  110. package/src/lib/booking/i18n/config.ts +0 -21
  111. package/src/lib/booking/i18n/index.tsx +0 -144
  112. package/src/lib/booking/i18n/messages/en.json +0 -236
  113. package/src/lib/booking/i18n/messages/fr.json +0 -236
  114. package/src/lib/booking/itinerary-display.ts +0 -36
  115. package/src/lib/booking/itinerary-labels.ts +0 -70
  116. package/src/lib/booking/location-calculations.ts +0 -43
  117. package/src/lib/booking/location-utils.ts +0 -165
  118. package/src/lib/booking/map-utils.ts +0 -153
  119. package/src/lib/booking/marker-icons.ts +0 -113
  120. package/src/lib/booking/normalize-booking-product-id.ts +0 -21
  121. package/src/lib/booking/pickup-location-types.ts +0 -25
  122. package/src/lib/booking/places-api.ts +0 -154
  123. package/src/lib/booking/pricing.ts +0 -466
  124. package/src/lib/booking/product-option-id.ts +0 -35
  125. package/src/lib/booking/source-metadata.ts +0 -226
  126. package/src/lib/booking/sunday-week.ts +0 -14
  127. package/src/lib/booking/theme.ts +0 -83
  128. package/src/lib/booking/trace-context.ts +0 -62
  129. package/src/lib/booking/utils.ts +0 -9
  130. package/src/lib/booking-api.ts +0 -1793
  131. package/src/lib/booking-constants.ts +0 -23
  132. package/src/lib/booking-ref.ts +0 -13
  133. package/src/lib/booking-types.ts +0 -36
  134. package/src/lib/currency.ts +0 -81
  135. package/src/lib/dap-descriptions.ts +0 -50
  136. package/src/lib/dap-itinerary-preview.ts +0 -315
  137. package/src/lib/dependent-add-on-api.ts +0 -434
  138. package/src/lib/env.ts +0 -96
  139. package/src/lib/firebase.ts +0 -20
  140. package/src/lib/job-application-api.ts +0 -83
  141. package/src/lib/manage-booking-embed-print.ts +0 -16
  142. package/src/lib/manage-booking-post-checkout.ts +0 -68
  143. package/src/lib/photo-dap-config.ts +0 -228
  144. package/src/lib/photo-packages.ts +0 -75
  145. package/src/lib/pickup/map-utils.ts +0 -56
  146. package/src/lib/pickup/marker-icons.ts +0 -19
  147. package/src/lib/product-descriptions.ts +0 -66
  148. package/src/lib/products-config.ts +0 -73
  149. package/src/providers/booking-dialog-provider.tsx +0 -282
  150. package/src/providers/dependent-add-on-dialog-provider.tsx +0 -105
  151. package/src/radius.css +0 -5
  152. package/src/spacing.css +0 -7
  153. package/src/strings/en.json +0 -1774
  154. package/src/strings/es.json +0 -1573
  155. package/src/strings/fr.json +0 -1573
  156. package/src/strings/index.js +0 -23
  157. package/src/text-style.css +0 -56
  158. package/src/utils/currency-converter.ts +0 -101
@@ -1,944 +0,0 @@
1
- /**
2
- * Booking flow theme - matches ticketbooth-fe styling.
3
- * Scoped to .booking-flow-root for variables/utilities; preflight only in .booking-flow-preflight
4
- * (book-flow screen) so the product grid keeps its intended styling.
5
- */
6
-
7
- /* ========== Scoped Preflight (Tailwind base reset, only inside book-flow screen - NOT product grid) ========== */
8
- .booking-flow-preflight *,
9
- .booking-flow-preflight *::before,
10
- .booking-flow-preflight *::after {
11
- box-sizing: border-box;
12
- border-width: 0;
13
- border-style: solid;
14
- border-color: currentColor;
15
- }
16
-
17
- .booking-flow-preflight *::before,
18
- .booking-flow-preflight *::after {
19
- --tw-content: '';
20
- }
21
-
22
- .booking-flow-preflight h1,
23
- .booking-flow-preflight h2,
24
- .booking-flow-preflight h3,
25
- .booking-flow-preflight h4,
26
- .booking-flow-preflight h5,
27
- .booking-flow-preflight h6 {
28
- font-size: inherit;
29
- font-weight: inherit;
30
- }
31
-
32
- .booking-flow-preflight a {
33
- color: inherit;
34
- text-decoration: inherit;
35
- }
36
-
37
- .booking-flow-preflight button,
38
- .booking-flow-preflight input,
39
- .booking-flow-preflight optgroup,
40
- .booking-flow-preflight select,
41
- .booking-flow-preflight textarea {
42
- font-family: inherit;
43
- font-feature-settings: inherit;
44
- font-variation-settings: inherit;
45
- font-size: 100%;
46
- font-weight: inherit;
47
- line-height: inherit;
48
- letter-spacing: inherit;
49
- color: inherit;
50
- margin: 0;
51
- padding: 0;
52
- }
53
-
54
- .booking-flow-preflight button,
55
- .booking-flow-preflight select {
56
- text-transform: none;
57
- }
58
-
59
- .booking-flow-preflight button,
60
- .booking-flow-preflight input[type='button'],
61
- .booking-flow-preflight input[type='reset'],
62
- .booking-flow-preflight input[type='submit'] {
63
- -webkit-appearance: button;
64
- background-color: transparent;
65
- background-image: none;
66
- }
67
-
68
- .booking-flow-preflight button,
69
- .booking-flow-preflight [role='button'] {
70
- cursor: pointer;
71
- }
72
-
73
- .booking-flow-preflight :disabled {
74
- cursor: default;
75
- }
76
-
77
- .booking-flow-preflight blockquote,
78
- .booking-flow-preflight dl,
79
- .booking-flow-preflight dd,
80
- .booking-flow-preflight h1,
81
- .booking-flow-preflight h2,
82
- .booking-flow-preflight h3,
83
- .booking-flow-preflight h4,
84
- .booking-flow-preflight h5,
85
- .booking-flow-preflight h6,
86
- .booking-flow-preflight hr,
87
- .booking-flow-preflight figure,
88
- .booking-flow-preflight p,
89
- .booking-flow-preflight pre {
90
- margin: 0;
91
- }
92
-
93
- .booking-flow-preflight fieldset {
94
- margin: 0;
95
- padding: 0;
96
- }
97
-
98
- .booking-flow-preflight ol,
99
- .booking-flow-preflight ul,
100
- .booking-flow-preflight menu {
101
- list-style: none;
102
- margin: 0;
103
- padding: 0;
104
- }
105
-
106
- .booking-flow-preflight img,
107
- .booking-flow-preflight svg,
108
- .booking-flow-preflight video,
109
- .booking-flow-preflight canvas,
110
- .booking-flow-preflight audio,
111
- .booking-flow-preflight iframe,
112
- .booking-flow-preflight embed,
113
- .booking-flow-preflight object {
114
- display: block;
115
- vertical-align: middle;
116
- }
117
-
118
- .booking-flow-preflight input::placeholder,
119
- .booking-flow-preflight textarea::placeholder {
120
- opacity: 1;
121
- color: #9ca3af;
122
- }
123
-
124
- /* ========== Ticketbooth booking CSS variables ========== */
125
- .booking-flow-root {
126
- --light-orange-background: #fff1eb;
127
- --light-orange-background-dark: #f7e4dc;
128
- --accent-orange: #ff4d00;
129
- --booking-primary: #059669;
130
- --booking-primary-hover: #047857;
131
- --booking-bg: #f5f5f4;
132
- --booking-bg-end: #e7e5e4;
133
- --booking-surface: #ffffff;
134
- --booking-header-bg: #1c1917;
135
- --booking-header-text: #ffffff;
136
- --booking-text: #1c1917;
137
- --booking-text-muted: #78716c;
138
- --booking-border: #e7e5e4;
139
- --booking-border-input: #d6d3d1;
140
- --booking-font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
141
- --booking-radius: 1rem;
142
- --booking-error-bg: #fef2f2;
143
- --booking-error-border: #fecaca;
144
- --booking-error-text: #b91c1c;
145
- --booking-stone-50: #fafaf9;
146
- --booking-stone-100: #f5f5f4;
147
- --booking-stone-200: #e7e5e4;
148
- --booking-stone-300: #d6d3d1;
149
- --booking-stone-400: #a8a29e;
150
- --booking-stone-500: #78716c;
151
- --booking-stone-600: #57534e;
152
- --booking-stone-700: #44403c;
153
- --booking-stone-800: #292524;
154
- --booking-stone-900: #1c1917;
155
- --booking-emerald-50: #ecfdf5;
156
- --booking-emerald-600: #059669;
157
- --booking-emerald-700: #047857;
158
- }
159
-
160
- /* Explicit utility overrides - ensures Tailwind-like classes apply */
161
- .booking-flow-root .bg-emerald-600 { background-color: var(--booking-emerald-600) !important; }
162
- .booking-flow-root .bg-emerald-700 { background-color: var(--booking-emerald-700) !important; }
163
- .booking-flow-root .bg-emerald-50 { background-color: var(--booking-emerald-50) !important; }
164
- .booking-flow-root .bg-stone-50 { background-color: var(--booking-stone-50) !important; }
165
- .booking-flow-root .bg-stone-100 { background-color: var(--booking-stone-100) !important; }
166
- .booking-flow-root .bg-stone-200 { background-color: var(--booking-stone-200) !important; }
167
- .booking-flow-root .bg-white { background-color: #fff !important; }
168
- .booking-flow-root .text-emerald-600 { color: var(--booking-emerald-600) !important; }
169
- .booking-flow-root .text-stone-500 { color: var(--booking-stone-500) !important; }
170
- .booking-flow-root .text-stone-600 { color: var(--booking-stone-600) !important; }
171
- .booking-flow-root .text-stone-700 { color: var(--booking-stone-700) !important; }
172
- .booking-flow-root .text-stone-900 { color: var(--booking-stone-900) !important; }
173
- .booking-flow-root .text-white { color: #fff !important; }
174
- .booking-flow-root .border-stone-200 { border-color: var(--booking-stone-200) !important; }
175
- .booking-flow-root .border-stone-300 { border-color: var(--booking-stone-300) !important; }
176
- .booking-flow-root .border-emerald-600 { border-color: var(--booking-emerald-600) !important; }
177
-
178
- /* Calendar header - border under SUN/MON/TUE... row */
179
- .booking-flow-root .calendar-header-grid {
180
- border-bottom: 1px solid var(--booking-stone-300) !important;
181
- }
182
-
183
- /* Calendar grid - dashboard-style borders (each day cell clearly delineated) */
184
- .booking-flow-root .calendar-days-grid > button {
185
- border-right: 1px solid var(--booking-stone-300) !important;
186
- border-bottom: 1px solid var(--booking-stone-300) !important;
187
- }
188
- .booking-flow-root .calendar-days-grid > button:nth-child(7n) {
189
- border-right: none !important;
190
- }
191
- /* Remove bottom border from last row - container border provides bottom edge (avoids double line) */
192
- .booking-flow-root .calendar-days-grid > button:nth-last-child(-n+7) {
193
- border-bottom: none !important;
194
- }
195
- .booking-flow-root .rounded-lg { border-radius: 0.5rem !important; }
196
- .booking-flow-root .rounded-xl { border-radius: 0.75rem !important; }
197
- .booking-flow-root .rounded-full { border-radius: 9999px !important; }
198
-
199
- /* Layout utilities */
200
- .booking-flow-root .flex { display: flex !important; }
201
- .booking-flow-root .grid { display: grid !important; }
202
- .booking-flow-root .grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
203
- @media (min-width: 640px) {
204
- .booking-flow-root .sm\\:grid-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
205
- }
206
- .booking-flow-root .gap-2 { gap: 0.5rem !important; }
207
- .booking-flow-root .gap-3 { gap: 0.75rem !important; }
208
- .booking-flow-root .gap-4 { gap: 1rem !important; }
209
- .booking-flow-root .space-y-2 > * + * { margin-top: 0.5rem !important; }
210
- .booking-flow-root .space-y-4 > * + * { margin-top: 1rem !important; }
211
- .booking-flow-root .space-y-6 > * + * { margin-top: 1.5rem !important; }
212
- .booking-flow-root .space-y-8 > * + * { margin-top: 2rem !important; }
213
- .booking-flow-root .items-center { align-items: center !important; }
214
- .booking-flow-root .justify-between { justify-content: space-between !important; }
215
- .booking-flow-root .w-full { width: 100% !important; }
216
- .booking-flow-root .p-4 { padding: 1rem !important; }
217
- .booking-flow-root .p-8 { padding: 2rem !important; }
218
- .booking-flow-root .px-4 { padding-left: 1rem !important; padding-right: 1rem !important; }
219
- .booking-flow-root .py-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; }
220
- .booking-flow-root .mt-6 { margin-top: 1.5rem !important; }
221
- .booking-flow-root .mb-2 { margin-bottom: 0.5rem !important; }
222
- .booking-flow-root .mb-4 { margin-bottom: 1rem !important; }
223
- .booking-flow-root .booking-collage-wrapper { margin: 0 !important; margin-top: 0 !important; }
224
- /* Smaller gap between collage and tour description */
225
- .booking-flow-root .space-y-8 > .booking-collage-wrapper + * { margin-top: 0.75rem !important; }
226
- /* Smaller gap between tour description and calendar */
227
- .booking-flow-root .space-y-8 > [class*="TourDescription"] + .booking-calendar-section { margin-top: 0.75rem !important; }
228
- /* Reduce TourDescription bottom spacing in booking flow */
229
- .booking-flow-root [class*="TourDescription_root"] {
230
- margin-bottom: 0.25rem !important;
231
- padding-bottom: 0.25rem !important;
232
- }
233
-
234
- /* Product header gradient - match ticketbooth */
235
- .booking-flow-root .from-emerald-700 { --tw-gradient-from: var(--booking-emerald-700); --tw-gradient-to: rgb(4 120 87 / 0); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
236
- .booking-flow-root .to-emerald-600 { --tw-gradient-to: var(--booking-emerald-600); }
237
- .booking-flow-root .bg-gradient-to-r { background-image: linear-gradient(to right, var(--booking-emerald-700), var(--booking-emerald-600)) !important; }
238
-
239
-
240
- /* Reset viavia global heading overrides inside booking flow - ticketbooth uses system font, proper casing */
241
- .booking-flow-preflight h1,
242
- .booking-flow-preflight h2,
243
- .booking-flow-preflight h3,
244
- .booking-flow-preflight h4,
245
- .booking-flow-preflight h5,
246
- .booking-flow-preflight h6 {
247
- font-family: var(--booking-font-sans) !important;
248
- font-weight: 700 !important;
249
- text-transform: none !important;
250
- text-align: left !important;
251
- color: var(--booking-text) !important;
252
- }
253
-
254
- .booking-flow-preflight h1 { font-size: 1.875rem; }
255
- .booking-flow-preflight h2 { font-size: 1.5rem; }
256
- .booking-flow-preflight h3 { font-size: 1.25rem; }
257
- .booking-flow-preflight h4 { font-size: 1.125rem; }
258
- .booking-flow-preflight h5 { font-size: 1rem; }
259
- .booking-flow-preflight h6 { font-size: 0.875rem; }
260
-
261
- /* Product header gradient - emerald to match ticketbooth */
262
- .booking-flow-preflight .bg-gradient-to-r.from-emerald-700.to-emerald-600 h2,
263
- .booking-flow-preflight .bg-gradient-to-r.from-emerald-700.to-emerald-600 h3 {
264
- color: white !important;
265
- }
266
-
267
- /* Form inputs - clean borders, proper sizing */
268
- .booking-flow-preflight input[type="text"],
269
- .booking-flow-preflight input[type="email"],
270
- .booking-flow-preflight input[type="number"] {
271
- font-family: var(--booking-font-sans);
272
- border: 1px solid var(--booking-border-input);
273
- border-radius: 0.5rem;
274
- }
275
-
276
- .booking-flow-preflight input:focus {
277
- outline: none;
278
- border-color: var(--booking-primary);
279
- box-shadow: 0 0 0 2px rgba(5, 150, 105, 0.2);
280
- }
281
-
282
- /* Labels */
283
- .booking-flow-preflight label {
284
- font-family: var(--booking-font-sans);
285
- color: var(--booking-text);
286
- }
287
-
288
- /* Dialog title - orange for both product grid and book flow */
289
- .booking-flow-root [id="booking-dialog-title"] {
290
- color: var(--accent-orange) !important;
291
- }
292
-
293
- /* Selected return time option - solid green with white text (matches ticketbooth dashboard) */
294
- .booking-flow-preflight .booking-return-selected,
295
- .booking-flow-preflight .booking-return-selected * {
296
- color: white !important;
297
- }
298
- /* Exception: admin projected overage (Booking n / m total) must stay warning red on green */
299
- .booking-flow-preflight .booking-return-selected [class*='ReturnTimeSelector_capacityProjected'],
300
- .booking-flow-preflight .booking-return-selected [class*='ReturnTimeSelector_capacityProjected'] * {
301
- color: #b91c1c !important;
302
- }
303
-
304
- /* Clickable "your pickup location" etc. - style as link (blue, underlined) like ticketbooth */
305
- .booking-flow-preflight button.text-stone-400.underline,
306
- .booking-flow-preflight button.text-stone-400.underline:hover {
307
- color: var(--booking-primary) !important;
308
- background: none;
309
- border: none;
310
- }
311
-
312
- /* ========== Itinerary section - orange bg, Poppins, lowercase (match TourDescription) ========== */
313
- .booking-flow-preflight [class*="ItineraryBox_box"],
314
- .booking-flow-preflight [class*="ItineraryPlaceholder_box"] {
315
- background: var(--light-orange-background-dark) !important;
316
- }
317
- .booking-flow-preflight [class*="ItineraryBox_title"],
318
- .booking-flow-preflight [class*="ItineraryPlaceholder_title"] {
319
- font-family: 'Poppins', sans-serif !important;
320
- font-weight: 700 !important;
321
- font-size: 1.125rem !important;
322
- text-transform: lowercase !important;
323
- color: var(--accent-orange) !important;
324
- }
325
- @media (min-width: 768px) {
326
- .booking-flow-preflight [class*="ItineraryBox_title"],
327
- .booking-flow-preflight [class*="ItineraryPlaceholder_title"] {
328
- font-size: 1.375rem !important;
329
- }
330
- }
331
- .booking-flow-preflight [class*="ItineraryBox_dateSubtitle"],
332
- .booking-flow-preflight [class*="ItineraryPlaceholder_dateSubtitle"] {
333
- color: var(--accent-orange) !important;
334
- opacity: 0.9;
335
- }
336
- .booking-flow-preflight [class*="ItineraryBox_icon"] {
337
- color: var(--accent-orange) !important;
338
- }
339
-
340
- /* ========== Pickup time pills - not white, padding, selected = green ========== */
341
- .booking-flow-preflight [class*="PickupTimeSelector_btnAvailable"] {
342
- background: var(--light-orange-background-dark) !important;
343
- }
344
- .booking-flow-preflight [class*="PickupTimeSelector_btnAvailable"]:hover {
345
- background: var(--light-orange-background) !important;
346
- }
347
- .booking-flow-preflight [class*="PickupTimeSelector_btnSoldOutLocked"],
348
- .booking-flow-preflight [class*="PickupTimeSelector_btnSoldOutAdmin"] {
349
- background: #fee2e2 !important;
350
- border-color: #fca5a5 !important;
351
- color: #b91c1c !important;
352
- }
353
- .booking-flow-preflight [class*="PickupTimeSelector_btnSoldOutLocked"]:hover,
354
- .booking-flow-preflight [class*="PickupTimeSelector_btnSoldOutAdmin"]:hover {
355
- background: #fee2e2 !important;
356
- border-color: #fca5a5 !important;
357
- }
358
- .booking-flow-preflight [class*="PickupTimeSelector_btnSelected"] {
359
- background: var(--booking-emerald-600) !important;
360
- color: #fff !important;
361
- }
362
- .booking-flow-preflight [class*="PickupTimeSelector_btn"] {
363
- padding: 0.875rem 1.25rem !important;
364
- }
365
-
366
- /* ========== Return time options - same as pickup, selected = green ========== */
367
- .booking-flow-preflight [class*="ReturnTimeSelector_btnAvailable"] {
368
- background: var(--light-orange-background-dark) !important;
369
- }
370
- .booking-flow-preflight [class*="ReturnTimeSelector_btnAvailable"]:hover {
371
- background: var(--light-orange-background) !important;
372
- }
373
- .booking-flow-preflight [class*="ReturnTimeSelector_btnSoldOutLocked"],
374
- .booking-flow-preflight [class*="ReturnTimeSelector_btnSoldOutAdmin"] {
375
- background: #fee2e2 !important;
376
- border-color: #fca5a5 !important;
377
- color: #b91c1c !important;
378
- }
379
- .booking-flow-preflight [class*="ReturnTimeSelector_btnSoldOutLocked"]:hover,
380
- .booking-flow-preflight [class*="ReturnTimeSelector_btnSoldOutAdmin"]:hover {
381
- background: #fee2e2 !important;
382
- border-color: #fca5a5 !important;
383
- }
384
- .booking-flow-preflight [class*="ReturnTimeSelector_btnSelected"] {
385
- background: var(--booking-emerald-600) !important;
386
- border-color: var(--booking-emerald-600) !important;
387
- color: #fff !important;
388
- }
389
- .booking-flow-preflight [class*="ReturnTimeSelector_btn"] {
390
- padding: 1rem 1.25rem !important;
391
- }
392
-
393
- /* ========== Section titles - same style as Build Your Itinerary (orange, Poppins, lowercase) ========== */
394
- .booking-flow-preflight [class*="PickupTimeSelector_label"],
395
- .booking-flow-preflight [class*="ReturnTimeSelector_label"],
396
- .booking-flow-preflight [class*="CancellationPolicySelector_label"],
397
- .booking-flow-preflight [class*="TicketSelector_label"],
398
- .booking-flow-preflight [class*="AddOnsSection_label"],
399
- .booking-flow-preflight [class*="CheckoutForm_pickupLabel"] {
400
- font-family: 'Poppins', sans-serif !important;
401
- font-weight: 700 !important;
402
- font-size: 1.125rem !important;
403
- text-transform: lowercase !important;
404
- color: var(--accent-orange) !important;
405
- }
406
- @media (min-width: 768px) {
407
- .booking-flow-preflight [class*="PickupTimeSelector_label"],
408
- .booking-flow-preflight [class*="ReturnTimeSelector_label"],
409
- .booking-flow-preflight [class*="CancellationPolicySelector_label"],
410
- .booking-flow-preflight [class*="TicketSelector_label"],
411
- .booking-flow-preflight [class*="AddOnsSection_label"],
412
- .booking-flow-preflight [class*="CheckoutForm_pickupLabel"] {
413
- font-size: 1.375rem !important;
414
- }
415
- }
416
- /* PickupLocationSelector title (h2) - when showing the selector */
417
- .booking-flow-preflight #pickup-location-section h2 {
418
- font-family: 'Poppins', sans-serif !important;
419
- font-weight: 700 !important;
420
- font-size: 1.125rem !important;
421
- text-transform: lowercase !important;
422
- color: var(--accent-orange) !important;
423
- }
424
- @media (min-width: 768px) {
425
- .booking-flow-preflight #pickup-location-section h2 {
426
- font-size: 1.375rem !important;
427
- }
428
- }
429
-
430
- /* ========== Dependent add-on dialog (photo sessions) - same input/button sizing as private shuttle ========== */
431
- .booking-flow-preflight .dap-add-on-dialog input[type="text"],
432
- .booking-flow-preflight .dap-add-on-dialog input[type="email"],
433
- .booking-flow-preflight .dap-add-on-dialog input[type="number"] {
434
- padding: 0.875rem 1.25rem !important;
435
- border: 1px solid var(--booking-stone-300) !important;
436
- border-radius: 0.5rem !important;
437
- font-size: 1rem !important;
438
- line-height: 1.4 !important;
439
- color: var(--booking-stone-900) !important;
440
- background-color: #fff !important;
441
- width: 100% !important;
442
- box-sizing: border-box !important;
443
- }
444
-
445
- .booking-flow-preflight .dap-add-on-dialog input[type="text"]:focus,
446
- .booking-flow-preflight .dap-add-on-dialog input[type="email"]:focus,
447
- .booking-flow-preflight .dap-add-on-dialog input[type="number"]:focus {
448
- outline: none !important;
449
- border-color: var(--booking-primary) !important;
450
- box-shadow: 0 0 0 2px rgba(5, 150, 105, 0.2) !important;
451
- }
452
-
453
- /* Textareas: scoped preflight sets border-width:0 on * — restore like inputs above */
454
- .booking-flow-preflight .dap-add-on-dialog textarea {
455
- padding: 0.75rem 1rem !important;
456
- border: 1px solid var(--booking-stone-300) !important;
457
- border-radius: 0.5rem !important;
458
- font-size: 1rem !important;
459
- line-height: 1.4 !important;
460
- color: var(--booking-stone-900) !important;
461
- background-color: #fff !important;
462
- width: 100% !important;
463
- box-sizing: border-box !important;
464
- min-height: 4.5rem !important;
465
- resize: vertical !important;
466
- }
467
-
468
- .booking-flow-preflight .dap-add-on-dialog textarea:focus {
469
- outline: none !important;
470
- border-color: var(--booking-primary) !important;
471
- box-shadow: 0 0 0 2px rgba(5, 150, 105, 0.2) !important;
472
- }
473
-
474
- .booking-flow-preflight .dap-add-on-dialog input[type="radio"] {
475
- width: 1.125rem !important;
476
- height: 1.125rem !important;
477
- min-width: 1.125rem !important;
478
- min-height: 1.125rem !important;
479
- flex-shrink: 0 !important;
480
- margin: 0 !important;
481
- padding: 0 !important;
482
- accent-color: var(--booking-emerald-600) !important;
483
- cursor: pointer !important;
484
- }
485
-
486
- .booking-flow-preflight .dap-add-on-dialog button.dap-add-on-primary,
487
- .booking-flow-preflight .dap-add-on-payment-form button.dap-add-on-primary {
488
- padding: 1rem 1.5rem !important;
489
- min-height: 3.25rem !important;
490
- font-size: 1rem !important;
491
- font-weight: 600 !important;
492
- font-family: 'Figtree', sans-serif !important;
493
- border-radius: 0.5rem !important;
494
- background: var(--booking-emerald-600) !important;
495
- color: #fff !important;
496
- border: none !important;
497
- -webkit-appearance: none !important;
498
- appearance: none !important;
499
- cursor: pointer !important;
500
- width: auto !important;
501
- align-self: flex-start !important;
502
- box-sizing: border-box !important;
503
- }
504
-
505
- .booking-flow-preflight .dap-add-on-dialog button.dap-add-on-primary:hover:not(:disabled),
506
- .booking-flow-preflight .dap-add-on-payment-form button.dap-add-on-primary:hover:not(:disabled) {
507
- background: var(--booking-emerald-700) !important;
508
- }
509
-
510
- .booking-flow-preflight .dap-add-on-dialog button.dap-add-on-primary:disabled,
511
- .booking-flow-preflight .dap-add-on-payment-form button.dap-add-on-primary:disabled {
512
- opacity: 0.5 !important;
513
- cursor: not-allowed !important;
514
- }
515
-
516
- @media (max-width: 639px) {
517
- .booking-flow-preflight .dap-add-on-dialog button.dap-add-on-primary,
518
- .booking-flow-preflight .dap-add-on-payment-form button.dap-add-on-primary {
519
- width: 100% !important;
520
- align-self: stretch !important;
521
- justify-content: center !important;
522
- }
523
- }
524
-
525
- /* DAP session length tiles — preflight zeros out button padding; match PickupTimeSelector / ReturnTimeSelector */
526
- .booking-flow-preflight .dap-add-on-dialog [class*='dapSessionOptionGrid'] {
527
- gap: 0.5rem !important;
528
- }
529
-
530
- .booking-flow-preflight .dap-add-on-dialog [class*='dapSessionOptionBtn'] {
531
- display: flex !important;
532
- flex-direction: column !important;
533
- align-items: center !important;
534
- justify-content: center !important;
535
- text-align: center !important;
536
- width: 100% !important;
537
- min-height: 0 !important;
538
- padding: 1.125rem 1.25rem !important;
539
- border: none !important;
540
- border-radius: 0.5rem !important;
541
- font-family: 'Figtree', sans-serif !important;
542
- background: var(--light-orange-background-dark) !important;
543
- color: var(--booking-stone-700) !important;
544
- box-shadow: none !important;
545
- transition: background 0.2s ease !important;
546
- -webkit-appearance: none !important;
547
- appearance: none !important;
548
- box-sizing: border-box !important;
549
- cursor: pointer !important;
550
- }
551
-
552
- .booking-flow-preflight
553
- .dap-add-on-dialog
554
- [class*='dapSessionOptionBtn']:hover:not(:disabled):not([class*='dapSessionOptionBtnSelected']) {
555
- background: var(--light-orange-background) !important;
556
- }
557
-
558
- .booking-flow-preflight .dap-add-on-dialog [class*='dapSessionOptionBtnSelected'] {
559
- background: var(--booking-emerald-600) !important;
560
- color: #fff !important;
561
- }
562
-
563
- .booking-flow-preflight .dap-add-on-dialog [class*='dapSessionOptionBtn']:disabled {
564
- opacity: 0.55 !important;
565
- cursor: wait !important;
566
- }
567
-
568
- .booking-flow-preflight .dap-add-on-dialog [class*='dapSessionOptionTitle'] {
569
- font-weight: 600 !important;
570
- font-size: 0.875rem !important;
571
- line-height: 1.35 !important;
572
- color: inherit !important;
573
- }
574
-
575
- .booking-flow-preflight .dap-add-on-dialog [class*='dapSessionOptionBtnSelected'] [class*='dapSessionOptionTitle'] {
576
- color: #fff !important;
577
- }
578
-
579
- .booking-flow-preflight .dap-add-on-dialog [class*='dapSessionOptionMeta'] {
580
- font-size: 0.8125rem !important;
581
- font-weight: 500 !important;
582
- line-height: 1.35 !important;
583
- color: var(--booking-stone-500) !important;
584
- }
585
-
586
- .booking-flow-preflight
587
- .dap-add-on-dialog
588
- [class*='dapSessionOptionBtnSelected']
589
- [class*='dapSessionOptionMeta'] {
590
- color: rgba(255, 255, 255, 0.92) !important;
591
- }
592
-
593
- .booking-flow-preflight .dap-add-on-dialog [class*='dapSessionOptionPrice'] {
594
- font-size: 0.8125rem !important;
595
- font-weight: 500 !important;
596
- line-height: 1.35 !important;
597
- color: var(--booking-stone-500) !important;
598
- }
599
-
600
- .booking-flow-preflight .dap-add-on-dialog [class*='dapSessionOptionBtnSelected'] [class*='dapSessionOptionPrice'] {
601
- color: rgba(255, 255, 255, 0.92) !important;
602
- }
603
-
604
- /* "Session length" — match PickupTimeSelector_label */
605
- .booking-flow-preflight .dap-add-on-dialog [class*='dapLegend'] {
606
- font-family: 'Poppins', sans-serif !important;
607
- font-weight: 700 !important;
608
- font-size: 1.125rem !important;
609
- text-transform: lowercase !important;
610
- color: var(--accent-orange) !important;
611
- display: block !important;
612
- }
613
-
614
- @media (min-width: 768px) {
615
- .booking-flow-preflight .dap-add-on-dialog [class*='dapLegend'] {
616
- font-size: 1.375rem !important;
617
- }
618
- }
619
-
620
- .booking-flow-preflight .dap-add-on-dialog [class*='dapRefItinerarySummaryTitle'] {
621
- font-family: 'Poppins', sans-serif !important;
622
- font-weight: 700 !important;
623
- font-size: 1.125rem !important;
624
- text-transform: lowercase !important;
625
- color: var(--accent-orange) !important;
626
- margin-bottom: 0.375rem !important;
627
- }
628
-
629
- @media (min-width: 768px) {
630
- .booking-flow-preflight .dap-add-on-dialog [class*='dapRefItinerarySummaryTitle'] {
631
- font-size: 1.375rem !important;
632
- }
633
- }
634
-
635
- .booking-flow-preflight .dap-add-on-dialog .booking-collage-wrapper {
636
- margin: 0 0 0.75rem !important;
637
- }
638
-
639
- /* Return-time-style slot tiles: child text colors on emerald selected state */
640
- .booking-flow-preflight .dap-add-on-dialog [class*='ReturnTimeSelector_btnSelected'] [class*='ReturnTimeSelector_time'],
641
- .booking-flow-preflight .dap-add-on-dialog [class*='ReturnTimeSelector_btnSelected'] [class*='ReturnTimeSelector_location'],
642
- .booking-flow-preflight .dap-add-on-dialog [class*='ReturnTimeSelector_btnSelected'] [class*='ReturnTimeSelector_price'] {
643
- color: #fff !important;
644
- }
645
- .booking-flow-preflight .dap-add-on-dialog [class*='ReturnTimeSelector_btnSelected'] [class*='ReturnTimeSelector_staySummary'] {
646
- color: rgba(255, 255, 255, 0.9) !important;
647
- }
648
-
649
- /* ========== Private Shuttle - override preflight/Tailwind for inputs, buttons, pills ========== */
650
- /* Inputs - preflight sets padding:0, we need explicit overrides */
651
- .booking-flow-preflight .private-shuttle-booking-flow input[type="text"],
652
- .booking-flow-preflight .private-shuttle-booking-flow input[type="email"],
653
- .booking-flow-preflight .private-shuttle-booking-flow input[type="time"],
654
- .booking-flow-preflight .private-shuttle-booking-flow input[type="number"],
655
- .booking-flow-preflight .private-shuttle-booking-flow select,
656
- .booking-flow-preflight .private-shuttle-booking-flow textarea {
657
- padding: 0.875rem 1.25rem !important;
658
- border: 1px solid var(--booking-stone-300) !important;
659
- border-radius: 0.5rem !important;
660
- font-size: 1rem !important;
661
- color: var(--booking-stone-900) !important;
662
- background-color: #fff !important;
663
- }
664
- .booking-flow-preflight .private-shuttle-booking-flow input[type="time"] {
665
- padding: 0.5rem 0.75rem !important;
666
- }
667
- /* Pickup location search input - needs 3rem left padding for icon (overrides private-shuttle + preflight) */
668
- .booking-flow-preflight input[data-pickup-search] {
669
- padding: 0.75rem 1rem 0.75rem 3rem !important;
670
- }
671
- /* Same for private shuttle flow - must override .private-shuttle-booking-flow input rule above */
672
- .booking-flow-preflight .private-shuttle-booking-flow input[data-pickup-search] {
673
- padding: 0.75rem 1rem 0.75rem 3rem !important;
674
- }
675
- /* Passenger select - compact, narrow, native menulist so selected value is visible when collapsed */
676
- .booking-flow-preflight .private-shuttle-booking-flow [class*="passengerSelect"] {
677
- width: auto !important;
678
- max-width: 5rem !important;
679
- -webkit-appearance: menulist !important;
680
- appearance: menulist !important;
681
- color: var(--booking-stone-900) !important;
682
- padding: 0.375rem 0.5rem !important;
683
- font-size: 0.9375rem !important;
684
- }
685
- .booking-flow-preflight .private-shuttle-booking-flow input:focus,
686
- .booking-flow-preflight .private-shuttle-booking-flow select:focus,
687
- .booking-flow-preflight .private-shuttle-booking-flow textarea:focus {
688
- outline: none !important;
689
- border-color: var(--booking-primary) !important;
690
- box-shadow: 0 0 0 2px rgba(5, 150, 105, 0.2) !important;
691
- }
692
-
693
- /* Time/option pills - preflight sets background:transparent, padding:0 */
694
- .booking-flow-preflight .private-shuttle-booking-flow .private-shuttle-btn-time,
695
- .booking-flow-preflight .private-shuttle-booking-flow .private-shuttle-btn-option {
696
- padding: 0.875rem 1.25rem !important;
697
- border-radius: 9999px !important;
698
- font-size: 0.875rem !important;
699
- font-weight: 500 !important;
700
- -webkit-appearance: none !important;
701
- appearance: none !important;
702
- }
703
- .booking-flow-preflight .private-shuttle-booking-flow .private-shuttle-btn-time:not([class*="Selected"]),
704
- .booking-flow-preflight .private-shuttle-booking-flow .private-shuttle-btn-option:not([class*="Selected"]) {
705
- background: var(--light-orange-background-dark) !important;
706
- color: var(--booking-stone-700) !important;
707
- border: none !important;
708
- }
709
- .booking-flow-preflight .private-shuttle-booking-flow [class*="btnTimeSelected"],
710
- .booking-flow-preflight .private-shuttle-booking-flow [class*="btnOptionSelected"] {
711
- background: var(--booking-emerald-600) !important;
712
- color: #fff !important;
713
- border: none !important;
714
- }
715
-
716
- /* Policy buttons, qty buttons, submit button */
717
- .booking-flow-preflight .private-shuttle-booking-flow [class*="btnPolicy"] {
718
- padding: 1rem 1.25rem !important;
719
- border: 2px solid !important;
720
- border-radius: 0.5rem !important;
721
- background: #fff !important;
722
- -webkit-appearance: none !important;
723
- appearance: none !important;
724
- }
725
- .booking-flow-preflight .private-shuttle-booking-flow [class*="btnPolicySelected"] {
726
- border-color: var(--booking-emerald-500) !important;
727
- background: var(--booking-emerald-50) !important;
728
- }
729
- .booking-flow-preflight .private-shuttle-booking-flow [class*="btnPolicyDefault"] {
730
- border-color: var(--booking-stone-200) !important;
731
- }
732
- .booking-flow-preflight .private-shuttle-booking-flow [class*="qtyBtn"] {
733
- width: 2.5rem !important;
734
- height: 2.5rem !important;
735
- padding: 0 !important;
736
- border: 1px solid var(--booking-stone-300) !important;
737
- border-radius: 9999px !important;
738
- background: #fff !important;
739
- color: var(--booking-stone-600) !important;
740
- -webkit-appearance: none !important;
741
- appearance: none !important;
742
- display: flex !important;
743
- align-items: center !important;
744
- justify-content: center !important;
745
- }
746
- .booking-flow-preflight .private-shuttle-booking-flow [class*="submitBtn"] {
747
- padding: 1rem 1.5rem !important;
748
- min-height: 3.25rem !important;
749
- background: var(--booking-emerald-600) !important;
750
- color: #fff !important;
751
- font-weight: 600 !important;
752
- border: none !important;
753
- border-radius: 0.5rem !important;
754
- -webkit-appearance: none !important;
755
- appearance: none !important;
756
- }
757
- .booking-flow-preflight .private-shuttle-booking-flow [class*="submitBtn"]:hover:not(:disabled) {
758
- background: var(--booking-emerald-700) !important;
759
- }
760
-
761
- /* Add-on option buttons (e.g. animals) */
762
- .booking-flow-preflight .private-shuttle-booking-flow [class*="addOnOptionBtn"] {
763
- padding: 1rem !important;
764
- border: 2px solid !important;
765
- border-radius: 0.5rem !important;
766
- -webkit-appearance: none !important;
767
- appearance: none !important;
768
- display: flex !important;
769
- align-items: center !important;
770
- justify-content: space-between !important;
771
- }
772
- .booking-flow-preflight .private-shuttle-booking-flow [class*="addOnOptionBtnDefault"] {
773
- background: #fff !important;
774
- }
775
- .booking-flow-preflight .private-shuttle-booking-flow [class*="addOnOptionBtnSelected"] {
776
- background: var(--booking-emerald-50) !important;
777
- border-color: var(--booking-emerald-500) !important;
778
- }
779
-
780
- /* Change button (link style) - preflight resets must not affect */
781
- .booking-flow-preflight .private-shuttle-booking-flow [class*="changeBtn"] {
782
- background: none !important;
783
- border: none !important;
784
- padding: 0 !important;
785
- font-size: 0.875rem !important;
786
- color: var(--booking-emerald-600) !important;
787
- text-decoration: underline !important;
788
- }
789
-
790
- /* ========== Private Shuttle section labels - same as other booking sections ========== */
791
- .booking-flow-preflight .private-shuttle-section-label {
792
- font-family: 'Poppins', sans-serif !important;
793
- font-weight: 700 !important;
794
- font-size: 1.125rem !important;
795
- text-transform: lowercase !important;
796
- color: var(--accent-orange) !important;
797
- }
798
- @media (min-width: 768px) {
799
- .booking-flow-preflight .private-shuttle-section-label {
800
- font-size: 1.375rem !important;
801
- }
802
- }
803
-
804
- /* ItineraryBuilder labels inside private shuttle - match section style */
805
- .booking-flow-preflight .private-shuttle-booking-flow .itinerary-builder-section label {
806
- font-family: 'Poppins', sans-serif !important;
807
- font-weight: 700 !important;
808
- font-size: 1.125rem !important;
809
- text-transform: lowercase !important;
810
- color: var(--accent-orange) !important;
811
- }
812
- .booking-flow-preflight .private-shuttle-booking-flow .itinerary-builder-section .flex button {
813
- padding: 0.875rem 1.25rem !important;
814
- }
815
- .booking-flow-preflight .private-shuttle-booking-flow .itinerary-builder-section button.bg-emerald-600 {
816
- background: var(--booking-emerald-600) !important;
817
- color: #fff !important;
818
- }
819
- .booking-flow-preflight .private-shuttle-booking-flow .itinerary-builder-section button.bg-stone-100 {
820
- background: var(--light-orange-background-dark) !important;
821
- color: var(--booking-stone-700) !important;
822
- }
823
- .booking-flow-preflight .private-shuttle-booking-flow .itinerary-builder-section button.bg-stone-100:hover {
824
- background: var(--light-orange-background) !important;
825
- }
826
- .booking-flow-preflight .private-shuttle-booking-flow .itinerary-builder-section textarea {
827
- padding: 0.875rem 1.25rem !important;
828
- border-radius: 0.5rem !important;
829
- border: 1px solid var(--booking-stone-300) !important;
830
- }
831
-
832
- /* ========== Most popular tag - Poppins, lowercase, bigger, higher position ========== */
833
- .booking-flow-preflight [class*="PickupTimeSelector_badge"],
834
- .booking-flow-preflight [class*="ReturnTimeSelector_badge"] {
835
- font-family: 'Poppins', sans-serif !important;
836
- font-size: 0.75rem !important;
837
- text-transform: lowercase !important;
838
- padding: 0.25rem 0.5rem !important;
839
- top: -0.75rem !important;
840
- }
841
-
842
- /* ========== Cancellation policy - more padding ========== */
843
- .booking-flow-preflight [class*="CancellationPolicySelector_list"] {
844
- gap: 0.75rem !important;
845
- }
846
- .booking-flow-preflight [class*="CancellationPolicySelector_btn"] {
847
- padding: 1rem 1.25rem !important;
848
- border: 2px solid !important;
849
- border-radius: 0.5rem !important;
850
- background: #fff !important;
851
- -webkit-appearance: none !important;
852
- appearance: none !important;
853
- }
854
- .booking-flow-preflight [class*="CancellationPolicySelector_btnSelected"] {
855
- border-color: var(--booking-emerald-500, #10b981) !important;
856
- background: var(--booking-emerald-50, #ecfdf5) !important;
857
- }
858
- .booking-flow-preflight [class*="CancellationPolicySelector_btnDefault"] {
859
- border-color: var(--booking-stone-200, #e7e5e4) !important;
860
- }
861
-
862
- /* ========== Ticket +/- buttons - round ========== */
863
- .booking-flow-preflight [class*="TicketSelector_qtyBtnDecrement"],
864
- .booking-flow-preflight [class*="TicketSelector_qtyBtnIncrement"] {
865
- width: 2.5rem !important;
866
- height: 2.5rem !important;
867
- border-radius: 9999px !important;
868
- display: flex !important;
869
- align-items: center !important;
870
- justify-content: center !important;
871
- }
872
-
873
- /* ========== Deposit notice - keep text small (preflight can inherit large sizes) ========== */
874
- .booking-flow-preflight .deposit-notice,
875
- .booking-flow-preflight .deposit-notice p {
876
- font-size: 0.75rem !important;
877
- }
878
-
879
- /* ========== Receipt horizontal lines - preflight sets border-width: 0, restore separators ========== */
880
- .booking-flow-preflight .border-t {
881
- border-top-width: 1px !important;
882
- }
883
- .booking-flow-preflight .border-b {
884
- border-bottom-width: 1px !important;
885
- }
886
-
887
- /* ========== Input fields - padding ========== */
888
- .booking-flow-preflight [class*="CheckoutForm_input"] {
889
- padding: 0.875rem 1.25rem !important;
890
- }
891
- .booking-flow-preflight [class*="PromoCodeInput_input"] {
892
- padding: 0.375rem 3.5rem 0.375rem 0.5rem !important;
893
- }
894
- /* PrivateShuttleBookingFlow inputs - preflight resets padding (exclude passengerSelect, has its own) */
895
- .booking-flow-preflight [class*="PrivateShuttleBookingFlow_input"]:not([class*="passengerSelect"]) {
896
- padding: 0.875rem 1.25rem !important;
897
- }
898
- .booking-flow-preflight [class*="PrivateShuttleBookingFlow_inputTime"] {
899
- padding: 0.5rem 0.75rem !important;
900
- }
901
-
902
- /* ========== Complete payment button - normal proportions ========== */
903
- .booking-flow-preflight [class*="CheckoutForm_submitBtn"] {
904
- padding: 1rem 1.5rem !important;
905
- min-height: 3.25rem !important;
906
- }
907
-
908
- /* ========== Loading spinner (preflight sets border-width: 0, so we need explicit overrides) ========== */
909
- .booking-flow-root .booking-loading-spinner {
910
- width: 2rem !important;
911
- height: 2rem !important;
912
- border-radius: 9999px !important;
913
- border-width: 2px !important;
914
- border-style: solid !important;
915
- border-color: transparent !important;
916
- border-top-color: var(--booking-emerald-600) !important;
917
- animation: booking-spin 0.75s linear infinite !important;
918
- }
919
-
920
- /* Change booking dialog current-booking summary text sizing */
921
- .booking-flow-root .change-booking-current-summary-title {
922
- font-size: 1rem !important;
923
- line-height: 1.5rem !important;
924
- }
925
-
926
- .booking-flow-root .change-booking-current-summary-details,
927
- .booking-flow-root .change-booking-current-summary-detail-row {
928
- font-size: 1rem !important;
929
- line-height: 1.5rem !important;
930
- }
931
-
932
- /* Calendar dropdown spinner - portaled to body so needs global styles (not scoped to .booking-flow-root) */
933
- .booking-calendar-dropdown-spinner {
934
- width: 1.5rem;
935
- height: 1.5rem;
936
- border-radius: 9999px;
937
- border: 2px solid transparent;
938
- border-top-color: var(--booking-emerald-600, #059669);
939
- animation: booking-spin 0.75s linear infinite;
940
- }
941
-
942
- @keyframes booking-spin {
943
- to { transform: rotate(360deg); }
944
- }