/*
 * BNT Product Detail Page — v2 BRUTALIST/INDUSTRIAL
 * ──────────────────────────────────────────────────
 * Self-contained. Does not depend on Flatsome's product-page CSS.
 * Loaded only on single product pages via functions.php.
 * v2.0.0
 *
 * Design language: brutalist/industrial
 * - Zero border-radius
 * - 2px solid #1a1c1c borders everywhere
 * - Bebas Neue for headlines (huge, uppercase, tight)
 * - Roboto Mono for all labels and body text
 * - Grayscale images that reveal on hover
 * - Grid gaps use black background showing through as hairlines
 */

/* ─── Google Fonts ────────────────────────────────────────────────────── */
/* Loaded via wp_enqueue_style in functions.php */

/* ─── Custom Properties ───────────────────────────────────────────────── */
.bnt-v2-product {
    --v2-orange:      #f6821f;
    --v2-orange-dk:   #c96800;
    --v2-ink:         #1a1c1c;
    --v2-ink-soft:    #2e3030;
    --v2-muted:       #71717a;
    --v2-label:       #a1a1aa;
    --v2-white:       #ffffff;
    --v2-off-white:   #f4f4f5;
    --v2-dark:        #18181b;
    --v2-border:      2px solid #1a1c1c;
    --v2-border-thin: 1px solid #1a1c1c;
    --v2-gap:         2px;
    --v2-max:         1400px;
    --v2-font-head:   'Bebas Neue', cursive;
    --v2-font-mono:   'Roboto Mono', monospace;

    background: var(--v2-off-white);
    color: var(--v2-ink);
    font-family: var(--v2-font-mono);
    font-size: 13px;
    line-height: 1.5;
}

/* ─── Global reset scoped to this template ────────────────────────────── */
.bnt-v2-product *,
.bnt-v2-product *::before,
.bnt-v2-product *::after {
    box-sizing: border-box;
    border-radius: 0 !important;
}

.bnt-v2-product img {
    display: block;
    max-width: 100%;
    height: auto;
}

.bnt-v2-product a {
    text-decoration: none;
    color: inherit;
}

/* ─── WooCommerce plugin output inside hidden wrapper — suppress all ──── */
.bntv2-wc-form-wrap .happy-pay-wrapper,
.bntv2-wc-form-wrap .payjustnow,
.bntv2-wc-form-wrap .payjustnow-widget,
.bntv2-wc-form-wrap .wc-payjustnow,
.bntv2-wc-form-wrap .product_meta,
.bntv2-wc-form-wrap .woocommerce-product-rating,
.bntv2-wc-form-wrap .price,
.bntv2-wc-form-wrap .email-to-friend-button,
.bntv2-wc-form-wrap [class*="email-to-friend"],
.bntv2-wc-form-wrap [class*="need-help"],
.bntv2-wc-form-wrap .need-help-button {
    display: none !important;
}

/* ─── HERO SPLIT LAYOUT ───────────────────────────────────────────────── */
.bntv2-hero {
    max-width: var(--v2-max);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    border: var(--v2-border);
    border-top: none;
}

/* ─── LEFT PANEL ──────────────────────────────────────────────────────── */
.bntv2-left {
    border-right: var(--v2-border);
    display: flex;
    flex-direction: column;
    background: var(--v2-white);
    position: sticky;
    top: 80px;
    height: fit-content;
    align-self: start;
}

/* Terminal breadcrumb */
.bntv2-terminal-path {
    padding: 10px 16px;
    background: var(--v2-dark);
    color: var(--v2-orange);
    font-family: var(--v2-font-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
    border-bottom: var(--v2-border);
    overflow: hidden;
    white-space: nowrap;
}

.bntv2-path-seg {
    color: var(--v2-label);
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 180px;
    flex-shrink: 1;
}

a.bntv2-path-link {
    color: var(--v2-label);
    text-decoration: none;
    transition: color 0.15s ease;
    cursor: pointer;
}
a.bntv2-path-link:hover {
    color: var(--v2-white);
    text-decoration: underline;
}

.bntv2-path-active {
    color: var(--v2-orange);
    flex-shrink: 2;
}

.bntv2-path-sep {
    color: var(--v2-muted);
    margin: 0 4px;
    flex-shrink: 0;
}

/* Main image */
.bntv2-main-img-wrap {
    position: relative;
    background: var(--v2-white);
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.bntv2-main-img-link {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
}

.bntv2-main-img {
    max-width: 90%;
    max-height: 90%;
    width: auto;
    height: auto;
    object-fit: contain;
    transition: transform 0.4s ease;
}

.bntv2-main-img-wrap:hover .bntv2-main-img {
    transform: scale(1.03);
}

.bntv2-no-img {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--v2-off-white);
}

/* Badges */
.bntv2-badges {
    position: absolute;
    bottom: 12px;
    left: 12px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    z-index: 2;
}

.bntv2-badge {
    font-family: var(--v2-font-mono);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 3px 7px;
    background: var(--v2-ink);
    color: var(--v2-white);
    border: 1px solid var(--v2-ink);
}

.bntv2-badge--oos { background: #7f1d1d; border-color: #7f1d1d; }
.bntv2-badge--sale { background: var(--v2-orange); border-color: var(--v2-orange); color: var(--v2-white); }
.bntv2-badge--active { background: #14532d; border-color: #14532d; }
.bntv2-badge--brand { background: var(--v2-ink-soft); border-color: var(--v2-ink-soft); }

/* Thumbnails */
.bntv2-thumbs {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    background: var(--v2-ink);
    border-top: var(--v2-border);
}

.bntv2-thumb {
    position: relative;
    aspect-ratio: 1 / 1;
    background: var(--v2-white);
    border: none;
    cursor: pointer;
    padding: 0;
    overflow: hidden;
    border-right: var(--v2-border-thin);
    transition: background 0.2s;
}

.bntv2-thumb:last-child {
    border-right: none;
}

.bntv2-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(100%);
    transition: filter 0.25s ease;
}

.bntv2-thumb:hover img,
.bntv2-thumb--active img {
    filter: grayscale(0%);
}

.bntv2-thumb--active {
    outline: 2px solid var(--v2-orange);
    outline-offset: -2px;
    z-index: 1;
}

/* Video thumbnail */
.bntv2-thumb--video {
    background: var(--v2-ink);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
}

.bntv2-play-icon {
    color: var(--v2-white);
    display: flex;
    align-items: center;
    justify-content: center;
}

.bntv2-play-label {
    font-family: var(--v2-font-mono);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: var(--v2-label);
    text-transform: uppercase;
}

.bntv2-thumb--video:hover .bntv2-play-icon {
    color: var(--v2-orange);
}

/* ─── RIGHT PANEL ─────────────────────────────────────────────────────── */
.bntv2-right {
    display: flex;
    flex-direction: column;
    background: var(--v2-off-white);
    gap: 0;
}

/* Generic section */
.bntv2-section {
    background: var(--v2-white);
    border-bottom: var(--v2-border);
}

/* ─── SECTION 1: TITLE ────────────────────────────────────────────────── */
.bntv2-section--title {
    padding: 24px 28px 20px;
}

.bntv2-brand-tag {
    font-family: var(--v2-font-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--v2-orange);
    text-transform: uppercase;
    margin: 0 0 8px;
}

.bntv2-title {
    font-family: var(--v2-font-head);
    font-size: clamp(2.4rem, 5vw, 4.2rem);
    font-weight: 400;
    line-height: 0.88;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    color: var(--v2-ink);
    margin: 0 0 20px;
    word-break: break-word;
}

/* Meta grid: SKU + Rating */
.bntv2-meta-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    background: var(--v2-ink);
    border-top: var(--v2-border);
    border-bottom: var(--v2-border);
    margin: 0 -28px;
}

.bntv2-meta-cell {
    padding: 12px 16px;
    background: var(--v2-white);
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.bntv2-meta-cell + .bntv2-meta-cell {
    border-left: var(--v2-border-thin);
    margin-left: 1px;
}

.bntv2-meta-label {
    font-family: var(--v2-font-mono);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--v2-label);
}

.bntv2-meta-value {
    font-family: var(--v2-font-mono);
    font-size: 13px;
    font-weight: 700;
    color: var(--v2-ink);
    letter-spacing: 0.03em;
}

.bntv2-no-reviews {
    font-size: 11px;
    color: var(--v2-label);
}

.bntv2-meta-rating {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.bntv2-stars {
    display: flex;
    gap: 1px;
    font-size: 13px;
}

.bntv2-star--full { color: var(--v2-orange); }
.bntv2-star--half { color: var(--v2-orange); opacity: 0.5; }
.bntv2-star--empty { color: var(--v2-label); }

.bntv2-review-count {
    font-family: var(--v2-font-mono);
    font-size: 10px;
    color: var(--v2-muted);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.bntv2-review-count:hover {
    color: var(--v2-orange);
}

/* ─── SECTION 2: PRICE + CART ─────────────────────────────────────────── */
.bntv2-section--price-cart {
    padding: 0;
}

.bntv2-price-cart-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    background: var(--v2-ink);
}

.bntv2-price-cell {
    padding: 20px 24px;
    background: var(--v2-white);
    display: flex;
    flex-direction: column;
    gap: 8px;
    justify-content: center;
}

.bntv2-cart-cell {
    padding: 20px 24px;
    background: var(--v2-dark);
    display: flex;
    flex-direction: column;
    gap: 12px;
    justify-content: center;
}

.bntv2-cell-label {
    font-family: var(--v2-font-mono);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--v2-label);
    display: block;
}

.bntv2-cell-label--dark {
    color: #52525b;
}

/* Price display */
.bntv2-price-display {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.bntv2-price-was {
    font-family: var(--v2-font-mono);
    font-size: 12px;
    font-weight: 500;
    color: var(--v2-label);
    text-decoration: line-through;
}

.bntv2-price-now {
    font-family: var(--v2-font-head);
    font-size: clamp(2rem, 4vw, 3.2rem);
    font-weight: 400;
    color: var(--v2-ink);
    line-height: 1;
    letter-spacing: 0.01em;
}

/* Override WC price HTML inside bntv2-price-now */
.bntv2-price-now .woocommerce-Price-amount,
.bntv2-price-now .price,
.bntv2-price-now ins .woocommerce-Price-amount {
    font-family: var(--v2-font-head) !important;
    font-size: inherit !important;
    color: var(--v2-ink) !important;
    font-weight: 400 !important;
}

.bntv2-price-now del {
    display: none;
}

/* Stock */
.bntv2-stock {
    font-family: var(--v2-font-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    gap: 5px;
}

.bntv2-stock--in  { color: #16a34a; }
.bntv2-stock--out { color: #dc2626; }

/* Quantity picker */
.bntv2-qty-row {
    display: flex;
    align-items: center;
    gap: 0;
    background: var(--v2-ink);
    border: 2px solid #3f3f46;
    width: 100%;
}

.bntv2-qty-btn {
    width: 40px;
    height: 40px;
    background: transparent;
    border: none;
    cursor: pointer;
    color: var(--v2-white);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s;
    flex-shrink: 0;
}

.bntv2-qty-btn:hover {
    background: var(--v2-ink-soft);
}

.bntv2-qty-btn:active {
    background: var(--v2-orange);
}

.bntv2-qty-input {
    flex: 1;
    height: 40px;
    background: transparent;
    border: none;
    border-left: 1px solid #3f3f46;
    border-right: 1px solid #3f3f46;
    color: var(--v2-white);
    font-family: var(--v2-font-mono);
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    padding: 0;
    outline: none;
    -moz-appearance: textfield;
}

.bntv2-qty-input::-webkit-outer-spin-button,
.bntv2-qty-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
}

/* Add to Cart button */
.bntv2-atc-btn {
    width: 100%;
    padding: 14px 20px;
    background: var(--v2-orange);
    color: var(--v2-white);
    font-family: var(--v2-font-head);
    font-size: 1.4rem;
    font-weight: 400;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border: none;
    cursor: pointer;
    transition: background 0.2s, transform 0.1s;
    display: block;
    text-align: center;
    line-height: 1;
}

.bntv2-atc-btn:hover {
    background: var(--v2-orange-dk, #c96800);
}

.bntv2-atc-btn:active {
    transform: scale(0.98);
}

.bntv2-atc-btn--oos {
    background: #3f3f46;
    cursor: not-allowed;
    opacity: 0.7;
}

/* ─── SECTION 3: LOGISTICS ────────────────────────────────────────────── */
.bntv2-section--logistics {
    padding: 0;
}

.bntv2-logistics-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    background: var(--v2-ink);
}

.bntv2-logistics-cell {
    padding: 16px 20px;
    background: var(--v2-white);
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.bntv2-logistics-cell--right {
    border-left: 1px solid var(--v2-ink);
    margin-left: 2px;
}

.bntv2-logistics-header {
    font-family: var(--v2-font-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--v2-orange);
    text-transform: uppercase;
    display: block;
    border-bottom: 1px dashed #d4d4d8;
    padding-bottom: 8px;
    margin-bottom: 4px;
}

/* Payment rows */
.bntv2-pay-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.bntv2-pay-dot {
    width: 8px;
    height: 8px;
    border-radius: 50% !important;
    flex-shrink: 0;
    margin-top: 3px;
}

.bntv2-pay-dot--pjn { background: #2563eb; }
.bntv2-pay-dot--hp  { background: #16a34a; }

.bntv2-pay-info {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.bntv2-pay-name {
    font-family: var(--v2-font-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--v2-ink);
    text-transform: uppercase;
}

.bntv2-pay-detail {
    font-family: var(--v2-font-mono);
    font-size: 10px;
    color: var(--v2-muted);
    letter-spacing: 0.03em;
}

.bntv2-pay-na {
    font-family: var(--v2-font-mono);
    font-size: 11px;
    color: var(--v2-label);
}

/* Logistics rows */
.bntv2-logistic-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.bntv2-logistic-icon {
    flex-shrink: 0;
    margin-top: 2px;
    color: var(--v2-muted);
}

.bntv2-logistic-label {
    font-family: var(--v2-font-mono);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--v2-label);
    text-transform: uppercase;
    display: block;
}

.bntv2-logistic-val {
    font-family: var(--v2-font-mono);
    font-size: 10px;
    font-weight: 700;
    color: var(--v2-ink);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    display: block;
}

/* ─── SECTION 4: ACTION LINKS ─────────────────────────────────────────── */
.bntv2-section--actions {
    background: var(--v2-off-white);
    padding: 0;
}

.bntv2-action-links {
    display: flex;
    align-items: center;
    gap: 0;
    background: var(--v2-ink);
}

.bntv2-action-link {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 11px 16px;
    background: var(--v2-off-white);
    font-family: var(--v2-font-mono);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--v2-muted);
    transition: color 0.2s, background 0.2s;
    flex: 1;
    justify-content: center;
    text-align: center;
}

.bntv2-action-link + .bntv2-action-link {
    border-left: 1px solid var(--v2-ink);
    margin-left: 2px;
}

.bntv2-action-link:hover {
    color: var(--v2-orange);
    background: var(--v2-white);
}

.bntv2-action-link svg {
    flex-shrink: 0;
}

/* ─── PRODUCT TABS ────────────────────────────────────────────────────── */
.bntv2-tabs-section {
    max-width: var(--v2-max);
    margin: 0 auto;
    border: var(--v2-border);
    border-top: none;
    background: var(--v2-white);
}

.bntv2-tabs-heading {
    font-family: var(--v2-font-head);
    font-size: 1.8rem;
    font-weight: 400;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--v2-ink);
    padding: 16px 32px;
    background: var(--v2-off-white);
    border-bottom: var(--v2-border);
    line-height: 1;
}

.bntv2-section-heading-label {
    font-family: var(--v2-font-mono);
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--v2-orange);
    letter-spacing: 0.1em;
    margin-right: 6px;
    vertical-align: middle;
}

.bntv2-tabs-inner {
    padding: 0;
}

/* WooCommerce tabs — brutalist override */
.bnt-v2-product .woocommerce-tabs ul.tabs {
    padding: 0;
    margin: 0;
    list-style: none;
    display: flex;
    gap: 0;
    background: var(--v2-ink);
    border-bottom: var(--v2-border);
}

.bnt-v2-product .woocommerce-tabs ul.tabs li {
    background: transparent;
    border: none;
    margin: 0;
    padding: 0;
}

.bnt-v2-product .woocommerce-tabs ul.tabs li a {
    display: block;
    padding: 13px 24px;
    font-family: var(--v2-font-mono) !important;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #71717a;
    background: var(--v2-off-white);
    border-right: 1px solid var(--v2-ink);
    transition: color 0.2s, background 0.2s;
}

.bnt-v2-product .woocommerce-tabs ul.tabs li a:hover {
    color: var(--v2-orange);
    background: var(--v2-white);
}

.bnt-v2-product .woocommerce-tabs ul.tabs li.active a {
    color: var(--v2-ink) !important;
    background: var(--v2-white) !important;
    font-weight: 700;
    border-bottom: 3px solid var(--v2-orange);
}

/* Tab panels */
.bnt-v2-product .woocommerce-tabs .panel {
    padding: 28px 32px;
    background: var(--v2-white);
    border: none;
}

.bnt-v2-product .woocommerce-tabs .panel h2 {
    font-family: var(--v2-font-head);
    font-size: 1.6rem;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--v2-ink);
    margin: 0 0 16px;
    line-height: 1;
}

.bnt-v2-product .woocommerce-tabs .panel p,
.bnt-v2-product .woocommerce-tabs .panel li,
.bnt-v2-product .woocommerce-tabs .panel td {
    font-family: var(--v2-font-mono);
    font-size: 13px;
    line-height: 1.7;
    color: var(--v2-ink-soft);
}

.bnt-v2-product .woocommerce-tabs .panel table.shop_attributes {
    width: 100%;
    border-collapse: collapse;
}

.bnt-v2-product .woocommerce-tabs .panel table.shop_attributes th,
.bnt-v2-product .woocommerce-tabs .panel table.shop_attributes td {
    padding: 10px 14px;
    font-family: var(--v2-font-mono);
    font-size: 12px;
    text-align: left;
    border: var(--v2-border-thin);
}

.bnt-v2-product .woocommerce-tabs .panel table.shop_attributes th {
    background: var(--v2-off-white);
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-size: 10px;
    color: var(--v2-label);
    width: 200px;
}

.bnt-v2-product .woocommerce-tabs .panel table.shop_attributes tr:nth-child(even) td {
    background: var(--v2-off-white);
}

/* Reviews */
.bnt-v2-product #reviews #reply-title,
.bnt-v2-product #reviews #comments h2 {
    font-family: var(--v2-font-head);
    font-size: 1.4rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

/* ─── RELATED PRODUCTS ────────────────────────────────────────────────── */
.bntv2-related {
    background: var(--v2-off-white);
    border-top: var(--v2-border);
    border-bottom: var(--v2-border);
}

.bntv2-related-inner {
    max-width: var(--v2-max);
    margin: 0 auto;
    padding: 0;
    border-left: var(--v2-border);
    border-right: var(--v2-border);
}

.bntv2-related-heading {
    font-family: var(--v2-font-head);
    font-size: 1.8rem;
    font-weight: 400;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--v2-ink);
    padding: 16px 28px;
    background: var(--v2-white);
    border-bottom: var(--v2-border);
    line-height: 1;
    display: flex;
    align-items: center;
    gap: 16px;
}

.bntv2-related-all {
    margin-left: auto;
    font-family: var(--v2-font-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--v2-orange);
    transition: color 0.2s;
}

.bntv2-related-all:hover {
    color: var(--v2-orange-dk);
}

.bntv2-related-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    background: var(--v2-ink);
}

/* Related card */
.bntv2-rc {
    background: var(--v2-white);
    display: flex;
    flex-direction: column;
    border-right: var(--v2-border-thin);
    transition: background 0.2s;
    color: var(--v2-ink);
}

.bntv2-rc:last-child {
    border-right: none;
}

.bntv2-rc:hover {
    background: var(--v2-off-white);
}

.bntv2-rc-img-wrap {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 220px;
    padding: 18px;
    overflow: hidden;
    background: var(--v2-off-white);
    border-bottom: var(--v2-border-thin);
}

/* Kill any injected Buy-Now-Pay-Later / HappyPay / PayJustNow widgets inside
   related cards AND recently-viewed cards AND any shop loop product card */
.bntv2-rc [class*="happy-pay"],
.bntv2-rc [class*="HappyPay"],
.bntv2-rc [class*="happypay"],
.bntv2-rc [class*="payjustnow"],
.bntv2-rc [class*="PayJustNow"],
.bntv2-rc [id*="happy-pay"],
.bntv2-rc [id*="happypay"],
.bntv2-rc .wc-payjustnow-widget,
.bntv2-rc .happy-pay-widget,
.bntv2-rc .buy-now-pay-later,
.bntv2-rc iframe[src*="happypay"],
.bntv2-rc iframe[src*="payjustnow"],
/* Recently Viewed section on category landing pages */
body.bnt-v2-active .bnt-recently-viewed [class*="happy-pay"],
body.bnt-v2-active .bnt-recently-viewed [class*="HappyPay"],
body.bnt-v2-active .bnt-recently-viewed [class*="happypay"],
body.bnt-v2-active .bnt-recently-viewed [class*="payjustnow"],
body.bnt-v2-active .bnt-recently-viewed [class*="PayJustNow"],
body.bnt-v2-active .bnt-recently-viewed .wc-payjustnow-widget,
body.bnt-v2-active .bnt-recently-viewed .happy-pay-widget,
body.bnt-v2-active .bnt-recently-viewed .buy-now-pay-later,
body.bnt-v2-active .bnt-recently-viewed iframe[src*="happypay"],
body.bnt-v2-active .bnt-recently-viewed iframe[src*="payjustnow"],
/* Any shop loop product card — keep cards clean, widgets belong on detail pages only */
body.bnt-v2-active .bnt-card [class*="happy-pay"],
body.bnt-v2-active .bnt-card [class*="happypay"],
body.bnt-v2-active .bnt-card [class*="HappyPay"],
body.bnt-v2-active .bnt-card [class*="payjustnow"],
body.bnt-v2-active .bnt-card .wc-payjustnow-widget,
body.bnt-v2-active .bnt-card .happy-pay-widget,
body.bnt-v2-active .bnt-card .buy-now-pay-later,
body.bnt-v2-active .bnt-card iframe[src*="happypay"],
body.bnt-v2-active .bnt-card iframe[src*="payjustnow"],
body.bnt-v2-active .product-small [class*="happy-pay"],
body.bnt-v2-active .product-small [class*="happypay"],
body.bnt-v2-active .product-small .wc-payjustnow-widget,
body.bnt-v2-active .product-small .happy-pay-widget,
/* HappyPay plugin uses hppbtn-* class prefix — kill ALL of them inside shop loop cards */
body.bnt-v2-active .bnt-recently-viewed [class*="hppbtn-"],
body.bnt-v2-active .bnt-card [class*="hppbtn-"],
body.bnt-v2-active .product-small [class*="hppbtn-"],
body.bnt-v2-active .bnt-recently-viewed .text-inline-logo,
body.bnt-v2-active .bnt-card .text-inline-logo,
body.bnt-v2-active .product-small .text-inline-logo,
body.bnt-v2-active .bnt-recently-viewed .modal-button-image,
body.bnt-v2-active .bnt-card .modal-button-image,
body.bnt-v2-active .product-small .modal-button-image {
    display: none !important;
}

.bntv2-rc-img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    object-position: center center;
    filter: grayscale(100%);
    transition: filter 0.3s ease, transform 0.3s ease;
    mix-blend-mode: multiply;   /* blends white product backgrounds into card bg */
}

.bntv2-rc:hover .bntv2-rc-img {
    filter: grayscale(0%);
    transform: scale(1.05);
}

.bntv2-rc-badge,
.bntv2-rc-oos {
    position: absolute;
    top: 8px;
    left: 8px;
    font-family: var(--v2-font-mono);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 2px 5px;
    z-index: 1;
}

.bntv2-rc-badge {
    background: var(--v2-orange);
    color: var(--v2-white);
}

.bntv2-rc-oos {
    background: var(--v2-ink);
    color: var(--v2-white);
    top: auto;
    bottom: 8px;
    left: 8px;
}

.bntv2-rc-body {
    padding: 12px 14px;
    display: flex;
    flex-direction: column;
    gap: 3px;
    flex: 1;
}

.bntv2-rc-brand {
    font-family: var(--v2-font-mono);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: var(--v2-orange);
    text-transform: uppercase;
    min-height: 13px;          /* reserve space so cards without brand still align */
    line-height: 13px;
    display: block;
}

.bntv2-rc-brand--empty {
    visibility: hidden;
}

.bntv2-rc-title-link {
    color: var(--v2-ink);
    text-decoration: none;
    display: block;
}

.bntv2-rc-title-link:hover .bntv2-rc-title {
    color: var(--v2-orange);
}

.bntv2-rc-title {
    font-family: var(--v2-font-mono);
    font-size: 11px;
    font-weight: 600;
    color: var(--v2-ink);
    line-height: 1.35;
    letter-spacing: 0.02em;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: color 0.15s ease;
}

.bntv2-rc-price {
    font-family: var(--v2-font-head);
    font-size: 1.1rem;
    font-weight: 400;
    color: var(--v2-ink);
    letter-spacing: 0.02em;
}

.bntv2-rc-price .woocommerce-Price-amount {
    font-family: var(--v2-font-head) !important;
    font-size: inherit !important;
}

/* Related card ADD TO CART button — brutalist match (high specificity to beat Flatsome .button) */
.bnt-v2-product .bntv2-rc .bntv2-rc-atc,
.bnt-v2-product .bntv2-rc a.bntv2-rc-atc,
.bnt-v2-product .bntv2-rc .bntv2-rc-atc.button {
    display: block !important;
    width: 100% !important;
    margin-top: auto !important;
    padding: 12px 8px !important;
    min-height: 40px !important;
    box-sizing: border-box !important;
    background: var(--v2-orange) !important;
    color: var(--v2-white) !important;
    font-family: var(--v2-font-mono) !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    text-align: center !important;
    text-decoration: none !important;
    border: 2px solid var(--v2-orange) !important;
    border-radius: 0 !important;
    cursor: pointer !important;
    line-height: 1 !important;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease !important;
    box-shadow: none !important;
    text-shadow: none !important;
}

.bnt-v2-product .bntv2-rc .bntv2-rc-atc:hover,
.bnt-v2-product .bntv2-rc .bntv2-rc-atc:focus {
    background: var(--v2-ink) !important;
    border-color: var(--v2-ink) !important;
    color: var(--v2-white) !important;
    text-decoration: none !important;
}

/* Loading state — spinning BNT knife replaces text (overrides Flatsome's default ring spinner) */
.bntv2-rc-atc.loading,
a.bntv2-rc-atc.loading,
.bntv2-rc .bntv2-rc-atc.loading {
    position: relative !important;
    color: transparent !important;
    text-indent: -9999px !important;
    pointer-events: none !important;
    opacity: 1 !important;
    background: var(--v2-ink) !important;
    border-color: var(--v2-ink) !important;
}

/* Kill any Flatsome/WC default spinner pseudo-elements */
.bntv2-rc-atc.loading::before {
    content: none !important;
    display: none !important;
    border: none !important;
    background: none !important;
    animation: none !important;
}

.bntv2-rc-atc.loading::after {
    content: '' !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 26px !important;
    height: 26px !important;
    margin: -13px 0 0 -13px !important;
    padding: 0 !important;
    border: none !important;
    border-radius: 0 !important;
    text-indent: 0 !important;
    background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='%23f6821f'%3E%3Crect x='6' y='28' width='20' height='8' rx='0.5'/%3E%3Crect x='10' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='14' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='18' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='22' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='26' y='25' width='2.4' height='14'/%3E%3Cpath d='M 28.4 29 L 52 26 Q 58 28 61 32 Q 58 36 52 38 L 28.4 35 Z'/%3E%3Cpath d='M 52 26 L 61 32 L 55 28 Z' fill='%23ffb061'/%3E%3C/g%3E%3C/svg%3E") no-repeat center / contain !important;
    animation: bntv2-knife-spin 0.75s linear infinite !important;
    transform-origin: center center !important;
    opacity: 1 !important;
    color: transparent !important;
    box-shadow: none !important;
}

