/* ==========================================================================
   Header and primary navigation - the Fresh Ground g-header, adapted.

   Fresh Ground runs a three-column top row with the logo dead centre:

     left    telephone + email, each with a small icon, hidden on mobile
     centre  logo (on mobile: logo + account + cart + hamburger)
     right   inline search field, account, cart

   with the primary nav on its own row beneath. Commerce is removed here, so
   the slots map as:

     left    email + LinkedIn
     centre  logo (kept in its existing colours)
     right   search + KONTAKT MIG as a square black button

   The nav switches from off-canvas drawer to horizontal row at 911px, which is
   Fresh Ground's own switch point.
   ========================================================================== */

.mx-header {
	background-color: var(--mx-site-bg);
	position: relative;
	z-index: 200;
}

.mx-header--sticky {
	position: sticky;
	top: 0;
}

/* --------------------------------------------------------------------------
   Top row
   -------------------------------------------------------------------------- */

.mx-header__top {
	align-items: center;
	display: grid;
	gap: 1.25rem;
	grid-template-columns: 1fr auto 1fr;
	padding: 1rem 0;
}

.mx-header__col {
	align-items: center;
	display: flex;
	gap: 1.5rem;
}

.mx-header__col--left  { justify-content: flex-start; }
.mx-header__col--mid   { justify-content: center; }
.mx-header__col--right { justify-content: flex-end; }

.mx-header__link {
	align-items: center;
	color: var(--mx-text-body);
	display: inline-flex;
	font-size: var(--mx-text-small);
	gap: .5rem;
	text-decoration: none;
	transition: color var(--mx-motion);
}

.mx-header__link svg {
	flex-shrink: 0;
	height: 20px;
	width: 20px;
}

@media (hover: hover) {
	.mx-header__link:hover {
		color: var(--mx-grey-01);
	}
}

.mx-header__logo {
	display: inline-flex;
	text-decoration: none;
}

.mx-header__logo img,
.mx-header__logo svg {
	display: block;
	height: auto;
	max-height: 3rem;
	width: auto;
}

/* Below the nav switch the top row collapses to logo + actions + hamburger. */
.mx-header__hide-mobile { display: none; }
.mx-header__hide-desktop { display: inline-flex; }

@media (min-width: 56.875rem) {
	.mx-header__hide-mobile { display: inline-flex; }
	.mx-header__hide-desktop { display: none; }

	.mx-header__col--left.mx-header__hide-mobile,
	.mx-header__col--right.mx-header__hide-mobile { display: flex; }
}

@media (max-width: 56.8125rem) {
	.mx-header__top {
		grid-template-columns: 1fr auto 1fr;
	}
}

/* --------------------------------------------------------------------------
   Search
   -------------------------------------------------------------------------- */

.mx-header__search {
	align-items: center;
	border-bottom: 1px solid var(--mx-hairline);
	display: flex;
	gap: .5rem;
	max-width: 14rem;
}

.mx-header__search input[type="search"],
.mx-header__search input[type="text"] {
	appearance: none;
	background: transparent;
	border: 0;
	color: var(--mx-text-body);
	font-family: var(--mx-font-body);
	font-size: var(--mx-text-xsmall);
	letter-spacing: .1em;
	min-height: 0;
	padding: .5rem 0;
	text-transform: uppercase;
	width: 100%;
}

.mx-header__search input::placeholder {
	color: var(--mx-grey-02);
}

.mx-header__search input:focus {
	outline: none;
}

.mx-header__search button {
	background: none;
	border: 0;
	color: var(--mx-text-body);
	cursor: pointer;
	display: inline-flex;
	padding: 0;
}

.mx-header__search svg {
	height: 18px;
	width: 18px;
}

/* --------------------------------------------------------------------------
   Hamburger
   -------------------------------------------------------------------------- */

.mx-nav-toggle {
	align-items: center;
	background: none;
	border: 0;
	color: var(--mx-text-title);
	cursor: pointer;
	display: inline-flex;
	height: 44px;
	justify-content: center;
	padding: 0;
	width: 44px;
}

.mx-nav-toggle svg {
	height: 24px;
	width: 24px;
}

@media (min-width: 56.875rem) {
	.mx-nav-toggle {
		display: none;
	}
}

/* --------------------------------------------------------------------------
   Primary navigation - desktop row
   -------------------------------------------------------------------------- */

.mx-nav-row {
	border-top: 1px solid var(--mx-hairline);
	display: none;
}

@media (min-width: 56.875rem) {
	.mx-nav-row {
		display: block;
	}
}

.mx-nav {
	display: flex;
	gap: 2.5rem;
	justify-content: center;
	list-style: none;
	margin: 0;
	padding: 0;
}

.mx-nav__item {
	position: static;
}

.mx-nav__link {
	color: var(--mx-text-title);
	display: inline-flex;
	align-items: center;
	gap: .375rem;
	font-size: var(--mx-text-xsmall);
	font-weight: 700;
	letter-spacing: .1em;
	padding: 1.125rem 0;
	text-decoration: none;
	text-transform: uppercase;
	transition: color var(--mx-motion);
}

.mx-nav__item.is-current > .mx-nav__link {
	box-shadow: inset 0 -2px 0 0 currentColor;
}

@media (hover: hover) {
	.mx-nav__link:hover {
		color: var(--mx-grey-01);
	}
}

.mx-nav__caret {
	height: 8px;
	transition: transform var(--mx-motion);
	width: 8px;
}

.mx-nav__item.is-open > .mx-nav__link .mx-nav__caret {
	transform: rotate(180deg);
}

