/* ============================================================
   WooCommerce bridge — map WC's loop/single markup onto the
   preview's grid + card + brand tokens. Loaded after shield.css.
   ============================================================ */

/* ---- Header logo image + search icon ---- */
header.main .logo { display: inline-flex; align-items: center; text-decoration: none; }
header.main .logo .shield-logo { height: 36px; width: auto; display: block; }
header.main .searchbtn { color: #fff; display: inline-flex; align-items: center; justify-content: center; }
header.main .searchbtn svg { display: block; width: 18px; height: 18px; flex: 0 0 auto; }
header.main .hic .ic svg { display: block; width: 22px; height: 22px; flex: 0 0 auto; }
header.main .hic .ic { display: inline-flex; align-items: center; }

/* ---- Hero + heading colour overrides (beat Astra's dynamic CSS) ---- */
#shield-home .hero { background-color:#14110f; background-image:linear-gradient(90deg,rgba(12,10,9,.94) 0%,rgba(12,10,9,.6) 42%,rgba(12,10,9,.12) 72%,rgba(12,10,9,0) 100%),url("https://shieldoffroad.co.nz/wp-content/uploads/2026/06/SHIELD-SLIDE-HILUX-1.jpg"); background-size:cover; background-position:center; position:relative; }
#shield-home .hero .terrain { display:none; }
#shield-home .hero h1,
#shield-home .hero p,
#shield-home .hero .kicker { color: #fff !important; }
#shield-home .hero .btn.ghost { color: #fff !important; }
#shield-home .sechead h2 { color: var(--brand-dark) !important; }
#shield-home .nzm h2, #shield-home .nzm .kick, #shield-home .nzm p { color: #fff !important; }

/* ---- Custom product grid (homepage best-sellers etc.) ---- */
.pgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
@media (max-width: 1100px) { .pgrid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px)  { .pgrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .pgrid { grid-template-columns: 1fr; } }

/* ---- Product grid (shop archive + [products] shortcode) ---- */
.woocommerce ul.products,
ul.products {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	display: grid !important;
	gap: 18px;
	grid-template-columns: repeat(4, 1fr);
}
.woocommerce ul.products.columns-3, ul.products.columns-3 { grid-template-columns: repeat(3, 1fr); }
.woocommerce ul.products.columns-2, ul.products.columns-2 { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 1100px) { .woocommerce ul.products, ul.products, ul.products.columns-4 { grid-template-columns: repeat(3, 1fr) !important; } }
@media (max-width: 760px)  { .woocommerce ul.products, ul.products, ul.products.columns-4, ul.products.columns-3 { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 480px)  { .woocommerce ul.products, ul.products, ul.products.columns-4, ul.products.columns-3, ul.products.columns-2 { grid-template-columns: 1fr !important; } }

/* Neutralise Astra/WooCommerce float + width + ::before bullets on cards */
ul.products li.product,
ul.products li.pcard {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	clear: none !important;
}
ul.products li.pcard::before { display: none !important; }

/* ---- Card internals to match the preview .pcard ---- */
.pcard {
	position: relative;
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid #ececec;
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 1px 3px rgba(0,0,0,.05);
}
.pcard .pbody { padding: 14px 14px 16px; display: flex; flex-direction: column; flex: 1; }
.pcard .pimg { display: block; width: 100%; aspect-ratio: 1 / 1; overflow: hidden; background: #f4f4f4; }
.pcard .pimg img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; }
.pcard .ti { font-weight: 600; font-size: 15px; line-height: 1.3; color: var(--brand-dark); text-decoration: none; margin: 0 0 4px; }
.pcard .ti:hover { color: var(--brand-primary); }
.pcard .wish-wrap { position: absolute; top: 10px; right: 10px; z-index: 3; }
.pcard .star-rating { font-size: 13px; margin: 4px 0; color: var(--brand-accent); }
.pcard .price,
.woocommerce ul.products li.product .pcard .price {
	font-family: var(--font-display);
	font-size: 25px !important;
	font-weight: 700;
	color: var(--brand-dark);
	margin: 6px 0 4px;
	line-height: 1.15;
}
.pcard .price .woocommerce-Price-amount,
.pcard .price ins .woocommerce-Price-amount { font-size: 25px !important; }
.pcard .price del,
.pcard .price del .woocommerce-Price-amount { color: #9a948c; font-weight: 500; font-size: 17px !important; margin-right: 6px; }
.pcard .price ins { text-decoration: none; color: var(--brand-primary); }
/* "incl. GST" note + finance/Afterpay line + in-stock notifier on cards */
.pcard .price .gst { font-family: var(--font-body); font-size: 12px; font-weight: 400; color: #888; }
.pcard .store-pay-line { font-size: 12.5px; color: #555; margin: 2px 0 8px; }
.pcard .store-pay-line b { color: var(--brand-dark); }
.pcard .store-pay-line.fin b { color: #1d5fc2; }
.pcard .stockline { font-size: 12.5px; color: #1e7d32; font-weight: 600; margin: 2px 0 10px; }
.pcard .stockline.out { color: #999; }

/* WC buttons -> preview button style (add-to-cart on cards + general) */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.pcard .button {
	background: var(--brand-primary);
	color: #fff;
	font-family: var(--font-display);
	font-weight: 600;
	letter-spacing: .3px;
	text-transform: uppercase;
	border: none;
	border-radius: 8px;
	padding: 11px 18px;
	font-size: 15px;
	cursor: pointer;
	transition: filter .15s ease;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.pcard .button:hover { filter: brightness(1.07); color: #fff; }
.woocommerce a.button.alt,
.woocommerce button.button.alt { background: var(--brand-dark); }
.pcard .button.added { background: #1d7a37; }

.pcard .button { margin-top: auto; width: 100%; text-align: center; }

/* ---- Single product: brand tokens, full-width hooks render their own sections ---- */
.woocommerce div.product .product_title {
	font-family: var(--font-display);
	font-weight: 700;
	letter-spacing: .3px;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-family: var(--font-display);
	font-weight: 700;
	color: var(--brand-dark);
}
.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins { color: var(--brand-primary); text-decoration: none; }

/* Tabs / breadcrumb to brand */
.woocommerce .woocommerce-breadcrumb { font-size: 13px; color: #8d8883; }
.woocommerce-tabs .tabs li.active a { box-shadow: none; }

/* Shop title + result/ordering row spacing */
.woocommerce-products-header__title,
.woocommerce-loop-product__title {
	font-family: var(--font-display);
	font-weight: 700;
}

/* Sale flash to brand */
.woocommerce span.onsale,
.pcard .badge.sale {
	background: var(--brand-primary);
	color: #fff;
	border-radius: 6px;
	font-family: var(--font-display);
	font-weight: 600;
	text-transform: uppercase;
	min-height: 0;
	min-width: 0;
	padding: 3px 9px;
	line-height: 1.4;
}
.pcard .badge.oos { background: #444; color: #fff; }
.pcard .badge { position: absolute; top: 10px; left: 10px; font-size: 11px; }

/* Hide the leftover old footer (Astra Custom Layout #57744 / Beaver Builder) — superseded by this theme's footer */
.astra-advanced-hook-57744 { display: none !important; }

/* ---- Horizontal product scroller (homepage category rails, e.g. Bull bars) ---- */
.scroller-wrap { position: relative; }
.scroller {
	display: flex;
	gap: 18px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	padding: 4px 2px 14px;
	scrollbar-width: thin;
}
.scroller .pcard {
	flex: 0 0 264px;
	scroll-snap-align: start;
}
@media (max-width: 480px) { .scroller .pcard { flex-basis: 80%; } }
.scroll-btn {
	position: absolute;
	top: calc(50% - 28px);
	z-index: 4;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	border: 1px solid #e3e0dc;
	background: #fff;
	color: var(--brand-dark);
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 2px 10px rgba(0,0,0,.14);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background .15s ease, color .15s ease;
}
.scroll-btn:hover { background: var(--brand-primary); color: #fff; border-color: var(--brand-primary); }
.scroll-btn.prev { left: -10px; }
.scroll-btn.next { right: -10px; }
@media (max-width: 760px) { .scroll-btn { display: none; } }

/* ---- Shop / category archive header + toolbar ---- */
.shield-archive-head { margin: 0 0 4px; }
.shield-archive-title {
	font-family: var(--font-display);
	font-weight: 700;
	letter-spacing: .3px;
	font-size: clamp(26px, 3vw, 38px);
	color: var(--brand-dark);
	margin: 0;
	text-transform: uppercase;
}
.woocommerce-page .term-description { color: #6f6a63; font-size: 15px; margin: 6px 0 14px; max-width: 70ch; }
.shield-shop-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	margin: 8px 0 18px;
}
.shield-shop-toolbar .woocommerce-result-count {
	margin: 0;
	float: none;
	color: #8d8883;
	font-size: 14px;
}
.shield-shop-toolbar .woocommerce-ordering { margin: 0; float: none; }
.shield-shop-toolbar .woocommerce-ordering select {
	border: 1px solid #e3e0dc;
	border-radius: 8px;
	padding: 8px 32px 8px 12px;
	font-size: 14px;
	background: #fff;
	color: var(--brand-dark);
	cursor: pointer;
}
.woocommerce ul.products { clear: both; }
/* The themes' ::before/::after clearfix on ul.products becomes grid items in our
   grid layout and steals the first + last cells (cards appear "missing"). Kill it. */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
ul.products::before,
ul.products::after { content: none !important; display: none !important; }

/* ---- Load more button (replaces numbered pagination on archives) ---- */
.shield-shop-grid .woocommerce-pagination { display: none !important; }
.shield-loadmore-wrap { text-align: center; margin: 30px 0 8px; }
.shield-loadmore { display: inline-block; min-width: 250px; background: var(--brand-dark); }
.shield-loadmore:hover { background: var(--brand-dark); filter: brightness(1.18); }
.shield-loadmore.is-loading { opacity: .65; pointer-events: none; }

/* ---- Single product: "You may also like" rail ---- */
.shield-related { margin-top: 30px; border-top: 1px solid #ececec; padding-top: 8px; }
.shield-related .sechead h2 { color: var(--brand-dark); }

/* ---- Shop / archive filter sidebar (preview parity) ---- */
.shield-shop-grid .ast-woocommerce-container:has(.shield-filters) {
	display: grid;
	grid-template-columns: 248px minmax(0, 1fr);
	column-gap: 30px;
	align-items: start;
}
.shield-shop-grid .ast-woocommerce-container:has(.shield-filters) > *:not(.shield-filters) { grid-column: 2; }
.shield-shop-grid .ast-woocommerce-container:has(.shield-filters) ul.products { grid-template-columns: repeat(3, 1fr) !important; }
@media (max-width: 1200px) { .shield-shop-grid .ast-woocommerce-container:has(.shield-filters) ul.products { grid-template-columns: repeat(2, 1fr) !important; } }

.shield-filters {
	grid-column: 1;
	grid-row: 1 / span 99;
	align-self: start;
}
.shield-filters .ff { border-bottom: 1px solid #ececec; padding: 14px 0; }
.shield-filters .ff:first-of-type { padding-top: 0; }
.shield-filters h4 {
	font-family: var(--font-display);
	font-size: 15px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .4px;
	margin: 0 0 8px;
	color: var(--brand-dark);
}
.shield-filters ul { list-style: none; margin: 0; padding: 0; }
.shield-filters .shield-vsel { font-size: 12.5px; color: #888; line-height: 1.5; }
.shield-filters .shield-vsel a { color: var(--brand-primary); }
.shield-filters .catrow { display: flex; gap: 8px; align-items: flex-start; padding: 3px 0; cursor: pointer; font-size: 13.5px; color: #444; }
.shield-filters .catrow input[type=radio] { margin-top: 3px; accent-color: var(--brand-primary); cursor: pointer; flex: 0 0 auto; }
.shield-filters .catrow.parent { font-weight: 600; color: #1a1a1a; margin-top: 8px; }
.shield-filters .catrow.child { padding-left: 22px; font-size: 12.5px; color: #666; }
.shield-filters .catrow.child i { color: #aaa; font-style: normal; font-size: 11px; }
.shield-filters .catrow.on > span { color: var(--brand-primary); font-weight: 600; }
.shield-filters label { display: flex; gap: 8px; align-items: center; font-size: 13.5px; color: #444; padding: 4px 0; cursor: pointer; }
.shield-filters label.on { color: var(--brand-primary); font-weight: 600; }
.shield-filters input[type=checkbox] { accent-color: var(--brand-primary); cursor: pointer; }
.shield-filters .bn { color: #aaa; font-size: 11.5px; }
.shield-fitnote {
	background: #fdecec;
	border: 1px solid #f5c2c4;
	color: #7a1d20;
	border-radius: 8px;
	padding: 10px 12px;
	font-size: 13px;
	line-height: 1.45;
	margin-bottom: 14px;
}
@media (max-width: 900px) {
	.shield-shop-grid .ast-woocommerce-container:has(.shield-filters) { grid-template-columns: 1fr; }
	.shield-shop-grid .ast-woocommerce-container:has(.shield-filters) > *:not(.shield-filters) { grid-column: 1; }
	.shield-shop-grid .ast-woocommerce-container:has(.shield-filters) ul.products { grid-template-columns: repeat(2, 1fr) !important; }
	.shield-filters {
		grid-row: auto;
		position: static;
		border: 1px solid #ececec;
		border-radius: 12px;
		padding: 4px 16px 8px;
		margin-bottom: 18px;
	}
}
@media (max-width: 480px) {
	.shield-shop-grid .ast-woocommerce-container:has(.shield-filters) ul.products { grid-template-columns: 1fr !important; }
}

/* ============================================================
   Single product page — match the design preview
   ============================================================ */
/* Gallery: rounded main image + thumbnails in a row below (not to the side) */
.single-product div.product .woocommerce-product-gallery { margin-bottom: 0; }
.single-product .woocommerce-product-gallery__wrapper,
.single-product .woocommerce-product-gallery__image,
.single-product .woocommerce-product-gallery__image img,
.single-product .woocommerce-product-gallery .flex-viewport { border-radius: 12px; }
.single-product .woocommerce-product-gallery .flex-viewport { overflow: hidden; border: 1px solid #ececec; }
.single-product .woocommerce-product-gallery img { border-radius: 12px; }
.single-product .flex-control-thumbs {
	display: flex !important;
	flex-wrap: wrap;
	gap: 10px;
	margin: 12px 0 0 !important;
	padding: 0;
	list-style: none;
	float: none !important;
	width: 100% !important;
}
.single-product .flex-control-thumbs li { width: 74px !important; height: auto !important; margin: 0 !important; float: none !important; }
.single-product .flex-control-thumbs img { border-radius: 8px; border: 1.5px solid #e3e0dc; opacity: 1; }
.single-product .flex-control-thumbs img.flex-active,
.single-product .flex-control-thumbs img:hover { border-color: var(--brand-primary); }

/* Big, clear price */
.single-product div.product .summary p.price,
.single-product div.product .summary .price,
.single-product .summary .woocommerce-variation-price .price {
	font-family: var(--font-display);
	font-size: 30px !important;
	font-weight: 800;
	color: var(--brand-dark);
	margin: 8px 0 2px;
	line-height: 1.1;
}
.single-product .summary .price del,
.single-product .summary .price del .amount { font-size: 19px !important; color: #999; font-weight: 400; }
.single-product .summary .price ins { text-decoration: none; }

/* Finance / Afterpay widget -> bordered box */
.store-pay-widget {
	border: 1px solid #e3e0dc;
	border-radius: 8px;
	padding: 11px 14px;
	font-size: 14px;
	display: flex;
	align-items: center;
	gap: 9px;
	margin: 14px 0;
	flex-wrap: wrap;
	line-height: 1.4;
}
.store-pay-widget .ap { background: #b2fce4; color: #000; font-weight: 800; font-size: 11px; padding: 3px 9px; border-radius: 99px; }
.store-pay-widget .fin { background: #1d5fc2; color: #fff; font-weight: 800; font-size: 11px; padding: 3px 9px; border-radius: 99px; }
.store-pay-widget .note { color: #999; font-size: 11px; flex-basis: 100%; }

/* Stock line */
.single-product .summary .stock.in-stock { color: #1e7d32; font-weight: 600; font-size: 14px; margin: 6px 0 12px; }
.single-product .summary .stock.out-of-stock { color: #888; font-weight: 600; }

/* Quantity stepper */
.single-product .quantity { display: inline-flex; align-items: stretch; border: 1.5px solid #e3e0dc; border-radius: 6px; overflow: hidden; }
.single-product .quantity .qty {
	width: 52px; border: 0 !important; text-align: center; font-size: 15px; background: #fff;
	-moz-appearance: textfield; box-shadow: none !important; padding: 0;
}
.single-product .quantity .qty::-webkit-outer-spin-button,
.single-product .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.single-product .quantity button,
.single-product .quantity .plus,
.single-product .quantity .minus {
	width: 40px; border: 0 !important; background: #f4f4f4; color: var(--brand-dark);
	font-size: 18px; line-height: 1; cursor: pointer; border-radius: 0 !important;
}
.single-product .quantity .plus:hover,
.single-product .quantity .minus:hover { background: #e9e7e3; }

/* Variation options rendered as big buttons (replaces the dropdowns) */
.variations .label label { font-family: var(--font-display); font-size: 15px; text-transform: uppercase; letter-spacing: .5px; }
.shield-optbtns { display: flex; flex-wrap: wrap; gap: 10px; margin: 4px 0; }
.shield-optbtn {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	min-width: 92px;
	padding: 10px 18px;
	border: 2px solid var(--brand-primary);
	background: #fff;
	color: var(--brand-dark);
	font-family: var(--font-display);
	font-size: 15px;
	border-radius: 5px;
	cursor: pointer;
	line-height: 1.2;
	text-align: center;
	transition: background .12s, color .12s;
}
.shield-optbtn .ov { font-weight: 600; }
.shield-optbtn .optprice { font-size: 12.5px; font-weight: 400; opacity: .75; }
.shield-optbtn:hover { background: #fff2f2; }
.shield-optbtn.on { background: var(--brand-primary); color: #fff; }
.shield-optbtn.on .optprice { opacity: .95; }
.shield-optbtn:disabled { opacity: .4; cursor: not-allowed; border-color: #ddd; color: #999; }

/* Single variation: hide WC's duplicate price line (our top price updates instead) */
.single-product .single_variation .woocommerce-variation-price { display: none; }

/* Short description moved into the Description tab — hide it from the summary */
.single-product .entry-summary .woocommerce-product-details__short-description { display: none; }

/* Robust: hide the native variation <select> whenever our option buttons exist */
.single-product .variations td.value:has(.shield-optbtns) select,
.single-product .variations .value:has(.shield-optbtns) select { display: none !important; }

/* Afterpay line (sits above the finance box) */
.shield-ap-line { display: flex; align-items: center; gap: 8px; font-size: 14px; margin: 14px 0 8px; color: #333; }
.shield-ap-line .ap { background: #b2fce4; color: #000; font-weight: 800; font-size: 11px; padding: 3px 9px; border-radius: 99px; }

/* "Not sure?" workshop call line */
.shield-callrow { font-size: 13.5px; margin: 14px 0 2px; color: #444; }
.shield-callrow a { color: var(--brand-primary); font-weight: 700; text-decoration: none; }
.shield-callrow span { color: #888; }

/* Astra Pro renders its OWN variation swatch buttons (.ast-variation-button-group);
   we render priced buttons (.shield-optbtns), so hide Astra's to kill the duplicate. */
.single-product .ast-variation-button-group { display: none !important; }

/* Add-to-cart fills the row next to the qty stepper; express pay buttons full-width below. */
.single-product .woocommerce-variation-add-to-cart,
.single-product form.cart:not(.variations_form) { display: flex; align-items: stretch; gap: 12px; flex-wrap: wrap; }
.single-product .single_add_to_cart_button,
.single-product .single_add_to_cart_button.alt { flex: 1 1 220px; background: var(--brand-primary) !important; color: #fff !important; }
.single-product .single_add_to_cart_button:hover,
.single-product .single_add_to_cart_button.alt:hover { background: var(--brand-primary) !important; filter: brightness(1.07); color: #fff !important; }
.single-product #wc-stripe-express-checkout-element { width: 100%; flex-basis: 100%; margin: 12px 0 0; }

/* Product tabs — flat underline style (matches the preview) */
.single-product .woocommerce-tabs ul.tabs {
	display: flex;
	gap: 26px;
	flex-wrap: wrap;
	margin: 0 0 24px;
	padding: 0 !important;
	border-bottom: 4px solid #e3e0dc;
	list-style: none;
	overflow: visible !important;
}
.single-product .woocommerce-tabs ul.tabs::before,
.single-product .woocommerce-tabs ul.tabs::after { display: none !important; }
.single-product .woocommerce-tabs ul.tabs li {
	background: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
}
.single-product .woocommerce-tabs ul.tabs li::before,
.single-product .woocommerce-tabs ul.tabs li::after { display: none !important; border: 0 !important; }
.single-product .woocommerce-tabs ul.tabs li a {
	display: block;
	position: relative;
	z-index: 1;
	padding: 11px 18px;
	font-family: var(--font-display);
	font-size: 17px;
	font-weight: 600;
	letter-spacing: .3px;
	text-transform: uppercase;
	color: #8a8a8a !important;
	border-bottom: 4px solid transparent;
	margin-bottom: -4px;
}
.single-product .woocommerce-tabs ul.tabs li a:hover { color: var(--brand-dark) !important; }
.single-product .woocommerce-tabs ul.tabs li.active a {
	color: #111 !important;
	border-bottom: 4px solid transparent !important;
}
.single-product .woocommerce-tabs ul.tabs li.active a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -4px;
	height: 4px;
	background: #E31E24;
	z-index: 3;
}
.single-product .woocommerce-tabs .woocommerce-Tabs-panel > h2:first-child,
.single-product .woocommerce-tabs .panel > h2:first-child {
	font-family: var(--font-display);
	font-size: 22px;
	font-weight: 700;
	margin: 0 0 14px;
	color: var(--brand-dark);
}

/* Description tab: text + spec table */
.shield-desc { max-width: 720px; }
.shield-desc p { margin: 0 0 12px; }
table.shield-spec { width: 100%; max-width: 540px; border-collapse: collapse; margin-top: 16px; }
table.shield-spec th, table.shield-spec td { text-align: left; padding: 9px 13px; border: 1px solid #ececec; font-size: 14px; }
table.shield-spec th { background: #f7f6f4; font-family: var(--font-display); width: 140px; font-weight: 600; color: var(--brand-dark); }

/* Trust row under the buy area */
.shield-trow { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 18px 0 0; padding-top: 14px; border-top: 1px solid #ececec; font-size: 13px; color: #555; }
.shield-trow span { position: relative; padding-left: 20px; }
.shield-trow span::before { content: "\2713"; position: absolute; left: 0; color: #1e7d32; font-weight: 700; }

/* ---- Find-a-fitter page (constrained margin + header) ---- */
.shield-fitter-wrap { max-width: 1180px; margin: 0 auto; padding: 36px 24px 64px; grid-template-columns: 1.4fr 1fr !important; gap: 36px !important; }
.shield-fitter-head { margin-bottom: 24px; grid-column: 1 / -1; }
.shield-fitter-wrap > .shield-fitter-map { grid-column: 1; grid-row: 2; align-self: start; position: sticky; top: 20px; }
.shield-fitter-wrap > .shield-fitter-list { grid-column: 2; grid-row: 2; }
@media (max-width: 860px) { .shield-fitter-wrap > .shield-fitter-map, .shield-fitter-wrap > .shield-fitter-list { grid-column: 1 / -1; position: static; } }
.shield-fitter-head h1 { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .5px; font-size: clamp(36px, 5vw, 54px); line-height: 1.05; color: var(--brand-dark); margin: 0 0 10px; }
.shield-fitter-head p { font-size: 17px; color: #555; margin: 0; max-width: 60ch; }

/* ---- WoF mod checker page (centered column + title) ---- */
.shield-wof { margin: 40px auto 70px !important; }
.shield-wof .wof-title { font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .5px; font-size: clamp(30px, 4vw, 42px); line-height: 1.05; color: var(--brand-dark); margin: 0 0 8px; }
.shield-wof .wof-sub { color: #777; margin-bottom: 24px; }
.shield-wof .wof-opts button { color: #14181c !important; }
.shield-wof .wof-opts button.on { color: var(--brand-primary); }

/* ---- Customer Rigs page ---- */
.shield-rigs-wrap { max-width:1180px; margin:0 auto; padding:40px 24px 64px; }
.shield-rigs-head { margin-bottom:26px; }
.shield-rigs-head h1 { font-family:var(--font-display); font-weight:700; text-transform:uppercase; letter-spacing:.5px; font-size:clamp(34px,4.5vw,48px); line-height:1.05; color:var(--brand-dark); margin:0 0 8px; }
.shield-rigs-head p { font-size:16px; color:#777; margin:0; max-width:70ch; }
.shield-riggrid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.shield-rig { border:1px solid var(--grey-line,#e3e0dc); border-radius:9px; overflow:hidden; background:#fff; }
.shield-rig .ri { aspect-ratio:4/3; background:#17181a; overflow:hidden; }
.shield-rig .ri img { width:100%; height:100%; object-fit:cover; display:block; }
.shield-rig .ri .ph { display:block; width:100%; height:100%; background:linear-gradient(135deg,#1b1d20,#2a2d31); }
.shield-rig .rt { padding:14px 16px; }
.shield-rig .rt h3 { font-size:18px; text-transform:none; font-family:var(--font-display); margin:0; color:var(--brand-dark); line-height:1.2; }
.shield-rig .who { font-size:12px; color:#888; margin:3px 0 10px; }
.shield-rig .parts { display:flex; flex-wrap:wrap; gap:6px; }
.shield-rig .parts a, .shield-rig .parts span { font-size:11.5px; border:1px solid var(--grey-line,#e3e0dc); border-radius:99px; padding:3px 10px; color:#444; text-decoration:none; line-height:1.7; }
.shield-rig .parts a:hover { border-color:var(--brand-primary,#E31E24); color:var(--brand-primary,#E31E24); }
.shield-rig .parts a.shop-build { border-color:var(--brand-primary,#E31E24); color:var(--brand-primary,#E31E24); font-weight:600; }
@media (max-width:980px){ .shield-riggrid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .shield-riggrid { grid-template-columns:1fr; } }

/* ---- Guides page (index grid + single article) ---- */
.shield-guides-wrap { max-width:1180px; margin:0 auto; padding:40px 24px 64px; }
.shield-guides-head { margin-bottom:26px; }
.shield-guides-head h1 { font-family:var(--font-display); font-weight:700; text-transform:uppercase; letter-spacing:.5px; font-size:clamp(34px,4.5vw,48px); line-height:1.05; color:var(--brand-dark); margin:0 0 8px; }
.shield-guides-head p { font-size:16px; color:#777; margin:0; max-width:70ch; }
.ggrid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; align-items:start; }
.gcard { border:1px solid var(--grey-line,#e3e0dc); border-radius:8px; overflow:hidden; background:#fff; text-decoration:none; color:inherit; display:block; transition:box-shadow .15s, transform .15s; }
.gcard:hover { box-shadow:0 6px 20px rgba(0,0,0,.08); transform:translateY(-2px); }
.gcard .gi { aspect-ratio:16/8; display:flex; align-items:center; justify-content:center; font-size:46px; background:linear-gradient(135deg,#1d1d1f,#3a3a3e); }
.gcard .gi.giwof { background:linear-gradient(135deg,#13233a,#1d5fc2); }
.gcard .gt { padding:16px; }
.gcard h3 { font-size:18px; line-height:1.15; margin:0 0 6px; font-family:var(--font-display); color:var(--brand-dark); }
.gcard p { font-size:13px; color:#666; margin:0; }
.gcard .gmeta { font-size:11.5px; color:#999; margin-top:8px; }
@media (max-width:980px){ .ggrid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .ggrid { grid-template-columns:1fr; } }
/* single guide article */
.shield-guide-article { max-width:760px; margin:0 auto; padding:34px 20px 60px; }
.shield-guide-article .crumb { font-size:13px; color:#888; margin-bottom:14px; }
.shield-guide-article .crumb a { color:var(--brand-primary,#E31E24); text-decoration:none; }
.shield-guide-article .amETA { color:#888; font-size:13px; margin-bottom:24px; }
.shield-guide-article .abody { font-size:16px; line-height:1.7; color:#222; }
.shield-guide-article .abody h2 { font-size:25px; margin:30px 0 12px; font-family:var(--font-display); color:var(--brand-dark); }
.shield-guide-article .abody p { margin-bottom:14px; }
.shield-guide-article .abody ul, .shield-guide-article .abody ol { margin:0 0 16px 22px; }
.shield-guide-article .abody li { margin-bottom:7px; }
.shield-guide-article .abody a { color:var(--brand-primary,#E31E24); }
.shield-guide-article .authorbox { display:flex; gap:14px; align-items:flex-start; background:#f6f4f1; border-radius:9px; padding:18px 20px; margin:28px 0; }
.shield-guide-article .authorbox .av { font-size:30px; line-height:1; }
.shield-guide-article .authorbox b { display:block; margin-bottom:4px; }
.shield-guide-article .authorbox p { font-size:13.5px; color:#666; margin:0; }
.shield-guide-article .gcta { display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; background:var(--brand-dark,#14181c); color:#fff; border-radius:10px; padding:22px 24px; margin:28px 0 22px; }
.shield-guide-article .gcta h3 { margin:0; font-family:var(--font-display); font-size:20px; }
.shield-guide-article .gcta p { margin:4px 0 0; color:#bfb9b4; font-size:14px; }
.shield-guide-article .gcta .btn { background:var(--brand-primary,#E31E24); color:#fff; border-radius:8px; padding:12px 20px; font-weight:600; text-decoration:none; white-space:nowrap; font-family:var(--font-display); }
.shield-guide-article .guide-back { margin-top:30px; }
.shield-guide-article .guide-back a { color:var(--brand-primary,#E31E24); text-decoration:none; }
.shield-guide-related { list-style:none; margin:0 0 8px !important; padding:0; }

/* ---- mobile fitter stack fix (map + list were overlapping) ---- */
@media (max-width:860px){
  .shield-fitter-wrap > .shield-fitter-map,
  .shield-fitter-wrap > .shield-fitter-list { grid-row: auto !important; }
  .shield-fitter-wrap > .shield-fitter-map { margin-bottom: 18px; }
}
/* build:1781835829420 */
/* ===== mobile collapsible shop filters (mobile-only; desktop sidebar untouched) ===== */
.shield-filterbar{display:none}
@media(max-width:980px){
  .shield-filterbar{display:flex;align-items:center;justify-content:space-between;width:100%;background:var(--brand-dark,#14181c);color:#fff;border:0;border-radius:8px;padding:13px 16px;font-family:var(--font-display);font-size:15px;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;margin-bottom:14px}
  .shield-filterbar .fbcaret{transition:transform .2s;font-size:20px;line-height:1}
  .shield-filterbar.open .fbcaret{transform:rotate(90deg)}
  .shield-shop-grid .shield-filters{display:none}
  .shield-shop-grid .shield-filters.open{display:block}
  .shield-filters .ff h4{cursor:pointer;display:flex;justify-content:space-between;align-items:center}
  .shield-filters .ff h4::after{content:"\203A";transform:rotate(90deg);transition:transform .2s;font-size:18px;color:var(--brand-primary,#E31E24)}
  .shield-filters .ff.ff-collapsed h4::after{transform:rotate(0deg)}
  .shield-filters .ff.ff-collapsed > *:not(h4){display:none}
}


/* Shop/search filter — stop theme forcing radios to full width (was squashing category labels) */
.shield-filters .catrow input{width:auto !important;min-width:0;flex:0 0 auto}
.shield-filters .catrow span{flex:1 1 auto;white-space:normal}


/* Filters: ALL checkbox/radio rows (price, brand, availability too) — natural-size control + left-aligned labels */
.shield-filters input{width:auto !important;min-width:0;flex:0 0 auto}
.shield-filters label{justify-content:flex-start !important;text-align:left}
.shield-filters label span{flex:1 1 auto;text-align:left}
