/* Global header and primary navigation. */
:root {
	--icm-header-navy: #0b2d45;
	--icm-header-blue: #1689c2;
	--icm-header-cyan: #64d7e3;
	--icm-header-ink: #20364a;
	--icm-header-muted: #667789;
	--icm-header-line: #dce7ee;
	--icm-header-soft: #eef8fb;
}

body .site-header {
	background: rgba(255, 255, 255, .97) !important;
	border-bottom: 1px solid rgba(11, 45, 69, .09);
	box-shadow: 0 10px 34px rgba(11, 45, 69, .07);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
}

body .site-header .container {
	width: min(100% - 40px, 1220px);
	max-width: 1220px;
}

body .site-header .site-branding {
	padding-right: 24px;
}

body .site-header .site-title {
	margin: 0;
	line-height: 1;
}

body .site-header .site-title img {
	display: block;
	width: 200px;
	height: auto;
	transition: transform .2s ease;
}

body .site-header .site-branding:hover .site-title img {
	transform: translateY(-1px);
}

body .site-header a:focus-visible {
	outline: 3px solid rgba(22, 137, 194, .24);
	outline-offset: 2px;
}

@media screen and (min-width: 1200px) {
	body .site-header .site-header__wrap {
		height: 108px;
	}

	body .site-header .site-primary-navigation {
		white-space: nowrap;
	}

	body .site-header #menu-primary {
		display: flex;
		align-items: center;
		justify-content: flex-end;
		gap: 5px;
	}

	body .site-header #menu-primary > li {
		margin: 0;
	}

	body .site-header #menu-primary > li > a {
		position: relative;
		display: flex;
		min-height: 44px;
		align-items: center;
		padding: 11px 14px;
		border: 1px solid transparent;
		border-radius: 11px;
		color: var(--icm-header-muted);
		font-family: Montserrat, sans-serif;
		font-size: 13px;
		font-weight: 600;
		letter-spacing: -.01em;
		transition: color .18s ease, background-color .18s ease, border-color .18s ease, transform .18s ease;
	}

	body .site-header #menu-primary > li > a:hover,
	body .site-header #menu-primary > li:focus-within > a {
		background: var(--icm-header-soft);
		border-color: #d9edf3;
		color: #0f759f;
		transform: translateY(-1px);
	}

	body .site-header #menu-primary > li.current-menu-item > a,
	body .site-header #menu-primary > li.current-menu-ancestor > a,
	body .site-header #menu-primary > li.current-menu-parent > a {
		background: linear-gradient(135deg, #e8f8fb, #f2fbfc);
		border-color: #ccebf1;
		color: #0d7199;
	}

	body .site-header #menu-primary .current_page_item > a::after {
		position: static;
		width: auto;
		height: auto;
		background: transparent;
	}

	body .site-header #menu-primary > li.menu-item-has-children > a::after {
		margin: 0 0 0 8px;
		font-size: 11px;
		transition: transform .18s ease;
	}

	body .site-header #menu-primary > li.menu-item-has-children:hover > a::after,
	body .site-header #menu-primary > li.menu-item-has-children:focus-within > a::after {
		transform: rotate(180deg);
	}

	body.nav-menu-break-large .site-header #menu-primary > li > .sub-menu {
		left: 0;
		/* Keep the hover path continuous between the parent link and submenu. */
		top: calc(100% - 1px);
		width: 290px;
		padding: 9px;
		background: #fff;
		border: 1px solid var(--icm-header-line);
		border-radius: 16px;
		box-shadow: 0 20px 48px rgba(11, 45, 69, .16);
		transform: none;
		text-align: left;
	}

	body.nav-menu-break-large .site-header #menu-primary > li:nth-last-child(-n+2) > .sub-menu {
		left: auto;
		right: 0;
	}

	body.nav-menu-break-large .site-header #menu-primary .sub-menu::before {
		position: absolute;
		left: 24px;
		top: -6px;
		width: 11px;
		height: 11px;
		background: #fff;
		border-left: 1px solid var(--icm-header-line);
		border-top: 1px solid var(--icm-header-line);
		content: "";
		transform: rotate(45deg);
	}

	body.nav-menu-break-large .site-header #menu-primary .sub-menu li {
		display: block;
		margin: 0;
		text-align: left;
	}

	body.nav-menu-break-large .site-header #menu-primary .sub-menu a {
		position: relative;
		display: block;
		margin: 0;
		padding: 11px 13px;
		border: 0;
		border-radius: 9px;
		color: var(--icm-header-ink);
		font-family: Montserrat, sans-serif;
		font-size: 13px;
		font-weight: 600;
		line-height: 1.35;
	}

	body.nav-menu-break-large .site-header #menu-primary .sub-menu a:hover,
	body.nav-menu-break-large .site-header #menu-primary .sub-menu a:focus-visible,
	body.nav-menu-break-large .site-header #menu-primary .sub-menu .current-menu-item > a {
		background: var(--icm-header-soft);
		color: #0e769f;
	}

	body .site-header #menu-primary > li.register > a {
		border-color: #b9e1ea;
		color: #0e789f;
	}

	body .site-header #menu-primary > li.highlight > a,
	body .site-header #menu-primary > li.login > a,
	body .site-header #menu-item-1536 > a {
		padding-right: 18px;
		padding-left: 18px;
		background: linear-gradient(135deg, #1495cd, #147cae);
		border-color: transparent;
		color: #fff !important;
		box-shadow: 0 8px 20px rgba(20, 133, 184, .2);
	}

	body .site-header #menu-primary > li.highlight > a:hover,
	body .site-header #menu-primary > li.login > a:hover,
	body .site-header #menu-item-1536 > a:hover {
		background: linear-gradient(135deg, #117fad, #0e668f);
		border-color: transparent;
		color: #fff !important;
		box-shadow: 0 11px 25px rgba(20, 133, 184, .28);
	}

	body .site-header #menu-item-1824 > a {
		padding-right: 11px;
		color: #526575;
	}

	body .site-header #menu-item-1824 > a::after {
		margin-left: 6px;
		content: "\2197";
		font-family: inherit !important;
		font-size: 12px;
	}
}

