/**
 * Global dark chrome — header, footer, WC cart/account shells.
 * Used on Shop, Home, FFL, Contact, About, and all Content Policy pages.
 */

/* Shared page canvas: side-fade red (same as .mgp-shop-hero--hub, red ≥0.45).
   Cards / header / footer / filters keep solid dark panels on top. */
:root {
	--mgp-page-base: #121212;
	--mgp-fade-red: rgba(90, 10, 18, 0.50);
	--mgp-page-fade: linear-gradient(
			105deg,
			rgba(12, 12, 12, 0.96) 0%,
			rgba(20, 20, 20, 0.92) 48%,
			rgba(90, 10, 18, 0.50) 100%
		),
		#121212;
}

html {
	background: var(--mgp-page-base) !important;
	min-height: 100%;
}

html body,
html body.mgp-theme,
html body.fs-premium-ui,
html body.mgp-unified-chrome,
html body.mgp-content-chrome,
html body.mgp-home,
html body.woocommerce,
html body.woocommerce-page,
html body.single-product,
html body.search,
html body.archive,
html body.tax-product_cat {
	background: var(--mgp-page-fade) !important;
	/* Fixed looks best on desktop; mobile.css overrides to scroll (iOS). */
	background-attachment: fixed !important;
	background-color: var(--mgp-page-base) !important;
	color: #e0e0e0 !important;
	min-height: 100%;
}

@media (max-width: 900px) {
	html body,
	html body.mgp-theme,
	html body.fs-premium-ui,
	html body.woocommerce,
	html body.woocommerce-page,
	html body.tax-product_cat,
	html body.mgp-shop-shell,
	html body.mgp-home {
		/* Stronger mobile fade; scroll attachment (fixed fails on many phones). */
		background: linear-gradient(
				105deg,
				rgba(12, 12, 12, 0.98) 0%,
				rgba(18, 18, 18, 0.94) 40%,
				rgba(90, 10, 18, 0.55) 100%
			),
			#121212 !important;
		background-attachment: scroll !important;
	}
}

/* --------------------------------------------------------------------------
   Content pages (FFL / Contact / Privacy / Terms / About / Shipping)
   Body paints --mgp-page-fade (hub gradient). Shell + hero are transparent
   so the page fade shows through (same pattern as shop wrappers).
   Templates also ship this as inline critical CSS — do not rely only on this file.
   Brand-red kicker (#e11d2e); logo + H1 + lead; no action buttons.
   -------------------------------------------------------------------------- */

html body.page,
html body.page-template-contact,
html body.page-template-ffl-compliance,
html body.page-template-about,
html body.page-template-content-policy,
html body.page-template-page-templatescontact-php,
html body.page-template-page-templatesffl-compliance-php,
html body.page-template-page-templatesabout-php,
html body.page-template-page-templatescontent-policy-php {
	background: var(--mgp-page-fade) !important;
	background-attachment: fixed !important;
	background-color: var(--mgp-page-base) !important;
	color: #e0e0e0 !important;
}

.mgs-content-shell,
.mgs-content-shell.mgs-storefront,
.mgp-content-page,
.mgp-ffl-page,
.mgp-contact-page,
.mgp-policy-page,
.mgp-about-page,
.mgp-content-hero,
.mgp-ffl-hero {
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	color: #e0e0e0;
}

.mgs-content-shell,
.mgs-content-shell.mgs-storefront,
.mgp-content-page,
.mgp-ffl-page,
.mgp-contact-page,
.mgp-policy-page,
.mgp-about-page {
	min-height: 70vh;
}

.mgp-content-hero,
.mgp-ffl-hero {
	border-bottom: 1px solid #2e2e2e;
	/* Same padding as .mgp-shop-hero--hub */
	padding: 1.35rem 1rem 1.55rem;
}

.mgp-content-hero__inner,
.mgp-ffl-hero__inner {
	max-width: 860px;
	margin: 0 auto;
}

.mgp-content-hero__brand,
.mgp-ffl-hero__brand {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0 0 0.55rem;
}

.mgp-content-hero__logo,
.mgp-ffl-hero__logo,
.mgs-contact-hero__logo {
	width: 72px;
	height: auto;
	max-height: 52px;
	object-fit: contain;
	flex: 0 0 auto;
}

.mgp-content-hero__eyebrow,
.mgp-ffl-hero__eyebrow {
	margin: 0;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	/* Brand red — same as SHOP ALL / accent (not gold) */
	color: #e11d2e !important;
}

.mgp-content-hero__title,
.mgp-ffl-hero__title {
	/* Match Optics hub H1 */
	margin: 0 0 0.65rem;
	color: #fff !important;
	font-size: clamp(1.75rem, 4vw, 2.45rem);
	font-weight: 900;
	letter-spacing: -0.02em;
	line-height: 1.05;
}

.mgp-content-hero__lead,
.mgp-ffl-hero__lead {
	margin: 0;
	color: #d0d0d0 !important;
	max-width: 38rem;
	line-height: 1.55;
	font-size: 1rem;
	font-weight: 450;
}

/* Explicitly no hero CTAs on these pages */
.mgp-content-hero__actions,
.mgp-ffl-hero__actions {
	display: none !important;
}

.mgp-content-main,
.mgp-ffl-main,
.mgs-contact-main,
.mgs-policy-main,
.mgs-about-main {
	max-width: 860px;
	margin: 0 auto;
	padding: 1.25rem 1rem 2.5rem;
	background: transparent !important;
}

.mgp-content-panel,
.mgp-ffl-card,
.mgs-contact-card,
.mgs-policy-card,
.mgs-about-card {
	background: #141414 !important;
	border: 1px solid #2e2e2e !important;
	border-radius: 10px !important;
	color: #e0e0e0 !important;
	padding: 1.25rem 1.15rem 1.4rem;
	margin: 0 0 0.85rem;
}

.mgp-content-panel h2,
.mgp-ffl-card h2,
.mgs-policy-card h2,
.mgs-about-card h2 {
	margin: 0 0 0.65rem;
	color: #fff !important;
	font-size: 1.05rem;
}

.mgp-content-panel p,
.mgp-content-panel li,
.mgp-ffl-card p,
.mgp-ffl-card li {
	color: #e0e0e0 !important;
	line-height: 1.55;
}

/* Transparent wrappers so the page fade shows through (no white #page stripe). */
html body #page,
html body .site,
html body #content,
html body .site-content,
html body .site-main,
html body #primary,
html body .content-area,
html body .ast-container,
html body .ast-separate-container,
html body .ast-plain-container,
html body .mgp-shop-page,
html body .mgs-storefront,
html body .fs-premium-shell,
html body .mgp-single-product-shell,
html body .mgp-wc-shell {
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
}

/* ---- Header (compact) ---- */
.mgp-chrome-header {
	position: sticky;
	top: 0;
	/* Above shop hero / sticky filter rail so catnav dropdowns are not covered */
	z-index: 4000;
	background: #0c0c0c;
	border-bottom: 1px solid #2e2e2e;
	/* overflow visible so category dropdowns can paint outside the sticky shell */
	overflow: visible;
}

