.site-header {
	@include s-r-7(padding-top);

	.admin-bar & {
		top: 32px;

		@media screen and (max-width: 782px) {
			top: 46px;
		}
	}
}

/* Site Title, Logo and Tagline */
.site-branding {
	@include flexbox;
	align-items: center;
	margin: 0 auto 0 0;
	padding-right: $s-7;
	height: 2.25rem;

	@include breakpoint(sm) {
		height: 2.375rem;
	}

	@include breakpoint(md) {
		height: auto;
	}

	h1.site-title,
	.site-title,
	.site-logo {
		display: block;
		margin: 0;
	}

	.site-logo {
		line-height: 0;
	}

	.site-description {
		display: none;
		height: $s-7;
		margin: 0;
		padding: 0 0 0 $s-2;
		color: $color__text_two;

		@include breakpoint(sm) {
			@include flexbox;
			@include flex-center;
		}

		&:before {
			content: "";
			display: block;
			width: $s-9;
			background-color: $color__border;
			height: 1px;
			margin-right: $s-2;
		}

		.tagline-hide & {
			display: none;
		}
	}

	.custom-logo-link {
		display: block;
		padding: 0 $s-2 0 0;

		img,
		.custom-logo {
			width: auto !important;
			height: 2.25rem;
			object-fit: fill;

			@include breakpoint(header) {
				height: auto;
			}

			@include breakpoint(sm) {
				height: 2.375rem;
			}

			@include breakpoint(md) {
				height: 2.5rem;
			}

			@include breakpoint(lg) {
				height: auto;
			}
		}

		@include breakpoint(header) {
			max-height: 100%;

			img {
				height: auto;
			}
		}
	}
}

/* Header Search Form */
.search-header {
	position: relative;
	margin: $s-4 0;
	padding: 0;

	@include breakpoint(header) {
		margin: 0 0 0 $s-6;
		padding: 0;
	}

	.search-submit {
		display: none;
	}

	label {
		cursor: pointer;
		margin: 0;
		padding: 0;
		color: $color__text_two;

		@include breakpoint(md) {
			padding: 0;
		}

		@include breakpoint(lg) {
			padding: 0;
		}
	}

	.search-form {
		position: relative;
	}

	.search-field {
		background: transparent;
		@include flexbox;
		align-items: center;
		max-width: 100%;
		height: $s-9;
		vertical-align: middle;
		border: 1px solid $color__border;
	}
}

/* Header Social Menu */
.social-header-nav {
	display: none;
	margin: 0;
	padding: $s-7 0;

	@include breakpoint(header) {
		display: block;
		padding: 0;
	}

	ul li a {
		padding: 0 $s-6 0 0;
	}

	.has-nav-main & {
		margin-top: $s-7;

		@include breakpoint(header) {
			margin-top: 0;
			padding-left: $s-6;
		}
	}
}

.social-links-menu {
	@include flexbox;
	flex-wrap: wrap;
	align-items: center;
}

.menu-social-container ul,
.social-nav ul {
	margin: 0;
	padding: 0;

}

.social-links-menu li {
	padding-right: $s-6;

	&:last-child {
		padding-right: 0;
	}
}

.menu-social-container ul li a {
	display: block;
	width: $s-6;
	height: $s-6;
	line-height: 1;
	margin: 0;
	overflow: hidden;
}

/* Header CTA Buttons */
.header-cta-wrap {
	display: none;
	position: relative;
	padding: 0;

	@include breakpoint(header) {
		display: block;
	}

	ul {
		display: -webkit-box;
		display: -ms-flexbox;
		@include flexbox;
		-ms-flex-align: center;
		-webkit-box-align: center;
		align-items: center;
		flex-direction: column;

		@include breakpoint(header) {
			flex-direction: row;
		}
	}

	ul li {
		width: 100%;
		list-style: none;
		padding: 0 0 8px;
		text-align: center;

		&:last-child {
			padding: 0;
		}

		@include breakpoint(sm) {
			width: auto;
		}

		@include breakpoint(header) {
			padding: 0 $s-4 0 0;
		}
	}

	.has-nav-main &,
	.has-nav-social & {

		@include breakpoint(header) {
			padding: 0 0 0 $s-6;
		}
	}

	.has-nav-social & {
		padding-top: $s-7;

		@include breakpoint(header) {
			padding-top: 0;
		}
	}
}

/* -------------------------------------------------------------------------- */
/*	Site Header
/* -------------------------------------------------------------------------- */
.site-header {
	position: relative;
}

.header-inner {
	@include breakpoint(header) {
		@include flexbox;
		align-items: center;
		justify-content: flex-end;
	}
}

