$header-gutter: 15px;
.site-header {
	margin-top: 60px;
	z-index: 100;

	@include media-breakpoint-up(sm) {
		margin-top: 0;
		position: relative;
	}
}

.header-container {
	padding: 25px 0;
	position: relative;

	&_wrap {
		position: relative;
		z-index: 10;
	}

	.style-1 &,
	.style-2 &,
	.style-6 &,
	.style-7 & {
		padding: 0;
	}

	.style-3 & {
		@include media-breakpoint-up(sm) {
			padding: 0 0 15px;
		}
	}

	.style-4 &,
	.style-5 & {
		@include media-breakpoint-up(sm) {
			padding: 10px 0 0;
		}
		@include media-breakpoint-up(md) {
			padding: 0;
		}
	}

	.site-header & {
		&.transparent {
			position: absolute !important;
			left: 0;
			right: 0;
			z-index: 90;

			&:not(.isStuck) {
				background: none;
				top: auto !important;
			}
		}
	}
}

.header-container {
	&__flex {
		position: relative;
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		align-content: stretch;
		align-items: center;

		@include media-breakpoint-up(sm) {
			flex-direction: row;
			flex-wrap: wrap;
			@include grid-indent($header-gutter, 'margin');
		}

		.site-header.style-1 &,
		.site-header.style-4 &,
		.site-header.style-5 & {
			@include media-breakpoint-up(md) {
				flex-wrap: nowrap;
			}
		}

		.site-header.style-2 &,
		.site-header.style-3 & {
			@include media-breakpoint-up(sm) {
				flex-wrap: nowrap;
			}
		}
	}
}

.header-container__flex-wrap {
	position: relative;
	z-index: 100;
}
.header-container__flex {
	.search-active & {
		z-index: -1;
	}
}
.header-search {
	.search-active & {
		z-index: 1;
	}
}

.header-row__flex {
	display: flex;
	align-items: center;
	justify-content: space-between;
	

	> * {
		padding-left: 10px;
		padding-right: 10px;

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

.header-nav-wrapper {
	display: flex;
	align-items: flex-start;
	flex: 1 1 100%;
	max-width: 100%;
	width: 100%;

	@include media-breakpoint-up(sm) {
		.main-navigation {
			flex: 1 1 80%;
		}
		.header-components:not(:empty) {
			margin-left: 25px;
		}
	}
	@include media-breakpoint-up(md) {
		align-items: center;
		width: auto;

		.header-components:not(:empty) {
			margin-left: 25px;
		}
	}

	.style-2 & {
		@include media-breakpoint-up(sm) {
			align-items: center;
			width: 100%;
		}
	}
}

.header-components {
	display: flex;
	flex-direction: row;
	align-items: center;

	> *:not(:last-child) {
		margin-right: 20px;
	}
}

.header-components__contact-button {
	display: block;
	padding-bottom: 20px;

	@include media-breakpoint-up(md) {
		display: flex;
		justify-content: flex-start;
		padding-bottom: 0;
	}

	> * {
		padding-left: 0;
		padding-right: 0;
		padding-top: 20px;

		@include media-breakpoint-up(md) {
			padding-top: 15px;
			padding-bottom: 14px;
		}
	}
	.contact-block {
		flex-grow: 1;
		flex-shrink: 0;

		.contact-block__inner {
			display: block;

			@include media-breakpoint-up(sm) {
				display: flex;
				flex-direction: row;
			}
		}

		.contact-block__item {
			flex-grow: 1;
		}

		& + .header-btn-wrap {
			@include media-breakpoint-up(md) {
				text-align: right;
				padding-left: $grid-gutter-width / 2;
			}
		}
	}
	.header-btn-wrap {
		@include media-breakpoint-up(md) {
			flex-basis: 25%;
			flex-shrink: 0;
			margin-left: auto;
		}
	}
}

.header-components__grid-elements {
	> * {
		&:first-child {
			@include media-breakpoint-up(md) {
				padding-right: $grid-gutter-width / 2;
			}
		}
		&:last-child {
			@include media-breakpoint-up(md) {
				padding-left: $grid-gutter-width / 2;
			}
		}
		&:first-child:last-child {
			@include media-breakpoint-up(md) {
				padding-left: 0;
				padding-right: 0;
			}
		}
	}
	.contact-block__inner {
		@include grid-indent($grid-gutter-width / 2);

		.contact-block__item {
			@include media-breakpoint-up(md) {
				flex-basis: 25%;
				flex-shrink: 0;
			}
		}
	}
}

.site-branding,
.header-components {
	flex: 0 0 auto;
}

.vertical-menu-toggle,
.header-components,
.header-search {
	.header-container & {
		@include media-breakpoint-down(xs) {
			display: none;
		}
	}
}

.site-header {
	.site-branding,
	.main-navigation,
	.menu-toggle {
		@include media-breakpoint-up(sm) {
			visibility: visible;
			opacity: 1;
			transition: all .3s ease-out;
		}
	}

	.header-components > * {
		visibility: visible;
		opacity: 1;
		transition: all .3s ease-out;
	}

	&.search-active {
		.site-branding,
		.main-navigation,
		.menu-toggle {
			@include media-breakpoint-up(sm) {
				opacity: 0;
				visibility: hidden;
				transform: translateY(20px);
			}
		}

		.header-components > * {
			opacity: 0;
			visibility: hidden;
			transform: translateY(20px);
		}
	}
}

@import "header/layout-style-1";
@import "header/layout-style-2";
@import "header/layout-style-3";
@import "header/layout-style-4";
@import "header/layout-style-5";
@import "header/layout-style-6";
@import "header/layout-style-7";
@import "header/top-panel";
@import "header/logo";
@import "header/sticky";
@import "header/mobile-panel";