.mgp-chrome-header__inner {
	max-width: 1440px;
	margin: 0 auto;
	padding: 0.35rem 0.85rem;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem 0.65rem;
	min-height: 0;
}

/* Logo / brand — top-left (compact) */
.mgp-chrome-brand {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	flex: 0 0 auto;
	max-width: min(160px, 40vw);
	text-decoration: none !important;
	color: #fff !important;
	font-weight: 800;
	line-height: 1;
	min-height: 32px;
}

.mgp-chrome-brand__logo {
	display: block;
	width: auto;
	max-width: 140px;
	height: 32px;
	max-height: 32px;
	object-fit: contain;
	object-position: left center;
}

.mgp-chrome-brand__mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 5px;
	background: #1a1a1a;
	border: 1px solid #e11d2e;
	color: #fff;
	font-size: 0.85rem;
	font-weight: 800;
	flex-shrink: 0;
}

.mgp-chrome-brand__text {
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
	min-width: 0;
}

.mgp-chrome-brand__name {
	font-size: 0.82rem;
	letter-spacing: 0.04em;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.mgp-chrome-brand__tag {
	color: #e11d2e;
	font-size: 0.58rem;
	letter-spacing: 0.08em;
	font-weight: 800;
}

/* Product search — compact height */
.mgp-chrome-search {
	display: flex;
	align-items: stretch;
	flex: 1 1 200px;
	min-width: 140px;
	max-width: 380px;
	margin: 0;
	border: 1px solid #3a3a3a;
	border-radius: 6px;
	background: #141414;
	overflow: hidden;
	transition: border-color 0.15s ease;
	height: 34px;
}

.mgp-chrome-search:focus-within {
	border-color: #e11d2e;
}

.mgp-chrome-search__input {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0 !important;
	padding: 0.35rem 0.65rem !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	color: #e0e0e0 !important;
	font-size: 0.82rem !important;
	line-height: 1.25 !important;
	box-shadow: none !important;
	outline: none !important;
	-webkit-appearance: none;
	appearance: none;
	height: 100%;
}

.mgp-chrome-search__input::placeholder {
	color: #8a8a8a !important;
	opacity: 1;
}

.mgp-chrome-search__input::-webkit-search-cancel-button {
	filter: invert(1);
	opacity: 0.7;
}

.mgp-chrome-search__btn {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	margin: 0;
	padding: 0;
	border: 0;
	border-left: 1px solid #2e2e2e;
	background: #1e1e1e;
	color: #e0e0e0;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.mgp-chrome-search__btn:hover,
.mgp-chrome-search__btn:focus {
	background: #e11d2e;
	color: #fff;
	outline: none;
}

.mgp-chrome-search__icon {
	display: block;
}

/*
 * Standalone header Cart button REMOVED (was dual Cart / black block on mobile).
 * Cart stays in primary nav + hamburger drawer only. Hide any leftover markup.
 */
html body .mgp-chrome-header .mgp-chrome-cart-btn,
html body .mgp-chrome-cart-btn {
	display: none !important;
	visibility: hidden !important;
	pointer-events: none !important;
	width: 0 !important;
	min-width: 0 !important;
	max-width: 0 !important;
	height: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	overflow: hidden !important;
	position: absolute !important;
	left: -9999px !important;
}

.mgp-chrome-toggle {
	display: none;
	width: 44px;
	height: 44px;
	border: 1px solid #3a3a3a;
	border-radius: 6px;
	background: #1e1e1e;
	cursor: pointer;
	padding: 0;
	align-items: center;
	justify-content: center;
	margin-left: 0.35rem;
	flex: 0 0 auto;
}

.mgp-chrome-toggle__bars,
.mgp-chrome-toggle__bars::before,
.mgp-chrome-toggle__bars::after {
	display: block;
	width: 18px;
	height: 2px;
	background: #e0e0e0;
	position: relative;
	border-radius: 1px;
}

.mgp-chrome-toggle__bars::before,
.mgp-chrome-toggle__bars::after {
	content: "";
	position: absolute;
	left: 0;
}

.mgp-chrome-toggle__bars::before { top: -6px; }
.mgp-chrome-toggle__bars::after { top: 6px; }

.mgp-chrome-nav {
	flex: 0 1 auto;
	margin-left: auto;
}

.mgp-chrome-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 0.85rem;
}

.mgp-chrome-nav__list a {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	color: #e0e0e0 !important;
	text-decoration: none !important;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 0.28rem 0.12rem;
}

.mgp-chrome-nav__list a:hover,
.mgp-chrome-nav__item.is-active a {
	color: #ffffff !important;
}

.mgp-chrome-nav__item.is-active a {
	box-shadow: inset 0 -2px 0 #e11d2e;
}

.mgp-chrome-cart-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.15rem;
	height: 1.15rem;
	padding: 0 0.3rem;
	border-radius: 999px;
	background: #e11d2e;
	color: #fff !important;
	font-size: 0.65rem;
	font-weight: 800;
}

/* Tablet / mobile header */
@media (max-width: 980px) {
	.mgp-chrome-nav {
		margin-left: 0;
	}
	.mgp-chrome-search {
		max-width: none;
		order: 3;
		flex: 1 1 100%;
	}
	.mgp-chrome-toggle {
		display: inline-flex;
		order: 2;
	}
	.mgp-chrome-brand {
		order: 1;
	}
	.mgp-chrome-nav {
		display: none;
		order: 4;
		width: 100%;
		border-top: 1px solid #2e2e2e;
		padding: 0.65rem 0 0.85rem;
		max-height: min(78vh, 640px);
		overflow-x: hidden;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}
	.mgp-chrome-nav.is-open {
		display: block;
	}
	.mgp-chrome-nav__list {
		flex-direction: column;
		align-items: stretch;
		gap: 0.15rem;
	}
	.mgp-chrome-nav__list a {
		min-height: 44px;
		padding: 0.75rem 0.65rem;
		border-radius: 6px;
		font-size: 0.78rem;
	}
	.mgp-chrome-nav__list a:hover {
		background: #1e1e1e;
	}
}

/* Standalone header Cart stays hidden at all breakpoints (see .mgp-chrome-cart-btn above). */

@media (max-width: 420px) {
	.mgp-chrome-brand__logo {
		max-width: 120px;
		height: 28px;
		max-height: 28px;
	}
	.mgp-chrome-brand {
		max-width: min(140px, 46vw);
		min-height: 28px;
	}
}

/* ---- Footer ---- */
.mgp-chrome-footer {
	/* Solid panel — sits on the page fade; no light gap above */
	margin-top: 0;
	padding-top: 2rem;
	background: #0d0d0d !important;
	border-top: 1px solid #2e2e2e;
	color: #cfcfcf;
	position: relative;
	z-index: 2;
}

/* Kill fat white/gray band between shop pagination and footer (was fs-premium-ui #f4f6f8). */
html body.woocommerce .site-content,
html body.woocommerce-page .site-content,
html body.tax-product_cat .site-content,
html body.woocommerce #content,
html body.woocommerce-page #content {
	padding-bottom: 0 !important;
	margin-bottom: 0 !important;
	background: transparent !important;
}

