/*
Theme Name: Banknotes and More
Template: storefront
Description: Custom dark navy/gold child theme for Banknotes and More, a Canadian numismatics retailer.
Version: 1.0.0
*/

:root {
	--bnm-bg: #121218;
	--bnm-bg-elevated: #191922;
	--bnm-bg-card: #f7f3ec;
	--bnm-border: rgba(255,255,255,0.08);
	--bnm-gold: #c9a227;
	--bnm-gold-light: #e0c368;
	--bnm-text: #f2f0ea;
	--bnm-text-muted: #a6a4ab;
	--bnm-text-dark: #1c1c22;
	--bnm-red: #a83a3a;
	--bnm-green: #3f6b4a;
	--bnm-radius: 2px;
	--font-heading: 'Playfair Display', Georgia, serif;
	--font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* ---------- Base ---------- */
body {
	background: var(--bnm-bg);
	color: var(--bnm-text);
	font-family: var(--font-body);
}

a { color: var(--bnm-gold-light); }
a:hover { color: var(--bnm-gold); }

h1, h2, h3, h4, h5,
.site-title,
.storefront-product-section .section-title {
	font-family: var(--font-heading);
	font-weight: 600;
	letter-spacing: 0.01em;
	color: var(--bnm-text);
}

.site-title a {
	font-family: var(--font-heading);
	color: var(--bnm-text) !important;
	letter-spacing: 0.02em;
}

/* ---------- Header / Nav ---------- */
.site-header {
	background: var(--bnm-bg);
	border-bottom: 1px solid var(--bnm-border);
}

.main-navigation ul li a {
	font-family: var(--font-body);
	font-size: 0.8rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--bnm-text-muted);
}

.main-navigation ul li a:hover,
.main-navigation ul li.current-menu-item > a {
	color: var(--bnm-gold-light);
}

.site-header-cart .cart-contents {
	border: 1px solid var(--bnm-border);
	border-radius: 50%;
	color: var(--bnm-text);
}

/* ---------- Buttons ---------- */
.button,
button,
input[type="submit"],
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.single_add_to_cart_button {
	background-color: var(--bnm-gold) !important;
	color: var(--bnm-text-dark) !important;
	border: none;
	border-radius: var(--bnm-radius);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.78rem;
	font-weight: 600;
	padding: 0.9em 1.6em;
}

.button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.single_add_to_cart_button:hover {
	background-color: var(--bnm-gold-light) !important;
	color: var(--bnm-text-dark) !important;
}

.button.button-secondary,
.woocommerce a.button.button-secondary {
	background: transparent !important;
	color: var(--bnm-text) !important;
	border: 1px solid var(--bnm-border) !important;
}

/* ---------- Hero / content sections on dark bg ---------- */
#content,
.storefront-product-section,
.site-content {
	background: var(--bnm-bg);
}

/* ---------- Shop grid / product cards ---------- */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	background: #ffffff;
	border-radius: var(--bnm-radius);
	padding: 1em 1em 1.4em;
	color: var(--bnm-text-dark);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--font-heading);
	color: var(--bnm-text-dark);
	font-size: 1.05rem;
}

.woocommerce ul.products li.product .price {
	color: var(--bnm-text-dark);
	font-weight: 600;
}

.woocommerce ul.products li.product .price del {
	color: #8a8880;
	opacity: 0.8;
}

.woocommerce ul.products li.product .price ins {
	color: var(--bnm-red);
	text-decoration: none;
}

.woocommerce span.onsale {
	background: var(--bnm-red);
	border-radius: var(--bnm-radius);
	font-size: 0.7rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	min-height: auto;
	min-width: auto;
	padding: 0.35em 0.7em;
	line-height: 1;
	top: 1em;
	left: 1em;
}

/* "NEW" style badge - apply via product tag "new" if used */
.woocommerce ul.products li.product .bnm-badge-new {
	background: var(--bnm-green);
	color: #fff;
	font-size: 0.7rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 0.35em 0.7em;
	display: inline-block;
	border-radius: var(--bnm-radius);
}

/* ---------- Single product page ---------- */
.woocommerce div.product {
	color: var(--bnm-text);
}

.woocommerce div.product .product_title {
	font-family: var(--font-heading);
	font-size: 1.9rem;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--bnm-gold-light);
	font-size: 1.4rem;
}

.woocommerce table.shop_attributes,
.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
	background: transparent;
	border-color: var(--bnm-border);
	color: var(--bnm-text-muted);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	color: var(--bnm-text-muted);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--bnm-gold-light);
}

/* ---------- Cart / Checkout ---------- */
.woocommerce table.shop_table {
	border-color: var(--bnm-border);
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	color: var(--bnm-text);
	border-color: var(--bnm-border);
}

.woocommerce-cart table.cart img,
.woocommerce-checkout img {
	border-radius: var(--bnm-radius);
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce-checkout select {
	background: var(--bnm-bg-elevated);
	border: 1px solid var(--bnm-border);
	color: var(--bnm-text);
}

.woocommerce-checkout #payment {
	background: var(--bnm-bg-elevated);
	border-radius: var(--bnm-radius);
}

/* ---------- Footer ---------- */
.site-footer {
	background: #0c0c11;
	border-top: 1px solid var(--bnm-border);
	color: var(--bnm-text-muted);
}

.site-footer a {
	color: var(--bnm-text-muted);
}

.site-footer a:hover {
	color: var(--bnm-gold-light);
}

/* ---------- Widgets / misc ---------- */
.widget-title {
	font-family: var(--font-heading);
	color: var(--bnm-text);
}

::selection {
	background: var(--bnm-gold);
	color: var(--bnm-text-dark);
}


/* --- specificity fixes: override Storefront's built-in header/footer colors --- */
.site-header,
.site-header-cart,
.storefront-primary-navigation {
	background: var(--bnm-bg) !important;
}

.site-header .site-title a,
.site-header .site-description {
	color: var(--bnm-text) !important;
}

.main-navigation ul li a {
	color: var(--bnm-text-muted) !important;
}

.main-navigation ul li a:hover,
.main-navigation ul li.current-menu-item > a {
	color: var(--bnm-gold-light) !important;
}

a {
	color: var(--bnm-gold-light) !important;
}

a:hover {
	color: var(--bnm-gold) !important;
}

.site-footer,
.site-footer .storefront-credit,
.storefront-primary-navigation-wrapper {
	background: #0c0c11 !important;
	color: var(--bnm-text-muted) !important;
}

.site-footer a {
	color: var(--bnm-text-muted) !important;
}

.site-footer a:hover {
	color: var(--bnm-gold-light) !important;
}

/* --- fix: thin white bar between header and content (nav wrapper bg) --- */
.storefront-primary-navigation-wrapper {
    background: var(--bnm-bg) !important;
    border-top: 1px solid var(--bnm-border) !important;
    border-bottom: 1px solid var(--bnm-border) !important;
}

.storefront-primary-navigation-wrapper .main-navigation {
    background: transparent !important;
}

/* --- fix: white gap from WP custom-background overriding body bg --- */
html {
    background: #121218;
}

body,
body.custom-background {
    background-color: #121218 !important;
}

/* ============================================================
   Front page — hero, trust bar, new arrivals, about, commitment,
   newsletter. Appended after the base theme styles.
   ============================================================ */

.bnm-front-page section {
	position: relative;
}

.bnm-eyebrow {
	display: flex;
	align-items: center;
	gap: 0.6em;
	font-family: var(--font-body);
	font-size: 0.75rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--bnm-gold-light);
	margin-bottom: 1em;
}

.bnm-eyebrow-center {
	justify-content: center;
}

.bnm-eyebrow-line {
	display: inline-block;
	width: 28px;
	height: 1px;
	background: var(--bnm-gold);
}

/* ---------- Hero ---------- */
.bnm-hero {
	background: var(--bnm-bg);
	padding: 5em 0 6em;
	overflow: hidden;
}

.bnm-hero-watermark {
	position: absolute;
	top: 2.5em;
	left: 0;
	font-family: var(--font-heading);
	font-size: 14rem;
	line-height: 1;
	color: rgba(255,255,255,0.035);
	font-weight: 600;
	pointer-events: none;
	user-select: none;
	white-space: nowrap;
}

.bnm-hero-inner {
    display: grid;
    grid-template-columns: 55% 45%;
    gap: 0;
    align-items: center;
    position: relative;
}
.bnm-hero-title {
	font-family: var(--font-heading);
	font-size: 3.4rem;
	line-height: 1.08;
	color: var(--bnm-text);
	margin: 0 0 0.5em;
}

.bnm-hero-lede {
	color: var(--bnm-text-muted);
	font-size: 1.05rem;
	max-width: 34em;
	margin-bottom: 2em;
}

.bnm-hero-actions {
	display: flex;
	gap: 1em;
	flex-wrap: wrap;
}

.bnm-btn-primary {
	background-color: var(--bnm-gold) !important;
	color: var(--bnm-text-dark) !important;
}

.bnm-hero-feature {
    position: relative;
    width: 500px;
    margin-left: -550px;
    margin-top: 100px;
}
.bnm-hero-feature-media {
    width: 500px;
}

.bnm-hero-feature-media img {
    width: 500px !important;
    max-width: 500px !important;
    height: auto !important;
}

.bnm-hero-feature-card {
    position: absolute;
    bottom: -0.5em;
    left: 50%;
    transform: translateX(-50%);
    background: #0c0c11;
    border: 1px solid var(--bnm-border);
    border-radius: var(--bnm-radius);
    padding: 0.8em 1.4em;
    min-width: 220px;
    text-align: left;
}

.bnm-hero-feature-label {
	display: block;
	font-size: 0.55rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--bnm-gold-light);
	margin-bottom: 0.3em;
}

.bnm-hero-feature-card a {
    font-size: 0.8rem;
    line-height: 1.3;
}

.bnm-hero-feature-card a:hover {
	color: var(--bnm-gold-light);
}

/* ---------- Trust bar ---------- */
.bnm-trust-bar {
	background: #0c0c11;
	border-top: 1px solid var(--bnm-border);
	border-bottom: 1px solid var(--bnm-border);
	padding: 2.6em 0;
}

.bnm-trust-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 2em;
}

.bnm-trust-item h3 {
	font-family: var(--font-heading);
	font-size: 1.05rem;
	color: var(--bnm-gold-light);
	margin: 0 0 0.35em;
}

.bnm-trust-item p {
	color: var(--bnm-text-muted);
	font-size: 0.88rem;
	margin: 0;
}

/* ---------- Section heads ---------- */
.bnm-section-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: 2.2em;
	gap: 1em;
	flex-wrap: wrap;
}

.bnm-section-head h2 {
	font-family: var(--font-heading);
	font-size: 2rem;
	color: var(--bnm-text);
	margin: 0;
}

.bnm-section-head-center {
	flex-direction: column;
	text-align: center;
	max-width: 44em;
	margin-left: auto;
	margin-right: auto;
}

.bnm-section-sub {
	color: var(--bnm-text-muted);
	margin-top: 0.6em;
}

.bnm-view-all {
	font-size: 0.8rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--bnm-gold-light);
	white-space: nowrap;
}

/* ---------- New arrivals ---------- */
.bnm-new-arrivals {
	background: var(--bnm-bg);
	padding: 5em 0;
}

.bnm-new-arrivals-grid.products {
	margin: 0;
}

.bnm-empty-note {
	color: var(--bnm-text-muted);
	font-style: italic;
}

/* ---------- About preview ---------- */
.bnm-about-preview {
	background: #0c0c11;
	padding: 5em 0;
	border-top: 1px solid var(--bnm-border);
	border-bottom: 1px solid var(--bnm-border);
}

.bnm-about-grid {
	display: grid;
	grid-template-columns: 0.8fr 1.2fr;
	gap: 3em;
}

.bnm-about-grid h2 {
	font-family: var(--font-heading);
	font-size: 2.1rem;
	color: var(--bnm-text);
	margin: 0;
}

.bnm-about-grid p {
	color: var(--bnm-text-muted);
	margin-bottom: 1.2em;
}

/* ---------- Commitment ---------- */
.bnm-commitment {
	background: var(--bnm-bg);
	padding: 5em 0;
}

.bnm-commitment-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2em;
}

.bnm-commitment-item {
	border-top: 1px solid var(--bnm-border);
	padding-top: 1.4em;
}

.bnm-commitment-num {
	display: block;
	font-family: var(--font-heading);
	font-size: 1.4rem;
	color: var(--bnm-gold);
	margin-bottom: 0.4em;
}

.bnm-commitment-item h3 {
	font-family: var(--font-heading);
	font-size: 1.15rem;
	color: var(--bnm-text);
	margin: 0 0 0.5em;
}

.bnm-commitment-item p {
	color: var(--bnm-text-muted);
	font-size: 0.9rem;
	margin: 0;
}

/* ---------- Newsletter ---------- */
.bnm-newsletter {
	background: #0c0c11;
	padding: 5em 0;
	border-top: 1px solid var(--bnm-border);
}

.bnm-newsletter-inner {
	max-width: 40em;
	margin: 0 auto;
	text-align: center;
}

.bnm-newsletter-inner h2 {
	font-family: var(--font-heading);
	font-size: 2rem;
	color: var(--bnm-text);
	margin: 0 0 0.6em;
}

.bnm-newsletter-inner > p {
	color: var(--bnm-text-muted);
	margin-bottom: 1.6em;
}

.bnm-newsletter-form {
	display: flex;
	gap: 0.8em;
	justify-content: center;
	flex-wrap: wrap;
	margin-bottom: 1em;
}

.bnm-newsletter-form input[type="email"] {
	background: var(--bnm-bg-elevated);
	border: 1px solid var(--bnm-border);
	color: var(--bnm-text);
	padding: 0.9em 1.2em;
	min-width: 280px;
	border-radius: var(--bnm-radius);
}

.bnm-newsletter-note {
	color: var(--bnm-text-muted);
	font-size: 0.78rem;
	margin: 0;
}

/* ---------- Responsive ---------- */
@media (max-width: 800px) {
	.bnm-hero-inner,
	.bnm-about-grid {
		grid-template-columns: 1fr;
	}

	.bnm-trust-grid,
	.bnm-commitment-grid {
		grid-template-columns: 1fr;
	}

	.bnm-hero-title {
		font-size: 2.4rem;
	}

	.bnm-hero-watermark {
		font-size: 8rem;
	}
}

/* ============================================================
   Header + footer refresh to match the approved design.
   ============================================================ */

/* ---------- Header: nav spacing now that it's a short 5-item menu ---------- */
.main-navigation ul.menu {
	display: flex;
	gap: 2em;
}

/* ---------- Footer layout ---------- */
.site-footer {
	padding: 4.5em 0 0;
}

.bnm-footer-inner {
	display: grid;
	grid-template-columns: 1.2fr 1fr 1fr;
	gap: 3em;
	padding-bottom: 3em;
}

.bnm-footer-col h4 {
	font-family: var(--font-heading);
	font-size: 0.85rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--bnm-gold-light);
	margin: 0 0 1em;
}

.bnm-footer-col ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.bnm-footer-col ul li {
	margin-bottom: 0.7em;
}

.bnm-footer-col a {
	color: var(--bnm-text-muted);
	font-size: 0.9rem;
}

.bnm-footer-col a:hover {
	color: var(--bnm-gold-light);
}

.bnm-footer-col p {
	color: var(--bnm-text-muted);
	font-size: 0.9rem;
	margin: 0 0 0.6em;
}

.bnm-footer-name {
	font-family: var(--font-heading);
	font-size: 1.3rem;
	color: var(--bnm-text) !important;
	margin-bottom: 0.6em !important;
}

.bnm-footer-accept-heading {
	margin-top: 1.6em !important;
}

.bnm-footer-payments {
	display: flex;
	gap: 0.6em;
	flex-wrap: wrap;
}

.bnm-footer-payments span {
	border: 1px solid var(--bnm-border);
	border-radius: var(--bnm-radius);
	padding: 0.35em 0.7em;
	font-size: 0.72rem;
	letter-spacing: 0.04em;
	color: var(--bnm-text-muted);
}

.bnm-footer-bottom {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.5em;
	padding: 1.4em 0;
	border-top: 1px solid var(--bnm-border);
}

.bnm-footer-bottom p {
	margin: 0;
	font-size: 0.75rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--bnm-text-muted);
}

.bnm-footer-flag::before {
	content: '';
	display: inline-block;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--bnm-red);
	margin-right: 0.5em;
}

@media (max-width: 800px) {
	.bnm-footer-inner {
		grid-template-columns: 1fr;
		gap: 2.4em;
	}

	.bnm-footer-bottom {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* ============================================================
   Header brand lockup + icon-only mobile toggle/cart, matching
   the approved design.
   ============================================================ */

/* Hide Storefront's original text-only branding if it's still there */
.site-header .site-branding:not(.bnm-site-branding) {
	display: none;
}

.bnm-site-branding {
	display: flex;
	align-items: center;
}

.bnm-brand-link {
	display: flex;
	align-items: center;
	gap: 0.7em;
	text-decoration: none;
}

.bnm-brand-icon {
	display: block;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	flex-shrink: 0;
	object-fit: cover;
}

.bnm-brand-text {
	display: flex;
	flex-direction: column;
	line-height: 1.15;
}

.bnm-brand-name {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 1.3rem;
	color: var(--bnm-text);
}

.bnm-brand-sub {
	font-family: var(--font-body);
	font-size: 0.62rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--bnm-green);
	margin-top: 0.2em;
}

@media (max-width: 480px) {
	.bnm-brand-text {
		display: none;
	}
	.bnm-brand-link {
		gap: 0;
	}
}

/* ---------- Mobile menu toggle: plain circular icon button ---------- */
.menu-toggle {
	position: relative;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid var(--bnm-border);
	background: transparent;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}

.menu-toggle span {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.menu-toggle::before {
	content: '';
	display: block;
	width: 18px;
	height: 12px;
	background-repeat: no-repeat;
	background-position: center;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12' viewBox='0 0 18 12'%3E%3Cg stroke='%23F5F1E8' stroke-width='1.5' stroke-linecap='round'%3E%3Cline x1='0' y1='1' x2='18' y2='1'/%3E%3Cline x1='0' y1='6' x2='18' y2='6'/%3E%3Cline x1='0' y1='11' x2='18' y2='11'/%3E%3C/g%3E%3C/svg%3E");
}

/* ---------- Cart: plain circular icon button, no price/count text ---------- */
.site-header-cart .cart-contents {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid var(--bnm-border);
	position: relative;
}

.site-header-cart .cart-contents .woocommerce-Price-amount,
.site-header-cart .cart-contents .count {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
}

.site-header-cart .cart-contents::before {
	content: '';
	display: block;
	width: 18px;
	height: 18px;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23F5F1E8' stroke-width='1.5' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M3 3h2l.4 2M7 13h10l3-8H6.4M7 13L5.4 5M7 13l-2.3 4.6A1 1 0 0 0 5.6 19H17M9 21a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm8 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z'/%3E%3C/svg%3E");
}

/* The default Storefront mobile "Account / Search / Cart" bottom bar
   duplicates what the header icons now do, and isn't part of the
   approved design, so it's hidden. */
.storefront-handheld-footer-bar {
	display: none !important;
}


/* ============================================================
   Fix-up pass: Storefront's own header CSS is more specific than
   the rules above, so it was winning on display/width/height for
   the cart button, the toggle icon and the brand icon. Same rules,
   forced to win with !important.
   ============================================================ */

.bnm-brand-icon {
	width: 44px !important;
	height: 44px !important;
	border-radius: 50% !important;
	object-fit: cover !important;
}

.site-header-cart .cart-contents {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 44px !important;
	height: 44px !important;
	padding: 0 !important;
	border-radius: 50% !important;
	border: 1px solid var(--bnm-border) !important;
}

.site-header-cart .cart-contents .woocommerce-Price-amount,
.site-header-cart .cart-contents .count {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	padding: 0 !important;
	margin: 0 !important;
}

.site-header-cart .cart-contents::before {
	content: '' !important;
	display: block !important;
	width: 18px !important;
	height: 18px !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: contain !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23F5F1E8' stroke-width='1.5' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M3 3h2l.4 2M7 13h10l3-8H6.4M7 13L5.4 5M7 13l-2.3 4.6A1 1 0 0 0 5.6 19H17M9 21a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm8 0a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z'/%3E%3C/svg%3E") !important;
}

.menu-toggle {
	width: 44px !important;
	height: 44px !important;
	border-radius: 50% !important;
	border: 1px solid var(--bnm-border) !important;
	background: transparent !important;
	padding: 0 !important;
}

.menu-toggle::before {
	content: '' !important;
	width: 18px !important;
	height: 12px !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12' viewBox='0 0 18 12'%3E%3Cg stroke='%23F5F1E8' stroke-width='1.5' stroke-linecap='round'%3E%3Cline x1='0' y1='1' x2='18' y2='1'/%3E%3Cline x1='0' y1='6' x2='18' y2='6'/%3E%3Cline x1='0' y1='11' x2='18' y2='11'/%3E%3C/g%3E%3C/svg%3E") !important;
}


/* ============================================================
   Scrolling category ticker (between hero and new arrivals),
   and a simple text placeholder for the logo badge -- no image
   file needed, matches the design's round icon spot for now.
   ============================================================ */

.bnm-ticker {
	overflow: hidden;
	border-top: 1px solid var(--bnm-border);
	border-bottom: 1px solid var(--bnm-border);
	background: var(--bnm-bg-elevated);
	padding: 1em 0;
}

.bnm-ticker-track {
	display: flex;
	width: max-content;
	animation: bnm-ticker-scroll 40s linear infinite;
}

.bnm-ticker-item {
	font-family: var(--font-heading);
	font-style: italic;
	font-size: 1.05rem;
	color: var(--bnm-text-muted);
	white-space: nowrap;
	padding: 0 1.2em;
}

.bnm-ticker-dot {
	color: var(--bnm-gold);
}

@keyframes bnm-ticker-scroll {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-50%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.bnm-ticker-track {
		animation: none;
	}
}

/* Text-only placeholder for the logo badge (swap for the real
   logo image later -- no external file needed for now). */
.bnm-brand-icon {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 44px !important;
	height: 44px !important;
	border-radius: 50% !important;
	border: 1.5px solid var(--bnm-gold) !important;
	background: var(--bnm-bg-elevated) !important;
	color: var(--bnm-gold) !important;
	font-family: var(--font-heading) !important;
	font-weight: 700 !important;
	font-size: 0.85rem !important;
	letter-spacing: 0.02em !important;
	flex-shrink: 0 !important;
}


/* ============================================================
   Fix: .col-full carries an invisible clearfix pseudo-element
   from the theme, and because these two containers are ALSO
   CSS Grids, that invisible element was counting as a real grid
   cell and shoving every item over by one slot (trust bar and
   the About section both showed a blank first slot + wrapped
   last item because of this).
   ============================================================ */
.bnm-trust-grid::before,
.bnm-trust-grid::after,
.bnm-about-grid::before,
.bnm-about-grid::after {
	content: none !important;
	display: none !important;
}


/* ============================================================
   Fix: on mobile the cart button was dropping to its own row
   BELOW the hamburger menu instead of sitting beside it. The
   cart <ul> is a block-level sibling of <nav>, so it always
   flowed onto a new line under the nav's box. Taking it out of
   normal flow and placing it just to the left of the hamburger
   button matches the approved design (cart + menu icons in one
   row, top-right).
   ============================================================ */
@media (max-width: 480px) {
	.storefront-primary-navigation .col-full {
		position: relative !important;
	}

	#site-header-cart {
		position: absolute !important;
		top: 0 !important;
		right: 56px !important;
		left: auto !important;
		width: auto !important;
		margin: 0 !important;
	}

	#site-header-cart li {
		float: none !important;
		display: inline-block !important;
		margin: 0 !important;
	}
}


