/*
Theme Name: Boltage
Theme URI: https://boltage.co.za
Author: Boltage
Author URI: https://boltage.co.za
Description: A fast, SEO-first WooCommerce theme for consumer electronics retail. Ships with complete JSON-LD structured data (Organization, LocalBusiness, WebSite, BreadcrumbList, Product, FAQPage), Open Graph and Twitter cards, self-hosted fonts, and a spec-forward product layout built for powerbanks, cables, chargers and audio. No page builder required.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: boltage
Tags: e-commerce, one-column, two-columns, custom-colors, custom-logo, custom-menu, featured-images, full-width-template, threaded-comments, translation-ready, block-patterns
WC requires at least: 7.0
WC tested up to: 9.4
*/

/* ==========================================================================
   1. FONT
   Self-hosted Archivo Variable (OFL-1.1). Width + weight axes.
   Headlines run slightly expanded; spec data runs condensed.
   ========================================================================== */

@font-face {
	font-family: "Archivo";
	src: url("assets/fonts/archivo-var.woff2") format("woff2-variations"),
	     url("assets/fonts/archivo-var.woff2") format("woff2");
	font-weight: 100 900;
	font-stretch: 62% 125%;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
	               U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC,
	               U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ==========================================================================
   2. TOKENS
   Overridden at runtime by the Customizer (see inc/customizer.php).
   ========================================================================== */

:root {
	--bl-ink: #0a0b0d;
	--bl-panel: #14161c;
	--bl-panel-2: #1b1e26;
	--bl-edge: #262a33;
	--bl-edge-soft: rgba(255, 255, 255, 0.07);
	--bl-volt: #ffe81a;
	--bl-volt-deep: #d6c200;
	--bl-text: #f2f4f7;
	--bl-mist: #9ba2b0;
	--bl-mist-dim: #6c7280;
	--bl-live: #34d399;
	--bl-low: #ff9f43;
	--bl-out: #8a8f99;
	--bl-danger: #ff5d5d;
	--bl-paper: #f7f8fa;
	--bl-paper-ink: #16181d;

	--bl-r-sm: 6px;
	--bl-r: 12px;
	--bl-r-lg: 20px;
	--bl-pill: 999px;

	--bl-wrap: 1240px;
	--bl-gutter: 24px;

	--bl-shadow: 0 1px 0 rgba(255, 255, 255, 0.04) inset, 0 18px 40px -24px rgba(0, 0, 0, 0.9);
	--bl-ease: cubic-bezier(0.22, 0.61, 0.36, 1);

	--bl-header-h: 68px;
}

/* ==========================================================================
   3. RESET + BASE
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--bl-header-h) + 20px);
}

body {
	margin: 0;
	background: var(--bl-ink);
	color: var(--bl-text);
	font-family: "Archivo", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-size: 16px;
	line-height: 1.6;
	font-variant-numeric: tabular-nums;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

img, svg, video, canvas { max-width: 100%; height: auto; display: block; }
svg { fill: currentColor; }

a { color: inherit; text-decoration-color: var(--bl-volt-deep); text-underline-offset: 3px; }
a:hover { text-decoration-color: var(--bl-volt); }

button, input, select, textarea { font: inherit; color: inherit; }

:focus-visible {
	outline: 2px solid var(--bl-volt);
	outline-offset: 3px;
	border-radius: 3px;
}

::selection { background: var(--bl-volt); color: #000; }

hr {
	border: 0;
	border-top: 1px solid var(--bl-edge);
	margin: 40px 0;
}

table { border-collapse: collapse; width: 100%; }

/* ==========================================================================
   4. TYPOGRAPHY
   ========================================================================== */

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 0.5em;
	font-weight: 700;
	font-stretch: 112%;
	letter-spacing: -0.022em;
	line-height: 1.08;
	text-wrap: balance;
}

h1 { font-size: clamp(2.1rem, 5.4vw, 3.6rem); }
h2 { font-size: clamp(1.6rem, 3.4vw, 2.4rem); }
h3 { font-size: clamp(1.2rem, 2.2vw, 1.5rem); }
h4 { font-size: 1.08rem; }

p { margin: 0 0 1.1em; max-width: 68ch; }
p:last-child { margin-bottom: 0; }

.bl-lede {
	font-size: clamp(1.02rem, 1.7vw, 1.18rem);
	color: var(--bl-mist);
	line-height: 1.55;
	max-width: 52ch;
}

.bl-spec {
	font-stretch: 87%;
	font-weight: 600;
	letter-spacing: 0.01em;
	font-variant-numeric: tabular-nums;
}

.bl-section-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
	margin-bottom: 28px;
}
.bl-section-head h2 { margin: 0; }
.bl-section-head .bl-more {
	color: var(--bl-mist);
	font-size: 0.92rem;
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid var(--bl-edge);
	padding-bottom: 2px;
	transition: color 0.18s var(--bl-ease), border-color 0.18s var(--bl-ease);
	white-space: nowrap;
}
.bl-section-head .bl-more:hover { color: var(--bl-volt); border-color: var(--bl-volt); }

/* ==========================================================================
   5. LAYOUT
   ========================================================================== */

.bl-wrap {
	width: 100%;
	max-width: var(--bl-wrap);
	margin-inline: auto;
	padding-inline: var(--bl-gutter);
}

.bl-section { padding-block: clamp(48px, 7vw, 84px); }
.bl-section--tight { padding-block: clamp(32px, 4vw, 48px); }
.bl-section--paper {
	background: var(--bl-paper);
	color: var(--bl-paper-ink);
}
.bl-section--paper .bl-lede,
.bl-section--paper .bl-muted { color: #5b6270; }

.bl-grid { display: grid; gap: 20px; }
.bl-muted { color: var(--bl-mist); }
.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; word-wrap: normal !important;
}
.screen-reader-text:focus {
	background: var(--bl-volt); color: #000; clip: auto; clip-path: none;
	display: block; height: auto; width: auto; padding: 14px 22px;
	left: 8px; top: 8px; font-weight: 700; z-index: 1000; border-radius: var(--bl-r-sm);
}