html body .mgp-shop-page,
html body .mgp-shop-main,
html body .mgp-product-grid-wrap {
	padding-bottom: 1.25rem;
	background: transparent !important;
}

.mgp-chrome-footer__inner {
	max-width: 1440px;
	margin: 0 auto;
	padding: 1.75rem 1rem 1.25rem;
	display: grid;
	/* Identity + Shop + Help (Compliance essay removed — was repeating FFL copy). */
	grid-template-columns: 1.5fr 1fr 1fr;
	gap: 1.25rem 1.5rem;
}

@media (max-width: 900px) {
	.mgp-chrome-footer__inner {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 520px) {
	.mgp-chrome-footer__inner {
		grid-template-columns: 1fr;
	}
}

.mgp-chrome-footer__brand {
	margin: 0 0 0.4rem;
	color: #fff;
	font-weight: 800;
	font-size: 1.05rem;
}

.mgp-chrome-footer__dealer {
	margin: 0 0 0.45rem;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #ff6b78;
}

.mgp-chrome-footer__dealer a {
	color: #e0e0e0 !important;
	text-decoration: underline !important;
	text-underline-offset: 2px;
}

.mgp-chrome-footer__dealer a:hover {
	color: #fff !important;
}

/* Type 01 FFL dealer identity (footer + policy) */
.mgp-ffl-id {
	margin: 0 0 0.55rem;
	font-size: 0.8rem;
	line-height: 1.4;
	color: #cfcfcf;
}
.mgp-ffl-id__name {
	margin: 0 0 0.15rem;
	color: #fff;
	font-weight: 800;
	font-size: 0.88rem;
}
.mgp-ffl-id__type {
	margin: 0 0 0.1rem;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #ff6b78;
}
.mgp-ffl-id__loc {
	margin: 0 0 0.2rem;
	font-size: 0.78rem;
	color: #b0b0b0;
}
.mgp-ffl-id__link {
	margin: 0;
	font-size: 0.75rem;
}
.mgp-ffl-id__link a {
	color: #e0e0e0 !important;
	text-decoration: underline !important;
	text-underline-offset: 2px;
}
.mgp-ffl-id__link a:hover {
	color: #fff !important;
}
.mgp-ffl-id__note {
	margin: 0.45rem 0 0;
	font-size: 0.78rem;
	color: #9a9a9a;
	line-height: 1.45;
}
.mgp-ffl-id--policy {
	padding: 0.35rem 0;
}
.mgp-ffl-id--policy .mgp-ffl-id__name {
	font-size: 1.05rem;
}
.mgp-ffl-id--footer {
	margin-bottom: 0.4rem;
}

.mgp-chrome-footer__tagline,
.mgp-chrome-footer__legal {
	margin: 0 0 0.85rem;
	font-size: 0.85rem;
	line-height: 1.5;
	color: #b0b0b0;
}

.mgp-chrome-footer__col--identity .mgp-chrome-footer__heading {
	margin-top: 0.15rem;
}

.mgp-chrome-footer__follow {
	margin-bottom: 0;
}

.mgp-chrome-footer__bottom-ffl a {
	color: #cfcfcf !important;
	text-decoration: underline !important;
}

.mgp-chrome-footer__heading {
	margin: 0 0 0.55rem;
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #fff;
}

.mgp-chrome-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
}

.mgp-chrome-footer__links a {
	display: inline-block;
	padding: 0.25rem 0;
	color: #e0e0e0 !important;
	text-decoration: none !important;
	font-size: 0.88rem;
}

.mgp-chrome-footer__links a:hover {
	color: #fff !important;
}

.mgp-chrome-footer__canonical {
	color: #8a8a8a;
	font-size: 0.72rem;
}
.mgp-chrome-footer__canonical a {
	color: #cfcfcf !important;
	text-decoration: underline !important;
	text-underline-offset: 2px;
}
.mgp-chrome-footer__www-note {
	color: #6a6a6a;
	font-size: 0.68rem;
	margin-left: 0.2rem;
}

.mgp-chrome-footer__bottom {
	border-top: 1px solid #2e2e2e;
	padding: 0.85rem 1rem;
	text-align: center;
	font-size: 0.78rem;
	color: #9a9a9a;
}

/* ---- WC shell pages (cart / account / checkout) ---- */
.mgp-wc-shell {
	background: #111111 !important;
	color: #e0e0e0 !important;
	min-height: 60vh;
}

.mgp-wc-shell__main {
	max-width: 1100px;
	margin: 0 auto;
	padding: 1.25rem 1rem 2.5rem;
}

.mgp-wc-shell__title {
	margin: 0 0 1rem;
	font-size: 1.6rem;
	font-weight: 800;
	color: #fff !important;
}

.mgp-wc-panel {
	background: #141414;
	border: 1px solid #2e2e2e;
	border-radius: 10px;
	padding: 1.15rem 1.1rem 1.35rem;
	color: #e0e0e0;
	overflow-x: auto;
}

/* Woo tables / forms on dark */
.mgp-wc-panel table.shop_table {
	background: transparent !important;
	border-color: #2e2e2e !important;
	color: #e0e0e0 !important;
}

.mgp-wc-panel table.shop_table th,
.mgp-wc-panel table.shop_table td {
	border-color: #2e2e2e !important;
	color: #e0e0e0 !important;
	background: transparent !important;
}

.mgp-wc-panel a {
	color: #e8e8e8;
}

.mgp-wc-panel .button,
.mgp-wc-panel button.button,
.mgp-wc-panel input.button,
.mgp-wc-panel a.checkout-button,
.mgp-wc-panel .woocommerce-button {
	background: #2b2b2b !important;
	border: 1px solid #3d3d3d !important;
	color: #e0e0e0 !important;
	border-radius: 6px !important;
	font-weight: 700 !important;
}

.mgp-wc-panel .checkout-button,
.mgp-wc-panel .button.alt,
.mgp-wc-panel button.alt {
	background: #e11d2e !important;
	border-color: #e11d2e !important;
	color: #fff !important;
}

.mgp-wc-panel input[type="text"],
.mgp-wc-panel input[type="email"],
.mgp-wc-panel input[type="password"],
.mgp-wc-panel input[type="tel"],
.mgp-wc-panel input[type="number"],
.mgp-wc-panel textarea,
.mgp-wc-panel select {
	background: #1e1e1e !important;
	border: 1px solid #3a3a3a !important;
	color: #e0e0e0 !important;
	border-radius: 6px !important;
}

.mgp-wc-panel .woocommerce-info,
.mgp-wc-panel .woocommerce-message,
.mgp-wc-panel .woocommerce-error {
	background: #1e1e1e !important;
	border-top-color: #e11d2e !important;
	color: #e0e0e0 !important;
}

