/*
Theme Name: Bakeware Catalog
Theme URI: https://thebakewarestore.com/
Author: The Bakeware Store
Description: A warm, modern WooCommerce catalog theme built for showcasing bakeware, cutters and cake-decorating tools. Includes a built-in Catalog Mode (Appearance > Customize > Store Settings) that hides prices and Add to Cart everywhere until you're ready to sell.
Version: 1.3.1
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: bakeware-catalog
*/

/* ==========================================================
   Design tokens
   ========================================================== */
:root {
  --bw-bg: #FDF6FA;
  --bw-surface: #FFFFFF;
  --bw-ink: #2B1330;
  --bw-ink-soft: #7A5D74;
  --bw-border: #F0DCE8;
  --bw-accent: #EC368D;
  --bw-accent-dark: #9C2D8F;
  --bw-secondary: #2FA88A;
  --bw-radius-sm: 6px;
  --bw-radius-md: 10px;
  --bw-shadow: 0 1px 2px rgba(51, 38, 28, 0.06);
  --bw-font-display: "Fraunces", Georgia, "Times New Roman", serif;
  --bw-font-body: "Work Sans", -apple-system, BlinkMacSystemFont, sans-serif;
  --bw-max-width: 1180px;
}

/* ==========================================================
   Base
   ========================================================== */
* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--bw-bg);
  color: var(--bw-ink);
  font-family: var(--bw-font-body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
  font-family: var(--bw-font-display);
  font-weight: 600;
  line-height: 1.15;
  margin: 0 0 0.5em;
  color: var(--bw-ink);
}

h1 { font-size: clamp(2rem, 4vw, 2.75rem); }
h2 { font-size: clamp(1.5rem, 3vw, 2rem); }
h3 { font-size: 1.25rem; }

p { max-width: 68ch; }

a {
  color: var(--bw-accent-dark);
  text-decoration: none;
}
a:hover { text-decoration: underline; }

img { max-width: 100%; display: block; }

.bw-container {
  max-width: var(--bw-max-width);
  margin: 0 auto;
  padding: 0 24px;
}

button,
.button,
input[type="submit"] {
  font-family: var(--bw-font-body);
}

:focus-visible {
  outline: 3px solid var(--bw-secondary);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* ==========================================================
   Header — colorful gradient bar
   ========================================================== */
:root {
  --bw-font-script: "Pacifico", cursive;
  --bw-header-h: 74px;
}

.bw-site-header {
  background: linear-gradient(135deg, var(--bw-accent) 0%, var(--bw-accent-dark) 100%);
  position: sticky;
  top: 0;
  z-index: 40;
  box-shadow: 0 2px 14px rgba(156, 45, 143, 0.22);
}

.bw-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 14px 24px;
  max-width: var(--bw-max-width);
  margin: 0 auto;
  min-height: var(--bw-header-h);
}

.bw-logo, .bw-logo-wrap { display: flex; align-items: center; }
.bw-logo {
  font-family: var(--bw-font-display);
  font-size: 1.5rem;
  font-weight: 600;
  color: #fff;
  white-space: nowrap;
}
.bw-logo:hover { text-decoration: none; color: #FDE7F1; }
.bw-logo-wrap img, .bw-logo img { max-height: 46px; width: auto; }

/* White chip behind the logo so it stays crisp on both the
   colorful header gradient and the dark footer background. */
.bw-logo-badge {
  display: inline-flex;
  align-items: center;
  background: #fff;
  border-radius: 999px;
  padding: 6px 16px;
  box-shadow: 0 2px 8px rgba(43, 19, 48, 0.18);
}
.bw-logo-badge:hover { text-decoration: none; }
.bw-logo-badge img { max-height: 42px; width: auto; display: block; }
.bw-logo-badge--footer { padding: 8px 20px; margin-bottom: 14px; }
.bw-logo-badge--footer img { max-height: 48px; }

.bw-primary-nav {
  flex: 1;
  display: flex;
  justify-content: center;
}
.bw-primary-nav > ul {
  list-style: none;
  display: flex;
  gap: 8px;
  margin: 0;
  padding: 0;
}
.bw-primary-nav > ul > li { position: relative; }
.bw-primary-nav > ul > li > a {
  display: block;
  color: #fff;
  font-size: 0.98rem;
  font-weight: 500;
  padding: 10px 16px;
  border-radius: 999px;
  transition: background-color 0.15s ease;
}
.bw-primary-nav > ul > li > a:hover,
.bw-primary-nav > ul > li.current-menu-item > a {
  background: rgba(255, 255, 255, 0.18);
  color: #fff;
  text-decoration: none;
}

/* Dropdown caret + submenu for items with children */
.bw-primary-nav li.menu-item-has-children > a::after {
  content: "";
  display: inline-block;
  width: 6px; height: 6px;
  margin-left: 6px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
}
.bw-primary-nav ul.sub-menu {
  list-style: none;
  margin: 0; padding: 8px;
  position: absolute;
  top: 100%; left: 0;
  min-width: 200px;
  background: var(--bw-surface);
  border: 1px solid var(--bw-border);
  border-radius: var(--bw-radius-md);
  box-shadow: 0 12px 28px rgba(43, 19, 48, 0.16);
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
  z-index: 50;
}
.bw-primary-nav li.menu-item-has-children:hover > ul.sub-menu,
.bw-primary-nav li.menu-item-has-children.is-open > ul.sub-menu {
  opacity: 1; visibility: visible; transform: translateY(0);
}
.bw-primary-nav ul.sub-menu a {
  display: block;
  padding: 9px 12px;
  border-radius: var(--bw-radius-sm);
  color: var(--bw-ink);
  font-size: 0.93rem;
}
.bw-primary-nav ul.sub-menu a:hover { background: var(--bw-bg); text-decoration: none; }
.bw-primary-nav ul.sub-menu li.menu-item-has-children > a::after { float: right; margin-top: 6px; }

.bw-header-actions { display: flex; align-items: center; gap: 6px; }
.bw-search-toggle, .bw-nav-toggle {
  background: rgba(255, 255, 255, 0.16);
  border: none;
  border-radius: 999px;
  width: 42px; height: 42px;
  display: inline-flex; align-items: center; justify-content: center;
  color: #fff;
  cursor: pointer;
  transition: background-color 0.15s ease;
}
.bw-search-toggle:hover, .bw-nav-toggle:hover { background: rgba(255, 255, 255, 0.3); }
.bw-nav-toggle { display: none; flex-direction: column; gap: 4px; }
.bw-nav-toggle span { width: 18px; height: 2px; background: #fff; border-radius: 2px; }

.bw-header-search {
  max-height: 0;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.14);
  transition: max-height 0.2s ease;
}
.bw-header-search.is-open { max-height: 90px; }
.bw-header-search .search-form {
  max-width: var(--bw-max-width);
  margin: 0 auto;
  padding: 14px 24px;
  display: flex;
  gap: 10px;
}
.bw-header-search input[type="search"] {
  flex: 1;
  padding: 10px 16px;
  border: none;
  border-radius: 999px;
  font-family: var(--bw-font-body);
  font-size: 0.95rem;
}
.bw-header-search button {
  padding: 10px 20px;
  border: none;
  border-radius: 999px;
  background: var(--bw-ink);
  color: #fff;
  font-family: var(--bw-font-body);
  cursor: pointer;
}
.bw-header-search button:hover { background: rgba(43, 19, 48, 0.85); }

@media (max-width: 900px) {
  .bw-primary-nav {
    display: none;
    position: absolute;
    top: 100%; left: 0; right: 0;
    background: var(--bw-surface);
    box-shadow: 0 12px 24px rgba(43, 19, 48, 0.18);
    padding: 10px 20px 16px;
  }
  .bw-primary-nav.is-open { display: block; }
  .bw-primary-nav > ul { flex-direction: column; gap: 2px; }
  .bw-primary-nav > ul > li > a { color: var(--bw-ink); border-radius: var(--bw-radius-sm); }
  .bw-primary-nav > ul > li > a:hover { background: var(--bw-bg); }
  .bw-primary-nav li.menu-item-has-children > a::after { border-color: var(--bw-ink); }
  .bw-primary-nav ul.sub-menu {
    position: static; opacity: 1; visibility: visible; transform: none;
    box-shadow: none; border: none; display: none; margin: 4px 0 4px 14px;
  }
  .bw-primary-nav li.menu-item-has-children.is-open > ul.sub-menu { display: block; }
  .bw-header-inner { flex-wrap: wrap; }
  .bw-nav-toggle { display: inline-flex; }
}

/* ==========================================================
   Homepage banner — colorful, with a script-font accent tag
   ========================================================== */
.bw-banner {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, var(--bw-accent-dark) 0%, var(--bw-accent) 60%, #D6488E 100%);
  padding: 72px 24px;
  text-align: center;
}
.bw-banner-shapes { position: absolute; inset: 0; pointer-events: none; }
.bw-shape {
  position: absolute;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
}
.bw-shape--1 { width: 260px; height: 260px; top: -80px; left: -60px; }
.bw-shape--2 { width: 160px; height: 160px; bottom: -50px; right: 8%; background: rgba(255, 255, 255, 0.1); }
.bw-shape--3 { width: 90px; height: 90px; top: 20%; right: 20%; background: rgba(255, 255, 255, 0.14); }

.bw-banner-inner {
  position: relative;
  max-width: 720px;
  margin: 0 auto;
}
.bw-banner-tag {
  display: inline-block;
  font-family: var(--bw-font-script);
  font-size: 1.5rem;
  color: #FFE8F4;
  margin-bottom: 4px;
  transform: rotate(-2deg);
}
.bw-banner-heading {
  color: #fff;
  font-size: clamp(2.2rem, 5vw, 3.2rem);
  margin: 0 0 14px;
}
.bw-banner-sub {
  color: #FDE7F1;
  font-size: 1.1rem;
  max-width: 52ch;
  margin: 0 auto 28px;
}
.bw-banner-button {
  display: inline-block;
  background: #fff;
  color: var(--bw-accent-dark);
  font-weight: 600;
  padding: 13px 32px;
  border-radius: 999px;
  font-size: 1rem;
  box-shadow: 0 8px 20px rgba(43, 19, 48, 0.25);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.bw-banner-button:hover {
  text-decoration: none;
  color: var(--bw-accent-dark);
  transform: translateY(-2px);
  box-shadow: 0 12px 26px rgba(43, 19, 48, 0.3);
}

@media (max-width: 600px) {
  .bw-banner { padding: 52px 20px; }
}

/* ==========================================================
   Hero — real product photography, not an abstract gradient
   ========================================================== */
.bw-hero {
  padding: 48px 24px 8px;
  max-width: var(--bw-max-width);
  margin: 0 auto;
}

.bw-hero-intro {
  max-width: 60ch;
  margin-bottom: 28px;
}
.bw-hero-intro p { color: var(--bw-ink-soft); font-size: 1.05rem; }

.bw-hero-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
.bw-hero-grid .bw-hero-tile:first-child {
  grid-column: span 2;
  grid-row: span 2;
}

.bw-hero-tile {
  position: relative;
  border-radius: var(--bw-radius-md);
  overflow: hidden;
  aspect-ratio: 1 / 1;
  background: var(--bw-surface) center/cover no-repeat;
  display: block;
  transition: transform 0.15s ease;
}
.bw-hero-tile:hover { text-decoration: none; transform: translateY(-3px); }
.bw-hero-tile img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
.bw-hero-tile .bw-tile-label {
  position: absolute;
  left: 14px; bottom: 14px;
  background: rgba(255, 253, 248, 0.92);
  color: var(--bw-ink);
  font-family: var(--bw-font-display);
  font-size: 1rem;
  padding: 6px 14px;
  border-radius: 999px;
}

@media (max-width: 780px) {
  .bw-hero-grid { grid-template-columns: repeat(2, 1fr); }
  .bw-hero-grid .bw-hero-tile:first-child { grid-column: span 2; grid-row: span 1; }
}

/* ==========================================================
   Section headings
   ========================================================== */
.bw-section {
  max-width: var(--bw-max-width);
  margin: 0 auto;
  padding: 48px 24px;
}
.bw-section-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--bw-border);
  padding-bottom: 14px;
}
.bw-section-head--tight { border-bottom: none; padding-bottom: 4px; margin-bottom: 12px; }
.bw-section-head a { font-size: 0.95rem; }


/* ==========================================================
   Category pills / tags
   ========================================================== */
.bw-pill {
  display: inline-block;
  font-size: 0.82rem;
  padding: 3px 12px;
  border-radius: 999px;
  background: rgba(124, 139, 93, 0.14);
  color: var(--bw-secondary);
  margin: 0 6px 6px 0;
}
.bw-pill--accent {
  background: rgba(178, 58, 91, 0.1);
  color: var(--bw-accent-dark);
}
.bw-pill--code {
  background: rgba(43, 19, 48, 0.07);
  color: var(--bw-ink);
  font-weight: 600;
  font-family: var(--bw-font-body);
  letter-spacing: 0.02em;
}

/* ==========================================================
   Category grid (shop-by-category)
   ========================================================== */
.bw-category-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 18px;
}
.bw-category-card {
  background: var(--bw-surface);
  border: 1px solid var(--bw-border);
  border-radius: var(--bw-radius-md);
  overflow: hidden;
  display: block;
  transition: border-color 0.15s ease;
}
.bw-category-card:hover { border-color: var(--bw-accent); text-decoration: none; }
.bw-category-card .bw-cat-image {
  aspect-ratio: 4 / 3;
  background: var(--bw-bg) center/cover no-repeat;
}
.bw-category-card .bw-cat-image img { width: 100%; height: 100%; object-fit: cover; }
.bw-category-card .bw-cat-name {
  padding: 12px 14px;
  font-family: var(--bw-font-display);
  color: var(--bw-ink);
  font-size: 1.02rem;
}
.bw-category-card .bw-cat-count {
  color: var(--bw-ink-soft);
  font-size: 0.85rem;
}

/* ==========================================================
   WooCommerce — product loop (shop / category / homepage)
   ========================================================== */
.woocommerce ul.products,
.bw-product-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 24px;
  list-style: none;
  margin: 0 !important;
  padding: 0 !important;
}

.woocommerce ul.products li.product {
  background: var(--bw-surface);
  border: 1px solid var(--bw-border);
  border-radius: var(--bw-radius-md);
  padding: 0 0 16px;
  box-shadow: var(--bw-shadow);
  width: auto !important;
  margin: 0 !important;
  float: none !important;
  position: relative;
}

.woocommerce ul.products li.product a img {
  border-radius: var(--bw-radius-md) var(--bw-radius-md) 0 0;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  margin-bottom: 12px;
}

.woocommerce ul.products li.product h2,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--bw-font-display);
  font-size: 1.02rem;
  padding: 0 14px;
  margin: 0 0 4px;
  color: var(--bw-ink);
}

