/* =====================================================================
   Header: announcement bar + row 1 (logo/search/account/cart) + row 2 menu
   ================================================================== */

/* Announcement bar */
.jviens-announce {
	background: var(--jv-announce-bg, var(--jv-purple-900));
	color: var(--jv-announce-fg, #fff);
	text-align: center;
	font-size: 13px;
	letter-spacing: .02em;
}
.jviens-announce__inner {
	max-width: var(--jv-container);
	margin: 0 auto;
	padding: 10px var(--jv-gutter);
}

/* Header wrapper */
.jviens-header {
	background: var(--jv-bg);
	position: relative;
	z-index: 20;
}

/* Row 1 */
.jviens-header-main { background: var(--jv-bg); }
.jviens-header-main__inner {
	max-width: var(--jv-container);
	margin: 0 auto;
	padding: 10px 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

/* Logo (desktop) */
.jviens-logo { display: inline-flex; align-items: center; text-decoration: none; color: inherit; }
.jviens-logo__img { height: var(--jv-logo-height, 56px); width: auto; display: block; }
.jviens-logo__text { font-family: var(--jv-serif); font-weight: 700; font-size: 22px; color: var(--jv-purple-700); }

/* Paired light/dark logos — CSS toggles visibility per [data-theme] */
html:not([data-theme="dark"]) .jviens-logo__img--dark,
html:not([data-theme="dark"]) .jviens-mobile-logo__img--dark  { display: none; }
html[data-theme="dark"]       .jviens-logo__img--light,
html[data-theme="dark"]       .jviens-mobile-logo__img--light { display: none; }

/* Theme toggle button */
.jviens-theme-toggle { position: relative; }
.jviens-theme-toggle__sun,
.jviens-theme-toggle__moon {
	display: inline-flex; align-items: center; justify-content: center;
	transition: opacity .2s ease, transform .2s ease;
}
html:not([data-theme="dark"]) .jviens-theme-toggle__sun  { display: none; }
html[data-theme="dark"]       .jviens-theme-toggle__moon { display: none; }

/* Actions */
.jviens-header-main__actions { display: flex; align-items: center; gap: 24px; }
.jviens-action {
	display: inline-flex; align-items: center; gap: 10px;
	background: transparent; border: 0; padding: 8px; cursor: pointer;
	color: var(--jv-ink); text-decoration: none; font: inherit;
	border-radius: 8px;
}
.jviens-action:hover, .jviens-action:focus-visible { color: var(--jv-purple-700); }
.jviens-action__icon { width: 26px; height: 26px; }
.jviens-action--icon .jviens-action__icon { width: 26px; height: 26px; }
.jviens-action__label { font-size: 15px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; }

/* Cart action — let the badge overlap the icon's top-right. */
.jviens-action--cart { position: relative; }
.jviens-action--cart .jviens-action__icon { position: relative; }

/* Cart badge — circular, hidden when empty. Pinned to icon's top-right. */
.jviens-cart-count {
	position: absolute;
	top: 2px;
	left: 26px;
	width: 18px; height: 18px; padding: 0;
	background: var(--jv-purple-700); color: #fff;
	border: 2px solid var(--jv-bg);
	border-radius: 50%;
	font-size: 10px; font-weight: 700;
	display: inline-flex; align-items: center; justify-content: center;
	line-height: 1;
	box-sizing: content-box;
}
.jviens-cart-count[data-count="0"] { display: none; }

/* Search overlay */
.jviens-search-overlay {
	position: fixed; inset: 0; z-index: 1000;
	display: flex; align-items: flex-start; justify-content: center;
	padding-top: 12vh;
}
.jviens-search-overlay[hidden] { display: none; }
.jviens-search-overlay__backdrop { position: absolute; inset: 0; background: rgba(42,36,50,.55); }
.jviens-search-overlay__form {
	position: relative;
	width: min(640px, 92vw);
	background: #fff; border-radius: var(--jv-radius);
	box-shadow: var(--jv-shadow-md);
	display: flex; align-items: center; gap: 8px; padding: 8px 12px;
}
.jviens-search-overlay__form input[type="search"] {
	flex: 1; border: 0; outline: 0; font-size: 16px; padding: 14px 8px;
	background: transparent; color: var(--jv-ink);
}
.jviens-search-overlay__submit,
.jviens-search-overlay__close {
	background: transparent; border: 0; padding: 8px; cursor: pointer; color: var(--jv-ink-muted);
	border-radius: 6px;
}
.jviens-search-overlay__submit:hover,
.jviens-search-overlay__close:hover { color: var(--jv-purple-700); background: var(--jv-purple-50); }
.jviens-search-overlay__submit svg,
.jviens-search-overlay__close svg { width: 20px; height: 20px; }

/* Inline primary nav (between logo and actions) */
.jviens-nav { flex: 1; display: flex; justify-content: center; min-width: 0; }
.jviens-nav__inner { max-width: 100%; }
.jviens-menu {
	list-style: none; margin: 0; padding: 0;
	display: flex; align-items: center; gap: 32px;
	font-size: 15px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase;
}
.jviens-menu li { position: relative; }
.jviens-menu a {
	display: inline-block; padding: 12px 0; color: var(--jv-ink); text-decoration: none;
	border-bottom: 2px solid transparent;
}
.jviens-menu a:hover,
.jviens-menu .current-menu-item > a,
.jviens-menu .current-menu-parent > a,
.jviens-menu .current-menu-ancestor > a {
	color: var(--jv-menu-active, var(--jv-purple-700));
	border-bottom-color: var(--jv-menu-active, var(--jv-purple-700));
}

/* Dropdowns (depth 2) */
.jviens-menu .sub-menu {
	position: absolute; left: 0; top: 100%; min-width: 220px;
	list-style: none; margin: 0; padding: 8px 0;
	background: #fff; border: 1px solid var(--jv-border); border-radius: var(--jv-radius);
	box-shadow: var(--jv-shadow-md);
	opacity: 0; visibility: hidden; transform: translateY(4px);
	transition: opacity .15s ease, transform .15s ease, visibility .15s;
	z-index: 40;
}
.jviens-menu li:hover > .sub-menu,
.jviens-menu li:focus-within > .sub-menu {
	opacity: 1; visibility: visible; transform: translateY(0);
}
.jviens-menu .sub-menu a {
	padding: 10px 16px; border-bottom: 0; font-weight: 500; letter-spacing: 0; text-transform: none;
	display: block;
}
.jviens-menu .sub-menu a:hover { background: var(--jv-purple-50); color: var(--jv-purple-700); }

/* Hide desktop header / menu below breakpoint */
@media (max-width: 1023.98px) {
	.jviens-header-main,
	.jviens-nav { display: none; }
}