.mgp-wc-panel .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0 0 1rem;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.mgp-wc-panel .woocommerce-MyAccount-navigation a {
	display: inline-block;
	padding: 0.45rem 0.75rem;
	background: #1e1e1e;
	border: 1px solid #3a3a3a;
	border-radius: 6px;
	color: #e0e0e0 !important;
	text-decoration: none !important;
	font-size: 0.8rem;
	font-weight: 700;
}

.mgp-wc-panel .woocommerce-MyAccount-navigation .is-active a {
	border-color: #e11d2e;
	color: #fff !important;
}

/* Product cards — compact (shop / home / related / upsells share mgp_render_product_card) */
.mgs-card,
ul.products li.product.mgs-card,
ul.products li.product {
	align-items: stretch;
}

.mgs-card__body {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	padding: 0.55rem 0.65rem 0.7rem;
	flex: 1 1 auto;
	min-width: 0;
	min-height: 0;
	overflow: visible;
}

/* Hide telegraph SKU on cards (screen-reader-text only in markup — never visible) */
.mgs-card__sku,
ul.products li.product .sku,
ul.products li.product .product_meta .sku,
.mgp-shop-page .sku,
.mgs-product-grid .sku,
.related ul.products .sku,
.upsells ul.products .sku {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}
.mgs-card__sku:not(.screen-reader-text) {
	display: none !important;
}

/* One-line title + ellipsis — no mid-token wrap (was overflow-wrap:anywhere) */
.mgs-card__title,
.mgs-card__title a,
.woocommerce-loop-product__title,
body.mgp-theme ul.products li.product .woocommerce-loop-product__title,
body.mgp-theme ul.products li.product h2,
body.fs-premium-ui ul.products li.product .woocommerce-loop-product__title,
body.fs-premium-ui .woocommerce ul.products li.product .woocommerce-loop-product__title,
body.woocommerce ul.products li.product .woocommerce-loop-product__title,
.related ul.products li.product .woocommerce-loop-product__title,
.upsells ul.products li.product .woocommerce-loop-product__title,
.mgp-shop-page .mgs-card__title,
.mgp-shop-page .mgs-card__title a,
.mgs-product-grid .mgs-card__title,
.mgs-product-grid .mgs-card__title a {
	display: block !important;
	overflow: hidden !important;
	max-height: none !important;
	min-height: 0 !important;
	height: auto !important;
	white-space: nowrap !important;
	text-overflow: ellipsis !important;
	word-break: normal !important;
	overflow-wrap: normal !important;
	line-height: 1.3 !important;
	font-size: 0.84rem !important;
	font-weight: 700 !important;
	color: #e0e0e0 !important;
	margin: 0 !important;
	padding: 0 !important;
	text-decoration: none !important;
}

.mgs-card__title a:hover,
.woocommerce-loop-product__title a:hover {
	color: #ffffff !important;
}

.mgs-card__price,
.mgs-card__btn {
	flex-shrink: 0;
}

.mgs-card__price,
.mgs-card__price .mgp-price-msrp-wrap {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.25rem 0.4rem;
	min-width: 0;
	overflow: visible;
}

.mgs-card__price .mgp-save {
	white-space: nowrap;
	flex: 0 0 auto;
	max-width: 100%;
}

/* Cards: short Save label; PDP summary keeps full via storefront-premium.css */
.mgs-card .mgp-save__full,
ul.products li.product .mgp-save__full {
	display: none;
}
.mgs-card .mgp-save__short,
ul.products li.product .mgp-save__short {
	display: inline;
}
.summary .mgp-save__short,
.mgp-single-summary .mgp-save__short {
	display: none;
}
.summary .mgp-save__full,
.mgp-single-summary .mgp-save__full {
	display: inline;
}

.mgs-card__status {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.3rem 0.45rem;
	min-width: 0;
}

.mgs-card__status .mgp-badge {
	margin: 0;
	font-size: 0.62rem;
	padding: 0.15rem 0.4rem;
	line-height: 1.2;
}

.mgs-card__btn {
	margin-top: auto;
}

.mgs-card__actions {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	margin-top: auto;
}

.mgs-card__actions .mgs-card__btn {
	width: 100%;
	margin: 0;
	text-align: center;
}

