/*!
 * TVS Homepage Builder — Frontend v2.0
 * Tactical/stencil core, gold-accent polish.
 * Inherits theme tokens: --red, --black, --gold, --camo1..3, --H, --B
 */

@import url('https://fonts.googleapis.com/css2?family=Black+Ops+One&family=Stardos+Stencil:wght@400;700&display=swap');
/* NOTE: Fonts are also enqueued via PHP (wp_enqueue_style 'tvs-hb-fonts') so
   that CSS minify/combine plugins can't break this @import. The @import is a
   fallback for when the plugin CSS is used standalone. */

.tvs-hb {
	color: #fff;
	--stencil: 'Stardos Stencil', 'Oswald', sans-serif;
	--mil: 'Black Ops One', 'Oswald', sans-serif;
}
.tvs-hb *, .tvs-hb *::before, .tvs-hb *::after { box-sizing: border-box; }

/* Section reveal animation — first section starts visible */
.tvs-hb section { opacity: 1; transform: none; transition: opacity .8s ease, transform .8s ease; }
.tvs-hb section.tvs-hb-revealable { opacity: 0; transform: translateY(20px); }
.tvs-hb section.tvs-hb-revealable.is-visible { opacity: 1; transform: translateY(0); }

/* ============================================================
 * Camo intro/outro boxes — battle-worn intel briefing look
 * ==========================================================*/
.tvs-hb__camo {
	padding: 40px 48px;
	position: relative;
	background-color: #0d0d0d;
	background-image:
		linear-gradient(135deg, rgba(45,59,30,.9), rgba(13,13,13,.95)),
		repeating-linear-gradient(45deg, transparent 0, transparent 20px, rgba(201,160,32,.03) 20px, rgba(201,160,32,.03) 40px);
	border-top: 3px double var(--gold);
	border-bottom: 3px double var(--gold);
}
.tvs-hb__camo--top { border-top: none; }
.tvs-hb__camo--bottom { border-bottom: none; margin-top: 0; }
.tvs-hb__camo::before, .tvs-hb__camo::after {
	content: '★ ★ ★';
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	color: var(--gold);
	font-size: .7rem;
	letter-spacing: 1.5em;
	background: var(--black);
	padding: 0 18px;
}
.tvs-hb__camo::before { top: -8px; }
.tvs-hb__camo::after { bottom: -8px; }
.tvs-hb__camo--top::before, .tvs-hb__camo--bottom::after { display: none; }

.tvs-hb__camo-inner {
	max-width: 1100px;
	margin: 0 auto;
	font-size: 1.05rem;
	line-height: 1.7;
	letter-spacing: .015em;
	text-align: center;
	font-family: var(--B);
}
.tvs-hb__camo-inner p { margin: 0; color: #e8e0c5; }
.tvs-hb__camo-inner strong {
	font-family: var(--mil);
	letter-spacing: .12em;
	color: var(--gold);
	display: inline;
	margin-right: 6px;
	font-weight: 400;
	font-size: 1.08em;
}

/* ============================================================
 * Hero slider — cinematic, parallax-style
 * ==========================================================*/
.tvs-hb__hero {
	position: relative;
	overflow: hidden;
	background: #000;
	height: 640px;
}
/* SVG stars overlay */
.tvs-hb__svg-stars {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 4;
	animation: tvsHbStarTwinkle 4s ease-in-out infinite alternate;
}
/* SVG flag stripes at hero bottom */
.tvs-hb__svg-stripes {
	position: absolute;
	left: 0; right: 0; bottom: 0;
	width: 100%;
	height: 32px;
	pointer-events: none;
	z-index: 4;
}
/* Subtle scanline overlay for tactical feel */
.tvs-hb__hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: repeating-linear-gradient(0deg, rgba(0,0,0,0) 0, rgba(0,0,0,0) 2px, rgba(0,0,0,.04) 2px, rgba(0,0,0,.04) 3px);
	pointer-events: none;
	z-index: 5;
}
.tvs-hb__hero-track {
	position: relative;
	width: 100%;
	height: 100%;
}
.tvs-hb__slide {
	position: absolute;
	inset: 0;
	background-color: #0d0d0d;
	background-size: cover;
	background-position: center;
	opacity: 0;
	transform: scale(1.05);
	transition: opacity .9s ease, transform 8s ease-out;
	pointer-events: none;
	display: flex;
	align-items: center;
	z-index: 1;
}
.tvs-hb__slide.is-active {
	opacity: 1;
	transform: scale(1);
	pointer-events: auto;
	z-index: 2;
}

/* Default slide background pattern (when no image set) */
.tvs-hb__slide:not([style*="background-image"]) {
	background-image:
		radial-gradient(ellipse at 20% 30%, rgba(204,0,0,.4), transparent 60%),
		radial-gradient(ellipse at 80% 70%, rgba(201,160,32,.3), transparent 55%),
		linear-gradient(135deg, #0d0d0d, #2a1818);
}

@keyframes tvsHbStarTwinkle {
	from { opacity: .55; }
	to   { opacity: 1; }
}

.tvs-hb__slide-inner {
	position: relative;
	z-index: 5;
	max-width: 760px;
	padding: 50px 60px;
	margin-left: 80px;
}
.tvs-hb__slide.is-active .tvs-hb__slide-inner > * {
	animation: tvsHbStaggerIn .9s ease-out both;
}
.tvs-hb__slide.is-active .tvs-hb__slide-inner > *:nth-child(1) { animation-delay: .1s; }
.tvs-hb__slide.is-active .tvs-hb__slide-inner > *:nth-child(2) { animation-delay: .25s; }
.tvs-hb__slide.is-active .tvs-hb__slide-inner > *:nth-child(3) { animation-delay: .4s; }
.tvs-hb__slide.is-active .tvs-hb__slide-inner > *:nth-child(4) { animation-delay: .55s; }
.tvs-hb__slide.is-active .tvs-hb__slide-inner > *:nth-child(5) { animation-delay: .7s; }
@keyframes tvsHbStaggerIn {
	from { opacity: 0; transform: translateY(36px); }
	to   { opacity: 1; transform: translateY(0); }
}

.tvs-hb__eyebrow {
	display: inline-block;
	font-family: var(--mil);
	font-size: .82rem;
	letter-spacing: .28em;
	color: #fff;
	text-transform: uppercase;
	margin-bottom: 18px;
	padding: 6px 14px;
	background: var(--red);
	clip-path: polygon(0 0, 100% 0, 96% 100%, 4% 100%);
}

.tvs-hb__headline {
	font-family: var(--mil);
	font-size: clamp(2.4rem, 5vw, 4.8rem);
	font-weight: 400;
	line-height: 1;
	text-transform: uppercase;
	letter-spacing: .015em;
	color: #fff;
	margin: 0 0 22px 0;
	text-shadow: 0 4px 20px rgba(0,0,0,.7), 0 0 60px rgba(204,0,0,.4);
	-webkit-text-stroke: 1px rgba(255,255,255,.05);
}
.tvs-hb__subcopy {
	font-family: var(--B);
	font-size: 1.1rem;
	line-height: 1.6;
	color: #e8e8e8;
	margin: 0 0 28px 0;
	max-width: 560px;
	font-weight: 300;
	letter-spacing: .015em;
}
.tvs-hb__cta {
	display: inline-block;
	padding: 16px 38px !important;
	font-family: var(--mil) !important;
	letter-spacing: .14em !important;
	font-size: .95rem !important;
	font-weight: 400 !important;
	background: var(--red);
	color: #fff !important;
	text-decoration: none;
	position: relative;
	overflow: hidden;
	transition: background .3s, letter-spacing .3s;
	clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
}
.tvs-hb__cta:hover {
	background: var(--gold);
	color: #0d0d0d !important;
	letter-spacing: .18em !important;
}

/* 250th-birthday slide */
.tvs-hb__slide--250:not([style*="background-image"]) {
	background-image:
		linear-gradient(135deg, rgba(204,0,0,.6) 0%, rgba(13,13,13,.85) 50%, rgba(0,40,104,.6) 100%);
}
.tvs-hb__slide--250 .tvs-hb__eyebrow {
	background: var(--gold);
	color: #0d0d0d;
}

/* Countdown */
.tvs-hb__countdown {
	display: flex;
	gap: 14px;
	margin: 6px 0 26px;
}
.tvs-hb__cd-cell {
	background: rgba(13,13,13,.75);
	border: 2px solid var(--gold);
	padding: 12px 16px;
	min-width: 78px;
	text-align: center;
	font-family: var(--mil);
	position: relative;
}
.tvs-hb__cd-cell::before {
	content: '';
	position: absolute;
	top: -4px; left: -4px; right: -4px; bottom: -4px;
	border: 1px solid rgba(201,160,32,.3);
	pointer-events: none;
}
.tvs-hb__cd-cell span {
	display: block;
	font-size: 2rem;
	color: var(--gold);
	line-height: 1;
}
.tvs-hb__cd-cell em {
	display: block;
	font-style: normal;
	font-size: .65rem;
	letter-spacing: .18em;
	color: #ccc;
	margin-top: 8px;
	text-transform: uppercase;
	font-family: var(--B);
}

/* Slider controls */
.tvs-hb__hero-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 54px; height: 54px;
	background: rgba(0,0,0,.55);
	border: 2px solid rgba(255,255,255,.2);
	color: #fff;
	font-size: 1.2rem;
	cursor: pointer;
	z-index: 6;
	transition: all .3s;
	font-family: var(--mil);
	clip-path: polygon(15% 0, 100% 0, 85% 100%, 0 100%);
}
.tvs-hb__hero-arrow:hover {
	background: var(--red);
	border-color: var(--red);
	transform: translateY(-50%) scale(1.08);
}
.tvs-hb__hero-arrow--prev { left: 24px; }
.tvs-hb__hero-arrow--next { right: 24px; }
.tvs-hb__hero-pp {
	position: absolute;
	top: 24px; right: 24px;
	width: 38px; height: 38px;
	background: rgba(0,0,0,.6);
	border: 2px solid rgba(255,255,255,.25);
	color: #fff;
	font-size: .75rem;
	cursor: pointer;
	z-index: 6;
}
.tvs-hb__hero-pp:hover { background: var(--red); border-color: var(--red); }

