@duffel/components 1.3.1 → 2.0.3

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.
@@ -0,0 +1,1043 @@
1
+ .duffel-components .ff-icon {
2
+ margin-left: initial;
3
+ display: block;
4
+ fill: currentColor;
5
+ }
6
+
7
+ .duffel-components .duffel-button {
8
+ --BUTTON-BASE-COLOR: rgb(var(--ACCENT));
9
+ --BUTTON-HOVER-COLOR: rgba(var(--ACCENT), var(--ACCENT-LIGHT-300));
10
+ --BUTTON-FONT-SIZE: var(--FONT-SIZES-C0);
11
+ --BUTTON-ICON-SIZE: 24px;
12
+ --BUTTON-RADIUS: 5px;
13
+ --BUTTON-SPACING: 6px 40px;
14
+ --BUTTON-ICON-SPACING: 8px;
15
+ --BUTTON-ICON-MARGIN: 12px;
16
+ --TRANSITION-CUBIC-BEZIER: cubic-bezier(0.25, 0.8, 0.25, 1);
17
+
18
+ -webkit-appearance: none;
19
+ align-items: center;
20
+ background-color: inherit;
21
+ border: 2px solid var(--BUTTON-BASE-COLOR);
22
+ border-radius: var(--BUTTON-RADIUS);
23
+ box-sizing: border-box;
24
+ color: inherit;
25
+ cursor: pointer;
26
+ display: flex;
27
+ font-family: var(--FONT-FAMILY);
28
+ font-size: inherit;
29
+ font-weight: normal;
30
+ line-height: 1;
31
+ margin: 0;
32
+ padding: var(--BUTTON-SPACING);
33
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
34
+ -webkit-user-select: none;
35
+ -moz-user-select: none;
36
+ user-select: none;
37
+ transition: background-color 0.3s var(--TRANSITION-CUBIC-BEZIER),
38
+ border-color 0.3s var(--TRANSITION-CUBIC-BEZIER),
39
+ color 0.3s var(--TRANSITION-CUBIC-BEZIER);
40
+ }
41
+
42
+ .duffel-components .duffel-button.duffel-button--icon-only {
43
+ padding: var(--BUTTON-ICON-SPACING);
44
+ height: 48px;
45
+ width: 48px;
46
+ }
47
+
48
+ .duffel-components .duffel-button.duffel-button--icon-only > svg {
49
+ --BUTTON-ICON-SIZE: 24px;
50
+ margin: 0 auto;
51
+ }
52
+
53
+ .duffel-components .duffel-button__text {
54
+ display: block;
55
+ font-size: var(--BUTTON-FONT-SIZE);
56
+ font-weight: 600;
57
+ line-height: 1.5;
58
+ }
59
+
60
+ .duffel-components .duffel-button:focus {
61
+ outline-offset: 0.25em;
62
+ outline: 2px solid rgb(--ACCENT);
63
+ }
64
+
65
+ .duffel-components .duffel-button--primary {
66
+ --BUTTON-HOVER-COLOR: rgba(var(--ACCENT), var(--ACCENT-LIGHT-300));
67
+ }
68
+
69
+ .duffel-components .duffel-button--muted {
70
+ --BUTTON-BASE-COLOR: rgba(var(--ACCENT), var(--ACCENT-LIGHT-100));
71
+ --BUTTON-HOVER-COLOR: rgba(var(--ACCENT), var(--ACCENT-LIGHT-1000));
72
+
73
+ border-color: transparent;
74
+ }
75
+
76
+ .duffel-components .duffel-button--muted.duffel-button--solid:hover,
77
+ .duffel-components .duffel-button--muted.duffel-button--solid:active {
78
+ color: rgb(var(--WHITE));
79
+ }
80
+
81
+ .duffel-components .duffel-button--solid {
82
+ background-color: var(--BUTTON-BASE-COLOR);
83
+ color: rgb(var(--WHITE));
84
+ }
85
+
86
+ .duffel-components .duffel-button--solid.duffel-button--muted {
87
+ color: rgb(var(--ACCENT));
88
+ }
89
+
90
+ .duffel-components .duffel-button--solid:hover,
91
+ .duffel-components .duffel-button--solid:active {
92
+ border-color: transparent;
93
+ background-color: var(--BUTTON-HOVER-COLOR);
94
+ }
95
+
96
+ .duffel-components .duffel-button--is-disabled {
97
+ cursor: default;
98
+ opacity: 0.4;
99
+ -webkit-user-select: none;
100
+ -moz-user-select: none;
101
+ user-select: none;
102
+ pointer-events: none;
103
+ }
104
+
105
+ .duffel-components .duffel-button .duffel-button__icon {
106
+ display: block;
107
+ height: var(--BUTTON-ICON-SIZE);
108
+ width: var(--BUTTON-ICON-SIZE);
109
+ }
110
+
111
+ .duffel-components .duffel-button .duffel-button__icon--before {
112
+ margin-right: var(--BUTTON-ICON-MARGIN);
113
+ }
114
+
115
+ .duffel-components .duffel-button .duffel-button__icon--after {
116
+ margin-left: var(--BUTTON-ICON-MARGIN);
117
+ }
118
+
119
+ @media screen and (min-width: 768px) {.duffel-components .duffel-button {
120
+ --BUTTON-FONT-SIZE: var(--FONT-SIZES-C1);
121
+ --BUTTON-ICON-SIZE: 18px;
122
+ --BUTTON-SPACING: 4px 16px;
123
+ line-height: 24px
124
+ }
125
+ .duffel-components .duffel-button:not(.duffel-button--icon-only) {
126
+ height: 32px;
127
+ }
128
+
129
+ .duffel-components .duffel-button.duffel-button--icon-only {
130
+ padding: var(--BUTTON-ICON-SPACING);
131
+ height: 32px;
132
+ width: 32px;
133
+ }
134
+ }
135
+
136
+ .duffel-components .popover-container {
137
+ width: 320px;
138
+ padding: var(--SPACING-SM-1);
139
+ border: 1px solid rgba(59, 64, 86, 0.1);
140
+ border-radius: 8px;
141
+ background: white;
142
+ z-index: 999;
143
+ box-shadow: 0px 1px 4px rgba(59, 64, 86, 0.3);
144
+ }
145
+
146
+ @-webkit-keyframes opacity-animation {
147
+ 0%,
148
+ 80%,
149
+ 100% {
150
+ opacity: 0.3;
151
+ }
152
+ 40% {
153
+ opacity: 1;
154
+ }
155
+ }
156
+
157
+ @keyframes opacity-animation {
158
+ 0%,
159
+ 80%,
160
+ 100% {
161
+ opacity: 0.3;
162
+ }
163
+ 40% {
164
+ opacity: 1;
165
+ }
166
+ }
167
+
168
+ .duffel-components .spinner {
169
+ align-items: center;
170
+ display: flex;
171
+ justify-content: center;
172
+ pointer-events: none;
173
+ width: 100%;
174
+ height: 12px;
175
+ }
176
+
177
+ .duffel-components .spinner-dot {
178
+ -webkit-animation: opacity-animation 1.4s infinite ease-in-out both;
179
+ animation: opacity-animation 1.4s infinite ease-in-out both;
180
+ background-color: currentcolor;
181
+ border-radius: 100%;
182
+ display: inline-block;
183
+ margin: 0px 4px;
184
+ height: 12px;
185
+ width: 12px;
186
+ flex: 0 0 auto;
187
+ }
188
+
189
+ .duffel-components .small {
190
+ height: 8px;
191
+ }
192
+
193
+ .duffel-components .small.spinner-dot {
194
+ height: 8px;
195
+ width: 8px;
196
+ margin: 0 2px;
197
+ }
198
+
199
+ .duffel-components .primary.spinner-dot {
200
+ background-color: var(--BLUE-500);
201
+ }
202
+
203
+ .duffel-components .muted.spinner-dot {
204
+ background-color: var(--GREY-400);
205
+ }
206
+
207
+ .duffel-components .danger.spinner-dot {
208
+ background-color: var(--RED-400);
209
+ }
210
+
211
+ .duffel-components .one {
212
+ -webkit-animation-delay: -0.32s;
213
+ animation-delay: -0.32s;
214
+ }
215
+
216
+ .duffel-components .two {
217
+ -webkit-animation-delay: -0.16s;
218
+ animation-delay: -0.16s;
219
+ }
220
+
221
+ .duffel-components .seat-map__tab-select {
222
+ width: 100%;
223
+ max-width: 400px;
224
+ display: flex;
225
+ text-align: center;
226
+ min-height: var(--SPACING-LG-1);
227
+ margin-bottom: var(--SPACING-MD-3);
228
+ border: 2px solid var(--GREY-200);
229
+ border-radius: 3px;
230
+ background-color: var(--GREY-200);
231
+ }
232
+
233
+ .duffel-components .seat-map__tab-select-option {
234
+ -webkit-appearance: none;
235
+ -moz-appearance: none;
236
+ appearance: none;
237
+ outline: none;
238
+ margin: 0;
239
+ border: none;
240
+ padding: var(--SPACING-XS-2) var(--SPACING-SM-3);
241
+ font-weight: 600;
242
+ font-size: var(--FONT-SIZES-C2);
243
+ width: 100%;
244
+ color: var(--GREY-900);
245
+ background-color: var(--GREY-200);
246
+ cursor: pointer;
247
+ border-radius: 3px;
248
+ }
249
+
250
+ .duffel-components .seat-map__tab-select-option:hover,
251
+ .duffel-components .seat-map__tab-select-option:focus,
252
+ .duffel-components .seat-map__tab-select-option:active {
253
+ color: rgba(var(--ACCENT), var(--ACCENT-LIGHT-1000));
254
+ background-color: rgba(var(--ACCENT), var(--ACCENT-LIGHT-200));
255
+ transition: var(--TRANSITIONS-CUBIC-BEZIER);
256
+ }
257
+
258
+ .duffel-components .seat-map__tab-select-option--selected {
259
+ color: var(--GREY-900);
260
+ background-color: rgba(var(--WHITE), 1);
261
+ box-shadow: 0px 0px 0px 1px rgba(var(--BLACK), 0.05),
262
+ 0px 2px 12px rgba(var(--BLACK), 0.08);
263
+ }
264
+
265
+ .duffel-components .seat-map__tab-select-option:first-child {
266
+ margin-right: 1px;
267
+ }
268
+
269
+ .duffel-components .seat-map__tab-select-option:last-child {
270
+ margin-left: 1px;
271
+ }
272
+
273
+ .duffel-components .error-state__container {
274
+ display: flex;
275
+ flex-direction: column;
276
+ flex: 1;
277
+ align-items: center;
278
+ justify-content: center;
279
+ max-width: 308px;
280
+ text-align: center;
281
+ margin: 0 auto;
282
+ font-family: var(--FONT-FAMILY);
283
+ height: 100%;
284
+ }
285
+ .duffel-components .error-state__icon {
286
+ display: flex;
287
+ justify-content: center;
288
+ align-items: center;
289
+ width: 64px;
290
+ height: 64px;
291
+ background-color: rgb(var(--ACCENT));
292
+ border-radius: 50%;
293
+ margin-bottom: var(--SPACING-MD-2);
294
+ color: rgb(var(--WHITE));
295
+ }
296
+ .duffel-components .error-state__title {
297
+ color: var(--GREY-900);
298
+ font-size: var(--FONT-SIZES-H4);
299
+ line-height: 36px;
300
+ margin: 0 0 var(--SPACING-SM-3);
301
+ padding: 0;
302
+ }
303
+ .duffel-components .error-state__copy {
304
+ color: var(--GREY-700);
305
+ font-size: var(--FONT-SIZES-C1);
306
+ line-height: var(--SPACING-MD-3);
307
+ padding: 0;
308
+ margin: 0;
309
+ }
310
+
311
+ .duffel-components .loading-state__container {
312
+ display: flex;
313
+ flex-direction: column;
314
+ align-content: center;
315
+ align-items: center;
316
+ text-align: center;
317
+ justify-content: center;
318
+ font-family: var(--FONT-FAMILY);
319
+ height: calc(100vh - var(--SPACING-XL-3));
320
+ width: var(--SPACING-XL-3);
321
+ margin: 0 auto;
322
+ line-height: var(--SPACING-MD-1);
323
+ }
324
+ .duffel-components .loading-state__message {
325
+ font-size: var(--FONT-SIZES-C3);
326
+ text-transform: uppercase;
327
+ color: var(--GREY-400);
328
+ letter-spacing: 0.02rem;
329
+ }
330
+ .duffel-components .loading-state__progress-indicator {
331
+ height: var(--SPACING-XS-2);
332
+ margin: var(--SPACING-SM-3) 0;
333
+ border-radius: 999px;
334
+ width: calc(100% - var(--SPACING-SM-1));
335
+ background-color: rgba(var(--ACCENT), var(--ACCENT-LIGHT-100));
336
+ position: relative;
337
+ transition: var(--TRANSITIONS-CUBIC-BEZIER);
338
+ }
339
+ .duffel-components .loading-state__progress-indicator--status {
340
+ display: block;
341
+ height: 100%;
342
+ border-radius: 999px;
343
+ background-color: rgba(var(--ACCENT), var(--ACCENT-LIGHT-1000));
344
+ position: relative;
345
+ -webkit-animation: fillstatus 1s linear;
346
+ animation: fillstatus 1s linear;
347
+ }
348
+ @-webkit-keyframes fillstatus {
349
+ 0% {
350
+ width: 0;
351
+ }
352
+ 70% {
353
+ width: 100%;
354
+ }
355
+ 80% {
356
+ opacity: 1;
357
+ width: 100%;
358
+ }
359
+ 100% {
360
+ opacity: 0;
361
+ width: 100%;
362
+ }
363
+ }
364
+ @keyframes fillstatus {
365
+ 0% {
366
+ width: 0;
367
+ }
368
+ 70% {
369
+ width: 100%;
370
+ }
371
+ 80% {
372
+ opacity: 1;
373
+ width: 100%;
374
+ }
375
+ 100% {
376
+ opacity: 0;
377
+ width: 100%;
378
+ }
379
+ }
380
+ .duffel-components .loading-state__segment {
381
+ display: flex;
382
+ flex-direction: row;
383
+ margin: var(--SPACING-XS-2) 0;
384
+ color: var(--GREY-400);
385
+ text-transform: uppercase;
386
+ }
387
+ .duffel-components .loading-state__segment--origin,
388
+ .duffel-components .loading-state__segment--destination {
389
+ font-weight: 600;
390
+ font-size: var(--FONT-SIZES-C1);
391
+ color: var(--GREY-900);
392
+ padding: 0 var(--SPACING-SM-1);
393
+ text-transform: uppercase;
394
+ }
395
+ .duffel-components .loading-state__duration {
396
+ color: var(--GREY-400);
397
+ font-size: var(--FONT-SIZES-C3);
398
+ letter-spacing: 0.02rem;
399
+ margin: var(--SPACING-XS-2) 0;
400
+ text-transform: uppercase;
401
+ }
402
+
403
+ .duffel-components .passenger-selection-passenger {
404
+ -webkit-appearance: none;
405
+ -moz-appearance: none;
406
+ appearance: none;
407
+ border: none;
408
+ background: none;
409
+ cursor: pointer;
410
+ font-size: var(--FONT-SIZES-C2);
411
+ font-family: var(--FONT-FAMILY);
412
+ margin-top: var(--SPACING-XS-2);
413
+ height: 32px;
414
+ display: flex;
415
+ align-items: center;
416
+ padding: var(--SPACING-SM-1) var(--SPACING-LG-1);
417
+ width: 100%;
418
+ }
419
+
420
+ .duffel-components .passenger-selection-passenger:first-child {
421
+ margin-top: 0;
422
+ }
423
+
424
+ .duffel-components .passenger-selection-passenger:hover,
425
+ .duffel-components .passenger-selection-passenger:focus,
426
+ .duffel-components .passenger-selection-passenger:active {
427
+ background-color: rgba(var(--ACCENT), var(--ACCENT-LIGHT-100));
428
+ }
429
+
430
+ .duffel-components .passenger-selection-passenger__identifier,
431
+ .duffel-components .passenger-selection-passenger__action {
432
+ line-height: 1;
433
+ }
434
+
435
+ .duffel-components .passenger-selection-passenger__identifier {
436
+ flex-grow: 1;
437
+ margin-right: var(--SPACING-LG-1);
438
+ text-align: left;
439
+ color: var(--GREY-900);
440
+ }
441
+
442
+ .duffel-components .passenger-selection-passenger__action {
443
+ color: var(--GREY-600);
444
+ margin-right: var(--SPACING-XS-2);
445
+ }
446
+
447
+ .duffel-components .passenger-selection-passenger__seat-designator {
448
+ color: var(--GREY-900);
449
+ font-weight: 600;
450
+ margin-right: var(--SPACING-SM-3);
451
+ }
452
+
453
+ .duffel-components .passenger-selection-passenger__seat-price {
454
+ text-align: right;
455
+ display: inline-block;
456
+ width: 70px;
457
+ }
458
+
459
+ .duffel-components .passenger-selection-passenger--selected {
460
+ box-shadow: 4px 0px 0px 0px rgba(var(--ACCENT), var(--ACCENT-LIGHT-1000))
461
+ inset;
462
+ background-color: rgba(var(--ACCENT), var(--ACCENT-LIGHT-100));
463
+ }
464
+
465
+ .duffel-components .passenger-segment__title {
466
+ color: var(--GREY-900);
467
+ font-style: normal;
468
+ font-size: var(--FONT-SIZES-C1);
469
+ font-weight: 600;
470
+ line-height: var(--SPACING-MD-3);
471
+ padding: 0 0 0 var(--SPACING-LG-1);
472
+ margin: 0 0 var(--SPACING-SM-1);
473
+ display: flex;
474
+ align-items: center;
475
+ }
476
+ .duffel-components .passenger-segment__chevron {
477
+ margin: 0 var(--SPACING-SM-1);
478
+ color: var(--GREY-400);
479
+ }
480
+
481
+ .duffel-components .passenger-selection-segment {
482
+ margin: var(--SPACING-LG-1) 0 0;
483
+ padding: 0 0 var(--SPACING-LG-1);
484
+ border-bottom: 1px solid var(--GREY-200);
485
+ font-family: var(--FONT-FAMILY);
486
+ }
487
+
488
+ .duffel-components .passenger-selection-segment:first-child {
489
+ margin-top: 0;
490
+ }
491
+
492
+ .duffel-components .passenger-selection {
493
+ display: flex;
494
+ flex-direction: column;
495
+ font-family: var(--FONT-FAMILY);
496
+ flex-grow: 1;
497
+ }
498
+
499
+ .duffel-components .passenger-selection__title {
500
+ margin: 0;
501
+ padding: 0 0 var(--SPACING-MD-3);
502
+ font-size: var(--FONT-SIZES-H2);
503
+ line-height: 1.2;
504
+ min-width: 360px;
505
+ }
506
+
507
+ .duffel-components .passenger-selection__segments {
508
+ list-style: none;
509
+ overflow-y: auto;
510
+ font-size: var(--FONT-SIZES-C1);
511
+ padding: var(--SPACING-XS-2);
512
+ margin: calc(var(--SPACING-XS-2) * -1);
513
+ }
514
+
515
+ .duffel-components .seat-map__legend {
516
+ width: calc(100% + var(--SPACING-MD-3));
517
+ min-height: -webkit-fit-content;
518
+ min-height: -moz-fit-content;
519
+ min-height: fit-content;
520
+ margin: calc(var(--SPACING-SM-1) * -1) calc(var(--SPACING-SM-2) * -1);
521
+ display: flex;
522
+ flex-wrap: wrap;
523
+ align-items: center;
524
+ justify-content: center;
525
+ line-height: var(--SPACING-MD-3);
526
+ font-size: var(--FONT-SIZES-C2);
527
+ font-weight: 400;
528
+ }
529
+ .duffel-components .seat-map__legend-item {
530
+ display: flex;
531
+ align-items: center;
532
+ text-transform: capitalize;
533
+ margin: var(--SPACING-SM-1) var(--SPACING-SM-2);
534
+ color: var(--GREY-700);
535
+ }
536
+ .duffel-components .seat-map__legend-item--symbol .ff-icon {
537
+ margin-right: var(--SPACING-XS-3);
538
+ }
539
+ .duffel-components .seat-map__legend-seat {
540
+ width: var(--SPACING-MD-1);
541
+ height: var(--SPACING-MD-1);
542
+ border-radius: 5px;
543
+ border: 2px solid var(--GREY-400);
544
+ color: var(--GREY-400);
545
+ display: flex;
546
+ align-items: center;
547
+ justify-content: center;
548
+ margin-right: var(--SPACING-SM-1);
549
+ }
550
+ .duffel-components .seat-map__legend-seat--fee-payable {
551
+ background-color: rgba(var(--ACCENT), var(--ACCENT-LIGHT-100));
552
+ border: 2px solid rgba(var(--ACCENT), var(--ACCENT-LIGHT-200));
553
+ }
554
+ .duffel-components .seat-map__legend-seat--fee-payable-indicator {
555
+ position: relative;
556
+ top: var(--SPACING-XS-2);
557
+ left: var(--SPACING-XS-2);
558
+ color: rgba(var(--ACCENT), var(--ACCENT-LIGHT-300));
559
+ }
560
+ .duffel-components .seat-map__legend-seat--included {
561
+ background-color: rgba(var(--ACCENT), var(--ACCENT-LIGHT-100));
562
+ border: 2px solid rgba(var(--ACCENT), var(--ACCENT-LIGHT-200));
563
+ }
564
+ .duffel-components .seat-map__legend-seat--selected {
565
+ background-color: rgba(var(--ACCENT), var(--ACCENT-LIGHT-1000));
566
+ border: 2px solid rgba(var(--ACCENT), var(--ACCENT-LIGHT-1000));
567
+ }
568
+
569
+ .duffel-components .map-element--amenity {
570
+ width: 100%;
571
+ height: var(--SPACING-LG-1);
572
+ color: var(--GREY-600);
573
+ display: flex;
574
+ align-items: center;
575
+ justify-content: center;
576
+ margin-bottom: var(--SPACING-SM-1);
577
+ }
578
+
579
+ @media only screen and (min-width: 768px) {.duffel-components .map-element--amenity {
580
+ width: 100%;
581
+ height: var(--SPACING-LG-3);
582
+ font-size: var(--FONT-SIZES-C2)
583
+ }
584
+ }
585
+ .duffel-components .map-element--wrapped {
586
+ background-color: var(--GREY-100);
587
+ border-radius: 8px;
588
+ border: 2px solid var(--GREY-200);
589
+ }
590
+
591
+ .duffel-components .seat-info {
592
+ background-color: rgb(var(--WHITE));
593
+ padding: var(--SPACING-SM-3);
594
+ padding-bottom: var(--SPACING-SM-3);
595
+ }
596
+
597
+ .duffel-components .seat-info__details {
598
+ font-size: var(--FONT-SIZES-C1);
599
+ color: var(--GREY-900);
600
+ font-weight: normal;
601
+ text-transform: none;
602
+ display: flex;
603
+ justify-content: space-between;
604
+ }
605
+
606
+ .duffel-components .seat-info__details > span {
607
+ flex-grow: 1;
608
+ margin: 0 var(--SPACING-SM-1);
609
+ }
610
+
611
+ .duffel-components .seat-info__disclosure {
612
+ font-size: var(--FONT-SIZES-C3);
613
+ color: var(--GREY-600);
614
+ line-height: 150%;
615
+ text-transform: none;
616
+ font-weight: normal;
617
+ margin-top: var(--SPACING-SM-1);
618
+ }
619
+
620
+ .duffel-components .seat-info__details + .seat-info__disclosure {
621
+ padding-top: var(--SPACING-SM-3);
622
+ border-top: 1px solid var(--GREY-200);
623
+ margin-top: var(--SPACING-SM-3);
624
+ }
625
+
626
+ .duffel-components .map-element__seat {
627
+ -webkit-appearance: none;
628
+ -moz-appearance: none;
629
+ appearance: none;
630
+ outline: none;
631
+ cursor: default;
632
+ width: var(--SPACING-LG-2);
633
+ height: var(--SPACING-LG-2);
634
+ border-radius: 8px;
635
+ border: 2px solid var(--GREY-200);
636
+ box-sizing: border-box;
637
+ color: var(--GREY-600);
638
+ background-color: var(--GREY-100);
639
+ display: flex;
640
+ align-items: center;
641
+ justify-content: center;
642
+ line-height: var(--SPACING-MD-3);
643
+ text-transform: uppercase;
644
+ font-weight: bold;
645
+ font-size: var(--FONT-SIZES-C3);
646
+ text-align: left;
647
+ position: relative;
648
+ }
649
+
650
+ @media only screen and (min-width: 768px) {.duffel-components .map-element__seat {
651
+ width: var(--SPACING-LG-3);
652
+ height: var(--SPACING-LG-3);
653
+ font-size: var(--FONT-SIZES-C2)
654
+ }
655
+ }
656
+ .duffel-components .map-element--available {
657
+ border: 2px solid rgba(var(--ACCENT), var(--ACCENT-LIGHT-200));
658
+ background-color: rgba(var(--ACCENT), var(--ACCENT-LIGHT-100));
659
+ color: rgba(var(--ACCENT), var(--ACCENT-LIGHT-300));
660
+ }
661
+ .duffel-components .map-element--fee-payable {
662
+ position: absolute;
663
+ top: 22px;
664
+ left: 22px;
665
+ color: rgba(var(--ACCENT), var(--ACCENT-LIGHT-300));
666
+ }
667
+ @media only screen and (min-width: 768px) {
668
+ .duffel-components .map-element--fee-payable {
669
+ top: 26px;
670
+ left: 26px
671
+ }
672
+ }
673
+ @media (hover: hover) and (pointer: fine) {
674
+ .duffel-components .map-element--actionable:hover {
675
+ cursor: pointer;
676
+ }
677
+ .duffel-components .map-element--actionable:not(.map-element--selected):hover {
678
+ background-color: rgba(var(--ACCENT), var(--ACCENT-LIGHT-200));
679
+ color: rgba(var(--ACCENT), var(--ACCENT-LIGHT-1000));
680
+ transition: var(--TRANSITIONS-CUBIC-BEZIER);
681
+ }
682
+ .duffel-components .map-element--actionable:not(.map-element--selected):hover .map-element--fee-payable {
683
+ color: rgba(var(--ACCENT), var(--ACCENT-LIGHT-1000));
684
+ transition: var(--TRANSITIONS-CUBIC-BEZIER);
685
+ }
686
+ }
687
+ .duffel-components .map-element--selected {
688
+ background-color: rgba(var(--ACCENT), var(--ACCENT-LIGHT-1000));
689
+ border: 2px solid rgba(var(--ACCENT), var(--ACCENT-LIGHT-1000));
690
+ color: rgba(var(--WHITE), 1);
691
+ }
692
+
693
+ .duffel-components .map-element--exit {
694
+ color: var(--GREY-400);
695
+ width: 100%;
696
+ height: var(--SPACING-LG-3);
697
+ display: flex;
698
+ justify-content: flex-start;
699
+ align-items: center;
700
+ }
701
+
702
+ .duffel-components .map-element--exit--right {
703
+ justify-content: flex-end;
704
+ }
705
+ .duffel-components .map-element--empty {
706
+ min-width: var(--SPACING-LG-2);
707
+ height: var(--SPACING-LG-2);
708
+ }
709
+ @media only screen and (min-width: 768px) {
710
+ .duffel-components .map-element--empty {
711
+ min-width: var(--SPACING-LG-3);
712
+ height: var(--SPACING-LG-3)
713
+ }
714
+ }
715
+ .duffel-components .map-element + .map-element {
716
+ margin-left: var(--SPACING-XS-2);
717
+ }
718
+ @media only screen and (min-width: 768px) {
719
+ .duffel-components .map-element + .map-element {
720
+ margin-left: var(--SPACING-SM-1)
721
+ }
722
+ }
723
+
724
+ .duffel-components .map-section {
725
+ display: flex;
726
+ justify-content: center;
727
+ padding: var(--SPACING-XS-1) 0;
728
+ }
729
+
730
+ @media only screen and (min-width: 768px) {
731
+
732
+ .duffel-components .map-section {
733
+ padding: var(--SPACING-XS-2) 0
734
+ }
735
+ }
736
+
737
+ .duffel-components .map-section--left {
738
+ border-left: 2px solid var(--GREY-200);
739
+ padding-left: var(--SPACING-SM-3);
740
+ }
741
+
742
+ .duffel-components .map-section--left.map-section--wing {
743
+ box-shadow: -19px 0px 0px 0px var(--GREY-200);
744
+ }
745
+
746
+ .duffel-components .map-section--right {
747
+ border-right: 2px solid var(--GREY-200);
748
+ padding-right: var(--SPACING-SM-3);
749
+ }
750
+
751
+ .duffel-components .map-section--right.map-section--wing {
752
+ box-shadow: 19px 0px 0px 0px var(--GREY-200);
753
+ }
754
+
755
+ .duffel-components .map-section__aisle {
756
+ display: flex;
757
+ justify-content: center;
758
+ color: var(--GREY-600);
759
+ font-size: var(--FONT-SIZES-C3);
760
+ line-height: var(--SPACING-MD-2);
761
+ }
762
+
763
+ @media only screen and (min-width: 768px) {
764
+
765
+ .duffel-components .map-section__aisle {
766
+ font-size: var(--FONT-SIZES-C2);
767
+ line-height: var(--SPACING-MD-3)
768
+ }
769
+ }
770
+
771
+ .duffel-components .seat-map {
772
+ background-color: rgba(var(--WHITE), 1);
773
+ padding: var(--SPACING-SM-3);
774
+ display: flex;
775
+ flex-direction: column;
776
+ align-items: center;
777
+ width: -webkit-fit-content;
778
+ width: -moz-fit-content;
779
+ width: fit-content;
780
+ min-height: 100%;
781
+ }
782
+
783
+ @media only screen and (min-width: 768px) {.duffel-components .seat-map {
784
+ padding: var(--SPACING-LG-1) var(--SPACING-SM-3) var(--SPACING-SM-3)
785
+ }
786
+ }
787
+
788
+ .duffel-components .seat-map__legend-container {
789
+ margin-bottom: var(--SPACING-MD-3);
790
+ width: -webkit-fit-content;
791
+ width: -moz-fit-content;
792
+ width: fit-content;
793
+ }
794
+
795
+ .duffel-components .seat-map__map-container {
796
+ display: grid;
797
+ grid-template-columns: repeat(var(--CABIN-AISLES), auto var(--SPACING-LG-1)) auto;
798
+ grid-column-gap: var(--SPACING-XS-2);
799
+ align-items: center;
800
+ width: -webkit-min-content;
801
+ width: -moz-min-content;
802
+ width: min-content;
803
+ margin: 0 var(--SPACING-SM-2);
804
+ }
805
+
806
+ @media only screen and (min-width: 768px) {
807
+
808
+ .duffel-components .seat-map__map-container {
809
+ grid-template-columns:
810
+ repeat(var(--CABIN-AISLES), auto var(--SPACING-LG-2))
811
+ auto;
812
+ grid-column-gap: var(--SPACING-SM-2);
813
+ margin: 0;
814
+ padding-bottom: var(--SPACING-LG-1)
815
+ }
816
+ }
817
+
818
+ .duffel-components .summary__segment {
819
+ border-bottom: 1px solid var(--GREY-200);
820
+ display: flex;
821
+ align-items: center;
822
+ justify-content: space-between;
823
+ margin-bottom: var(--SPACING-SM-3);
824
+ padding-bottom: var(--SPACING-SM-3);
825
+ }
826
+
827
+ .duffel-components .summary__segment > .passenger-segment__title {
828
+ padding: 0;
829
+ margin: 0;
830
+ }
831
+
832
+ .duffel-components .summary__segment-passenger {
833
+ color: var(--GREY-900);
834
+ font-size: var(--FONT-SIZES-C1);
835
+ font-weight: normal;
836
+ margin: 0;
837
+ padding: 0;
838
+ }
839
+ .duffel-components .summary__description-cost {
840
+ display: flex;
841
+ justify-content: space-between;
842
+ font-size: var(--FONT-SIZES-C1);
843
+ margin-bottom: var(--SPACING-SM-3);
844
+ }
845
+ .duffel-components .summary:not(.summary--mobile) {
846
+ padding-top: 0;
847
+ display: none;
848
+ }
849
+ .duffel-components .summary__actions {
850
+ display: flex;
851
+ }
852
+ .duffel-components .summary__actions--previous {
853
+ transform: rotate(180deg);
854
+ }
855
+ .duffel-components .summary__actions > button:last-of-type {
856
+ flex: 1 auto;
857
+ justify-content: center;
858
+ margin-left: var(--SPACING-SM-3);
859
+ }
860
+ @media screen and (min-width: 768px) {
861
+ .duffel-components .summary:not(.summary--mobile) {
862
+ display: flex;
863
+ justify-content: space-between;
864
+ align-items: center;
865
+ }
866
+
867
+ .duffel-components .summary--mobile {
868
+ display: none;
869
+ }
870
+
871
+ .duffel-components .summary__description-title {
872
+ color: var(--GREY-900);
873
+ font-size: var(--FONT-SIZES-H5);
874
+ line-height: 26px;
875
+ margin-bottom: var(--SPACING-XS-2);
876
+ }
877
+
878
+ .duffel-components .summary__description-cost {
879
+ color: var(--GREY-600);
880
+ font-size: var(--FONT-SIZES-C2);
881
+ line-height: 21px;
882
+ margin-bottom: 0;
883
+ }
884
+ .duffel-components .summary__actions--previous.duffel-button--icon-only {
885
+ padding: 0;
886
+ }
887
+ .duffel-components .summary__actions .summary__confirmation-btn:last-child {
888
+ margin-left: var(--SPACING-SM-1);
889
+ }
890
+ }
891
+
892
+ .duffel-components {
893
+ --FONT-FAMILY: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto',
894
+ 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
895
+ sans-serif;
896
+ --FONT-SIZES-C0: 20px;
897
+ --FONT-SIZES-C1: 16px;
898
+ --FONT-SIZES-C2: 14px;
899
+ --FONT-SIZES-C3: 12px;
900
+ --FONT-SIZES-H2: 32px;
901
+ --FONT-SIZES-H3: 28px;
902
+ --FONT-SIZES-H4: 24px;
903
+ --FONT-SIZES-H5: 20px;
904
+ --SPACING-XL-3: 128px;
905
+ --SPACING-XL-2: 64px;
906
+ --SPACING-XL-1: 56px;
907
+ --SPACING-LG-3: 48px;
908
+ --SPACING-LG-2: 40px;
909
+ --SPACING-LG-1: 32px;
910
+ --SPACING-MD-3: 24px;
911
+ --SPACING-MD-2: 20px;
912
+ --SPACING-MD-1: 18px;
913
+ --SPACING-SM-3: 16px;
914
+ --SPACING-SM-2: 12px;
915
+ --SPACING-SM-1: 8px;
916
+ --SPACING-XS-3: 6px;
917
+ --SPACING-XS-2: 4px;
918
+ --SPACING-XS-1: 2px;
919
+ --SPACING-NONE: 0;
920
+ --GREY-100: #f7f5f9;
921
+ --GREY-200: #e2e2e8;
922
+ --GREY-400: #ababb4;
923
+ --GREY-500: #86868e;
924
+ --GREY-600: #696972;
925
+ --GREY-700: #4b4b55;
926
+ --GREY-900: #29292e;
927
+ --RED: #e3350f;
928
+ --BLACK: 0, 0, 0;
929
+ --WHITE: 255, 255, 255;
930
+ --ACCENT: 57, 111, 233;
931
+ --ACCENT-LIGHT-100: 0.08;
932
+ --ACCENT-LIGHT-200: 0.24;
933
+ --ACCENT-LIGHT-300: 0.48;
934
+ --ACCENT-LIGHT-1000: 1;
935
+ --TRANSITIONS-CUBIC-BEZIER: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
936
+ box-sizing: border-box;
937
+ -webkit-overflow-scrolling: touch;
938
+ -webkit-font-smoothing: antialiased;
939
+ font-family: var(--FONT-FAMILY);
940
+ overflow: hidden;
941
+ height: 100%;
942
+ }
943
+
944
+ .duffel-components .seat-selection {
945
+ --SEAT-SELECTION-BOX-SHADOW: 0px 0px 0px 1px rgba(var(--BLACK), 0.05),
946
+ 0px 4px 24px rgba(var(--BLACK), 0.08);
947
+ background-color: rgb(var(--WHITE));
948
+ display: flex;
949
+ flex-direction: column;
950
+ width: 100%;
951
+ height: 100%;
952
+ padding: 0;
953
+ position: relative;
954
+ }
955
+
956
+ .duffel-components .seat-selection__content {
957
+ display: flex;
958
+ flex-direction: column;
959
+ align-items: center;
960
+ flex-grow: 1;
961
+ border-bottom: 1px solid rgba(59, 64, 86, 0.1);
962
+ height: calc(100% - 177px);
963
+ overflow: auto;
964
+ }
965
+
966
+ .duffel-components .seat-selection__content-child--passengers {
967
+ display: none;
968
+ padding-top: var(--SPACING-LG-1);
969
+ }
970
+
971
+ .duffel-components .seat-selection__content-child--map {
972
+ width: 100%;
973
+ height: 100%;
974
+ display: flex;
975
+ justify-content: space-between;
976
+ flex-direction: column;
977
+ }
978
+
979
+ .duffel-components .seat-selection__mobile-seat-info {
980
+ align-self: center;
981
+ position: absolute;
982
+ bottom: 187px;
983
+ width: calc(100% - 20px);
984
+ padding: var(--SPACING-XS-3);
985
+ margin-bottom: var(--SPACING-SM-2);
986
+ height: auto;
987
+ background-color: white;
988
+ border-radius: 8px;
989
+ z-index: 100;
990
+ box-shadow: var(--SEAT-SELECTION-BOX-SHADOW);
991
+ }
992
+
993
+ .duffel-components .seat-selection__confirmation {
994
+ padding: var(--SPACING-MD-3);
995
+ box-shadow: var(--SEAT-SELECTION-BOX-SHADOW);
996
+ position: -webkit-sticky;
997
+ position: sticky;
998
+ bottom: 0;
999
+ background-color: rgb(var(--WHITE));
1000
+ }
1001
+
1002
+ @media screen and (min-width: 768px) {
1003
+ .duffel-components .seat-selection {
1004
+ width: calc(100vw - 2 * 56px);
1005
+ overflow: hidden;
1006
+ }
1007
+
1008
+ .duffel-components .seat-selection__content {
1009
+ height: auto;
1010
+ padding: 0;
1011
+ flex-direction: row;
1012
+ align-items: initial;
1013
+ max-height: calc(100vh - 115px);
1014
+ }
1015
+
1016
+ .duffel-components .seat-selection__confirmation {
1017
+ padding: var(--SPACING-LG-1);
1018
+ box-shadow: none;
1019
+ }
1020
+
1021
+ .duffel-components .seat-selection__content-child--passengers {
1022
+ overflow: auto;
1023
+ border-right: 1px solid var(--GREY-200);
1024
+ display: flex;
1025
+ flex-direction: column;
1026
+ position: -webkit-sticky;
1027
+ position: sticky;
1028
+ top: 0;
1029
+ flex: 1 0 auto;
1030
+ min-width: 415px;
1031
+ }
1032
+
1033
+ .duffel-components .seat-selection__content-child--passengers > div:not(.passenger-selection) {
1034
+ margin-left: var(--SPACING-LG-1);
1035
+ }
1036
+
1037
+ .duffel-components .seat-selection__content-child--map {
1038
+ height: auto;
1039
+ align-items: center;
1040
+ overflow: auto;
1041
+ }
1042
+ }
1043
+