/* Stock quantity on product cards */
.mgs-card__stock {
	margin: 0;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #9a9a9a;
}
.mgs-card__stock--in {
	color: #6ddea0 !important;
}
.mgs-card__stock--low {
	color: #e8c96a !important;
}
.mgs-card__stock--out {
	color: #ff6b78 !important;
}
.mgp-stock {
	display: inline-block;
	margin: 0.25rem 0;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.mgp-stock--in { color: #6ddea0; }
.mgp-stock--low { color: #e8c96a; }
.mgp-stock--out { color: #ff6b78; }

/* Single product dark polish */
.mgp-single-product-shell,
.mgp-single-product {
	max-width: 1200px;
	margin: 0 auto;
	padding: 1.25rem 1rem 2.5rem;
	color: #e0e0e0;
	box-sizing: border-box;
	overflow-x: hidden;
	width: 100%;
}

.mgp-single-product .product,
.mgp-single-product .mgp-single-product-inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
	gap: 1.5rem;
	background: #141414;
	border: 1px solid #2e2e2e;
	border-radius: 12px;
	padding: 1.25rem;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow-x: hidden;
}

.mgp-single-product .mgp-single-gallery,
.mgp-single-product .mgp-single-summary,
.mgp-single-product .summary {
	min-width: 0;
	max-width: 100%;
}

/* Tabs + related/upsells span the full product panel (not one grid column) */
.mgp-single-product .woocommerce-tabs,
.mgp-single-product .related.products,
.mgp-single-product .upsells.products,
.mgp-single-product-inner > .woocommerce-tabs,
.mgp-single-product-inner > .related.products,
.mgp-single-product-inner > .upsells.products {
	grid-column: 1 / -1;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	overflow-x: hidden;
}

@media (max-width: 800px) {
	.mgp-single-product .product,
	.mgp-single-product .mgp-single-product-inner {
		grid-template-columns: 1fr;
	}
}

.mgp-single-product .woocommerce-product-gallery {
	background: #1a1a1a;
	border-radius: 8px;
	padding: 0.75rem;
}

.mgp-single-product .product_title {
	color: #fff !important;
	font-size: clamp(1.35rem, 2.5vw, 1.85rem) !important;
	margin: 0 0 0.65rem !important;
}

.mgp-single-product .price,
.mgp-single-product .price .amount {
	color: #e0e0e0 !important;
	font-size: 1.45rem !important;
	font-weight: 800 !important;
}

.mgp-badge-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin: 0 0 0.75rem;
}

.mgp-badge {
	display: inline-flex;
	align-items: center;
	padding: 0.3rem 0.55rem;
	border-radius: 4px;
	font-size: 0.65rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.mgp-badge--ffl {
	background: rgba(225, 29, 46, 0.18);
	border: 1px solid #e11d2e;
	color: #ff6b78 !important;
}

.mgp-badge--home {
	background: rgba(46, 160, 90, 0.15);
	border: 1px solid #2ea05a;
	color: #6ddea0 !important;
}

.mgp-single-product .stock {
	color: #cfcfcf !important;
	font-weight: 700;
	margin-bottom: 0.75rem;
}

.mgp-single-product .single_add_to_cart_button {
	background: #e11d2e !important;
	border: 1px solid #e11d2e !important;
	color: #fff !important;
	font-weight: 800 !important;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 0.85rem 1.4rem !important;
	border-radius: 8px !important;
	min-height: 3rem;
}

.mgp-single-product .quantity .qty {
	background: #1e1e1e !important;
	border: 1px solid #3a3a3a !important;
	color: #e0e0e0 !important;
	border-radius: 6px !important;
}

.mgp-single-product .woocommerce-tabs {
	margin-top: 1.5rem;
	background: #141414;
	border: 1px solid #2e2e2e;
	border-radius: 10px;
	padding: 1rem;
}

.mgp-single-product .woocommerce-tabs ul.tabs {
	padding: 0 !important;
	margin: 0 0 1rem !important;
	border-bottom: 1px solid #2e2e2e !important;
}

.mgp-single-product .woocommerce-tabs ul.tabs li {
	background: #1e1e1e !important;
	border: 1px solid #3a3a3a !important;
	border-radius: 6px 6px 0 0 !important;
	margin-right: 0.35rem !important;
}

.mgp-single-product .woocommerce-tabs ul.tabs li a {
	color: #e0e0e0 !important;
}

.mgp-single-product .woocommerce-tabs ul.tabs li.active {
	border-color: #e11d2e !important;
}

.mgp-single-product .woocommerce-product-attributes,
.mgp-single-product .shop_attributes {
	color: #e0e0e0;
}

.mgp-single-product .woocommerce-product-attributes th,
.mgp-single-product .shop_attributes th {
	color: #cfcfcf !important;
	background: #1a1a1a !important;
}

.mgp-single-product .woocommerce-product-attributes td,
.mgp-single-product .shop_attributes td {
	color: #e0e0e0 !important;
	background: #141414 !important;
}

.mgp-single-product .related.products,
.mgp-single-product .upsells.products {
	margin-top: 2rem;
	padding: 0;
}

.mgp-single-product .related > h2,
.mgp-single-product .upsells > h2 {
	color: #fff !important;
	font-size: 1.2rem;
	margin-bottom: 0.85rem;
}

/* Related / upsell grid stays inside the product border */
.mgp-single-product .related ul.products,
.mgp-single-product .upsells ul.products,
body.single-product .related ul.products,
body.single-product .upsells ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: 0.85rem !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	box-sizing: border-box;
	overflow-x: hidden;
}

.mgp-single-product .related ul.products::before,
.mgp-single-product .related ul.products::after,
.mgp-single-product .upsells ul.products::before,
.mgp-single-product .upsells ul.products::after {
	display: none !important;
	content: none !important;
}

.mgp-single-product .related ul.products li.product,
.mgp-single-product .upsells ul.products li.product,
body.single-product .related ul.products li.product,
body.single-product .upsells ul.products li.product {
	float: none !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	margin: 0 !important;
	box-sizing: border-box !important;
	overflow: hidden !important;
}

@media (max-width: 1100px) {
	.mgp-single-product .related ul.products,
	.mgp-single-product .upsells ul.products,
	body.single-product .related ul.products,
	body.single-product .upsells ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 768px) {
	.mgp-single-product .related ul.products,
	.mgp-single-product .upsells ul.products,
	body.single-product .related ul.products,
	body.single-product .upsells ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 0.65rem !important;
	}
}

.mgp-ffl-notice {
	margin: 0.75rem 0 1rem;
	padding: 0.75rem 0.85rem;
	border-radius: 8px;
	background: rgba(225, 29, 46, 0.1);
	border: 1px solid #5a1a22;
	color: #e0e0e0;
	font-size: 0.9rem;
	line-height: 1.45;
}

.mgp-ffl-notice strong {
	color: #ff6b78;
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

/* ============================================================
   Category mega-nav (Firearms / Optics / Ammo / Gear)
   Sits under the primary chrome header on every page.
   IMPORTANT: overflow must stay visible so absolute dropdowns
   are not clipped (overflow-x:auto forces overflow-y:auto).
   ============================================================ */
.mgp-catnav {
	background: #0a0a0a;
	border-top: 1px solid #1f1f1f;
	border-bottom: 1px solid #2e2e2e;
	overflow: visible;
	position: relative;
	z-index: 5;
}

.mgp-catnav__inner {
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 0.35rem;
	overflow: visible;
	position: relative;
	z-index: 5;
}

.mgp-catnav__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: 0;
	/* Do NOT use overflow-x:auto here — it clips absolute dropdowns. */
	overflow: visible;
	position: relative;
	z-index: 5;
}

.mgp-catnav__item {
	position: relative;
	flex: 0 0 auto;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	z-index: 1;
}

.mgp-catnav__row {
	display: flex;
	flex-direction: row;
	align-items: stretch;
	width: 100%;
	min-height: 40px;
}

/* Open/hover chip must beat sibling cards so the mega panel is not covered */
.mgp-catnav__item.is-open,
.mgp-catnav__item:hover,
.mgp-catnav__item:focus-within {
	z-index: 50;
}

.mgp-catnav__trigger {
	display: inline-flex;
	flex: 1 1 auto;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	gap: 0.1rem;
	padding: 0.45rem 0.75rem;
	color: #e0e0e0 !important;
	text-decoration: none !important;
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	white-space: nowrap;
	border-bottom: 2px solid transparent;
	transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}

.mgp-catnav__trigger:hover,
.mgp-catnav__item.is-open .mgp-catnav__trigger,
.mgp-catnav__item:focus-within .mgp-catnav__trigger {
	color: #ffffff !important;
	border-bottom-color: #e11d2e;
	background: rgba(225, 29, 46, 0.06);
}

.mgp-catnav__label {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.mgp-catnav__hint {
	display: block;
	font-size: 0.62rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: none;
	color: #9a9a9a;
}

.mgp-catnav--compact .mgp-catnav__trigger {
	flex-direction: row;
	align-items: center;
	padding: 0.35rem 0.55rem;
	font-size: 0.66rem;
}

.mgp-catnav--compact .mgp-catnav__hint {
	display: none;
}

.mgp-catnav--compact .mgp-catnav__toggle {
	width: 32px;
}

/* Hide caret inside the trigger link (toggle button owns the caret). */
.mgp-catnav__trigger > .mgp-catnav__caret {
	display: none;
}

.mgp-catnav__caret {
	display: inline-block;
	width: 0;
	height: 0;
	margin-left: 0;
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
	border-top: 5px solid #8a8a8a;
	vertical-align: middle;
	transition: transform 0.15s ease, border-top-color 0.15s ease;
}

.mgp-catnav__item.is-open .mgp-catnav__caret,
.mgp-catnav__item:hover .mgp-catnav__caret {
	border-top-color: #e11d2e;
}

.mgp-catnav__item.is-open .mgp-catnav__caret {
	transform: rotate(180deg);
}

/* Chevron always visible — opens dropdown without navigating */
.mgp-catnav__toggle {
	display: inline-flex !important;
	flex: 0 0 40px;
	align-items: center;
	justify-content: center;
	width: 40px;
	min-width: 40px;
	min-height: 40px;
	margin: 0;
	padding: 0;
	border: 0;
	border-left: 1px solid #2a2a2a;
	background: rgba(255, 255, 255, 0.03);
	color: #e8e8e8;
	cursor: pointer;
	pointer-events: auto;
	z-index: 2;
	-webkit-tap-highlight-color: transparent;
}

/* Only items with real multi-child menus get a caret */
.mgp-catnav__item:not(.has-children) .mgp-catnav__toggle {
	display: none !important;
}

.mgp-catnav__toggle:hover,
.mgp-catnav__toggle:focus {
	background: rgba(225, 29, 46, 0.08);
	outline: none;
}

.mgp-catnav__toggle .mgp-catnav__caret {
	margin-left: 0;
}

/* Dropdown panel — open via .is-open (JS) or CSS hover backup */
.mgp-catnav__dropdown {
	list-style: none;
	margin: 0;
	padding: 0.35rem 0;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 240px;
	max-width: min(320px, 92vw);
	background: #141414;
	border: 1px solid #2e2e2e;
	border-radius: 0 0 8px 8px;
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.55);
	/* Within open item (z-index 50); header stack is 4000 so panel clears shop chips/rail */
	z-index: 60;
	opacity: 0;
	visibility: hidden;
	transform: translateY(4px);
	pointer-events: none;
	transition: opacity 0.12s ease, transform 0.12s ease, visibility 0.12s;
	display: block; /* keep in layout tree; visibility/opacity control show */
}

/*
 * Open state is JS-driven (.is-open) only — no CSS :hover open.
 * Instant :hover open fought delayed JS close and felt twitchy.
 * Keyboard: .is-open is set on focusin in site-chrome.js.
 */
.mgp-catnav__item.is-open > .mgp-catnav__dropdown {
	opacity: 1 !important;
	visibility: visible !important;
	transform: translateY(0) !important;
	pointer-events: auto !important;
}

/* Overlay only — never pad the bar / push the page when open. */
.mgp-catnav__dropdown {
	z-index: 5000;
}

.mgp-catnav__dropdown li a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.55rem 0.95rem;
	color: #e0e0e0 !important;
	text-decoration: none !important;
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	text-transform: none;
	white-space: nowrap;
}