.bw-loop-code {
  padding: 0 14px;
  margin: 0 0 6px;
  font-size: 0.8rem;
  color: var(--bw-ink-soft);
  font-weight: 500;
  letter-spacing: 0.02em;
}

.woocommerce ul.products li.product .price {
  padding: 0 14px;
  color: var(--bw-ink-soft);
  font-size: 0.95rem;
}
.woocommerce ul.products li.product .price ins {
  text-decoration: none;
  color: var(--bw-accent-dark);
}

.woocommerce ul.products li.product .button {
  margin: 10px 14px 0;
  display: inline-block;
  background: var(--bw-ink);
  color: #fff;
  border-radius: var(--bw-radius-sm);
  padding: 8px 16px;
  font-size: 0.9rem;
}
.woocommerce ul.products li.product .button:hover {
  background: var(--bw-accent-dark);
  text-decoration: none;
}

.woocommerce span.onsale {
  background: var(--bw-accent);
  border-radius: 999px;
  font-family: var(--bw-font-body);
  font-size: 0.75rem;
  top: 10px;
  left: 10px;
  min-height: auto;
  min-width: auto;
  padding: 4px 10px;
  line-height: 1.4;
}

/* Catalog mode: quiet "view details" text link instead of a button */
.bw-catalog-mode .woocommerce ul.products li.product .bw-view-link {
  display: inline-block;
  margin: 10px 14px 0;
  font-size: 0.9rem;
  color: var(--bw-accent-dark);
}

/* ==========================================================
   WooCommerce — single product
   ========================================================== */
.woocommerce div.product {
  max-width: var(--bw-max-width);
  margin: 0 auto;
  padding: 28px 24px 64px;
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 52px;
  align-items: start;
}
@media (max-width: 780px) {
  .woocommerce div.product { grid-template-columns: 1fr; padding: 20px 20px 48px; gap: 28px; }
}

/* Gallery */
.woocommerce div.product div.images {
  position: sticky;
  top: calc(var(--bw-header-h, 74px) + 16px);
  border-radius: var(--bw-radius-md);
  overflow: hidden;
  box-shadow: var(--bw-shadow);
  background: var(--bw-surface);
}
@media (max-width: 780px) {
  .woocommerce div.product div.images { position: static; }
}
.woocommerce div.product div.images img { border-radius: var(--bw-radius-md); }
.woocommerce div.product div.images .flex-control-thumbs {
  display: flex; flex-wrap: wrap; gap: 8px;
  list-style: none; margin: 10px 0 0; padding: 0 0 12px;
}
.woocommerce div.product div.images .flex-control-thumbs li { width: auto; }
.woocommerce div.product div.images .flex-control-thumbs img {
  width: 64px; height: 64px; object-fit: cover;
  border-radius: var(--bw-radius-sm);
  border: 2px solid transparent;
  opacity: 0.8;
}
.woocommerce div.product div.images .flex-control-thumbs img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs img:hover {
  border-color: var(--bw-accent); opacity: 1;
}

/* Summary column */
.woocommerce div.product .summary h1.product_title {
  font-size: clamp(1.6rem, 3vw, 2.3rem);
  margin-bottom: 10px;
}

.woocommerce div.product .summary > p.price {
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--bw-accent-dark);
  margin-bottom: 4px;
}
.woocommerce div.product .summary > p.price ins {
  text-decoration: none; color: var(--bw-accent-dark);
}
.woocommerce div.product .summary > p.price del { color: var(--bw-ink-soft); opacity: 0.7; }

.woocommerce div.product p.stock {
  display: inline-block;
  margin: 6px 0 16px;
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 0.85rem;
}
.woocommerce div.product p.stock.in-stock { background: rgba(47, 168, 138, 0.14); color: #1E7259; }
.woocommerce div.product p.stock.out-of-stock { background: rgba(236, 54, 141, 0.1); color: var(--bw-accent-dark); }

.bw-trust-badges {
  list-style: none; margin: 0 0 20px; padding: 0;
  display: flex; flex-direction: column; gap: 8px;
}
.bw-trust-badges li {
  display: flex; align-items: center; gap: 8px;
  font-size: 0.9rem; color: var(--bw-ink-soft);
}
.bw-trust-badges svg { color: var(--bw-secondary); flex-shrink: 0; }

.woocommerce div.product .woocommerce-product-details__short-description {
  color: var(--bw-ink-soft);
  padding: 16px 0;
  margin-bottom: 4px;
  border-top: 1px solid var(--bw-border);
  border-bottom: 1px solid var(--bw-border);
}
.woocommerce div.product .woocommerce-product-details__short-description p:last-child { margin-bottom: 0; }

/* Quantity + add to cart row */
.woocommerce div.product form.cart {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 20px;
}
.woocommerce div.product form.cart .bw-qty-wrap {
  display: flex;
  align-items: stretch;
  border: 1px solid var(--bw-border);
  border-radius: var(--bw-radius-sm);
  overflow: hidden;
}
.woocommerce div.product form.cart input.qty {
  width: 54px;
  border: none;
  text-align: center;
  font-family: var(--bw-font-body);
  font-size: 1rem;
  -moz-appearance: textfield;
}
.woocommerce div.product form.cart input.qty::-webkit-inner-spin-button,
.woocommerce div.product form.cart input.qty::-webkit-outer-spin-button {
  -webkit-appearance: none; margin: 0;
}
.bw-qty-btn {
  width: 36px;
  border: none;
  background: var(--bw-bg);
  color: var(--bw-ink);
  font-size: 1.1rem;
  cursor: pointer;
}
.bw-qty-btn:hover { background: var(--bw-border); }

.woocommerce div.product form.cart .button {
  background: var(--bw-accent);
  color: #fff;
  border-radius: var(--bw-radius-sm);
  padding: 13px 30px;
  font-size: 1rem;
  font-weight: 600;
  border: none;
}
.woocommerce div.product form.cart .button:hover { background: var(--bw-accent-dark); }

/* Restyled meta: SKU + category/tag pills, replacing the plain WooCommerce line */
.bw-product-meta {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--bw-border);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  font-size: 0.88rem;
}
.bw-meta-sku { color: var(--bw-ink-soft); }
.bw-meta-pills { display: flex; flex-wrap: wrap; gap: 6px; }

/* Catalog-mode note shown in place of price/cart */
.bw-catalog-note {
  display: inline-block;
  margin-top: 4px;
  margin-bottom: 16px;
  padding: 10px 16px;
  border-radius: var(--bw-radius-sm);
  background: rgba(124, 139, 93, 0.12);
  color: var(--bw-secondary);
  font-size: 0.95rem;
}

/* Description / reviews tabs */
.woocommerce div.product .woocommerce-tabs {
  max-width: var(--bw-max-width);
  margin: 0 auto 56px;
  padding: 0 24px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs {
  list-style: none;
  display: flex;
  gap: 6px;
  margin: 0 0 -1px;
  padding: 0;
  border-bottom: 1px solid var(--bw-border);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  margin: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  display: inline-block;
  padding: 12px 18px;
  color: var(--bw-ink-soft);
  font-family: var(--bw-font-display);
  font-size: 1.02rem;
  border-bottom: 3px solid transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: var(--bw-ink);
  border-bottom-color: var(--bw-accent);
  text-decoration: none;
}
.woocommerce div.product .woocommerce-tabs .panel {
  padding: 28px 0;
  color: var(--bw-ink-soft);
  max-width: 75ch;
}
.woocommerce div.product .woocommerce-tabs .panel h2 {
  font-size: 1.3rem;
  color: var(--bw-ink);
}

/* Related products */
.woocommerce div.product .related.products {
  max-width: var(--bw-max-width);
  margin: 0 auto;
  padding: 0 24px 56px;
}
.woocommerce div.product .related.products > h2 {
  border-bottom: 1px solid var(--bw-border);
  padding-bottom: 14px;
  margin-bottom: 20px;
}

/* ==========================================================
   Breadcrumbs, pagination, misc WooCommerce chrome
   ========================================================== */
.bw-breadcrumb-wrap {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 18px 22px 6px;
  box-sizing: border-box;
}
.woocommerce-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  max-width: none;
  margin: 0;
  padding: 0;
  color: var(--bw-ink-soft);
  font-size: 0.88rem;
  font-weight: 500;
  line-height: 1.5;
}
.woocommerce-breadcrumb a { color: var(--bw-ink-soft); text-decoration: none; transition: color .2s ease; }
.woocommerce-breadcrumb a:hover { color: var(--bw-primary, var(--bw-accent-dark)); text-decoration: underline; }
.bw-breadcrumb-sep { color: #caaec2; font-size: 13px; margin: 0 2px; user-select: none; }

.woocommerce nav.woocommerce-pagination {
  max-width: var(--bw-max-width);
  margin: 12px auto 40px;
  padding: 0 24px;
  text-align: left;
}

.bw-wc-main nav.woocommerce-pagination { max-width:none; margin:32px auto 12px; padding:0; text-align:center; }
.bw-wc-main nav.woocommerce-pagination ul { display:inline-flex; align-items:center; gap:8px; padding:7px; border:1px solid #efd9e7; border-radius:999px; background:#fff; box-shadow:0 8px 22px rgba(145,39,131,.08); }
.bw-wc-main nav.woocommerce-pagination ul li { display:block; margin:0; }
.bw-wc-main nav.woocommerce-pagination ul li a,
.bw-wc-main nav.woocommerce-pagination ul li span { display:grid; place-items:center; min-width:40px; height:40px; margin:0; padding:0 12px; border-radius:999px; color:var(--bw-primary); font:700 13px/1 var(--bw-font-ui); }
.bw-wc-main nav.woocommerce-pagination ul li a:hover,
.bw-wc-main nav.woocommerce-pagination ul li span.current { background:linear-gradient(135deg,var(--bw-primary-2),var(--bw-primary)); color:#fff; }
.woocommerce nav.woocommerce-pagination ul { border: none; }
.woocommerce nav.woocommerce-pagination ul li { border: none; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  border-radius: var(--bw-radius-sm);
  margin-right: 4px;
  color: var(--bw-ink);
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--bw-accent);
  color: #fff;
}

.woocommerce-ordering select,
.woocommerce-result-count {
  font-family: var(--bw-font-body);
}

.woocommerce-page .bw-container,
.woocommerce .bw-container {
  max-width: var(--bw-max-width);
  margin: 0 auto;
  padding: 0 24px;
}

/* ==========================================================
   Archive banner (category / shop / search header)
   ========================================================== */
.bw-archive-banner {
  display: flex;
  align-items: center;
  gap: 24px;
  background: linear-gradient(135deg, rgba(236, 54, 141, 0.08), rgba(156, 45, 143, 0.08));
  border: 1px solid var(--bw-border);
  border-radius: var(--bw-radius-md);
  padding: 26px 28px;
  margin: 20px 0 28px;
}
.bw-archive-banner__image {
  flex: 0 0 120px;
  width: 120px; height: 120px;
  border-radius: var(--bw-radius-md);
  overflow: hidden;
  box-shadow: var(--bw-shadow);
}
.bw-archive-banner__image img { width: 100%; height: 100%; object-fit: cover; }
.bw-archive-banner__text h1 {
  margin: 0 0 6px;
  font-size: clamp(1.5rem, 3vw, 2rem);
}
.bw-archive-banner__desc {
  color: var(--bw-ink-soft);
  max-width: 68ch;
}
.bw-archive-banner__desc p:last-child { margin-bottom: 0; }

@media (max-width: 600px) {
  .bw-archive-banner { flex-direction: column; align-items: flex-start; padding: 20px; }
  .bw-archive-banner__image { width: 88px; height: 88px; flex-basis: 88px; }
}

/* ==========================================================
   Shop toolbar (result count + sort dropdown, side by side)
   ========================================================== */
.bw-shop-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 22px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--bw-border);
}
.bw-shop-toolbar .woocommerce-result-count {
  margin: 0;
  color: var(--bw-ink-soft);
  font-size: 0.92rem;
}
.bw-shop-toolbar .woocommerce-ordering { margin: 0; }
.bw-shop-toolbar .woocommerce-ordering select {
  padding: 8px 14px;
  border: 1px solid var(--bw-border);
  border-radius: 999px;
  background: var(--bw-surface);
  color: var(--bw-ink);
  font-size: 0.9rem;
}

/* Subcategory tiles (when a category is set to show subcategories) */
.woocommerce ul.products li.product-category .woocommerce-loop-category__title {
  font-family: var(--bw-font-display);
  font-size: 1.02rem;
  padding: 0 14px;
  margin: 0 0 4px;
  color: var(--bw-ink);
}
.woocommerce ul.products li.product-category .woocommerce-loop-category__title mark.count {
  background: none;
  color: var(--bw-ink-soft);
  font-family: var(--bw-font-body);
  font-size: 0.85rem;
}

/* ==========================================================
   Infinite scroll
   ========================================================== */
.bw-infinite-scroll {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 28px 0 12px;
  min-height: 40px;
}
.bw-infinite-loader {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--bw-ink-soft);
  font-size: 0.92rem;
}
.bw-infinite-loader[hidden] { display: none; }
.bw-spinner {
  width: 18px; height: 18px;
  border: 2px solid var(--bw-border);
  border-top-color: var(--bw-accent);
  border-radius: 50%;
  animation: bw-spin 0.7s linear infinite;
}
@keyframes bw-spin { to { transform: rotate(360deg); } }
.bw-infinite-end {
  color: var(--bw-ink-soft);
  font-size: 0.9rem;
  margin: 0;
}
.bw-infinite-end[hidden] { display: none; }

@media (prefers-reduced-motion: reduce) {
  .bw-spinner { animation: none; border-top-color: var(--bw-border); }
}

/* ==========================================================
   Footer
   ========================================================== */