@keyframes bntv2-knife-spin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

/* Added / success state — overrides loading */
.bntv2-rc-atc.added {
    background: var(--v2-orange) !important;
    border-color: var(--v2-orange) !important;
    color: var(--v2-white) !important;
    text-indent: 0 !important;
}

.bntv2-rc-atc.added::after {
    content: ' ✓' !important;
    position: static !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    background: none !important;
    animation: none !important;
    transform: none !important;
    color: var(--v2-white) !important;
}

/* Bundle/combo Add to Cart button — same spinning knife */
.bntv2-section--bundle .single_add_to_cart_button.loading,
.bntv2-bundle-form-wrap .single_add_to_cart_button.loading,
.bnt-v2-product .single_add_to_cart_button.loading {
    position: relative !important;
    color: transparent !important;
    text-indent: -9999px !important;
    pointer-events: none !important;
    opacity: 1 !important;
}

.bntv2-section--bundle .single_add_to_cart_button.loading::before,
.bntv2-bundle-form-wrap .single_add_to_cart_button.loading::before,
.bnt-v2-product .single_add_to_cart_button.loading::before {
    content: none !important;
    display: none !important;
}

.bntv2-section--bundle .single_add_to_cart_button.loading::after,
.bntv2-bundle-form-wrap .single_add_to_cart_button.loading::after,
.bnt-v2-product .single_add_to_cart_button.loading::after {
    content: '' !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 44px !important;
    height: 44px !important;
    margin: -22px 0 0 -22px !important;
    border: none !important;
    border-radius: 0 !important;
    text-indent: 0 !important;
    background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='%23ffffff'%3E%3Crect x='6' y='28' width='20' height='8' rx='0.5'/%3E%3Crect x='10' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='14' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='18' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='22' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='26' y='25' width='2.4' height='14'/%3E%3Cpath d='M 28.4 29 L 52 26 Q 58 28 61 32 Q 58 36 52 38 L 28.4 35 Z'/%3E%3Cpath d='M 52 26 L 61 32 L 55 28 Z' fill='%23ffe0c2'/%3E%3C/g%3E%3C/svg%3E") no-repeat center / contain !important;
    animation: bntv2-knife-spin 0.75s linear infinite !important;
    transform-origin: center center !important;
    opacity: 1 !important;
    box-shadow: none !important;
}

/* Main page Add to Cart button — same spinning knife */
.bntv2-atc-btn.loading {
    position: relative !important;
    color: transparent !important;
    text-indent: -9999px !important;
    pointer-events: none !important;
    opacity: 1 !important;
}

.bntv2-atc-btn.loading::before {
    content: none !important;
    display: none !important;
}

.bntv2-atc-btn.loading::after {
    content: '' !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 44px !important;
    height: 44px !important;
    margin: -22px 0 0 -22px !important;
    border: none !important;
    border-radius: 0 !important;
    text-indent: 0 !important;
    background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='%23ffffff'%3E%3Crect x='6' y='28' width='20' height='8' rx='0.5'/%3E%3Crect x='10' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='14' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='18' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='22' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='26' y='25' width='2.4' height='14'/%3E%3Cpath d='M 28.4 29 L 52 26 Q 58 28 61 32 Q 58 36 52 38 L 28.4 35 Z'/%3E%3Cpath d='M 52 26 L 61 32 L 55 28 Z' fill='%23ffe0c2'/%3E%3C/g%3E%3C/svg%3E") no-repeat center / contain !important;
    animation: bntv2-knife-spin 0.75s linear infinite !important;
    transform-origin: center center !important;
}

/* Hide the default "View cart" link that WC appends after ajax add */
.bntv2-rc .added_to_cart {
    display: none !important;
}

.bnt-v2-product .bntv2-rc .bntv2-rc-atc--disabled,
.bnt-v2-product .bntv2-rc .bntv2-rc-atc.bntv2-rc-atc--disabled {
    background: var(--v2-off-white) !important;
    color: var(--v2-ink) !important;
    border-color: var(--v2-ink) !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}

/* VIEW OPTIONS variant — now identical orange styling to ADD TO CART for alignment.
   The only visual difference is the text ("VIEW OPTIONS →" vs "ADD TO CART"). */
.bnt-v2-product .bntv2-rc .bntv2-rc-atc--view {
    background: var(--v2-orange) !important;
    color: var(--v2-white) !important;
    border-color: var(--v2-orange) !important;
}

.bnt-v2-product .bntv2-rc .bntv2-rc-atc--view:hover {
    background: var(--v2-ink) !important;
    border-color: var(--v2-ink) !important;
    color: var(--v2-white) !important;
}

/* ─── WC NOTICES ──────────────────────────────────────────────────────── */
.bnt-v2-product .woocommerce-message,
.bnt-v2-product .woocommerce-error,
.bnt-v2-product .woocommerce-info {
    max-width: var(--v2-max);
    margin: 0 auto 0;
    padding: 12px 24px;
    font-family: var(--v2-font-mono);
    font-size: 12px;
    border: var(--v2-border-thin);
    background: var(--v2-white);
}

/* ─── LOADING STATE ───────────────────────────────────────────────────── */
.bntv2-atc-btn.loading {
    opacity: 0.6;
    pointer-events: none;
}

.bntv2-atc-btn.loading::after {
    content: ' ...';
}

/* ─── RESPONSIVE ──────────────────────────────────────────────────────── */
@media (max-width: 900px) {
    .bntv2-hero {
        grid-template-columns: 1fr;
        border: none;
        border-bottom: var(--v2-border);
    }

    .bntv2-left {
        position: static;
        border-right: none;
        border-bottom: var(--v2-border);
    }

    .bntv2-right {
        border: var(--v2-border);
        border-top: none;
    }

    .bntv2-tabs-section,
    .bntv2-related-inner {
        border-left: none;
        border-right: none;
    }

    .bntv2-title {
        font-size: 2.6rem;
    }

    .bntv2-price-cart-grid {
        grid-template-columns: 1fr;
    }

    .bntv2-cart-cell {
        border-top: 2px solid var(--v2-label);
        margin-top: 2px;
    }

    .bntv2-logistics-grid {
        grid-template-columns: 1fr;
    }

    .bntv2-logistics-cell--right {
        border-left: none;
        margin-left: 0;
        border-top: 2px solid var(--v2-ink);
        margin-top: 2px;
    }

    .bntv2-meta-grid {
        margin: 0 -28px;
    }
}

@media (max-width: 640px) {
    .bntv2-terminal-path {
        font-size: 9px;
    }

    .bntv2-title {
        font-size: 2.2rem;
    }

    .bntv2-related-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .bntv2-rc:nth-child(2) {
        border-right: none;
    }

    .bntv2-rc:nth-child(3),
    .bntv2-rc:nth-child(4) {
        border-top: var(--v2-border-thin);
    }

    .bntv2-rc-img-wrap {
        height: 160px;
    }

    .bntv2-rc-atc {
        font-size: 9px;
        padding: 9px 6px;
    }

    .bntv2-action-links {
        flex-wrap: wrap;
    }

    .bntv2-action-link {
        flex: 1 0 calc(50% - 2px);
    }

    .bntv2-section--title {
        padding: 20px 20px 16px;
    }

    .bntv2-meta-grid {
        margin: 0 -20px;
    }

    .bntv2-tabs-inner,
    .bntv2-tabs-heading {
        padding-left: 20px;
        padding-right: 20px;
    }

    .bnt-v2-product .woocommerce-tabs .panel {
        padding: 20px;
    }

    .bntv2-related-heading {
        font-size: 1.4rem;
        padding: 14px 20px;
    }
}

@media (max-width: 480px) {
    .bntv2-thumbs {
        grid-template-columns: repeat(4, 1fr);
    }

    .bntv2-price-now {
        font-size: 2rem;
    }

    .bntv2-related-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}


/* ═══════════════════════════════════════════════════════════════════════════
   BUNDLE / GROUPED PRODUCT SUPPORT
   ═══════════════════════════════════════════════════════════════════════════ */

/* When bundle form is visible, hide everything EXCEPT the bundled items and the add-to-cart button */
.bntv2-bundle-form-wrap {
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Hide duplicate elements from simple.php inside bundle form */
.bntv2-bundle-form-wrap .price_with_button > .price-wrapper,
.bntv2-bundle-form-wrap .price_with_button > p.price,
.bntv2-bundle-form-wrap .price_with_button > .product-page-price,
.bntv2-bundle-form-wrap .email-friend-btn,
.bntv2-bundle-form-wrap .need-help-section,
.bntv2-bundle-form-wrap .happy-pay-wrapper,
.bntv2-bundle-form-wrap [class*="happy-pay"],
.bntv2-bundle-form-wrap [class*="payjustnow"],
.bntv2-bundle-form-wrap .price_with_button > .stock {
    display: none !important;
}

/* Ensure price_with_button is visible for bundles (contains the form!) */
.bntv2-bundle-form-wrap .price_with_button {
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    background: transparent !important;
}

/* Style the bundle form itself */
.bntv2-bundle-form-wrap .bundle_form {
    border: var(--v2-border) !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Each bundled product item */
.bntv2-bundle-form-wrap .bundled_product {
    border-bottom: var(--v2-border-thin) !important;
    padding: 16px !important;
    display: flex !important;
    gap: 16px !important;
    align-items: flex-start !important;
    background: var(--v2-white) !important;
}
.bntv2-bundle-form-wrap .bundled_product:last-child {
    border-bottom: none !important;
}

/* Bundled product image */
.bntv2-bundle-form-wrap .bundled_product_images {
    width: 80px !important;
    min-width: 80px !important;
    flex-shrink: 0 !important;
}
.bntv2-bundle-form-wrap .bundled_product_images img {
    width: 80px !important;
    height: 80px !important;
    object-fit: contain !important;
    border: 1px solid var(--v2-label) !important;
    border-radius: 0 !important;
}

/* Bundled product title */
.bntv2-bundle-form-wrap .bundled_product_title {
    font-family: var(--v2-font-mono) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    color: var(--v2-ink) !important;
    margin: 0 0 4px !important;
}

/* Bundled product excerpt/description */
.bntv2-bundle-form-wrap .bundled_product_excerpt {
    font-family: var(--v2-font-mono) !important;
    font-size: 10px !important;
    color: var(--v2-muted) !important;
    line-height: 1.5 !important;
}

/* Bundled item cart details (qty, optional checkbox) */
.bntv2-bundle-form-wrap .bundled_item_cart_details {
    font-family: var(--v2-font-mono) !important;
    font-size: 10px !important;
}

/* Bundled product quantity */
.bntv2-bundle-form-wrap .bundled_qty {
    width: 50px !important;
    text-align: center !important;
    border: 1px solid var(--v2-ink) !important;
    border-radius: 0 !important;
    font-family: var(--v2-font-mono) !important;
    font-weight: 700 !important;
    padding: 4px !important;
}

/* Bundle add to cart button */
.bntv2-bundle-form-wrap .bundle_add_to_cart_button,
.bntv2-bundle-form-wrap .single_add_to_cart_button {
    background: linear-gradient(135deg, var(--v2-orange-dk), var(--v2-orange)) !important;
    color: var(--v2-white) !important;
    border: none !important;
    border-radius: 0 !important;
    font-family: var(--v2-font-head) !important;
    font-size: 18px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    padding: 16px 32px !important;
    width: 100% !important;
    cursor: pointer !important;
    transition: all 0.15s ease !important;
    margin-top: 8px !important;
}
.bntv2-bundle-form-wrap .bundle_add_to_cart_button:hover,
.bntv2-bundle-form-wrap .single_add_to_cart_button:hover {
    filter: brightness(1.1) !important;
}

/* Bundle unavailable message */
.bntv2-bundle-form-wrap .bundle_unavailable {
    font-family: var(--v2-font-mono) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    padding: 16px !important;
    background: #fef2f2 !important;
    border: 1px solid #fca5a5 !important;
    border-radius: 0 !important;
    color: #991b1b !important;
}

/* Bundle section */
.bntv2-section--bundle {
    border: var(--v2-border);
    border-top: none;
    background: var(--v2-white);
}

.bntv2-bundle-heading {
    font-family: var(--v2-font-head);
    font-size: 2rem;
    font-weight: 700;
    text-transform: uppercase;
    padding: 20px 24px;
    border-bottom: var(--v2-border);
    margin: 0;
    background: var(--v2-off-white);
}

.bntv2-bundle-form-wrap {
    padding: 0;
}

/* Override bundle form layout */
.bntv2-bundle-form-wrap .bundle_form {
    border: none !important;
    padding: 0 !important;
}

/* Hide duplicate UI inside bundle form — but NOT .price_with_button itself (contains the form!) */
.bntv2-bundle-form-wrap .price_with_button > .price-wrapper,
.bntv2-bundle-form-wrap .price_with_button > p.price,
.bntv2-bundle-form-wrap .price_with_button > .product-page-price,
.bntv2-bundle-form-wrap .price_with_button > .stock,
.bntv2-bundle-form-wrap .email-friend-btn,
.bntv2-bundle-form-wrap .need-help-section,
.bntv2-bundle-form-wrap .happy-pay-wrapper,
.bntv2-bundle-form-wrap [class*="happy-pay"],
.bntv2-bundle-form-wrap [class*="payjustnow"] {
    display: none !important;
}

/* Each bundled product — horizontal card with image right */
.bntv2-bundle-form-wrap .bundled_product {
    display: flex !important;
    flex-direction: row-reverse !important;
    gap: 20px !important;
    padding: 20px 24px !important;
    border-bottom: var(--v2-border) !important;
    align-items: center !important;
    background: var(--v2-white) !important;
    font-family: var(--v2-font-mono) !important;
}
.bntv2-bundle-form-wrap .bundled_product:last-of-type {
    border-bottom: none !important;
}

/* Image on the RIGHT side, in a square bordered box */
.bntv2-bundle-form-wrap .bundled_product_images {
    width: 120px !important;
    min-width: 120px !important;
    height: 120px !important;
    flex-shrink: 0 !important;
}
.bntv2-bundle-form-wrap .bundled_product_images img,
.bntv2-bundle-form-wrap .bundled_product_image img {
    width: 120px !important;
    height: 120px !important;
    object-fit: contain !important;
    border: var(--v2-border) !important;
    padding: 10px !important;
    background: var(--v2-off-white) !important;
    display: block !important;
    cursor: pointer !important;
    transition: opacity 0.2s ease !important;
}
.bntv2-bundle-form-wrap .bundled_product_images img:hover,
.bntv2-bundle-form-wrap .bundled_product_image img:hover {
    opacity: 0.8 !important;
}
/* Make the image link/wrapper clickable for zoom */
.bntv2-bundle-form-wrap .bundled_product_images a,
.bntv2-bundle-form-wrap .bundled_product_image a {
    display: block !important;
    width: 120px !important;
    height: 120px !important;
}

/* Product info takes remaining space */
.bntv2-bundle-form-wrap .bundled_product_summary,
.bntv2-bundle-form-wrap .bundled_item_cart_content {
    flex: 1 !important;
    min-width: 0 !important;
}

/* Title — only show once */
.bntv2-bundle-form-wrap .bundled_product_title {
    font-family: var(--v2-font-mono) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.03em !important;
    color: var(--v2-ink) !important;
    margin: 0 0 4px !important;
    padding: 0 !important;
}
.bntv2-bundle-form-wrap .bundled_product_title_inner {
    font-size: inherit !important;
    font-weight: inherit !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Hide the excerpt that duplicates the title */
.bntv2-bundle-form-wrap .bundled_product_excerpt {
    display: none !important;
}

/* Stock status */
.bntv2-bundle-form-wrap .stock {
    font-family: var(--v2-font-mono) !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    margin-top: 6px !important;
}
.bntv2-bundle-form-wrap .stock.in-stock {
    color: var(--v2-orange) !important;
}
.bntv2-bundle-form-wrap .stock.out-of-stock {
    color: #dc2626 !important;
}

/* Unavailable message */
.bntv2-bundle-form-wrap .bundled_item_cart_content p {
    font-family: var(--v2-font-mono) !important;
    font-size: 10px !important;
    color: var(--v2-muted) !important;
}

/* Cart details (qty) */
.bntv2-bundle-form-wrap .bundled_item_cart_details {
    font-family: var(--v2-font-mono) !important;
    font-size: 10px !important;
}
.bntv2-bundle-form-wrap .bundled_qty {
    width: 45px !important;
    text-align: center !important;
    border: var(--v2-border) !important;
    font-family: var(--v2-font-mono) !important;
    font-weight: 700 !important;
    padding: 4px !important;
    font-size: 11px !important;
}

/* Bundle quantity picker — match brutalist style */
.bntv2-bundle-form-wrap .quantity,
.bntv2-bundle-form-wrap .quantity.buttons_added {
    display: inline-flex !important;
    align-items: stretch !important;
    border: var(--v2-border) !important;
    background: var(--v2-dark) !important;
    height: 48px !important;
    margin: 12px 0 !important;
}
.bntv2-bundle-form-wrap .quantity .minus,
.bntv2-bundle-form-wrap .quantity .plus,
.bntv2-bundle-form-wrap .quantity input[type="button"] {
    width: 40px !important;
    height: 48px !important;
    background: var(--v2-dark) !important;
    color: var(--v2-white) !important;
    border: none !important;
    border-right: 1px solid rgba(255,255,255,0.2) !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background 0.15s ease !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    padding: 0 !important;
    margin: 0 !important;
    line-height: 1 !important;
}
.bntv2-bundle-form-wrap .quantity .plus {
    border-right: none !important;
    border-left: 1px solid rgba(255,255,255,0.2) !important;
}
.bntv2-bundle-form-wrap .quantity .minus:hover,
.bntv2-bundle-form-wrap .quantity .plus:hover,
.bntv2-bundle-form-wrap .quantity input[type="button"]:hover {
    background: var(--v2-white) !important;
    color: var(--v2-dark) !important;
}
.bntv2-bundle-form-wrap .quantity input.qty,
.bntv2-bundle-form-wrap .quantity input[type="number"] {
    width: 50px !important;
    height: 48px !important;
    text-align: center !important;
    background: var(--v2-dark) !important;
    color: var(--v2-white) !important;
    border: none !important;
    font-family: var(--v2-font-mono) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    -moz-appearance: textfield !important;
    padding: 0 !important;
    margin: 0 !important;
}
.bntv2-bundle-form-wrap .quantity input.qty::-webkit-inner-spin-button,
.bntv2-bundle-form-wrap .quantity input.qty::-webkit-outer-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
}

/* Hide the individual add-to-cart button per item */
.bntv2-bundle-form-wrap .bundled_item_button {
    display: none !important;
}

/* Bundle total / add to cart button */
.bntv2-bundle-form-wrap .bundle_add_to_cart_button,
.bntv2-bundle-form-wrap .single_add_to_cart_button {
    background: linear-gradient(135deg, var(--v2-orange-dk), var(--v2-orange)) !important;
    color: var(--v2-white) !important;
    border: none !important;
    font-family: var(--v2-font-head) !important;
    font-size: 20px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    padding: 16px 32px !important;
    width: 100% !important;
    cursor: pointer !important;
    margin: 0 !important;
}

/* Bundle unavailable message */
.bntv2-bundle-form-wrap .bundle_unavailable,
.bntv2-bundle-form-wrap .woocommerce-info {
    font-family: var(--v2-font-mono) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    padding: 16px 24px !important;
    background: #fef2f2 !important;
    color: #991b1b !important;
    border: none !important;
    border-top: var(--v2-border) !important;
}

/* For bundle products: hide the custom qty picker in the dark cell */
.bntv2-cart-cell--bundle .bntv2-qty-row,
.bntv2-cart-cell--bundle .bntv2-atc-btn {
    display: none !important;
}
.bntv2-cart-cell--bundle::after {
    content: 'SEE BUNDLE ITEMS BELOW';
    font-family: var(--v2-font-mono);
    font-size: 10px;
    font-weight: 700;
    color: var(--v2-label);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

/* ═══════════════════════════════════════════════════════════════════════════
   BRUTALIST HEADER — body.bnt-v2-active (product pages only)
   Flatsome structure: header#header > .header-wrapper >
     #masthead.header-main (logo row + topbar + search)
     .header-full (duplicate nav — HIDE)
     #wide-nav.header-bottom (main nav bar — KEEP & RESTYLE)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ─── HIDE: Everything we don't need ─────────────────────────────────────── */

/* 1. #masthead — shrink to 0 height, keep overflow visible for cart popup */
body.bnt-v2-active #masthead {
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    background: transparent !important;
    overflow: visible !important;
    position: relative !important;
    /* #masthead is height:0 but overflow:visible, so its .header-inner child
       still lays out over #wide-nav (where our injected search + cart icons
       live). That made .bntv2-nav-icon-btn clicks on mobile fall on the
       invisible .header-inner.topHeader instead. Kill pointer events on
       everything inside masthead by default — we re-enable the fixed-position
       cart popup selectively below. */
    pointer-events: none !important;
}
body.bnt-v2-active #masthead * {
    pointer-events: none !important;
}
/* Re-enable pointer events only on the fixed cart popup that's positioned
   at top:0 right:0 — it needs to stay clickable on desktop. */
body.bnt-v2-active #masthead .cart-item.has-icon,
body.bnt-v2-active #masthead .cart-item.has-icon * {
    pointer-events: auto !important;
}

/* Hide topbar, logo row, search, phone, social — specific selectors */
body.bnt-v2-active #masthead .topbar-main { display: none !important; }
body.bnt-v2-active #masthead #logo { display: none !important; }
body.bnt-v2-active #masthead .head-main-right { display: none !important; }
body.bnt-v2-active #masthead .mobile-header-menu { display: none !important; }
body.bnt-v2-active #masthead .header-search { display: none !important; }
body.bnt-v2-active #masthead .account-item { display: none !important; }

/* Keep the cart item visible and position it in the header bar */
body.bnt-v2-active #masthead .cart-item.has-icon {
    display: block !important;
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    z-index: 10002 !important;
}
body.bnt-v2-active #masthead .cart-item .header-cart-link {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 64px !important;
    height: 64px !important;
    background: #fff !important;
    border-left: 2px solid #1a1c1c !important;
    color: #1a1c1c !important;
    transition: all 0.15s ease !important;
    padding: 0 !important;
}
body.bnt-v2-active #masthead .cart-item .header-cart-link:hover {
    background: #1a1c1c !important;
    color: #fff !important;
}

/* Off-canvas cart panel — ensure it renders above everything */
body.bnt-v2-active .off-canvas-cart,
body.bnt-v2-active .mfp-bg,
body.bnt-v2-active .mfp-wrap,
body.bnt-v2-active #cart-popup {
    z-index: 99999 !important;
    overflow: visible !important;
}

/* 2. Hide the .header-full section (duplicate nav lists) */
body.bnt-v2-active .header-full {
    display: none !important;
}

/* 3. Hide announcement/shipping bars — covers ALL possible wrappers */
body.bnt-v2-active [class*="announcement"],
body.bnt-v2-active .header-top,
body.bnt-v2-active .top-divider,
body.bnt-v2-active #header > .header-wrapper > *:first-child:not(#masthead):not(#wide-nav):not(.header-full),
body.bnt-v2-active .header-wrapper > section,
body.bnt-v2-active .header-wrapper > .section,
body.bnt-v2-active [class*="shipping-bar"],
body.bnt-v2-active [class*="free-shipping"],
body.bnt-v2-active .absolute-footer,
body.bnt-v2-active #header .ux-banner {
    display: none !important;
}

/* Hide top-bar plugin element (renders outside header sometimes) */
body.bnt-v2-active #topbar-wrap,
body.bnt-v2-active #tpbr,
body.bnt-v2-active [id*="topbar"],
body.bnt-v2-active .topbar-wrap,
body.bnt-v2-active [class*="topbar-wrap"],
body.bnt-v2-active #wrapper > *:first-child:not(#header) {
    display: none !important;
}

/* Nuclear: hide visual elements except #wide-nav and #masthead (cart popup lives in masthead) */
body.bnt-v2-active .header-wrapper > *:not(#wide-nav):not(#masthead) {
    display: none !important;
}
body.bnt-v2-active .header-wrapper > #wide-nav {
    display: flex !important;
}

/* Ensure off-canvas cart panel works */
body.bnt-v2-active .off-canvas-cart,
body.bnt-v2-active .mfp-bg,
body.bnt-v2-active .mfp-wrap,
body.bnt-v2-active .mfp-container {
    display: block !important;
    visibility: visible !important;
}

/* 4. Hide sticky CTA and misc */
body.bnt-v2-active .bnt-sticky-cta,
body.bnt-v2-active .ti-large-logo,
body.bnt-v2-active .mob-menu-logo-holder,
body.bnt-v2-active .hppbtn-modal-logo {
    display: none !important;
}

/* ─── KEEP & RESTYLE: #wide-nav (main navigation bar) ────────────────────── */

/* The header wrapper — fixed, 64px, black bottom border */
body.bnt-v2-active #header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 9999 !important;
    background: #fff !important;
    box-shadow: none !important;
    border-bottom: 2px solid #1a1c1c !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
}

body.bnt-v2-active .header-wrapper {
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
}

/* #wide-nav becomes the ONLY visible header row */
body.bnt-v2-active #wide-nav {
    display: flex !important;
    align-items: stretch !important;
    height: 64px !important;
    background: #fff !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
}

body.bnt-v2-active #wide-nav > .flex-row,
body.bnt-v2-active #wide-nav > .container,
body.bnt-v2-active #wide-nav .row {
    display: flex !important;
    align-items: stretch !important;
    height: 64px !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    gap: 0 !important;
}

/* ─── Clickable logo injected into #wide-nav via JS (bnt_v2_header_icons) ── */
body.bnt-v2-active #wide-nav::before {
    content: none !important;
    display: none !important;
}

body.bnt-v2-active .bntv2-nav-logo {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 260px !important;
    min-width: 260px !important;
    height: 64px !important;
    background: #fff !important;
    border-right: 2px solid #1a1c1c !important;
    flex-shrink: 0 !important;
    padding: 0 20px !important;
    box-sizing: border-box !important;
    text-decoration: none !important;
    transition: background 0.15s ease !important;
    order: -1 !important;   /* force to leftmost position in flex row */
}

body.bnt-v2-active .bntv2-nav-logo:hover,
body.bnt-v2-active .bntv2-nav-logo:focus {
    background: #f4f4f5 !important;
}

body.bnt-v2-active .bntv2-nav-logo img {
    display: block !important;
    max-height: 32px !important;
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
    pointer-events: none !important;  /* so click always goes to the anchor */
}

/* ─── Nav links styling ──────────────────────────────────────────────────── */
body.bnt-v2-active #wide-nav ul.header-nav,
body.bnt-v2-active #wide-nav ul.nav,
body.bnt-v2-active #wide-nav ul.header-bottom-nav {
    display: flex !important;
    align-items: stretch !important;
    height: 64px !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    flex: 1 !important;
}

body.bnt-v2-active #wide-nav ul.nav > li {
    display: flex !important;
    align-items: stretch !important;
    border-right: 1px solid #1a1c1c !important;
    height: 64px !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.bnt-v2-active #wide-nav ul.nav > li > a {
    display: flex !important;
    align-items: center !important;
    padding: 0 24px !important;
    height: 64px !important;
    font-family: 'Roboto Mono', monospace !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    color: #1a1c1c !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    transition: all 0.15s ease !important;
    background: transparent !important;
    border: none !important;
}

body.bnt-v2-active #wide-nav ul.nav > li > a:hover,
body.bnt-v2-active #wide-nav ul.nav > li.active > a,
body.bnt-v2-active #wide-nav ul.nav > li.current-menu-item > a {
    background: #1a1c1c !important;
    color: #fff !important;
}

/* Hide Flatsome's default arrow indicators on nav items */
body.bnt-v2-active #wide-nav ul.nav > li > a .nav-arrow {
    display: none !important;
}

/* ─── Dropdown menus ─────────────────────────────────────────────────────── */
/* Hover-intent delay: dropdowns wait 280ms before opening (so mouse-over-in-transit
   doesn't trigger them), but close instantly on mouse leave. */