/* ============================================================
   Fix: WooCommerce/Storefront was quietly adding its own built-in
   Font Awesome "basket" icon on top of our custom cart icon (via
   an ::after pseudo-element we never asked for), so the cart
   button showed two overlapping icons crammed into one circle on
   desktop and tablet widths. This removes that extra icon and
   leaves only our own icon.
   ============================================================ */
.site-header-cart .cart-contents::after {
	content: none !important;
	display: none !important;
}


/* ============================================================
   Fix 1: on large monitors the site was capped much narrower
   (about 1064px content width) than the approved design (which
   uses 1440px), so on a wide screen everything looked squeezed
   into a small column with huge empty margins on both sides.
   Widening it to match the reference design.
   ============================================================ */
.col-full {
	max-width: 84em !important;
}

/* ============================================================
   Fix 2: the WooCommerce plugin's own default stylesheet isn't
   being loaded on this site, so the multi-column product grid
   CSS it normally provides never existed -- every product was
   stacking full-width, one per row, no matter how wide the
   screen was (New Arrivals and, later, the Shop page). This adds
   a plain CSS Grid layout so products lay out in proper rows
   without depending on that missing stylesheet, and collapses to
   2 columns on tablets and 1 column on phones.
   ============================================================ */
ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: 2.5em !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

ul.products.columns-3 {
	grid-template-columns: repeat(3, 1fr) !important;
}

ul.products.columns-2 {
	grid-template-columns: repeat(2, 1fr) !important;
}

ul.products li.product {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
}

@media (max-width: 900px) {
	ul.products,
	ul.products.columns-3,
	ul.products.columns-4 {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

@media (max-width: 600px) {
	ul.products,
	ul.products.columns-2,
	ul.products.columns-3,
	ul.products.columns-4 {
		grid-template-columns: 1fr !important;
	}
}


/* ============================================================
   Fix: WooCommerce/Storefront was quietly adding its own built-in
   Font Awesome "basket" icon on top of our custom cart icon (via
   an ::after pseudo-element we never asked for), so the cart
   button showed two overlapping icons crammed into one circle on
   desktop and tablet widths. This removes that extra icon and
   leaves only our own icon.
   ============================================================ */
.site-header-cart .cart-contents::after {
	content: none !important;
	display: none !important;
}


/* ============================================================
   Fix 1: on large monitors the site was capped much narrower
   (about 1064px content width) than the approved design (which
   uses 1440px), so on a wide screen everything looked squeezed
   into a small column with huge empty margins on both sides.
   Widening it to match the reference design.
   ============================================================ */
.col-full {
	max-width: 84em !important;
}

/* ============================================================
   Fix 2: the WooCommerce plugin's own default stylesheet isn't
   being loaded on this site, so the multi-column product grid
   CSS it normally provides never existed -- every product was
   stacking full-width, one per row, no matter how wide the
   screen was (New Arrivals and, later, the Shop page). This adds
   a plain CSS Grid layout so products lay out in proper rows
   without depending on that missing stylesheet, and collapses to
   2 columns on tablets and 1 column on phones.
   ============================================================ */
ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: 2.5em !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

ul.products.columns-3 {
	grid-template-columns: repeat(3, 1fr) !important;
}

ul.products.columns-2 {
	grid-template-columns: repeat(2, 1fr) !important;
}

ul.products li.product {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
}

@media (max-width: 900px) {
	ul.products,
	ul.products.columns-3,
	ul.products.columns-4 {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

@media (max-width: 600px) {
	ul.products,
	ul.products.columns-2,
	ul.products.columns-3,
	ul.products.columns-4 {
		grid-template-columns: 1fr !important;
	}
}


/* ============================================================
   About / Policies / Contact pages -- shared "page hero" pattern
   (eyebrow + heading + lede), reusing the same design tokens and
   .bnm-eyebrow / .col-full / .bnm-about-grid / .bnm-commitment-grid
   classes already used on the homepage.
   ============================================================ */
.bnm-static-page {
	background: var(--bnm-bg);
}

.bnm-page-hero {
	padding: 5em 0 3.5em;
	border-bottom: 1px solid var(--bnm-border);
}

.bnm-page-hero h1 {
	font-family: var(--font-heading);
	font-size: 2.8rem;
	line-height: 1.12;
	color: var(--bnm-text);
	margin: 0 0 0.6em;
	max-width: 20em;
}

.bnm-page-hero-lede {
	color: var(--bnm-text-muted);
	font-size: 1.05rem;
	max-width: 40em;
	margin: 0;
}

.bnm-page-hero-lede a {
	text-decoration: underline;
}

/* ---------- Contact page ---------- */
.bnm-contact-section {
	background: var(--bnm-bg);
	padding: 5em 0 6em;
}

.bnm-contact-grid {
	display: grid;
	grid-template-columns: 0.8fr 1.2fr;
	gap: 4em;
}

.bnm-contact-info-item {
	margin-bottom: 2.2em;
}

.bnm-contact-info-item p:not(.bnm-eyebrow) {
	color: var(--bnm-text);
	font-size: 1.05rem;
	margin: 0;
}

.bnm-contact-form .bnm-hp-field {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.bnm-form-row {
	margin-bottom: 1.4em;
}

.bnm-form-row-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.4em;
}

.bnm-form-field label {
	display: block;
	font-size: 0.72rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--bnm-text-muted);
	margin-bottom: 0.6em;
}

.bnm-contact-form input[type="text"],
.bnm-contact-form input[type="email"],
.bnm-contact-form textarea {
	width: 100%;
	background: var(--bnm-bg-elevated);
	border: 1px solid var(--bnm-border);
	border-radius: var(--bnm-radius);
	color: var(--bnm-text);
	font-family: var(--font-body);
	font-size: 0.95rem;
	padding: 0.9em 1em;
	box-sizing: border-box;
}

.bnm-contact-form textarea {
	resize: vertical;
}

.bnm-contact-form input:focus,
.bnm-contact-form textarea:focus {
	outline: none;
	border-color: var(--bnm-gold);
}

.bnm-form-message {
	padding: 1em 1.2em;
	border-radius: var(--bnm-radius);
	margin-bottom: 1.6em;
	font-size: 0.92rem;
}

.bnm-form-message-ok {
	background: rgba(63, 107, 74, 0.18);
	border: 1px solid var(--bnm-green);
	color: var(--bnm-text);
}

.bnm-form-message-error {
	background: rgba(168, 58, 58, 0.18);
	border: 1px solid var(--bnm-red);
	color: var(--bnm-text);
}

.bnm-form-message-error a {
	text-decoration: underline;
}

@media (max-width: 800px) {
	.bnm-contact-grid {
		grid-template-columns: 1fr;
		gap: 2.5em;
	}
	.bnm-form-row-split {
		grid-template-columns: 1fr;
	}
}

/* ---------- Policies page ---------- */
.bnm-policies-section {
	background: var(--bnm-bg);
	padding: 4em 0 6em;
}

.bnm-policies-layout {
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: 4em;
	align-items: start;
}

.bnm-policy-tabs {
	display: flex;
	flex-direction: column;
	position: sticky;
	top: 2em;
}

.bnm-policy-tab {
	text-align: left;
	background: none;
	border: none;
	border-top: 1px solid var(--bnm-border);
	padding: 1.1em 0;
	font-family: var(--font-body);
	font-size: 0.95rem;
	color: var(--bnm-text-muted);
	cursor: pointer;
}

.bnm-policy-tab:last-child {
	border-bottom: 1px solid var(--bnm-border);
}

.bnm-policy-tab-num {
	color: var(--bnm-gold);
	font-family: var(--font-heading);
	margin-right: 0.5em;
}

.bnm-policy-tab.active {
	color: var(--bnm-gold-light);
	box-shadow: inset 0 -2px 0 var(--bnm-gold);
}

.bnm-policy-panel {
	display: none;
}

.bnm-policy-panel.active {
	display: block;
}

.bnm-policy-panel h2 {
	font-family: var(--font-heading);
	font-size: 1.9rem;
	color: var(--bnm-text);
	margin: 0 0 1em;
}

.bnm-policy-panel h3 {
	font-family: var(--font-heading);
	font-size: 1.1rem;
	color: var(--bnm-text);
	margin: 1.8em 0 0.6em;
	padding-top: 1.4em;
	border-top: 1px solid var(--bnm-border);
}

.bnm-policy-panel h3:first-of-type {
	border-top: none;
	padding-top: 0;
}

.bnm-policy-panel p,
.bnm-policy-panel li {
	color: var(--bnm-text-muted);
	line-height: 1.7;
}

.bnm-policy-panel ul {
	margin: 0 0 1em;
	padding-left: 1.3em;
}

.bnm-policy-panel li {
	margin-bottom: 0.4em;
}

.bnm-policy-panel a {
	text-decoration: underline;
}

@media (max-width: 800px) {
	.bnm-policies-layout {
		grid-template-columns: 1fr;
		gap: 2em;
	}
	.bnm-policy-tabs {
		position: static;
		flex-direction: row;
		flex-wrap: wrap;
	}
	.bnm-policy-tab {
		border-top: none;
		border-bottom: 1px solid var(--bnm-border);
		padding: 0.8em 1em 0.8em 0;
	}
	.bnm-policy-tab:last-child {
		border-bottom: 1px solid var(--bnm-border);
	}
}

/* ============================================================
   Fix: same issue as the earlier trust-bar/about-section fix --
   .col-full carries an invisible clearfix pseudo-element, and
   because .bnm-contact-grid and .bnm-policies-layout are ALSO
   CSS Grids placed on a .col-full div, that pseudo-element was
   counted as a real grid cell. This pushed the contact info
   column into the second grid slot (instead of the first) and
   wrapped the form onto its own row below, and would do the same
   to the Policies page's tab sidebar + content layout.
   ============================================================ */
.bnm-contact-grid::before,
.bnm-contact-grid::after,
.bnm-policies-layout::before,
.bnm-policies-layout::after {
	content: none !important;
	display: none !important;
}


/* ============================================================
   Fix: same issue as the earlier trust-bar/about-section fix --
   .col-full carries an invisible clearfix pseudo-element, and
   because .bnm-contact-grid and .bnm-policies-layout are ALSO
   CSS Grids placed on a .col-full div, that pseudo-element was
   counted as a real grid cell. This pushed the contact info
   column into the second grid slot (instead of the first) and
   wrapped the form onto its own row below, and would do the same
   to the Policies page's tab sidebar + content layout.
   ============================================================ */
.bnm-contact-grid::before,
.bnm-contact-grid::after,
.bnm-policies-layout::before,
.bnm-policies-layout::after {
	content: none !important;
	display: none !important;
}


/* ============================================================
   Fix: same issue as the earlier trust-bar/about-section fix --
   .col-full carries an invisible clearfix pseudo-element, and
   because .bnm-contact-grid and .bnm-policies-layout are ALSO
   CSS Grids placed on a .col-full div, that pseudo-element was
   counted as a real grid cell. This pushed the contact info
   column into the second grid slot (instead of the first) and
   wrapped the form onto its own row below, and would do the same
   to the Policies page's tab sidebar + content layout.
   ============================================================ */
.bnm-contact-grid::before,
.bnm-contact-grid::after,
.bnm-policies-layout::before,
.bnm-policies-layout::after {
	content: none !important;
	display: none !important;
}


/* ============================================================
   Fix: the site-wide button styling (.button, button, ...) forces
   a solid gold background + dark text + uppercase on every single
   <button> element with !important, which caught the Policies page
   tab buttons too -- every tab showed as a solid gold pill instead
   of a plain text tab list with only the active one highlighted.
   Overriding it back to the plain tab-list look for just these.
   ============================================================ */
.bnm-policy-tab {
	background: transparent !important;
	color: var(--bnm-text-muted) !important;
	border: none !important;
	border-top: 1px solid var(--bnm-border) !important;
	border-radius: 0 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	font-weight: 400 !important;
	padding: 1.1em 0 !important;
}

.bnm-policy-tab:last-child {
	border-bottom: 1px solid var(--bnm-border) !important;
}

.bnm-policy-tab.active {
	color: var(--bnm-gold-light) !important;
}


/* ============================================================
   About page -- "Our Commitment" split layout (heading + intro on
   the left, a vertical numbered list on the right), replacing the
   4-column grid version to match the approved reference design.
   ============================================================ */
.bnm-commitment-split {
	background: var(--bnm-bg);
	padding: 5em 0;
}

.bnm-commitment-split-grid {
	display: grid;
	grid-template-columns: 0.85fr 1.15fr;
	gap: 4em;
}

/* Same .col-full clearfix pseudo-element issue as the trust bar,
   about section, contact grid, and policies layout before it --
   fixed up front this time instead of as a follow-up patch. */
.bnm-commitment-split-grid::before,
.bnm-commitment-split-grid::after {
	content: none !important;
	display: none !important;
}

.bnm-commitment-split-intro h2 {
	font-family: var(--font-heading);
	font-size: 2.6rem;
	line-height: 1.15;
	color: var(--bnm-text);
	margin: 0 0 0.6em;
}

.bnm-commitment-split-intro h2 em {
	font-style: italic;
	color: var(--bnm-gold-light);
}

.bnm-commitment-split-intro .bnm-section-sub {
	color: var(--bnm-text-muted);
	max-width: 26em;
	margin: 0;
}

.bnm-commitment-split-list {
	display: flex;
	flex-direction: column;
}

.bnm-commitment-split-item {
	display: flex;
	align-items: flex-start;
	gap: 2em;
	padding: 2em 0;
	border-top: 1px solid var(--bnm-border);
}

.bnm-commitment-split-list .bnm-commitment-split-item:last-child {
	border-bottom: 1px solid var(--bnm-border);
}

.bnm-commitment-split-num {
	font-family: var(--font-heading);
	font-size: 2.2rem;
	line-height: 1;
	color: rgba(255, 255, 255, 0.16);
	flex-shrink: 0;
	width: 1.6em;
}

.bnm-commitment-split-body h3 {
	font-family: var(--font-heading);
	font-size: 1.3rem;
	color: var(--bnm-text);
	margin: 0 0 0.5em;
}

.bnm-commitment-split-body p {
	color: var(--bnm-text-muted);
	margin: 0;
}

@media (max-width: 800px) {
	.bnm-commitment-split-grid {
		grid-template-columns: 1fr;
		gap: 2em;
	}
	.bnm-commitment-split-intro h2 {
		font-size: 2.1rem;
	}
}

/* ============================================================
   Fix: body and its #page wrapper had overflow:hidden auto set
   (to clip ~42px of horizontal bleed and hide the off-screen
   mini-cart widget), but that also made them each a "scroll
   container" from the browser's point of view -- and neither of
   them ever actually scrolls (the page always scrolls at the
   html/viewport level), so any position:sticky element inside
   them just sat still and never stuck. Moving the horizontal
   clipping up to <html> itself (which genuinely is what scrolls)
   keeps the same visual clipping while letting position:sticky
   work normally again.
   ============================================================ */
html {
	overflow-x: hidden;
}

body,
#page {
	overflow: visible !important;
}

/* ============================================================
   Header: merge the site branding (logo) and the nav+cart row
   into a single row instead of two stacked rows, and make the
   whole header stick to the top of the viewport on scroll, to
   match the approved design.
   ============================================================ */
.site-header {
	position: sticky !important;
	top: 0 !important;
	z-index: 1000 !important;
}

@media (min-width: 481px) {
	.site-header {
		display: flex;
		align-items: center;
		flex-wrap: nowrap;
	}

	.site-header > .col-full {
		max-width: none;
		width: auto;
		flex: 0 0 auto;
		padding-right: 2.5em;
	}

	.storefront-primary-navigation {
		flex: 1 1 auto;
		min-width: 0;
	}

	.storefront-primary-navigation .col-full {
		max-width: none;
		width: 100%;
		padding-left: 0;
		display: flex;
		align-items: center;
		justify-content: space-between;
	}

	.main-navigation,
	.site-header-cart {
		float: none !important;
	}
}

/* Active/current page nav item gets a bordered box around it
   instead of just a color change, matching the approved design. */
.main-navigation ul li.current-menu-item > a {
	border: 1px solid var(--bnm-gold);
	border-radius: 2px;
}


/* ============================================================
   Fix: the logo sat noticeably higher than the nav links and
   cart icon in the merged single-row header. Storefront's
   default .site-branding element carries its own top/bottom
   margin, which made that flex item's box taller than the logo
   itself (empty space below, none above), so centering the box
   pushed the visible logo above the true middle of the row.
   Removing that leftover margin lets it center correctly.
   Also enlarging the logo badge as requested.
   ============================================================ */
.site-header .site-branding.bnm-site-branding {
	margin: 0 !important;
}

.bnm-brand-icon {
	width: 56px !important;
	height: 56px !important;
	font-size: 1rem !important;
}


/* ============================================================
   Footer redesign to match the approved reference: a boxy cream
   logo card (stand-in for the real logo image once it's
   uploaded), a social icon row (visual placeholders only --
   left unlinked until real profile URLs are supplied), and
   icon-led contact rows. Email updated to the address confirmed
   as real (sales@banknotesandmore.com).
   ============================================================ */
.bnm-footer-logo-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 128px;
	height: 112px;
	background: var(--bnm-bg-card);
	border-radius: 4px;
	gap: 0.35em;
	margin-bottom: 1.4em;
}

.bnm-footer-logo-badge {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	border: 1.5px solid var(--bnm-text-dark);
	color: var(--bnm-text-dark);
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 0.78rem;
}

.bnm-footer-logo-name {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 1rem;
	color: var(--bnm-text-dark);
	line-height: 1;
}

.bnm-footer-logo-sub {
	font-size: 0.58rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--bnm-text-dark);
	line-height: 1;
}

.bnm-footer-social {
	display: flex;
	gap: 0.7em;
	margin-top: 1.2em;
}

.bnm-footer-social-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	border: 1px solid var(--bnm-border);
	color: var(--bnm-text-muted);
}

.bnm-footer-contact-list {
	display: flex;
	flex-direction: column;
	gap: 0.6em;
	margin-bottom: 0.6em;
}

.bnm-footer-contact-row {
	display: flex;
	align-items: center;
	gap: 0.6em;
	margin: 0 !important;
}

.bnm-footer-contact-icon {
	color: var(--bnm-gold);
	flex-shrink: 0;
}

.bnm-footer-payments span {
	background: #ffffff;
	border: none;
	border-radius: 4px;
	padding: 0.4em 0.9em;
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 0.72rem;
	letter-spacing: 0.02em;
	color: #1c1c3a;
}


/* ============================================================
   Single product page redesign: breadcrumb, image card with SKU
   and sale badge, and a summary panel (price, short description,
   add-to-cart, shipping/authenticity notes, payment badges),
   followed by a full-width "About This Piece" section.
   ============================================================ */
.bnm-product-breadcrumb {
	max-width: 84em;
	margin: 0 auto;
	padding: 1.6em 1.5em 0;
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--bnm-text-muted);
}

.bnm-product-breadcrumb a {
	color: var(--bnm-text-muted);
	text-decoration: none;
}

.bnm-product-breadcrumb a:hover {
	color: var(--bnm-gold-light);
}

.bnm-crumb-sep {
	margin: 0 0.5em;
	opacity: 0.5;
}

.bnm-product-page .bnm-product-main {
	display: grid;
	grid-template-columns: 1fr 1.1fr;
	gap: 3.5em;
	max-width: 84em;
	margin: 0 auto;
	padding: 1.8em 1.5em 3em;
	align-items: start;
}

/* -- Gallery / image card -- */
.bnm-product-gallery-wrap {
	position: relative;
	background: var(--bnm-bg-card);
	border-radius: var(--bnm-radius);
	padding: 2.5em;
	min-width: 0;
}

.bnm-product-sku {
	position: absolute;
	top: 1.2em;
	left: 1.4em;
	font-size: 0.75rem;
	letter-spacing: 0.04em;
	color: #9a968c;
	z-index: 2;
}

.bnm-product-save-badge {
	position: absolute;
	top: 1.2em;
	right: 1.4em;
	background: var(--bnm-red);
	color: #fff;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 0.5em 0.9em;
	border-radius: var(--bnm-radius);
	z-index: 2;
}

.bnm-product-gallery-wrap .woocommerce-product-gallery {
	background: #fff;
	border-radius: 2px;
	padding: 1.5em;
	max-width: 26em;
	margin: 0 auto;
}

.bnm-product-gallery-wrap .woocommerce-product-gallery img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0 auto;
}

.bnm-product-gallery-wrap .flex-control-thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6em;
	margin: 1em 0 0;
	padding: 0;
	list-style: none;
}

.bnm-product-gallery-wrap .flex-control-thumbs li {
	width: 3.4em;
}

.bnm-product-gallery-wrap .flex-control-thumbs img {
	border-radius: 2px;
	border: 1px solid var(--bnm-border);
	cursor: pointer;
}

/* -- Summary panel -- */
.bnm-product-summary .bnm-eyebrow {
	margin-bottom: 0.7em;
}

.bnm-product-title {
	font-family: var(--font-heading);
	font-size: clamp(1.8rem, 3vw, 2.4rem);
	line-height: 1.2;
	color: var(--bnm-text);
	margin: 0 0 0.5em;
}

.bnm-product-summary .price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 0.6em;
	font-family: var(--font-heading);
	font-size: 2rem;
	color: var(--bnm-text);
	margin: 0.2em 0 0.2em;
}