.mgp-catnav__dropdown li a:hover,
.mgp-catnav__dropdown li a:focus {
	background: #1e1e1e;
	color: #ffffff !important;
	outline: none;
}

.mgp-catnav__dropdown-head a {
	font-size: 0.72rem !important;
	font-weight: 800 !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	color: #ffffff !important;
	border-bottom: 1px solid #2e2e2e;
	margin-bottom: 0.15rem;
	padding-bottom: 0.65rem !important;
}

.mgp-catnav__count {
	flex: 0 0 auto;
	font-size: 0.7rem;
	font-weight: 700;
	color: #8a8a8a;
	background: #1a1a1a;
	border: 1px solid #2e2e2e;
	border-radius: 999px;
	padding: 0.1rem 0.45rem;
	min-width: 1.5rem;
	text-align: center;
}

.mgp-catnav__item--shop .mgp-catnav__trigger {
	color: #ff6b78 !important;
}

.mgp-catnav__item--shop .mgp-catnav__trigger:hover {
	color: #ffffff !important;
}

/* Default (home launch-pad) variant — desktop only card grid with hints */
.mgp-catnav:not(.mgp-catnav--compact) .mgp-catnav__list {
	flex-wrap: wrap;
	overflow: visible;
}

.mgp-catnav:not(.mgp-catnav--compact) .mgp-catnav__item {
	flex: 1 1 auto;
	min-width: 140px;
	/* Keep cards from clipping their own mega panel */
	overflow: visible;
}

.mgp-catnav:not(.mgp-catnav--compact) .mgp-catnav__item.is-open,
.mgp-catnav:not(.mgp-catnav--compact) .mgp-catnav__item:hover,
.mgp-catnav:not(.mgp-catnav--compact) .mgp-catnav__item:focus-within {
	z-index: 80;
}

.mgp-catnav:not(.mgp-catnav--compact) .mgp-catnav__trigger {
	width: 100%;
	padding: 0.85rem 1rem;
	background: #141414;
	border: 1px solid #2e2e2e;
	border-radius: 6px;
	margin: 0.35rem 0.25rem;
	border-bottom-width: 1px;
}

.mgp-catnav:not(.mgp-catnav--compact) .mgp-catnav__trigger:hover {
	border-color: #e11d2e;
	background: #1a1a1a;
}

.mgp-catnav:not(.mgp-catnav--compact) .mgp-catnav__dropdown {
	left: 0.25rem;
	right: 0.25rem;
	min-width: 0;
	max-width: none;
	border-radius: 0 0 8px 8px;
	z-index: 90;
}

/* Drawer category accordion — desktop: hide (compact bar owns categories) */
.mgp-drawer-cats {
	display: none;
}

/* ============================================================
   Mobile / tablet (≤900px)
   - Hide home launch-pad cards + horizontal chip bar
   - Full category tree lives in hamburger drawer (vertical accordion)
   ============================================================ */