/* Header Navigation ------------------------- */
.header-navigation-wrapper {
	display: none;
}

/* Header Toggles ---------------------------- */
.header-toggles {
	display: none;
}

.header-inner .toggle {
	align-items: center;
	display: flex;
	overflow: visible;
}

.header-inner .toggle svg {
	display: block;
	position: relative;
	z-index: 1;
	padding: 0;
}

.header-inner .toggle path {
	fill: currentColor;
}

.toggle-inner {
	display: flex;
	justify-content: center;
	position: relative;
}

.toggle-inner .toggle-text {
	display: none;
}

.overlay-header .toggle-text {
	color: inherit;
}

.toggle:hover {
	background-color: transparent;
	@include shadow-none;
	transform: none;
}

/* Navigation Toggle ------------------------- */
.toggle {
	background: transparent;
}

.nav-toggle {
	position: absolute;
	bottom: 0;
	top: $s-4;
	right: $s-4;
	padding: 0 17px;
	border-radius: 0;
	color: $color__text_one;
	background: transparent;
	border: 1px solid $color__text_one;

	@include breakpoint(sm) {
		right: $s-7;
		top: $s-5;
	}

	@include breakpoint(md) {
		top: $s-6;
	}

	.icon-toggle-open {
		width: 28px;
		height: 8px;
	}
}

button.close-nav-toggle {
	margin-top: $s-4;
	margin-left: $s-4;
	padding: 0;
	border-radius: 0;
	color: $color__text_one;
	align-items: center;
	display: flex;
	justify-content: center;
	width: 64px;
	border-radius: 0;
	background: transparent;
	border: 1px solid $color__text_one;
	border-radius: 18px;

	@include breakpoint(sm) {
		margin-left: $s-7;
		margin-top: $s-5;
	}

	@include breakpoint(md) {
		margin-top: $s-6;
	}

	.icon-toggle-close {
		width: 28px;
		height: 10px;
	}
}

.nav-toggle,
button.close-nav-toggle {
	height: 2.25rem;
	border-radius: 18px;

	@include breakpoint(sm) {
		height: 2.375rem;
		border-radius: 19px;
	}

	@include breakpoint(md) {
		height: 2.5rem;
		border-radius: 20px;
	}
}

.mobile-menu {
padding-top: $s-7;
}

/* Primary Menu ---------------------------- */
.primary-menu-wrapper {
	display: none;
}

ul.primary-menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	margin: 0;

	.dropdown {
		display: block;
		position: absolute;
		top: 0;
		right: 0;
		width: 10px;
		padding: 0;
		margin: 0;

		.icon {
			position: absolute;
			top: 0;
			width: 100%;
			fill: $color__text_one;
		}
	}

	li {
		font-size: inherit;
		position: relative;

		&.menu-item-has-children:hover>ul,
		&.menu-item-has-children:focus>ul,
		&.menu-item-has-children.focus>ul {
			right: 0;
			opacity: 1;
			transform: translateY(0);
			transition: opacity 0.15s linear, transform 0.15s linear;
		}
	}

	>li {
		margin: 0 $s-6 0 0;

		&:last-child {
			margin-right: 0;
		}

		&.menu-item-has-children>a {
			padding-right: 18px; // 10px for the icon and 8px padding
		}

		>.icon {
			right: 0;
			top: 0;
		}
	}

	a {
		color: $color__text_one;
		display: block;
		text-decoration: none;
		line-height: 1;

		&:hover {
			text-decoration: underline;
		}
	}

	ul {
		@include font-body-xs;
		background: $color__white;
		color: $color__text_one;
		padding: $s-6;
		border: 1px solid $color__border;
		position: absolute;
		opacity: 0;
		right: 9999rem;
		top: calc(100% + 4px);
		transition: opacity 0.15s linear, transform 0.15s linear, right 0s 0.15s;
		transform: translateY(0.6rem);
		width: 271px;
		z-index: 10;
		margin: 0;

		ul {
			opacity: 0;
			top: -1rem;
			right: 5rem;

			&::before {
				bottom: 0;
				height: auto;
				left: auto;
				right: -2rem;
				top: 0;
				width: 2rem;
			}
		}

		&::before,
		&::after {
			content: "";
			display: block;
			position: absolute;
			bottom: 100%;
		}

		&::before {
			left: 0;
			right: 0;
		}

		a {
			background: transparent;
			border: none;
			color: inherit;
			display: block;
			transition: background-color 0.15s linear;
			width: 100%;
		}

		li {
			margin-bottom: $s-6;

			&:last-child {
				margin-bottom: 0;
			}

			&.menu-item-has-children>a {
				padding-right: 0;
			}

			&.menu-item-has-children .icon {
				position: absolute;
				right: 0;
			}

			&.menu-item-has-children:hover>ul,
			&.menu-item-has-children:focus>ul,
			&.menu-item-has-children.focus>ul {
				right: calc(100% + 1rem);
			}
		}
	}

	.menu-bold & {
		a {
			font-weight: bold;
		}
	}

	.menu-uppercase & {

		>li>.icon {
			top: 0.375rem; // 6px
		}

		a {
			text-transform: uppercase;
			@include font-body-xs;
		}

		ul a {
			@include font-body-2xs;
		}
	}
}