/* ==========================================================================
   6. BUTTONS
   ========================================================================== */

.bl-btn,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.wc-block-components-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	padding: 13px 24px;
	border: 1px solid transparent;
	border-radius: var(--bl-pill);
	background: var(--bl-volt);
	color: #000;
	font-weight: 700;
	font-size: 0.95rem;
	font-stretch: 100%;
	line-height: 1.2;
	letter-spacing: -0.005em;
	text-decoration: none;
	cursor: pointer;
	transition: transform 0.16s var(--bl-ease), background-color 0.16s var(--bl-ease), box-shadow 0.16s var(--bl-ease);
	-webkit-appearance: none;
	appearance: none;
}

.bl-btn:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
	background: #fff06a;
	color: #000;
	transform: translateY(-1px);
	box-shadow: 0 10px 26px -14px var(--bl-volt);
}

.bl-btn:active { transform: translateY(0); }

.bl-btn--ghost,
.woocommerce a.button.wc-backward,
.woocommerce a.added_to_cart {
	background: transparent;
	color: var(--bl-text);
	border-color: var(--bl-edge);
}
.bl-btn--ghost:hover,
.woocommerce a.button.wc-backward:hover {
	background: var(--bl-panel-2);
	color: var(--bl-text);
	border-color: var(--bl-volt);
	box-shadow: none;
}

.bl-btn--wide { width: 100%; }
.bl-btn--sm { padding: 9px 17px; font-size: 0.87rem; }

.bl-btn[disabled],
.woocommerce button.button:disabled,
.woocommerce button.button.alt:disabled,
.woocommerce button.button:disabled[disabled] {
	opacity: 0.45;
	cursor: not-allowed;
	transform: none;
	background: var(--bl-volt);
	color: #000;
}

/* ==========================================================================
   7. ANNOUNCEMENT STRIP
   ========================================================================== */

.bl-announce {
	background: var(--bl-volt);
	color: #000;
	font-size: 0.85rem;
	font-weight: 650;
	font-stretch: 94%;
	letter-spacing: -0.003em;
	position: relative;
	z-index: 60;
}
.bl-announce__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 38px;
	padding: 8px 46px 8px var(--bl-gutter);
	text-align: center;
}
.bl-announce a { color: #000; font-weight: 800; }
.bl-announce__close {
	position: absolute;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
	background: none;
	border: 0;
	width: 30px;
	height: 30px;
	display: grid;
	place-items: center;
	cursor: pointer;
	border-radius: 50%;
	opacity: 0.6;
}
.bl-announce__close:hover { opacity: 1; background: rgba(0, 0, 0, 0.08); }

/* ==========================================================================
   8. HEADER + NAV
   ========================================================================== */

.bl-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(10, 11, 13, 0.86);
	backdrop-filter: saturate(160%) blur(14px);
	-webkit-backdrop-filter: saturate(160%) blur(14px);
	border-bottom: 1px solid var(--bl-edge);
}
.admin-bar .bl-header { top: 32px; }

.bl-header__inner {
	display: flex;
	align-items: center;
	gap: 18px;
	min-height: var(--bl-header-h);
}

/* The charge bar: fills with scroll depth. The brand's one signature gesture. */
.bl-charge {
	position: absolute;
	left: 0;
	bottom: -1px;
	height: 2px;
	width: 0%;
	background: var(--bl-volt);
	box-shadow: 0 0 12px var(--bl-volt);
	transition: width 0.1s linear;
	pointer-events: none;
}

.bl-brand {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	text-decoration: none;
	flex: 0 0 auto;
	color: var(--bl-text);
}
.bl-brand__mark { color: var(--bl-volt); flex: 0 0 auto; }
.bl-brand__name {
	font-size: 1.22rem;
	font-weight: 800;
	font-stretch: 108%;
	letter-spacing: -0.035em;
}
.bl-brand img { max-height: 40px; width: auto; }

.bl-nav { margin-left: auto; }
.bl-nav ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 4px; }
.bl-nav li { position: relative; }
.bl-nav a {
	display: block;
	padding: 9px 13px;
	font-size: 0.93rem;
	font-weight: 600;
	color: var(--bl-mist);
	text-decoration: none;
	border-radius: var(--bl-r-sm);
	transition: color 0.16s var(--bl-ease), background-color 0.16s var(--bl-ease);
	white-space: nowrap;
}
.bl-nav a:hover,
.bl-nav .current-menu-item > a,
.bl-nav .current_page_item > a,
.bl-nav .current-menu-ancestor > a {
	color: var(--bl-text);
	background: var(--bl-panel-2);
}

.bl-nav .sub-menu {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	min-width: 214px;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	background: var(--bl-panel);
	border: 1px solid var(--bl-edge);
	border-radius: var(--bl-r);
	padding: 7px;
	box-shadow: var(--bl-shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-5px);
	transition: opacity 0.16s var(--bl-ease), transform 0.16s var(--bl-ease), visibility 0.16s;
}
.bl-nav li:hover > .sub-menu,
.bl-nav li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.bl-nav .sub-menu a { padding: 9px 12px; }
.bl-nav .sub-menu .sub-menu { top: -8px; left: calc(100% + 6px); }

.bl-tools { display: flex; align-items: center; gap: 2px; flex: 0 0 auto; }
.bl-icon-btn {
	position: relative;
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border: 0;
	background: none;
	color: var(--bl-mist);
	border-radius: 50%;
	cursor: pointer;
	text-decoration: none;
	transition: color 0.16s var(--bl-ease), background-color 0.16s var(--bl-ease);
}
.bl-icon-btn:hover { color: var(--bl-volt); background: var(--bl-panel-2); }