.bnm-product-summary .price ins {
	text-decoration: none;
	color: var(--bnm-text);
}

.bnm-product-summary .price del {
	font-family: var(--font-body);
	font-size: 0.5em;
	color: var(--bnm-text-muted);
}

.bnm-product-tax-note {
	font-size: 0.8rem;
	color: var(--bnm-text-muted);
	margin: 0 0 1.4em;
}

.woocommerce-product-details__short-description {
	color: var(--bnm-text-muted);
	line-height: 1.6;
	margin-bottom: 1.6em;
}

.woocommerce-product-details__short-description p {
	margin: 0 0 0.8em;
}

/* -- Add to cart form -- */
.bnm-product-summary form.cart {
	display: flex;
	align-items: stretch;
	flex-wrap: wrap;
	gap: 0.9em;
	margin: 0 0 1.8em;
}

.bnm-product-summary .quantity {
	display: flex;
	align-items: stretch;
	border: 1px solid var(--bnm-border);
	border-radius: var(--bnm-radius);
	overflow: hidden;
}

.bnm-product-summary .quantity input.qty {
	width: 3em;
	text-align: center;
	background: transparent;
	border: none;
	color: var(--bnm-text);
	font-size: 1rem;
	-moz-appearance: textfield;
}

.bnm-product-summary .quantity input.qty::-webkit-inner-spin-button,
.bnm-product-summary .quantity input.qty::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.bnm-product-summary .bnm-qty-btn {
	background: var(--bnm-bg-elevated);
	border: none;
	color: var(--bnm-text-muted);
	width: 2.6em;
	font-size: 1rem;
	cursor: pointer;
}

.bnm-product-summary .bnm-qty-btn:hover {
	color: var(--bnm-gold-light);
}

.bnm-product-summary .single_add_to_cart_button.button {
	flex: 1 1 auto;
	min-width: 13em;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.6em;
}

.bnm-product-summary .single_add_to_cart_button.button::before {
	content: '';
	width: 16px;
	height: 16px;
	flex-shrink: 0;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='16' height='16' fill='none' stroke='%231c1c22' stroke-width='2'><circle cx='9' cy='20' r='1.4'/><circle cx='18' cy='20' r='1.4'/><path d='M2.5 3h2l2.2 12.2a2 2 0 0 0 2 1.6h8a2 2 0 0 0 2-1.8L21 7H6'/></svg>");
	background-size: contain;
	background-repeat: no-repeat;
}

/* -- Trust rows + payment badges -- */
.bnm-product-trust {
	border-top: 1px solid var(--bnm-border);
	padding-top: 1.4em;
	display: flex;
	flex-direction: column;
	gap: 0.9em;
	margin-bottom: 1.6em;
}

.bnm-product-trust-row {
	display: flex;
	align-items: flex-start;
	gap: 0.7em;
	margin: 0;
	color: var(--bnm-text-muted);
	font-size: 0.88rem;
	line-height: 1.5;
}

.bnm-product-trust-icon {
	color: var(--bnm-gold);
	flex-shrink: 0;
	margin-top: 0.2em;
}

.bnm-product-payments {
	display: flex;
	gap: 0.6em;
	flex-wrap: wrap;
}

.bnm-product-payments span {
	background: #ffffff;
	border: none;
	border-radius: 4px;
	padding: 0.4em 0.9em;
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 0.72rem;
	letter-spacing: 0.02em;
	color: #1c1c3a;
}

/* -- About This Piece -- */
.bnm-product-about {
	max-width: 84em;
	margin: 0 auto;
	padding: 3em 1.5em 4em;
	border-top: 1px solid var(--bnm-border);
}

.bnm-product-about .bnm-eyebrow {
	margin-bottom: 1em;
}

.bnm-product-about-content {
	max-width: 52em;
	color: var(--bnm-text-muted);
	line-height: 1.7;
	font-size: 1rem;
}

.bnm-product-about-content p {
	margin: 0 0 1em;
}

@media (max-width: 840px) {
	.bnm-product-page .bnm-product-main {
		grid-template-columns: 1fr;
		gap: 2em;
	}
}


/* ============================================================
   Belt-and-braces alongside the storefront_sidebar unhook in
   functions.php: force content areas to full width and hide the
   (now empty) widget area, so there's no leftover empty gap where
   the sidebar used to be.
   ============================================================ */
.content-area {
	width: 100% !important;
	float: none !important;
}

.widget-area {
	display: none !important;
}


/* ============================================================
   Product page fixes: make the gallery image properly fill its
   frame (it was rendering small/left-aligned instead of filling
   the white card), and tighten up mobile responsiveness across
   the breadcrumb, image card, title/price, cart form, and about
   section.
   ============================================================ */
.bnm-product-gallery-wrap .woocommerce-product-gallery,
.bnm-product-gallery-wrap .woocommerce-product-gallery__wrapper,
.bnm-product-gallery-wrap .woocommerce-product-gallery__image,
.bnm-product-gallery-wrap .woocommerce-product-gallery__image a {
	display: block;
	width: 100%;
}

.bnm-product-gallery-wrap .woocommerce-product-gallery img {
	display: block;
	width: 100% !important;
	height: auto !important;
	max-width: 100%;
	margin: 0 auto;
}

/* -- Tablet: tighten side padding a little -- */
@media (max-width: 840px) {
	.bnm-product-breadcrumb {
		padding: 1.4em 1.2em 0;
	}

	.bnm-product-page .bnm-product-main {
		padding: 1.6em 1.2em 2.5em;
	}

	.bnm-product-about {
		padding: 2.5em 1.2em 3.5em;
	}
}

/* -- Phones: stack the cart form, shrink type, let the SKU/save
   badge sit inline instead of floating over a now-smaller image
   card so nothing overlaps or clips off-screen. -- */
@media (max-width: 480px) {
	.bnm-product-breadcrumb {
		padding: 1.1em 1em 0;
		font-size: 0.68rem;
	}

	.bnm-product-page .bnm-product-main {
		padding: 1.2em 1em 2em;
		gap: 1.6em;
	}

	.bnm-product-gallery-wrap {
		padding: 1.3em;
	}

	.bnm-product-sku,
	.bnm-product-save-badge {
		position: static;
		display: inline-block;
		margin: 0 0.6em 0.8em 0;
	}

	.bnm-product-title {
		font-size: 1.55rem;
	}

	.bnm-product-summary .price {
		font-size: 1.6rem;
	}

	.bnm-product-summary form.cart {
		flex-direction: column;
		align-items: stretch;
	}

	.bnm-product-summary .quantity {
		align-self: flex-start;
	}

	.bnm-product-summary .single_add_to_cart_button.button {
		width: 100%;
		min-width: 0;
	}

	.bnm-product-trust-row {
		font-size: 0.84rem;
	}

	.bnm-product-about {
		padding: 2em 1em 3em;
	}

	.bnm-product-about-content {
		font-size: 0.95rem;
	}
}


/* ============================================================
   Full-bleed fix: the product page content was sticking to the
   left side of the screen on wide monitors (e.g. 1920px) with a
   large empty gap on the right, instead of being centered. This
   happened because Storefront wraps the product content in its
   own narrower/floated container, so our max-width:84em + auto
   margins on .bnm-product-main were only centering within THAT
   narrower box, not the actual browser window. This makes the
   whole product page block break out to the full browser width
   first, so the centering underneath it works against the real
   viewport instead.
   ============================================================ */
.bnm-product-page {
	width: 100vw;
	position: relative;
	left: 50%;
	right: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
	box-sizing: border-box;
}

/* ============================================================
   Match pass against the approved Emergent reference design
   (whitby-numismatics.preview.emergentagent.com). Pulled exact
   values by inspecting the live reference page: colors, fonts,
   the 7:5 image/summary column ratio, the 1440px container width,
   and -- the main fix -- a fixed aspect-ratio image frame so every
   product photo sits consistently sized and centered regardless
   of its own original dimensions, instead of shrinking to its
   natural size inside the card like it was before.
   ============================================================ */

:root {
	--bnm-bg: #101214;
	--bnm-bg-elevated: #16191c;
	--bnm-bg-card: #f5f3ee;
	--bnm-gold: #d4af37;
	--bnm-gold-light: #e6c86b;
	--bnm-text: #f5f3ee;
	--bnm-text-muted: rgba(245, 243, 238, 0.65);
	--bnm-text-dark: #101214;
	--bnm-red: #d80621;
	--bnm-green: #1f6b3a;
	--font-body: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* -- Overall content width: 1440px to match the reference exactly -- */
.bnm-product-breadcrumb,
.bnm-product-page .bnm-product-main,
.bnm-product-about {
	max-width: 90em; /* 1440px */
}

.bnm-product-breadcrumb {
	padding: 2em 1.25em 0;
	font-size: 0.6875rem;
	letter-spacing: 0.2em;
}

/* -- Column ratio: image gets 7/12, summary gets 5/12 (was roughly 1:1.1,
   which starved the image and left the summary column looking too wide
   and empty) -- */
.bnm-product-page .bnm-product-main {
	grid-template-columns: 7fr 5fr;
	gap: 3em;
	padding: 2.5em 1.25em 2.5em;
}

@media (min-width: 1024px) {
	.bnm-product-page .bnm-product-main {
		gap: 4em;
		padding: 4em 3em;
	}
}

/* -- Image card: soft radial "spotlight" background instead of flat
   white, and a FIXED aspect-ratio frame (square on mobile/tablet, 4:3
   on desktop) with the photo centered and scaled to fit inside it via
   object-fit. This is what keeps every product photo a consistent,
   predictable size regardless of the original image's own dimensions
   -- the earlier version just let each image render at its natural
   size inside the card, which is why some looked tiny/off-center. -- */
.bnm-product-gallery-wrap {
	background: radial-gradient(at 50% 40%, #ffffff 0%, #f3f1ec 55%, #e6e2d9 100%);
	padding: 2.5em;
}

@media (min-width: 640px) {
	.bnm-product-gallery-wrap {
		padding: 4em;
	}
}

.bnm-product-gallery-wrap .woocommerce-product-gallery {
	background: transparent !important;
	padding: 0 !important;
	max-width: none !important;
	margin: 0 !important;
	width: 100% !important;
	float: none !important;
}

.bnm-product-gallery-wrap .woocommerce-product-gallery__wrapper {
	overflow: hidden;
}

.bnm-product-gallery-wrap .flex-viewport {
	height: auto !important;
}

.bnm-product-gallery-wrap .woocommerce-product-gallery__wrapper img {
	display: block;
	width: auto !important;
	height: auto !important;
	max-width: 100% !important;
	max-height: 100%;
	object-fit: contain;
	margin: 0 auto !important;
	filter: drop-shadow(0 30px 40px rgba(0, 0, 0, 0.2));
}

.bnm-product-gallery-wrap .flex-control-thumbs {
	margin-top: 1.2em;
}

/* -- Price: match the reference's serif price treatment -- */
.bnm-product-summary .price {
	font-size: 1.875rem; /* 30px */
	font-weight: 400;
}

/* -- Add to cart button: solid gold, dark uppercase label, matching
   the reference's btn-gold style exactly -- */
.bnm-product-summary .single_add_to_cart_button.button {
	height: 3.5em;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	background: var(--bnm-gold);
	color: var(--bnm-text-dark);
}

.bnm-product-summary .single_add_to_cart_button.button:hover {
	background: var(--bnm-gold-light);
}

/* -- Mobile/tablet: keep the two columns stacked until the same
   1024px breakpoint the reference design switches at (was 840px) -- */
@media (max-width: 1023px) {
	.bnm-product-page .bnm-product-main {
		grid-template-columns: 1fr;
		gap: 2em;
	}
}

/* ============================================================
   Third pass -- pulled directly from your actual Emergent repo's
   source code (ProductDetail.jsx, ProductCard.jsx, index.css,
   tailwind.config.js), not just inspecting the rendered page. These
   are the EXACT pixel values your reference design uses, so this
   should bring the product page to a near pixel-match.
   ============================================================ */

/* -- Breadcrumb: matches px-5 / sm:px-8 / lg:px-12 responsive side padding -- */
@media (min-width: 640px) {
	.bnm-product-breadcrumb {
		padding-left: 2em !important;
		padding-right: 2em !important;
	}
}

@media (min-width: 1024px) {
	.bnm-product-breadcrumb {
		padding-left: 3em !important;
		padding-right: 3em !important;
	}
}

@media (min-width: 640px) and (max-width: 1023px) {
	.bnm-product-page .bnm-product-main {
		padding-left: 2em !important;
		padding-right: 2em !important;
	}
}

/* -- Image drop shadow: exact value from the reference -- */
.bnm-product-gallery-wrap .woocommerce-product-gallery__wrapper img {
	filter: drop-shadow(0 40px 60px rgba(0, 0, 0, 0.25)) !important;
}

/* -- SKU label: 10px, wide tracking, 45% black, positioned 20px from the corner -- */
.bnm-product-sku {
	top: 1.25em !important;
	left: 1.25em !important;
	font-size: 0.625rem !important;
	letter-spacing: 0.25em !important;
	color: rgba(0, 0, 0, 0.45) !important;
	text-transform: uppercase !important;
}

/* -- Sale badge: small flat rectangle, not a rounded pill -- */
.bnm-product-save-badge {
	top: 1.25em !important;
	right: 1.25em !important;
	background: var(--bnm-red) !important;
	padding: 0.25rem 0.625rem !important;
	font-size: 0.625rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.2em !important;
	text-transform: uppercase !important;
	color: #fff !important;
	border-radius: 0 !important;
}

/* -- Eyebrow / category label above the title -- */
.bnm-eyebrow {
	font-size: 0.6875rem !important;
	letter-spacing: 0.28em !important;
	font-weight: 600 !important;
	color: var(--bnm-gold) !important;
	text-transform: uppercase !important;
}

/* -- Title top margin (16px) -- */
.bnm-product-title {
	margin-top: 1rem !important;
}

/* -- Short description paragraph -- */
.woocommerce-product-details__short-description {
	margin-top: 1.5rem !important;
	font-size: 0.875rem !important;
	line-height: 1.625 !important;
	color: var(--bnm-text-muted) !important;
}

/* -- Quantity selector -- */
.bnm-product-summary .quantity {
	height: 3.5em !important;
	border-color: rgba(255, 255, 255, 0.2) !important;
}

.bnm-product-summary .quantity input.qty {
	width: 2.5rem !important;
	font-weight: 600 !important;
}

/* -- Add to cart button: exact letter-spacing -- */
.bnm-product-summary .single_add_to_cart_button.button {
	letter-spacing: 0.2em !important;
}

/* -- Shipping / authenticity trust rows -- */
.bnm-product-trust {
	margin-top: 2rem !important;
	padding-top: 1.5rem !important;
	gap: 0.75rem !important;
	border-top-color: rgba(255, 255, 255, 0.1) !important;
}

.bnm-product-trust-row {
	font-size: 0.875rem !important;
	color: var(--bnm-text-muted) !important;
}

.bnm-product-trust-icon {
	width: 1rem !important;
	height: 1rem !important;
	color: var(--bnm-gold) !important;
}

/* -- Payment badges: small flat white tags, 48x32px -- */
.bnm-product-payments {
	margin-top: 1.5rem !important;
	gap: 0.5rem !important;
}

.bnm-product-payments span {
	height: 2rem !important;
	width: 3rem !important;
	border-radius: 3px !important;
	background: #fff !important;
	border: 1px solid rgba(255, 255, 255, 0.15) !important;
	padding: 0 !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
}

/* -- Gallery thumbnails: 96px square, spotlight background, gold border
   when active, matching the reference's thumbnail strip -- */
.bnm-product-gallery-wrap .flex-control-thumbs {
	gap: 0.75rem !important;
	margin-top: 0.75rem !important;
}

.bnm-product-gallery-wrap .flex-control-thumbs li {
	width: 6rem !important;
	height: 6rem !important;
}

.bnm-product-gallery-wrap .flex-control-thumbs img {
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
	background: radial-gradient(ellipse at 50% 40%, #ffffff 0%, #f3f1ec 55%, #e6e2d9 100%) !important;
	padding: 0.5rem !important;
	border: 2px solid transparent !important;
	box-sizing: border-box !important;
}

.bnm-product-gallery-wrap .flex-control-thumbs img.flex-active,
.bnm-product-gallery-wrap .flex-control-thumbs .flex-active img {
	border-color: var(--bnm-gold) !important;
}
.bnm-footer-payments span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 2em;
	width: 3em;
	border-radius: 3px;
	background: #fff;
	border: 1px solid rgba(255, 255, 255, 0.15);
}

.bnm-payment-svg {
	width: auto;
	max-width: 80%;
}

/* ============================================================
   Compatibility fixes -- things a leftover Storefront setting
   could otherwise clash with:

   1) Force the content area to full width and hide any sidebar
      widget area, so Storefront's two-column (content + sidebar)
      layout can never squeeze our 1440px sections into a narrower
      column, regardless of what widgets are currently assigned.

   2) When viewing the site logged in, offset the sticky header by
      the height of the WordPress admin bar so it doesn't sit
      underneath it while scrolling.
   ============================================================ */
#primary.content-area,
.content-area {
	width: 100% !important;
	float: none !important;
	max-width: none !important;
}

#secondary,
.widget-area {
	display: none !important;
}

body.admin-bar .bnm-site-header {
	top: 32px;
}

@media (max-width: 782px) {
	body.admin-bar .bnm-site-header {
		top: 46px;
	}
}

/* ============================================================
   Site-wide header and footer, replicating the approved Emergent
   reference design exactly (Header.jsx / Footer.jsx / index.css).
   This replaces Storefront's default header/footer appearance.
   ============================================================ */

.bnm-site-wrap {
	background: var(--bnm-bg);
	color: var(--bnm-text);
	min-height: 100vh;
}

/* ---------- Header ---------- */
.bnm-site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	background: rgba(16, 18, 20, 0.6);
	backdrop-filter: blur(24px);
	-webkit-backdrop-filter: blur(24px);
	transition: background-color 0.5s ease;
}

.bnm-site-header.is-scrolled {
	background: rgba(16, 18, 20, 0.85);
}

.bnm-header-inner {
	max-width: 90em;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 4em;
	padding: 0 1.25em;
}

@media (min-width: 640px) {
	.bnm-header-inner {
		padding: 0 2em;
	}
}

@media (min-width: 1024px) {
	.bnm-header-inner {
		height: 5em;
		padding: 0 3em;
	}
}

.bnm-header-logo {
	display: flex;
	align-items: center;
	gap: 0.75em;
	text-decoration: none;
	color: var(--bnm-text);
}

.bnm-header-logo-mark {
	display: block;
	width: 2.25em;
	height: 2.25em;
	object-fit: contain;
	flex-shrink: 0;
}

@media (min-width: 1024px) {
	.bnm-header-logo-mark {
		width: 2.5em;
		height: 2.5em;
	}
}

.bnm-header-logo-text {
	display: none;
	flex-direction: column;
	line-height: 1;
}

@media (min-width: 640px) {
	.bnm-header-logo-text {
		display: flex;
	}
}

.bnm-header-logo-title {
	font-family: var(--font-heading);
	font-size: 1.125rem;
	letter-spacing: -0.01em;
}

.bnm-header-logo-sub {
	font-size: 9px;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	font-weight: 600;
	color: #5fb57d;
	margin-top: 0.3em;
}

.bnm-header-nav {
	display: none;
	align-items: center;
	gap: 2.5em;
}

@media (min-width: 1024px) {
	.bnm-header-nav {
		display: flex;
	}
}

.bnm-nav-link {
	position: relative;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.22em;
	color: rgba(245, 243, 238, 0.75);
	text-decoration: none;
	transition: color 0.3s ease;
	padding-bottom: 4px;
}

.bnm-nav-link::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: -4px;
	height: 1px;
	width: 100%;
	background: var(--bnm-gold);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.bnm-nav-link:hover {
	color: var(--bnm-text);
}

.bnm-nav-link:hover::after {
	transform: scaleX(1);
	transform-origin: left;
}

.bnm-nav-link.is-active {
	color: var(--bnm-gold);
}

.bnm-nav-link.is-active::after {
	transform: scaleX(1);
	transform-origin: left;
}

.bnm-header-actions {
	display: flex;
	align-items: center;
	gap: 0.5em;
}

.bnm-header-icon-btn {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.75em;
	height: 2.75em;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.15);
	color: var(--bnm-text);
	background: transparent;
	cursor: pointer;
	text-decoration: none;
	transition: border-color 0.3s ease, background-color 0.3s ease;
}

.bnm-header-icon-btn:hover {
	border-color: var(--bnm-gold);
	background: rgba(255, 255, 255, 0.05);
}

.bnm-cart-count {
	position: absolute;
	top: -0.25em;
	right: -0.25em;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 1.25em;
	min-width: 1.25em;
	padding: 0 0.25em;
	border-radius: 50%;
	background: var(--bnm-gold);
	color: var(--bnm-text-dark);
	font-size: 10px;
	font-weight: 700;
}

.bnm-mobile-menu-toggle {
	display: flex;
}

@media (min-width: 1024px) {
	.bnm-mobile-menu-toggle {
		display: none;
	}
}

/* ---------- Mobile nav panel ---------- */
.bnm-mobile-nav {
	display: none;
	flex-direction: column;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	background: var(--bnm-bg);
	padding: 1.5em;
}

.bnm-mobile-nav.is-open {
	display: flex;
}

@media (min-width: 1024px) {
	.bnm-mobile-nav {
		display: none !important;
	}
}

.bnm-mobile-nav-link {
	display: flex;
	align-items: baseline;
	gap: 1em;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	padding: 1em 0;
	font-family: var(--font-heading);
	font-size: 1.5rem;
	color: var(--bnm-text);
	text-decoration: none;
}

.bnm-mobile-nav-link.is-active {
	color: var(--bnm-gold);
}

.bnm-mobile-nav-num {
	font-size: 10px;
	letter-spacing: 0.3em;
	color: rgba(245, 243, 238, 0.4);
}

/* ---------- Footer ---------- */
.bnm-site-footer {
	position: relative;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	background: var(--bnm-bg-elevated);
}

.bnm-footer-inner {
	max-width: 90em;
	margin: 0 auto;
	padding: 4em 1.25em;
}

@media (min-width: 640px) {
	.bnm-footer-inner {
		padding-left: 2em;
		padding-right: 2em;
	}
}

@media (min-width: 1024px) {
	.bnm-footer-inner {
		padding: 6em 3em;
	}
}

.bnm-footer-grid {
	display: grid;
	gap: 3em;
	grid-template-columns: 1fr;
}