/* -------------------------------------------------------------------------- */
/*	Menu Modal
/* -------------------------------------------------------------------------- */
.menu-modal {
	background: $color__white;
	display: none;
	opacity: 0;
	overflow-y: auto;
	overflow-x: hidden;
	position: fixed;
	bottom: 0;
	left: -99999rem;
	right: 99999rem;
	top: 0;
	transition: opacity 0.25s ease-in, left 0s 0.25s, right 0s 0.25s;
	z-index: 99;
}

.admin-bar .menu-modal {
	top: 32px;
}

@media (max-width: 782px) {

	.admin-bar .menu-modal {
		top: 46px;
	}
}

.menu-modal.show-modal {
	display: flex;
}

.menu-modal.active {
	left: 0;
	opacity: 1;
	right: 0;
	transition: opacity 0.25s ease-out;
}

.menu-modal-inner {
	background: $color__white;
	display: flex;
	justify-content: stretch;
	overflow: auto;
	-ms-overflow-style: auto;
	width: 100%;
}

.menu-wrapper {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	position: relative;
}

.menu-modal .menu-top {
	flex-shrink: 0;
}

.header-inner .toggle-text {
	display: none;
}

/* Primary Menu --------------------------------- */
.modal-menu {
	position: relative;
	left: calc(50% - 50vw);
	width: 100vw;

	ul {
		display: none;
		margin: 0;
		padding: 0;
		width: 100%;
	}

	li {
		display: flex;
		flex-wrap: wrap;
		line-height: 1;
		justify-content: flex-start;
	}

	.ancestor-wrapper {
		display: flex;
		justify-content: space-between;
		width: 100%;
	}

	a {
		display: block;
		padding: $s-4 0;
		margin: 0 $s-4;
		text-decoration: none;
		width: 100%;
		border-top: 1px solid $color__border;

		@include breakpoint(sm) {
			margin: 0 $s-7;
		}
	}

	li:first-child a {
		border-top: none;
	}

	ul li {
		margin: 0;
	}

	ul li a {
		color: inherit;
	}
}

.sub-menu {

	li a {
		padding-left: 32px;

		@include breakpoint(lg) {
			padding-left: 0;
		}
	}

	li:first-child a {
		border-top: none;
	}

	li:last-child a {
		border-bottom: none;
	}

	.sub-menu {

		li a {
			padding-left: 64px;

			@include breakpoint(lg) {
				padding-left: 0;
			}
		}
	}
}

.menu-item-has-children {

	a {
		border-top: 1px solid $color__border;
		width: calc(100% - 32px);
		margin: 0 0 0 $s-4;

		@include breakpoint(md) {
			border-top: none;
		}
	}

	@include breakpoint(md) {
		padding-left: 0;
	}
}

.sub-menu {
	a {
		border-top: none;
	}
}

button.sub-menu-toggle {
	margin: 0 $s-4 0 0;
	padding: 0 0 0 $s-4;
	color: $color__text_one;
	border-radius: 0;
	position: absolute;
	right: 0;

	@include breakpoint(sm) {
		margin: 0 $s-7 0 0;
	}

	.icon {
		width: 10px;
		height: 12px;
		text-align: right;
		height: 53px;
	}
}

.menu-wrapper {

	.menu-item {
		position: relative;
	}

	.active {
		display: block;
	}

	&.is-toggling {
		pointer-events: none;

		.menu-item {
			position: absolute;
			top: 0;
			left: 0;
			margin: 0;
			width: 100%;
		}

		.menu-bottom .social-menu .menu-item {
			width: auto;
		}

		.toggling-target {
			display: block;
			position: absolute;
			top: 0;
			left: 0;
			opacity: 1;

			&.active {
				opacity: 0;
			}
		}
	}

	&.is-animating .menu-item,
	&.is-animating .toggling-target {
		transition-duration: 250ms;
	}

	&.is-animating .menu-item {
		transition-property: transform;
	}

	&.is-animating.is-toggling {
		.toggling-target {
			display: block;
			transition-property: opacity;
			opacity: 0;

			&.active {
				opacity: 1;
			}
		}
	}
}

