/*
 * core/navigation (+ navigation-link, navigation-submenu).
 *
 * Four uses: the primary menu in the fixed header, the portfolio tabs on a
 * listing page, the city-filter / news-category pills, and the vertical link
 * column in the footer. The header's over-hero colour states live in theme.css
 * because they depend on the header's own class, not the menu's.
 */

.wp-block-navigation .wp-block-navigation-item__content {
	transition: color 0.3s var(--wp--custom--ease);
}

/* Primary. */
.wp-block-navigation.is-style-primary .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	position: relative;
	padding: 4px 0;
	white-space: nowrap;
}

.wp-block-navigation.is-style-primary .wp-block-navigation__container > .wp-block-navigation-item:not(.is-style-cta) > .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 1px;
	background: var(--wp--preset--color--navy);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.35s var(--wp--custom--ease);
}

.wp-block-navigation.is-style-primary .wp-block-navigation__container > .wp-block-navigation-item:not(.is-style-cta):hover > .wp-block-navigation-item__content::after,
.wp-block-navigation.is-style-primary .wp-block-navigation__container > .current-menu-item:not(.is-style-cta) > .wp-block-navigation-item__content::after,
.wp-block-navigation.is-style-primary .wp-block-navigation__container > .current-menu-ancestor:not(.is-style-cta) > .wp-block-navigation-item__content::after {
	transform: scaleX(1);
	transform-origin: left;
}

.wp-block-navigation.is-style-primary .wp-block-navigation__container > .current-menu-item > .wp-block-navigation-item__content,
.wp-block-navigation.is-style-primary .wp-block-navigation__container > .current-menu-ancestor > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--navy);
}

.wp-block-navigation.is-style-primary .wp-block-navigation__submenu-icon {
	width: 11px;
	height: 11px;
	margin-left: 5px;
	opacity: 0.6;
	transition:
		transform 0.32s var(--wp--custom--ease),
		opacity 0.32s var(--wp--custom--ease);
}

.wp-block-navigation.is-style-primary .has-child:hover > .wp-block-navigation__submenu-icon {
	opacity: 1;
	transform: rotate(180deg);
}

/* Submenu panel. */
.wp-block-navigation.is-style-primary .wp-block-navigation__container > .has-child > .wp-block-navigation__submenu-container {
	top: calc(100% + 2px);
	left: -12px;
	min-width: 232px;
	padding: 8px;
	gap: 1px;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--submenu);
	background: var(--wp--preset--color--paper);
	box-shadow: var(--wp--custom--shadow--submenu);
	color: var(--wp--preset--color--gray-text);
	transform: translateY(8px);
	transition:
		opacity 0.24s var(--wp--custom--ease),
		transform 0.24s var(--wp--custom--ease),
		visibility 0.24s var(--wp--custom--ease);
}

.wp-block-navigation.is-style-primary .wp-block-navigation__container > .has-child > .wp-block-navigation__submenu-container::before {
	content: "";
	position: absolute;
	top: -12px;
	right: 0;
	left: 0;
	height: 14px;
}

.wp-block-navigation.is-style-primary .wp-block-navigation__container > .has-child:hover > .wp-block-navigation__submenu-container,
.wp-block-navigation.is-style-primary .wp-block-navigation__container > .has-child:focus-within > .wp-block-navigation__submenu-container {
	transform: translateY(0);
}

.wp-block-navigation.is-style-primary .wp-block-navigation__container > .has-child:nth-last-child(2) > .wp-block-navigation__submenu-container {
	right: -12px;
	left: auto;
}

.wp-block-navigation.is-style-primary .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 9px 14px;
	border-radius: var(--wp--custom--radius--submenu-item);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 500;
	white-space: nowrap;
	color: var(--wp--preset--color--gray-text);
	transition:
		background 0.2s var(--wp--custom--ease),
		color 0.2s var(--wp--custom--ease);
}

.wp-block-navigation.is-style-primary .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.wp-block-navigation.is-style-primary .wp-block-navigation__submenu-container .current-menu-item > .wp-block-navigation-item__content {
	background: var(--wp--preset--color--bg-2);
	color: var(--wp--preset--color--navy);
}

/* The "Invest with us" button at the end of the menu. */
.wp-block-navigation.is-style-primary .wp-block-navigation__container > .is-style-cta > .wp-block-navigation-item__content {
	margin-left: 4px;
	padding: 11px 22px;
	border: 1px solid var(--wp--preset--color--navy);
	border-radius: var(--wp--custom--radius--button);
	background: var(--wp--preset--color--navy);
	font-size: 0.8125rem;
	font-weight: 600;
	color: #fff;
	transition:
		background 0.3s var(--wp--custom--ease),
		border-color 0.3s var(--wp--custom--ease),
		transform 0.3s var(--wp--custom--ease);
}

.wp-block-navigation.is-style-primary .wp-block-navigation__container > .is-style-cta > .wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--navy-700);
	border-color: var(--wp--preset--color--navy-700);
	color: #fff;
	transform: translateY(-1px);
}

/* Burger button. */
.wp-block-navigation.is-style-primary .wp-block-navigation__responsive-container-open {
	color: var(--wp--preset--color--navy);
	transition: color 0.3s var(--wp--custom--ease);
}