@media (min-width: 1024px) {
	.bnm-footer-grid {
		grid-template-columns: 5fr 3fr 4fr;
		gap: 3em 4em;
	}
}

.bnm-footer-logo-box {
	display: inline-flex;
}

.bnm-footer-logo-mark {
	display: block;
	width: 4.5em;
	height: 4.5em;
	object-fit: contain;
}

.bnm-footer-tagline {
	margin-top: 2em;
	max-width: 24em;
	font-size: 0.875rem;
	line-height: 1.6;
	color: rgba(245, 243, 238, 0.6);
}

.bnm-footer-social {
	margin-top: 2em;
	display: flex;
	align-items: center;
	gap: 0.75em;
}

.bnm-footer-social-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.5em;
	height: 2.5em;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.15);
	color: rgba(245, 243, 238, 0.7);
	text-decoration: none;
	transition: border-color 0.3s ease, color 0.3s ease;
}

.bnm-footer-social-icon:hover {
	border-color: var(--bnm-gold);
	color: var(--bnm-gold);
}

.bnm-footer-eyebrow {
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.28em;
	font-weight: 600;
	color: var(--bnm-gold);
	margin: 0;
}

.bnm-footer-eyebrow-accept {
	margin-top: 2.5em;
}

.bnm-footer-links {
	margin: 1.5em 0 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0.75em;
}

.bnm-footer-links a {
	font-size: 0.875rem;
	color: rgba(245, 243, 238, 0.7);
	text-decoration: none;
	transition: color 0.3s ease;
}

.bnm-footer-links a:hover {
	color: var(--bnm-text);
}

.bnm-footer-contact-list {
	margin: 1.5em 0 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 1em;
	font-size: 0.875rem;
	color: rgba(245, 243, 238, 0.7);
}

.bnm-footer-contact-list li {
	display: flex;
	align-items: flex-start;
	gap: 0.75em;
}

.bnm-footer-contact-list a {
	color: inherit;
	text-decoration: none;
}

.bnm-footer-contact-list a:hover {
	color: var(--bnm-text);
}

.bnm-footer-contact-icon {
	flex-shrink: 0;
	margin-top: 0.15em;
	color: var(--bnm-gold);
}

.bnm-footer-payments {
	margin-top: 1em;
	display: flex;
	gap: 0.5em;
}


.bnm-footer-bottom {
	margin-top: 4em;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	padding-top: 2em;
	display: flex;
	flex-direction: column;
	gap: 1em;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: rgba(245, 243, 238, 0.4);
}

@media (min-width: 640px) {
	.bnm-footer-bottom {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}
}

.bnm-footer-flag {
	display: flex;
	align-items: center;
	gap: 0.5em;
}

.bnm-footer-dot {
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--bnm-red);
}

/* ---------- Fix: footer payment badges were squeezed by an
   older leftover padding rule earlier in this file ---------- */
.bnm-footer-payments span {
	padding: 0 !important;
}

.bnm-payment-svg {
	max-width: none !important;
}

/* ---------- Fix: the site-wide !important button styling (gold
   background, dark text, big padding) also catches the circular
   header icon buttons, because the mobile menu toggle is a real
   <button> element -- it was rendering as a solid gold square with
   the hamburger icon squeezed to 0 width inside the oversized
   padding. Restoring the plain circular icon-button look. ---------- */
.bnm-header-icon-btn {
	background: transparent !important;
	color: var(--bnm-text) !important;
	padding: 0 !important;
	border-radius: 50% !important;
}

.bnm-header-icon-btn:hover {
	background: rgba(255, 255, 255, 0.05) !important;
}

.bnm-header-icon-btn svg {
	flex-shrink: 0;
}
/* ============================================================
   Product card -- matches ProductCard.jsx exactly. Used by both
   the Shop page grid and the Home "New Arrivals" grid, since both
   render through woocommerce/content-product.php.
   ============================================================ */

.bnm-product-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: #ffffff;
	color: var(--bnm-text-dark);
	list-style: none;
	margin: 0;
}

.bnm-card-media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	padding: 2.5em;
	background: radial-gradient(at 50% 40%, #ffffff 0%, #f3f1ec 55%, #e6e2d9 100%);
}

.bnm-product-card > a.product_type_simple.add_to_cart_button {
	display: none;
}

.bnm-card-badge {
	position: absolute;
	left: 1em;
	top: 1em;
	z-index: 2;
	padding: 0.25em 0.6em;
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.2em;
}

.bnm-badge-sale {
	background: var(--bnm-red);
	color: #ffffff;
}

.bnm-badge-new {
	background: var(--bnm-green);
	color: #ffffff;
}

.bnm-badge-gold {
	background: var(--bnm-gold);
	color: var(--bnm-text-dark);
}

.bnm-card-cat {
	position: absolute;
	right: 1em;
	top: 1em;
	z-index: 2;
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 0.25em;
	color: rgba(0, 0, 0, 0.4);
}

.bnm-card-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	filter: drop-shadow(0 24px 40px rgba(0, 0, 0, 0.18));
	transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

.bnm-product-card:hover .bnm-card-img {
	transform: scale(1.06);
}

.bnm-card-view-btn {
	position: absolute;
	right: 1em;
	bottom: 1em;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.25em;
	height: 2.25em;
	border-radius: 50%;
	background: var(--bnm-text-dark);
	color: var(--bnm-text);
	opacity: 0;
	transform: translateY(0.5em);
	transition: opacity 0.5s ease, transform 0.5s ease;
}

.bnm-product-card:hover .bnm-card-view-btn {
	opacity: 1;
	transform: translateY(0);
}

.bnm-card-body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	border-top: 1px solid rgba(0, 0, 0, 0.1);
	padding: 1.5em;
}

.bnm-card-title {
	font-family: var(--font-heading);
	font-size: 1.125rem;
	line-height: 1.3;
	color: var(--bnm-text-dark);
	text-decoration: none;
	transition: color 0.3s ease;
}

.bnm-card-title:hover {
	color: var(--bnm-green);
}

.bnm-card-excerpt {
	margin: 0.5em 0 0;
	font-size: 0.75rem;
	line-height: 1.5;
	color: rgba(0, 0, 0, 0.55);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.bnm-card-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: auto;
	padding-top: 1.25em;
}

.bnm-card-price {
	font-family: var(--font-heading);
	font-size: 1rem;
	color: var(--bnm-text-dark);
}

.bnm-card-price .woocommerce-Price-amount {
	font-family: var(--font-heading);
}

.bnm-card-price del {
	font-family: var(--font-body);
	font-size: 0.85em;
	color: rgba(0, 0, 0, 0.4);
	text-decoration: line-through;
	margin-right: 0.4em;
}

.bnm-card-price ins {
	text-decoration: none;
}

.bnm-card-add {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.5em;
	height: 2.5em;
	flex-shrink: 0;
	border-radius: 50%;
	border: 1px solid rgba(0, 0, 0, 0.15);
	background: transparent;
	color: var(--bnm-text-dark);
	text-decoration: none;
	transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

.bnm-card-add:hover {
	border-color: var(--bnm-text-dark);
	background: var(--bnm-text-dark);
	color: var(--bnm-text);
}

.bnm-card-add.loading {
	opacity: 0.6;
	pointer-events: none;
}

.bnm-card-footer a.added_to_cart {
	display: none;
}

/* ---------- Grid containers that use this card ---------- */
.bnm-new-arrivals-grid.products,
.bnm-shop-grid.products {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1px;
	background: rgba(255, 255, 255, 0.1);
	list-style: none;
	padding: 0;
}

@media (min-width: 640px) {
	.bnm-new-arrivals-grid.products {
		grid-template-columns: repeat(2, 1fr);
	}
	.bnm-shop-grid.products {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.bnm-new-arrivals-grid.products {
		grid-template-columns: repeat(4, 1fr);
	}
}

@media (min-width: 1280px) {
	.bnm-shop-grid.products {
		grid-template-columns: repeat(3, 1fr);
	}
}
/* ============================================================
   Shop page -- hero, sidebar filters, toolbar, and grid layout.
   Matches the approved design (Shop.jsx).
   ============================================================ */

.bnm-shop-page {
	background: var(--bnm-bg);
	color: var(--bnm-text);
}

/* ---------- Hero ---------- */
.bnm-shop-hero {
	border-bottom: 1px solid var(--bnm-border);
}

.bnm-shop-hero-inner {
	max-width: 90em;
	margin: 0 auto;
	padding: 4em 1.25em 3.5em;
}

@media (min-width: 640px) {
	.bnm-shop-hero-inner {
		padding-left: 2em;
		padding-right: 2em;
	}
}

@media (min-width: 1024px) {
	.bnm-shop-hero-inner {
		padding: 6em 3em 5em;
	}
}

.bnm-shop-heading {
	margin: 0.6em 0 0;
	font-family: var(--font-heading);
	font-size: 2.25rem;
	line-height: 1.05;
}

@media (min-width: 640px) {
	.bnm-shop-heading {
		font-size: 3rem;
	}
}

@media (min-width: 1024px) {
	.bnm-shop-heading {
		font-size: 3.75rem;
	}
}

.bnm-shop-hero-desc {
	margin: 1.4em 0 0;
	max-width: 32em;
	font-size: 0.9rem;
	line-height: 1.7;
	color: var(--bnm-text-muted);
}

/* ---------- Body layout ---------- */
.bnm-shop-body {
	max-width: 90em;
	margin: 0 auto;
	padding: 2.5em 1.25em 5em;
}

@media (min-width: 640px) {
	.bnm-shop-body {
		padding-left: 2em;
		padding-right: 2em;
	}
}

@media (min-width: 1024px) {
	.bnm-shop-body {
		padding: 4.5em 3em 6em;
	}
}

.bnm-shop-grid-wrap {
	display: grid;
	gap: 2.5em;
}

@media (min-width: 1024px) {
	.bnm-shop-grid-wrap {
		grid-template-columns: 23% 1fr;
		gap: 3em;
	}
}

/* ---------- Sidebar filters ---------- */
.bnm-shop-sidebar {
	display: none;
}

.bnm-shop-sidebar.is-open {
	display: block;
	padding-bottom: 2em;
	border-bottom: 1px solid var(--bnm-border);
	margin-bottom: 1em;
}

@media (min-width: 1024px) {
	.bnm-shop-sidebar {
		display: block;
	}
	.bnm-shop-sidebar.is-open {
		border-bottom: none;
		margin-bottom: 0;
		padding-bottom: 0;
	}
}

.bnm-shop-sidebar-sticky {
	position: static;
}

@media (min-width: 1024px) {
	.bnm-shop-sidebar-sticky {
		position: sticky;
		top: 7em;
	}
}

.bnm-sidebar-label {
	margin: 0;
}

.bnm-sidebar-label-spaced {
	margin-top: 2.5em;
}

.bnm-cat-list {
	margin-top: 1.25em;
}

.bnm-cat-list ul.product-categories {
	list-style: none;
	margin: 0;
	padding: 0;
}

.bnm-cat-list ul.product-categories ul.children {
	list-style: none;
	margin: 0.2em 0 0.4em 1em;
	padding: 0;
}

.bnm-cat-list li {
	border: none;
}

.bnm-cat-list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75em;
	padding: 0.5em 0;
	font-size: 0.875rem;
	color: rgba(245, 243, 238, 0.65);
	text-decoration: none;
	transition: color 0.3s ease;
}

.bnm-cat-list a:hover {
	color: var(--bnm-text);
}

.bnm-cat-list li.current-cat > a {
	color: var(--bnm-gold);
}

.bnm-cat-list .count {
	font-size: 11px;
	color: rgba(245, 243, 238, 0.35);
}

.bnm-price-filter {
	margin-top: 1.25em;
}

.bnm-price-filter .price_slider {
	margin-bottom: 1.25em;
}

.bnm-price-filter .price_slider_amount {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 0.875rem;
	color: rgba(245, 243, 238, 0.7);
}

.bnm-price-filter .price_slider_amount button {
	height: auto !important;
	padding: 0.5em 1em !important;
	font-size: 0.72rem !important;
}

.bnm-price-filter .ui-slider {
	position: relative;
	height: 2px;
	background: rgba(255, 255, 255, 0.15);
	border: none;
}

.bnm-price-filter .ui-slider .ui-slider-range {
	position: absolute;
	height: 2px;
	background: var(--bnm-gold);
}

.bnm-price-filter .ui-slider .ui-slider-handle {
	position: absolute;
	top: 50%;
	width: 12px;
	height: 12px;
	margin-left: -6px;
	border-radius: 50%;
	background: var(--bnm-bg);
	border: 2px solid var(--bnm-gold);
	transform: translateY(-50%);
	cursor: pointer;
	outline: none;
}

/* ---------- Toolbar ---------- */
.bnm-shop-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1em;
	padding-bottom: 1.5em;
	border-bottom: 1px solid var(--bnm-border);
}

.bnm-shop-count {
	margin: 0;
	font-size: 0.875rem;
	color: rgba(245, 243, 238, 0.6);
}

.bnm-shop-count span {
	color: var(--bnm-text);
}

.bnm-shop-toolbar-actions {
	display: flex;
	align-items: center;
	gap: 0.75em;
}

.bnm-shop-filters-toggle {
	display: flex;
	align-items: center;
	gap: 0.5em;
	border: 1px solid rgba(255, 255, 255, 0.15);
	background: transparent;
	color: var(--bnm-text);
	padding: 0.65em 1em;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	cursor: pointer;
}

@media (min-width: 1024px) {
	.bnm-shop-filters-toggle {
		display: none;
	}
}

.bnm-shop-sort select {
	height: 2.5em;
	min-width: 180px;
	border-radius: 0;
	border: 1px solid rgba(255, 255, 255, 0.15);
	background-color: transparent;
	color: var(--bnm-text);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	padding: 0 1em;
}

.bnm-shop-sort select:focus {
	outline: none;
	border-color: var(--bnm-gold);
}

/* ---------- Grid ---------- */
.bnm-shop-main {
	min-width: 0;
}

.bnm-shop-grid {
	margin-top: 2em;
}

/* ---------- No products found ---------- */
.bnm-shop-main .woocommerce-info {
	margin-top: 2em;
	padding: 3em 0;
	text-align: center;
	background: none;
	border: none;
	color: var(--bnm-text-muted);
	font-family: var(--font-heading);
	font-size: 1.1rem;
}

/* ---------- Pagination ---------- */
.bnm-shop-main nav.woocommerce-pagination {
	margin-top: 3em;
	text-align: center;
}

.bnm-shop-main nav.woocommerce-pagination ul {
	display: inline-flex;
	gap: 0.5em;
	list-style: none;
	margin: 0;
	padding: 0;
	border: none;
}

.bnm-shop-main nav.woocommerce-pagination ul li {
	border: none;
}

.bnm-shop-main nav.woocommerce-pagination .page-numbers {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.5em;
	height: 2.5em;
	border: 1px solid rgba(255, 255, 255, 0.15);
	color: var(--bnm-text-muted);
	text-decoration: none;
	font-size: 0.8rem;
}

.bnm-shop-main nav.woocommerce-pagination .page-numbers.current,
.bnm-shop-main nav.woocommerce-pagination .page-numbers:hover {
	border-color: var(--bnm-gold);
	color: var(--bnm-gold);
}

/* ============================================================
   Cookie consent banner -- fixed bottom bar, dark/gold styling.
   ============================================================ */
.bnm-cookie-banner {
	display: none;
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 9999;
	background: var(--bnm-bg-elevated);
	border-top: 1px solid var(--bnm-border);
	padding: 1.25em;
}

.bnm-cookie-banner.is-visible {
	display: flex;
}

.bnm-cookie-banner-inner {
	width: 100%;
	max-width: 90em;
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1em;
}

.bnm-cookie-banner-text {
	margin: 0;
	flex: 1 1 20em;
	font-size: 0.8rem;
	line-height: 1.6;
	color: var(--bnm-text-muted);
}

.bnm-cookie-banner-text a {
	color: var(--bnm-gold);
	text-decoration: underline;
}

.bnm-cookie-banner-actions {
	flex-shrink: 0;
}

.bnm-cookie-accept-btn {
	background: var(--bnm-gold);
	color: var(--bnm-text-dark);
	border: none;
	padding: 0.75em 2em;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	cursor: pointer;
	transition: background-color 0.3s ease;
}

.bnm-cookie-accept-btn:hover {
	background: var(--bnm-gold-light);
}

@media (max-width: 640px) {
	.bnm-cookie-banner-inner {
		flex-direction: column;
		align-items: stretch;
		text-align: center;
	}
	.bnm-cookie-accept-btn {
		width: 100%;
	}
}

/* ============================================================
   Product page v2 -- matches the reference product page
   (whitby-numismatics preview): breadcrumb, 7/5 two-column layout
   with the photo card + About + Specifications on the left and a
   sticky summary on the right, then a full-width "You may also
   like" card grid. Stacks to a single column below 1024px.
   All selectors are scoped under .bnm-pp so nothing else on the
   site is affected.
   ============================================================ */
.bnm-pp {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	max-width: none;
	padding: 0;
	color: var(--bnm-text);
}

body.single-product {
	overflow-x: clip;
}

.bnm-pp-crumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	max-width: 1440px;
	margin: 0 auto;
	padding: 2rem 1.25rem 0;
	font-size: 11px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: rgba(245, 243, 238, 0.45);
}

.bnm-pp .bnm-pp-crumbs a {
	color: rgba(245, 243, 238, 0.45) !important;
	text-decoration: none;
}

.bnm-pp .bnm-pp-crumbs a:hover {
	color: var(--bnm-text) !important;
}

.bnm-pp-crumb-sep {
	opacity: 0.6;
}

.bnm-pp-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 3rem;
	align-items: start;
	max-width: 1440px;
	margin: 0 auto;
	padding: 2.5rem 1.25rem;
}