.bl-cart-count {
	position: absolute;
	top: 3px;
	right: 2px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	display: grid;
	place-items: center;
	background: var(--bl-volt);
	color: #000;
	font-size: 0.68rem;
	font-weight: 800;
	border-radius: var(--bl-pill);
	line-height: 1;
}
.bl-cart-count:empty, .bl-cart-count[data-count="0"] { display: none; }

.bl-burger { display: none; }

/* Search drawer */
.bl-searchbar {
	display: none;
	border-top: 1px solid var(--bl-edge);
	background: var(--bl-panel);
	padding-block: 16px;
}
.bl-searchbar.is-open { display: block; }
.bl-searchbar form { display: flex; gap: 10px; }
.bl-searchbar input[type="search"] { flex: 1; }

/* ==========================================================================
   9. MOBILE DRAWER
   ========================================================================== */

.bl-drawer {
	position: fixed;
	inset: 0 0 0 auto;
	width: min(340px, 88vw);
	background: var(--bl-panel);
	border-left: 1px solid var(--bl-edge);
	z-index: 90;
	transform: translateX(100%);
	transition: transform 0.28s var(--bl-ease);
	display: flex;
	flex-direction: column;
	overflow-y: auto;
	overscroll-behavior: contain;
	visibility: hidden;
}
.bl-drawer.is-open { transform: translateX(0); visibility: visible; }
.bl-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 18px;
	border-bottom: 1px solid var(--bl-edge);
	position: sticky;
	top: 0;
	background: var(--bl-panel);
}
.bl-drawer__body { padding: 12px 10px 30px; }
.bl-drawer ul { list-style: none; margin: 0; padding: 0; }
.bl-drawer a {
	display: block;
	padding: 12px 12px;
	font-size: 1rem;
	font-weight: 600;
	text-decoration: none;
	border-radius: var(--bl-r-sm);
	color: var(--bl-text);
}
.bl-drawer a:hover { background: var(--bl-panel-2); color: var(--bl-volt); }
.bl-drawer .sub-menu { padding-left: 12px; border-left: 1px solid var(--bl-edge); margin-left: 12px; }
.bl-drawer .sub-menu a { font-size: 0.92rem; font-weight: 500; color: var(--bl-mist); }

.bl-scrim {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.6);
	z-index: 80;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.28s var(--bl-ease), visibility 0.28s;
	border: 0;
	cursor: pointer;
}
.bl-scrim.is-open { opacity: 1; visibility: visible; }

/* ==========================================================================
   10. HERO
   ========================================================================== */

.bl-hero {
	position: relative;
	border-bottom: 1px solid var(--bl-edge);
	overflow: hidden;
}
.bl-hero::after {
	content: "";
	position: absolute;
	top: -30%;
	right: -10%;
	width: 620px;
	height: 620px;
	background: radial-gradient(circle, rgba(255, 232, 26, 0.11), transparent 66%);
	pointer-events: none;
	z-index: 0;
}
.bl-hero__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	gap: clamp(28px, 5vw, 60px);
	align-items: center;
	padding-block: clamp(44px, 6.5vw, 80px);
}
.bl-hero__title { margin-bottom: 18px; }
.bl-hero__copy { margin-bottom: 26px; }

.bl-hero__media {
	position: relative;
	border-radius: var(--bl-r-lg);
	overflow: hidden;
	background: var(--bl-panel);
	border: 1px solid var(--bl-edge);
	aspect-ratio: 4 / 3;
}
.bl-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.bl-hero__media--empty {
	display: grid;
	place-items: center;
	color: var(--bl-mist-dim);
	text-align: center;
	padding: 30px;
	font-size: 0.88rem;
}

.bl-hero__specs {
	position: absolute;
	left: 16px;
	bottom: 16px;
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}
.bl-hero__specs span {
	background: rgba(10, 11, 13, 0.82);
	backdrop-filter: blur(8px);
	border: 1px solid var(--bl-edge);
	color: var(--bl-text);
	padding: 6px 12px;
	border-radius: var(--bl-pill);
	font-size: 0.79rem;
	font-stretch: 87%;
	font-weight: 650;
}

/* Shop-by-need finder: the hero's interactive moment */
.bl-need { margin-top: 4px; }
.bl-need__q {
	font-size: 0.9rem;
	color: var(--bl-mist);
	margin-bottom: 11px;
	font-weight: 600;
}
.bl-need__row { display: flex; flex-wrap: wrap; gap: 9px; }
.bl-need__chip {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 11px 17px;
	border: 1px solid var(--bl-edge);
	background: var(--bl-panel);
	border-radius: var(--bl-pill);
	text-decoration: none;
	font-size: 0.9rem;
	font-weight: 650;
	color: var(--bl-text);
	transition: border-color 0.18s var(--bl-ease), background-color 0.18s var(--bl-ease);
}
.bl-need__chip:hover { border-color: var(--bl-volt); background: var(--bl-panel-2); }
.bl-need__chip small {
	color: var(--bl-mist);
	font-size: 0.78rem;
	font-weight: 600;
	font-stretch: 87%;
}

/* Battery-fill indicator inside each chip */
.bl-cell {
	display: inline-flex;
	gap: 2px;
	align-items: center;
	flex: 0 0 auto;
}
.bl-cell i {
	display: block;
	width: 4px;
	height: 13px;
	border-radius: 1px;
	background: var(--bl-edge);
}
.bl-cell i.on { background: var(--bl-volt); }

/* ==========================================================================
   11. TRUST STRIP
   ========================================================================== */

.bl-trust {
	border-bottom: 1px solid var(--bl-edge);
	background: var(--bl-panel);
}
.bl-trust__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 1px;
	background: var(--bl-edge);
	border-inline: 1px solid var(--bl-edge);
}
.bl-trust__item {
	background: var(--bl-panel);
	padding: 20px 22px;
	display: flex;
	gap: 13px;
	align-items: flex-start;
}
.bl-trust__item svg { color: var(--bl-volt); flex: 0 0 auto; margin-top: 2px; }
.bl-trust__item strong { display: block; font-size: 0.93rem; font-weight: 700; line-height: 1.3; }
.bl-trust__item span { font-size: 0.82rem; color: var(--bl-mist); line-height: 1.45; display: block; margin-top: 3px; }

