@qite/tide-components 1.0.10 → 1.0.12

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 (81) hide show
  1. package/build/build-cjs/index.js +753 -480
  2. package/build/build-cjs/src/booking-wizard/features/booking/selectors.d.ts +1 -0
  3. package/build/build-cjs/src/booking-wizard/features/travelers-form/validate-form.d.ts +2 -1
  4. package/build/build-cjs/src/booking-wizard/types.d.ts +8 -1
  5. package/build/build-cjs/src/shared/booking/travelers-form.d.ts +8 -3
  6. package/build/build-esm/index.js +755 -482
  7. package/build/build-esm/src/booking-wizard/features/booking/selectors.d.ts +1 -0
  8. package/build/build-esm/src/booking-wizard/features/travelers-form/validate-form.d.ts +2 -1
  9. package/build/build-esm/src/booking-wizard/types.d.ts +8 -1
  10. package/build/build-esm/src/shared/booking/travelers-form.d.ts +8 -3
  11. package/package.json +2 -2
  12. package/styles/abstracts/_mixins.scss +74 -74
  13. package/styles/abstracts/_variables.scss +57 -57
  14. package/styles/base/_fonts.scss +2 -2
  15. package/styles/base/_normalize.scss +227 -227
  16. package/styles/base/_typography.scss +35 -35
  17. package/styles/booking-joker-variables.scss +596 -596
  18. package/styles/booking-product-variables.scss +330 -330
  19. package/styles/booking-product.scss +438 -438
  20. package/styles/booking-qsm-variables.scss +501 -501
  21. package/styles/booking-qsm.scss +52 -52
  22. package/styles/booking-search-results-variables.scss +734 -734
  23. package/styles/booking-search-results.scss +53 -53
  24. package/styles/booking-wizard-variables.scss +603 -603
  25. package/styles/booking-wizard.scss +61 -61
  26. package/styles/components/_accordion.scss +67 -67
  27. package/styles/components/_animations.scss +39 -39
  28. package/styles/components/_base.scss +107 -107
  29. package/styles/components/_booking.scss +906 -906
  30. package/styles/components/_breadcrumb.scss +92 -92
  31. package/styles/components/_button.scss +238 -238
  32. package/styles/components/_checkbox.scss +230 -230
  33. package/styles/components/_contact.scss +255 -255
  34. package/styles/components/_content.scss +336 -336
  35. package/styles/components/_cta.scss +238 -238
  36. package/styles/components/_date-list.scss +41 -41
  37. package/styles/components/_date-range-picker.scss +223 -223
  38. package/styles/components/_decrement-increment.scss +35 -35
  39. package/styles/components/_dropdown.scss +77 -77
  40. package/styles/components/_error.scss +50 -50
  41. package/styles/components/_faq.scss +30 -30
  42. package/styles/components/_flight-option.scss +1432 -1432
  43. package/styles/components/_flyin.scss +830 -830
  44. package/styles/components/_footer.scss +135 -135
  45. package/styles/components/_form.scss +1704 -1693
  46. package/styles/components/_gallery.scss +317 -317
  47. package/styles/components/_header.scss +113 -113
  48. package/styles/components/_image-with-text.scss +206 -206
  49. package/styles/components/_img-slider.scss +175 -175
  50. package/styles/components/_info-message.scss +75 -75
  51. package/styles/components/_input.scss +35 -35
  52. package/styles/components/_list.scss +185 -185
  53. package/styles/components/_loader.scss +152 -152
  54. package/styles/components/_login.scss +140 -140
  55. package/styles/components/_map-view.scss +1100 -1100
  56. package/styles/components/_mixins.scss +579 -579
  57. package/styles/components/_navbar.scss +765 -765
  58. package/styles/components/_passenger-picker.scss +306 -306
  59. package/styles/components/_phone-input.scss +8 -8
  60. package/styles/components/_placeholders.scss +165 -165
  61. package/styles/components/_pricing-summary.scss +163 -163
  62. package/styles/components/_qsm.scss +17 -17
  63. package/styles/components/_radiobutton.scss +170 -170
  64. package/styles/components/_search.scss +2197 -2197
  65. package/styles/components/_select-wrapper.scss +81 -81
  66. package/styles/components/_slider.scss +128 -128
  67. package/styles/components/_spinner.scss +29 -29
  68. package/styles/components/_step-indicators.scss +187 -187
  69. package/styles/components/_table.scss +81 -81
  70. package/styles/components/_tide-form.scss +578 -578
  71. package/styles/components/_tree.scss +648 -648
  72. package/styles/components/_typeahead.scss +275 -275
  73. package/styles/components/_variables.scss +89 -89
  74. package/styles/content-blocks-variables.scss +543 -543
  75. package/styles/content-blocks.scss +66 -66
  76. package/styles/font.scss +2 -2
  77. package/styles/qsm/_calendar.scss +274 -274
  78. package/styles/qsm/_qsm.scss +1097 -1097
  79. package/styles/search.scss +1200 -1200
  80. package/styles/tide-form-variables.scss +275 -275
  81. package/styles/tide-form.scss +56 -56