.bnm-pp-eyebrow {
	margin: 0;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.28em;
	line-height: 1.5;
	text-transform: uppercase;
	color: var(--bnm-gold, #d4af37);
}

/* -- Photo card -- */
.bnm-pp .bnm-pp-gallery.bnm-product-gallery-wrap {
	min-width: 0;
	padding: 2.5rem;
	border-radius: 0;
}

.bnm-pp .bnm-pp-gallery .woocommerce-product-gallery__image {
	aspect-ratio: 1 / 1;
}

.bnm-pp .bnm-pp-gallery .woocommerce-product-gallery__image > a {
	display: block;
	height: 100%;
}

.bnm-pp .bnm-pp-gallery .woocommerce-product-gallery__image img:not(.zoomImg) {
	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
	max-height: none !important;
	object-fit: contain !important;
}

/* -- Summary -- */
.bnm-pp-summary {
	min-width: 0;
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
	max-width: none !important;
}

.bnm-pp-title {
	margin: 1rem 0 0;
	font-family: var(--font-heading);
	font-size: 1.875rem;
	font-weight: 400;
	line-height: 1.1;
	color: var(--bnm-text);
}

.bnm-pp-summary .bnm-product-trust {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}

/* -- About + Specifications -- */
.bnm-pp-details {
	min-width: 0;
}

.bnm-pp-block + .bnm-pp-block {
	margin-top: 3rem;
}

.bnm-pp-about {
	margin-top: 1rem;
	font-size: 1rem;
	line-height: 1.625;
	color: rgba(245, 243, 238, 0.7);
}

.bnm-pp-about > h1:first-child {
	display: none;
}

.bnm-pp-about h2,
.bnm-pp-about h3 {
	margin: 2rem 0 0.75rem;
	font-family: var(--font-heading);
	font-size: 1.25rem;
	font-weight: 400;
	line-height: 1.3;
	color: var(--bnm-text);
}

.bnm-pp-about p {
	margin: 0 0 1rem;
}

.bnm-pp-about ul {
	margin: 0 0 1rem 1.25rem;
	padding: 0;
}

.bnm-pp-about strong {
	color: var(--bnm-text);
	font-weight: 600;
}

.bnm-pp-specs {
	width: 100%;
	margin: 1rem 0 0;
	border-collapse: collapse;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	font-size: 14px;
}

.bnm-pp-specs tr {
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.bnm-pp .bnm-pp-specs th {
	width: 33.333%;
	padding: 0.875rem 1rem 0.875rem 0;
	text-align: left;
	vertical-align: top;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(245, 243, 238, 0.45);
	background: transparent !important;
	border: 0;
}

.bnm-pp .bnm-pp-specs td {
	padding: 0.875rem 0;
	color: rgba(245, 243, 238, 0.85);
	background: transparent !important;
	border: 0;
}

/* -- You may also like -- */
.bnm-pp-related {
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.bnm-pp-related-inner {
	max-width: 1440px;
	margin: 0 auto;
	padding: 5rem 1.25rem;
}

.bnm-pp-related-title {
	margin: 1rem 0 0;
	font-family: var(--font-heading);
	font-size: 1.875rem;
	font-weight: 400;
	line-height: 1.2;
	color: var(--bnm-text);
}

.bnm-pp .bnm-pp-related-grid.products {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) !important;
	gap: 1px !important;
	margin: 3rem 0 0 !important;
	padding: 0 !important;
	list-style: none;
	background: rgba(255, 255, 255, 0.1) !important;
}

.bnm-pp .bnm-pp-related-grid.products > li.product {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
}

@media (min-width: 640px) {
	.bnm-pp-crumbs {
		padding-left: 2rem;
		padding-right: 2rem;
	}

	.bnm-pp-grid {
		padding-left: 2rem;
		padding-right: 2rem;
	}

	.bnm-pp .bnm-pp-gallery.bnm-product-gallery-wrap {
		padding: 4rem;
	}

	.bnm-pp-title,
	.bnm-pp-related-title {
		font-size: 2.25rem;
	}

	.bnm-pp-related-inner {
		padding-left: 2rem;
		padding-right: 2rem;
	}

	.bnm-pp .bnm-pp-related-grid.products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (min-width: 1024px) {
	.bnm-pp-crumbs {
		padding-left: 3rem;
		padding-right: 3rem;
	}

	.bnm-pp-grid {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		grid-template-rows: auto 1fr;
		column-gap: 4rem;
		row-gap: 0;
		padding: 4rem 3rem;
	}

	.bnm-pp .bnm-pp-gallery.bnm-product-gallery-wrap {
		grid-column: 1 / span 7;
		grid-row: 1;
	}

	.bnm-pp .bnm-pp-gallery .woocommerce-product-gallery__image {
		aspect-ratio: 4 / 3;
	}

	.bnm-pp-summary {
		grid-column: 8 / span 5;
		grid-row: 1 / span 2;
		position: sticky;
		top: 7rem;
		align-self: start;
	}

	.bnm-pp-details {
		grid-column: 1 / span 7;
		grid-row: 2;
		margin-top: 2.5rem;
	}

	.bnm-pp-related-inner {
		padding: 7rem 3rem;
	}

	.bnm-pp .bnm-pp-related-grid.products {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}

/* -- Details that depend on theme/plugin quirks -- */
.bnm-pp .storefront-product-pagination {
	display: none !important;
}

.single-product div.product.bnm-pp {
	overflow: visible !important;
}

/* SKU + Save badge pinned to the photo card's top corners */
.bnm-pp .bnm-pp-gallery .bnm-product-sku {
	position: absolute !important;
	top: 1.25rem !important;
	left: 1.25rem !important;
	z-index: 2;
}

.bnm-pp .bnm-pp-gallery .bnm-product-save-badge {
	position: absolute !important;
	top: 1.25rem !important;
	right: 1.25rem !important;
	left: auto !important;
	z-index: 2;
}

/* Thumbnail strip under the main photo */
.bnm-pp .bnm-pp-gallery .flex-control-thumbs {
	display: flex !important;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin: 1.5rem 0 0 !important;
	padding: 0 !important;
	list-style: none;
}

.bnm-pp .bnm-pp-gallery .flex-control-thumbs li {
	width: 4.5rem !important;
	float: none !important;
	margin: 0 !important;
}

.bnm-pp .bnm-pp-gallery .flex-control-thumbs img {
	width: 100% !important;
	height: auto !important;
}

/* Price: sale price first, struck-through regular price after it */
.bnm-pp-summary .price {
	display: flex;
	align-items: baseline;
	gap: 0.75rem;
}

.bnm-pp-summary .price ins {
	order: 1;
	text-decoration: none;
	background: transparent;
}

.bnm-pp-summary .price del {
	order: 2;
	font-size: 14px;
	opacity: 0.4;
}

/* Quantity stepper: bordered dark box like the reference. Single-item
   products (max qty 1) have no visible number input, so hide the box. */
.bnm-pp-summary form.cart .quantity {
	display: flex;
	align-items: center;
	height: 56px;
	border: 1px solid rgba(255, 255, 255, 0.2);
	background: transparent;
}

.bnm-pp-summary .bnm-qty-btn {
	width: 48px;
	height: 100%;
	padding: 0;
	border: 0 !important;
	background: transparent !important;
	color: var(--bnm-text) !important;
}

.bnm-pp-summary .bnm-qty-btn:hover {
	color: var(--bnm-gold, #d4af37) !important;
}

.bnm-pp-summary .quantity input.qty {
	width: 40px !important;
	min-width: 0;
	padding: 0;
	border: 0 !important;
	background: transparent !important;
	color: var(--bnm-text) !important;
	font-size: 14px;
	font-weight: 600;
	text-align: center;
}

.bnm-pp-summary .quantity:has(input[type="hidden"]) {
	display: none !important;
}

/* Payment badges: let long names like "Mastercard" fit */
.bnm-pp-summary .bnm-product-payments span {
	width: auto !important;
	min-width: 3rem;
	padding: 0 0.6rem !important;
	white-space: nowrap;
}

/* Imported descriptions often start with an empty paragraph */
.bnm-pp-about p:empty {
	display: none;
}

/* Related cards: keep the shop card look inside this section */
.bnm-pp .bnm-pp-related-grid.products::before,
.bnm-pp .bnm-pp-related-grid.products::after {
	content: none !important;
	display: none !important;
}

.bnm-pp .bnm-pp-related-grid .bnm-card-title {
	color: #101214 !important;
}

.bnm-pp .bnm-pp-related-grid .bnm-card-title:hover {
	color: #1f6b3a !important;
}

/* Payment badges image -- Visa / Mastercard / PayPal strip on the product page */
.bnm-pp-summary .bnm-product-payments {
	display: block;
	margin-top: 1.25rem;
}

.bnm-pp-summary .bnm-product-payments img {
	display: block;
	width: 186px;
	max-width: 100%;
	height: auto;
	border: 0;
	box-shadow: none;
}

/* Add-to-cart row -- stepper box + full-height gold button (matches reference) */
.single-product div.bnm-pp .bnm-pp-summary form.cart {
	display: flex;
	align-items: stretch;
	flex-wrap: nowrap;
	gap: 1rem;
	padding: 0;
	margin: 1.5rem 0 0;
}

.single-product div.bnm-pp .bnm-pp-summary form.cart .quantity {
	flex: 0 0 auto;
	float: none;
	margin: 0;
	display: flex !important;
	align-items: center;
	height: 56px !important;
	border-radius: 0;
	overflow: hidden;
}

.single-product div.bnm-pp .bnm-pp-summary form.cart::before,
.single-product div.bnm-pp .bnm-pp-summary form.cart::after {
	content: none !important;
	display: none !important;
}

.single-product div.bnm-pp .bnm-pp-summary .quantity .bnm-qty-minus {
	order: 0;
}

.single-product div.bnm-pp .bnm-pp-summary .quantity .bnm-qty-plus {
	order: 2;
}

.single-product div.bnm-pp .bnm-pp-summary .bnm-qty-btn {
	font-size: 1.25rem;
	line-height: 1;
}

.single-product div.bnm-pp .bnm-pp-summary form.cart .quantity:has(input[type="hidden"]) {
	display: flex !important;
}

/* Single-item products: the quantity is fixed at 1, so show a static "1"
   between the buttons and dim them. */
.single-product div.bnm-pp .bnm-pp-summary .quantity:has(input[type="hidden"])::before {
	content: "1";
	order: 1;
	width: 40px;
	text-align: center;
	font-size: 14px;
	font-weight: 600;
	color: var(--bnm-text);
}

.single-product div.bnm-pp .bnm-pp-summary .quantity:has(input[type="hidden"]) .bnm-qty-btn {
	opacity: 0.35;
	cursor: not-allowed;
	pointer-events: none;
}

.single-product div.bnm-pp .bnm-pp-summary form.cart .single_add_to_cart_button.button {
	flex: 1 1 auto;
	min-width: 0;
	height: 56px;
	margin: 0;
	padding: 0 1.5rem;
	border-radius: 0;
	font-size: 12px;
}

/* Add-to-cart row -- locked stepper: no hover/focus highlight on the dimmed buttons */
.single-product div.bnm-pp .bnm-pp-summary .quantity:has(input[type="hidden"]) .bnm-qty-btn,
.single-product div.bnm-pp .bnm-pp-summary .quantity:has(input[type="hidden"]) .bnm-qty-btn:hover,
.single-product div.bnm-pp .bnm-pp-summary .quantity:has(input[type="hidden"]) .bnm-qty-btn:focus,
.single-product div.bnm-pp .bnm-pp-summary .quantity:has(input[type="hidden"]) .bnm-qty-btn:active {
	background: transparent !important;
	color: var(--bnm-text) !important;
	box-shadow: none !important;
	outline: 0 !important;
}

/* ============================================================
   Footer v3 -- matches the reference footer: logo on a light box,
   brand / Policies / Contact in a 5-3-4 grid, hairline row with
   copyright and "Proudly Canadian". Scoped to .bnm-site-footer and
   written to override the older footer rules still in this file
   (they made .bnm-footer-inner a 3-column grid and added a second
   red dot), so nothing fights.
   ============================================================ */
.bnm-site-footer {
	position: relative;
	margin: 0;
	padding: 0;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	background: #16191c;
}

.bnm-site-footer .bnm-footer-inner {
	display: block;
	grid-template-columns: none;
	gap: 0;
	max-width: 1440px;
	margin: 0 auto;
	padding: 4rem 1.25rem;
}

.bnm-site-footer .bnm-footer-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 3rem;
}

.bnm-site-footer .bnm-footer-col {
	min-width: 0;
}

/* -- Brand column -- */
.bnm-site-footer .bnm-footer-logo-box {
	display: inline-block;
	padding: 1rem;
	background: #f5f3ee;
	line-height: 0;
}

.bnm-site-footer .bnm-footer-logo-mark {
	display: block;
	width: auto;
	height: 5rem;
	max-width: none;
	object-fit: contain;
}

.bnm-site-footer .bnm-footer-tagline {
	max-width: 24rem;
	margin: 2rem 0 0;
	font-size: 0.875rem;
	line-height: 1.625;
	color: rgba(245, 243, 238, 0.6);
}

.bnm-site-footer .bnm-footer-social {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin: 2rem 0 0;
}

.bnm-site-footer .bnm-footer-social-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: 50%;
	color: rgba(245, 243, 238, 0.7) !important;
	text-decoration: none;
	transition: border-color 0.3s, color 0.3s;
}

.bnm-site-footer .bnm-footer-social-icon:hover {
	border-color: #d4af37;
	color: #d4af37 !important;
}

/* -- Column headings -- */
.bnm-site-footer .bnm-footer-eyebrow {
	margin: 0;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: #d4af37;
}

.bnm-site-footer .bnm-footer-eyebrow-accept {
	margin-top: 2.5rem;
}

/* -- Policies -- */
.bnm-site-footer .bnm-footer-links {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin: 1.5rem 0 0;
	padding: 0;
	list-style: none;
}

.bnm-site-footer .bnm-footer-links li,
.bnm-site-footer .bnm-footer-contact-list li {
	margin: 0;
}

.bnm-site-footer .bnm-footer-links a {
	font-size: 0.875rem;
	color: rgba(245, 243, 238, 0.7) !important;
	text-decoration: none;
	transition: color 0.3s;
}

.bnm-site-footer .bnm-footer-links a:hover {
	color: #f5f3ee !important;
}

/* -- Contact -- */
.bnm-site-footer .bnm-footer-contact-list {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	margin: 1.5rem 0 0;
	padding: 0;
	list-style: none;
	font-size: 0.875rem;
	line-height: 1.5;
	color: rgba(245, 243, 238, 0.7);
}

.bnm-site-footer .bnm-footer-contact-list li {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
}

.bnm-site-footer .bnm-footer-contact-list a {
	font-size: inherit;
	color: inherit !important;
	text-decoration: none;
}

.bnm-site-footer .bnm-footer-contact-list a:hover {
	color: #f5f3ee !important;
}

.bnm-site-footer .bnm-footer-contact-icon {
	flex-shrink: 0;
	margin-top: 0.15rem;
	color: #d4af37;
}

.bnm-site-footer .bnm-footer-payments {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	margin: 1rem 0 0;
}

.bnm-site-footer .bnm-footer-payments span {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 2rem;
	padding: 0 !important;
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: 3px;
	background: #fff;
}

/* -- Bottom row -- */
.bnm-site-footer .bnm-footer-bottom {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	margin: 4rem 0 0;
	padding: 2rem 0 0;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	font-size: 11px;
	line-height: 1.5;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: rgba(245, 243, 238, 0.4);
}

.bnm-site-footer .bnm-footer-flag {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.bnm-site-footer .bnm-footer-flag::before {
	content: none;
	display: none;
}

.bnm-site-footer .bnm-footer-dot {
	display: inline-block;
	flex-shrink: 0;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--bnm-red, #c8102e);
}

@media (min-width: 640px) {
	.bnm-site-footer .bnm-footer-inner {
		padding-left: 2rem;
		padding-right: 2rem;
	}

	.bnm-site-footer .bnm-footer-bottom {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}
}

@media (min-width: 1024px) {
	.bnm-site-footer .bnm-footer-inner {
		padding: 6rem 3rem;
	}

	.bnm-site-footer .bnm-footer-grid {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		gap: 3rem;
	}

	.bnm-site-footer .bnm-footer-col-brand {
		grid-column: span 5;
	}

	.bnm-site-footer .bnm-footer-col-policies {
		grid-column: span 3;
	}

	.bnm-site-footer .bnm-footer-col-contact {
		grid-column: span 4;
	}
}

/* ============================================================
   New arrivals v2 -- home page "Freshly catalogued." section laid
   out like the reference: 1440px container, large heading with a
   quiet "View the full catalogue" link, then a hairline-divided
   1 / 2 / 4 column card grid. Scoped to .bnm-new-arrivals and written
   to override the older global "ul.products" grid rules (which add a
   2.5em gap and let the clearfix pseudo-elements take up grid cells).
   ============================================================ */
.bnm-new-arrivals {
	padding: 6rem 0;
	background: var(--bnm-bg);
}

.bnm-new-arrivals .col-full {
	box-sizing: border-box;
	width: 100%;
	max-width: 1440px !important;
	margin: 0 auto;
	padding: 0 1.25rem;
}

.bnm-new-arrivals .col-full::before,
.bnm-new-arrivals .col-full::after {
	content: none;
	display: none;
}

.bnm-new-arrivals .bnm-section-head {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1.5rem;
	margin: 0;
}

.bnm-new-arrivals .bnm-section-head .bnm-eyebrow {
	margin: 0;
}

.bnm-new-arrivals .bnm-section-head .bnm-eyebrow-line {
	display: none;
}

.bnm-new-arrivals .bnm-section-head h2 {
	margin: 1rem 0 0;
	font-size: 1.875rem;
	font-weight: 400;
	line-height: 1.1;
	color: var(--bnm-text);
}

.bnm-new-arrivals .bnm-view-all {
	padding-bottom: 4px;
	font-size: 12px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	text-decoration: none;
	color: rgba(245, 243, 238, 0.7) !important;
	background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat;
	transition: color 0.3s, background-size 0.4s;
}

.bnm-new-arrivals .bnm-view-all:hover {
	color: #f5f3ee !important;
	background-size: 100% 1px;
}

.bnm-new-arrivals .bnm-new-arrivals-grid.products {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) !important;
	gap: 1px !important;
	margin: 3.5rem 0 0 !important;
	padding: 0 !important;
	list-style: none !important;
	background: rgba(255, 255, 255, 0.1) !important;
}

.bnm-new-arrivals .bnm-new-arrivals-grid.products::before,
.bnm-new-arrivals .bnm-new-arrivals-grid.products::after {
	content: none !important;
	display: none !important;
}

.bnm-new-arrivals .bnm-new-arrivals-grid.products > li.product {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
}

.bnm-new-arrivals .bnm-card-title {
	color: #101214 !important;
}

.bnm-new-arrivals .bnm-card-title:hover {
	color: #1f6b3a !important;
}

@media (min-width: 640px) {
	.bnm-new-arrivals .col-full {
		padding-left: 2rem;
		padding-right: 2rem;
	}

	.bnm-new-arrivals .bnm-section-head {
		flex-direction: row;
		align-items: flex-end;
	}

	.bnm-new-arrivals .bnm-section-head h2 {
		font-size: 2.25rem;
	}

	.bnm-new-arrivals .bnm-new-arrivals-grid.products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (min-width: 1024px) {
	.bnm-new-arrivals {
		padding: 8rem 0;
	}

	.bnm-new-arrivals .col-full {
		padding-left: 3rem;
		padding-right: 3rem;
	}

	.bnm-new-arrivals .bnm-section-head h2 {
		font-size: 3rem;
	}

	.bnm-new-arrivals .bnm-new-arrivals-grid.products {
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	}
}

/* ============================================================
   Hero v2 -- home page "Rare things, honestly sold." section laid
   out like the reference: grain texture, huge faint "1937" watermark,
   two hairlines, text column (7/12) + featured piece in a ringed
   circle (5/12) with a glass caption card. Scoped to .bnm-hero and
   written to override the older hero rules and Storefront's .col-full
   clearfix pseudo-elements (which were taking up grid cells and
   pushing the text to the right).
   ============================================================ */
.bnm-hero {
	position: relative;
	min-height: 92vh;
	padding: 0;
	overflow: hidden;
	background: var(--bnm-bg);
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

/* grain */
.bnm-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	opacity: 0.06;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.6 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

/* two hairlines: gold fade near the right edge, faint white at 38% */
.bnm-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background:
		linear-gradient(to bottom, transparent, rgba(212, 175, 55, 0.4), transparent) no-repeat right 8% top 0 / 1px 100%;
}

.bnm-hero .bnm-hero-watermark {
	position: absolute;
	top: 14%;
	left: -1.5rem;
	z-index: 0;
	font-family: var(--font-heading);
	font-size: 38vw;
	font-weight: 400;
	line-height: 1;
	color: rgba(255, 255, 255, 0.035);
	pointer-events: none;
	user-select: none;
	white-space: nowrap;
}

.bnm-hero .bnm-hero-inner {
	position: relative;
	z-index: 10;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: center;
	gap: 3rem;
	box-sizing: border-box;
	width: 100%;
	max-width: 1440px !important;
	min-height: 92vh;
	margin: 0 auto;
	padding: 3.5rem 1.25rem 5rem;
}

.bnm-hero .bnm-hero-inner::before,
.bnm-hero .bnm-hero-inner::after {
	content: none;
	display: none;
}

.bnm-hero .bnm-hero-content,
.bnm-hero .bnm-hero-feature {
	min-width: 0;
}

/* -- Text column -- */
.bnm-hero .bnm-hero-content .bnm-eyebrow {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin: 0;
}

.bnm-hero .bnm-hero-content .bnm-eyebrow-line {
	display: inline-block;
	width: 2.5rem;
	height: 1px;
	background: var(--bnm-gold);
}

.bnm-hero .bnm-hero-title {
	margin: 2rem 0 0;
	font-family: var(--font-heading);
	font-size: 13vw;
	font-weight: 400;
	line-height: 0.95;
	letter-spacing: -0.025em;
	color: #f5f3ee;
}

.bnm-hero .bnm-hero-lede {
	max-width: 28rem;
	margin: 2rem 0 0;
	font-size: 1rem;
	line-height: 1.625;
	color: rgba(245, 243, 238, 0.65);
}

.bnm-hero .bnm-hero-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
	margin: 2.5rem 0 0;
}

.bnm-hero .bnm-hero-actions .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	min-height: 48px;
	margin: 0;
	padding: 16px 28px;
	border-radius: 0;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color 0.3s, border-color 0.3s, color 0.3s;
}

.bnm-hero .bnm-hero-actions .button.bnm-btn-primary {
	border: 0 !important;
}

.bnm-hero .bnm-hero-actions .button.button-secondary {
	border: 1px solid rgba(255, 255, 255, 0.25) !important;
	color: #f5f3ee !important;
}

.bnm-hero .bnm-hero-actions .button.button-secondary:hover {
	border-color: #f5f3ee !important;
	background: rgba(255, 255, 255, 0.06) !important;
	color: #f5f3ee !important;
}

.bnm-hero .bnm-hero-content::after {
	content: "\2193\00a0\00a0Scroll";
	display: none;
	margin-top: 4rem;
	font-size: 11px;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: rgba(245, 243, 238, 0.4);
}

/* -- Featured piece -- */
.bnm-hero .bnm-hero-feature {
	position: relative;
	display: block;
}

.bnm-hero .bnm-hero-feature-media {
	position: relative;
	box-sizing: border-box;
	width: 78%;
	max-width: 520px;
	margin: 0 auto;
	aspect-ratio: 1 / 1;
	overflow: visible;
	border: 1px solid rgba(212, 175, 55, 0.2);
	border-radius: 50%;
	background: radial-gradient(circle, rgba(212, 175, 55, 0.14), transparent 65%);
}

.bnm-hero .bnm-hero-feature-media::before {
	content: "";
	position: absolute;
	inset: 7%;
	border: 1px solid rgba(255, 255, 255, 0.05);
	border-radius: 50%;
	pointer-events: none;
}

.bnm-hero .bnm-hero-feature-media a {
	position: relative;
	z-index: 1;
	display: block;
	box-sizing: border-box;
	width: 100%;
	height: 100%;
	padding: 9%;
}

.bnm-hero .bnm-hero-feature-media img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	aspect-ratio: auto;
	object-fit: contain;
	filter: drop-shadow(0 40px 60px rgba(0, 0, 0, 0.6));
}

.bnm-hero .bnm-hero-feature-card {
	position: absolute;
	left: 50%;
	bottom: -1.5rem;
	z-index: 20;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	column-gap: 1rem;
	align-items: center;
	box-sizing: border-box;
	width: max-content;
	max-width: min(20rem, 92%);
	min-width: 0;
	padding: 0.75rem 1.25rem;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 0;
	background: rgba(22, 25, 28, 0.8);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	text-align: left;
	transform: translateX(-50%);
}

.bnm-hero .bnm-hero-feature-card::before {
	content: "";
	grid-row: 1 / span 2;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--bnm-red, #c8102e);
}

.bnm-hero .bnm-hero-feature-label {
	margin: 0;
	font-size: 10px;
	line-height: 1.4;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: rgba(245, 243, 238, 0.5);
}

.bnm-hero .bnm-hero-feature-card a {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	font-family: var(--font-heading);
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.3;
	color: #f5f3ee !important;
	text-decoration: none;
}

.bnm-hero .bnm-hero-feature-card a:hover {
	color: var(--bnm-gold-light) !important;
}

@media (min-width: 640px) {
	.bnm-hero .bnm-hero-inner {
		padding-left: 2rem;
		padding-right: 2rem;
	}

	.bnm-hero .bnm-hero-title {
		font-size: 3.75rem;
	}
}

@media (min-width: 1024px) {
	.bnm-hero::after {
		background:
			linear-gradient(to bottom, transparent, rgba(212, 175, 55, 0.4), transparent) no-repeat right 8% top 0 / 1px 100%,
			linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05)) no-repeat 38% 0 / 1px 100%;
	}

	.bnm-hero .bnm-hero-watermark {
		font-size: 26vw;
	}

.bnm-hero .bnm-hero-inner {
	grid-template-columns: repeat(12, minmax(0, 1fr));
	padding: 0 1rem;
}

	.bnm-hero .bnm-hero-content {
		grid-column: span 6;
	}

	.bnm-hero .bnm-hero-title {
		font-size: 6.2rem;
		line-height: 1;
	}

	.bnm-hero .bnm-hero-content::after {
		display: flex;
		align-items: center;
	}

.bnm-hero .bnm-hero-feature-media {
	width: 115%;
	max-width: 650px;
	margin: 0 0 0 auto;
}
.bnm-hero .bnm-hero-feature {
	grid-column: span 6;
	position: relative;
	left: 600px;
	top: -175px;
}
}
	.bnm-hero .bnm-hero-feature-card {
		left: auto;
		right: 0;
		bottom: 1.5rem;
		transform: none;
	}
}

/* ============================================================
   Shop v2 -- "Our shop" page laid out like the reference: hero with a
   large heading, then a 12-column body (3-column sticky filter sidebar,
   9-column product area) with a hairline toolbar and a hairline-divided
   1 / 2 / 3 column card grid. Scoped to .bnm-shop-page and written to
   override the older global "ul.products" grid rules (2.5em gap, 4 fixed
   columns, clearfix pseudo-elements taking up grid cells) and the global
   link colour rule that turned category names and card titles gold.
   ============================================================ */
