@ecl/mega-menu 5.0.0-RC1

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.
package/mega-menu.scss ADDED
@@ -0,0 +1,1755 @@
1
+ /* stylelint-disable no-descending-specificity, length-zero-no-unit */
2
+
3
+ /**
4
+ * Menu
5
+ * @define menu
6
+ */
7
+
8
+ @use 'sass:map';
9
+ @use '@ecl/grid/mixins/breakpoints';
10
+
11
+ // Exposed variables
12
+ $theme: null !default;
13
+ $mega-menu: null !default;
14
+
15
+ :root {
16
+ --ecl-mega-menu-item-promotional-bg: #{map.get(
17
+ $mega-menu,
18
+ 'global',
19
+ 'promotional-item-bg'
20
+ )};
21
+ --ecl-mega-menu-item-promotional-hover-bg: #{map.get(
22
+ $mega-menu,
23
+ 'global',
24
+ 'promotional-item-bg-hover'
25
+ )};
26
+ --ecl-mega-menu-item-promotional-focus-bg: #{map.get(
27
+ $mega-menu,
28
+ 'global',
29
+ 'promotional-item-bg-focus'
30
+ )};
31
+ --ecl-mega-menu-item-promotional-outline-color: #{map.get(
32
+ $mega-menu,
33
+ 'global',
34
+ 'promotional-item-outline-color'
35
+ )};
36
+ --ecl-mega-menu-item-promotional-text-color: #{map.get(
37
+ $mega-menu,
38
+ 'global',
39
+ 'promotional-item-text-color'
40
+ )};
41
+ --ecl-mega-menu-item-promotional-hover-text-color: #{map.get(
42
+ $mega-menu,
43
+ 'global',
44
+ 'promotional-item-hover-text-color'
45
+ )};
46
+ --ecl-mega-menu-item-promotional-focus-text-color: #{map.get(
47
+ $mega-menu,
48
+ 'global',
49
+ 'promotional-item-focus-text-color'
50
+ )};
51
+ }
52
+
53
+ @mixin with-scrollbar {
54
+ overflow-y: auto;
55
+ scrollbar-color: var(--cm-on-surface-neutral-medium, var(--c-n))
56
+ rgb(0, 0, 0, 0);
57
+ scrollbar-width: thin;
58
+ }
59
+
60
+ /*
61
+ * Menu structure
62
+ */
63
+ .ecl-mega-menu {
64
+ background: map.get($mega-menu, 'mobile', 'menu-background');
65
+ box-shadow: map.get($mega-menu, 'global', 'shadow');
66
+ color: map.get($mega-menu, 'mobile', 'color');
67
+ margin: 0;
68
+ padding-bottom: var(--s-xs);
69
+ padding-top: var(--s-xs);
70
+
71
+ // We've got to override an EWPP css, yes.
72
+ a:focus {
73
+ text-decoration: none;
74
+ }
75
+
76
+ .ecl-container {
77
+ padding: 0;
78
+ }
79
+ }
80
+
81
+ .ecl-mega-menu__container {
82
+ display: flex;
83
+ min-height: map.get($theme, 'line-height', '2xl');
84
+ position: initial; // Needed for full screen overlay
85
+ }
86
+
87
+ .ecl-mega-menu__open {
88
+ align-items: center;
89
+ align-self: center;
90
+ box-sizing: border-box;
91
+ cursor: pointer;
92
+ color: currentcolor;
93
+ display: flex;
94
+ flex-direction: column;
95
+ font: var(--f-xs);
96
+ margin-inline-start: map.get($mega-menu, 'mobile', 'open-button-margin');
97
+ order: 2;
98
+ padding: map.get($mega-menu, 'mobile', 'open-padding');
99
+ text-decoration: none;
100
+ z-index: 54;
101
+
102
+ &:hover,
103
+ &:focus-visible,
104
+ &:active,
105
+ &:visited {
106
+ color: currentcolor;
107
+ }
108
+
109
+ &:hover {
110
+ background-color: map.get($mega-menu, 'mobile', 'open-background-hover');
111
+ text-decoration: underline;
112
+ }
113
+
114
+ &:focus-visible {
115
+ outline-offset: map.get($mega-menu, 'mobile', 'open-button-offset');
116
+ }
117
+
118
+ .ecl-icon:last-of-type {
119
+ display: none;
120
+ }
121
+ }
122
+
123
+ .ecl-mega-menu[data-expanded] .ecl-mega-menu__open {
124
+ background-color: map.get($mega-menu, 'mobile', 'open-background-active');
125
+
126
+ &:hover {
127
+ background-color: map.get($mega-menu, 'mobile', 'open-background-hover');
128
+ }
129
+
130
+ .ecl-icon:first-of-type {
131
+ display: none;
132
+ }
133
+
134
+ .ecl-icon:last-of-type {
135
+ display: block;
136
+ }
137
+ }
138
+
139
+ .ecl-mega-menu__mega-container-scrollable {
140
+ font: var(--f-m);
141
+ margin-top: var(--s-xs);
142
+ padding: var(--s-s) var(--s-m);
143
+
144
+ * {
145
+ height: auto;
146
+ }
147
+ }
148
+
149
+ .ecl-mega-menu__spacer {
150
+ flex: 1 0 auto;
151
+ }
152
+
153
+ /* stylelint-disable-next-line order/order */
154
+ @include breakpoints.up('xl') {
155
+ .ecl-mega-menu {
156
+ background: map.get($mega-menu, 'desktop', 'menu-background');
157
+ padding-bottom: 0;
158
+ padding-top: 0;
159
+
160
+ .ecl-container {
161
+ padding: 0 map.get($mega-menu, 'desktop', 'container-padding-horizontal');
162
+ }
163
+
164
+ .ecl-mega-menu__container {
165
+ display: block;
166
+ }
167
+
168
+ // For the external icon
169
+ .ecl-mega-menu__link .ecl-icon {
170
+ flex-shrink: 0;
171
+ margin-inline-start: var(--s-2xs) !important;
172
+ }
173
+
174
+ .ecl-mega-menu__site-name,
175
+ .ecl-mega-menu__inner-header,
176
+ .ecl-mega-menu__open,
177
+ .ecl-mega-menu__cta {
178
+ display: none;
179
+ }
180
+ }
181
+
182
+ .ecl-mega-menu__mega-container-scrollable {
183
+ margin-top: 0;
184
+ }
185
+ }
186
+
187
+ /*
188
+ * Inner menu
189
+ */
190
+ .ecl-mega-menu__inner {
191
+ background: map.get($mega-menu, 'mobile', 'content-background');
192
+ bottom: 0;
193
+ display: none;
194
+ position: fixed;
195
+ right: -100%;
196
+ top: 0;
197
+ width: 100%;
198
+ z-index: map.get($theme, 'z-index', 'modal') + 3;
199
+
200
+ /* Force display if JS is disabled */
201
+ .no-js & {
202
+ display: flex;
203
+ }
204
+ }
205
+
206
+ .ecl-mega-menu--start-panel .ecl-mega-menu__inner {
207
+ @include with-scrollbar;
208
+ }
209
+
210
+ // Expanded
211
+ .ecl-mega-menu[data-expanded] .ecl-mega-menu__inner {
212
+ display: block;
213
+ right: 0;
214
+ }
215
+
216
+ .ecl-mega-menu__inner-header {
217
+ align-items: center;
218
+ background: map.get($mega-menu, 'mobile', 'header-background');
219
+ box-shadow: map.get($mega-menu, 'mobile', 'header-shadow');
220
+ color: map.get($mega-menu, 'mobile', 'header-color');
221
+ display: flex;
222
+ flex-flow: row-reverse;
223
+ height: map.get($mega-menu, 'mobile', 'header-height');
224
+ padding-block-end: var(--s-xs);
225
+ }
226
+
227
+ .ecl-mega-menu__title {
228
+ font: map.get($mega-menu, 'mobile', 'header-font');
229
+ padding-inline-start: var(--s-m);
230
+ }
231
+
232
+ .ecl-mega-menu__close {
233
+ align-items: center;
234
+ border-radius: map.get($mega-menu, 'global', 'border-radius');
235
+ cursor: pointer;
236
+ color: currentcolor;
237
+ display: flex;
238
+ flex-direction: column;
239
+ font: var(--f-xs);
240
+ margin-inline-start: auto;
241
+ order: 0;
242
+ text-decoration: none;
243
+
244
+ .ecl-button__container {
245
+ flex-direction: column-reverse;
246
+ }
247
+
248
+ .ecl-button__icon {
249
+ margin-inline-start: 0;
250
+ }
251
+
252
+ .ecl-button__label {
253
+ margin-top: var(--s-2xs);
254
+ }
255
+
256
+ &:hover {
257
+ background-color: map.get($mega-menu, 'mobile', 'header-background-hover');
258
+ border-color: transparent;
259
+ color: currentcolor;
260
+ }
261
+
262
+ &:focus-visible {
263
+ color: currentcolor;
264
+ border-color: currentcolor;
265
+ }
266
+ }
267
+
268
+ .ecl-mega-menu__back {
269
+ cursor: pointer;
270
+ color: currentcolor;
271
+ display: none;
272
+ font: map.get($mega-menu, 'mobile', 'header-font');
273
+ margin: var(--s-l) var(--s-m) 0;
274
+ position: relative;
275
+ text-decoration: none;
276
+
277
+ &:hover {
278
+ background-color: map.get($mega-menu, 'mobile', 'header-background-hover');
279
+ border-color: map.get($mega-menu, 'mobile', 'header-border-hover');
280
+ color: map.get($mega-menu, 'mobile', 'header-color-hover');
281
+ }
282
+
283
+ &:focus-visible {
284
+ color: currentcolor;
285
+ border-color: currentcolor;
286
+ }
287
+ }
288
+
289
+ // Expanded
290
+ @if map.has-key($mega-menu, 'mobile', 'hide-header') {
291
+ .ecl-mega-menu__inner-header {
292
+ flex-flow: row;
293
+ }
294
+
295
+ .ecl-mega-menu__inner:not(.ecl-mega-menu__inner--expanded)
296
+ .ecl-mega-menu__inner-header,
297
+ .ecl-mega-menu__close {
298
+ display: none;
299
+ }
300
+ }
301
+
302
+ .ecl-mega-menu__inner--expanded .ecl-mega-menu__title {
303
+ display: none;
304
+ }
305
+
306
+ .ecl-mega-menu__inner--expanded .ecl-mega-menu__back {
307
+ display: inline-block;
308
+ }
309
+
310
+ .ecl-mega-menu__overlay {
311
+ background-color: map.get($mega-menu, 'mobile', 'overlay-background');
312
+ content: '';
313
+ display: none;
314
+ height: 100%;
315
+ left: 0;
316
+ position: fixed;
317
+ right: 0;
318
+ top: 0;
319
+ width: 100%;
320
+ z-index: -1;
321
+ }
322
+
323
+ .ecl-mega-menu[data-expanded] {
324
+ .ecl-mega-menu__overlay {
325
+ display: block;
326
+ }
327
+ }
328
+
329
+ /* stylelint-disable-next-line order/order */
330
+ @include breakpoints.up('s') {
331
+ .ecl-mega-menu__inner {
332
+ width: 100%;
333
+ }
334
+ }
335
+
336
+ /* stylelint-disable-next-line order/order */
337
+ @include breakpoints.up('xl') {
338
+ .ecl-mega-menu {
339
+ .ecl-mega-menu__overlay {
340
+ background-color: map.get($mega-menu, 'desktop', 'overlay-background');
341
+ opacity: 0.7;
342
+ }
343
+
344
+ .ecl-mega-menu__inner {
345
+ background-color: transparent;
346
+ box-shadow: none;
347
+ display: block;
348
+ overflow-y: visible;
349
+ position: static;
350
+ transition: none;
351
+ width: 100%;
352
+ z-index: map.get($theme, 'z-index', 'modal');
353
+ }
354
+
355
+ .ecl-menu__overlay {
356
+ display: none;
357
+ }
358
+ }
359
+ }
360
+
361
+ .ecl-mega-menu__wrapper {
362
+ background: #fff;
363
+ display: none;
364
+ font: map.get($mega-menu, 'global', 'font');
365
+ position: absolute;
366
+ height: 100%;
367
+ left: 0;
368
+ padding: 0;
369
+ top: 0;
370
+ width: 100%;
371
+ }
372
+
373
+ /*
374
+ * First level
375
+ */
376
+ .ecl-mega-menu__list {
377
+ box-sizing: border-box;
378
+ clear: right;
379
+ display: flex;
380
+ flex-direction: column;
381
+ flex-grow: 1;
382
+ justify-content: flex-start;
383
+ list-style: none;
384
+ list-style-image: url('data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7');
385
+ margin-bottom: 0;
386
+ margin-top: var(--s-m);
387
+ margin-inline-start: var(--s-xs);
388
+ margin-inline-end: var(--s-xs);
389
+ padding: 0;
390
+
391
+ .ecl-mega-menu__inner--expanded & {
392
+ margin-top: 0;
393
+ }
394
+
395
+ .ecl-mega-menu--one-panel &,
396
+ .ecl-mega-menu--two-panels & {
397
+ margin-inline: 0;
398
+ }
399
+ }
400
+
401
+ .ecl-mega-menu__item {
402
+ display: flex;
403
+ flex-direction: column;
404
+ }
405
+
406
+ .ecl-mega-menu__link,
407
+ .ecl-mega-menu__featured-list__item .ecl-link {
408
+ align-items: center;
409
+ background: transparent;
410
+ /* stylelint-disable-next-line declaration-property-value-no-unknown */
411
+ border-bottom: 1px solid
412
+ map.get($mega-menu, 'desktop', 'sublink-current-background');
413
+ border-radius: 0;
414
+ box-sizing: border-box;
415
+ color: map.get($mega-menu, 'mobile', 'item-color');
416
+ display: inline-flex;
417
+ font: map.get($mega-menu, 'global', 'font');
418
+ line-height: map.get($theme, 'line-height-ui', 'xs');
419
+ padding: map.get($mega-menu, 'mobile', 'item-padding');
420
+ position: relative;
421
+ text-align: start;
422
+ width: 100%;
423
+
424
+ > span {
425
+ width: 100%;
426
+ }
427
+
428
+ &:hover {
429
+ background: transparent;
430
+ box-shadow: none;
431
+ border-color: map.get($mega-menu, 'desktop', 'sublink-current-background');
432
+ color: map.get($mega-menu, 'mobile', 'item-color-hover');
433
+ }
434
+
435
+ &[aria-expanded]:hover {
436
+ text-decoration: none;
437
+ }
438
+
439
+ &:visited {
440
+ color: map.get($mega-menu, 'mobile', 'item-color');
441
+ }
442
+
443
+ &:focus-visible {
444
+ background: transparent;
445
+ border-color: transparent;
446
+ border-radius: 0px;
447
+ color: var(--cm-on-surface-brand, var(--c-d));
448
+ outline-color: var(--cm-border-primary, var(--c-p));
449
+ outline-offset: -2px;
450
+ outline-width: 2px;
451
+ }
452
+
453
+ .ecl-icon {
454
+ flex-shrink: 0;
455
+ height: map.get($mega-menu, 'mobile', 'arrow-size');
456
+
457
+ // Overriding style coming from button to align icon on the right
458
+ margin-inline-start: auto !important;
459
+ padding: 1px 3px;
460
+ width: map.get($mega-menu, 'mobile', 'arrow-size');
461
+
462
+ &:first-of-type {
463
+ height: calc(var(--s-s) + 0.5px);
464
+ width: calc(var(--s-s) + 0.5px);
465
+ display: none;
466
+ }
467
+ }
468
+ }
469
+
470
+ .ecl-mega-menu__item--promotional .ecl-mega-menu__link {
471
+ background: var(--ecl-mega-menu-item-promotional-bg);
472
+ color: var(--ecl-mega-menu-item-promotional-text-color);
473
+
474
+ &:hover {
475
+ background: var(--ecl-mega-menu-item-promotional-hover-bg);
476
+ color: var(--ecl-mega-menu-item-promotional-hover-text-color);
477
+ }
478
+
479
+ &:focus-visible {
480
+ background: var(--ecl-mega-menu-item-promotional-focus-bg);
481
+ color: var(--ecl-mega-menu-item-promotional-focus-text-color);
482
+ outline-color: var(--ecl-mega-menu-item-promotional-outline-color);
483
+ outline-offset: -4px;
484
+ }
485
+ }
486
+
487
+ .ecl-mega-menu__featured-list__item {
488
+ .ecl-link {
489
+ .ecl-picture {
490
+ margin-inline: calc(-1 * var(--s-s)) 0;
491
+ }
492
+ }
493
+
494
+ &--combo .ecl-mega-menu__featured-image {
495
+ margin-block-end: var(--s-xs);
496
+ }
497
+
498
+ .ecl-mega-menu__featured-list__item-description {
499
+ margin-inline-start: var(--s-l);
500
+ }
501
+
502
+ .ecl-mega-menu__featured-list__item-description,
503
+ .ecl-mega-menu__featured-list__item-description p {
504
+ font: map.get($mega-menu, 'global', 'featured-description-font');
505
+ margin-block: 0;
506
+ }
507
+ }
508
+
509
+ .ecl-mega-menu--rtl .ecl-icon--flip-horizontal {
510
+ transform: rotate(0);
511
+ }
512
+
513
+ .ecl-mega-menu__sublink.ecl-mega-menu__parent-link {
514
+ border: none;
515
+ box-sizing: border-box;
516
+ padding-bottom: var(--s-xs);
517
+ padding-inline-start: 1.75rem;
518
+ padding-top: var(--s-xs);
519
+
520
+ &:focus-visible {
521
+ outline: none;
522
+
523
+ .ecl-button__label {
524
+ outline: 2px solid var(--cm-border-primary, var(--c-p));
525
+ outline-offset: 4px;
526
+ }
527
+ }
528
+ }
529
+
530
+ .ecl-mega-menu__mega,
531
+ .ecl-mega-menu__info,
532
+ .ecl-mega-menu__mega-container {
533
+ box-sizing: border-box;
534
+ display: none;
535
+ flex-direction: column;
536
+ flex-grow: 1;
537
+ position: relative;
538
+ }
539
+
540
+ .ecl-mega-menu__info {
541
+ background: map.get($mega-menu, 'global', 'greysh-background');
542
+ box-sizing: content-box;
543
+ margin: 0 0 var(--s-m) 0;
544
+ padding-inline-start: 1.75rem;
545
+ padding-bottom: var(--s-2xl);
546
+ padding-inline-end: 1.75rem;
547
+
548
+ .ecl-mega-menu__info-title {
549
+ font: var(--f-l);
550
+ padding: var(--s-xs) var(--s-m) var(--s-xs) 0;
551
+ }
552
+
553
+ .ecl-mega-menu__info-content {
554
+ max-width: var(--max-w);
555
+ }
556
+ }
557
+
558
+ .ecl-mega-menu__subitem {
559
+ .ecl-button__label {
560
+ margin-inline-end: var(--s-m);
561
+ }
562
+
563
+ .ecl-mega-menu__sublink--level-2 {
564
+ background: transparent;
565
+ color: var(--cm-on-surface-primary, var(--c-p));
566
+
567
+ &:hover {
568
+ box-shadow: none;
569
+ color: var(--cm-on-surface-primary-highest, var(--c-p-140));
570
+ }
571
+ }
572
+ }
573
+
574
+ .ecl-mega-menu__item--current .ecl-mega-menu__link,
575
+ .ecl-mega-menu__subitem--current > .ecl-mega-menu__sublink {
576
+ background-color: map.get($mega-menu, 'mobile', 'item-active-background');
577
+ position: relative;
578
+ }
579
+
580
+ /* stylelint-disable-next-line order/order */
581
+ @include breakpoints.up('xl') {
582
+ .ecl-mega-menu {
583
+ border-top: map.get($mega-menu, 'desktop', 'menu-border');
584
+
585
+ .ecl-mega-menu__inner {
586
+ border-top: none;
587
+ margin-inline-start: calc(-1 * var(--s-xs));
588
+ }
589
+
590
+ .ecl-mega-menu__list {
591
+ flex-direction: row;
592
+ left: 0;
593
+ right: 0;
594
+ margin-top: 0;
595
+ padding: 0;
596
+ }
597
+
598
+ .ecl-mega-menu__wrapper {
599
+ padding: 0 0 var(--s-2xl);
600
+ top: 48px;
601
+ }
602
+
603
+ .ecl-mega-menu__item {
604
+ border-top-width: 0;
605
+ color: map.get($mega-menu, 'desktop', 'item-color');
606
+ margin-bottom: 0;
607
+
608
+ &:first-of-type {
609
+ margin-inline-start: 0;
610
+ }
611
+ }
612
+
613
+ .ecl-mega-menu__item--full {
614
+ position: static;
615
+ }
616
+
617
+ .ecl-mega-menu__link {
618
+ background: map.get($mega-menu, 'desktop', 'item-background');
619
+ box-sizing: border-box;
620
+ box-shadow: none;
621
+ border-bottom: none;
622
+ border-radius: 0;
623
+ color: map.get($mega-menu, 'desktop', 'item-color');
624
+ display: inline-flex;
625
+ height: 100%;
626
+ line-height: map.get($mega-menu, 'desktop', 'link-line-height');
627
+ padding: map.get($mega-menu, 'desktop', 'link-padding');
628
+ width: auto;
629
+ z-index: 0;
630
+
631
+ &:active {
632
+ color: #fff;
633
+ }
634
+
635
+ &:hover {
636
+ background: map.get($mega-menu, 'desktop', 'item-background-hover');
637
+ color: map.get($mega-menu, 'desktop', 'item-color-hover');
638
+ box-shadow: none;
639
+ text-decoration: none;
640
+ }
641
+
642
+ &:focus-visible {
643
+ background-color: map.get(
644
+ $mega-menu,
645
+ 'desktop',
646
+ 'item-background-focus'
647
+ );
648
+ border-radius: 0;
649
+ color: map.get($mega-menu, 'desktop', 'item-color-focus');
650
+ outline-color: #fff;
651
+ outline-offset: map.get($mega-menu, 'desktop', 'outline-offset');
652
+ outline-width: map.get($mega-menu, 'desktop', 'outline-width');
653
+ }
654
+ }
655
+
656
+ .ecl-mega-menu__item--promotional .ecl-mega-menu__link {
657
+ background: var(--ecl-mega-menu-item-promotional-bg);
658
+ color: var(--ecl-mega-menu-item-promotional-text-color);
659
+
660
+ &:hover {
661
+ background: var(--ecl-mega-menu-item-promotional-hover-bg);
662
+ color: var(--ecl-mega-menu-item-promotional-hover-text-color);
663
+ }
664
+
665
+ &:focus-visible {
666
+ background: var(--ecl-mega-menu-item-promotional-focus-bg);
667
+ color: var(--ecl-mega-menu-item-promotional-focus-text-color);
668
+ outline-color: var(--ecl-mega-menu-item-promotional-outline-color);
669
+ }
670
+ }
671
+
672
+ .ecl-mega-menu__sublink {
673
+ border-bottom: none;
674
+ }
675
+
676
+ &.ecl-mega-menu--rtl {
677
+ .ecl-mega-menu__see-all .ecl-icon {
678
+ transform: rotate(0);
679
+ }
680
+ }
681
+
682
+ .ecl-mega-menu__item--has-children,
683
+ .ecl-mega-menu__item--has-container {
684
+ .ecl-mega-menu__link .ecl-icon {
685
+ height: calc(var(--s-xs) + 2px);
686
+ transform: rotate(180deg);
687
+ width: calc(var(--s-xs) + 2px);
688
+
689
+ &:first-of-type {
690
+ display: flex;
691
+ }
692
+
693
+ &:last-of-type {
694
+ display: none;
695
+ }
696
+ }
697
+ }
698
+
699
+ .ecl-mega-menu__featured-list__item-description {
700
+ margin-inline-start: var(--s-s);
701
+ }
702
+
703
+ .ecl-mega-menu__item--current {
704
+ background-color: map.get(
705
+ $mega-menu,
706
+ 'desktop',
707
+ 'item-current-background'
708
+ );
709
+ box-shadow: map.get($mega-menu, 'desktop', 'item-current-shadow');
710
+ color: map.get($mega-menu, 'desktop', 'item-current-color');
711
+ margin-top: map.get($mega-menu, 'desktop', 'item-current-margin');
712
+
713
+ .ecl-link__icon {
714
+ display: inline-flex;
715
+ }
716
+
717
+ &:hover {
718
+ background-color: map.get(
719
+ $mega-menu,
720
+ 'desktop',
721
+ 'item-current-background'
722
+ );
723
+ }
724
+
725
+ .ecl-mega-menu__link:focus-visible {
726
+ outline-color: var(--cm-border-primary, var(--c-p));
727
+ }
728
+ }
729
+ }
730
+
731
+ .ecl-mega-menu {
732
+ .ecl-mega-menu__item {
733
+ &.ecl-mega-menu__item--expanded > .ecl-button .ecl-icon {
734
+ transform: rotate(0);
735
+ }
736
+
737
+ &.ecl-mega-menu__item--expanded {
738
+ .ecl-mega-menu__link {
739
+ background-color: #fff;
740
+ color: var(--cm-on-surface-brand, var(--c-d));
741
+ display: flex;
742
+ z-index: map.get($theme, 'z-index', 'dropdown') + 1;
743
+ }
744
+ }
745
+ }
746
+ }
747
+ }
748
+
749
+ /*
750
+ * Second level
751
+ */
752
+ .ecl-mega-menu__item--expanded,
753
+ .ecl-mega-menu__subitem--expanded {
754
+ border-top-width: 0;
755
+ flex-direction: column;
756
+ position: relative;
757
+
758
+ > .ecl-mega-menu__wrapper,
759
+ > .ecl-mega-menu__mega,
760
+ > .ecl-mega-menu__wrapper > .ecl-container > .ecl-mega-menu__mega,
761
+ > .ecl-mega-menu__mega-container,
762
+ > .ecl-mega-menu__wrapper > .ecl-container > .ecl-mega-menu__info {
763
+ display: flex;
764
+ }
765
+
766
+ > .ecl-mega-menu__sublink,
767
+ > .ecl-mega-menu__sublink.ecl-link--icon {
768
+ display: none;
769
+ }
770
+
771
+ .ecl-mega-menu__link {
772
+ background-color: map.get($mega-menu, 'global', 'greysh-background');
773
+ box-shadow: none;
774
+ display: none;
775
+ }
776
+ }
777
+
778
+ .ecl-mega-menu__inner--expanded
779
+ .ecl-mega-menu__item:not(.ecl-mega-menu__item--expanded) {
780
+ display: none;
781
+ }
782
+
783
+ .ecl-mega-menu__inner--expanded .ecl-mega-menu__link-icon {
784
+ display: none;
785
+ }
786
+
787
+ @include breakpoints.down('l') {
788
+ .ecl-mega-menu--one-panel {
789
+ .ecl-mega-menu__item--expanded > .ecl-mega-menu__link {
790
+ font: var(--f-l);
791
+ }
792
+ }
793
+
794
+ .ecl-mega-menu--two-panels {
795
+ .ecl-mega-menu__item--expanded > .ecl-mega-menu__link {
796
+ display: none;
797
+ }
798
+
799
+ .ecl-mega-menu__subitem--expanded > .ecl-mega-menu__sublink {
800
+ background-color: map.get(
801
+ $mega-menu,
802
+ 'desktop',
803
+ 'sublink-current-background'
804
+ );
805
+ display: flex;
806
+ margin: 0 calc(-1 * var(--s-xs));
807
+ overflow: visible;
808
+
809
+ &.ecl-mega-menu__parent-link {
810
+ border: none;
811
+ cursor: default;
812
+ font: var(--f-l);
813
+ margin: 0 calc(-1 * var(--s-xs));
814
+ width: 100vw;
815
+
816
+ &::after {
817
+ background: map.get(
818
+ $mega-menu,
819
+ 'desktop',
820
+ 'sublink-current-background'
821
+ );
822
+ content: ' ';
823
+ display: block;
824
+ height: var(--s-xl);
825
+ position: absolute;
826
+ left: 0;
827
+ top: 100%;
828
+ width: 100vw;
829
+ }
830
+ }
831
+
832
+ .ecl-button__icon {
833
+ display: none;
834
+ }
835
+ }
836
+
837
+ .ecl-mega-menu__info {
838
+ display: none !important;
839
+ }
840
+
841
+ .ecl-mega-menu__wrapper {
842
+ top: 0 !important;
843
+ }
844
+ }
845
+ }
846
+
847
+ .ecl-mega-menu__sublist,
848
+ .ecl-mega-menu__featured-list {
849
+ list-style: none;
850
+ list-style-image: url('data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7');
851
+ margin-bottom: var(--s-m);
852
+ padding: 0 var(--s-xs);
853
+
854
+ .ecl-mega-menu__sublist {
855
+ padding-inline: 0 !important;
856
+ }
857
+
858
+ .ecl-mega-menu__see-all {
859
+ .ecl-link {
860
+ border-radius: 0;
861
+ box-sizing: border-box;
862
+ color: var(--cm-on-surface-brand, var(--c-d));
863
+ margin: 0 var(--s-l);
864
+ padding: var(--s-xs) 0;
865
+
866
+ &:hover {
867
+ text-decoration: none;
868
+ }
869
+
870
+ &:focus-visible {
871
+ outline-offset: 2px;
872
+ }
873
+
874
+ .ecl-icon {
875
+ margin-inline-start: var(--s-m);
876
+ }
877
+ }
878
+ }
879
+ }
880
+
881
+ .ecl-mega-menu__see-all .ecl-link.ecl-mega-menu__info-link {
882
+ border-bottom: 1px solid transparent;
883
+ display: inline-block;
884
+ margin-block-end: var(--s-m);
885
+ width: fit-content;
886
+
887
+ &:hover {
888
+ text-decoration: underline !important;
889
+ }
890
+
891
+ &:focus-visible {
892
+ border-radius: 0;
893
+ }
894
+
895
+ .ecl-mega-menu__info-content + & {
896
+ margin-top: var(--s-xs);
897
+ }
898
+ }
899
+
900
+ .ecl-mega-menu__featured-list {
901
+ margin: 0;
902
+ padding: 0;
903
+ }
904
+
905
+ .ecl-mega-menu__sublink {
906
+ background: transparent;
907
+ box-sizing: border-box;
908
+ /* stylelint-disable-next-line declaration-property-value-no-unknown */
909
+ border-bottom: 1.5px solid
910
+ map.get($mega-menu, 'desktop', 'sublink-current-background');
911
+ border-radius: 0;
912
+ color: map.get($mega-menu, 'mobile', 'item-color');
913
+ font: map.get($mega-menu, 'global', 'font');
914
+ padding: map.get($mega-menu, 'mobile', 'subitem-padding');
915
+ position: relative;
916
+ line-height: map.get($theme, 'line-height-ui', 'xs');
917
+ min-height: 42px;
918
+ text-align: initial;
919
+ width: 100%;
920
+
921
+ &.ecl-link--icon:not(.ecl-mega-menu__parent-link) {
922
+ display: flex;
923
+ overflow: visible;
924
+
925
+ .ecl-link__icon {
926
+ height: calc(var(--s-s) + 0.5px);
927
+ padding: 1px 3px;
928
+ }
929
+ }
930
+
931
+ &:hover {
932
+ background: transparent;
933
+ border-color: map.get($mega-menu, 'desktop', 'sublink-current-background');
934
+ box-shadow: none;
935
+ color: map.get($mega-menu, 'mobile', 'item-color-hover');
936
+ }
937
+
938
+ &[aria-expanded]:hover {
939
+ text-decoration: none;
940
+ }
941
+
942
+ &:visited {
943
+ color: map.get($mega-menu, 'mobile', 'item-color');
944
+ }
945
+
946
+ &--current {
947
+ background-color: var(--cm-surface-neutral-lowest, var(--c-n-80));
948
+ box-shadow: inset 4px 0 0 0 var(--cm-border-primary, var(--c-p));
949
+ }
950
+
951
+ &:focus-visible {
952
+ background: transparent;
953
+ border-color: transparent;
954
+ color: var(--cm-on-surface-brand, var(--c-d));
955
+ outline-color: var(--cm-border-primary, var(--c-p));
956
+ outline-offset: -2px;
957
+ outline-width: 2px;
958
+ }
959
+
960
+ .ecl-icon {
961
+ align-self: center;
962
+ flex-shrink: 0;
963
+
964
+ // Overriding style coming from button to align item on the right
965
+ margin-inline-start: auto !important;
966
+ height: map.get($theme, 'icon', '2xs');
967
+ width: map.get($theme, 'icon', '2xs');
968
+ }
969
+ }
970
+
971
+ .ecl-mega-menu__mega--has-featured {
972
+ @at-root .ecl-mega-menu--featured--primary
973
+ .ecl-mega-menu__subitem--current
974
+ .ecl-mega-menu__featured {
975
+ display: none !important;
976
+ }
977
+
978
+ @at-root .ecl-mega-menu--has-secondary-featured:not(
979
+ .ecl-mega-menu--featured--primary
980
+ )
981
+ &
982
+ > .ecl-mega-menu__featured {
983
+ display: none !important;
984
+ }
985
+
986
+ .ecl-mega-menu__featured-list__item:last-child {
987
+ padding-block-end: var(--s-m);
988
+ }
989
+
990
+ @include with-scrollbar;
991
+ }
992
+
993
+ .ecl-mega-menu__sublist--scrollable {
994
+ @include with-scrollbar;
995
+ }
996
+
997
+ .ecl-mega-menu__mega--level-2 {
998
+ margin-top: map.get($mega-menu, 'mobile', 'spacing-top-level-2');
999
+
1000
+ > .ecl-mega-menu__sublist {
1001
+ padding: 0 var(--s-xs);
1002
+ }
1003
+
1004
+ .ecl-mega-menu__sublink {
1005
+ color: var(--cm-on-surface-primary, var(--c-p));
1006
+
1007
+ &:hover {
1008
+ text-decoration: underline;
1009
+ }
1010
+
1011
+ &:focus-visible {
1012
+ color: var(--cm-on-surface-primary, var(--c-p)) !important;
1013
+ }
1014
+
1015
+ &.ecl-mega-menu__sublink--last {
1016
+ border-bottom: none;
1017
+ }
1018
+
1019
+ .ecl-link__label {
1020
+ margin-inline-end: 0;
1021
+ }
1022
+ }
1023
+
1024
+ .ecl-mega-menu__sublink .ecl-icon {
1025
+ margin-inline-start: var(--s-xs);
1026
+ }
1027
+
1028
+ &.ecl-mega-menu-featured-only {
1029
+ margin-block-start: var(--s-xl);
1030
+ }
1031
+ }
1032
+
1033
+ .ecl-mega-menu__featured {
1034
+ background-color: map.get($mega-menu, 'mobile', 'featured-background');
1035
+ border-color: var(--cm-border-neutral, var(--c-n));
1036
+ border-width: 0.5px;
1037
+ flex-direction: column;
1038
+ flex-grow: 1;
1039
+ padding: 0;
1040
+
1041
+ .ecl-mega-menu__featured-scrollable {
1042
+ background-color: map.get($mega-menu, 'mobile', 'featured-background');
1043
+ }
1044
+
1045
+ .ecl-mega-menu__featured-picture {
1046
+ display: block;
1047
+
1048
+ .ecl-mega-menu__featured-image {
1049
+ aspect-ratio: 3/2;
1050
+ display: block;
1051
+ margin-inline-start: var(--s-l);
1052
+ margin-block-start: var(--s-m);
1053
+ max-width: 15.25rem;
1054
+ }
1055
+ }
1056
+
1057
+ .ecl-link .ecl-mega-menu__featured-picture .ecl-mega-menu__featured-image {
1058
+ margin-inline-start: var(--s-s);
1059
+ }
1060
+
1061
+ .ecl-mega-menu__featured-title {
1062
+ display: block;
1063
+ margin: calc(var(--s-xs) + 2px) var(--s-m) calc(var(--s-xs) + 2px)
1064
+ var(--s-l);
1065
+ font: var(--f-m);
1066
+ }
1067
+
1068
+ .ecl-mega-menu__featured-content {
1069
+ padding: 0 var(--s-m) var(--s-xl);
1070
+ }
1071
+
1072
+ .ecl-mega-menu__featured-list {
1073
+ .ecl-mega-menu__featured-list__item {
1074
+ line-height: map.get($theme, 'line-height-ui', 'xs');
1075
+ margin-bottom: 0;
1076
+
1077
+ .ecl-link {
1078
+ border-radius: 0;
1079
+ box-sizing: border-box;
1080
+ color: var(--cm-on-surface-primary, var(--c-p));
1081
+ display: block;
1082
+ outline-offset: -2px;
1083
+ padding: var(--s-2xs) var(--s-l);
1084
+ width: 100%;
1085
+
1086
+ &:hover {
1087
+ color: var(--cm-on-surface-primary, var(--c-p));
1088
+ }
1089
+ }
1090
+
1091
+ &--image-only {
1092
+ margin-block-end: var(--s-2xs);
1093
+ }
1094
+ }
1095
+ }
1096
+ }
1097
+
1098
+ .ecl-mega-menu__mega:not(.ecl-mega-menu__mega--level-2)
1099
+ > .ecl-mega-menu__featured {
1100
+ margin-inline: var(--s-xs);
1101
+ margin-block-start: calc(-1 * var(--s-m));
1102
+ padding-block: 0;
1103
+ }
1104
+
1105
+ .ecl-mega-menu--rtl {
1106
+ .ecl-mega-menu__see-all .ecl-icon,
1107
+ .ecl-mega-menu__info-link .ecl-icon {
1108
+ transform: rotate(0);
1109
+ }
1110
+
1111
+ .ecl-mega-menu__see-all .ecl-link__label {
1112
+ padding-inline-start: var(--s-m);
1113
+ }
1114
+ }
1115
+
1116
+ @include breakpoints.up('xl') {
1117
+ .ecl-mega-menu {
1118
+ .ecl-mega-menu__wrapper {
1119
+ padding-top: var(--s-m);
1120
+
1121
+ &::before {
1122
+ background: var(--cm-border-neutral, '#e3e3e3');
1123
+ content: ' ';
1124
+ display: block;
1125
+ height: 1px;
1126
+ position: absolute;
1127
+ width: 98%;
1128
+ margin-inline-start: 1%;
1129
+ bottom: var(--s-m);
1130
+ }
1131
+ }
1132
+
1133
+ .ecl-mega-menu__list {
1134
+ margin: 0;
1135
+ padding: 0;
1136
+ }
1137
+
1138
+ .ecl-mega-menu__item--expanded,
1139
+ .ecl-mega-menu__subitem--expanded {
1140
+ position: static;
1141
+ }
1142
+
1143
+ .ecl-mega-menu__item
1144
+ > .ecl-mega-menu__wrapper
1145
+ > .ecl-container
1146
+ > .ecl-mega-menu__mega,
1147
+ .ecl-mega-menu__item > .ecl-mega-menu__mega-container,
1148
+ .ecl-mega-menu__item
1149
+ > .ecl-mega-menu__wrapper
1150
+ > .ecl-container
1151
+ > .ecl-mega-menu__info {
1152
+ background-color: #fff;
1153
+ border: map.get($mega-menu, 'desktop', 'mega-border');
1154
+ border-radius: 0 0 map.get($mega-menu, 'global', 'border-radius')
1155
+ map.get($mega-menu, 'global', 'border-radius');
1156
+ box-shadow: map.get($mega-menu, 'desktop', 'mega-shadow');
1157
+ display: flex;
1158
+ flex-direction: column;
1159
+ left: 0;
1160
+ position: absolute;
1161
+ transition-property: opacity;
1162
+ transition-duration: 0.3s;
1163
+ transition-timing-function: ease;
1164
+ opacity: 0;
1165
+ visibility: hidden;
1166
+ z-index: map.get($theme, 'z-index', 'dropdown');
1167
+ }
1168
+
1169
+ @at-root .ecl-mega-menu--rtl .ecl-mega-menu__info::after {
1170
+ right: auto !important;
1171
+ left: 10px !important;
1172
+ }
1173
+
1174
+ .ecl-mega-menu__item
1175
+ > .ecl-mega-menu__wrapper
1176
+ .ecl-container
1177
+ > .ecl-mega-menu__info {
1178
+ margin-bottom: var(--s-m);
1179
+ padding: 0 0 var(--s-m);
1180
+ position: static;
1181
+ width: auto;
1182
+
1183
+ @include with-scrollbar;
1184
+ }
1185
+
1186
+ &.ecl-mega-menu--rtl {
1187
+ .ecl-mega-menu__item
1188
+ > .ecl-mega-menu__wrapper
1189
+ > .ecl-container
1190
+ > [data-ecl-mega-menu-mega],
1191
+ .ecl-mega-menu__item > .ecl-mega-menu__mega-container {
1192
+ left: auto;
1193
+ right: 0;
1194
+ }
1195
+
1196
+ .ecl-mega-menu__mega--level-2,
1197
+ .ecl-mega-menu__featured {
1198
+ left: auto;
1199
+ right: 100%;
1200
+ }
1201
+ }
1202
+
1203
+ .ecl-mega-menu__mega {
1204
+ overflow-x: visible;
1205
+ width: 21rem;
1206
+ }
1207
+
1208
+ .ecl-mega-menu__item > .ecl-mega-menu__mega-container {
1209
+ background-color: #fff;
1210
+ top: 100%;
1211
+ width: 100%;
1212
+
1213
+ .ecl-mega-menu__mega-container-scrollable {
1214
+ height: 100%;
1215
+ margin: 0 calc(-1 * var(--s-m));
1216
+
1217
+ @include with-scrollbar;
1218
+ }
1219
+ }
1220
+
1221
+ .ecl-mega-menu__info-link {
1222
+ margin-top: 0;
1223
+ }
1224
+
1225
+ .ecl-mega-menu__item {
1226
+ justify-content: center;
1227
+ }
1228
+
1229
+ .ecl-mega-menu__inner--expanded
1230
+ .ecl-mega-menu__item:not(.ecl-mega-menu__item--expanded),
1231
+ .ecl-mega-menu__subitem--expanded > .ecl-mega-menu__sublink {
1232
+ display: flex;
1233
+ }
1234
+
1235
+ .ecl-mega-menu__item.ecl-mega-menu__item--expanded
1236
+ > .ecl-mega-menu__wrapper
1237
+ > .ecl-container,
1238
+ .ecl-mega-menu__item--has-container.ecl-mega-menu__item--expanded,
1239
+ .ecl-mega-menu__subitem.ecl-mega-menu__subitem--expanded {
1240
+ > .ecl-mega-menu__mega-container,
1241
+ > .ecl-mega-menu__mega,
1242
+ > .ecl-mega-menu__info {
1243
+ transition-property: opacity;
1244
+ opacity: 1;
1245
+ visibility: visible;
1246
+ }
1247
+
1248
+ .ecl-mega-menu__link {
1249
+ border-bottom: 0;
1250
+ }
1251
+
1252
+ .ecl-mega-menu__info-content {
1253
+ margin-top: var(--s-2xs);
1254
+ }
1255
+
1256
+ > .ecl-mega-menu__info {
1257
+ box-sizing: border-box;
1258
+ box-shadow: 0px 4px 10px 0px rgb(224, 229, 245, 0.42);
1259
+ margin-inline: calc(
1260
+ -1 * map.get($mega-menu, 'desktop', 'container-padding-horizontal')
1261
+ );
1262
+ padding-inline-start: map.get(
1263
+ $mega-menu,
1264
+ 'desktop',
1265
+ 'container-padding-horizontal'
1266
+ );
1267
+ }
1268
+
1269
+ .ecl-mega-menu__mega:not(.ecl-mega-menu__mega--level-2)
1270
+ > .ecl-mega-menu__featured {
1271
+ background: var(--cm-on-surface-inverted, #fff);
1272
+ display: flex;
1273
+ height: auto;
1274
+ margin-block: 0;
1275
+ margin-inline-start: 21rem;
1276
+
1277
+ .ecl-mega-menu__featured-list__item .ecl-link {
1278
+ border-bottom: none;
1279
+ margin: 0;
1280
+ padding-inline: var(--s-s) 0;
1281
+ padding-block: var(--s-2xs);
1282
+ }
1283
+
1284
+ .ecl-mega-menu__featured-list__item .ecl-link > .ecl-picture {
1285
+ margin-block-start: calc(-1 * var(--s-2xs));
1286
+ }
1287
+ }
1288
+
1289
+ .ecl-mega-menu__subitem--expanded .ecl-mega-menu__featured {
1290
+ background: #fff;
1291
+ display: flex;
1292
+ margin-bottom: 0;
1293
+
1294
+ .ecl-mega-menu__featured-title {
1295
+ border-top: none;
1296
+ padding-inline-start: 0;
1297
+ padding-top: 0;
1298
+ }
1299
+
1300
+ .ecl-mega-menu__featured-list__item .ecl-link {
1301
+ border-bottom: none;
1302
+ margin: 0;
1303
+ padding-inline: var(--s-s) 0;
1304
+ padding-block: var(--s-2xs);
1305
+ }
1306
+ }
1307
+ }
1308
+
1309
+ .ecl-mega-menu__sublist {
1310
+ border-color: #fff;
1311
+ border-width: 2px;
1312
+ display: flex;
1313
+ flex-direction: column;
1314
+ flex: 1;
1315
+ margin: 0;
1316
+ padding-inline: 0;
1317
+
1318
+ @include with-scrollbar;
1319
+
1320
+ .ecl-mega-menu__sublist {
1321
+ margin-inline-start: var(--s-m);
1322
+ }
1323
+
1324
+ .ecl-mega-menu__see-all {
1325
+ display: block;
1326
+ flex-grow: 0;
1327
+ margin-top: auto;
1328
+ padding-inline-start: var(--s-xs);
1329
+ position: relative;
1330
+
1331
+ .ecl-link {
1332
+ border-bottom: 1px solid transparent;
1333
+ margin: calc(var(--s-xs) + 2px) 0 calc(var(--s-xs) + 2px) var(--s-s);
1334
+ padding: 0;
1335
+ outline-offset: 2px;
1336
+
1337
+ .ecl-link__icon {
1338
+ margin-inline-start: var(--s-xs);
1339
+ }
1340
+
1341
+ &:hover {
1342
+ text-decoration: underline;
1343
+ }
1344
+ }
1345
+
1346
+ &::before {
1347
+ content: '';
1348
+ display: block;
1349
+ height: 1px;
1350
+ position: absolute;
1351
+ left: var(--s-l);
1352
+ width: calc(100% - (var(--s-l) * 2));
1353
+ background: map.get($mega-menu, 'desktop', 'see-all-divider');
1354
+ }
1355
+ }
1356
+ }
1357
+
1358
+ .ecl-mega-menu__mega--level-2 {
1359
+ left: 100%;
1360
+ top: 0;
1361
+ background: map.get($mega-menu, 'global', 'greysh-background');
1362
+ height: 100%;
1363
+ margin-inline-end: 0;
1364
+ margin-inline-start: 0;
1365
+ margin-top: 0;
1366
+ position: absolute;
1367
+ visibility: hidden;
1368
+ opacity: 0;
1369
+ transition-timing-function: ease;
1370
+ transition-property: opacity;
1371
+ transition-duration: 0.3s;
1372
+
1373
+ @include with-scrollbar;
1374
+
1375
+ overflow-y: visible;
1376
+
1377
+ &.ecl-mega-menu-featured-only {
1378
+ background: var(--cm-surface-inverted, #fff);
1379
+ }
1380
+
1381
+ > .ecl-mega-menu__sublist {
1382
+ border: none;
1383
+ position: relative;
1384
+ }
1385
+
1386
+ .ecl-mega-menu__subitem {
1387
+ &--current .ecl-mega-menu__sublink,
1388
+ &.ecl-mega-menu__subitem--current-page .ecl-mega-menu__sublink {
1389
+ background-color: transparent;
1390
+ box-shadow: none;
1391
+ }
1392
+ }
1393
+
1394
+ .ecl-mega-menu__sublink {
1395
+ padding: map.get($mega-menu, 'desktop', 'sublink-level2-padding');
1396
+
1397
+ .ecl-link__label {
1398
+ margin-inline-end: 0;
1399
+ }
1400
+
1401
+ &:hover {
1402
+ text-decoration: underline;
1403
+ }
1404
+
1405
+ &:focus-visible {
1406
+ outline-color: var(--cm-border-primary, var(--c-p));
1407
+ }
1408
+ }
1409
+ }
1410
+
1411
+ .ecl-mega-menu__mega--rtl {
1412
+ left: auto;
1413
+ right: 0;
1414
+ }
1415
+
1416
+ .ecl-mega-menu__subitem {
1417
+ align-items: center;
1418
+ border-top-width: 0;
1419
+ box-sizing: border-box;
1420
+ margin: 0;
1421
+ padding: 0;
1422
+ width: 100%;
1423
+ }
1424
+
1425
+ .ecl-mega-menu__sublink {
1426
+ background: transparent;
1427
+ break-inside: avoid-column;
1428
+ border-inline-start: 4px solid transparent;
1429
+ margin: 0;
1430
+ padding: map.get($mega-menu, 'desktop', 'sublink-padding');
1431
+ white-space: normal;
1432
+ width: 100%;
1433
+
1434
+ > .ecl-button__container {
1435
+ width: 100%;
1436
+ }
1437
+
1438
+ &:hover {
1439
+ background-color: map.get(
1440
+ $mega-menu,
1441
+ 'desktop',
1442
+ 'sublink-current-background'
1443
+ );
1444
+ }
1445
+
1446
+ &:focus-visible {
1447
+ border-color: transparent;
1448
+ color: var(--cm-on-surface-brand, var(--c-d));
1449
+ outline-color: var(--cm-border-primary, var(--c-p));
1450
+ outline-width: 2px;
1451
+ }
1452
+ }
1453
+
1454
+ .ecl-mega-menu__subitem[aria-expanded] > .ecl-mega-menu__sublink:hover {
1455
+ background-color: var(--cm-surface-neutral-lowest, var(--c-n-40));
1456
+ box-shadow: none;
1457
+ text-decoration: none;
1458
+ }
1459
+
1460
+ .ecl-mega-menu__subitem--current {
1461
+ > .ecl-mega-menu__sublink,
1462
+ > .ecl-mega-menu__sublink:hover,
1463
+ > .ecl-mega-menu__sublink:focus-visible {
1464
+ background-color: map.get(
1465
+ $mega-menu,
1466
+ 'desktop',
1467
+ 'sublink-current-background'
1468
+ );
1469
+ border-color: var(--cm-border-primary, var(--c-p));
1470
+ }
1471
+ }
1472
+ }
1473
+
1474
+ .ecl-mega-menu__featured {
1475
+ box-sizing: border-box;
1476
+ display: none;
1477
+ font: var(--f-m);
1478
+ height: 100%;
1479
+ margin: 0;
1480
+ padding-inline: 0;
1481
+ position: absolute;
1482
+ left: calc(100% + var(--s-m));
1483
+ width: 16.25rem;
1484
+ top: 0;
1485
+
1486
+ .ecl-mega-menu__featured-scrollable {
1487
+ background-color: transparent;
1488
+ height: 100%;
1489
+
1490
+ @include with-scrollbar;
1491
+ }
1492
+
1493
+ .ecl-mega-menu__featured-picture {
1494
+ display: block;
1495
+
1496
+ .ecl-mega-menu__featured-image {
1497
+ aspect-ratio: 3/2;
1498
+ display: block;
1499
+ margin-block-start: 0;
1500
+ margin-inline-start: var(--s-s);
1501
+ max-width: calc(100% - var(--s-s));
1502
+ }
1503
+ }
1504
+
1505
+ .ecl-mega-menu__featured-content {
1506
+ padding: 0 var(--s-m) var(--s-xl);
1507
+ }
1508
+
1509
+ .ecl-mega-menu__featured-title {
1510
+ font: var(--f-l);
1511
+ margin-bottom: calc(var(--s-xs) + 2px);
1512
+ margin-top: calc(var(--s-xs) + 2px);
1513
+ margin-inline-start: var(--s-s);
1514
+ }
1515
+ }
1516
+
1517
+ .ecl-mega-menu__mega--has-featured {
1518
+ overflow-y: unset;
1519
+ }
1520
+ }
1521
+
1522
+ @media (width >= 1368px) {
1523
+ .ecl-mega-menu {
1524
+ .ecl-container {
1525
+ padding-inline: map.get(
1526
+ $mega-menu,
1527
+ 'desktop',
1528
+ 'container-extra-large-padding-horizontal'
1529
+ );
1530
+ }
1531
+
1532
+ .ecl-mega-menu__inner {
1533
+ margin-inline-start: calc(-1 * var(--s-m));
1534
+ }
1535
+
1536
+ .ecl-mega-menu__item.ecl-mega-menu__item--expanded
1537
+ > .ecl-mega-menu__wrapper
1538
+ > .ecl-container {
1539
+ > .ecl-mega-menu__info {
1540
+ box-shadow: none;
1541
+ border-radius: 0px map.get($theme, 'border-radius', 's')
1542
+ map.get($theme, 'border-radius', 's') 0px;
1543
+ left: map.get(
1544
+ $mega-menu,
1545
+ 'desktop',
1546
+ 'container-extra-large-padding-horizontal'
1547
+ );
1548
+ margin-bottom: 0;
1549
+ margin-inline: 0;
1550
+ padding-inline-start: 0;
1551
+ padding-inline-end: 1.5rem;
1552
+ position: absolute;
1553
+ width: 15.875rem;
1554
+ z-index: 16;
1555
+
1556
+ &::after {
1557
+ content: '';
1558
+ position: absolute;
1559
+ top: 0;
1560
+ right: 10px;
1561
+ bottom: 0;
1562
+ width: 10px;
1563
+ box-shadow: 4px 0px 10px 0px rgb(224, 229, 245, 0.5);
1564
+ pointer-events: none;
1565
+ }
1566
+
1567
+ .ecl-mega-menu__info-title {
1568
+ display: block;
1569
+ margin-top: var(--s-xs);
1570
+ padding: 0;
1571
+ }
1572
+
1573
+ .ecl-mega-menu__info-content {
1574
+ margin-bottom: var(--s-l);
1575
+ margin-top: var(--s-m);
1576
+ }
1577
+ }
1578
+
1579
+ .ecl-mega-menu__mega {
1580
+ width: 18.75rem;
1581
+ }
1582
+
1583
+ .ecl-mega-menu__featured {
1584
+ width: 14.375rem;
1585
+ }
1586
+
1587
+ > .ecl-mega-menu__mega {
1588
+ left: 18rem;
1589
+ }
1590
+ }
1591
+
1592
+ &.ecl-mega-menu--rtl .ecl-mega-menu__info {
1593
+ left: auto !important;
1594
+ right: map.get(
1595
+ $mega-menu,
1596
+ 'desktop',
1597
+ 'container-extra-large-padding-horizontal'
1598
+ ) !important;
1599
+ }
1600
+
1601
+ &.ecl-mega-menu--rtl
1602
+ .ecl-mega-menu__item--expanded
1603
+ > .ecl-mega-menu__wrapper
1604
+ > .ecl-container
1605
+ > .ecl-mega-menu__mega {
1606
+ right: calc(14.375rem + var(--s-xl));
1607
+ }
1608
+ }
1609
+ }
1610
+
1611
+ @include breakpoints.up('xl') {
1612
+ .ecl-mega-menu {
1613
+ .ecl-container {
1614
+ padding-inline: map.get(
1615
+ $mega-menu,
1616
+ 'global',
1617
+ 'container-extra-large-padding-horizontal'
1618
+ );
1619
+ }
1620
+
1621
+ .ecl-mega-menu__mega:not(.ecl-mega-menu__mega--level-2)
1622
+ > .ecl-mega-menu__featured {
1623
+ margin-inline-start: 18.75rem !important;
1624
+ }
1625
+
1626
+ .ecl-mega-menu__wrapper::before {
1627
+ width: 96%;
1628
+ margin-inline-start: 2%;
1629
+ }
1630
+
1631
+ .ecl-mega-menu__item--one-level-only {
1632
+ .ecl-mega-menu__mega {
1633
+ width: calc(100% - var(--s-xl));
1634
+
1635
+ &.ecl-mega-menu__mega--has-featured {
1636
+ width: calc(100% - 17.785rem - var(--s-xl));
1637
+ }
1638
+
1639
+ .ecl-mega-menu__sublist {
1640
+ column-count: 3;
1641
+ column-gap: var(--s-2xl);
1642
+ column-rule: 1px solid var(--cm-border-low);
1643
+ display: block;
1644
+ }
1645
+
1646
+ > .ecl-mega-menu__featured {
1647
+ margin-inline-start: 0 !important;
1648
+ }
1649
+ }
1650
+ }
1651
+ }
1652
+ }
1653
+
1654
+ @media (width >= 1368px) {
1655
+ .ecl-mega-menu {
1656
+ .ecl-mega-menu__mega:not(.ecl-mega-menu__mega--level-2)
1657
+ > .ecl-mega-menu__featured {
1658
+ margin-inline-start: 20.68rem !important;
1659
+ }
1660
+
1661
+ .ecl-mega-menu__item.ecl-mega-menu__item--expanded
1662
+ > .ecl-mega-menu__wrapper
1663
+ > .ecl-container {
1664
+ .ecl-mega-menu__featured {
1665
+ width: 17.875rem;
1666
+ }
1667
+
1668
+ .ecl-mega-menu__mega {
1669
+ width: 20.68rem;
1670
+ }
1671
+
1672
+ > {
1673
+ .ecl-mega-menu__info {
1674
+ padding-inline-start: 0;
1675
+ width: 18.875rem;
1676
+ }
1677
+
1678
+ .ecl-mega-menu__mega {
1679
+ left: 22rem;
1680
+ width: 20.93rem;
1681
+
1682
+ &.ecl-mega-menu__mega--no-info {
1683
+ left: 0;
1684
+ width: 39.805rem;
1685
+ }
1686
+ }
1687
+ }
1688
+ }
1689
+
1690
+ // First panel one level only
1691
+ .ecl-mega-menu__item.ecl-mega-menu__item--expanded.ecl-mega-menu__item--one-level-only
1692
+ > .ecl-mega-menu__wrapper
1693
+ > .ecl-container {
1694
+ > .ecl-mega-menu__mega {
1695
+ width: calc(100% - 22rem);
1696
+
1697
+ .ecl-mega-menu__sublist {
1698
+ column-count: 3;
1699
+ column-gap: var(--s-2xl);
1700
+ column-rule: 1px solid var(--cm-border-low);
1701
+ display: block;
1702
+ }
1703
+
1704
+ // Without info
1705
+ &.ecl-mega-menu__mega--no-info {
1706
+ width: 100%;
1707
+
1708
+ .ecl-mega-menu__sublist {
1709
+ column-count: 4;
1710
+ }
1711
+ }
1712
+
1713
+ // with featued panel
1714
+ &.ecl-mega-menu__mega--has-featured {
1715
+ width: calc(100% - 22rem - 18.875rem - calc(var(--s-3xl)));
1716
+
1717
+ .ecl-mega-menu__sublist {
1718
+ column-count: 2;
1719
+ }
1720
+
1721
+ // With featured & without info
1722
+ &.ecl-mega-menu__mega--no-info {
1723
+ width: calc(100% - 18.875rem - calc(var(--s-3xl)));
1724
+
1725
+ .ecl-mega-menu__sublist {
1726
+ column-count: 3;
1727
+ }
1728
+ }
1729
+ }
1730
+ }
1731
+
1732
+ .ecl-mega-menu__featured {
1733
+ margin-inline-start: 0 !important;
1734
+ }
1735
+ }
1736
+
1737
+ &.ecl-mega-menu--rtl
1738
+ .ecl-mega-menu__item--expanded
1739
+ > .ecl-mega-menu__wrapper
1740
+ > .ecl-container
1741
+ > .ecl-mega-menu__mega {
1742
+ right: 20.93rem;
1743
+
1744
+ &.ecl-mega-menu__mega--no-info {
1745
+ right: 0;
1746
+ }
1747
+ }
1748
+ }
1749
+ }
1750
+
1751
+ .ecl-mega-menu-prevent-scroll {
1752
+ position: fixed;
1753
+ overflow-y: scroll;
1754
+ width: 100%;
1755
+ }