.tvs-hb__hero-dots {
	position: absolute;
	bottom: 28px; left: 50%;
	transform: translateX(-50%);
	display: flex;
	gap: 14px;
	z-index: 6;
}
.tvs-hb__dot {
	width: 36px; height: 4px;
	background: rgba(255,255,255,.35);
	border: none;
	cursor: pointer;
	padding: 0;
	transition: all .3s;
}
.tvs-hb__dot.is-active {
	background: var(--gold);
	width: 56px;
}
.tvs-hb__dot:hover { background: rgba(255,255,255,.6); }

/* ============================================================
 * Section divider - star/stripe motif
 * ==========================================================*/
.tvs-hb__row,
.tvs-hb__brands {
	position: relative;
}

/* ============================================================
 * Section header — military stencil
 * ==========================================================*/
.tvs-hb__sec-hd {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	margin-bottom: 38px;
	padding-bottom: 16px;
	position: relative;
	border-bottom: none;
}
.tvs-hb__sec-hd::after {
	content: '';
	position: absolute;
	bottom: 0; left: 0; right: 0;
	height: 4px;
	background: linear-gradient(90deg, var(--red) 0%, var(--red) 60px, transparent 60px, transparent 70px, var(--gold) 70px, var(--gold) 100px, transparent 100px);
}
.tvs-hb__sec-hd h2 {
	font-family: var(--mil);
	font-size: clamp(1.6rem, 3vw, 2.4rem);
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: #fff;
	position: relative;
	padding-left: 28px;
}
.tvs-hb__sec-hd h2::before {
	content: '★';
	position: absolute;
	left: 0;
	color: var(--red);
	font-size: 1em;
}
.tvs-hb__sec-hd h2::after { display: none; }
.tvs-hb__sec-hd a {
	font-family: var(--mil);
	font-size: .82rem;
	letter-spacing: .15em;
	text-transform: uppercase;
	color: var(--gold);
	transition: color .2s, letter-spacing .2s;
}
.tvs-hb__sec-hd a:hover {
	color: #fff;
	letter-spacing: .2em;
}
.tvs-hb__sec-hd a::after {
	content: ' →';
}

/* ============================================================
 * Brand tabs — magazine showcase style
 * ==========================================================*/