.bnm-shop-page .bnm-shop-hero {
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.bnm-shop-page .bnm-shop-hero-inner {
	max-width: 1440px;
	margin: 0 auto;
	padding: 4rem 1.25rem 3.5rem;
}

.bnm-shop-page .bnm-shop-hero .bnm-eyebrow {
	margin: 0;
}

.bnm-shop-page .bnm-shop-hero .bnm-eyebrow-line {
	display: none;
}

.bnm-shop-page .bnm-shop-heading {
	margin: 1.25rem 0 0;
	font-family: var(--font-heading);
	font-size: 2.25rem;
	font-weight: 400;
	line-height: 1.02;
	color: #f5f3ee;
}

.bnm-shop-page .bnm-shop-hero-desc {
	max-width: 32rem;
	margin: 1.5rem 0 0;
	font-size: 0.875rem;
	line-height: 1.625;
	color: rgba(245, 243, 238, 0.6);
}

.bnm-shop-page .bnm-shop-body {
	max-width: 1440px;
	margin: 0 auto;
	padding: 3rem 1.25rem;
}

.bnm-shop-page .bnm-shop-grid-wrap {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 3rem;
}

.bnm-shop-page .bnm-shop-main {
	min-width: 0;
}

/* -- Sidebar -- */
.bnm-shop-page .bnm-sidebar-label {
	margin: 0;
}

.bnm-shop-page .bnm-sidebar-label-spaced {
	margin-top: 2.5rem;
}

.bnm-shop-page .bnm-cat-list {
	margin-top: 1.25rem;
}

.bnm-shop-page .bnm-cat-list ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.bnm-shop-page .bnm-cat-list li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin: 0 0 4px;
	padding: 0;
}

.bnm-shop-page .bnm-cat-list li > a {
	display: flex;
	flex: 1 1 auto;
	align-items: center;
	justify-content: flex-start;
	gap: 0.75rem;
	padding: 0.5rem 0;
	font-size: 0.875rem;
	line-height: 1.5;
	color: rgba(245, 243, 238, 0.65) !important;
	text-decoration: none;
	transition: color 0.3s;
}

.bnm-shop-page .bnm-cat-list li > a::before {
	content: "";
	flex-shrink: 0;
	width: 0;
	height: 1px;
	background: currentColor;
	transition: width 0.3s;
}

.bnm-shop-page .bnm-cat-list li > a:hover {
	color: #f5f3ee !important;
}

.bnm-shop-page .bnm-cat-list li > a:hover::before {
	width: 0.75rem;
}

.bnm-shop-page .bnm-cat-list li.current-cat > a,
.bnm-shop-page .bnm-cat-list li.current-cat > a:hover {
	color: #d4af37 !important;
}

.bnm-shop-page .bnm-cat-list li.current-cat > a::before {
	width: 1.5rem;
}

.bnm-shop-page .bnm-cat-list .count {
	flex-shrink: 0;
	font-size: 11px;
	color: rgba(245, 243, 238, 0.35);
}

.bnm-shop-page .bnm-price-filter {
	margin-top: 1.5rem;
	padding: 0 0.25rem;
}

.bnm-shop-page .bnm-price-filter .price_slider {
	height: 6px;
	margin: 0 6px 1.25rem;
	border-radius: 999px;
	background: rgba(212, 175, 55, 0.2);
}

.bnm-shop-page .bnm-price-filter .ui-slider .ui-slider-range {
	height: 6px;
	border-radius: 999px;
	background: #d4af37;
}

.bnm-shop-page .bnm-price-filter .ui-slider .ui-slider-handle {
	width: 16px;
	height: 16px;
	margin-left: -8px;
	border: 1px solid #d4af37;
	border-radius: 50%;
	background: var(--bnm-bg);
	box-shadow: none;
}

.bnm-shop-page .bnm-price-filter .price_slider_amount {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	font-size: 0.875rem;
	color: rgba(245, 243, 238, 0.7);
}

/* -- Toolbar -- */
.bnm-shop-page .bnm-shop-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-bottom: 1.5rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.bnm-shop-page .bnm-shop-sort .woocommerce-ordering {
	float: none;
	margin: 0;
	padding: 0;
}

.bnm-shop-page .bnm-shop-sort select {
	-webkit-appearance: none;
	appearance: none;
	box-sizing: border-box;
	width: 200px;
	height: 40px;
	min-width: 0;
	padding: 0 2.5rem 0 1rem;
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: 0;
	background-color: transparent;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23f5f3ee' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
	background-repeat: no-repeat;
	background-position: right 0.9rem center;
	font-size: 11px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #f5f3ee;
}

.bnm-shop-page .bnm-shop-sort select option {
	background: #16191c;
	color: #f5f3ee;
	text-transform: none;
	letter-spacing: normal;
}

/* -- Product grid -- */
.bnm-shop-page .bnm-shop-main .bnm-shop-grid.products {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) !important;
	gap: 1px !important;
	margin: 2rem 0 0 !important;
	padding: 0 !important;
	list-style: none !important;
	background: rgba(255, 255, 255, 0.1) !important;
}

.bnm-shop-page .bnm-shop-main .bnm-shop-grid.products::before,
.bnm-shop-page .bnm-shop-main .bnm-shop-grid.products::after {
	content: none !important;
	display: none !important;
}

.bnm-shop-page .bnm-shop-main .bnm-shop-grid.products > li.product {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
}

.bnm-shop-page .bnm-shop-grid .bnm-card-title {
	color: #101214 !important;
}

.bnm-shop-page .bnm-shop-grid .bnm-card-title:hover {
	color: #1f6b3a !important;
}