/* ==========================================================================
   12. CATEGORY TILES
   ========================================================================== */

.bl-cats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.bl-cats--3 { grid-template-columns: repeat(3, 1fr); }
.bl-cats--2 { grid-template-columns: repeat(2, 1fr); }
.bl-cats--1 { grid-template-columns: 1fr; }

.bl-cat {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 232px;
	padding: 20px;
	border: 1px solid var(--bl-edge);
	border-radius: var(--bl-r);
	background: var(--bl-panel);
	overflow: hidden;
	text-decoration: none;
	color: var(--bl-text);
	transition: border-color 0.2s var(--bl-ease);
}
.bl-cat:hover { border-color: var(--bl-volt); }
.bl-cat__img {
	position: absolute;
	inset: 0;
	opacity: 0.5;
	transition: opacity 0.3s var(--bl-ease), transform 0.5s var(--bl-ease);
}
.bl-cat__img img { width: 100%; height: 100%; object-fit: cover; }
.bl-cat:hover .bl-cat__img { opacity: 0.66; transform: scale(1.035); }
.bl-cat::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(10, 11, 13, 0.95) 12%, rgba(10, 11, 13, 0.2) 62%, transparent);
}
.bl-cat__body { position: relative; z-index: 2; }
.bl-cat__name { font-size: 1.12rem; font-weight: 700; font-stretch: 106%; letter-spacing: -0.02em; }
.bl-cat__count { font-size: 0.8rem; color: var(--bl-mist); font-stretch: 87%; font-weight: 600; margin-top: 3px; }

/* ==========================================================================
   13. PRODUCT CARDS
   Spec-forward: buyers of powerbanks choose on capacity and wattage,
   so those sit on the card face rather than behind a click.
   ========================================================================== */

.woocommerce ul.products,
ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }

.woocommerce ul.products li.product,
ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	clear: none !important;
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--bl-panel);
	border: 1px solid var(--bl-edge);
	border-radius: var(--bl-r);
	overflow: hidden;
	transition: border-color 0.2s var(--bl-ease), transform 0.2s var(--bl-ease);
}
.woocommerce ul.products li.product:hover { border-color: #3a3f4b; transform: translateY(-2px); }

.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: inherit;
	flex: 1;
}

.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	margin: 0;
	background: var(--bl-panel-2);
	box-shadow: none;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-size: 0.97rem !important;
	font-weight: 650;
	font-stretch: 100%;
	letter-spacing: -0.012em;
	line-height: 1.32;
	padding: 14px 15px 0;
	margin: 0;
	color: var(--bl-text);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.bl-card-specs {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	padding: 10px 15px 0;
}
.bl-card-specs span {
	font-size: 0.74rem;
	font-stretch: 85%;
	font-weight: 700;
	color: var(--bl-mist);
	border: 1px solid var(--bl-edge);
	padding: 3px 8px;
	border-radius: var(--bl-r-sm);
	white-space: nowrap;
}

.woocommerce ul.products li.product .price {
	display: block;
	padding: 12px 15px 0;
	margin: auto 0 0;
	color: var(--bl-volt);
	font-size: 1.12rem;
	font-weight: 800;
	font-stretch: 100%;
	letter-spacing: -0.02em;
}
.woocommerce ul.products li.product .price del {
	color: var(--bl-mist-dim);
	font-size: 0.85rem;
	font-weight: 500;
	opacity: 1;
	margin-right: 6px;
}
.woocommerce ul.products li.product .price ins { text-decoration: none; background: none; color: var(--bl-volt); }

.bl-stock {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 0.78rem;
	font-weight: 650;
	font-stretch: 90%;
	color: var(--bl-mist);
	padding: 8px 15px 0;
}
.bl-stock::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--bl-live);
	flex: 0 0 auto;
}
.bl-stock.is-low { color: var(--bl-low); }
.bl-stock.is-low::before { background: var(--bl-low); }
.bl-stock.is-out { color: var(--bl-out); }
.bl-stock.is-out::before { background: var(--bl-out); }

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
	margin: 14px 15px 15px;
	width: calc(100% - 30px);
	padding: 11px 16px;
	font-size: 0.88rem;
}
.woocommerce ul.products li.product .added_to_cart { margin-top: 0; }

.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale {
	position: absolute;
	top: 11px;
	left: 11px;
	right: auto;
	margin: 0;
	background: var(--bl-volt);
	color: #000;
	font-size: 0.73rem;
	font-weight: 800;
	font-stretch: 90%;
	padding: 4px 10px;
	min-height: 0;
	min-width: 0;
	line-height: 1.5;
	border-radius: var(--bl-pill);
	z-index: 3;
}

/* ==========================================================================
   14. SHOP / ARCHIVE CHROME
   ========================================================================== */

.bl-page-head {
	border-bottom: 1px solid var(--bl-edge);
	padding-block: clamp(26px, 4vw, 44px);
	background: var(--bl-panel);
}
.bl-page-head h1 { margin-bottom: 8px; }
.bl-page-head .bl-lede { margin-bottom: 0; }

.bl-crumbs,
.woocommerce .woocommerce-breadcrumb {
	font-size: 0.82rem;
	color: var(--bl-mist-dim);
	margin: 0 0 14px;
	font-weight: 550;
	font-stretch: 94%;
	padding: 0;
}
.bl-crumbs a,
.woocommerce .woocommerce-breadcrumb a { color: var(--bl-mist); text-decoration: none; }
.bl-crumbs a:hover,
.woocommerce .woocommerce-breadcrumb a:hover { color: var(--bl-volt); }
.bl-crumbs__sep { margin: 0 7px; opacity: 0.5; }