@media (max-width: 900px) {
	/* Duplicate large card grid under hero — hide on small screens */
	.mgs-home-catnav,
	section.mgs-home-catnav,
	.mgp-catnav:not(.mgp-catnav--compact) {
		display: none !important;
	}

	/* Kill horizontal scrolling category chips — highest specificity wins over home-premium.css */
	html body .mgp-chrome-header .mgp-catnav,
	html body .mgp-chrome-header .mgp-catnav--compact,
	html body .mgp-catnav--compact,
	html body header .mgp-catnav--compact {
		display: none !important;
		visibility: hidden !important;
		height: 0 !important;
		max-height: 0 !important;
		overflow: hidden !important;
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
		pointer-events: none !important;
	}

	.mgp-chrome-header {
		overflow: visible !important;
	}

	/* ---- Mobile drawer category accordion ---- */
	.mgp-drawer-cats {
		display: block !important;
		position: relative;
		z-index: 1;
		margin-top: 0.75rem;
		padding-top: 0.75rem;
		border-top: 1px solid #2e2e2e;
		overflow: hidden;
	}
	.mgp-drawer-cats__heading {
		margin: 0 0 0.45rem;
		padding: 0 0.65rem;
		font-size: 0.68rem;
		font-weight: 800;
		letter-spacing: 0.1em;
		text-transform: uppercase;
		color: #9a9a9a;
	}
	.mgp-drawer-cats__list {
		list-style: none;
		margin: 0;
		padding: 0;
		position: relative;
	}
	.mgp-drawer-cat {
		position: relative;
		border-bottom: 1px solid #222;
		overflow: hidden;
	}
	.mgp-drawer-cat__row {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: stretch !important;
		position: relative !important;
		width: 100%;
		min-height: 48px;
		float: none !important;
	}
	.mgp-drawer-cat__link {
		flex: 1 1 auto !important;
		display: flex !important;
		align-items: center;
		position: relative !important;
		float: none !important;
		left: auto !important;
		right: auto !important;
		top: auto !important;
		width: auto !important;
		min-height: 48px;
		padding: 0.75rem 0.65rem;
		color: #e8e8e8 !important;
		text-decoration: none !important;
		font-size: 0.9rem;
		font-weight: 700;
		box-sizing: border-box;
	}
	.mgp-drawer-cat__link:hover,
	.mgp-drawer-cat__link:focus {
		background: #1e1e1e;
		color: #fff !important;
		outline: none;
	}
	/* Dedicated drawer caret — 48px touch row, ~28px visual chevron (no pill/oval) */
	.mgp-drawer-cat__toggle {
		position: relative !important;
		float: none !important;
		left: auto !important;
		right: auto !important;
		top: auto !important;
		bottom: auto !important;
		inset: auto !important;
		transform: none !important;
		flex: 0 0 48px !important;
		width: 48px !important;
		min-width: 48px !important;
		max-width: 48px !important;
		height: auto !important;
		min-height: 48px !important;
		align-self: stretch !important;
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
		border-radius: 0 !important;
		border-left: 1px solid #2a2a2a !important;
		background: transparent !important;
		background-image: none !important;
		box-shadow: none !important;
		outline: none !important;
		appearance: none !important;
		-webkit-appearance: none !important;
		color: #cfcfcf;
		cursor: pointer;
		-webkit-tap-highlight-color: transparent;
		box-sizing: border-box;
		z-index: 1 !important;
	}
	.mgp-drawer-cat__toggle:hover,
	.mgp-drawer-cat__toggle:focus {
		background: rgba(225, 29, 46, 0.08) !important;
		outline: none;
	}
	/* Kill CSS-triangle / pill styles; use a clean 28×28 chevron via ::after */
	.mgp-drawer-cat__caret {
		display: block !important;
		position: relative !important;
		float: none !important;
		width: 28px !important;
		height: 28px !important;
		min-width: 28px !important;
		min-height: 28px !important;
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
		border-radius: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
		transform: none !important;
	}
	.mgp-drawer-cat__caret::after {
		content: "" !important;
		position: absolute !important;
		left: 50% !important;
		top: 46% !important;
		width: 9px !important;
		height: 9px !important;
		margin: 0 !important;
		border: 0 !important;
		border-right: 2px solid #9a9a9a !important;
		border-bottom: 2px solid #9a9a9a !important;
		background: transparent !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		transform: translate(-50%, -50%) rotate(45deg) !important;
		transition: transform 0.15s ease, border-color 0.15s ease;
	}
	.mgp-drawer-cat.is-open .mgp-drawer-cat__caret::after {
		border-color: #e11d2e !important;
		transform: translate(-50%, -40%) rotate(225deg) !important;
	}
	.mgp-drawer-cat__children {
		list-style: none;
		margin: 0;
		padding: 0 0 0.35rem;
		background: #121212;
		border-top: 1px solid #1f1f1f;
		clear: both;
	}
	.mgp-drawer-cat__children[hidden] {
		display: none !important;
	}
	.mgp-drawer-cat__children a {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 0.5rem;
		min-height: 44px;
		padding: 0.65rem 0.85rem 0.65rem 1.25rem;
		color: #d0d0d0 !important;
		text-decoration: none !important;
		font-size: 0.86rem;
		font-weight: 600;
		box-sizing: border-box;
	}
	.mgp-drawer-cat__children a:hover,
	.mgp-drawer-cat__children a:focus {
		background: #1a1a1a;
		color: #fff !important;
		outline: none;
	}
	.mgp-drawer-cat--shop .mgp-drawer-cat__link {
		color: #e11d2e !important;
	}

	/* Legacy compact list rules kept inert (bar hidden) — avoid H-scroll regressions */
	.mgp-catnav--compact .mgp-catnav__list {
		display: flex;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: stretch;
		width: 100%;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		gap: 0;
	}

	.mgp-catnav--compact .mgp-catnav__list::-webkit-scrollbar {
		height: 3px;
	}
	.mgp-catnav--compact .mgp-catnav__list::-webkit-scrollbar-thumb {
		background: #3a3a3a;
		border-radius: 2px;
	}

	/* Each chip: trigger + chevron only (dropdown is positioned on bar) */
	.mgp-catnav--compact .mgp-catnav__item,
	.mgp-catnav--compact .mgp-catnav__item.has-children,
	.mgp-catnav--compact .mgp-catnav__item.is-open,
	.mgp-catnav--compact .mgp-catnav__item--shop {
		position: static !important; /* dropdown anchors to .mgp-catnav--compact */
		display: flex;
		flex-direction: row;
		flex-wrap: nowrap !important;
		flex: 0 0 auto !important;
		width: auto !important;
		min-width: 0 !important;
		max-width: none !important;
		margin: 0 !important;
		border-right: 1px solid #1f1f1f !important;
		border-bottom: 0 !important;
		background: transparent;
		float: none !important;
		left: auto !important;
		right: auto !important;
		top: auto !important;
		transform: none !important;
	}

	.mgp-catnav--compact .mgp-catnav__item.has-children > .mgp-catnav__trigger,
	.mgp-catnav--compact .mgp-catnav__item--shop .mgp-catnav__trigger {
		flex: 0 0 auto;
		width: auto;
		min-width: 0;
		margin: 0;
		padding: 0.42rem 0.5rem 0.42rem 0.65rem;
		background: transparent;
		border: 0;
		border-radius: 0;
		font-size: 0.62rem;
		letter-spacing: 0.08em;
		line-height: 1.2;
		white-space: nowrap;
	}

	.mgp-catnav--compact .mgp-catnav__item.is-open > .mgp-catnav__trigger {
		color: #fff !important;
		box-shadow: inset 0 -2px 0 #e11d2e;
		background: rgba(225, 29, 46, 0.08);
	}

	.mgp-catnav--compact .mgp-catnav__toggle {
		display: inline-flex !important;
		width: 36px;
		min-height: 36px;
		flex: 0 0 36px;
		border-left: 1px solid #1f1f1f;
		align-self: stretch;
	}

	/* Full-width panel under the chip bar (not floating over filters) */
	.mgp-catnav--compact .mgp-catnav__dropdown {
		position: absolute !important;
		top: 100% !important;
		left: 0 !important;
		right: 0 !important;
		float: none !important;
		min-width: 0 !important;
		max-width: none !important;
		width: 100% !important;
		max-height: min(42vh, 260px);
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		border-radius: 0;
		border: 0;
		border-bottom: 1px solid #2e2e2e;
		box-shadow: 0 10px 24px rgba(0, 0, 0, 0.55) !important;
		background: #141414;
		margin: 0;
		padding: 0.2rem 0 0.35rem;
		transform: none !important;
		display: none !important;
		opacity: 1 !important;
		visibility: visible !important;
		pointer-events: auto !important;
		z-index: 1100 !important;
	}

	.mgp-catnav--compact .mgp-catnav__item.is-open > .mgp-catnav__dropdown {
		display: block !important;
	}

	/* JS .is-open only on touch — kill hover flash */
	.mgp-catnav--compact .mgp-catnav__item.has-children:hover > .mgp-catnav__dropdown {
		display: none !important;
	}
	.mgp-catnav--compact .mgp-catnav__item.has-children.is-open:hover > .mgp-catnav__dropdown,
	.mgp-catnav--compact .mgp-catnav__item.has-children.is-open > .mgp-catnav__dropdown {
		display: block !important;
	}

	.mgp-catnav--compact .mgp-catnav__dropdown li a {
		padding: 0.55rem 0.9rem;
		font-size: 0.82rem;
		white-space: normal;
	}

	.mgp-catnav--compact .mgp-catnav__dropdown-head a {
		padding: 0.5rem 0.9rem 0.55rem !important;
	}
}

