@qite/tide-booking-component 1.2.5 → 1.3.1

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 (141) hide show
  1. package/.vs/ProjectSettings.json +3 -3
  2. package/.vs/VSWorkspaceState.json +5 -5
  3. package/README.md +8 -8
  4. package/build/build-cjs/booking-wizard/components/print-offer-button.d.ts +17 -0
  5. package/build/build-cjs/booking-wizard/types.d.ts +7 -0
  6. package/build/build-cjs/booking-wizard/use-offer-printer.d.ts +13 -0
  7. package/build/build-cjs/index.js +223 -72
  8. package/build/build-cjs/shared/utils/localization-util.d.ts +5 -0
  9. package/build/build-cjs/shared/utils/tide-api-utils.d.ts +1 -0
  10. package/build/build-esm/booking-wizard/components/print-offer-button.d.ts +17 -0
  11. package/build/build-esm/booking-wizard/types.d.ts +7 -0
  12. package/build/build-esm/booking-wizard/use-offer-printer.d.ts +13 -0
  13. package/build/build-esm/index.js +224 -73
  14. package/build/build-esm/shared/utils/localization-util.d.ts +5 -0
  15. package/build/build-esm/shared/utils/tide-api-utils.d.ts +1 -0
  16. package/package.json +75 -75
  17. package/rollup.config.js +23 -23
  18. package/src/booking-product/components/age-select.tsx +35 -35
  19. package/src/booking-product/components/amount-input.tsx +78 -78
  20. package/src/booking-product/components/date-range-picker/calendar-day.tsx +58 -58
  21. package/src/booking-product/components/date-range-picker/calendar.tsx +178 -178
  22. package/src/booking-product/components/date-range-picker/index.tsx +196 -196
  23. package/src/booking-product/components/dates.tsx +136 -136
  24. package/src/booking-product/components/footer.tsx +69 -69
  25. package/src/booking-product/components/header.tsx +79 -79
  26. package/src/booking-product/components/icon.tsx +251 -251
  27. package/src/booking-product/components/product.tsx +314 -314
  28. package/src/booking-product/components/rating.tsx +21 -21
  29. package/src/booking-product/components/rooms.tsx +195 -195
  30. package/src/booking-product/index.tsx +30 -30
  31. package/src/booking-product/settings-context.ts +14 -14
  32. package/src/booking-product/types.ts +28 -28
  33. package/src/booking-product/utils/api.ts +25 -25
  34. package/src/booking-product/utils/price.ts +29 -29
  35. package/src/booking-wizard/api-settings-slice.ts +24 -24
  36. package/src/booking-wizard/components/icon.tsx +508 -508
  37. package/src/booking-wizard/components/labeled-input.tsx +64 -64
  38. package/src/booking-wizard/components/labeled-select.tsx +69 -69
  39. package/src/booking-wizard/components/message.tsx +34 -34
  40. package/src/booking-wizard/components/multi-range-filter.tsx +113 -113
  41. package/src/booking-wizard/components/print-offer-button.tsx +66 -0
  42. package/src/booking-wizard/components/product-card.tsx +37 -37
  43. package/src/booking-wizard/components/step-indicator.tsx +51 -51
  44. package/src/booking-wizard/components/step-route.tsx +27 -27
  45. package/src/booking-wizard/declarations.d.ts +4 -4
  46. package/src/booking-wizard/features/booking/api.ts +49 -49
  47. package/src/booking-wizard/features/booking/booking-self-contained.tsx +384 -384
  48. package/src/booking-wizard/features/booking/booking-slice.ts +662 -662
  49. package/src/booking-wizard/features/booking/booking.tsx +356 -356
  50. package/src/booking-wizard/features/booking/constants.ts +16 -16
  51. package/src/booking-wizard/features/booking/selectors.ts +441 -441
  52. package/src/booking-wizard/features/confirmation/confirmation.tsx +97 -97
  53. package/src/booking-wizard/features/error/error.tsx +78 -78
  54. package/src/booking-wizard/features/flight-options/flight-filter.tsx +432 -432
  55. package/src/booking-wizard/features/flight-options/flight-option-flight.tsx +385 -385
  56. package/src/booking-wizard/features/flight-options/flight-option-modal.tsx +229 -229
  57. package/src/booking-wizard/features/flight-options/flight-option.tsx +81 -81
  58. package/src/booking-wizard/features/flight-options/flight-utils.ts +516 -516
  59. package/src/booking-wizard/features/flight-options/index.tsx +196 -196
  60. package/src/booking-wizard/features/price-details/price-details-api.ts +24 -24
  61. package/src/booking-wizard/features/price-details/price-details-slice.ts +178 -178
  62. package/src/booking-wizard/features/price-details/util.ts +155 -155
  63. package/src/booking-wizard/features/product-options/no-options.tsx +21 -21
  64. package/src/booking-wizard/features/product-options/none-option.tsx +120 -120
  65. package/src/booking-wizard/features/product-options/option-booking-airline-group.tsx +64 -64
  66. package/src/booking-wizard/features/product-options/option-booking-group.tsx +216 -216
  67. package/src/booking-wizard/features/product-options/option-item.tsx +317 -317
  68. package/src/booking-wizard/features/product-options/option-pax-card.tsx +201 -201
  69. package/src/booking-wizard/features/product-options/option-pax-group.tsx +175 -175
  70. package/src/booking-wizard/features/product-options/option-room.tsx +321 -321
  71. package/src/booking-wizard/features/product-options/option-unit-group.tsx +198 -198
  72. package/src/booking-wizard/features/product-options/option-units-card.tsx +185 -185
  73. package/src/booking-wizard/features/product-options/options-form.tsx +563 -459
  74. package/src/booking-wizard/features/room-options/index.tsx +187 -187
  75. package/src/booking-wizard/features/room-options/room-utils.ts +190 -190
  76. package/src/booking-wizard/features/room-options/room.tsx +160 -160
  77. package/src/booking-wizard/features/room-options/traveler-rooms.tsx +75 -75
  78. package/src/booking-wizard/features/sidebar/index.tsx +76 -76
  79. package/src/booking-wizard/features/sidebar/sidebar-flight.tsx +68 -68
  80. package/src/booking-wizard/features/sidebar/sidebar-util.ts +177 -177
  81. package/src/booking-wizard/features/sidebar/sidebar.tsx +364 -364
  82. package/src/booking-wizard/features/summary/summary-booking-option-pax.tsx +25 -25
  83. package/src/booking-wizard/features/summary/summary-booking-option-unit.tsx +25 -25
  84. package/src/booking-wizard/features/summary/summary-flight.tsx +39 -39
  85. package/src/booking-wizard/features/summary/summary-per-booking-option-group.tsx +69 -69
  86. package/src/booking-wizard/features/summary/summary-per-pax-option-group.tsx +63 -63
  87. package/src/booking-wizard/features/summary/summary-per-unit-option-group.tsx +66 -66
  88. package/src/booking-wizard/features/summary/summary-slice.ts +28 -28
  89. package/src/booking-wizard/features/summary/summary.tsx +674 -674
  90. package/src/booking-wizard/features/travelers-form/travelers-form-slice.ts +164 -164
  91. package/src/booking-wizard/features/travelers-form/travelers-form.tsx +754 -754
  92. package/src/booking-wizard/features/travelers-form/type-ahead-input.tsx +101 -101
  93. package/src/booking-wizard/features/travelers-form/validate-form.ts +245 -245
  94. package/src/booking-wizard/index.tsx +36 -36
  95. package/src/booking-wizard/settings-context.ts +62 -60
  96. package/src/booking-wizard/store.ts +31 -31
  97. package/src/booking-wizard/types.ts +278 -276
  98. package/src/booking-wizard/use-offer-printer.ts +136 -0
  99. package/src/index.ts +4 -4
  100. package/src/shared/components/loader.tsx +16 -16
  101. package/src/shared/translations/en-GB.json +237 -232
  102. package/src/shared/translations/fr-BE.json +238 -233
  103. package/src/shared/translations/nl-BE.json +237 -232
  104. package/src/shared/types.ts +4 -4
  105. package/src/shared/utils/class-util.ts +9 -9
  106. package/src/shared/utils/localization-util.ts +62 -62
  107. package/src/shared/utils/query-string-util.ts +119 -119
  108. package/src/shared/utils/tide-api-utils.ts +36 -36
  109. package/styles/booking-product-variables.scss +394 -394
  110. package/styles/booking-product.scss +446 -446
  111. package/styles/booking-wizard-variables.scss +873 -871
  112. package/styles/booking-wizard.scss +59 -59
  113. package/styles/components/_animations.scss +39 -39
  114. package/styles/components/_base.scss +107 -107
  115. package/styles/components/_booking.scss +879 -879
  116. package/styles/components/_button.scss +238 -238
  117. package/styles/components/_checkbox.scss +219 -219
  118. package/styles/components/_cta.scss +208 -208
  119. package/styles/components/_date-list.scss +41 -41
  120. package/styles/components/_date-range-picker.scss +225 -225
  121. package/styles/components/_decrement-increment.scss +35 -35
  122. package/styles/components/_dropdown.scss +72 -72
  123. package/styles/components/_flight-option.scss +1429 -1429
  124. package/styles/components/_form.scss +1583 -1583
  125. package/styles/components/_info-message.scss +71 -71
  126. package/styles/components/_input.scss +25 -25
  127. package/styles/components/_list.scss +187 -187
  128. package/styles/components/_loader.scss +72 -72
  129. package/styles/components/_mixins.scss +550 -550
  130. package/styles/components/_placeholders.scss +166 -166
  131. package/styles/components/_pricing-summary.scss +155 -155
  132. package/styles/components/_qsm.scss +17 -17
  133. package/styles/components/_radiobutton.scss +170 -170
  134. package/styles/components/_select-wrapper.scss +80 -80
  135. package/styles/components/_spinner.scss +29 -29
  136. package/styles/components/_step-indicators.scss +168 -168
  137. package/styles/components/_table.scss +81 -81
  138. package/styles/components/_tree.scss +530 -530
  139. package/styles/components/_typeahead.scss +281 -281
  140. package/styles/components/_variables.scss +89 -89
  141. package/tsconfig.json +24 -24
