/*
 * RV Cart Menu Icon
 * Loads site-wide so the cart icon renders properly in the nav menu.
 */

.rv-cart-link {
	position: relative;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 999px;
	color: #ffffff !important;
	text-decoration: none !important;
	background-color: transparent !important;
	transition: color 0.2s ease, transform 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
	line-height: 1;
}

.rv-cart-link__inner {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0;
}

.rv-cart-label {
	display: none;
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.01em;
	white-space: nowrap;
}

.navigation-stick .rv-cart-link,
.navigation-stick .menu-item.rv-cart-menu-item > .rv-cart-link {
	color: #1a1a1a !important;
}

body:not(.home) .rv-cart-link,
body:not(.home) .menu-item.rv-cart-menu-item > .rv-cart-link {
	color: #1a1a1a !important;
}

.rv-cart-link:hover,
.rv-cart-link:focus {
	background-color: transparent !important;
	color: #c4302b !important;
	transform: translateY(-1px);
}

.navigation-stick .rv-cart-link:hover,
.navigation-stick .rv-cart-link:focus,
.navigation-stick .menu-item.rv-cart-menu-item > .rv-cart-link:hover,
.navigation-stick .menu-item.rv-cart-menu-item > .rv-cart-link:focus {
	color: #c4302b !important;
}

body:not(.home) .rv-cart-link:hover,
body:not(.home) .rv-cart-link:focus,
body:not(.home) .menu-item.rv-cart-menu-item > .rv-cart-link:hover,
body:not(.home) .menu-item.rv-cart-menu-item > .rv-cart-link:focus {
	color: #c4302b !important;
}

.rv-cart-icon {
	width: 22px;
	height: 22px;
	display: block;
	stroke: currentColor;
	flex-shrink: 0;
}

.rv-cart-badge {
	position: absolute;
	top: -2px;
	right: -4px;
	min-width: 1.1rem;
	height: 1.1rem;
	padding: 0 0.35rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #e63946;
	color: #fff;
	font-size: 0.65rem;
	font-weight: 700;
	line-height: 1;
	border-radius: 999px;
	box-shadow: 0 0 0 2px #fff;
	transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.2s ease;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	letter-spacing: 0;
	text-transform: none;
}

.rv-cart-badge--empty {
	opacity: 0;
	transform: scale(0);
	pointer-events: none;
}

/* Override the menu item's default link spacing in case the theme adds its own. */
.menu-item.rv-cart-menu-item > .rv-cart-link {
	padding: 0 !important;
}

/* Strip any visible label text the user might have left in the menu. */
.menu-item.rv-cart-menu-item > a:not(.rv-cart-link) {
	display: none !important;
}

/* ---------- Mobile menu: full-width button with label ---------- */

@media (max-width: 768px) {
	/* Keep cart in the menu flow instead of pinned to a corner. */
	.menu-item.rv-cart-menu-item,
	.main-navigation .menu-bar-items .menu-bar-item.rv-cart-menu-item,
	.main-navigation .menu-bar-items .rv-cart-menu-item {
		position: static !important;
		inset: auto !important;
		float: none !important;
		order: 0 !important;
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 0 !important;
		list-style: none;
	}

	.main-navigation .menu-bar-items {
		position: static !important;
		inset: auto !important;
		float: none !important;
		display: flex !important;
		flex-direction: column;
		align-items: stretch;
		width: 100% !important;
		margin: 0 !important;
		padding: 0.5rem 0 0 !important;
		gap: 0;
	}

	.main-navigation.toggled .inside-navigation,
	.main-navigation.toggled .main-nav {
		display: flex;
		flex-direction: column;
	}

	.main-navigation.toggled .menu-bar-items {
		margin-top: auto;
		padding: 1rem 1rem 0.25rem !important;
		border-top: 1px solid #eef0f2;
	}

	.main-navigation.toggled .main-nav > ul .menu-item.rv-cart-menu-item {
		padding: 0.85rem 1rem 0.25rem !important;
		border-top: 1px solid #eef0f2;
	}

	.menu-item.rv-cart-menu-item > .rv-cart-link,
	.main-navigation .menu-bar-items .rv-cart-link {
		display: inline-flex !important;
		align-items: center;
		justify-content: flex-start;
		gap: 0.65rem;
		width: 100% !important;
		height: auto !important;
		min-height: 2.85rem;
		padding: 0.7rem 1.1rem !important;
		border: 1px solid #e6e8eb !important;
		border-radius: 999px !important;
		background: #0f0f10 !important;
		color: #fff !important;
		box-shadow: 0 1px 2px rgba(15, 15, 16, 0.06);
		transform: none !important;
	}

	.rv-cart-link__inner {
		display: inline-flex;
		align-items: center;
		gap: 0.65rem;
		min-width: 0;
		flex: 1;
	}

	.rv-cart-label {
		display: inline;
		color: inherit;
	}

	.rv-cart-badge {
		position: static;
		top: auto;
		right: auto;
		flex-shrink: 0;
		margin-left: auto;
		box-shadow: none;
	}

	.rv-cart-badge--empty {
		display: none;
	}

	.menu-item.rv-cart-menu-item > .rv-cart-link:hover,
	.menu-item.rv-cart-menu-item > .rv-cart-link:focus,
	.main-navigation .menu-bar-items .rv-cart-link:hover,
	.main-navigation .menu-bar-items .rv-cart-link:focus {
		background: #2a2a2d !important;
		color: #fff !important;
		border-color: #2a2a2d !important;
		transform: none !important;
	}
}