.bl-shop-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	padding-block: 20px 24px;
	border-bottom: 1px solid var(--bl-edge);
	margin-bottom: 26px;
}
.woocommerce .woocommerce-result-count {
	margin: 0;
	font-size: 0.86rem;
	color: var(--bl-mist);
	float: none;
}
.woocommerce .woocommerce-ordering { margin: 0; float: none; }

.bl-layout {
	display: grid;
	grid-template-columns: 236px minmax(0, 1fr);
	gap: 40px;
	align-items: start;
}
.bl-layout--single { grid-template-columns: minmax(0, 1fr); }

/* Main content comes first in the markup for screen readers and crawlers;
   the sidebar is pulled into the left column visually. */
.bl-sidebar {
	position: sticky;
	top: calc(var(--bl-header-h) + 20px);
	order: -1;
}
.bl-main { min-width: 0; }

/* ==========================================================================
   15. FORMS
   ========================================================================== */

input[type="text"], input[type="email"], input[type="url"], input[type="password"],
input[type="search"], input[type="number"], input[type="tel"], input[type="date"],
textarea, select,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container--default .select2-selection--single {
	width: 100%;
	background: var(--bl-panel-2);
	border: 1px solid var(--bl-edge);
	color: var(--bl-text);
	border-radius: var(--bl-r-sm);
	padding: 12px 14px;
	font-size: 0.95rem;
	line-height: 1.4;
	transition: border-color 0.16s var(--bl-ease), box-shadow 0.16s var(--bl-ease);
	-webkit-appearance: none;
	appearance: none;
	height: auto;
}
input:focus, textarea:focus, select:focus {
	border-color: var(--bl-volt);
	box-shadow: 0 0 0 3px rgba(255, 232, 26, 0.14);
	outline: none;
}
input::placeholder, textarea::placeholder { color: var(--bl-mist-dim); }

select, .woocommerce-ordering select {
	background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239ba2b0' stroke-width='2.5' stroke-linecap='round'%3e%3cpath d='M6 9l6 6 6-6'/%3e%3c/svg%3e");
	background-repeat: no-repeat;
	background-position: right 12px center;
	background-size: 15px;
	padding-right: 38px;
	width: auto;
	min-width: 190px;
}

label { font-size: 0.88rem; font-weight: 600; display: block; margin-bottom: 6px; }

.bl-quantity, .woocommerce .quantity {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--bl-edge);
	border-radius: var(--bl-pill);
	overflow: hidden;
	background: var(--bl-panel-2);
}
.woocommerce .quantity .qty {
	width: 58px;
	text-align: center;
	border: 0;
	background: transparent;
	padding: 12px 0;
	border-radius: 0;
	-moz-appearance: textfield;
}
.woocommerce .quantity .qty::-webkit-outer-spin-button,
.woocommerce .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.bl-qty-btn {
	width: 40px;
	height: 44px;
	border: 0;
	background: none;
	color: var(--bl-mist);
	font-size: 1.15rem;
	cursor: pointer;
	line-height: 1;
	transition: color 0.15s var(--bl-ease);
}
.bl-qty-btn:hover { color: var(--bl-volt); }

/* ==========================================================================
   16. SINGLE PRODUCT
   ========================================================================== */

.woocommerce div.product { margin-bottom: 0; }
.woocommerce div.product .product_title { margin-bottom: 12px; }

.woocommerce div.product div.images { margin-bottom: 30px; }
.woocommerce div.product div.images img { border-radius: var(--bl-r); background: var(--bl-panel); }
.woocommerce div.product div.images .flex-control-thumbs { margin-top: 10px; gap: 9px; display: flex; }
.woocommerce div.product div.images .flex-control-thumbs li { width: 74px; margin: 0; float: none; }
.woocommerce div.product div.images .flex-control-thumbs img {
	border: 1px solid var(--bl-edge);
	border-radius: var(--bl-r-sm);
	opacity: 0.6;
	transition: opacity 0.16s var(--bl-ease), border-color 0.16s var(--bl-ease);
}
.woocommerce div.product div.images .flex-control-thumbs img:hover,
.woocommerce div.product div.images .flex-control-thumbs img.flex-active { opacity: 1; border-color: var(--bl-volt); }

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--bl-volt);
	font-size: 1.85rem;
	font-weight: 800;
	font-stretch: 102%;
	letter-spacing: -0.028em;
	margin-bottom: 4px;
}
.woocommerce div.product p.price del { color: var(--bl-mist-dim); font-size: 1.05rem; font-weight: 500; opacity: 1; }
.woocommerce div.product p.price ins { text-decoration: none; background: none; color: var(--bl-volt); }

.bl-vat-note { font-size: 0.83rem; color: var(--bl-mist); margin-bottom: 20px; }

.woocommerce div.product .woocommerce-product-details__short-description {
	color: var(--bl-mist);
	margin-bottom: 24px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--bl-edge);
}

