/* -----------------------------------------------------------------------
 * Site Header — Liz Manette
 * ----------------------------------------------------------------------- */

.lm-header {
	background: #fff;
	border-bottom: 1px solid #eeeceb;
	position: sticky;
	top: 0;
	z-index: 500;
	width: 100%;
}

.lm-header__bar {
	height: 3.375rem;
}

.lm-header__inner {
	max-width: 75rem;
	margin: 0 auto;
	padding: 0 1.5rem;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
}

/* -----------------------------------------------------------------------
 * Search toggle — left
 * ----------------------------------------------------------------------- */

.lm-header__search-toggle {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	color: var(--graphite, #423E3F);
	font-family: inherit;
	font-size: 0.75rem;
	font-weight: 400;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	white-space: nowrap;
	flex-shrink: 0;
	transition: opacity 0.2s ease;
}

.lm-header__search-toggle:hover {
	opacity: 0.6;
}

/* -----------------------------------------------------------------------
 * Primary nav — center
 * ----------------------------------------------------------------------- */

.lm-header__nav {
	flex: 1;
	display: flex;
	justify-content: center;
}

.lm-header__menu {
	display: flex;
	align-items: center;
	gap: 1.75rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.lm-header__menu-link {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--graphite, #423E3F);
	text-decoration: none;
	white-space: nowrap;
	transition: opacity 0.2s ease;
}

.lm-header__menu-link:hover {
	opacity: 0.6;
	color: var(--graphite, #423E3F);
}

.lm-header__caret {
	flex-shrink: 0;
	transition: transform 0.2s ease;
}

/* -----------------------------------------------------------------------
 * Shop dropdown
 * ----------------------------------------------------------------------- */

.lm-header__menu-item--shop {
	position: relative;
}

.lm-header__dropdown {
	position: absolute;
	top: calc(100% + 0.875rem);
	left: 50%;
	transform: translateX(-50%) translateY(-6px);
	background: #fff;
	border: 1px solid #eeeceb;
	border-radius: 3px;
	min-width: 190px;
	list-style: none;
	margin: 0;
	padding: 0.5rem 0;
	opacity: 0;
	pointer-events: none;
	/* Slight delay when hiding so the mouse has time to enter the dropdown */
	transition: opacity 0.2s ease 0.1s, transform 0.2s ease 0.1s;
	box-shadow: 0 6px 20px rgba(66, 62, 63, 0.09);
	z-index: 300;
}

/* Invisible bridge that covers the gap between the nav link and the dropdown,
   keeping the parent :hover alive while the mouse travels down */
.lm-header__dropdown::before {
	content: '';
	position: absolute;
	bottom: 100%;
	left: -1rem;
	right: -1rem;
	height: calc(0.875rem + 4px);
}

@media (hover: hover) {
	.lm-header__menu-item--shop:hover .lm-header__dropdown {
		opacity: 1;
		pointer-events: auto;
		transform: translateX(-50%) translateY(0);
		/* No delay when opening */
		transition: opacity 0.18s ease, transform 0.18s ease;
	}

	.lm-header__menu-item--shop:hover .lm-header__caret {
		transform: rotate(180deg);
	}
}

.lm-header__menu-item--shop.is-open .lm-header__dropdown {
	opacity: 1;
	pointer-events: auto;
	transform: translateX(-50%) translateY(0);
}

.lm-header__menu-item--shop.is-open .lm-header__caret {
	transform: rotate(180deg);
}

.lm-header__dropdown-link {
	display: block;
	padding: 0.5rem 1.25rem;
	font-size: 0.7rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--graphite, #423E3F);
	text-decoration: none;
	transition: background 0.15s ease;
}

.lm-header__dropdown-link:hover {
	background: #f7f5f4;
	color: var(--graphite, #423E3F);
}

/* -----------------------------------------------------------------------
 * Cart — right
 * ----------------------------------------------------------------------- */

.lm-header__cart {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	text-decoration: none;
	color: var(--graphite, #423E3F);
	flex-shrink: 0;
	transition: opacity 0.2s ease;
}

.lm-header__cart:hover {
	opacity: 0.6;
	color: var(--graphite, #423E3F);
}

.lm-header__cart-count {
	font-size: 0.75rem;
	font-weight: 400;
	letter-spacing: 0.02em;
	line-height: 1;
}

/* -----------------------------------------------------------------------
 * Search form (slides down)
 * ----------------------------------------------------------------------- */

.lm-header__search-form {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.28s ease;
}

.lm-header__search-form.is-open {
	max-height: 5rem;
}

.lm-header__search-inner {
	max-width: 75rem;
	margin: 0 auto;
	padding: 0.6rem 1.5rem 0.7rem;
	border-top: 1px solid #eeeceb;
}

.lm-header__search-inner form {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	border-bottom: 1px solid var(--graphite, #423E3F);
	padding-bottom: 0.3rem;
}

.lm-header__search-input {
	flex: 1;
	border: none;
	background: transparent;
	font-family: inherit;
	font-size: 0.875rem;
	color: var(--graphite, #423E3F);
	outline: none;
	letter-spacing: 0.02em;
}

.lm-header__search-input::placeholder {
	color: var(--dim-grey, #757474);
}

.lm-header__search-submit,
.lm-header__search-close {
	background: none;
	border: none;
	padding: 0.125rem;
	cursor: pointer;
	color: var(--graphite, #423E3F);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	transition: opacity 0.2s ease;
}

.lm-header__search-submit:hover,
.lm-header__search-close:hover {
	opacity: 0.55;
}

/* -----------------------------------------------------------------------
 * Hamburger toggle (mobile only)
 * ----------------------------------------------------------------------- */

.lm-header__mobile-toggle {
	display: none;
	background: none;
	border: none;
	padding: 0.25rem;
	cursor: pointer;
	color: var(--graphite, #423E3F);
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.lm-header__burger-close {
	display: none;
}

.lm-header__mobile-toggle.is-open .lm-header__burger-open {
	display: none;
}

.lm-header__mobile-toggle.is-open .lm-header__burger-close {
	display: block;
}

/* -----------------------------------------------------------------------
 * Mobile nav drawer
 * ----------------------------------------------------------------------- */

.lm-header__mobile-nav {
	display: none;
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	width: min(300px, 85vw);
	background: #fff;
	z-index: 450;
	overflow-y: auto;
	padding: 4rem 1.75rem 2rem;
	transform: translateX(100%);
	transition: transform 0.3s ease;
}

.lm-header__mobile-nav.is-open {
	transform: translateX(0);
}

.lm-header__mobile-overlay {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(66, 62, 63, 0.45);
	z-index: 399;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease;
}

.lm-header__mobile-overlay.is-open {
	opacity: 1;
	pointer-events: auto;
}

.lm-header__mobile-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.lm-header__mobile-item {
	border-bottom: 1px solid #eeeceb;
}

.lm-header__mobile-link {
	display: block;
	padding: 0.875rem 0;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--graphite, #423E3F);
	text-decoration: none;
}

.lm-header__mobile-link:hover {
	color: var(--dim-grey, #757474);
}

.lm-header__mobile-subcats {
	list-style: none;
	margin: 0 0 0.75rem;
	padding: 0 0 0 0.75rem;
}

.lm-header__mobile-subcats li {
	margin-bottom: 0.25rem;
}

.lm-header__mobile-sublink {
	display: block;
	padding: 0.3rem 0;
	font-size: 0.7rem;
	font-weight: 400;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--dim-grey, #757474);
	text-decoration: none;
}

.lm-header__mobile-sublink:hover {
	color: var(--graphite, #423E3F);
}

/* -----------------------------------------------------------------------
 * Responsive
 * ----------------------------------------------------------------------- */

@media (max-width: 1024px) {
	.lm-header__menu {
		gap: 1.25rem;
	}
}

@media (max-width: 768px) {
	.lm-header__nav {
		display: none;
	}

	.lm-header__bar {
		height: 3rem;
	}

	.lm-header__mobile-toggle {
		display: flex;
	}

	.lm-header__mobile-nav,
	.lm-header__mobile-overlay {
		display: block;
	}
}