.tvs-hb__brands {
	padding: 70px 48px;
	background:
		linear-gradient(180deg, transparent 0%, rgba(13,13,13,.5) 100%),
		var(--black);
	opacity: 0.9 !important;
}
.tvs-hb__tablist {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 36px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
	padding-bottom: 4px;
}
.tvs-hb__tab {
	background: rgba(26,26,26,.8);
	border: 1px solid var(--border, #2a2a2a);
	color: #aaa;
	padding: 14px 26px;
	font-family: var(--mil);
	font-size: .82rem;
	font-weight: 400;
	letter-spacing: .14em;
	text-transform: uppercase;
	cursor: pointer;
	transition: all .25s;
	white-space: nowrap;
	position: relative;
	clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
}
.tvs-hb__tab:hover {
	color: #fff;
	background: rgba(204,0,0,.2);
	border-color: var(--red);
}
.tvs-hb__tab.is-active {
	color: #0d0d0d;
	background: var(--gold);
	border-color: var(--gold);
}
.tvs-hb__tab:focus-visible {
	outline: 2px solid var(--gold);
	outline-offset: 2px;
}
.tvs-hb__tabpanel { animation: tvsHbFadeIn .4s ease; }
.tvs-hb__tabpanel[hidden] { display: none; }
@keyframes tvsHbFadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.tvs-hb__view-all { text-align: center; margin-top: 32px; }
.tvs-hb__view-all .btn-red {
	clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
	font-family: var(--mil) !important;
	letter-spacing: .14em !important;
}

/* ============================================================
 * Product grids — premium card hover
 * ==========================================================*/
.tvs-hb__row {
	padding: 70px 48px;
	background: var(--black);
	opacity: 0.9 !important;
}
.tvs-hb__row:nth-of-type(even) {
	background: linear-gradient(180deg, var(--black) 0%, #141414 100%);
	opacity: 0.9 !important;
}
.tvs-hb__row .products,
.tvs-hb__brands .products {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: 22px !important;
	list-style: none;
	margin: 0;
	padding: 0;
	width: 100% !important;
}

/* Override theme product card for hover treatment + tighter layout */
.tvs-hb .products li.product {
	border: 1px solid #1f1f1f !important;
	overflow: hidden;
	transition: all .35s ease !important;
	position: relative;
	display: flex !important;
	flex-direction: column;
}
.tvs-hb .products li.product:hover {
	border-color: var(--gold) !important;
	transform: translateY(-6px);
	box-shadow: 0 14px 40px rgba(0,0,0,.55), 0 0 0 1px var(--gold);
}
.tvs-hb .products li.product a {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
	text-decoration: none;
}

/* SQUARE product image — beat the theme's 310/370 aspect ratio */
.tvs-hb .products li.product .attachment-woocommerce_thumbnail,
.tvs-hb .products li.product img,
.tvs-hb .products li.product a > img,
.tvs-hb .products li.product .wp-post-image {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 1 / 1 !important;
	object-fit: contain !important;
	object-position: center !important;
	margin: 0 !important;
	display: block !important;
	transition: transform .6s ease;
}
.tvs-hb .products li.product:hover img {
	transform: scale(1.06);
}

/* Product title */
.tvs-hb .products li.product .woocommerce-loop-product__title {
	font-family: var(--mil) !important;
	letter-spacing: .03em;
	font-size: .85rem !important;
	line-height: 1.35 !important;
	color: #fff !important;
	padding: 12px 14px 6px !important;
	margin: 0 !important;
	text-transform: uppercase;
	font-weight: 400 !important;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 2.7em;
}

/* Pricing — high-visibility strikethrough + bright green sale */
.tvs-hb .products li.product .price,
.tvs-hb .products li.product span.price {
	padding: 0 14px 12px !important;
	margin: 0 !important;
	font-family: var(--mil) !important;
	font-size: 1.05rem !important;
	display: flex !important;
	align-items: center;
	gap: 10px;
	line-height: 1;
	color: #22c55e !important;
}
.tvs-hb .products li.product .price del,
.tvs-hb .products li.product .price del *,
.tvs-hb .products li.product .price del bdi,
.tvs-hb .products li.product .price del .amount {
	color: #c8c8c8 !important;
	text-decoration: line-through !important;
	text-decoration-color: #c8c8c8 !important;
	text-decoration-thickness: 2px !important;
	font-size: .9em !important;
	opacity: 1 !important;
	font-weight: 400;
	margin: 0 !important;
	background: none !important;
}
.tvs-hb .products li.product .price ins,
.tvs-hb .products li.product .price ins *,
.tvs-hb .products li.product .price ins bdi,
.tvs-hb .products li.product .price ins .amount {
	background: transparent !important;
	color: #22c55e !important;
	text-decoration: none !important;
	font-weight: 700 !important;
	font-size: 1.05em !important;
	padding: 0 !important;
	margin: 0 !important;
	text-shadow: 0 0 12px rgba(34,197,94,.4);
}
.tvs-hb .products li.product .price > bdi,
.tvs-hb .products li.product .price > .amount {
	color: #22c55e !important;
	font-weight: 700;
	text-shadow: 0 0 12px rgba(34,197,94,.4);
}

/* Sale badge */
.tvs-hb .products li.product .onsale {
	background: var(--red) !important;
	color: #fff !important;
	font-family: var(--mil) !important;
	letter-spacing: .1em !important;
	text-transform: uppercase !important;
	font-size: .65rem !important;
	font-weight: 400 !important;
	padding: 4px 10px !important;
	top: 10px !important;
	left: 10px !important;
	right: auto !important;
	border-radius: 0 !important;
	min-height: 0 !important;
	min-width: 0 !important;
	line-height: 1.4 !important;
	clip-path: polygon(6px 0, 100% 0, calc(100% - 6px) 100%, 0 100%);
}

/* "Select Options" / Add to cart button */
.tvs-hb .products li.product .button,
.tvs-hb .products li.product .add_to_cart_button {
	display: block !important;
	margin: auto 14px 14px !important;
	text-align: center;
	font-family: var(--mil) !important;
	font-size: .72rem !important;
	letter-spacing: .14em !important;
	padding: 9px 12px !important;
	background: var(--red) !important;
	color: #fff !important;
	text-transform: uppercase;
	border: none !important;
	transition: background .25s, letter-spacing .25s;
	clip-path: polygon(6px 0, 100% 0, calc(100% - 6px) 100%, 0 100%);
}
.tvs-hb .products li.product .button:hover,
.tvs-hb .products li.product .add_to_cart_button:hover {
	background: var(--gold) !important;
	color: #0d0d0d !important;
	letter-spacing: .18em !important;
}

/* Hide variant text "This product has multiple variants..." */
.tvs-hb .products li.product .button + p,
.tvs-hb .products li.product small.subscription-details { display: none !important; }

.tvs-hb__empty {
	background: rgba(255,255,255,.03);
	padding: 40px;
	border: 2px dashed var(--border, #2a2a2a);
	color: #777;
	text-align: center;
	font-family: var(--mil);
	letter-spacing: .08em;
	text-transform: uppercase;
}

/* ============================================================
 * Wounded Warrior — flag-stripe edge
 * ==========================================================*/
.tvs-hb__wwp {
	padding: 80px 48px;
	background:
		linear-gradient(180deg, rgba(13,13,13,.95), rgba(13,13,13,.98)),
		repeating-linear-gradient(45deg, transparent 0, transparent 30px, rgba(201,160,32,.04) 30px, rgba(201,160,32,.04) 31px);
	position: relative;
	border-top: 4px solid var(--gold);
	border-bottom: 4px solid var(--gold);
	opacity: 0.9 !important;
}
.tvs-hb__svg-eagle {
	position: absolute;
	top: 50%;
	right: 8%;
	transform: translateY(-50%);
	width: 240px;
	height: auto;
	pointer-events: none;
	z-index: 0;
}
.tvs-hb__wwp::before, .tvs-hb__wwp::after {
	content: '';
	position: absolute;
	left: 0; right: 0;
	height: 6px;
	background: repeating-linear-gradient(90deg, var(--red) 0, var(--red) 16px, transparent 16px, transparent 24px, #fff 24px, #fff 32px, transparent 32px, transparent 40px);
	opacity: .3;
}
.tvs-hb__wwp::before { top: 0; }
.tvs-hb__wwp::after  { bottom: 0; }

.tvs-hb__wwp-grid {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 60px;
	max-width: 1200px;
	margin: 0 auto;
	align-items: center;
	position: relative;
	z-index: 1;
}
.tvs-hb__wwp-img img {
	max-width: 100%;
	height: auto;
	filter: drop-shadow(0 6px 20px rgba(0,0,0,.5));
}
.tvs-hb__wwp-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 16px;
	padding: 6px 14px 6px 8px;
	background: rgba(204,0,0,.15);
	border: 1px solid var(--red);
	font-family: var(--mil);
	font-size: .72rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: #fff;
}
.tvs-hb__svg-shield {
	width: 22px;
	height: auto;
	flex-shrink: 0;
}
.tvs-hb__wwp h2 {
	font-family: var(--mil);
	font-size: clamp(1.8rem, 3vw, 2.6rem);
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: .04em;
	margin: 0 0 22px;
	color: #fff;
	line-height: 1.05;
}
.tvs-hb__wwp h2::after {
	content: '';
	display: block;
	width: 80px; height: 4px;
	background: var(--red);
	margin-top: 14px;
	box-shadow: 90px 0 0 var(--gold);
}
.tvs-hb__wwp-copy {
	color: #d8d8d8;
	line-height: 1.75;
	margin-bottom: 26px;
	font-size: 1.02rem;
	font-family: var(--B);
	font-weight: 300;
}
.tvs-hb__wwp .btn-red {
	font-family: var(--mil) !important;
	letter-spacing: .14em !important;
	clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
}

/* ============================================================
 * Pixels of Patriotism — magazine spread
 * ==========================================================*/
.tvs-hb__pixels {
	padding: 80px 48px;
	background: linear-gradient(180deg, #0d0d0d 0%, #1a1a1a 100%);
	position: relative;
	opacity: 0.9 !important;
}
.tvs-hb__pixels::before {
	content: none;
	display: none;
}
.tvs-hb__pixels-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 60px;
	max-width: 1200px;
	margin: 0 auto;
	align-items: center;
	position: relative;
	z-index: 1;
}
.tvs-hb__pixels-img {
	position: relative;
}
.tvs-hb__pixels-img img {
	width: 100%;
	height: auto;
	border: 4px solid var(--gold);
	position: relative;
	z-index: 2;
}
.tvs-hb__pixels-img::before {
	content: '';
	position: absolute;
	inset: 18px -18px -18px 18px;
	border: 2px solid var(--red);
	z-index: 1;
}
.tvs-hb__pixels h2 {
	font-family: var(--mil);
	font-size: clamp(1.8rem, 3vw, 2.8rem);
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: .04em;
	margin: 0 0 22px;
	color: var(--gold);
	line-height: 1.05;
}
.tvs-hb__pixels h2::before {
	content: '';
	display: block;
	font-family: var(--mil);
	color: var(--red);
	font-size: .55em;
	letter-spacing: .25em;
	margin-bottom: 12px;
	content: '★ FOUNDER\'S STORY ★';
}
.tvs-hb__pixels h2::after {
	content: '';
	display: block;
	width: 100px; height: 3px;
	background: var(--red);
	margin-top: 16px;
}
.tvs-hb__pixels-copy {
	color: #d8d8d8;
	line-height: 1.8;
	font-size: 1.02rem;
	font-family: var(--B);
	font-weight: 300;
}
.tvs-hb__pixels-copy p { margin-bottom: 1em; }

/* ============================================================
 * Admin-only inline notice
 * ==========================================================*/
.tvs-hb__admin-notice {
	background: #fff3cd;
	color: #664d03;
	border: 1px solid #ffe69c;
	padding: 12px 18px;
	margin: 20px 48px;
	font-family: var(--B);
}

/* ============================================================
 * Reduced motion
 * ==========================================================*/
@media (prefers-reduced-motion: reduce) {
	.tvs-hb__slide,
	.tvs-hb__tabpanel,
	.tvs-hb__slide-inner > *,
	.tvs-hb section { animation: none !important; transition: none !important; opacity: 1 !important; transform: none !important; }
}

/* ============================================================
 * Responsive
 * ==========================================================*/
@media (max-width: 1280px) {
	.tvs-hb__row .products,
	.tvs-hb__brands .products { grid-template-columns: repeat(3, 1fr) !important; }
}

@media (max-width: 1024px) {
	.tvs-hb__hero { height: 500px; }
	.tvs-hb__slide-inner { padding: 36px; margin-left: 24px; max-width: 90%; }
	.tvs-hb__camo,
	.tvs-hb__brands,
	.tvs-hb__row,
	.tvs-hb__wwp,
	.tvs-hb__pixels { padding-left: 32px; padding-right: 32px; }
	.tvs-hb__wwp-grid,
	.tvs-hb__pixels-grid { grid-template-columns: 1fr; gap: 32px; text-align: center; }
	.tvs-hb__wwp h2::after,
	.tvs-hb__pixels h2::after { margin-left: auto; margin-right: auto; }
	.tvs-hb__pixels-img::before { display: none; }
}

@media (max-width: 768px) {
	.tvs-hb__hero { height: 460px; }
	.tvs-hb__slide-inner { padding: 26px; margin-left: 0; }
	.tvs-hb__headline { font-size: 1.9rem; }
	.tvs-hb__subcopy { font-size: .95rem; }
	.tvs-hb__hero-arrow { width: 42px; height: 42px; }
	.tvs-hb__hero-arrow--prev { left: 8px; }
	.tvs-hb__hero-arrow--next { right: 8px; }
	.tvs-hb__row .products,
	.tvs-hb__brands .products { grid-template-columns: repeat(2, 1fr) !important; }
	.tvs-hb__tablist { flex-wrap: nowrap; }
	.tvs-hb__camo, .tvs-hb__brands, .tvs-hb__row, .tvs-hb__wwp, .tvs-hb__pixels { padding-left: 20px; padding-right: 20px; }
	.tvs-hb__countdown { gap: 8px; }
	.tvs-hb__cd-cell { padding: 8px 10px; min-width: 60px; }
	.tvs-hb__cd-cell span { font-size: 1.4rem; }
}

@media (max-width: 480px) {
	.tvs-hb__row .products,
	.tvs-hb__brands .products { grid-template-columns: 1fr !important; }
	.tvs-hb__hero { height: 400px; }
}


/* ============================================================
 * v1.3.4 — Top Hero: stage wraps title + video, anchored to floor
 * ==========================================================*/
.tvs-hb__top-hero {
	position: relative;
	width: 100%;
	min-height: 900px;
	background-color: #0d0d0d;
	background-size: cover;
	background-position: center top;
	background-repeat: no-repeat;
	overflow: hidden;
	border-bottom: 3px solid var(--red);
}
.tvs-hb__top-hero::before { display: none; }

/* Stage = title + video locked together, sitting at the bottom of the hero */
.tvs-hb__top-stage {
	position: absolute;
	left: 50%;
	bottom: 4%;
	transform: translateX(-50%);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	width: min(48vw, 640px);
	z-index: 4;
}

.tvs-hb .tvs-hb__top-title,
.tvs-hb__top-hero .tvs-hb__top-title,
.entry .tvs-hb__top-title,
.tvs-hb__top-title {
	font-family: 'Black Ops One', var(--mil), 'Oswald', sans-serif !important;
	font-size: clamp(2rem, 5vw, 4.6rem) !important;
	font-weight: 400 !important;
	color: #ffeb3b !important;
	text-transform: uppercase;
	letter-spacing: .18em;
	margin: 0;
	line-height: 1;
	white-space: nowrap;
	text-shadow: none !important;
	-webkit-text-stroke: 2px #a31111;
	animation: tvsHbTitleDrop 1.2s cubic-bezier(.22,.61,.36,1) both;
	margin-bottom: -6.5% !important;
}
.tvs-hb__top-title::after {
	content: '';
	display: block;
	width: clamp(60px, 8vw, 130px);
	height: 4px;
	background: var(--red);
	margin: clamp(8px, 1vw, 14px) auto 0;
}
@keyframes tvsHbTitleDrop {
	0%   { opacity: 0; transform: translateY(-90px); }
	60%  { opacity: 1; transform: translateY(6px); }
	100% { opacity: 1; transform: translateY(0); }
}

.tvs-hb__top-vid {
	width: 100%;
	border: 4px solid var(--gold);
	box-shadow: 0 18px 45px rgba(0,0,0,.9), 0 0 0 2px var(--red);
	background: #000;
	line-height: 0;
	animation: tvsHbVidDrop 1.8s cubic-bezier(.22,.61,.36,1) .4s both;
}
.tvs-hb__top-vid video { width: 100%; display: block; }
@keyframes tvsHbVidDrop {
	from { opacity: 0; transform: translateY(-180px); }
	to   { opacity: 1; transform: translateY(0); }
}

@media (max-width: 1024px) {
	.tvs-hb__top-hero { min-height: 560px; }
	.tvs-hb__top-stage { width: 60vw; bottom: 4%; }
}
@media (max-width: 768px) {
	.tvs-hb__top-hero { min-height: 440px; }
	.tvs-hb__top-stage { width: 78vw; bottom: 5%; gap: 10px; }
	.tvs-hb__top-vid { border-width: 3px; }
	.tvs-hb__top-title { letter-spacing: .12em; }
}

/* ============================================================
 * v1.2 — America's 250th carousel (Detroit Dawg Pound style)
 * ==========================================================*/
.tvs-hb__250 {
	padding: 80px 48px;
	background:
		linear-gradient(180deg, rgba(13,13,13,.95), rgba(0,20,52,.95)),
		repeating-linear-gradient(45deg, transparent 0, transparent 28px, rgba(204,0,0,.04) 28px, rgba(204,0,0,.04) 29px);
	position: relative;
	border-top: 4px double var(--gold);
	border-bottom: 4px double var(--gold);
	overflow: hidden;
	opacity: 0.9 !important;
}

/* Stars + stripes background motif */
.tvs-hb__250::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image:
		radial-gradient(2px 2px at 8% 18%, rgba(255,255,255,.3), transparent),
		radial-gradient(1px 1px at 22% 42%, rgba(255,255,255,.4), transparent),
		radial-gradient(2px 2px at 38% 12%, rgba(255,255,255,.3), transparent),
		radial-gradient(1px 1px at 65% 28%, rgba(255,255,255,.4), transparent),
		radial-gradient(1.5px 1.5px at 78% 62%, rgba(255,255,255,.35), transparent),
		radial-gradient(1px 1px at 92% 18%, rgba(255,255,255,.3), transparent),
		radial-gradient(2px 2px at 12% 78%, rgba(255,255,255,.3), transparent),
		radial-gradient(1px 1px at 48% 88%, rgba(255,255,255,.4), transparent);
	pointer-events: none;
	z-index: 0;
}

.tvs-hb__250-tag {
	text-align: center;
	margin-bottom: 18px;
	position: relative;
	z-index: 1;
	color: var(--gold);
	font-family: var(--mil);
	letter-spacing: .25em;
	font-size: .75rem;
}
.tvs-hb__250-tag span { color: var(--red); margin: 0 14px; font-size: 1.1em; }
.tvs-hb__250-tag em { font-style: normal; }

.tvs-hb__250-section-title {
	text-align: center;
	font-family: var(--mil);
	font-weight: 400;
	font-size: clamp(1.4rem, 2.6vw, 2.2rem);
	letter-spacing: .1em;
	color: #fff;
	margin: 0 0 40px;
	position: relative;
	z-index: 1;
	text-transform: uppercase;
}

.tvs-hb__250-carousel {
	position: relative;
	max-width: 1200px;
	margin: 0 auto;
	z-index: 1;
}
.tvs-hb__250-track {
	position: relative;
	height: 460px;
	overflow: hidden;
	border: 1px solid rgba(201,160,32,.4);
	background: #0d0d0d;
}
.tvs-hb__250-slide {
	position: absolute;
	inset: 0;
	background-color: #0d0d0d;
	background-size: cover;
	background-position: center;
	opacity: 0;
	transition: opacity .8s ease, transform 8s ease-out;
	transform: scale(1.04);
	display: flex;
	align-items: center;
	pointer-events: none;
}
.tvs-hb__250-slide.is-active {
	opacity: 1;
	transform: scale(1);
	pointer-events: auto;
	z-index: 2;
}
/* Default gradient when no image */
.tvs-hb__250-slide:not([style*="background-image"]) {
	background-image:
		linear-gradient(135deg, rgba(204,0,0,.3) 0%, rgba(13,13,13,.85) 50%, rgba(0,40,104,.55) 100%);
}
.tvs-hb__250-inner {
	max-width: 640px;
	padding: 50px 70px;
	margin-left: 60px;
	position: relative;
	z-index: 3;
}
.tvs-hb__250-inner-right {
	max-width: 640px;
	padding: 50px 70px;
	margin-left: 60px;
	position: relative;
	z-index: 3;
    float:right;

}

.tvs-hb__250-slide.is-active .tvs-hb__250-inner > * {
	animation: tvsHbStaggerIn 1s ease-out both;
}
.tvs-hb__250-slide.is-active .tvs-hb__250-inner > *:nth-child(1) { animation-delay: .15s; }
.tvs-hb__250-slide.is-active .tvs-hb__250-inner > *:nth-child(2) { animation-delay: .3s; }
.tvs-hb__250-slide.is-active .tvs-hb__250-inner > *:nth-child(3) { animation-delay: .45s; }
.tvs-hb__250-slide.is-active .tvs-hb__250-inner > *:nth-child(4) { animation-delay: .6s; }
.tvs-hb__250-slide.is-active .tvs-hb__250-inner > *:nth-child(5) { animation-delay: .75s; }

.tvs-hb__250-eyebrow {
	display: inline-block;
	font-family: var(--mil);
	letter-spacing: .25em;
	font-size: .8rem;
	color: #0d0d0d;
	background: var(--gold);
	padding: 6px 16px;
	margin-bottom: 18px;
	clip-path: polygon(0 0, 100% 0, 96% 100%, 4% 100%);
}
.tvs-hb__250-headline {
	font-family: var(--mil);
	font-size: clamp(2rem, 4.2vw, 3.6rem);
	font-weight: 400;
	line-height: 1;
	text-transform: uppercase;
	color: #fff;
	margin: 0 0 18px;
	text-shadow: 0 4px 18px rgba(0,0,0,.7);
	letter-spacing: .015em;
}
.tvs-hb__250-subcopy {
	font-family: var(--B);
	color: #e5e5e5;
	font-size: 1.05rem;
	line-height: 1.55;
	max-width: 520px;
	margin: 0 0 24px;
	font-weight: 300;
}
.tvs-hb__250-cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: var(--red);
	color: #fff !important;
	padding: 14px 32px;
	font-family: var(--mil);
	letter-spacing: .14em;
	font-size: .92rem;
	text-decoration: none;
	clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
	transition: all .3s;
}
.tvs-hb__250-cta:hover {
	background: var(--gold);
	color: #0d0d0d !important;
	letter-spacing: .18em;
}
.tvs-hb__250-cta span { transition: transform .3s; }
.tvs-hb__250-cta:hover span { transform: translateX(4px); }

/* Carousel arrows + dots */
.tvs-hb__250-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 50px; height: 50px;
	background: rgba(13,13,13,.7);
	border: 2px solid var(--gold);
	color: var(--gold);
	font-size: 1.1rem;
	cursor: pointer;
	z-index: 5;
	transition: all .3s;
	clip-path: polygon(15% 0, 100% 0, 85% 100%, 0 100%);
}
.tvs-hb__250-arrow:hover {
	background: var(--gold);
	color: #0d0d0d;
}
.tvs-hb__250-arrow--prev { left: 24px; }
.tvs-hb__250-arrow--next { right: 24px; }
.tvs-hb__250-dots {
	display: flex;
	justify-content: center;
	gap: 12px;
	margin-top: 24px;
}
.tvs-hb__250-dot {
	width: 40px; height: 4px;
	border: none;
	background: rgba(255,255,255,.25);
	cursor: pointer;
	padding: 0;
	transition: all .3s;
}
.tvs-hb__250-dot.is-active {
	background: var(--gold);
	width: 60px;
}
.tvs-hb__250-dot:hover { background: rgba(255,255,255,.5); }

