@font-face{font-family:'Montserrat';font-style:normal;font-weight:100 900;font-display:swap;src:url(/wp-content/uploads/bvm/fonts/inter.woff2) format('woff2')}
@font-face{font-family:'Sora';font-style:normal;font-weight:500 800;font-display:swap;src:url(/wp-content/uploads/bvm/fonts/sora.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(/wp-content/uploads/bvm/fonts/inter.woff2) format('woff2')}
/* ============================================================
   BVM Storefront — Best Vape Mart UI/UX upgrade
   Scoped design layer over Hello Elementor + WooCommerce
   Brand: ink #111 · red #B12931 · gold #E19833 · Montserrat
   ============================================================ */
:root{
  --bvm-ink:#14141a; --bvm-ink-2:#3a3a44; --bvm-muted:#6b6b76;
  --bvm-red:#B12931; --bvm-red-2:#e0463c; --bvm-gold:#E19833;
  --bvm-line:#ececf0; --bvm-bg:#ffffff; --bvm-bg-2:#f6f6f9;
  --bvm-radius:16px; --bvm-radius-sm:12px;
  --bvm-shadow:0 1px 2px rgba(20,20,26,.05), 0 8px 24px rgba(20,20,26,.06);
  --bvm-shadow-lg:0 18px 48px rgba(20,20,26,.14);
  --bvm-ok:#1a8f4c; --bvm-wa:#25D366;
}
body{ color:var(--bvm-ink); }
body a{ text-decoration:none; }

/* ================= TYPOGRAPHY SYSTEM (Sora display + Inter body) ================= */
:root{
  --bvm-display:"Sora", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --bvm-body:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
/* 1) Override Elementor's global font VARS with !important — beats specificity AND load order,
   and flows to every element that uses the globals. Custom-property !important is the reliable lever. */
:root, html, body, .elementor-kit-12, body.elementor-kit-12{
  --e-global-typography-primary-font-family:"Sora" !important;
  --e-global-typography-secondary-font-family:"Sora" !important;
  --e-global-typography-text-font-family:"Inter" !important;
  --e-global-typography-accent-font-family:"Inter" !important;
}
/* 2) Base body font — descendants inherit this. Icon fonts keep working because their
   own font-family declaration (on the element/container) beats inherited values. We do NOT
   touch any icon element, so eicons / Font Awesome / star / dashicons all render normally. */
html body{ font-family:var(--bvm-body) !important; }
/* 3) Targeted text areas that can carry a literal Montserrat (no icon fonts live here). */
html body .elementor-nav-menu a, html body .elementor-nav-menu .elementor-item,
html body p, html body li:not([class*="fa-"]):not([class*="eicon"]),
html body .elementor-widget-text-editor, html body .elementor-widget-text-editor p, html body .elementor-widget-text-editor li,
html body .price, html body .amount, html body .woocommerce-loop-product__title, html body .product_title,
html body .elementor-button-text, html body button, html body input, html body select, html body textarea,
html body .woocommerce-Tabs-panel, html body .woocommerce-Tabs-panel p, html body .woocommerce-Tabs-panel li, html body .woocommerce-Tabs-panel h2, html body .woocommerce-Tabs-panel h3,
html body .wc-tabs li a, html body .product_meta, html body .woocommerce-breadcrumb, html body .woocommerce-breadcrumb a,
html body .bvm-assure, html body .bvm-assure span, html body .bvm-assure b,
html body .bvm-recent__t, html body .bvm-recent__p, html body .bvm-recent__h,
html body .bvm-drawer, html body .bvm-citem, html body .bvm-citem div, html body .bvm-drawer__totrow, html body .bvm-drawer__note,
html body .woocommerce-result-count, html body .woocommerce-ordering, html body table.cart, html body .cart_totals, html body #order_review, html body .checkout{
  font-family:var(--bvm-body) !important;
}
/* 4) Headings / display */
html body h1, html body h2, html body h3, html body h4, html body h5, html body h6,
html body .elementor-heading-title, html body .product_title,
html body .woocommerce-Tabs-panel h2, html body .cart-subtotal th, html body .order-total th,
html body .bvm-recent__h, html body .bvm-drawer__head{
  font-family:var(--bvm-display) !important; letter-spacing:-.012em;
}
/* product-card titles read better in the body font */
html body .woocommerce ul.products li.product .woocommerce-loop-product__title{ font-family:var(--bvm-body) !important; letter-spacing:0; }
/* prevent any off-canvas element (cart drawer) from creating horizontal page scroll */
html, body{ overflow-x:clip; }
/* override a stale inline <style> (from an earlier build) that pins the announcement ticker to the now-unloaded Montserrat */
.bvm-ticker, .bvm-ticker *, .bvm-ticker__track, .bvm-ticker__track span{ font-family:var(--bvm-body) !important; }
/* the same stale block pins template wrappers, the product-card CTA (an <a>) and sale badges to Montserrat */
html body .bvm-home, html body .bvm-product, html body .bvm-shop,
html body .woocommerce ul.products li.product .button,
html body .woocommerce ul.products li.product .added_to_cart,
html body span.onsale, html body .onsale{ font-family:var(--bvm-body) !important; }
html body .woocommerce ul.products li.product .woocommerce-loop-product__title{ font-family:var(--bvm-body) !important; }

/* ================= SECTION HEADINGS — more structured ================= */
.home .elementor-widget-heading h2.elementor-heading-title,
.woocommerce .elementor-widget-heading h2.elementor-heading-title{
  font-weight:800; font-size:clamp(22px,2.4vw,30px); letter-spacing:-.015em; text-transform:none;
  position:relative; display:inline-block; padding-bottom:2px;
}
.home .elementor-widget-heading h2.elementor-heading-title::after{
  content:""; position:absolute; left:0; bottom:-8px; width:46px; height:3px; border-radius:3px;
  background:linear-gradient(90deg,var(--bvm-red),var(--bvm-gold));
}
/* the "VIEW ALL →" links */
.home a:has(> .elementor-button-text), .elementor-widget-button .elementor-button{ font-family:var(--bvm-body); }

/* ---------- rhythm: even spacing between home sections ---------- */
.home .elementor-widget-woocommerce-products{ margin-block:6px; }
.home section.elementor-section, .home .e-con.e-parent{ }

/* ================= HERO SLIDER ================= */
.elementor-element-714768b .swiper-slide-bg{ background-color:#07070b!important; background-position:center right!important; background-size:cover!important; }
.elementor-element-714768b .elementor-repeater-item-0ca137d .swiper-slide-bg{ background-image:url(/wp-content/uploads/bvm/img/hero-pods.webp)!important; }
.elementor-element-714768b .elementor-repeater-item-4ee420b .swiper-slide-bg{ background-image:url(/wp-content/uploads/bvm/img/hero-juice.webp)!important; }
.elementor-element-714768b .elementor-repeater-item-3a960d0 .swiper-slide-bg{ background-image:url(/wp-content/uploads/bvm/img/hero-devices.webp)!important; }
.elementor-element-714768b .elementor-repeater-item-e176b2d .swiper-slide-bg{ background-image:url(/wp-content/uploads/bvm/img/hero-disposables.webp)!important; }
.elementor-element-714768b .swiper-slide{ height:clamp(420px,60vh,660px)!important; }
/* hide slider arrows — they overlap the baked hero text; pagination dots + autoplay remain */
.elementor-element-714768b .elementor-swiper-button{ display:none!important; }
.elementor-element-714768b .swiper-pagination-bullet{ background:#fff;opacity:.5; }
.elementor-element-714768b .swiper-pagination-bullet-active{ opacity:1;width:26px;border-radius:6px; }
@media(max-width:767px){
  .elementor-element-714768b .swiper-slide{ height:115vw!important; }
  .elementor-element-714768b .swiper-slide-bg{ background-position:center top!important; }
  .elementor-element-714768b .elementor-repeater-item-0ca137d .swiper-slide-bg{ background-image:url(/wp-content/uploads/bvm/img/hero-pods-m.webp)!important; }
  .elementor-element-714768b .elementor-repeater-item-4ee420b .swiper-slide-bg{ background-image:url(/wp-content/uploads/bvm/img/hero-juice-m.webp)!important; }
  .elementor-element-714768b .elementor-repeater-item-3a960d0 .swiper-slide-bg{ background-image:url(/wp-content/uploads/bvm/img/hero-devices-m.webp)!important; }
  .elementor-element-714768b .elementor-repeater-item-e176b2d .swiper-slide-bg{ background-image:url(/wp-content/uploads/bvm/img/hero-disposables-m.webp)!important; }
}

/* ================= CATEGORY TILES ================= */
.bvm-tile{ position:relative; overflow:hidden; border-radius:var(--bvm-radius)!important; background-color:#0b0b12!important; background-size:cover!important; background-position:center!important; transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s; box-shadow:0 10px 30px rgba(0,0,0,.18); }
.bvm-tile::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(6,6,12,.82) 0%, rgba(6,6,12,.35) 42%, rgba(6,6,12,0) 70%); z-index:0; transition:opacity .35s; }
.bvm-tile:hover{ transform:translateY(-4px); box-shadow:0 20px 46px rgba(0,0,0,.30); }
.bvm-tile:hover::after{ opacity:.85; }
.bvm-tile > *{ position:relative; z-index:1; }
.bvm-tile .elementor-heading-title{ color:#fff!important; letter-spacing:.01em; text-shadow:0 2px 18px rgba(0,0,0,.5); }
.bvm-tile .elementor-widget-text-editor{ color:rgba(255,255,255,.86)!important; font-weight:600; }
.bvm-tile .elementor-widget-text-editor p{ display:inline-flex;align-items:center;gap:6px; }
.elementor-element-ddd6cf3{ background-image:url(/wp-content/uploads/bvm/img/tile-pods.webp)!important; }
.elementor-element-6224f87{ background-image:url(/wp-content/uploads/bvm/img/tile-juice.webp)!important; }
.elementor-element-dc07711{ background-image:url(/wp-content/uploads/bvm/img/tile-disposables.webp)!important; }
.elementor-element-b217832{ background-image:url(/wp-content/uploads/bvm/img/tile-mods.webp)!important; }
.elementor-element-2bb275a{ background-image:url(/wp-content/uploads/bvm/img/tile-coils.webp)!important; }

/* ================= SECTION HEADINGS ================= */
.home h2.elementor-heading-title{ position:relative; font-weight:800; letter-spacing:-.01em; }
.bvm-section-head .elementor-heading-title::after,
.home .elementor-widget-heading h2.elementor-heading-title::after{ }

/* ================= PRODUCT CARDS (shop, category, widgets, related) ================= */
.woocommerce ul.products{ display:grid!important; grid-template-columns:repeat(2,1fr); gap:14px; margin:0!important; }
@media(min-width:600px){ .woocommerce ul.products{ grid-template-columns:repeat(3,1fr); gap:18px; } }
@media(min-width:1024px){ .woocommerce ul.products{ grid-template-columns:repeat(4,1fr); gap:22px; } }
/* keep 4 cols on wide screens for larger, more premium cards (no cramped 5-up) */
/* hide cluttered per-card variation swatches in catalog loops — users choose on the product page */
.woocommerce ul.products li.product .cfvsw-swatches-container,
.woocommerce ul.products li.product .variations_form,
.woocommerce ul.products li.product table.variations,
.woocommerce ul.products li.product .reset_variations{ display:none !important; }
/* related products: keep to 4 max on desktop */
.single-product .related.products ul.products,.single-product .up-sells ul.products{ grid-template-columns:repeat(2,1fr); }
@media(min-width:1024px){ .single-product .related.products ul.products,.single-product .up-sells ul.products{ grid-template-columns:repeat(4,1fr); } }
.woocommerce ul.products li.product,
.woocommerce ul.products li.product.type-product{ width:auto!important; margin:0!important; float:none!important; display:flex; flex-direction:column; background:var(--bvm-bg); border:1px solid var(--bvm-line); border-radius:var(--bvm-radius); padding:12px 12px 16px; box-shadow:var(--bvm-shadow); transition:transform .28s cubic-bezier(.2,.7,.2,1), box-shadow .28s, border-color .28s; position:relative; overflow:hidden; }
.woocommerce ul.products li.product:hover{ transform:translateY(-5px); box-shadow:var(--bvm-shadow-lg); border-color:#e0e0e6; }
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product img{ width:100%!important; aspect-ratio:1/1; object-fit:contain; background:var(--bvm-bg-2); border-radius:var(--bvm-radius-sm); padding:10px; margin:0 0 12px!important; transition:transform .3s; }
.woocommerce ul.products li.product:hover img{ transform:scale(1.04); }
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2,.woocommerce ul.products li.product h3{ font-size:15px!important; line-height:1.35; font-weight:600; color:var(--bvm-ink); padding:0!important; margin:0 0 8px; display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical; overflow:hidden; min-height:2.7em; }
.woocommerce ul.products li.product .price{ color:var(--bvm-ink); font-weight:800; font-size:16px; margin:0 0 12px; margin-top:auto; }
.woocommerce ul.products li.product .price del{ color:var(--bvm-muted); font-weight:600; opacity:.8; font-size:13px; margin-right:6px; }
.woocommerce ul.products li.product .price ins{ text-decoration:none; color:var(--bvm-red); }
/* buttons in card */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart{ display:block; width:100%; text-align:center; background:var(--bvm-red); color:#fff!important; border-radius:999px; padding:12px 14px!important; font-weight:700; font-size:13.5px; letter-spacing:.03em; text-transform:uppercase; margin:0!important; border:0; transition:background .2s, transform .15s; min-height:44px; }
.woocommerce ul.products li.product .button:hover{ background:var(--bvm-red-dark,#8f2028); }
.woocommerce ul.products li.product .added_to_cart{ margin-top:8px!important; background:var(--bvm-ok); }
/* sale badge */
.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale{ position:absolute; top:12px; left:12px; right:auto; margin:0; background:var(--bvm-red); color:#fff; font-weight:800; font-size:11px; letter-spacing:.06em; text-transform:uppercase; padding:5px 10px; border-radius:999px; min-height:0; min-width:0; line-height:1.2; box-shadow:0 4px 12px rgba(177,41,49,.35); z-index:2; }
/* out of stock dimming + badge */
.woocommerce ul.products li.product.outofstock img{ opacity:.62; filter:saturate(.7); }
.woocommerce ul.products li.product.outofstock::before{ content:"Out of stock"; position:absolute; top:12px; right:12px; z-index:2; background:#3a3a44; color:#fff; font-size:10.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; padding:5px 9px; border-radius:999px; }

/* variation swatches on card */
.woocommerce ul.products li.product .cfvsw-swatches-wrapper,
.woocommerce ul.products li.product .variations{ margin:0 0 10px; }

/* ================= BUTTONS (global) ================= */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt{ border-radius:999px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; padding:14px 26px; min-height:48px; transition:background .2s, transform .15s, box-shadow .2s; }
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce #respond input#submit{ background:var(--bvm-red); color:#fff; box-shadow:0 8px 22px rgba(177,41,49,.28); }
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce #respond input#submit:hover{ background:var(--bvm-red-2); transform:translateY(-1px); }
.woocommerce a.button:hover, .woocommerce button.button:hover{ transform:translateY(-1px); }

/* ================= SINGLE PRODUCT ================= */
.single-product div.product{ }
.single-product div.product div.images{ }
.single-product div.product .woocommerce-product-gallery{ opacity:1!important; }
.single-product div.product .woocommerce-product-gallery__image img{ border-radius:var(--bvm-radius); background:var(--bvm-bg-2); }
.single-product div.product .woocommerce-product-gallery__wrapper{ border-radius:var(--bvm-radius); }
.single-product .product_title.entry-title{ font-weight:800; letter-spacing:-.01em; line-height:1.12; }
.single-product div.product p.price, .single-product div.product span.price{ color:var(--bvm-ink); font-weight:800; }
.single-product div.product p.price ins,.single-product div.product span.price ins{ text-decoration:none; color:var(--bvm-red); }
.single-product div.product p.price del{ color:var(--bvm-muted); font-weight:600; }
.single-product div.product form.cart{ margin-bottom:18px; }
.single-product div.product form.cart .quantity input.qty{ height:52px; border-radius:12px; border:1.5px solid var(--bvm-line); width:76px; font-weight:700; text-align:center; }
.single-product div.product form.cart .single_add_to_cart_button{ background:var(--bvm-red)!important; color:#fff!important; min-height:52px; font-size:15px; box-shadow:0 10px 26px rgba(177,41,49,.3); }
.single-product div.product form.cart .single_add_to_cart_button:hover{ background:var(--bvm-red-2)!important; }
/* variation option labels above the swatches (Shopify-style) */
.single-product .cfvsw-swatches-container{ position:relative; }
.single-product .cfvsw-swatches-container[swatches-attr="attribute_mg"]::before{ content:"Nicotine strength"; }
.single-product .cfvsw-swatches-container[swatches-attr="attribute_pa_nicotine-strength"]::before,
.single-product .cfvsw-swatches-container[swatches-attr="attribute_nicotine"]::before{ content:"Nicotine strength"; }
.single-product .cfvsw-swatches-container[swatches-attr*="pack"]::before{ content:"Pack size"; }
.single-product .cfvsw-swatches-container[swatches-attr*="color"]::before,
.single-product .cfvsw-swatches-container[swatches-attr*="colour"]::before{ content:"Colour"; }
.single-product .cfvsw-swatches-container[swatches-attr*="ohm"]::before,
.single-product .cfvsw-swatches-container[swatches-attr*="resistance"]::before{ content:"Resistance"; }
.single-product .cfvsw-swatches-container[swatches-attr*="flavor"]::before,
.single-product .cfvsw-swatches-container[swatches-attr*="flavour"]::before{ content:"Flavour"; }
.single-product .cfvsw-swatches-container::before{ display:block; width:100%; font-family:var(--bvm-body); font-weight:700; font-size:12.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--bvm-ink-2); margin:0 0 4px; }

/* nicotine strength / variation swatches — bigger tap targets (override inline 24px) */
.cfvsw-swatches-container{ display:flex; flex-wrap:wrap; gap:10px; }
.cfvsw-swatches-option.cfvsw-label-option{ min-width:58px!important; min-height:46px!important; border-radius:10px!important; border:1.5px solid var(--bvm-line)!important; background:#fff; display:inline-flex!important; align-items:center; justify-content:center; padding:0 16px!important; transition:border-color .15s, box-shadow .15s, color .15s; cursor:pointer; }
.cfvsw-swatches-option.cfvsw-label-option:hover{ border-color:#c9c9d2!important; }
.cfvsw-swatch-inner{ font-weight:800!important; font-size:14px!important; letter-spacing:.02em; text-transform:uppercase; color:var(--bvm-ink); }
.cfvsw-swatches-option.cfvsw-selected{ border-color:var(--bvm-red)!important; box-shadow:0 0 0 2px rgba(177,41,49,.25)!important; }
.cfvsw-swatches-option.cfvsw-selected .cfvsw-swatch-inner{ color:var(--bvm-red); }

/* hide theme's duplicate WhatsApp button + COD icon-list on PDP (our richer block replaces them) */
.single-product .elementor-element-00da302, .single-product .elementor-element-5fa1d68{ display:none!important; }

/* cart: hide redundant shipping calculator (flat fee already shown) */
.woocommerce-cart .shipping-calculator-button, .woocommerce-cart form.woocommerce-shipping-calculator{ display:none!important; }
.woocommerce-cart .woocommerce-shipping-destination{ color:var(--bvm-muted); font-size:13px; }
table.variations td.label, table.variations th.label label{ font-weight:800; text-transform:uppercase; letter-spacing:.03em; font-size:13px; }
/* tabs */
.woocommerce-tabs ul.tabs{ display:flex;gap:6px;flex-wrap:wrap;border:0;padding:0!important; }
.woocommerce-tabs ul.tabs::before{ border-color:var(--bvm-line); }
.woocommerce-tabs ul.tabs li{ border:1px solid var(--bvm-line)!important; border-radius:999px!important; background:var(--bvm-bg-2)!important; padding:0!important; }
.woocommerce-tabs ul.tabs li a{ font-weight:700; text-transform:uppercase; letter-spacing:.03em; font-size:13px; padding:10px 20px!important; color:var(--bvm-ink-2); }
.woocommerce-tabs ul.tabs li.active{ background:var(--bvm-ink)!important; border-color:var(--bvm-ink)!important; }
.woocommerce-tabs ul.tabs li.active a{ color:#fff; }
.woocommerce-tabs ul.tabs li::before,.woocommerce-tabs ul.tabs li::after{ display:none!important; }
.woocommerce div.product .woocommerce-tabs .panel h2:first-child{ font-weight:800; }
.single-product .product_meta{ font-size:13px; color:var(--bvm-muted); display:flex; flex-wrap:wrap; gap:6px 18px; padding-top:14px; border-top:1px solid var(--bvm-line); }
.single-product .product_meta > span{ display:inline-flex; gap:6px; }
.single-product .product_meta .tagged_as{ display:none; } /* messy 40+ tags, incl competitor names */
.single-product .product_meta a{ color:var(--bvm-ink-2); font-weight:600; }
/* description / tab content typography */
.woocommerce-Tabs-panel{ padding-top:22px; font-size:15px; line-height:1.75; color:var(--bvm-ink-2); }
.woocommerce-Tabs-panel h2{ font-size:22px; margin:0 0 14px; }
.woocommerce-Tabs-panel h3, .woocommerce-Tabs-panel h4{ font-family:var(--bvm-display); font-weight:700; font-size:17px; margin:24px 0 10px; color:var(--bvm-ink); }
.woocommerce-Tabs-panel p{ margin:0 0 14px; }
.woocommerce-Tabs-panel ul{ margin:0 0 16px; padding-left:2px; list-style:none; }
.woocommerce-Tabs-panel ul li{ position:relative; padding-left:26px; margin:0 0 9px; }
.woocommerce-Tabs-panel ul li::before{ content:""; position:absolute; left:2px; top:9px; width:7px; height:7px; border-radius:50%; background:linear-gradient(135deg,var(--bvm-red),var(--bvm-gold)); }
.woocommerce-Tabs-panel a{ color:var(--bvm-red); font-weight:600; text-decoration:underline; text-underline-offset:2px; }
.single-product div.product .woocommerce-tabs{ margin-top:30px; }

/* ================= PDP low-stock urgency ================= */
.bvm-urgency{ display:inline-flex; align-items:center; gap:9px; margin:4px 0 14px; padding:9px 16px; border-radius:10px; background:rgba(177,41,49,.08); border:1px solid rgba(177,41,49,.2); color:var(--bvm-red); font-weight:700; font-size:13.5px; letter-spacing:.01em; }
.bvm-urgency .dot{ width:9px; height:9px; border-radius:50%; background:var(--bvm-red); box-shadow:0 0 0 rgba(177,41,49,.5); animation:bvm-pulse 1.6s infinite; }
@keyframes bvm-pulse{ 0%{box-shadow:0 0 0 0 rgba(177,41,49,.5)} 70%{box-shadow:0 0 0 7px rgba(177,41,49,0)} 100%{box-shadow:0 0 0 0 rgba(177,41,49,0)} }

/* ================= BVM reassurance / trust on PDP ================= */
.bvm-assure{ margin:16px 0 6px; display:grid; gap:10px; padding:16px; border:1px solid var(--bvm-line); border-radius:var(--bvm-radius); background:linear-gradient(180deg,#fff,var(--bvm-bg-2)); }
.bvm-assure .row{ display:flex; align-items:center; gap:12px; font-size:14px; font-weight:600; color:var(--bvm-ink-2); }
.bvm-assure .row svg{ width:22px;height:22px;flex:0 0 22px; stroke:var(--bvm-red); }
.bvm-assure .row b{ color:var(--bvm-ink); }
.bvm-wa-btn{ display:flex;align-items:center;justify-content:center;gap:10px; width:100%; margin:12px 0 0; background:var(--bvm-wa); color:#fff!important; font-weight:800; letter-spacing:.03em; text-transform:uppercase; padding:15px; border-radius:999px; min-height:52px; box-shadow:0 10px 26px rgba(37,211,102,.32); transition:transform .15s,filter .2s; }
.bvm-wa-btn:hover{ transform:translateY(-1px); filter:brightness(1.03); }
.bvm-wa-btn svg{ width:22px;height:22px;fill:#fff; }

/* ================= STICKY MOBILE ADD TO CART ================= */
.bvm-sticky-atc{ position:fixed; left:0; right:0; bottom:0; z-index:9998; display:none; align-items:center; gap:12px; padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px)); background:rgba(255,255,255,.96); backdrop-filter:blur(10px); border-top:1px solid var(--bvm-line); box-shadow:0 -8px 24px rgba(20,20,26,.1); }
.bvm-sticky-atc img{ width:44px;height:44px;object-fit:contain;border-radius:8px;background:var(--bvm-bg-2);flex:0 0 44px; }
.bvm-sticky-atc .meta{ flex:1; min-width:0; }
.bvm-sticky-atc .meta .t{ font-size:12.5px;font-weight:700;color:var(--bvm-ink); white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.bvm-sticky-atc .meta .p{ font-size:14px;font-weight:800;color:var(--bvm-ink); }
.bvm-sticky-atc .p del{ color:var(--bvm-muted);font-weight:600;font-size:12px;margin-right:5px; }
.bvm-sticky-atc button{ background:var(--bvm-red); color:#fff; border:0; border-radius:999px; padding:13px 20px; font-weight:800; font-size:13px; text-transform:uppercase; letter-spacing:.03em; min-height:46px; white-space:nowrap; }
.bvm-sticky-atc button:disabled{ opacity:.55; }
.single-product .bvm-sticky-atc.ready{ display:flex; }
@media(min-width:768px){
  .bvm-sticky-atc{ gap:18px; padding:12px clamp(20px,6vw,120px); }
  .bvm-sticky-atc img{ width:52px;height:52px;flex:0 0 52px; }
  .bvm-sticky-atc .meta .t{ font-size:15px; }
  .bvm-sticky-atc .meta .p{ font-size:17px; }
  .bvm-sticky-atc button{ padding:14px 34px; font-size:14px; }
}

/* ================= RECENTLY VIEWED ================= */
.bvm-recent{ margin:40px auto; max-width:1280px; padding:0 16px; }
.bvm-recent__h{ font-family:var(--bvm-display); font-weight:800; font-size:clamp(20px,2.2vw,26px); letter-spacing:-.015em; margin:0 0 18px; position:relative; padding-bottom:10px; }
.bvm-recent__h::after{ content:""; position:absolute; left:0; bottom:0; width:44px; height:3px; border-radius:3px; background:linear-gradient(90deg,var(--bvm-red),var(--bvm-gold)); }
.bvm-recent__row{ display:grid; grid-auto-flow:column; grid-auto-columns:minmax(150px,1fr); gap:16px; overflow-x:auto; padding-bottom:8px; scroll-snap-type:x mandatory; }
@media(min-width:768px){ .bvm-recent__row{ grid-auto-columns:minmax(190px,1fr); } }
.bvm-recent__card{ scroll-snap-align:start; background:#fff; border:1px solid var(--bvm-line); border-radius:14px; padding:12px; transition:transform .25s, box-shadow .25s; }
.bvm-recent__card:hover{ transform:translateY(-4px); box-shadow:var(--bvm-shadow-lg); }
.bvm-recent__img{ aspect-ratio:1/1; background:var(--bvm-bg-2); border-radius:10px; display:flex; align-items:center; justify-content:center; overflow:hidden; margin-bottom:10px; }
.bvm-recent__img img{ width:100%; height:100%; object-fit:contain; padding:8px; }
.bvm-recent__t{ font-size:13.5px; font-weight:600; color:var(--bvm-ink); line-height:1.35; display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden; min-height:2.7em; }
.bvm-recent__p{ font-weight:800; color:var(--bvm-ink); margin-top:6px; font-size:14px; }
.bvm-recent__p del{ color:var(--bvm-muted); font-weight:600; font-size:12px; margin-right:5px; }

/* ================= BACK TO TOP ================= */
.bvm-top{ position:fixed; right:18px; bottom:86px; z-index:9990; width:46px;height:46px;border:0;border-radius:50%; background:var(--bvm-ink); color:#fff; display:flex;align-items:center;justify-content:center; box-shadow:var(--bvm-shadow-lg); opacity:0; transform:translateY(12px); pointer-events:none; transition:opacity .25s, transform .25s, background .2s; }
.bvm-top.show{ opacity:1; transform:none; pointer-events:auto; }
.bvm-top:hover{ background:#000; }
.bvm-top svg{ width:22px !important; height:22px !important; flex:0 0 auto; display:block; stroke:#fff !important; }
@media(min-width:768px){ .bvm-top{ right:24px; bottom:28px; } }
/* declutter: on mobile product pages the sticky add-to-cart already anchors the bottom */
@media(max-width:767px){ body.single-product .bvm-top{ display:none !important; } }

/* ================= CART DRAWER ================= */
.bvm-drawer-overlay{ position:fixed; inset:0; background:rgba(10,10,14,.5); backdrop-filter:blur(2px); opacity:0; pointer-events:none; transition:opacity .3s; z-index:100000; }
.bvm-drawer-overlay.show{ opacity:1; pointer-events:auto; }
.bvm-drawer{ position:fixed; top:0; right:0; height:100%; width:min(420px,92vw); background:#fff; z-index:100001; display:flex; flex-direction:column; transform:translateX(105%); transition:transform .32s cubic-bezier(.2,.7,.2,1); box-shadow:-20px 0 60px rgba(0,0,0,.25); }
.bvm-drawer.show{ transform:none; }
.bvm-drawer__head{ display:flex; align-items:center; justify-content:space-between; padding:18px 20px; border-bottom:1px solid var(--bvm-line); font-family:var(--bvm-display); font-weight:800; font-size:18px; }
.bvm-drawer__x{ border:0; background:transparent; font-size:28px; line-height:1; cursor:pointer; color:var(--bvm-ink-2); }
.bvm-drawer__body{ flex:1; overflow-y:auto; padding:12px 20px; }
.bvm-drawer__loading, .bvm-drawer__empty{ text-align:center; color:var(--bvm-muted); padding:40px 0; }
.bvm-drawer__empty .bvm-drawer__checkout{ display:inline-block; margin-top:14px; width:auto; padding:12px 24px; }
.bvm-citem{ display:flex; gap:12px; padding:14px 0; border-bottom:1px solid var(--bvm-line); }
.bvm-citem img{ width:64px;height:64px;object-fit:contain;background:var(--bvm-bg-2);border-radius:10px;flex:0 0 64px; }
.bvm-citem__m{ flex:1; min-width:0; }
.bvm-citem__t{ font-size:14px; font-weight:600; color:var(--bvm-ink); line-height:1.35; }
.bvm-citem__q{ font-size:12.5px; color:var(--bvm-muted); margin-top:4px; }
.bvm-citem__p{ font-weight:800; color:var(--bvm-ink); font-size:14px; white-space:nowrap; }
.bvm-drawer__foot{ border-top:1px solid var(--bvm-line); padding:18px 20px calc(18px + env(safe-area-inset-bottom,0px)); background:var(--bvm-bg-2); }
.bvm-drawer__totrow{ display:flex; justify-content:space-between; align-items:baseline; font-size:15px; margin-bottom:4px; }
.bvm-drawer__totrow strong{ font-family:var(--bvm-display); font-size:20px; }
.bvm-drawer__note{ font-size:12.5px; color:var(--bvm-muted); margin-bottom:14px; }
.bvm-drawer__checkout{ display:block; text-align:center; background:var(--bvm-red); color:#fff!important; font-weight:800; letter-spacing:.03em; text-transform:uppercase; padding:15px; border-radius:12px; box-shadow:0 10px 26px rgba(177,41,49,.3); }
.bvm-drawer__checkout:hover{ background:var(--bvm-red-2); }
.bvm-drawer__viewcart{ display:block; text-align:center; margin-top:10px; font-weight:700; color:var(--bvm-ink-2); font-size:14px; }

/* ================= CART ================= */
.woocommerce-cart .cart_totals, .woocommerce-cart table.cart{ }
.woocommerce table.shop_table{ border-radius:var(--bvm-radius); overflow:hidden; border:1px solid var(--bvm-line); }
.woocommerce-cart table.cart img{ border-radius:10px; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{ background:var(--bvm-red); font-size:16px; min-height:56px; display:flex;align-items:center;justify-content:center; }
.bvm-cod-note{ margin-top:12px; display:flex; gap:10px; align-items:flex-start; font-size:13.5px; color:var(--bvm-ink-2); background:var(--bvm-bg-2); border:1px dashed #d9d9e0; border-radius:12px; padding:12px 14px; }
.bvm-cod-note svg{ width:20px;height:20px;flex:0 0 20px;stroke:var(--bvm-ok); margin-top:1px; }

/* ================= CHECKOUT ================= */
.woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2{ float:none; width:100%; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce-checkout select, .select2-container .select2-selection{ border-radius:12px!important; border:1.5px solid var(--bvm-line)!important; min-height:50px; padding:12px 14px; }
.woocommerce form .form-row label{ font-weight:600; font-size:13.5px; }
#payment{ border-radius:var(--bvm-radius); }
#payment ul.payment_methods{ border-radius:var(--bvm-radius) var(--bvm-radius) 0 0; }
#place_order{ background:var(--bvm-red)!important; min-height:56px; font-size:16px; }
.bvm-phone-hint{ display:block; margin-top:6px; font-size:12.5px; color:var(--bvm-muted); }

/* ================= FOOTER polish ================= */
footer .elementor-heading-title{ letter-spacing:.02em; }

/* ================= ACCESSIBILITY / MISC ================= */
.bvm-visually-hidden{ position:absolute!important; width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0; }
img{ max-width:100%; }
/* header logo crispness */
.elementor-location-header img[src*="Untitled-design-3"]{ image-rendering:auto; }

/* hide header search (per owner preference) */
.elementor-element-e7b1ce2, .elementor-location-header .elementor-widget-search-form{ display:none!important; }

/* Logo: header and popup use the dark-ribbon SVG (bvm-logo-light-v2.svg, swapped in by bvm_filter_html with true width/height); the footer keeps the cream original. */
.elementor-location-header .elementor-widget-image img{ max-height:56px; width:auto; }
@media(max-width:767px){ .elementor-location-header .elementor-widget-image img{ max-height:44px; } }

/* pagination */
.woocommerce nav.woocommerce-pagination ul{ border:0;gap:6px;display:flex;justify-content:center; }
.woocommerce nav.woocommerce-pagination ul li{ border:0; }
.woocommerce nav.woocommerce-pagination ul li a,.woocommerce nav.woocommerce-pagination ul li span{ border:1px solid var(--bvm-line); border-radius:10px; min-width:42px;height:42px;line-height:42px;padding:0;font-weight:700; }
.woocommerce nav.woocommerce-pagination ul li span.current{ background:var(--bvm-ink); color:#fff; border-color:var(--bvm-ink); }

/* result count / ordering */
.woocommerce .woocommerce-result-count{ color:var(--bvm-muted);font-weight:600; }
.woocommerce .woocommerce-ordering select{ border-radius:10px;border:1.5px solid var(--bvm-line);padding:8px 12px;font-weight:600; }

/* ============================================================
   MOBILE-FIRST REFINEMENTS (≤1024 menu, ≤767 layout)
   99% of traffic is mobile — treat these as primary.
   ============================================================ */

/* ---------- Full-height mobile menu overlay ---------- */
@media(max-width:1024px){
  /* Only the MAIN <nav> dropdown becomes the full-height overlay — NOT the <ul> sub-menus
     (they share the class), which must stay inline accordions with a back-out via the toggle. */
  .elementor-element-a7021ca nav.elementor-nav-menu--dropdown{
    position:fixed !important; inset:0 !important; top:0 !important; left:0 !important; right:0 !important;
    width:100% !important; height:100vh !important; height:100dvh !important; max-height:none !important;
    overflow-y:auto !important; -webkit-overflow-scrolling:touch !important; overscroll-behavior:contain;
    background:#fff !important; z-index:99990 !important;
    padding:calc(78px + env(safe-area-inset-top,0px)) 20px calc(60px + env(safe-area-inset-bottom,0px)) !important;
    border:0 !important; box-shadow:none !important; margin:0 !important; border-radius:0 !important;
  }
  /* paint the logo into the open menu (the real header logo sits behind the fixed overlay) */
  .elementor-element-a7021ca nav.elementor-nav-menu--dropdown::before{
    content:""; position:absolute; top:calc(20px + env(safe-area-inset-top,0px)); left:20px;
    width:150px; height:46px; background:url(/wp-content/uploads/bvm/bvm-logo-light-v2.svg) left center/contain no-repeat;
  }
  /* keep header (logo + cart + toggle X) visible/tappable above the overlay */
  .elementor-location-header .elementor-sticky, .elementor-location-header > .elementor,
  .elementor-location-header .elementor-menu-toggle,
  .elementor-location-header .elementor-widget-image,
  .elementor-location-header .elementor-widget-woocommerce-menu-cart{ z-index:99999 !important; position:relative; }
  .elementor-menu-toggle{ position:relative; z-index:100000 !important; }
  /* top-level menu item styling: comfortable tap targets + dividers */
  .elementor-element-a7021ca nav.elementor-nav-menu--dropdown .elementor-nav-menu > li > a.elementor-item,
  .elementor-element-a7021ca nav.elementor-nav-menu--dropdown .elementor-nav-menu > li > .elementor-item{
    font-family:var(--bvm-display) !important; font-weight:700 !important; font-size:18px !important;
    padding:15px 4px !important; border-bottom:1px solid var(--bvm-line) !important; color:var(--bvm-ink) !important;
    min-height:52px; display:flex; align-items:center;
  }
  /* the expand arrow (dropdown toggle) as a clearly tappable control */
  .elementor-element-a7021ca nav.elementor-nav-menu--dropdown .elementor-nav-menu .elementor-item-active + .sub-menu,
  .elementor-element-a7021ca nav.elementor-nav-menu--dropdown .sub-menu{
    position:static !important; width:100% !important; box-shadow:none !important; border:0 !important;
    background:var(--bvm-bg-2) !important; border-radius:10px !important; margin:2px 0 10px !important; padding:4px 6px !important;
  }
  .elementor-element-a7021ca nav.elementor-nav-menu--dropdown .sub-menu .elementor-item,
  .elementor-element-a7021ca nav.elementor-nav-menu--dropdown .sub-menu .elementor-sub-item{
    font-family:var(--bvm-body) !important; font-size:15.5px !important; font-weight:500 !important;
    padding:12px 12px !important; border-bottom:1px solid rgba(0,0,0,.05) !important; color:var(--bvm-ink-2) !important; min-height:46px;
  }
  .elementor-element-a7021ca nav.elementor-nav-menu--dropdown .elementor-menu-toggle{ width:44px;height:44px; display:flex;align-items:center;justify-content:center; }
  .elementor-element-a7021ca nav.elementor-nav-menu--dropdown a.elementor-item:hover,
  .elementor-element-a7021ca nav.elementor-nav-menu--dropdown .elementor-item.highlighted{ background:var(--bvm-bg-2) !important; color:var(--bvm-red) !important; }
  .elementor-element-a7021ca nav.elementor-nav-menu--dropdown li a[href*="sale" i]{ color:var(--bvm-red) !important; }
}

/* ---------- Home product rows become swipeable carousels ---------- */
@media(max-width:767px){
  body.home .woocommerce ul.products,
  .single-product .related.products ul.products,
  .single-product .up-sells ul.products{
    display:flex !important; flex-wrap:nowrap !important; grid-template-columns:none !important;
    overflow-x:auto; gap:12px; scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch;
    padding:2px 2px 12px; scrollbar-width:none;
  }
  body.home .woocommerce ul.products::-webkit-scrollbar,
  .single-product .related.products ul.products::-webkit-scrollbar{ display:none; }
  body.home .woocommerce ul.products li.product,
  .single-product .related.products ul.products li.product,
  .single-product .up-sells ul.products li.product{
    flex:0 0 47% !important; width:47% !important; scroll-snap-align:start;
  }
}

/* ---------- Category/archive stays a clean 2-col grid on mobile (already), tidy gaps ---------- */
@media(max-width:767px){
  .woocommerce ul.products{ gap:12px; }
  .woocommerce ul.products li.product{ padding:10px 10px 14px; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title,
  .woocommerce ul.products li.product h3{ font-size:13.5px !important; min-height:2.6em; }
  .woocommerce ul.products li.product .price{ font-size:14.5px; }
  .woocommerce ul.products li.product .button, .woocommerce ul.products li.product .added_to_cart{ font-size:12px; padding:11px 10px !important; }
}

/* ---------- Category tiles: shorter, consistent height on mobile ---------- */
@media(max-width:767px){
  .elementor-element-ddd6cf3, .elementor-element-6224f87, .elementor-element-dc07711,
  .elementor-element-b217832, .elementor-element-2bb275a, .bvm-tile{
    min-height:0 !important; aspect-ratio:16/9; }
  .bvm-tile .elementor-heading-title{ font-size:18px !important; } .elementor-element-ddd6cf3 .elementor-heading-title{ font-size:23px !important; }
}

/* ---------- Section headings + rhythm on mobile ---------- */
@media(max-width:767px){
  .home .elementor-widget-heading h2.elementor-heading-title,
  .woocommerce .elementor-widget-heading h2.elementor-heading-title{ font-size:20px !important; }
  .bvm-recent{ margin:28px auto; }
}

/* ---------- WhatsApp float: keep clear of the sticky add-to-cart, slightly smaller on phones ---------- */
@media(max-width:767px){
  .wa__btn_popup{ width:50px !important; height:50px !important; }
  body.single-product .wa__btn_popup{ bottom:86px !important; }
}

/* ============================================================
   ROUND 8 — footer font, heading wrapping, cart qty, floats, catalog polish
   ============================================================ */

/* ---------- Footer: match the site type system (was falling back off-brand) ---------- */
.elementor-location-footer, .elementor-location-footer p, .elementor-location-footer a,
.elementor-location-footer li, .elementor-location-footer span, .elementor-location-footer div,
.elementor-location-footer .elementor-icon-list-text, .elementor-location-footer .elementor-widget-text-editor{
  font-family:var(--bvm-body) !important;
}
.elementor-location-footer h1, .elementor-location-footer h2, .elementor-location-footer h3,
.elementor-location-footer h4, .elementor-location-footer h5, .elementor-location-footer .elementor-heading-title{
  font-family:var(--bvm-display) !important; letter-spacing:.01em;
}

/* ---------- Headings: never break mid-word; calmer sizes (were "overdone") ---------- */
h1, h2, h3, h4, .elementor-heading-title, .product_title,
.bvm-recent__h, .woocommerce-products-header__title{
  word-break:normal !important; overflow-wrap:break-word; hyphens:none !important;
}
.home .elementor-widget-heading h2.elementor-heading-title,
.woocommerce .elementor-widget-heading h2.elementor-heading-title{ line-height:1.15; }
@media(max-width:767px){
  .home .elementor-widget-heading h2.elementor-heading-title,
  .woocommerce .elementor-widget-heading h2.elementor-heading-title{ font-size:19px !important; letter-spacing:-.01em; }
  .single-product .product_title{ font-size:24px !important; line-height:1.18; }
  .woocommerce-products-header__title, .woocommerce .term-description + *, .page-title{ font-size:22px !important; }
}

/* ---------- Cart: proper 44px quantity control on mobile ---------- */
.woocommerce-cart .quantity input.qty, .woocommerce-cart td.product-quantity input.qty{
  min-height:44px !important; height:44px; border-radius:10px; border:1.5px solid var(--bvm-line);
  width:72px; text-align:center; font-weight:700;
}
.woocommerce-cart table.cart td.actions .button{ min-height:44px; }

/* ---------- WhatsApp float: clear the checkout CTA on cart/checkout/account ---------- */
body.woocommerce-cart .wa__btn_popup,
body.woocommerce-checkout .wa__btn_popup,
body.woocommerce-account .wa__btn_popup{ bottom:92px !important; }
/* on mobile, move back-to-top to the LEFT so it never crowds the WhatsApp FAB (bottom-right) */
@media(max-width:767px){ .bvm-top{ left:16px !important; right:auto !important; bottom:22px !important; } }

/* ---------- Category / catalog: cleaner spacing + crisp product images ---------- */
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product img.attachment-woocommerce_thumbnail{
  image-rendering:auto; object-fit:contain; background:#fff; padding:8px;
}
.woocommerce .products-header, .woocommerce-products-header{ margin-bottom:8px; }
@media(max-width:767px){
  /* tighten the archive header (breadcrumb + title + sorting) */
  .woocommerce .woocommerce-result-count{ margin:2px 0 8px; font-size:12.5px; }
  .woocommerce .woocommerce-ordering{ margin-bottom:10px; width:100%; }
  .woocommerce .woocommerce-ordering select{ width:100%; }
  /* category sidebar (filters) reads as a tidy block below the grid on mobile */
  .woocommerce .elementor-widget-sidebar, .widget_product_categories, .widget_price_filter{ margin-top:18px; }
  /* a touch more breathing room around each section */
  body.home .elementor-widget-woocommerce-products{ margin-bottom:6px; }
}

/* ============================================================
   ROUND 9 — coherent INTERACTION / STATE system
   Fixes: menu items rendering dark-on-dark; jarring red↔black hover
   swaps; missing focus states. One accent (brand red), soft tints,
   gentle same-hue darkening — no "crazy" color jumps.
   ============================================================ */
:root{ --bvm-red-dark:#8f2028; --bvm-red-tint:rgba(177,41,49,.08); }

/* --- Nav menu (desktop + mobile dropdown): transparent by default, soft red tint on hover/active --- */
.elementor-nav-menu .elementor-item,
nav.elementor-nav-menu--dropdown .elementor-item,
nav.elementor-nav-menu--dropdown .elementor-sub-item{
  background-color:transparent !important; transition:background-color .18s ease, color .18s ease;
}
.elementor-nav-menu .elementor-item:hover,
.elementor-nav-menu .elementor-item:focus,
.elementor-nav-menu .elementor-item.elementor-item-active,
.elementor-nav-menu .elementor-item.highlighted,
nav.elementor-nav-menu--dropdown .elementor-item:hover,
nav.elementor-nav-menu--dropdown .elementor-item:focus,
nav.elementor-nav-menu--dropdown .elementor-item.elementor-item-active,
nav.elementor-nav-menu--dropdown .elementor-sub-item:hover,
nav.elementor-nav-menu--dropdown .elementor-sub-item.elementor-item-active{
  background-color:var(--bvm-red-tint) !important; color:var(--bvm-red) !important;
}
/* desktop underline pointer stays red; kill any dark box fill the kit adds */
.elementor-nav-menu--main .elementor-item:hover, .elementor-nav-menu--main .elementor-item:focus{ background-color:transparent !important; color:var(--bvm-red) !important; }

/* --- Primary red CTAs: gentle same-hue darken on hover (never swap hue) --- */
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce #respond input#submit:hover,
.single-product div.product form.cart .single_add_to_cart_button:hover,
#place_order:hover, .wc-proceed-to-checkout a.checkout-button:hover, .checkout-button:hover,
.bvm-drawer__checkout:hover{ background:var(--bvm-red-dark) !important; transform:translateY(-1px); }

/* --- Links: ink/muted → brand red on hover, no background flashes --- */
a{ transition:color .18s ease; }
.woocommerce-breadcrumb a:hover, .product_meta a:hover,
.elementor-location-footer a:hover, footer a:hover, .widget a:hover,
.woocommerce-Tabs-panel a:hover, .bvm-drawer__viewcart:hover, .posted_in a:hover,
.woocommerce-loop-product__title:hover, li.product a:hover .woocommerce-loop-product__title{ color:var(--bvm-red) !important; }

/* --- Accessibility: visible keyboard focus (brand ring) --- */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible,
.elementor-item:focus-visible, .cfvsw-swatches-option:focus-visible, .single_add_to_cart_button:focus-visible{
  outline:2px solid var(--bvm-red) !important; outline-offset:2px !important;
}
/* remove default browser tap-highlight flash on mobile, use our own subtle states */
a, button, .elementor-item, .cfvsw-swatches-option{ -webkit-tap-highlight-color:rgba(177,41,49,.12); }

/* ============================================================ ROUND 10 — audit fixes (PDP) */
/* 1) PDP tabs: a stale ".bvm-product" Custom-CSS block (Montserrat, underline tabs) still ships
   inline on the product container and outranks the pill-tab rules, turning the ACTIVE tab label
   dark-on-dark (unreadable) and inactive links grey. Reassert the pill system with !important. */
.single-product .woocommerce-tabs ul.tabs li a{ color:var(--bvm-ink-2)!important; box-shadow:none!important; font-family:var(--bvm-body)!important; }
.single-product .woocommerce-tabs ul.tabs li.active a{ color:#fff!important; }

/* 2) Out-of-stock variation swatch (e.g. 50MG): the swatch plugin adds .cfvsw-swatches-disabled
   but leaves it looking identical to an in-stock option. Give it a clear disabled skin. */
.single-product .cfvsw-swatches-option.cfvsw-swatches-disabled{ opacity:.5!important; cursor:not-allowed!important; position:relative; border-color:var(--bvm-line)!important; box-shadow:none!important; }
.single-product .cfvsw-swatches-option.cfvsw-swatches-disabled:hover{ border-color:var(--bvm-line)!important; }
.single-product .cfvsw-swatches-option.cfvsw-swatches-disabled .cfvsw-swatch-inner{ text-decoration:line-through; color:var(--bvm-ink-2)!important; }
.single-product .cfvsw-swatches-option.cfvsw-swatches-disabled::after{ content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; background:linear-gradient(to top left, transparent calc(50% - .75px), rgba(120,120,130,.5) 50%, transparent calc(50% + .75px)); }

/* 3) "Nicotine Strength" was printing twice (native table <th> label + our ::before) and the
   variations table never collapsed on mobile. Keep ONE label (the native <th>, correct for every
   attribute) and stack label-above-swatches full width. */
.single-product .cfvsw-swatches-container::before{ content:none!important; }
.single-product table.variations,
.single-product table.variations tbody,
.single-product table.variations tr,
.single-product table.variations th,
.single-product table.variations td{ display:block!important; width:100%!important; }
.single-product table.variations th.label{ text-align:left!important; padding:0 0 6px!important; }
.single-product table.variations th.label label{ font-family:var(--bvm-body)!important; font-weight:700!important; font-size:12.5px!important; letter-spacing:.05em; text-transform:uppercase; color:var(--bvm-ink-2)!important; margin:0; display:block; }
.single-product table.variations td.value{ padding:0!important; }
.single-product table.variations tr + tr{ margin-top:14px; }

/* 4) Qty stepper buttons injected by bvm.js */
.bvm-qty{ display:inline-flex; align-items:stretch; border:1.5px solid var(--bvm-line); border-radius:12px; overflow:hidden; background:#fff; }
.bvm-qty .bvm-qty-btn{ width:44px; min-height:52px; border:0; background:#fff; color:var(--bvm-ink); font-size:22px; font-weight:600; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .15s; }
.bvm-qty .bvm-qty-btn:hover{ background:var(--bvm-bg-2); }
.bvm-qty .bvm-qty-btn:active{ background:rgba(177,41,49,.1); }
.single-product div.product form.cart .bvm-qty input.qty{ border:0!important; width:46px!important; min-height:52px; text-align:center; font-weight:800; font-size:16px; -moz-appearance:textfield; margin:0!important; box-shadow:none!important; }
.single-product div.product form.cart .bvm-qty input.qty::-webkit-outer-spin-button,
.single-product div.product form.cart .bvm-qty input.qty::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }

/* Empty leftover Elementor container on the product template (renders as a stray grey bar between
   the WhatsApp button and the product meta). */
.single-product .elementor-element-7338a92{ display:none!important; }

/* Hide the plugin's floating WhatsApp button (z-index 999999999) while the cart drawer is open,
   so it can't cover the drawer subtotal / checkout button. */
body.bvm-modal-open .wa__btn_popup{ display:none!important; }

/* ============================================================ ROUND 11 — audit fixes (category) */
/* Pagination could overflow 390px (an inline rule set nowrap); allow it to wrap */
.woocommerce nav.woocommerce-pagination ul{ flex-wrap:wrap!important; row-gap:6px; }
/* Loop add-to-cart spinner needs clearance so it doesn't sit on the label */
.woocommerce ul.products li.product .button.loading{ padding-right:2.4em!important; }

/* Mobile filter trigger + off-canvas filter drawer (reuses the drawer overlay, slides from LEFT) */
.bvm-filter-btn{ display:none; }
@media(max-width:767px){
  .bvm-filter-btn{ display:inline-flex; align-items:center; gap:8px; margin:0 0 14px; padding:11px 18px; border:1.5px solid var(--bvm-line); border-radius:12px; background:#fff; font-family:var(--bvm-body); font-weight:700; font-size:14px; letter-spacing:.02em; color:var(--bvm-ink); cursor:pointer; }
  .bvm-filter-btn svg{ color:var(--bvm-red); }
  .bvm-filter-btn:active{ background:var(--bvm-bg-2); }
}
.bvm-filter-drawer{ left:0; right:auto; transform:translateX(-105%); width:min(360px,90vw); box-shadow:20px 0 60px rgba(0,0,0,.25); }
.bvm-filter-drawer.show{ transform:none; }
.bvm-filter-body{ padding:18px 20px 44px; overflow-y:auto; }
.bvm-filter-drawer .bvm-side{ display:block!important; width:auto!important; max-width:none!important; margin:0!important; }
.bvm-filter-drawer .bvm-side .elementor-widget:not(:last-child){ margin-bottom:24px; }
.bvm-filter-drawer .bvm-side .widget-title,.bvm-filter-drawer .bvm-side h2,.bvm-filter-drawer .bvm-side h3{ font-family:var(--bvm-display); font-size:15px; text-transform:uppercase; letter-spacing:.04em; margin:0 0 12px; }

/* ============================================================ ROUND 12 — audit fixes (nav/header) */
/* Logo was squashed: Elementor's fixed width on the image widget beat the earlier aspect fix */
.elementor-location-header .elementor-element-2b49395 img,
.elementor-location-header .elementor-widget-image img,
#elementor-popup-modal-39497 .elementor-widget-image img{ width:auto!important; height:auto!important; max-height:52px!important; object-fit:contain!important; }
@media(max-width:767px){ .elementor-location-header .elementor-widget-image img{ max-height:42px!important; } }

/* Hamburger tap target was ~33px — the prior rule required the nav-dropdown ancestor, but the
   toggle is NOT inside it. Target it directly for a true 44x44 target. */
@media(max-width:1024px){ .elementor-element-a7021ca .elementor-menu-toggle{ width:44px!important; height:44px!important; display:flex; align-items:center; justify-content:center; } }
/* desktop shows the full menu: the burger must not appear under it */
@media(min-width:1025px){ .elementor-element-a7021ca .elementor-menu-toggle{ display:none!important; } }

/* Empty cart: hide the "0" count bubble in the header */
.elementor-menu-cart__toggle_button .elementor-button-icon-qty[data-counter="0"]{ display:none!important; }

/* Accordion sub-items were flipping to Elementor's stock black box on keyboard :focus */
nav.elementor-nav-menu--dropdown .elementor-item:focus,
nav.elementor-nav-menu--dropdown .elementor-sub-item:focus{ background:rgba(177,41,49,.08)!important; color:var(--bvm-red)!important; }

/* Desktop dropdown flyouts were the only square-cornered panel on the site */
@media(min-width:1025px){
  .elementor-element-a7021ca .elementor-nav-menu--dropdown,
  .elementor-element-a7021ca .sub-menu{ border-radius:var(--bvm-radius-sm,10px)!important; overflow:hidden; box-shadow:var(--bvm-shadow-lg,0 12px 40px rgba(20,20,26,.16))!important; padding:6px!important; }
}

/* ===================================================== ROUND 13 — audit fixes (pdp content) */
/* Related/up-sell headings still wore the stale .bvm-product uppercase style — match "Recently viewed" */
html body .bvm-product section.related > h2, html body .bvm-product section.upsells > h2,
html body .single-product .related.products > h2, html body .single-product .up-sells > h2{
  text-transform:none!important; color:var(--bvm-ink)!important; font-family:var(--bvm-display)!important;
  font-size:20px!important; font-weight:800!important; letter-spacing:-.01em!important; }
/* Additional-information tab: style the otherwise-bare shop_attributes table */
.woocommerce-Tabs-panel table.shop_attributes{ width:100%; border-collapse:separate; border-spacing:0; border:1px solid var(--bvm-line); border-radius:var(--bvm-radius,12px); overflow:hidden; }
.woocommerce-Tabs-panel table.shop_attributes th,.woocommerce-Tabs-panel table.shop_attributes td{ padding:11px 14px; border-bottom:1px solid var(--bvm-line); font-size:14px; }
.woocommerce-Tabs-panel table.shop_attributes tr:last-child th,.woocommerce-Tabs-panel table.shop_attributes tr:last-child td{ border-bottom:0; }
.woocommerce-Tabs-panel table.shop_attributes th{ text-align:left; font-weight:700; color:var(--bvm-ink); width:38%; background:var(--bvm-bg-2); }
/* hide webkit scrollbar on the up-sells carousel too (was missing from the list) */
.single-product .up-sells ul.products::-webkit-scrollbar{ display:none; }

/* ===================================================== ROUND 14 — audit fixes (cart/checkout) */
/* Mobile cart: reveal the product thumbnail (theme stacks the cells but drops the image) */
@media(max-width:767px){
  .woocommerce-cart table.cart td.product-thumbnail{ display:block!important; text-align:center; }
  .woocommerce-cart table.cart td.product-thumbnail img{ width:88px!important; height:88px; object-fit:contain; margin:0 auto 8px; background:var(--bvm-bg-2); border-radius:10px; }
}
/* Stray wpautop <br> tags break the cart/checkout button + required-checkbox rows */
.elementor-element-7b779848 br, .elementor-element-61bb9849 br{ display:none!important; }
/* WhatsApp float overlaps the critical CTA on utility pages — hide it there (product pages keep it) */
body.woocommerce-cart .wa__btn_popup,
body.woocommerce-checkout .wa__btn_popup,
body.woocommerce-account .wa__btn_popup{ display:none!important; }
/* My Account "Log in" button should be the brand-red CTA, not generic grey */
.woocommerce-form-login__submit{ background:var(--bvm-red)!important; color:#fff!important; border-color:var(--bvm-red)!important; }
.woocommerce-form-login__submit:hover{ background:var(--bvm-red-dark,#8f2028)!important; }
/* Quantity stepper input styling (applies on cart too, not just the product page) */
.bvm-qty input.qty{ border:0!important; width:46px!important; min-height:48px; text-align:center; font-weight:800; font-size:16px; -moz-appearance:textfield; margin:0!important; box-shadow:none!important; background:transparent; }
.bvm-qty input.qty::-webkit-outer-spin-button,.bvm-qty input.qty::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }

/* ===================================================== ROUND 16 — audit synthesis (design system + a11y + polish) */
/* Prices: red ONLY on a real <ins> discount; full prices stay ink (sticky ATC + recently-viewed) */
.bvm-sticky-atc .meta .p ins, .bvm-recent__p ins{ color:var(--bvm-red)!important; text-decoration:none; }
.bvm-sticky-atc .meta .p del, .bvm-recent__p del{ color:var(--bvm-muted); }
/* Footer icon-list links hover red (a child-span rule from the theme beat the parent <a>) */
.elementor-location-footer .elementor-icon-list-item:hover .elementor-icon-list-text{ color:var(--bvm-red)!important; transition:color .2s; }
/* Recently-viewed card = token-driven clone of the grid card (shared radius/shadow/motion) */
.bvm-recent__card{ border-radius:var(--bvm-radius); box-shadow:var(--bvm-shadow); transition:transform .28s cubic-bezier(.2,.7,.2,1), box-shadow .28s; }
.bvm-recent__card:hover{ transform:translateY(-2px); box-shadow:var(--bvm-shadow-lg); }
.bvm-recent__img{ border-radius:var(--bvm-radius-sm)!important; }
/* Shared red->gold underline accent on the PDP Related / Up-sells headings (match the home carousels) */
.single-product .related.products > h2, .single-product .up-sells > h2{ position:relative; display:inline-block; padding-bottom:10px; }
.single-product .related.products > h2::after, .single-product .up-sells > h2::after{ content:""; position:absolute; left:0; bottom:0; width:46px; height:3px; border-radius:3px; background:linear-gradient(90deg,var(--bvm-red),var(--bvm-gold)); }
/* Tap targets >=44px: footer links + drawer close controls */
@media(max-width:767px){ .elementor-location-footer .elementor-icon-list-item > a{ min-height:44px; display:flex; align-items:center; } }
.bvm-drawer__x{ min-width:44px; min-height:44px; }
/* Radius consistency: small controls use --bvm-radius-sm (12px), not ad-hoc 10px */
.cfvsw-swatches-option.cfvsw-label-option{ border-radius:var(--bvm-radius-sm)!important; }
.woocommerce nav.woocommerce-pagination ul li a,.woocommerce nav.woocommerce-pagination ul li span{ border-radius:var(--bvm-radius-sm); }
.woocommerce .woocommerce-ordering select{ border-radius:var(--bvm-radius-sm); }
.bvm-citem img, .woocommerce-cart table.cart img{ border-radius:var(--bvm-radius-sm)!important; }
/* Back-to-top: a11y handled in JS (visibility/aria/tabindex when hidden) */

/* Cart drawer per-item remove (×) button */
.bvm-citem__x{ flex:0 0 auto; border:0; background:transparent; color:var(--bvm-muted); font-size:20px; line-height:1; cursor:pointer; margin-left:4px; width:32px; height:32px; border-radius:8px; display:flex; align-items:center; justify-content:center; transition:color .15s, background .15s; }
.bvm-citem__x:hover{ color:var(--bvm-red); background:rgba(177,41,49,.08); }
.bvm-citem__x:disabled{ opacity:.5; cursor:default; }

/* Grid "Add to cart" must win over the stale .bvm-product inline #111 rule (equal specificity, later in DOM) */
.woocommerce ul.products li.product .button:not(.added_to_cart){ background:var(--bvm-red)!important; }
.woocommerce ul.products li.product .button:not(.added_to_cart):hover{ background:var(--bvm-red-dark,#8f2028)!important; }

/* Drawer close + item-remove: keep them SUBTLE (red is reserved for the primary CHECKOUT/CTA) */
.bvm-drawer .bvm-drawer__x, .bvm-filter-drawer .bvm-drawer__x{ background:transparent!important; color:var(--bvm-ink-2)!important; box-shadow:none!important; border:0!important; border-radius:10px; }
.bvm-drawer .bvm-drawer__x:hover, .bvm-filter-drawer .bvm-drawer__x:hover{ color:var(--bvm-red)!important; background:rgba(177,41,49,.08)!important; }
.bvm-drawer .bvm-citem__x{ background:transparent!important; color:var(--bvm-muted)!important; box-shadow:none!important; border:0!important; }
.bvm-drawer .bvm-citem__x:hover{ color:var(--bvm-red)!important; background:rgba(177,41,49,.08)!important; }

/* ===================================================== ROUND 18 — premium LIVE hero text overlay */
.elementor-element-714768b .swiper-slide-inner{ position:absolute!important; inset:0!important; display:flex!important; align-items:center; }
.elementor-element-714768b .swiper-slide-bg{ position:absolute; inset:0; }
.elementor-element-714768b .swiper-slide-bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(8,8,12,.85) 0%, rgba(8,8,12,.5) 32%, rgba(8,8,12,0) 60%); pointer-events:none; }
.elementor-element-714768b .swiper-slide-contents{ position:static!important; width:100%!important; padding:0!important; }
.bvm-hero-copy{ position:relative; z-index:3; width:min(560px,54%); padding:0 0 0 clamp(22px,7vw,90px); color:#fff; display:flex; flex-direction:column; align-items:flex-start; text-align:left; }
.bvm-hero-eyebrow{ font-family:var(--bvm-body); font-weight:700; font-size:clamp(11px,1.1vw,13px); letter-spacing:.22em; text-transform:uppercase; color:var(--bvm-gold); margin-bottom:12px; }
.bvm-hero-h{ font-family:var(--bvm-display); font-weight:800; font-size:clamp(29px,4.6vw,58px); line-height:1.02; letter-spacing:-.02em; color:#fff; }
.bvm-hero-h .ac{ color:var(--bvm-gold); }
.bvm-hero-sub{ font-family:var(--bvm-body); font-weight:500; font-size:clamp(13.5px,1.5vw,19px); color:rgba(255,255,255,.82); margin-top:13px; }
.bvm-hero-cta{ display:inline-flex; align-items:center; gap:9px; margin-top:clamp(16px,2.4vw,26px); padding:13px 26px; border-radius:999px; background:var(--bvm-red); color:#fff; font-family:var(--bvm-body); font-weight:700; font-size:clamp(14px,1.4vw,15px); box-shadow:0 14px 30px rgba(177,41,49,.34); transition:background .2s, transform .2s; }
.elementor-element-714768b .swiper-slide-inner:hover .bvm-hero-cta{ background:var(--bvm-red-dark,#8f2028); transform:translateY(-1px); }
.bvm-hero-cta svg{ width:17px; height:17px; flex:0 0 auto; }
@media(max-width:767px){
  .elementor-element-714768b .swiper-slide-bg::after{ background:linear-gradient(0deg, rgba(8,8,12,.93) 6%, rgba(8,8,12,.55) 34%, rgba(8,8,12,0) 64%); }
  .elementor-element-714768b .swiper-slide-inner{ align-items:flex-end; }
  .bvm-hero-copy{ width:100%; align-items:center; text-align:center; padding:0 22px clamp(50px,12vw,74px); }
  .bvm-hero-eyebrow{ margin-bottom:9px; }
}

/* ===================================================== ROUND 19 — hero = real brand banners (dedicated mobile + desktop, no text overlay) */
.elementor-element-714768b .swiper, .elementor-element-714768b .swiper-wrapper{ height:auto!important; }
.elementor-element-714768b .swiper-slide{ height:auto!important; aspect-ratio:3.556; }
.elementor-element-714768b .swiper-slide-bg{ background-position:center!important; background-size:cover!important; }
.elementor-element-714768b .swiper-slide-bg::after{ content:none!important; }  /* no dark scrim on the light brand banners */
.elementor-element-714768b .bvm-hero-copy{ display:none!important; }            /* text overlay removed — banners are complete creatives */
@media(max-width:767px){ .elementor-element-714768b .swiper-slide{ aspect-ratio:.694; } }

/* ===================================================== ROUND 20 — checkout UX (main priority) */
.bvm-co-trust{ list-style:none; margin:0 0 16px; padding:14px 16px; background:var(--bvm-bg-2); border:1px solid var(--bvm-line); border-radius:var(--bvm-radius-sm); display:flex; flex-direction:column; gap:11px; }
.bvm-co-trust li{ display:flex; align-items:center; gap:10px; font-size:13.5px; font-weight:600; color:var(--bvm-ink); margin:0; }
.bvm-co-trust svg{ width:20px; height:20px; color:var(--bvm-red); flex:0 0 auto; }
/* bigger, cleaner form controls (16px font stops iOS zoom-on-focus) */
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .select2-container .select2-selection--single{ min-height:50px!important; border:1.5px solid var(--bvm-line)!important; border-radius:var(--bvm-radius-sm)!important; font-size:16px!important; padding:12px 14px!important; }
.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered{ line-height:26px; }
.woocommerce-checkout .form-row label{ font-weight:600; font-size:13.5px; margin-bottom:6px; display:block; }
.woocommerce-checkout .form-row.validate-required label .required{ color:var(--bvm-red); }
.woocommerce-checkout input.input-text:focus, .woocommerce-checkout textarea:focus, .woocommerce-checkout select:focus{ border-color:var(--bvm-red)!important; box-shadow:0 0 0 3px rgba(177,41,49,.12)!important; outline:none; }
#place_order{ min-height:56px; font-size:16px!important; border-radius:999px!important; margin-top:6px; }
.woocommerce-checkout .woocommerce-billing-fields h3, .woocommerce-checkout #order_review_heading{ font-family:var(--bvm-display); font-weight:800; }
/* Desktop: 2-column with a sticky order summary */
@media(min-width:900px){
  .woocommerce-checkout form.checkout.woocommerce-checkout{ display:grid; grid-template-columns:1fr 380px; column-gap:44px; align-items:start; }
  .woocommerce-checkout #customer_details{ grid-column:1; grid-row:1 / span 3; }
  .woocommerce-checkout #order_review_heading{ grid-column:2; grid-row:1; margin-top:0; }
  .woocommerce-checkout #order_review{ grid-column:2; grid-row:2; position:sticky; top:110px; background:var(--bvm-bg-2); border:1px solid var(--bvm-line); border-radius:var(--bvm-radius); padding:22px; }
}

/* Cart drawer cross-sell ("You may also like") — quick-add upsell */
.bvm-xsell{ margin-top:22px; padding-top:16px; border-top:1px solid var(--bvm-line); }
.bvm-xsell__h{ font-family:var(--bvm-display); font-weight:800; font-size:13px; text-transform:uppercase; letter-spacing:.05em; color:var(--bvm-ink); margin-bottom:12px; }
.bvm-xsell__row{ display:flex; gap:12px; overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:6px; scrollbar-width:none; }
.bvm-xsell__row::-webkit-scrollbar{ display:none; }
.bvm-xcard{ flex:0 0 132px; width:132px; background:#fff; border:1px solid var(--bvm-line); border-radius:var(--bvm-radius-sm); padding:8px; display:flex; flex-direction:column; }
.bvm-xcard__img img{ width:100%; aspect-ratio:1/1; object-fit:contain; background:var(--bvm-bg-2); border-radius:8px; }
.bvm-xcard__t{ font-size:12px; font-weight:600; color:var(--bvm-ink); margin:8px 0 6px; line-height:1.3; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:2.6em; }
.bvm-xcard__b{ margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:6px; }
.bvm-xcard__p{ font-size:12.5px; font-weight:800; color:var(--bvm-ink); white-space:nowrap; }
.bvm-xcard__add{ flex:0 0 auto; border:0; background:var(--bvm-ink); color:#fff!important; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; padding:8px 11px; border-radius:999px; cursor:pointer; text-decoration:none; line-height:1; }
.bvm-xcard__add:hover{ background:var(--bvm-red); }
.bvm-xcard__add:disabled{ opacity:.6; }

/* ===================================================== ROUND 22 — Shopify-grade product reviews */
.bvm-stars{ position:relative; display:inline-block; font-size:16px; line-height:1; white-space:nowrap; }
.bvm-stars::before{ content:"★★★★★"; color:var(--bvm-line); letter-spacing:2px; }
.bvm-stars__fill{ position:absolute; left:0; top:0; height:100%; overflow:hidden; }
.bvm-stars__fill::before{ content:"★★★★★"; color:var(--bvm-gold); letter-spacing:2px; }
.bvm-reviews{ max-width:840px; }
.bvm-rv-summary{ display:flex; gap:30px; align-items:center; flex-wrap:wrap; padding:20px 22px; background:var(--bvm-bg-2); border:1px solid var(--bvm-line); border-radius:var(--bvm-radius); margin-bottom:22px; }
.bvm-rv-score{ text-align:center; flex:0 0 auto; }
.bvm-rv-num{ display:block; font-family:var(--bvm-display); font-weight:800; font-size:44px; line-height:1; color:var(--bvm-ink); }
.bvm-rv-score .bvm-stars{ margin:8px 0 5px; font-size:18px; }
.bvm-rv-count{ display:block; font-size:13px; color:var(--bvm-muted); font-weight:600; }
.bvm-rv-hist{ flex:1; min-width:230px; display:flex; flex-direction:column; gap:6px; }
.bvm-rv-bar{ display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--bvm-ink-2); }
.bvm-rv-bar .bvm-rv-s{ width:10px; text-align:right; font-weight:700; }
.bvm-rv-bar svg{ color:var(--bvm-gold); flex:0 0 auto; }
.bvm-rv-track{ flex:1; height:8px; background:var(--bvm-line); border-radius:999px; overflow:hidden; }
.bvm-rv-track i{ display:block; height:100%; background:linear-gradient(90deg,var(--bvm-gold),#f0b968); }
.bvm-rv-v{ width:22px; text-align:right; color:var(--bvm-muted); font-weight:600; }
/* WooCommerce review list + form (rendered via comments_template) */
#reviews .commentlist{ list-style:none!important; margin:0!important; padding:0!important; display:flex; flex-direction:column; gap:14px; }
#reviews .commentlist li.review, #reviews .commentlist li.comment{ border:1px solid var(--bvm-line); border-radius:var(--bvm-radius); padding:16px 18px; background:#fff; }
#reviews .commentlist img.avatar{ width:38px; height:38px; border-radius:50%; float:left; margin:0 12px 0 0; padding:0; border:0; position:static; }
#reviews .comment-text{ overflow:hidden; margin:0; }
#reviews .comment-text .star-rating{ float:none; margin:2px 0 8px; }
#reviews .comment-text p.meta{ font-size:13px; color:var(--bvm-muted); margin:0 0 8px; }
#reviews .comment-text p.meta strong.woocommerce-review__author{ color:var(--bvm-ink); font-weight:700; font-size:14px; }
#reviews .woocommerce-review__verified{ display:inline-flex; align-items:center; gap:4px; background:rgba(76,175,80,.12); color:#2e7d32; font-size:11px; font-weight:700; padding:2px 8px; border-radius:999px; margin-left:6px; }
#reviews #review_form_wrapper{ margin-top:26px; }
#reviews #review_form_wrapper #reply-title, #reviews #review_form_wrapper h2, #reviews h3#reply-title{ font-family:var(--bvm-display); font-weight:800; font-size:20px; }
#reviews #respond .comment-form-rating label{ display:block; margin-bottom:6px; font-weight:600; }
#reviews #respond textarea, #reviews #respond input[type=text], #reviews #respond input[type=email]{ border:1.5px solid var(--bvm-line)!important; border-radius:var(--bvm-radius-sm)!important; padding:12px 14px!important; font-size:16px!important; width:100%; box-sizing:border-box; }
#reviews #respond input#submit, #reviews #respond button[type=submit]{ background:var(--bvm-red)!important; color:#fff!important; border:0!important; border-radius:999px!important; padding:14px 32px!important; font-weight:700; min-height:50px; text-transform:uppercase; letter-spacing:.03em; cursor:pointer; }
#reviews #respond input#submit:hover{ background:var(--bvm-red-dark,#8f2028)!important; }
#reviews .woocommerce-noreviews{ color:var(--bvm-muted); padding:8px 0 16px; }

/* Cart page cross-sell + shared section heading */
.bvm-cart-xsell{ margin-top:44px; clear:both; }
.bvm-section-h{ font-family:var(--bvm-display); font-weight:800; font-size:clamp(20px,2.2vw,26px); letter-spacing:-.01em; position:relative; display:inline-block; padding-bottom:10px; margin:0 0 18px; }
.bvm-section-h::after{ content:""; position:absolute; left:0; bottom:0; width:46px; height:3px; border-radius:3px; background:linear-gradient(90deg,var(--bvm-red),var(--bvm-gold)); }

/* ===================================================== ROUND 24 — Loox-style photo reviews */
.bvm-rv-controls{ display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between; margin:0 0 18px; }
.bvm-rv-filters{ display:flex; flex-wrap:wrap; gap:8px; }
.bvm-rv-chip{ border:1.5px solid var(--bvm-line); background:#fff; color:var(--bvm-ink-2); font-weight:600; font-size:13px; padding:8px 14px; border-radius:999px; cursor:pointer; transition:background .18s,border-color .18s,color .18s; }
.bvm-rv-chip:hover{ border-color:var(--bvm-red); color:var(--bvm-red); }
.bvm-rv-chip.is-active{ background:var(--bvm-ink); border-color:var(--bvm-ink); color:#fff; }
.bvm-rv-sort{ border:1.5px solid var(--bvm-line); border-radius:var(--bvm-radius-sm); padding:9px 12px; font-weight:600; font-size:13px; background:#fff; cursor:pointer; }
.bvm-rv-gallery{ margin:0 0 22px; }
.bvm-rv-gallery__h{ font-family:var(--bvm-display); font-weight:800; font-size:14px; text-transform:uppercase; letter-spacing:.04em; margin-bottom:10px; }
.bvm-rv-gallery__row{ display:flex; gap:10px; overflow-x:auto; padding-bottom:6px; scrollbar-width:none; }
.bvm-rv-gallery__row::-webkit-scrollbar{ display:none; }
.bvm-rv-photo{ flex:0 0 auto; border:0; padding:0; background:none; cursor:pointer; border-radius:var(--bvm-radius-sm); overflow:hidden; line-height:0; }
.bvm-rv-gallery__row .bvm-rv-photo img{ width:96px; height:96px; object-fit:cover; border-radius:var(--bvm-radius-sm); transition:transform .25s; }
.bvm-rv-photo:hover img{ transform:scale(1.05); }
.bvm-rv-photos{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.bvm-rv-photos .bvm-rv-photo img{ width:72px; height:72px; object-fit:cover; border-radius:10px; }
.comment-form-photos label{ display:block; font-weight:600; margin-bottom:6px; }
.comment-form-photos input[type=file]{ font-size:14px; }
#reviews .commentlist li.bvm-rv-item{ animation:bvmRvIn .45s ease both; animation-delay:var(--d,0ms); }
@keyframes bvmRvIn{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
#reviews .commentlist li.bvm-hide{ display:none!important; }
.bvm-lightbox{ position:fixed; inset:0; z-index:100050; background:rgba(8,8,12,.9); display:flex; align-items:center; justify-content:center; padding:24px; opacity:0; transition:opacity .25s; }
.bvm-lightbox.show{ opacity:1; }
.bvm-lightbox img{ max-width:92vw; max-height:88vh; border-radius:12px; box-shadow:0 20px 60px rgba(0,0,0,.5); transform:scale(.96); transition:transform .25s; }
.bvm-lightbox.show img{ transform:scale(1); }
.bvm-lightbox__x{ position:absolute; top:16px; right:18px; width:44px; height:44px; border:0; background:rgba(255,255,255,.16); color:#fff; font-size:26px; border-radius:50%; cursor:pointer; }

/* ===================================================== ROUND 25 — write-a-review trigger (modal styles: ROUND 28) */
#reviews #review_form_wrapper, #reviews #respond{ display:none!important; } /* default WC form replaced by the modal */
.bvm-rv-write{ display:inline-flex; align-items:center; justify-content:center; margin:16px 0 6px; padding:14px 28px; border:0; border-radius:999px; background:var(--bvm-red); color:#fff; font-family:var(--bvm-body); font-weight:700; font-size:15px; cursor:pointer; box-shadow:0 10px 26px rgba(177,41,49,.3); transition:background .2s, transform .2s; }
.bvm-rv-write:hover{ background:var(--bvm-red-dark,#8f2028); transform:translateY(-1px); }



/* ============ ROUND 26 — Product search (header trigger + overlay) ============ */
.bvm-search-trigger{
  -webkit-appearance:none; appearance:none; background:transparent!important; border:0!important; box-shadow:none!important;
  color:inherit!important; cursor:pointer; padding:8px!important; margin:0 2px; line-height:0; min-height:0!important;
  display:inline-flex; align-items:center; justify-content:center; border-radius:50%; transition:color .15s, background .15s;
}
.bvm-search-trigger:hover{ color:var(--bvm-red)!important; background:rgba(0,0,0,.05)!important; }
.bvm-search-trigger svg{ display:block; width:24px; height:24px; }

.bvm-search{ position:fixed; inset:0; z-index:100000; display:none; background:rgba(12,12,18,.5); -webkit-backdrop-filter:saturate(120%) blur(3px); backdrop-filter:saturate(120%) blur(3px); }
.bvm-search.show{ display:block; animation:bvmFade .18s ease both; }
@keyframes bvmFade{ from{opacity:0} to{opacity:1} }
.bvm-search__panel{
  width:min(680px, calc(100% - 24px)); margin:max(56px, 8vh) auto 0; background:var(--bvm-surface,#fff); color:var(--bvm-ink,#14141a);
  border-radius:var(--bvm-radius,16px); box-shadow:0 24px 70px rgba(0,0,0,.34); overflow:hidden; animation:bvmPop .2s ease both;
}
@keyframes bvmPop{ from{opacity:0; transform:translateY(-10px)} to{opacity:1; transform:none} }
.bvm-search__bar{ display:flex; align-items:center; gap:10px; padding:14px 16px; border-bottom:1px solid var(--bvm-line,#e7e7ee); }
.bvm-search__bar svg{ flex:0 0 auto; color:var(--bvm-ink-2,#6a6a76); }
.bvm-search__input{
  flex:1; min-width:0; border:0!important; outline:0!important; box-shadow:none!important; background:transparent!important;
  font-family:var(--bvm-body,inherit); font-size:16px; color:var(--bvm-ink,#14141a); padding:6px 2px!important; min-height:0!important;
}
.bvm-search__input::placeholder{ color:var(--bvm-ink-3,#9a9aa4); }
.bvm-search__x{ flex:0 0 auto; background:transparent!important; border:0!important; box-shadow:none!important; color:var(--bvm-ink-2,#6a6a76)!important;
  font-size:26px; line-height:1; cursor:pointer; padding:2px 6px!important; min-height:0!important; border-radius:8px; }
.bvm-search__x:hover{ color:var(--bvm-red)!important; }
.bvm-search__results{ max-height:min(64vh, 560px); overflow-y:auto; -webkit-overflow-scrolling:touch; }
.bvm-search__loading, .bvm-search__empty, .bvm-search__note{ padding:18px 18px; color:var(--bvm-ink-2,#6a6a76); font-size:14px; }
.bvm-search__note{ padding:12px 18px 4px; }
.bvm-search__item{ display:flex; align-items:center; gap:14px; padding:11px 16px; text-decoration:none!important; color:var(--bvm-ink,#14141a)!important; border-bottom:1px solid var(--bvm-line,#eee); }
.bvm-search__item:last-of-type{ border-bottom:0; }
.bvm-search__item:hover, .bvm-search__item:focus{ background:var(--bvm-tint,#faf5f5); }
.bvm-search__item img{ width:52px; height:52px; object-fit:contain; flex:0 0 auto; background:#fff; border-radius:10px; border:1px solid var(--bvm-line,#eee); }
.bvm-search__t{ flex:1; min-width:0; font-size:14px; font-weight:600; line-height:1.35; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.bvm-search__p{ flex:0 0 auto; font-weight:800; font-size:14px; color:var(--bvm-red,#B12931); }
.bvm-search__all{ display:block; text-align:center; padding:14px; font-weight:700; font-size:14px; color:var(--bvm-red,#B12931)!important; text-decoration:none!important; background:var(--bvm-tint,#faf5f5); }
.bvm-search__all:hover{ background:var(--bvm-tint-2,#f3e9e9); }
@media(max-width:600px){
  .bvm-search__panel{ margin-top:0; width:100%; height:100%; max-height:100%; border-radius:0; }
  .bvm-search__results{ max-height:calc(100% - 62px); }
  .bvm-search__input{ font-size:16px; }
}

/* Search input: move focus affordance from raw input outline to the bar (cleaner, still visible) */
.bvm-search__input:focus, .bvm-search__input:focus-visible{ outline:none!important; box-shadow:none!important; }
.bvm-search__bar:focus-within{ box-shadow:inset 0 -2px 0 var(--bvm-red,#B12931); }

/* ============ ROUND 27 — transparent product cutouts ============ */
/* cutouts sit on one soft neutral tile everywhere, so the catalogue reads as a single studio set */
.woocommerce ul.products li.product img.bvm-cut{ background:var(--bvm-bg-2)!important; }
.single-product .woocommerce-product-gallery img.bvm-cut{ background:var(--bvm-bg-2); }
/* hover-zoom draws a larger copy over the base image: it must be opaque or the base shows through */
.woocommerce-product-gallery .zoomImg{ background:var(--bvm-bg-2); }
/* lightbox backdrop is black: give the photo its tile so dark bottles and devices stay visible */
.pswp__img{ background:var(--bvm-bg-2); }

/* Product search results page: typo note + empty state */
.bvm-search-note{ max-width:1200px; margin:14px auto 0; padding:12px 16px; border-radius:var(--bvm-radius-sm); background:var(--bvm-bg-2); color:var(--bvm-ink-2,#555); font-size:14px; }
.bvm-search-note strong{ color:var(--bvm-ink); }
.bvm-search-note a{ color:var(--bvm-red); text-decoration:underline; }
@media(max-width:1240px){ .bvm-search-note{ margin-left:16px; margin-right:16px; } }
.bvm-empty{ max-width:1200px; margin:0 auto; padding:4px 0 36px; }
.bvm-empty__lead{ color:var(--bvm-ink-2,#555); margin:0 0 16px; font-size:15.5px; line-height:1.55; }
.bvm-empty__lead strong{ color:var(--bvm-ink); }
.bvm-empty__h{ font-family:var(--bvm-display); font-size:clamp(22px,4.6vw,30px); line-height:1.2; margin:0 0 8px; color:var(--bvm-ink); }
.bvm-empty__p{ color:var(--bvm-ink-2,#666); margin:0 0 16px; font-size:15px; }
.bvm-empty__chips{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 30px; }
.bvm-empty__chip{ display:inline-flex; align-items:center; min-height:40px; padding:0 16px; border-radius:999px; border:1.5px solid var(--bvm-line); color:var(--bvm-ink)!important; font-weight:600; font-size:14px; text-decoration:none!important; background:#fff; }
.bvm-empty__chip:hover{ border-color:var(--bvm-red); color:var(--bvm-red)!important; }
/* ul.products is a grid: WooCommerce's clearfix pseudo-elements would take the first cell (shortcode grids: cart cross-sell, search empty state) */
.woocommerce ul.products::before, .woocommerce ul.products::after{ display:none!important; content:none!important; }

/* ============ ROUND 28 — write-a-review, Loox flow (rate / show it off / tell us more / about you / thanks) ============ */
.bvm-rv2{ position:fixed; inset:0; z-index:100060; display:flex; align-items:center; justify-content:center; padding:16px; background:rgba(12,12,18,.55); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); opacity:0; pointer-events:none; transition:opacity .2s ease; }
.bvm-rv2.show{ opacity:1; pointer-events:auto; }
.bvm-rv2__card{ position:relative; width:min(460px,100%); max-height:min(640px, calc(100vh - 32px)); max-height:min(640px, calc(100dvh - 32px)); display:flex; flex-direction:column; background:#fff; color:var(--bvm-ink); border-radius:20px; box-shadow:0 30px 80px rgba(0,0,0,.35); overflow:hidden; transform:translateY(12px) scale(.98); transition:transform .25s cubic-bezier(.2,.8,.2,1); }
.bvm-rv2.show .bvm-rv2__card{ transform:none; }
.bvm-rv2__top{ display:flex; align-items:center; gap:10px; padding:12px 12px 4px; flex:0 0 auto; }
.bvm-rv2 button{ font-family:var(--bvm-body); }
.bvm-rv2 .bvm-rv2__back, .bvm-rv2 .bvm-rv2__x{ width:40px; height:40px; flex:0 0 40px; display:inline-flex; align-items:center; justify-content:center; padding:0!important; border:0!important; border-radius:50%; background:transparent!important; box-shadow:none!important; color:var(--bvm-ink)!important; cursor:pointer; min-height:0!important; }
.bvm-rv2 .bvm-rv2__back:hover, .bvm-rv2 .bvm-rv2__x:hover{ background:var(--bvm-bg-2)!important; }
.bvm-rv2__back svg, .bvm-rv2__x svg{ width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.bvm-rv2__prog{ flex:1; display:flex; gap:6px; }
.bvm-rv2__prog i{ flex:1; height:4px; border-radius:4px; background:var(--bvm-line); transition:background .3s ease; }
.bvm-rv2__prog i.on{ background:var(--bvm-ink); }
.bvm-rv2 .bvm-rv2__skip{ flex:0 0 auto; background:transparent!important; border:0!important; box-shadow:none!important; color:var(--bvm-ink)!important; font-weight:700; font-size:14px; padding:8px 6px!important; min-height:0!important; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.bvm-rv2__body{ flex:1; overflow-y:auto; -webkit-overflow-scrolling:touch; }
.bvm-rv2__step{ display:none; padding:14px 24px 24px; text-align:center; }
.bvm-rv2__step.is-on{ display:block; animation:bvmRv2In .3s cubic-bezier(.2,.8,.2,1); }
.bvm-rv2__step.is-on.from-left{ animation-name:bvmRv2Back; }
@keyframes bvmRv2In{ from{ opacity:0; transform:translateX(22px); } to{ opacity:1; transform:none; } }
@keyframes bvmRv2Back{ from{ opacity:0; transform:translateX(-22px); } to{ opacity:1; transform:none; } }
.bvm-rv2__step h3{ font-family:var(--bvm-display); font-weight:700; font-size:21px; line-height:1.25; margin:6px 0 6px; color:var(--bvm-ink); letter-spacing:-.01em; }
.bvm-rv2__sub{ margin:0 0 18px; color:var(--bvm-ink-2,#555); font-size:15px; }
.bvm-rv2__pimg{ display:block; width:88px; height:88px; object-fit:contain; margin:4px auto 8px; border-radius:14px; background:var(--bvm-bg-2); }
.bvm-rv2__pname{ margin:0 0 14px; font-size:13.5px; color:var(--bvm-ink-2,#666); font-weight:600; }
.bvm-rv2__stars{ display:flex; justify-content:center; gap:6px; margin:18px 0 6px; }
.bvm-rv2 .bvm-rv2__star{ width:52px; height:52px; padding:4px!important; border:0!important; background:transparent!important; box-shadow:none!important; cursor:pointer; min-height:0!important; border-radius:12px; color:var(--bvm-red)!important; transition:transform .15s ease; }
.bvm-rv2__star svg{ width:100%; height:100%; fill:transparent; stroke:currentColor; stroke-width:1.5; stroke-linejoin:round; transition:fill .15s ease; }
.bvm-rv2 .bvm-rv2__star.on svg{ fill:currentColor; }
.bvm-rv2 .bvm-rv2__star:hover{ transform:scale(1.08); }
.bvm-rv2 .bvm-rv2__star.pop{ animation:bvmRv2Pop .4s cubic-bezier(.2,1.6,.4,1); }
@keyframes bvmRv2Pop{ 0%{ transform:scale(1); } 45%{ transform:scale(1.32); } 100%{ transform:scale(1); } }
.bvm-rv2__ends{ display:flex; justify-content:space-between; max-width:292px; margin:0 auto 8px; font-size:13px; color:var(--bvm-ink-2,#555); }
.bvm-rv2__media{ border:1.5px solid var(--bvm-line); border-radius:16px; padding:14px; }
.bvm-rv2 .bvm-rv2__add{ width:100%; min-height:52px; display:flex; align-items:center; justify-content:center; gap:10px; border:0!important; border-radius:12px; background:var(--bvm-ink)!important; color:#fff!important; font-weight:700; font-size:15.5px; cursor:pointer; box-shadow:none!important; }
.bvm-rv2 .bvm-rv2__add:hover{ background:#000!important; }
.bvm-rv2__add svg{ width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.bvm-rv2__note{ margin:8px 0 0; font-size:12.5px; color:var(--bvm-ink-3,#8a8a94); }
.bvm-rv2__thumbs{ display:grid; grid-template-columns:repeat(5,1fr); gap:8px; }
.bvm-rv2__thumbs:not(:empty){ margin:0 0 12px; }
.bvm-rv2__th{ position:relative; aspect-ratio:1/1; border-radius:10px; overflow:hidden; background:var(--bvm-bg-2); animation:bvmRv2Pop .3s ease; }
.bvm-rv2__th img{ width:100%; height:100%; object-fit:cover; display:block; }
.bvm-rv2 .bvm-rv2__th button{ position:absolute; top:3px; right:3px; width:22px; height:22px; padding:0!important; border:0!important; border-radius:50%; background:rgba(0,0,0,.65)!important; color:#fff!important; font-size:15px; line-height:22px; min-height:0!important; cursor:pointer; box-shadow:none!important; }
.bvm-rv2__text{ width:100%; min-height:150px; margin:10px 0 0; padding:14px; border:1.5px solid var(--bvm-line)!important; border-radius:14px!important; font:inherit; font-size:16px; line-height:1.5; resize:vertical; text-align:left; background:#fff; color:var(--bvm-ink); box-shadow:none!important; }
.bvm-rv2__text:focus, .bvm-rv2__row input:focus{ border-color:var(--bvm-ink)!important; outline:none; }
.bvm-rv2__low{ margin:8px 0 2px; padding:11px 13px; border-radius:12px; background:#fff5f2; color:var(--bvm-ink-2,#555); font-size:13.5px; text-align:left; line-height:1.5; }
.bvm-rv2__low a{ color:var(--bvm-red); font-weight:700; }
.bvm-rv2__row{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:14px 0 4px; text-align:left; }
.bvm-rv2__row label{ display:flex; flex-direction:column; gap:6px; font-weight:700; font-size:14px; color:var(--bvm-ink); }
.bvm-rv2__row label b{ color:var(--bvm-red); font-weight:700; }
.bvm-rv2__row label{ flex-direction:column; }
.bvm-rv2__row input{ width:100%; height:48px; padding:0 12px; border:1.5px solid var(--bvm-line)!important; border-radius:12px!important; font:inherit; font-size:16px; font-weight:400; background:#fff; color:var(--bvm-ink); box-shadow:none!important; }
.bvm-rv2__legal{ margin:12px 0 0; font-size:12.5px; line-height:1.5; color:var(--bvm-ink-3,#8a8a94); }
.bvm-rv2__err{ margin:10px 0 0; color:var(--bvm-red); font-size:13.5px; font-weight:600; }
.bvm-rv2 .bvm-rv2__cta{ width:100%; min-height:52px; margin:18px 0 0; border:0!important; border-radius:14px; background:var(--bvm-red)!important; color:#fff!important; font-weight:700; font-size:16px; cursor:pointer; box-shadow:none!important; transition:background .15s, opacity .15s; }
.bvm-rv2 .bvm-rv2__cta:hover{ background:var(--bvm-red-dark,#8f2028)!important; }
.bvm-rv2 .bvm-rv2__cta:disabled{ background:#e4e4ea!important; color:#9a9aa4!important; cursor:not-allowed; }
.bvm-rv2 .bvm-rv2__cta[hidden], .bvm-rv2 .bvm-rv2__skip[hidden], .bvm-rv2 .bvm-rv2__add[hidden]{ display:none!important; }
.bvm-rv2__done{ padding-top:26px; padding-bottom:28px; }
.bvm-rv2__check{ width:72px; height:72px; margin:4px auto 14px; border-radius:50%; background:#2e9e5b; display:flex; align-items:center; justify-content:center; animation:bvmRv2Pop .5s cubic-bezier(.2,1.6,.4,1); }
.bvm-rv2__check svg{ width:38px; height:38px; fill:none; stroke:#fff; stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:24; stroke-dashoffset:24; animation:bvmRv2Tick .45s .2s ease forwards; }
@keyframes bvmRv2Tick{ to{ stroke-dashoffset:0; } }
.bvm-rv2__confetti{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.bvm-rv2__confetti i{ position:absolute; top:-12px; width:8px; height:13px; border-radius:2px; opacity:0; animation-name:bvmRv2Fall; animation-timing-function:cubic-bezier(.25,.6,.4,1); animation-fill-mode:forwards; }
@keyframes bvmRv2Fall{ 0%{ opacity:1; transform:translate(0,0) rotate(0); } 100%{ opacity:0; transform:translate(var(--dx,0),620px) rotate(540deg); } }
@media(max-width:480px){
  .bvm-rv2{ padding:12px; }
  .bvm-rv2__step{ padding:10px 18px 20px; }
  .bvm-rv2 .bvm-rv2__star{ width:50px; height:50px; }
}
@media(prefers-reduced-motion:reduce){ .bvm-rv2__step.is-on, .bvm-rv2 .bvm-rv2__star.pop, .bvm-rv2__check, .bvm-rv2__th{ animation:none; } .bvm-rv2__check svg{ animation:none; stroke-dashoffset:0; } }
/* review flow: sentence-case buttons (theme uppercases buttons), quiet focus states that still show where you are */
.bvm-rv2 button, .bvm-rv2 .bvm-rv2__cta, .bvm-rv2 .bvm-rv2__add{ text-transform:none!important; letter-spacing:0!important; }
.bvm-rv2__card:focus{ outline:none; }
.bvm-rv2 textarea:focus, .bvm-rv2 textarea:focus-visible, .bvm-rv2 input:focus, .bvm-rv2 input:focus-visible{ outline:none!important; border-color:var(--bvm-ink)!important; box-shadow:0 0 0 3px rgba(20,20,26,.08)!important; }
.bvm-rv2 .bvm-rv2__star:focus{ outline:none!important; }
.bvm-rv2 .bvm-rv2__star:focus-visible{ outline:2px solid var(--bvm-ink)!important; outline-offset:1px; }
.bvm-rv2 button:focus-visible{ outline:2px solid var(--bvm-ink)!important; outline-offset:2px; }
.bvm-rv2__row label > span{ display:block; }

/* ============ ROUND 29 — audit sprint 1 fixes ============ */
/* F8: closed drawers must not cast a shadow onto the page edge */
.bvm-drawer{ box-shadow:none; visibility:hidden; transition:transform .32s cubic-bezier(.2,.7,.2,1), visibility 0s linear .32s; }
.bvm-drawer.show{ visibility:visible; box-shadow:-20px 0 60px rgba(0,0,0,.25); transition:transform .32s cubic-bezier(.2,.7,.2,1); }
.bvm-filter-drawer{ box-shadow:none; }
.bvm-filter-drawer.show{ box-shadow:20px 0 60px rgba(0,0,0,.25); }
/* F5: the drawer replaces Elementor's bare mini-cart panel */
.elementor-menu-cart__container, .elementor-menu-cart__main{ display:none!important; }
/* F3: quantity stepper keeps all three 44px controls; the button takes the rest of the row */
.single-product form.cart:not(.variations_form), .single-product .woocommerce-variation-add-to-cart{ display:flex!important; flex-wrap:nowrap; align-items:stretch; gap:10px; width:100%; max-width:100%; }
.single-product form.cart .quantity.bvm-qty, .single-product form.cart .quantity{ flex:0 0 132px!important; width:132px!important; min-width:132px!important; max-width:132px; overflow:visible!important; }
.single-product form.cart .bvm-qty .bvm-qty-btn, .single-product form.cart .bvm-qty input.qty{ width:44px!important; min-width:44px!important; flex:0 0 44px; }
.single-product form.cart .single_add_to_cart_button{ flex:1 1 auto!important; min-width:0!important; width:auto!important; margin:0!important; }
/* F4: nudge toward the option picker when someone taps buy before choosing */
.single-product table.variations.bvm-need{ animation:bvmNeed .9s ease; border-radius:12px; }
@keyframes bvmNeed{ 0%,100%{ box-shadow:0 0 0 0 rgba(177,41,49,0); } 25%,70%{ box-shadow:0 0 0 2px var(--bvm-red); } }
.bvm-need-msg{ margin:6px 0 10px; color:var(--bvm-red); font-size:13.5px; font-weight:600; }
.single-product .single_add_to_cart_button.loading{ opacity:.7; pointer-events:none; }
.single-product form.cart .bvm-qty .bvm-qty-btn{ box-sizing:border-box!important; padding:0!important; margin:0!important; }
.single-product form.cart .bvm-qty input.qty{ box-sizing:border-box!important; margin:0!important; }

/* ============ ROUND 30 — audit sprint 2: header logo, product cards, rails ============ */
/* logo: 50px tall at x=16 on phones, 60px at x=24 on desktop */
.elementor-location-header .elementor-widget-image img{ height:60px!important; max-height:none!important; width:auto!important; }
.elementor-location-header .elementor-widget-image{ padding-left:14px; }
@media(max-width:767px){
  .elementor-location-header .elementor-widget-image img{ height:48px!important; }
  .elementor-location-header .elementor-widget-image{ padding-left:11px; }
}
/* one card component everywhere: image tile, 2-line title, price, button pinned to the bottom */
.woocommerce ul.products li.product{ display:flex!important; flex-direction:column; }
.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link{ display:flex; flex-direction:column; flex:1 1 auto; }
.woocommerce ul.products li.product .woocommerce-loop-product__title{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:2.7em; line-height:1.35!important; }
.woocommerce ul.products li.product .price{ margin-top:auto!important; }
.woocommerce ul.products li.product > .button, .woocommerce ul.products li.product > .added_to_cart{ margin-top:10px!important; text-transform:none!important; letter-spacing:0!important; }
/* sale badge: compact percentage pill */
html body .woocommerce ul.products li.product span.onsale, html body.single-product span.onsale{
  min-width:0!important; min-height:0!important; padding:4px 8px!important; line-height:1!important; border-radius:6px!important;
  font-size:11.5px!important; font-weight:800!important; letter-spacing:0!important; background:var(--bvm-red)!important; color:#fff!important; }
/* desktop home rails: 5 products fill one row (no orphan 5th card) */
@media(min-width:1025px){ body.home .woocommerce ul.products{ grid-template-columns:repeat(5,minmax(0,1fr))!important; gap:16px!important; } }
/* K1: mobile category toolbar */
@media(max-width:767px){
  .bvm-toolbar{ position:sticky; top:0; z-index:50; display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:8px 0; margin:18px 0 12px; background:#fff; border-bottom:1px solid var(--bvm-line); }
  .bvm-toolbar .bvm-filter-btn{ width:100%; height:44px; margin:0!important; justify-content:center; border-radius:12px!important; background:#fff!important; color:var(--bvm-ink)!important; border:1.5px solid var(--bvm-line)!important; font-size:14px!important; font-weight:600!important; text-transform:none!important; letter-spacing:0!important; box-shadow:none!important; }
  .bvm-toolbar .bvm-filter-btn svg{ color:var(--bvm-red); }
  .bvm-toolbar form.woocommerce-ordering{ margin:0!important; width:100%!important; float:none!important; }
  .bvm-toolbar form.woocommerce-ordering select{ width:100%!important; height:44px; border-radius:12px!important; border:1.5px solid var(--bvm-line)!important; font-size:16px!important; font-weight:600; padding:0 12px!important; background-color:#fff; }
  .woocommerce-result-count.bvm-count{ float:none!important; margin:4px 0 8px!important; font-size:13px!important; color:var(--bvm-ink-2,#6a6a76)!important; }
}

/* ============ ROUND 31 — PDP first screen + buy box (audit P1-P1/P1-P2) ============ */
/* square gallery, product centred on the tile */
.single-product .woocommerce-product-gallery__image img, .single-product .woocommerce-product-gallery__image a img{ aspect-ratio:1/1; width:100%!important; height:auto!important; object-fit:contain; background:var(--bvm-bg-2); }
/* thumbnails: one scrolling row of 60px tiles (space reserved so nothing jumps) */
.single-product .flex-control-thumbs{ display:flex!important; flex-wrap:nowrap!important; gap:8px; overflow-x:auto; overflow-y:hidden; margin:10px 0 0!important; padding:0 0 4px!important; min-height:68px; scrollbar-width:none; }
.single-product .flex-control-thumbs::-webkit-scrollbar{ display:none; }
.single-product .flex-control-thumbs li{ flex:0 0 60px!important; width:60px!important; margin:0!important; float:none!important; }
.single-product .flex-control-thumbs li img{ width:60px!important; height:60px!important; object-fit:contain; background:var(--bvm-bg-2); border-radius:10px; border:1.5px solid transparent; opacity:.75; }
.single-product .flex-control-thumbs li img.flex-active{ border-color:var(--bvm-ink); opacity:1; }
/* buy box: WhatsApp directly under ATC, ETA line, 2x2 trust chips */
.single-product .bvm-wa-btn{ margin-top:10px!important; min-height:48px; }
.bvm-eta{ display:flex; align-items:center; gap:8px; margin:12px 0 10px; font-size:13.5px; color:var(--bvm-ink); }
.bvm-eta svg{ width:18px; height:18px; flex:0 0 18px; color:var(--bvm-red); }
.bvm-assure.bvm-chips{ display:grid!important; grid-template-columns:1fr 1fr; gap:8px; padding:0!important; border:0!important; background:none!important; margin:0 0 6px!important; }
.bvm-assure.bvm-chips .row{ display:flex; align-items:center; gap:8px; padding:10px; border-radius:12px; background:var(--bvm-bg-2); font-size:12.5px; font-weight:700; line-height:1.25; color:var(--bvm-ink); }
.bvm-assure.bvm-chips .row svg{ width:18px; height:18px; flex:0 0 18px; color:var(--bvm-red); }
@media(max-width:767px){
  .single-product .product_title, .single-product .elementor-widget-woocommerce-product-title .product_title{ font-size:22px!important; line-height:1.2!important; margin-top:4px!important; }
}
@media(max-width:767px){
  .single-product .woocommerce-product-gallery{ margin-bottom:0!important; }
  .single-product .elementor-widget-woocommerce-product-images{ margin-bottom:14px!important; }
}

/* ============ ROUND 32 — sold-out PDP + track order page ============ */
.bvm-oos .elementor-widget-woocommerce-product-add-to-cart p.stock, .bvm-oos .summary p.stock.out-of-stock{ display:none!important; }
.bvm-oos .elementor-widget-woocommerce-product-price .price, .bvm-oos .summary .price{ color:#9a9aa4!important; }
.bvm-oos .elementor-widget-woocommerce-product-price .price ins, .bvm-oos .elementor-widget-woocommerce-product-price .price .amount{ color:#9a9aa4!important; }
.bvm-soldout{ margin:6px 0 4px; }
.bvm-soldout__pill{ display:inline-block; padding:6px 12px; border-radius:999px; background:#efeff3; color:#6b6b76; font-size:13px; font-weight:700; }
.bvm-soldout .bvm-wa-notify{ margin-top:12px!important; min-height:52px; }
.bvm-soldout .bvm-wa-notify svg{ width:20px; height:20px; }
.bvm-soldout__note{ margin:10px 0 0; font-size:13.5px; color:var(--bvm-ink-2,#6a6a76); }
.bvm-similar{ margin:24px 0 8px; }
.bvm-similar .bvm-section-h{ font-size:20px!important; margin:0 0 12px!important; }
.bvm-track{ max-width:680px; margin:0 auto; }
.bvm-track__lead{ font-size:16px; line-height:1.6; color:var(--bvm-ink); }
.bvm-track .bvm-wa-btn{ display:inline-flex; min-height:52px; padding:0 28px; }
.bvm-track__steps{ margin:24px 0; padding-left:20px; line-height:1.7; }
.bvm-track__steps li{ margin-bottom:8px; }
.bvm-track__alt{ font-size:14px; color:var(--bvm-ink-2,#6a6a76); }
.bvm-track{ padding-inline:6px; }
.bvm-track .bvm-wa-btn, .bvm-soldout .bvm-wa-btn{ text-decoration:none!important; text-transform:none!important; letter-spacing:0!important; }
/* menu: utility rows only in the phone menu; "Shop all" link styling */
@media(min-width:1025px){ .elementor-nav-menu .bvm-mob-only{ display:none!important; } }
.elementor-nav-menu .bvm-shopall > a{ font-weight:700!important; }
@media(max-width:1024px){
  .elementor-nav-menu--dropdown .bvm-mob-first{ border-top:1px solid #eee; margin-top:8px; padding-top:8px; }
  .elementor-nav-menu--dropdown .bvm-mob-only > a{ min-height:48px; font-size:15px!important; text-transform:none!important; }
  .elementor-nav-menu--dropdown .bvm-mob-wa > a{ color:#1a9e4b!important; font-weight:700!important; }
}
nav.elementor-nav-menu--dropdown li.bvm-mob-wa > a.elementor-item, nav.elementor-nav-menu--dropdown li.bvm-mob-wa > a{ color:#1a9e4b!important; }
/* the floating WhatsApp bubble must not cover the open phone menu */
body:has(.elementor-menu-toggle.elementor-active) .wa__btn_popup, body:has(.elementor-menu-toggle.elementor-active) .wa__popup_chat_box{ display:none!important; }

/* ============ ROUND 33 — mobile checkout (audit F17) ============ */
#billing_country_field, #shipping_country_field{ display:none!important; }   /* Pakistan only */
.bvm-co-terms{ margin:10px 0 0; font-size:12.5px; color:var(--bvm-ink-2,#6a6a76); text-align:center; }
.bvm-co-terms a{ color:var(--bvm-ink); text-decoration:underline; }
#ship-to-different-address label, #ship-to-different-address span{ font-size:15px!important; font-weight:600!important; }
#ship-to-different-address input[type=checkbox]{ width:20px; height:20px; }
.bvm-co-bar{ display:none; }
@media(max-width:767px){
  body.woocommerce-checkout #customer_details, body.woocommerce-checkout .woocommerce-form-coupon-toggle, body.woocommerce-checkout .woocommerce-notices-wrapper{ padding-left:13px; padding-right:13px; }
  body.woocommerce-checkout #place_order{ min-height:56px; font-size:16px!important; }
  .bvm-co-bar{ display:block; position:fixed; left:0; right:0; bottom:0; z-index:9990; padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px)); background:#fff; border-top:1px solid var(--bvm-line); box-shadow:0 -6px 20px rgba(0,0,0,.06); transform:translateY(110%); transition:transform .25s ease; }
  .bvm-co-bar.show{ transform:none; }
  .bvm-co-bar button{ width:100%; min-height:52px; border:0!important; border-radius:12px!important; background:var(--bvm-red)!important; color:#fff!important; font-size:16px!important; font-weight:700!important; text-transform:none!important; letter-spacing:0!important; }
  body.bvm-co-bar-on .wa__btn_popup{ bottom:84px!important; }
}
/* 404 page */
.bvm-404{ max-width:1200px; margin:0 auto; padding:48px 16px; }
.bvm-404__h{ font-family:var(--bvm-display); font-size:clamp(28px,6vw,44px); line-height:1.15; margin:0 0 10px; color:var(--bvm-ink); }
.bvm-404__search{ display:flex; gap:8px; max-width:560px; margin:0 0 16px; }
.bvm-404__search input[type=search]{ flex:1; height:48px; padding:0 14px; border:1.5px solid var(--bvm-line)!important; border-radius:12px!important; font-size:16px; }
.bvm-404__search button{ height:48px; padding:0 20px!important; border-radius:12px!important; background:var(--bvm-ink)!important; color:#fff!important; font-weight:700; text-transform:none!important; letter-spacing:0!important; border:0!important; }
.bvm-404__wa{ margin-top:24px; }
.bvm-404__wa .bvm-wa-btn{ display:inline-flex; min-height:48px; padding:0 24px; text-decoration:none!important; text-transform:none!important; }
.bvm-social{ display:flex; gap:10px; }
.bvm-social a{ width:44px; height:44px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; background:var(--bvm-bg-2); color:var(--bvm-ink)!important; transition:background .15s,color .15s; }
.bvm-social a:hover{ background:var(--bvm-red); color:#fff!important; }
.bvm-social svg{ width:20px; height:20px; }
/* PF1: the hero container was height:0 until the slider script ran, so everything below jumped ~560px (CLS .58) */
.bvm-home > .e-con, .bvm-home > .elementor-element, .elementor-element-0ce42f2, .elementor-element-714768b{ flex-shrink:0!important; }
/* PF1: reserve the hero's box before the slider script runs (the widget had no definite width in the flex column, so it collapsed to 0) */
.elementor-element-714768b{ width:100%!important; aspect-ratio:3.556; }
@media(max-width:767px){ .elementor-element-714768b{ aspect-ratio:.694; } }

/* ============ ROUND 34 — home structure (audit HM2/HM3/HM6) ============ */
/* order: hero, USP, categories, best sellers, new, pods, disposables, nic salts, sale, reviews, brands, instagram */
.bvm-home > .elementor-element-4f4af3c{ order:0; }
.bvm-home > .elementor-element-0ce42f2{ order:1; }
.bvm-home > .elementor-element-c00f1ce{ order:2; }
.bvm-home > .elementor-element-db4502d{ order:3; }
.bvm-home > .elementor-element-10217eb{ order:4; }
.bvm-home > .elementor-element-61475b8{ order:5; }
.bvm-home > .elementor-element-abdbb36{ order:6; }
.bvm-home > .elementor-element-47431a4{ order:7; }
.bvm-home > .elementor-element-830e82e{ order:8; }
.bvm-home > .elementor-element-6e53f3f{ order:9; }
.bvm-home > .elementor-element-442721e{ order:10; }
.bvm-home > .elementor-element-841e8e8{ order:11; }
.bvm-home > .elementor-element-d3e3388{ order:12; }
/* two rails that repeat others (e-liquids twice; coils are one tap away in the category tiles) */
.bvm-home > .elementor-element-52360e7, .bvm-home > .elementor-element-d8aaa69{ display:none!important; }
@media(max-width:767px){
  /* USP: compact 2x2 cards under the hero */
  .elementor-element-c00f1ce{ padding-top:16px!important; padding-bottom:8px!important; }
  .elementor-element-c00f1ce > .e-con-inner{ display:grid!important; grid-template-columns:1fr 1fr; gap:8px!important; }
  .elementor-element-c00f1ce .elementor-widget-icon-box{ width:auto!important; max-width:none!important; margin:0!important; padding:10px!important; border-radius:12px; background:var(--bvm-bg-2); }
  .elementor-element-c00f1ce .elementor-icon-box-wrapper{ gap:8px!important; align-items:flex-start; }
  .elementor-element-c00f1ce .elementor-icon-box-icon{ margin:0!important; }
  .elementor-element-c00f1ce .elementor-icon-box-icon .elementor-icon{ font-size:20px!important; }
  .elementor-element-c00f1ce .elementor-icon-box-icon svg{ width:auto!important; height:20px!important; }
  .elementor-element-c00f1ce .elementor-icon-box-title{ font-size:13px!important; line-height:1.25!important; margin:0 0 2px!important; }
  .elementor-element-c00f1ce .elementor-icon-box-description{ font-size:11.5px!important; line-height:1.35!important; }
  /* category tiles: Pod Kits full width, the other four in a 2x2 grid */
  .elementor-element-3568915{ gap:12px!important; }
  .elementor-element-c1997fd .bvm-tile{ height:160px!important; min-height:160px!important; }
  .elementor-element-568cef4{ display:grid!important; grid-template-columns:1fr 1fr; gap:12px!important; }
  .elementor-element-ba894bd, .elementor-element-de8a24f{ display:contents!important; }
  .elementor-element-568cef4 .bvm-tile{ width:auto!important; max-width:none!important; height:150px!important; min-height:150px!important; padding:12px!important; }
  .elementor-element-568cef4 .bvm-tile .elementor-heading-title{ font-size:16px!important; line-height:1.15!important; }
  .elementor-element-568cef4 .bvm-tile .elementor-widget-text-editor{ font-size:11.5px!important; }
  .elementor-element-db4502d .elementor-heading-title{ font-size:20px!important; }
}
@media(max-width:767px){
  body .elementor .elementor-element.elementor-element-568cef4 .elementor-element.bvm-tile{ width:100%!important; max-width:100%!important; min-width:0!important; --width:100%; justify-self:stretch; }
}
/* P1-K6: back-to-top stacks above the WhatsApp bubble on the right, never over the product grid's left column */
@media(max-width:767px){ .bvm-top{ left:auto!important; right:16px!important; bottom:calc(92px + env(safe-area-inset-bottom,0px))!important; width:40px!important; height:40px!important; } }

/* ============ ROUND 35 — PDP variation picker, savings pill (audit P1-P3/P1-P4/P1-P7) ============ */
.single-product table.variations, .single-product table.variations tbody, .single-product table.variations tr, .single-product table.variations td.value{ display:block; width:100%; }
.single-product table.variations th.label{ display:none!important; }
.single-product table.variations td.value{ background:none!important; padding:0!important; border:0!important; }
.single-product .cfvsw-swatches-container::before{ display:none!important; content:none!important; }
.bvm-var-label{ margin:0 0 8px; font-size:12.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:#3b3b45; }
.bvm-var-label .v{ color:var(--bvm-ink-3,#8a8a94); }
.bvm-var-label.is-set .v{ color:var(--bvm-red); }
.cfvsw-swatches-option.cfvsw-label-option{ min-width:72px!important; min-height:44px!important; }
.cfvsw-swatches-option.cfvsw-label-option.cfvsw-swatches-disabled, .cfvsw-swatches-option.cfvsw-label-option.cfvsw-swatches-out-of-stock{ border-style:dashed!important; opacity:.45; }
.single-product .reset_variations{ font-size:13px; color:var(--bvm-ink-2,#6a6a76)!important; margin-top:6px; display:inline-block; }
.single-product .woocommerce-variation-add-to-cart{ width:100%; }
.single-product .woocommerce-variation-add-to-cart .single_add_to_cart_button{ flex:1 1 auto!important; max-width:none!important; }
.bvm-save{ display:inline-block; vertical-align:middle; margin-left:8px; padding:4px 10px; border-radius:999px; background:#1a7f37; color:#fff; font-size:12.5px; font-weight:800; line-height:1.2; letter-spacing:0; }
.single-product .product_meta .sku_wrapper{ display:none!important; }
.single-product form.variations_form .single_variation_wrap, .single-product form.variations_form table.variations{ flex:1 1 100%!important; width:100%!important; max-width:100%!important; }
.bvm-sticky-atc .bvm-save{ font-size:11px; padding:2px 7px; margin-left:4px; }
/* product pages on phones: the buy box already has "Order on WhatsApp", so the floating bubble only covers the sticky bar */
@media(max-width:599px){ body.single-product .wa__btn_popup, body.single-product .wa__popup_chat_box{ display:none!important; } }

/* ============ ROUND 36 — quick add sheet (variable products from the grid) ============ */
.bvm-qa-ov{ position:fixed; inset:0; z-index:100070; background:rgba(12,12,18,.5); opacity:0; pointer-events:none; transition:opacity .2s; }
.bvm-qa-ov.show{ opacity:1; pointer-events:auto; }
.bvm-qa{ position:fixed; z-index:100071; left:0; right:0; bottom:0; max-height:80vh; overflow-y:auto; background:#fff; border-radius:20px 20px 0 0; padding:22px 16px calc(18px + env(safe-area-inset-bottom,0px)); transform:translateY(105%); transition:transform .28s cubic-bezier(.2,.8,.2,1); box-shadow:0 -10px 40px rgba(0,0,0,.2); }
.bvm-qa.show{ transform:none; }
.bvm-qa::before{ content:""; position:absolute; top:8px; left:50%; width:40px; height:4px; margin-left:-20px; border-radius:4px; background:#dcdce2; }
@media(min-width:768px){ .bvm-qa{ left:50%; right:auto; bottom:auto; top:50%; width:440px; border-radius:20px; transform:translate(-50%,-46%); opacity:0; pointer-events:none; transition:transform .22s ease, opacity .22s ease; } .bvm-qa.show{ transform:translate(-50%,-50%); opacity:1; pointer-events:auto; } .bvm-qa::before{ display:none; } }
.bvm-qa .bvm-qa__x{ position:absolute; top:10px; right:10px; width:40px; height:40px; padding:0!important; border:0!important; border-radius:50%; background:transparent!important; color:var(--bvm-ink)!important; font-size:26px; line-height:1; box-shadow:none!important; min-height:0!important; }
.bvm-qa__loading{ padding:40px 0; text-align:center; color:var(--bvm-ink-2,#6a6a76); }
.bvm-qa__top{ display:flex; gap:12px; align-items:center; margin:0 40px 16px 0; }
.bvm-qa__img{ flex:0 0 76px; width:76px; height:76px; border-radius:12px; background:var(--bvm-bg-2); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.bvm-qa__img img{ width:100%; height:100%; object-fit:contain; }
.bvm-qa__t{ font-weight:700; font-size:15px; line-height:1.3; color:var(--bvm-ink); }
.bvm-qa__p{ margin-top:4px; font-weight:800; font-size:16px; color:var(--bvm-red); }
.bvm-qa__p del{ color:#9a9aa4; font-weight:500; font-size:13px; }
.bvm-qa__g{ margin:0 0 14px; }
.bvm-qa__chips{ display:flex; flex-wrap:wrap; gap:10px; }
.bvm-qa .bvm-qa__chip{ min-width:72px; min-height:44px; padding:0 14px!important; border:1.5px solid var(--bvm-line)!important; border-radius:10px!important; background:#fff!important; color:var(--bvm-ink)!important; font-weight:800; font-size:14px; box-shadow:none!important; text-transform:none!important; letter-spacing:0!important; }
.bvm-qa .bvm-qa__chip.on{ border-color:var(--bvm-red)!important; box-shadow:0 0 0 2px rgba(177,41,49,.2)!important; }
.bvm-qa .bvm-qa__chip:disabled{ border-style:dashed!important; opacity:.4; cursor:not-allowed; }
.bvm-qa__row{ display:flex; gap:10px; margin-top:6px; }
.bvm-qa__qty{ flex:0 0 132px; display:flex; align-items:center; border:1.5px solid var(--bvm-line); border-radius:12px; overflow:hidden; }
.bvm-qa .bvm-qa__qty button{ width:44px; height:50px; padding:0!important; margin:0!important; border:0!important; background:transparent!important; color:var(--bvm-ink)!important; font-size:20px; box-shadow:none!important; min-height:0!important; }
.bvm-qa__qty span{ flex:1; text-align:center; font-weight:700; }
.bvm-qa .bvm-qa__add{ flex:1; min-height:52px; border:0!important; border-radius:12px!important; background:var(--bvm-red)!important; color:#fff!important; font-weight:700; font-size:15px; text-transform:none!important; letter-spacing:0!important; box-shadow:none!important; }
.bvm-qa .bvm-qa__add:disabled{ background:#e4e4ea!important; color:#8a8a94!important; }
.bvm-qa__more{ display:block; margin-top:12px; text-align:center; font-size:14px; font-weight:600; color:var(--bvm-ink)!important; text-decoration:underline; }
/* sold-out cards */
.woocommerce ul.products li.product.outofstock .price{ color:#9a9aa4!important; }
.woocommerce ul.products li.product.outofstock .price ins, .woocommerce ul.products li.product.outofstock .price .amount{ color:#9a9aa4!important; }
html body .woocommerce ul.products li.product .button.bvm-card-wa{ background:#fff!important; color:#1a7f37!important; border:1.5px solid #1a9e4b!important; box-shadow:none!important; }
html body .woocommerce ul.products li.product .button.bvm-card-wa:hover{ background:#effaf2!important; }

/* ============ ROUND 37 — category filters (audit K2) ============ */
.bvm-filters{ margin:0 0 20px; }
.bvm-filters fieldset{ border:0; margin:0 0 20px; padding:0; }
.bvm-filters legend{ margin:0 0 12px; padding:0; font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--bvm-ink); }
.bvm-f-check{ display:flex; align-items:center; gap:10px; min-height:40px; font-size:14.5px; color:var(--bvm-ink); cursor:pointer; }
.bvm-f-check input{ width:20px; height:20px; accent-color:var(--bvm-red); margin:0; }
.bvm-f-check .n{ margin-left:auto; color:var(--bvm-ink-3,#8a8a94); font-size:12.5px; }
.bvm-f-list{ max-height:320px; overflow-y:auto; }
.bvm-f-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.bvm-f-chip input{ position:absolute; opacity:0; pointer-events:none; }
.bvm-f-chip span{ display:inline-flex; align-items:center; min-height:36px; padding:0 14px; border-radius:999px; border:1.5px solid var(--bvm-line); font-size:13.5px; font-weight:600; color:var(--bvm-ink); cursor:pointer; background:#fff; }
.bvm-f-chip input:checked + span{ border-color:var(--bvm-ink); background:var(--bvm-ink); color:#fff; }
.bvm-f-actions{ display:flex; gap:10px; align-items:center; }
.bvm-f-clear{ flex:0 0 auto; min-height:48px; display:inline-flex; align-items:center; padding:0 18px; border-radius:12px; border:1.5px solid var(--bvm-line); color:var(--bvm-ink)!important; font-weight:600; text-decoration:none!important; }
.bvm-filters .bvm-f-apply{ flex:1; min-height:48px; border:0!important; border-radius:12px!important; background:var(--bvm-red)!important; color:#fff!important; font-weight:700; font-size:15px; text-transform:none!important; letter-spacing:0!important; box-shadow:none!important; }
.bvm-filter-drawer .bvm-f-actions{ position:sticky; bottom:0; background:#fff; padding:12px 0 calc(12px + env(safe-area-inset-bottom,0px)); border-top:1px solid var(--bvm-line); margin-top:8px; }
.bvm-active-f{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 14px; }
.bvm-active-f a{ display:inline-flex; align-items:center; gap:6px; min-height:34px; padding:0 12px; border-radius:999px; background:var(--bvm-bg-2); color:var(--bvm-ink)!important; font-size:13px; font-weight:600; text-decoration:none!important; }
.bvm-active-f a.all{ background:none; text-decoration:underline!important; color:var(--bvm-ink-2,#6a6a76)!important; }

/* ============ ROUND 38 — PDP reviews section + phone accordions (audit P1-P5) ============ */
.bvm-rv-section{ margin:32px 0 8px; }
.bvm-rv-section .bvm-rv-out{ display:block!important; }
.bvm-rv-section > .bvm-section-h{ font-size:20px!important; margin:0 0 14px!important; }
@media(min-width:768px){ .bvm-rv-section > .bvm-section-h{ font-size:26px!important; } }
@media(max-width:767px){
  .woocommerce-tabs.bvm-acc ul.tabs{ display:none!important; }
  .woocommerce-tabs.bvm-acc .bvm-acc__h{ display:flex; align-items:center; justify-content:space-between; width:100%; min-height:56px; padding:0 2px!important; border:0!important; border-top:1px solid var(--bvm-line)!important; border-radius:0!important; background:none!important; color:var(--bvm-ink)!important; font-size:15px!important; font-weight:700!important; text-transform:none!important; letter-spacing:0!important; box-shadow:none!important; text-align:left; }
  .woocommerce-tabs.bvm-acc .bvm-acc__h::after{ content:""; width:10px; height:10px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); transition:transform .2s; margin-right:6px; }
  .woocommerce-tabs.bvm-acc .bvm-acc__h[aria-expanded="true"]::after{ transform:rotate(-135deg); }
  .woocommerce-tabs.bvm-acc .bvm-acc__p{ display:none!important; padding:0 2px 16px!important; }
  .woocommerce-tabs.bvm-acc .bvm-acc__p.open{ display:block!important; }
  .woocommerce-tabs.bvm-acc .bvm-acc__p.open.clamp{ max-height:280px; overflow:hidden; position:relative; }
  .woocommerce-tabs.bvm-acc .bvm-acc__p.open.clamp::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:80px; background:linear-gradient(to bottom, rgba(255,255,255,0), #fff); }
  .woocommerce-tabs.bvm-acc .bvm-acc__more{ display:block; margin:-4px 0 12px; padding:6px 0!important; border:0!important; background:none!important; color:var(--bvm-red)!important; font-weight:700!important; font-size:14px!important; text-transform:none!important; box-shadow:none!important; }
}
.bvm-rv-empty{ padding:20px; border-radius:16px; background:var(--bvm-bg-2); text-align:center; }
.bvm-rv-empty__stars{ display:flex; justify-content:center; margin-bottom:6px; }
.bvm-rv-empty__t{ margin:0 0 4px; font-weight:800; font-size:16px; color:var(--bvm-ink); }
.bvm-rv-empty__s{ margin:0 auto 14px; max-width:420px; font-size:14px; color:var(--bvm-ink-2,#6a6a76); }
.bvm-rv-empty .bvm-rv-write{ margin:0 auto!important; }
.bvm-rv-empty ~ #comments .woocommerce-noreviews, .bvm-reviews .woocommerce-noreviews{ display:none; }

/* ===== ROUND 39: home rails on phones show 2.2 cards edge to edge, progress bar, "View all" end card ===== */
@media(max-width:767px){
  body.home .bvm-home .woocommerce ul.products{
    margin:0 -16px !important; padding:2px 16px 4px !important; gap:12px !important;
    scroll-padding-inline:16px; scroll-snap-type:x mandatory; overscroll-behavior-x:contain;
  }
  body.home .bvm-home .woocommerce ul.products li.product{
    flex:0 0 calc((100vw - 40px)/2.2) !important; width:calc((100vw - 40px)/2.2) !important; max-width:none !important;
  }
  body.home .bvm-home .woocommerce ul.products li.product .button{ font-size:12.5px !important; padding-inline:8px !important; }
  body.home .bvm-home .e-con-inner, body.home .bvm-home .elementor-widget-container{ overflow:visible; }
  .bvm-rail-bar{ position:relative; height:3px; width:64px; margin:12px auto 0; border-radius:3px; background:#ececf0; overflow:hidden; }
  .bvm-rail-bar > span{ position:absolute; left:0; top:0; bottom:0; border-radius:3px; background:var(--bvm-ink,#111); transition:transform .08s linear; }
  li.product.bvm-rail-end{ display:flex !important; padding:0 !important; background:#f6f6f9 !important; border:1px dashed #d9d9e0 !important; box-shadow:none !important; }
  li.product.bvm-rail-end > a{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; text-align:center; font-size:14px; line-height:1.35; color:var(--bvm-ink,#111) !important; text-decoration:none; padding:16px; min-height:44px; }
  li.product.bvm-rail-end strong{ font-weight:700; }
  li.product.bvm-rail-end svg{ width:36px; height:36px; padding:8px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.08); }
}
@media(min-width:768px){ html body .woocommerce ul.products li.product.bvm-rail-end, html body .bvm-rail-bar{ display:none !important; } }

/* ===== ROUND 40: mobile footer, compact logo, accordions for link groups ===== */
.bvm-facc__h{ display:none; }
@media(max-width:767px){
  [data-elementor-type="footer"] .elementor-element-95a83bd img{ height:44px !important; width:auto !important; }
  [data-elementor-type="footer"] .elementor-element-95a83bd > .elementor-widget-container{ margin-left:-14px !important; }
  [data-elementor-type="footer"] .elementor-element-daff9d4{ margin-top:-4px; }
  [data-elementor-type="footer"] .elementor-element-daff9d4 p{ font-size:14px; line-height:1.55; margin:0; }
  .bvm-facc{ border-top:1px solid #2a2a30; padding:0 !important; margin:0 !important; gap:0 !important; }
  .elementor-element-3b8401b.bvm-facc{ border-bottom:1px solid #2a2a30; }
  .bvm-facc > .elementor-widget-heading{ display:none !important; }
  .bvm-facc__h{ display:flex; align-items:center; justify-content:space-between; width:100%; min-height:52px; padding:0 !important; margin:0 !important;
    background:transparent !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; color:#fff !important;
    font:700 13px/1.2 inherit; text-transform:uppercase; letter-spacing:.08em; cursor:pointer; text-align:left; }
  .bvm-facc__h svg{ transition:transform .2s; opacity:.8; }
  .bvm-facc.is-open .bvm-facc__h svg{ transform:rotate(180deg); }
  .bvm-facc > .elementor-widget-icon-list{ display:none; margin:0 0 12px !important; }
  .bvm-facc.is-open > .elementor-widget-icon-list{ display:block; }
  .bvm-facc .elementor-icon-list-item{ padding:0 !important; margin:0 !important; }
  .bvm-facc .elementor-icon-list-item > a, .bvm-facc .elementor-icon-list-item > span{ min-height:40px; display:flex !important; align-items:center; }
  .bvm-facc .elementor-icon-list-items{ gap:0 !important; row-gap:0 !important; }
}

/* ===== ROUND 41: mobile cart rows as compact cards (thumb | name + price | stepper + subtotal) ===== */
@media(max-width:767px){
  .woocommerce-cart table.cart{ border:0 !important; background:transparent !important; }
  .woocommerce-cart table.cart tr.cart_item{
    display:grid !important; grid-template-columns:72px 1fr auto; column-gap:12px; row-gap:6px;
    grid-template-areas:"thumb name remove" "thumb price price" "thumb qty sub";
    padding:14px 0 !important; border:0 !important; border-bottom:1px solid var(--bvm-line,#ececf0) !important; background:transparent !important; margin:0 !important;
  }
  .woocommerce-cart table.cart tr.cart_item td{ display:block !important; padding:0 !important; border:0 !important; background:transparent !important; text-align:left !important; min-height:0 !important; }
  .woocommerce-cart table.cart tr.cart_item td::before{ display:none !important; content:none !important; }
  .woocommerce-cart table.cart td.product-thumbnail{ grid-area:thumb; align-self:start; }
  .woocommerce-cart table.cart td.product-thumbnail img{ width:72px !important; height:72px !important; margin:0 !important; object-fit:contain; background:var(--bvm-bg-2,#f6f6f9); }
  .woocommerce-cart table.cart td.product-name{ grid-area:name; font-size:15px; font-weight:600; line-height:1.3; }
  .woocommerce-cart table.cart td.product-name a{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; color:var(--bvm-ink,#111) !important; text-decoration:none; }
  .woocommerce-cart table.cart td.product-name dl.variation{ margin:4px 0 0; font-size:12.5px; font-weight:400; color:var(--bvm-muted,#6a6a76); }
  .woocommerce-cart table.cart td.product-price{ grid-area:price; font-size:13px; color:var(--bvm-muted,#6a6a76); }
  .woocommerce-cart table.cart td.product-price::after{ content:" each"; }
  .woocommerce-cart table.cart td.product-quantity{ grid-area:qty; align-self:center; }
  .woocommerce-cart table.cart td.product-quantity .bvm-qty{ transform:scale(.85); transform-origin:left center; margin:0 !important; }
  .woocommerce-cart table.cart td.product-subtotal{ grid-area:sub; align-self:center; font-weight:700; font-size:15px; text-align:right !important; }
  .woocommerce-cart table.cart td.product-remove{ grid-area:remove; align-self:start; }
  .woocommerce-cart table.cart td.product-remove a.remove{ width:32px !important; height:32px !important; line-height:30px !important; font-size:20px !important; color:var(--bvm-muted,#6a6a76) !important; background:transparent !important; margin:-6px -6px 0 0; }
  .woocommerce-cart table.cart td.product-remove a.remove:hover{ color:var(--bvm-red) !important; background:var(--bvm-bg-2,#f6f6f9) !important; }
  .woocommerce-cart table.cart tr:not(.cart_item) td.actions{ padding:8px 0 0 !important; border:0 !important; background:transparent !important; }
  .woocommerce-cart table.cart thead{ display:none !important; }
}
.woocommerce-cart.bvm-cart-auto table.cart td.actions > button[name="update_cart"]{ display:none !important; }
.woocommerce-cart.bvm-cart-auto table.cart td.actions:not(:has(.coupon)){ display:none !important; }
@media(max-width:767px){
  body.woocommerce-cart .elementor-column-gap-default > .elementor-column > .elementor-element-populated{ padding-left:16px !important; padding-right:16px !important; }
  .woocommerce-cart table.cart td.product-remove{ justify-self:end; }
}

/* ===== ROUND 42: category SEO description, separated and clamped on phones ===== */
.bvm-desc{ max-width:760px; margin:48px auto 0 !important; padding-top:24px !important; border-top:1px solid var(--bvm-line,#ececf0); }
.bvm-desc .term-description{ font-size:15px; line-height:1.65; color:#4a4a55; }
.bvm-desc .term-description h2{ font-size:20px !important; line-height:1.25; margin:24px 0 8px !important; color:var(--bvm-ink,#111); }
.bvm-desc .term-description h2:first-child{ margin-top:0 !important; }
.bvm-desc .term-description h3{ font-size:17px !important; line-height:1.3; margin:20px 0 6px !important; }
.bvm-desc .term-description p{ margin:0 0 12px; }
.bvm-desc .term-description a{ color:var(--bvm-red); text-decoration:underline; text-underline-offset:2px; }
@media(max-width:767px){
  .bvm-desc{ margin-top:32px !important; }
  .bvm-desc.is-clamped .term-description{ max-height:200px; overflow:hidden; position:relative; }
  .bvm-desc.is-clamped .term-description::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:64px; background:linear-gradient(rgba(255,255,255,0),#fff); pointer-events:none; }
  .bvm-desc__more{ display:inline-flex; align-items:center; min-height:44px; padding:0 !important; margin-top:4px; background:transparent !important; border:0 !important; box-shadow:none !important; color:var(--bvm-ink,#111) !important; font-weight:700; font-size:14px; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
}
@media(min-width:768px){ .bvm-desc__more{ display:none !important; } }
.bvm-desc .bvm-desc__more{ font-size:14px !important; line-height:1.2 !important; font-weight:700 !important; text-transform:none !important; letter-spacing:0 !important; font-family:inherit !important; }
.bvm-desc .term-description{ margin-bottom:0 !important; }

/* ===== ROUND 43: Leopards parcel tracker on /track-order/ ===== */
.bvm-trk{ max-width:680px; margin:8px auto 32px; }
.bvm-trk__tabs{ display:flex; gap:4px; padding:4px; background:#f1f1f4; border-radius:12px; margin-bottom:16px; }
.bvm-trk__tabs button{ flex:1; min-height:44px; border:0 !important; border-radius:9px !important; background:transparent !important; color:#5a5a66 !important; font:600 14px/1.2 inherit !important; text-transform:none !important; letter-spacing:0 !important; box-shadow:none !important; padding:0 8px !important; }
.bvm-trk__tabs button.is-on{ background:#fff !important; color:var(--bvm-ink,#111) !important; box-shadow:0 1px 3px rgba(0,0,0,.1) !important; }
.bvm-trk__f label{ display:block; font-weight:600; font-size:13.5px; margin:0 0 6px; }
.bvm-trk__f input{ width:100%; min-height:52px; font-size:16px !important; padding:12px 14px !important; border:1.5px solid var(--bvm-line,#e5e5ea) !important; border-radius:12px !important; background:#fff; letter-spacing:.02em; }
.bvm-trk__f input:focus{ border-color:var(--bvm-red) !important; outline:0; box-shadow:0 0 0 3px rgba(177,41,49,.12); }
.bvm-trk__f input + label{ margin-top:14px; }
.bvm-trk__row{ display:flex; gap:8px; }
.bvm-trk__row input{ flex:1; min-width:0; }
.bvm-trk__go{ flex:0 0 auto; min-height:52px; padding:0 22px !important; border:0 !important; border-radius:12px !important; background:var(--bvm-red) !important; color:#fff !important; font:700 15px/1 inherit !important; text-transform:none !important; letter-spacing:0 !important; }
.bvm-trk__go.is-busy{ opacity:.6; }
.bvm-trk__hint{ font-size:13px; color:var(--bvm-muted,#6a6a76); margin:8px 0 0; }
.bvm-trk__out:empty{ display:none; }
.bvm-trk__out{ margin-top:16px; }
.bvm-trk__card{ border:1px solid var(--bvm-line,#ececf0); border-radius:16px; padding:18px; background:#fff; box-shadow:0 2px 10px rgba(0,0,0,.04); animation:bvmTrkIn .25s ease; }
@keyframes bvmTrkIn{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:none; } }
.bvm-trk__card.is-load{ display:flex; gap:6px; justify-content:center; padding:28px; }
.bvm-trk__card.is-load span{ width:8px; height:8px; border-radius:50%; background:#c9c9d1; animation:bvmDot 1s infinite ease-in-out; }
.bvm-trk__card.is-load span:nth-child(2){ animation-delay:.15s; } .bvm-trk__card.is-load span:nth-child(3){ animation-delay:.3s; }
@keyframes bvmDot{ 0%,80%,100%{ transform:scale(.6); opacity:.5; } 40%{ transform:scale(1); opacity:1; } }
.bvm-trk__head{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.bvm-trk__head small{ display:block; font-size:12px; color:var(--bvm-muted,#6a6a76); }
.bvm-trk__head b{ font-size:17px; letter-spacing:.03em; }
.bvm-trk__pill{ background:#eef8f1; color:#1d7a3e; font-weight:700; font-size:12.5px; padding:6px 10px; border-radius:999px; text-align:right; }
.bvm-trk__route{ margin:10px 0 0; font-size:14px; color:#4a4a55; }
.bvm-trk__steps{ list-style:none; display:grid; grid-template-columns:repeat(4,1fr); margin:18px 0 6px; padding:0; counter-reset:s; }
.bvm-trk__steps li{ position:relative; text-align:center; font-size:11.5px; line-height:1.25; color:#8a8a96; padding-top:22px; }
.bvm-trk__steps li span{ position:absolute; top:0; left:50%; width:14px; height:14px; margin-left:-7px; border-radius:50%; background:#e2e2e8; z-index:1; }
.bvm-trk__steps li::before{ content:""; position:absolute; top:6px; left:-50%; width:100%; height:2px; background:#e2e2e8; }
.bvm-trk__steps li:first-child::before{ display:none; }
.bvm-trk__steps li.done{ color:var(--bvm-ink,#111); font-weight:600; }
.bvm-trk__steps li.done span, .bvm-trk__steps li.done::before{ background:#1d7a3e; }
.bvm-trk__steps li.now span{ box-shadow:0 0 0 5px rgba(29,122,62,.18); }
.bvm-trk__card h3{ font-size:15px !important; margin:18px 0 8px !important; }
.bvm-trk__ev{ list-style:none; margin:0; padding:0 0 0 16px; border-left:2px solid #ececf0; }
.bvm-trk__ev li{ position:relative; padding:0 0 14px 4px; font-size:14px; }
.bvm-trk__ev li::before{ content:""; position:absolute; left:-22px; top:5px; width:10px; height:10px; border-radius:50%; background:#c9c9d1; border:2px solid #fff; }
.bvm-trk__ev li:first-child::before{ background:#1d7a3e; }
.bvm-trk__ev time, .bvm-trk__ev small{ display:block; font-size:12.5px; color:var(--bvm-muted,#6a6a76); margin-top:2px; }
.bvm-trk__ext{ display:inline-block; margin-top:6px; font-size:13.5px; font-weight:600; color:var(--bvm-ink,#111) !important; text-decoration:underline; text-underline-offset:3px; }
.bvm-trk__warn{ background:#fff6e6; border-radius:10px; padding:12px; font-size:14px; margin:14px 0 0; }
.bvm-trk__card.is-msg p{ margin:0; font-size:15px; line-height:1.55; }
.bvm-trk__ctas{ display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.bvm-trk__btn{ display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:0 18px; border-radius:12px; border:1.5px solid var(--bvm-ink,#111); color:var(--bvm-ink,#111) !important; font-weight:700; font-size:14px; text-decoration:none !important; flex:1 1 180px; }
.bvm-trk__btn.wa{ background:#25D366; border-color:#25D366; color:#fff !important; }

/* ===== ROUND 44: home hero v2 (brand campaign art, labelled progress tabs, swipe) ===== */
.bvm-hero{ --hero-ms:6000ms; position:relative; }
.bvm-hero__slide{ position:relative; isolation:isolate; box-shadow:0 1px 2px rgba(16,16,24,.06), 0 8px 24px rgba(16,16,24,.08); transition:opacity .4s ease; }
.bvm-hero__slide img{ transform:scale(1.001); transition:transform 7s cubic-bezier(.2,.6,.2,1); will-change:transform; }
.bvm-hero__slide.is-on img{ transform:scale(1.045); }
.bvm-hero__slide:focus-visible{ outline:3px solid var(--bvm-red); outline-offset:3px; }
.bvm-hero__bar{ display:grid; grid-template-columns:repeat(var(--n,3),1fr); gap:24px; margin:14px 4px 0; }
.bvm-hero__tab{ position:relative; display:flex; flex-direction:column; align-items:flex-start; gap:2px; padding:14px 0 4px !important; margin:0 !important; background:transparent !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; text-align:left; cursor:pointer; color:#8a8a96 !important; font:inherit !important; text-transform:none !important; letter-spacing:0 !important; min-height:44px; }
.bvm-hero__tab::before{ content:""; position:absolute; left:0; right:0; top:0; height:3px; border-radius:3px; background:#e4e4ea; }
.bvm-hero__fill{ position:absolute; left:0; top:0; height:3px; width:100%; border-radius:3px; background:var(--bvm-ink,#111); transform:scaleX(0); transform-origin:left; z-index:1; }
.bvm-hero__tab.is-done .bvm-hero__fill{ transform:scaleX(1); background:#b9b9c3; }
.bvm-hero__tab.is-on .bvm-hero__fill{ animation:bvmHeroFill var(--hero-ms) linear forwards; }
.bvm-hero.is-paused .bvm-hero__tab.is-on .bvm-hero__fill{ animation-play-state:paused; }
.bvm-hero.is-static .bvm-hero__tab.is-on .bvm-hero__fill{ animation:none; transform:scaleX(1); }
@keyframes bvmHeroFill{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }
.bvm-hero__t{ font-family:var(--bvm-display) !important; font-weight:700; font-size:15px; line-height:1.25; color:inherit; transition:color .2s; }
.bvm-hero__s{ font-size:13px; line-height:1.3; color:#8a8a96; }
.bvm-hero__tab.is-on{ color:var(--bvm-ink,#111) !important; }
.bvm-hero__tab:hover{ color:var(--bvm-ink,#111) !important; }
.bvm-hero__tab.is-on .bvm-hero__s{ color:#4a4a55; }
.bvm-hero__info{ display:none; }
@media(max-width:767px){
  .bvm-hero__slide{ transition:transform .35s ease, opacity .35s ease; }
  .bvm-hero__slide:not(.is-on){ opacity:.55; transform:scale(.97); }
  .bvm-hero__bar{ display:flex; gap:6px; margin:12px 16px 0; }
  .bvm-hero__tab{ flex:1; padding:0 !important; min-height:20px; justify-content:center; }
  .bvm-hero__tab::before, .bvm-hero__fill{ top:50%; margin-top:-1.5px; }
  .bvm-hero__t, .bvm-hero__s{ position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  .bvm-hero__info{ display:block; position:relative; margin:6px 16px 0; min-height:56px; }
  .bvm-hero__cta{ position:absolute; inset:0; display:flex; align-items:center; justify-content:space-between; gap:12px; text-decoration:none !important; color:var(--bvm-ink,#111) !important; opacity:0; visibility:hidden; transform:translateY(4px); transition:opacity .3s, transform .3s, visibility .3s; }
  .bvm-hero__cta.is-on{ opacity:1; visibility:visible; transform:none; }
  .bvm-hero__cta b{ display:block; font-family:var(--bvm-display) !important; font-weight:700; font-size:16px; line-height:1.2; }
  .bvm-hero__cta small{ display:block; font-size:13px; color:#6a6a76; margin-top:2px; }
  .bvm-hero__cta em{ flex:0 0 auto; display:inline-flex; align-items:center; gap:6px; font-style:normal; font-weight:700; font-size:14px; background:var(--bvm-ink,#111); color:#fff; border-radius:999px; padding:0 16px; min-height:40px; }
}
@media(min-width:768px){
  .bvm-hero__track{ box-shadow:none; }
}
@media(prefers-reduced-motion:reduce){
  .bvm-hero__slide img, .bvm-hero__slide.is-on img{ transform:none; transition:none; }
  .bvm-hero__track{ scroll-behavior:auto; }
}
body.bvm-fab-wait .wa__btn_popup{ opacity:0 !important; visibility:hidden !important; transform:scale(.8); }
.wa__btn_popup{ transition:opacity .25s, transform .25s, visibility .25s; }
@media(max-width:767px){
  body:has(.bvm-trk) .elementor-column-gap-default > .elementor-column > .elementor-element-populated{ padding-left:16px !important; padding-right:16px !important; }
}

/* ===== ROUND 45: tablets (768-1024) get swipe rails on home too: 5 products in a 4-col grid left an orphan row ===== */
@media(min-width:768px) and (max-width:1024px){
  body.home .bvm-home .woocommerce ul.products{
    display:flex !important; flex-wrap:nowrap !important; grid-template-columns:none !important;
    overflow-x:auto; gap:16px !important; scroll-snap-type:x mandatory; scrollbar-width:none; padding:2px 2px 12px !important;
  }
  body.home .bvm-home .woocommerce ul.products::-webkit-scrollbar{ display:none; }
  body.home .bvm-home .woocommerce ul.products::before, body.home .bvm-home .woocommerce ul.products::after{ display:none !important; }
  body.home .bvm-home .woocommerce ul.products li.product{ flex:0 0 calc((100% - 48px)/3.4) !important; width:calc((100% - 48px)/3.4) !important; max-width:none !important; margin:0 !important; scroll-snap-align:start; }
}

/* ===== ROUND 46: header icons, one set: 22px line icons, 1.8 stroke, ink, each in a 44px tap target, even spacing ===== */
html body .bvm-ico, html body .elementor-icon svg.bvm-ico, html body .elementor-button-icon svg.bvm-ico{ display:block; width:22px !important; height:22px !important; flex:0 0 22px; stroke:currentColor !important; fill:none !important; }
[data-elementor-type="header"] .elementor-element-581cdc7{ display:flex !important; align-items:center !important; gap:4px !important; }
[data-elementor-type="header"] .elementor-element-61df7fc .elementor-icon-wrapper{ display:flex; line-height:0; }
[data-elementor-type="header"] .elementor-element-61df7fc a.elementor-icon,
[data-elementor-type="header"] .bvm-search-trigger,
[data-elementor-type="header"] #elementor-menu-cart__toggle_button{
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  width:44px !important; height:44px !important; min-height:44px !important; padding:0 !important; margin:0 !important;
  border:0 !important; border-radius:12px !important; background:transparent !important; box-shadow:none !important;
  color:var(--bvm-ink,#111) !important; font-size:0 !important; line-height:0 !important; position:relative; transition:background .15s;
}
[data-elementor-type="header"] .elementor-element-61df7fc a.elementor-icon:visited,
[data-elementor-type="header"] #elementor-menu-cart__toggle_button:visited{ color:var(--bvm-ink,#111) !important; }
[data-elementor-type="header"] .elementor-element-61df7fc a.elementor-icon:hover,
[data-elementor-type="header"] .bvm-search-trigger:hover,
[data-elementor-type="header"] #elementor-menu-cart__toggle_button:hover{ background:rgba(17,17,17,.06) !important; color:var(--bvm-ink,#111) !important; }
[data-elementor-type="header"] #elementor-menu-cart__toggle_button .elementor-button-text{ display:none !important; }
[data-elementor-type="header"] #elementor-menu-cart__toggle_button .elementor-button-icon{ display:flex !important; align-items:center; justify-content:center; position:static !important; margin:0 !important; color:inherit !important; }
[data-elementor-type="header"] #elementor-menu-cart__toggle_button .elementor-button-icon-qty{
  position:absolute !important; top:4px !important; right:3px !important; left:auto !important; min-width:18px; height:18px; padding:0 5px;
  border-radius:9px; background:var(--bvm-red) !important; color:#fff !important; font:700 11px/18px var(--bvm-body, inherit) !important; text-align:center; box-shadow:0 0 0 2px #fff;
}
[data-elementor-type="header"] .elementor-element-6caac18{ margin-left:0 !important; }
[data-elementor-type="header"] .elementor-element-6caac18 .elementor-menu-cart__toggle{ margin:0 !important; }
@media(max-width:1024px){
  [data-elementor-type="header"] .elementor-element-a7021ca .elementor-menu-toggle{ color:var(--bvm-ink,#111) !important; border-radius:12px !important; }
}
[data-elementor-type="header"] #elementor-menu-cart__toggle_button .elementor-button-icon-qty{ top:3px !important; right:0 !important; min-width:17px; height:17px; padding:0 4px; font-size:10.5px !important; line-height:17px !important; border-radius:9px; }
/* phone menu icon drawn in the same 1.8 line style as search and cart */
@media(max-width:1024px){
  [data-elementor-type="header"] .elementor-element-a7021ca .elementor-menu-toggle__icon--open,
  [data-elementor-type="header"] .elementor-element-a7021ca .elementor-menu-toggle__icon--close{
    font-size:0 !important; width:22px !important; height:22px !important; background:currentColor !important;
  }
  [data-elementor-type="header"] .elementor-element-a7021ca .elementor-menu-toggle__icon--open{
    -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M4 7h16M4 12h16M4 17h16'/%3E%3C/svg%3E") center/22px 22px no-repeat;
            mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M4 7h16M4 12h16M4 17h16'/%3E%3C/svg%3E") center/22px 22px no-repeat;
  }
  [data-elementor-type="header"] .elementor-element-a7021ca .elementor-menu-toggle__icon--close{
    -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E") center/22px 22px no-repeat;
            mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E") center/22px 22px no-repeat;
  }
  [data-elementor-type="header"] .elementor-element-a7021ca .elementor-menu-toggle__icon--open::before,
  [data-elementor-type="header"] .elementor-element-a7021ca .elementor-menu-toggle__icon--close::before{ content:none !important; }
  /* we render both icons ourselves now (mask images), so drive their visibility explicitly instead of
     relying on Elementor's own display toggle, which was losing a specificity tie against the rule above */
  [data-elementor-type="header"] .elementor-element-a7021ca .elementor-menu-toggle__icon--close{ display:none !important; }
  [data-elementor-type="header"] .elementor-element-a7021ca .elementor-menu-toggle__icon--open{ display:block !important; }
  [data-elementor-type="header"] .elementor-element-a7021ca .elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--open{ display:none !important; }
  [data-elementor-type="header"] .elementor-element-a7021ca .elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--close{ display:block !important; }
}

/* ===== ROUND 47: /track-order/ — the title sat at the wide column's left edge while the tracker box
   below it was a separate, narrower centred column; line both up in one 680px centred page. ===== */
body:has(.bvm-trk) .page-header{ max-width:680px; margin:0 auto; }
body:has(.bvm-trk) .page-header .entry-title{ font-size:26px; margin-bottom:4px; }
@media(min-width:768px){
  body:has(.bvm-trk) .page-header .entry-title{ font-size:34px; }
  body:has(.bvm-trk) .page-content{ max-width:none; }
}

/* ===== ROUND 48: category/search pagination on phones — a "Show more" button instead of numbered pages ===== */
@media(max-width:767px){
  .bvm-loadmore{ max-width:320px; margin:8px auto 24px; text-align:center; }
  .bvm-loadmore__t{ font-size:13px; color:var(--bvm-muted,#6a6a76); margin-bottom:8px; }
  .bvm-loadmore__bar{ height:4px; width:160px; margin:0 auto 16px; border-radius:4px; background:#ececf0; overflow:hidden; }
  .bvm-loadmore__bar > i{ display:block; height:100%; border-radius:4px; background:var(--bvm-ink,#111); transition:width .3s ease; }
  .bvm-loadmore__btn{ display:flex; align-items:center; justify-content:center; width:100%; min-height:48px; padding:0 20px !important;
    border:1.5px solid var(--bvm-ink,#111) !important; border-radius:var(--bvm-radius-sm,12px) !important; background:#fff !important; color:var(--bvm-ink,#111) !important;
    font:700 14px/1 var(--bvm-body,inherit) !important; text-transform:none !important; letter-spacing:0 !important; }
  .bvm-loadmore__btn.is-busy{ opacity:.6; }
  .bvm-loadmore.is-done .bvm-loadmore__btn{ border-color:#ddd !important; color:var(--bvm-muted,#6a6a76) !important; background:#f6f6f9 !important; }
}
@media(min-width:768px){ .bvm-loadmore{ display:none !important; } }

/* ROUND 49: speed. The mobile filter toolbar is inserted by script, which pushed the product grid down ~53px after first paint (CLS).
   Until it exists, the sort form is an invisible placeholder the same height, so the grid already sits where it will end up. */
@media(max-width:767px){
  body.bvm-arch:not(.bvm-tb):not(.search-no-results) .woocommerce-result-count{ display:block; float:none; width:100%; margin:4px 0 8px; }
  body.bvm-arch:not(.bvm-tb):not(.search-no-results) form.woocommerce-ordering{ display:block; float:none; clear:both; width:100%; height:61px; margin:18px 0 12px; overflow:hidden; visibility:hidden; }
}
/* ROUND 49: the age-gate dialog is inserted before the rule that pins it (position:fixed) applies, so for a moment it sat in the page flow
   and registered as a full-screen layout shift. Pinning it here means it never touches the flow. */
.dialog-widget.dialog-type-lightbox{ position:fixed; top:0; left:0; width:100%; height:100%; }

/* ROUND 50: reserve the PDP gallery box at first paint so the summary does not jump */
.single-product div.product .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child{ aspect-ratio:1/1; }
.single-product div.product .woocommerce-product-gallery__image > a{ display:block; }


/* ROUND 51: with Elementor SVG icons the toggle icons are <svg> elements; the drawn line comes from the mask above, so hide the svg's own paths */
@media(max-width:1024px){
  [data-elementor-type="header"] .elementor-element-a7021ca .elementor-menu-toggle svg path{ fill:transparent !important; }
}

/* ROUND 52: Elementor star-rating relied on the eicons font, which is not loaded in inline-SVG icon mode. Draw the star with a mask instead. */
.elementor-star-rating i{ width:1em; height:1em; margin-inline-end:.14em; background:currentColor; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01z'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01z'/%3E%3C/svg%3E") center/contain no-repeat; }
.elementor-star-rating i:before{ content:""!important; width:100%; height:100%; background:currentColor; }
.elementor-star-rating .elementor-star-empty:before{ display:none; }
.woocommerce .star-rating span::before, .star-rating span::before{ color:var(--bvm-gold); }
.single-product #reviews .woocommerce-Reviews-title{ display:none; }
/* ROUND 53: one 16px gutter on cart and checkout (checkout content was flush left, headings sat at 10px) */
@media(max-width:767px){
  body.woocommerce-cart .page-header .entry-title, body.woocommerce-checkout .page-header .entry-title{ padding-left:16px; padding-right:16px; }
  body.woocommerce-checkout .elementor-widget-wrap.elementor-element-populated{ padding-left:16px!important; padding-right:16px!important; }
  body.woocommerce-checkout #customer_details, body.woocommerce-checkout .woocommerce-form-coupon-toggle, body.woocommerce-checkout .woocommerce-notices-wrapper{ padding-left:0; padding-right:0; }
  body.woocommerce-cart .return-to-shop{ padding:0 0 34px; }
}
@media(max-width:767px){
  body.woocommerce-checkout .form-row{ padding-left:0; padding-right:0; }
  body.woocommerce-checkout #place_order{ font-size:14px!important; letter-spacing:.2px!important; padding-left:10px!important; padding-right:10px!important; white-space:normal; }
}
/* ROUND 53b: empty cart state */
.woocommerce-cart .cart-empty.woocommerce-info{ border:0; border-radius:16px; background:var(--bvm-bg-2); padding:34px 20px 18px; text-align:center; font-weight:600; font-size:17px; color:var(--bvm-ink); margin:8px 0 0; }
.woocommerce-cart .cart-empty.woocommerce-info::before{ display:none; }
.woocommerce-cart .return-to-shop{ padding:0; margin:0; text-align:center; background:var(--bvm-bg-2); border-radius:0 0 16px 16px; padding-bottom:34px; }
.woocommerce-cart .return-to-shop .button{ margin:0; }
.woocommerce-cart .cart-empty.woocommerce-info{ border-radius:16px 16px 0 0; }
body.woocommerce-cart .woocommerce:has(.cart-empty){ padding-bottom:56px; }

/* ROUND 54: plain page gutter (about, faq, policies, contact title) */
@media(max-width:767px){
  body.page-template-default:not(.woocommerce-page) .site-main{ padding-left:0; padding-right:0; }
  body.page-template-default:not(.woocommerce-page) .page-header .entry-title{ padding-left:16px; padding-right:16px; }
  body.page-template-default:not(.woocommerce-page) .page-content > *:not(.elementor){ padding-left:16px; padding-right:16px; box-sizing:border-box; max-width:100%; }
  body.page-template-default:not(.woocommerce-page) .page-content img{ max-width:100%; height:auto; }
}

/* ROUND 55: About page and plain-page typography */
body.page-template-default:not(.woocommerce-page) .page-content h2{ font-size:22px; line-height:1.2; margin:28px 0 10px; }
body.page-template-default:not(.woocommerce-page) .page-content h3{ font-size:18px; line-height:1.25; margin:22px 0 8px; }
body.page-template-default:not(.woocommerce-page) .page-content p, body.page-template-default:not(.woocommerce-page) .page-content li{ font-size:15px; line-height:1.65; }
.bvm-policy{ max-width:760px; margin:0 auto; }
.bvm-policy > h2:first-child{ margin-top:8px; }
.bvm-policy ol{ padding-left:20px; }
.bvm-policy li{ margin-bottom:6px; }
.bvm-policy .bvm-wa-btn{ display:inline-flex; width:auto; min-height:50px; padding:0 26px; text-decoration:none!important; text-transform:none!important; letter-spacing:0!important; }
.bvm-about__lead{ font-size:17px!important; line-height:1.6!important; color:var(--bvm-ink); }
.bvm-about__brands{ display:flex; flex-wrap:wrap; gap:8px; margin:6px 0 4px; }
.bvm-about__brands a{ display:inline-block; padding:8px 14px; border-radius:999px; background:var(--bvm-bg-2); color:var(--bvm-ink); font-size:13.5px; font-weight:600; text-decoration:none; line-height:1.2; }
.bvm-about__quotes blockquote{ margin:0 0 12px; padding:14px 16px; background:var(--bvm-bg-2); border-radius:14px; border:0; }
.bvm-about__quotes blockquote p{ margin:0 0 6px; }
.bvm-about__quotes cite{ font-style:normal; font-size:13px; color:var(--bvm-ink-2,#6a6a76); }
.bvm-about__age{ font-size:13px!important; color:var(--bvm-ink-2,#6a6a76); margin-top:22px; }
body.page-template-default:not(.woocommerce-page) .page-content h2, body.page-template-default:not(.woocommerce-page) .page-content h3{ word-spacing:.08em; }
@media(max-width:767px){
  body.woocommerce-account .site-main{ padding-left:16px; padding-right:16px; }
  body.woocommerce-account .page-header .entry-title{ padding-left:0; padding-right:0; }
}

/* ROUND 56: blog index and 404 */
@media(max-width:767px){
  body.blog .site-main, body.archive:not(.woocommerce-page) .site-main{ padding-left:16px; padding-right:16px; }
  body.blog .page-header .entry-title, body.archive:not(.woocommerce-page) .page-header .entry-title{ padding:0; }
  body.blog .page-content .post h2.entry-title, body.archive:not(.woocommerce-page) .page-content .post h2.entry-title{ font-size:22px; line-height:1.22; margin:0 0 10px; word-spacing:.06em; }
  body.blog .page-content .post{ padding:22px 0; border-bottom:1px solid var(--bvm-line,#e8e8ee); }
  body.blog .page-content .post:last-child{ border-bottom:0; }
  body.blog .page-content .post img{ width:100%; height:auto; border-radius:14px; margin:0 0 12px; display:block; }
  body.blog .page-content .post p{ font-size:15px; line-height:1.6; margin:0; }
}
@media(min-width:768px){
  body.blog .site-main{ max-width:820px; margin:0 auto; padding:24px 20px 40px; }
  body.blog .page-header .entry-title{ font-size:40px; margin-bottom:12px; }
  body.blog .page-content .post{ padding:30px 0; border-bottom:1px solid var(--bvm-line,#e8e8ee); }
  body.blog .page-content .post:last-child{ border-bottom:0; }
  body.blog .page-content .post h2.entry-title{ font-size:28px; line-height:1.2; margin:0 0 12px; word-spacing:.06em; }
  body.blog .page-content .post img{ width:100%; max-height:420px; object-fit:contain; border-radius:16px; margin:0 0 14px; display:block; }
  body.blog .page-content .post p{ font-size:16px; line-height:1.65; margin:0; }
}

/* ROUND 57: single blog post */
body.single-post .site-main{ padding-left:16px; padding-right:16px; }
body.single-post .page-header .entry-title{ padding:0; font-size:30px; line-height:1.15; margin:18px 0 14px; word-spacing:.06em; }
body.single-post .page-content h2{ font-size:22px; line-height:1.22; margin:1.6em 0 .5em; word-spacing:.06em; }
body.single-post .page-content h3{ font-size:18px; line-height:1.3; margin:1.3em 0 .4em; word-spacing:.06em; }
body.single-post .page-content p, body.single-post .page-content li{ font-size:15px; line-height:1.65; }
body.single-post .page-content img{ max-width:100%; height:auto; border-radius:12px; }
body.single-post .comments-area h2, body.single-post .comment-reply-title{ font-size:20px; margin:1.6em 0 .5em; }
@media(min-width:768px){
  body.single-post .site-main{ max-width:760px; margin:0 auto; padding:24px 20px 48px; }
  body.single-post .page-header .entry-title{ font-size:40px; }
  body.single-post .page-content h2{ font-size:28px; }
  body.single-post .page-content h3{ font-size:21px; }
  body.single-post .page-content p, body.single-post .page-content li{ font-size:16px; }
}

/* ROUND 58: contact page alignment, comment consent row */
.elementor-15115 .elementor-icon-box-wrapper, .elementor-15115 .elementor-icon-box-content, .elementor-15115 .elementor-icon-box-title{ text-align:left; }
.comment-form-cookies-consent{ display:flex; gap:10px; align-items:flex-start; }
.comment-form-cookies-consent input{ margin-top:4px; flex:none; }
.comment-form-cookies-consent label{ line-height:1.5; }

/* ROUND 59: desktop plain pages and logged-out account share one centered column */
@media(min-width:768px){
  body.page-template-default:not(.woocommerce-page) .site-main{ max-width:820px; margin:0 auto; padding:24px 20px 56px; }
  body.page-template-default:not(.woocommerce-page) .page-content > *:not(.elementor){ padding-left:0; padding-right:0; }
  body.page-template-default:not(.woocommerce-page) .page-content p, body.page-template-default:not(.woocommerce-page) .page-content li{ font-size:16px; }
  body.page-template-default:not(.woocommerce-page) .page-content h2{ font-size:26px; }
  body.woocommerce-account:not(.logged-in) .site-main{ max-width:560px; margin:0 auto; padding:24px 20px 56px; }
}
@media(min-width:768px){
  body.page-template-default:not(.woocommerce-page) .bvm-policy{ max-width:none; }
  .elementor-15115 .elementor-element-populated, .elementor-15115 .elementor-inner-section .elementor-container{ padding-left:0; padding-right:0; }
}
@media(min-width:768px){
  .elementor-15115 .elementor-top-column > .elementor-element-populated{ padding-left:0; padding-right:0; }
  .elementor-15115 .elementor-inner-section{ padding-left:0; padding-right:0; }
}
@media(min-width:768px){
  .elementor-15115 .elementor-top-column > .elementor-widget-wrap.elementor-element-populated{ padding-left:0 !important; padding-right:0 !important; }
  .elementor-15115 section.elementor-inner-section{ padding-left:0 !important; padding-right:0 !important; }
}

/* ROUND 60: desktop cart and checkout container */
@media(min-width:768px){
  body.woocommerce-cart .site-main, body.woocommerce-checkout .site-main{ max-width:1140px; margin:0 auto; padding:24px 24px 56px; }
  body.woocommerce-cart .page-header .entry-title, body.woocommerce-checkout .page-header .entry-title{ padding-left:0; padding-right:0; }
}

/* ============ ROUND 61 — own floating WhatsApp button (replaces the WP Chat App plugin; same spot and colour) ============ */
.bvm-fab-wa{ position:fixed; right:21px; bottom:142px; z-index:9990; width:56px; height:56px; border-radius:50%; background:#2db742; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 14px rgba(0,0,0,.2); text-decoration:none!important; transition:opacity .25s, transform .25s, visibility .25s; -webkit-tap-highlight-color:transparent; }
.bvm-fab-wa:hover{ transform:scale(1.05); }
.bvm-fab-wa:focus-visible{ outline:3px solid #111; outline-offset:3px; }
.bvm-fab-wa svg{ width:30px; height:30px; display:block; }
body.bvm-fab-wait .bvm-fab-wa{ opacity:0; visibility:hidden; transform:scale(.8); }
body.bvm-modal-open .bvm-fab-wa, body:has(.elementor-menu-toggle.elementor-active) .bvm-fab-wa{ display:none!important; }
@media(max-width:767px){
  .bvm-fab-wa{ width:52px; height:52px; }
  body.single-product .bvm-fab-wa{ bottom:86px; }
  body.bvm-co-bar-on .bvm-fab-wa{ bottom:84px; }
}
@media(max-width:599px){ body.single-product .bvm-fab-wa{ display:none!important; } }
@media print{ .bvm-fab-wa{ display:none!important; } }