@media screen and (max-width: 1199px) {
	body .site-header .container {
		position: relative;
		width: 100%;
		padding: 18px 22px;
	}

	body .site-header .site-branding {
		display: table-cell;
		padding-right: 70px;
		vertical-align: middle;
	}

	body .site-header .site-title img {
		width: min(200px, 55vw);
	}

	body .site-header .primary-menu-toggle--open {
		right: 22px;
		display: grid;
		width: 48px;
		height: 48px;
		place-items: center;
		background: var(--icm-header-soft);
		border: 1px solid #d4eaf1;
		border-radius: 14px;
		color: var(--icm-header-navy) !important;
	}

	body .site-header .primary-menu-toggle--open::before {
		margin: 0;
		color: var(--icm-header-navy) !important;
		font-size: 25px;
	}

	body .site-header .site-primary-navigation--open {
		margin: 18px -22px -18px;
		padding: 18px 22px 24px;
		background: #fff;
		border-top: 1px solid var(--icm-header-line);
		box-shadow: 0 24px 35px rgba(11, 45, 69, .12);
	}

	body .site-header .primary-menu-toggle--close {
		display: flex;
		min-height: 44px;
		align-items: center;
		justify-content: flex-end;
		margin-bottom: 10px;
		color: var(--icm-header-muted) !important;
		font-family: Montserrat, sans-serif;
		font-size: 13px;
		font-weight: 700;
	}

	body .site-header #menu-primary > li {
		display: block;
		margin: 4px 0;
	}

	body .site-header #menu-primary a {
		display: block;
		padding: 12px 14px;
		border: 0;
		border-radius: 10px;
		color: var(--icm-header-ink);
		font-family: Montserrat, sans-serif;
		font-size: 15px;
		font-weight: 600;
	}

	body .site-header #menu-primary > li > a:hover,
	body .site-header #menu-primary > li.current-menu-item > a,
	body .site-header #menu-primary > li.current-menu-ancestor > a {
		background: var(--icm-header-soft);
		color: #0d769e;
	}

	body .site-header #menu-primary .sub-menu {
		margin: 2px 0 8px 12px;
		padding: 3px 0 3px 10px;
		border-left: 2px solid #c9eaf0;
	}

	body .site-header #menu-primary .sub-menu a {
		padding: 9px 12px;
		color: var(--icm-header-muted);
		font-size: 13px;
	}

	body .site-header .searchform--header {
		position: relative;
		width: 100%;
		margin: 8px 0 14px;
	}

	body .site-header .searchform--header__input {
		width: 100%;
		height: 48px;
		padding: 10px 50px 10px 15px;
		background: #f5f9fb;
		border: 1px solid var(--icm-header-line);
		border-radius: 11px;
	}

	body .site-header .searchform--header__submit {
		right: 0;
		width: 48px;
		height: 48px;
		color: var(--icm-header-blue);
	}

	body .site-header #menu-primary > li.highlight > a,
	body .site-header #menu-primary > li.login > a,
	body .site-header #menu-item-1536 > a {
		margin-top: 10px;
		background: var(--icm-header-blue);
		color: #fff;
		text-align: center;
	}
}

@media screen and (max-width: 480px) {
	body .site-header .container {
		padding-right: 16px;
		padding-left: 16px;
	}

	body .site-header .site-primary-navigation--open {
		margin-right: -16px;
		margin-left: -16px;
		padding-right: 16px;
		padding-left: 16px;
	}

	body .site-header .primary-menu-toggle--open {
		right: 16px;
	}

	body .site-header .site-title img {
		width: min(184px, 55vw);
	}
}
