/**
 * Shanelle Site Header — three-tier layout
 */

.site-header {
	position: sticky;
	top: 0;
	z-index: var(--z-sticky);
	width: 100%;
	background: var(--header-bg);
	background-color: var(--color-landing);
}

/* Keep promo + logo/search/nav pinned while scrolling (no auto-hide). */
body.admin-bar .site-header {
	top: var(--wp-admin--admin-bar--height, 32px);
}

@media screen and (max-width: 782px) {
	body.admin-bar .site-header {
		top: var(--wp-admin--admin-bar--height, 46px);
	}
}

.site-header__chrome {
	display: block;
}

/*
 * Fallback sticky offset for PLP toolbar / other sticky chrome.
 * Refined at runtime by components/header/modules/sticky-header-offset.js
 * (accounts for promo bar on/off and navbar height).
 */
:root {
	/* ~15% taller main bar + logo vs prior 6.325rem baseline */
	--site-header-sticky-height: 7.274rem;
}

/* -------------------------------------------------------------------------
   Promo banner — stadium-style ticker (always visible with sticky header)
   ------------------------------------------------------------------------- */
.site-header__promo {
	display: block;
	position: relative;
	z-index: 1;
	background-color: var(--color-brand-200);
	border-bottom: 1px solid color-mix(in srgb, var(--color-brand-900) 12%, transparent);
}

.site-header__promo-inner {
	padding-block: var(--space-1-5);
}

.site-header__promo-viewport {
	overflow: hidden;
	width: 100%;
}

.site-header__promo-track {
	display: flex;
	align-items: center;
	gap: var(--space-6);
	width: max-content;
	min-height: 2.3rem;
	will-change: transform;
}

.site-header__promo.is-static .site-header__promo-track {
	width: 100%;
	max-width: 100%;
	justify-content: center;
	flex-wrap: wrap;
	row-gap: var(--space-1);
	column-gap: var(--space-6);
}

.site-header__promo-track.is-marquee {
	animation: shanelle-promo-marquee var(--promo-marquee-duration, 30s) linear infinite;
}

.site-header__promo:hover .site-header__promo-track.is-marquee,
.site-header__promo:focus-within .site-header__promo-track.is-marquee {
	animation-play-state: paused;
}

.site-header__promo-item {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
	margin: 0;
	font-size: var(--font-size-xs);
	line-height: var(--line-height-snug);
	color: var(--color-brand-900);
	white-space: nowrap;
}

.site-header__promo-copy,
.site-header__promo-link {
	display: inline-flex;
	align-items: baseline;
	gap: var(--space-1);
	color: inherit;
	text-decoration: none;
}

.site-header__promo-link:hover,
.site-header__promo-link:focus-visible {
	color: var(--color-brand-900);
}

.site-header__promo-link:focus-visible {
	outline: 2px solid var(--color-border-focus);
	outline-offset: 2px;
	border-radius: var(--radius-xs);
}

.site-header__promo-item strong {
	font-weight: var(--font-weight-semibold);
	color: var(--color-brand-900);
}

.site-header__promo-sep {
	flex-shrink: 0;
	width: 0.25rem;
	height: 0.25rem;
	border-radius: var(--radius-full);
	background-color: color-mix(in srgb, var(--color-brand-700) 45%, transparent);
}

@keyframes shanelle-promo-marquee {
	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(calc(-1 * var(--promo-marquee-distance, 50%)));
	}
}

/* -------------------------------------------------------------------------
   Main bar
   ------------------------------------------------------------------------- */
.site-header__main {
	background: transparent;
}

.site-header__main-inner {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: var(--space-3);
	min-height: 4.629rem; /* +15% from 4.025rem */
	padding-block: var(--space-2-5);
}

.site-header__start {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	min-width: 0;
}

.site-header__menu-toggle {
	display: inline-flex;
}

.site-header__logo {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
	text-decoration: none;
}

.site-header__logo :where(img, .custom-logo) {
	display: block;
	width: auto;
	max-height: 3.306rem; /* +15% from 2.875rem */
}

.site-header__icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-1);
	min-width: 2.875rem;
	min-height: 2.875rem;
	padding: 0;
	border: none;
	background: transparent;
	color: var(--color-brand-800);
	text-decoration: none;
	cursor: pointer;
	transition: var(--transition-opacity);
}

.site-header__icon-btn:hover:not(:disabled) {
	opacity: 0.72;
}

.site-header__icon-btn:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

.site-header__icon-btn:focus-visible {
	outline: 2px solid var(--color-brand-400);
	outline-offset: 2px;
}

/* Search */
.site-header__search {
	display: flex;
	justify-content: center;
	min-width: 0;
}

.site-header__search-form {
	display: none;
	position: relative;
	width: min(100%, 42rem);
}

.site-header__search-input {
	width: 100%;
	height: 2.875rem;
	padding: 0 3.25rem 0 var(--space-4);
	border: 1px solid rgb(232 122 158 / 16%);
	border-radius: var(--radius-sm);
	background-color: rgb(255 255 255 / 88%);
	font-size: var(--font-size-sm);
	color: var(--color-text);
	cursor: pointer;
}

.site-header__search-input::placeholder {
	color: var(--color-neutral-400);
}

.site-header__search-input:focus {
	outline: none;
	box-shadow: var(--shadow-focus);
	cursor: text;
}