@media (max-width: 1024px) {
	.tvs-hb__250 { padding: 56px 32px; }
	.tvs-hb__250-track { height: 420px; }
	.tvs-hb__250-inner { padding: 36px; margin-left: 24px; }
}
@media (max-width: 768px) {
	.tvs-hb__250 { padding: 44px 20px; }
	.tvs-hb__250-track { height: 460px; }
	.tvs-hb__250-inner { padding: 24px; margin-left: 0; max-width: 100%; }
	.tvs-hb__250-headline { font-size: 1.7rem; }
	.tvs-hb__250-arrow { width: 40px; height: 40px; }
	.tvs-hb__250-arrow--prev { left: 8px; }
	.tvs-hb__250-arrow--next { right: 8px; }
}


/* ============================================================
 * v1.3.5 — Body background: user-supplied camo image
 * ==========================================================*/
body.home,
body.tvs-hb-page {
	background-color: #1a1f12 !important;
	/* ABSOLUTE path — relative ../img breaks when WP-Optimize minify
	   relocates the combined CSS into wp-content/cache/wpo-minify/. */
	background-image: url("/wp-content/plugins/tvs-homepage-builder/assets/img/camouflage-soldier-pattern.jpg") !important;
	background-attachment: fixed !important;
	background-size: cover !important;
	background-position: center center !important;
	background-repeat: no-repeat !important;
}
body.home .camo-wrap,
body.tvs-hb-page .camo-wrap,
body.home #site-content,
body.tvs-hb-page #site-content,
body.home .site-main,
body.home main,
body.tvs-hb-page .site-main,
body.tvs-hb-page main { background: transparent !important; }

