@duffel/components 1.3.1-beta.0 → 2.0.2

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