@media (min-width: 640px) {
	.bnm-shop-page .bnm-shop-hero-inner {
		padding-left: 2rem;
		padding-right: 2rem;
	}

	.bnm-shop-page .bnm-shop-heading {
		font-size: 3rem;
	}

	.bnm-shop-page .bnm-shop-body {
		padding-left: 2rem;
		padding-right: 2rem;
	}

	.bnm-shop-page .bnm-shop-main .bnm-shop-grid.products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (min-width: 1024px) {
	.bnm-shop-page .bnm-shop-hero-inner {
		padding: 6rem 3rem 5rem;
	}

	.bnm-shop-page .bnm-shop-heading {
		font-size: 3.75rem;
	}

	.bnm-shop-page .bnm-shop-body {
		padding: 5rem 3rem;
	}

	.bnm-shop-page .bnm-shop-grid-wrap {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		gap: 3rem;
	}

	.bnm-shop-page .bnm-shop-sidebar {
		grid-column: span 3;
	}

	.bnm-shop-page .bnm-shop-main {
		grid-column: span 9;
	}

	.bnm-shop-page .bnm-shop-sidebar-sticky {
		top: 7rem;
	}
}

@media (min-width: 1280px) {
	.bnm-shop-page .bnm-shop-main .bnm-shop-grid.products {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}

/* ============================================================
   About v2 -- the "About us" page laid out like the reference:
   hero with a photo card, Our story, What we offer (four drawers),
   Our commitment (ghost numbers + rules), a three-item trust strip and
   a closing call to action. Every class is new (.bnm-ab-*) so nothing
   written earlier for the old About template (.bnm-page-hero,
   .bnm-about-grid, .bnm-commitment-split*) can touch it; link colours
   use !important only where the global "a" gold rule would win.
   ============================================================ */
.bnm-about-page.bnm-ab {
	background: var(--bnm-bg);
	color: #f5f3ee;
	overflow: hidden;
}

.bnm-ab .bnm-ab-wrap {
	box-sizing: border-box;
	width: 100%;
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 1.25rem;
}

.bnm-ab .bnm-ab-wrap::before,
.bnm-ab .bnm-ab-wrap::after,
.bnm-ab .bnm-ab-hero-grid::before,
.bnm-ab .bnm-ab-hero-grid::after,
.bnm-ab .bnm-ab-story-grid::before,
.bnm-ab .bnm-ab-story-grid::after,
.bnm-ab .bnm-ab-commit-grid::before,
.bnm-ab .bnm-ab-commit-grid::after {
	content: none !important;
	display: none !important;
}

.bnm-ab .bnm-ab-eyebrow {
	margin: 0;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: #d4af37;
}

.bnm-ab .bnm-ab-h1,
.bnm-ab .bnm-ab-h2 {
	margin: 1.25rem 0 0;
	font-family: var(--font-heading);
	font-weight: 400;
	color: #f5f3ee;
}

.bnm-ab .bnm-ab-h1 {
	font-size: 2.25rem;
	line-height: 1.02;
}

.bnm-ab .bnm-ab-h2 {
	font-size: 1.875rem;
	line-height: 1.1;
}

.bnm-ab .bnm-ab-h2 em {
	font-style: italic;
	color: #e6c86b;
}

/* ---- sections ---- */
.bnm-ab .bnm-ab-section,
.bnm-ab .bnm-ab-hero,
.bnm-ab .bnm-ab-trust {
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.bnm-ab .bnm-ab-section {
	padding: 6rem 0;
}

/* ---- hero ---- */
.bnm-ab .bnm-ab-hero {
	position: relative;
	overflow: hidden;
	padding: 4rem 0 5rem;
}

.bnm-ab .bnm-ab-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	opacity: 0.06;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.6 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

.bnm-ab .bnm-ab-hero-grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 3rem;
}

.bnm-ab .bnm-ab-lede {
	max-width: 36rem;
	margin: 2rem 0 0;
	font-size: 1rem;
	line-height: 1.625;
	color: rgba(245, 243, 238, 0.65);
}

.bnm-ab .bnm-ab-lede-sub {
	max-width: 36rem;
	margin: 1.25rem 0 0;
	font-size: 0.875rem;
	line-height: 1.625;
	color: rgba(245, 243, 238, 0.5);
}

.bnm-ab .bnm-ab-spot {
	position: relative;
	box-sizing: border-box;
	width: 100%;
	max-width: 28rem;
	aspect-ratio: 3 / 4;
	padding: 2.5rem;
	background: radial-gradient(at 50% 40%, #ffffff 0%, #f3f1ec 55%, #e6e2d9 100%);
}

.bnm-ab .bnm-ab-spot-img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: 100%;
	object-fit: contain;
	filter: drop-shadow(0 30px 50px rgba(0, 0, 0, 0.25));
}

.bnm-ab .bnm-ab-spot-cap {
	position: absolute;
	bottom: 1.25rem;
	left: 1.25rem;
	font-size: 10px;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: rgba(0, 0, 0, 0.5);
}

/* ---- story ---- */
.bnm-ab .bnm-ab-story-grid,
.bnm-ab .bnm-ab-commit-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 3rem;
}

.bnm-ab .bnm-ab-story-lead {
	margin: 0;
	font-family: var(--font-heading);
	font-size: 1.5rem;
	line-height: 1.375;
	color: rgba(245, 243, 238, 0.9);
}

.bnm-ab .bnm-ab-story-sub {
	margin: 2rem 0 0;
	font-size: 1rem;
	line-height: 1.625;
	color: rgba(245, 243, 238, 0.6);
}

/* ---- drawers ---- */
.bnm-ab .bnm-ab-drawers {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1px;
	margin-top: 3.5rem;
	background: rgba(255, 255, 255, 0.1);
}

.bnm-ab .bnm-ab-drawer {
	padding: 2rem;
	background: var(--bnm-bg);
}

.bnm-ab .bnm-ab-num {
	display: block;
	font-family: var(--font-heading);
	font-size: 2.25rem;
	line-height: 1.1;
	color: rgba(255, 255, 255, 0.15);
	transition: color 0.5s;
}

.bnm-ab .bnm-ab-drawer:hover .bnm-ab-num,
.bnm-ab .bnm-ab-commit-item:hover .bnm-ab-num {
	color: #d4af37;
}

.bnm-ab .bnm-ab-drawer h3 {
	margin: 2rem 0 0;
	font-family: var(--font-heading);
	font-size: 1.25rem;
	font-weight: 400;
	line-height: 1.4;
	color: #f5f3ee;
}

.bnm-ab .bnm-ab-drawer p {
	margin: 0.75rem 0 0;
	font-size: 0.875rem;
	line-height: 1.625;
	color: rgba(245, 243, 238, 0.55);
}

/* ---- commitment ---- */
.bnm-ab .bnm-ab-commit-sub {
	max-width: 24rem;
	margin: 1.5rem 0 0;
	font-size: 0.875rem;
	line-height: 1.625;
	color: rgba(245, 243, 238, 0.6);
}

.bnm-ab .bnm-ab-commit-item {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 1.5rem;
	padding: 2rem 0;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.bnm-ab .bnm-ab-commit-list .bnm-ab-commit-item:last-child {
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.bnm-ab .bnm-ab-commit-item h3 {
	margin: 0;
	font-family: var(--font-heading);
	font-size: 1.5rem;
	font-weight: 400;
	line-height: 1.33;
	color: #f5f3ee;
}

.bnm-ab .bnm-ab-commit-item p {
	margin: 0.75rem 0 0;
	max-width: 38rem;
	font-size: 0.875rem;
	line-height: 1.625;
	color: rgba(245, 243, 238, 0.6);
}

/* ---- trust strip ---- */
.bnm-ab .bnm-ab-trust-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1px;
	background: rgba(255, 255, 255, 0.1);
}

.bnm-ab .bnm-ab-trust-item {
	display: flex;
	align-items: flex-start;
	gap: 1.25rem;
	padding: 2rem 1.5rem;
	background: var(--bnm-bg);
}

.bnm-ab .bnm-ab-trust-icon {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 2.75rem;
	height: 2.75rem;
	border: 1px solid rgba(212, 175, 55, 0.5);
	border-radius: 50%;
	color: #d4af37;
}

.bnm-ab .bnm-ab-trust-item h3 {
	margin: 0;
	font-family: var(--font-heading);
	font-size: 1.25rem;
	font-weight: 400;
	line-height: 1.4;
	color: #f5f3ee;
}

.bnm-ab .bnm-ab-trust-item p {
	margin: 0.5rem 0 0;
	font-size: 0.875rem;
	line-height: 1.625;
	color: rgba(245, 243, 238, 0.55);
}

/* ---- call to action ---- */
.bnm-ab .bnm-ab-cta-inner {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 2rem;
	padding-top: 6rem;
	padding-bottom: 6rem;
}

.bnm-ab .bnm-ab-cta .bnm-ab-h2 {
	margin: 0;
}

.bnm-ab .bnm-ab-btn,
.bnm-ab .bnm-ab-btn:visited {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	padding: 16px 28px;
	border: 0;
	border-radius: 0;
	background: #d4af37;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.2em;
	line-height: 1.5;
	text-transform: uppercase;
	text-decoration: none;
	color: #101214 !important;
	transition: background 0.3s;
}

.bnm-ab .bnm-ab-btn:hover {
	background: #e6c86b;
	color: #101214 !important;
}

/* ---- >= 640px ---- */
@media (min-width: 640px) {
	.bnm-ab .bnm-ab-wrap {
		padding-left: 2rem;
		padding-right: 2rem;
	}

	.bnm-ab .bnm-ab-h1 {
		font-size: 3rem;
	}

	.bnm-ab .bnm-ab-h2 {
		font-size: 2.25rem;
	}

	.bnm-ab .bnm-ab-story-lead {
		font-size: 1.875rem;
		line-height: 1.2;
	}

	.bnm-ab .bnm-ab-drawers {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.bnm-ab .bnm-ab-trust-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.bnm-ab .bnm-ab-commit-item {
		grid-template-columns: 120px minmax(0, 1fr);
	}

	.bnm-ab .bnm-ab-num-lg {
		font-size: 3.75rem;
		line-height: 1;
	}
}

/* ---- >= 1024px ---- */
@media (min-width: 1024px) {
	.bnm-ab .bnm-ab-wrap {
		padding-left: 3rem;
		padding-right: 3rem;
	}

	.bnm-ab .bnm-ab-h1 {
		font-size: 3.75rem;
	}

	.bnm-ab .bnm-ab-h2-lg {
		font-size: 3rem;
		line-height: 1;
	}

	.bnm-ab .bnm-ab-section {
		padding: 8rem 0;
	}

	.bnm-ab .bnm-ab-hero {
		padding: 7rem 0 8rem;
	}

	.bnm-ab .bnm-ab-hero-grid,
	.bnm-ab .bnm-ab-story-grid,
	.bnm-ab .bnm-ab-commit-grid {
		grid-template-columns: repeat(12, minmax(0, 1fr));
	}

	.bnm-ab .bnm-ab-hero-text {
		grid-column: span 7;
	}

	.bnm-ab .bnm-ab-hero-photo {
		grid-column: 9 / span 4;
	}

	.bnm-ab .bnm-ab-spot {
		max-width: none;
	}

	.bnm-ab .bnm-ab-story-head {
		grid-column: span 4;
	}

	.bnm-ab .bnm-ab-story-body {
		grid-column: 6 / span 7;
	}

	.bnm-ab .bnm-ab-commit-intro {
		grid-column: span 4;
	}

	.bnm-ab .bnm-ab-commit-list {
		grid-column: span 8;
	}

	.bnm-ab .bnm-ab-drawers {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.bnm-ab .bnm-ab-drawer {
		padding: 2.5rem;
	}

	.bnm-ab .bnm-ab-commit-item {
		gap: 3rem;
		padding: 2.5rem 0;
	}

	.bnm-ab .bnm-ab-trust-item {
		padding: 3rem 2.5rem;
	}

	.bnm-ab .bnm-ab-cta-inner {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		padding-top: 8rem;
		padding-bottom: 8rem;
	}
}

/* ============================================================
   Checkout v2 -- WooCommerce's checkout block laid out like the
   reference checkout: heading, a 7/5 split with the numbered form
   sections on the left (01 Contact, 02 Shipping address, 03 Shipping
   options, 04 Payment) and a sticky dark "Order summary" card on the
   right. Everything is scoped under .bnm-co (set by page-checkout.php)
   and written with !important only where WooCommerce's block styles
   use higher-specificity or inline rules (floating labels, selects,
   radio controls). Payment gateways render inside the same block, so
   Stripe and PayPal pick this styling up automatically.
   ============================================================ */
.bnm-co {
	background: var(--bnm-bg);
	color: #f5f3ee;
}

.bnm-co .bnm-co-wrap {
	box-sizing: border-box;
	max-width: 1440px;
	margin: 0 auto;
	padding: 3.5rem 1.25rem;
}

.bnm-co .bnm-co-eyebrow {
	margin: 0;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: #d4af37;
}

.bnm-co .bnm-co-title {
	margin: 1rem 0 0;
	font-family: var(--font-heading);
	font-size: 2.25rem;
	font-weight: 400;
	line-height: 1.02;
	color: #f5f3ee;
}

.bnm-co .bnm-co-body {
	margin-top: 3.5rem;
}

.bnm-co .wp-block-woocommerce-checkout,
.bnm-co .wc-block-checkout {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

/* ---- two-column layout ---- */
.bnm-co .wc-block-components-sidebar-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 3.5rem;
	margin: 0;
}

.bnm-co .wc-block-components-sidebar-layout > div:empty {
	display: none;
}

.bnm-co .wc-block-components-sidebar-layout .wc-block-components-main,
.bnm-co .wc-block-components-sidebar-layout .wc-block-components-sidebar {
	box-sizing: border-box;
	width: auto !important;
	min-width: 0;
	margin: 0;
	padding-left: 0;
	padding-right: 0;
}

.bnm-co .wc-block-components-sidebar-layout .wc-block-components-sidebar {
	align-self: start;
	padding: 1.75rem;
	background: #16191c;
	border: 1px solid rgba(255, 255, 255, 0.1);
}

/* ---- numbered steps ---- */
.bnm-co .wc-block-checkout__form {
	counter-reset: bnm-step;
	margin: 0;
	padding: 0;
}

.bnm-co .wc-block-components-checkout-step {
	margin: 0 0 3.5rem;
	padding: 0;
	border: 0;
}

.bnm-co .wc-block-components-checkout-step__heading-container {
	display: block;
	margin: 0 0 0.5rem;
	padding: 0 0 1rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	counter-increment: bnm-step;
}

.bnm-co .wc-block-components-checkout-step__heading {
	display: flex;
	align-items: baseline;
	gap: 1rem;
	margin: 0;
}

.bnm-co .wc-block-components-checkout-step__heading::before {
	content: counter(bnm-step, decimal-leading-zero);
	font-family: var(--font-heading);
	font-size: 1.5rem;
	line-height: 1.33;
	color: rgba(255, 255, 255, 0.25);
}

.bnm-co h2.wc-block-components-checkout-step__title {
	margin: 0;
	padding: 0;
	font-family: var(--font-heading);
	font-size: 1.5rem;
	font-weight: 400;
	line-height: 1.33;
	color: #f5f3ee !important;
}

.bnm-co .wc-block-components-checkout-step__description {
	margin: 0.75rem 0 0;
	font-size: 0.875rem;
	color: rgba(245, 243, 238, 0.5);
}

.bnm-co .wc-block-components-checkout-step__content {
	margin: 0;
	padding: 0;
}

/* ---- fields: label above, dark outlined box ---- */
.bnm-co .wc-block-components-text-input,
.bnm-co .wc-blocks-components-select {
	position: relative;
	margin-top: 2.5rem !important;
	margin-bottom: 0 !important;
}

.bnm-co .wc-block-components-text-input label,
.bnm-co .wc-blocks-components-select__label,
.bnm-co .wc-block-components-textarea label {
	position: absolute !important;
	top: -1.55rem !important;
	left: 0 !important;
	right: auto !important;
	max-width: 100%;
	transform: none !important;
	font-size: 11px !important;
	font-weight: 400 !important;
	line-height: 1.2 !important;
	letter-spacing: 0.28em !important;
	text-transform: uppercase;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	color: rgba(245, 243, 238, 0.5) !important;
}

.bnm-co .wc-block-components-text-input input[type="text"],
.bnm-co .wc-block-components-text-input input[type="email"],
.bnm-co .wc-block-components-text-input input[type="tel"],
.bnm-co .wc-block-components-text-input input[type="number"],
.bnm-co .wc-block-components-text-input input[type="password"],
.bnm-co .wc-block-components-text-input.is-active input,
.bnm-co .wc-block-components-text-input input,
.bnm-co .wc-block-components-textarea,
.bnm-co textarea.wc-block-components-textarea {
	box-sizing: border-box;
	width: 100%;
	height: 50px;
	padding: 14px 16px !important;
	border: 1px solid rgba(255, 255, 255, 0.15) !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	font-size: 14px;
	color: #f5f3ee !important;
}

.bnm-co textarea.wc-block-components-textarea {
	height: auto;
	min-height: 6rem;
}

.bnm-co .wc-block-components-text-input input:focus,
.bnm-co .wc-blocks-components-select__select:focus,
.bnm-co textarea.wc-block-components-textarea:focus {
	border-color: #d4af37 !important;
	outline: 0 !important;
	box-shadow: none !important;
}

.bnm-co .wc-block-components-text-input input::placeholder {
	color: rgba(255, 255, 255, 0.35);
}

.bnm-co .wc-block-components-text-input.has-error input,
.bnm-co .wc-blocks-components-select.has-error .wc-blocks-components-select__select {
	border-color: #c8102e !important;
}

.bnm-co .wc-block-components-validation-error {
	color: #ff8a8a;
	font-size: 12px;
}

.bnm-co .wc-blocks-components-select__container {
	position: relative;
	height: auto;
	padding: 0;
	border: 0;
	background: transparent;
}

.bnm-co .wc-blocks-components-select__select {
	box-sizing: border-box;
	width: 100%;
	height: 50px;
	margin: 0;
	padding: 0 2.5rem 0 16px !important;
	border: 1px solid rgba(255, 255, 255, 0.15) !important;
	border-radius: 0 !important;
	background: #101214 !important;
	box-shadow: none !important;
	font-size: 14px;
	color: #f5f3ee !important;
	-webkit-appearance: none;
	appearance: none;
}

.bnm-co .wc-blocks-components-select__expand {
	top: 50%;
	right: 14px;
	margin-top: -12px;
	fill: #f5f3ee;
}

.bnm-co .wc-block-components-address-form {
	column-gap: 1.25rem;
}

.bnm-co .wc-block-components-address-form__email,
.bnm-co .wc-block-components-address-form > * {
	margin-bottom: 0;
}

.bnm-co .wc-block-checkout__guest-checkout-notice,
.bnm-co .wc-block-components-checkout-step__content > p {
	margin: 0.75rem 0 0;
	font-size: 12px;
	color: rgba(245, 243, 238, 0.5);
}

.bnm-co .wc-block-components-address-form__address_2-toggle,
.bnm-co .wc-block-components-address-form a {
	font-size: 12px;
	letter-spacing: 0.08em;
}

/* ---- checkboxes ---- */
.bnm-co .wc-block-components-checkbox {
	margin-top: 1.5rem;
	font-size: 14px;
	color: rgba(245, 243, 238, 0.8);
}

.bnm-co .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] {
	border: 1px solid rgba(255, 255, 255, 0.3) !important;
	border-radius: 0 !important;
	background: transparent !important;
}

.bnm-co .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked {
	border-color: #d4af37 !important;
	background: #d4af37 !important;
}

.bnm-co .wc-block-components-checkbox .wc-block-components-checkbox__mark {
	fill: #101214;
}

/* ---- radio rows (shipping + payment): hairline-separated rows ---- */
.bnm-co .wc-block-components-radio-control {
	display: grid;
	gap: 1px;
	background: rgba(255, 255, 255, 0.1);
	border: 0;
}

.bnm-co .wc-block-components-radio-control .wc-block-components-radio-control__option {
	margin: 0;
	padding: 1rem 1.25rem 1rem 3.5rem;
	border: 0 !important;
	border-radius: 0 !important;
	background: #101214;
	box-shadow: none !important;
	color: #f5f3ee;
	transition: background-color 0.3s;
	display: flex;
	align-items: center;
	min-height: 3.5rem;
}

.bnm-co .wc-block-components-radio-control .wc-block-components-radio-control__option-layout {
	flex: 1;
}

.bnm-co .wc-block-components-radio-control .wc-block-components-radio-control__option:hover {
	background: #16191c;
}

.bnm-co .wc-block-components-radio-control .wc-block-components-radio-control__option-checked,
.bnm-co .wc-block-components-radio-control .wc-block-components-radio-control__option--checked-option-highlighted {
	background: #1e2226 !important;
}

.bnm-co .wc-block-components-radio-control .wc-block-components-radio-control__input {
	top: 50% !important;
	left: 1.25rem !important;
	width: 20px;
	height: 20px;
	margin: -10px 0 0;
	transform: none !important;
	border: 1px solid rgba(255, 255, 255, 0.3) !important;
	background: transparent !important;
	-webkit-appearance: none;
	appearance: none;
}

.bnm-co .wc-block-components-radio-control .wc-block-components-radio-control__input:checked {
	border-color: #d4af37 !important;
	background: radial-gradient(circle, #d4af37 0 4px, transparent 5px) !important;
}

.bnm-co .wc-block-components-radio-control .wc-block-components-radio-control__input::before {
	display: none !important;
}

.bnm-co .wc-block-components-radio-control__label {
	font-size: 14px;
	color: #f5f3ee;
}

.bnm-co .wc-block-components-radio-control__secondary-label {
	font-family: var(--font-heading);
	font-size: 1.125rem;
	color: #f5f3ee;
}

.bnm-co .wc-block-components-radio-control__description,
.bnm-co .wc-block-components-radio-control__secondary-description {
	font-size: 12px;
	color: rgba(245, 243, 238, 0.5);
}

.bnm-co .wc-block-components-radio-control-accordion-content {
	padding: 1.25rem;
	background: #16191c;
}

/* ---- notices ---- */
.bnm-co .wc-block-components-notice-banner {
	border-radius: 0;
	border: 1px solid rgba(255, 255, 255, 0.15);
	background: #16191c;
	color: #f5f3ee;
}

.bnm-co .wc-block-components-notice-banner a {
	text-decoration: underline;
}

/* ---- terms + place order ---- */
.bnm-co .wc-block-checkout__terms {
	margin: 0 0 1.5rem;
	font-size: 11px;
	line-height: 1.6;
	color: rgba(245, 243, 238, 0.5);
}

.bnm-co .wc-block-checkout__terms a {
	text-decoration: underline;
	text-underline-offset: 2px;
}

.bnm-co .wc-block-checkout__actions_row {
	flex-direction: column-reverse;
	align-items: stretch;
	gap: 1.25rem;
}

.bnm-co .wc-block-components-checkout-place-order-button {
	box-sizing: border-box;
	width: 100%;
	min-height: 52px;
	padding: 16px 28px !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: #d4af37 !important;
	box-shadow: none !important;
	font-size: 12px !important;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: #101214 !important;
	transition: background-color 0.3s;
}

.bnm-co .wc-block-components-checkout-place-order-button:hover {
	background: #e6c86b !important;
}

.bnm-co .wc-block-components-checkout-return-to-cart-button {
	align-self: flex-start;
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(245, 243, 238, 0.6) !important;
}

/* ---- order summary card ---- */
.bnm-co .wp-block-woocommerce-checkout-order-summary-block {
	margin: 0;
	padding: 0;
	border: 0 !important;
	background: transparent !important;
}

.bnm-co .wc-block-components-checkout-order-summary__title {
	padding: 0;
	border: 0;
}

.bnm-co .wc-block-components-checkout-order-summary__title-text {
	margin: 0;
	font-size: 11px !important;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.28em !important;
	text-transform: uppercase;
	color: #d4af37 !important;
}

.bnm-co .wc-block-components-checkout-order-summary__title-price,
.bnm-co .wc-block-components-checkout-order-summary__title-icon {
	color: #f5f3ee;
}

.bnm-co .wc-block-components-totals-wrapper {
	padding: 1rem 0;
	border-color: rgba(255, 255, 255, 0.1);
}

.bnm-co .wp-block-woocommerce-checkout-order-summary-discount-block:not(:has(.wc-block-components-totals-item)),
.bnm-co .wp-block-woocommerce-checkout-order-summary-fee-block:not(:has(.wc-block-components-totals-item)),
.bnm-co .wp-block-woocommerce-checkout-order-summary-taxes-block:not(:has(.wc-block-components-totals-item)) {
	display: none;
}

.bnm-co .wc-block-components-order-summary-item {
	padding: 0.75rem 0;
	align-items: flex-start;
}

.bnm-co .wc-block-components-order-summary-item__image {
	flex: 0 0 4.5rem;
	width: 4.5rem;
	padding: 0.5rem;
	background: radial-gradient(at 50% 40%, #ffffff 0%, #f3f1ec 55%, #e6e2d9 100%);
}

.bnm-co .wc-block-components-order-summary-item__image img {
	display: block;
	width: 100%;
	height: 4rem;
	object-fit: contain;
}

.bnm-co .wc-block-components-order-summary-item__quantity {
	border: 0;
	background: #d4af37;
	color: #101214;
	box-shadow: none;
}

.bnm-co .wc-block-components-order-summary-item .wc-block-components-product-name {
	font-family: var(--font-heading);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.35;
	color: #f5f3ee !important;
}

.bnm-co .wc-block-components-order-summary-item .wc-block-components-product-metadata {
	display: none;
}

.bnm-co .wc-block-components-order-summary-item__total-price,
.bnm-co .wc-block-components-order-summary-item .wc-block-components-product-price {
	font-family: var(--font-heading);
	font-size: 1.0625rem;
	color: #f5f3ee;
}

.bnm-co .wc-block-components-product-badge,
.bnm-co .wc-block-components-sale-badge {
	border: 1px solid rgba(212, 175, 55, 0.5);
	border-radius: 0;
	background: transparent;
	font-size: 10px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #d4af37;
}

.bnm-co .wc-block-components-totals-item {
	font-size: 14px;
	color: rgba(245, 243, 238, 0.65);
}

.bnm-co .wc-block-components-totals-item__value {
	color: #f5f3ee;
}

.bnm-co .wc-block-components-totals-footer-item {
	align-items: baseline;
	padding-top: 0.5rem;
}

.bnm-co .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-size: 11px;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: rgba(245, 243, 238, 0.6);
}

.bnm-co .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.bnm-co .wc-block-components-totals-footer-item-tax-value {
	font-family: var(--font-heading);
	font-size: 1.875rem;
	font-weight: 400;
	color: #f5f3ee;
}

.bnm-co .wc-block-components-totals-coupon .wc-block-components-panel__button,
.bnm-co .wc-block-components-totals-coupon-link {
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(245, 243, 238, 0.6) !important;
}

.bnm-co .wc-block-components-totals-coupon__button,
.bnm-co .wc-block-components-button:not(.wc-block-components-checkout-place-order-button) {
	border-radius: 0;
	background: transparent;
	border: 1px solid rgba(212, 175, 55, 0.6);
	color: #d4af37;
}

.bnm-co .wc-block-components-checkout-order-summary__content {
	color: #f5f3ee;
}

.bnm-co .wc-block-components-sidebar .wc-block-components-product-price__regular {
	color: rgba(245, 243, 238, 0.4);
}

/* PayPal pay-later message area stays tidy when empty */
.bnm-co #ppcp-checkout-paylater-messages:empty {
	display: none;
}

/* ---- Order received (thank-you) page keeps the dark look ---- */
.bnm-co .woocommerce-order,
.bnm-co .woocommerce-order-details,
.bnm-co .woocommerce-customer-details {
	color: rgba(245, 243, 238, 0.8);
}

.bnm-co .woocommerce-order table {
	border-color: rgba(255, 255, 255, 0.1);
	color: #f5f3ee;
}

.bnm-co .woocommerce-thankyou-order-received {
	font-family: var(--font-heading);
	font-size: 1.25rem;
	color: #f5f3ee;
}

@media (min-width: 640px) {
	.bnm-co .bnm-co-wrap {
		padding-left: 2rem;
		padding-right: 2rem;
	}

	.bnm-co .bnm-co-title {
		font-size: 3rem;
	}
}

@media (min-width: 1024px) {
	.bnm-co .bnm-co-wrap {
		padding: 5rem 3rem;
	}

	.bnm-co .wc-block-components-sidebar-layout {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		column-gap: 5rem;
	}

	.bnm-co .wc-block-components-sidebar-layout .wc-block-components-main {
		grid-column: span 7;
		grid-row: 1;
	}

	.bnm-co .wc-block-components-checkout-order-summary__title {
		padding-bottom: 1.5rem;
	}

	.bnm-co .wc-block-components-sidebar-layout .wc-block-components-sidebar {
		grid-column: span 5;
		grid-row: 1;
		position: sticky;
		top: 7rem;
		padding: 2.25rem;
	}
}

/* ============================================================
   Cart v2 -- WooCommerce's cart block laid out like the reference
   cart: heading, a 7/5 split with the item list on the left (96px
   spotlight thumbnail, serif title, bordered quantity stepper, remove
   link, serif line total) and a sticky dark "Cart totals" card on the
   right with a gold Proceed to checkout button. Everything is scoped
   under .bnm-ct (set by page-cart.php), so the product page, checkout
   and the rest of the site are unaffected. !important is used only
   where WooCommerce block styles or the older global link/button rules
   would otherwise win.
   ============================================================ */
.bnm-ct {
	background: var(--bnm-bg);
	color: #f5f3ee;
}

.bnm-ct .bnm-ct-wrap {
	box-sizing: border-box;
	max-width: 1440px;
	margin: 0 auto;
	padding: 3.5rem 1.25rem;
}

.bnm-ct .bnm-ct-eyebrow {
	margin: 0;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: #d4af37;
}

.bnm-ct .bnm-ct-title {
	margin: 1rem 0 0;
	font-family: var(--font-heading);
	font-size: 2.25rem;
	font-weight: 400;
	line-height: 1.02;
	color: #f5f3ee;
}

.bnm-ct .bnm-ct-body {
	margin-top: 3.5rem;
}

.bnm-ct .wp-block-woocommerce-cart,
.bnm-ct .wc-block-cart {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

/* ---- two-column layout ---- */
.bnm-ct .wc-block-components-sidebar-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 3.5rem;
	margin: 0;
}

.bnm-ct .wc-block-components-sidebar-layout > div:empty {
	display: none;
}

.bnm-ct .wc-block-components-sidebar-layout .wc-block-components-main,
.bnm-ct .wc-block-components-sidebar-layout .wc-block-components-sidebar {
	box-sizing: border-box;
	width: auto !important;
	min-width: 0;
	margin: 0;
	padding-left: 0;
	padding-right: 0;
}

.bnm-ct .wc-block-components-sidebar-layout .wc-block-components-sidebar {
	align-self: start;
	padding: 1.75rem;
	background: #16191c;
	border: 1px solid rgba(255, 255, 255, 0.1);
}

/* ---- item list: table turned into rows ---- */
.bnm-ct table.wc-block-cart-items {
	display: block;
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	background: transparent;
}

.bnm-ct table.wc-block-cart-items thead {
	display: none;
}

.bnm-ct table.wc-block-cart-items tbody {
	display: block;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.bnm-ct table.wc-block-cart-items::before,
.bnm-ct table.wc-block-cart-items::after,
.bnm-ct .wc-block-cart-items__row::before,
.bnm-ct .wc-block-cart-items__row::after {
	content: none !important;
	display: none !important;
}

.bnm-ct .wc-block-cart-items__row {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr) auto !important;
	column-gap: 1.25rem !important;
	row-gap: 0 !important;
	align-items: start;
	margin: 0;
	padding: 1.5rem 0;
	border: 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	background: transparent;
}

.bnm-ct .wc-block-cart-items__row > td {
	display: block;
	padding: 0 !important;
	margin: 0 !important;
	border: 0;
	background: transparent;
	vertical-align: top;
}

/* thumbnail: spotlight tile like the reference */
.bnm-ct td.wc-block-cart-item__image {
	grid-area: 1 / 1 !important;
	width: 96px;
}

.bnm-ct td.wc-block-cart-item__image a {
	display: block;
	width: 96px;
	height: 96px;
	background: radial-gradient(at 50% 40%, #fff 0%, #f3f1ec 55%, #e6e2d9 100%);
}

.bnm-ct td.wc-block-cart-item__image img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: 100%;
	margin: 0;
	padding: 8px;
	box-sizing: border-box;
	object-fit: contain;
}

/* product column */
.bnm-ct td.wc-block-cart-item__product {
	grid-area: 1 / 2 !important;
	min-width: 0;
}

.bnm-ct .wc-block-cart-item__wrap {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.5rem;
	padding: 0;
}

.bnm-ct a.wc-block-components-product-name {
	font-family: var(--font-heading);
	font-size: 1.125rem;
	font-weight: 400;
	line-height: 1.3;
	text-decoration: none !important;
	color: #f5f3ee !important;
}

.bnm-ct a.wc-block-components-product-name:hover {
	color: #d4af37 !important;
}

.bnm-ct .wc-block-cart-item__prices {
	order: 2;
	font-size: 12px;
	letter-spacing: 0.08em;
	color: rgba(245, 243, 238, 0.5);
}

.bnm-ct .wc-block-cart-item__prices .wc-block-components-product-price,
.bnm-ct .wc-block-cart-item__prices .wc-block-components-product-price__value {
	font-size: 12px;
	font-weight: 400;
	color: rgba(245, 243, 238, 0.5);
}

.bnm-ct .wc-block-cart-item__prices .wc-block-components-product-price__regular {
	color: rgba(245, 243, 238, 0.3);
}

/* long product descriptions repeat the page; the reference omits them */
.bnm-ct .wc-block-components-product-metadata {
	display: none;
}

.bnm-ct .wc-block-cart-item__quantity {
	order: 3;
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	gap: 1rem;
	margin: 0.5rem 0 0;
	padding: 0;
}

/* bordered quantity stepper */
.bnm-ct .wc-block-components-quantity-selector {
	display: inline-flex;
	align-items: center;
	box-sizing: border-box;
	width: auto;
	height: 40px;
	margin: 0;
	border: 1px solid rgba(255, 255, 255, 0.2) !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

.bnm-ct .wc-block-components-quantity-selector::after {
	display: none !important;
	content: none !important;
}

.bnm-ct .wc-block-components-quantity-selector__input {
	width: 40px !important;
	min-width: 0;
	height: 100%;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	font-size: 14px !important;
	font-weight: 600;
	text-align: center;
	color: #f5f3ee !important;
}

.bnm-ct .wc-block-components-quantity-selector__button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px !important;
	min-width: 0;
	height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	font-size: 1rem !important;
	line-height: 1;
	opacity: 1;
	color: #f5f3ee !important;
}

.bnm-ct .wc-block-components-quantity-selector__button:hover:not(:disabled) {
	color: #d4af37 !important;
}

.bnm-ct .wc-block-components-quantity-selector__button:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}

/* remove link: small caps text instead of the gold icon tile */
.bnm-ct button.wc-block-cart-item__remove-link {
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	font-size: 11px !important;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	text-decoration: none !important;
	color: rgba(245, 243, 238, 0.45) !important;
}

.bnm-ct button.wc-block-cart-item__remove-link:hover {
	color: #d4af37 !important;
}

/* line total, serif like the reference */
.bnm-ct td.wc-block-cart-item__total {
	grid-area: 1 / 3 !important;
	text-align: right;
	white-space: nowrap;
}

.bnm-ct .wc-block-cart-item__total-price-and-sale-badge-wrapper {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.375rem;
}

.bnm-ct td.wc-block-cart-item__total .wc-block-components-product-price__value {
	font-family: var(--font-heading);
	font-size: 1.125rem;
	font-weight: 400;
	color: #f5f3ee;
}

.bnm-ct .wc-block-components-sale-badge {
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #d4af37;
}

/* ---- totals card ---- */
.bnm-ct .wc-block-cart__totals-title {
	display: block;
	margin: 0 0 1.5rem;
	padding: 0 0 1rem;
	border: 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	font-family: var(--font-body);
	font-size: 11px !important;
	font-weight: 600;
	letter-spacing: 0.28em;
	text-align: left;
	text-transform: uppercase;
	color: #d4af37 !important;
}

.bnm-ct .wc-block-components-totals-wrapper {
	margin: 0;
	padding: 0.75rem 0;
	border: 0 !important;
}

.bnm-ct .wc-block-components-totals-wrapper:empty {
	display: none;
}

.bnm-ct .wc-block-components-totals-item {
	color: rgba(245, 243, 238, 0.7);
}

.bnm-ct .wc-block-components-totals-item__label {
	font-size: 14px;
	font-weight: 400;
	color: rgba(245, 243, 238, 0.7);
}

.bnm-ct .wc-block-components-totals-item__value {
	color: #f5f3ee;
}

.bnm-ct .wc-block-components-totals-item__description,
.bnm-ct .wc-block-components-totals-shipping__via {
	font-size: 12px;
	color: rgba(245, 243, 238, 0.45);
}

.bnm-ct .wp-block-woocommerce-cart-order-summary-totals-block .wc-block-components-totals-wrapper {
	border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
}

.bnm-ct .wc-block-components-totals-footer-item {
	align-items: baseline;
	padding-top: 0.75rem;
}

.bnm-ct .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-size: 11px;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: rgba(245, 243, 238, 0.6);
}

.bnm-ct .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.bnm-ct .wc-block-components-totals-footer-item-tax-value {
	font-family: var(--font-heading);
	font-size: 1.875rem;
	font-weight: 400;
	color: #f5f3ee;
}

.bnm-ct .wc-block-components-totals-coupon .wc-block-components-panel__button,
.bnm-ct .wc-block-components-totals-coupon-link {
	padding: 0;
	border: 0;
	background: transparent !important;
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(245, 243, 238, 0.6) !important;
}

.bnm-ct .wc-block-components-totals-coupon__button {
	border-radius: 0;
	background: transparent;
	border: 1px solid rgba(212, 175, 55, 0.6);
	color: #d4af37;
}

/* gold Proceed to checkout */
.bnm-ct .wc-block-cart__submit {
	margin: 1.5rem 0 0;
	padding: 0;
}

.bnm-ct .wc-block-cart__submit-container {
	padding: 0;
}

.bnm-ct a.wc-block-cart__submit-button {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	min-height: 52px;
	margin: 0;
	padding: 16px 28px !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: #d4af37 !important;
	box-shadow: none !important;
	font-size: 12px !important;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	text-decoration: none !important;
	color: #101214 !important;
	transition: background-color 0.3s;
}

.bnm-ct a.wc-block-cart__submit-button:hover {
	background: #e6c86b !important;
}

.bnm-ct a.wc-block-cart__submit-button .wc-block-components-button__text {
	color: #101214 !important;
}

.bnm-ct .wc-block-cart__payment-options:empty,
.bnm-ct #ppcp-cart-paylater-messages:empty {
	display: none;
}

/* ---- empty cart state ---- */
.bnm-ct .wp-block-woocommerce-empty-cart-block {
	padding: 2rem 0;
	text-align: left;
	color: rgba(245, 243, 238, 0.8);
}