/* ============================================================
 * v1.2 — Hero stacking fix
 * ==========================================================*/
.tvs-hb__top-hero { z-index: 0; }
.tvs-hb__top-title { position: relative; z-index: 5 !important; }
.tvs-hb__top-vid { position: relative; z-index: 5 !important; }

/* ============================================================
 * v1.2 — Sticky/larger announcement bar (theme override)
 * Theme uses .ann inside .topstick. Bump padding & make sticky.
 * ==========================================================*/
.topstick { position: sticky !important; top: 0 !important; z-index: 1000 !important; }
.ann {
	font-size: .95rem !important;
	letter-spacing: .14em !important;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
}
.ann a {
	font-size: .95rem !important;
	padding: 4px 12px;
	background: var(--red);
	color: #fff !important;
	margin-left: 8px;
	transition: background .25s;
	text-decoration: none !important;
}
.ann a:hover { background: #0d0d0d; }
@media (max-width: 768px) {
	.ann { padding: 12px 14px !important; font-size: .82rem !important; min-height: 44px; }
	.ann a { font-size: .82rem !important; }
}

/* ============================================================
 * v1.2 — Contrast pass (lift faint text against camo backdrop)
 * ==========================================================*/
.tvs-hb__row,
.tvs-hb__brands,
.tvs-hb__250,
.tvs-hb__pixels,
.tvs-hb__wwp,
.tvs-hb__camo {
	position: relative;
	isolation: isolate;
}
.tvs-hb__row::before,
.tvs-hb__brands::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(13,13,13,.78), rgba(13,13,13,.92));
	z-index: -1;
}
.tvs-hb__sec-hd h2 { color: #fff !important; }
.tvs-hb__sec-hd a { color: #ffce3a !important; }

/* Stronger product card contrast */
.tvs-hb .products li.product .woocommerce-loop-product__title {
	color: #fff !important;
	text-shadow: 0 1px 2px rgba(0,0,0,.4);
}

/* Brand tab readability when inactive */
.tvs-hb__tab {
	color: #d8d8d8 !important;
	background: rgba(15,15,15,.75) !important;
}
.tvs-hb__tab.is-active {
	color: #0d0d0d !important;
	background: var(--gold) !important;
}

/* WWP body copy contrast */
.tvs-hb__wwp-copy { color: #f0f0f0 !important; }
.tvs-hb__pixels-copy { color: #f0f0f0 !important; }
.tvs-hb__250-subcopy { color: #f0f0f0 !important; }

/* Camo box copy color punch */
.tvs-hb__camo-inner p { color: #f5ecd0 !important; }


/* ============================================================
 * v1.3 — Horizontal product carousel (Detroit Dawg Pound style)
 * ==========================================================*/
.tvs-hb__250-products { margin-top: 40px; position: relative; z-index: 1; }
.tvs-hb__hslider {
	position: relative;
	max-width: 1280px;
	margin: 0 auto;
}
.tvs-hb__hslider-track {
	display: flex;
	gap: 18px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	padding: 4px 0 14px;
	-webkit-overflow-scrolling: touch;
}
.tvs-hb__hslider-track::-webkit-scrollbar { display: none; }

/* Force the inner WC product list to be a flex row, not a grid */
.tvs-hb__hslider-track .products,
.tvs-hb__hslider-track ul.products {
	display: flex !important;
	grid-template-columns: none !important;
	flex-wrap: nowrap !important;
	gap: 18px !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	width: max-content !important;
}
.tvs-hb__hslider-track li.product {
	flex: 0 0 auto !important;
	width: calc(25% - 14px) !important;
	min-width: 240px;
	scroll-snap-align: start;
}

.tvs-hb__hslider-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 48px; height: 48px;
	background: rgba(13,13,13,.85);
	border: 2px solid var(--gold);
	color: var(--gold);
	font-size: 1.05rem;
	cursor: pointer;
	z-index: 10;
	transition: all .25s;
	display: flex;
	align-items: center;
	justify-content: center;
}
.tvs-hb__hslider-arrow:hover {
	background: var(--gold);
	color: #0d0d0d;
}
.tvs-hb__hslider-arrow--prev { left: -8px; }
.tvs-hb__hslider-arrow--next { right: -8px; }
@media (max-width: 768px) {
	.tvs-hb__hslider-track li.product { width: calc(75% - 9px) !important; min-width: 200px; }
	.tvs-hb__hslider-arrow { width: 38px; height: 38px; }
}

/* ============================================================
 * v1.3 — Stronger contrast on theme dark background
 * ==========================================================*/
.tvs-hb__camo-inner p,
.tvs-hb__camo-inner strong { color: #fff !important; }
.tvs-hb__camo-inner p { color: #f5f5f5 !important; }

.tvs-hb__sec-hd h2 { color: #fff !important; text-shadow: 0 2px 6px rgba(0,0,0,.4); }
.tvs-hb__sec-hd a  { color: var(--gold) !important; }

.tvs-hb .products li.product {
	box-shadow: 0 4px 14px rgba(0,0,0,.4);
}

/* Brand tabs base contrast */
.tvs-hb__tab { background: rgba(20,20,20,.85) !important; color: #ddd !important; border-color: #333 !important; }
.tvs-hb__tab.is-active { background: var(--gold) !important; color: #0d0d0d !important; border-color: var(--gold) !important; }

/* WWP / Pixels / 250 body copy */
.tvs-hb__wwp-copy,
.tvs-hb__pixels-copy,
.tvs-hb__250-subcopy { color: #f0f0f0 !important; }

/* Top hero — make sure title/video are above any overlay */
.tvs-hb__top-hero > * { z-index: 5; }


/* ============================================================
 * v1.3 — 250th placeholder cards (when brand not yet picked)
 * ==========================================================*/
.tvs-hb__250-placeholder {
	max-width: 1200px;
	margin: 0 auto;
	text-align: center;
}
.tvs-hb__250-placeholder-cards {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
	margin-bottom: 24px;
}
.tvs-hb__250-placeholder-card {
	background: rgba(13,13,13,.6);
	border: 1px solid rgba(201,160,32,.3);
	padding: 30px 18px;
	min-height: 240px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	position: relative;
	overflow: hidden;
}
.tvs-hb__250-placeholder-card::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(110deg, transparent 30%, rgba(201,160,32,.08) 50%, transparent 70%);
	animation: tvsHbShimmer 2.4s ease-in-out infinite;
}
@keyframes tvsHbShimmer {
	0%   { transform: translateX(-30%); }
	100% { transform: translateX(30%); }
}
.tvs-hb__250-placeholder-img {
	font-size: 2.4rem;
	color: var(--gold);
	opacity: .55;
}
.tvs-hb__250-placeholder-line {
	width: 80%;
	height: 10px;
	background: rgba(255,255,255,.08);
	border-radius: 2px;
}
.tvs-hb__250-placeholder-line--short { width: 50%; }
.tvs-hb__250-placeholder-msg {
	color: #f0f0f0;
	font-family: var(--mil);
	letter-spacing: .08em;
	font-size: 1rem;
	margin: 0 auto;
	max-width: 600px;
	line-height: 1.5;
}
.tvs-hb__admin-hint {
	color: var(--gold) !important;
	font-family: var(--B) !important;
	font-size: .85rem !important;
	margin-top: 14px !important;
	font-style: italic;
	letter-spacing: 0;
}

@media (max-width: 1024px) {
	.tvs-hb__250-placeholder-cards { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
	.tvs-hb__250-placeholder-cards { grid-template-columns: 1fr; }
}


/* ============================================================
 * v1.3.2 — Hard contrast bumps for screens-with-faint-copy
 * ==========================================================*/
.tvs-hb__250-section-title { color: #ffffff !important; opacity: 1 !important; text-shadow: 0 2px 8px rgba(0,0,0,.5); }
.tvs-hb__250-headline      { color: #ffffff !important; opacity: 1 !important; text-shadow: 0 3px 14px rgba(0,0,0,.6); -webkit-text-stroke: .5px rgba(255,255,255,.06); }
.tvs-hb__250-subcopy       { color: #ffffff !important; opacity: 1 !important; }
.tvs-hb__pixels h2         { color: var(--gold) !important; text-shadow: 0 2px 8px rgba(0,0,0,.5); }
.tvs-hb__pixels-copy       { color: #ffffff !important; opacity: 1 !important; line-height: 1.8; }
.tvs-hb__pixels-copy p     { color: #ffffff !important; }
.tvs-hb__wwp h2            { color: #ffffff !important; text-shadow: 0 2px 8px rgba(0,0,0,.5); }
.tvs-hb__wwp-copy          { color: #ffffff !important; opacity: 1 !important; }
.tvs-hb__camo-inner p      { color: #ffffff !important; opacity: 1 !important; }
.tvs-hb__camo-inner strong { color: var(--gold) !important; }
.tvs-hb__sec-hd h2         { color: #ffffff !important; text-shadow: 0 2px 8px rgba(0,0,0,.5); }
.tvs-hb__250-tag em        { color: var(--gold) !important; }

/* "Pixels of Patriotism" ghost-watermark removed (was washing behind copy). */


/* ============================================================
 * Force WWP body copy (and its paragraphs) to pure white
 * ==========================================================*/
.tvs-hb .tvs-hb__wwp-copy,
.tvs-hb .tvs-hb__wwp-copy p,
.tvs-hb .tvs-hb__wwp-copy span,
.tvs-hb .tvs-hb__wwp-copy strong {
	color: #ffffff !important;
	opacity: 1 !important;
}

/* ============================================================
 * v1.3.6 — Restore faint camo bleed-through between sections
 * Earlier contrast passes (v1.2/v1.3/v1.3.2) stacked a solid
 * background + a dark ::before overlay + opacity:0.9 on every
 * section, which sealed off the body camo entirely. This block
 * makes the section backgrounds semi-transparent so the camo
 * shows through faintly, drives the tint from ONE layer per
 * section, and removes the opacity hack so copy stays crisp.
 * Appended last so it wins over the older conflicting rules.
 * ==========================================================*/

/* 1) Kill the opacity hack — it faded the content, not just the bg */
.tvs-hb__brands,
.tvs-hb__row,
.tvs-hb__row:nth-of-type(even),
.tvs-hb__wwp,
.tvs-hb__pixels,
.tvs-hb__250 {
	opacity: 1 !important;
}

/* 2) Brands + product rows: section bg goes transparent; the dark
 *    tint is supplied solely by the ::before overlay (single layer
 *    over the camo) at ~76% so ~24% camo bleeds through. */
.tvs-hb__brands,
.tvs-hb__row,
.tvs-hb__row:nth-of-type(even) {
	background: transparent !important;
}
.tvs-hb__row::before,
.tvs-hb__brands::before {
	background: linear-gradient(180deg, rgba(13,13,13,.72), rgba(13,13,13,.82)) !important;
}

/* 3) WWP / Pixels / 250: no ::before overlay, so make the section
 *    background itself semi-transparent. Decorative stripe/dot
 *    motifs are preserved on top of the translucent base. */
.tvs-hb__wwp {
	background:
		linear-gradient(180deg, rgba(13,13,13,.74), rgba(13,13,13,.82)),
		repeating-linear-gradient(45deg, transparent 0, transparent 30px, rgba(201,160,32,.04) 30px, rgba(201,160,32,.04) 31px) !important;
}
.tvs-hb__pixels {
	background: linear-gradient(180deg, rgba(13,13,13,.72), rgba(26,26,26,.82)) !important;
}
.tvs-hb__250 {
	background:
		linear-gradient(180deg, rgba(13,13,13,.74), rgba(0,20,52,.80)),
		repeating-linear-gradient(45deg, transparent 0, transparent 28px, rgba(204,0,0,.04) 28px, rgba(204,0,0,.04) 29px) !important;
}

/* ============================================================
 * v1.3.7 — 250th: autoplay video to the RIGHT of the countdown
 * The hero row holds the text/countdown column (left) and the
 * video (right). Video height is capped so the section keeps
 * roughly its current height, and it stays above the product
 * boxes (which live in a separate .tvs-hb__250-products block).
 * ==========================================================*/
.tvs-hb__250-hero {
	display: flex;
	align-items: center;
	gap: 40px;
	flex-wrap: nowrap;
}
/* Left column keeps its existing width/cap; never collapses the text. */
.tvs-hb__250-hero > .tvs-hb__250-inner {
	flex: 1 1 auto;
	min-width: 0;
}
/* Right column: the video, pinned to the right edge. */
.tvs-hb__250-vid {
	flex: 0 0 auto;
	width: min(42%, 480px);
	margin-left: auto;
	line-height: 0;
	background: transparent;
}
.tvs-hb__250-vid video,
.tvs-hb__250-vid img {
	width: 100%;
	height: auto;
	max-height: 340px;     /* keep section height ~unchanged */
	object-fit: contain;
	display: block;
	background: transparent;   /* honours alpha if the source has it */
}
/* Stack under the copy on tablet/phone so nothing is squished. */
@media (max-width: 1024px) {
	.tvs-hb__250-hero { flex-wrap: wrap; gap: 24px; }
	.tvs-hb__250-vid { width: 100%; margin-left: 0; }
	.tvs-hb__250-vid video,
	.tvs-hb__250-vid img { max-height: 300px; margin: 0 auto; }
}

/* ============================================================
 * v1.3.8 — 250th: full-section background video
 * The <video> covers the whole section. A left-weighted scrim
 * sits above the video but below the content, so the headline /
 * countdown / CTA on the left stay readable while the right side
 * stays clear for the video's "USA 250" focal point.
 * ==========================================================*/
.tvs-hb__250 {
	position: relative;
	overflow: hidden;
	background: #0a1024 !important;
}
.tvs-hb__250-bgvid {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 0 center;
	z-index: 0;
	pointer-events: none;
}
.tvs-hb__250::before {
	content: '' !important;
	position: absolute !important;
	inset: 0 !important;
	background: linear-gradient(90deg,
		rgba(8,12,30,.88) 0%,
		rgba(8,12,30,.66) 30%,
		rgba(8,12,30,.30) 55%,
		rgba(8,12,30,.10) 78%,
		rgba(8,12,30,.04) 100%) !important;
	z-index: 1 !important;
	pointer-events: none !important;
}
.tvs-hb__250 > .tvs-hb__250-tag,
.tvs-hb__250 > .tvs-hb__250-section-title,
.tvs-hb__250 > .tvs-hb__250-hero,
.tvs-hb__250 > .tvs-hb__250-products {
	position: relative;
	z-index: 2;
}
.tvs-hb__250-hero { background: transparent !important; }

/* ============================================================
 * v1.4.0 — 250th: coverflow single-product slider (themed) +
 * cinematic background framing. One large centre card, neighbours
 * peek behind, chevron arrows, progress bar, bold pill CTA. Sits
 * in the left column so the video's "USA 250" focal point on the
 * right stays clear.
 * ==========================================================*/
.tvs-hb__250 { min-height: 560px; }
.tvs-hb__250-bgvid { object-position: 0 center; }

.tvs-hb__250-products {
	max-width: 520px;
	margin: 34px 0 0 60px;
	position: relative;
	z-index: 2;
	text-align: center;
}
.tvs-hb__250-solo {
	display: flex;
	align-items: center;
	gap: 6px;
}
.tvs-hb__250-solo-stage {
	flex: 1 1 auto;
	min-width: 0;
	position: relative;
	height: 320px;
	overflow: hidden;
}
.tvs-hb__250-solo .products {
	position: relative;
	height: 100%;
	display: block !important;
	grid-template-columns: none !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	width: 100% !important;
}
.tvs-hb__250-solo .products li.product {
	position: absolute !important;
	top: 50%;
	left: 50%;
	width: 240px !important;
	margin: 0 !important;
	float: none !important;
	transform: translate(-50%, -50%) scale(.74);
	opacity: 0;
	visibility: hidden;
	transition: transform .45s cubic-bezier(.22,.61,.36,1), opacity .45s ease;
	background: linear-gradient(180deg, #ffffff, #eef1f7) !important;
	border: none !important;
	border-radius: 18px !important;
	box-shadow: 0 24px 60px rgba(0,0,0,.55) !important;
	overflow: hidden;
	z-index: 1;
}
.tvs-hb__250-solo .products li.product::before {
	content: '';
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 8px;
	background: linear-gradient(90deg, #b22234 0 50%, #3c3b6e 50% 100%);
	z-index: 5;
}
.tvs-hb__250-solo .products li.product.is-prev,
.tvs-hb__250-solo .products li.product.is-next {
	opacity: .5;
	visibility: visible;
	z-index: 2;
}
.tvs-hb__250-solo .products li.product.is-prev { transform: translate(calc(-50% - 132px), -50%) scale(.74); }
.tvs-hb__250-solo .products li.product.is-next { transform: translate(calc(-50% + 132px), -50%) scale(.74); }
.tvs-hb__250-solo .products li.product.is-active {
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, -50%) scale(1);
	z-index: 3;
	box-shadow: 0 28px 70px rgba(0,0,0,.6), 0 0 0 3px var(--gold), 0 0 0 6px rgba(204,0,0,.55) !important;
}
.tvs-hb__250-solo .products li.product img,
.tvs-hb__250-solo .products li.product .wp-post-image {
	aspect-ratio: 1 / 1 !important;
	max-height: 200px !important;
	width: 100% !important;
	object-fit: contain !important;
	background: #fff !important;
}
.tvs-hb__250-solo .products li.product .woocommerce-loop-product__title {
	color: #0d0d0d !important;
	text-shadow: none !important;
	padding: 10px 12px 2px !important;
	min-height: 0 !important;
}
.tvs-hb__250-solo .products li.product .price,
.tvs-hb__250-solo .products li.product .price bdi,
.tvs-hb__250-solo .products li.product .price .amount {
	color: #b22234 !important;
}
.tvs-hb__250-solo .products li.product .button,
.tvs-hb__250-solo .products li.product .add_to_cart_button {
	margin: 6px 12px 14px !important;
}

.tvs-hb__250-solo-arrow {
	flex: 0 0 auto;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(255,255,255,.06);
	border: 1px solid rgba(255,255,255,.28);
	border-radius: 50%;
	color: #fff;
	font-size: 1.3rem;
	line-height: 1;
	cursor: pointer;
	clip-path: none;
	transition: background .25s, border-color .25s, transform .25s;
}
.tvs-hb__250-solo-arrow:hover {
	background: var(--red);
	border-color: var(--red);
	transform: scale(1.1);
}
.tvs-hb__250-solo-arrow:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }

.tvs-hb__250-solo-progress {
	position: relative;
	height: 4px;
	width: 78%;
	max-width: 320px;
	margin: 22px auto 0;
	background: rgba(255,255,255,.2);
	border-radius: 3px;
}
.tvs-hb__250-solo-progress-fill {
	position: absolute;
	top: -3px;
	left: 0;
	width: 46px;
	height: 10px;
	border-radius: 5px;
	background: var(--red);
	transform: translateX(-50%);
	box-shadow: 0 0 12px rgba(204,0,0,.6);
	transition: left .4s ease;
}

.tvs-hb__250-solo-cta {
	display: inline-flex !important;
	align-items: center;
	gap: 12px;
	margin: 26px auto 0 !important;
	padding: 16px 42px !important;
	background: var(--red) !important;
	color: #fff !important;
	font-family: var(--mil) !important;
	letter-spacing: .14em !important;
	text-transform: uppercase;
	border-radius: 40px !important;
	clip-path: none !important;
	box-shadow: 0 12px 30px rgba(204,0,0,.45);
	transition: background .25s, transform .25s, letter-spacing .25s;
}
.tvs-hb__250-solo-cta:hover {
	background: #e11414 !important;
	transform: translateY(-2px);
	letter-spacing: .18em !important;
}

@media (max-width: 1024px) {
	.tvs-hb__250 { min-height: 0; }
	.tvs-hb__250-products { max-width: 560px; margin: 28px auto 0; }
}
@media (max-width: 600px) {
	.tvs-hb__250-solo .products li.product { width: 200px !important; }
	.tvs-hb__250-solo .products li.product.is-prev { transform: translate(calc(-50% - 108px), -50%) scale(.7); }
	.tvs-hb__250-solo .products li.product.is-next { transform: translate(calc(-50% + 108px), -50%) scale(.7); }
}

/* 250th placeholder — preview cards for the carousel (no products yet) */
.tvs-hb__250-solo--demo .products li.product {
	display: flex !important;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 16px;
	height: 240px;
}
.tvs-hb__250-demo-star { font-size: 2.8rem; color: var(--gold); }
.tvs-hb__250-demo-line { width: 70%; height: 12px; border-radius: 6px; background: rgba(13,13,13,.14); }
.tvs-hb__250-demo-line--short { width: 45%; }

/* ============================================================
 * v1.4.1 — 250th: max-height 653px, carousel to the RIGHT of
 * the "USA 250" in the video. The section becomes a two-column
 * layout: text/countdown left, coverflow carousel right. On
 * tablet/phone it stacks naturally.
 * ==========================================================*/
.tvs-hb__250 {
	min-height: 0 !important;
	max-height: 653px !important;
	height: 653px !important;
	padding: 50px 48px !important;
	display: flex !important;
	flex-direction: column !important;
}
/* Tag + section title stay full width at the top */
.tvs-hb__250 > .tvs-hb__250-tag,
.tvs-hb__250 > .tvs-hb__250-section-title {
	flex: 0 0 auto;
	width: 100%;
}
/* Hero + products side by side */
.tvs-hb__250 > .tvs-hb__250-hero,
.tvs-hb__250 > .tvs-hb__250-products {
	position: relative;
	z-index: 2;
}
.tvs-hb__250-hero {
	display: flex !important;
	flex: 1 1 auto !important;
	align-items: flex-start;
	gap: 0;
}
/* Left column: text + countdown — takes 45%, pushes against left */
.tvs-hb__250-hero > .tvs-hb__250-inner {
	flex: 0 0 45%;
	max-width: 480px;
	padding: 30px 0 30px 0 !important;
	margin: 0 !important;
}
/* Right column: carousel — positioned in the right portion of the section */
.tvs-hb__250-products {
	position: absolute !important;
	right: 48px;
	bottom: 50px;
	max-width: 400px !important;
	width: 38% !important;
	margin: 0 !important;
}
/* Shrink the solo stage a bit to fit the 653px cap */
.tvs-hb__250-solo .products li.product { width: 200px !important; }
.tvs-hb__250-solo .products li.product.is-prev { transform: translate(calc(-50% - 112px), -50%) scale(.72) !important; }
.tvs-hb__250-solo .products li.product.is-next { transform: translate(calc(-50% + 112px), -50%) scale(.72) !important; }
.tvs-hb__250-solo .products li.product.is-active { transform: translate(-50%, -50%) scale(1) !important; }
.tvs-hb__250-solo .products li.product img,
.tvs-hb__250-solo .products li.product .wp-post-image { max-height: 160px !important; }

/* Tablet */
@media (max-width: 1024px) {
	.tvs-hb__250 {
		max-height: none !important;
		height: auto !important;
		padding: 44px 32px !important;
	}
	.tvs-hb__250-hero { flex-direction: column !important; }
	.tvs-hb__250-hero > .tvs-hb__250-inner { flex: 0 0 auto; max-width: 100%; }
	.tvs-hb__250-products {
		position: relative !important;
		right: auto;
		bottom: auto;
		max-width: 100% !important;
		width: 100% !important;
		margin: 28px auto 0 !important;
	}
	.tvs-hb__250-solo-stage { height: 280px !important; }
}
/* Phone */
@media (max-width: 600px) {
	.tvs-hb__250 { padding: 32px 16px !important; }
	.tvs-hb__250-solo .products li.product { width: 180px !important; }
	.tvs-hb__250-solo .products li.product.is-prev { transform: translate(calc(-50% - 96px), -50%) scale(.68) !important; }
	.tvs-hb__250-solo .products li.product.is-next { transform: translate(calc(-50% + 96px), -50%) scale(.68) !important; }
	.tvs-hb__250-solo-stage { height: 240px !important; }
}