.bw-site-footer {
  background: var(--bw-ink);
  color: #F3E6EF;
  margin-top: 64px;
}
.bw-footer-inner {
  max-width: var(--bw-max-width);
  margin: 0 auto;
  padding: 48px 24px;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 32px;
}
@media (max-width: 780px) {
  .bw-footer-inner { grid-template-columns: 1fr; }
}
.bw-site-footer h4 {
  color: #F3E6EF;
  font-size: 1rem;
  margin-bottom: 12px;
}
.bw-site-footer a { color: #D9AFCB; }
.bw-site-footer a:hover { color: #fff; }
.bw-site-footer ul { list-style: none; margin: 0; padding: 0; }
.bw-site-footer li { margin-bottom: 8px; }
.bw-footer-bottom {
  border-top: 1px solid rgba(243, 230, 239, 0.15);
  text-align: center;
  padding: 16px 24px;
  font-size: 0.85rem;
  color: #D9AFCB;
}

/* ==========================================================
   2026 Premium refresh — homepage / chrome / product cards
   ========================================================== */
:root {
  --bw-bg: #faf8f5;
  --bw-surface: #ffffff;
  --bw-ink: #1f1b19;
  --bw-ink-soft: #746c67;
  --bw-border: #e9e2dc;
  --bw-accent: #b86b72;
  --bw-accent-dark: #7d4149;
  --bw-secondary: #6e806f;
  --bw-radius-sm: 10px;
  --bw-radius-md: 18px;
  --bw-radius-lg: 28px;
  --bw-shadow: 0 8px 30px rgba(31, 27, 25, .06);
  --bw-font-display: "Playfair Display", Georgia, serif;
  --bw-font-body: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --bw-font-ui: "Manrope", -apple-system, BlinkMacSystemFont, sans-serif;
  --bw-max-width: 1240px;
}
body { font-family: var(--bw-font-body); background: var(--bw-bg); color: var(--bw-ink); }
h1,h2,h3,h4 { font-family: var(--bw-font-display); letter-spacing: -.025em; }
button,.button,input,select,textarea { font-family: var(--bw-font-ui); }
a { color: var(--bw-accent-dark); }
.bw-container { max-width: var(--bw-max-width); }

/* Header */
.bw-site-header { background: rgba(255,255,255,.96); color: var(--bw-ink); position: sticky; top: 0; box-shadow: 0 1px 0 rgba(31,27,25,.07), 0 8px 30px rgba(31,27,25,.04); backdrop-filter: blur(16px); }
.bw-header-top { background: #201b19; color: #f7f1eb; font-family: var(--bw-font-ui); font-size: 11px; letter-spacing: .07em; text-transform: uppercase; }
.bw-header-top-inner { display:flex; justify-content:space-between; gap:20px; padding:8px 24px; }
.bw-header-top-note { opacity:.7; }
.bw-header-inner { min-height:82px; padding:14px 24px; }
.bw-logo-wrap { flex:0 0 auto; display:flex; align-items:center; }
.bw-logo-wrap img, .bw-logo-wrap .custom-logo { max-height:54px; width:auto; }
.bw-logo-wrap { background:#fff; border-radius:40px; padding:6px 12px; overflow:hidden; box-shadow:0 2px 10px rgba(31,27,25,.08); }
.bw-primary-nav { justify-content:center; }
.bw-primary-nav > ul { gap:10px; }
.bw-primary-nav > ul > li > a { color:var(--bw-ink); font-family:var(--bw-font-ui); font-size:13px; font-weight:700; letter-spacing:.01em; padding:11px 14px; border-radius:999px; }
.bw-primary-nav > ul > li > a:hover, .bw-primary-nav > ul > li.current-menu-item > a { color:var(--bw-accent-dark); background:#f5eeea; }
.bw-header-actions { gap:9px; }
.bw-search-toggle { color:var(--bw-ink); background:#f5f1ed; width:42px;height:42px; }
.bw-search-toggle:hover { background:#ece4df; }
.bw-header-shop { display:inline-flex; align-items:center; gap:7px; padding:11px 17px; border-radius:999px; background:var(--bw-ink); color:#fff; font-family:var(--bw-font-ui); font-size:12px; font-weight:700; }
.bw-header-shop:hover { background:var(--bw-accent-dark); color:#fff; text-decoration:none; }
.bw-header-search { background:#201b19; }
.bw-header-search .search-form { align-items:center; }
.bw-search-label { color:#fff; font-family:var(--bw-font-ui); font-size:12px; text-transform:uppercase; letter-spacing:.12em; }
.bw-header-search input[type=search] { background:#fff; color:var(--bw-ink); height:46px; }
.bw-header-search button { width:46px; height:46px; padding:0; border-radius:50%; background:var(--bw-accent); }
.bw-nav-toggle { color:var(--bw-ink); background:#f5f1ed; }
.bw-nav-toggle span { background:var(--bw-ink); }

/* Homepage slider */
.bw-homepage { overflow:hidden; }
.bw-home-slider { max-width:var(--bw-max-width); margin:24px auto 0; padding:0 24px; position:relative; }
.bw-slider-track { position:relative; min-height:560px; border-radius:var(--bw-radius-lg); overflow:hidden; background:#eee7e1; }
.bw-slide { position:absolute; inset:0; display:grid; grid-template-columns:1fr 1fr; opacity:0; visibility:hidden; transform:translateX(18px); transition:opacity .45s ease, transform .55s ease, visibility .45s; }
.bw-slide.is-active { position:relative; opacity:1; visibility:visible; transform:none; }
.bw-slide-copy { display:flex; flex-direction:column; justify-content:center; padding:72px clamp(34px,6vw,84px); background:linear-gradient(135deg,#f1e7e1,#e7d9d0); }
.bw-eyebrow,.bw-kicker { display:block; margin-bottom:12px; color:var(--bw-accent-dark); font-family:var(--bw-font-ui); font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.bw-slide-copy h1 { font-size:clamp(2.8rem,5.2vw,5.5rem); line-height:.98; max-width:8ch; margin-bottom:22px; }
.bw-slide-copy p { max-width:44ch; color:#5f5752; font-size:16px; line-height:1.8; }
.bw-slide-actions { display:flex; align-items:center; gap:20px; margin-top:18px; flex-wrap:wrap; }
.bw-btn { display:inline-flex; align-items:center; gap:14px; padding:15px 21px; border-radius:999px; font-family:var(--bw-font-ui); font-size:12px; font-weight:700; }
.bw-btn--dark { background:var(--bw-ink); color:#fff; box-shadow:0 10px 24px rgba(31,27,25,.15); }
.bw-btn--dark:hover { background:var(--bw-accent-dark); color:#fff; text-decoration:none; transform:translateY(-1px); }
.bw-text-link { font-family:var(--bw-font-ui); font-size:12px; font-weight:700; color:var(--bw-ink); border-bottom:1px solid #aaa09a; padding-bottom:3px; }
.bw-text-link:hover { color:var(--bw-accent-dark); text-decoration:none; border-color:var(--bw-accent-dark); }
.bw-slide-media { position:relative; min-height:560px; overflow:hidden; background:#ddd3cc; }
.bw-slide-media.is-loading::after { content:''; position:absolute; top:50%; left:50%; width:30px; height:30px; margin:-15px; border:3px solid rgba(255,255,255,.45); border-top-color:var(--bw-primary-2); border-radius:50%; animation:bw-slider-spin .75s linear infinite; }
.bw-slide-media.is-loaded::after { display:none; }
@keyframes bw-slider-spin { to { transform:rotate(360deg); } }
.bw-slide-media img { width:100%;height:100%;object-fit:cover; }
.bw-slide-placeholder { height:100%; display:grid; place-items:center; color:rgba(31,27,25,.18); font:700 80px/1 var(--bw-font-ui); letter-spacing:.12em; }
.bw-slide-number { position:absolute; right:28px; bottom:24px; width:52px;height:52px; border-radius:50%; display:grid;place-items:center; background:rgba(255,255,255,.88); color:var(--bw-ink); font:600 11px var(--bw-font-ui); }
.bw-slider-controls { display:flex; align-items:center; justify-content:center; gap:18px; margin-top:18px; }
.bw-slider-arrow { width:42px;height:42px;border:1px solid var(--bw-border);background:#fff;border-radius:50%;color:var(--bw-ink);cursor:pointer; }
.bw-slider-arrow:hover { border-color:var(--bw-accent); color:var(--bw-accent-dark); }
.bw-slider-dots { display:flex; gap:7px; }
.bw-slider-dot { width:24px;height:3px;border:0;padding:0;background:#d4cbc4;cursor:pointer; }
.bw-slider-dot.is-active { background:var(--bw-ink); }

/* Intro + sections */
.bw-home-intro { display:grid; grid-template-columns:1.15fr .85fr; gap:80px; align-items:end; padding-top:92px; padding-bottom:34px; }
.bw-home-intro h2 { font-size:clamp(2rem,4vw,3.5rem); max-width:14ch; margin:0; }
.bw-home-intro > p { color:var(--bw-ink-soft); line-height:1.9; margin:0 0 5px; }
.bw-section { padding-top:64px; padding-bottom:64px; }
.bw-section-head--premium { border:0; padding-bottom:22px; margin-bottom:22px; align-items:end; }
.bw-section-head--premium h2 { font-size:clamp(2rem,3vw,2.8rem); margin:0; }
.bw-arrow-link { display:inline-flex; gap:8px; align-items:center; font:700 12px var(--bw-font-ui); color:var(--bw-ink); }
.bw-arrow-link:hover { color:var(--bw-accent-dark); text-decoration:none; }

/* Categories */
.bw-category-grid--premium { grid-template-columns:repeat(4,1fr); gap:14px; }
.bw-category-grid--premium .bw-category-card { border:0; border-radius:var(--bw-radius-md); background:#fff; box-shadow:var(--bw-shadow); }
.bw-category-grid--premium .bw-cat-image { aspect-ratio:1/1; position:relative; background:#f0ebe7; overflow:hidden; }
.bw-category-grid--premium .bw-cat-image img { transition:transform .5s cubic-bezier(.2,.7,.2,1); }
.bw-category-grid--premium .bw-category-card:hover .bw-cat-image img { transform:scale(1.045); }
.bw-cat-arrow { position:absolute; right:12px;top:12px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.9);color:var(--bw-ink);font-size:14px;opacity:0;transform:translateY(5px);transition:.25s; }
.bw-category-card:hover .bw-cat-arrow { opacity:1;transform:none; }
.bw-category-grid--premium .bw-cat-name { padding:15px 16px 17px; display:flex; flex-direction:column; gap:3px; font:600 15px var(--bw-font-ui); }
.bw-category-grid--premium .bw-cat-name small { font:500 11px var(--bw-font-ui); color:var(--bw-ink-soft); }

.bw-home-banner { max-width:var(--bw-content-width); margin-top:12px; margin-bottom:12px; overflow:hidden; border-radius:18px; }
.bw-home-banner img { display:block; width:100%; height:auto; }
.bw-instagram-module { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:20px; max-width:var(--bw-content-width); margin-top:28px; padding:24px 28px; border:1px solid #efc9dd; border-radius:18px; background:linear-gradient(115deg,#fff6fa,#f9e3ef); box-shadow:0 8px 24px rgba(145,39,131,.07); }
.bw-instagram-mark { display:grid; place-items:center; width:52px; height:52px; border-radius:16px; background:linear-gradient(135deg,#f04b91,#912783); color:#fff; font:400 37px/1 var(--bw-font-ui); }
.bw-instagram-copy .bw-kicker { display:block; margin-bottom:3px; }
.bw-instagram-copy h2 { margin:0; font-size:clamp(1.25rem,2vw,1.75rem); }
.bw-instagram-copy p { margin:5px 0 0; color:var(--bw-ink-soft); font-size:12px; }
.bw-instagram-link { display:inline-flex; align-items:center; gap:12px; padding:11px 16px; border-radius:999px; background:var(--bw-primary); color:#fff; font:700 12px var(--bw-font-ui); white-space:nowrap; }
.bw-instagram-link:hover { background:var(--bw-primary-2); color:#fff; text-decoration:none; transform:translateY(-1px); }

/* Product cards */
.bw-home-product-grid .woocommerce ul.products { grid-template-columns:repeat(4,1fr); gap:16px; }
.woocommerce ul.products li.product { border:1px solid #e9e2dc; border-radius:18px; background:#fff; padding:0 0 17px; box-shadow:none; overflow:hidden; transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease; }
.woocommerce ul.products li.product:hover { transform:translateY(-5px); box-shadow:0 18px 42px rgba(31,27,25,.10); border-color:#ded3cc; }
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { display:block; }
.woocommerce ul.products li.product a img { width:100%; margin:0 0 15px; aspect-ratio:1/1; object-fit:cover; border-radius:0; background:#f3efeb; transition:transform .45s ease; }
.woocommerce ul.products li.product:hover a img { transform:scale(1.018); }
.bw-card-badges { position:absolute; top:12px;left:12px;display:flex;gap:5px;z-index:2; }
.bw-card-badges span { background:#fff; border-radius:999px; padding:6px 9px; font:700 9px var(--bw-font-ui); letter-spacing:.08em;text-transform:uppercase; box-shadow:0 5px 14px rgba(31,27,25,.08); }
.bw-card-badges span + span { background:var(--bw-ink);color:#fff; }
.woocommerce ul.products li.product h2,.woocommerce ul.products li.product .woocommerce-loop-product__title { padding:0 17px; font:600 15px/1.4 var(--bw-font-ui); letter-spacing:0; min-height:43px; margin:0 0 4px; }
.bw-loop-category { padding:0 17px; color:#9a918b; font:600 9px var(--bw-font-ui); text-transform:uppercase; letter-spacing:.12em; }
.bw-loop-code { padding:0 17px; margin:8px 0 0; color:#837a74; font:500 10px var(--bw-font-ui); letter-spacing:.06em; }
.woocommerce ul.products li.product .price { padding:0 17px; margin-top:9px; color:var(--bw-ink); font:700 14px var(--bw-font-ui); }
.woocommerce ul.products li.product .price ins { color:var(--bw-accent-dark); }
.woocommerce ul.products li.product .button { margin:12px 17px 0; border-radius:999px; padding:9px 14px; background:var(--bw-ink); font:700 11px var(--bw-font-ui); }
.bw-catalog-mode .woocommerce ul.products li.product .bw-view-link { margin:12px 17px 0; font:700 11px var(--bw-font-ui); color:var(--bw-accent-dark); }
.bw-card-arrow { position:absolute; right:15px; bottom:15px; width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#f5f0ec;color:var(--bw-ink);font-size:13px; transition:.2s; }
.woocommerce ul.products li.product:hover .bw-card-arrow { background:var(--bw-ink);color:#fff; }

/* Featured assurance band */
.bw-home-feature-band { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--bw-border); border-bottom:1px solid var(--bw-border); margin-top:10px; padding-top:22px; padding-bottom:22px; }
.bw-feature-item { display:flex; align-items:center; gap:13px; padding:10px 22px; border-right:1px solid var(--bw-border); }
.bw-feature-item:last-child { border-right:0; }
.bw-feature-icon { width:36px;height:36px;flex:0 0 36px;border:1px solid #ded4cd;border-radius:50%;display:grid;place-items:center;color:var(--bw-accent-dark);font-size:14px; }
.bw-feature-item strong { font:700 12px var(--bw-font-ui); }
.bw-feature-item p { margin:3px 0 0;color:var(--bw-ink-soft);font-size:11px; }
.bw-home-products--latest { padding-bottom:82px; }
.bw-elementor-content { padding-bottom:50px; }
.bw-elementor-page { width:100%; }

/* Footer */
.bw-site-footer { margin-top:0; background:#201b19; color:#e9e0d9; }
.bw-footer-cta { display:flex; align-items:end; justify-content:space-between; gap:40px; padding-top:70px; padding-bottom:48px; }
.bw-kicker--light { color:#c9989d; }
.bw-footer-cta h2 { color:#fff; font-size:clamp(2rem,4vw,3.4rem); max-width:12ch; margin:0; }
.bw-footer-cta-link { display:inline-flex;gap:10px;align-items:center;color:#fff;border-bottom:1px solid #82756e;padding-bottom:7px;font:700 12px var(--bw-font-ui); }
.bw-footer-cta-link:hover { color:#e3b2b7;text-decoration:none;border-color:#e3b2b7; }
.bw-footer-rule { border-top:1px solid rgba(255,255,255,.12); }
.bw-footer-inner { grid-template-columns:1.4fr 1fr 1fr 1.15fr; padding-top:54px; padding-bottom:62px; gap:48px; }
.bw-footer-logo { display:inline-flex; background:#fff; border-radius:12px; padding:8px 13px; }
.bw-footer-logo img,.bw-footer-logo .custom-logo { max-height:48px;width:auto; }
.bw-footer-brand p { color:#c8beb8; font-size:13px; max-width:30ch; }
.bw-footer-small { color:#877c76;font:500 10px/1.6 var(--bw-font-ui); }
.bw-site-footer h4 { color:#fff; font:700 11px var(--bw-font-ui); text-transform:uppercase; letter-spacing:.13em; margin-bottom:17px; }
.bw-site-footer a { color:#c8beb8; }
.bw-site-footer a:hover { color:#fff; }
.bw-site-footer li { margin-bottom:9px; font-size:12px; }
.bw-footer-contact { color:#c8beb8; font-size:12px; line-height:1.7; }
.bw-footer-email { font:600 12px var(--bw-font-ui); }
.bw-footer-bottom { border-top:1px solid rgba(255,255,255,.1); padding:17px 24px; }
.bw-footer-bottom .bw-container { display:flex;justify-content:space-between;gap:20px;color:#877c76;font:500 10px var(--bw-font-ui); }

.bw-site-footer { border-top:2px solid var(--bw-primary-2); background:#383838; color:#e9e9e9; }
.bw-site-footer .bw-footer-inner { display:grid; grid-template-columns:1.05fr 1.05fr 1fr 1.05fr; gap:38px; padding-top:27px; padding-bottom:22px; }
.bw-site-footer .bw-footer-column h4 { margin:0 0 17px; color:#fff; font:700 16px/1.2 var(--bw-font-ui); text-transform:none; letter-spacing:0; }
.bw-footer-social a { display:flex; align-items:center; gap:8px; margin:0 0 14px; color:#c8c8c8; font:500 13px/1.2 var(--bw-font-ui); }
.bw-footer-social a:hover { color:#fff; text-decoration:none; }
.bw-social-icon { display:grid; place-items:center; width:29px; height:29px; flex:0 0 29px; border-radius:7px; color:#fff; font:700 20px/1 var(--bw-font-ui); }
.bw-social-icon--facebook { background:#4c70ad; border-radius:50%; }
.bw-social-icon--instagram { background:#d82c3b; font-size:24px; }
.bw-social-icon--youtube { background:#d72b32; font-size:13px; }
.bw-footer-about p { max-width:29ch; margin:0; color:#e1e1e1; font:500 12px/1.7 var(--bw-font-ui); }
.bw-footer-hours dl { margin:0; }
.bw-footer-hours dl div { display:flex; justify-content:space-between; gap:14px; padding:5px 0; border-bottom:1px dotted rgba(255,255,255,.18); color:#e0e0e0; font:500 12px/1.2 var(--bw-font-ui); }
.bw-footer-hours dt { color:#e62d8b; }
.bw-footer-hours dd { margin:0; text-align:right; }
.bw-footer-contact-column { border-left:1px solid rgba(255,255,255,.65); padding-left:34px; }
.bw-footer-contact-column address { color:#e1e1e1; font:500 13px/1.7 var(--bw-font-ui); font-style:normal; }
.bw-footer-contact-column p { margin:0 0 8px; }
.bw-footer-contact-column a { color:#e1e1e1; }
.bw-footer-contact-column a:hover { color:#fff; }
.bw-contact-icon { display:inline-block; width:18px; color:#fff; font-size:16px; }
.bw-site-footer .bw-footer-bottom { padding:7px 24px; background:#30323d; border-top:0; text-align:center; }
.bw-site-footer .bw-footer-bottom .bw-container { display:block; color:#aaaab0; font:500 11px var(--bw-font-ui); }

/* Elementor editor-safe defaults */
.elementor-page .bw-site-header { z-index:999; }
.elementor-page .elementor-section.elementor-section-boxed > .elementor-container { max-width:var(--bw-max-width); }
.elementor-page .elementor-widget-text-editor p { max-width:none; }

@media (max-width: 980px) {
  .bw-primary-nav { display:none;position:absolute;top:100%;left:0;right:0;background:#fff;padding:12px 20px 18px;box-shadow:0 15px 30px rgba(31,27,25,.12); }
  .bw-primary-nav.is-open { display:block; }
  .bw-primary-nav > ul { flex-direction:column;align-items:stretch; }
  .bw-primary-nav > ul > li > a { color:var(--bw-ink); }
  .bw-nav-toggle { display:inline-flex; }
  .bw-category-grid--premium { grid-template-columns:repeat(2,1fr); }
  .bw-home-product-grid .woocommerce ul.products { grid-template-columns:repeat(2,1fr); }
  .bw-footer-inner { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 700px) {
  .bw-header-top-note { display:none; }
  .bw-header-top-inner { padding:7px 18px; }
  .bw-header-inner { padding:12px 18px; min-height:70px; }
  .bw-header-shop { display:none; }
  .bw-search-label { display:none; }
  .bw-header-search .search-form { padding:12px 18px; }
  .bw-home-slider { margin-top:12px; padding:0 12px; }
  .bw-slider-track { min-height:600px; }
  .bw-slide { grid-template-columns:1fr; }
  .bw-slide-copy { padding:42px 28px 28px; min-height:340px; }
  .bw-slide-media { min-height:260px; }
  .bw-slide-copy h1 { font-size:clamp(2.5rem,12vw,4rem); }
  .bw-home-intro { grid-template-columns:1fr; gap:18px; padding:65px 24px 15px; }
  .bw-section { padding-top:46px; padding-bottom:46px; }
  .bw-section-head--premium { align-items:flex-start; }
  .bw-section-head--premium .bw-arrow-link { display:none; }
  .bw-category-grid--premium { grid-template-columns:repeat(2,1fr); gap:10px; }
  .bw-home-product-grid .woocommerce ul.products { grid-template-columns:repeat(2,1fr); gap:10px; }
  .woocommerce ul.products li.product h2,.woocommerce ul.products li.product .woocommerce-loop-product__title { padding-left:12px;padding-right:12px;font-size:13px; }
  .bw-loop-category,.bw-loop-code,.woocommerce ul.products li.product .price { padding-left:12px;padding-right:12px; }
  .bw-catalog-mode .woocommerce ul.products li.product .bw-view-link { margin-left:12px; }
  .bw-home-feature-band { grid-template-columns:1fr; }
  .bw-feature-item { border-right:0;border-bottom:1px solid var(--bw-border);padding:14px 0; }
  .bw-feature-item:last-child { border-bottom:0; }
  .bw-footer-cta { flex-direction:column;align-items:flex-start;padding-top:54px; }
  .bw-footer-inner { grid-template-columns:1fr;gap:34px;padding-top:42px; }
  .bw-footer-bottom .bw-container { flex-direction:column; }
}


/* ==========================================================
   2026 Premium refinement v1.2 — editorial, compact & full-width
   ========================================================== */
:root {
  --bw-bg: #fbf8f5;
  --bw-surface: #fff;
  --bw-ink: #241d1b;
  --bw-ink-soft: #716763;
  --bw-border: #eadfd9;
  --bw-accent: #e83b91;
  --bw-accent-dark: #922d88;
  --bw-pink-1: #ef4a9a;
  --bw-pink-2: #9c2d91;
  --bw-max-width: 1320px;
  --bw-content-width: 1240px;
  --bw-radius-md: 16px;
  --bw-radius-lg: 24px;
  --bw-shadow: 0 10px 32px rgba(48, 33, 28, .065);
  --bw-font-display: "Playfair Display", Georgia, serif;
  --bw-font-body: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --bw-font-ui: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body { font-size: 15px; }
.bw-container { max-width: var(--bw-content-width); }
h1,h2,h3,h4 { letter-spacing: -.02em; }
h1 { font-size: clamp(2rem, 4vw, 3.35rem); }
h2 { font-size: clamp(1.55rem, 2.5vw, 2.15rem); }
h3 { font-size: 1.15rem; }

/* Premium pink gradient header — restored from the earlier direction */
.bw-site-header {
  background: linear-gradient(115deg, #f04a9b 0%, #cf3b94 48%, #8f318e 100%);
  color: #fff;
  box-shadow: 0 8px 26px rgba(137, 39, 130, .20);
  backdrop-filter: none;
}
.bw-header-top {
  background: rgba(44, 14, 42, .20);
  color: rgba(255,255,255,.92);
  border-bottom: 1px solid rgba(255,255,255,.13);
  font-size: 10px;
  letter-spacing: .065em;
}
.bw-header-top-inner { padding-top: 7px; padding-bottom: 7px; }
.bw-header-inner { min-height: 72px; padding-top: 10px; padding-bottom: 10px; }
.bw-logo-wrap img, .bw-logo-wrap .custom-logo { max-height: 48px; }
.bw-primary-nav > ul > li > a {
  color: rgba(255,255,255,.96);
  font-size: 12px;
  font-weight: 600;
  padding: 9px 12px;
}
.bw-primary-nav > ul > li > a:hover,
.bw-primary-nav > ul > li.current-menu-item > a {
  color: #fff;
  background: rgba(255,255,255,.15);
}
.bw-search-toggle, .bw-nav-toggle {
  color:#fff;
  background:rgba(255,255,255,.14);
  width:38px; height:38px;
}
.bw-search-toggle:hover, .bw-nav-toggle:hover { background:rgba(255,255,255,.23); }
.bw-nav-toggle span { background:#fff; }
.bw-header-shop {
  padding: 9px 15px;
  font-size: 11px;
  background:#241d1b;
  box-shadow: 0 5px 15px rgba(35,20,30,.12);
}
.bw-header-shop:hover { background:#fff; color:#241d1b; }
.bw-header-search { background:rgba(54,14,50,.92); }

/* Homepage: tighter vertical rhythm */
.bw-home-slider { max-width: var(--bw-content-width); margin-top: 18px; padding-left: 20px; padding-right:20px; }
.bw-slider-track { min-height: 440px; border-radius: 22px; }
.bw-slide-copy { padding: 48px clamp(30px, 5vw, 68px); }
.bw-slide-copy h1 { font-size: clamp(2.5rem, 4.6vw, 4.5rem); line-height: .98; max-width: 7ch; margin-bottom: 16px; }
.bw-slide-copy p { font-size: 13px; line-height: 1.7; max-width: 39ch; }
.bw-slide-media { min-height: 440px; }
.bw-eyebrow, .bw-kicker { font-size: 9px; letter-spacing:.15em; margin-bottom:9px; }
.bw-btn { padding: 12px 17px; font-size: 10px; }
.bw-text-link { font-size: 10px; }
.bw-slider-controls { margin-top: 12px; gap:12px; }
.bw-slider-arrow { width:34px; height:34px; font-size:12px; }
.bw-slider-dot { width:5px; height:5px; }

.bw-home-intro {
  max-width: var(--bw-content-width);
  padding-top: 64px;
  padding-bottom: 18px;
  grid-template-columns: 1fr .78fr;
  gap: 70px;
}
.bw-home-intro h2 { font-size: clamp(1.8rem, 3.1vw, 2.8rem); max-width: 12ch; }
.bw-home-intro > p { font-size: 12px; line-height:1.75; }
.bw-section { max-width: var(--bw-content-width); padding-top: 42px; padding-bottom:42px; }
.bw-section-head--premium { padding-bottom: 14px; margin-bottom: 16px; }
.bw-section-head--premium h2 { font-size: clamp(1.5rem, 2.3vw, 2rem); }
.bw-arrow-link { font-size:10px; }

/* Categories: more premium, less tall */
.bw-category-grid--premium { grid-template-columns: repeat(4, 1fr); gap:12px; }
.bw-category-grid--premium .bw-category-card { border-radius:14px; }
.bw-category-grid--premium .bw-cat-image { aspect-ratio: 1.18 / 1; }
.bw-category-grid--premium .bw-cat-name { padding:11px 13px 13px; font-size:12px; gap:2px; }
.bw-category-grid--premium .bw-cat-name small { font-size:9px; }
.bw-cat-arrow { width:29px; height:29px; right:9px; top:9px; font-size:11px; }

/* Product cards: compact editorial cards with room for real product photography */
.bw-home-product-grid .woocommerce ul.products { grid-template-columns:repeat(4,1fr); gap:14px; }
.woocommerce ul.products li.product {
  border-radius:15px;
  padding-bottom:13px;
  box-shadow:0 4px 18px rgba(42,31,27,.045);
}
.woocommerce ul.products li.product:hover { transform:translateY(-3px); box-shadow:0 14px 30px rgba(42,31,27,.10); }
.woocommerce ul.products li.product a img {
  aspect-ratio: 1 / 1;
  margin-bottom: 10px;
  background:#f3f0ed;
}
.woocommerce ul.products li.product h2,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  padding:0 13px;
  font-size:12px;
  line-height:1.35;
  min-height:34px;
  margin-bottom:3px;
}
.bw-loop-category { padding:0 13px; font-size:8px; letter-spacing:.10em; }
.bw-loop-code { padding:0 13px; margin-top:6px; font-size:9px; }
.woocommerce ul.products li.product .price { padding:0 13px; margin-top:7px; font-size:11px; }
.woocommerce ul.products li.product .button,
.bw-catalog-mode .woocommerce ul.products li.product .bw-view-link { margin:9px 13px 0; font-size:9px; padding:8px 11px; }
.bw-card-badges { top:9px; left:9px; }
.bw-card-badges span { padding:5px 7px; font-size:8px; }
.bw-card-arrow { right:10px; bottom:10px; width:27px; height:27px; font-size:11px; }

.bw-home-feature-band { margin-top: 2px; padding-top:16px; padding-bottom:16px; }
.bw-feature-item { padding:8px 18px; gap:10px; }
.bw-feature-icon { width:31px; height:31px; flex-basis:31px; font-size:12px; }
.bw-feature-item strong { font-size:10px; }
.bw-feature-item p { font-size:9px; }
.bw-home-products--latest { padding-bottom:58px; }

/* Full-width WooCommerce shop/category pages */
.bw-wc-main {
  width:100%;
  max-width:none !important;
  margin:0;
  padding:0 28px 72px !important;
}
.bw-wc-main > * { width:100%; max-width:1440px; margin-left:auto; margin-right:auto; }
.bw-wc-main > .woocommerce-breadcrumb { padding-top:18px; }
.bw-wc-main .bw-archive-banner {
  width:100%;
  max-width:none;
  margin-top:12px;
  border:0;
  border-radius:20px;
  padding:0;
  min-height:190px;
  overflow:hidden;
  background:linear-gradient(115deg,#f8e9ef,#f2dbe9 48%,#e8d5e6);
}
.bw-wc-main .bw-archive-banner.has-image { display:grid; grid-template-columns: 34% 66%; }
.bw-wc-main .bw-archive-banner__image { width:100%; height:100%; min-height:190px; flex:none; border-radius:0; box-shadow:none; }
.bw-wc-main .bw-archive-banner__text { padding:34px 42px; display:flex; flex-direction:column; justify-content:center; }
.bw-wc-main .bw-archive-banner__text h1 { font-size:clamp(1.8rem,3.2vw,3rem); margin-bottom:7px; }
.bw-wc-main .bw-archive-banner__desc { font-size:12px; line-height:1.65; max-width:60ch; }
.bw-wc-main .bw-shop-toolbar { margin-top:22px; margin-bottom:18px; padding:0 0 13px; }
.bw-wc-main .woocommerce ul.products { grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }

/* Elementor should remain able to control the page width without fighting the theme */
.elementor-page .bw-elementor-content { max-width:none; padding-left:0; padding-right:0; }
.elementor-page .bw-elementor-content > .elementor { width:100%; }
.elementor-page .elementor-section.elementor-section-boxed > .elementor-container { max-width:var(--bw-content-width); }

/* Footer: premium but visually quieter */
.bw-site-footer { background:#211c1a; }
.bw-footer-cta { padding-top:54px; padding-bottom:34px; }
.bw-footer-cta h2 { font-size:clamp(1.8rem,3.5vw,2.8rem); max-width:13ch; }
.bw-footer-cta-link { font-size:10px; }
.bw-footer-inner { padding-top:38px; padding-bottom:44px; gap:38px; }
.bw-footer-brand p { font-size:11px; line-height:1.65; }
.bw-footer-small { font-size:9px; }
.bw-site-footer h4 { font-size:9px; margin-bottom:12px; }
.bw-site-footer li { margin-bottom:7px; font-size:10px; }
.bw-footer-contact { font-size:10px; }
.bw-footer-email { font-size:10px; }
.bw-footer-bottom { padding:13px 24px; }
.bw-footer-bottom .bw-container { font-size:9px; }

@media (max-width:980px) {
  .bw-home-product-grid .woocommerce ul.products,
  .bw-wc-main .woocommerce ul.products { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:700px) {
  .bw-header-inner { min-height:66px; }
  .bw-home-slider { padding:0 12px; margin-top:10px; }
  .bw-slider-track { min-height:0; }
  .bw-slide-copy { padding:34px 25px 25px; min-height:270px; }
  .bw-slide-copy h1 { font-size:clamp(2.25rem,12vw,3.4rem); }
  .bw-slide-copy p { font-size:11px; }
  .bw-slide-media { min-height:235px; }
  .bw-home-intro { padding:48px 20px 10px; gap:14px; }
  .bw-home-intro h2 { font-size:2rem; }
  .bw-section { padding:34px 20px; }
  .bw-category-grid--premium { grid-template-columns:repeat(2,1fr); }
  .bw-home-product-grid .woocommerce ul.products,
  .bw-wc-main .woocommerce ul.products { grid-template-columns:repeat(2,1fr); gap:10px; }
  .bw-wc-main { padding:0 14px 48px !important; }
  .bw-wc-main .bw-archive-banner.has-image { display:flex; flex-direction:column; }
  .bw-wc-main .bw-archive-banner__image { min-height:150px; height:150px; }
  .bw-wc-main .bw-archive-banner__text { padding:24px; }
  .bw-wc-main .bw-archive-banner__text h1 { font-size:2rem; }
  .bw-home-feature-band { grid-template-columns:1fr; }
}


/* ==========================================================
   v1.3 — The Bakeware Store visual overhaul
   Brand palette: #912783 / #D6488E
   ========================================================== */
:root {
  --bw-primary: #912783;
  --bw-primary-2: #D6488E;
  --bw-bg: #FCF9FB;
  --bw-surface: #FFFFFF;
  --bw-ink: #251B25;
  --bw-ink-soft: #766A74;
  --bw-border: #EDE3EB;
  --bw-accent: #D6488E;
  --bw-accent-dark: #912783;
  --bw-radius-sm: 10px;
  --bw-radius-md: 14px;
  --bw-radius-lg: 22px;
  --bw-shadow: 0 8px 28px rgba(70,32,67,.07);
  --bw-font-display: "Cormorant Garamond", Georgia, serif;
  --bw-font-body: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --bw-font-ui: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --bw-content-width: 1400px;
  --bw-max-width: 1440px;
}

html { scroll-behavior: smooth; }
body { overflow-x: clip; background:var(--bw-bg); color:var(--bw-ink); font-size:14px; }
h1,h2,h3,h4 { font-family:var(--bw-font-display); color:var(--bw-ink); }
h1 { font-size:clamp(2rem,3.6vw,3.2rem); }
h2 { font-size:clamp(1.55rem,2.4vw,2.25rem); }
h3 { font-size:1.15rem; }
a { color:var(--bw-primary); }

/* HEADER: fixed/sticky branded bar on scroll */
.bw-site-header {
  position: -webkit-sticky !important;
  position: sticky !important;
  top: 0 !important;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 9999 !important;
  background: linear-gradient(110deg,var(--bw-primary-2) 0%, #B6388B 46%, var(--bw-primary) 100%);
  box-shadow: 0 6px 22px rgba(145,39,131,.18);
}
.admin-bar .bw-site-header {
  top: 32px !important;
}
@media screen and (max-width: 782px) {
  .admin-bar .bw-site-header {
    top: 46px !important;
  }
}
.bw-header-inner { min-height:64px; padding:8px 22px; }
.bw-logo-wrap img,.bw-logo-wrap .custom-logo { max-height:46px; width:auto; }
.bw-primary-nav > ul > li > a { color:#fff; font:600 12px var(--bw-font-ui); padding:8px 11px; }
.bw-primary-nav > ul > li > a:hover,
.bw-primary-nav > ul > li.current-menu-item > a { background:rgba(255,255,255,.15); color:#fff; }
.bw-search-toggle,.bw-nav-toggle { width:36px;height:36px; background:rgba(255,255,255,.14); color:#fff; }
.bw-header-shop { padding:8px 14px; background:#fff; color:var(--bw-primary); font:700 11px var(--bw-font-ui); }
.bw-header-shop:hover { background:#2b1d29; color:#fff; }
.bw-header-search { background:#6d1e65; }

/* HOME: reduce visual weight and eliminate oversized type */
.bw-home-slider { max-width:var(--bw-content-width); margin:18px auto 0; padding:0 20px; }
.bw-slider-track { min-height:430px; border-radius:20px; }
.bw-slide-copy { padding:42px clamp(30px,5vw,62px); }
.bw-slide-copy h1 { font-size:clamp(2.35rem,4.2vw,4rem); max-width:8ch; margin-bottom:13px; }
.bw-slide-copy p { font-size:12px; line-height:1.7; }
.bw-slide-media { min-height:430px; }
.bw-eyebrow,.bw-kicker { color:var(--bw-primary); font-size:9px; }
.bw-btn--dark { background:var(--bw-primary); }
.bw-btn--dark:hover { background:var(--bw-primary-2); }
.bw-home-intro { max-width:var(--bw-content-width); padding-top:58px; padding-bottom:12px; gap:60px; }
.bw-home-intro h2 { font-size:clamp(1.9rem,3vw,2.65rem); }
.bw-home-intro > p { font-size:12px; line-height:1.75; }
.bw-section { max-width:var(--bw-content-width); padding-top:38px; padding-bottom:38px; }
.bw-section-head--premium { margin-bottom:15px; padding-bottom:11px; }
.bw-section-head--premium h2 { font-size:clamp(1.55rem,2.2vw,2rem); }
.bw-arrow-link { font-size:10px; color:var(--bw-primary); }

/* CATEGORY CARDS */
.bw-category-grid--premium { grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.bw-category-grid--premium .bw-category-card { border:1px solid var(--bw-border); border-radius:13px; box-shadow:none; }
.bw-category-grid--premium .bw-cat-image { aspect-ratio:1.15/1; background:#f6eef5; }
.bw-category-grid--premium .bw-cat-name { padding:10px 12px 12px; font:600 12px/1.3 var(--bw-font-ui); }
.bw-category-grid--premium .bw-cat-name small { font-size:9px; color:var(--bw-ink-soft); }
.bw-cat-arrow { width:28px;height:28px; background:#fff; color:var(--bw-primary); }

/* PRODUCT CARDS — consistent image area, clean typography */
.woocommerce ul.products,
.bw-home-product-grid .woocommerce ul.products,
.bw-wc-main .woocommerce ul.products { grid-template-columns:repeat(5,minmax(0,1fr)); gap:14px; }
.woocommerce ul.products li.product {
  border:1px solid var(--bw-border); border-radius:14px; background:#fff;
  padding:0 0 12px; box-shadow:0 4px 18px rgba(70,32,67,.045); overflow:hidden;
}
.woocommerce ul.products li.product:hover { border-color:#d9b5d2; transform:translateY(-3px); box-shadow:0 14px 30px rgba(70,32,67,.10); }
.woocommerce ul.products li.product a img {
  width:100%; aspect-ratio:1/1; object-fit:contain; margin:0 0 10px;
  background:#f8f6f8; border-radius:0; padding:8px;
}
.woocommerce ul.products li.product h2,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  padding:0 12px; font:600 12px/1.35 var(--bw-font-ui); min-height:33px; margin:0 0 3px;
}
.bw-loop-category { padding:0 12px; color:#8d7e89; font-size:8px; }
.bw-loop-code { padding:0 12px; margin-top:6px; color:#766a74; font-size:9px; }
.woocommerce ul.products li.product .price { padding:0 12px; margin-top:7px; font-size:11px; color:var(--bw-primary); }
.woocommerce ul.products li.product .button,
.bw-catalog-mode .woocommerce ul.products li.product .bw-view-link { margin:8px 12px 0; padding:7px 10px; font-size:9px; border-radius:999px; }
.bw-catalog-mode .woocommerce ul.products li.product .bw-view-link { color:var(--bw-primary); }
.woocommerce span.onsale { background:var(--bw-primary-2); top:9px;left:9px; font-size:8px; padding:4px 7px; }
.bw-card-badges span { font-size:7px; padding:4px 6px; }

/* Product cards: stronger hierarchy and a branded fallback for missing images. */
.woocommerce ul.products li.product h2,
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size:15px; line-height:1.35; min-height:41px; }
.woocommerce ul.products li.product .bw-loop-code { display:table; margin:8px 12px 0; padding:5px 9px; border:1px solid #efb8d3; border-radius:6px; background:#fff1f7; color:#a82669; font:700 12px/1.1 var(--bw-font-ui); letter-spacing:.08em; }
.woocommerce ul.products li.product .price { font-size:15px; }
.woocommerce ul.products li.product .bw-view-link,
.woocommerce ul.products li.product .button { display:inline-flex; align-items:center; gap:7px; min-height:38px; margin:13px 12px 0; padding:9px 15px; border:0; border-radius:999px; background:linear-gradient(135deg,#d63f89,#a72677); color:#fff; font:700 12px/1 var(--bw-font-ui); box-shadow:0 8px 18px rgba(167,38,119,.2); }
.woocommerce ul.products li.product .bw-view-link::after { content:'→'; font-size:15px; line-height:0; }
.woocommerce ul.products li.product .bw-view-link:hover,
.woocommerce ul.products li.product .button:hover { background:linear-gradient(135deg,#b62d76,#8f216a); color:#fff; transform:translateY(-1px); }
.woocommerce ul.products li.product a .bw-product-placeholder { display:grid; place-items:center; width:100%; aspect-ratio:1/1; margin:0 0 15px; background:radial-gradient(circle at 78% 18%,rgba(255,255,255,.75) 0 7%,transparent 7.5%), linear-gradient(145deg,#fff0f7,#f5c8de 52%,#d85b9b); color:#a32669; }
.bw-product-placeholder span { padding:9px 13px; border:1px solid rgba(163,38,105,.28); border-radius:999px; background:rgba(255,255,255,.58); font:700 12px/1 var(--bw-font-ui); letter-spacing:.16em; }

/* Keep archive content readable on wide screens while preserving mobile width. */
.bw-wc-main { width:100%; max-width:1400px !important; padding:0 22px 64px !important; margin:0 auto; }
.bw-wc-main > * { width:100%; max-width:1400px; margin-left:auto; margin-right:auto; }
.bw-wc-main > .woocommerce-breadcrumb { max-width:1400px; padding:14px 0 0; margin:0 auto; font-size:11px; }
.bw-wc-main .bw-archive-banner,
.bw-wc-main .bw-archive-banner.has-image {
  display:grid; grid-template-columns:minmax(0,1fr) 340px; align-items:stretch;
  min-height:205px; margin:14px auto 24px; padding:0; border:0; border-radius:18px; overflow:hidden;
  background:linear-gradient(115deg,#f8eaf4 0%,#f6e1ed 55%,#ecd5e7 100%);
}
.bw-wc-main .bw-archive-banner__text { order:1; padding:34px 48px; justify-content:center; }
.bw-wc-main .bw-archive-banner__image { order:2; width:100%; height:205px; min-height:205px; border-radius:0; box-shadow:none; }
.bw-wc-main .bw-archive-banner__text h1 { font-size:clamp(1.8rem,3vw,2.65rem); margin:0 0 5px; }
.bw-wc-main .bw-archive-banner__desc { font-size:13px; line-height:1.65; max-width:62ch; }
.bw-wc-main .bw-shop-toolbar { margin:0 0 16px; padding:0 0 12px; border-bottom:1px solid var(--bw-border); }
.bw-wc-main .woocommerce-result-count { font-size:12px; }
.bw-wc-main .woocommerce-ordering select { padding:8px 12px; font-size:12px; border-color:var(--bw-border); color:var(--bw-ink); }
.bw-wc-main .woocommerce ul.products li.product h2,
.bw-wc-main .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size:15px; line-height:1.4; min-height:42px; }
.bw-wc-main .woocommerce ul.products li.product .bw-loop-category { font-size:10px; }
.bw-wc-main .woocommerce ul.products li.product .bw-loop-code { font-size:11px; }
.bw-wc-main .woocommerce ul.products li.product .price { font-size:14px; }
.bw-wc-main .woocommerce ul.products li.product .button,
.bw-wc-main .bw-catalog-mode .woocommerce ul.products li.product .bw-view-link { font-size:11px; }
.bw-wc-main .woocommerce ul.products { margin-top:0 !important; }

/* SINGLE PRODUCT — clean editorial split */
.single-product .woocommerce div.product {
  max-width:1400px; padding:34px 22px 30px; margin:0 auto;
  grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr); gap:54px;
}
.single-product .woocommerce div.product div.images {
  position:sticky; top:82px; box-shadow:none; border:1px solid var(--bw-border); border-radius:18px;
  background:#fff; padding:12px; overflow:visible;
}
.single-product .woocommerce div.product div.images .woocommerce-product-gallery__image { background:#f8f6f8; border-radius:12px; overflow:hidden; }
.single-product .woocommerce div.product div.images img { border-radius:12px; }
.single-product .woocommerce div.product div.images .flex-control-thumbs { gap:9px; padding:10px 2px 2px; margin:0; }
.single-product .woocommerce div.product div.images .flex-control-thumbs li { width:70px; }
.single-product .woocommerce div.product div.images .flex-control-thumbs img { width:70px;height:70px; border-radius:9px; border:1px solid var(--bw-border); opacity:1; }
.single-product .woocommerce div.product div.images .flex-control-thumbs img.flex-active { border:2px solid var(--bw-primary-2); }
.single-product .woocommerce div.product .summary { padding:10px 8px; }
.single-product .woocommerce div.product .summary h1.product_title { font-size:clamp(1.9rem,3.3vw,3rem); line-height:1.05; margin-bottom:10px; }
.single-product .woocommerce div.product .summary > p.price { color:var(--bw-primary); font-size:1.2rem; margin-bottom:12px; }
.single-product .woocommerce div.product p.stock { font-size:10px; padding:4px 9px; margin:0 0 14px; }
.single-product .woocommerce div.product .woocommerce-product-details__short-description { font-size:12px; line-height:1.8; padding:15px 0; margin-bottom:5px; }
.single-product .bw-product-meta { margin-top:16px; padding-top:14px; gap:7px; }
.single-product .bw-pill { font-size:9px; padding:4px 9px; background:#f6edf5; color:var(--bw-primary); }
.single-product .bw-pill--code { background:#f3eff3; color:var(--bw-ink); }
.single-product .bw-catalog-note { background:linear-gradient(110deg,#f8eaf4,#f7e3ed); color:var(--bw-primary); font-size:11px; padding:10px 13px; border-radius:9px; }
.single-product .woocommerce div.product .woocommerce-tabs { max-width:1400px; padding:0 22px; margin:0 auto 42px; }
.single-product .woocommerce div.product .woocommerce-tabs ul.tabs { border-bottom:1px solid var(--bw-border); }
.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li a { padding:10px 15px; font-size:1rem; }
.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color:var(--bw-primary); border-bottom-color:var(--bw-primary-2); }
.single-product .woocommerce div.product .woocommerce-tabs .panel { font-size:12px; line-height:1.8; }
.single-product .woocommerce div.product .related.products { max-width:1400px; padding:0 22px 50px; }
.single-product .woocommerce div.product .related.products > h2 { font-size:1.8rem; border-bottom:0; }

/* FOOTER — compact, not a giant dark block */
.bw-site-footer { margin-top:30px; background:#211921; color:#eee4ec; }
.bw-footer-cta { max-width:1400px; padding:34px 22px 24px; }
.bw-footer-cta h2 { color:#fff; font-size:clamp(1.6rem,2.8vw,2.2rem); max-width:15ch; }
.bw-footer-cta-link { font-size:9px; }
.bw-footer-rule { max-width:1400px; }
.bw-footer-inner { max-width:1400px; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:30px; padding:28px 22px 30px; }
.bw-footer-logo { padding:6px 10px; border-radius:8px; }
.bw-footer-logo img,.bw-footer-logo .custom-logo { max-height:38px; }
.bw-footer-brand p,.bw-footer-contact { font-size:10px; line-height:1.6; }
.bw-footer-small,.bw-site-footer li,.bw-footer-email { font-size:9px; }
.bw-site-footer h4 { font-size:9px; margin-bottom:9px; }
.bw-site-footer li { margin-bottom:5px; }
.bw-footer-bottom { padding:11px 22px; }
.bw-footer-bottom .bw-container { font-size:8px; }

/* Elementor: don't constrain Elementor's own full-width canvas */
.elementor-page .bw-elementor-content { width:100%; max-width:none; padding:0; }
.elementor-page .elementor-section.elementor-section-boxed > .elementor-container { max-width:1400px; }

@media (max-width:1100px) {
  .bw-category-grid--premium { grid-template-columns:repeat(4,1fr); }
  .woocommerce ul.products,.bw-home-product-grid .woocommerce ul.products,.bw-wc-main .woocommerce ul.products { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .single-product .woocommerce div.product { gap:36px; }
}
@media (max-width:780px) {
  .bw-header-inner { min-height:60px; padding:7px 15px; }
  .bw-primary-nav { background:#fff; }
  .bw-primary-nav > ul > li > a { color:var(--bw-ink); }
  .bw-primary-nav > ul > li > a:hover { color:var(--bw-primary); }
  .bw-header-shop { display:none; }
  .bw-home-slider { padding:0 12px; }
  .bw-slider-track { border-radius:15px; }
  .bw-slide { grid-template-columns:1fr; }
  .bw-slide-copy { min-height:250px; padding:30px 24px 24px; }
  .bw-slide-media { min-height:220px; }
  .bw-slide-copy h1 { font-size:clamp(2.2rem,10vw,3.1rem); }
  .bw-home-intro { grid-template-columns:1fr; gap:12px; padding:44px 20px 8px; }
  .bw-section { padding:30px 20px; }
  .bw-category-grid--premium { grid-template-columns:repeat(2,1fr); gap:9px; }
  .woocommerce ul.products,.bw-home-product-grid .woocommerce ul.products,.bw-wc-main .woocommerce ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .bw-wc-main { padding:0 12px 42px !important; }
  .bw-wc-main .bw-archive-banner,.bw-wc-main .bw-archive-banner.has-image { grid-template-columns:1fr; min-height:0; }
  .bw-wc-main .bw-archive-banner__image { order:1; height:145px; min-height:145px; }
  .bw-wc-main .bw-archive-banner__text { order:2; padding:22px; }
  .bw-wc-main .bw-archive-banner__text h1 { font-size:2rem; }
  .bw-wc-main .woocommerce ul.products li.product h2,
  .bw-wc-main .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size:13px; min-height:36px; }
  .bw-wc-main .woocommerce ul.products li.product .price { font-size:13px; }
  .single-product .woocommerce div.product { grid-template-columns:1fr; padding:22px 15px 20px; gap:24px; }
  .single-product .woocommerce div.product div.images { position:static; }
  .single-product .woocommerce div.product .summary { padding:0; }
  .single-product .woocommerce div.product .summary h1.product_title { font-size:2.25rem; }
  .single-product .woocommerce div.product .woocommerce-tabs { padding:0 15px; }
  .single-product .woocommerce div.product .related.products { padding:0 15px 40px; }
  .bw-footer-cta { padding:30px 20px 20px; }
  .bw-footer-inner { grid-template-columns:repeat(2,1fr); gap:24px; padding:24px 20px 28px; }
}
@media (max-width:480px) {
  .bw-footer-inner { grid-template-columns:1fr 1fr; }
  .bw-category-grid--premium .bw-cat-name { font-size:10px; }
  .woocommerce ul.products li.product h2,.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size:13px; min-height:36px; }
}

/* v1.3 single-product template wrapper */
.bw-single-product-main { width:100%; overflow:clip; }
.bw-single-product-main .bw-wc-main { padding-bottom:0 !important; }
.single-product .bw-wc-main > .woocommerce-breadcrumb { padding-top:14px; }
.single-product .bw-wc-main > .woocommerce-breadcrumb + div.product { margin-top:4px; }

/* ==========================================================
   v1.3.1 — WooCommerce-safe homepage products + readable footer
   ========================================================== */
:root {
  --bw-primary: #912783;
  --bw-primary-2: #D6488E;
}

/* The custom homepage product query must live inside a WooCommerce
   context; this also prevents theme/default WC width rules from
   collapsing the cards into a narrow centre column. */
.bw-home-product-grid-inner {
  width: 100%;
}
.bw-home-product-grid-inner ul.products.bw-home-products-list,
.bw-home-product-grid .woocommerce ul.products {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}
.bw-home-product-grid-inner ul.products.bw-home-products-list::before,
.bw-home-product-grid-inner ul.products.bw-home-products-list::after {
  display: none !important;
}
.bw-home-product-grid-inner ul.products.bw-home-products-list li.product {
  width: auto !important;
  max-width: none !important;
  float: none !important;
  clear: none !important;
  margin: 0 !important;
  min-width: 0;
}
.bw-home-product-grid-inner ul.products.bw-home-products-list li.product a img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: contain !important;
}
.bw-home-product-grid-inner ul.products.bw-home-products-list li.product {
  display:flex;
  flex-direction:column;
}
.bw-home-product-grid-inner ul.products.bw-home-products-list li.product .bw-view-link {
  align-self:flex-start;
  width:calc(100% - 24px);
  justify-content:center;
  margin:13px 12px 0 !important;
  padding:9px 10px;
  font-size:11px;
  letter-spacing:.01em;
}
.bw-home-product-grid-inner ul.products.bw-home-products-list li.product .bw-card-arrow {
  display:none;
}

/* Keep the homepage product sections visually balanced on large screens. */
.bw-home-products .bw-section-head--premium h2 {
  font-size: clamp(1.45rem, 2vw, 1.9rem) !important;
}
.bw-home-products .bw-section-head--premium {
  margin-bottom: 18px;
}

/* Readable footer: compact dimensions without tiny text. */
.bw-site-footer {
  margin-top: 24px;
}
.bw-footer-cta {
  padding-top: 42px;
  padding-bottom: 30px;
}
.bw-footer-cta h2 {
  font-size: clamp(1.7rem, 3vw, 2.35rem) !important;
  line-height: 1.05;
}
.bw-footer-inner {
  padding-top: 32px;
  padding-bottom: 34px;
  gap: 34px;
}
.bw-footer-brand p,
.bw-footer-contact {
  font-size: 13px !important;
  line-height: 1.65 !important;
}
.bw-footer-small {
  font-size: 11px !important;
  line-height: 1.6 !important;
}
.bw-site-footer h4 {
  font-size: 11px !important;
  margin-bottom: 12px !important;
}
.bw-site-footer li,
.bw-site-footer li a {
  font-size: 13px !important;
  line-height: 1.5 !important;
}
.bw-footer-help-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 6px;
  color: #fff !important;
  font: 600 12px/1.4 var(--bw-font-ui);
}
.bw-footer-help-link:hover {
  color: var(--bw-primary-2) !important;
  text-decoration: none;
}
.bw-footer-bottom .bw-container {
  font-size: 10px !important;
}

/* WooCommerce archive grids remain full-width and predictable. */
.bw-wc-main .woocommerce ul.products {
  width: 100% !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}
.bw-wc-main .woocommerce ul.products::before,
.bw-wc-main .woocommerce ul.products::after {
  display:none !important;
  content:none !important;
}
.bw-wc-main .woocommerce ul.products li.product {
  width:auto !important;
  max-width:none !important;
  float:none !important;
  clear:none !important;
  margin:0 !important;
}

@media (max-width: 1100px) {
  .bw-home-product-grid-inner ul.products.bw-home-products-list,
  .bw-wc-main .woocommerce ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 700px) {
  .bw-home-product-grid-inner ul.products.bw-home-products-list,
  .bw-wc-main .woocommerce ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 11px !important;
  }
  .bw-footer-inner {
    gap: 26px;
  }
  .bw-footer-brand p,
  .bw-footer-contact,
  .bw-site-footer li,
  .bw-site-footer li a {
    font-size: 12px !important;
  }
}

/* Final footer treatment for the reference layout. */
.bw-site-footer .bw-footer-column h4 { font-size:16px !important; margin-bottom:17px !important; }
.bw-site-footer .bw-footer-about p { font-size:12px !important; line-height:1.7 !important; }
.bw-site-footer .bw-footer-contact-column address { font-size:13px !important; line-height:1.7 !important; }
@media (max-width:700px) {
  .bw-site-footer .bw-footer-inner { grid-template-columns:1fr; gap:26px; }
  .bw-site-footer .bw-footer-contact-column { border-left:0; padding-left:0; }
}

/* Soft bakery-paper pattern for the site canvas. */
body {
  background-color: #fcf7fa;
  background-image: radial-gradient(circle at 1px 1px, rgba(214,72,142,.11) 1px, transparent 1.5px), linear-gradient(135deg, rgba(255,255,255,.48), rgba(246,220,235,.18));
  background-size: 26px 26px, 100% 100%;
  background-attachment: fixed;
}

/* Floating WhatsApp contact widget. */
.bw-whatsapp { position:fixed; right:24px; bottom:24px; z-index:1000; display:flex; flex-direction:column; align-items:flex-end; gap:12px; }
.bw-whatsapp-toggle { display:grid; place-items:center; width:58px; height:58px; border:0; border-radius:50%; background:#25D366; color:#fff; font-size:30px; line-height:1; cursor:pointer; box-shadow:0 10px 26px rgba(37,211,102,.32); transition:transform .2s ease, box-shadow .2s ease; }
.bw-whatsapp-toggle svg { display:block; width:28px; height:28px; }
.bw-whatsapp-toggle:hover { transform:translateY(-2px) scale(1.03); box-shadow:0 14px 30px rgba(37,211,102,.4); }
.bw-whatsapp-panel { width:min(330px,calc(100vw - 32px)); padding:20px; border:1px solid #d8f0df; border-radius:18px; background:#fff; box-shadow:0 18px 45px rgba(31,27,25,.18); }
.bw-whatsapp-panel[hidden] { display:none; }
.bw-whatsapp-panel strong { display:block; color:var(--bw-ink); font:800 15px/1.3 var(--bw-font-ui); }
.bw-whatsapp-panel > span { display:block; margin:4px 0 14px; color:var(--bw-ink-soft); font:500 11px var(--bw-font-ui); }
.bw-whatsapp-form textarea { display:block; width:100%; resize:vertical; border:1px solid #dce9df; border-radius:10px; padding:10px 11px; color:var(--bw-ink); font:500 12px/1.5 var(--bw-font-ui); outline:0; }
.bw-whatsapp-form textarea:focus { border-color:#25D366; box-shadow:0 0 0 3px rgba(37,211,102,.14); }
.bw-whatsapp-form button { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; margin-top:10px; padding:11px 14px; border:0; border-radius:999px; background:#25D366; color:#073b1d; font:800 12px var(--bw-font-ui); cursor:pointer; }
.bw-whatsapp-form button:hover { background:#20bd5b; }
@media (max-width:600px) { .bw-whatsapp { right:16px; bottom:16px; } .bw-whatsapp-toggle { width:54px; height:54px; font-size:27px; } }

/* Premium assurance band: make the three homepage promises easy to scan. */
.bw-home-feature-band {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  margin-top:26px;
  padding:14px 0;
  border:1px solid #efd9e7;
  border-radius:20px;
  background:linear-gradient(115deg,#fffafd,#fff1f7);
  box-shadow:0 10px 28px rgba(145,39,131,.07);
}
.bw-home-feature-band .bw-feature-item { min-height:92px; padding:15px 28px; gap:15px; border-right:1px solid #efd9e7; }
.bw-home-feature-band .bw-feature-item:last-child { border-right:0; }
.bw-home-feature-band .bw-feature-icon { width:48px; height:48px; flex:0 0 48px; border:0; background:linear-gradient(135deg,#f04b91,#912783); color:#fff; box-shadow:0 7px 16px rgba(167,38,119,.2); font-size:20px; }
.bw-home-feature-band .bw-feature-item strong { display:block; color:var(--bw-ink); font:800 16px/1.25 var(--bw-font-ui); }
.bw-home-feature-band .bw-feature-item p { margin:5px 0 0; color:var(--bw-ink-soft); font:500 13px/1.45 var(--bw-font-ui); }
@media (max-width:780px) {
  .bw-home-feature-band { grid-template-columns:1fr; gap:0; margin:20px 20px 0; padding:8px 0; }
  .bw-home-feature-band .bw-feature-item { min-height:0; padding:16px 20px; border-right:0; border-bottom:1px solid #efd9e7; }
  .bw-home-feature-band .bw-feature-item:last-child { border-bottom:0; }
  .bw-home-feature-band .bw-feature-item strong { font-size:15px; }
  .bw-home-feature-band .bw-feature-item p { font-size:12px; }
}

/* Editorial footer: larger type, clear columns, and a premium contact focus. */
.bw-site-footer .bw-footer-inner { grid-template-columns:1fr 1.25fr 1.15fr 1.1fr; gap:48px; padding-top:48px; padding-bottom:46px; }
.bw-site-footer .bw-footer-column { position:relative; padding-top:16px; }
.bw-site-footer .bw-footer-column::before { content:''; position:absolute; top:0; left:0; width:42px; height:3px; border-radius:99px; background:var(--bw-primary-2); }
.bw-site-footer .bw-footer-column h4 { font-size:18px !important; line-height:1.2; margin-bottom:20px !important; letter-spacing:-.01em; }
.bw-site-footer .bw-footer-social a { gap:11px; margin-bottom:16px; font-size:14px; line-height:1.3; }
.bw-site-footer .bw-social-icon { width:34px; height:34px; flex-basis:34px; }
.bw-site-footer .bw-footer-about p { max-width:34ch; font-size:14px !important; line-height:1.75 !important; }
.bw-site-footer .bw-footer-hours dl div { padding:8px 0; font-size:13px; line-height:1.3; }
.bw-site-footer .bw-footer-hours dt { font-weight:700; }
.bw-site-footer .bw-footer-contact-column { border:0; border-radius:16px; padding:24px 22px 20px; background:rgba(255,255,255,.08); }
.bw-site-footer .bw-footer-contact-column::before { top:0; left:22px; }
.bw-site-footer .bw-footer-contact-column address { font-size:14px !important; line-height:1.75 !important; }
.bw-site-footer .bw-footer-contact-column p { margin-bottom:11px; }
.bw-site-footer .bw-contact-icon { width:22px; color:#f17eae; }
.bw-site-footer .bw-footer-bottom { padding:11px 24px; }
.bw-site-footer .bw-footer-bottom .bw-container { font-size:12px !important; letter-spacing:.01em; }
@media (max-width:980px) {
  .bw-site-footer .bw-footer-inner { grid-template-columns:repeat(2,minmax(0,1fr)); gap:34px 28px; }
}
@media (max-width:700px) {
  .bw-site-footer .bw-footer-inner { grid-template-columns:1fr; gap:30px; padding-top:38px; padding-bottom:38px; }
  .bw-site-footer .bw-footer-column { padding-top:14px; }
  .bw-site-footer .bw-footer-contact-column { padding:22px 18px 18px; }
  .bw-site-footer .bw-footer-contact-column::before { left:18px; }
  .bw-site-footer .bw-footer-bottom .bw-container { font-size:11px !important; }
}

/* Focused single-product presentation: clear detail panel and quieter recommendations. */
.single-product .woocommerce div.product .summary { padding:28px 32px 30px; border:1px solid #efd9e7; border-radius:20px; background:rgba(255,255,255,.88); box-shadow:0 12px 30px rgba(145,39,131,.07); }
.single-product .woocommerce div.product .summary h1.product_title { font-size:clamp(2rem,3.3vw,3.1rem); line-height:1.08; margin-bottom:14px; }
.single-product .woocommerce div.product .summary > p.price { display:inline-block; margin:0 0 14px; padding:9px 13px; border-radius:9px; background:#fff0f7; color:var(--bw-primary); font-size:1.35rem; font-weight:700; }
.single-product .woocommerce div.product .woocommerce-product-details__short-description { margin:16px 0 4px; padding:18px 0; border-top:1px solid var(--bw-border); border-bottom:1px solid var(--bw-border); font-size:13px; line-height:1.75; color:var(--bw-ink-soft); }
.single-product .bw-product-meta { margin-top:18px; padding-top:16px; border-top:0; }
.single-product .bw-pill { padding:7px 11px; border:1px solid #efd9e7; border-radius:999px; background:#fff6fa; font-size:11px; font-weight:700; }
.single-product .bw-pill--code { background:#fff0f7; color:#a82669; }
.single-product .bw-catalog-action-wrap { margin-top:20px; display:flex; flex-direction:column; gap:12px; }
.single-product .bw-catalog-note { display:block; margin:0; padding:13px 15px; border:1px solid #efc4d9; border-radius:10px; background:linear-gradient(110deg,#fff1f7,#f8e0ed); color:var(--bw-primary); font-size:13px; font-weight:600; line-height:1.5; }
.bw-whatsapp-inquiry-wrap { display:block; width:100%; }
.bw-whatsapp-inquiry-btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; width:100%; padding:14px 22px; border-radius:12px; background:linear-gradient(135deg,#25D366 0%,#1da851 100%); color:#ffffff !important; font-family:var(--bw-font-body); font-size:15px; font-weight:700; letter-spacing:0.01em; text-decoration:none !important; box-shadow:0 6px 18px rgba(37,211,102,.28); transition:transform .2s ease, box-shadow .2s ease, background .2s ease; box-sizing:border-box; cursor:pointer; }
.bw-whatsapp-inquiry-btn:hover { transform:translateY(-2px); box-shadow:0 10px 24px rgba(37,211,102,.38); background:linear-gradient(135deg,#2ae06c 0%,#20b859 100%); color:#ffffff !important; text-decoration:none !important; }
.bw-whatsapp-inquiry-btn:active { transform:translateY(0); box-shadow:0 4px 12px rgba(37,211,102,.25); }
.bw-whatsapp-inquiry-btn .bw-whatsapp-icon { flex-shrink:0; width:22px; height:22px; }
.bw-whatsapp-inquiry-btn .bw-btn-arrow { font-size:16px; transition:transform .2s ease; }
.bw-whatsapp-inquiry-btn:hover .bw-btn-arrow { transform:translate(2px,-2px); }
.single-product .woocommerce div.product .woocommerce-tabs { max-width:1400px; margin:0 auto 30px; padding:0 22px; }
.single-product .woocommerce div.product .woocommerce-tabs ul.tabs { justify-content:flex-start; border-bottom:1px solid #efd9e7; }
.single-product .woocommerce div.product .woocommerce-tabs ul.tabs li a { padding:12px 2px; margin-right:24px; color:var(--bw-primary); font:700 14px var(--bw-font-ui); }
.single-product .woocommerce div.product .woocommerce-tabs .panel { max-width:78ch; padding:22px 0 8px; font-size:13px; line-height:1.8; }
.single-product .woocommerce div.product .related.products { max-width:1400px; margin:0 auto; padding:28px 22px 58px; }
.single-product .woocommerce div.product .related.products > h2 { margin:0 0 20px; padding:0 0 12px; border-bottom:1px solid #efd9e7; color:var(--bw-ink); font-size:clamp(1.45rem,2.3vw,2rem); }
.single-product .woocommerce div.product .related.products ul.products { grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.single-product .woocommerce div.product .related.products ul.products li.product { border-radius:15px; padding-bottom:14px; box-shadow:0 6px 20px rgba(145,39,131,.05); }
.single-product .woocommerce div.product .related.products ul.products li.product h2,
.single-product .woocommerce div.product .related.products ul.products li.product .woocommerce-loop-product__title { font-size:14px; min-height:38px; }
@media (max-width:780px) {
  .single-product .woocommerce div.product .summary { padding:22px 18px 24px; }
  .single-product .woocommerce div.product .related.products ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
}

/* Correct WooCommerce sibling structure for the product tabs and recommendations. */
.single-product .bw-wc-main { max-width:1400px !important; width:100% !important; padding:0 !important; margin:0 auto; }
.single-product .bw-wc-main > .woocommerce { width:100%; }
.single-product .bw-wc-main > .woocommerce > .woocommerce-tabs,
.single-product .bw-wc-main > .woocommerce > .related.products { display:block; width:100%; max-width:1400px; box-sizing:border-box; margin-left:auto; margin-right:auto; }
.single-product .bw-wc-main > .woocommerce > .woocommerce-tabs { margin-top:8px; padding:0 34px 30px; }
.single-product .bw-wc-main > .woocommerce > .woocommerce-tabs ul.tabs { display:flex; gap:0; margin:0; padding:0; border-bottom:1px solid #efd9e7; }
.single-product .bw-wc-main > .woocommerce > .woocommerce-tabs ul.tabs li a { display:inline-block; padding:14px 0; margin-right:28px; color:var(--bw-primary); font:700 14px/1.2 var(--bw-font-ui); }
.single-product .bw-wc-main > .woocommerce > .woocommerce-tabs .panel { max-width:78ch; padding:22px 0 0; font-size:13px; line-height:1.8; }
.single-product .bw-wc-main > .woocommerce > .related.products { margin-top:12px; padding:30px 34px 64px; }
.single-product .bw-wc-main > .woocommerce > .related.products > h2 { margin:0 0 22px; padding:0 0 14px; border-bottom:1px solid #efd9e7; color:var(--bw-ink); font:700 clamp(1.5rem,2.2vw,2rem)/1.2 var(--bw-font-display); }
.single-product .bw-wc-main > .woocommerce > .related.products ul.products { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; width:100%; margin:0; padding:0; }
.single-product .bw-wc-main > .woocommerce > .related.products ul.products::before,
.single-product .bw-wc-main > .woocommerce > .related.products ul.products::after { display:none; }
.single-product .bw-wc-main > .woocommerce > .related.products ul.products li.product { width:auto; max-width:none; min-width:0; float:none; clear:none; margin:0; padding:0 0 16px; border:1px solid #efd9e7; border-radius:16px; background:#fff; box-shadow:0 8px 22px rgba(145,39,131,.06); overflow:hidden; }
.single-product .bw-wc-main > .woocommerce > .related.products ul.products li.product a img { width:100%; height:auto; aspect-ratio:1/1; object-fit:contain; margin:0 0 12px; padding:10px; background:#fff8fb; }
.single-product .bw-wc-main > .woocommerce > .related.products ul.products li.product h2,
.single-product .bw-wc-main > .woocommerce > .related.products ul.products li.product .woocommerce-loop-product__title { padding:0 14px; min-height:40px; font:700 14px/1.35 var(--bw-font-ui); }
.single-product .bw-wc-main > .woocommerce > .related.products ul.products li.product .bw-loop-code,
.single-product .bw-wc-main > .woocommerce > .related.products ul.products li.product .price { margin-left:14px; margin-right:14px; }
@media (max-width:780px) {
  .single-product .bw-wc-main > .woocommerce > .woocommerce-tabs { padding:0 18px 22px; }
  .single-product .bw-wc-main > .woocommerce > .related.products { padding:22px 18px 42px; }
  .single-product .bw-wc-main > .woocommerce > .related.products ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
}

/* Final product-page geometry override for WooCommerce's legacy float rules. */
.single-product .bw-wc-main > .woocommerce > div.product {
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  align-items:start;
  min-height:0;
  height:auto;
  margin:0 auto !important;
  padding:34px 34px 30px !important;
  gap:42px;
}
.single-product .bw-wc-main > .woocommerce > div.product div.images,
.single-product .bw-wc-main > .woocommerce > div.product .summary { width:100% !important; max-width:none; min-width:0; margin:0; }
.single-product .bw-wc-main > .woocommerce > div.product div.images { align-self:start; }
.single-product .bw-wc-main > .woocommerce > div.product .summary { align-self:start; }
.single-product .bw-wc-main > .woocommerce > .related.products { clear:both; }
.single-product .bw-wc-main > .woocommerce > .related.products ul.products,
.single-product .bw-wc-main > .woocommerce > .related.products ul.products.columns-4 {
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  width:100% !important;
  max-width:none !important;
  float:none !important;
  gap:20px !important;
}
.single-product .bw-wc-main > .woocommerce > .related.products ul.products li.product {
  display:block !important;
  width:auto !important;
  max-width:none !important;
  float:none !important;
  margin:0 !important;
}
@media (max-width:780px) {
  .single-product .bw-wc-main > .woocommerce > div.product { grid-template-columns:1fr !important; padding:22px 18px 24px !important; gap:24px; }
  .single-product .bw-wc-main > .woocommerce > .related.products ul.products,
  .single-product .bw-wc-main > .woocommerce > .related.products ul.products.columns-4 { grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:12px !important; }
}

/* Premium four-column category gallery. */
.bw-category-grid--premium { grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.bw-category-grid--premium .bw-category-card { border:1px solid #efd9e7; border-radius:18px; background:#fff; box-shadow:0 8px 24px rgba(145,39,131,.06); overflow:hidden; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.bw-category-grid--premium .bw-category-card:hover { border-color:#e2a7c8; box-shadow:0 16px 34px rgba(145,39,131,.14); transform:translateY(-4px); }
.bw-category-grid--premium .bw-cat-image { aspect-ratio:1.18 / 1; background:linear-gradient(145deg,#fff4f9,#f5d9e9); }
.bw-category-grid--premium .bw-cat-name { padding:17px 18px 19px; gap:5px; font:700 17px/1.3 var(--bw-font-ui); color:var(--bw-ink); }
.bw-category-grid--premium .bw-cat-name small { font:600 12px/1.3 var(--bw-font-ui); color:var(--bw-primary); }
@media (max-width:780px) {
  .bw-category-grid--premium { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .bw-category-grid--premium .bw-cat-name { padding:13px 13px 15px; font-size:14px; }
  .bw-category-grid--premium .bw-cat-name small { font-size:10px; }
}

/* Match WooCommerce archives to the homepage's full 1400px content canvas. */
.bw-wc-main {
  width:100%;
  max-width:var(--bw-content-width) !important;
  padding:0 0 64px !important;
  margin:0 auto;
}
.bw-wc-main > * { max-width:none; }
@media (max-width:780px) {
  .bw-wc-main { padding:0 12px 42px !important; }
  .bw-instagram-module { grid-template-columns:auto minmax(0,1fr); gap:14px; padding:20px; }
  .bw-instagram-link { grid-column:1 / -1; justify-content:center; }
}

/* ==========================================================
   Shop / category width — pinned explicitly to match the
   homepage's 1400px canvas. Placed last on purpose: this file
   has accumulated several redesign passes that each redefine
   --bw-content-width differently (1240px, then 1320/1240px,
   then 1440/1400px), so rather than depend on that chain
   resolving correctly, this sets the actual pixel value
   directly on the real wrapper element (see bw_wc_wrapper_start()
   in functions.php, which outputs <main class="bw-wc-main">).
   Worth fully consolidating those old --bw-content-width /
   --bw-max-width redefinitions at some point to avoid similar
   surprises later.
   ========================================================== */
.bw-wc-main {
  max-width: 1400px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ==========================================================
   Shop / category sidebar (product filter widgets)
   Two-column layout: only appears when the "Shop Sidebar
   (filters)" widget area (Appearance > Widgets) actually has
   widgets in it — otherwise the page stays single-column.
   ========================================================== */
.bw-shop-layout {
  width:100%;
  max-width:none !important;
  box-sizing:border-box;
  margin:0 auto;
  padding: 0 22px 64px;
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 40px;
  align-items: start;
}
.bw-shop-page-container { width:100%; max-width:1400px; margin:0 auto; }
/* The content column keeps using .bw-wc-main for all its existing
   styling (banner, toolbar, product grid) — it just needs to stop
   trying to be 1400px wide on its own now that it's sharing that
   width with a sidebar column. Higher specificity than the plain
   .bw-wc-main rule further up, so this wins regardless of source
   order. */
.bw-shop-layout > .bw-wc-main {
  max-width: none !important;
  width: auto !important;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
}

.bw-shop-sidebar { min-width: 0; }
.bw-shop-sidebar .widget {
  margin-bottom: 30px;
  padding-bottom: 26px;
  border-bottom: 1px solid var(--bw-border);
}
.bw-shop-sidebar .widget:last-child { border-bottom: none; }
.bw-shop-search-field { display:flex; align-items:stretch; border:1px solid #e8cddd; border-radius:10px; overflow:hidden; background:#fff; }
.bw-shop-search-field input { min-width:0; width:100%; border:0; padding:11px 12px; color:var(--bw-ink); font:500 12px var(--bw-font-ui); outline:0; }
.bw-shop-search-field input:focus { box-shadow:inset 0 0 0 2px rgba(214,72,142,.18); }
.bw-shop-search-field button { width:42px; flex:0 0 42px; border:0; background:linear-gradient(135deg,var(--bw-primary-2),var(--bw-primary)); color:#fff; font:700 18px/1 var(--bw-font-ui); cursor:pointer; }
.bw-shop-search-field button:hover { background:var(--bw-primary); }
.bw-shop-sidebar .widget-title {
  font-family: var(--bw-font-display);
  font-size: 1.05rem;
  color: var(--bw-ink);
  margin: 0 0 16px;
}
.bw-shop-sidebar .widget ul { list-style: none; margin: 0; padding: 0; }
.bw-shop-sidebar .widget li { margin-bottom: 4px; }
.bw-shop-sidebar .widget a {
  color: var(--bw-ink-soft);
  font-size: 0.92rem;
  display: inline-block;
  padding: 4px 0;
}
.bw-shop-sidebar .widget a:hover { color: var(--bw-primary, var(--bw-accent-dark)); text-decoration: none; }
.bw-shop-sidebar .widget .count {
  color: var(--bw-ink-soft);
  font-size: 0.8rem;
  opacity: 0.75;
}

/* Filter by Price */
.bw-shop-sidebar .price_slider { margin-bottom: 18px; }
.bw-shop-sidebar .price_slider_amount { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.bw-shop-sidebar .price_slider_amount .price_label { color: var(--bw-ink-soft); font-size: 0.85rem; }
.bw-shop-sidebar .price_slider_amount .button {
  background: linear-gradient(135deg, var(--bw-primary-2, var(--bw-accent)), var(--bw-primary, var(--bw-accent-dark)));
  color: #fff;
  border: none;
  border-radius: 999px;
  padding: 8px 18px;
  font-family: var(--bw-font-ui);
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
}
.bw-shop-sidebar .ui-slider {
  position: relative;
  height: 4px;
  background: var(--bw-border);
  border-radius: 999px;
  margin: 12px 4px 20px;
}
.bw-shop-sidebar .ui-slider .ui-slider-range {
  position: absolute;
  height: 100%;
  background: var(--bw-primary, var(--bw-accent));
  border-radius: 999px;
}
.bw-shop-sidebar .ui-slider .ui-slider-handle {
  position: absolute;
  top: 50%;
  width: 16px; height: 16px;
  margin-top: -8px; margin-left: -8px;
  background: #fff;
  border: 2px solid var(--bw-primary, var(--bw-accent));
  border-radius: 50%;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  outline: none;
}

/* Filter by Attribute / Active Filters */
.bw-shop-sidebar .woocommerce-widget-layered-nav-list__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.bw-shop-sidebar .woocommerce-widget-layered-nav-list__item--chosen a { color: var(--bw-primary, var(--bw-accent-dark)); font-weight: 600; }
.bw-shop-sidebar .wc-layered-nav-rating .star-rating { display: inline-block; vertical-align: middle; }

.bw-shop-sidebar .widget_layered_nav_filters ul { display: flex; flex-wrap: wrap; gap: 8px; }
.bw-shop-sidebar .widget_layered_nav_filters li {
  background: var(--bw-bg, #f7eef3);
  border-radius: 999px;
  padding: 4px 10px 4px 12px;
}
.bw-shop-sidebar .widget_layered_nav_filters li a {
  padding: 0;
  color: var(--bw-ink);
  font-size: 0.82rem;
}
.bw-shop-sidebar .widget_layered_nav_filters li a.remove {
  color: var(--bw-primary, var(--bw-accent-dark));
  font-weight: 700;
  margin-left: 4px;
}

/* Sidebar Mobile Toggle & Inner Layout */
.bw-shop-sidebar__mobile-toggle-wrap {
  display: none;
  margin-bottom: 16px;
}
.bw-shop-sidebar__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 13px 18px;
  border: 1px solid var(--bw-border, #F0DCE8);
  border-radius: 12px;
  background: var(--bw-surface, #ffffff);
  color: var(--bw-ink, #2B1330);
  font-family: var(--bw-font-ui, var(--bw-font-body));
  font-weight: 700;
  font-size: 14px;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(145, 39, 131, 0.04);
  transition: background .2s ease, border-color .2s ease;
}
.bw-shop-sidebar__toggle:hover {
  background: #fff8fc;
  border-color: #e2c0d5;
}
.bw-shop-sidebar__toggle svg {
  flex-shrink: 0;
  margin-right: 10px;
  color: var(--bw-primary, #912783);
}
.bw-shop-sidebar__toggle .bw-toggle-state {
  font-size: 18px;
  font-weight: 700;
  color: var(--bw-primary, #912783);
  line-height: 1;
}
.bw-shop-sidebar__inner {
  display: block;
}
.bw-category-tree .bw-subcat-list {
  list-style: none;
  margin: 4px 0 8px 12px;
  padding: 0 0 0 10px;
  border-left: 2px solid #f2e2ed;
}
.bw-category-tree li {
  position: relative;
  margin-bottom: 6px;
}
.bw-category-tree li.is-current > a {
  color: var(--bw-primary, #912783);
  font-weight: 700;
}
.bw-category-tree li.is-current > a::before {
  content: '• ';
  color: var(--bw-primary, #912783);
}
.bw-infinite-fallback[hidden] { display:none; }

@media (min-width: 901px) {
  .bw-shop-sidebar__inner { display: block !important; }
  .bw-shop-sidebar__mobile-toggle-wrap { display: none !important; }
}

@media (max-width: 900px) {
  .bw-shop-page-container { max-width: none; }
  .bw-shop-layout { grid-template-columns: 1fr; gap: 20px; padding: 0 16px 48px; }
  .bw-shop-sidebar { order: -1; }
  .bw-shop-sidebar__mobile-toggle-wrap { display: block; }
  .bw-shop-sidebar__inner {
    display: none;
    padding: 18px;
    border: 1px solid var(--bw-border, #F0DCE8);
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 6px 20px rgba(145, 39, 131, 0.06);
    margin-bottom: 12px;
  }
  .bw-shop-sidebar__inner.is-open {
    display: block !important;
  }
}

/* ==========================================================
   Contact Form 7 — match the theme's inputs and buttons
   ========================================================== */
.wpcf7-form { max-width: 640px; }
.wpcf7-form p { margin-bottom: 18px; }
.wpcf7-form label {
  display: block;
  margin-bottom: 6px;
  font-family: var(--bw-font-ui);
  font-size: 0.88rem;
  color: var(--bw-ink-soft);
}
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="url"],
.wpcf7-form input[type="number"],
.wpcf7-form select,
.wpcf7-form textarea {
  width: 100%;
  padding: 13px 16px;
  border: 1px solid var(--bw-border);
  border-radius: var(--bw-radius-sm, 10px);
  background: var(--bw-surface, #fff);
  color: var(--bw-ink);
  font-family: var(--bw-font-body);
  font-size: 0.98rem;
  transition: border-color 0.15s ease;
}
.wpcf7-form textarea { min-height: 150px; resize: vertical; }
.wpcf7-form input:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus {
  outline: none;
  border-color: var(--bw-primary, var(--bw-accent));
}
.wpcf7-form input[type="submit"] {
  display: inline-block;
  border: none;
  cursor: pointer;
  background: linear-gradient(135deg, var(--bw-primary-2, var(--bw-accent)), var(--bw-primary, var(--bw-accent-dark)));
  color: #fff;
  font-family: var(--bw-font-ui);
  font-weight: 700;
  font-size: 0.95rem;
  padding: 14px 34px;
  border-radius: 999px;
  box-shadow: 0 8px 20px rgba(145, 39, 131, 0.22);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.wpcf7-form input[type="submit"]:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 26px rgba(145, 39, 131, 0.28);
}
.wpcf7-form input[type="submit"]:disabled { opacity: 0.6; cursor: default; transform: none; }

.wpcf7-form .wpcf7-not-valid-tip {
  color: #c0392b;
  font-size: 0.82rem;
  margin-top: 4px;
}
.wpcf7-form .wpcf7-not-valid { border-color: #c0392b !important; }

.wpcf7-response-output {
  margin: 18px 0 0 !important;
  padding: 12px 16px !important;
  border-radius: var(--bw-radius-sm, 10px) !important;
  font-size: 0.9rem;
}
.wpcf7-form.sent .wpcf7-response-output {
  border-color: #2e9165 !important;
  color: #1f6b49;
  background: rgba(46, 145, 101, 0.1);
}
.wpcf7-form.failed .wpcf7-response-output,
.wpcf7-form.aborted .wpcf7-response-output,
.wpcf7-form.spam .wpcf7-response-output {
  border-color: #c0392b !important;
  color: #a52f21;
  background: rgba(192, 57, 43, 0.08);
}
.wpcf7-spinner { vertical-align: middle; margin-left: 10px; }

/* ==========================================================
   Product grid — single authoritative definition
   ------------------------------------------------------------
   This file has accumulated several redesign passes that each
   redefine the product grid's column count and card sizing
   differently (4 columns in one pass, 5 in another, 4 again
   later, etc.), which is the real source of the layout/alignment
   glitches reported over time. Rather than trace and delete every
   historical layer in a file this tangled (risky to do by exact
   text match when so much of it repeats), this block is placed
   last and marked !important throughout, so it is the one
   definition that actually takes effect, regardless of what
   precedes it. Worth fully consolidating the earlier layers at
   some point to avoid this class of bug recurring.
   ========================================================== */
.woocommerce ul.products,
.bw-wc-main .woocommerce ul.products,
.bw-home-product-grid .woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 24px !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after {
  display: none !important;
  content: none !important;
}
.woocommerce ul.products li.product,
.woocommerce ul.products li.product-category {
  grid-column: auto !important;
  grid-row: auto !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  float: none !important;
  clear: none !important;
}

/* Fewer columns when the filters sidebar is present, so cards
   don't get cramped next to the 260px sidebar column. */
.bw-shop-layout .woocommerce ul.products {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

@media (max-width: 1100px) {
  .woocommerce ul.products,
  .bw-wc-main .woocommerce ul.products,
  .bw-home-product-grid .woocommerce ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  .bw-shop-layout .woocommerce ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 780px) {
  .woocommerce ul.products,
  .bw-wc-main .woocommerce ul.products,
  .bw-home-product-grid .woocommerce ul.products,
  .bw-shop-layout .woocommerce ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
  }
}
@media (max-width: 480px) {
  .woocommerce ul.products,
  .bw-wc-main .woocommerce ul.products,
  .bw-home-product-grid .woocommerce ul.products,
  .bw-shop-layout .woocommerce ul.products {
    gap: 10px !important;
  }
}

/* ==========================================================
   Full category tree in the shop sidebar
   ========================================================== */
.bw-category-tree ul { list-style: none; margin: 0; padding: 0; }
.bw-category-tree > ul li { margin-bottom: 2px; }
.bw-category-tree li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.bw-category-tree a {
  color: var(--bw-ink-soft);
  font-size: 0.92rem;
  padding: 6px 0;
  flex: 1;
}
.bw-category-tree li.is-current > a {
  color: var(--bw-primary, var(--bw-accent-dark));
  font-weight: 700;
}
.bw-category-tree a:hover { color: var(--bw-primary, var(--bw-accent-dark)); text-decoration: none; }
.bw-category-tree .count {
  color: var(--bw-ink-soft);
  font-size: 0.78rem;
  opacity: 0.7;
}
.bw-category-tree ul.bw-subcat-list {
  width: 100%;
  margin: 2px 0 6px 14px;
  padding-left: 12px;
  border-left: 2px solid var(--bw-border);
}
.bw-category-tree ul.bw-subcat-list a { font-size: 0.87rem; }

/* Search box in the shop sidebar */
.bw-shop-search-field { display: flex; gap: 8px; }
.bw-shop-search-field input[type="search"] {
  flex: 1;
  padding: 10px 14px;
  border: 1px solid var(--bw-border);
  border-radius: var(--bw-radius-sm, 10px);
  font-family: var(--bw-font-body);
  font-size: 0.9rem;
}
.bw-shop-search-field button {
  border: none;
  border-radius: var(--bw-radius-sm, 10px);
  background: var(--bw-primary, var(--bw-accent-dark));
  color: #fff;
  padding: 0 16px;
  cursor: pointer;
  font-size: 1rem;
}