.bnm-ct .wp-block-woocommerce-empty-cart-block h2 {
	font-family: var(--font-heading);
	font-weight: 400;
	color: #f5f3ee;
}

.bnm-ct .wp-block-woocommerce-empty-cart-block .wp-block-separator {
	border-color: rgba(255, 255, 255, 0.1);
}

.bnm-ct .wp-block-woocommerce-empty-cart-block .wp-block-button__link {
	border-radius: 0;
	background: #d4af37 !important;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: #101214 !important;
}

@media (min-width: 640px) {
	.bnm-ct .bnm-ct-wrap {
		padding-left: 2rem;
		padding-right: 2rem;
	}

	.bnm-ct .bnm-ct-title {
		font-size: 3rem;
	}

	.bnm-ct .wc-block-cart-items__row {
		column-gap: 1.75rem;
	}
}

@media (min-width: 1024px) {
	.bnm-ct .bnm-ct-wrap {
		padding: 5rem 3rem;
	}

	.bnm-ct .wc-block-components-sidebar-layout {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		column-gap: 5rem;
	}

	.bnm-ct .wc-block-components-sidebar-layout .wc-block-components-main {
		grid-column: span 7;
		grid-row: 1;
	}

	.bnm-ct .wc-block-components-sidebar-layout .wc-block-components-sidebar {
		grid-column: span 5;
		grid-row: 1;
		position: sticky;
		top: 7rem;
		padding: 2.25rem;
	}
}

/* ============================================================
   Cart icon -- the header cart button now uses the supplied shopping-
   cart picture instead of the old bag outline. The picture is used as
   a mask, so it takes the button's text colour (cream, gold on hover)
   and stays sharp on any background.
   ============================================================ */
.bnm-header-icon-btn .bnm-cart-ico {
	display: block;
	width: 22px;
	height: 20px;
	background-color: currentColor;
	-webkit-mask: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAA6CAYAAAAA0F95AAAFQUlEQVR42uWaXYhVVRTHf3PvlGnjMNeGdCyKmajRUrIiBjJCQyMiw7KEIALDB+upqJeiF/GhMqmhiHoZyqKH5iWIHoIxUfFO2udA0iBqjqU4ac5H2cfMOHf1cPelPctzzj5ft+bcu+DA2fesvfY9/7PW3v+19m4QkQLwJNCMv/wFFIHPAaGGpEFE9gJ3hdTfB2wAfq0lAP4A5kXoswdYXSsA5IAdEd16FXB3LXkAQAdQCNBbD7xotbuBZ2oJAJcUgLNA3rQPActrJQTCyCjwtdW+CVhcTwAA9NmeA6ypNwB2qfaaepoDAC4BRoAm0z4NXJV1YhTFA6aAvVa7DVhWTyHgFQZr6ykEKrP/IeUV5x19JoCSw7OmA55PA5OOMf52PJ+0xpgADgKvAeeiAgBwqkaWwJ+AlbkYHftqhAVfA7wSxwMeAz6w2ueAIXPfaC4tndbvU8DPfiEJzAGutPSngV/UaqTHaLZYqjhCYo41940hIlGvRSJSkn/lyxB9Bi390RD6hy39UyH0z1j6Rx26Ry3dsTghMAx8b7VvBRY4+hy37ltC6EeR+UCr1f4xQHeRSfwqMpCLOag9D+RDpMf6T3WkCECHCR0vsLWsVLr9cQGIygeqCUC7YywNgC374wKwT000a/9nD4gDQAn4Ii4AfwL96itcN0sA8AuBecAKqz0IjOYSDKzD4B4HABLgtv9FCNwOXGq1i3FygSBCFJQenzcVpWp7wLjJWMPEfxEf0hJWvjUk6ArLA3odBMRmYUG6bdZ9waHboZK73gAPuAiAOEzQlo+AjRmkwcMVkHMJDe3KaB5QjFsPqJXEqD8tAIaAIyp37zTpsr4eUn3f9tFbrGby4QC915XNR330PvbzgMYU0OwDrrdo8Q3Apx5636h2K+W6opdcUITFT6/VY2L20r1ZcZjv0vKAKLT4pKnGpLkUdijvG/JJgGyu8JVdYUoDgN3qi/nxgRJwImUA2lWlyqt0dqdKgIqodTOpjBtUK7IUuDoEJS4QvB/pkrnm67oY4B1+8Z8WAHo1CNo1SjMnaFf//3jYBKgaAITdNTqWMgCuHEAnQD9Q3udMHYADwO8KgLyjMpQUgDBZYJdXAmRLGsvgMvPC46Y8BbAQ+ISZpTO4uJz+sM88YC9vzcDLHjr6WM/9zNyybwDW6QKINpIkF2gFeoAHMsL+fgOuBcbS8IAWg2ZnRl5egKf1yyeZA3Zk6OWPAY8A73o9jBMCLcAZyhsUFQa2DfhMEaLZIGMeK0/iSbDLenmAD4GtGc0KY4XAfNUeJMMSB4ATqv0gM8tdmZI4c0DOgGDz/SOU9wqmZ+E7jgBv+KXUcXnA48DODH3oAeCWtEIA4H3gJbJzQOpGv3dNkgu8YFjgAYKPwMwGErTd7z8mLYvbfL3NJEB5yifKF6hscbtZlzcAz6lkabNOUwNkhVl67RS3m3KJvgl4FrjPen7WzFfe54xiHJBwXV0yUw6KSKPSeV7pvBrB/lbVd5t6nhORPUpntZ+9XBVcTlPknR4MsUe1lySwr22VPGjvkjR5gEu0q+VDjDuZwL7XO+TD2q8GAIdVe5MqSgBscfSJYn+LB73fHNp+FeaABnUQSURkv4isF5FVIvKmiExbz0oiclsE+0s9+r9j4nydiOxWY58UkbyfvWoAgIhslPDSG8P+exHsbwqyVS0AMDO7SwZEpCWG7cvN6uKSt1y2qgkAIvKEOeen5YKI9IhIUwLbc0WkW0QmPOyPiMhTYeykRYSC5DJTNF1u7odM8eR0SvYXAvdSLpNPUT7M3Ud5D9Ap/wDrrfwKum7DUAAAAABJRU5ErkJggg==) center / contain no-repeat;
	mask: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAA6CAYAAAAA0F95AAAFQUlEQVR42uWaXYhVVRTHf3PvlGnjMNeGdCyKmajRUrIiBjJCQyMiw7KEIALDB+upqJeiF/GhMqmhiHoZyqKH5iWIHoIxUfFO2udA0iBqjqU4ac5H2cfMOHf1cPelPctzzj5ft+bcu+DA2fesvfY9/7PW3v+19m4QkQLwJNCMv/wFFIHPAaGGpEFE9gJ3hdTfB2wAfq0lAP4A5kXoswdYXSsA5IAdEd16FXB3LXkAQAdQCNBbD7xotbuBZ2oJAJcUgLNA3rQPActrJQTCyCjwtdW+CVhcTwAA9NmeA6ypNwB2qfaaepoDAC4BRoAm0z4NXJV1YhTFA6aAvVa7DVhWTyHgFQZr6ykEKrP/IeUV5x19JoCSw7OmA55PA5OOMf52PJ+0xpgADgKvAeeiAgBwqkaWwJ+AlbkYHftqhAVfA7wSxwMeAz6w2ueAIXPfaC4tndbvU8DPfiEJzAGutPSngV/UaqTHaLZYqjhCYo41940hIlGvRSJSkn/lyxB9Bi390RD6hy39UyH0z1j6Rx26Ry3dsTghMAx8b7VvBRY4+hy37ltC6EeR+UCr1f4xQHeRSfwqMpCLOag9D+RDpMf6T3WkCECHCR0vsLWsVLr9cQGIygeqCUC7YywNgC374wKwT000a/9nD4gDQAn4Ii4AfwL96itcN0sA8AuBecAKqz0IjOYSDKzD4B4HABLgtv9FCNwOXGq1i3FygSBCFJQenzcVpWp7wLjJWMPEfxEf0hJWvjUk6ArLA3odBMRmYUG6bdZ9waHboZK73gAPuAiAOEzQlo+AjRmkwcMVkHMJDe3KaB5QjFsPqJXEqD8tAIaAIyp37zTpsr4eUn3f9tFbrGby4QC915XNR330PvbzgMYU0OwDrrdo8Q3Apx5636h2K+W6opdcUITFT6/VY2L20r1ZcZjv0vKAKLT4pKnGpLkUdijvG/JJgGyu8JVdYUoDgN3qi/nxgRJwImUA2lWlyqt0dqdKgIqodTOpjBtUK7IUuDoEJS4QvB/pkrnm67oY4B1+8Z8WAHo1CNo1SjMnaFf//3jYBKgaAITdNTqWMgCuHEAnQD9Q3udMHYADwO8KgLyjMpQUgDBZYJdXAmRLGsvgMvPC46Y8BbAQ+ISZpTO4uJz+sM88YC9vzcDLHjr6WM/9zNyybwDW6QKINpIkF2gFeoAHMsL+fgOuBcbS8IAWg2ZnRl5egKf1yyeZA3Zk6OWPAY8A73o9jBMCLcAZyhsUFQa2DfhMEaLZIGMeK0/iSbDLenmAD4GtGc0KY4XAfNUeJMMSB4ATqv0gM8tdmZI4c0DOgGDz/SOU9wqmZ+E7jgBv+KXUcXnA48DODH3oAeCWtEIA4H3gJbJzQOpGv3dNkgu8YFjgAYKPwMwGErTd7z8mLYvbfL3NJEB5yifKF6hscbtZlzcAz6lkabNOUwNkhVl67RS3m3KJvgl4FrjPen7WzFfe54xiHJBwXV0yUw6KSKPSeV7pvBrB/lbVd5t6nhORPUpntZ+9XBVcTlPknR4MsUe1lySwr22VPGjvkjR5gEu0q+VDjDuZwL7XO+TD2q8GAIdVe5MqSgBscfSJYn+LB73fHNp+FeaABnUQSURkv4isF5FVIvKmiExbz0oiclsE+0s9+r9j4nydiOxWY58UkbyfvWoAgIhslPDSG8P+exHsbwqyVS0AMDO7SwZEpCWG7cvN6uKSt1y2qgkAIvKEOeen5YKI9IhIUwLbc0WkW0QmPOyPiMhTYeykRYSC5DJTNF1u7odM8eR0SvYXAvdSLpNPUT7M3Ud5D9Ap/wDrrfwKum7DUAAAAABJRU5ErkJggg==) center / contain no-repeat;
}

/* ============================================================
   Country bar -- the A-Z "Banknotes by country" bar across the top of
   the Banknotes pages, with a drop-down list of countries under each
   letter (like a classic banknote dealer's country index). Printed by
   the Country Index mu-plugin only on the Banknotes category page and
   its country pages. Scoped under .bnm-shop-page .bnm-cx. This also
   replaces the earlier sidebar version of the panel.
   ============================================================ */
.bnm-shop-page .bnm-cat-list li.current-cat-parent > a,
.bnm-shop-page .bnm-cat-list li.current-cat-parent > a:hover {
	color: #d4af37 !important;
}

.bnm-shop-page .bnm-cat-list li.current-cat-parent > a::before {
	width: 1.5rem;
}

.bnm-shop-page .bnm-cx {
	position: relative;
	margin: 0 0 2.5rem;
}

.bnm-shop-page .bnm-cx .bnm-cx-eyebrow {
	margin: 0 0 0.75rem;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: #d4af37;
}

.bnm-shop-page .bnm-cx .bnm-cx-bar {
	display: grid;
	grid-template-columns: repeat(9, minmax(0, 1fr));
	border: 1px solid rgba(255, 255, 255, 0.1);
	background: #16191c;
}

.bnm-shop-page .bnm-cx .bnm-cx-letter {
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-width: 0;
	height: 48px;
	margin: 0;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background-color: transparent !important;
	box-shadow: none !important;
	font-family: var(--font-heading);
	font-size: 1.125rem;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0;
	text-transform: none;
	color: #f5f3ee !important;
	cursor: pointer;
	transition: background-color 0.2s, color 0.2s;
}

.bnm-shop-page .bnm-cx button.bnm-cx-letter:hover,
.bnm-shop-page .bnm-cx button.bnm-cx-letter:focus-visible,
.bnm-shop-page .bnm-cx button.bnm-cx-letter.is-open {
	background-color: #d4af37 !important;
	color: #101214 !important;
	outline: 0;
}

.bnm-shop-page .bnm-cx button.bnm-cx-letter.has-current {
	box-shadow: inset 0 -2px 0 #d4af37 !important;
}

.bnm-shop-page .bnm-cx .bnm-cx-letter.is-empty {
	color: rgba(245, 243, 238, 0.2) !important;
	cursor: default;
}

.bnm-shop-page .bnm-cx .bnm-cx-panel {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 30;
	box-sizing: border-box;
	width: 100%;
	max-height: 22rem;
	overflow-y: auto;
	margin: 0;
	padding: 1.25rem 1.5rem;
	border: 1px solid rgba(255, 255, 255, 0.14);
	background: #1e2226;
	box-shadow: 0 18px 40px rgba(0, 0, 0, 0.5);
	scrollbar-width: thin;
	scrollbar-color: rgba(212, 175, 55, 0.5) transparent;
}

.bnm-shop-page .bnm-cx .bnm-cx-panel[hidden] {
	display: none !important;
}

.bnm-shop-page .bnm-cx ul.bnm-cx-list {
	column-count: 2;
	column-gap: 2rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bnm-shop-page .bnm-cx ul.bnm-cx-list li {
	break-inside: avoid;
	margin: 0;
	padding: 0;
}

.bnm-shop-page .bnm-cx ul.bnm-cx-list li > a {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.45rem 0;
	font-size: 0.9375rem;
	line-height: 1.4;
	text-decoration: none;
	color: rgba(245, 243, 238, 0.8) !important;
	transition: color 0.2s;
}

.bnm-shop-page .bnm-cx ul.bnm-cx-list li > a:hover,
.bnm-shop-page .bnm-cx ul.bnm-cx-list li.is-current > a {
	color: #d4af37 !important;
}

.bnm-shop-page .bnm-cx ul.bnm-cx-list .count {
	flex-shrink: 0;
	font-size: 11px;
	color: rgba(245, 243, 238, 0.35);
}

.bnm-shop-page .bnm-cx .bnm-cx-note {
	margin: 0.875rem 0 0;
	font-size: 0.8125rem;
	color: rgba(245, 243, 238, 0.55);
}

.bnm-shop-page .bnm-cx .bnm-cx-note strong {
	font-weight: 600;
	color: #f5f3ee;
}

.bnm-shop-page .bnm-cx .bnm-cx-note a {
	color: #d4af37 !important;
	text-decoration: none;
}

@media (min-width: 640px) {
	.bnm-shop-page .bnm-cx ul.bnm-cx-list {
		column-count: 3;
	}
}

@media (min-width: 1024px) {
	.bnm-shop-page .bnm-cx .bnm-cx-bar {
		grid-template-columns: none;
		grid-auto-flow: column;
		grid-auto-columns: minmax(0, 1fr);
	}

	.bnm-shop-page .bnm-cx .bnm-cx-panel {
		width: min(100%, 52rem);
	}

	.bnm-shop-page .bnm-cx ul.bnm-cx-list {
		column-count: 4;
	}
}
/* Collector Navigation */

.bnm-collector-nav {
	padding: 5rem 0;
	border-top: 1px solid rgba(255,255,255,.08);
	border-bottom: 1px solid rgba(255,255,255,.08);
}

.bnm-collector-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
	margin-top: 3rem;
}

.bnm-collector-card {
	display: block;
	padding: 2rem;
	text-decoration: none;
	color: inherit;
	border: 1px solid rgba(255,255,255,.08);
	background: rgba(255,255,255,.02);
	transition: all .3s ease;
	border-radius: 8px;
}

.bnm-collector-card:hover {
	transform: translateY(-5px);
	border-color: #c9a227;
	box-shadow: 0 10px 25px rgba(0,0,0,.25);
}

.bnm-collector-icon {
	font-size: 2rem;
	display: block;
	margin-bottom: 1rem;
}

.bnm-collector-card h3 {
	margin-bottom: .5rem;
	color: #f2e7c9;
}

.bnm-collector-card p {
	margin: 0;
	opacity: .85;
	line-height: 1.6;
}

@media (max-width: 768px) {
	.bnm-collector-grid {
		grid-template-columns: 1fr;
	}
}
/* Mobile Hero Fixes */
@media (max-width: 767px) {

	/* Hide decorative vertical lines */
	.bnm-hero::after {
		display: none;
	}

	/* Prevent headline from crossing the divider area */
	.bnm-hero .bnm-hero-title {
		font-size: 3rem !important;
		line-height: 1.05 !important;
	}

	/* Reset the desktop image positioning */
	.bnm-hero .bnm-hero-feature {
		left: 0 !important;
		top: 0 !important;
	}

	/* Smaller image on phones */
	.bnm-hero .bnm-hero-feature-media {
		width: 90% !important;
		max-width: 320px !important;
		margin: 0 auto !important;
	}

	/* Center the featured card */
	.bnm-hero .bnm-hero-feature-card {
		left: 50% !important;
		right: auto !important;
		transform: translateX(-50%) !important;
	}
}

/* ====================================
   HEADER SEARCH
==================================== */

.bnm-header-search {
    display: flex;
    align-items: center;
    margin-right: 12px;
    margin-top: 28px;
    position: relative;
}

.bnm-header-search::before {
    content: "🔍";
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 14px;
    pointer-events: none;
}

.bnm-header-search input[type="search"] {
    width: 260px;
    height: 40px;

    padding: 0 14px 0 38px;

    background: #d4af37;
    color: #121212;

    border: 1px solid #d4af37;
    border-radius: 8px;

    font-size: 14px;

    transition: all 0.3s ease;
}

.bnm-header-search input[type="search"]::placeholder {
    color: #121212;
}

.bnm-header-search input[type="search"]:focus,
.bnm-header-search input[type="search"]:active {
    outline: none !important;

    background-color: #d4af37 !important;
    color: #121212 !important;

    border-color: #f2d675;

    box-shadow: 0 0 10px rgba(212,175,55,0.30);
}
@media (max-width: 980px) {
    .bnm-header-search {
        display: none;
    }
}
/* ====================================
   SHOP BY CATEGORY
==================================== */

.bnm-home-categories {
    margin-top: 45px;
    margin-bottom: 40px;
}

.bnm-home-categories-title {
    text-align: center;
    color: #d4af37;
    font-size: 24px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 10px;
}

.bnm-home-categories-subtitle {
    text-align: center;
    color: rgba(255,255,255,0.75);
    font-size: 16px;
    margin-bottom: 30px;
}

.bnm-home-categories-grid {
    display: grid;
    grid-template-columns: repeat(5, 230px);
    column-gap: 10px;
    row-gap: 10px;
    justify-content: center;
}


.bnm-category-card {
    position: relative;
    display: block;
    overflow: hidden;

    border: 2px solid #d4af37;
    border-radius: 14px;

    text-decoration: none;
    min-height: 120px;

    background: #111;

}


.bnm-category-card img {
    width: 100%;
    height: 120px;
    object-fit: cover;

    transition: transform 0.4s ease;
}

.bnm-category-card:hover img {
    transform: scale(1.08);
}

.bnm-category-overlay {
    position: absolute;
    inset: 0;

    display: flex;
    align-items: flex-end;

    padding: 22px;

    background: linear-gradient(
        to top,
        rgba(0,0,0,0.85),
        rgba(0,0,0,0.10)
    );
}

.bnm-category-overlay span {
    color: #ffffff;
    font-size: 15px;
    font-weight: 700;
}

.bnm-new-arrivals-card {
    grid-column: auto;
}

@media (max-width: 991px) {

    .bnm-home-categories-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .bnm-new-arrivals-card {
        grid-column: span 2;
    }

}

@media (max-width: 767px) {

    .bnm-home-categories-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }

    .bnm-category-card {
        min-height: 100px;
    }

    .bnm-category-card img {
        height: 100px;
    }

    .bnm-category-overlay {
        padding: 12px;
    }

    .bnm-category-overlay span {
        font-size: 14px;
    }

    .bnm-new-arrivals-card {
        grid-column: span 2;
    }

}
@media (max-width: 768px) {

    .bnm-hero-inner {
        display: block;
    }

    .bnm-hero-feature {
        width: 280px;
        margin-left: auto !important;
        margin-right: auto !important;
        margin-top: 40px !important;
    }

    .bnm-hero-feature-media {
        width: 280px;
    }

    .bnm-hero-feature-media img {
        width: 280px !important;
        max-width: 280px !important;
        height: auto !important;
    }

    .bnm-hero-title {
        font-size: 2.5rem;
    }
}

/* ===== BNM notify: back-in-stock form (added Oct 2026, safe to delete this block) ===== */
.cwginstock-subscribe-form { margin: 18px 0; }
.cwginstock-subscribe-form .panel { background: #16191c !important; border: 1px solid rgba(212,175,55,.4) !important; border-radius: 2px !important; box-shadow: none !important; overflow: hidden; }
.cwginstock-subscribe-form .panel-heading { background: transparent !important; border: 0 !important; border-bottom: 1px solid rgba(255,255,255,.08) !important; padding: 14px 16px !important; }
.cwginstock-subscribe-form .panel-heading h4 { color: #d4af37 !important; font-size: .78rem !important; letter-spacing: .16em; text-transform: uppercase; margin: 0 !important; font-family: inherit; }
.cwginstock-subscribe-form .panel-body { padding: 16px !important; background: transparent !important; }
.cwginstock-subscribe-form input.cwgstock_name, .cwginstock-subscribe-form input.cwgstock_email { background: #101214 !important; color: #f5f3ee !important; border: 1px solid rgba(255,255,255,.14) !important; border-radius: 2px !important; padding: 12px !important; margin: 0 0 10px !important; box-sizing: border-box; }
.cwginstock-subscribe-form input.cwgstock_name::placeholder, .cwginstock-subscribe-form input.cwgstock_email::placeholder { color: rgba(245,243,238,.5); }
.cwginstock-subscribe-form .cwgstock_button { background: #d4af37 !important; color: #101214 !important; border: 0 !important; border-radius: 2px !important; padding: 13px 22px !important; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; font-size: .78rem; cursor: pointer; width: 100%; }
.cwginstock-subscribe-form .cwgstock_button:hover { background: #e6c86b !important; }
.cwginstock-subscribe-form .cwgstock_output { color: #f5f3ee; margin-top: 8px; font-size: .85rem; }
/* ===== end BNM notify ===== */