@media (prefers-reduced-motion: reduce) {

	.menu-wrapper.is-animating .menu-item,
	.menu-wrapper.is-animating .toggling-target {
		transition-duration: 1ms !important;
	}
}

@include breakpoint(header) {

	.header-navigation-wrapper {
		align-items: center;
		display: flex;
	}

	.primary-menu-wrapper {
		display: block;
		width: 100%;
	}

	.mobile-nav-toggle {
		display: none !important;
	}

	.primary-menu-wrapper+.header-toggles {
		margin-left: 3rem;
	}

	.header-toggles {
		display: flex;
		flex-shrink: 0;
		margin-right: -3rem;
	}

	.header-inner .toggle {
		padding: 0;
		position: relative;
		bottom: auto;
		left: auto;
		right: auto;
		top: auto;
		width: auto;
	}

	.header-inner .toggle-wrapper {
		position: relative;
	}

	.nav-toggle-wrapper:not(.has-expanded-menu) {
		display: none;
	}

	.toggle-inner {
		position: static;
	}

	.header-toggles:only-child .nav-toggle .toggle-inner {
		padding-top: 0;
	}

	.header-toggles:only-child .toggle-inner {
		display: flex;
		flex-wrap: nowrap;
		align-items: center;
	}

	/* Menu Modal ---------------------------- */
	.menu-modal {
		opacity: 1;
		justify-content: flex-end;
		padding: 0;
		transition: background-color 0.3s ease-in, left 0s 0.3s, right 0s 0.3s;

		&.cover-modal {
			background: rgba(0, 0, 0, 0);
		}

		&.active {
			background: rgba(0, 0, 0, 0.2);
			transition: background-color 0.3s ease-out;

			.menu-modal-inner {
				opacity: 1;
				transform: translateX(0);
				transition-timing-function: ease-out;
			}
		}
	}

	.menu-wrapper.section-inner {
		width: calc(100% - 8rem);
	}

	.menu-modal-inner {
		box-shadow: 0 0 2rem 0 rgba(0, 0, 0, 0.1);
		opacity: 0;
		padding: 0;
		transform: translateX(20rem);
		transition: transform 0.2s ease-in, opacity 0.2s ease-in;
		width: 50rem;
	}

	.mobile-menu {
		display: none;
	}

	.expanded-menu {
		display: block;
	}

	.menu-bottom {
		padding: 0;
	}

	.menu-bottom .social-menu {
		justify-content: flex-start;
	}
}

/* Light Header Style ---------------------------- */
.header-light {

	.site-branding .site-title a,
	.site-branding .site-description,
	&.page-template-tpl-hero-light .site-title a,
	.custom-logo-link .custom-logo path,
	.nav-toggle,
	.nav-toggle .icon-toggle-open,
	ul.primary-menu .dropdown .icon,
	.header-cta-wrap a {
		color: $color__white;
		fill: $color__white;
	}

	.nav-toggle {
		border: 1px solid $color__white;
	}

	.search-header .search-field,
	.site-branding .site-description:before {
		border-color: transparent;
		background-color: $color__white;

		&:focus,
		&:active {
			background-color: rgba(255, 255, 255, 0.9);
		}
	}

	.primary-menu .sub-menu .dropdown .icon {
		fill: $color__text_one;
	}

	.btn-outline a {
		box-shadow: inset 0px 0px 0px 1px $color__white;

		&:hover {
			box-shadow: inset 0px 0px 0px 1px rgba(255, 255, 255, 0.6);
		}
	}

	&.menu-bold {
		.btn-outline a {
			box-shadow: inset 0px 0px 0px 2px $color__white;

			&:hover {
				box-shadow: inset 0px 0px 0px 2px rgba(255, 255, 255, 0.6);
			}
		}
	}

	@include breakpoint(sm) {

		.site-title a,
		.primary-menu a,
		.btn-outline a,
		.btn-naked a,
		.site-header .menu-social-container .icon,
		.header-cta-wrap a {
			color: $color__white;
			fill: $color__white;

			&:hover,
			&:focus {
				color: $color__white_hover;
				fill: $color__white_hover;
			}
		}

		.header-inner .toggle .icon {
			fill: $color__white;
		}

		.primary-menu .icon::before,
		.primary-menu .icon::after {
			background-color: $color__white;
		}

		.primary-menu a:hover+.icon::before,
		.primary-menu a:hover+.icon::after {
			background-color: $color__white_hover;
		}

		.primary-menu .sub-menu .icon::before,
		.primary-menu .sub-menu .icon::after {
			background-color: $color__text_one;
		}

		.primary-menu .sub-menu a {
			color: $color__text_one;
		}
	}
}