.site-header__search-submit {
	position: absolute;
	top: 50%;
	right: var(--space-1);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	padding: 0;
	border: none;
	border-radius: var(--radius-sm);
	background-color: var(--color-brand-600);
	color: var(--color-text-inverse);
	cursor: pointer;
	transform: translateY(-50%);
	transition: var(--transition-opacity);
}

.site-header__search-submit:hover {
	opacity: 0.85;
}

.site-header__search-toggle {
	display: inline-flex;
}

/* Actions */
.site-header__actions {
	display: inline-flex;
	align-items: center;
	justify-content: flex-end;
	gap: var(--space-1);
}

.site-header__action {
	position: relative;
}

.site-header__action--cart {
	padding-inline: var(--space-1);
}

.header-cart__count {
	position: absolute;
	top: 0.15rem;
	right: 0.05rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.1rem;
	height: 1.1rem;
	padding: 0 0.28rem;
	border-radius: var(--radius-pill);
	background-color: var(--color-brand-600);
	font-size: 0.65rem;
	font-weight: var(--font-weight-semibold);
	line-height: 1;
	color: var(--color-text-inverse);
	opacity: 0;
	transform: scale(0.85);
	transition:
		opacity var(--duration-fast) var(--ease-out),
		transform var(--duration-fast) var(--ease-out);
}

.header-cart__count.is-active {
	opacity: 1;
	transform: scale(1);
}

/* -------------------------------------------------------------------------
   Mobile drawer
   ------------------------------------------------------------------------- */
.site-header__drawer {
	position: fixed;
	inset: 0;
	z-index: var(--z-drawer);
	pointer-events: none;
}

.site-header__drawer.is-open {
	pointer-events: auto;
}

.site-header__drawer[hidden] {
	display: none;
}

.site-header__drawer-overlay {
	position: absolute;
	inset: 0;
	border: none;
	background-color: rgb(23 23 23 / 40%);
	opacity: 0;
	transition: var(--transition-opacity);
}

.site-header__drawer.is-open .site-header__drawer-overlay {
	opacity: 1;
}

.site-header__drawer-panel {
	position: absolute;
	top: 0;
	left: 0;
	display: flex;
	flex-direction: column;
	width: min(100%, 20rem);
	height: 100%;
	padding: var(--space-5) var(--space-4);
	background-color: var(--color-surface);
	box-shadow: var(--shadow-xl);
	transform: translateX(-100%);
	transition: var(--transition-transform);
}

.site-header__drawer.is-open .site-header__drawer-panel {
	transform: translateX(0);
}

.site-header__drawer-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: var(--space-5);
	padding-bottom: var(--space-3);
	border-bottom: 1px solid var(--color-border-subtle);
}

.site-header__drawer-title {
	margin: 0;
	font-family: var(--font-family-display);
	font-size: var(--font-size-lg);
	font-weight: var(--font-weight-semibold);
	letter-spacing: 0.02em;
}

.site-header__drawer-close {
	color: var(--color-text);
}

.site-header__drawer-panel:focus {
	outline: none;
}

.site-header__drawer-nav {
	flex: 1;
	min-height: 0;
	overflow-y: auto;
}

.site-header__drawer-menu {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	margin: 0 0 var(--space-5);
	padding: 0;
	list-style: none;
}

.site-header__drawer-menu > li > a {
	display: block;
	padding: var(--space-3) 0;
	font-size: var(--font-size-base);
	color: var(--color-text);
	text-decoration: none;
}

.site-header__drawer-menu a:hover,
.site-header__drawer-menu a:focus-visible {
	color: var(--color-brand-700);
}

.site-header__drawer-menu .sub-menu {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	margin: 0 0 var(--space-2);
	padding: 0 0 0 var(--space-4);
	list-style: none;
	border-left: 1px solid var(--color-border-subtle);
}

.site-header__drawer-menu .sub-menu a {
	display: block;
	padding: var(--space-2) 0;
	font-size: var(--font-size-sm);
	color: var(--color-text-secondary);
}

.site-header__drawer-actions {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	margin-top: auto;
	padding-top: var(--space-4);
	border-top: 1px solid var(--color-border-subtle);
}

/* -------------------------------------------------------------------------
   Responsive
   ------------------------------------------------------------------------- */
@media (min-width: 48rem) {
	.site-header__menu-toggle {
		display: none;
	}

	.site-header__search-form {
		display: block;
	}

	.site-header__search-toggle {
		display: none;
	}

	.site-header__main-inner {
		gap: var(--space-6);
		min-height: 5.29rem; /* +15% from 4.6rem */
	}

	.site-header__logo :where(img, .custom-logo) {
		max-height: 3.769rem; /* +15% from 3.2775rem */
	}

	.site-header__actions {
		gap: var(--space-2);
	}

	/* Full-bleed header chrome on desktop (edge-to-edge with token padding). */
	.site-header__promo-inner,
	.site-header__main-inner {
		width: 100%;
		max-width: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.site-header__promo-track.is-marquee {
		animation: none;
	}

	.site-header,
	.site-header__drawer-overlay,
	.site-header__drawer-panel,
	.header-cart__count {
		transition: none;
	}

	.site-header__drawer.is-open .site-header__drawer-panel {
		transform: none;
	}
}
