/* =========================================================
   GPL Villa — Header / Navigation
   ========================================================= */

/* ===================== PROMO BAR ===================== */

.gv-promo-bar {
	position: relative;
	background: var(--gv-black);
	height: 40px;
	overflow: hidden;
	display: flex;
	align-items: center;
}

.gv-promo-track {
	display: flex;
	align-items: center;
	gap: 60px;
	white-space: nowrap;
	width: max-content;
	animation: gv-marquee 26s linear infinite;
	padding-left: 100%;
}

.gv-promo-bar:hover .gv-promo-track {
	animation-play-state: paused;
}

@keyframes gv-marquee {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

.gv-promo-message,
.gv-promo-message:link,
.gv-promo-message:visited {
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}

.gv-promo-message:hover { text-decoration: underline; }

.gv-promo-gold, .gv-promo-gold:link, .gv-promo-gold:visited { color: var(--gv-gold-light) !important; }
.gv-promo-red, .gv-promo-red:link, .gv-promo-red:visited { color: var(--gv-red-strong) !important; }
.gv-promo-yellow, .gv-promo-yellow:link, .gv-promo-yellow:visited { color: #ffd23f !important; }
.gv-promo-white, .gv-promo-white:link, .gv-promo-white:visited { color: #ffffff !important; }

@media (prefers-reduced-motion: reduce) {
	.gv-promo-track { animation: none; padding-left: 0; }
}

/* ===================== LOGO (large / black+red variant) ===================== */

.gv-logo-block {
	display: flex;
	flex-direction: column;
	align-items: center;
	flex: 1;
	min-width: 0;
}

.gv-logo-lg {
	font-size: 34px;
	justify-content: center;
}

.gv-logo-img { display: block; height: 40px; width: auto; object-fit: contain; }

.gv-logo-subtitle {
	color: #ffffff;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.2px;
	white-space: nowrap;
	margin-top: 2px;
}

/* ===================== HEADER ICON ACTION BAR ===================== */

.gv-header-actions {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: nowrap;
	flex-shrink: 0;
}

.gv-search-toggle,
.gv-account-link,
.gv-cart-link,
.gv-menu-toggle {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	flex-shrink: 0;
}

.gv-icon-uniform {
	background: var(--gv-black) !important;
	border-color: var(--gv-gold) !important;
	color: var(--gv-gold-light) !important;
}

.gv-header {
	position: sticky;
	top: 0;
	z-index: 999;
	background: linear-gradient(135deg, var(--gv-ink), var(--gv-bg-alt));
	border-bottom: 1px solid var(--gv-border);
	transition: box-shadow 0.2s ease;
}

.gv-header.gv-scrolled {
	box-shadow: 0 6px 20px rgba(0,0,0,0.3);
}

.gv-header-inner {
	max-width: 1240px;
	margin: 0 auto;
	padding: 12px 24px;
	display: flex;
	align-items: center;
	gap: 16px;
}

.gv-logo {
	font-family: var(--gv-font-heading);
	font-size: 21px;
	font-weight: 800;
	color: #171106 !important;
	display: flex;
	align-items: center;
	gap: 8px;
	white-space: nowrap;
}

.gv-logo span {
	background: linear-gradient(135deg, #171106, #3a2a08);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.gv-nav {
	display: flex;
	align-items: center;
	gap: 4px;
}

.gv-nav ul {
	display: flex;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 4px;
}

.gv-nav ul li a {
	display: inline-block;
	padding: 10px 14px;
	color: #fff;
	font-weight: 600;
	font-size: 14px;
	border-radius: var(--gv-radius-sm);
	transition: background 0.15s ease, color 0.15s ease;
}

.gv-nav ul li a:hover {
	background: rgba(255,255,255,0.15);
	color: #fff;
}

.gv-nav ul.sub-menu,
.gv-nav ul.children {
	position: absolute;
	background: var(--gv-card);
	border: 1px solid var(--gv-border);
	border-radius: var(--gv-radius-sm);
	padding: 8px;
	box-shadow: var(--gv-shadow-lg);
	flex-direction: column;
	min-width: 200px;
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: all 0.15s ease;
}

.gv-nav li:hover > ul.sub-menu,
.gv-nav li:hover > ul.children {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.gv-nav ul.sub-menu li a,
.gv-nav ul.children li a {
	color: #fff;
}

.gv-search-toggle,
.gv-account-link,
.gv-cart-link {
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--gv-border);
	color: #fff !important;
	position: relative;
	font-size: 16px;
	transition: filter 0.15s ease, transform 0.15s ease;
}

.gv-search-toggle:hover,
.gv-account-link:hover,
.gv-cart-link:hover {
	filter: brightness(1.15);
	transform: translateY(-1px);
}

.gv-cart-count {
	position: absolute;
	top: -4px;
	right: -4px;
	background: linear-gradient(135deg, var(--gv-gold-light), var(--gv-gold-dark));
	color: #171106;
	font-size: 10px;
	font-weight: 800;
	min-width: 18px;
	height: 18px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 3px;
}

.gv-search-bar {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.25s ease;
	background: var(--gv-bg-alt);
	border-bottom: 1px solid var(--gv-border);
}

.gv-search-bar.is-open {
	max-height: 90px;
}

.gv-search-bar form {
	max-width: 1240px;
	margin: 0 auto;
	padding: 16px 24px;
	display: flex;
	gap: 10px;
}

.gv-search-bar input[type="search"] {
	flex: 1;
	font-size: 15px;
}

.gv-menu-toggle {
	display: none;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--gv-card);
	border: 1px solid var(--gv-border);
	color: #fff;
	align-items: center;
	justify-content: center;
	font-size: 18px;
}

@media (max-width: 900px) {
	.gv-header-inner { flex-wrap: wrap; justify-content: center; position: relative; row-gap: 10px; }
	.gv-logo-block { width: 100%; order: 1; }
	.gv-nav { order: 3; width: 100%; }
	.gv-header-actions { order: 2; width: 100%; justify-content: space-between; gap: 8px; }

	.gv-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; background: var(--gv-bg-alt); border-bottom: 1px solid var(--gv-border); padding: 10px; z-index: 10; }
	.gv-nav.is-open { display: block; }
	.gv-nav ul { flex-direction: column; }
	.gv-nav ul li a { color: #fff; }
	.gv-nav ul.sub-menu, .gv-nav ul.children { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: none; padding-left: 14px; }
	.gv-menu-toggle { display: flex; }
}

/* ===================== LIVE SEARCH SUGGESTIONS ===================== */

.gsm-search-suggest-wrap { position: relative; }

.gsm-search-suggest-results {
	background: var(--gv-card);
	border: 1px solid var(--gv-border-light);
	border-radius: var(--gv-radius);
	box-shadow: 0 12px 32px rgba(0,0,0,0.45);
	max-height: 360px;
	overflow-y: auto;
	z-index: 1100;
}

.gsm-search-suggest-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 14px;
	border-bottom: 1px solid var(--gv-border);
}
.gsm-search-suggest-item:last-child { border-bottom: none; }
.gsm-search-suggest-item:hover { background: var(--gv-card-hover); }

.gsm-search-suggest-item img,
.gsm-search-suggest-noimg {
	width: 36px;
	height: 36px;
	border-radius: 8px;
	object-fit: cover;
	background: var(--gv-bg-alt);
	flex-shrink: 0;
}

.gsm-search-suggest-info { display: flex; flex-direction: column; min-width: 0; }
.gsm-search-suggest-name {
	color: #fff;
	font-size: 13.5px;
	font-weight: 600;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.gsm-search-suggest-meta { color: var(--gv-text-muted); font-size: 12px; }

.gsm-search-suggest-empty {
	padding: 16px;
	color: var(--gv-text-muted);
	font-size: 13px;
	text-align: center;
}