.woocommerce div.product form.cart { margin-bottom: 26px; display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.woocommerce div.product form.cart .button { flex: 1; min-width: 190px; padding: 15px 26px; }
.woocommerce div.product form.cart div.quantity { float: none; margin: 0; }
.woocommerce div.product form.cart .variations { width: 100%; margin-bottom: 4px; }
.woocommerce div.product form.cart .variations td { padding: 0 0 14px; display: block; }
.woocommerce div.product form.cart .variations label { font-weight: 650; }
.woocommerce div.product form.cart .reset_variations { font-size: 0.83rem; color: var(--bl-mist); }

.woocommerce div.product .product_meta {
	font-size: 0.85rem;
	color: var(--bl-mist);
	border-top: 1px solid var(--bl-edge);
	padding-top: 18px;
}
.woocommerce div.product .product_meta > span { display: block; margin-bottom: 5px; }
.woocommerce div.product .product_meta a { color: var(--bl-mist); }
.woocommerce div.product .product_meta a:hover { color: var(--bl-volt); }

/* Spec table pulled from product attributes */
.bl-specsheet { margin: 0 0 26px; border: 1px solid var(--bl-edge); border-radius: var(--bl-r); overflow: hidden; }
.bl-specsheet__row { display: grid; grid-template-columns: 40% 60%; border-bottom: 1px solid var(--bl-edge); }
.bl-specsheet__row:last-child { border-bottom: 0; }
.bl-specsheet__row:nth-child(odd) { background: var(--bl-panel); }
.bl-specsheet dt, .bl-specsheet dd {
	margin: 0;
	padding: 11px 15px;
	font-size: 0.87rem;
}
.bl-specsheet dt { color: var(--bl-mist); font-weight: 600; }
.bl-specsheet dd { font-weight: 650; font-stretch: 93%; }

/* Delivery promise block */
.bl-promise {
	border: 1px solid var(--bl-edge);
	border-radius: var(--bl-r);
	padding: 16px 18px;
	background: var(--bl-panel);
	margin-bottom: 24px;
	display: grid;
	gap: 12px;
}
.bl-promise__row { display: flex; gap: 11px; align-items: flex-start; font-size: 0.88rem; line-height: 1.45; }
.bl-promise__row svg { color: var(--bl-volt); flex: 0 0 auto; margin-top: 2px; }
.bl-promise__row strong { font-weight: 700; }

/* Tabs */
.woocommerce div.product .woocommerce-tabs { margin-top: 56px; }
.woocommerce div.product .woocommerce-tabs ul.tabs {
	padding: 0;
	margin: 0 0 28px;
	display: flex;
	gap: 4px;
	flex-wrap: wrap;
	border-bottom: 1px solid var(--bl-edge);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: none;
	border: 0;
	border-radius: 0;
	margin: 0;
	padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 12px 18px;
	color: var(--bl-mist);
	font-weight: 650;
	font-size: 0.93rem;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	text-decoration: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover { color: var(--bl-text); border-bottom-color: var(--bl-volt); }
.woocommerce div.product .woocommerce-tabs .panel { margin: 0; padding: 0; }
.woocommerce table.shop_attributes th, .woocommerce table.shop_attributes td {
	border: 0;
	border-bottom: 1px solid var(--bl-edge);
	padding: 11px 4px;
	font-size: 0.9rem;
}
.woocommerce table.shop_attributes th { color: var(--bl-mist); font-weight: 600; width: 34%; }
.woocommerce table.shop_attributes td { font-style: normal; }

/* Reviews */
.woocommerce #reviews #comments ol.commentlist { padding: 0; }
.woocommerce #reviews #comments ol.commentlist li { margin-bottom: 22px; }
.woocommerce #reviews #comments ol.commentlist li .comment-text {
	border: 1px solid var(--bl-edge);
	border-radius: var(--bl-r);
	padding: 18px 20px;
	margin-left: 68px;
	background: var(--bl-panel);
}
.woocommerce #reviews #comments ol.commentlist li img.avatar {
	width: 50px;
	border: 0;
	border-radius: 50%;
	padding: 0;
	background: var(--bl-panel-2);
	position: absolute;
}
.woocommerce p.stars a, .woocommerce .star-rating { color: var(--bl-volt); }
.woocommerce .star-rating::before { color: var(--bl-edge); }
.woocommerce ul.products li.product .star-rating { margin: 10px 15px 0; font-size: 0.82em; }

.woocommerce .related, .woocommerce .upsells { margin-top: 60px; }

/* ==========================================================================
   17. CART / CHECKOUT / ACCOUNT
   ========================================================================== */

.woocommerce table.shop_table {
	border: 1px solid var(--bl-edge);
	border-radius: var(--bl-r);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
}
.woocommerce table.shop_table th {
	background: var(--bl-panel);
	color: var(--bl-mist);
	font-size: 0.82rem;
	font-weight: 700;
	padding: 14px 16px;
	border-bottom: 1px solid var(--bl-edge);
	text-align: left;
}
.woocommerce table.shop_table td {
	padding: 16px;
	border-top: 1px solid var(--bl-edge);
	vertical-align: middle;
}
.woocommerce table.shop_table img { width: 60px; border-radius: var(--bl-r-sm); }
.woocommerce table.cart td.actions { padding: 16px; }
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals { width: 100%; float: none; }
.woocommerce .cart_totals h2, .woocommerce-checkout h3 { font-size: 1.18rem; margin-bottom: 16px; }

.woocommerce-checkout #payment {
	background: var(--bl-panel);
	border: 1px solid var(--bl-edge);
	border-radius: var(--bl-r);
}
.woocommerce-checkout #payment div.payment_box {
	background: var(--bl-panel-2);
	color: var(--bl-mist);
	font-size: 0.88rem;
	border-radius: var(--bl-r-sm);
}
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--bl-panel-2); }
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--bl-edge); }
.woocommerce-checkout #payment ul.payment_methods li { list-style: none; }

.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-message {
	background: var(--bl-panel);
	border: 1px solid var(--bl-edge);
	border-top: 2px solid var(--bl-volt);
	border-radius: var(--bl-r);
	color: var(--bl-text);
	padding: 16px 18px 16px 52px;
	font-size: 0.92rem;
	margin-bottom: 22px;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
}
.woocommerce .woocommerce-error { border-top-color: var(--bl-danger); }
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before { color: var(--bl-volt); }
.woocommerce .woocommerce-error::before { color: var(--bl-danger); }
.woocommerce .woocommerce-message .button { margin-left: auto; }

.woocommerce-account .woocommerce-MyAccount-navigation { width: 24%; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 11px 14px;
	border-radius: var(--bl-r-sm);
	color: var(--bl-mist);
	text-decoration: none;
	font-weight: 600;
	font-size: 0.92rem;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: var(--bl-panel-2); color: var(--bl-volt); }
