.has-menu-logo .harcon-header-inner {
	width: min(calc(100% - 4rem), 100rem);
	gap: 1.5rem;
}

.has-menu-logo .harcon-branding {
	flex: 0 0 auto;
}

.has-menu-logo .harcon-branding img {
	width: 14rem;
	max-height: 5.5rem;
	object-fit: contain;
}

.has-menu-logo .harcon-primary-navigation {
	flex: 1 1 auto;
	min-width: 0;
}

.has-menu-logo .harcon-menu a {
	letter-spacing: 0;
}

.harcon-menu-logo {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: flex-end;
	padding-left: 1.5rem;
	border-left: 1px solid var(--harcon-color-border);
}

.harcon-menu-logo__image {
	display: block;
	width: 12.5rem;
	height: auto;
	max-height: 5.5rem;
	object-fit: contain;
}

.harcon-menu-logo:focus-visible {
	outline: 2px solid var(--harcon-color-blue);
	outline-offset: 4px;
}

@media (min-width: 90rem) {
	.has-menu-logo .harcon-menu {
		justify-content: flex-end;
		gap: 2.2rem;
	}

	.has-menu-logo .harcon-primary-navigation,
	.has-menu-logo .harcon-primary-navigation.is-open {
		display: block;
		position: static;
		padding: 0;
		border: 0;
		background: transparent;
	}
}

/* Both logos stay visible when the navigation collapses. */
@media (max-width: 89.99rem) {
	.has-menu-logo .harcon-header-inner {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto auto;
		min-height: 5.6rem;
	}

	.has-menu-logo .harcon-branding img {
		max-height: 4.35rem;
	}

	.has-menu-logo .harcon-menu-toggle {
		display: grid;
		place-items: center;
		width: 2.75rem;
		height: 2.75rem;
		min-height: 0;
		padding: 0;
		border-radius: 0.25rem;
		box-shadow: none;
		color: var(--harcon-color-navy);
		cursor: pointer;
	}

	.has-menu-logo .harcon-menu-toggle > [aria-hidden="true"] {
		display: none;
	}

	.has-menu-logo .harcon-menu-toggle::before {
		content: "\2630";
		font-size: 1.4rem;
		line-height: 1;
	}

	.has-menu-logo .harcon-menu-toggle[aria-expanded="true"]::before {
		content: "\00d7";
	}

	.has-menu-logo .harcon-primary-navigation,
	.has-menu-logo .harcon-primary-navigation.is-open {
		position: absolute;
		top: 100%;
		right: 0;
		left: 0;
		padding: 1rem 2rem;
		max-height: calc(100vh - 9rem);
		max-height: calc(100dvh - 9rem);
		overflow-y: auto;
		border: 0;
		border-top: 1px solid var(--harcon-color-border);
		border-bottom: 1px solid var(--harcon-color-border);
		border-radius: 0;
		background: #fff;
		box-shadow: 0 1rem 1.5rem rgba(18, 48, 90, 0.08);
	}

	.has-menu-logo .harcon-primary-navigation {
		display: none;
	}

	.has-menu-logo .harcon-primary-navigation.is-open {
		display: block;
	}

	.has-menu-logo .harcon-menu {
		display: grid;
		gap: 0.15rem;
	}

	.has-menu-logo .harcon-menu a {
		width: 100%;
		min-height: 2.75rem;
		padding: 0.5rem 0.75rem;
		font-size: 0.95rem;
		line-height: 1.4;
		white-space: normal;
		border-bottom: 0;
	}

	.has-menu-logo .harcon-menu .menu-item-has-children {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 0;
	}

	.has-menu-logo .harcon-submenu-toggle {
		width: 2.75rem;
		height: 2.75rem;
	}

	.has-menu-logo .harcon-menu .menu-item-has-children > .sub-menu {
		position: static;
		display: none;
		min-width: 0;
		padding: 0 0 0.5rem 1rem;
		border: 0;
		margin: 0;
		background: transparent;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		transform: none;
		transition: none;
	}

	.has-menu-logo .harcon-menu .sub-menu::before {
		content: none;
	}

	.has-menu-logo .harcon-menu .menu-item-has-children.is-submenu-open > .sub-menu {
		display: grid;
	}

	.has-menu-logo .harcon-submenu-toggle span[aria-hidden="true"] {
		transform: translateY(-0.12rem) rotate(45deg);
	}

	.has-menu-logo .harcon-menu .is-submenu-open > .harcon-submenu-toggle span[aria-hidden="true"] {
		transform: translateY(0.08rem) rotate(225deg);
	}

	.has-menu-logo .harcon-menu-logo__image {
		width: 11.25rem;
		max-height: 4.35rem;
	}
}

@media (max-width: 47.99rem) {
	.has-menu-logo .harcon-header-inner {
		width: calc(100% - 1.5rem);
		min-height: 5rem;
		gap: 0.75rem;
	}

	.has-menu-logo .harcon-branding img {
		width: 10rem;
	}

	.has-menu-logo .harcon-menu-logo {
		padding-left: 0.75rem;
	}

	.has-menu-logo .harcon-menu-logo__image {
		width: 6.5rem;
	}

	.has-menu-logo .harcon-primary-navigation.is-open {
		padding: 0.75rem;
	}
}

@media (max-width: 23rem) {
	.has-menu-logo .harcon-header-inner {
		gap: 0.5rem;
	}

	.has-menu-logo .harcon-menu-logo__image {
		width: 5.5rem;
	}
}
