/*
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
   ========================================================== */
.woocommerce-breadcrumb {
  max-width: var(--bw-max-width);
  margin: 16px auto 0;
  padding: 0 24px;
  color: var(--bw-ink-soft);
  font-size: 0.85rem;
}
.woocommerce-breadcrumb a { color: var(--bw-ink-soft); }
.woocommerce-breadcrumb a:hover { color: var(--bw-accent-dark); }

.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, body { overflow-x:hidden; }
body { 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: one compact branded bar — no announcement strip */
.bw-site-header {
  position:sticky; top:0; z-index:100;
  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);
}
.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: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-note { display:block; margin:18px 0 0; padding:13px 15px; border:1px solid #efc4d9; border-radius:10px; background:linear-gradient(110deg,#fff1f7,#f8e0ed); color:var(--bw-primary); font-size:12px; font-weight:700; }
.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;
}

/* Mobile: collapsible "Filters" accordion, no JS needed */
.bw-shop-sidebar__mobile summary {
  cursor: pointer;
  list-style: none;
  font-family: var(--bw-font-ui);
  font-weight: 700;
  font-size: 0.95rem;
  padding: 12px 16px;
  border: 1px solid var(--bw-border);
  border-radius: var(--bw-radius-sm, 10px);
  background: var(--bw-surface, #fff);
}
.bw-shop-sidebar__mobile summary::-webkit-details-marker { display: none; }
.bw-shop-sidebar__mobile summary::after { content: '+'; float: right; }
.bw-shop-sidebar__mobile[open] summary::after { content: '\2212'; }
.bw-shop-sidebar__mobile .bw-shop-sidebar__inner { padding-top: 18px; }
.bw-infinite-fallback[hidden] { display:none; }

@media (min-width: 901px) {
  .bw-shop-sidebar__mobile summary { display: none; }
  .bw-shop-sidebar__mobile .bw-shop-sidebar__inner { display: block !important; padding-top: 0; }
}

@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; }
}

/* ==========================================================
   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; }