/* --------------------------------------------------------------------------
   Mega panel
   -------------------------------------------------------------------------- */

.mx-mega {
	background-color: var(--mx-white-bg);
	border-top: 1px solid var(--mx-hairline);
	box-shadow: 0 18px 40px -28px rgba(0, 0, 0, .45);
	left: 0;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	right: 0;
	top: 100%;
	transition: opacity var(--mx-motion);
	z-index: 210;
}

.mx-nav__item:hover > .mx-mega,
.mx-nav__item:focus-within > .mx-mega,
.mx-nav__item.is-open > .mx-mega {
	opacity: 1;
	pointer-events: auto;
}

.mx-mega__inner {
	padding: 2.5rem 0;
}

.mx-mega__cols {
	display: grid;
	gap: var(--mx-grid-gap);
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.mx-mega__heading {
	border-bottom: 1px solid var(--mx-hairline);
	font-size: var(--mx-text-xsmall);
	font-weight: 700;
	letter-spacing: .1em;
	margin-bottom: .875rem;
	padding-bottom: .625rem;
	text-transform: uppercase;
}

.mx-mega__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.mx-mega__link {
	color: var(--mx-text-body);
	display: block;
	font-size: var(--mx-body);
	padding: .375rem 0;
	text-decoration: none;
	transition: color var(--mx-motion);
}

@media (hover: hover) {
	.mx-mega__link:hover {
		color: var(--mx-text-title);
	}
}

/* --------------------------------------------------------------------------
   Off-canvas drawer - below 911px
   -------------------------------------------------------------------------- */

.mx-nav-overlay {
	background-color: rgba(0, 0, 0, .45);
	inset: 0;
	opacity: 0;
	pointer-events: none;
	position: fixed;
	transition: opacity var(--mx-motion);
	z-index: 300;
}

body.mx-nav-open .mx-nav-overlay {
	opacity: 1;
	pointer-events: auto;
}

.mx-drawer {
	background-color: var(--mx-site-bg);
	bottom: 0;
	display: flex;
	flex-direction: column;
	left: 0;
	max-width: 360px;
	overflow-y: auto;
	position: fixed;
	top: 0;
	transform: translateX(-100%);
	transition: transform var(--mx-motion);
	width: min(86vw, 360px);
	z-index: 310;
}

body.mx-nav-open .mx-drawer {
	transform: translateX(0);
}

@media (min-width: 56.875rem) {
	.mx-drawer,
	.mx-nav-overlay {
		display: none;
	}
}

.mx-drawer__head {
	align-items: center;
	border-bottom: 1px solid var(--mx-hairline);
	display: flex;
	justify-content: space-between;
	padding: 1.25rem;
}

.mx-drawer__title {
	font-size: var(--mx-text-xsmall);
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.mx-drawer__close {
	align-items: center;
	background: none;
	border: 0;
	color: var(--mx-text-title);
	cursor: pointer;
	display: inline-flex;
	height: 44px;
	justify-content: center;
	padding: 0;
	width: 44px;
}

.mx-drawer__close svg {
	height: 22px;
	width: 22px;
}

.mx-drawer__body {
	flex: 1 1 auto;
	padding: 1.25rem;
}

.mx-drawer__foot {
	border-top: 1px solid var(--mx-hairline);
	display: flex;
	flex-direction: column;
	gap: 1rem;
	padding: 1.25rem;
}

/* Drawer nav */
.mx-drawer .mx-nav {
	display: block;
}

.mx-drawer .mx-nav__item {
	align-items: center;
	border-bottom: 1px solid var(--mx-hairline);
	display: flex;
	flex-wrap: wrap;
}

/* The link takes the row, the expander sits beside it, and the mega panel
   wraps to a full-width row underneath. */
.mx-drawer .mx-nav__link {
	flex: 1 1 auto;
}

.mx-drawer .mx-mega {
	flex: 1 0 100%;
}

.mx-drawer .mx-nav__link {
	font-size: var(--mx-body);
	justify-content: space-between;
	letter-spacing: .06em;
	padding: .875rem 0;
	width: 100%;
}

.mx-drawer .mx-mega {
	background: none;
	border: 0;
	box-shadow: none;
	display: none;
	opacity: 1;
	pointer-events: auto;
	position: static;
}

.mx-drawer .mx-nav__item.is-open > .mx-mega {
	display: block;
}

.mx-drawer .mx-mega__inner {
	padding: 0 0 .875rem;
}

.mx-drawer .mx-mega__cols {
	display: block;
}

.mx-drawer .mx-mega__heading {
	border: 0;
	margin-bottom: .25rem;
	padding-bottom: 0;
}

.mx-drawer .mx-mega__link {
	padding: .375rem 0 .375rem .875rem;
}

/* Expander button inside the drawer, so the parent link stays navigable. */
.mx-nav__expander {
	align-items: center;
	background: none;
	border: 0;
	color: inherit;
	cursor: pointer;
	display: inline-flex;
	height: 44px;
	justify-content: center;
	padding: 0;
	width: 44px;
}

@media (min-width: 56.875rem) {
	.mx-nav__expander {
		display: none;
	}
}

.mx-nav__expander svg {
	height: 10px;
	transition: transform var(--mx-motion);
	width: 10px;
}

.mx-nav__item.is-open > .mx-nav__link .mx-nav__expander svg {
	transform: rotate(180deg);
}

/* Lock the page behind the drawer. */
body.mx-nav-open {
	overflow: hidden;
}