@@ -1,1583 +1,1583 @@
1
- .form {
2
- @extend %reset;
3
-
4
- &__wrapper {
5
- display: flex;
6
- flex-direction: column;
7
- gap: 20rem;
8
- }
9
-
10
- &__label {
11
- @extend %reset;
12
- margin-bottom: 15px * 0.5;
13
- display: flex;
14
- text-align: left;
15
- text-overflow: ellipsis;
16
- white-space: nowrap;
17
- overflow: hidden;
18
- line-height: 22px;
19
- }
20
-
21
- &__input {
22
- width: 100%;
23
- border: var(--tide-booking-form-input-border);
24
- background: var(--tide-booking-form-input-background);
25
- border-radius: var(--tide-booking-form-input-border-radius);
26
- box-sizing: border-box;
27
- @extend %transition-easing;
28
- }
29
-
30
- &__group {
31
- @extend %reset;
32
- width: 100%;
33
- display: flex;
34
- flex-direction: column;
35
- gap: 20px;
36
-
37
- &-input {
38
- position: relative;
39
- width: 100%;
40
- }
41
-
42
- &--icon {
43
- &:focus,
44
- &:focus-within,
45
- &:active {
46
- .icon {
47
- svg {
48
- fill: var(--tide-booking-color-secondary);
49
- }
50
- }
51
- }
52
-
53
- .form {
54
- &__label {
55
- position: absolute;
56
- top: 3px;
57
- left: 47.5px;
58
- font-size: 14px;
59
- pointer-events: none;
60
- color: var(--tide-booking-datepicker-input-label-color);
61
-
62
- @include media-sm {
63
- left: 17.5px;
64
- }
65
-
66
- @include media-lg {
67
- font-size: 16px;
68
- }
69
-
70
- @include media-xl {
71
- left: 47.5px;
72
- }
73
- }
74
-
75
- &__input {
76
- @include input;
77
- padding-left: 20px;
78
- padding-top: 16px;
79
-
80
- @include media-sm {
81
- padding-left: 20px;
82
- }
83
-
84
- @include media-md {
85
- padding-left: 20px;
86
- }
87
-
88
- @include media-xl {
89
- font-size: 15.5px;
90
- }
91
- }
92
-
93
- .typeahead {
94
- &__trigger {
95
- height: 45px;
96
- max-height: 45px;
97
- padding-left: 40px;
98
- font-size: 16px;
99
- background-color: var(--tide-booking-white);
100
-
101
- @include media-sm {
102
- padding-left: 10px;
103
- }
104
-
105
- @include media-md {
106
- padding-left: 40px;
107
- }
108
- }
109
- }
110
- }
111
- }
112
-
113
- &--datepicker {
114
- .form__group-input {
115
- width: 50%;
116
- }
117
- }
118
-
119
- &--submit {
120
- .cta {
121
- width: 100%;
122
- justify-content: center;
123
- }
124
- }
125
-
126
- &--success-message {
127
- &:before {
128
- content: "";
129
- width: 15px * 3.33;
130
- height: 15px * 1.33;
131
- border-left: 2.5px solid var(--tide-booking-black);
132
- border-bottom: 2.5px solid var(--tide-booking-black);
133
- margin: 0 auto 15px * 3 auto;
134
- transform: rotate(-45deg);
135
- }
136
- }
137
- }
138
-
139
- &__region {
140
- @extend %reset;
141
-
142
- & + .form__region {
143
- margin-top: 15px * 4;
144
- }
145
-
146
- &-header {
147
- margin-bottom: 15px * 0.3;
148
- display: flex;
149
- flex-flow: row wrap;
150
- align-items: center;
151
- }
152
-
153
- &-heading {
154
- @include media-xs {
155
- padding-right: 15px * 2;
156
- }
157
- }
158
-
159
- &-label {
160
- width: 100%;
161
- // margin-top: -15px * 0.5;
162
- order: 2;
163
-
164
- @include media-xs {
165
- width: auto;
166
- margin-top: 0;
167
- // @include marginLeft(15px * 0.2);
168
- order: initial;
169
- margin-bottom: 11px;
170
- }
171
- }
172
-
173
- &--errors {
174
- padding-left: 0 !important;
175
- border: none !important;
176
- color: var(--tide-booking-invalid);
177
- }
178
- }
179
-
180
- &__twocolumn {
181
- @include row--xl;
182
-
183
- & + & {
184
- margin-top: 15px;
185
- }
186
-
187
- & + .form__row {
188
- margin-top: 15px;
189
- }
190
- }
191
-
192
- &__twocolumn-column {
193
- @include media-xl {
194
- padding-right: 9px * 2;
195
- }
196
-
197
- .form__twocolumn-column + .form__twocolumn-column {
198
- margin-top: 15px;
199
-
200
- @include media-xl {
201
- margin-top: 0;
202
- padding-left: 9px * 2;
203
- padding-right: 0;
204
- }
205
- }
206
- }
207
-
208
- &__row {
209
- @extend %reset;
210
- margin-right: -15px * 0.5;
211
- margin-left: -15px * 0.5;
212
- display: flex;
213
- flex-wrap: wrap;
214
-
215
- .form__group {
216
- position: relative;
217
- width: 100%;
218
- max-width: 100%;
219
- min-height: 1px;
220
- padding-right: 15px * 0.5;
221
- padding-left: 15px * 0.5;
222
- margin-bottom: 15px;
223
- @include column;
224
- flex-grow: 1;
225
- flex-basis: 100%;
226
-
227
- &:last-of-type {
228
- margin-bottom: 0;
229
- }
230
-
231
- &--10 {
232
- width: 10%;
233
- flex: 0 0 10%;
234
- }
235
-
236
- &--20 {
237
- width: 20%;
238
- flex: 0 0 20%;
239
- }
240
-
241
- &--25 {
242
- width: 25%;
243
- flex: 0 0 25%;
244
- }
245
-
246
- &--30 {
247
- width: 30%;
248
- flex: 0 0 30%;
249
- }
250
-
251
- &--33 {
252
- width: 33.33%;
253
- flex: 0 0 33.33%;
254
- }
255
-
256
- &--40 {
257
- width: 40%;
258
- flex: 0 0 40%;
259
- }
260
-
261
- &--50 {
262
- width: 50%;
263
- flex: 0 0 50%;
264
- }
265
-
266
- &--60 {
267
- width: 60%;
268
- flex: 0 0 60%;
269
- }
270
-
271
- &--66 {
272
- width: 66.66%;
273
- flex: 0 0 66.66%;
274
- }
275
-
276
- &--70 {
277
- width: 70%;
278
- flex: 0 0 70%;
279
- }
280
-
281
- &--75 {
282
- width: 75%;
283
- flex: 0 0 75%;
284
- }
285
-
286
- &--80 {
287
- width: 80%;
288
- flex: 0 0 80%;
289
- }
290
-
291
- &--90 {
292
- width: 90%;
293
- flex: 0 0 90%;
294
- }
295
-
296
- &--xs {
297
- &-10 {
298
- @include media-xs {
299
- width: 10%;
300
- flex-basis: 10%;
301
- }
302
- }
303
-
304
- &-20 {
305
- @include media-xs {
306
- width: 20%;
307
- flex-basis: 20%;
308
- }
309
- }
310
-
311
- &-25 {
312
- @include media-xs {
313
- width: 25%;
314
- flex-basis: 25%;
315
- }
316
- }
317
-
318
- &-30 {
319
- @include media-xs {
320
- width: 30%;
321
- flex-basis: 30%;
322
- }
323
- }
324
-
325
- &-33 {
326
- @include media-xs {
327
- width: 33.33%;
328
- flex-basis: 33.33%;
329
- }
330
- }
331
-
332
- &-40 {
333
- @include media-xs {
334
- width: 40%;
335
- flex-basis: 40%;
336
- }
337
- }
338
-
339
- &-50 {
340
- @include media-xs {
341
- width: 50%;
342
- flex-basis: 50%;
343
- }
344
- }
345
-
346
- &-60 {
347
- @include media-xs {
348
- width: 60%;
349
- flex-basis: 60%;
350
- }
351
- }
352
-
353
- &-66 {
354
- @include media-xs {
355
- width: 66.66%;
356
- flex-basis: 66.66%;
357
- }
358
- }
359
-
360
- &-70 {
361
- @include media-xs {
362
- width: 70%;
363
- flex-basis: 70%;
364
- }
365
- }
366
-
367
- &-75 {
368
- @include media-xs {
369
- width: 75%;
370
- flex-basis: 75%;
371
- }
372
- }
373
-
374
- &-80 {
375
- @include media-xs {
376
- width: 80%;
377
- flex-basis: 80%;
378
- }
379
- }
380
-
381
- &-90 {
382
- @include media-xs {
383
- width: 90%;
384
- flex-basis: 90%;
385
- }
386
- }
387
-
388
- &-100 {
389
- @include media-xs {
390
- width: 100%;
391
- flex-basis: 100%;
392
- }
393
- }
394
- }
395
-
396
- &--sm {
397
- &-10 {
398
- @include media-sm {
399
- width: 10%;
400
- flex-basis: 10%;
401
- }
402
- }
403
-
404
- &-20 {
405
- @include media-sm {
406
- width: 20%;
407
- flex-basis: 20%;
408
- }
409
- }
410
-
411
- &-25 {
412
- @include media-sm {
413
- width: 25%;
414
- flex-basis: 25%;
415
- }
416
- }
417
-
418
- &-30 {
419
- @include media-sm {
420
- width: 30%;
421
- flex-basis: 30%;
422
- }
423
- }
424
-
425
- &-33 {
426
- @include media-sm {
427
- width: 33.33%;
428
- flex-basis: 33.33%;
429
- }
430
- }
431
-
432
- &-40 {
433
- @include media-sm {
434
- width: 40%;
435
- flex-basis: 40%;
436
- }
437
- }
438
-
439
- &-50 {
440
- @include media-sm {
441
- width: 50%;
442
- flex-basis: 50%;
443
- }
444
- }
445
-
446
- &-60 {
447
- @include media-sm {
448
- width: 60%;
449
- flex-basis: 60%;
450
- }
451
- }
452
-
453
- &-66 {
454
- @include media-sm {
455
- width: 66.66%;
456
- flex-basis: 66.66%;
457
- }
458
- }
459
-
460
- &-70 {
461
- @include media-sm {
462
- width: 70%;
463
- flex-basis: 70%;
464
- }
465
- }
466
-
467
- &-75 {
468
- @include media-sm {
469
- width: 75%;
470
- flex-basis: 75%;
471
- }
472
- }
473
-
474
- &-80 {
475
- @include media-sm {
476
- width: 80%;
477
- flex-basis: 80%;
478
- }
479
- }
480
-
481
- &-90 {
482
- @include media-sm {
483
- width: 90%;
484
- flex-basis: 90%;
485
- }
486
- }
487
-
488
- &-100 {
489
- @include media-sm {
490
- width: 100%;
491
- flex-basis: 100%;
492
- }
493
- }
494
- }
495
-
496
- &--md {
497
- &-10 {
498
- @include media-md {
499
- width: 10%;
500
- flex-basis: 10%;
501
- }
502
- }
503
-
504
- &-20 {
505
- @include media-md {
506
- width: 20%;
507
- flex-basis: 20%;
508
- }
509
- }
510
-
511
- &-25 {
512
- @include media-md {
513
- width: 25%;
514
- flex-basis: 25%;
515
- }
516
- }
517
-
518
- &-30 {
519
- @include media-md {
520
- width: 30%;
521
- flex-basis: 30%;
522
- }
523
- }
524
-
525
- &-33 {
526
- @include media-md {
527
- width: 33.33%;
528
- flex-basis: 33.33%;
529
- }
530
- }
531
-
532
- &-40 {
533
- @include media-md {
534
- width: 40%;
535
- flex-basis: 40%;
536
- }
537
- }
538
-
539
- &-50 {
540
- @include media-md {
541
- width: 50%;
542
- flex-basis: 50%;
543
- }
544
- }
545
-
546
- &-60 {
547
- @include media-md {
548
- width: 60%;
549
- flex-basis: 60%;
550
- }
551
- }
552
-
553
- &-66 {
554
- @include media-md {
555
- width: 66.66%;
556
- flex-basis: 66.66%;
557
- }
558
- }
559
-
560
- &-70 {
561
- @include media-md {
562
- width: 70%;
563
- flex-basis: 70%;
564
- }
565
- }
566
-
567
- &-75 {
568
- @include media-md {
569
- width: 75%;
570
- flex-basis: 75%;
571
- }
572
- }
573
-
574
- &-80 {
575
- @include media-md {
576
- width: 80%;
577
- flex-basis: 80%;
578
- }
579
- }
580
-
581
- &-90 {
582
- @include media-md {
583
- width: 90%;
584
- flex-basis: 90%;
585
- }
586
- }
587
-
588
- &-100 {
589
- @include media-md {
590
- width: 100%;
591
- flex-basis: 100%;
592
- }
593
- }
594
- }
595
-
596
- &--lg {
597
- &-10 {
598
- @include media-lg {
599
- width: 10%;
600
- flex-basis: 10%;
601
- }
602
- }
603
-
604
- &-20 {
605
- @include media-lg {
606
- width: 20%;
607
- flex-basis: 20%;
608
- }
609
- }
610
-
611
- &-25 {
612
- @include media-lg {
613
- width: 25%;
614
- flex-basis: 25%;
615
- }
616
- }
617
-
618
- &-30 {
619
- @include media-lg {
620
- width: 30%;
621
- flex-basis: 30%;
622
- }
623
- }
624
-
625
- &-33 {
626
- @include media-lg {
627
- width: 33.33%;
628
- flex-basis: 33.33%;
629
- }
630
- }
631
-
632
- &-40 {
633
- @include media-lg {
634
- width: 40%;
635
- flex-basis: 40%;
636
- }
637
- }
638
-
639
- &-50 {
640
- @include media-lg {
641
- width: 50%;
642
- flex-basis: 50%;
643
- }
644
- }
645
-
646
- &-60 {
647
- @include media-lg {
648
- width: 60%;
649
- flex-basis: 60%;
650
- }
651
- }
652
-
653
- &-66 {
654
- @include media-lg {
655
- width: 66.66%;
656
- flex-basis: 66.66%;
657
- }
658
- }
659
-
660
- &-70 {
661
- @include media-lg {
662
- width: 70%;
663
- flex-basis: 70%;
664
- }
665
- }
666
-
667
- &-75 {
668
- @include media-lg {
669
- width: 75%;
670
- flex-basis: 75%;
671
- }
672
- }
673
-
674
- &-80 {
675
- @include media-lg {
676
- width: 80%;
677
- flex-basis: 80%;
678
- }
679
- }
680
-
681
- &-90 {
682
- @include media-lg {
683
- width: 90%;
684
- flex-basis: 90%;
685
- }
686
- }
687
-
688
- &-100 {
689
- @include media-lg {
690
- width: 100%;
691
- flex-basis: 100%;
692
- }
693
- }
694
- }
695
-
696
- &--xl {
697
- &-10 {
698
- @include media-xl {
699
- width: 10%;
700
- flex-basis: 10%;
701
- }
702
- }
703
-
704
- &-20 {
705
- @include media-xl {
706
- width: 20%;
707
- flex-basis: 20%;
708
- }
709
- }
710
-
711
- &-25 {
712
- @include media-xl {
713
- width: 25%;
714
- flex-basis: 25%;
715
- }
716
- }
717
-
718
- &-30 {
719
- @include media-xl {
720
- width: 30%;
721
- flex-basis: 30%;
722
- }
723
- }
724
-
725
- &-33 {
726
- @include media-xl {
727
- width: 33.33%;
728
- flex-basis: 33.33%;
729
- }
730
- }
731
-
732
- &-40 {
733
- @include media-xl {
734
- width: 40%;
735
- flex-basis: 40%;
736
- }
737
- }
738
-
739
- &-50 {
740
- @include media-xl {
741
- width: 50%;
742
- flex-basis: 50%;
743
- }
744
- }
745
-
746
- &-60 {
747
- @include media-xl {
748
- width: 60%;
749
- flex-basis: 60%;
750
- }
751
- }
752
-
753
- &-66 {
754
- @include media-xl {
755
- width: 66.66%;
756
- flex-basis: 66.66%;
757
- }
758
- }
759
-
760
- &-70 {
761
- @include media-xl {
762
- width: 70%;
763
- flex-basis: 70%;
764
- }
765
- }
766
-
767
- &-75 {
768
- @include media-xl {
769
- width: 75%;
770
- flex-basis: 75%;
771
- }
772
- }
773
-
774
- &-80 {
775
- @include media-xl {
776
- width: 80%;
777
- flex-basis: 80%;
778
- }
779
- }
780
-
781
- &-90 {
782
- @include media-xl {
783
- width: 90%;
784
- flex-basis: 90%;
785
- }
786
- }
787
-
788
- &-100 {
789
- @include media-xl {
790
- width: 100%;
791
- flex-basis: 100%;
792
- }
793
- }
794
- }
795
-
796
- &--xxl {
797
- &-10 {
798
- @include media-xxl {
799
- width: 10%;
800
- flex-basis: 10%;
801
- }
802
- }
803
-
804
- &-20 {
805
- @include media-xxl {
806
- width: 20%;
807
- flex-basis: 20%;
808
- }
809
- }
810
-
811
- &-25 {
812
- @include media-xxl {
813
- width: 25%;
814
- flex-basis: 25%;
815
- }
816
- }
817
-
818
- &-30 {
819
- @include media-xxl {
820
- width: 30%;
821
- flex-basis: 30%;
822
- }
823
- }
824
-
825
- &-33 {
826
- @include media-xxl {
827
- width: 33.33%;
828
- flex-basis: 33.33%;
829
- }
830
- }
831
-
832
- &-40 {
833
- @include media-xxl {
834
- width: 40%;
835
- flex-basis: 40%;
836
- }
837
- }
838
-
839
- &-50 {
840
- @include media-xxl {
841
- width: 50%;
842
- flex-basis: 50%;
843
- }
844
- }
845
-
846
- &-60 {
847
- @include media-xxl {
848
- width: 60%;
849
- flex-basis: 60%;
850
- }
851
- }
852
-
853
- &-66 {
854
- @include media-xxl {
855
- width: 66.66%;
856
- flex-basis: 66.66%;
857
- }
858
- }
859
-
860
- &-70 {
861
- @include media-xxl {
862
- width: 70%;
863
- flex-basis: 70%;
864
- }
865
- }
866
-
867
- &-75 {
868
- @include media-xxl {
869
- width: 75%;
870
- flex-basis: 75%;
871
- }
872
- }
873
-
874
- &-80 {
875
- @include media-xxl {
876
- width: 80%;
877
- flex-basis: 80%;
878
- }
879
- }
880
-
881
- &-90 {
882
- @include media-xxl {
883
- width: 90%;
884
- flex-basis: 90%;
885
- }
886
- }
887
-
888
- &-100 {
889
- @include media-xxl {
890
- width: 100%;
891
- flex-basis: 100%;
892
- }
893
- }
894
- }
895
-
896
- &--datepicker {
897
- flex-direction: row;
898
- }
899
-
900
- &--success-message {
901
- max-width: var(--tide-booking-container-article);
902
- margin-right: auto;
903
- margin-left: auto;
904
- }
905
-
906
- &--inline {
907
- width: auto;
908
- flex-grow: 0;
909
- white-space: nowrap;
910
- }
911
- }
912
-
913
- & + .form__row {
914
- margin-top: 15px;
915
- }
916
-
917
- &--actions {
918
- .form__group {
919
- flex-flow: row nowrap;
920
- align-items: flex-end;
921
- justify-content: flex-end;
922
- }
923
- }
924
-
925
- &--additional-actions {
926
- .form__group {
927
- @include row--sm;
928
- @include flex--centerXY;
929
- }
930
- }
931
-
932
- &--choose-office {
933
- display: flex;
934
- }
935
-
936
- &--disclaimer {
937
- width: 100%;
938
- }
939
-
940
- &--validation {
941
- margin-bottom: 15px;
942
- flex-direction: column;
943
- color: var(--tide-booking-invalid-dark);
944
-
945
- p {
946
- opacity: 1;
947
- }
948
-
949
- ul {
950
- margin-inline-start: 30px;
951
- margin-top: 10px;
952
- }
953
-
954
- .form {
955
- &__group {
956
- flex-basis: initial;
957
- }
958
- }
959
- }
960
-
961
- &--inline {
962
- align-items: flex-end;
963
-
964
- .form__group {
965
- margin-bottom: 0;
966
- }
967
- }
968
- }
969
-
970
- &__group {
971
- @extend %reset;
972
- width: 100%;
973
- display: flex;
974
- flex-direction: column;
975
- gap: 20px;
976
-
977
- &-input {
978
- position: relative;
979
- width: 100%;
980
- }
981
-
982
- .checkbox {
983
- & + .checkbox {
984
- margin-top: 15px;
985
- }
986
- }
987
-
988
- .radiobutton {
989
- & + .radiobutton {
990
- margin-top: 15px;
991
- }
992
- }
993
-
994
- &--error {
995
- .form {
996
- &__label {
997
- color: var(--tide-booking-invalid);
998
- }
999
-
1000
- &__input {
1001
- border-color: var(--tide-booking-invalid-light);
1002
- color: var(--tide-booking-invalid-dark);
1003
- background: var(--tide-booking-invalid-light);
1004
- }
1005
- }
1006
-
1007
- .radiobutton {
1008
- &__label {
1009
- color: var(--tide-booking-invalid-dark);
1010
- }
1011
-
1012
- &__input {
1013
- border: 2px solid var(--tide-booking-invalid-dark);
1014
- background: var(--tide-booking-invalid-light);
1015
-
1016
- &:after {
1017
- background: var(--tide-booking-invalid-dark);
1018
- }
1019
- }
1020
- }
1021
-
1022
- ::-webkit-input-placeholder {
1023
- color: var(--tide-booking-invalid-dark);
1024
- }
1025
-
1026
- ::-moz-placeholder {
1027
- color: var(--tide-booking-invalid-dark);
1028
- }
1029
-
1030
- :-ms-input-placeholder {
1031
- color: var(--tide-booking-invalid-dark);
1032
- }
1033
-
1034
- :-moz-placeholder {
1035
- color: var(--tide-booking-invalid-dark);
1036
- }
1037
- }
1038
-
1039
- &--icon {
1040
- &:focus,
1041
- &:focus-within,
1042
- &:active {
1043
- .icon {
1044
- svg {
1045
- fill: var(--tide-booking-color-secondary);
1046
- }
1047
- }
1048
- }
1049
-
1050
- .form {
1051
- &__label {
1052
- position: absolute;
1053
- top: 3px;
1054
- left: 47.5px;
1055
- font-size: 13px;
1056
- pointer-events: none;
1057
-
1058
- @include media-sm {
1059
- left: 17.5px;
1060
- }
1061
-
1062
- @include media-xl {
1063
- left: 47.5px;
1064
- }
1065
- }
1066
-
1067
- &__input {
1068
- height: 45px;
1069
- max-height: 45px;
1070
- padding-left: 20px;
1071
- padding-top: 16px;
1072
- font-size: 14.5px;
1073
- background-color: white;
1074
-
1075
- @include media-sm {
1076
- padding-left: 20px;
1077
- }
1078
-
1079
- @include media-md {
1080
- padding-left: 20px;
1081
- }
1082
-
1083
- @include media-xl {
1084
- font-size: 15.5px;
1085
- }
1086
- }
1087
-
1088
- .typeahead {
1089
- &__trigger {
1090
- height: 45px;
1091
- max-height: 45px;
1092
- padding-left: 40px;
1093
- font-size: 16px;
1094
- background-color: white;
1095
-
1096
- @include media-sm {
1097
- padding-left: 10px;
1098
- }
1099
-
1100
- @include media-md {
1101
- padding-left: 40px;
1102
- }
1103
- }
1104
- }
1105
- }
1106
- }
1107
-
1108
- &--datepicker {
1109
- .form__group-input {
1110
- width: 50%;
1111
- }
1112
-
1113
- .form__group-input:nth-child(1) .form__input {
1114
- border-radius: 5px 0 0 5px;
1115
- }
1116
-
1117
- .form__group-input:nth-child(2) .form__input {
1118
- border-radius: 0 5px 5px 0;
1119
- }
1120
- }
1121
-
1122
- &--submit {
1123
- .cta {
1124
- width: 100%;
1125
- justify-content: center;
1126
- }
1127
- }
1128
-
1129
- &--success-message {
1130
- &:before {
1131
- content: "";
1132
- width: 15px * 3.33;
1133
- height: 15px * 1.33;
1134
- border-left: 2.5px solid black;
1135
- border-bottom: 2.5px solid black;
1136
- margin: 0 auto 15px * 3 auto;
1137
- transform: rotate(-45deg);
1138
- }
1139
- }
1140
- }
1141
-
1142
- &__error-heading {
1143
- font-family: var(--tide-booking-font-heading);
1144
- }
1145
-
1146
- &__room {
1147
- display: grid;
1148
- grid-template-rows: repeat(1, 1fr);
1149
- gap: 15px;
1150
- padding: 15px;
1151
- background: var(--tide-booking-room-options-card-background);
1152
- outline: var(--tide-booking-room-options-card-border);
1153
- border-radius: var(--tide-booking-room-options-card-border-radius);
1154
-
1155
- @include media-md {
1156
- gap: 25px;
1157
- grid-template-columns: 75% 20%;
1158
- justify-content: space-between;
1159
- }
1160
-
1161
- &__container {
1162
- margin-top: -25px;
1163
- }
1164
-
1165
- &__header {
1166
- @include h3;
1167
- color: #666;
1168
- }
1169
-
1170
- &__wrapper {
1171
- display: grid;
1172
- grid-template-columns: repeat(1, 1fr);
1173
- grid-template-rows: repeat(1, 1fr);
1174
- gap: 15px;
1175
-
1176
- @include media-sm {
1177
- gap: 25px;
1178
- grid-template-columns: 230px 1fr;
1179
- }
1180
- }
1181
-
1182
- &__image {
1183
- width: 100%;
1184
- height: 230px;
1185
- object-fit: cover;
1186
- overflow: hidden;
1187
- border-radius: var(--tide-booking-room-options-image-border-radius);
1188
- position: relative;
1189
- }
1190
-
1191
- &__img {
1192
- width: 100%;
1193
- height: 100%;
1194
- object-fit: cover;
1195
- object-position: center;
1196
- }
1197
-
1198
- &__favorite {
1199
- position: absolute;
1200
- top: 10px;
1201
- left: 10px;
1202
- z-index: 1;
1203
- display: flex;
1204
- align-items: center;
1205
- justify-content: center;
1206
- background-color: white;
1207
- width: 40px;
1208
- height: 40px;
1209
- border-radius: 50%;
1210
- color: #26b489;
1211
- font-size: 20px;
1212
- }
1213
-
1214
- &__footer {
1215
- display: flex;
1216
- flex-direction: column;
1217
- justify-content: space-between;
1218
- align-items: flex-end;
1219
- gap: 10px;
1220
-
1221
- @include media-xs {
1222
- flex-direction: row;
1223
- }
1224
-
1225
- @include media-md {
1226
- display: flex;
1227
- flex-direction: column;
1228
- align-items: flex-end;
1229
- }
1230
-
1231
- p {
1232
- margin-bottom: 0;
1233
- font-size: 14px;
1234
- padding-bottom: 2px;
1235
-
1236
- @include media-md {
1237
- font-size: 16px;
1238
- text-align: right;
1239
- }
1240
- }
1241
-
1242
- &__top {
1243
- display: flex;
1244
- flex-direction: column;
1245
- align-items: flex-start;
1246
- gap: 5px;
1247
- width: 100%;
1248
-
1249
- @include media-md {
1250
- align-items: flex-end;
1251
- }
1252
- }
1253
-
1254
- &__bottom {
1255
- display: flex;
1256
- flex-direction: column;
1257
- align-items: flex-end;
1258
- gap: 5px;
1259
- width: 100%;
1260
- max-width: 230px;
1261
- }
1262
-
1263
- .cta {
1264
- width: 100%;
1265
- max-width: 230px;
1266
- justify-content: center;
1267
- }
1268
- }
1269
-
1270
- &__title {
1271
- font-family: var(--tide-booking-room-options-title-font-family);
1272
- font-weight: var(--tide-booking-room-options-title-font-weight);
1273
- color: var(--tide-booking-room-options-title-color);
1274
- margin-bottom: 5px;
1275
- }
1276
-
1277
- &__text {
1278
- font-size: 14px;
1279
- line-height: 18px;
1280
- overflow: hidden;
1281
- display: -webkit-box;
1282
- -webkit-line-clamp: 3;
1283
- -webkit-box-orient: vertical;
1284
- }
1285
-
1286
- &__days {
1287
- font-size: 14px;
1288
- @include media-md {
1289
- font-size: 16px;
1290
- text-align: right;
1291
- }
1292
- }
1293
-
1294
- &__usps {
1295
- display: flex;
1296
- flex-direction: row;
1297
- justify-content: flex-start;
1298
- flex-wrap: wrap;
1299
- gap: 10px;
1300
- row-gap: 0rem;
1301
- margin: 0;
1302
- }
1303
-
1304
- &__select {
1305
- display: grid;
1306
- grid-template-rows: repeat(1, 1fr);
1307
- gap: 10px;
1308
- margin-top: 15px;
1309
-
1310
- @include media-md {
1311
- grid-template-columns: repeat(2, 1fr);
1312
- gap: 15px;
1313
- }
1314
- }
1315
-
1316
- &__price {
1317
- font-size: 16px;
1318
- font-weight: 400;
1319
- margin-bottom: 5px;
1320
-
1321
- span {
1322
- font-size: 20px;
1323
- font-weight: 400;
1324
- }
1325
-
1326
- &--increase {
1327
- color: var(--tide-booking-price-increase);
1328
- }
1329
-
1330
- &--decrease {
1331
- color: var(--tide-booking-price-decrease);
1332
- }
1333
- }
1334
-
1335
- &__alternatives {
1336
- &__header {
1337
- margin: 30px 0rem 10px 0rem;
1338
- @include h6;
1339
- color: var(--tide-booking-room-options-alternative-header-color);
1340
- font-size: 16px;
1341
-
1342
- @include media-xl {
1343
- font-size: 18px;
1344
- }
1345
- }
1346
-
1347
- &__btn {
1348
- margin-bottom: 5px;
1349
- outline: none;
1350
- border: none;
1351
- background: transparent;
1352
- text-align: right;
1353
- color: var(--tide-booking-room-options-alternative-btn-color);
1354
- text-decoration: var(
1355
- --tide-booking-room-options-alternative-btn-text-decoration
1356
- );
1357
- transition: color 0.3s ease, text-decoration 0.3s ease;
1358
-
1359
- &:hover {
1360
- text-decoration: var(
1361
- --tide-booking-room-options-alternative-btn-text-decoration-hover
1362
- );
1363
- color: var(--tide-booking-room-options-alternative-btn-color-hover);
1364
- }
1365
- }
1366
-
1367
- &__content {
1368
- display: grid;
1369
- grid-template-columns: repeat(1, 1fr);
1370
- grid-template-rows: repeat(1, 1fr);
1371
- gap: 15px;
1372
-
1373
- @include media-sm {
1374
- grid-template-columns: repeat(2, 1fr);
1375
- }
1376
-
1377
- @include media-xxl {
1378
- grid-template-columns: repeat(3, 1fr);
1379
- }
1380
-
1381
- .form__room {
1382
- @include media-md {
1383
- display: grid;
1384
- grid-template-rows: repeat(1, 1fr);
1385
- grid-template-columns: 1fr;
1386
- }
1387
-
1388
- &__wrapper {
1389
- @include media-sm {
1390
- display: grid;
1391
- grid-template-columns: repeat(1, 1fr);
1392
- grid-template-rows: repeat(1, 1fr);
1393
- gap: 15px;
1394
- }
1395
- }
1396
-
1397
- &__footer {
1398
- @include media-md {
1399
- flex-direction: row;
1400
- }
1401
- &__top {
1402
- @include media-md {
1403
- align-items: flex-start;
1404
- }
1405
- }
1406
- }
1407
-
1408
- &__dates {
1409
- @include media-md {
1410
- text-align: left;
1411
- font-size: 14px;
1412
- }
1413
- }
1414
-
1415
- &__days {
1416
- @include media-md {
1417
- text-align: left;
1418
- font-size: 14px;
1419
- }
1420
- }
1421
- }
1422
- }
1423
- }
1424
- }
1425
- }
1426
-
1427
- .form__twocolumn-column + .form__twocolumn-column {
1428
- margin-top: 15px;
1429
-
1430
- @include media-xl {
1431
- margin-top: 0;
1432
- padding-left: 9px * 2;
1433
- padding-right: 0;
1434
- }
1435
- }
1436
-
1437
- .booking .form {
1438
- max-width: 100%;
1439
-
1440
- &__region {
1441
- // background-color: $white;
1442
-
1443
- .booking-card__body {
1444
- background-color: transparent;
1445
- }
1446
- }
1447
- }
1448
-
1449
- .form__travelers {
1450
- &__wrapper {
1451
- background: var(--tide-booking-form-card-background);
1452
- outline: var(--tide-booking-form-card-border);
1453
- border-radius: var(--tide-booking-form-card-border-radius);
1454
- margin-top: -25px;
1455
- }
1456
-
1457
- .form__region {
1458
- padding: 15px;
1459
-
1460
- @include media-sm {
1461
- padding: 15px;
1462
- }
1463
-
1464
- @include media-lg {
1465
- padding: 15px;
1466
- padding-bottom: 20px;
1467
- }
1468
-
1469
- &-heading {
1470
- margin-bottom: 0px;
1471
- }
1472
-
1473
- &-header {
1474
- display: flex;
1475
- flex-flow: row wrap;
1476
- align-items: center;
1477
- margin: 15px 0px;
1478
- margin-top: 5px;
1479
- }
1480
-
1481
- &-label {
1482
- margin-top: 5px;
1483
- margin-bottom: 0;
1484
- font-size: 16px;
1485
- color: var(--tide-booking-form-card-label-color);
1486
-
1487
- @include media-xs {
1488
- margin-top: 0px;
1489
- }
1490
- }
1491
- }
1492
-
1493
- .form__group {
1494
- gap: 5px;
1495
- margin-bottom: 0px;
1496
- min-height: 85px;
1497
-
1498
- .form__label {
1499
- color: var(--tide-booking-form-label-color);
1500
- font-family: var(--tide-booking-form-label-font-family);
1501
- font-weight: var(--tide-booking-form-label-font-weight);
1502
- }
1503
-
1504
- &--error {
1505
- .form__label {
1506
- color: var(--tide-booking-invalid);
1507
- }
1508
- }
1509
-
1510
- .form__input {
1511
- min-height: 45px;
1512
-
1513
- &:focus,
1514
- &:active {
1515
- border: var(--tide-booking-form-input-border-focus);
1516
- }
1517
- }
1518
- }
1519
- }
1520
-
1521
- .booking .form__region {
1522
- &--errors {
1523
- background-color: transparent;
1524
- padding-left: 15px !important;
1525
- }
1526
- }
1527
-
1528
- .booking .form__region + .form__region {
1529
- margin-top: 0;
1530
- border-top: var(--tide-booking-form-group-border);
1531
- }
1532
-
1533
- .booking__panel .typeahead .form__input {
1534
- outline: var(--tide-booking-form-typeahead-agent-border);
1535
- background: var(--tide-booking-form-typeahead-agent-background);
1536
- border-radius: var(--tide-booking-form-typeahead-agent-border-radius);
1537
- color: var(--tide-booking-form-typeahead-agent-color);
1538
- }
1539
-
1540
- .booking__panel-frame--transparent .form__region {
1541
- // padding-right: 15px;
1542
- // padding-left: 15px;
1543
- }
1544
-
1545
- .form__booking--summary {
1546
- margin-top: -25px;
1547
- background: var(--tide-booking-form-summary-background);
1548
- border-radius: var(--tide-booking-form-summary-border-radius);
1549
- outline: var(--tide-booking-form-summary-border);
1550
-
1551
- .form__region {
1552
- padding: 22.5px 15px;
1553
- }
1554
-
1555
- .form__row + .form__row {
1556
- margin-top: 0px;
1557
- }
1558
-
1559
- li {
1560
- font-size: 16px;
1561
- line-height: 1.6;
1562
- p {
1563
- font-size: 16px;
1564
- line-height: 1.6;
1565
- }
1566
- }
1567
- }
1568
-
1569
- .form__booking--message {
1570
- margin-top: -25px;
1571
- background: var(--tide-booking-confirmation-background);
1572
- border-radius: var(--tide-booking-confirmation-border-radius);
1573
- outline: var(--tide-booking-confirmation-border);
1574
- padding: 0px 15px;
1575
- }
1576
-
1577
- .form__booking--flight {
1578
- .booking-card__group {
1579
- outline: none;
1580
- border-radius: 0px;
1581
- background: transparent;
1582
- }
1583
- }
1
+ .form {
2
+ @extend %reset;
3
+
4
+ &__wrapper {
5
+ display: flex;
6
+ flex-direction: column;
7
+ gap: 20rem;
8
+ }
9
+
10
+ &__label {
11
+ @extend %reset;
12
+ margin-bottom: 15px * 0.5;
13
+ display: flex;
14
+ text-align: left;
15
+ text-overflow: ellipsis;
16
+ white-space: nowrap;
17
+ overflow: hidden;
18
+ line-height: 22px;
19
+ }
20
+
21
+ &__input {
22
+ width: 100%;
23
+ border: var(--tide-booking-form-input-border);
24
+ background: var(--tide-booking-form-input-background);
25
+ border-radius: var(--tide-booking-form-input-border-radius);
26
+ box-sizing: border-box;
27
+ @extend %transition-easing;
28
+ }
29
+
30
+ &__group {
31
+ @extend %reset;
32
+ width: 100%;
33
+ display: flex;
34
+ flex-direction: column;
35
+ gap: 20px;
36
+
37
+ &-input {
38
+ position: relative;
39
+ width: 100%;
40
+ }
41
+
42
+ &--icon {
43
+ &:focus,
44
+ &:focus-within,
45
+ &:active {
46
+ .icon {
47
+ svg {
48
+ fill: var(--tide-booking-color-secondary);
49
+ }
50
+ }
51
+ }
52
+
53
+ .form {
54
+ &__label {
55
+ position: absolute;
56
+ top: 3px;
57
+ left: 47.5px;
58
+ font-size: 14px;
59
+ pointer-events: none;
60
+ color: var(--tide-booking-datepicker-input-label-color);
61
+
62
+ @include media-sm {
63
+ left: 17.5px;
64
+ }
65
+
66
+ @include media-lg {
67
+ font-size: 16px;
68
+ }
69
+
70
+ @include media-xl {
71
+ left: 47.5px;
72
+ }
73
+ }
74
+
75
+ &__input {
76
+ @include input;
77
+ padding-left: 20px;
78
+ padding-top: 16px;
79
+
80
+ @include media-sm {
81
+ padding-left: 20px;
82
+ }
83
+
84
+ @include media-md {
85
+ padding-left: 20px;
86
+ }
87
+
88
+ @include media-xl {
89
+ font-size: 15.5px;
90
+ }
91
+ }
92
+
93
+ .typeahead {
94
+ &__trigger {
95
+ height: 45px;
96
+ max-height: 45px;
97
+ padding-left: 40px;
98
+ font-size: 16px;
99
+ background-color: var(--tide-booking-white);
100
+
101
+ @include media-sm {
102
+ padding-left: 10px;
103
+ }
104
+
105
+ @include media-md {
106
+ padding-left: 40px;
107
+ }
108
+ }
109
+ }
110
+ }
111
+ }
112
+
113
+ &--datepicker {
114
+ .form__group-input {
115
+ width: 50%;
116
+ }
117
+ }
118
+
119
+ &--submit {
120
+ .cta {
121
+ width: 100%;
122
+ justify-content: center;
123
+ }
124
+ }
125
+
126
+ &--success-message {
127
+ &:before {
128
+ content: "";
129
+ width: 15px * 3.33;
130
+ height: 15px * 1.33;
131
+ border-left: 2.5px solid var(--tide-booking-black);
132
+ border-bottom: 2.5px solid var(--tide-booking-black);
133
+ margin: 0 auto 15px * 3 auto;
134
+ transform: rotate(-45deg);
135
+ }
136
+ }
137
+ }
138
+
139
+ &__region {
140
+ @extend %reset;
141
+
142
+ & + .form__region {
143
+ margin-top: 15px * 4;
144
+ }
145
+
146
+ &-header {
147
+ margin-bottom: 15px * 0.3;
148
+ display: flex;
149
+ flex-flow: row wrap;
150
+ align-items: center;
151
+ }
152
+
153
+ &-heading {
154
+ @include media-xs {
155
+ padding-right: 15px * 2;
156
+ }
157
+ }
158
+
159
+ &-label {
160
+ width: 100%;
161
+ // margin-top: -15px * 0.5;
162
+ order: 2;
163
+
164
+ @include media-xs {
165
+ width: auto;
166
+ margin-top: 0;
167
+ // @include marginLeft(15px * 0.2);
168
+ order: initial;
169
+ margin-bottom: 11px;
170
+ }
171
+ }
172
+
173
+ &--errors {
174
+ padding-left: 0 !important;
175
+ border: none !important;
176
+ color: var(--tide-booking-invalid);
177
+ }
178
+ }
179
+
180
+ &__twocolumn {
181
+ @include row--xl;
182
+
183
+ & + & {
184
+ margin-top: 15px;
185
+ }
186
+
187
+ & + .form__row {
188
+ margin-top: 15px;
189
+ }
190
+ }
191
+
192
+ &__twocolumn-column {
193
+ @include media-xl {
194
+ padding-right: 9px * 2;
195
+ }
196
+
197
+ .form__twocolumn-column + .form__twocolumn-column {
198
+ margin-top: 15px;
199
+
200
+ @include media-xl {
201
+ margin-top: 0;
202
+ padding-left: 9px * 2;
203
+ padding-right: 0;
204
+ }
205
+ }
206
+ }
207
+
208
+ &__row {
209
+ @extend %reset;
210
+ margin-right: -15px * 0.5;
211
+ margin-left: -15px * 0.5;
212
+ display: flex;
213
+ flex-wrap: wrap;
214
+
215
+ .form__group {
216
+ position: relative;
217
+ width: 100%;
218
+ max-width: 100%;
219
+ min-height: 1px;
220
+ padding-right: 15px * 0.5;
221
+ padding-left: 15px * 0.5;
222
+ margin-bottom: 15px;
223
+ @include column;
224
+ flex-grow: 1;
225
+ flex-basis: 100%;
226
+
227
+ &:last-of-type {
228
+ margin-bottom: 0;
229
+ }
230
+
231
+ &--10 {
232
+ width: 10%;
233
+ flex: 0 0 10%;
234
+ }
235
+
236
+ &--20 {
237
+ width: 20%;
238
+ flex: 0 0 20%;
239
+ }
240
+
241
+ &--25 {
242
+ width: 25%;
243
+ flex: 0 0 25%;
244
+ }
245
+
246
+ &--30 {
247
+ width: 30%;
248
+ flex: 0 0 30%;
249
+ }
250
+
251
+ &--33 {
252
+ width: 33.33%;
253
+ flex: 0 0 33.33%;
254
+ }
255
+
256
+ &--40 {
257
+ width: 40%;
258
+ flex: 0 0 40%;
259
+ }
260
+
261
+ &--50 {
262
+ width: 50%;
263
+ flex: 0 0 50%;
264
+ }
265
+
266
+ &--60 {
267
+ width: 60%;
268
+ flex: 0 0 60%;
269
+ }
270
+
271
+ &--66 {
272
+ width: 66.66%;
273
+ flex: 0 0 66.66%;
274
+ }
275
+
276
+ &--70 {
277
+ width: 70%;
278
+ flex: 0 0 70%;
279
+ }
280
+
281
+ &--75 {
282
+ width: 75%;
283
+ flex: 0 0 75%;
284
+ }
285
+
286
+ &--80 {
287
+ width: 80%;
288
+ flex: 0 0 80%;
289
+ }
290
+
291
+ &--90 {
292
+ width: 90%;
293
+ flex: 0 0 90%;
294
+ }
295
+
296
+ &--xs {
297
+ &-10 {
298
+ @include media-xs {
299
+ width: 10%;
300
+ flex-basis: 10%;
301
+ }
302
+ }
303
+
304
+ &-20 {
305
+ @include media-xs {
306
+ width: 20%;
307
+ flex-basis: 20%;
308
+ }
309
+ }
310
+
311
+ &-25 {
312
+ @include media-xs {
313
+ width: 25%;
314
+ flex-basis: 25%;
315
+ }
316
+ }
317
+
318
+ &-30 {
319
+ @include media-xs {
320
+ width: 30%;
321
+ flex-basis: 30%;
322
+ }
323
+ }
324
+
325
+ &-33 {
326
+ @include media-xs {
327
+ width: 33.33%;
328
+ flex-basis: 33.33%;
329
+ }
330
+ }
331
+
332
+ &-40 {
333
+ @include media-xs {
334
+ width: 40%;
335
+ flex-basis: 40%;
336
+ }
337
+ }
338
+
339
+ &-50 {
340
+ @include media-xs {
341
+ width: 50%;
342
+ flex-basis: 50%;
343
+ }
344
+ }
345
+
346
+ &-60 {
347
+ @include media-xs {
348
+ width: 60%;
349
+ flex-basis: 60%;
350
+ }
351
+ }
352
+
353
+ &-66 {
354
+ @include media-xs {
355
+ width: 66.66%;
356
+ flex-basis: 66.66%;
357
+ }
358
+ }
359
+
360
+ &-70 {
361
+ @include media-xs {
362
+ width: 70%;
363
+ flex-basis: 70%;
364
+ }
365
+ }
366
+
367
+ &-75 {
368
+ @include media-xs {
369
+ width: 75%;
370
+ flex-basis: 75%;
371
+ }
372
+ }
373
+
374
+ &-80 {
375
+ @include media-xs {
376
+ width: 80%;
377
+ flex-basis: 80%;
378
+ }
379
+ }
380
+
381
+ &-90 {
382
+ @include media-xs {
383
+ width: 90%;
384
+ flex-basis: 90%;
385
+ }
386
+ }
387
+
388
+ &-100 {
389
+ @include media-xs {
390
+ width: 100%;
391
+ flex-basis: 100%;
392
+ }
393
+ }
394
+ }
395
+
396
+ &--sm {
397
+ &-10 {
398
+ @include media-sm {
399
+ width: 10%;
400
+ flex-basis: 10%;
401
+ }
402
+ }
403
+
404
+ &-20 {
405
+ @include media-sm {
406
+ width: 20%;
407
+ flex-basis: 20%;
408
+ }
409
+ }
410
+
411
+ &-25 {
412
+ @include media-sm {
413
+ width: 25%;
414
+ flex-basis: 25%;
415
+ }
416
+ }
417
+
418
+ &-30 {
419
+ @include media-sm {
420
+ width: 30%;
421
+ flex-basis: 30%;
422
+ }
423
+ }
424
+
425
+ &-33 {
426
+ @include media-sm {
427
+ width: 33.33%;
428
+ flex-basis: 33.33%;
429
+ }
430
+ }
431
+
432
+ &-40 {
433
+ @include media-sm {
434
+ width: 40%;
435
+ flex-basis: 40%;
436
+ }
437
+ }
438
+
439
+ &-50 {
440
+ @include media-sm {
441
+ width: 50%;
442
+ flex-basis: 50%;
443
+ }
444
+ }
445
+
446
+ &-60 {
447
+ @include media-sm {
448
+ width: 60%;
449
+ flex-basis: 60%;
450
+ }
451
+ }
452
+
453
+ &-66 {
454
+ @include media-sm {
455
+ width: 66.66%;
456
+ flex-basis: 66.66%;
457
+ }
458
+ }
459
+
460
+ &-70 {
461
+ @include media-sm {
462
+ width: 70%;
463
+ flex-basis: 70%;
464
+ }
465
+ }
466
+
467
+ &-75 {
468
+ @include media-sm {
469
+ width: 75%;
470
+ flex-basis: 75%;
471
+ }
472
+ }
473
+
474
+ &-80 {
475
+ @include media-sm {
476
+ width: 80%;
477
+ flex-basis: 80%;
478
+ }
479
+ }
480
+
481
+ &-90 {
482
+ @include media-sm {
483
+ width: 90%;
484
+ flex-basis: 90%;
485
+ }
486
+ }
487
+
488
+ &-100 {
489
+ @include media-sm {
490
+ width: 100%;
491
+ flex-basis: 100%;
492
+ }
493
+ }
494
+ }
495
+
496
+ &--md {
497
+ &-10 {
498
+ @include media-md {
499
+ width: 10%;
500
+ flex-basis: 10%;
501
+ }
502
+ }
503
+
504
+ &-20 {
505
+ @include media-md {
506
+ width: 20%;
507
+ flex-basis: 20%;
508
+ }
509
+ }
510
+
511
+ &-25 {
512
+ @include media-md {
513
+ width: 25%;
514
+ flex-basis: 25%;
515
+ }
516
+ }
517
+
518
+ &-30 {
519
+ @include media-md {
520
+ width: 30%;
521
+ flex-basis: 30%;
522
+ }
523
+ }
524
+
525
+ &-33 {
526
+ @include media-md {
527
+ width: 33.33%;
528
+ flex-basis: 33.33%;
529
+ }
530
+ }
531
+
532
+ &-40 {
533
+ @include media-md {
534
+ width: 40%;
535
+ flex-basis: 40%;
536
+ }
537
+ }
538
+
539
+ &-50 {
540
+ @include media-md {
541
+ width: 50%;
542
+ flex-basis: 50%;
543
+ }
544
+ }
545
+
546
+ &-60 {
547
+ @include media-md {
548
+ width: 60%;
549
+ flex-basis: 60%;
550
+ }
551
+ }
552
+
553
+ &-66 {
554
+ @include media-md {
555
+ width: 66.66%;
556
+ flex-basis: 66.66%;
557
+ }
558
+ }
559
+
560
+ &-70 {
561
+ @include media-md {
562
+ width: 70%;
563
+ flex-basis: 70%;
564
+ }
565
+ }
566
+
567
+ &-75 {
568
+ @include media-md {
569
+ width: 75%;
570
+ flex-basis: 75%;
571
+ }
572
+ }
573
+
574
+ &-80 {
575
+ @include media-md {
576
+ width: 80%;
577
+ flex-basis: 80%;
578
+ }
579
+ }
580
+
581
+ &-90 {
582
+ @include media-md {
583
+ width: 90%;
584
+ flex-basis: 90%;
585
+ }
586
+ }
587
+
588
+ &-100 {
589
+ @include media-md {
590
+ width: 100%;
591
+ flex-basis: 100%;
592
+ }
593
+ }
594
+ }
595
+
596
+ &--lg {
597
+ &-10 {
598
+ @include media-lg {
599
+ width: 10%;
600
+ flex-basis: 10%;
601
+ }
602
+ }
603
+
604
+ &-20 {
605
+ @include media-lg {
606
+ width: 20%;
607
+ flex-basis: 20%;
608
+ }
609
+ }
610
+
611
+ &-25 {
612
+ @include media-lg {
613
+ width: 25%;
614
+ flex-basis: 25%;
615
+ }
616
+ }
617
+
618
+ &-30 {
619
+ @include media-lg {
620
+ width: 30%;
621
+ flex-basis: 30%;
622
+ }
623
+ }
624
+
625
+ &-33 {
626
+ @include media-lg {
627
+ width: 33.33%;
628
+ flex-basis: 33.33%;
629
+ }
630
+ }
631
+
632
+ &-40 {
633
+ @include media-lg {
634
+ width: 40%;
635
+ flex-basis: 40%;
636
+ }
637
+ }
638
+
639
+ &-50 {
640
+ @include media-lg {
641
+ width: 50%;
642
+ flex-basis: 50%;
643
+ }
644
+ }
645
+
646
+ &-60 {
647
+ @include media-lg {
648
+ width: 60%;
649
+ flex-basis: 60%;
650
+ }
651
+ }
652
+
653
+ &-66 {
654
+ @include media-lg {
655
+ width: 66.66%;
656
+ flex-basis: 66.66%;
657
+ }
658
+ }
659
+
660
+ &-70 {
661
+ @include media-lg {
662
+ width: 70%;
663
+ flex-basis: 70%;
664
+ }
665
+ }
666
+
667
+ &-75 {
668
+ @include media-lg {
669
+ width: 75%;
670
+ flex-basis: 75%;
671
+ }
672
+ }
673
+
674
+ &-80 {
675
+ @include media-lg {
676
+ width: 80%;
677
+ flex-basis: 80%;
678
+ }
679
+ }
680
+
681
+ &-90 {
682
+ @include media-lg {
683
+ width: 90%;
684
+ flex-basis: 90%;
685
+ }
686
+ }
687
+
688
+ &-100 {
689
+ @include media-lg {
690
+ width: 100%;
691
+ flex-basis: 100%;
692
+ }
693
+ }
694
+ }
695
+
696
+ &--xl {
697
+ &-10 {
698
+ @include media-xl {
699
+ width: 10%;
700
+ flex-basis: 10%;
701
+ }
702
+ }
703
+
704
+ &-20 {
705
+ @include media-xl {
706
+ width: 20%;
707
+ flex-basis: 20%;
708
+ }
709
+ }
710
+
711
+ &-25 {
712
+ @include media-xl {
713
+ width: 25%;
714
+ flex-basis: 25%;
715
+ }
716
+ }
717
+
718
+ &-30 {
719
+ @include media-xl {
720
+ width: 30%;
721
+ flex-basis: 30%;
722
+ }
723
+ }
724
+
725
+ &-33 {
726
+ @include media-xl {
727
+ width: 33.33%;
728
+ flex-basis: 33.33%;
729
+ }
730
+ }
731
+
732
+ &-40 {
733
+ @include media-xl {
734
+ width: 40%;
735
+ flex-basis: 40%;
736
+ }
737
+ }
738
+
739
+ &-50 {
740
+ @include media-xl {
741
+ width: 50%;
742
+ flex-basis: 50%;
743
+ }
744
+ }
745
+
746
+ &-60 {
747
+ @include media-xl {
748
+ width: 60%;
749
+ flex-basis: 60%;
750
+ }
751
+ }
752
+
753
+ &-66 {
754
+ @include media-xl {
755
+ width: 66.66%;
756
+ flex-basis: 66.66%;
757
+ }
758
+ }
759
+
760
+ &-70 {
761
+ @include media-xl {
762
+ width: 70%;
763
+ flex-basis: 70%;
764
+ }
765
+ }
766
+
767
+ &-75 {
768
+ @include media-xl {
769
+ width: 75%;
770
+ flex-basis: 75%;
771
+ }
772
+ }
773
+
774
+ &-80 {
775
+ @include media-xl {
776
+ width: 80%;
777
+ flex-basis: 80%;
778
+ }
779
+ }
780
+
781
+ &-90 {
782
+ @include media-xl {
783
+ width: 90%;
784
+ flex-basis: 90%;
785
+ }
786
+ }
787
+
788
+ &-100 {
789
+ @include media-xl {
790
+ width: 100%;
791
+ flex-basis: 100%;
792
+ }
793
+ }
794
+ }
795
+
796
+ &--xxl {
797
+ &-10 {
798
+ @include media-xxl {
799
+ width: 10%;
800
+ flex-basis: 10%;
801
+ }
802
+ }
803
+
804
+ &-20 {
805
+ @include media-xxl {
806
+ width: 20%;
807
+ flex-basis: 20%;
808
+ }
809
+ }
810
+
811
+ &-25 {
812
+ @include media-xxl {
813
+ width: 25%;
814
+ flex-basis: 25%;
815
+ }
816
+ }
817
+
818
+ &-30 {
819
+ @include media-xxl {
820
+ width: 30%;
821
+ flex-basis: 30%;
822
+ }
823
+ }
824
+
825
+ &-33 {
826
+ @include media-xxl {
827
+ width: 33.33%;
828
+ flex-basis: 33.33%;
829
+ }
830
+ }
831
+
832
+ &-40 {
833
+ @include media-xxl {
834
+ width: 40%;
835
+ flex-basis: 40%;
836
+ }
837
+ }
838
+
839
+ &-50 {
840
+ @include media-xxl {
841
+ width: 50%;
842
+ flex-basis: 50%;
843
+ }
844
+ }
845
+
846
+ &-60 {
847
+ @include media-xxl {
848
+ width: 60%;
849
+ flex-basis: 60%;
850
+ }
851
+ }
852
+
853
+ &-66 {
854
+ @include media-xxl {
855
+ width: 66.66%;
856
+ flex-basis: 66.66%;
857
+ }
858
+ }
859
+
860
+ &-70 {
861
+ @include media-xxl {
862
+ width: 70%;
863
+ flex-basis: 70%;
864
+ }
865
+ }
866
+
867
+ &-75 {
868
+ @include media-xxl {
869
+ width: 75%;
870
+ flex-basis: 75%;
871
+ }
872
+ }
873
+
874
+ &-80 {
875
+ @include media-xxl {
876
+ width: 80%;
877
+ flex-basis: 80%;
878
+ }
879
+ }
880
+
881
+ &-90 {
882
+ @include media-xxl {
883
+ width: 90%;
884
+ flex-basis: 90%;
885
+ }
886
+ }
887
+
888
+ &-100 {
889
+ @include media-xxl {
890
+ width: 100%;
891
+ flex-basis: 100%;
892
+ }
893
+ }
894
+ }
895
+
896
+ &--datepicker {
897
+ flex-direction: row;
898
+ }
899
+
900
+ &--success-message {
901
+ max-width: var(--tide-booking-container-article);
902
+ margin-right: auto;
903
+ margin-left: auto;
904
+ }
905
+
906
+ &--inline {
907
+ width: auto;
908
+ flex-grow: 0;
909
+ white-space: nowrap;
910
+ }
911
+ }
912
+
913
+ & + .form__row {
914
+ margin-top: 15px;
915
+ }
916
+
917
+ &--actions {
918
+ .form__group {
919
+ flex-flow: row nowrap;
920
+ align-items: flex-end;
921
+ justify-content: flex-end;
922
+ }
923
+ }
924
+
925
+ &--additional-actions {
926
+ .form__group {
927
+ @include row--sm;
928
+ @include flex--centerXY;
929
+ }
930
+ }
931
+
932
+ &--choose-office {
933
+ display: flex;
934
+ }
935
+
936
+ &--disclaimer {
937
+ width: 100%;
938
+ }
939
+
940
+ &--validation {
941
+ margin-bottom: 15px;
942
+ flex-direction: column;
943
+ color: var(--tide-booking-invalid-dark);
944
+
945
+ p {
946
+ opacity: 1;
947
+ }
948
+
949
+ ul {
950
+ margin-inline-start: 30px;
951
+ margin-top: 10px;
952
+ }
953
+
954
+ .form {
955
+ &__group {
956
+ flex-basis: initial;
957
+ }
958
+ }
959
+ }
960
+
961
+ &--inline {
962
+ align-items: flex-end;
963
+
964
+ .form__group {
965
+ margin-bottom: 0;
966
+ }
967
+ }
968
+ }
969
+
970
+ &__group {
971
+ @extend %reset;
972
+ width: 100%;
973
+ display: flex;
974
+ flex-direction: column;
975
+ gap: 20px;
976
+
977
+ &-input {
978
+ position: relative;
979
+ width: 100%;
980
+ }
981
+
982
+ .checkbox {
983
+ & + .checkbox {
984
+ margin-top: 15px;
985
+ }
986
+ }
987
+
988
+ .radiobutton {
989
+ & + .radiobutton {
990
+ margin-top: 15px;
991
+ }
992
+ }
993
+
994
+ &--error {
995
+ .form {
996
+ &__label {
997
+ color: var(--tide-booking-invalid);
998
+ }
999
+
1000
+ &__input {
1001
+ border-color: var(--tide-booking-invalid-light);
1002
+ color: var(--tide-booking-invalid-dark);
1003
+ background: var(--tide-booking-invalid-light);
1004
+ }
1005
+ }
1006
+
1007
+ .radiobutton {
1008
+ &__label {
1009
+ color: var(--tide-booking-invalid-dark);
1010
+ }
1011
+
1012
+ &__input {
1013
+ border: 2px solid var(--tide-booking-invalid-dark);
1014
+ background: var(--tide-booking-invalid-light);
1015
+
1016
+ &:after {
1017
+ background: var(--tide-booking-invalid-dark);
1018
+ }
1019
+ }
1020
+ }
1021
+
1022
+ ::-webkit-input-placeholder {
1023
+ color: var(--tide-booking-invalid-dark);
1024
+ }
1025
+
1026
+ ::-moz-placeholder {
1027
+ color: var(--tide-booking-invalid-dark);
1028
+ }
1029
+
1030
+ :-ms-input-placeholder {
1031
+ color: var(--tide-booking-invalid-dark);
1032
+ }
1033
+
1034
+ :-moz-placeholder {
1035
+ color: var(--tide-booking-invalid-dark);
1036
+ }
1037
+ }
1038
+
1039
+ &--icon {
1040
+ &:focus,
1041
+ &:focus-within,
1042
+ &:active {
1043
+ .icon {
1044
+ svg {
1045
+ fill: var(--tide-booking-color-secondary);
1046
+ }
1047
+ }
1048
+ }
1049
+
1050
+ .form {
1051
+ &__label {
1052
+ position: absolute;
1053
+ top: 3px;
1054
+ left: 47.5px;
1055
+ font-size: 13px;
1056
+ pointer-events: none;
1057
+
1058
+ @include media-sm {
1059
+ left: 17.5px;
1060
+ }
1061
+
1062
+ @include media-xl {
1063
+ left: 47.5px;
1064
+ }
1065
+ }
1066
+
1067
+ &__input {
1068
+ height: 45px;
1069
+ max-height: 45px;
1070
+ padding-left: 20px;
1071
+ padding-top: 16px;
1072
+ font-size: 14.5px;
1073
+ background-color: white;
1074
+
1075
+ @include media-sm {
1076
+ padding-left: 20px;
1077
+ }
1078
+
1079
+ @include media-md {
1080
+ padding-left: 20px;
1081
+ }
1082
+
1083
+ @include media-xl {
1084
+ font-size: 15.5px;
1085
+ }
1086
+ }
1087
+
1088
+ .typeahead {
1089
+ &__trigger {
1090
+ height: 45px;
1091
+ max-height: 45px;
1092
+ padding-left: 40px;
1093
+ font-size: 16px;
1094
+ background-color: white;
1095
+
1096
+ @include media-sm {
1097
+ padding-left: 10px;
1098
+ }
1099
+
1100
+ @include media-md {
1101
+ padding-left: 40px;
1102
+ }
1103
+ }
1104
+ }
1105
+ }
1106
+ }
1107
+
1108
+ &--datepicker {
1109
+ .form__group-input {
1110
+ width: 50%;
1111
+ }
1112
+
1113
+ .form__group-input:nth-child(1) .form__input {
1114
+ border-radius: 5px 0 0 5px;
1115
+ }
1116
+
1117
+ .form__group-input:nth-child(2) .form__input {
1118
+ border-radius: 0 5px 5px 0;
1119
+ }
1120
+ }
1121
+
1122
+ &--submit {
1123
+ .cta {
1124
+ width: 100%;
1125
+ justify-content: center;
1126
+ }
1127
+ }
1128
+
1129
+ &--success-message {
1130
+ &:before {
1131
+ content: "";
1132
+ width: 15px * 3.33;
1133
+ height: 15px * 1.33;
1134
+ border-left: 2.5px solid black;
1135
+ border-bottom: 2.5px solid black;
1136
+ margin: 0 auto 15px * 3 auto;
1137
+ transform: rotate(-45deg);
1138
+ }
1139
+ }
1140
+ }
1141
+
1142
+ &__error-heading {
1143
+ font-family: var(--tide-booking-font-heading);
1144
+ }
1145
+
1146
+ &__room {
1147
+ display: grid;
1148
+ grid-template-rows: repeat(1, 1fr);
1149
+ gap: 15px;
1150
+ padding: 15px;
1151
+ background: var(--tide-booking-room-options-card-background);
1152
+ outline: var(--tide-booking-room-options-card-border);
1153
+ border-radius: var(--tide-booking-room-options-card-border-radius);
1154
+
1155
+ @include media-md {
1156
+ gap: 25px;
1157
+ grid-template-columns: 75% 20%;
1158
+ justify-content: space-between;
1159
+ }
1160
+
1161
+ &__container {
1162
+ margin-top: -25px;
1163
+ }
1164
+
1165
+ &__header {
1166
+ @include h3;
1167
+ color: #666;
1168
+ }
1169
+
1170
+ &__wrapper {
1171
+ display: grid;
1172
+ grid-template-columns: repeat(1, 1fr);
1173
+ grid-template-rows: repeat(1, 1fr);
1174
+ gap: 15px;
1175
+
1176
+ @include media-sm {
1177
+ gap: 25px;
1178
+ grid-template-columns: 230px 1fr;
1179
+ }
1180
+ }
1181
+
1182
+ &__image {
1183
+ width: 100%;
1184
+ height: 230px;
1185
+ object-fit: cover;
1186
+ overflow: hidden;
1187
+ border-radius: var(--tide-booking-room-options-image-border-radius);
1188
+ position: relative;
1189
+ }
1190
+
1191
+ &__img {
1192
+ width: 100%;
1193
+ height: 100%;
1194
+ object-fit: cover;
1195
+ object-position: center;
1196
+ }
1197
+
1198
+ &__favorite {
1199
+ position: absolute;
1200
+ top: 10px;
1201
+ left: 10px;
1202
+ z-index: 1;
1203
+ display: flex;
1204
+ align-items: center;
1205
+ justify-content: center;
1206
+ background-color: white;
1207
+ width: 40px;
1208
+ height: 40px;
1209
+ border-radius: 50%;
1210
+ color: #26b489;
1211
+ font-size: 20px;
1212
+ }
1213
+
1214
+ &__footer {
1215
+ display: flex;
1216
+ flex-direction: column;
1217
+ justify-content: space-between;
1218
+ align-items: flex-end;
1219
+ gap: 10px;
1220
+
1221
+ @include media-xs {
1222
+ flex-direction: row;
1223
+ }
1224
+
1225
+ @include media-md {
1226
+ display: flex;
1227
+ flex-direction: column;
1228
+ align-items: flex-end;
1229
+ }
1230
+
1231
+ p {
1232
+ margin-bottom: 0;
1233
+ font-size: 14px;
1234
+ padding-bottom: 2px;
1235
+
1236
+ @include media-md {
1237
+ font-size: 16px;
1238
+ text-align: right;
1239
+ }
1240
+ }
1241
+
1242
+ &__top {
1243
+ display: flex;
1244
+ flex-direction: column;
1245
+ align-items: flex-start;
1246
+ gap: 5px;
1247
+ width: 100%;
1248
+
1249
+ @include media-md {
1250
+ align-items: flex-end;
1251
+ }
1252
+ }
1253
+
1254
+ &__bottom {
1255
+ display: flex;
1256
+ flex-direction: column;
1257
+ align-items: flex-end;
1258
+ gap: 5px;
1259
+ width: 100%;
1260
+ max-width: 230px;
1261
+ }
1262
+
1263
+ .cta {
1264
+ width: 100%;
1265
+ max-width: 230px;
1266
+ justify-content: center;
1267
+ }
1268
+ }
1269
+
1270
+ &__title {
1271
+ font-family: var(--tide-booking-room-options-title-font-family);
1272
+ font-weight: var(--tide-booking-room-options-title-font-weight);
1273
+ color: var(--tide-booking-room-options-title-color);
1274
+ margin-bottom: 5px;
1275
+ }
1276
+
1277
+ &__text {
1278
+ font-size: 14px;
1279
+ line-height: 18px;
1280
+ overflow: hidden;
1281
+ display: -webkit-box;
1282
+ -webkit-line-clamp: 3;
1283
+ -webkit-box-orient: vertical;
1284
+ }
1285
+
1286
+ &__days {
1287
+ font-size: 14px;
1288
+ @include media-md {
1289
+ font-size: 16px;
1290
+ text-align: right;
1291
+ }
1292
+ }
1293
+
1294
+ &__usps {
1295
+ display: flex;
1296
+ flex-direction: row;
1297
+ justify-content: flex-start;
1298
+ flex-wrap: wrap;
1299
+ gap: 10px;
1300
+ row-gap: 0rem;
1301
+ margin: 0;
1302
+ }
1303
+
1304
+ &__select {
1305
+ display: grid;
1306
+ grid-template-rows: repeat(1, 1fr);
1307
+ gap: 10px;
1308
+ margin-top: 15px;
1309
+
1310
+ @include media-md {
1311
+ grid-template-columns: repeat(2, 1fr);
1312
+ gap: 15px;
1313
+ }
1314
+ }
1315
+
1316
+ &__price {
1317
+ font-size: 16px;
1318
+ font-weight: 400;
1319
+ margin-bottom: 5px;
1320
+
1321
+ span {
1322
+ font-size: 20px;
1323
+ font-weight: 400;
1324
+ }
1325
+
1326
+ &--increase {
1327
+ color: var(--tide-booking-price-increase);
1328
+ }
1329
+
1330
+ &--decrease {
1331
+ color: var(--tide-booking-price-decrease);
1332
+ }
1333
+ }
1334
+
1335
+ &__alternatives {
1336
+ &__header {
1337
+ margin: 30px 0rem 10px 0rem;
1338
+ @include h6;
1339
+ color: var(--tide-booking-room-options-alternative-header-color);
1340
+ font-size: 16px;
1341
+
1342
+ @include media-xl {
1343
+ font-size: 18px;
1344
+ }
1345
+ }
1346
+
1347
+ &__btn {
1348
+ margin-bottom: 5px;
1349
+ outline: none;
1350
+ border: none;
1351
+ background: transparent;
1352
+ text-align: right;
1353
+ color: var(--tide-booking-room-options-alternative-btn-color);
1354
+ text-decoration: var(
1355
+ --tide-booking-room-options-alternative-btn-text-decoration
1356
+ );
1357
+ transition: color 0.3s ease, text-decoration 0.3s ease;
1358
+
1359
+ &:hover {
1360
+ text-decoration: var(
1361
+ --tide-booking-room-options-alternative-btn-text-decoration-hover
1362
+ );
1363
+ color: var(--tide-booking-room-options-alternative-btn-color-hover);
1364
+ }
1365
+ }
1366
+
1367
+ &__content {
1368
+ display: grid;
1369
+ grid-template-columns: repeat(1, 1fr);
1370
+ grid-template-rows: repeat(1, 1fr);
1371
+ gap: 15px;
1372
+
1373
+ @include media-sm {
1374
+ grid-template-columns: repeat(2, 1fr);
1375
+ }
1376
+
1377
+ @include media-xxl {
1378
+ grid-template-columns: repeat(3, 1fr);
1379
+ }
1380
+
1381
+ .form__room {
1382
+ @include media-md {
1383
+ display: grid;
1384
+ grid-template-rows: repeat(1, 1fr);
1385
+ grid-template-columns: 1fr;
1386
+ }
1387
+
1388
+ &__wrapper {
1389
+ @include media-sm {
1390
+ display: grid;
1391
+ grid-template-columns: repeat(1, 1fr);
1392
+ grid-template-rows: repeat(1, 1fr);
1393
+ gap: 15px;
1394
+ }
1395
+ }
1396
+
1397
+ &__footer {
1398
+ @include media-md {
1399
+ flex-direction: row;
1400
+ }
1401
+ &__top {
1402
+ @include media-md {
1403
+ align-items: flex-start;
1404
+ }
1405
+ }
1406
+ }
1407
+
1408
+ &__dates {
1409
+ @include media-md {
1410
+ text-align: left;
1411
+ font-size: 14px;
1412
+ }
1413
+ }
1414
+
1415
+ &__days {
1416
+ @include media-md {
1417
+ text-align: left;
1418
+ font-size: 14px;
1419
+ }
1420
+ }
1421
+ }
1422
+ }
1423
+ }
1424
+ }
1425
+ }
1426
+
1427
+ .form__twocolumn-column + .form__twocolumn-column {
1428
+ margin-top: 15px;
1429
+
1430
+ @include media-xl {
1431
+ margin-top: 0;
1432
+ padding-left: 9px * 2;
1433
+ padding-right: 0;
1434
+ }
1435
+ }
1436
+
1437
+ .booking .form {
1438
+ max-width: 100%;
1439
+
1440
+ &__region {
1441
+ // background-color: $white;
1442
+
1443
+ .booking-card__body {
1444
+ background-color: transparent;
1445
+ }
1446
+ }
1447
+ }
1448
+
1449
+ .form__travelers {
1450
+ &__wrapper {
1451
+ background: var(--tide-booking-form-card-background);
1452
+ outline: var(--tide-booking-form-card-border);
1453
+ border-radius: var(--tide-booking-form-card-border-radius);
1454
+ margin-top: -25px;
1455
+ }
1456
+
1457
+ .form__region {
1458
+ padding: 15px;
1459
+
1460
+ @include media-sm {
1461
+ padding: 15px;
1462
+ }
1463
+
1464
+ @include media-lg {
1465
+ padding: 15px;
1466
+ padding-bottom: 20px;
1467
+ }
1468
+
1469
+ &-heading {
1470
+ margin-bottom: 0px;
1471
+ }
1472
+
1473
+ &-header {
1474
+ display: flex;
1475
+ flex-flow: row wrap;
1476
+ align-items: center;
1477
+ margin: 15px 0px;
1478
+ margin-top: 5px;
1479
+ }
1480
+
1481
+ &-label {
1482
+ margin-top: 5px;
1483
+ margin-bottom: 0;
1484
+ font-size: 16px;
1485
+ color: var(--tide-booking-form-card-label-color);
1486
+
1487
+ @include media-xs {
1488
+ margin-top: 0px;
1489
+ }
1490
+ }
1491
+ }
1492
+
1493
+ .form__group {
1494
+ gap: 5px;
1495
+ margin-bottom: 0px;
1496
+ min-height: 85px;
1497
+
1498
+ .form__label {
1499
+ color: var(--tide-booking-form-label-color);
1500
+ font-family: var(--tide-booking-form-label-font-family);
1501
+ font-weight: var(--tide-booking-form-label-font-weight);
1502
+ }
1503
+
1504
+ &--error {
1505
+ .form__label {
1506
+ color: var(--tide-booking-invalid);
1507
+ }
1508
+ }
1509
+
1510
+ .form__input {
1511
+ min-height: var(--tide-booking-form-input-height);
1512
+
1513
+ &:focus,
1514
+ &:active {
1515
+ border: var(--tide-booking-form-input-border-focus);
1516
+ }
1517
+ }
1518
+ }
1519
+ }
1520
+
1521
+ .booking .form__region {
1522
+ &--errors {
1523
+ background-color: transparent;
1524
+ padding-left: 15px !important;
1525
+ }
1526
+ }
1527
+
1528
+ .booking .form__region + .form__region {
1529
+ margin-top: 0;
1530
+ border-top: var(--tide-booking-form-group-border);
1531
+ }
1532
+
1533
+ .booking__panel .typeahead .form__input {
1534
+ outline: var(--tide-booking-form-typeahead-agent-border);
1535
+ background: var(--tide-booking-form-typeahead-agent-background);
1536
+ border-radius: var(--tide-booking-form-typeahead-agent-border-radius);
1537
+ color: var(--tide-booking-form-typeahead-agent-color);
1538
+ }
1539
+
1540
+ .booking__panel-frame--transparent .form__region {
1541
+ // padding-right: 15px;
1542
+ // padding-left: 15px;
1543
+ }
1544
+
1545
+ .form__booking--summary {
1546
+ margin-top: -25px;
1547
+ background: var(--tide-booking-form-summary-background);
1548
+ border-radius: var(--tide-booking-form-summary-border-radius);
1549
+ outline: var(--tide-booking-form-summary-border);
1550
+
1551
+ .form__region {
1552
+ padding: 22.5px 15px;
1553
+ }
1554
+
1555
+ .form__row + .form__row {
1556
+ margin-top: 0px;
1557
+ }
1558
+
1559
+ li {
1560
+ font-size: 16px;
1561
+ line-height: 1.6;
1562
+ p {
1563
+ font-size: 16px;
1564
+ line-height: 1.6;
1565
+ }
1566
+ }
1567
+ }
1568
+
1569
+ .form__booking--message {
1570
+ margin-top: -25px;
1571
+ background: var(--tide-booking-confirmation-background);
1572
+ border-radius: var(--tide-booking-confirmation-border-radius);
1573
+ outline: var(--tide-booking-confirmation-border);
1574
+ padding: 0px 15px;
1575
+ }
1576
+
1577
+ .form__booking--flight {
1578
+ .booking-card__group {
1579
+ outline: none;
1580
+ border-radius: 0px;
1581
+ background: transparent;
1582
+ }
1583
+ }