body.bnt-v2-active #wide-nav ul.nav > li .nav-dropdown,
body.bnt-v2-active #wide-nav ul.nav > li > ul.sub-menu {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(-6px) !important;
    transition:
        opacity 0.18s ease 0s,
        visibility 0.18s ease 0s,
        transform 0.18s ease 0s !important;
}

body.bnt-v2-active #wide-nav ul.nav > li:hover > .nav-dropdown,
body.bnt-v2-active #wide-nav ul.nav > li.has-dropdown:hover > .nav-dropdown,
body.bnt-v2-active #wide-nav ul.nav > li:hover > ul.sub-menu,
body.bnt-v2-active #wide-nav ul.nav > li:focus-within > .nav-dropdown,
body.bnt-v2-active #wide-nav ul.nav > li:focus-within > ul.sub-menu {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
    transition:
        opacity 0.2s ease 0.28s,
        visibility 0.2s ease 0.28s,
        transform 0.2s ease 0.28s !important;
}

body.bnt-v2-active #wide-nav .nav-dropdown {
    display: block !important;          /* override parent flex rule */
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    height: auto !important;
    border: 2px solid #1a1c1c !important;
    border-radius: 0 !important;
    box-shadow: 4px 4px 0 #1a1c1c !important;
    background: #fff !important;
    padding: 0 !important;
    min-width: 240px !important;
}

/* Force vertical stacking for ALL nested lists inside the dropdown */
body.bnt-v2-active #wide-nav .nav-dropdown ul,
body.bnt-v2-active #wide-nav .nav-dropdown ol,
body.bnt-v2-active #wide-nav .nav-dropdown .sub-menu {
    display: block !important;
    flex: none !important;
    flex-direction: column !important;
    height: auto !important;
    width: 100% !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

body.bnt-v2-active #wide-nav .nav-dropdown li {
    display: block !important;
    height: auto !important;
    width: 100% !important;
    border-right: none !important;
    border-bottom: 1px solid #e4e4e7 !important;
    padding: 0 !important;
    margin: 0 !important;
    flex: none !important;
}

body.bnt-v2-active #wide-nav .nav-dropdown li:last-child {
    border-bottom: none !important;
}

body.bnt-v2-active #wide-nav .nav-dropdown li a {
    display: block !important;
    height: auto !important;
    width: 100% !important;
    font-family: 'Roboto Mono', monospace !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    padding: 12px 18px !important;
    color: #1a1c1c !important;
    transition: all 0.15s ease !important;
    white-space: normal !important;
    line-height: 1.4 !important;
}

body.bnt-v2-active #wide-nav .nav-dropdown li a:hover {
    background: #1a1c1c !important;
    color: #fff !important;
    padding-left: 24px !important;
}

/* Handle deeper nesting — sub-sub-menus should also stack vertically */
body.bnt-v2-active #wide-nav .nav-dropdown li ul {
    position: static !important;
    box-shadow: none !important;
    border: none !important;
    background: #f4f4f5 !important;
}

body.bnt-v2-active #wide-nav .nav-dropdown li ul li a {
    padding-left: 32px !important;
    font-size: 9px !important;
    opacity: 0.85 !important;
}

/* ─── Cart icon (add to right side) ──────────────────────────────────────── */
body.bnt-v2-active #wide-nav .header-cart-link,
body.bnt-v2-active .header-cart-link {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 64px !important;
    height: 64px !important;
    border-left: 2px solid #1a1c1c !important;
    background: #fff !important;
    transition: all 0.15s ease !important;
    color: #1a1c1c !important;
    text-decoration: none !important;
}

body.bnt-v2-active .header-cart-link:hover {
    background: #1a1c1c !important;
    color: #fff !important;
}

body.bnt-v2-active .header-cart-link .cart-icon strong {
    border-color: currentColor !important;
    color: currentColor !important;
    border-radius: 0 !important;
}
body.bnt-v2-active .header-cart-link .cart-icon strong:after {
    border-color: currentColor !important;
    border-radius: 0 !important;
}

/* ─── Push content below fixed header ────────────────────────────────────── */
body.bnt-v2-active #wrapper {
    padding-top: 66px !important;
}

/* ─── Mobile adjustments ─────────────────────────────────────────────────── */
@media (max-width: 960px) {
    body.bnt-v2-active #wide-nav::before {
        width: 140px;
        min-width: 140px;
        background-size: auto 28px;
    }

    body.bnt-v2-active #wide-nav ul.nav > li > a {
        padding: 0 12px !important;
        font-size: 9px !important;
    }

    /* Show mobile menu toggle if Flatsome provides one */
    body.bnt-v2-active .mobile-nav {
        display: flex !important;
    }
}

/* ─── JS-injected nav icons container ─────────────────────────────────── */
body.bnt-v2-active .bntv2-nav-icons {
    display: flex !important;
    align-items: stretch !important;
    height: 64px !important;
    margin-left: auto !important;
    margin-right: 64px !important; /* room for the fixed cart icon */
    flex-shrink: 0 !important;
}

body.bnt-v2-active .bntv2-nav-icon-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 64px !important;
    height: 64px !important;
    border-left: 2px solid #1a1c1c !important;
    background: #fff !important;
    color: #1a1c1c !important;
    transition: all 0.15s ease !important;
    cursor: pointer !important;
    text-decoration: none !important;
}
body.bnt-v2-active .bntv2-nav-icon-btn:hover {
    background: #1a1c1c !important;
    color: #fff !important;
}
body.bnt-v2-active .bntv2-nav-icon-btn svg {
    stroke: currentColor !important;
}
/* Search button: icon + "SEARCH" text label */
body.bnt-v2-active .bntv2-nav-search-btn {
    gap: 8px !important;
    padding: 0 20px !important;
    width: auto !important;
}
body.bnt-v2-active .bntv2-nav-search-label {
    font-family: 'Roboto Mono', 'Courier New', monospace !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    color: inherit !important;
}
/* On mobile, Flatsome's native mobile header already shows a working cart
   icon (.header-cart-link.off-canvas-toggle inside .mob-menu-header-holder).
   Our injected .bntv2-nav-cart-btn ends up as a second, non-functional cart
   icon right next to it. Hide our copy on mobile — keep it on desktop where
   Flatsome's native cart icon is NOT rendered. */
@media (max-width: 849px) {
    body.bnt-v2-active .bntv2-nav-icon-btn.bntv2-nav-cart-btn {
        display: none !important;
    }
    /* Hide the legacy "Shop" menu item (.bnt-shop-menu) that gets clipped to
       ~63px wide on mobile and renders as "SHOI". It's a redundant link with
       the hamburger menu and the logo (both go to the shop).
       Specificity has to exceed our existing (1,2,3) rule on
       body.bnt-v2-active #wide-nav ul.nav > li — use matching structure plus
       the item's own class to reach (1,3,3). */
    body.bnt-v2-active #wide-nav ul.nav > li.bnt-shop-menu,
    body.bnt-v2-active #wide-nav li.bnt-shop-menu,
    li.bnt-shop-menu {
        display: none !important;
    }
}

/* ═══════════════════════════════════════════════════════════════════════
   BRUTALIST DESKTOP MEGA-NAV (hover dropdowns)
   Replaces Flatsome's default #wide-nav menu items.
   ═══════════════════════════════════════════════════════════════════════ */