@media (max-width: 520px) {
	.mgp-catnav--compact .mgp-catnav__item.has-children > .mgp-catnav__trigger,
	.mgp-catnav--compact .mgp-catnav__item--shop .mgp-catnav__trigger {
		padding: 0.4rem 0.45rem 0.4rem 0.55rem;
		font-size: 0.6rem;
	}

	.mgp-catnav--compact .mgp-catnav__toggle {
		width: 34px;
		min-height: 34px;
		flex-basis: 34px;
	}
}

/* ============================================================
   Unified chrome parity — EVERY page (Shop, FFL, Contact, About, Policy)
   Desktop: same sticky header + compact category bar + dropdowns
   Mobile: chip bar crushed in mobile.css; drawer categories stay
   Content pages: same dark shell under chrome (no “left the store” feel)
   ============================================================ */

/* Desktop: force compact category bar on all unified-chrome pages (not only .mgp-home). */
@media (min-width: 901px) {
	html body.mgp-theme .mgp-chrome-header .mgp-catnav--compact,
	html body.mgp-unified-chrome .mgp-chrome-header .mgp-catnav--compact,
	html body.mgp-content-chrome .mgp-chrome-header .mgp-catnav--compact,
	html body.page .mgp-chrome-header .mgp-catnav--compact,
	html body.woocommerce-shop .mgp-chrome-header .mgp-catnav--compact,
	html body.archive .mgp-chrome-header .mgp-catnav--compact,
	html body.single-product .mgp-chrome-header .mgp-catnav--compact {
		display: block !important;
		visibility: visible !important;
		height: auto !important;
		max-height: none !important;
		overflow: visible !important;
		pointer-events: auto !important;
		position: relative !important;
		left: auto !important;
		opacity: 1 !important;
		clip: auto !important;
		clip-path: none !important;
		width: auto !important;
		max-width: none !important;
		z-index: 6 !important;
	}

	/* Compact desktop: keep items positioned so open chip elevates above siblings */
	html body .mgp-chrome-header .mgp-catnav--compact .mgp-catnav__list {
		overflow: visible !important;
	}

	html body .mgp-chrome-header .mgp-catnav--compact .mgp-catnav__item,
	html body .mgp-chrome-header .mgp-catnav--compact .mgp-catnav__item.has-children {
		position: relative !important;
		overflow: visible !important;
	}

	html body .mgp-chrome-header .mgp-catnav--compact .mgp-catnav__item.is-open,
	html body .mgp-chrome-header .mgp-catnav--compact .mgp-catnav__item:hover,
	html body .mgp-chrome-header .mgp-catnav--compact .mgp-catnav__item:focus-within {
		z-index: 80 !important;
	}

	html body .mgp-chrome-header .mgp-catnav--compact .mgp-catnav__dropdown {
		z-index: 90 !important;
		/* Prefer panel under the open chip, not clipped by the chip row */
		top: 100% !important;
	}
}

/* Content / policy shells: transparent so body --mgp-page-fade shows (NOT flat #111). */
body.mgp-content-chrome .mgs-content-shell,
body.mgp-content-chrome .fs-premium-shell,
body.mgp-content-chrome .mgp-ffl-page,
body.mgp-about-page .mgs-content-shell,
body.mgp-content-chrome .mgp-content-hero,
body.mgp-content-chrome .mgp-ffl-hero {
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	color: #e0e0e0 !important;
	min-height: 50vh;
}

body.mgp-content-chrome .mgp-chrome-header,
body.mgp-about-page .mgp-chrome-header,
body.mgp-unified-chrome .mgp-chrome-header,
body.mgp-theme .mgp-chrome-header,
body.mgp-shop-shell .mgp-chrome-header {
	/* Keep identical sticky header treatment as Shop / Home; above shop rail */
	position: sticky !important;
	top: 0 !important;
	z-index: 4000 !important;
	background: #0c0c0c !important;
	border-bottom: 1px solid #2e2e2e !important;
}

/* Never paint shop filter chrome on pure content pages */
body.mgp-content-chrome .mgp-shop-filter-bar,
body.mgp-content-chrome .mgp-shop-filter-toggle,
body.mgp-content-chrome .mgp-shop-sidebar,
body.mgp-content-chrome .mgp-sticky-atc,
body.mgp-about-page .mgp-shop-filter-bar,
body.mgp-about-page .mgp-sticky-atc {
	display: none !important;
}

/* Product card image shell — reserve space so R2 404s don’t collapse the grid */
.mgs-card__media,
ul.products li.product .mgs-card__media,
ul.products li.product a.woocommerce-LoopProduct-link {
	position: relative;
}
ul.products li.product img.mgp-r2-img,
ul.products li.product img.mgs-card__img,
.mgs-card__img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	background: #161616;
}
ul.products li.product img.mgp-r2-img[data-r2-dead="1"],
.mgs-card__img[data-r2-dead="1"] {
	opacity: 0 !important;
}
.mgs-card__img--placeholder,
.mgp-no-photo {
	display: flex !important;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
	width: 100%;
	background: #161616;
	border: 1px solid #2a2a2a;
	color: #8a8a8a;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
/* Behind R2 <img> until load fails — then becomes the visible tile */
.mgp-r2-media {
	display: block;
	position: relative;
	width: 100%;
	aspect-ratio: 1 / 1;
	background: #161616;
	overflow: hidden;
}
.mgp-r2-media > img.mgp-r2-img {
	position: relative;
	z-index: 2;
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.mgp-r2-media__fallback {
	position: absolute !important;
	inset: 0;
	z-index: 1;
	border: 0 !important;
	aspect-ratio: auto !important;
}
.mgp-r2-media.is-r2-dead > img.mgp-r2-img,
.mgp-r2-media > img.mgp-r2-img[data-r2-dead="1"] {
	opacity: 0 !important;
	visibility: hidden !important;
}
.mgp-r2-media.is-r2-dead .mgp-r2-media__fallback,
.mgp-r2-media:has(> img.mgp-r2-img[data-r2-dead="1"]) .mgp-r2-media__fallback {
	z-index: 3;
	opacity: 1 !important;
	visibility: visible !important;
}