@@ -1,2197 +1,2197 @@
1
- @use '../components/mixins' as mixins;
2
-
3
- * {
4
- box-sizing: border-box;
5
- }
6
-
7
- .search {
8
- background: var(--tide-booking-search-results-background);
9
-
10
- &__bg {
11
- background: var(--tide-booking-search-results-background);
12
- }
13
-
14
- &__container {
15
- position: relative;
16
- display: flex;
17
- @include mixins.container-wide();
18
- padding-top: 30px;
19
- padding-bottom: 60px;
20
-
21
- @include mixins.media-sm {
22
- padding-top: 30px;
23
- padding-bottom: 60px;
24
- }
25
-
26
- @include mixins.media-md {
27
- gap: 30px;
28
- padding-top: 30px;
29
- padding-bottom: 60px;
30
- }
31
-
32
- @include mixins.media-lg {
33
- gap: 60px;
34
- padding-top: 60px;
35
- }
36
- }
37
-
38
- &__filters {
39
- position: fixed;
40
- top: 0px;
41
- left: 0px;
42
- display: block;
43
- max-width: 360px;
44
- width: 100%;
45
- background-color: var(--tide-booking-search-filter-background);
46
- border: var(--tide-booking-search-filter-border);
47
- height: 100%;
48
- margin-bottom: 20px;
49
- margin-left: 0;
50
- grid-column: span 12;
51
- transform: translateX(-100vw);
52
- overflow: hidden;
53
- transition: transform 0.35s ease;
54
-
55
- @include mixins.media-md {
56
- grid-column: auto;
57
- border-radius: var(--tide-booking-search-filter-border-radius);
58
- }
59
-
60
- @include mixins.media-lg {
61
- position: relative;
62
- display: block;
63
- max-width: 360px;
64
- width: 360px;
65
- height: auto;
66
- margin: 0;
67
- border: none;
68
- box-shadow: none;
69
- transform: translateX(0);
70
- pointer-events: auto;
71
- padding-bottom: 20px;
72
- }
73
-
74
- // ::after {
75
- // content: '';
76
- // display: block;
77
- // position: fixed;
78
- // top: 0;
79
- // left: 0;
80
- // width: 100vw;
81
- // height: 100vh;
82
- // background: rgba(0, 0, 0, 0.5);
83
- // z-index: 100009;
84
- // }
85
-
86
- &__group-container {
87
- position: relative;
88
- display: flex;
89
- flex-direction: column;
90
- height: calc(100% - 47px);
91
- overflow-y: auto;
92
- overflow-x: hidden;
93
- @extend %scrollbar-thin;
94
-
95
- @include mixins.media-lg {
96
- height: auto;
97
- overflow: visible;
98
- }
99
-
100
- .search__filter-group:last-child {
101
- margin-bottom: 20px;
102
- }
103
- }
104
-
105
- &__actions {
106
- position: sticky;
107
- bottom: 0;
108
- left: 0;
109
- display: flex;
110
- justify-content: space-between;
111
- align-items: center;
112
- gap: 15px;
113
- padding: 15px 20px;
114
- background-color: white;
115
- margin-top: auto;
116
-
117
- @include mixins.media-lg {
118
- display: none;
119
- }
120
- }
121
-
122
- &--background {
123
- background-color: rgba(0, 0, 0, 0.7);
124
- height: 100%;
125
- width: 100%;
126
- position: fixed;
127
-
128
- @include mixins.media-lg {
129
- display: none;
130
- position: relative;
131
- }
132
- }
133
-
134
- &--close {
135
- position: fixed;
136
- z-index: 100020;
137
- top: 10px;
138
- right: 15px;
139
- display: none;
140
- background: none;
141
- border: none;
142
- color: var(--tide-booking-search-filter-price-amount-color);
143
- cursor: pointer;
144
- }
145
-
146
- &--modal {
147
- display: block;
148
- position: fixed;
149
- top: 0;
150
- left: 0;
151
- width: 100vw;
152
- height: 100dvh;
153
- z-index: 100009;
154
-
155
- // Initial hidden state
156
- opacity: 0;
157
- pointer-events: none;
158
- transition: left 0.35s ease, opacity 0.25s ease;
159
-
160
- @include mixins.media-lg {
161
- position: relative;
162
- left: 0px;
163
- width: auto;
164
- height: auto;
165
- background: transparent;
166
- opacity: 1;
167
- z-index: 1;
168
- }
169
-
170
- // When modal is open
171
- &.is-open {
172
- left: 0px;
173
- opacity: 1;
174
- pointer-events: auto;
175
-
176
- .search__filters--close {
177
- display: block;
178
- }
179
-
180
- .search__filters {
181
- position: relative;
182
- display: block;
183
- max-width: 100%;
184
- width: 100%;
185
- height: 100%;
186
- margin: 0;
187
- border: none;
188
- box-shadow: none;
189
- border-top-left-radius: 0px;
190
- border-bottom-left-radius: 0px;
191
- transform: translateX(0);
192
- pointer-events: auto;
193
- overflow-y: auto;
194
- @extend %scrollbar-thin;
195
- }
196
- }
197
- }
198
- }
199
-
200
- &__filter {
201
- &-group {
202
- padding: 0 20px;
203
- }
204
-
205
- &-row {
206
- display: flex;
207
- align-items: center;
208
- justify-content: space-between;
209
- margin-top: 15px;
210
-
211
- &-flex-title {
212
- display: flex;
213
- align-items: center;
214
- gap: 15px;
215
- }
216
-
217
- &-icon {
218
- fill: hotpink;
219
- }
220
-
221
- &--underline {
222
- border-bottom: var(--tide-booking-search-filter-group-title-text-border);
223
- margin-bottom: 8px;
224
- cursor: pointer;
225
- }
226
-
227
- &--checkmark {
228
- margin-top: 5px;
229
-
230
- @include media-lg {
231
- margin-top: 15px;
232
- }
233
- }
234
- }
235
-
236
- &__header {
237
- padding: 0 20px;
238
- margin-bottom: 15px;
239
- margin-top: 0;
240
- padding-top: 15px;
241
- padding-right: 60px;
242
-
243
- @include mixins.media-lg {
244
- padding-right: 15px;
245
- }
246
- }
247
-
248
- &-link {
249
- color: orangered;
250
- transition: all 0.3s;
251
- cursor: pointer;
252
- text-decoration: underline;
253
- margin-top: 136px;
254
-
255
- &:hover {
256
- color: green;
257
- }
258
- }
259
-
260
- &-chevron-icon {
261
- transition: transform 0.3s ease;
262
- transform: rotate(180deg);
263
- margin-top: 5px;
264
-
265
- &--flipped {
266
- transform: rotate(0);
267
- }
268
- }
269
-
270
- &-small-title {
271
- font-size: 14px;
272
- font-weight: 400;
273
- margin: 0 auto;
274
- }
275
-
276
- &-medium-title {
277
- font-size: 16px;
278
- font-weight: 700;
279
- margin: 5px 0;
280
-
281
- &-wrapper {
282
- margin-top: 12.5px;
283
- margin-bottom: 2.5px;
284
- }
285
- }
286
-
287
- &-large-title {
288
- font-size: 18px;
289
- font-weight: var(--tide-booking-search-filter-group-title-text-font-weight);
290
- margin: 5px 0;
291
- }
292
-
293
- &-reset {
294
- color: var(--tide-booking-search-reset-color);
295
- font-size: 15px;
296
- font-weight: var(--tide-booking-search-reset-font-weight);
297
- text-decoration: var(--tide-booking-search-reset-text-decoration);
298
- cursor: pointer;
299
- }
300
-
301
- // &-facet {
302
- // color: variables.$text-color;
303
- // }
304
-
305
- // &-price {
306
- // font-size: variables.$font-size-body--small;
307
- // color: variables.$secondary-color;
308
- // margin-bottom: 0;
309
- // margin-top: 0;
310
- // min-width: 88px;
311
- // text-align: end;
312
- // }
313
-
314
- // &-button {
315
- // width: 100%;
316
- // padding: 1rem 0;
317
- // background: transparent;
318
- // border: 1px solid variables.$secondary-color;
319
- // color: variables.$secondary-color;
320
- // border-radius: 3px;
321
- // margin-top: 2rem;
322
- // transition: all 0.2s ease-in-out;
323
- // cursor: pointer;
324
-
325
- // &:hover {
326
- // background: variables.$secondary-color;
327
- // color: variables.$white;
328
- // }
329
- // }
330
-
331
- &__image {
332
- position: absolute;
333
- top: 50%;
334
- left: 50%;
335
- width: 100%;
336
- height: 100%;
337
- transform: translate(-50%, -50%);
338
- z-index: -1;
339
-
340
- &__wrapper {
341
- position: relative;
342
- width: 100%;
343
- height: 200px;
344
- max-height: 200px;
345
- padding: 20px;
346
- overflow: hidden;
347
- border-radius: var(--tide-booking-search-filter-img-border-radius);
348
- display: flex;
349
- flex-direction: column;
350
- align-items: center;
351
- justify-content: flex-end;
352
- }
353
-
354
- &__text {
355
- color: var(--tide-booking-search-filter-img-text-color);
356
- font-weight: var(--tide-booking-search-filter-img-text-font-weight);
357
- font-family: var(--tide-booking-search-filter-img-text-font-family);
358
- }
359
-
360
- &__title {
361
- font-size: 20px;
362
- font-weight: var(--tide-booking-search-filter-img-title-font-weight);
363
- margin: 5px 0;
364
- color: var(--tide-booking-search-filter-img-title-color);
365
- text-align: center;
366
- font-family: var(--tide-booking-search-filter-img-title-font-family);
367
- }
368
- }
369
-
370
- &__prices {
371
- display: flex;
372
- flex-direction: column;
373
- justify-content: center;
374
- gap: 10px;
375
-
376
- height: 173.5px;
377
- padding: 0 20px;
378
-
379
- &__wrapper {
380
- display: flex;
381
- flex-direction: column;
382
- align-items: center;
383
-
384
- p {
385
- margin: 0px;
386
- line-height: 1.5;
387
- }
388
- }
389
-
390
- &--amount {
391
- font-family: var(--tide-booking-search-filter-price-amount-font-family);
392
- font-size: 30px;
393
- font-weight: var(--tide-booking-search-filter-price-amount-font-weight);
394
- margin: 0;
395
- color: var(--tide-booking-search-filter-price-amount-color);
396
-
397
- p {
398
- font-family: var(--tide-booking-search-filter-price-text-font-family);
399
- font-weight: var(--tide-booking-search-filter-price-text-font-weight);
400
- text-align: center;
401
- color: var(--tide-booking-search-filter-price-text-color);
402
- margin: 0px;
403
-
404
- strong {
405
- font-weight: var(--tide-booking-search-filter-price-total-font-weight);
406
- color: var(--tide-booking-search-filter-price-total-color);
407
- }
408
- }
409
- }
410
- }
411
-
412
- &__itinerary {
413
- margin-top: 30px;
414
- padding: 0 20px;
415
- padding-bottom: 30px;
416
- display: flex;
417
- flex-direction: column;
418
- gap: 15px;
419
-
420
- p {
421
- margin: 0px;
422
- font-family: var(--tide-booking-search-itinerary-filter-title-font-family);
423
- font-weight: var(--tide-booking-search-itinerary-filter-title-font-weight);
424
- color: var(--tide-booking-search-itinerary-filter-title-color);
425
- }
426
-
427
- &__country {
428
- padding: 15px 20px;
429
- box-shadow: var(--tide-booking-search-itinerary-filter-country-box-shadow);
430
- display: flex;
431
- align-items: center;
432
- gap: 20px;
433
- border-radius: var(--tide-booking-search-itinerary-filter-country-border-radius);
434
- border: var(--tide-booking-search-itinerary-filter-country-border);
435
- background: var(--tide-booking-search-itinerary-filter-country-background);
436
-
437
- &-icon {
438
- display: flex;
439
- min-width: 30px;
440
- max-width: 30px;
441
- align-items: center;
442
- justify-content: center;
443
- color: var(--tide-booking-search-itinerary-filter-country-icon-color);
444
- }
445
-
446
- &-content {
447
- h4 {
448
- font-family: var(--tide-booking-search-itinerary-filter-country-title-font-family);
449
- margin-bottom: 3px;
450
- font-size: 20px;
451
- font-weight: var(--tide-booking-search-itinerary-filter-country-title-font-weight);
452
- color: var(--tide-booking-search-itinerary-filter-country-title-color);
453
- }
454
-
455
- p {
456
- margin: 0px;
457
- font-family: var(--tide-booking-search-itinerary-filter-country-text-font-family);
458
- font-weight: var(--tide-booking-search-itinerary-filter-country-text-font-weight);
459
- color: var(--tide-booking-search-itinerary-filter-country-text-color);
460
-
461
- strong {
462
- font-weight: var(--tide-booking-search-itinerary-filter-country-text-bold-font-weight);
463
- color: var(--tide-booking-search-itinerary-filter-country-text-bold-color);
464
- }
465
- }
466
- }
467
- }
468
-
469
- &__transport {
470
- position: relative;
471
- padding-left: 20px;
472
- background: var(--tide-booking-search-itinerary-filter-transport-background);
473
- border-radius: var(--tide-booking-search-itinerary-filter-transport-border-radius);
474
- border: var(--tide-booking-search-itinerary-filter-transport-border);
475
- box-shadow: var(--tide-booking-search-itinerary-filter-transport-box-shadow);
476
-
477
- &-timeline {
478
- height: 100%;
479
- text-align: center;
480
- content: ' ';
481
- z-index: 1;
482
- display: block;
483
- top: 0;
484
- left: 53px;
485
- position: absolute;
486
- width: 45px;
487
- min-width: 45px;
488
- max-width: 45px;
489
-
490
- &-line {
491
- width: 1px;
492
- height: 100%;
493
- margin: 0 auto;
494
- border-left: var(--tide-booking-search-itinerary-filter-transport-timeline);
495
- }
496
- }
497
-
498
- &-item {
499
- display: flex;
500
- align-items: center;
501
- gap: 15px;
502
- position: relative;
503
- z-index: 2;
504
- }
505
-
506
- &-date {
507
- min-width: 26px;
508
- max-width: 26px;
509
-
510
- p {
511
- margin: 0px;
512
- color: var(--tide-booking-search-itinerary-filter-transport-date-month-color);
513
- font-weight: var(--tide-booking-search-itinerary-filter-transport-date-month-font-weight);
514
- }
515
-
516
- &-date {
517
- font-size: 24px;
518
-
519
- strong {
520
- font-weight: var(--tide-booking-search-itinerary-filter-transport-date-day-font-weight);
521
- color: var(--tide-booking-search-itinerary-filter-transport-date-day-color);
522
- }
523
- }
524
- }
525
-
526
- &-badge {
527
- width: 30px;
528
- min-width: 30px;
529
- max-width: 30px;
530
- height: 30px;
531
- min-height: 30px;
532
- max-height: 30px;
533
- background-color: var(--tide-booking-search-itinerary-filter-transport-badge-icon-background-color);
534
- border-radius: 50%;
535
- display: flex;
536
- align-items: center;
537
- justify-content: center;
538
- color: var(--tide-booking-search-itinerary-filter-transport-badge-icon-color);
539
-
540
- &--default {
541
- background-color: var(--tide-booking-search-itinerary-filter-segment-badge-icon-background-color);
542
- color: var(--tide-booking-search-itinerary-filter-segment-badge-icon-color);
543
- }
544
-
545
- &--flight {
546
- background-color: var(--tide-booking-search-itinerary-service-flight-color);
547
- color: var(--tide-booking-white);
548
- }
549
-
550
- &--hotel {
551
- background-color: var(--tide-booking-search-itinerary-service-hotel-color);
552
- color: var(--tide-booking-white);
553
- }
554
-
555
- &--excursion {
556
- background-color: var(--tide-booking-search-itinerary-service-excursion-color);
557
- color: var(--tide-booking-white);
558
- }
559
-
560
- &--poi {
561
- background-color: var(--tide-booking-search-itinerary-service-poi-color);
562
- color: var(--tide-booking-white);
563
- }
564
-
565
- &--restaurant {
566
- background-color: var(--tide-booking-search-itinerary-service-restaurant-color);
567
- color: var(--tide-booking-white);
568
- }
569
- }
570
-
571
- &-details {
572
- display: flex;
573
- flex-direction: column;
574
- gap: 15px;
575
-
576
- h6 {
577
- margin: 0px;
578
- font-size: 18px;
579
- font-weight: var(--tide-booking-search-itinerary-filter-transport-title-font-weight);
580
- color: var(--tide-booking-search-itinerary-filter-transport-title-color);
581
- }
582
-
583
- p {
584
- margin: 0px;
585
- font-size: 14px;
586
- }
587
-
588
- &-plane {
589
- font-size: 14px;
590
- display: flex;
591
- align-items: center;
592
- gap: 3px;
593
-
594
- svg {
595
- fill: var(--tide-booking-search-itinerary-filter-transport-plane-icon-color);
596
- }
597
-
598
- span {
599
- display: flex;
600
- align-items: center;
601
- gap: 3px;
602
- }
603
-
604
- strong {
605
- font-weight: var(--tide-booking-search-itinerary-filter-transport-plane-font-weight);
606
- color: var(--tide-booking-search-itinerary-filter-transport-plane-color);
607
- }
608
- }
609
-
610
- &-time {
611
- span {
612
- display: flex;
613
- align-items: center;
614
- }
615
- }
616
- }
617
- }
618
-
619
- &__segments {
620
- position: relative;
621
- display: flex;
622
- flex-direction: column;
623
- gap: 0;
624
- gap: 15px;
625
- padding: 15px 20px;
626
- background: var(--tide-booking-search-itinerary-filter-segments-background);
627
- box-shadow: var(--tide-booking-search-itinerary-filter-segments-box-shadow);
628
- border-radius: var(--tide-booking-search-itinerary-filter-segments-border-radius);
629
- border: var(--tide-booking-search-itinerary-filter-segments-border);
630
-
631
- &__wrapper {
632
- position: relative;
633
- display: flex;
634
- flex-direction: column;
635
- gap: 30px;
636
- }
637
-
638
- &-timeline {
639
- height: 100%;
640
- text-align: center;
641
- content: ' ';
642
- z-index: 1;
643
- display: block;
644
- top: 0;
645
- left: 33px;
646
- position: absolute;
647
- width: 45px;
648
- min-width: 45px;
649
- max-width: 45px;
650
-
651
- &-line {
652
- width: 1px;
653
- height: 100%;
654
- margin: 0 auto;
655
- border-left: var(--tide-booking-search-itinerary-filter-segment-timeline);
656
- }
657
- }
658
- }
659
-
660
- &__segment {
661
- position: relative;
662
-
663
- &-item {
664
- display: flex;
665
- align-items: center;
666
- gap: 15px;
667
- position: relative;
668
- z-index: 2;
669
-
670
- &--start {
671
- align-items: flex-start;
672
- }
673
-
674
- &--editable {
675
- cursor: pointer;
676
-
677
- &:hover {
678
- background-color: rgba(0, 0, 0, 0.05);
679
- }
680
- }
681
- }
682
-
683
- &-badge {
684
- width: 30px;
685
- min-width: 30px;
686
- max-width: 30px;
687
- height: 30px;
688
- min-height: 30px;
689
- max-height: 30px;
690
- background: var(--tide-booking-search-itinerary-filter-segment-badge-icon-background-color);
691
- outline: 3px solid var(--tide-booking-search-itinerary-filter-segments-background);
692
- border-radius: 50%;
693
- display: flex;
694
- align-items: center;
695
- justify-content: center;
696
- color: var(--tide-booking-search-itinerary-filter-segment-badge-icon-color);
697
-
698
- &--secondary {
699
- background: var(--tide-booking-search-itinerary-filter-segment-badge--secondary-icon-background-color);
700
- color: var(--tide-booking-search-itinerary-filter-segment-badge--secondary-icon-color);
701
- }
702
-
703
- &--flight {
704
- background: var(--tide-booking-search-itinerary-service-flight-color);
705
- }
706
-
707
- &--hotel {
708
- background: var(--tide-booking-search-itinerary-service-hotel-color);
709
- }
710
-
711
- &--excursion {
712
- background: var(--tide-booking-search-itinerary-service-excursion-color);
713
- }
714
-
715
- &--poi {
716
- background: var(--tide-booking-search-itinerary-service-poi-color);
717
- }
718
-
719
- &--restaurant {
720
- background: var(--tide-booking-search-itinerary-service-restaurant-color);
721
- }
722
- }
723
-
724
- &-date {
725
- p {
726
- margin: 0px;
727
- color: var(--tide-booking-search-itinerary-filter-segment-date-month-color);
728
- font-weight: var(--tide-booking-search-itinerary-filter-segment-date-month-font-weight);
729
- }
730
-
731
- &-date {
732
- font-size: 24px;
733
-
734
- strong {
735
- font-weight: var(--tide-booking-search-itinerary-filter-segment-date-day-font-weight);
736
- color: var(--tide-booking-search-itinerary-filter-segment-date-day-color);
737
- }
738
- }
739
- }
740
-
741
- &-nights {
742
- display: flex;
743
- align-items: center;
744
- flex-flow: row nowrap;
745
- }
746
-
747
- &-nights,
748
- &-date {
749
- min-width: 26px;
750
- max-width: 26px;
751
-
752
- svg {
753
- min-width: 16px;
754
- min-height: 16px;
755
- }
756
- }
757
-
758
- &-details {
759
- display: flex;
760
- flex-direction: column;
761
- gap: 10px;
762
-
763
- h6 {
764
- margin: 0;
765
- font-size: 18px;
766
- font-weight: var(--tide-booking-search-itinerary-filter-segment-title-font-weight);
767
- color: var(--tide-booking-search-itinerary-filter-segment-title-color);
768
- }
769
-
770
- &__room {
771
- display: flex;
772
- align-items: center;
773
- gap: 5px;
774
- margin: 0px;
775
- line-height: 1.2;
776
- font-weight: var(--tide-booking-search-itinerary-filter-segment-text-font-weight);
777
- color: var(--tide-booking-search-itinerary-filter-segment-text-color);
778
-
779
- svg {
780
- flex: 12px 0 0;
781
- }
782
- }
783
-
784
- .rating {
785
- display: flex;
786
- align-items: center;
787
- gap: 3px;
788
-
789
- svg {
790
- fill: var(--tide-booking-search-hotel-card-starrating-color);
791
- }
792
- }
793
- }
794
- }
795
- }
796
- }
797
-
798
- &__results {
799
- display: flex;
800
- flex-direction: column;
801
- width: 100%;
802
- min-width: 0;
803
-
804
- &__cards {
805
- display: grid;
806
- gap: 15px;
807
- grid-template-columns: 1fr;
808
- grid-template-rows: repeat(1, 1fr);
809
-
810
- @include mixins.media-sm {
811
- grid-template-columns: repeat(2, 1fr);
812
- }
813
-
814
- @include mixins.media-md {
815
- grid-template-columns: repeat(3, 1fr);
816
- }
817
-
818
- @include mixins.media-lg {
819
- grid-template-columns: repeat(2, 1fr);
820
- }
821
-
822
- @include mixins.media-xgl {
823
- grid-template-columns: repeat(3, 1fr);
824
- }
825
-
826
- &__actions {
827
- display: flex;
828
- justify-content: space-between;
829
- align-items: center;
830
-
831
- .cta {
832
- margin-left: auto;
833
- }
834
- }
835
- }
836
-
837
- &__cards--scroll {
838
- display: flex;
839
- flex-wrap: nowrap;
840
- overflow-x: auto;
841
- overflow-y: hidden;
842
- scroll-snap-type: x proximity;
843
- -webkit-overflow-scrolling: touch;
844
- padding-bottom: 5px;
845
-
846
- @include mixins.media-sm {
847
- grid-template-columns: none;
848
- }
849
-
850
- @include mixins.media-md {
851
- grid-template-columns: none;
852
- }
853
-
854
- @include mixins.media-lg {
855
- grid-template-columns: none;
856
- }
857
-
858
- @include mixins.media-xgl {
859
- grid-template-columns: none;
860
- }
861
-
862
- > * {
863
- flex: 0 0 auto;
864
- scroll-snap-align: start;
865
- width: 280px;
866
- max-width: 85vw;
867
-
868
- @include mixins.media-md {
869
- width: 320px;
870
- }
871
- }
872
- }
873
-
874
- &__wrapper {
875
- display: flex;
876
- flex-direction: column;
877
- gap: 15px;
878
-
879
- .search__results__label {
880
- &:first-child {
881
- margin-top: 15px;
882
- }
883
- }
884
- }
885
-
886
- &__label {
887
- display: grid;
888
- grid-template-columns: 50px 1fr;
889
- grid-template-rows: 50px;
890
- align-items: center;
891
- border-radius: var(--tide-booking-search-results-label-border-radius);
892
- overflow: hidden;
893
- margin-top: 30px;
894
-
895
- &__date {
896
- display: flex;
897
- flex-flow: column;
898
- align-items: center;
899
- justify-content: center;
900
- height: 100%;
901
-
902
- background: var(--tide-booking-search-results-label-date-background);
903
- border: var(--tide-booking-search-results-label-date-border);
904
-
905
- p {
906
- margin: 0px;
907
- font-weight: var(--tide-booking-search-results-label-date-month-font-weight);
908
- color: var(--tide-booking-search-results-label-date-month-color);
909
- }
910
-
911
- &-date {
912
- font-size: 24px;
913
- font-weight: var(--tide-booking-search-results-label-date-day-font-weight);
914
- color: var(--tide-booking-search-results-label-date-day-color);
915
- }
916
- }
917
-
918
- &__text {
919
- border: var(--tide-booking-search-results-label-border);
920
- border-left: none;
921
- height: 50px;
922
- display: flex;
923
- align-items: center;
924
- padding-left: 15px;
925
- gap: 10px;
926
-
927
- svg {
928
- fill: var(--tide-booking-gray-dark);
929
- }
930
-
931
- h3 {
932
- display: flex;
933
- align-items: center;
934
- gap: 3px;
935
- margin: 0px;
936
- color: var(--tide-booking-search-results-label-title-color);
937
- font-weight: var(--tide-booking-search-results-label-font-weight);
938
-
939
- strong {
940
- font-weight: var(--tide-booking-search-results-label-title-bold-font-weight);
941
- color: var(--tide-booking-search-results-label-title-bold-color);
942
- }
943
- }
944
- }
945
-
946
- &--secondary {
947
- .search__results__label__date {
948
- background: var(--tide-booking-search-results-label-date-background--secondary);
949
- border: var(--tide-booking-search-results-label-date-border--secondary);
950
- }
951
- }
952
-
953
- // Something inside a day rather than a day of its own: no date, no box, and quieter type,
954
- // sitting close to what it introduces.
955
- &--sub {
956
- grid-template-columns: 1fr;
957
- grid-template-rows: auto;
958
- margin-top: 20px;
959
-
960
- .search__results__label__text {
961
- height: auto;
962
- border: none;
963
- padding: 0px;
964
- gap: 8px;
965
-
966
- h3 {
967
- font-size: 16px;
968
- }
969
- }
970
- }
971
- }
972
-
973
- &__options {
974
- display: flex;
975
- align-items: center;
976
- justify-content: space-between;
977
- gap: 15px;
978
- padding: 15px 30px;
979
- box-shadow: var(--tide-booking-search-more-options-box-shadow);
980
- border: var(--tide-booking-search-more-options-border);
981
- background-color: var(--tide-booking-search-more-options-background);
982
- border-radius: var(--tide-booking-search-more-options-border-radius);
983
-
984
- p {
985
- margin: 0px;
986
- color: var(--tide-booking-search-more-options-color);
987
- }
988
- }
989
-
990
- &__tab-views {
991
- display: none;
992
- align-items: center;
993
-
994
- @include mixins.media-sm {
995
- display: flex;
996
- }
997
- }
998
-
999
- &__tab-view {
1000
- width: 100%;
1001
- display: flex;
1002
- align-items: center;
1003
- gap: 5px;
1004
- font-size: 18px;
1005
- color: var(--tide-booking-search-tab-view-color);
1006
- background: var(--tide-booking-search-tab-view-background);
1007
- border: none;
1008
- border-bottom: var(--tide-booking-search-tab-view-border);
1009
- cursor: pointer;
1010
- outline: none;
1011
- padding: 10px 20px;
1012
- transition: all 0.3s ease;
1013
-
1014
- &:hover {
1015
- color: var(--tide-booking-search-tab-view-hover-color);
1016
- background: var(--tide-booking-search-tab-view-hover-background);
1017
- border-bottom: var(--tide-booking-search-tab-view-hover-border);
1018
- }
1019
-
1020
- &--active {
1021
- color: var(--tide-booking-search-tab-view-active-color);
1022
- background: var(--tide-booking-search-tab-view-active-background);
1023
- border-bottom: var(--tide-booking-search-tab-view-active-border);
1024
- }
1025
- }
1026
-
1027
- &__actions {
1028
- display: flex;
1029
- align-items: center;
1030
- gap: 16px;
1031
- }
1032
- }
1033
-
1034
- &__result {
1035
- display: flex;
1036
- flex-wrap: wrap;
1037
- gap: 15px;
1038
- margin: 0;
1039
- margin-bottom: 20px;
1040
-
1041
- &--flight {
1042
- display: grid;
1043
- gap: 0;
1044
- grid-template-columns: 1fr;
1045
- margin: 0 0 30px;
1046
-
1047
- @include mixins.media-md {
1048
- grid-template-rows: repeat(1, 1fr);
1049
- }
1050
-
1051
- @include mixins.media-lg {
1052
- grid-template-columns: 1fr 257px;
1053
- }
1054
- }
1055
-
1056
- &-row {
1057
- display: flex;
1058
- align-items: center;
1059
- justify-content: space-between;
1060
- margin-bottom: 12px;
1061
- margin-top: 18px;
1062
-
1063
- @include mixins.media-sm {
1064
- margin-bottom: 24px;
1065
- }
1066
-
1067
- &-text {
1068
- font-size: 16px;
1069
- color: gray;
1070
- margin: 0;
1071
- }
1072
-
1073
- .cta--filter {
1074
- position: relative;
1075
- top: 0px;
1076
- left: 0px;
1077
- }
1078
-
1079
- // &-button {
1080
- // width: 13.5rem;
1081
- // height: 3.5rem;
1082
- // display: flex;
1083
- // justify-content: space-between;
1084
- // align-items: center;
1085
- // padding: 0 1rem;
1086
- // border: 1px solid blue;
1087
- // border-radius: 3px;
1088
- // color: blue;
1089
- // cursor: pointer;
1090
- // transition: all 0.2s ease-in-out;
1091
-
1092
- // &:hover {
1093
- // background: red;
1094
- // color: yellow;
1095
-
1096
- // .search__result-row-icon {
1097
- // fill: white;
1098
- // }
1099
- // }
1100
- // }
1101
-
1102
- &-icon {
1103
- fill: red;
1104
- }
1105
-
1106
- .dropdown {
1107
- &:after {
1108
- display: none;
1109
- }
1110
-
1111
- &__label {
1112
- display: none;
1113
-
1114
- @include mixins.media-sm {
1115
- display: block;
1116
- }
1117
- }
1118
-
1119
- &__input {
1120
- width: auto;
1121
- }
1122
-
1123
- &-toggle {
1124
- min-width: 165px;
1125
- }
1126
- }
1127
- }
1128
-
1129
- &-card {
1130
- // flex-basis: 100%;
1131
-
1132
- // @include mixins.media-xs {
1133
- // flex-basis: calc(50% - 8px);
1134
- // }
1135
-
1136
- // @include mixins.media-lg {
1137
- // flex: calc(33% - 8px) 0 0;
1138
- // }
1139
-
1140
- &__wrapper {
1141
- height: 100%;
1142
- display: flex;
1143
- flex-direction: column;
1144
- justify-content: space-between;
1145
- align-items: stretch;
1146
- cursor: pointer;
1147
- border-radius: var(--tide-booking-search-hotel-card-border-radius);
1148
- overflow: hidden;
1149
- box-shadow: var(--tide-booking-search-hotel-card-box-shadow);
1150
- background-color: var(--tide-booking-search-hotel-card-background);
1151
- transition: transform 0.3s ease-in-out;
1152
-
1153
- &--custom {
1154
- gap: 20px;
1155
-
1156
- .search__result-card__footer {
1157
- padding: 20px;
1158
- padding-top: 0px;
1159
- }
1160
- }
1161
- }
1162
-
1163
- &__top {
1164
- display: flex;
1165
- flex-direction: column;
1166
- justify-content: flex-start;
1167
- align-items: flex-start;
1168
- width: 100%;
1169
- }
1170
-
1171
- &__img-wrapper {
1172
- position: relative;
1173
- width: 100%;
1174
- height: 200px;
1175
- overflow: hidden;
1176
- background-color: #f5f5f5;
1177
- }
1178
-
1179
- &__img {
1180
- width: 100%;
1181
- height: 100%;
1182
- object-fit: cover;
1183
- }
1184
-
1185
- &__price {
1186
- font-family: var(--tide-booking-search-hotel-card-price-font-family);
1187
- font-weight: var(--tide-booking-search-hotel-card-price-font-weight);
1188
- color: var(--tide-booking-search-hotel-card-price-color);
1189
- font-size: 20px;
1190
-
1191
- &__wrapper {
1192
- position: absolute;
1193
- bottom: 0px;
1194
- right: 0px;
1195
- background: var(--tide-booking-search-hotel-card-price-background-color);
1196
- display: flex;
1197
- flex-flow: column nowrap;
1198
- align-items: center;
1199
- justify-content: center;
1200
- gap: 5px;
1201
- padding: 5px 20px;
1202
- border-radius: 5px 0 0 0;
1203
- box-shadow: var(--tide-booking-search-hotel-card-price-box-shadow);
1204
- }
1205
-
1206
- &__label {
1207
- font-size: 12px;
1208
- font-weight: var(--tide-booking-search-hotel-card-price-label-font-weight);
1209
- color: var(--tide-booking-search-hotel-card-price-label-color);
1210
- }
1211
- }
1212
-
1213
- &__content {
1214
- display: flex;
1215
- flex-direction: column;
1216
- justify-content: space-between;
1217
- gap: 20px;
1218
- padding: 15px;
1219
- height: calc(100% - 200px);
1220
-
1221
- &__wrapper {
1222
- display: flex;
1223
- flex-direction: column;
1224
- gap: 10px;
1225
- }
1226
-
1227
- &--extra {
1228
- padding: 0 15px;
1229
- margin-top: -20px;
1230
- }
1231
- }
1232
-
1233
- &__header {
1234
- position: relative;
1235
- display: flex;
1236
- justify-content: space-between;
1237
- gap: 5px;
1238
-
1239
- &__wrapper {
1240
- .rating {
1241
- display: flex;
1242
- align-items: center;
1243
- gap: 3px;
1244
-
1245
- svg {
1246
- fill: var(--tide-booking-search-hotel-card-starrating-color);
1247
- }
1248
- }
1249
- }
1250
- }
1251
-
1252
- &__title {
1253
- font-family: var(--tide-booking-search-hotel-card-title-font-family);
1254
- font-weight: var(--tide-booking-search-hotel-card-title-font-weight);
1255
- color: var(--tide-booking-search-hotel-card-title-color);
1256
- margin-bottom: 0px;
1257
- }
1258
-
1259
- &__location {
1260
- display: flex;
1261
- justify-content: flex-start;
1262
- align-items: flex-start;
1263
- gap: 5px;
1264
- font-size: 14px;
1265
- line-height: 1.5;
1266
- margin-bottom: 0px;
1267
- color: var(--tide-booking-search-hotel-card-option-color);
1268
- font-weight: var(--tide-booking-search-hotel-card-location-font-weight);
1269
-
1270
- svg {
1271
- width: 16px;
1272
- height: 16px;
1273
- margin-top: 3px;
1274
- fill: var(--tide-booking-search-hotel-card-location-icon-color);
1275
- }
1276
- }
1277
-
1278
- &__description {
1279
- display: none;
1280
- font-size: 16px;
1281
- font-weight: var(--tide-booking-search-hotel-card-description-font-weight);
1282
- line-height: 1.5;
1283
- color: var(--tide-booking-search-hotel-card-description-color);
1284
- margin-bottom: 0px;
1285
- -webkit-line-clamp: 3;
1286
- -webkit-box-orient: vertical;
1287
- overflow: hidden;
1288
- }
1289
-
1290
- &__options {
1291
- display: flex;
1292
- flex-wrap: wrap;
1293
- gap: 20px;
1294
- margin-top: 10px;
1295
- }
1296
-
1297
- &__option {
1298
- display: flex;
1299
- align-items: center;
1300
- flex-flow: nowrap;
1301
- gap: 5px;
1302
- font-weight: var(--tide-booking-search-hotel-card-option-font-weight);
1303
- color: var(--tide-booking-search-hotel-card-option-color);
1304
- font-size: 14px;
1305
-
1306
- svg {
1307
- width: 16px;
1308
- height: 16px;
1309
- fill: var(--tide-booking-search-hotel-card-option-icon-color);
1310
- }
1311
- }
1312
-
1313
- &__footer {
1314
- display: flex;
1315
- justify-content: space-between;
1316
- align-items: center;
1317
- gap: 1rem;
1318
- }
1319
-
1320
- &__allotment {
1321
- display: flex;
1322
- justify-content: space-between;
1323
- flex-direction: column;
1324
- gap: 30px;
1325
- background: var(--tide-booking-search-hotel-card-allotments-background);
1326
- padding: 20px;
1327
- border-radius: var(--tide-booking-search-hotel-card-allotments-border-radius);
1328
- border: var(--tide-booking-search-hotel-card-allotments-border);
1329
- box-shadow: var(--tide-booking-search-hotel-card-allotments-box-shadow);
1330
-
1331
- @include mixins.media-sm {
1332
- flex-direction: row;
1333
- gap: 20px;
1334
- }
1335
-
1336
- &__container {
1337
- display: grid;
1338
- grid-template-rows: repeat(1, 1fr);
1339
- gap: 15px;
1340
- width: 100%;
1341
-
1342
- @include mixins.media-xs {
1343
- grid-template-columns: 1fr 0.8fr;
1344
- }
1345
- }
1346
-
1347
- &__header {
1348
- display: flex;
1349
- flex-direction: column;
1350
-
1351
- gap: 15px;
1352
-
1353
- @include mixins.media-sm {
1354
- justify-content: space-between;
1355
- }
1356
- }
1357
-
1358
- &__img {
1359
- width: 100%;
1360
- height: 100%;
1361
- object-fit: cover;
1362
- }
1363
-
1364
- &__img-wrapper {
1365
- border-radius: 16px 16px 0 0;
1366
- position: relative;
1367
- width: 100%;
1368
- height: 200px;
1369
- overflow: hidden;
1370
- background-color: #f5f5f5;
1371
-
1372
- @include mixins.media-md {
1373
- width: 40%;
1374
- height: auto;
1375
- border-radius: 16px 0 0 16px;
1376
- }
1377
-
1378
- @include mixins.media-lg {
1379
- width: 100%;
1380
- height: 200px;
1381
- border-radius: 16px 16px 0 0;
1382
- }
1383
-
1384
- @include mixins.media-xl {
1385
- width: 40%;
1386
- height: auto;
1387
- border-radius: 16px 0 0 16px;
1388
- }
1389
- }
1390
-
1391
- &__title {
1392
- font-weight: var(--tide-booking-search-hotel-card-allotments-title-font-weight);
1393
- color: var(--tide-booking-search-hotel-card-allotments-title-color);
1394
- margin: 0;
1395
- display: flex;
1396
- align-items: center;
1397
- justify-content: space-between;
1398
- gap: 5px;
1399
- width: 100%;
1400
-
1401
- @include mixins.media-sm {
1402
- justify-content: flex-start;
1403
- }
1404
-
1405
- &__wrapper {
1406
- display: flex;
1407
- align-items: flex-start;
1408
- flex-direction: column;
1409
- gap: 10px;
1410
- width: 100%;
1411
-
1412
- @include mixins.media-sm {
1413
- justify-content: space-between;
1414
- }
1415
- }
1416
- }
1417
-
1418
- &__badge {
1419
- border: var(--tide-booking-search-hotel-card-allotments-badge-border);
1420
- background: var(--tide-booking-search-hotel-card-allotments-badge-background);
1421
- color: var(--tide-booking-search-hotel-card-allotments-badge-color);
1422
- font-weight: var(--tide-booking-search-hotel-card-allotments-badge-font-weight);
1423
- padding: 5px 10px;
1424
- border-radius: var(--tide-booking-search-hotel-card-allotments-badge-border-radius);
1425
- font-size: 12px;
1426
- // display: flex;
1427
- // align-items: center;
1428
- // gap: 5px;
1429
- white-space: nowrap;
1430
- vertical-align: middle;
1431
- line-height: 1.5;
1432
-
1433
- svg {
1434
- vertical-align: sub;
1435
- margin-right: 3px;
1436
- }
1437
-
1438
- &--secondary {
1439
- border: var(--tide-booking-search-hotel-card-allotments-badge--secondary-border);
1440
- background: var(--tide-booking-search-hotel-card-allotments-badge--secondary-background);
1441
- color: var(--tide-booking-search-hotel-card-allotments-badge--secondary-color);
1442
- }
1443
- }
1444
-
1445
- &__info {
1446
- display: flex;
1447
- align-items: flex-end;
1448
- gap: 10px;
1449
- }
1450
-
1451
- &__persons {
1452
- margin: 0;
1453
- display: flex;
1454
- align-items: flex-end;
1455
- gap: 5px;
1456
- }
1457
-
1458
- &__person {
1459
- display: flex;
1460
- align-items: flex-end;
1461
- gap: 3px;
1462
- font-weight: var(--tide-booking-search-hotel-card-allotments-persons-font-weight);
1463
- color: var(--tide-booking-search-hotel-card-allotments-persons-color);
1464
-
1465
- span {
1466
- color: var(--tide-booking-search-hotel-card-allotments-persons-number-color);
1467
- }
1468
- }
1469
-
1470
- &__wrapper {
1471
- display: flex;
1472
- flex-direction: column;
1473
- gap: 15px;
1474
- }
1475
-
1476
- &__date {
1477
- font-weight: var(--tide-booking-search-hotel-card-allotments-date-font-weight);
1478
- color: var(--tide-booking-search-hotel-card-allotments-date-color);
1479
- margin: 0;
1480
- display: flex;
1481
- align-items: center;
1482
- gap: 5px;
1483
- line-height: 1.5;
1484
- }
1485
-
1486
- &__footer {
1487
- display: flex;
1488
- flex-direction: column;
1489
- justify-content: space-between;
1490
- gap: 20px;
1491
-
1492
- @include mixins.media-xs {
1493
- flex-direction: row;
1494
- }
1495
-
1496
- @include mixins.media-sm {
1497
- align-items: flex-end;
1498
- flex-direction: column;
1499
- }
1500
-
1501
- @include mixins.media-lg {
1502
- min-width: 288px;
1503
- }
1504
-
1505
- .cta {
1506
- width: auto !important;
1507
- }
1508
- }
1509
-
1510
- &__price {
1511
- font-size: 20px;
1512
- font-weight: var(--tide-booking-search-hotel-card-allotments-price-font-weight);
1513
- color: var(--tide-booking-search-hotel-card-allotments-price-color);
1514
- margin: 0;
1515
-
1516
- &__wrapper {
1517
- display: flex;
1518
- flex-direction: column;
1519
- align-items: flex-end;
1520
- gap: 5px;
1521
- min-width: 200px;
1522
-
1523
- @include mixins.media-xs {
1524
- align-items: flex-start;
1525
- }
1526
-
1527
- @include mixins.media-sm {
1528
- align-items: flex-end;
1529
- }
1530
- }
1531
-
1532
- &__info {
1533
- text-align: right;
1534
- line-height: 1.5;
1535
-
1536
- @include mixins.media-xs {
1537
- text-align: left;
1538
- }
1539
-
1540
- @include mixins.media-sm {
1541
- text-align: right;
1542
- }
1543
- }
1544
- }
1545
- }
1546
- }
1547
- }
1548
-
1549
- &__flight-card {
1550
- padding: 0 8px 8px 8px;
1551
- border-radius: 20px;
1552
- background: white;
1553
- border: 1px solid blue;
1554
-
1555
- @include mixins.media-sm {
1556
- padding: 0.75rem 2rem;
1557
- }
1558
-
1559
- @include mixins.media-lg {
1560
- width: 100%;
1561
- }
1562
-
1563
- &-content {
1564
- position: relative;
1565
- display: grid;
1566
- grid-template-columns: repeat(3, 1fr);
1567
- gap: 1rem;
1568
-
1569
- @include mixins.media-sm {
1570
- /* grid-template-columns: repeat(3, 1fr); */
1571
- grid-template-columns: repeat(5, 1fr);
1572
- gap: 30px;
1573
- }
1574
-
1575
- &-radio {
1576
- position: absolute;
1577
- top: 50%;
1578
- left: 15px;
1579
-
1580
- &::before {
1581
- content: '';
1582
- position: absolute;
1583
- top: 50%;
1584
- left: -3rem; // Adjust this value to position the line correctly
1585
- width: calc(100% + 0.5rem); // Adjust this value to extend the line to the left edge
1586
- height: 1px; // Adjust the thickness of the line
1587
- background-color: blue; // Line color
1588
- transform: translateY(-50%);
1589
- }
1590
- }
1591
-
1592
- &-top {
1593
- border-bottom: 1px solid blue;
1594
- padding: 1rem 0;
1595
- }
1596
-
1597
- &-bottom {
1598
- margin-bottom: 0.25rem;
1599
- margin-top: 1.5rem;
1600
- }
1601
-
1602
- &-icon {
1603
- fill: red;
1604
-
1605
- &--flipped {
1606
- transform: rotate(180deg);
1607
- }
1608
- }
1609
-
1610
- &-start {
1611
- grid-column: span 2;
1612
- display: flex;
1613
- flex-direction: column;
1614
- align-items: flex-end;
1615
-
1616
- &-time {
1617
- display: flex;
1618
- align-items: center;
1619
- gap: 1rem;
1620
-
1621
- h5 {
1622
- font-size: 18px;
1623
- font-weight: 400;
1624
- color: gray;
1625
- margin: 0;
1626
- }
1627
- }
1628
-
1629
- &-destination {
1630
- color: black;
1631
- font-size: 14px;
1632
- margin-top: 0.5rem;
1633
- margin-bottom: 0;
1634
- text-align: end;
1635
- }
1636
-
1637
- &-date {
1638
- font-size: 15px;
1639
- color: gray;
1640
- margin-top: 0;
1641
- text-align: end;
1642
- }
1643
- }
1644
-
1645
- &-stops {
1646
- grid-column: span 1;
1647
-
1648
- display: flex;
1649
- flex-direction: column;
1650
- align-items: center;
1651
- justify-content: center;
1652
- gap: 4px;
1653
-
1654
- max-width: 5.5rem;
1655
-
1656
- &-info {
1657
- display: flex;
1658
- justify-content: center;
1659
- align-items: center;
1660
- gap: 8px;
1661
-
1662
- &-text {
1663
- font-size: 14px;
1664
- color: gray;
1665
- margin: 0;
1666
- }
1667
-
1668
- &-hour {
1669
- font-size: 14px;
1670
- color: gray;
1671
- margin-top: 0;
1672
- margin-bottom: 16px;
1673
- }
1674
- }
1675
- }
1676
-
1677
- &-end {
1678
- grid-column: span 2;
1679
-
1680
- display: flex;
1681
- flex-direction: column;
1682
- align-items: flex-start;
1683
-
1684
- &-time {
1685
- font-size: 18px;
1686
- font-weight: 400;
1687
-
1688
- color: black;
1689
-
1690
- margin: 0;
1691
- }
1692
-
1693
- &-destination {
1694
- color: black;
1695
- font-size: 14px;
1696
-
1697
- margin-top: 8px;
1698
- margin-bottom: 0;
1699
-
1700
- text-align: left;
1701
- }
1702
-
1703
- &-date {
1704
- font-size: 14px;
1705
- color: gray;
1706
-
1707
- margin-top: 0;
1708
-
1709
- text-align: left;
1710
-
1711
- &--warning {
1712
- color: pink;
1713
- }
1714
-
1715
- &-wrapper {
1716
- display: flex;
1717
- align-items: center;
1718
- gap: 8px;
1719
- }
1720
-
1721
- &-icon {
1722
- margin-top: 5px;
1723
- }
1724
- }
1725
- }
1726
- }
1727
- }
1728
-
1729
- &__banner {
1730
- display: flex;
1731
- justify-content: center;
1732
- margin-bottom: 60px;
1733
- margin-top: 30px;
1734
- }
1735
-
1736
- &__results__cards--extended {
1737
- @include mixins.media-sm {
1738
- grid-template-columns: repeat(1, 1fr);
1739
- }
1740
-
1741
- @include mixins.media-lg {
1742
- grid-template-columns: repeat(1, 1fr);
1743
- }
1744
-
1745
- .search__result-card {
1746
- &__wrapper {
1747
- @include mixins.media-sm {
1748
- flex-direction: row;
1749
- justify-content: flex-start;
1750
- }
1751
-
1752
- @include mixins.media-lg {
1753
- flex-direction: row;
1754
- }
1755
- }
1756
-
1757
- &__top {
1758
- @include mixins.media-sm {
1759
- flex-direction: row;
1760
- }
1761
- }
1762
-
1763
- &__img-wrapper {
1764
- @include mixins.media-sm {
1765
- width: 40%;
1766
- min-height: 100%;
1767
- overflow: hidden;
1768
- }
1769
-
1770
- @include mixins.media-lg {
1771
- width: 40%;
1772
- min-height: 100%;
1773
- }
1774
- }
1775
-
1776
- &__price {
1777
- &__wrapper {
1778
- @include mixins.media-sm {
1779
- position: absolute;
1780
- bottom: auto;
1781
- right: auto;
1782
- top: 0px;
1783
- left: 50%;
1784
- transform: translateX(-50%);
1785
- border-radius: 0 0 5px 5px;
1786
- box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
1787
- }
1788
- }
1789
- }
1790
-
1791
- &__content {
1792
- @include mixins.media-sm {
1793
- width: 60%;
1794
- padding: 20px;
1795
- height: auto;
1796
- }
1797
-
1798
- @include mixins.media-lg {
1799
- width: 60%;
1800
- padding: 20px;
1801
- }
1802
- }
1803
-
1804
- &__header {
1805
- &__wrapper {
1806
- @include mixins.media-sm {
1807
- display: flex;
1808
- flex-direction: row-reverse;
1809
- align-items: center;
1810
- gap: 10px;
1811
- }
1812
-
1813
- @include mixins.media-lg {
1814
- flex-direction: row-reverse;
1815
- align-items: center;
1816
- }
1817
-
1818
- .rating {
1819
- margin-top: 2px;
1820
- }
1821
- }
1822
- }
1823
-
1824
- &__description {
1825
- @include mixins.media-sm {
1826
- display: -webkit-box;
1827
- }
1828
- }
1829
-
1830
- &__footer {
1831
- @include mixins.media-sm {
1832
- justify-content: flex-end;
1833
- align-items: flex-end;
1834
-
1835
- .cta {
1836
- width: auto;
1837
- min-width: 150px;
1838
- }
1839
- }
1840
- }
1841
-
1842
- &__allotment {
1843
- padding: 0px;
1844
-
1845
- @include mixins.media-sm {
1846
- flex-direction: column;
1847
- }
1848
-
1849
- @include mixins.media-md {
1850
- flex-direction: row;
1851
- }
1852
-
1853
- @include mixins.media-lg {
1854
- flex-direction: column;
1855
- }
1856
-
1857
- @include mixins.media-xl {
1858
- flex-direction: row;
1859
- }
1860
-
1861
- &__title__wrapper {
1862
- padding: 0px 20px;
1863
-
1864
- @include mixins.media-md {
1865
- padding: 20px 0px;
1866
- }
1867
-
1868
- @include mixins.media-lg {
1869
- padding: 0px 20px;
1870
- }
1871
-
1872
- @include mixins.media-xl {
1873
- padding: 20px 0px;
1874
- }
1875
- }
1876
-
1877
- &__footer {
1878
- padding: 0px 20px;
1879
- padding-bottom: 20px;
1880
-
1881
- @include mixins.media-sm {
1882
- flex-direction: row;
1883
- align-items: flex-start;
1884
- }
1885
-
1886
- @include mixins.media-md {
1887
- flex-direction: column;
1888
- align-items: flex-end;
1889
- padding: 20px 0px;
1890
- padding-right: 20px;
1891
- }
1892
-
1893
- @include mixins.media-lg {
1894
- flex-direction: row;
1895
- align-items: flex-start;
1896
- padding: 0px 20px;
1897
- padding-bottom: 20px;
1898
- }
1899
-
1900
- @include mixins.media-xl {
1901
- flex-direction: column;
1902
- align-items: flex-end;
1903
- padding: 20px 0px;
1904
- padding-right: 20px;
1905
- }
1906
- }
1907
-
1908
- &__price {
1909
- &__wrapper {
1910
- @include mixins.media-sm {
1911
- align-items: flex-start;
1912
- }
1913
-
1914
- @include mixins.media-md {
1915
- align-items: flex-end;
1916
- }
1917
-
1918
- @include mixins.media-lg {
1919
- align-items: flex-start;
1920
- }
1921
-
1922
- @include mixins.media-xl {
1923
- align-items: flex-end;
1924
- }
1925
- }
1926
- }
1927
- }
1928
- }
1929
- }
1930
-
1931
- &__results__cards--list {
1932
- @include mixins.media-sm {
1933
- grid-template-columns: repeat(1, 1fr);
1934
- }
1935
-
1936
- @include mixins.media-lg {
1937
- grid-template-columns: repeat(1, 1fr);
1938
- }
1939
-
1940
- .search__result-card {
1941
- &__wrapper {
1942
- @include mixins.media-sm {
1943
- flex-direction: row;
1944
- justify-content: flex-start;
1945
- }
1946
-
1947
- @include mixins.media-lg {
1948
- flex-direction: row;
1949
- }
1950
- }
1951
-
1952
- &__top {
1953
- @include mixins.media-sm {
1954
- flex-direction: row;
1955
- }
1956
- }
1957
-
1958
- &__img-wrapper {
1959
- @include mixins.media-sm {
1960
- min-width: 175px;
1961
- width: 175px;
1962
- height: 175px;
1963
- min-height: 100%;
1964
- overflow: hidden;
1965
- }
1966
-
1967
- @include mixins.media-lg {
1968
- min-width: 175px;
1969
- height: 175px;
1970
- min-height: 100%;
1971
- }
1972
- }
1973
-
1974
- &__price {
1975
- &__wrapper {
1976
- @include mixins.media-sm {
1977
- position: absolute;
1978
- bottom: auto;
1979
- right: auto;
1980
- top: 0px;
1981
- left: 50%;
1982
- transform: translateX(-50%);
1983
- min-width: 96px;
1984
- border-radius: 0 0 5px 5px;
1985
- box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
1986
- }
1987
- }
1988
- }
1989
-
1990
- &__content {
1991
- @include mixins.media-sm {
1992
- flex-direction: row;
1993
- width: 100%;
1994
- padding: 15px 20px;
1995
- height: auto;
1996
- }
1997
-
1998
- @include mixins.media-lg {
1999
- width: 100%;
2000
- padding: 15px 20px;
2001
- }
2002
- }
2003
-
2004
- &__header {
2005
- &__wrapper {
2006
- @include mixins.media-sm {
2007
- display: flex;
2008
- flex-direction: row-reverse;
2009
- align-items: center;
2010
- gap: 10px;
2011
- }
2012
-
2013
- @include mixins.media-lg {
2014
- flex-direction: row-reverse;
2015
- align-items: center;
2016
- }
2017
-
2018
- .rating {
2019
- margin-top: 2px;
2020
- }
2021
- }
2022
- }
2023
-
2024
- &__description {
2025
- display: none;
2026
- }
2027
-
2028
- &__footer {
2029
- @include mixins.media-sm {
2030
- justify-content: flex-end;
2031
- align-items: flex-end;
2032
-
2033
- .cta {
2034
- width: auto;
2035
- min-width: 150px;
2036
- }
2037
- }
2038
- }
2039
-
2040
- &__allotment {
2041
- &__img-wrapper {
2042
- display: none;
2043
- }
2044
-
2045
- &__description {
2046
- display: none;
2047
- }
2048
- }
2049
- }
2050
- }
2051
- }
2052
-
2053
- .star-rating-filter {
2054
- display: flex;
2055
- justify-content: flex-end;
2056
- flex-direction: row-reverse;
2057
- gap: 15px;
2058
- font-size: 24px;
2059
- cursor: pointer;
2060
-
2061
- .star {
2062
- color: var(--tide-booking-star-rating-color);
2063
- /* unfilled */
2064
- transition: color 0.2s;
2065
- }
2066
-
2067
- .star.filled {
2068
- color: var(--tide-booking-star-rating-color--filled);
2069
- /* filled gold */
2070
- }
2071
-
2072
- .star:hover,
2073
- .star:hover ~ .star {
2074
- color: var(--tide-booking-star-rating-color--hover);
2075
- }
2076
- }
2077
-
2078
- .search__filter-toggle-label {
2079
- vertical-align: middle;
2080
- font-size: 0.95rem;
2081
- }
2082
-
2083
- .mobile-filters-button {
2084
- display: flex;
2085
- justify-content: center;
2086
- align-items: center;
2087
- flex: 1;
2088
- max-width: 7rem;
2089
- margin-right: 0.5rem;
2090
- height: 3.5rem;
2091
- color: grey;
2092
- border: 1px solid green;
2093
- border-radius: 3px;
2094
- font-size: 16px;
2095
- cursor: pointer;
2096
-
2097
- @include mixins.media-lg {
2098
- display: none;
2099
- }
2100
-
2101
- &__icon {
2102
- fill: red;
2103
- margin-right: 0.5rem;
2104
- }
2105
- }
2106
-
2107
- .flight-path {
2108
- display: flex;
2109
- align-items: center;
2110
- justify-content: center;
2111
- width: 100%;
2112
-
2113
- @media (min-width: 400px) {
2114
- width: 6rem;
2115
- }
2116
-
2117
- &__point {
2118
- width: 7px;
2119
- height: 7px;
2120
-
2121
- border-radius: 50%;
2122
- border: 1px solid red;
2123
- background: wh;
2124
-
2125
- &--start,
2126
- &--end {
2127
- background-color: white;
2128
- min-width: 7px;
2129
- }
2130
- }
2131
-
2132
- &__line {
2133
- display: flex;
2134
- align-items: center;
2135
- flex-grow: 1;
2136
- position: relative;
2137
- height: 1px;
2138
- background: red;
2139
-
2140
- gap: 1.3rem;
2141
-
2142
- &::before,
2143
- &::after {
2144
- content: '';
2145
- flex-grow: 1;
2146
- height: 1px;
2147
- background: red;
2148
- }
2149
- }
2150
-
2151
- &__stop {
2152
- width: 9px;
2153
- height: 9px;
2154
-
2155
- border-radius: 50%;
2156
- background: red;
2157
- border: 2px solid white;
2158
-
2159
- position: relative;
2160
- }
2161
- }
2162
-
2163
- .has-overlay {
2164
- overflow: hidden;
2165
- }
2166
-
2167
- .spinner {
2168
- &__container {
2169
- margin: 1rem auto;
2170
- display: flex;
2171
- flex-direction: column;
2172
- align-items: center;
2173
- gap: 1rem;
2174
- }
2175
-
2176
- &__icon {
2177
- border: 2px solid rgb(244, 249, 250, 0.2);
2178
- border-top: 2px solid #3aafa9;
2179
- border-radius: 50%;
2180
- width: 24px;
2181
- height: 24px;
2182
- animation: spin 0.6s linear infinite;
2183
- display: inline-block;
2184
- vertical-align: middle;
2185
- margin-right: 6px;
2186
- }
2187
-
2188
- &__label {
2189
- text-align: center;
2190
- }
2191
- }
2192
-
2193
- @keyframes spin {
2194
- to {
2195
- transform: rotate(360deg);
2196
- }
2197
- }
1
+ @use '../components/mixins' as mixins;
2
+
3
+ * {
4
+ box-sizing: border-box;
5
+ }
6
+
7
+ .search {
8
+ background: var(--tide-booking-search-results-background);
9
+
10
+ &__bg {
11
+ background: var(--tide-booking-search-results-background);
12
+ }
13
+
14
+ &__container {
15
+ position: relative;
16
+ display: flex;
17
+ @include mixins.container-wide();
18
+ padding-top: 30px;
19
+ padding-bottom: 60px;
20
+
21
+ @include mixins.media-sm {
22
+ padding-top: 30px;
23
+ padding-bottom: 60px;
24
+ }
25
+
26
+ @include mixins.media-md {
27
+ gap: 30px;
28
+ padding-top: 30px;
29
+ padding-bottom: 60px;
30
+ }
31
+
32
+ @include mixins.media-lg {
33
+ gap: 60px;
34
+ padding-top: 60px;
35
+ }
36
+ }
37
+
38
+ &__filters {
39
+ position: fixed;
40
+ top: 0px;
41
+ left: 0px;
42
+ display: block;
43
+ max-width: 360px;
44
+ width: 100%;
45
+ background-color: var(--tide-booking-search-filter-background);
46
+ border: var(--tide-booking-search-filter-border);
47
+ height: 100%;
48
+ margin-bottom: 20px;
49
+ margin-left: 0;
50
+ grid-column: span 12;
51
+ transform: translateX(-100vw);
52
+ overflow: hidden;
53
+ transition: transform 0.35s ease;
54
+
55
+ @include mixins.media-md {
56
+ grid-column: auto;
57
+ border-radius: var(--tide-booking-search-filter-border-radius);
58
+ }
59
+
60
+ @include mixins.media-lg {
61
+ position: relative;
62
+ display: block;
63
+ max-width: 360px;
64
+ width: 360px;
65
+ height: auto;
66
+ margin: 0;
67
+ border: none;
68
+ box-shadow: none;
69
+ transform: translateX(0);
70
+ pointer-events: auto;
71
+ padding-bottom: 20px;
72
+ }
73
+
74
+ // ::after {
75
+ // content: '';
76
+ // display: block;
77
+ // position: fixed;
78
+ // top: 0;
79
+ // left: 0;
80
+ // width: 100vw;
81
+ // height: 100vh;
82
+ // background: rgba(0, 0, 0, 0.5);
83
+ // z-index: 100009;
84
+ // }
85
+
86
+ &__group-container {
87
+ position: relative;
88
+ display: flex;
89
+ flex-direction: column;
90
+ height: calc(100% - 47px);
91
+ overflow-y: auto;
92
+ overflow-x: hidden;
93
+ @extend %scrollbar-thin;
94
+
95
+ @include mixins.media-lg {
96
+ height: auto;
97
+ overflow: visible;
98
+ }
99
+
100
+ .search__filter-group:last-child {
101
+ margin-bottom: 20px;
102
+ }
103
+ }
104
+
105
+ &__actions {
106
+ position: sticky;
107
+ bottom: 0;
108
+ left: 0;
109
+ display: flex;
110
+ justify-content: space-between;
111
+ align-items: center;
112
+ gap: 15px;
113
+ padding: 15px 20px;
114
+ background-color: white;
115
+ margin-top: auto;
116
+
117
+ @include mixins.media-lg {
118
+ display: none;
119
+ }
120
+ }
121
+
122
+ &--background {
123
+ background-color: rgba(0, 0, 0, 0.7);
124
+ height: 100%;
125
+ width: 100%;
126
+ position: fixed;
127
+
128
+ @include mixins.media-lg {
129
+ display: none;
130
+ position: relative;
131
+ }
132
+ }
133
+
134
+ &--close {
135
+ position: fixed;
136
+ z-index: 100020;
137
+ top: 10px;
138
+ right: 15px;
139
+ display: none;
140
+ background: none;
141
+ border: none;
142
+ color: var(--tide-booking-search-filter-price-amount-color);
143
+ cursor: pointer;
144
+ }
145
+
146
+ &--modal {
147
+ display: block;
148
+ position: fixed;
149
+ top: 0;
150
+ left: 0;
151
+ width: 100vw;
152
+ height: 100dvh;
153
+ z-index: 100009;
154
+
155
+ // Initial hidden state
156
+ opacity: 0;
157
+ pointer-events: none;
158
+ transition: left 0.35s ease, opacity 0.25s ease;
159
+
160
+ @include mixins.media-lg {
161
+ position: relative;
162
+ left: 0px;
163
+ width: auto;
164
+ height: auto;
165
+ background: transparent;
166
+ opacity: 1;
167
+ z-index: 1;
168
+ }
169
+
170
+ // When modal is open
171
+ &.is-open {
172
+ left: 0px;
173
+ opacity: 1;
174
+ pointer-events: auto;
175
+
176
+ .search__filters--close {
177
+ display: block;
178
+ }
179
+
180
+ .search__filters {
181
+ position: relative;
182
+ display: block;
183
+ max-width: 100%;
184
+ width: 100%;
185
+ height: 100%;
186
+ margin: 0;
187
+ border: none;
188
+ box-shadow: none;
189
+ border-top-left-radius: 0px;
190
+ border-bottom-left-radius: 0px;
191
+ transform: translateX(0);
192
+ pointer-events: auto;
193
+ overflow-y: auto;
194
+ @extend %scrollbar-thin;
195
+ }
196
+ }
197
+ }
198
+ }
199
+
200
+ &__filter {
201
+ &-group {
202
+ padding: 0 20px;
203
+ }
204
+
205
+ &-row {
206
+ display: flex;
207
+ align-items: center;
208
+ justify-content: space-between;
209
+ margin-top: 15px;
210
+
211
+ &-flex-title {
212
+ display: flex;
213
+ align-items: center;
214
+ gap: 15px;
215
+ }
216
+
217
+ &-icon {
218
+ fill: hotpink;
219
+ }
220
+
221
+ &--underline {
222
+ border-bottom: var(--tide-booking-search-filter-group-title-text-border);
223
+ margin-bottom: 8px;
224
+ cursor: pointer;
225
+ }
226
+
227
+ &--checkmark {
228
+ margin-top: 5px;
229
+
230
+ @include media-lg {
231
+ margin-top: 15px;
232
+ }
233
+ }
234
+ }
235
+
236
+ &__header {
237
+ padding: 0 20px;
238
+ margin-bottom: 15px;
239
+ margin-top: 0;
240
+ padding-top: 15px;
241
+ padding-right: 60px;
242
+
243
+ @include mixins.media-lg {
244
+ padding-right: 15px;
245
+ }
246
+ }
247
+
248
+ &-link {
249
+ color: orangered;
250
+ transition: all 0.3s;
251
+ cursor: pointer;
252
+ text-decoration: underline;
253
+ margin-top: 136px;
254
+
255
+ &:hover {
256
+ color: green;
257
+ }
258
+ }
259
+
260
+ &-chevron-icon {
261
+ transition: transform 0.3s ease;
262
+ transform: rotate(180deg);
263
+ margin-top: 5px;
264
+
265
+ &--flipped {
266
+ transform: rotate(0);
267
+ }
268
+ }
269
+
270
+ &-small-title {
271
+ font-size: 14px;
272
+ font-weight: 400;
273
+ margin: 0 auto;
274
+ }
275
+
276
+ &-medium-title {
277
+ font-size: 16px;
278
+ font-weight: 700;
279
+ margin: 5px 0;
280
+
281
+ &-wrapper {
282
+ margin-top: 12.5px;
283
+ margin-bottom: 2.5px;
284
+ }
285
+ }
286
+
287
+ &-large-title {
288
+ font-size: 18px;
289
+ font-weight: var(--tide-booking-search-filter-group-title-text-font-weight);
290
+ margin: 5px 0;
291
+ }
292
+
293
+ &-reset {
294
+ color: var(--tide-booking-search-reset-color);
295
+ font-size: 15px;
296
+ font-weight: var(--tide-booking-search-reset-font-weight);
297
+ text-decoration: var(--tide-booking-search-reset-text-decoration);
298
+ cursor: pointer;
299
+ }
300
+
301
+ // &-facet {
302
+ // color: variables.$text-color;
303
+ // }
304
+
305
+ // &-price {
306
+ // font-size: variables.$font-size-body--small;
307
+ // color: variables.$secondary-color;
308
+ // margin-bottom: 0;
309
+ // margin-top: 0;
310
+ // min-width: 88px;
311
+ // text-align: end;
312
+ // }
313
+
314
+ // &-button {
315
+ // width: 100%;
316
+ // padding: 1rem 0;
317
+ // background: transparent;
318
+ // border: 1px solid variables.$secondary-color;
319
+ // color: variables.$secondary-color;
320
+ // border-radius: 3px;
321
+ // margin-top: 2rem;
322
+ // transition: all 0.2s ease-in-out;
323
+ // cursor: pointer;
324
+
325
+ // &:hover {
326
+ // background: variables.$secondary-color;
327
+ // color: variables.$white;
328
+ // }
329
+ // }
330
+
331
+ &__image {
332
+ position: absolute;
333
+ top: 50%;
334
+ left: 50%;
335
+ width: 100%;
336
+ height: 100%;
337
+ transform: translate(-50%, -50%);
338
+ z-index: -1;
339
+
340
+ &__wrapper {
341
+ position: relative;
342
+ width: 100%;
343
+ height: 200px;
344
+ max-height: 200px;
345
+ padding: 20px;
346
+ overflow: hidden;
347
+ border-radius: var(--tide-booking-search-filter-img-border-radius);
348
+ display: flex;
349
+ flex-direction: column;
350
+ align-items: center;
351
+ justify-content: flex-end;
352
+ }
353
+
354
+ &__text {
355
+ color: var(--tide-booking-search-filter-img-text-color);
356
+ font-weight: var(--tide-booking-search-filter-img-text-font-weight);
357
+ font-family: var(--tide-booking-search-filter-img-text-font-family);
358
+ }
359
+
360
+ &__title {
361
+ font-size: 20px;
362
+ font-weight: var(--tide-booking-search-filter-img-title-font-weight);
363
+ margin: 5px 0;
364
+ color: var(--tide-booking-search-filter-img-title-color);
365
+ text-align: center;
366
+ font-family: var(--tide-booking-search-filter-img-title-font-family);
367
+ }
368
+ }
369
+
370
+ &__prices {
371
+ display: flex;
372
+ flex-direction: column;
373
+ justify-content: center;
374
+ gap: 10px;
375
+
376
+ height: 173.5px;
377
+ padding: 0 20px;
378
+
379
+ &__wrapper {
380
+ display: flex;
381
+ flex-direction: column;
382
+ align-items: center;
383
+
384
+ p {
385
+ margin: 0px;
386
+ line-height: 1.5;
387
+ }
388
+ }
389
+
390
+ &--amount {
391
+ font-family: var(--tide-booking-search-filter-price-amount-font-family);
392
+ font-size: 30px;
393
+ font-weight: var(--tide-booking-search-filter-price-amount-font-weight);
394
+ margin: 0;
395
+ color: var(--tide-booking-search-filter-price-amount-color);
396
+
397
+ p {
398
+ font-family: var(--tide-booking-search-filter-price-text-font-family);
399
+ font-weight: var(--tide-booking-search-filter-price-text-font-weight);
400
+ text-align: center;
401
+ color: var(--tide-booking-search-filter-price-text-color);
402
+ margin: 0px;
403
+
404
+ strong {
405
+ font-weight: var(--tide-booking-search-filter-price-total-font-weight);
406
+ color: var(--tide-booking-search-filter-price-total-color);
407
+ }
408
+ }
409
+ }
410
+ }
411
+
412
+ &__itinerary {
413
+ margin-top: 30px;
414
+ padding: 0 20px;
415
+ padding-bottom: 30px;
416
+ display: flex;
417
+ flex-direction: column;
418
+ gap: 15px;
419
+
420
+ p {
421
+ margin: 0px;
422
+ font-family: var(--tide-booking-search-itinerary-filter-title-font-family);
423
+ font-weight: var(--tide-booking-search-itinerary-filter-title-font-weight);
424
+ color: var(--tide-booking-search-itinerary-filter-title-color);
425
+ }
426
+
427
+ &__country {
428
+ padding: 15px 20px;
429
+ box-shadow: var(--tide-booking-search-itinerary-filter-country-box-shadow);
430
+ display: flex;
431
+ align-items: center;
432
+ gap: 20px;
433
+ border-radius: var(--tide-booking-search-itinerary-filter-country-border-radius);
434
+ border: var(--tide-booking-search-itinerary-filter-country-border);
435
+ background: var(--tide-booking-search-itinerary-filter-country-background);
436
+
437
+ &-icon {
438
+ display: flex;
439
+ min-width: 30px;
440
+ max-width: 30px;
441
+ align-items: center;
442
+ justify-content: center;
443
+ color: var(--tide-booking-search-itinerary-filter-country-icon-color);
444
+ }
445
+
446
+ &-content {
447
+ h4 {
448
+ font-family: var(--tide-booking-search-itinerary-filter-country-title-font-family);
449
+ margin-bottom: 3px;
450
+ font-size: 20px;
451
+ font-weight: var(--tide-booking-search-itinerary-filter-country-title-font-weight);
452
+ color: var(--tide-booking-search-itinerary-filter-country-title-color);
453
+ }
454
+
455
+ p {
456
+ margin: 0px;
457
+ font-family: var(--tide-booking-search-itinerary-filter-country-text-font-family);
458
+ font-weight: var(--tide-booking-search-itinerary-filter-country-text-font-weight);
459
+ color: var(--tide-booking-search-itinerary-filter-country-text-color);
460
+
461
+ strong {
462
+ font-weight: var(--tide-booking-search-itinerary-filter-country-text-bold-font-weight);
463
+ color: var(--tide-booking-search-itinerary-filter-country-text-bold-color);
464
+ }
465
+ }
466
+ }
467
+ }
468
+
469
+ &__transport {
470
+ position: relative;
471
+ padding-left: 20px;
472
+ background: var(--tide-booking-search-itinerary-filter-transport-background);
473
+ border-radius: var(--tide-booking-search-itinerary-filter-transport-border-radius);
474
+ border: var(--tide-booking-search-itinerary-filter-transport-border);
475
+ box-shadow: var(--tide-booking-search-itinerary-filter-transport-box-shadow);
476
+
477
+ &-timeline {
478
+ height: 100%;
479
+ text-align: center;
480
+ content: ' ';
481
+ z-index: 1;
482
+ display: block;
483
+ top: 0;
484
+ left: 53px;
485
+ position: absolute;
486
+ width: 45px;
487
+ min-width: 45px;
488
+ max-width: 45px;
489
+
490
+ &-line {
491
+ width: 1px;
492
+ height: 100%;
493
+ margin: 0 auto;
494
+ border-left: var(--tide-booking-search-itinerary-filter-transport-timeline);
495
+ }
496
+ }
497
+
498
+ &-item {
499
+ display: flex;
500
+ align-items: center;
501
+ gap: 15px;
502
+ position: relative;
503
+ z-index: 2;
504
+ }
505
+
506
+ &-date {
507
+ min-width: 26px;
508
+ max-width: 26px;
509
+
510
+ p {
511
+ margin: 0px;
512
+ color: var(--tide-booking-search-itinerary-filter-transport-date-month-color);
513
+ font-weight: var(--tide-booking-search-itinerary-filter-transport-date-month-font-weight);
514
+ }
515
+
516
+ &-date {
517
+ font-size: 24px;
518
+
519
+ strong {
520
+ font-weight: var(--tide-booking-search-itinerary-filter-transport-date-day-font-weight);
521
+ color: var(--tide-booking-search-itinerary-filter-transport-date-day-color);
522
+ }
523
+ }
524
+ }
525
+
526
+ &-badge {
527
+ width: 30px;
528
+ min-width: 30px;
529
+ max-width: 30px;
530
+ height: 30px;
531
+ min-height: 30px;
532
+ max-height: 30px;
533
+ background-color: var(--tide-booking-search-itinerary-filter-transport-badge-icon-background-color);
534
+ border-radius: 50%;
535
+ display: flex;
536
+ align-items: center;
537
+ justify-content: center;
538
+ color: var(--tide-booking-search-itinerary-filter-transport-badge-icon-color);
539
+
540
+ &--default {
541
+ background-color: var(--tide-booking-search-itinerary-filter-segment-badge-icon-background-color);
542
+ color: var(--tide-booking-search-itinerary-filter-segment-badge-icon-color);
543
+ }
544
+
545
+ &--flight {
546
+ background-color: var(--tide-booking-search-itinerary-service-flight-color);
547
+ color: var(--tide-booking-white);
548
+ }
549
+
550
+ &--hotel {
551
+ background-color: var(--tide-booking-search-itinerary-service-hotel-color);
552
+ color: var(--tide-booking-white);
553
+ }
554
+
555
+ &--excursion {
556
+ background-color: var(--tide-booking-search-itinerary-service-excursion-color);
557
+ color: var(--tide-booking-white);
558
+ }
559
+
560
+ &--poi {
561
+ background-color: var(--tide-booking-search-itinerary-service-poi-color);
562
+ color: var(--tide-booking-white);
563
+ }
564
+
565
+ &--restaurant {
566
+ background-color: var(--tide-booking-search-itinerary-service-restaurant-color);
567
+ color: var(--tide-booking-white);
568
+ }
569
+ }
570
+
571
+ &-details {
572
+ display: flex;
573
+ flex-direction: column;
574
+ gap: 15px;
575
+
576
+ h6 {
577
+ margin: 0px;
578
+ font-size: 18px;
579
+ font-weight: var(--tide-booking-search-itinerary-filter-transport-title-font-weight);
580
+ color: var(--tide-booking-search-itinerary-filter-transport-title-color);
581
+ }
582
+
583
+ p {
584
+ margin: 0px;
585
+ font-size: 14px;
586
+ }
587
+
588
+ &-plane {
589
+ font-size: 14px;
590
+ display: flex;
591
+ align-items: center;
592
+ gap: 3px;
593
+
594
+ svg {
595
+ fill: var(--tide-booking-search-itinerary-filter-transport-plane-icon-color);
596
+ }
597
+
598
+ span {
599
+ display: flex;
600
+ align-items: center;
601
+ gap: 3px;
602
+ }
603
+
604
+ strong {
605
+ font-weight: var(--tide-booking-search-itinerary-filter-transport-plane-font-weight);
606
+ color: var(--tide-booking-search-itinerary-filter-transport-plane-color);
607
+ }
608
+ }
609
+
610
+ &-time {
611
+ span {
612
+ display: flex;
613
+ align-items: center;
614
+ }
615
+ }
616
+ }
617
+ }
618
+
619
+ &__segments {
620
+ position: relative;
621
+ display: flex;
622
+ flex-direction: column;
623
+ gap: 0;
624
+ gap: 15px;
625
+ padding: 15px 20px;
626
+ background: var(--tide-booking-search-itinerary-filter-segments-background);
627
+ box-shadow: var(--tide-booking-search-itinerary-filter-segments-box-shadow);
628
+ border-radius: var(--tide-booking-search-itinerary-filter-segments-border-radius);
629
+ border: var(--tide-booking-search-itinerary-filter-segments-border);
630
+
631
+ &__wrapper {
632
+ position: relative;
633
+ display: flex;
634
+ flex-direction: column;
635
+ gap: 30px;
636
+ }
637
+
638
+ &-timeline {
639
+ height: 100%;
640
+ text-align: center;
641
+ content: ' ';
642
+ z-index: 1;
643
+ display: block;
644
+ top: 0;
645
+ left: 33px;
646
+ position: absolute;
647
+ width: 45px;
648
+ min-width: 45px;
649
+ max-width: 45px;
650
+
651
+ &-line {
652
+ width: 1px;
653
+ height: 100%;
654
+ margin: 0 auto;
655
+ border-left: var(--tide-booking-search-itinerary-filter-segment-timeline);
656
+ }
657
+ }
658
+ }
659
+
660
+ &__segment {
661
+ position: relative;
662
+
663
+ &-item {
664
+ display: flex;
665
+ align-items: center;
666
+ gap: 15px;
667
+ position: relative;
668
+ z-index: 2;
669
+
670
+ &--start {
671
+ align-items: flex-start;
672
+ }
673
+
674
+ &--editable {
675
+ cursor: pointer;
676
+
677
+ &:hover {
678
+ background-color: rgba(0, 0, 0, 0.05);
679
+ }
680
+ }
681
+ }
682
+
683
+ &-badge {
684
+ width: 30px;
685
+ min-width: 30px;
686
+ max-width: 30px;
687
+ height: 30px;
688
+ min-height: 30px;
689
+ max-height: 30px;
690
+ background: var(--tide-booking-search-itinerary-filter-segment-badge-icon-background-color);
691
+ outline: 3px solid var(--tide-booking-search-itinerary-filter-segments-background);
692
+ border-radius: 50%;
693
+ display: flex;
694
+ align-items: center;
695
+ justify-content: center;
696
+ color: var(--tide-booking-search-itinerary-filter-segment-badge-icon-color);
697
+
698
+ &--secondary {
699
+ background: var(--tide-booking-search-itinerary-filter-segment-badge--secondary-icon-background-color);
700
+ color: var(--tide-booking-search-itinerary-filter-segment-badge--secondary-icon-color);
701
+ }
702
+
703
+ &--flight {
704
+ background: var(--tide-booking-search-itinerary-service-flight-color);
705
+ }
706
+
707
+ &--hotel {
708
+ background: var(--tide-booking-search-itinerary-service-hotel-color);
709
+ }
710
+
711
+ &--excursion {
712
+ background: var(--tide-booking-search-itinerary-service-excursion-color);
713
+ }
714
+
715
+ &--poi {
716
+ background: var(--tide-booking-search-itinerary-service-poi-color);
717
+ }
718
+
719
+ &--restaurant {
720
+ background: var(--tide-booking-search-itinerary-service-restaurant-color);
721
+ }
722
+ }
723
+
724
+ &-date {
725
+ p {
726
+ margin: 0px;
727
+ color: var(--tide-booking-search-itinerary-filter-segment-date-month-color);
728
+ font-weight: var(--tide-booking-search-itinerary-filter-segment-date-month-font-weight);
729
+ }
730
+
731
+ &-date {
732
+ font-size: 24px;
733
+
734
+ strong {
735
+ font-weight: var(--tide-booking-search-itinerary-filter-segment-date-day-font-weight);
736
+ color: var(--tide-booking-search-itinerary-filter-segment-date-day-color);
737
+ }
738
+ }
739
+ }
740
+
741
+ &-nights {
742
+ display: flex;
743
+ align-items: center;
744
+ flex-flow: row nowrap;
745
+ }
746
+
747
+ &-nights,
748
+ &-date {
749
+ min-width: 26px;
750
+ max-width: 26px;
751
+
752
+ svg {
753
+ min-width: 16px;
754
+ min-height: 16px;
755
+ }
756
+ }
757
+
758
+ &-details {
759
+ display: flex;
760
+ flex-direction: column;
761
+ gap: 10px;
762
+
763
+ h6 {
764
+ margin: 0;
765
+ font-size: 18px;
766
+ font-weight: var(--tide-booking-search-itinerary-filter-segment-title-font-weight);
767
+ color: var(--tide-booking-search-itinerary-filter-segment-title-color);
768
+ }
769
+
770
+ &__room {
771
+ display: flex;
772
+ align-items: center;
773
+ gap: 5px;
774
+ margin: 0px;
775
+ line-height: 1.2;
776
+ font-weight: var(--tide-booking-search-itinerary-filter-segment-text-font-weight);
777
+ color: var(--tide-booking-search-itinerary-filter-segment-text-color);
778
+
779
+ svg {
780
+ flex: 12px 0 0;
781
+ }
782
+ }
783
+
784
+ .rating {
785
+ display: flex;
786
+ align-items: center;
787
+ gap: 3px;
788
+
789
+ svg {
790
+ fill: var(--tide-booking-search-hotel-card-starrating-color);
791
+ }
792
+ }
793
+ }
794
+ }
795
+ }
796
+ }
797
+
798
+ &__results {
799
+ display: flex;
800
+ flex-direction: column;
801
+ width: 100%;
802
+ min-width: 0;
803
+
804
+ &__cards {
805
+ display: grid;
806
+ gap: 15px;
807
+ grid-template-columns: 1fr;
808
+ grid-template-rows: repeat(1, 1fr);
809
+
810
+ @include mixins.media-sm {
811
+ grid-template-columns: repeat(2, 1fr);
812
+ }
813
+
814
+ @include mixins.media-md {
815
+ grid-template-columns: repeat(3, 1fr);
816
+ }
817
+
818
+ @include mixins.media-lg {
819
+ grid-template-columns: repeat(2, 1fr);
820
+ }
821
+
822
+ @include mixins.media-xgl {
823
+ grid-template-columns: repeat(3, 1fr);
824
+ }
825
+
826
+ &__actions {
827
+ display: flex;
828
+ justify-content: space-between;
829
+ align-items: center;
830
+
831
+ .cta {
832
+ margin-left: auto;
833
+ }
834
+ }
835
+ }
836
+
837
+ &__cards--scroll {
838
+ display: flex;
839
+ flex-wrap: nowrap;
840
+ overflow-x: auto;
841
+ overflow-y: hidden;
842
+ scroll-snap-type: x proximity;
843
+ -webkit-overflow-scrolling: touch;
844
+ padding-bottom: 5px;
845
+
846
+ @include mixins.media-sm {
847
+ grid-template-columns: none;
848
+ }
849
+
850
+ @include mixins.media-md {
851
+ grid-template-columns: none;
852
+ }
853
+
854
+ @include mixins.media-lg {
855
+ grid-template-columns: none;
856
+ }
857
+
858
+ @include mixins.media-xgl {
859
+ grid-template-columns: none;
860
+ }
861
+
862
+ > * {
863
+ flex: 0 0 auto;
864
+ scroll-snap-align: start;
865
+ width: 280px;
866
+ max-width: 85vw;
867
+
868
+ @include mixins.media-md {
869
+ width: 320px;
870
+ }
871
+ }
872
+ }
873
+
874
+ &__wrapper {
875
+ display: flex;
876
+ flex-direction: column;
877
+ gap: 15px;
878
+
879
+ .search__results__label {
880
+ &:first-child {
881
+ margin-top: 15px;
882
+ }
883
+ }
884
+ }
885
+
886
+ &__label {
887
+ display: grid;
888
+ grid-template-columns: 50px 1fr;
889
+ grid-template-rows: 50px;
890
+ align-items: center;
891
+ border-radius: var(--tide-booking-search-results-label-border-radius);
892
+ overflow: hidden;
893
+ margin-top: 30px;
894
+
895
+ &__date {
896
+ display: flex;
897
+ flex-flow: column;
898
+ align-items: center;
899
+ justify-content: center;
900
+ height: 100%;
901
+
902
+ background: var(--tide-booking-search-results-label-date-background);
903
+ border: var(--tide-booking-search-results-label-date-border);
904
+
905
+ p {
906
+ margin: 0px;
907
+ font-weight: var(--tide-booking-search-results-label-date-month-font-weight);
908
+ color: var(--tide-booking-search-results-label-date-month-color);
909
+ }
910
+
911
+ &-date {
912
+ font-size: 24px;
913
+ font-weight: var(--tide-booking-search-results-label-date-day-font-weight);
914
+ color: var(--tide-booking-search-results-label-date-day-color);
915
+ }
916
+ }
917
+
918
+ &__text {
919
+ border: var(--tide-booking-search-results-label-border);
920
+ border-left: none;
921
+ height: 50px;
922
+ display: flex;
923
+ align-items: center;
924
+ padding-left: 15px;
925
+ gap: 10px;
926
+
927
+ svg {
928
+ fill: var(--tide-booking-gray-dark);
929
+ }
930
+
931
+ h3 {
932
+ display: flex;
933
+ align-items: center;
934
+ gap: 3px;
935
+ margin: 0px;
936
+ color: var(--tide-booking-search-results-label-title-color);
937
+ font-weight: var(--tide-booking-search-results-label-font-weight);
938
+
939
+ strong {
940
+ font-weight: var(--tide-booking-search-results-label-title-bold-font-weight);
941
+ color: var(--tide-booking-search-results-label-title-bold-color);
942
+ }
943
+ }
944
+ }
945
+
946
+ &--secondary {
947
+ .search__results__label__date {
948
+ background: var(--tide-booking-search-results-label-date-background--secondary);
949
+ border: var(--tide-booking-search-results-label-date-border--secondary);
950
+ }
951
+ }
952
+
953
+ // Something inside a day rather than a day of its own: no date, no box, and quieter type,
954
+ // sitting close to what it introduces.
955
+ &--sub {
956
+ grid-template-columns: 1fr;
957
+ grid-template-rows: auto;
958
+ margin-top: 20px;
959
+
960
+ .search__results__label__text {
961
+ height: auto;
962
+ border: none;
963
+ padding: 0px;
964
+ gap: 8px;
965
+
966
+ h3 {
967
+ font-size: 16px;
968
+ }
969
+ }
970
+ }
971
+ }
972
+
973
+ &__options {
974
+ display: flex;
975
+ align-items: center;
976
+ justify-content: space-between;
977
+ gap: 15px;
978
+ padding: 15px 30px;
979
+ box-shadow: var(--tide-booking-search-more-options-box-shadow);
980
+ border: var(--tide-booking-search-more-options-border);
981
+ background-color: var(--tide-booking-search-more-options-background);
982
+ border-radius: var(--tide-booking-search-more-options-border-radius);
983
+
984
+ p {
985
+ margin: 0px;
986
+ color: var(--tide-booking-search-more-options-color);
987
+ }
988
+ }
989
+
990
+ &__tab-views {
991
+ display: none;
992
+ align-items: center;
993
+
994
+ @include mixins.media-sm {
995
+ display: flex;
996
+ }
997
+ }
998
+
999
+ &__tab-view {
1000
+ width: 100%;
1001
+ display: flex;
1002
+ align-items: center;
1003
+ gap: 5px;
1004
+ font-size: 18px;
1005
+ color: var(--tide-booking-search-tab-view-color);
1006
+ background: var(--tide-booking-search-tab-view-background);
1007
+ border: none;
1008
+ border-bottom: var(--tide-booking-search-tab-view-border);
1009
+ cursor: pointer;
1010
+ outline: none;
1011
+ padding: 10px 20px;
1012
+ transition: all 0.3s ease;
1013
+
1014
+ &:hover {
1015
+ color: var(--tide-booking-search-tab-view-hover-color);
1016
+ background: var(--tide-booking-search-tab-view-hover-background);
1017
+ border-bottom: var(--tide-booking-search-tab-view-hover-border);
1018
+ }
1019
+
1020
+ &--active {
1021
+ color: var(--tide-booking-search-tab-view-active-color);
1022
+ background: var(--tide-booking-search-tab-view-active-background);
1023
+ border-bottom: var(--tide-booking-search-tab-view-active-border);
1024
+ }
1025
+ }
1026
+
1027
+ &__actions {
1028
+ display: flex;
1029
+ align-items: center;
1030
+ gap: 16px;
1031
+ }
1032
+ }
1033
+
1034
+ &__result {
1035
+ display: flex;
1036
+ flex-wrap: wrap;
1037
+ gap: 15px;
1038
+ margin: 0;
1039
+ margin-bottom: 20px;
1040
+
1041
+ &--flight {
1042
+ display: grid;
1043
+ gap: 0;
1044
+ grid-template-columns: 1fr;
1045
+ margin: 0 0 30px;
1046
+
1047
+ @include mixins.media-md {
1048
+ grid-template-rows: repeat(1, 1fr);
1049
+ }
1050
+
1051
+ @include mixins.media-lg {
1052
+ grid-template-columns: 1fr 257px;
1053
+ }
1054
+ }
1055
+
1056
+ &-row {
1057
+ display: flex;
1058
+ align-items: center;
1059
+ justify-content: space-between;
1060
+ margin-bottom: 12px;
1061
+ margin-top: 18px;
1062
+
1063
+ @include mixins.media-sm {
1064
+ margin-bottom: 24px;
1065
+ }
1066
+
1067
+ &-text {
1068
+ font-size: 16px;
1069
+ color: gray;
1070
+ margin: 0;
1071
+ }
1072
+
1073
+ .cta--filter {
1074
+ position: relative;
1075
+ top: 0px;
1076
+ left: 0px;
1077
+ }
1078
+
1079
+ // &-button {
1080
+ // width: 13.5rem;
1081
+ // height: 3.5rem;
1082
+ // display: flex;
1083
+ // justify-content: space-between;
1084
+ // align-items: center;
1085
+ // padding: 0 1rem;
1086
+ // border: 1px solid blue;
1087
+ // border-radius: 3px;
1088
+ // color: blue;
1089
+ // cursor: pointer;
1090
+ // transition: all 0.2s ease-in-out;
1091
+
1092
+ // &:hover {
1093
+ // background: red;
1094
+ // color: yellow;
1095
+
1096
+ // .search__result-row-icon {
1097
+ // fill: white;
1098
+ // }
1099
+ // }
1100
+ // }
1101
+
1102
+ &-icon {
1103
+ fill: red;
1104
+ }
1105
+
1106
+ .dropdown {
1107
+ &:after {
1108
+ display: none;
1109
+ }
1110
+
1111
+ &__label {
1112
+ display: none;
1113
+
1114
+ @include mixins.media-sm {
1115
+ display: block;
1116
+ }
1117
+ }
1118
+
1119
+ &__input {
1120
+ width: auto;
1121
+ }
1122
+
1123
+ &-toggle {
1124
+ min-width: 165px;
1125
+ }
1126
+ }
1127
+ }
1128
+
1129
+ &-card {
1130
+ // flex-basis: 100%;
1131
+
1132
+ // @include mixins.media-xs {
1133
+ // flex-basis: calc(50% - 8px);
1134
+ // }
1135
+
1136
+ // @include mixins.media-lg {
1137
+ // flex: calc(33% - 8px) 0 0;
1138
+ // }
1139
+
1140
+ &__wrapper {
1141
+ height: 100%;
1142
+ display: flex;
1143
+ flex-direction: column;
1144
+ justify-content: space-between;
1145
+ align-items: stretch;
1146
+ cursor: pointer;
1147
+ border-radius: var(--tide-booking-search-hotel-card-border-radius);
1148
+ overflow: hidden;
1149
+ box-shadow: var(--tide-booking-search-hotel-card-box-shadow);
1150
+ background-color: var(--tide-booking-search-hotel-card-background);
1151
+ transition: transform 0.3s ease-in-out;
1152
+
1153
+ &--custom {
1154
+ gap: 20px;
1155
+
1156
+ .search__result-card__footer {
1157
+ padding: 20px;
1158
+ padding-top: 0px;
1159
+ }
1160
+ }
1161
+ }
1162
+
1163
+ &__top {
1164
+ display: flex;
1165
+ flex-direction: column;
1166
+ justify-content: flex-start;
1167
+ align-items: flex-start;
1168
+ width: 100%;
1169
+ }
1170
+
1171
+ &__img-wrapper {
1172
+ position: relative;
1173
+ width: 100%;
1174
+ height: 200px;
1175
+ overflow: hidden;
1176
+ background-color: #f5f5f5;
1177
+ }
1178
+
1179
+ &__img {
1180
+ width: 100%;
1181
+ height: 100%;
1182
+ object-fit: cover;
1183
+ }
1184
+
1185
+ &__price {
1186
+ font-family: var(--tide-booking-search-hotel-card-price-font-family);
1187
+ font-weight: var(--tide-booking-search-hotel-card-price-font-weight);
1188
+ color: var(--tide-booking-search-hotel-card-price-color);
1189
+ font-size: 20px;
1190
+
1191
+ &__wrapper {
1192
+ position: absolute;
1193
+ bottom: 0px;
1194
+ right: 0px;
1195
+ background: var(--tide-booking-search-hotel-card-price-background-color);
1196
+ display: flex;
1197
+ flex-flow: column nowrap;
1198
+ align-items: center;
1199
+ justify-content: center;
1200
+ gap: 5px;
1201
+ padding: 5px 20px;
1202
+ border-radius: 5px 0 0 0;
1203
+ box-shadow: var(--tide-booking-search-hotel-card-price-box-shadow);
1204
+ }
1205
+
1206
+ &__label {
1207
+ font-size: 12px;
1208
+ font-weight: var(--tide-booking-search-hotel-card-price-label-font-weight);
1209
+ color: var(--tide-booking-search-hotel-card-price-label-color);
1210
+ }
1211
+ }
1212
+
1213
+ &__content {
1214
+ display: flex;
1215
+ flex-direction: column;
1216
+ justify-content: space-between;
1217
+ gap: 20px;
1218
+ padding: 15px;
1219
+ height: calc(100% - 200px);
1220
+
1221
+ &__wrapper {
1222
+ display: flex;
1223
+ flex-direction: column;
1224
+ gap: 10px;
1225
+ }
1226
+
1227
+ &--extra {
1228
+ padding: 0 15px;
1229
+ margin-top: -20px;
1230
+ }
1231
+ }
1232
+
1233
+ &__header {
1234
+ position: relative;
1235
+ display: flex;
1236
+ justify-content: space-between;
1237
+ gap: 5px;
1238
+
1239
+ &__wrapper {
1240
+ .rating {
1241
+ display: flex;
1242
+ align-items: center;
1243
+ gap: 3px;
1244
+
1245
+ svg {
1246
+ fill: var(--tide-booking-search-hotel-card-starrating-color);
1247
+ }
1248
+ }
1249
+ }
1250
+ }
1251
+
1252
+ &__title {
1253
+ font-family: var(--tide-booking-search-hotel-card-title-font-family);
1254
+ font-weight: var(--tide-booking-search-hotel-card-title-font-weight);
1255
+ color: var(--tide-booking-search-hotel-card-title-color);
1256
+ margin-bottom: 0px;
1257
+ }
1258
+
1259
+ &__location {
1260
+ display: flex;
1261
+ justify-content: flex-start;
1262
+ align-items: flex-start;
1263
+ gap: 5px;
1264
+ font-size: 14px;
1265
+ line-height: 1.5;
1266
+ margin-bottom: 0px;
1267
+ color: var(--tide-booking-search-hotel-card-option-color);
1268
+ font-weight: var(--tide-booking-search-hotel-card-location-font-weight);
1269
+
1270
+ svg {
1271
+ width: 16px;
1272
+ height: 16px;
1273
+ margin-top: 3px;
1274
+ fill: var(--tide-booking-search-hotel-card-location-icon-color);
1275
+ }
1276
+ }
1277
+
1278
+ &__description {
1279
+ display: none;
1280
+ font-size: 16px;
1281
+ font-weight: var(--tide-booking-search-hotel-card-description-font-weight);
1282
+ line-height: 1.5;
1283
+ color: var(--tide-booking-search-hotel-card-description-color);
1284
+ margin-bottom: 0px;
1285
+ -webkit-line-clamp: 3;
1286
+ -webkit-box-orient: vertical;
1287
+ overflow: hidden;
1288
+ }
1289
+
1290
+ &__options {
1291
+ display: flex;
1292
+ flex-wrap: wrap;
1293
+ gap: 20px;
1294
+ margin-top: 10px;
1295
+ }
1296
+
1297
+ &__option {
1298
+ display: flex;
1299
+ align-items: center;
1300
+ flex-flow: nowrap;
1301
+ gap: 5px;
1302
+ font-weight: var(--tide-booking-search-hotel-card-option-font-weight);
1303
+ color: var(--tide-booking-search-hotel-card-option-color);
1304
+ font-size: 14px;
1305
+
1306
+ svg {
1307
+ width: 16px;
1308
+ height: 16px;
1309
+ fill: var(--tide-booking-search-hotel-card-option-icon-color);
1310
+ }
1311
+ }
1312
+
1313
+ &__footer {
1314
+ display: flex;
1315
+ justify-content: space-between;
1316
+ align-items: center;
1317
+ gap: 1rem;
1318
+ }
1319
+
1320
+ &__allotment {
1321
+ display: flex;
1322
+ justify-content: space-between;
1323
+ flex-direction: column;
1324
+ gap: 30px;
1325
+ background: var(--tide-booking-search-hotel-card-allotments-background);
1326
+ padding: 20px;
1327
+ border-radius: var(--tide-booking-search-hotel-card-allotments-border-radius);
1328
+ border: var(--tide-booking-search-hotel-card-allotments-border);
1329
+ box-shadow: var(--tide-booking-search-hotel-card-allotments-box-shadow);
1330
+
1331
+ @include mixins.media-sm {
1332
+ flex-direction: row;
1333
+ gap: 20px;
1334
+ }
1335
+
1336
+ &__container {
1337
+ display: grid;
1338
+ grid-template-rows: repeat(1, 1fr);
1339
+ gap: 15px;
1340
+ width: 100%;
1341
+
1342
+ @include mixins.media-xs {
1343
+ grid-template-columns: 1fr 0.8fr;
1344
+ }
1345
+ }
1346
+
1347
+ &__header {
1348
+ display: flex;
1349
+ flex-direction: column;
1350
+
1351
+ gap: 15px;
1352
+
1353
+ @include mixins.media-sm {
1354
+ justify-content: space-between;
1355
+ }
1356
+ }
1357
+
1358
+ &__img {
1359
+ width: 100%;
1360
+ height: 100%;
1361
+ object-fit: cover;
1362
+ }
1363
+
1364
+ &__img-wrapper {
1365
+ border-radius: 16px 16px 0 0;
1366
+ position: relative;
1367
+ width: 100%;
1368
+ height: 200px;
1369
+ overflow: hidden;
1370
+ background-color: #f5f5f5;
1371
+
1372
+ @include mixins.media-md {
1373
+ width: 40%;
1374
+ height: auto;
1375
+ border-radius: 16px 0 0 16px;
1376
+ }
1377
+
1378
+ @include mixins.media-lg {
1379
+ width: 100%;
1380
+ height: 200px;
1381
+ border-radius: 16px 16px 0 0;
1382
+ }
1383
+
1384
+ @include mixins.media-xl {
1385
+ width: 40%;
1386
+ height: auto;
1387
+ border-radius: 16px 0 0 16px;
1388
+ }
1389
+ }
1390
+
1391
+ &__title {
1392
+ font-weight: var(--tide-booking-search-hotel-card-allotments-title-font-weight);
1393
+ color: var(--tide-booking-search-hotel-card-allotments-title-color);
1394
+ margin: 0;
1395
+ display: flex;
1396
+ align-items: center;
1397
+ justify-content: space-between;
1398
+ gap: 5px;
1399
+ width: 100%;
1400
+
1401
+ @include mixins.media-sm {
1402
+ justify-content: flex-start;
1403
+ }
1404
+
1405
+ &__wrapper {
1406
+ display: flex;
1407
+ align-items: flex-start;
1408
+ flex-direction: column;
1409
+ gap: 10px;
1410
+ width: 100%;
1411
+
1412
+ @include mixins.media-sm {
1413
+ justify-content: space-between;
1414
+ }
1415
+ }
1416
+ }
1417
+
1418
+ &__badge {
1419
+ border: var(--tide-booking-search-hotel-card-allotments-badge-border);
1420
+ background: var(--tide-booking-search-hotel-card-allotments-badge-background);
1421
+ color: var(--tide-booking-search-hotel-card-allotments-badge-color);
1422
+ font-weight: var(--tide-booking-search-hotel-card-allotments-badge-font-weight);
1423
+ padding: 5px 10px;
1424
+ border-radius: var(--tide-booking-search-hotel-card-allotments-badge-border-radius);
1425
+ font-size: 12px;
1426
+ // display: flex;
1427
+ // align-items: center;
1428
+ // gap: 5px;
1429
+ white-space: nowrap;
1430
+ vertical-align: middle;
1431
+ line-height: 1.5;
1432
+
1433
+ svg {
1434
+ vertical-align: sub;
1435
+ margin-right: 3px;
1436
+ }
1437
+
1438
+ &--secondary {
1439
+ border: var(--tide-booking-search-hotel-card-allotments-badge--secondary-border);
1440
+ background: var(--tide-booking-search-hotel-card-allotments-badge--secondary-background);
1441
+ color: var(--tide-booking-search-hotel-card-allotments-badge--secondary-color);
1442
+ }
1443
+ }
1444
+
1445
+ &__info {
1446
+ display: flex;
1447
+ align-items: flex-end;
1448
+ gap: 10px;
1449
+ }
1450
+
1451
+ &__persons {
1452
+ margin: 0;
1453
+ display: flex;
1454
+ align-items: flex-end;
1455
+ gap: 5px;
1456
+ }
1457
+
1458
+ &__person {
1459
+ display: flex;
1460
+ align-items: flex-end;
1461
+ gap: 3px;
1462
+ font-weight: var(--tide-booking-search-hotel-card-allotments-persons-font-weight);
1463
+ color: var(--tide-booking-search-hotel-card-allotments-persons-color);
1464
+
1465
+ span {
1466
+ color: var(--tide-booking-search-hotel-card-allotments-persons-number-color);
1467
+ }
1468
+ }
1469
+
1470
+ &__wrapper {
1471
+ display: flex;
1472
+ flex-direction: column;
1473
+ gap: 15px;
1474
+ }
1475
+
1476
+ &__date {
1477
+ font-weight: var(--tide-booking-search-hotel-card-allotments-date-font-weight);
1478
+ color: var(--tide-booking-search-hotel-card-allotments-date-color);
1479
+ margin: 0;
1480
+ display: flex;
1481
+ align-items: center;
1482
+ gap: 5px;
1483
+ line-height: 1.5;
1484
+ }
1485
+
1486
+ &__footer {
1487
+ display: flex;
1488
+ flex-direction: column;
1489
+ justify-content: space-between;
1490
+ gap: 20px;
1491
+
1492
+ @include mixins.media-xs {
1493
+ flex-direction: row;
1494
+ }
1495
+
1496
+ @include mixins.media-sm {
1497
+ align-items: flex-end;
1498
+ flex-direction: column;
1499
+ }
1500
+
1501
+ @include mixins.media-lg {
1502
+ min-width: 288px;
1503
+ }
1504
+
1505
+ .cta {
1506
+ width: auto !important;
1507
+ }
1508
+ }
1509
+
1510
+ &__price {
1511
+ font-size: 20px;
1512
+ font-weight: var(--tide-booking-search-hotel-card-allotments-price-font-weight);
1513
+ color: var(--tide-booking-search-hotel-card-allotments-price-color);
1514
+ margin: 0;
1515
+
1516
+ &__wrapper {
1517
+ display: flex;
1518
+ flex-direction: column;
1519
+ align-items: flex-end;
1520
+ gap: 5px;
1521
+ min-width: 200px;
1522
+
1523
+ @include mixins.media-xs {
1524
+ align-items: flex-start;
1525
+ }
1526
+
1527
+ @include mixins.media-sm {
1528
+ align-items: flex-end;
1529
+ }
1530
+ }
1531
+
1532
+ &__info {
1533
+ text-align: right;
1534
+ line-height: 1.5;
1535
+
1536
+ @include mixins.media-xs {
1537
+ text-align: left;
1538
+ }
1539
+
1540
+ @include mixins.media-sm {
1541
+ text-align: right;
1542
+ }
1543
+ }
1544
+ }
1545
+ }
1546
+ }
1547
+ }
1548
+
1549
+ &__flight-card {
1550
+ padding: 0 8px 8px 8px;
1551
+ border-radius: 20px;
1552
+ background: white;
1553
+ border: 1px solid blue;
1554
+
1555
+ @include mixins.media-sm {
1556
+ padding: 0.75rem 2rem;
1557
+ }
1558
+
1559
+ @include mixins.media-lg {
1560
+ width: 100%;
1561
+ }
1562
+
1563
+ &-content {
1564
+ position: relative;
1565
+ display: grid;
1566
+ grid-template-columns: repeat(3, 1fr);
1567
+ gap: 1rem;
1568
+
1569
+ @include mixins.media-sm {
1570
+ /* grid-template-columns: repeat(3, 1fr); */
1571
+ grid-template-columns: repeat(5, 1fr);
1572
+ gap: 30px;
1573
+ }
1574
+
1575
+ &-radio {
1576
+ position: absolute;
1577
+ top: 50%;
1578
+ left: 15px;
1579
+
1580
+ &::before {
1581
+ content: '';
1582
+ position: absolute;
1583
+ top: 50%;
1584
+ left: -3rem; // Adjust this value to position the line correctly
1585
+ width: calc(100% + 0.5rem); // Adjust this value to extend the line to the left edge
1586
+ height: 1px; // Adjust the thickness of the line
1587
+ background-color: blue; // Line color
1588
+ transform: translateY(-50%);
1589
+ }
1590
+ }
1591
+
1592
+ &-top {
1593
+ border-bottom: 1px solid blue;
1594
+ padding: 1rem 0;
1595
+ }
1596
+
1597
+ &-bottom {
1598
+ margin-bottom: 0.25rem;
1599
+ margin-top: 1.5rem;
1600
+ }
1601
+
1602
+ &-icon {
1603
+ fill: red;
1604
+
1605
+ &--flipped {
1606
+ transform: rotate(180deg);
1607
+ }
1608
+ }
1609
+
1610
+ &-start {
1611
+ grid-column: span 2;
1612
+ display: flex;
1613
+ flex-direction: column;
1614
+ align-items: flex-end;
1615
+
1616
+ &-time {
1617
+ display: flex;
1618
+ align-items: center;
1619
+ gap: 1rem;
1620
+
1621
+ h5 {
1622
+ font-size: 18px;
1623
+ font-weight: 400;
1624
+ color: gray;
1625
+ margin: 0;
1626
+ }
1627
+ }
1628
+
1629
+ &-destination {
1630
+ color: black;
1631
+ font-size: 14px;
1632
+ margin-top: 0.5rem;
1633
+ margin-bottom: 0;
1634
+ text-align: end;
1635
+ }
1636
+
1637
+ &-date {
1638
+ font-size: 15px;
1639
+ color: gray;
1640
+ margin-top: 0;
1641
+ text-align: end;
1642
+ }
1643
+ }
1644
+
1645
+ &-stops {
1646
+ grid-column: span 1;
1647
+
1648
+ display: flex;
1649
+ flex-direction: column;
1650
+ align-items: center;
1651
+ justify-content: center;
1652
+ gap: 4px;
1653
+
1654
+ max-width: 5.5rem;
1655
+
1656
+ &-info {
1657
+ display: flex;
1658
+ justify-content: center;
1659
+ align-items: center;
1660
+ gap: 8px;
1661
+
1662
+ &-text {
1663
+ font-size: 14px;
1664
+ color: gray;
1665
+ margin: 0;
1666
+ }
1667
+
1668
+ &-hour {
1669
+ font-size: 14px;
1670
+ color: gray;
1671
+ margin-top: 0;
1672
+ margin-bottom: 16px;
1673
+ }
1674
+ }
1675
+ }
1676
+
1677
+ &-end {
1678
+ grid-column: span 2;
1679
+
1680
+ display: flex;
1681
+ flex-direction: column;
1682
+ align-items: flex-start;
1683
+
1684
+ &-time {
1685
+ font-size: 18px;
1686
+ font-weight: 400;
1687
+
1688
+ color: black;
1689
+
1690
+ margin: 0;
1691
+ }
1692
+
1693
+ &-destination {
1694
+ color: black;
1695
+ font-size: 14px;
1696
+
1697
+ margin-top: 8px;
1698
+ margin-bottom: 0;
1699
+
1700
+ text-align: left;
1701
+ }
1702
+
1703
+ &-date {
1704
+ font-size: 14px;
1705
+ color: gray;
1706
+
1707
+ margin-top: 0;
1708
+
1709
+ text-align: left;
1710
+
1711
+ &--warning {
1712
+ color: pink;
1713
+ }
1714
+
1715
+ &-wrapper {
1716
+ display: flex;
1717
+ align-items: center;
1718
+ gap: 8px;
1719
+ }
1720
+
1721
+ &-icon {
1722
+ margin-top: 5px;
1723
+ }
1724
+ }
1725
+ }
1726
+ }
1727
+ }
1728
+
1729
+ &__banner {
1730
+ display: flex;
1731
+ justify-content: center;
1732
+ margin-bottom: 60px;
1733
+ margin-top: 30px;
1734
+ }
1735
+
1736
+ &__results__cards--extended {
1737
+ @include mixins.media-sm {
1738
+ grid-template-columns: repeat(1, 1fr);
1739
+ }
1740
+
1741
+ @include mixins.media-lg {
1742
+ grid-template-columns: repeat(1, 1fr);
1743
+ }
1744
+
1745
+ .search__result-card {
1746
+ &__wrapper {
1747
+ @include mixins.media-sm {
1748
+ flex-direction: row;
1749
+ justify-content: flex-start;
1750
+ }
1751
+
1752
+ @include mixins.media-lg {
1753
+ flex-direction: row;
1754
+ }
1755
+ }
1756
+
1757
+ &__top {
1758
+ @include mixins.media-sm {
1759
+ flex-direction: row;
1760
+ }
1761
+ }
1762
+
1763
+ &__img-wrapper {
1764
+ @include mixins.media-sm {
1765
+ width: 40%;
1766
+ min-height: 100%;
1767
+ overflow: hidden;
1768
+ }
1769
+
1770
+ @include mixins.media-lg {
1771
+ width: 40%;
1772
+ min-height: 100%;
1773
+ }
1774
+ }
1775
+
1776
+ &__price {
1777
+ &__wrapper {
1778
+ @include mixins.media-sm {
1779
+ position: absolute;
1780
+ bottom: auto;
1781
+ right: auto;
1782
+ top: 0px;
1783
+ left: 50%;
1784
+ transform: translateX(-50%);
1785
+ border-radius: 0 0 5px 5px;
1786
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
1787
+ }
1788
+ }
1789
+ }
1790
+
1791
+ &__content {
1792
+ @include mixins.media-sm {
1793
+ width: 60%;
1794
+ padding: 20px;
1795
+ height: auto;
1796
+ }
1797
+
1798
+ @include mixins.media-lg {
1799
+ width: 60%;
1800
+ padding: 20px;
1801
+ }
1802
+ }
1803
+
1804
+ &__header {
1805
+ &__wrapper {
1806
+ @include mixins.media-sm {
1807
+ display: flex;
1808
+ flex-direction: row-reverse;
1809
+ align-items: center;
1810
+ gap: 10px;
1811
+ }
1812
+
1813
+ @include mixins.media-lg {
1814
+ flex-direction: row-reverse;
1815
+ align-items: center;
1816
+ }
1817
+
1818
+ .rating {
1819
+ margin-top: 2px;
1820
+ }
1821
+ }
1822
+ }
1823
+
1824
+ &__description {
1825
+ @include mixins.media-sm {
1826
+ display: -webkit-box;
1827
+ }
1828
+ }
1829
+
1830
+ &__footer {
1831
+ @include mixins.media-sm {
1832
+ justify-content: flex-end;
1833
+ align-items: flex-end;
1834
+
1835
+ .cta {
1836
+ width: auto;
1837
+ min-width: 150px;
1838
+ }
1839
+ }
1840
+ }
1841
+
1842
+ &__allotment {
1843
+ padding: 0px;
1844
+
1845
+ @include mixins.media-sm {
1846
+ flex-direction: column;
1847
+ }
1848
+
1849
+ @include mixins.media-md {
1850
+ flex-direction: row;
1851
+ }
1852
+
1853
+ @include mixins.media-lg {
1854
+ flex-direction: column;
1855
+ }
1856
+
1857
+ @include mixins.media-xl {
1858
+ flex-direction: row;
1859
+ }
1860
+
1861
+ &__title__wrapper {
1862
+ padding: 0px 20px;
1863
+
1864
+ @include mixins.media-md {
1865
+ padding: 20px 0px;
1866
+ }
1867
+
1868
+ @include mixins.media-lg {
1869
+ padding: 0px 20px;
1870
+ }
1871
+
1872
+ @include mixins.media-xl {
1873
+ padding: 20px 0px;
1874
+ }
1875
+ }
1876
+
1877
+ &__footer {
1878
+ padding: 0px 20px;
1879
+ padding-bottom: 20px;
1880
+
1881
+ @include mixins.media-sm {
1882
+ flex-direction: row;
1883
+ align-items: flex-start;
1884
+ }
1885
+
1886
+ @include mixins.media-md {
1887
+ flex-direction: column;
1888
+ align-items: flex-end;
1889
+ padding: 20px 0px;
1890
+ padding-right: 20px;
1891
+ }
1892
+
1893
+ @include mixins.media-lg {
1894
+ flex-direction: row;
1895
+ align-items: flex-start;
1896
+ padding: 0px 20px;
1897
+ padding-bottom: 20px;
1898
+ }
1899
+
1900
+ @include mixins.media-xl {
1901
+ flex-direction: column;
1902
+ align-items: flex-end;
1903
+ padding: 20px 0px;
1904
+ padding-right: 20px;
1905
+ }
1906
+ }
1907
+
1908
+ &__price {
1909
+ &__wrapper {
1910
+ @include mixins.media-sm {
1911
+ align-items: flex-start;
1912
+ }
1913
+
1914
+ @include mixins.media-md {
1915
+ align-items: flex-end;
1916
+ }
1917
+
1918
+ @include mixins.media-lg {
1919
+ align-items: flex-start;
1920
+ }
1921
+
1922
+ @include mixins.media-xl {
1923
+ align-items: flex-end;
1924
+ }
1925
+ }
1926
+ }
1927
+ }
1928
+ }
1929
+ }
1930
+
1931
+ &__results__cards--list {
1932
+ @include mixins.media-sm {
1933
+ grid-template-columns: repeat(1, 1fr);
1934
+ }
1935
+
1936
+ @include mixins.media-lg {
1937
+ grid-template-columns: repeat(1, 1fr);
1938
+ }
1939
+
1940
+ .search__result-card {
1941
+ &__wrapper {
1942
+ @include mixins.media-sm {
1943
+ flex-direction: row;
1944
+ justify-content: flex-start;
1945
+ }
1946
+
1947
+ @include mixins.media-lg {
1948
+ flex-direction: row;
1949
+ }
1950
+ }
1951
+
1952
+ &__top {
1953
+ @include mixins.media-sm {
1954
+ flex-direction: row;
1955
+ }
1956
+ }
1957
+
1958
+ &__img-wrapper {
1959
+ @include mixins.media-sm {
1960
+ min-width: 175px;
1961
+ width: 175px;
1962
+ height: 175px;
1963
+ min-height: 100%;
1964
+ overflow: hidden;
1965
+ }
1966
+
1967
+ @include mixins.media-lg {
1968
+ min-width: 175px;
1969
+ height: 175px;
1970
+ min-height: 100%;
1971
+ }
1972
+ }
1973
+
1974
+ &__price {
1975
+ &__wrapper {
1976
+ @include mixins.media-sm {
1977
+ position: absolute;
1978
+ bottom: auto;
1979
+ right: auto;
1980
+ top: 0px;
1981
+ left: 50%;
1982
+ transform: translateX(-50%);
1983
+ min-width: 96px;
1984
+ border-radius: 0 0 5px 5px;
1985
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
1986
+ }
1987
+ }
1988
+ }
1989
+
1990
+ &__content {
1991
+ @include mixins.media-sm {
1992
+ flex-direction: row;
1993
+ width: 100%;
1994
+ padding: 15px 20px;
1995
+ height: auto;
1996
+ }
1997
+
1998
+ @include mixins.media-lg {
1999
+ width: 100%;
2000
+ padding: 15px 20px;
2001
+ }
2002
+ }
2003
+
2004
+ &__header {
2005
+ &__wrapper {
2006
+ @include mixins.media-sm {
2007
+ display: flex;
2008
+ flex-direction: row-reverse;
2009
+ align-items: center;
2010
+ gap: 10px;
2011
+ }
2012
+
2013
+ @include mixins.media-lg {
2014
+ flex-direction: row-reverse;
2015
+ align-items: center;
2016
+ }
2017
+
2018
+ .rating {
2019
+ margin-top: 2px;
2020
+ }
2021
+ }
2022
+ }
2023
+
2024
+ &__description {
2025
+ display: none;
2026
+ }
2027
+
2028
+ &__footer {
2029
+ @include mixins.media-sm {
2030
+ justify-content: flex-end;
2031
+ align-items: flex-end;
2032
+
2033
+ .cta {
2034
+ width: auto;
2035
+ min-width: 150px;
2036
+ }
2037
+ }
2038
+ }
2039
+
2040
+ &__allotment {
2041
+ &__img-wrapper {
2042
+ display: none;
2043
+ }
2044
+
2045
+ &__description {
2046
+ display: none;
2047
+ }
2048
+ }
2049
+ }
2050
+ }
2051
+ }
2052
+
2053
+ .star-rating-filter {
2054
+ display: flex;
2055
+ justify-content: flex-end;
2056
+ flex-direction: row-reverse;
2057
+ gap: 15px;
2058
+ font-size: 24px;
2059
+ cursor: pointer;
2060
+
2061
+ .star {
2062
+ color: var(--tide-booking-star-rating-color);
2063
+ /* unfilled */
2064
+ transition: color 0.2s;
2065
+ }
2066
+
2067
+ .star.filled {
2068
+ color: var(--tide-booking-star-rating-color--filled);
2069
+ /* filled gold */
2070
+ }
2071
+
2072
+ .star:hover,
2073
+ .star:hover ~ .star {
2074
+ color: var(--tide-booking-star-rating-color--hover);
2075
+ }
2076
+ }
2077
+
2078
+ .search__filter-toggle-label {
2079
+ vertical-align: middle;
2080
+ font-size: 0.95rem;
2081
+ }
2082
+
2083
+ .mobile-filters-button {
2084
+ display: flex;
2085
+ justify-content: center;
2086
+ align-items: center;
2087
+ flex: 1;
2088
+ max-width: 7rem;
2089
+ margin-right: 0.5rem;
2090
+ height: 3.5rem;
2091
+ color: grey;
2092
+ border: 1px solid green;
2093
+ border-radius: 3px;
2094
+ font-size: 16px;
2095
+ cursor: pointer;
2096
+
2097
+ @include mixins.media-lg {
2098
+ display: none;
2099
+ }
2100
+
2101
+ &__icon {
2102
+ fill: red;
2103
+ margin-right: 0.5rem;
2104
+ }
2105
+ }
2106
+
2107
+ .flight-path {
2108
+ display: flex;
2109
+ align-items: center;
2110
+ justify-content: center;
2111
+ width: 100%;
2112
+
2113
+ @media (min-width: 400px) {
2114
+ width: 6rem;
2115
+ }
2116
+
2117
+ &__point {
2118
+ width: 7px;
2119
+ height: 7px;
2120
+
2121
+ border-radius: 50%;
2122
+ border: 1px solid red;
2123
+ background: wh;
2124
+
2125
+ &--start,
2126
+ &--end {
2127
+ background-color: white;
2128
+ min-width: 7px;
2129
+ }
2130
+ }
2131
+
2132
+ &__line {
2133
+ display: flex;
2134
+ align-items: center;
2135
+ flex-grow: 1;
2136
+ position: relative;
2137
+ height: 1px;
2138
+ background: red;
2139
+
2140
+ gap: 1.3rem;
2141
+
2142
+ &::before,
2143
+ &::after {
2144
+ content: '';
2145
+ flex-grow: 1;
2146
+ height: 1px;
2147
+ background: red;
2148
+ }
2149
+ }
2150
+
2151
+ &__stop {
2152
+ width: 9px;
2153
+ height: 9px;
2154
+
2155
+ border-radius: 50%;
2156
+ background: red;
2157
+ border: 2px solid white;
2158
+
2159
+ position: relative;
2160
+ }
2161
+ }
2162
+
2163
+ .has-overlay {
2164
+ overflow: hidden;
2165
+ }
2166
+
2167
+ .spinner {
2168
+ &__container {
2169
+ margin: 1rem auto;
2170
+ display: flex;
2171
+ flex-direction: column;
2172
+ align-items: center;
2173
+ gap: 1rem;
2174
+ }
2175
+
2176
+ &__icon {
2177
+ border: 2px solid rgb(244, 249, 250, 0.2);
2178
+ border-top: 2px solid #3aafa9;
2179
+ border-radius: 50%;
2180
+ width: 24px;
2181
+ height: 24px;
2182
+ animation: spin 0.6s linear infinite;
2183
+ display: inline-block;
2184
+ vertical-align: middle;
2185
+ margin-right: 6px;
2186
+ }
2187
+
2188
+ &__label {
2189
+ text-align: center;
2190
+ }
2191
+ }
2192
+
2193
+ @keyframes spin {
2194
+ to {
2195
+ transform: rotate(360deg);
2196
+ }
2197
+ }