.wp-block-navigation.is-style-primary .wp-block-navigation__responsive-container-open svg,
.wp-block-navigation.is-style-primary .wp-block-navigation__responsive-container-close svg {
	width: 28px;
	height: 28px;
}

/* Open overlay: serif items, centred, submenus flattened. */
.wp-block-navigation.is-style-primary .wp-block-navigation__responsive-container.is-menu-open {
	padding: 100px 24px 48px;
	background: var(--wp--preset--color--bg);
	color: var(--wp--preset--color--navy);
}

.wp-block-navigation.is-style-primary .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.wp-block-navigation.is-style-primary .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	align-items: center;
	justify-content: flex-start;
	gap: 2px;
}

.wp-block-navigation.is-style-primary .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	flex-direction: column;
	align-items: center;
	width: 100%;
}

.wp-block-navigation.is-style-primary .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	padding: 7px 0;
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.625rem;
	font-weight: 600;
	color: var(--wp--preset--color--navy);
}

.wp-block-navigation.is-style-primary .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after,
.wp-block-navigation.is-style-primary .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon {
	display: none;
}

.wp-block-navigation.is-style-primary .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	align-items: center;
	padding: 0 0 12px;
	border: 0;
	background: transparent;
	box-shadow: none;
	transform: none;
}

.wp-block-navigation.is-style-primary .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 4px 14px;
	font-size: var(--wp--preset--font-size--base);
	text-align: center;
	white-space: normal;
	color: var(--wp--preset--color--steel);
}

/*
 * The dropdown's hover tint is a desktop affordance: a small tinted rectangle
 * behind a menu item, sized to the item. The overlay item has no horizontal
 * padding to speak of, so on a phone it painted a tight box around the word and
 * the current page looked like a stray highlight rather than a state. The
 * overlay is flat, as the design has it, and the touch target keeps the padding
 * added above.
 */
.wp-block-navigation.is-style-primary .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.wp-block-navigation.is-style-primary .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .current-menu-item > .wp-block-navigation-item__content {
	background: transparent;
	color: var(--wp--preset--color--navy);
}

/*
 * A focus ring drawn tight against the glyphs reads as a border on the word.
 */
.wp-block-navigation.is-style-primary .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus-visible {
	outline-offset: 4px;
	border-radius: var(--wp--custom--radius--submenu-item);
}

.wp-block-navigation.is-style-primary .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .is-style-cta > .wp-block-navigation-item__content {
	margin-top: 16px;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--base);
	color: #fff;
}

/* Tabs: the seven portfolio categories under a listing page's lede. */
.wp-block-navigation.is-style-tabs {
	margin-top: 34px;
}

.wp-block-navigation.is-style-tabs .wp-block-navigation__container {
	gap: 6px;
	flex-wrap: wrap;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.wp-block-navigation.is-style-tabs .wp-block-navigation-item__content {
	position: relative;
	display: block;
	padding: 12px 18px;
	font-size: 0.875rem;
	font-weight: 600;
	white-space: nowrap;
	color: var(--wp--preset--color--gray);
}

.wp-block-navigation.is-style-tabs .wp-block-navigation-item__content:hover,
.wp-block-navigation.is-style-tabs .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--navy);
}

.wp-block-navigation.is-style-tabs .current-menu-item > .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: -1px;
	left: 0;
	height: 2px;
	background: var(--wp--preset--color--navy);
}

/* Pills: city filter chips and newsroom category tabs. */
.wp-block-navigation.is-style-pills .wp-block-navigation__container {
	gap: 8px;
	flex-wrap: wrap;
}

.wp-block-navigation.is-style-pills .wp-block-navigation-item__content {
	display: block;
	padding: 9px 16px;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--paper);
	font-size: 0.8125rem;
	font-weight: 600;
	white-space: nowrap;
	color: var(--wp--preset--color--gray-text);
	transition:
		background 0.3s var(--wp--custom--ease),
		border-color 0.3s var(--wp--custom--ease),
		color 0.3s var(--wp--custom--ease);
}

.wp-block-navigation.is-style-pills .wp-block-navigation-item__content:hover {
	border-color: var(--wp--preset--color--steel);
	color: var(--wp--preset--color--navy);
}

.wp-block-navigation.is-style-pills .current-menu-item > .wp-block-navigation-item__content {
	border-color: var(--wp--preset--color--navy);
	background: var(--wp--preset--color--navy);
	color: #fff;
}

/* Footer links: a vertical column of muted white links. */
.wp-block-navigation.is-style-footer-links .wp-block-navigation__container {
	gap: 0;
}

/*
 * `padding: 5px 0` on a 16px line gave a 26px-tall target with no horizontal
 * slack at all — under the 24px minimum once the text is short, and impossible
 * to hit accurately with a thumb. The padding grows on touch pointers only, so
 * the desktop footer keeps its tight rhythm.
 */
.wp-block-navigation.is-style-footer-links .wp-block-navigation-item__content {
	display: block;
	padding: 5px 0;
	font-size: 0.90625rem;
	font-weight: 400;
	color: rgba(255, 255, 255, 0.72);
}

@media (pointer: coarse) {

	.wp-block-navigation.is-style-footer-links .wp-block-navigation-item__content {
		min-height: 44px;
		padding: 11px 0;
	}
}

.wp-block-navigation.is-style-footer-links .wp-block-navigation-item__content:hover {
	color: #fff;
}