body.bnt-v2-active #wide-nav ul.nav.bntv2-mn__list {
    display: flex !important;
    align-items: stretch !important;
    gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    flex: 1 !important;
}
body.bnt-v2-active .bntv2-mn__item {
    display: flex !important;
    align-items: stretch !important;
    border-right: 1px solid rgba(26, 28, 28, 0.15) !important;
    position: relative !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.bnt-v2-active .bntv2-mn__item:last-child { border-right: 0 !important; }
body.bnt-v2-active .bntv2-mn__link {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 0 16px !important;
    color: #1a1c1c !important;
    text-decoration: none !important;
    font-family: 'Roboto Mono', 'Courier New', monospace !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
    transition: background 0.15s ease, color 0.15s ease !important;
    height: 64px !important;
}
body.bnt-v2-active .bntv2-mn__link:hover,
body.bnt-v2-active .bntv2-mn__item:hover > .bntv2-mn__link {
    background: #1a1c1c !important;
    color: #fff !important;
}
body.bnt-v2-active .bntv2-mn__icon {
    width: 20px !important;
    height: 20px !important;
    flex: 0 0 20px !important;
    color: inherit !important;
}
body.bnt-v2-active .bntv2-mn__icon svg { width: 100% !important; height: 100% !important; }
body.bnt-v2-active .bntv2-mn__item--promo .bntv2-mn__link.bntv2-mn__link--promo {
    color: #fff !important;
    background: #f6821f !important;
    border-left: 2px solid #1a1c1c !important;
    padding: 0 18px !important;
    font-size: 10px !important;
    letter-spacing: 0.14em !important;
}
body.bnt-v2-active .bntv2-mn__item--promo .bntv2-mn__link.bntv2-mn__link--promo:hover {
    background: #1a1c1c !important;
    color: #f6821f !important;
}

/* ── Dropdown panel ─────────────────────────────────────────────────── */
body.bnt-v2-active .bntv2-mn__dropdown {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 560px;
    max-width: 680px;
    background: #fff;
    border: 2px solid #1a1c1c;
    box-shadow: 8px 8px 0 #f6821f;
    z-index: 9999;
    padding: 0;
    animation: bntMnDdFade 0.18s ease-out;
}
body.bnt-v2-active .bntv2-mn__item.has-dd:hover > .bntv2-mn__dropdown {
    display: grid;
    grid-template-columns: 220px 1fr;
}
@keyframes bntMnDdFade {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Left panel — hero icon + Browse All CTA */
body.bnt-v2-active .bntv2-mn__dd-left {
    background: #f7f5f0;
    border-right: 2px solid #1a1c1c;
    padding: 28px 24px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 24px;
}
body.bnt-v2-active .bntv2-mn__dd-hero {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
body.bnt-v2-active .bntv2-mn__dd-hero-icon {
    width: 56px;
    height: 56px;
    color: #f6821f;
}
body.bnt-v2-active .bntv2-mn__dd-hero-icon svg { width: 100%; height: 100%; }
body.bnt-v2-active .bntv2-mn__dd-eyebrow {
    font-family: 'Roboto Mono', monospace;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.15em;
    color: #f6821f;
    text-transform: uppercase;
}
body.bnt-v2-active .bntv2-mn__dd-title {
    font-family: 'Bebas Neue', Impact, sans-serif !important;
    font-size: 32px !important;
    line-height: 0.95 !important;
    color: #1a1c1c !important;
    margin: 0 !important;
    text-transform: uppercase;
}
body.bnt-v2-active .bntv2-mn__dd-cta {
    display: block;
    padding: 14px 16px;
    background: #1a1c1c;
    color: #fff !important;
    font-family: 'Roboto Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-align: center;
    text-decoration: none !important;
    border: 2px solid #1a1c1c;
    transition: background 0.15s ease;
}
body.bnt-v2-active .bntv2-mn__dd-cta:hover {
    background: #f6821f;
    border-color: #f6821f;
}

/* Right panel — subcategory links */
body.bnt-v2-active .bntv2-mn__dd-list {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    max-height: 420px;
    overflow-y: auto;
}
body.bnt-v2-active .bntv2-mn__dd-list li {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border-bottom: 1px solid rgba(26, 28, 28, 0.1);
}
body.bnt-v2-active .bntv2-mn__dd-list li:last-child { border-bottom: 0; }
body.bnt-v2-active .bntv2-mn__dd-link {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 14px 20px !important;
    color: #1a1c1c !important;
    text-decoration: none !important;
    font-family: 'Roboto Mono', monospace !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0.03em !important;
    transition: background 0.12s ease, color 0.12s ease !important;
}
body.bnt-v2-active .bntv2-mn__dd-link:hover {
    background: #f6821f !important;
    color: #fff !important;
}
body.bnt-v2-active .bntv2-mn__dd-count {
    font-size: 10px;
    opacity: 0.5;
    padding: 2px 6px;
    border: 1px solid rgba(26, 28, 28, 0.2);
    font-weight: 700;
}
body.bnt-v2-active .bntv2-mn__dd-link:hover .bntv2-mn__dd-count {
    opacity: 1;
    color: #fff;
    border-color: rgba(255, 255, 255, 0.5);
}

/* "More +" item: orange accent to distinguish from categories */
body.bnt-v2-active .bntv2-mn__link--more {
    color: #f6821f !important;
    border-left: 2px solid #1a1c1c !important;
}
body.bnt-v2-active .bntv2-mn__link--more:hover,
body.bnt-v2-active .bntv2-mn__item--more:hover > .bntv2-mn__link--more {
    background: #f6821f !important;
    color: #fff !important;
}
/* Compact dropdown (no left hero panel — just the link list) */
body.bnt-v2-active .bntv2-mn__dropdown--compact {
    min-width: 260px !important;
    max-width: 300px !important;
    right: 0 !important;
    left: auto !important;
}
body.bnt-v2-active .bntv2-mn__item--more.has-dd:hover > .bntv2-mn__dropdown--compact {
    display: block !important;
}

/* Tighten nav items slightly so 9 items + search/cart fit at 1440px */
body.bnt-v2-active .bntv2-mn__link {
    padding: 0 14px !important;
    font-size: 10px !important;
}

/* Hide desktop mega-nav on mobile */
@media (max-width: 849px) {
    body.bnt-v2-active .bntv2-mn__list { display: none !important; }
}

/* ─── END BRUTALIST HEADER OVERRIDES ──────────────────────────────────────── */

/* ═══════════════════════════════════════════════════════════════════════
   BRUTALIST FOOTER — replaces Flatsome footer on v2 pages
   ═══════════════════════════════════════════════════════════════════════ */

/* Hide ALL default Flatsome footer content on v2 pages */
body.bnt-v2-active footer:not(.bntv2-footer),
body.bnt-v2-active .footer_testimonial,
body.bnt-v2-active #footer-icon,
body.bnt-v2-active footer#footer,
body.bnt-v2-active .footer-wrapper,
body.bnt-v2-active .footer-widgets,
body.bnt-v2-active .footer-1,
body.bnt-v2-active .footer-2,
body.bnt-v2-active .absolute-footer,
body.bnt-v2-active .ti-footer,
body.bnt-v2-active .menu-footer-menu-container,
body.bnt-v2-active .menu-footer-menu-category-container,
body.bnt-v2-active #main + section:not([class*="bntv2"]),
body.bnt-v2-active .links-bar {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

/* Explicitly re-show our brutalist footer (counters the footer:not(.bntv2-footer) rule's cascade) */
body.bnt-v2-active footer.bntv2-footer {
    display: block !important;
    visibility: visible !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
}

/* Brutalist footer container */
.bntv2-footer {
    --v2-orange:    #f6821f;
    --v2-ink:       #1a1c1c;
    --v2-white:     #ffffff;
    --v2-off-white: #f4f4f5;
    --v2-label:     #a1a1aa;
    --v2-font-head: 'Bebas Neue', 'Oswald', Impact, sans-serif;
    --v2-font-mono: 'Roboto Mono', 'Courier New', monospace;

    background: var(--v2-ink);
    color: var(--v2-white);
    border-top: 2px solid var(--v2-ink);
    font-family: var(--v2-font-mono);
    width: 100%;
    margin: 0;
    padding: 0;
}

.bntv2-footer-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0;
}

/* ── Top grid: 4 columns ─────────────────────────────────────── */
.bntv2-footer-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1.5fr;
    gap: 0;
    background: var(--v2-white);
    border-bottom: 2px solid var(--v2-white);
}

.bntv2-footer-col {
    background: var(--v2-ink);
    padding: 36px 28px 32px;
    border-right: 2px solid var(--v2-white);
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.bntv2-footer-col:last-child {
    border-right: none;
}

.bntv2-footer-label {
    display: inline-block;
    font-family: var(--v2-font-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.18em;
    color: var(--v2-orange);
    text-transform: uppercase;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.bntv2-footer-links {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.bntv2-footer-links li {
    margin: 0;
    padding: 0;
    list-style: none;
}

.bntv2-footer-links a {
    display: inline-block;
    color: var(--v2-white);
    font-family: var(--v2-font-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    padding: 2px 0;
    position: relative;
    transition: color 0.15s ease, padding-left 0.15s ease;
    border-bottom: 1px solid transparent;
}

.bntv2-footer-links a:hover,
.bntv2-footer-links a:focus {
    color: var(--v2-orange);
    padding-left: 8px;
    text-decoration: none;
    border-bottom-color: var(--v2-orange);
}

.bntv2-footer-blurb {
    font-family: var(--v2-font-mono);
    font-size: 11px;
    line-height: 1.7;
    color: var(--v2-white);
    margin: 0;
    letter-spacing: 0.04em;
    opacity: 0.85;
}

.bntv2-footer-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 4px;
}

.bntv2-footer-badge {
    display: inline-block;
    padding: 5px 10px;
    background: transparent;
    border: 1px solid var(--v2-orange);
    color: var(--v2-orange);
    font-family: var(--v2-font-mono);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

/* ── Bottom bar ───────────────────────────────────────────────── */
.bntv2-footer-bar {
    background: var(--v2-ink);
    padding: 18px 28px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.bntv2-footer-copy {
    font-family: var(--v2-font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.14em;
    color: var(--v2-label);
    text-transform: uppercase;
}

.bntv2-footer-sys {
    font-family: var(--v2-font-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: var(--v2-white);
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.bntv2-footer-credits {
    font-family: var(--v2-font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
    color: var(--v2-label);
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: center;
}

.bntv2-footer-credits a {
    color: var(--v2-white);
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: color 0.15s ease, border-color 0.15s ease;
}

.bntv2-footer-credits a:hover,
.bntv2-footer-credits a:focus {
    color: var(--v2-orange);
    border-bottom-color: var(--v2-orange);
}

.bntv2-footer-heart {
    display: inline-block;
    color: #e11d48;
    font-size: 12px;
    line-height: 1;
    margin: 0 2px;
    animation: bntv2-heart-beat 1.6s ease-in-out infinite;
    transform-origin: center center;
}

@keyframes bntv2-heart-beat {
    0%, 100% { transform: scale(1); }
    15%      { transform: scale(1.25); }
    30%      { transform: scale(1); }
    45%      { transform: scale(1.18); }
    60%      { transform: scale(1); }
}

.bntv2-footer-sep {
    color: var(--v2-orange);
    font-weight: 700;
    opacity: 0.6;
    margin: 0 2px;
}

/* Bottom bar: 3-column layout when credits row is present */
.bntv2-footer-bar {
    flex-wrap: wrap;
}

.bntv2-footer-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    background: #16a34a;
    border-radius: 0;
    margin-right: 6px;
    box-shadow: 0 0 8px rgba(22, 163, 74, 0.6);
    animation: bntv2-pulse 2s ease-in-out infinite;
}

@keyframes bntv2-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
}

/* ── Responsive ───────────────────────────────────────────────── */
@media (max-width: 900px) {
    .bntv2-footer-grid {
        grid-template-columns: 1fr 1fr;
    }
    .bntv2-footer-col {
        padding: 28px 22px 26px;
    }
    .bntv2-footer-col:nth-child(2) {
        border-right: none;
    }
    .bntv2-footer-col:nth-child(1),
    .bntv2-footer-col:nth-child(2) {
        border-bottom: 2px solid var(--v2-white);
    }
    .bntv2-footer-col--wide {
        grid-column: 1 / -1;
        border-right: none;
    }
}

@media (max-width: 640px) {
    .bntv2-footer-grid {
        grid-template-columns: 1fr;
    }
    .bntv2-footer-col {
        border-right: none;
        border-bottom: 2px solid var(--v2-white);
        padding: 24px 20px;
    }
    .bntv2-footer-col--wide {
        grid-column: auto;
    }
    .bntv2-footer-bar {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
        padding: 16px 20px;
    }
    .bntv2-footer-copy,
    .bntv2-footer-sys {
        font-size: 9px;
    }
}
/* ─── END BRUTALIST FOOTER ────────────────────────────────────────────── */

/* ═══════════════════════════════════════════════════════════════════════
   SITE-WIDE BRUTALIST OVERLAY — Typography, colors, buttons
   Applies on HOMEPAGE + SHOP + CATEGORY + PRODUCT (any bnt-v2-active page).
   Designed to layer on top of Flatsome without breaking UX Builder layouts.
   - DOES override: fonts, headings, body text, button skin, link hover, price color
   - DOES NOT override: grid structure, row/col widths, image sizes, sliders
   ═══════════════════════════════════════════════════════════════════════ */

/* Global CSS variables on body so any descendant can use them */
body.bnt-v2-active {
    --v2g-orange:       #f6821f;
    --v2g-orange-dk:    #c96800;
    --v2g-ink:          #1a1c1c;
    --v2g-off-white:    #f4f4f5;
    --v2g-font-head:    'Bebas Neue', 'Oswald', Impact, sans-serif;
    --v2g-font-mono:    'Roboto Mono', 'Courier New', monospace;
}

/* ── Typography: headings → Bebas Neue, body → Roboto Mono ────────────── */
body.bnt-v2-home-page,
body.bnt-v2-shop-page {
    font-family: var(--v2g-font-mono) !important;
    letter-spacing: 0.01em;
}

body.bnt-v2-home-page h1,
body.bnt-v2-home-page h2,
body.bnt-v2-home-page h3,
body.bnt-v2-home-page h4,
body.bnt-v2-home-page h5,
body.bnt-v2-home-page h6,
body.bnt-v2-shop-page h1,
body.bnt-v2-shop-page h2,
body.bnt-v2-shop-page h3,
body.bnt-v2-shop-page h4,
body.bnt-v2-shop-page h5,
body.bnt-v2-shop-page h6,
body.bnt-v2-home-page .heading-font,
body.bnt-v2-shop-page .heading-font,
body.bnt-v2-home-page .section-title,
body.bnt-v2-shop-page .section-title,
body.bnt-v2-home-page .section-title span,
body.bnt-v2-shop-page .section-title span {
    font-family: var(--v2g-font-head) !important;
    font-weight: 400 !important;
    letter-spacing: 0.02em !important;
    text-transform: uppercase !important;
    line-height: 1.05 !important;
}

/* Body copy, paragraphs, spans, list text */
body.bnt-v2-home-page p,
body.bnt-v2-home-page li,
body.bnt-v2-home-page td,
body.bnt-v2-home-page label,
body.bnt-v2-home-page .text,
body.bnt-v2-shop-page p,
body.bnt-v2-shop-page li,
body.bnt-v2-shop-page td,
body.bnt-v2-shop-page label,
body.bnt-v2-shop-page .text {
    font-family: var(--v2g-font-mono) !important;
}

/* ── Links: orange hover accent site-wide (but don't touch nav links — already styled) ── */
body.bnt-v2-home-page a:not(.button):not(.nav-top-link):not(.nav-dropdown a):not(#wide-nav a):not(.bntv2-nav-logo),
body.bnt-v2-shop-page a:not(.button):not(.nav-top-link):not(.nav-dropdown a):not(#wide-nav a):not(.bntv2-nav-logo) {
    transition: color 0.15s ease !important;
}

/* Orange hover for generic text links only. Exclude ALL custom v2 components
   (bntv2-* classes), .bnt-cat-link promo bar, and .bntv2-phome-card links —
   those have their own hover states that should not be overridden to orange. */
body.bnt-v2-home-page a:not(.button):not(#wide-nav a):not([class*="bntv2-"]):not(.bnt-cat-link):hover,
body.bnt-v2-shop-page a:not(.button):not(#wide-nav a):not([class*="bntv2-"]):not(.bnt-cat-link):hover {
    color: var(--v2g-orange) !important;
}

/* ── Button overrides: brutalist skin on all Flatsome buttons ──────────── */
body.bnt-v2-home-page .button:not(.bntv2-rc-atc):not(.bntv2-atc-btn):not(.bntv2-nav-icon-btn),
body.bnt-v2-shop-page .button:not(.bntv2-rc-atc):not(.bntv2-atc-btn):not(.bntv2-nav-icon-btn) {
    border-radius: 0 !important;
    font-family: var(--v2g-font-mono) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    border: 2px solid currentColor !important;
    box-shadow: none !important;
    text-shadow: none !important;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease !important;
}

body.bnt-v2-home-page .button.primary,
body.bnt-v2-shop-page .button.primary,
body.bnt-v2-home-page button.primary,
body.bnt-v2-shop-page button.primary,
body.bnt-v2-home-page input[type="submit"].primary,
body.bnt-v2-shop-page input[type="submit"].primary {
    background: var(--v2g-orange) !important;
    border-color: var(--v2g-orange) !important;
    color: #fff !important;
}

body.bnt-v2-home-page .button.primary:hover,
body.bnt-v2-shop-page .button.primary:hover,
body.bnt-v2-home-page button.primary:hover,
body.bnt-v2-shop-page button.primary:hover {
    background: var(--v2g-ink) !important;
    border-color: var(--v2g-ink) !important;
    color: #fff !important;
}

/* Non-primary (outlined/secondary) buttons — explicit hover contrast
   Fixes the "VIEW ALL" bug where both background AND text turned orange → invisible */
body.bnt-v2-home-page .button.secondary:hover,
body.bnt-v2-shop-page .button.secondary:hover,
body.bnt-v2-home-page .button.is-outline:hover,
body.bnt-v2-shop-page .button.is-outline:hover,
body.bnt-v2-home-page .button:not(.primary):not(.bntv2-rc-atc):not(.bntv2-atc-btn):not(.bntv2-nav-icon-btn):not(.add_to_cart_button):not(.bnt-load-more-btn):not(.bnt-quick-view):not(.bnt-oos-btn):hover,
body.bnt-v2-shop-page .button:not(.primary):not(.bntv2-rc-atc):not(.bntv2-atc-btn):not(.bntv2-nav-icon-btn):not(.add_to_cart_button):not(.bnt-load-more-btn):not(.bnt-quick-view):not(.bnt-oos-btn):hover {
    background: var(--v2g-ink) !important;
    border-color: var(--v2g-ink) !important;
    color: #fff !important;
}

/* Default (resting) state for outlined buttons — guarantee contrast before hover too */
body.bnt-v2-home-page .button:not(.primary):not(.bntv2-rc-atc):not(.bntv2-atc-btn):not(.bntv2-nav-icon-btn):not(.add_to_cart_button):not(.bnt-load-more-btn):not(.bnt-quick-view):not(.bnt-oos-btn),
body.bnt-v2-shop-page .button:not(.primary):not(.bntv2-rc-atc):not(.bntv2-atc-btn):not(.bntv2-nav-icon-btn):not(.add_to_cart_button):not(.bnt-load-more-btn):not(.bnt-quick-view):not(.bnt-oos-btn) {
    background: transparent !important;
    border-color: var(--v2g-ink) !important;
    color: var(--v2g-ink) !important;
}

/* ── Section-heading "View All" link (e.g. .tp-slr > p > a on homepage) ────
   This is NOT a .button — it's a plain <a>, but it's styled by Flatsome/theme
   to look like a button with an orange hover bg. Override with brutalist skin. */
body.bnt-v2-active .tp-slr a,
body.bnt-v2-active .tp-slr p a,
body.bnt-v2-active .section-title-container a.view-all,
body.bnt-v2-active h3 + p > a[href*="self-defense"],
body.bnt-v2-active h4 + p > a[href*="category"] {
    display: inline-block !important;
    padding: 10px 22px !important;
    background: transparent !important;
    color: var(--v2g-ink) !important;
    font-family: var(--v2g-font-mono) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    border: 2px solid var(--v2g-ink) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease !important;
}

body.bnt-v2-active .tp-slr a:hover,
body.bnt-v2-active .tp-slr a:focus,
body.bnt-v2-active .tp-slr p a:hover,
body.bnt-v2-active .tp-slr p a:focus,
body.bnt-v2-active .section-title-container a.view-all:hover {
    background: var(--v2g-ink) !important;
    color: #fff !important;
    border-color: var(--v2g-ink) !important;
    text-decoration: none !important;
}

/* ── WooCommerce shop loop product cards (applies on shop + category + homepage) ── */
/* Force cards to stretch full height and use flex so button pins to bottom */
body.bnt-v2-shop-page .col.product,
body.bnt-v2-home-page .col.product,
body.bnt-v2-shop-page .products .col,
body.bnt-v2-home-page .products .col {
    display: flex !important;
    align-items: stretch !important;
}

body.bnt-v2-shop-page .col.product > .col-inner,
body.bnt-v2-home-page .col.product > .col-inner,
body.bnt-v2-shop-page .products .col > .col-inner,
body.bnt-v2-home-page .products .col > .col-inner {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    width: 100% !important;
}

body.bnt-v2-shop-page .product-small.box,
body.bnt-v2-home-page .product-small.box,
body.bnt-v2-shop-page .product-small .box,
body.bnt-v2-home-page .product-small .box {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    height: 100% !important;
}

body.bnt-v2-shop-page .product-small .box-text,
body.bnt-v2-home-page .product-small .box-text {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
}

/* Pin Add to Cart button to bottom of card regardless of title/price height */
body.bnt-v2-shop-page .product-small .box-text .add-to-cart-button,
body.bnt-v2-home-page .product-small .box-text .add-to-cart-button,
body.bnt-v2-shop-page .product-small .box-text .button.add_to_cart_button,
body.bnt-v2-home-page .product-small .box-text .button.add_to_cart_button,
body.bnt-v2-shop-page .product-small .box-text > a.button,
body.bnt-v2-home-page .product-small .box-text > a.button {
    margin-top: auto !important;
    align-self: stretch !important;
}

/* Also normalize title min-height so cards with 1-line titles don't collapse */
body.bnt-v2-shop-page .product-small .name.product-title,
body.bnt-v2-home-page .product-small .name.product-title,
body.bnt-v2-shop-page .woocommerce-loop-product__title,
body.bnt-v2-home-page .woocommerce-loop-product__title {
    min-height: 2.7em !important;     /* reserves ~2 lines so all titles take same space */
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    margin-bottom: 4px !important;
}

body.bnt-v2-shop-page .product-small,
body.bnt-v2-shop-page .col.product,
body.bnt-v2-shop-page .product-small .box,
body.bnt-v2-shop-page .box.box-vertical {
    border-radius: 0 !important;
}

body.bnt-v2-shop-page .product-small .name.product-title,
body.bnt-v2-shop-page .box-text .name,
body.bnt-v2-shop-page .woocommerce-loop-product__title {
    font-family: var(--v2g-font-mono) !important;
    text-transform: uppercase !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0.04em !important;
    line-height: 1.35 !important;
}

body.bnt-v2-shop-page .price,
body.bnt-v2-shop-page .amount,
body.bnt-v2-shop-page .woocommerce-Price-amount {
    font-family: var(--v2g-font-head) !important;
    color: var(--v2g-orange) !important;
    font-weight: 400 !important;
    letter-spacing: 0.02em !important;
}

body.bnt-v2-shop-page .price del .amount {
    color: #9ca3af !important;
    opacity: 0.7;
}

/* Shop loop "Add to cart" button — brutalist skin */
body.bnt-v2-shop-page .product-small .button.add_to_cart_button,
body.bnt-v2-shop-page .product-small a.button,
body.bnt-v2-shop-page li.product .button.add_to_cart_button {
    background: var(--v2g-ink) !important;
    color: #fff !important;
    border: 2px solid var(--v2g-ink) !important;
    border-radius: 0 !important;
    font-family: var(--v2g-font-mono) !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    padding: 9px 12px !important;
    box-shadow: none !important;
    text-shadow: none !important;
}

body.bnt-v2-shop-page .product-small .button.add_to_cart_button:hover,
body.bnt-v2-shop-page .product-small a.button:hover,
body.bnt-v2-home-page .product-small .button.add_to_cart_button:hover,
body.bnt-v2-home-page .product-small a.button:hover {
    background: var(--v2g-orange) !important;
    border-color: var(--v2g-orange) !important;
    color: #fff !important;
}

/* ── Spinning knife loader for SHOP LOOP add-to-cart buttons ──────────── */
/* Flatsome toggles .loading class on these during WC AJAX add-to-cart */
body.bnt-v2-shop-page .product-small .button.add_to_cart_button.loading,
body.bnt-v2-home-page .product-small .button.add_to_cart_button.loading,
body.bnt-v2-shop-page .product-small a.button.loading,
body.bnt-v2-home-page .product-small a.button.loading {
    position: relative !important;
    color: transparent !important;
    text-indent: -9999px !important;
    pointer-events: none !important;
    opacity: 1 !important;
    background: var(--v2g-ink) !important;
    border-color: var(--v2g-ink) !important;
}

body.bnt-v2-shop-page .product-small .button.add_to_cart_button.loading::before,
body.bnt-v2-home-page .product-small .button.add_to_cart_button.loading::before,
body.bnt-v2-shop-page .product-small a.button.loading::before,
body.bnt-v2-home-page .product-small a.button.loading::before {
    content: none !important;
    display: none !important;
    border: none !important;
    animation: none !important;
}

body.bnt-v2-shop-page .product-small .button.add_to_cart_button.loading::after,
body.bnt-v2-home-page .product-small .button.add_to_cart_button.loading::after,
body.bnt-v2-shop-page .product-small a.button.loading::after,
body.bnt-v2-home-page .product-small a.button.loading::after {
    content: '' !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 26px !important;
    height: 26px !important;
    margin: -13px 0 0 -13px !important;
    padding: 0 !important;
    border: none !important;
    border-radius: 0 !important;
    text-indent: 0 !important;
    background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='%23f6821f'%3E%3Crect x='6' y='28' width='20' height='8' rx='0.5'/%3E%3Crect x='10' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='14' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='18' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='22' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='26' y='25' width='2.4' height='14'/%3E%3Cpath d='M 28.4 29 L 52 26 Q 58 28 61 32 Q 58 36 52 38 L 28.4 35 Z'/%3E%3Cpath d='M 52 26 L 61 32 L 55 28 Z' fill='%23ffb061'/%3E%3C/g%3E%3C/svg%3E") no-repeat center / contain !important;
    animation: bntv2-knife-spin 0.75s linear infinite !important;
    transform-origin: center center !important;
    opacity: 1 !important;
    box-shadow: none !important;
}

/* After WC adds product, Flatsome adds .added class — show orange tick briefly */
body.bnt-v2-shop-page .product-small .button.added,
body.bnt-v2-home-page .product-small .button.added {
    background: var(--v2g-orange) !important;
    border-color: var(--v2g-orange) !important;
    color: #fff !important;
    text-indent: 0 !important;
}

body.bnt-v2-shop-page .product-small .button.added::after,
body.bnt-v2-home-page .product-small .button.added::after {
    content: '' !important;
    background: none !important;
    animation: none !important;
    position: static !important;
    margin: 0 !important;
    width: auto !important;
    height: auto !important;
}

/* Hide the "View cart" link WC appends after add */
body.bnt-v2-shop-page .product-small .added_to_cart,
body.bnt-v2-home-page .product-small .added_to_cart {
    display: none !important;
}

/* Shop page section title (e.g. "Shop") + breadcrumbs */
body.bnt-v2-shop-page .shop-page-title,
body.bnt-v2-shop-page .page-title,
body.bnt-v2-shop-page .archive-page-header h1,
body.bnt-v2-shop-page .category-page-title {
    font-family: var(--v2g-font-head) !important;
    font-size: clamp(2.5rem, 5vw, 4rem) !important;
    font-weight: 400 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.02em !important;
    color: var(--v2g-ink) !important;
}

body.bnt-v2-shop-page .breadcrumbs,
body.bnt-v2-shop-page .woocommerce-breadcrumb {
    font-family: var(--v2g-font-mono) !important;
    font-size: 10px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
}

/* ── Homepage hero sections — convert rounded/curved elements to brutalist ── */
body.bnt-v2-home-page .box,
body.bnt-v2-home-page .box-image,
body.bnt-v2-home-page .box img,
body.bnt-v2-home-page .banner,
body.bnt-v2-home-page .banner .slide,
body.bnt-v2-home-page .ux-banner-grid .banner {
    border-radius: 0 !important;
}

body.bnt-v2-home-page .section-title-container .section-title-main,
body.bnt-v2-home-page .section-title b {
    background-color: var(--v2g-ink) !important;
}

/* Homepage product sliders (if any) — apply product card tweaks */
body.bnt-v2-home-page .product-small .name.product-title,
body.bnt-v2-home-page .box-text .name {
    font-family: var(--v2g-font-mono) !important;
    text-transform: uppercase !important;
    font-size: 12px !important;
    letter-spacing: 0.04em !important;
}

body.bnt-v2-home-page .product-small .price,
body.bnt-v2-home-page .price .amount {
    font-family: var(--v2g-font-head) !important;
    color: var(--v2g-orange) !important;
}

/* ── Form inputs (newsletter, search, checkout) — brutalist rectangles ── */
body.bnt-v2-home-page input[type="text"],
body.bnt-v2-home-page input[type="email"],
body.bnt-v2-home-page input[type="search"],
body.bnt-v2-home-page input[type="tel"],
body.bnt-v2-home-page textarea,
body.bnt-v2-shop-page input[type="text"],
body.bnt-v2-shop-page input[type="email"],
body.bnt-v2-shop-page input[type="search"],
body.bnt-v2-shop-page input[type="tel"],
body.bnt-v2-shop-page textarea {
    border-radius: 0 !important;
    border: 2px solid var(--v2g-ink) !important;
    font-family: var(--v2g-font-mono) !important;
    padding: 12px 14px !important;
    box-shadow: none !important;
}

body.bnt-v2-home-page input:focus,
body.bnt-v2-shop-page input:focus,
body.bnt-v2-home-page textarea:focus,
body.bnt-v2-shop-page textarea:focus {
    border-color: var(--v2g-orange) !important;
    outline: none !important;
}

/* ── Sidebar widgets (shop filters) keep functional, restyle visually ── */
body.bnt-v2-shop-page .widget {
    border-radius: 0 !important;
}

body.bnt-v2-shop-page .widget-title,
body.bnt-v2-shop-page .widget h3,
body.bnt-v2-shop-page .widgettitle {
    font-family: var(--v2g-font-head) !important;
    font-size: 1.3rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    border-bottom: 2px solid var(--v2g-ink) !important;
    padding-bottom: 8px !important;
    margin-bottom: 12px !important;
}

body.bnt-v2-shop-page .widget a,
body.bnt-v2-shop-page .widget li a {
    font-family: var(--v2g-font-mono) !important;
    font-size: 11px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
}

/* Price filter slider — keep functionality, restyle thumb + track */
body.bnt-v2-shop-page .price_slider_wrapper .price_slider {
    background: var(--v2g-off-white) !important;
    border-radius: 0 !important;
}

body.bnt-v2-shop-page .price_slider .ui-slider-range {
    background: var(--v2g-orange) !important;
    border-radius: 0 !important;
}

body.bnt-v2-shop-page .price_slider .ui-slider-handle {
    background: var(--v2g-ink) !important;
    border-radius: 0 !important;
    border: 2px solid var(--v2g-ink) !important;
}

/* Pagination — brutalist squares (overrides Flatsome's rounded pill list) */
body.bnt-v2-active .woocommerce-pagination,
body.bnt-v2-active .nav-pagination {
    margin: 24px 0 32px !important;
    text-align: center !important;
}

body.bnt-v2-active ul.page-numbers,
body.bnt-v2-active .page-numbers.nav-pagination {
    display: inline-flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
    border: none !important;
}

body.bnt-v2-active ul.page-numbers li,
body.bnt-v2-active .page-numbers li {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

body.bnt-v2-active ul.page-numbers li a,
body.bnt-v2-active ul.page-numbers li span,
body.bnt-v2-active .page-numbers a,
body.bnt-v2-active .page-numbers > span,
body.bnt-v2-active a.page-number,
body.bnt-v2-active span.page-number {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    margin: 0 -1px 0 0 !important;              /* overlap borders for seamless look */
    padding: 0 !important;
    font-family: var(--v2g-font-mono) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    border-radius: 0 !important;
    border: 2px solid var(--v2g-ink) !important;
    background: #fff !important;
    color: var(--v2g-ink) !important;
    box-shadow: none !important;
    transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease !important;
}

body.bnt-v2-active ul.page-numbers li a:hover,
body.bnt-v2-active .page-numbers a:hover {
    background: var(--v2g-orange) !important;
    border-color: var(--v2g-orange) !important;
    color: #fff !important;
    z-index: 2 !important;
    position: relative !important;
}

body.bnt-v2-active ul.page-numbers li .current,
body.bnt-v2-active ul.page-numbers li span.current,
body.bnt-v2-active .page-numbers .current,
body.bnt-v2-active span.page-numbers.current {
    background: var(--v2g-orange) !important;
    border-color: var(--v2g-orange) !important;
    color: #fff !important;
    z-index: 2 !important;
    position: relative !important;
}

body.bnt-v2-active ul.page-numbers li .dots,
body.bnt-v2-active .page-numbers .dots {
    background: transparent !important;
    border-color: transparent !important;
    font-weight: 400 !important;
}

body.bnt-v2-active ul.page-numbers li .next,
body.bnt-v2-active ul.page-numbers li .prev,
body.bnt-v2-active .page-numbers .next,
body.bnt-v2-active .page-numbers .prev {
    font-size: 16px !important;
}

/* Hide WooCommerce's default sort + result count bar entirely on v2 pages.
   Every v2 page already has its own sort dropdown near the search bar
   (.bnt-sort-select or .bnt-cat-sort) — the WC default is a duplicate.
   Also hides the "SHOWING X OF Y RESULTS" text that sits in the dark bar above trust badges. */
body.bnt-v2-active .woocommerce-ordering,
body.bnt-v2-active form.woocommerce-ordering,
body.bnt-v2-active .woocommerce-result-count,
body.bnt-v2-active p.woocommerce-result-count,
body.bnt-v2-active .woocommerce-notices-wrapper + .woocommerce-result-count,
body.bnt-v2-active .shop-container > .woocommerce-result-count,
body.bnt-v2-active .before-shop-container .woocommerce-result-count,
body.bnt-v2-active .before-shop-container .woocommerce-ordering {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

/* Also hide any wrapper/row that ONLY contained the result count + ordering
   (the dark bar in the user's screenshot). Targets common Flatsome wrappers. */
body.bnt-v2-active .before-shop-container:empty,
body.bnt-v2-active .woocommerce-notices-wrapper ~ .shop-container > .row-ordering {
    display: none !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   CATEGORY LANDING PAGES — Fixes for /pellet-bb-guns/, /knives/, etc.
   Custom WP pages using .bnt-cat-* / .bnt-filter-* / .bnt-quick-view / .bnt-trust
   ═══════════════════════════════════════════════════════════════════════ */

/* ── 1. Search box — FULL WIDTH layout matching knives page ─────────────
   Both cat (.bnt-cat-*) and archive (.bnt-archive-*) templates get the same
   visual treatment: search bar spans full container width on its own row,
   sort dropdown wraps to below if present. */

/* Outer wrap: flex row with wrap enabled so search occupies full row,
   and the sort dropdown + anything else falls to the next line.
   Constrained to 1240px max-width and centered to align with trust badges + filter pills. */
body.bnt-v2-active .bnt-cat-search-wrap,
body.bnt-v2-active .bnt-archive-search-wrap {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: stretch !important;
    gap: 12px !important;
    width: 100% !important;
    max-width: 1240px !important;
    margin: 0 auto 20px !important;    /* horizontally centered */
    background: transparent !important;
    border: none !important;
    padding: 0 20px !important;        /* matches typical container side padding */
    box-sizing: border-box !important;
}

/* The search form takes the full first row — forces sort dropdown to wrap below.
   CRITICAL: flex-direction: column so children (search input, sort row, filter row)
   stack vertically. Without this, they end up in a squished horizontal row and
   the filter pills get clipped. */
body.bnt-v2-active .bnt-cat-search-form,
body.bnt-v2-active .bnt-cat-search-inner,
body.bnt-v2-active .bnt-archive-search-inner {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 100% !important;
    width: 100% !important;
    gap: 12px !important;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

/* Archive-template filter pill row — make sure pills render at full height
   and are horizontally scrollable like the cat template's .bnt-filter-wrap */
body.bnt-v2-active .bnt-filter-row {
    display: flex !important;
    flex-wrap: nowrap !important;
    flex-direction: row !important;
    align-items: center !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    min-height: 52px !important;
    gap: 8px !important;
    padding: 2px 0 8px 0 !important;
    margin: 0 !important;
    scrollbar-width: thin !important;
    scrollbar-color: var(--v2g-orange) var(--v2g-off-white) !important;
    cursor: grab !important;
    user-select: none !important;
    mask-image: linear-gradient(to right, #000 calc(100% - 40px), transparent) !important;
    -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 40px), transparent) !important;
}
body.bnt-v2-active .bnt-filter-row:active {
    cursor: grabbing !important;
}
body.bnt-v2-active .bnt-filter-row::-webkit-scrollbar { height: 4px !important; }
body.bnt-v2-active .bnt-filter-row::-webkit-scrollbar-track { background: var(--v2g-off-white) !important; }
body.bnt-v2-active .bnt-filter-row::-webkit-scrollbar-thumb { background: var(--v2g-orange) !important; border-radius: 0 !important; }

/* Input wrapper takes full width of its parent row */
body.bnt-v2-active .bnt-cat-search-input-wrap,
body.bnt-v2-active .bnt-search-input-wrap {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    border: 2px solid var(--v2g-ink) !important;
    background: #fff !important;
    border-radius: 0 !important;
    box-sizing: border-box !important;
}

/* Sort dropdown wrap — sits on its own row BELOW the full-width search */
body.bnt-v2-active .bnt-cat-sort-wrap {
    display: flex !important;
    flex: 0 0 auto !important;
    width: auto !important;
    margin: 0 !important;
}

/* Archive-template sort row (injected by JS from .bnt-filter-row) — sits between
   the full-width search bar and the horizontally-scrolling filter pills */
body.bnt-v2-active .bntv2-archive-sort-row {
    display: flex !important;
    align-items: stretch !important;
    gap: 12px !important;
    width: 100% !important;
    flex: 1 1 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    justify-content: flex-start !important;
}

body.bnt-v2-active .bntv2-archive-sort-row .bnt-sort-select {
    flex: 0 0 auto !important;
}

body.bnt-v2-active .bntv2-archive-sort-row .bnt-filter-toggle {
    flex: 0 0 auto !important;
}

body.bnt-v2-active .bnt-cat-search-input-wrap input[type="text"],
body.bnt-v2-active .bnt-cat-search-input-wrap input[type="search"],
body.bnt-v2-active .bnt-search-input-wrap input[type="text"],
body.bnt-v2-active .bnt-search-input-wrap input[type="search"],
body.bnt-v2-active .bnt-archive-search-wrap input[type="search"] {
    height: 52px !important;
    line-height: 52px !important;
    padding: 0 64px 0 20px !important;   /* leave room for the button on the right */
    box-sizing: border-box !important;
    margin: 0 !important;
    border: none !important;             /* border is on the wrap, not the input */
    width: 100% !important;
    background: transparent !important;
    font-family: var(--v2g-font-mono) !important;
    font-size: 13px !important;
}

body.bnt-v2-active .bnt-cat-search-input-wrap input:focus,
body.bnt-v2-active .bnt-search-input-wrap input:focus {
    outline: none !important;
    box-shadow: none !important;
}

/* Search submit button (magnifying glass) — works for cat/archive templates */
body.bnt-v2-active .bnt-cat-search-btn,
body.bnt-v2-active .bnt-search-icon,
body.bnt-v2-active .bnt-search-input-wrap button[type="submit"],
body.bnt-v2-active .bnt-archive-search-wrap button[type="submit"] {
    position: absolute !important;
    top: 50% !important;
    right: 6px !important;
    transform: translateY(-50%) !important;
    height: 40px !important;
    width: 44px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 0 !important;
    background: var(--v2g-orange) !important;
    border: 2px solid var(--v2g-orange) !important;
    color: #fff !important;
    cursor: pointer !important;
    box-shadow: none !important;
}

body.bnt-v2-active .bnt-cat-search-btn:hover,
body.bnt-v2-active .bnt-search-icon:hover,
body.bnt-v2-active .bnt-search-input-wrap button[type="submit"]:hover {
    background: var(--v2g-ink) !important;
    border-color: var(--v2g-ink) !important;
}

/* Hide the default magnifying glass icon inside the search submit button.
   Uses universal child selector to kill ANY descendant (svg, i, img, span,
   nested divs, text characters) so only our ::before crosshair remains visible. */
body.bnt-v2-active .bnt-cat-search-btn > *,
body.bnt-v2-active .bnt-cat-search-btn svg,
body.bnt-v2-active .bnt-cat-search-btn i,
body.bnt-v2-active .bnt-cat-search-btn img,
body.bnt-v2-active .bnt-cat-search-btn span,
body.bnt-v2-active .bnt-search-icon > *,
body.bnt-v2-active .bnt-search-icon svg,
body.bnt-v2-active .bnt-search-icon i,
body.bnt-v2-active .bnt-search-icon img,
body.bnt-v2-active .bnt-search-icon span,
body.bnt-v2-active .bnt-search-input-wrap button[type="submit"] > *,
body.bnt-v2-active .bnt-search-input-wrap button[type="submit"] svg,
body.bnt-v2-active .bnt-search-input-wrap button[type="submit"] i,
body.bnt-v2-active .bnt-search-input-wrap button[type="submit"] img,
body.bnt-v2-active .bnt-search-input-wrap button[type="submit"] span,
body.bnt-v2-active .bnt-archive-search-wrap button[type="submit"] > *,
body.bnt-v2-active .bnt-archive-search-wrap button[type="submit"] svg,
body.bnt-v2-active .bnt-archive-search-wrap button[type="submit"] i,
body.bnt-v2-active .bnt-archive-search-wrap button[type="submit"] img,
body.bnt-v2-active .bnt-archive-search-wrap button[type="submit"] span {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    opacity: 0 !important;
    overflow: hidden !important;
}

/* Also wipe any text content from the button so stray character icons disappear */
body.bnt-v2-active .bnt-cat-search-btn,
body.bnt-v2-active .bnt-search-icon,
body.bnt-v2-active .bnt-search-input-wrap button[type="submit"],
body.bnt-v2-active .bnt-archive-search-wrap button[type="submit"] {
    font-size: 0 !important;
    color: transparent !important;
}

/* And wipe any background-image on the button itself (some templates use CSS bg for the icon) */
body.bnt-v2-active .bnt-cat-search-btn,
body.bnt-v2-active .bnt-search-icon,
body.bnt-v2-active .bnt-search-input-wrap button[type="submit"],
body.bnt-v2-active .bnt-archive-search-wrap button[type="submit"] {
    background-image: none !important;
    background-color: var(--v2g-orange) !important;
}

/* Inject tactical rifle-scope crosshair/reticle via ::before pseudo-element
   — on-brand for BNT (knives, firearms, tactical gear, paintball, airsoft).
   Design: circle with 4 crosshair lines extending past it + center dot. */
body.bnt-v2-active .bnt-cat-search-btn::before,
body.bnt-v2-active .bnt-search-icon::before,
body.bnt-v2-active .bnt-search-input-wrap button[type="submit"]::before,
body.bnt-v2-active .bnt-archive-search-wrap button[type="submit"]::before {
    content: '' !important;
    display: block !important;
    width: 22px !important;
    height: 22px !important;
    background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='square' stroke-linejoin='miter'%3E%3Ccircle cx='12' cy='12' r='7.5'/%3E%3Cline x1='12' y1='1' x2='12' y2='5'/%3E%3Cline x1='12' y1='19' x2='12' y2='23'/%3E%3Cline x1='1' y1='12' x2='5' y2='12'/%3E%3Cline x1='19' y1='12' x2='23' y2='12'/%3E%3Ccircle cx='12' cy='12' r='1' fill='%23ffffff' stroke='none'/%3E%3C/svg%3E") no-repeat center / contain !important;
    margin: 0 !important;
    transition: transform 0.15s ease !important;
}

/* Subtle zoom on hover — feels like "zeroing in" on a target */
body.bnt-v2-active .bnt-cat-search-btn:hover::before,
body.bnt-v2-active .bnt-search-icon:hover::before,
body.bnt-v2-active .bnt-search-input-wrap button[type="submit"]:hover::before,
body.bnt-v2-active .bnt-archive-search-wrap button[type="submit"]:hover::before {
    transform: scale(1.15) !important;
}

/* Clear (×) button inside the search field — scoot left of submit */
body.bnt-v2-active .bnt-search-clear {
    position: absolute !important;
    top: 50% !important;
    right: 56px !important;
    transform: translateY(-50%) !important;
    background: transparent !important;
    border: none !important;
    cursor: pointer !important;
    color: var(--v2g-ink) !important;
    font-size: 18px !important;
}

/* Sort dropdown — matches pellet page style, sits next to search */
body.bnt-v2-active .bnt-sort-select,
body.bnt-v2-active .bnt-cat-sort,
body.bnt-v2-active .bnt-cat-sort-wrap select {
    height: 52px !important;
    min-width: 140px !important;
    padding: 0 36px 0 16px !important;
    border: 2px solid var(--v2g-ink) !important;
    border-radius: 0 !important;
    background: #fff !important;
    font-family: var(--v2g-font-mono) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    color: var(--v2g-ink) !important;
    cursor: pointer !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a1c1c' stroke-width='2.5' stroke-linecap='square'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 12px center !important;
    background-size: 14px 14px !important;
    flex-shrink: 0 !important;
}

/* Filter toggle button (knives page) — hide since the pellet page doesn't have it
   and user wants them visually identical. Filter pills are always-visible instead. */
body.bnt-v2-active .bnt-filter-toggle {
    height: 52px !important;
    padding: 0 18px !important;
    border: 2px solid var(--v2g-ink) !important;
    border-radius: 0 !important;
    background: #fff !important;
    color: var(--v2g-ink) !important;
    font-family: var(--v2g-font-mono) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
    transition: background 0.15s ease, color 0.15s ease !important;
}

body.bnt-v2-active .bnt-filter-toggle:hover,
body.bnt-v2-active .bnt-filter-toggle.active {
    background: var(--v2g-ink) !important;
    color: #fff !important;
}

/* Filter panel (knives page) — brutalist flat box, not rounded */
body.bnt-v2-active .bnt-filter-panel,
body.bnt-v2-active .bnt-filter-row {
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 0 16px !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* ── 2. Category filter chips — horizontal scroll + no cut-off ────────── */
body.bnt-v2-active .bnt-filter-wrap,
body.bnt-v2-active .bnt-filter-bar {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-behavior: smooth !important;
    scrollbar-width: thin !important;
    scrollbar-color: var(--v2g-orange) var(--v2g-off-white) !important;
    padding-bottom: 8px !important;       /* room for scrollbar so last chip isn't hidden */
    cursor: grab !important;
    user-select: none !important;
    gap: 8px !important;
    mask-image: linear-gradient(to right, #000 calc(100% - 40px), transparent) !important;
    -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 40px), transparent) !important;
}

body.bnt-v2-active .bnt-filter-wrap:active,
body.bnt-v2-active .bnt-filter-bar:active {
    cursor: grabbing !important;
}

/* Custom scrollbar for webkit browsers */
body.bnt-v2-active .bnt-filter-wrap::-webkit-scrollbar,
body.bnt-v2-active .bnt-filter-bar::-webkit-scrollbar {
    height: 4px !important;
}
body.bnt-v2-active .bnt-filter-wrap::-webkit-scrollbar-track,
body.bnt-v2-active .bnt-filter-bar::-webkit-scrollbar-track {
    background: var(--v2g-off-white) !important;
}
body.bnt-v2-active .bnt-filter-wrap::-webkit-scrollbar-thumb,
body.bnt-v2-active .bnt-filter-bar::-webkit-scrollbar-thumb {
    background: var(--v2g-orange) !important;
    border-radius: 0 !important;
}

body.bnt-v2-active .bnt-filter-pill {
    flex-shrink: 0 !important;           /* prevents "Pellet" from being cut off */
    white-space: nowrap !important;
    border-radius: 0 !important;
    font-family: var(--v2g-font-mono) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    border: 2px solid var(--v2g-ink) !important;
    padding: 10px 16px !important;
    background: var(--v2g-off-white) !important;
    color: var(--v2g-ink) !important;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease !important;
}

body.bnt-v2-active .bnt-filter-pill:hover {
    background: var(--v2g-ink) !important;
    color: #fff !important;
}

body.bnt-v2-active .bnt-filter-pill.active,
body.bnt-v2-active .bnt-filter-pill[aria-selected="true"],
body.bnt-v2-active .bnt-filter-pill.is-active {
    background: var(--v2g-orange) !important;
    border-color: var(--v2g-orange) !important;
    color: #fff !important;
}

body.bnt-v2-active .bnt-pill-count {
    border-radius: 0 !important;
    background: rgba(0,0,0,0.15) !important;
    font-family: var(--v2g-font-mono) !important;
    font-size: 10px !important;
    margin-left: 8px !important;
    padding: 2px 6px !important;
}

/* ── Out-of-stock button: matches ADD TO CART size exactly, same row as eye ── */
body.bnt-v2-active .bnt-card-btn--oos {
    flex: 1 1 auto !important;
    display: flex !important;
}

/* Maximum specificity to beat Flatsome .button base + my own outlined rule */
body.bnt-v2-active .bnt-card.out-of-stock .bnt-card-actions .bnt-card-btn--oos span.bnt-oos-btn,
body.bnt-v2-active .bnt-card .bnt-card-actions .bnt-card-btn--oos span.button.bnt-oos-btn,
body.bnt-v2-active span.button.bnt-oos-btn,
body.bnt-v2-active .bnt-oos-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 0 12px !important;
    background: #dc2626 !important;                   /* red fill for clear OOS signal */
    background-color: #dc2626 !important;
    background-image: none !important;
    color: #fff !important;
    border: 2px solid #dc2626 !important;
    border-radius: 0 !important;
    font-family: var(--v2g-font-mono) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
}

/* Kill any element that comes AFTER .bnt-card-actions inside an OOS card
   — catches the rogue red "Out of stock" bar rendered by default WC hooks
   or duplicated by do_action('woocommerce_after_shop_loop_item') */
body.bnt-v2-active .bnt-card.out-of-stock .bnt-card-actions ~ *,
body.bnt-v2-active .bnt-card.out-of-stock > .stock,
body.bnt-v2-active .bnt-card.out-of-stock > .out-of-stock,
body.bnt-v2-active .bnt-card.out-of-stock > .outofstock,
body.bnt-v2-active .bnt-card.out-of-stock .outofstock:not(.bnt-oos-btn),
body.bnt-v2-active .bnt-card .out-of-stock-label {
    display: none !important;
}

/* Belt-and-braces: kill the old .bnt-qv-full "wide View" variant on OOS cards
   in case templates still render it before the new template deploys */
body.bnt-v2-active .bnt-quick-view.bnt-qv-full {
    width: 44px !important;
    min-width: 44px !important;
    padding: 0 !important;
    flex: 0 0 auto !important;
    font-size: 0 !important;      /* hide the " View" text */
}
body.bnt-v2-active .bnt-quick-view.bnt-qv-full::after {
    content: none !important;      /* removes the " View" label */
}

/* Hide the floating "Out of stock" label in the image area — no longer needed
   since the text is now in the button below */
body.bnt-v2-active .bnt-card-img .out-of-stock-label {
    display: none !important;
}

/* Out-of-stock card: grayscale the image so it's visually distinct without
   needing the old red overlay */
body.bnt-v2-active .bnt-card.out-of-stock .bnt-card-img img {
    filter: grayscale(100%) opacity(0.55) !important;
}

/* ── 3. Quick View button — brutalist eye icon, aligned with ADD TO CART ── */
/* Parent actions row: force flex stretch so both children share exact height */
body.bnt-v2-active .bnt-card-actions {
    display: flex !important;
    align-items: stretch !important;
    gap: 6px !important;
    width: 100% !important;
}

body.bnt-v2-active .bnt-card-actions .bnt-card-btn {
    flex: 1 1 auto !important;
    display: flex !important;
}

body.bnt-v2-active .bnt-card-actions .bnt-card-btn a,
body.bnt-v2-active .bnt-card-actions .bnt-card-btn button {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 0 14px !important;
}

body.bnt-v2-active .bnt-quick-view {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;                 /* EXACTLY matches ADD TO CART height */
    min-height: 44px !important;
    box-sizing: border-box !important;
    background: var(--v2g-ink) !important;
    border: 2px solid var(--v2g-ink) !important;
    border-radius: 0 !important;
    color: #fff !important;
    padding: 0 !important;
    margin: 0 !important;                    /* gap handled by parent flex gap */
    cursor: pointer !important;
    transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease !important;
    box-shadow: none !important;
    vertical-align: middle !important;
    font-size: 0 !important;                 /* hide any text; only SVG icon */
    line-height: 1 !important;
    flex-shrink: 0 !important;
    align-self: stretch !important;
}

body.bnt-v2-active .bnt-quick-view::before {
    content: '' !important;
    display: block !important;
    width: 22px !important;
    height: 22px !important;
    background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") no-repeat center / contain !important;
    transition: transform 0.2s ease !important;
}

/* Hide the old inline image/emoji inside the Quick View button — only show our SVG */
body.bnt-v2-active .bnt-quick-view img,
body.bnt-v2-active .bnt-quick-view svg,
body.bnt-v2-active .bnt-quick-view i {
    display: none !important;
}

body.bnt-v2-active .bnt-quick-view:hover {
    background: var(--v2g-orange) !important;
    border-color: var(--v2g-orange) !important;
    transform: scale(1.05) !important;
}

body.bnt-v2-active .bnt-quick-view:hover::before {
    transform: scale(1.1) !important;
}

/* ── 4. Spinning knife on category-page Add to Cart buttons ────────────── */
/* These pages use raw .add_to_cart_button.ajax_add_to_cart (not .product-small) */
body.bnt-v2-active .bnt-cat-product .button.add_to_cart_button.loading,
body.bnt-v2-active .bnt-cat-product a.button.loading,
body.bnt-v2-active .section-inner-page-new .button.add_to_cart_button.loading,
body.bnt-v2-active .section-inner-page-new a.button.loading,
body.bnt-v2-active .bnt-filter-wrap ~ * .button.add_to_cart_button.loading,
body.bnt-v2-active .button.add_to_cart_button.ajax_add_to_cart.loading {
    position: relative !important;
    color: transparent !important;
    text-indent: -9999px !important;
    pointer-events: none !important;
    opacity: 1 !important;
    background: var(--v2g-ink) !important;
    border-color: var(--v2g-ink) !important;
}

body.bnt-v2-active .button.add_to_cart_button.ajax_add_to_cart.loading::before,
body.bnt-v2-active .section-inner-page-new .button.loading::before {
    content: none !important;
    display: none !important;
    border: none !important;
    animation: none !important;
}

body.bnt-v2-active .button.add_to_cart_button.ajax_add_to_cart.loading::after,
body.bnt-v2-active .section-inner-page-new .button.add_to_cart_button.loading::after,
body.bnt-v2-active .section-inner-page-new a.button.loading::after {
    content: '' !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 28px !important;
    height: 28px !important;
    margin: -14px 0 0 -14px !important;
    padding: 0 !important;
    border: none !important;
    border-radius: 0 !important;
    text-indent: 0 !important;
    background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='%23f6821f'%3E%3Crect x='6' y='28' width='20' height='8' rx='0.5'/%3E%3Crect x='10' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='14' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='18' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='22' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='26' y='25' width='2.4' height='14'/%3E%3Cpath d='M 28.4 29 L 52 26 Q 58 28 61 32 Q 58 36 52 38 L 28.4 35 Z'/%3E%3Cpath d='M 52 26 L 61 32 L 55 28 Z' fill='%23ffb061'/%3E%3C/g%3E%3C/svg%3E") no-repeat center / contain !important;
    animation: bntv2-knife-spin 0.75s linear infinite !important;
    transform-origin: center center !important;
    opacity: 1 !important;
    box-shadow: none !important;
}

body.bnt-v2-active .button.ajax_add_to_cart.added {
    background: var(--v2g-orange) !important;
    border-color: var(--v2g-orange) !important;
    color: #fff !important;
    text-indent: 0 !important;
}

body.bnt-v2-active .button.ajax_add_to_cart.added::after {
    content: '' !important;
    background: none !important;
    animation: none !important;
    position: static !important;
}

/* Hide the DUPLICATE add-to-cart anchor that some templates render as a direct
   sibling of .bnt-card-actions (outside the .bnt-card-btn wrapper). The real
   button inside .bnt-card-btn handles everything; the duplicate just creates
   a blank box that shows up stuck in "loading" state with hidden text. */
body.bnt-v2-active .bnt-card > a.add_to_cart_button,
body.bnt-v2-active .bnt-card > a.ajax_add_to_cart,
body.bnt-v2-active .bnt-card .bnt-card-actions ~ a.add_to_cart_button,
body.bnt-v2-active .bnt-card .bnt-card-actions ~ a.ajax_add_to_cart,
body.bnt-v2-active .bnt-card .bnt-card-actions + a.button.add_to_cart_button {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

/* Hide WC's "View cart" link appended after add — maximum specificity to beat
   Flatsome's default .added_to_cart { display: inline-block }. Covers every
   card container class the site uses across all page types. */
body.bnt-v2-active .bnt-cat-product .added_to_cart,
body.bnt-v2-active .section-inner-page-new .added_to_cart,
body.bnt-v2-active .bnt-card .added_to_cart,
body.bnt-v2-active .bnt-card-actions .added_to_cart,
body.bnt-v2-active .product-small .added_to_cart,
body.bnt-v2-active .bntv2-rc .added_to_cart,
body.bnt-v2-active li.product .added_to_cart,
body.bnt-v2-active .products .added_to_cart,
body.bnt-v2-active .woocommerce-loop-product__link + .added_to_cart,
body.bnt-v2-active a.added_to_cart,
body.bnt-v2-active .added_to_cart {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
}

/* When a shop-loop button enters the "added" state, keep it at the same size as
   the original ADD TO CART button — no font change, no size jump. */
body.bnt-v2-active .bnt-card .bnt-card-btn a.add_to_cart_button.added,
body.bnt-v2-active .bnt-card-actions .bnt-card-btn a.added,
body.bnt-v2-active .product-small .button.added,
body.bnt-v2-active .bntv2-rc-atc.added {
    background: var(--v2g-orange) !important;
    border-color: var(--v2g-orange) !important;
    color: #fff !important;
    font-family: var(--v2g-font-mono) !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    padding: 9px 12px !important;
    box-shadow: none !important;
}

/* ── Trust badges: intentionally NOT overriding .bnt-trust-item here.
   The class is used on BOTH the category landing page hero AND the homepage
   black top-bar strip, which have conflicting background expectations.
   Original Flatsome styling works for both contexts. */

/* ── Mobile: collapse 2x2 trust-bar grid into a horizontal auto-scrolling
   marquee, matching the brand ticker aesthetic from the homepage hero.
   Saves ~80px of vertical real-estate above the fold. */
@media (max-width: 849px) {
    body.bnt-v2-active .bnt-trust-bar {
        overflow: hidden !important;
        position: relative !important;
        padding: 0 0 0 62px !important; /* reserve left gutter for hamburger */
        z-index: 1 !important;           /* stay below .mob-menu-header-holder (z:10000) */
    }
    /* Solid left-side mask: guarantees scrolling marquee text never passes
       through the hamburger menu zone, regardless of compositor layer order
       from will-change:transform promoting the inner track. */
    body.bnt-v2-active .bnt-trust-bar::before {
        content: '';
        position: absolute;
        left: 0;
        top: 0;
        bottom: 0;
        width: 62px;
        background: inherit;
        pointer-events: none;
        z-index: 1;
    }
    /* Fade the leftmost edge of the marquee so items don't pop in harshly
       next to the solid gutter. */
    body.bnt-v2-active .bnt-trust-bar::after {
        content: '';
        position: absolute;
        left: 62px;
        top: 0;
        bottom: 0;
        width: 24px;
        background: linear-gradient(to right, rgba(34,34,34,1), rgba(34,34,34,0));
        pointer-events: none;
        z-index: 1;
    }
    /* Ensure Flatsome's mobile header (hamburger + cart) sits above the
       trust-bar ticker even when will-change promotes the ticker to its
       own compositor layer. DO NOT override `position` — Flatsome relies on
       absolute positioning here and relative would re-flow the hamburger
       out of its intended location. */
    body.bnt-v2-active .mob-menu-header-holder {
        z-index: 10001 !important;
    }
    body.bnt-v2-active .bnt-trust-bar__inner {
        display: flex !important;
        flex-wrap: nowrap !important;
        gap: 48px !important;
        width: max-content !important;
        max-width: none !important;
        padding: 12px 0 !important;
        animation: bntTrustMarquee 22s linear infinite;
        will-change: transform;
    }
    body.bnt-v2-active .bnt-trust-bar__inner:hover {
        animation-play-state: paused;
    }
    /* Duplicate the items via ::after so the loop is seamless — CSS injects
       a clone set right after the originals. The content uses attribute data. */
    body.bnt-v2-active .bnt-trust-bar__inner::after {
        content: '';
    }
    body.bnt-v2-active .bnt-trust-item {
        flex: 0 0 auto !important;
        width: auto !important;
        padding: 0 !important;
        margin: 0 !important;
        display: inline-flex !important;
        align-items: center !important;
        gap: 10px !important;
        white-space: nowrap !important;
        font-size: 13px !important;
        font-weight: 700 !important;
        letter-spacing: 0.08em !important;
        background: transparent !important;
        border: 0 !important;
    }
    body.bnt-v2-active .bnt-trust-item svg,
    body.bnt-v2-active .bnt-trust-item i {
        flex: 0 0 auto !important;
        width: 18px !important;
        height: 18px !important;
        font-size: 18px !important;
    }
}
@keyframes bntTrustMarquee {
    from { transform: translateX(0); }
    to   { transform: translateX(calc(-50% - 24px)); }
}

/* ── Promo bar: Combos / Monthly Specials / New Arrivals / etc. ────────── */
body.bnt-v2-active .bnt-cat-links {
    background: #1a1c1c !important;
    padding: 0 !important;
    border-bottom: 3px solid #f6821f !important;
}
body.bnt-v2-active .bnt-cat-links__inner {
    max-width: 1400px !important;
    gap: 0 !important;
    padding: 0 !important;
}
body.bnt-v2-active .bnt-cat-link {
    background: transparent !important;
    color: #fff !important;
    border: 0 !important;
    border-right: 1px solid rgba(255, 255, 255, 0.12) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 14px 28px !important;
    font-family: 'Roboto Mono', 'Courier New', monospace !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    transition: background 0.15s ease, color 0.15s ease !important;
    flex: 1 !important;
}
body.bnt-v2-active .bnt-cat-link:last-child { border-right: 0 !important; }
/* Specificity must exceed (1,3,3) from the generic v2 link-hover rule
   body.bnt-v2-home-page a:not(.button):not(#wide-nav a):hover which
   sets color:#f6821f — orange text on our orange hover bg = invisible.
   Adding #wrapper pushes this to (1,4,1) which wins. */
body.bnt-v2-active #main .bnt-cat-links .bnt-cat-link:hover,
body.bnt-v2-active #main .bnt-cat-links .bnt-cat-link:focus,
body.bnt-v2-active #main .bnt-cat-links .bnt-cat-link:active {
    background: #f6821f !important;
    color: #fff !important;
    border-bottom-color: transparent !important;
    box-shadow: none !important;
    text-decoration: none !important;
}

/* ── Hide Flatsome's shop USP/trust icon bar (redundant with our trust bar) */
body.bnt-v2-active .products-category-icons,
.woocommerce-page #main .products-category-icons,
.woocommerce-page .products-category-icons,
body.bnt-v2-active #row-1674233934,
#footer-icon {
    display: none !important;
}

/* ── Sale badge: single clean brutalist rectangle ─────────────────────── */
body.bnt-v2-active .badge-container .callout.badge.badge-circle {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    border-radius: 0 !important;
}
body.bnt-v2-active .badge-container .badge-inner.on-sale {
    background: transparent !important;
    padding: 0 !important;
}
body.bnt-v2-active .badge-container span.onsale {
    display: inline-block !important;
    position: static !important;
    background: #f6821f !important;
    color: #fff !important;
    font-family: 'Roboto Mono', monospace !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    padding: 6px 10px !important;
    border: 2px solid #1a1c1c !important;
    border-radius: 0 !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
}

/* ── Promo bar highlights: Monthly Specials + Flash Sale stand out ──────── */
body.bnt-v2-active .bnt-cat-link[href*="monthly-specials"] {
    background: #f6821f !important;
    color: #fff !important;
    border-right-color: rgba(255,255,255,0.2) !important;
    position: relative !important;
}
body.bnt-v2-active .bnt-cat-link[href*="monthly-specials"]::before {
    content: '★';
    margin-right: 8px;
    font-size: 14px;
}
body.bnt-v2-active .bnt-cat-link[href*="weekly-deals"] {
    background: #dc2626 !important;
    color: #fff !important;
    border-right: 0 !important;
    position: relative !important;
    animation: bntFlashPulse 1.5s ease-in-out infinite !important;
}
body.bnt-v2-active .bnt-cat-link[href*="weekly-deals"]::before {
    content: '⚡';
    margin-right: 8px;
    font-size: 14px;
}
@keyframes bntFlashPulse {
    0%, 100% { box-shadow: inset 0 0 0 0 rgba(255,255,255,0) !important; }
    50% { box-shadow: inset 0 0 30px 4px rgba(255,255,255,0.2) !important; }
}
/* Hover overrides for highlighted items */
body.bnt-v2-active #main .bnt-cat-links .bnt-cat-link[href*="monthly-specials"]:hover {
    background: #e0741a !important;
    color: #fff !important;
}
body.bnt-v2-active #main .bnt-cat-links .bnt-cat-link[href*="weekly-deals"]:hover {
    background: #991b1b !important;
    color: #fff !important;
}

/* ── Load More button + Recently Viewed heading (category pages) ────────── */

/* Wrap: remove awkward margin, center button */
body.bnt-v2-active .bnt-load-more-wrap {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    margin: 32px 0 0 !important;
    padding: 0 !important;
    width: 100% !important;
    min-height: 0 !important;
}

body.bnt-v2-active .bnt-load-more-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    min-width: 280px !important;
    padding: 16px 32px !important;
    background: var(--v2g-ink) !important;
    color: #fff !important;
    font-family: var(--v2g-font-mono) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    border: 2px solid var(--v2g-ink) !important;
    border-radius: 0 !important;
    box-shadow: 4px 4px 0 var(--v2g-ink) !important;
    cursor: pointer !important;
    transition: background 0.15s ease, color 0.15s ease, transform 0.1s ease, box-shadow 0.1s ease !important;
    text-decoration: none !important;
}

body.bnt-v2-active .bnt-load-more-btn:hover,
body.bnt-v2-active .bnt-load-more-btn:focus {
    background: var(--v2g-orange) !important;
    border-color: var(--v2g-orange) !important;
    color: #fff !important;
    box-shadow: 6px 6px 0 var(--v2g-ink) !important;
    transform: translate(-2px, -2px) !important;
}

body.bnt-v2-active .bnt-load-more-btn:active {
    box-shadow: 0 0 0 var(--v2g-ink) !important;
    transform: translate(4px, 4px) !important;
}

body.bnt-v2-active .bnt-load-more-count {
    font-family: var(--v2g-font-mono) !important;
    font-size: 11px !important;
    font-weight: 400 !important;
    opacity: 0.65 !important;
    letter-spacing: 0.08em !important;
    text-transform: lowercase !important;
    margin-left: 4px !important;
}

body.bnt-v2-active .bnt-load-more-btn.loading {
    pointer-events: none !important;
    position: relative !important;
    color: transparent !important;
    text-indent: -9999px !important;
}

body.bnt-v2-active .bnt-load-more-btn.loading::after {
    content: '' !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 30px !important;
    height: 30px !important;
    margin: -15px 0 0 -15px !important;
    text-indent: 0 !important;
    background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='%23ffffff'%3E%3Crect x='6' y='28' width='20' height='8' rx='0.5'/%3E%3Crect x='10' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='14' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='18' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='22' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='26' y='25' width='2.4' height='14'/%3E%3Cpath d='M 28.4 29 L 52 26 Q 58 28 61 32 Q 58 36 52 38 L 28.4 35 Z'/%3E%3Cpath d='M 52 26 L 61 32 L 55 28 Z' fill='%23ffe0c2'/%3E%3C/g%3E%3C/svg%3E") no-repeat center / contain !important;
    animation: bntv2-knife-spin 0.75s linear infinite !important;
}

/* "All products shown" fallback */
body.bnt-v2-active .bnt-all-loaded {
    text-align: center !important;
    font-family: var(--v2g-font-mono) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    color: var(--v2g-ink) !important;
    padding: 16px 24px !important;
    border: 2px solid var(--v2g-ink) !important;
    display: inline-block !important;
    background: var(--v2g-off-white) !important;
}

body.bnt-v2-active .bnt-all-loaded::before {
    content: '[ ' !important;
    color: var(--v2g-orange) !important;
}
body.bnt-v2-active .bnt-all-loaded::after {
    content: ' ]' !important;
    color: var(--v2g-orange) !important;
}

/* ── Recently Viewed section ──────────────────────────────────────────── */
body.bnt-v2-active .bnt-recently-viewed {
    margin-top: 48px !important;
    padding-top: 32px !important;
    border-top: 2px solid var(--v2g-ink) !important;
}

/* Horizontal scrolling carousel — add drag affordance + fade edge */
body.bnt-v2-active .bnt-rv-scroll {
    scroll-snap-type: x proximity !important;
    scroll-padding-left: 20px !important;
    cursor: grab !important;
    user-select: none !important;
    padding-right: 40px !important;               /* breathing room for the last card */
    mask-image: linear-gradient(to right, #000 calc(100% - 50px), transparent 100%) !important;
    -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 50px), transparent 100%) !important;
    scrollbar-width: thin !important;             /* show a thin scrollbar so users know to scroll */
    scrollbar-color: var(--v2g-orange) var(--v2g-off-white) !important;
}

body.bnt-v2-active .bnt-rv-scroll.is-dragging {
    cursor: grabbing !important;
    scroll-snap-type: none !important;
}

body.bnt-v2-active .bnt-rv-scroll::-webkit-scrollbar {
    display: block !important;
    height: 4px !important;
}
body.bnt-v2-active .bnt-rv-scroll::-webkit-scrollbar-track {
    background: var(--v2g-off-white) !important;
}
body.bnt-v2-active .bnt-rv-scroll::-webkit-scrollbar-thumb {
    background: var(--v2g-orange) !important;
    border-radius: 0 !important;
}

body.bnt-v2-active .bnt-rv-card {
    scroll-snap-align: start !important;
    flex-shrink: 0 !important;
}

body.bnt-v2-active .bnt-recently-viewed > h2,
body.bnt-v2-active .bnt-recently-viewed > h3,
body.bnt-v2-active .bnt-recently-viewed > h4,
body.bnt-v2-active .bnt-recently-viewed-title,
body.bnt-v2-active .bnt-recently-viewed .heading {
    font-family: var(--v2g-font-head) !important;
    font-size: clamp(1.8rem, 3vw, 2.6rem) !important;
    font-weight: 400 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    color: var(--v2g-ink) !important;
    margin: 0 0 24px !important;
    position: relative !important;
    padding-left: 16px !important;
}

body.bnt-v2-active .bnt-recently-viewed > h2::before,
body.bnt-v2-active .bnt-recently-viewed > h3::before,
body.bnt-v2-active .bnt-recently-viewed > h4::before,
body.bnt-v2-active .bnt-recently-viewed-title::before {
    content: 'SYS://' !important;
    display: inline-block !important;
    font-family: var(--v2g-font-mono) !important;
    font-size: 0.55em !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    color: var(--v2g-orange) !important;
    margin-right: 10px !important;
    vertical-align: middle !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   BRUTALIST GLOBAL SEARCH OVERLAY (full-screen command palette)
   ═══════════════════════════════════════════════════════════════════════ */

.bntv2-gs-overlay {
    --gs-orange: #f6821f;
    --gs-ink:    #1a1c1c;
    --gs-white:  #ffffff;
    --gs-muted:  #71717a;
    --gs-fmono:  'Roboto Mono', 'Courier New', monospace;
    --gs-fhead:  'Bebas Neue', 'Oswald', Impact, sans-serif;

    position: fixed;
    inset: 0;
    z-index: 999999;
    display: none;
    align-items: flex-start;
    justify-content: center;
    padding: 80px 20px 20px;
    box-sizing: border-box;
    font-family: var(--gs-fmono);
}

.bntv2-gs-overlay.is-open {
    display: flex;
    animation: bntv2GsFade 0.15s ease-out;
}

@keyframes bntv2GsFade {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.bntv2-gs-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(26, 28, 28, 0.92);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    cursor: pointer;
}

.bntv2-gs-panel {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 760px;
    max-height: calc(100vh - 100px);
    display: flex;
    flex-direction: column;
    background: var(--gs-white);
    border: 2px solid var(--gs-white);
    box-shadow: 8px 8px 0 var(--gs-orange);
    animation: bntv2GsSlide 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes bntv2GsSlide {
    from { transform: translateY(-20px); opacity: 0; }
    to   { transform: translateY(0); opacity: 1; }
}

.bntv2-gs-close {
    position: absolute;
    top: -2px;
    right: -2px;
    width: 44px;
    height: 44px;
    background: var(--gs-orange);
    border: 2px solid var(--gs-orange);
    color: var(--gs-white);
    font-size: 26px;
    line-height: 1;
    font-weight: 400;
    cursor: pointer;
    z-index: 3;
    transition: background 0.15s ease;
}
.bntv2-gs-close:hover {
    background: var(--gs-ink);
    border-color: var(--gs-ink);
}

.bntv2-gs-input-wrap {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px 24px;
    border-bottom: 2px solid var(--gs-ink);
}

.bntv2-gs-icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.bntv2-gs-input {
    flex: 1 1 auto;
    width: 100%;
    border: none !important;
    outline: none !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    font-family: var(--gs-fmono);
    font-size: 18px !important;
    font-weight: 500;
    color: var(--gs-ink);
    letter-spacing: 0.02em;
    box-shadow: none !important;
    min-width: 0;
}
.bntv2-gs-input::placeholder {
    color: var(--gs-muted);
    font-weight: 400;
    letter-spacing: 0.06em;
}

.bntv2-gs-shortcut {
    flex-shrink: 0;
    font-family: var(--gs-fmono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: var(--gs-muted);
    padding: 4px 8px;
    border: 1px solid var(--gs-muted);
}

.bntv2-gs-results {
    flex: 1 1 auto;
    overflow-y: auto;
    overflow-x: hidden;
    min-height: 0;
    max-height: calc(100vh - 260px);
    scrollbar-width: thin;
    scrollbar-color: var(--gs-orange) #f4f4f5;
}
.bntv2-gs-results::-webkit-scrollbar { width: 4px; }
.bntv2-gs-results::-webkit-scrollbar-track { background: #f4f4f5; }
.bntv2-gs-results::-webkit-scrollbar-thumb { background: var(--gs-orange); }

.bntv2-gs-section-title {
    padding: 12px 24px 8px;
    font-family: var(--gs-fmono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: var(--gs-orange);
    text-transform: uppercase;
    border-bottom: 1px solid #e4e4e7;
}
.bntv2-gs-count {
    color: var(--gs-muted);
    font-weight: 400;
}

.bntv2-gs-list {
    display: flex;
    flex-direction: column;
}

.bntv2-gs-item {
    display: grid;
    grid-template-columns: 64px 1fr auto;
    gap: 16px;
    align-items: center;
    padding: 14px 24px;
    border-bottom: 1px solid #e4e4e7;
    text-decoration: none !important;
    color: var(--gs-ink) !important;
    transition: background 0.12s ease, padding-left 0.15s ease;
    cursor: pointer;
}
.bntv2-gs-item:hover,
.bntv2-gs-item.is-highlighted {
    background: #f4f4f5;
    padding-left: 30px;
    border-bottom-color: var(--gs-orange);
}
.bntv2-gs-item.is-highlighted {
    border-left: 4px solid var(--gs-orange);
    padding-left: 20px;
}

.bntv2-gs-item-img {
    width: 64px;
    height: 64px;
    background: #f4f4f5;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 1px solid #e4e4e7;
}
.bntv2-gs-item-img img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    filter: grayscale(100%);
    transition: filter 0.2s ease;
    mix-blend-mode: multiply;
}
.bntv2-gs-item:hover .bntv2-gs-item-img img,
.bntv2-gs-item.is-highlighted .bntv2-gs-item-img img {
    filter: grayscale(0%);
}

.bntv2-gs-item-body {
    min-width: 0;
    overflow: hidden;
}
.bntv2-gs-item-title {
    font-family: var(--gs-fmono);
    font-size: 13px;
    font-weight: 600;
    color: var(--gs-ink);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    line-height: 1.3;
    margin-bottom: 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.bntv2-gs-item-meta {
    font-family: var(--gs-fmono);
    font-size: 10px;
    font-weight: 500;
    color: var(--gs-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.bntv2-gs-item-right {
    flex-shrink: 0;
    text-align: right;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
}
.bntv2-gs-item-price {
    font-family: var(--gs-fhead);
    font-size: 1.2rem;
    font-weight: 400;
    color: var(--gs-orange);
    letter-spacing: 0.02em;
    line-height: 1;
}
.bntv2-gs-item-price .woocommerce-Price-amount {
    font-family: var(--gs-fhead) !important;
    font-size: inherit !important;
    color: var(--gs-orange) !important;
}
.bntv2-gs-item-price del {
    font-size: 0.7em;
    opacity: 0.5;
    margin-right: 4px;
}
.bntv2-gs-item-stock {
    font-family: var(--gs-fmono);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.1em;
    padding: 2px 6px;
    border: 1px solid;
    line-height: 1;
}
.bntv2-gs-item.is-instock .bntv2-gs-item-stock {
    color: #16a34a;
    border-color: #16a34a;
}
.bntv2-gs-item.is-oos .bntv2-gs-item-stock {
    color: #dc2626;
    border-color: #dc2626;
}
.bntv2-gs-item.is-oos .bntv2-gs-item-img img {
    opacity: 0.5;
}

.bntv2-gs-view-all {
    display: block;
    padding: 16px 24px;
    text-align: center;
    font-family: var(--gs-fmono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--gs-ink) !important;
    text-decoration: none !important;
    background: #f4f4f5;
    border-top: 2px solid var(--gs-ink);
    transition: background 0.15s ease, color 0.15s ease;
}
.bntv2-gs-view-all:hover {
    background: var(--gs-ink);
    color: var(--gs-white) !important;
}

/* Loading state */
.bntv2-gs-loading {
    padding: 60px 24px;
    text-align: center;
    font-family: var(--gs-fmono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: var(--gs-muted);
    text-transform: uppercase;
}
.bntv2-gs-knife {
    width: 40px;
    height: 40px;
    margin: 0 auto 12px;
    background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='%23f6821f'%3E%3Crect x='6' y='28' width='20' height='8' rx='0.5'/%3E%3Crect x='10' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='14' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='18' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='22' y='28' width='1.2' height='8' fill='%231a1c1c'/%3E%3Crect x='26' y='25' width='2.4' height='14'/%3E%3Cpath d='M 28.4 29 L 52 26 Q 58 28 61 32 Q 58 36 52 38 L 28.4 35 Z'/%3E%3Cpath d='M 52 26 L 61 32 L 55 28 Z' fill='%23ffb061'/%3E%3C/g%3E%3C/svg%3E") no-repeat center / contain;
    animation: bntv2-knife-spin 0.75s linear infinite;
}

/* Empty initial state */
.bntv2-gs-empty-initial {
    padding: 80px 24px;
    text-align: center;
    font-family: var(--gs-fmono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: var(--gs-ink);
    line-height: 1.8;
}
.bntv2-gs-empty-initial span {
    display: block;
    margin-top: 12px;
    font-size: 10px;
    font-weight: 500;
    color: var(--gs-muted);
    letter-spacing: 0.14em;
}

/* Recent searches */
.bntv2-gs-recent {
    padding: 16px 24px 20px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.bntv2-gs-recent-pill {
    padding: 8px 14px;
    background: #f4f4f5;
    border: 2px solid var(--gs-ink);
    font-family: var(--gs-fmono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--gs-ink);
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}
.bntv2-gs-recent-pill:hover {
    background: var(--gs-orange);
    border-color: var(--gs-orange);
    color: var(--gs-white);
}

/* No results */
.bntv2-gs-no-results {
    padding: 80px 24px;
    text-align: center;
}
.bntv2-gs-no-results-title {
    font-family: var(--gs-fhead);
    font-size: 2.5rem;
    font-weight: 400;
    letter-spacing: 0.04em;
    color: var(--gs-ink);
    margin-bottom: 8px;
}
.bntv2-gs-no-results-sub {
    font-family: var(--gs-fmono);
    font-size: 11px;
    font-weight: 500;
    color: var(--gs-muted);
    letter-spacing: 0.1em;
}

/* Footer hints */
.bntv2-gs-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 24px;
    border-top: 2px solid var(--gs-ink);
    background: #f4f4f5;
    flex-shrink: 0;
}
.bntv2-gs-hint {
    font-family: var(--gs-fmono);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.14em;
    color: var(--gs-muted);
    text-transform: uppercase;
}
.bntv2-gs-hint kbd {
    display: inline-block;
    padding: 2px 6px;
    background: var(--gs-white);
    border: 1px solid var(--gs-muted);
    font-family: var(--gs-fmono);
    font-size: 9px;
    font-weight: 700;
    color: var(--gs-ink);
    margin: 0 2px;
}
.bntv2-gs-hint-right {
    color: var(--gs-orange);
}

/* Mobile responsive */
@media (max-width: 640px) {
    .bntv2-gs-overlay { padding: 40px 8px 8px; }
    .bntv2-gs-panel { max-height: calc(100vh - 60px); }
    .bntv2-gs-input-wrap { padding: 16px 16px 16px 20px; }
    .bntv2-gs-input { font-size: 15px !important; }
    .bntv2-gs-item { padding: 12px 16px; grid-template-columns: 52px 1fr auto; gap: 12px; }
    .bntv2-gs-item-img { width: 52px; height: 52px; }
    .bntv2-gs-item-title { font-size: 12px; }
    .bntv2-gs-item-price { font-size: 1rem; }
    .bntv2-gs-shortcut { display: none; }
    .bntv2-gs-footer { padding: 10px 16px; }
    .bntv2-gs-hint { font-size: 8px; }
    .bntv2-gs-hint-right { display: none; }
    .bntv2-gs-close { width: 36px; height: 36px; font-size: 22px; }
}

/* ═══════════════════════════════════════════════════════════════════════
   COMBO CATEGORY PAGE HERO — Interactive "What's Included" showcase
   Used inside .term-description on combo category pages. Renders a hero
   intro + grid of clickable category cards with SVG icons + hover states.
   ═══════════════════════════════════════════════════════════════════════ */

.bntv2-combo-hero,
.bntv2-combo-included,
.bntv2-combo-explore {
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 20px;
    font-family: 'Roboto Mono', 'Courier New', monospace;
    color: #1a1c1c;
}

/* ── Hero intro block ───────────────────────────────────────────────── */
.bntv2-combo-hero {
    padding: 40px 20px 30px;
    text-align: center;
}

.bntv2-combo-hero__eyebrow {
    display: inline-block;
    font-family: 'Roboto Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
    color: #f6821f;
    text-transform: uppercase;
    padding: 6px 14px;
    border: 2px solid #f6821f;
    margin-bottom: 18px;
}

.bntv2-combo-hero__title {
    font-family: 'Bebas Neue', 'Oswald', Impact, sans-serif !important;
    font-size: clamp(2rem, 5vw, 3.4rem) !important;
    font-weight: 400 !important;
    letter-spacing: 0.02em !important;
    text-transform: uppercase !important;
    color: #1a1c1c !important;
    line-height: 1 !important;
    margin: 0 auto 18px !important;
    max-width: 900px;
}

/* Beat Flatsome's .shop-container b, .shop-container strong rule (0,1,1 with
   !important that forces font-size:13px; color:grey; font-weight:500).
   Our combo hero lives inside .shop-container on WC archives, so that rule
   would shrink the accent word. We use body.bnt-v2-active (0,2,2) to out-spec. */
body.bnt-v2-active .bntv2-combo-hero__title strong,
body.bnt-v2-active .bntv2-combo-hero__title em,
body.bnt-v2-active .bntv2-combo-hero__title b,
.bntv2-combo-hero__title strong,
.bntv2-combo-hero__title em,
.bntv2-combo-hero__title b {
    font-style: normal !important;
    color: #f6821f !important;
    font-family: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    letter-spacing: inherit !important;
    line-height: inherit !important;
    text-transform: inherit !important;
    display: inline !important;
    vertical-align: baseline !important;
}

/* Hide the default WC/Flatsome page title + term description when my showcase
   is rendered — they're replaced by the new .bntv2-combo-hero block. */
body.bnt-v2-active .shop-container > .term-description,
body.bnt-v2-active .shop-container > h1.shop-page-title,
body.bnt-v2-active .shop-container .woocommerce-products-header,
body.bnt-v2-active .shop-container .woocommerce-products-header__title,
body.bnt-v2-active .shop-container > .page-title,
body.bnt-v2-active .category-page-row .term-description,
body.bnt-v2-active .category-page-row > h1:first-child,
body.bnt-v2-active .section-inner-page-new > h1.entry-title,
body.bnt-v2-active .section-inner-page-new > h2.entry-title,
body.bnt-v2-active .section-inner-page-new .page-title,
body.bnt-v2-active .shop-container h1.page-title,
body.bnt-v2-active h1.category-page-title,
body.bnt-v2-active h1.shop-page-title {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.bntv2-combo-hero__lead {
    font-family: 'Roboto Mono', monospace !important;
    font-size: 14px !important;
    line-height: 1.7 !important;
    color: #52525b !important;
    max-width: 760px;
    margin: 0 auto !important;
    font-weight: 400 !important;
}

.bntv2-combo-hero__lead strong {
    color: #1a1c1c;
    font-weight: 700;
}

/* ── "What's Included" section ──────────────────────────────────────── */
.bntv2-combo-included {
    padding: 40px 20px 60px;
}

.bntv2-combo-section-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 28px;
    border-bottom: 2px solid #1a1c1c;
    padding-bottom: 14px;
}

.bntv2-combo-section-head__eyebrow {
    font-family: 'Roboto Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
    color: #f6821f;
    text-transform: uppercase;
}

.bntv2-combo-section-head__title {
    font-family: 'Bebas Neue', 'Oswald', Impact, sans-serif !important;
    font-size: clamp(1.6rem, 3vw, 2.4rem) !important;
    font-weight: 400 !important;
    letter-spacing: 0.02em !important;
    text-transform: uppercase !important;
    color: #1a1c1c !important;
    margin: 0 !important;
    line-height: 1 !important;
}

/* 3-column responsive grid of cards */
.bntv2-combo-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    background: #1a1c1c;
    border: 2px solid #1a1c1c;
}

.bntv2-combo-card {
    display: flex !important;
    flex-direction: column;
    padding: 28px 24px;
    background: #fff;
    color: #1a1c1c !important;
    text-decoration: none !important;
    border-right: 2px solid #1a1c1c;
    border-bottom: 2px solid #1a1c1c;
    transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
    position: relative;
    min-height: 220px;
    cursor: pointer;
}

.bntv2-combo-card:nth-child(3n) {
    border-right: none;
}

/* Last row cards have no bottom border */
.bntv2-combo-card:nth-last-child(-n+3):not(.bntv2-combo-card:nth-child(3n+1) ~ .bntv2-combo-card:nth-last-child(-n+2)) {
    border-bottom: none;
}

/* Intentional "zoom-to-focus" reveal on hover:
   - Card flips to solid orange
   - Title + description + count badge fade out gracefully
   - Icon scales up + rotates slightly (hero element)
   - CTA slides into the center as the focal element */
.bntv2-combo-card:hover {
    background: #f6821f;
    color: #fff !important;
    transform: translateY(-4px);
    box-shadow: 0 8px 0 -2px #1a1c1c;
    z-index: 2;
    text-decoration: none !important;
}

/* Hide title, description, and count badge on hover — replaced with icon focus */
.bntv2-combo-card__title,
.bntv2-combo-card__desc,
.bntv2-combo-card__count {
    transition: opacity 0.25s ease, transform 0.25s ease;
}
.bntv2-combo-card:hover .bntv2-combo-card__title,
.bntv2-combo-card:hover .bntv2-combo-card__desc,
.bntv2-combo-card:hover .bntv2-combo-card__count {
    opacity: 0;
    transform: translateY(-6px);
    pointer-events: none;
}

/* Icon: grows and rotates as the hero element */
.bntv2-combo-card__icon {
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}
.bntv2-combo-card:hover .bntv2-combo-card__icon {
    transform: scale(1.35) translateY(8px);
}
.bntv2-combo-card:hover .bntv2-combo-card__icon svg {
    stroke: #fff !important;
}

/* CTA becomes bold and prominent */
.bntv2-combo-card__cta {
    transition: color 0.2s ease, padding-left 0.2s ease, font-size 0.2s ease, letter-spacing 0.2s ease;
}
.bntv2-combo-card:hover .bntv2-combo-card__cta {
    color: #fff !important;
    font-size: 12px !important;
    letter-spacing: 0.2em !important;
    padding-left: 0;
}

.bntv2-combo-card:hover .bntv2-combo-card__cta::after {
    transform: translateX(6px);
}

.bntv2-combo-card__icon {
    width: 52px;
    height: 52px;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.bntv2-combo-card__icon svg {
    width: 100%;
    height: 100%;
    stroke: #1a1c1c;
    fill: none;
    stroke-width: 2;
    stroke-linecap: square;
    stroke-linejoin: miter;
    transition: stroke 0.2s ease, transform 0.3s ease;
}

.bntv2-combo-card__title {
    font-family: 'Bebas Neue', 'Oswald', Impact, sans-serif !important;
    font-size: 1.5rem !important;
    font-weight: 400 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    color: inherit !important;
    margin: 0 0 8px !important;
    line-height: 1.1 !important;
}

.bntv2-combo-card__desc {
    font-family: 'Roboto Mono', monospace !important;
    font-size: 11px !important;
    line-height: 1.6 !important;
    color: inherit !important;
    opacity: 0.85;
    margin: 0 0 auto !important;
    flex: 1;
}

.bntv2-combo-card__cta {
    display: inline-block;
    font-family: 'Roboto Mono', monospace;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: #f6821f;
    text-transform: uppercase;
    margin-top: 14px;
    transition: color 0.2s ease, padding-left 0.2s ease;
    position: relative;
}

.bntv2-combo-card__cta::after {
    content: ' →';
    display: inline-block;
    transition: transform 0.2s ease;
    margin-left: 2px;
}

.bntv2-combo-card__count {
    position: absolute;
    top: 12px;
    right: 12px;
    font-family: 'Roboto Mono', monospace;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #52525b;
    background: #f4f4f5;
    padding: 3px 7px;
    border: 1px solid #1a1c1c;
    transition: background 0.2s ease, color 0.2s ease;
}

.bntv2-combo-card:hover .bntv2-combo-card__count {
    background: #1a1c1c;
    color: #fff;
}

/* ── "Explore More" section (related categories strip) ───────────────── */
.bntv2-combo-explore {
    padding: 0 20px 60px;
}

.bntv2-combo-explore__list {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 0;
    border: 2px solid #1a1c1c;
}

.bntv2-combo-explore__list li {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.bntv2-combo-explore__link {
    display: flex !important;
    align-items: center;
    gap: 12px;
    padding: 18px 20px;
    background: #fff;
    color: #1a1c1c !important;
    text-decoration: none !important;
    border-right: 2px solid #1a1c1c;
    font-family: 'Roboto Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    transition: background 0.15s ease, color 0.15s ease, padding-left 0.15s ease;
}

.bntv2-combo-explore__list li:last-child .bntv2-combo-explore__link {
    border-right: none;
}

.bntv2-combo-explore__link:hover {
    background: #1a1c1c;
    color: #fff !important;
    padding-left: 26px;
}

.bntv2-combo-explore__link svg {
    width: 16px;
    height: 16px;
    stroke: currentColor;
    fill: none;
    stroke-width: 2;
    flex-shrink: 0;
}

.bntv2-combo-explore__link::after {
    content: '→';
    margin-left: auto;
    transition: transform 0.2s ease;
}

.bntv2-combo-explore__link:hover::after {
    transform: translateX(4px);
}

/* ── Responsive: stack to 2 cols on tablet, 1 col on mobile ─────────── */
@media (max-width: 900px) {
    .bntv2-combo-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .bntv2-combo-card:nth-child(3n) {
        border-right: 2px solid #1a1c1c;
    }
    .bntv2-combo-card:nth-child(2n) {
        border-right: none;
    }
    .bntv2-combo-card {
        border-bottom: 2px solid #1a1c1c !important;
    }
    .bntv2-combo-card:nth-last-child(-n+2) {
        border-bottom: none !important;
    }
}

@media (max-width: 600px) {
    .bntv2-combo-grid {
        grid-template-columns: 1fr;
    }
    .bntv2-combo-card {
        border-right: none !important;
        border-bottom: 2px solid #1a1c1c !important;
    }
    .bntv2-combo-card:last-child {
        border-bottom: none !important;
    }
    .bntv2-combo-explore__list {
        grid-template-columns: 1fr;
    }
    .bntv2-combo-explore__link {
        border-right: none !important;
        border-bottom: 2px solid #1a1c1c;
    }
    .bntv2-combo-explore__list li:last-child .bntv2-combo-explore__link {
        border-bottom: none;
    }
}

/* ── Product card badges: stack NEW and SALE vertically (no overlap) ──
   Flatsome's .badge-container.absolute.left.top AND WC's .onsale both
   position at top-left (0,0) of .bnt-card-img → they collide. Solution:
   keep NEW at top, push SALE 38px down so they sit in a clean vertical stack. */
body.bnt-v2-active .bnt-card-img .badge-container,
body.bnt-v2-active .product-small .badge-container,
body.bnt-v2-active .bnt-card .badge-container {
    top: 8px !important;
    left: 8px !important;
    z-index: 3 !important;
}

body.bnt-v2-active .bnt-card-img .badge-container .badge-inner.new-bubble,
body.bnt-v2-active .product-small .badge-inner.new-bubble {
    background: var(--v2g-orange, #f6821f) !important;
    color: #fff !important;
    border-radius: 0 !important;
    font-family: var(--v2g-font-mono, 'Roboto Mono', monospace) !important;
    font-size: 9px !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    padding: 5px 10px !important;
    box-shadow: none !important;
    text-shadow: none !important;
    border: none !important;
    line-height: 1 !important;
}

/* WC .onsale badge — push below the NEW badge when both exist */
body.bnt-v2-active .bnt-card-img .onsale,
body.bnt-v2-active .product-small .onsale,
body.bnt-v2-active .bnt-card .onsale {
    position: absolute !important;
    top: 8px !important;
    left: 8px !important;
    right: auto !important;
    background: #dc2626 !important;
    color: #fff !important;
    border-radius: 0 !important;
    font-family: var(--v2g-font-mono, 'Roboto Mono', monospace) !important;
    font-size: 9px !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    padding: 5px 10px !important;
    box-shadow: none !important;
    text-shadow: none !important;
    border: none !important;
    line-height: 1 !important;
    min-height: 0 !important;
    min-width: 0 !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    z-index: 2 !important;
}

/* When BOTH badges exist, push the .onsale down so it sits below the .new-bubble.
   Uses :has() (modern browsers) — with a fallback via adjacent sibling selector. */
body.bnt-v2-active .bnt-card-img:has(.badge-inner.new-bubble) .onsale,
body.bnt-v2-active .product-small:has(.badge-inner.new-bubble) .onsale {
    top: 38px !important;
}

/* Fallback for browsers without :has() — if .onsale comes after .badge-container in DOM */
body.bnt-v2-active .badge-container + .onsale,
body.bnt-v2-active .badge-container ~ .onsale {
    top: 38px !important;
}

/* ── Cart sidebar panel: emphasize CHECKOUT button with orange hover ──
   VIEW CART and CONTINUE SHOPPING keep the default black hover;
   CHECKOUT turns orange so it's the clear call to action. */
body.bnt-v2-active #cart-popup a[href*="/checkout/"]:hover,
body.bnt-v2-active .cart-sidebar a[href*="/checkout/"]:hover,
body.bnt-v2-active .cart-popup-wrapper a[href*="/checkout/"]:hover,
body.bnt-v2-active .off-canvas-cart a[href*="/checkout/"]:hover,
body.bnt-v2-active .nav-dropdown-has-shop a[href*="/checkout/"]:hover,
body.bnt-v2-active .cart-popup a[href*="/checkout/"]:hover,
body.bnt-v2-active aside a.button.checkout:hover,
body.bnt-v2-active aside a.wc-forward.checkout:hover {
    background: var(--v2g-orange, #f6821f) !important;
    background-color: var(--v2g-orange, #f6821f) !important;
    border-color: var(--v2g-orange, #f6821f) !important;
    color: #fff !important;
    text-decoration: none !important;
    transform: translateY(-1px) !important;
    transition: all 0.15s ease !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   BRUTALIST MOBILE MENU DRAWER (drill-down pattern)
   Hidden by default. Opens full-screen from the left when hamburger tapped.
   Level 0 = 8 top-level categories with SVG icons.
   Level 1 = subcategories of the tapped parent, slides in from the right.
   ═══════════════════════════════════════════════════════════════════════ */
.bntv2-mm {
    position: fixed;
    inset: 0;
    z-index: 2147483500;
    display: none;
    font-family: 'Roboto Mono', 'Courier New', monospace;
    color: #1a1c1c;
}
.bntv2-mm.is-open {
    display: block;
}
.bntv2-mm__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(26, 28, 28, 0.88);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    animation: bntMmFade 0.18s ease-out;
}
@keyframes bntMmFade {
    from { opacity: 0; }
    to   { opacity: 1; }
}
.bntv2-mm__panel {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: min(90vw, 400px);
    background: #fff;
    border-right: 3px solid #1a1c1c;
    box-shadow: 8px 0 0 #f6821f;
    display: flex;
    flex-direction: column;
    animation: bntMmSlide 0.22s cubic-bezier(0.2, 0.9, 0.3, 1);
}
@keyframes bntMmSlide {
    from { transform: translateX(-100%); }
    to   { transform: translateX(0); }
}

/* ── Drawer header ─────────────────────────────────────────────────── */
.bntv2-mm__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 20px;
    background: #1a1c1c;
    border-bottom: 3px solid #1a1c1c;
    color: #fff;
    flex: 0 0 auto;
}
.bntv2-mm__brand {
    font-family: 'Roboto Mono', 'Courier New', monospace;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.16em;
    color: #f6821f;
    text-transform: uppercase;
}
.bntv2-mm__close {
    background: transparent;
    border: 2px solid #fff;
    color: #fff;
    width: 40px;
    height: 40px;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    padding: 0;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.bntv2-mm__close:hover,
.bntv2-mm__close:active {
    background: #f6821f;
    border-color: #f6821f;
}

/* ── Body container (holds root level + child panels) ──────────────── */
.bntv2-mm__body {
    flex: 1;
    position: relative;
    overflow: hidden;
}

/* ── Level 0: root list of top categories ─────────────────────────── */
.bntv2-mm__root {
    position: absolute;
    inset: 0;
    list-style: none;
    padding: 0;
    margin: 0;
    overflow-y: auto;
    background: #fff;
    transition: transform 0.28s cubic-bezier(0.2, 0.9, 0.3, 1);
    -webkit-overflow-scrolling: touch;
}
.bntv2-mm.is-at-child .bntv2-mm__root {
    transform: translateX(-30%);
}
.bntv2-mm__root-item {
    list-style: none;
    margin: 0;
    padding: 0;
    border-bottom: 2px solid #1a1c1c;
}
.bntv2-mm__root-item:last-child {
    border-bottom: 0;
}
.bntv2-mm__root-btn {
    display: flex;
    align-items: center;
    gap: 16px;
    width: 100%;
    padding: 22px 20px;
    background: #fff;
    border: 0;
    color: #1a1c1c;
    font-family: 'Bebas Neue', 'Oswald', Impact, sans-serif !important;
    font-size: 26px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    text-align: left;
    text-decoration: none !important;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}
.bntv2-mm__root-btn:hover,
.bntv2-mm__root-btn:active,
.bntv2-mm__root-btn:focus {
    background: #f6821f;
    color: #fff !important;
    outline: none;
}
.bntv2-mm__root-icon {
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    color: inherit;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.bntv2-mm__root-icon svg {
    width: 100%;
    height: 100%;
    stroke: currentColor;
}
.bntv2-mm__root-name {
    flex: 1;
    line-height: 1;
}
.bntv2-mm__root-arrow {
    flex: 0 0 auto;
    font-family: 'Roboto Mono', monospace;
    font-size: 18px;
    font-weight: 400;
    opacity: 0.55;
}
.bntv2-mm__root-btn:hover .bntv2-mm__root-arrow,
.bntv2-mm__root-btn:active .bntv2-mm__root-arrow {
    opacity: 1;
}

/* ── Level 1: child panels (subcategories) ─────────────────────────── */
.bntv2-mm__child {
    position: absolute;
    inset: 0;
    background: #fff;
    transform: translateX(100%);
    transition: transform 0.28s cubic-bezier(0.2, 0.9, 0.3, 1);
    visibility: hidden;
    display: flex;
    flex-direction: column;
}
.bntv2-mm[data-mm-active] .bntv2-mm__child[data-mm-panel] {
    /* by default all panels stay off-screen */
}
.bntv2-mm[data-mm-active="knives"]                          .bntv2-mm__child[data-mm-panel="knives"],
.bntv2-mm[data-mm-active="airsoft"]                         .bntv2-mm__child[data-mm-panel="airsoft"],
.bntv2-mm[data-mm-active="paintball"]                       .bntv2-mm__child[data-mm-panel="paintball"],
.bntv2-mm[data-mm-active="archery"]                         .bntv2-mm__child[data-mm-panel="archery"],
.bntv2-mm[data-mm-active="pellet-bb-guns"]                  .bntv2-mm__child[data-mm-panel="pellet-bb-guns"],
.bntv2-mm[data-mm-active="bags"]                            .bntv2-mm__child[data-mm-panel="bags"],
.bntv2-mm[data-mm-active="firearms-real-steel-accessories"] .bntv2-mm__child[data-mm-panel="firearms-real-steel-accessories"],
.bntv2-mm[data-mm-active="self-defence-2"]                  .bntv2-mm__child[data-mm-panel="self-defence-2"] {
    transform: translateX(0);
    visibility: visible;
}
.bntv2-mm__back {
    flex: 0 0 auto;
    padding: 18px 20px;
    background: #1a1c1c;
    color: #fff;
    border: 0;
    border-bottom: 3px solid #1a1c1c;
    font-family: 'Roboto Mono', 'Courier New', monospace;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    text-align: left;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 10px;
}
.bntv2-mm__back:hover,
.bntv2-mm__back:active {
    background: #f6821f;
}
.bntv2-mm__child-list {
    flex: 1;
    list-style: none;
    padding: 0;
    margin: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}
.bntv2-mm__child-list li {
    list-style: none;
    margin: 0;
    padding: 0;
    border-bottom: 1px solid rgba(26, 28, 28, 0.12);
}
.bntv2-mm__child-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    background: #fff;
    color: #1a1c1c !important;
    text-decoration: none !important;
    font-family: 'Roboto Mono', 'Courier New', monospace;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    transition: background 0.12s ease, color 0.12s ease;
}
.bntv2-mm__child-link:hover,
.bntv2-mm__child-link:active,
.bntv2-mm__child-link:focus {
    background: #f6821f;
    color: #fff !important;
    outline: none;
}
.bntv2-mm__child-name {
    flex: 1;
    padding-right: 12px;
}
.bntv2-mm__child-count {
    flex: 0 0 auto;
    font-size: 11px;
    font-weight: 700;
    opacity: 0.55;
    padding: 2px 6px;
    border: 1px solid rgba(26, 28, 28, 0.25);
}
.bntv2-mm__child-link:hover .bntv2-mm__child-count,
.bntv2-mm__child-link:active .bntv2-mm__child-count {
    opacity: 1;
    color: #fff;
    border-color: #fff;
}
.bntv2-mm__browse-all {
    flex: 0 0 auto;
    display: block;
    padding: 20px;
    background: #1a1c1c;
    color: #fff !important;
    text-decoration: none !important;
    font-family: 'Roboto Mono', 'Courier New', monospace;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    text-align: center;
    border-top: 3px solid #1a1c1c;
    transition: background 0.15s ease;
}
.bntv2-mm__browse-all:hover,
.bntv2-mm__browse-all:active {
    background: #f6821f;
}

/* Belt-and-braces: hide the drawer entirely on desktop viewports. */
@media (min-width: 850px) {
    .bntv2-mm { display: none !important; }
}

/* Hide Flatsome's default mobile menu drawer whenever our drawer is in the
   DOM — we hijack the hamburger click but the legacy off-canvas still exists
   as a DOM sibling and could become visible if something else triggers it. */
body.bnt-v2-active #main-menu,
body.bnt-v2-active .off-canvas.off-canvas-left,
body.bnt-v2-active .mfp-content > #main-menu {
    display: none !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   VARIABLE PRODUCT: visible WC variation form — brutalist styled
   ═══════════════════════════════════════════════════════════════════════ */

/* The cart cell for variable products: light background, no shadow */
.bntv2-cart-cell--variable {
    background: #f7f5f0 !important;
    border-left: 2px solid #1a1c1c !important;
    padding: 24px 20px !important;
    box-shadow: none !important;
}
/* Remove box-shadow on specific containers — avoid wildcard * on form
   controls as it can interfere with native <select> rendering on WebKit. */
.bntv2-cart-cell--variable .bntv2-wc-form-wrap--visible,
.bntv2-cart-cell--variable .bntv2-wc-form-wrap--visible .variations,
.bntv2-cart-cell--variable .bntv2-wc-form-wrap--visible .woocommerce-variation,
.bntv2-cart-cell--variable .bntv2-wc-form-wrap--visible .single_add_to_cart_button {
    box-shadow: none !important;
}
.bntv2-cart-cell--variable .bntv2-cell-label {
    color: #f6821f !important;
    margin-bottom: 16px !important;
}

/* The WC form wrapper — make it visible and flow naturally */
.bntv2-wc-form-wrap--visible {
    position: static !important;
    left: auto !important;
    opacity: 1 !important;
    height: auto !important;
    width: 100% !important;
    overflow: visible !important;
}

/* Variations table — clean 2-column layout */
.bntv2-wc-form-wrap--visible .variations {
    width: 100% !important;
    border-collapse: collapse !important;
    margin: 0 0 20px !important;
}
.bntv2-wc-form-wrap--visible .variations tr { display: block !important; margin-bottom: 12px !important; }
.bntv2-wc-form-wrap--visible .variations td,
.bntv2-wc-form-wrap--visible .variations th {
    display: block !important;
    padding: 0 !important;
    border: 0 !important;
    text-align: left !important;
    width: 100% !important;
}
.bntv2-wc-form-wrap--visible .variations .label { margin-bottom: 6px !important; }
.bntv2-wc-form-wrap--visible .variations .label label {
    font-family: 'Roboto Mono', monospace !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    color: #71717a !important;
}
/* MINIMAL select styling — Safari/WebKit has known rendering bugs where
   custom font-family, text-transform, letter-spacing, or font-weight on
   <select> can cause the selected option text to not render in the closed
   state. Only set structural props (width, border, padding, height) and
   let the browser's native select rendering handle everything else. */
.bntv2-wc-form-wrap--visible .variations select {
    width: 100% !important;
    padding: 14px 16px !important;
    height: 50px !important;
    border: 2px solid #1a1c1c !important;
    border-radius: 0 !important;
    background-color: #fff !important;
    color: #1a1c1c !important;
    font-size: 15px !important;
    cursor: pointer !important;
}

/* Stock availability text */
.bntv2-wc-form-wrap--visible .woocommerce-variation-availability {
    margin: 0 0 12px !important;
}
.bntv2-wc-form-wrap--visible .woocommerce-variation-availability .stock {
    font-family: 'Roboto Mono', monospace !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    padding: 6px 12px !important;
    border: 2px solid currentColor !important;
    display: inline-block !important;
}
.bntv2-wc-form-wrap--visible .woocommerce-variation-availability .in-stock { color: #16a34a !important; }
.bntv2-wc-form-wrap--visible .woocommerce-variation-availability .out-of-stock { color: #dc2626 !important; }

/* Price display in variation form */
.bntv2-wc-form-wrap--visible .woocommerce-variation-price {
    margin: 0 0 16px !important;
}
.bntv2-wc-form-wrap--visible .woocommerce-variation-price .price {
    display: block !important;
    font-family: 'Bebas Neue', Impact, sans-serif !important;
    font-size: 28px !important;
    color: #1a1c1c !important;
}

/* Qty + ATC row */
.bntv2-wc-form-wrap--visible .woocommerce-variation-add-to-cart {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
}
.bntv2-wc-form-wrap--visible .quantity {
    margin: 0 !important;
}
.bntv2-wc-form-wrap--visible .quantity input {
    width: 100% !important;
    padding: 14px !important;
    font-family: 'Roboto Mono', monospace !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    text-align: center !important;
    border: 2px solid #1a1c1c !important;
    border-radius: 0 !important;
    background: #fff !important;
    color: #1a1c1c !important;
}
.bntv2-wc-form-wrap--visible .single_add_to_cart_button {
    display: block !important;
    width: 100% !important;
    padding: 18px !important;
    font-family: 'Roboto Mono', monospace !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    text-align: center !important;
    background: #1a1c1c !important;
    color: #fff !important;
    border: 2px solid #1a1c1c !important;
    border-radius: 0 !important;
    cursor: pointer !important;
    transition: background 0.15s ease, border-color 0.15s ease !important;
}
.bntv2-wc-form-wrap--visible .single_add_to_cart_button:hover {
    background: #f6821f !important;
    border-color: #f6821f !important;
}
/* Disabled state (before variation is selected) — grey instead of "out of stock" */
.bntv2-wc-form-wrap--visible .single_add_to_cart_button.disabled,
.bntv2-wc-form-wrap--visible .single_add_to_cart_button:disabled {
    background: #a1a1aa !important;
    border-color: #a1a1aa !important;
    color: #fff !important;
    cursor: not-allowed !important;
}

/* ── Select2/selectWoo overrides — WC replaces <select> with a custom
   widget, so we must style the .select2-* elements, not the native select.
   The native select is hidden; the visible UI is .select2-container. */
.bntv2-wc-form-wrap--visible .select2-container {
    width: 100% !important;
}
.bntv2-wc-form-wrap--visible .select2-container .select2-selection--single {
    height: auto !important;
    min-height: 48px !important;
    padding: 12px 40px 12px 14px !important;
    font-family: 'Roboto Mono', monospace !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: 0.05em !important;
    text-transform: uppercase !important;
    color: #1a1c1c !important;
    background: #fff !important;
    border: 2px solid #1a1c1c !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
.bntv2-wc-form-wrap--visible .select2-selection__rendered {
    color: #1a1c1c !important;
    line-height: 1.4 !important;
    padding: 0 !important;
    font-family: 'Roboto Mono', monospace !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
}
.bntv2-wc-form-wrap--visible .select2-selection__arrow {
    top: 50% !important;
    right: 14px !important;
    transform: translateY(-50%) !important;
    height: auto !important;
}
/* Dropdown options panel */
.select2-container--default .select2-results__option {
    font-family: 'Roboto Mono', monospace !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    padding: 12px 16px !important;
    text-transform: uppercase !important;
}
.select2-container--default .select2-results__option--highlighted {
    background: #f6821f !important;
    color: #fff !important;
}

/* Hide reset link + any extra WC clutter */
.bntv2-wc-form-wrap--visible .reset_variations { display: none !important; }
.bntv2-wc-form-wrap--visible .woocommerce-variation-description { display: none !important; }

/* Hide the custom qty/ATC when the WC variable form is present */
.bntv2-cart-cell--variable #bntv2QtyPicker,
.bntv2-cart-cell--variable #bntv2AddToCartBtn { display: none !important; }

/* ─── END SITE-WIDE BRUTALIST OVERLAY ────────────────────────────────── */


/* ═══════════════════════════════════════════════════════════════════════
   BNT v2 BRUTALIST HOMEPAGE
   Scoped under body.bnt-v2-home-page .bntv2-home
   ═══════════════════════════════════════════════════════════════════════ */

body.bnt-v2-home-page .bntv2-home {
    --bh-ink:    #1a1c1c;
    --bh-white:  #ffffff;
    --bh-cream:  #f7f5f0;
    --bh-orange: #f6821f;
    --bh-muted:  #71717a;
    --bh-fmono:  'Roboto Mono', 'Courier New', monospace;
    --bh-fhead:  'Bebas Neue', 'Oswald', Impact, sans-serif;

    max-width: 1400px;
    margin: 0 auto;
    padding: 0 20px 80px;
    font-family: var(--bh-fmono);
    color: var(--bh-ink);
}

/* Kill any leftover Flatsome wrappers inside the home content */
body.bnt-v2-home-page .page-wrapper .entry-content > *:not(.bntv2-home) { display: none !important; }
body.bnt-v2-home-page .section-inner-page-new > .bntv2-home .section { padding: 0 !important; }

/* ── shared section head ─────────────────────────────────────────────── */
body.bnt-v2-home-page .bntv2-home-section {
    margin: 80px 0 0;
    padding-top: 60px;
    border-top: 2px solid var(--bh-ink);
}
body.bnt-v2-home-page .bntv2-home-section:first-child { border-top: 0; padding-top: 0; margin-top: 0; }
body.bnt-v2-home-page .bntv2-home-section__head {
    text-align: center;
    max-width: 820px;
    margin: 0 auto 48px;
}
body.bnt-v2-home-page .bntv2-home-section__head--inline {
    text-align: left;
    max-width: none;
    margin: 0 0 32px;
}
body.bnt-v2-home-page .bntv2-home-section__eyebrow {
    display: inline-block;
    font-family: var(--bh-fmono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.15em;
    color: var(--bh-orange);
    border: 2px solid var(--bh-orange);
    padding: 6px 14px;
    margin-bottom: 18px;
    text-transform: uppercase;
}
body.bnt-v2-home-page .bntv2-home-section__title {
    font-family: var(--bh-fhead) !important;
    font-size: clamp(38px, 6vw, 72px) !important;
    font-weight: 400 !important;
    line-height: 0.95 !important;
    letter-spacing: 0.01em !important;
    margin: 0 0 16px !important;
    text-transform: uppercase;
    color: var(--bh-ink) !important;
}
body.bnt-v2-home-page .bntv2-home-section__title strong {
    color: var(--bh-orange) !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    display: inline !important;
    font-family: inherit !important;
}
body.bnt-v2-home-page .bntv2-home-section__lead {
    font-family: var(--bh-fmono) !important;
    font-size: 15px !important;
    line-height: 1.6 !important;
    color: var(--bh-muted) !important;
    margin: 0 !important;
}

/* ── HERO FRAME + MARQUEE ─────────────────────────────────────────────── */
body.bnt-v2-home-page .bntv2-home-hero {
    margin: 20px 0 0;
    padding-top: 0;
    border: 0;
}
body.bnt-v2-home-page .bntv2-home-hero__frame {
    border: 2px solid var(--bh-ink);
    box-shadow: 8px 8px 0 var(--bh-orange);
    overflow: hidden;
    position: relative;
}
body.bnt-v2-home-page .bntv2-home-hero__frame .smart-slider,
body.bnt-v2-home-page .bntv2-home-hero__frame .n2-ss-slider {
    margin: 0 !important;
}
body.bnt-v2-home-page .bntv2-home-hero__marquee {
    margin-top: 14px;
    background: var(--bh-ink);
    color: var(--bh-white);
    border: 2px solid var(--bh-ink);
    overflow: hidden;
    position: relative;
}
body.bnt-v2-home-page .bntv2-home-hero__marquee-track {
    display: flex;
    gap: 48px;
    white-space: nowrap;
    padding: 14px 0;
    animation: bntvhMarquee 28s linear infinite;
    font-family: var(--bh-fmono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
}
body.bnt-v2-home-page .bntv2-home-hero__marquee-track span { display: inline-block; }
@keyframes bntvhMarquee {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

/* ── STATS STRIP ──────────────────────────────────────────────────────── */
body.bnt-v2-home-page .bntv2-home-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    margin: 40px 0 0;
    border: 2px solid var(--bh-ink);
    background: var(--bh-cream);
}
body.bnt-v2-home-page .bntv2-home-stats__item {
    padding: 28px 20px;
    text-align: center;
    border-right: 2px solid var(--bh-ink);
    position: relative;
}
body.bnt-v2-home-page .bntv2-home-stats__item:last-child { border-right: 0; }
body.bnt-v2-home-page .bntv2-home-stats__icon {
    width: 44px;
    height: 44px;
    margin: 0 auto 10px;
    color: var(--bh-orange);
}
body.bnt-v2-home-page .bntv2-home-stats__icon svg { width: 100%; height: 100%; }
body.bnt-v2-home-page .bntv2-home-stats__num {
    font-family: var(--bh-fhead);
    font-size: 38px;
    line-height: 1;
    color: var(--bh-ink);
    letter-spacing: 0.02em;
}
body.bnt-v2-home-page .bntv2-home-stats__label {
    font-family: var(--bh-fmono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: var(--bh-muted);
    margin-top: 6px;
}

/* ── TOP PICKS 8-card grid ────────────────────────────────────────────── */
body.bnt-v2-home-page .bntv2-home-picks-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    border: 2px solid var(--bh-ink);
    background: var(--bh-white);
}
body.bnt-v2-home-page .bntv2-home-pick {
    position: relative;
    padding: 36px 24px 28px;
    text-align: left;
    border-right: 2px solid var(--bh-ink);
    border-bottom: 2px solid var(--bh-ink);
    color: var(--bh-ink) !important;
    text-decoration: none !important;
    transition: background 0.2s ease, color 0.2s ease, transform 0.25s ease;
    overflow: hidden;
    display: block;
}
body.bnt-v2-home-page .bntv2-home-pick:nth-child(4n) { border-right: 0; }
body.bnt-v2-home-page .bntv2-home-pick:nth-last-child(-n+4) { border-bottom: 0; }
body.bnt-v2-home-page .bntv2-home-pick__index {
    position: absolute;
    top: 14px;
    right: 18px;
    font-family: var(--bh-fmono);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: var(--bh-muted);
}
body.bnt-v2-home-page .bntv2-home-pick__icon {
    width: 64px;
    height: 64px;
    color: var(--bh-ink);
    margin-bottom: 20px;
    transition: transform 0.3s ease, color 0.2s ease;
}
body.bnt-v2-home-page .bntv2-home-pick__icon svg { width: 100%; height: 100%; }
body.bnt-v2-home-page .bntv2-home-pick__title {
    font-family: var(--bh-fhead) !important;
    font-size: 30px !important;
    line-height: 1 !important;
    margin: 0 0 8px !important;
    letter-spacing: 0.02em !important;
    color: inherit !important;
    text-transform: uppercase;
}
body.bnt-v2-home-page .bntv2-home-pick__sub {
    font-family: var(--bh-fmono) !important;
    font-size: 12px !important;
    font-weight: 600;
    letter-spacing: 0.08em;
    color: var(--bh-muted) !important;
    margin: 0 0 20px !important;
    text-transform: uppercase;
}
body.bnt-v2-home-page .bntv2-home-pick__cta {
    display: inline-block;
    font-family: var(--bh-fmono);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 8px 12px;
    border: 2px solid var(--bh-ink);
    color: var(--bh-ink);
    transition: background 0.2s ease, color 0.2s ease;
}
body.bnt-v2-home-page .bntv2-home-pick:hover {
    background: var(--bh-orange);
    color: var(--bh-white) !important;
}
body.bnt-v2-home-page .bntv2-home-pick:hover .bntv2-home-pick__icon { transform: scale(1.2) rotate(-3deg); color: var(--bh-white); }
body.bnt-v2-home-page .bntv2-home-pick:hover .bntv2-home-pick__sub,
body.bnt-v2-home-page .bntv2-home-pick:hover .bntv2-home-pick__index { color: rgba(255,255,255,0.85) !important; }
body.bnt-v2-home-page .bntv2-home-pick:hover .bntv2-home-pick__cta {
    background: var(--bh-white);
    color: var(--bh-ink);
    border-color: var(--bh-white);
}

/* ── Live product count badge — large, prominent ──────────────────────── */
body.bnt-v2-home-page .bntv2-home-pick__count {
    display: block;
    font-family: var(--bh-fhead);
    font-size: 42px;
    line-height: 1;
    color: rgba(26, 28, 28, 0.07);
    letter-spacing: 0.02em;
    text-transform: uppercase;
    white-space: nowrap;
    margin-top: auto;
    padding-top: 12px;
    transition: color 0.2s ease;
}
body.bnt-v2-home-page .bntv2-home-pick:hover .bntv2-home-pick__count {
    color: rgba(255, 255, 255, 0.25);
}

/* ── Card layout: vertical flex with icon top, count at bottom ─────── */
body.bnt-v2-home-page .bntv2-home-pick {
    display: flex !important;
    flex-direction: column;
}

/* ── Subtle grid pattern on each card background ──────────────────────── */
body.bnt-v2-home-page .bntv2-home-pick::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(26, 28, 28, 0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(26, 28, 28, 0.04) 1px, transparent 1px);
    background-size: 24px 24px;
    pointer-events: none;
    transition: opacity 0.2s ease;
}
body.bnt-v2-home-page .bntv2-home-pick:hover::before {
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.08) 1px, transparent 1px);
}

/* ── Icon: larger, with subtle rotation on idle ────────────────────── */
body.bnt-v2-home-page .bntv2-home-pick__icon {
    width: 80px !important;
    height: 80px !important;
    margin-bottom: 24px !important;
}

/* ── CTA button: more prominent ──────────────────────────────────────── */
body.bnt-v2-home-page .bntv2-home-pick__cta {
    padding: 10px 16px;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em;
    background: var(--bh-ink);
    color: var(--bh-white) !important;
    border: 2px solid var(--bh-ink) !important;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
body.bnt-v2-home-page .bntv2-home-pick:hover .bntv2-home-pick__cta {
    background: var(--bh-white) !important;
    color: var(--bh-ink) !important;
    border-color: var(--bh-white) !important;
}

/* ── Scroll-reveal stagger animation ──────────────────────────────────── */
body.bnt-v2-home-page .bntv2-home-picks-grid:not(.is-revealed) .bntv2-home-pick {
    opacity: 0;
    transform: translateY(32px);
}
body.bnt-v2-home-page .bntv2-home-picks-grid.is-revealed .bntv2-home-pick {
    animation: bntPickReveal 0.5s cubic-bezier(0.22, 1, 0.36, 1) forwards;
    animation-delay: calc(var(--reveal-i, 0) * 0.07s);
}
@keyframes bntPickReveal {
    from { opacity: 0; transform: translateY(32px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── Mobile: horizontal scroll strip with scroll-snap ─────────────────── */
@media (max-width: 768px) {
    body.bnt-v2-home-page .bntv2-home-picks-grid {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        gap: 0 !important;
        border: 2px solid var(--bh-ink);
        /* Hide scrollbar but keep scrolling functional */
        scrollbar-width: none;
        -ms-overflow-style: none;
    }
    body.bnt-v2-home-page .bntv2-home-picks-grid::-webkit-scrollbar { display: none; }
    body.bnt-v2-home-page .bntv2-home-pick {
        flex: 0 0 75vw !important;
        max-width: 75vw !important;
        scroll-snap-align: start;
        border-right: 2px solid var(--bh-ink) !important;
        border-bottom: 0 !important;
    }
    body.bnt-v2-home-page .bntv2-home-pick:last-child { border-right: 0 !important; }
    /* Adjust index position for horizontal cards */
    body.bnt-v2-home-page .bntv2-home-pick__index { top: 14px; right: 16px; }
    body.bnt-v2-home-page .bntv2-home-pick__count { top: 14px; right: auto; left: 16px; }
}

/* ── SELF DEFENCE split ───────────────────────────────────────────────── */
body.bnt-v2-home-page .bntv2-home-sd__split {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 32px;
    align-items: start;
}
body.bnt-v2-home-page .bntv2-home-sd__products .product-small.box,
body.bnt-v2-home-page .bntv2-home-sd__products .products .col > .col-inner {
    border: 2px solid var(--bh-ink);
    padding: 0;
}
body.bnt-v2-home-page .bntv2-home-sd__video-frame {
    border: 2px solid var(--bh-ink);
    box-shadow: 6px 6px 0 var(--bh-orange);
    background: var(--bh-ink);
    position: relative;
    overflow: hidden;
}
body.bnt-v2-home-page .bntv2-home-sd__video-frame video {
    width: 100%;
    height: auto;
    display: block;
}
body.bnt-v2-home-page .bntv2-home-sd__video-caption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 14px 18px;
    background: rgba(26, 28, 28, 0.88);
    color: var(--bh-white);
    display: flex;
    flex-direction: column;
    gap: 2px;
}
body.bnt-v2-home-page .bntv2-home-sd__video-tag {
    font-family: var(--bh-fmono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--bh-orange);
}
body.bnt-v2-home-page .bntv2-home-sd__video-text {
    font-family: var(--bh-fhead);
    font-size: 22px;
    line-height: 1;
    letter-spacing: 0.02em;
}
body.bnt-v2-home-page .bntv2-home-sd__cta {
    display: block;
    margin-top: 18px;
    padding: 16px 20px;
    text-align: center;
    background: var(--bh-ink);
    color: var(--bh-white) !important;
    font-family: var(--bh-fmono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    border: 2px solid var(--bh-ink);
    text-decoration: none !important;
    transition: background 0.2s ease, color 0.2s ease;
}
body.bnt-v2-home-page .bntv2-home-sd__cta:hover {
    background: var(--bh-orange);
    border-color: var(--bh-orange);
}

/* ── PRODUCT GRID SECTIONS with side panel ───────────────────────────── */
body.bnt-v2-home-page .bntv2-home-grid-section__inner {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 32px;
    align-items: stretch;
}
body.bnt-v2-home-page .bntv2-home-grid-section.is-flipped .bntv2-home-grid-section__inner {
    grid-template-columns: 1fr 280px;
}
body.bnt-v2-home-page .bntv2-home-grid-section.is-flipped .bntv2-home-grid-section__side { order: 2; }
body.bnt-v2-home-page .bntv2-home-grid-section__side {
    position: relative;
    border: 2px solid var(--bh-ink);
    background: var(--bh-cream);
    padding: 32px 26px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-shadow: 6px 6px 0 var(--bh-orange);
    min-height: 380px;
}
body.bnt-v2-home-page .bntv2-home-grid-section__side-icon {
    width: 72px;
    height: 72px;
    color: var(--bh-orange);
}
body.bnt-v2-home-page .bntv2-home-grid-section__side-icon svg { width: 100%; height: 100%; }
body.bnt-v2-home-page .bntv2-home-grid-section__side-stack {
    display: flex;
    flex-direction: column;
    line-height: 0.85;
    margin: 24px 0;
}
body.bnt-v2-home-page .bntv2-home-grid-section__side-title {
    font-family: var(--bh-fhead);
    font-size: clamp(48px, 6vw, 84px);
    color: var(--bh-ink);
    letter-spacing: 0.01em;
}
body.bnt-v2-home-page .bntv2-home-grid-section__side-sub {
    font-family: var(--bh-fhead);
    font-size: clamp(28px, 4vw, 42px);
    color: var(--bh-orange);
    letter-spacing: 0.02em;
    margin-top: 4px;
}
body.bnt-v2-home-page .bntv2-home-grid-section__side-eyebrow {
    font-family: var(--bh-fmono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.15em;
    color: var(--bh-muted);
    text-transform: uppercase;
    margin-bottom: 10px;
}
body.bnt-v2-home-page .bntv2-home-grid-section__side-cta {
    display: inline-block;
    padding: 12px 16px;
    background: var(--bh-ink);
    color: var(--bh-white) !important;
    font-family: var(--bh-fmono);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    border: 2px solid var(--bh-ink);
    text-decoration: none !important;
    text-align: center;
    transition: background 0.2s ease;
}
body.bnt-v2-home-page .bntv2-home-grid-section__side-cta:hover {
    background: var(--bh-orange);
    border-color: var(--bh-orange);
}
body.bnt-v2-home-page .bntv2-home-grid-section__body { min-width: 0; }
/* Hide the inline section head on desktop — use the side panel. Show on mobile. */
body.bnt-v2-home-page .bntv2-home-grid-section .bntv2-home-section__head--inline { display: none; }

/* ── BRANDS FRAME — constrained horizontal strip ──────────────────────── */
body.bnt-v2-home-page .bntv2-home-brands__frame {
    border: 2px solid var(--bh-ink);
    padding: 24px 30px;
    background: var(--bh-white);
    box-shadow: 6px 6px 0 var(--bh-orange);
    max-width: 1180px;
    margin: 0 auto;
    overflow: hidden;
}
/* Force logo slider items to flow horizontally and stay compact */
body.bnt-v2-home-page .bntv2-home-brands__frame .lgx-logo-slider,
body.bnt-v2-home-page .bntv2-home-brands__frame .lgx-slider-wrapper,
body.bnt-v2-home-page .bntv2-home-brands__frame .e-ossi {
    width: 100% !important;
    max-width: 100% !important;
}
body.bnt-v2-home-page .bntv2-home-brands__frame img {
    max-height: 80px;
    width: auto;
    object-fit: contain;
}

/* ── GRID SECTION FOOTER CTA ─────────────────────────────────────────── */
body.bnt-v2-home-page .bntv2-home-grid-section__footcta {
    margin-top: 28px;
    text-align: center;
}
body.bnt-v2-home-page .bntv2-home-grid-section__cta-btn {
    display: inline-block;
    padding: 16px 32px;
    font-family: var(--bh-fmono) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    text-decoration: none !important;
    background: var(--bh-ink);
    color: var(--bh-white) !important;
    border: 2px solid var(--bh-ink);
    transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
body.bnt-v2-home-page .bntv2-home-grid-section__cta-btn:hover {
    background: var(--bh-orange);
    border-color: var(--bh-orange);
    transform: translate(-2px, -2px);
    box-shadow: 4px 4px 0 var(--bh-ink);
}

/* ── GOOGLE REVIEWS FRAME ─────────────────────────────────────────────── */
body.bnt-v2-home-page .bntv2-home-reviews__badge {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-top: 18px;
    padding: 10px 18px;
    border: 2px solid var(--bh-ink);
    background: var(--bh-cream);
}
body.bnt-v2-home-page .bntv2-home-reviews__stars {
    color: var(--bh-orange);
    font-size: 20px;
    letter-spacing: 0.08em;
}
body.bnt-v2-home-page .bntv2-home-reviews__meta {
    font-family: var(--bh-fmono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--bh-ink);
}
body.bnt-v2-home-page .bntv2-home-reviews__frame {
    border: 2px solid var(--bh-ink);
    padding: 24px 20px;
    background: var(--bh-white);
    box-shadow: 6px 6px 0 var(--bh-orange);
    margin: 24px auto 0;
    /* Now that we override ti-reviews-container's flex to fill 100%, the
       cards fill the full frame width. Constrain to a comfortable reading
       width and center. */
    max-width: 1180px;
    overflow: hidden;
}
/* Trustindex's CSS hardcodes a 285px reserve for a (hidden) footer sidebar:
   .ti-reviews-container { flex: 0 0 calc(100% - 285px); max-width: calc(100% - 285px); }
   The .ti-footer sibling is display:none in our config, so those 285px are
   dead space on the right of every review card row. Override flex + max-width
   to fill the full container. */
body.bnt-v2-home-page .bntv2-home-reviews__frame .ti-widget,
body.bnt-v2-home-page .bntv2-home-reviews__frame .ti-widget-container,
body.bnt-v2-home-page .bntv2-home-reviews__frame .ti-reviews-container-wrapper,
body.bnt-v2-home-page .bntv2-home-reviews__frame .ti-reviews-container,
body.bnt-v2-home-page .bntv2-home-reviews__frame .trustindex-google-widget,
body.bnt-v2-home-page .bntv2-home-reviews__frame .trustindex-google-widget-html {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}
/* Trustindex's own stylesheet contains this high-specificity !important rule:
   .ti-widget.ti-goog .ti-widget-container:not(.ti-col-1) .ti-reviews-container {
       flex: 0 0 calc(100% - 285px) !important;
       max-width: calc(100% - 285px) !important;
   }
   Specificity: (0,4,0) with !important. We must match their selector structure
   AND add specificity to win the cascade. */
body.bnt-v2-home-page .bntv2-home-reviews__frame .ti-widget.ti-goog .ti-widget-container:not(.ti-col-1) .ti-reviews-container,
body.bnt-v2-home-page .bntv2-home-reviews .bntv2-home-reviews__frame .ti-widget .ti-widget-container .ti-reviews-container {
    flex: 1 1 100% !important;
    flex-basis: 100% !important;
    max-width: 100% !important;
    width: 100% !important;
    padding-right: 0 !important;
}
/* Zero out the hidden footer column that's reserving the 285px. */
body.bnt-v2-home-page .bntv2-home-reviews__frame .ti-widget.ti-goog .ti-widget-container .ti-footer {
    flex: 0 0 0 !important;
    max-width: 0 !important;
    width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    display: none !important;
}
/* Brands slider — same treatment */
body.bnt-v2-home-page .bntv2-home-brands__frame .lgx-logo-slider,
body.bnt-v2-home-page .bntv2-home-brands__frame .lgx-slider-wrapper,
body.bnt-v2-home-page .bntv2-home-brands__frame .e-ossi {
    width: 100% !important;
    max-width: 100% !important;
}

/* ── PERF: content-visibility below-fold sections ────────────────────────
   Modern browsers skip layout + paint of these until they're near viewport.
   Massive TTI win on homepage since the 4 product grids, brands, and reviews
   all sit below the fold and were contributing to initial render cost. */
body.bnt-v2-home-page .bntv2-home-grid-section,
body.bnt-v2-home-page .bntv2-home-brands,
body.bnt-v2-home-page .bntv2-home-reviews {
    content-visibility: auto;
    contain-intrinsic-size: 1px 800px;
}
body.bnt-v2-home-page .bntv2-home-sd {
    content-visibility: auto;
    contain-intrinsic-size: 1px 700px;
}

/* ═══════════════════════════════════════════════════════════════════════
   BRUTALIST HERO v2 (replaces Smart Slider 3)
   Pure CSS + inline SVG, zero JS, instant paint.
   ═══════════════════════════════════════════════════════════════════════ */
body.bnt-v2-home-page .bntv2-home-hero-v2 {
    margin: 20px 0 0;
    border: 2px solid var(--bh-ink);
    background: var(--bh-cream);
    box-shadow: 10px 10px 0 var(--bh-orange);
    position: relative;
    overflow: hidden;
}
body.bnt-v2-home-page .bntv2-home-hero-v2::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(var(--bh-ink) 1px, transparent 1px),
        linear-gradient(90deg, var(--bh-ink) 1px, transparent 1px);
    background-size: 40px 40px;
    opacity: 0.04;
    pointer-events: none;
}
body.bnt-v2-home-page .bntv2-home-hero-v2__inner {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 40px;
    align-items: center;
    padding: 60px 56px;
    position: relative;
    z-index: 1;
}
body.bnt-v2-home-page .bntv2-home-hero-v2__eyebrow {
    display: inline-block;
    font-family: var(--bh-fmono);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.18em;
    color: var(--bh-orange);
    border: 2px solid var(--bh-orange);
    padding: 6px 14px;
    margin-bottom: 24px;
    text-transform: uppercase;
}
body.bnt-v2-home-page .bntv2-home-hero-v2__title {
    font-family: var(--bh-fhead) !important;
    font-size: clamp(54px, 7.5vw, 108px) !important;
    font-weight: 400 !important;
    line-height: 0.88 !important;
    letter-spacing: 0.01em !important;
    margin: 0 0 24px !important;
    color: var(--bh-ink) !important;
    text-transform: uppercase;
}
body.bnt-v2-home-page .bntv2-home-hero-v2__title strong {
    color: var(--bh-orange) !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    font-family: inherit !important;
    display: inline !important;
}
body.bnt-v2-home-page .bntv2-home-hero-v2__lead {
    font-family: var(--bh-fmono) !important;
    font-size: 16px !important;
    line-height: 1.6 !important;
    color: var(--bh-ink) !important;
    max-width: 560px;
    margin: 0 0 32px !important;
}
body.bnt-v2-home-page .bntv2-home-hero-v2__lead strong {
    font-weight: 700 !important;
    color: var(--bh-orange) !important;
    font-size: inherit !important;
}
body.bnt-v2-home-page .bntv2-home-hero-v2__ctas {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 36px;
}
body.bnt-v2-home-page .bntv2-home-hero-v2__cta {
    display: inline-block;
    padding: 18px 28px;
    font-family: var(--bh-fmono) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-decoration: none !important;
    border: 2px solid var(--bh-ink);
    color: var(--bh-ink) !important;
    background: transparent;
    transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
/* Use #main to beat the generic v2 a:hover { color:#f6821f } rule at (1,3,3).
   Without this, hero CTA text turns orange on hover = invisible on dark bg. */
body.bnt-v2-home-page #main .bntv2-home-hero-v2__cta:hover,
body.bnt-v2-home-page #main .bntv2-home-hero-v2__cta:focus {
    background: var(--bh-ink) !important;
    color: var(--bh-white) !important;
    transform: translate(-2px, -2px);
    box-shadow: 4px 4px 0 var(--bh-orange);
}
body.bnt-v2-home-page #main .bntv2-home-hero-v2__cta.is-primary {
    background: var(--bh-ink) !important;
    color: var(--bh-white) !important;
}
body.bnt-v2-home-page #main .bntv2-home-hero-v2__cta.is-primary:hover,
body.bnt-v2-home-page #main .bntv2-home-hero-v2__cta.is-primary:focus {
    background: var(--bh-orange) !important;
    color: var(--bh-white) !important;
    border-color: var(--bh-orange) !important;
}
body.bnt-v2-home-page .bntv2-home-hero-v2__meta {
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
    font-family: var(--bh-fmono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: var(--bh-muted);
    padding-top: 20px;
    border-top: 2px solid var(--bh-ink);
}
body.bnt-v2-home-page .bntv2-home-hero-v2__meta span { white-space: nowrap; }

/* ═══════════════════════════════════════════════════════════════════════
   TACTICAL ACQUISITION — auto-crossfading product showcase
   ═══════════════════════════════════════════════════════════════════════ */
.bntv2-tac {
    position: relative;
    width: 100%;
    max-width: 480px;
    aspect-ratio: 4 / 5;
    background: #0a0a0a;
    border: 2px solid #1a1c1c;
    overflow: hidden;
    margin: 0 auto;
}
/* Scan lines overlay */
.bntv2-tac__scanlines {
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
        0deg,
        transparent 0px,
        transparent 2px,
        rgba(246,130,31,0.03) 2px,
        rgba(246,130,31,0.03) 4px
    );
    z-index: 10;
    pointer-events: none;
    animation: bntTacFlicker 4s ease-in-out infinite;
}
@keyframes bntTacFlicker {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.7; }
}
/* HUD top bar */
.bntv2-tac__hud-top {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    padding: 10px 14px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: rgba(26,28,28,0.85);
    z-index: 12;
    font-family: 'Roboto Mono', monospace;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}
.bntv2-tac__hud-label { color: #f6821f; }
.bntv2-tac__hud-status {
    color: #22c55e;
    animation: bntTacBlink 1s steps(1) infinite;
}
@keyframes bntTacBlink { 0%, 50% { opacity: 1; } 51%, 100% { opacity: 0; } }

/* Individual slide */
.bntv2-tac__slide {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 48px 24px 70px;
    opacity: 0;
    transform: scale(0.92);
    transition: opacity 0.5s ease, transform 0.6s cubic-bezier(0.22,1,0.36,1);
    text-decoration: none !important;
    z-index: 5;
    cursor: pointer;
}
.bntv2-tac__slide.is-active {
    opacity: 1;
    transform: scale(1);
    z-index: 6;
}
/* Reticle */
.bntv2-tac__reticle {
    position: absolute;
    inset: 10%;
    z-index: 8;
    pointer-events: none;
    opacity: 0;
    transform: scale(1.5) rotate(-15deg);
    transition: opacity 0.4s ease 0.2s, transform 0.6s cubic-bezier(0.22,1,0.36,1) 0.2s;
}
.bntv2-tac__slide.is-active .bntv2-tac__reticle {
    opacity: 1;
    transform: scale(1) rotate(0deg);
}
.bntv2-tac__reticle svg { width: 100%; height: 100%; }
/* Product image */
.bntv2-tac__img {
    max-width: 65%;
    max-height: 55%;
    object-fit: contain;
    position: relative;
    z-index: 7;
    filter: drop-shadow(0 4px 20px rgba(0,0,0,0.5));
    transition: transform 0.4s ease;
}
.bntv2-tac__slide.is-active .bntv2-tac__img {
    animation: bntTacZoom 0.6s cubic-bezier(0.22,1,0.36,1);
}
@keyframes bntTacZoom {
    from { transform: scale(0.8); opacity: 0; }
    to   { transform: scale(1); opacity: 1; }
}
.bntv2-tac__slide:hover .bntv2-tac__img {
    transform: scale(1.05);
}
/* Info panel */
.bntv2-tac__info {
    position: absolute;
    bottom: 50px;
    left: 0;
    right: 0;
    padding: 14px 18px;
    background: rgba(26,28,28,0.88);
    z-index: 9;
    display: flex;
    flex-direction: column;
    gap: 4px;
    transform: translateY(10px);
    opacity: 0;
    transition: all 0.4s ease 0.3s;
}
.bntv2-tac__slide.is-active .bntv2-tac__info {
    transform: translateY(0);
    opacity: 1;
}
.bntv2-tac__cat {
    font-family: 'Roboto Mono', monospace;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.16em;
    color: #f6821f;
    text-transform: uppercase;
}
.bntv2-tac__name {
    font-family: 'Roboto Mono', monospace;
    font-size: 12px;
    font-weight: 600;
    color: #fff;
    line-height: 1.3;
}
.bntv2-tac__price-row {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-top: 4px;
}
.bntv2-tac__price-sale {
    font-family: 'Bebas Neue', Impact, sans-serif;
    font-size: 28px;
    color: #fff;
    line-height: 1;
}
.bntv2-tac__price-was {
    font-family: 'Roboto Mono', monospace;
    font-size: 13px;
    color: #71717a;
    text-decoration: line-through;
}
/* Discount badge */
.bntv2-tac__badge {
    position: absolute;
    top: 48px;
    right: 14px;
    background: #dc2626;
    color: #fff;
    font-family: 'Bebas Neue', Impact, sans-serif;
    font-size: 22px;
    padding: 6px 12px;
    line-height: 1;
    z-index: 11;
    transform: rotate(3deg) scale(0);
    opacity: 0;
    transition: transform 0.3s cubic-bezier(0.34,1.56,0.64,1) 0.5s, opacity 0.2s ease 0.5s;
}
.bntv2-tac__slide.is-active .bntv2-tac__badge {
    transform: rotate(3deg) scale(1);
    opacity: 1;
}
/* TARGET LOCKED text */
.bntv2-tac__locked {
    position: absolute;
    top: 48px;
    left: 14px;
    font-family: 'Roboto Mono', monospace;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: #22c55e;
    border: 1px solid #22c55e;
    padding: 4px 8px;
    z-index: 11;
    opacity: 0;
    transition: opacity 0.3s ease 0.6s;
    animation: bntTacPulse 1.5s ease-in-out infinite;
}
.bntv2-tac__slide.is-active .bntv2-tac__locked { opacity: 1; }
@keyframes bntTacPulse {
    0%, 100% { border-color: #22c55e; }
    50% { border-color: transparent; }
}
/* Muzzle flash */
.bntv2-tac__flash {
    position: absolute;
    inset: 0;
    background: #fff;
    z-index: 20;
    opacity: 0;
    pointer-events: none;
}
.bntv2-tac__flash.is-firing {
    animation: bntTacFlash 0.15s ease-out;
}
@keyframes bntTacFlash {
    0% { opacity: 0.7; }
    100% { opacity: 0; }
}
/* Navigation pips */
.bntv2-tac__pips {
    position: absolute;
    bottom: 14px;
    left: 0;
    right: 0;
    display: flex;
    justify-content: center;
    gap: 8px;
    z-index: 12;
}
.bntv2-tac__pip {
    width: 24px;
    height: 3px;
    background: rgba(255,255,255,0.3);
    cursor: pointer;
    transition: background 0.2s ease, width 0.3s ease;
}
.bntv2-tac__pip.is-active {
    background: #f6821f;
    width: 36px;
}

/* Mobile: full-width */
@media (max-width: 960px) {
    .bntv2-tac { max-width: 100%; aspect-ratio: 3 / 4; }
}

/* ── Category deals section: center the showcase between hero + cards ──── */
.bntv2-cat-deals {
    display: flex;
    justify-content: center;
    padding: 40px 0;
}
.bntv2-cat-deals .bntv2-tac {
    max-width: 420px;
}
/* On the category-deals reticle, use the category icon instead of SVG crosshair.
   The icon is injected as raw SVG into .bntv2-tac__reticle. Scale it down and
   center it with reduced opacity so it doesn't compete with the product image. */
/* ── Category deals header (SEO text above showcase) ──────────────── */
.bntv2-cat-deals-header {
    text-align: center;
    max-width: 700px;
    margin: 40px auto 0;
    padding: 0 20px;
}
.bntv2-cat-deals-header .bntv2-combo-hero__eyebrow {
    display: inline-block;
    margin-bottom: 14px;
}
.bntv2-cat-deals-header .bntv2-combo-hero__title {
    font-size: clamp(28px, 5vw, 48px) !important;
    margin-bottom: 12px !important;
}
.bntv2-cat-deals-header .bntv2-combo-hero__lead {
    font-size: 13px !important;
    line-height: 1.6 !important;
    color: #71717a !important;
}

.bntv2-cat-deals .bntv2-tac__reticle {
    display: none !important;
}
@media (max-width: 768px) {
    .bntv2-cat-deals { padding: 24px 0; }
    .bntv2-cat-deals .bntv2-tac { max-width: 100%; aspect-ratio: 3 / 4; }
}

/* Hide old grid+stamp (replaced by tactical showcase) */
body.bnt-v2-home-page .bntv2-home-hero-v2__visual { display: none !important; }

/* Visual panel: 3x3 icon grid + stamp */
body.bnt-v2-home-page .bntv2-home-hero-v2__visual {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}
body.bnt-v2-home-page .bntv2-home-hero-v2__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    border: 2px solid var(--bh-ink);
    background: var(--bh-white);
    width: 100%;
    max-width: 420px;
    aspect-ratio: 1 / 1;
}
body.bnt-v2-home-page .bntv2-home-hero-v2__cell {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
    color: var(--bh-ink);
    border-right: 2px solid var(--bh-ink);
    border-bottom: 2px solid var(--bh-ink);
    transition: background 0.3s ease, color 0.3s ease;
}
body.bnt-v2-home-page .bntv2-home-hero-v2__cell:nth-child(3n) { border-right: 0; }
body.bnt-v2-home-page .bntv2-home-hero-v2__cell:nth-last-child(-n+3) { border-bottom: 0; }
body.bnt-v2-home-page .bntv2-home-hero-v2__cell:nth-child(5) {
    background: var(--bh-orange);
    color: var(--bh-white);
}
body.bnt-v2-home-page .bntv2-home-hero-v2__cell svg { width: 100%; height: 100%; }
body.bnt-v2-home-page .bntv2-home-hero-v2__stamp {
    position: absolute;
    top: -20px;
    right: -20px;
    width: 110px;
    height: 110px;
    border-radius: 50%;
    background: var(--bh-ink);
    color: var(--bh-white);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 3px solid var(--bh-white);
    box-shadow: 0 0 0 2px var(--bh-ink);
    transform: rotate(-8deg);
    font-family: var(--bh-fhead);
    text-align: center;
    line-height: 1;
}
body.bnt-v2-home-page .bntv2-home-hero-v2__stamp-num {
    font-size: 36px;
    color: var(--bh-orange);
}
body.bnt-v2-home-page .bntv2-home-hero-v2__stamp-txt {
    font-size: 11px;
    letter-spacing: 0.08em;
    margin-top: 4px;
}
/* Hero marquee */
body.bnt-v2-home-page .bntv2-home-hero-v2__marquee {
    background: var(--bh-ink);
    color: var(--bh-white);
    border-top: 2px solid var(--bh-ink);
    overflow: hidden;
    position: relative;
}
body.bnt-v2-home-page .bntv2-home-hero-v2__marquee-track {
    display: flex;
    gap: 48px;
    white-space: nowrap;
    padding: 14px 0;
    animation: bntvhMarquee 28s linear infinite;
    font-family: var(--bh-fmono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
}
body.bnt-v2-home-page .bntv2-home-hero-v2__marquee-track span { display: inline-block; }

/* ═══════════════════════════════════════════════════════════════════════
   BRUTALIST PRODUCT CARD GRID
   Lightweight replacement for [ux_products] shortcode.
   ═══════════════════════════════════════════════════════════════════════ */
body.bnt-v2-home-page .bntv2-phome-grid {
    display: grid;
    gap: 16px;
}
body.bnt-v2-home-page .bntv2-phome-grid--cols-2 { grid-template-columns: repeat(2, 1fr); }
body.bnt-v2-home-page .bntv2-phome-grid--cols-3 { grid-template-columns: repeat(3, 1fr); }
body.bnt-v2-home-page .bntv2-phome-grid--cols-4 { grid-template-columns: repeat(4, 1fr); }

body.bnt-v2-home-page .bntv2-phome-card {
    display: flex;
    flex-direction: column;
    border: 2px solid var(--bh-ink);
    background: var(--bh-white);
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    position: relative;
}
body.bnt-v2-home-page .bntv2-phome-card:hover {
    transform: translate(-2px, -2px);
    box-shadow: 4px 4px 0 var(--bh-orange);
}
body.bnt-v2-home-page .bntv2-phome-card.is-oos { opacity: 0.88; }
body.bnt-v2-home-page .bntv2-phome-card__img {
    display: block;
    position: relative;
    padding-top: 80%; /* 5:4 landscape — shorter than square so cards don't dominate */
    background: var(--bh-cream);
    border-bottom: 2px solid var(--bh-ink);
    overflow: hidden;
}
body.bnt-v2-home-page .bntv2-phome-card__img img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 12px;
    transition: transform 0.25s ease;
}
body.bnt-v2-home-page .bntv2-phome-card:hover .bntv2-phome-card__img img {
    transform: scale(1.04);
}
body.bnt-v2-home-page .bntv2-phome-card__badge {
    position: absolute;
    top: 10px;
    left: 10px;
    padding: 5px 9px;
    font-family: var(--bh-fmono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.12em;
    border: 2px solid var(--bh-ink);
    background: var(--bh-white);
    color: var(--bh-ink);
    text-transform: uppercase;
    z-index: 2;
}
body.bnt-v2-home-page .bntv2-phome-card__badge.is-sale {
    background: var(--bh-orange);
    color: var(--bh-white);
    border-color: var(--bh-ink);
}
body.bnt-v2-home-page .bntv2-phome-card__badge.is-oos {
    background: #d12a2a;
    color: var(--bh-white);
    border-color: var(--bh-ink);
}
body.bnt-v2-home-page .bntv2-phome-card__body {
    padding: 14px 16px 10px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-height: 88px;
}
body.bnt-v2-home-page .bntv2-phome-card__title {
    font-family: var(--bh-fmono) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    color: var(--bh-ink) !important;
    text-decoration: none !important;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
body.bnt-v2-home-page .bntv2-phome-card__title:hover { color: var(--bh-orange) !important; }
body.bnt-v2-home-page .bntv2-phome-card__price {
    font-family: var(--bh-fhead);
    font-size: 22px;
    line-height: 1;
    color: var(--bh-ink);
    margin-top: auto;
}
body.bnt-v2-home-page .bntv2-phome-card__price del {
    color: var(--bh-muted);
    opacity: 0.6;
    font-size: 16px;
    margin-right: 6px;
}
body.bnt-v2-home-page .bntv2-phome-card__price ins { text-decoration: none; color: var(--bh-orange); }
body.bnt-v2-home-page .bntv2-phome-card__atc {
    display: block;
    padding: 14px;
    font-family: var(--bh-fmono) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-align: center;
    text-decoration: none !important;
    border: 0 !important;
    border-top: 2px solid var(--bh-ink) !important;
    background: var(--bh-ink) !important;
    color: var(--bh-white) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transition: background 0.2s ease;
}
body.bnt-v2-home-page .bntv2-phome-card__atc:hover,
body.bnt-v2-home-page .bntv2-phome-card__atc.loading {
    background: var(--bh-orange) !important;
}
body.bnt-v2-home-page .bntv2-phome-card__atc.added::after {
    content: ' ✓';
    color: #22c55e;
}
body.bnt-v2-home-page .bntv2-phome-card__atc.is-oos-btn {
    background: #d12a2a !important;
    color: var(--bh-white) !important;
    cursor: not-allowed;
}

/* ── Lazy widget placeholders (trustindex + brands) ────────────────────── */
body.bnt-v2-home-page .bntv2-lazy-widget { min-height: 260px; position: relative; }
body.bnt-v2-home-page .bntv2-lazy-widget__placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 260px;
    font-family: var(--bh-fmono);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: var(--bh-muted);
    text-transform: uppercase;
    border: 2px dashed var(--bh-muted);
    background:
        repeating-linear-gradient(
            45deg,
            transparent 0 12px,
            rgba(113, 113, 122, 0.05) 12px 24px
        );
}

/* ═══════════════════════════════════════════════════════════════════════
   HERO + PRODUCT CARD — MOBILE
   ═══════════════════════════════════════════════════════════════════════ */
@media (max-width: 960px) {
    body.bnt-v2-home-page .bntv2-home-hero-v2__inner {
        grid-template-columns: 1fr;
        padding: 48px 32px;
        gap: 48px;
    }
    body.bnt-v2-home-page .bntv2-home-hero-v2__visual { max-width: 420px; margin: 0 auto; }
    body.bnt-v2-home-page .bntv2-phome-grid--cols-3,
    body.bnt-v2-home-page .bntv2-phome-grid--cols-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    body.bnt-v2-home-page .bntv2-home-hero-v2 { box-shadow: 6px 6px 0 var(--bh-orange); }
    body.bnt-v2-home-page .bntv2-home-hero-v2__inner { padding: 36px 20px; }
    body.bnt-v2-home-page .bntv2-home-hero-v2__stamp { width: 88px; height: 88px; top: -14px; right: -14px; }
    body.bnt-v2-home-page .bntv2-home-hero-v2__stamp-num { font-size: 28px; }
    body.bnt-v2-home-page .bntv2-home-hero-v2__stamp-txt { font-size: 9px; }
    body.bnt-v2-home-page .bntv2-home-hero-v2__meta { font-size: 10px; gap: 14px; }
    body.bnt-v2-home-page .bntv2-phome-grid--cols-2,
    body.bnt-v2-home-page .bntv2-phome-grid--cols-3,
    body.bnt-v2-home-page .bntv2-phome-grid--cols-4 { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    body.bnt-v2-home-page .bntv2-phome-card__body { padding: 10px 12px 8px; min-height: 72px; }
    body.bnt-v2-home-page .bntv2-phome-card__title { font-size: 12px !important; }
    body.bnt-v2-home-page .bntv2-phome-card__price { font-size: 18px; }
}


/* ── MOBILE RESPONSIVE ────────────────────────────────────────────────── */
@media (max-width: 960px) {
    body.bnt-v2-home-page .bntv2-home-picks-grid { grid-template-columns: repeat(2, 1fr); }
    body.bnt-v2-home-page .bntv2-home-pick { border-right: 2px solid var(--bh-ink); border-bottom: 2px solid var(--bh-ink); }
    body.bnt-v2-home-page .bntv2-home-pick:nth-child(2n) { border-right: 0; }
    body.bnt-v2-home-page .bntv2-home-pick:nth-child(4n) { border-right: 0; }
    body.bnt-v2-home-page .bntv2-home-pick:nth-last-child(-n+2) { border-bottom: 0; }
    body.bnt-v2-home-page .bntv2-home-pick:nth-last-child(-n+4):not(:nth-last-child(-n+2)) { border-bottom: 2px solid var(--bh-ink); }

    body.bnt-v2-home-page .bntv2-home-stats { grid-template-columns: repeat(2, 1fr); }
    body.bnt-v2-home-page .bntv2-home-stats__item:nth-child(2n) { border-right: 0; }
    body.bnt-v2-home-page .bntv2-home-stats__item:nth-child(-n+2) { border-bottom: 2px solid var(--bh-ink); }

    body.bnt-v2-home-page .bntv2-home-sd__split { grid-template-columns: 1fr; gap: 40px; }

    body.bnt-v2-home-page .bntv2-home-grid-section__inner,
    body.bnt-v2-home-page .bntv2-home-grid-section.is-flipped .bntv2-home-grid-section__inner {
        grid-template-columns: 1fr;
    }
    body.bnt-v2-home-page .bntv2-home-grid-section.is-flipped .bntv2-home-grid-section__side { order: 0; }
    body.bnt-v2-home-page .bntv2-home-grid-section__side { min-height: 0; margin-bottom: 8px; }
    body.bnt-v2-home-page .bntv2-home-grid-section .bntv2-home-section__head--inline { display: none; }
}
@media (max-width: 600px) {
    body.bnt-v2-home-page .bntv2-home { padding: 0 12px 60px; }
    body.bnt-v2-home-page .bntv2-home-section { margin-top: 56px; padding-top: 40px; }
    body.bnt-v2-home-page .bntv2-home-picks-grid { grid-template-columns: 1fr; }
    body.bnt-v2-home-page .bntv2-home-pick { border-right: 0 !important; border-bottom: 2px solid var(--bh-ink) !important; }
    body.bnt-v2-home-page .bntv2-home-pick:last-child { border-bottom: 0 !important; }
    body.bnt-v2-home-page .bntv2-home-stats { grid-template-columns: 1fr; }
    body.bnt-v2-home-page .bntv2-home-stats__item { border-right: 0 !important; border-bottom: 2px solid var(--bh-ink); }
    body.bnt-v2-home-page .bntv2-home-stats__item:last-child { border-bottom: 0; }
    body.bnt-v2-home-page .bntv2-home-hero__marquee-track { font-size: 11px; gap: 28px; }
}

/* ─── SEARCH OVERLAY — mobile improvements ──────────────────────────── */
@media (max-width: 640px) {
    .bntv2-gs-overlay { padding: 16px 8px 8px; }
    .bntv2-gs-panel { max-height: calc(100vh - 24px); max-width: 100%; box-shadow: 4px 4px 0 var(--gs-orange); }
    .bntv2-gs-input-wrap input.bntv2-gs-input { font-size: 18px; padding: 18px 16px 18px 52px; }
    .bntv2-gs-icon { left: 14px; width: 24px; height: 24px; }
    .bntv2-gs-icon svg { width: 24px; height: 24px; }
    .bntv2-gs-close { top: -2px; right: -2px; width: 40px; height: 40px; font-size: 24px; }
    .bntv2-gs-footer { display: none; }
    .bntv2-gs-item-img { width: 56px; height: 56px; }
    .bntv2-gs-item-title { font-size: 13px; }
    .bntv2-gs-item-meta { font-size: 10px; }
}
/* Ensure overlay is above Flatsome's mobile drawer + header */
.bntv2-gs-overlay { z-index: 2147483000 !important; }
/* Lock body scroll while overlay is open (in case the inline style fails) */
body.bntv2-gs-locked { overflow: hidden !important; position: fixed; width: 100%; }