.woocommerce-account .woocommerce-MyAccount-content { width: 72%; }

.woocommerce form.login, .woocommerce form.register, .woocommerce form.checkout_coupon {
	border: 1px solid var(--bl-edge);
	border-radius: var(--bl-r);
	padding: 24px;
	background: var(--bl-panel);
}

/* ==========================================================================
   18. FAQ ACCORDION  (emits FAQPage schema — see inc/schema.php)
   ========================================================================== */

.bl-faq { max-width: 820px; }
.bl-faq__item { border-bottom: 1px solid var(--bl-edge); }
.bl-faq__q {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 20px 0;
	background: none;
	border: 0;
	text-align: left;
	font-size: 1.02rem;
	font-weight: 650;
	color: var(--bl-text);
	cursor: pointer;
	line-height: 1.4;
}
.bl-faq__q:hover { color: var(--bl-volt); }
.bl-faq__icon {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	position: relative;
	transition: transform 0.24s var(--bl-ease);
}
.bl-faq__icon::before, .bl-faq__icon::after {
	content: "";
	position: absolute;
	background: var(--bl-volt);
	border-radius: 2px;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
.bl-faq__icon::before { width: 14px; height: 2px; }
.bl-faq__icon::after { width: 2px; height: 14px; transition: opacity 0.24s var(--bl-ease); }
.bl-faq__q[aria-expanded="true"] .bl-faq__icon { transform: rotate(180deg); }
.bl-faq__q[aria-expanded="true"] .bl-faq__icon::after { opacity: 0; }
.bl-faq__a {
	display: none;
	padding: 0 0 22px;
	color: var(--bl-mist);
	font-size: 0.95rem;
	max-width: 68ch;
}
.bl-faq__a.is-open { display: block; }
.bl-faq__a p:last-child { margin-bottom: 0; }

/* ==========================================================================
   19. VALUE PROPS
   ========================================================================== */

.bl-props { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--bl-edge); border: 1px solid var(--bl-edge); border-radius: var(--bl-r); overflow: hidden; }
.bl-prop { background: var(--bl-ink); padding: 28px 26px; }
.bl-prop svg { color: var(--bl-volt); margin-bottom: 14px; }
.bl-prop h3 { font-size: 1.03rem; margin-bottom: 7px; }
.bl-prop p { font-size: 0.9rem; color: var(--bl-mist); margin: 0; }

/* ==========================================================================
   20. POSTS / PAGES
   ========================================================================== */

.bl-entry { max-width: 760px; }
.bl-entry__meta { font-size: 0.85rem; color: var(--bl-mist-dim); margin-bottom: 22px; }
.bl-entry__thumb { border-radius: var(--bl-r); overflow: hidden; margin-bottom: 30px; }
.bl-content { font-size: 1.02rem; line-height: 1.72; }
.bl-content h2 { margin-top: 1.9em; }
.bl-content h3 { margin-top: 1.5em; }
.bl-content ul, .bl-content ol { padding-left: 1.2em; margin-bottom: 1.2em; }
.bl-content li { margin-bottom: 0.45em; }
.bl-content img { border-radius: var(--bl-r); margin-block: 1.5em; }
.bl-content blockquote {
	border-left: 2px solid var(--bl-volt);
	margin: 1.6em 0;
	padding: 4px 0 4px 22px;
	color: var(--bl-mist);
	font-size: 1.06rem;
}
.bl-content a { color: var(--bl-volt); }
.bl-content code {
	background: var(--bl-panel-2);
	padding: 2px 6px;
	border-radius: 4px;
	font-size: 0.9em;
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}
.bl-content table th, .bl-content table td { border: 1px solid var(--bl-edge); padding: 10px 12px; text-align: left; }

