@@ -4,8 +4,10 @@ $chevronDown: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/sv
44 padding-right : 30px ;
55}
66
7- .nav-main--menu , .nav-mobile--menu {
8- ul .sub-menu a [href = ' #' ] {
7+ // desktop only: on mobile these rows are the accordion trigger, and mobile-menu-toggle.js
8+ // needs the click. It calls preventDefault(), so the empty href never navigates.
9+ @media only screen and (min-width : #{$break-nav } ) {
10+ .nav-main--menu ul .sub-menu a [href = ' #' ] {
911 pointer-events : none ;
1012 text-decoration : none ;
1113 }
@@ -59,7 +61,7 @@ $chevronDown: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/sv
5961 }
6062
6163 .megamenu-featured--heading {
62- color : $brandColor1 ;
64+ color : $brandColor1_Dk ;
6365 display : block ;
6466 text-transform : uppercase ;
6567 }
@@ -77,7 +79,7 @@ $chevronDown: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/sv
7779 }
7880
7981 a .megamenu-featured--more {
80- color : $brandColor1 ;
82+ color : $brandColor1_Dk ;
8183 display : inline-block ;
8284 font-weight : $baseWeightBold ;
8385 padding : 0 ;
@@ -87,7 +89,7 @@ $chevronDown: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/sv
8789 }
8890
8991 & :hover , & :focus {
90- color : $brandColor1_Dk ;
92+ color : $interactColor_Dk ;
9193 text-decoration : underline ;
9294 }
9395 }
@@ -159,12 +161,12 @@ $chevronDown: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/sv
159161 .menu-item.current-menu-item > a ,
160162 .menu-item.current-menu-parent > a ,
161163 .menu-item.current-menu-ancestor > a {
162- color : $brandColor1 ;
164+ color : $brandColor1_Dk ;
163165 text-decoration : none ;
164166 }
165167
166168 .menu-item.tab-active > a {
167- color : $brandColor1 ;
169+ color : $brandColor1_Dk ;
168170 font-weight : 700 ;
169171 }
170172
@@ -201,25 +203,34 @@ $chevronDown: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/sv
201203 transition : all .3s ;
202204
203205 & :after {
204- color : $brandColor1 ;
206+ color : $brandColor1_Dk ;
205207 }
206208 }
207209
210+ // the 44px tap target starts at the row's top edge, so centre the glyph on the
211+ // row height: 50% on the button would follow the expanded submenu down the page
208212 & :after {
209213 color : inherit ;
210214 content : ' \25BC ' ;
211215 font-size : 12px ;
212- line-height : 44 px ;
216+ line-height : $mobileRowHeight ;
213217 padding : 0 ;
214218 transform : none ;
215219 }
216220 }
217221
218222 .menu-toggle-active :after {
219- color : $brandColor1 ;
223+ color : $brandColor1_Dk ;
220224 transform : rotate (180deg );
221225 }
222226
227+ // the generic sub-menu link hover (brand-links) outranks the shared card rule,
228+ // so the darker hover has to be set at this depth to win
229+ .megamenu-featured a .megamenu-featured--more :hover ,
230+ .megamenu-featured a .megamenu-featured--more :focus {
231+ color : $interactColor_Dk ;
232+ }
233+
223234 ul .sub-menu {
224235 margin-left : 0 ;
225236 margin-bottom : 20px ;
@@ -426,7 +437,7 @@ $chevronDown: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/sv
426437 margin-bottom : 1.25rem ;
427438
428439 .megamenu-eyebrow {
429- color : $brandColor1 ;
440+ color : $brandColor1_Dk ;
430441 display : block ;
431442 font-size : .85rem ;
432443 font-weight : $baseWeightBold ;
@@ -520,6 +531,11 @@ $chevronDown: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/sv
520531 .megamenu-featured--more {
521532 margin-top : .75rem ;
522533 padding : 0 ;
534+
535+ // as on mobile: the generic sub-menu link hover outranks the shared rule
536+ & :hover , & :focus {
537+ color : $interactColor_Dk ;
538+ }
523539 }
524540 }
525541 }
@@ -531,10 +547,17 @@ $chevronDown: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/sv
531547 }
532548
533549 // separate rule, as above: an unparseable :has() would drop the JS one too
534- .header-main :has (.menu-item.megamenu :hover ) & > ul .sub-menu {
550+ .header-main :has (.menu-item.megamenu :hover:not ( .is-dismissed ) ) & > ul .sub-menu {
535551 transition : none ;
536552 }
537553
554+ // Escape sets .is-dismissed: without this the pointer still satisfies :hover below
555+ // and the panel stays up, since JS cannot clear a CSS hover state
556+ & .is-dismissed :hover > ul .sub-menu {
557+ opacity : 0 ;
558+ visibility : hidden ;
559+ }
560+
538561 // keyboard open is JS-driven (.is-open); :focus-within here would defeat Escape
539562 & :hover > ul .sub-menu ,
540563 & .is-open > ul .sub-menu {
0 commit comments