.bl-posts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.bl-post-card {
	border: 1px solid var(--bl-edge);
	border-radius: var(--bl-r);
	overflow: hidden;
	background: var(--bl-panel);
	display: flex;
	flex-direction: column;
	transition: border-color 0.2s var(--bl-ease);
}
.bl-post-card:hover { border-color: #3a3f4b; }
.bl-post-card__img img { aspect-ratio: 16 / 10; object-fit: cover; width: 100%; }
.bl-post-card__body { padding: 18px; flex: 1; display: flex; flex-direction: column; }
.bl-post-card h2, .bl-post-card h3 { font-size: 1.05rem; margin-bottom: 8px; }
.bl-post-card h2 a, .bl-post-card h3 a { text-decoration: none; }
.bl-post-card h2 a:hover, .bl-post-card h3 a:hover { color: var(--bl-volt); }
.bl-post-card p { font-size: 0.9rem; color: var(--bl-mist); margin-bottom: 14px; }

/* Pagination */
.bl-pagination, .woocommerce nav.woocommerce-pagination { margin-top: 44px; text-align: center; }
.woocommerce nav.woocommerce-pagination ul,
.bl-pagination .page-numbers { border: 0; display: inline-flex; gap: 6px; list-style: none; padding: 0; margin: 0; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; margin: 0; overflow: visible; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span,
.bl-pagination .page-numbers li a,
.bl-pagination .page-numbers li span {
	display: grid;
	place-items: center;
	min-width: 42px;
	height: 42px;
	padding: 0 12px;
	border: 1px solid var(--bl-edge);
	border-radius: var(--bl-r-sm);
	color: var(--bl-mist);
	background: var(--bl-panel);
	font-weight: 650;
	font-size: 0.92rem;
	text-decoration: none;
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover,
.bl-pagination .page-numbers li span.current,
.bl-pagination .page-numbers li a:hover {
	background: var(--bl-volt);
	border-color: var(--bl-volt);
	color: #000;
}

/* ==========================================================================
   21. WIDGETS / SIDEBAR
   ========================================================================== */

.bl-widget { margin-bottom: 30px; }
.bl-widget .widget-title, .bl-widget h2, .bl-widget h3 {
	font-size: 0.95rem;
	font-weight: 700;
	margin-bottom: 13px;
	padding-bottom: 11px;
	border-bottom: 1px solid var(--bl-edge);
}
.bl-widget ul { list-style: none; padding: 0; margin: 0; }
.bl-widget li { padding: 6px 0; font-size: 0.91rem; }
.bl-widget li a { color: var(--bl-mist); text-decoration: none; }
.bl-widget li a:hover { color: var(--bl-volt); }
.bl-widget .count { color: var(--bl-mist-dim); font-size: 0.83rem; }
.woocommerce .widget_price_filter .ui-slider .ui-slider-range,
.woocommerce .widget_price_filter .ui-slider .ui-slider-handle { background: var(--bl-volt); }
.woocommerce .widget_price_filter .price_slider_wrapper .ui-widget-content { background: var(--bl-edge); }

/* ==========================================================================
   22. FOOTER
   ========================================================================== */

.bl-footer {
	border-top: 1px solid var(--bl-edge);
	background: var(--bl-panel);
	margin-top: 0;
}
.bl-footer__top {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr 1.3fr;
	gap: 40px;
	padding-block: clamp(40px, 5vw, 60px);
}
.bl-footer__col h3 {
	font-size: 0.92rem;
	font-weight: 700;
	margin-bottom: 15px;
}
.bl-footer__col ul { list-style: none; padding: 0; margin: 0; }
.bl-footer__col li { margin-bottom: 9px; }
.bl-footer__col a, .bl-footer__col li { font-size: 0.9rem; color: var(--bl-mist); text-decoration: none; }
.bl-footer__col a:hover { color: var(--bl-volt); }
.bl-footer__about p { font-size: 0.9rem; color: var(--bl-mist); margin-bottom: 18px; max-width: 40ch; }

.bl-social { display: flex; gap: 9px; }
.bl-social a {
	width: 38px;
	height: 38px;
	display: grid;
	place-items: center;
	border: 1px solid var(--bl-edge);
	border-radius: 50%;
	color: var(--bl-mist);
	transition: color 0.16s var(--bl-ease), border-color 0.16s var(--bl-ease);
}
.bl-social a:hover { color: var(--bl-volt); border-color: var(--bl-volt); }

.bl-footer__bottom {
	border-top: 1px solid var(--bl-edge);
	padding-block: 20px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	font-size: 0.84rem;
	color: var(--bl-mist-dim);
}
.bl-pay { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.bl-pay span {
	border: 1px solid var(--bl-edge);
	border-radius: var(--bl-r-sm);
	padding: 5px 11px;
	font-size: 0.76rem;
	font-weight: 650;
	font-stretch: 88%;
	color: var(--bl-mist);
	background: var(--bl-panel-2);
}

/* ==========================================================================
   23. RESPONSIVE
   ========================================================================== */

@media (max-width: 1080px) {
	.woocommerce ul.products, ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.bl-footer__top { grid-template-columns: 1fr 1fr; gap: 34px; }
	.bl-cats { grid-template-columns: repeat(2, 1fr); }
	.bl-posts { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 900px) {
	.bl-nav { display: none; }
	.bl-burger { display: grid; }
	.bl-hero__inner { grid-template-columns: 1fr; }
	.bl-hero__media { order: -1; aspect-ratio: 16 / 10; }
	.bl-layout { grid-template-columns: 1fr; gap: 30px; }
	.bl-sidebar { position: static; }
	.bl-props { grid-template-columns: 1fr; }
	.woocommerce-account .woocommerce-MyAccount-navigation,
	.woocommerce-account .woocommerce-MyAccount-content { width: 100%; float: none; }
	.woocommerce-account .woocommerce-MyAccount-navigation { margin-bottom: 26px; }
}

@media (max-width: 640px) {
	:root { --bl-gutter: 16px; }
	.woocommerce ul.products, ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 0.88rem !important; padding: 11px 11px 0; }
	.woocommerce ul.products li.product .price { padding: 9px 11px 0; font-size: 1rem; }
	.bl-card-specs { padding: 8px 11px 0; }
	.bl-card-specs span { font-size: 0.69rem; padding: 2px 6px; }
	.bl-stock { padding: 7px 11px 0; font-size: 0.72rem; }
	.woocommerce ul.products li.product .button,
	.woocommerce ul.products li.product .added_to_cart { margin: 11px; width: calc(100% - 22px); padding: 10px 12px; font-size: 0.82rem; }
	.bl-posts { grid-template-columns: 1fr; }
	.bl-footer__top { grid-template-columns: 1fr; gap: 30px; }
	.bl-specsheet__row { grid-template-columns: 45% 55%; }
	.woocommerce div.product form.cart .button { min-width: 0; }
	.bl-shop-bar { flex-direction: column; align-items: stretch; }
	select, .woocommerce-ordering select { width: 100%; min-width: 0; }
	.woocommerce table.shop_table, .woocommerce table.shop_table thead,
	.woocommerce table.shop_table tbody, .woocommerce table.shop_table tr,
	.woocommerce table.shop_table td { display: block; width: 100%; }
	.woocommerce table.shop_table thead { display: none; }
	.woocommerce table.shop_table tr { border-bottom: 1px solid var(--bl-edge); }
	.woocommerce table.shop_table td { border-top: 0; text-align: right; display: flex; justify-content: space-between; gap: 14px; }
	.woocommerce table.shop_table td::before { content: attr(data-title); color: var(--bl-mist); font-weight: 600; font-size: 0.85rem; }
	.woocommerce table.shop_table td.product-remove::before,
	.woocommerce table.shop_table td.actions::before { content: ""; }
}

/* ==========================================================================
   24. MOTION + PRINT
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
	.bl-charge { transition: none; }
}

@media print {
	.bl-header, .bl-footer, .bl-announce, .bl-drawer, .bl-scrim, .bl-need { display: none !important; }
	body { background: #fff; color: #000; }
}
