/*
Theme Name:   BG Cosplay
Theme URI:    https://bgcosplay.com
Description:  Custom child theme for BG Cosplay — LEGO-model shop design. Built on Hello Elementor.
Author:       BG Cosplay
Version:      1.20.1
Template:     hello-elementor
Text Domain:  bgcosplay
*/

/* ==========================================================================
   1. DESIGN TOKENS
   Change a value here and it changes everywhere on the site.
   Mirror these in Elementor → Site Settings → Global Colors.
   ========================================================================== */
:root{
  /* brand */
  --bgc-cream:      #F5EDE1;
  --bgc-cream-2:    #F2E7DA;
  --bgc-paper:      #FFFFFF;
  --bgc-clay:       #C79C82;
  --bgc-clay-dark:  #A97D62;
  --bgc-clay-light: #E7D5C6;
  --bgc-maroon:     #6E2B26;
  --bgc-maroon-lit: #8E3A33;
  --bgc-pink:       #E9BCC6;
  --bgc-pink-dark:  #C4778C;
  --bgc-ink:        #2E211D;
  --bgc-soft:       #7A6760;

  /* states */
  --bgc-ok:    #3F6B4F;
  --bgc-warn:  #9A6A1E;
  --bgc-sale:  #B23A2E;
  --bgc-line:  rgba(46,33,29,.13);

  /* shape */
  --bgc-radius:    14px;
  --bgc-radius-sm: 8px;
  --bgc-pill:      999px;
  --bgc-shadow:    0 10px 26px rgba(46,33,29,.11);

  /* type */
  --bgc-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --bgc-font-display: Georgia, "Times New Roman", serif;

  /* rhythm */
  --bgc-gap:  16px;
  --bgc-pad:  22px;
}

/* ==========================================================================
   2. BASE
   ========================================================================== */
body{
  background: var(--bgc-cream);
  color: var(--bgc-ink);
  font-family: var(--bgc-font);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
h1,h2,h3,h4,h5,h6{
  color: var(--bgc-ink);
  letter-spacing: -.01em;
  line-height: 1.2;
  margin: 0 0 .5em;
}
h1{ font-size: clamp(28px, 4vw, 42px); }
h2{ font-size: clamp(22px, 3vw, 30px); }
h3{ font-size: 20px; }
a{ color: var(--bgc-maroon); text-decoration: none; }
a:hover{ color: var(--bgc-maroon-lit); }

.bgc-container,
.woocommerce .site-main,
.site-main{ max-width: 1240px; margin-inline: auto; padding-inline: var(--bgc-pad); }

/* ==========================================================================
   3. BUTTONS  — one look for every button on the site
   ========================================================================== */
.button,
button,
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.wp-element-button{
  background: var(--bgc-maroon);
  color: #fff;
  border: 0;
  border-radius: var(--bgc-pill);
  padding: 12px 26px;
  font-weight: 700;
  font-size: 14.5px;
  line-height: 1.2;
  transition: background .15s ease, transform .15s ease;
  cursor: pointer;
}
.button:hover,
button:hover,
input[type="submit"]:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover{
  background: var(--bgc-maroon-lit);
  color: #fff;
}
.woocommerce a.button.alt,
.woocommerce button.button.alt{ background: var(--bgc-maroon); }
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover{ background: var(--bgc-maroon-lit); }

.bgc-btn-ghost{
  background: transparent;
  color: var(--bgc-maroon);
  border: 2px solid var(--bgc-maroon);
}
.bgc-btn-ghost:hover{ background: var(--bgc-maroon); color: #fff; }

/* forms */
input[type="text"], input[type="email"], input[type="search"],
input[type="tel"], input[type="number"], input[type="password"],
select, textarea{
  background: var(--bgc-paper);
  border: 1.5px solid var(--bgc-clay-light);
  border-radius: var(--bgc-radius-sm);
  padding: 11px 14px;
  font: inherit;
  color: var(--bgc-ink);
}
input:focus, select:focus, textarea:focus{
  outline: none;
  border-color: var(--bgc-clay);
}

/* ==========================================================================
   4. PRODUCT GRID  — LEGO-style density
   ========================================================================== */
.woocommerce ul.products{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--bgc-gap);
  margin: 0 0 30px;
  padding: 0;
  list-style: none;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after{ content: none; }

.woocommerce ul.products li.product{
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
  clear: none !important;
  background: var(--bgc-paper);
  border: 1px solid var(--bgc-line);
  border-radius: var(--bgc-radius);
  overflow: hidden;
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 0;
  transition: transform .15s ease, box-shadow .15s ease;
}
.woocommerce ul.products li.product:hover{
  transform: translateY(-3px);
  box-shadow: var(--bgc-shadow);
}

/* image — contain, not cover. Cover crops the ends off long wigs and
   cuts the label off flat products. Letterboxing on white reads as
   deliberate because the product shots are already on white. */
.woocommerce ul.products li.product a img{
  margin: 0;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  object-position: center;
  width: 100%;
  display: block;
  border-radius: 0;
  background: #fff;
  padding: 10px;
}

/* everything below the image gets padded */
.woocommerce ul.products li.product > *:not(img):not(a:first-of-type):not(.bgc-badge){
  padding-inline: 14px;
}
.woocommerce ul.products li.product .woocommerce-loop-product__link{
  display: block;
  padding: 0;
}

/* the inner <a> wraps image + title + price, so it has to stretch too */
.woocommerce ul.products li.product .woocommerce-loop-product__link{
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

/* title — clamped to 2 lines so every card lines up */
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-size: 14.5px;
  font-weight: 600;
  line-height: 1.35;
  color: var(--bgc-ink);
  padding: 0 14px 8px;
  margin: 0;
  min-height: calc(2 * 1.35em + 8px);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* our injected spec line — the LEGO "age + piece count" equivalent */
.bgc-spec{
  font-size: 11.5px;
  font-weight: 700;
  color: var(--bgc-soft);
  letter-spacing: .02em;
  padding: 12px 14px 5px;
  margin: 0;
}
.bgc-spec b{ color: var(--bgc-ink); font-weight: 700; }

/* stock status */
.bgc-stock{
  font-size: 11.5px;
  font-weight: 600;
  color: var(--bgc-ok);
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 0 14px 8px;
}
.bgc-stock::before{
  content: "";
  width: 6px; height: 6px;
  border-radius: var(--bgc-pill);
  background: currentColor;
  flex: none;
}
.bgc-stock.is-low{ color: var(--bgc-warn); }
.bgc-stock.is-out{ color: var(--bgc-sale); }

/* rating */
.woocommerce ul.products li.product .star-rating{
  font-size: 13px;
  margin: 0 14px 8px;
  color: #D9A62B;
}

/* price — EUR dominant, лв. muted */
.woocommerce ul.products li.product .price{
  color: var(--bgc-ink);
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -.01em;
  margin: auto 0 10px;
  padding: 0 14px;
  line-height: 1.35;
}
.woocommerce ul.products li.product .price del{
  color: var(--bgc-soft);
  font-size: 13px;
  font-weight: 500;
  opacity: 1;
}
.woocommerce ul.products li.product .price ins{
  background: none;
  color: var(--bgc-sale);
  text-decoration: none;
  font-weight: 800;
}
/* the AboveWP secondary (лв.) figure */
.woocommerce ul.products li.product .price .abovewp-secondary,
.woocommerce ul.products li.product .price small,
.woocommerce ul.products li.product .price .woocommerce-Price-amount + .woocommerce-Price-amount{
  display: block;
  font-size: 11.5px;
  font-weight: 500;
  color: var(--bgc-soft);
  margin-top: 1px;
}

/* add to cart — margin-top:auto pins it to the bottom of every card */
.woocommerce ul.products li.product .button{
  display: block;
  width: calc(100% - 28px);
  margin: auto 14px 15px;
  text-align: center;
  padding: 11px 12px;
  font-size: 13.5px;
}
.woocommerce ul.products li.product .added_to_cart{
  display: block;
  text-align: center;
  font-size: 12px;
  padding: 0 14px 12px;
}

/* badges */
.bgc-badge{
  position: absolute;
  top: 10px; left: 10px;
  z-index: 3;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
  padding: 4px 9px;
  border-radius: 6px;
  color: #fff;
}
.bgc-badge--new{ background: var(--bgc-ok); }
.bgc-badge--sale{ background: var(--bgc-sale); }
.bgc-badge--low{ background: #E5B33C; color: #3A2B0A; }
.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale,
.woocommerce div.product .onsale{
  position: absolute;
  top: 10px !important; right: 10px !important;
  left: auto !important;
  margin: 0 !important;
  background: var(--bgc-sale);
  color: #fff;
  border-radius: 6px;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .06em;
  padding: 4px 9px;
  min-height: 0;
  min-width: 0;
  line-height: 1.5;
  margin: 0;
}

/* ==========================================================================
   5. ARCHIVE HEADER + TOOLBAR
   ========================================================================== */
.woocommerce .woocommerce-products-header{ padding: 26px 0 6px; }
.woocommerce .woocommerce-products-header__title{ margin-bottom: 8px; }
.term-description{ color: var(--bgc-soft); max-width: 62ch; }

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering{ margin: 0; }
.bgc-toolbar{
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  padding: 14px 0;
  border-top: 1px solid var(--bgc-line);
  border-bottom: 1px solid var(--bgc-line);
  margin-bottom: 20px;
}
.bgc-toolbar .woocommerce-result-count{
  font-weight: 700;
  font-size: 15px;
  color: var(--bgc-ink);
  order: 1;
}
.bgc-toolbar .woocommerce-ordering{ margin-left: auto; order: 2; }
.woocommerce .woocommerce-ordering select{
  border-radius: var(--bgc-pill);
  padding: 9px 16px;
  font-weight: 600;
  font-size: 13.5px;
}

/* breadcrumb */
.woocommerce .woocommerce-breadcrumb{
  font-size: 12.5px;
  color: var(--bgc-soft);
  padding: 16px 0 0;
  margin: 0;
}

/* pagination */
.woocommerce nav.woocommerce-pagination ul{
  border: 0;
  display: flex;
  gap: 6px;
  justify-content: center;
}
.woocommerce nav.woocommerce-pagination ul li{ border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{
  border-radius: var(--bgc-pill);
  padding: 9px 15px;
  background: var(--bgc-paper);
  border: 1px solid var(--bgc-line);
  color: var(--bgc-ink);
  font-weight: 600;
}
.woocommerce nav.woocommerce-pagination ul li span.current{
  background: var(--bgc-ink);
  color: #fff;
  border-color: var(--bgc-ink);
}

/* ==========================================================================
   6. SINGLE PRODUCT
   ========================================================================== */

/* two-column layout — Hello Elementor provides none, so Woo's floats collapse
   and the gallery thumbnails stack full-width down the page */
.woocommerce div.product{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 44px;
  align-items: start;
}
.woocommerce div.product::before,
.woocommerce div.product::after{ content: none; }

.woocommerce div.product .woocommerce-product-gallery,
.woocommerce div.product div.images,
.woocommerce div.product div.summary{
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
  max-width: 100%;
}
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .upsells,
.woocommerce div.product .woocommerce-product-gallery + .clear{
  grid-column: 1 / -1;
}

/* main gallery image */
.woocommerce div.product div.images img{
  border-radius: var(--bgc-radius);
  width: 100%;
  height: auto;
}

/* gallery thumbnails — the runaway scroll. Small grid, not a full-width stack. */
.woocommerce div.product div.images .flex-control-thumbs{
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
  max-height: 340px;
  overflow-y: auto;
}
.woocommerce div.product div.images .flex-control-thumbs::before,
.woocommerce div.product div.images .flex-control-thumbs::after{ content: none; }
.woocommerce div.product div.images .flex-control-thumbs li{
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
  list-style: none;
}
.woocommerce div.product div.images .flex-control-thumbs img{
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: var(--bgc-radius-sm);
  border: 1px solid var(--bgc-line);
  opacity: .55;
  transition: opacity .12s ease;
  cursor: pointer;
}
.woocommerce div.product div.images .flex-control-thumbs img:hover,
.woocommerce div.product div.images .flex-control-thumbs img.flex-active{
  opacity: 1;
  border-color: var(--bgc-clay);
}

.woocommerce div.product .product_title{ margin-bottom: 10px; }
.woocommerce div.product p.price,
.woocommerce div.product span.price{
  color: var(--bgc-ink);
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -.02em;
}
.woocommerce div.product p.price del{ color: var(--bgc-soft); font-size: 18px; font-weight: 500; }
.woocommerce div.product p.price ins{ background: none; color: var(--bgc-sale); text-decoration: none; }

.woocommerce div.product form.cart .button{ padding: 15px 34px; font-size: 15.5px; }
.woocommerce div.product .woocommerce-tabs ul.tabs{ padding: 0; margin-bottom: 22px; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before{ border-bottom-color: var(--bgc-line); }
.woocommerce div.product .woocommerce-tabs ul.tabs li{
  background: var(--bgc-cream-2);
  border: 1px solid var(--bgc-line);
  border-radius: var(--bgc-radius-sm) var(--bgc-radius-sm) 0 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{
  background: var(--bgc-paper);
  border-bottom-color: var(--bgc-paper);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{ font-weight: 700; color: var(--bgc-ink); }

.woocommerce table.shop_attributes th{ background: var(--bgc-cream-2); }
.woocommerce table.shop_attributes td,
.woocommerce table.shop_attributes th{ padding: 10px 14px; border-bottom: 1px solid var(--bgc-line); }

/* variation selects */
.woocommerce div.product form.cart .variations select{
  border-radius: var(--bgc-radius-sm);
  padding: 11px 14px;
  min-width: 200px;
}
.woocommerce div.product form.cart .variations label{ font-weight: 700; }

/* ==========================================================================
   7. NOTICES, CART, CHECKOUT
   ========================================================================== */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error{
  background: var(--bgc-cream-2);
  border-top: 3px solid var(--bgc-clay);
  border-radius: var(--bgc-radius-sm);
  color: var(--bgc-ink);
}
.woocommerce-error{ border-top-color: var(--bgc-sale); }
.woocommerce-message::before,
.woocommerce-info::before{ color: var(--bgc-maroon); }

.woocommerce table.shop_table{
  border-radius: var(--bgc-radius);
  border-color: var(--bgc-line);
  overflow: hidden;
}
.woocommerce table.shop_table th{ background: var(--bgc-cream-2); }

/* ==========================================================================
   8. FIBOSEARCH — make it the widest thing in the header
   ========================================================================== */
.dgwt-wcas-search-wrapp{ max-width: 720px; width: 100%; }
.dgwt-wcas-search-input[type="search"]{
  border-radius: var(--bgc-pill) !important;
  border: 1.5px solid var(--bgc-clay-light) !important;
  background: var(--bgc-cream) !important;
  padding-left: 20px !important;
  height: 48px !important;
  font-size: 15px !important;
}
.dgwt-wcas-search-input[type="search"]:focus{
  border-color: var(--bgc-clay) !important;
  background: #fff !important;
}
.dgwt-wcas-search-submit{ border-radius: 0 var(--bgc-pill) var(--bgc-pill) 0 !important; background: var(--bgc-maroon) !important; }
.dgwt-wcas-suggestion:hover{ background: var(--bgc-cream-2) !important; }

/* ==========================================================================
   9. RESPONSIVE
   ========================================================================== */
@media (max-width: 1100px){
  .woocommerce ul.products{ grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 820px){
  .woocommerce ul.products{ grid-template-columns: repeat(2, 1fr); }
  .woocommerce div.product{ grid-template-columns: 1fr; gap: 26px; }
  .woocommerce div.product div.images .flex-control-thumbs{
    grid-template-columns: repeat(6, 1fr);
    max-height: 180px;
  }
}
@media (max-width: 680px){
  :root{ --bgc-gap: 11px; --bgc-pad: 16px; }
  .woocommerce ul.products{ grid-template-columns: repeat(2, 1fr); }
  .woocommerce ul.products li.product .woocommerce-loop-product__title{ font-size: 13px; padding-inline: 11px; }
  .woocommerce ul.products li.product .price{ font-size: 16px; padding-inline: 11px; }
  .bgc-spec, .bgc-stock{ padding-inline: 11px; }
  .woocommerce ul.products li.product .button{
    width: calc(100% - 22px);
    margin-inline: 11px;
    padding: 10px 8px;
    font-size: 12.5px;
  }
  .woocommerce ul.products li.product .star-rating{ margin-inline: 11px; }
  .bgc-toolbar{ gap: 10px; }
  .bgc-toolbar .woocommerce-ordering{ width: 100%; margin-left: 0; }
  .woocommerce .woocommerce-ordering select{ width: 100%; }
}

/* ==========================================================================
   10. UTILITIES
   ========================================================================== */
.bgc-section{ margin-bottom: 56px; }
.bgc-muted{ color: var(--bgc-soft); }
.bgc-card{
  background: var(--bgc-paper);
  border: 1px solid var(--bgc-line);
  border-radius: var(--bgc-radius);
  padding: 20px 22px;
}
.screen-reader-text{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }

/* ==========================================================================
   11. HEADER — compact, LEGO model  (mobile-first)
   ========================================================================== */
:root{ --bgc-bar: #6E2B26; }

.site-header{ display: none !important; }
.bgc-header .bgc-util,
.bgc-header .bgc-bar,
.bgc-header .bgc-searchrow{
  position: static !important;
  top: auto !important;
  bottom: auto !important;
  transform: none !important;
}
/* relative (not static) so the shadow below paints over the page */
.bgc-header{
  position: relative !important;
  top: auto !important;
  transform: none !important;
  z-index: 50;
  background: #fff;
  box-shadow: 0 6px 18px rgba(46,33,29,.10);
}

/* --- thin utility strip --- */
.bgc-util{
  background: var(--bgc-cream-2);
  color: var(--bgc-soft);
  font-size: 12px;
  line-height: 1.3;
}
.bgc-util__in{
  max-width: 1320px; margin-inline: auto;
  padding: 6px 14px;
  display: flex; align-items: center; justify-content: center; gap: 20px;
  text-align: center;
}
.bgc-util__links{ display: none; list-style: none; margin: 0; padding: 0; gap: 20px; }
.bgc-util__links a{ color: var(--bgc-soft); }
.bgc-util__links a:hover{ color: var(--bgc-maroon); }

/* --- the bar: white, with the brand colour as a solid underline --- */
.bgc-bar{
  background: #fff;
  border-bottom: 3px solid var(--bgc-bar);
}
.bgc-bar__in{
  max-width: 1320px; margin-inline: auto;
  padding: 6px 14px;
  display: flex; align-items: center; justify-content: space-between; gap: 0;
  min-height: 56px;
}

/* burger */
.bgc-burger{
  width: 44px; height: 44px; flex: none;
  display: inline-flex; flex-direction: column; justify-content: center; align-items: center; gap: 5px;
  padding: 0 11px; border-radius: var(--bgc-pill); background: transparent;
}
.bgc-burger span{ display: block; height: 2px; width: 100%; background: var(--bgc-ink); border-radius: 2px; }
.bgc-burger:hover{ background: var(--bgc-cream-2); }
.bgc-burger:focus,
.bgc-burger:active{ outline: none !important; box-shadow: none !important; border: 0 !important; }
.bgc-burger:focus-visible{ outline: 2px solid var(--bgc-clay) !important; outline-offset: 2px; }

/* logo — no block, sits straight on white */
.bgc-logo{
  display: flex; align-items: center;
  flex: 0 1 auto; min-width: 0;
  height: 38px;
  padding: 0;
}
.bgc-logo__img{
  display: block;
  height: 100% !important;
  width: auto !important;
  max-width: 100% !important;
  max-height: 34px !important;
  object-fit: contain;
}
.bgc-logo--text{ flex-direction: column; justify-content: center; height: auto; line-height: 1; }
.bgc-logo__mark{ display: block; font-family: var(--bgc-font-display); font-size: 17px; letter-spacing: .05em; color: var(--bgc-maroon); white-space: nowrap; }
.bgc-logo__tag{ display: block; margin-top: 3px; font-size: 6.5px; letter-spacing: .22em; color: var(--bgc-clay-dark); white-space: nowrap; }
.bgc-header img{ max-height: 100%; }

/* nav — drawer only on mobile */
.bgc-nav{ display: none; }
.bgc-nav__list{ display: flex; align-items: center; gap: 2px; list-style: none; margin: 0; padding: 0; }
.bgc-nav__list > li{ position: relative; }
.bgc-nav__list > li > a{
  display: block; padding: 9px 13px;
  font-size: 14.5px; font-weight: 700; color: var(--bgc-ink);
  border-radius: var(--bgc-pill); white-space: nowrap;
}
.bgc-nav__list > li > a:hover,
.bgc-nav__list > li.current-menu-item > a{ background: var(--bgc-cream-2); color: var(--bgc-maroon); }
.bgc-nav__list .sub-menu{
  display: none; position: absolute; top: 100%; left: 0; z-index: 60;
  min-width: 240px; padding: 8px 0; margin: 8px 0 0; list-style: none;
  background: #fff; border: 1px solid var(--bgc-line);
  border-radius: var(--bgc-radius-sm); box-shadow: var(--bgc-shadow);
}
.bgc-nav__list li:hover > .sub-menu{ display: block; }
.bgc-nav__list .sub-menu a{ display: block; padding: 9px 16px; font-size: 14px; color: var(--bgc-ink); }
.bgc-nav__list .sub-menu a:hover{ background: var(--bgc-cream-2); color: var(--bgc-maroon); }

/* icon buttons */
/* on mobile the wrapper dissolves so burger / logo / search / cart are all
   direct children of the bar and space-between spreads them evenly */
.bgc-actions{ display: contents; }
.bgc-act,
button.bgc-act{
  position: relative;
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; flex: none;
  border: 0; border-radius: var(--bgc-pill);
  color: var(--bgc-ink) !important;
  background: transparent !important;
  padding: 0; margin: 0;
  font-size: inherit; font-weight: inherit;
}
.bgc-act:hover,
button.bgc-act:hover{ background: var(--bgc-cream-2) !important; color: var(--bgc-maroon) !important; }
.bgc-act:focus,
.bgc-act:active{ outline: none !important; box-shadow: none !important; }
.bgc-act:focus-visible{ outline: 2px solid var(--bgc-clay); outline-offset: 2px; }

/* mobile: burger + logo + search + account + cart = five children.
   Trim the icon buttons so the logo keeps its room on a 360px screen. */
.bgc-act,
button.bgc-act,
.bgc-burger{ width: 40px; }
.bgc-burger{ padding: 0 9px; }
.bgc-act__count{
  position: absolute; top: 2px; right: 1px;
  min-width: 17px; height: 17px; padding: 0 4px;
  border-radius: var(--bgc-pill);
  background: var(--bgc-bar); color: #fff;
  font-style: normal; font-size: 10px; font-weight: 800;
  display: grid; place-items: center;
}

/* --- mini cart dropdown (desktop only; mobile taps straight through) --- */
.bgc-cartwrap{ display: contents; }
.bgc-minicart{ display: none; }

/* search — hidden behind the icon on mobile */
.bgc-search--bar{ display: none; }
.bgc-searchrow{ background: #fff; border-bottom: 3px solid var(--bgc-bar); }
.bgc-searchrow__in{ max-width: 1320px; margin-inline: auto; padding: 0 14px 12px; }

/* --- drawer --- */
.bgc-drawer{ position: fixed; inset: 0; z-index: 9999; background: rgba(46,33,29,.45); opacity: 0; transition: opacity .2s ease; }
.bgc-drawer.is-open{ opacity: 1; }
.bgc-drawer__panel{
  position: absolute; inset: 0 18% 0 0;
  background: var(--bgc-cream);
  padding: 64px 20px 30px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  transform: translateX(-100%); transition: transform .22s ease;
  box-shadow: 4px 0 26px rgba(46,33,29,.18);
}
.bgc-drawer.is-open .bgc-drawer__panel{ transform: none; }
.bgc-drawer__close{
  position: absolute; top: 14px; right: 16px;
  width: 38px; height: 38px;
  display: flex; align-items: center; justify-content: center;
  border-radius: var(--bgc-pill);
  font-size: 30px; line-height: 0; font-weight: 300;
  padding: 0 0 3px;
  color: var(--bgc-soft); background: var(--bgc-cream-2);
}
.bgc-drawer__close:hover{ color: var(--bgc-maroon); }
.bgc-drawer__list{ list-style: none; margin: 0; padding: 0; }
.bgc-drawer__list a{
  display: block; padding: 13px 4px; font-size: 17px; font-weight: 600;
  color: var(--bgc-ink); border-bottom: 1px solid var(--bgc-line);
}
.bgc-drawer__list a:hover{ color: var(--bgc-maroon); }
.bgc-drawer__list .sub-menu{ list-style: none; margin: 0; padding: 0 0 0 14px; }
.bgc-drawer__list .sub-menu a{ font-size: 14.5px; font-weight: 400; color: var(--bgc-soft); padding: 10px 4px; }
.bgc-drawer__list--util{ margin-top: 20px; }
.bgc-drawer__list--util a{ font-size: 14px; font-weight: 400; color: var(--bgc-soft); border: 0; padding: 8px 4px; }

/* --- FiboSearch --------------------------------------------------------
   The plugin positions its submit button absolutely. Forcing a height on
   its wrapper broke that, which is why the magnifier fell out of the pill.
   Fix: leave the wrapper's box alone and hard-centre the button. */
.bgc-search .dgwt-wcas-search-wrapp{ max-width: none; width: 100%; }

.bgc-search .dgwt-wcas-sf-wrapp{
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  border-radius: var(--bgc-pill) !important;
  border: 1.5px solid var(--bgc-clay-light) !important;
  background: var(--bgc-cream) !important;
  height: auto !important;
  min-height: 0 !important;
  overflow: hidden;
}
.bgc-search .dgwt-wcas-sf-wrapp:focus-within{
  border-color: var(--bgc-clay) !important;
  background: #fff !important;
}
.bgc-search input.dgwt-wcas-search-input[type="search"]{
  flex: 1 1 auto !important;
  border: 0 !important;
  background: transparent !important;
  height: 42px !important;
  line-height: 42px !important;
  font-size: 15px !important;
  padding: 0 46px 0 18px !important;
  margin: 0 !important;
  box-shadow: none !important;
  color: var(--bgc-ink) !important;
}
.bgc-search .dgwt-wcas-search-submit{
  position: absolute !important;
  top: 50% !important;
  bottom: auto !important;
  right: 3px !important;
  left: auto !important;
  transform: translateY(-50%) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 40px !important;
  height: 36px !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: var(--bgc-pill) !important;
  box-shadow: none !important;
}
.bgc-search .dgwt-wcas-search-icon{
  fill: var(--bgc-maroon) !important;
  width: 17px !important;
  height: 17px !important;
  margin: 0 !important;
}
.bgc-search .dgwt-wcas-preloader,
.bgc-search .dgwt-wcas-close{
  top: 50% !important;
  transform: translateY(-50%) !important;
  right: 46px !important;
}

/* ==========================================================================
   12. HEADER — 1000px and up
   ========================================================================== */
@media (min-width: 1000px){
  .bgc-util__in{ justify-content: center; padding-inline: 22px; }
  .bgc-util__in.has-links{ justify-content: space-between; text-align: left; }
  .bgc-util__links{ display: flex; }

  .bgc-bar__in{ padding: 10px 22px; gap: 16px; min-height: 68px; justify-content: flex-start; }
  .bgc-actions{ display: flex; align-items: center; gap: 2px; flex: none; }
  .bgc-burger{ display: none; }

  .bgc-logo{ height: 50px; margin-right: 10px; padding: 0; }
  .bgc-logo__img{ max-height: 48px !important; }
  .bgc-logo__mark{ font-size: 20px; }
  .bgc-logo__tag{ font-size: 7.5px; }

  .bgc-nav{ display: block; flex: none; }

  /* search back in the bar, taking all the slack */
  .bgc-search--bar{ display: block; flex: 1 1 auto; min-width: 200px; margin-left: auto; }
  .bgc-search--bar .dgwt-wcas-sf-wrapp{ height: 44px !important; }
  .bgc-search--bar input.dgwt-wcas-search-input[type="search"]{ height: 42px !important; }
  .bgc-search--bar .dgwt-wcas-search-submit{ height: 42px !important; }

  .bgc-act--searchtoggle{ display: none !important; }
  .bgc-act--account{ display: inline-flex; }
  .bgc-act,
  button.bgc-act{ width: 44px; }
  .bgc-searchrow{ display: none !important; }
  .bgc-drawer{ display: none !important; }

  /* ---- mini cart dropdown ---- */
  .bgc-cartwrap{ display: block; position: relative; }

  .bgc-minicart{
    display: block;
    position: absolute;
    top: calc(100% + 14px); right: 0;
    width: 340px;
    padding: 16px;
    background: var(--bgc-paper);
    border: 1px solid var(--bgc-line);
    border-radius: var(--bgc-radius);
    box-shadow: var(--bgc-shadow);
    opacity: 0; visibility: hidden;
    transform: translateY(-6px);
    transition: opacity .16s ease, transform .16s ease, visibility .16s;
    z-index: 60;
  }
  .bgc-cartwrap.is-open .bgc-minicart{ opacity: 1; visibility: visible; transform: none; }

  /* little arrow pointing at the cart icon */
  .bgc-minicart::before{
    content: ""; position: absolute; top: -7px; right: 16px;
    width: 12px; height: 12px; transform: rotate(45deg);
    background: var(--bgc-paper);
    border-left: 1px solid var(--bgc-line);
    border-top: 1px solid var(--bgc-line);
  }
  /* invisible bridge so the pointer can travel down without closing it */
  .bgc-minicart::after{
    content: ""; position: absolute; top: -16px; left: 0; right: 0; height: 16px;
  }

  .bgc-minicart__empty{ margin: 6px 0; color: var(--bgc-soft); font-size: 14px; text-align: center; }

  .bgc-minicart__list{ list-style: none; margin: 0; padding: 0; }
  .bgc-minicart__item{
    display: flex; align-items: center; gap: 10px;
    padding: 9px 0;
    border-bottom: 1px solid var(--bgc-line);
  }
  .bgc-minicart__item:first-child{ padding-top: 0; }

  .bgc-minicart__thumb{ flex: none; width: 48px; height: 48px; border-radius: var(--bgc-radius-sm); overflow: hidden; background: var(--bgc-cream-2); }
  .bgc-minicart__thumb img{ width: 48px !important; height: 48px !important; object-fit: cover; display: block; }

  .bgc-minicart__meta{ min-width: 0; flex: 1 1 auto; }
  .bgc-minicart__name{
    display: block; font-size: 13.5px; line-height: 1.35; color: var(--bgc-ink); font-weight: 600;
    overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  }
  .bgc-minicart__name:hover{ color: var(--bgc-maroon); }
  .bgc-minicart__qty{ display: block; margin-top: 2px; font-size: 12.5px; color: var(--bgc-soft); }
  .bgc-minicart__qty .amount{ color: var(--bgc-soft); }

  .bgc-minicart__remove{
    flex: none; width: 24px; height: 24px; border-radius: var(--bgc-pill);
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 17px; line-height: 1; color: var(--bgc-soft); text-decoration: none;
  }
  .bgc-minicart__remove:hover{ background: var(--bgc-cream-2); color: var(--bgc-sale); }

  .bgc-minicart__more{ margin: 8px 0 0; font-size: 12.5px; color: var(--bgc-soft); text-align: center; }

  .bgc-minicart__total{
    display: flex; align-items: baseline; justify-content: space-between;
    margin-top: 12px; padding-top: 12px; border-top: 2px solid var(--bgc-ink);
    font-size: 14px;
  }
  .bgc-minicart__total strong{ font-size: 17px; color: var(--bgc-maroon); }

  .bgc-minicart__actions{ display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 12px; }
  .bgc-minicart__btn{
    display: inline-flex; align-items: center; justify-content: center;
    height: 42px; border-radius: var(--bgc-pill);
    font-size: 14px; font-weight: 700; text-decoration: none;
    background: var(--bgc-maroon); color: #fff;
  }
  .bgc-minicart__btn:hover{ background: var(--bgc-maroon-lit); color: #fff; }
  .bgc-minicart__btn--ghost{
    background: transparent; color: var(--bgc-ink);
    box-shadow: inset 0 0 0 1.5px var(--bgc-line);
  }
  .bgc-minicart__btn--ghost:hover{ background: var(--bgc-cream-2); color: var(--bgc-ink); }
}

@media (min-width: 1240px){
  .bgc-nav__list > li > a{ padding: 9px 15px; font-size: 15px; }
}

/* ==========================================================================
   13. BACK TO TOP — progress ring, brand colours
   ========================================================================== */
.bgc-top{
  --p: 0deg;
  position: fixed;
  left: 16px; bottom: 16px;
  z-index: 300;
  width: 52px; height: 52px;
  display: grid; place-items: center;
  padding: 0; border: 0;
  border-radius: var(--bgc-pill);
  background: conic-gradient(var(--bgc-clay) var(--p), rgba(46,33,29,.12) 0) !important;
  box-shadow: 0 8px 24px rgba(46,33,29,.24);
  opacity: 0;
  pointer-events: none;
  transform: translateY(12px) scale(.9);
  transition: opacity .2s ease, transform .2s ease;
}
.bgc-top::before{
  content: "";
  position: absolute; inset: 3px;
  border-radius: var(--bgc-pill);
  background: var(--bgc-bar);
  transition: background .15s ease;
}
.bgc-top svg{ position: relative; z-index: 1; color: #fff; }
.bgc-top.is-on{ opacity: 1; pointer-events: auto; transform: none; }
.bgc-top:hover::before{ background: var(--bgc-maroon-lit); }
.bgc-top:active{ transform: scale(.94); }
.bgc-top:focus{ outline: none; }
.bgc-top:focus-visible{ outline: 2px solid var(--bgc-clay); outline-offset: 3px; }
@media (min-width: 1000px){
  .bgc-top{ left: 26px; bottom: 26px; width: 56px; height: 56px; }
}

/* ==========================================================================
   14. HERO  — colour panel + photo   [bgc_hero]
   ========================================================================== */
.bgc-hero{
  --hero-bg: #6E2B26;
  display: grid;
  grid-template-columns: 1fr;
  background: var(--hero-bg);
  overflow: hidden;
  margin: 14px 0 34px;
}

/* photo first on mobile, like LEGO */
.bgc-hero__media{
  order: -1;
  position: relative;
  aspect-ratio: 4 / 3;
  background: rgba(255,255,255,.06);
  overflow: hidden;
}
/* absolutely positioned so a stray `img{height:auto}` from a plugin
   can't stop it filling the column */
.bgc-hero__picture{
  position: absolute; inset: 0;
  display: block; width: 100%; height: 100%;
}
.bgc-hero__img{
  position: absolute; inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover;
  object-position: center;
  display: block;
}
.bgc-hero__ph{
  position: absolute; inset: 0;
  display: grid; place-items: center;
  color: rgba(255,255,255,.6);
  font-size: 12px; letter-spacing: .16em; text-transform: uppercase; font-weight: 700;
}

.bgc-hero__panel{ display: flex; align-items: center; }
.bgc-hero__copy{ padding: 30px 22px 34px; color: #fff; width: 100%; }
.bgc-hero__kicker{
  display: inline-block;
  background: #fff; color: var(--hero-bg);
  font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
  padding: 5px 11px; border-radius: 5px; margin-bottom: 14px;
}
.bgc-hero__title{
  color: #fff;
  font-size: clamp(26px, 6vw, 40px);
  line-height: 1.1; letter-spacing: -.02em;
  margin: 0 0 12px;
}
.bgc-hero__text{
  color: rgba(255,255,255,.92);
  font-size: 16px; margin: 0 0 22px; max-width: 46ch;
}
.bgc-hero__btns{ display: flex; flex-wrap: wrap; gap: 10px; }
.bgc-hero__btn{
  display: inline-flex; align-items: center; gap: 8px;
  padding: 13px 24px; border-radius: var(--bgc-pill);
  font-weight: 700; font-size: 15px; line-height: 1;
  transition: background .15s ease, color .15s ease;
}
.bgc-hero__btn span{ font-size: 17px; line-height: 0; }
.bgc-hero__btn--solid{ background: #fff; color: var(--hero-bg); }
.bgc-hero__btn--solid:hover{ background: var(--bgc-cream-2); color: var(--hero-bg); }
.bgc-hero__btn--ghost{ border: 2px solid rgba(255,255,255,.85); color: #fff; }
.bgc-hero__btn--ghost:hover{ background: #fff; color: var(--hero-bg); }

@media (min-width: 900px){
  .bgc-hero{ grid-template-columns: 0.85fr 1.15fr; align-items: stretch; }
  .bgc-hero__media{ order: 0; aspect-ratio: auto; min-height: 440px; }
  .bgc-hero__copy{ padding: 48px 44px; }
}
@media (min-width: 1240px){
  .bgc-hero__copy{ padding: 60px 60px 60px 56px; }
  .bgc-hero__media{ min-height: 500px; }
}

/* ==========================================================================
   15. CATEGORY RAIL  — [bgc_categories]
   ========================================================================== */
.bgc-rail{ margin: 0 0 44px; }
.bgc-rail__heading{
  font-size: clamp(20px, 3vw, 27px);
  margin: 0 0 16px;
  padding-inline: var(--bgc-pad);
  max-width: 1320px; margin-inline: auto;
}

.bgc-rail__scroller{
  display: grid;
  grid-auto-flow: column;
  /* mobile: ~2.4 tiles visible, the rest swipes */
  grid-auto-columns: 40%;
  gap: 10px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
  padding: 4px var(--bgc-pad) 16px;
  max-width: 1320px;
  margin-inline: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--bgc-clay) var(--bgc-cream-2);
}
.bgc-rail__scroller::-webkit-scrollbar{ height: 6px; }
.bgc-rail__scroller::-webkit-scrollbar-track{ background: var(--bgc-cream-2); border-radius: var(--bgc-pill); }
.bgc-rail__scroller::-webkit-scrollbar-thumb{ background: var(--bgc-clay); border-radius: var(--bgc-pill); }
.bgc-rail__scroller::-webkit-scrollbar-thumb:hover{ background: var(--bgc-clay-dark); }

.bgc-tile{
  --tile-bg: #6E2B26;
  scroll-snap-align: start;
  position: relative;
  display: flex;
  flex-direction: column;
  aspect-ratio: 7 / 10;
  border-radius: var(--bgc-radius);
  overflow: hidden;
  background: var(--tile-bg);
  color: #fff;
  transition: transform .15s ease, box-shadow .15s ease;
}
.bgc-tile:hover{ transform: translateY(-4px); box-shadow: var(--bgc-shadow); color: #fff; }

/* label sits at the top, like LEGO's */
.bgc-tile__label{
  position: relative; z-index: 2;
  padding: 14px 14px 8px;
  font-size: 14.5px; font-weight: 800; line-height: 1.2;
  letter-spacing: .01em;
  text-shadow: 0 1px 6px rgba(0,0,0,.28);
}
.bgc-tile__media{
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  display: block;
}
.bgc-tile__img{
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  display: block;
}
/* photos fill the tile; transparent PNGs float inside it */
.bgc-rail[data-fit="cover"] .bgc-tile__img{ object-fit: cover; object-position: center; }
.bgc-rail[data-fit="contain"] .bgc-tile__img{ object-fit: contain; padding: 8px 12px 14px; }

/* readability scrim behind the label when the image is a photo */
.bgc-rail[data-fit="cover"] .bgc-tile::before{
  content: "";
  position: absolute; inset: 0 0 auto 0; height: 45%;
  z-index: 1;
  background: linear-gradient(to bottom, rgba(0,0,0,.5), transparent);
  pointer-events: none;
}
.bgc-tile__ph{
  position: absolute; inset: 0;
  display: grid; place-items: center;
  color: rgba(255,255,255,.55);
  font-size: 11px; font-weight: 700; letter-spacing: .14em;
}

@media (min-width: 560px){
  .bgc-rail__scroller{ grid-auto-columns: 30%; }
}
@media (min-width: 760px){
  .bgc-rail__scroller{ grid-auto-columns: 22%; gap: 12px; }
}
/* desktop: every tile fits, no scrolling */
@media (min-width: 1000px){
  .bgc-rail__scroller{
    grid-auto-flow: row;
    grid-template-columns: repeat(var(--bgc-tiles, 7), minmax(0, 1fr));
    grid-auto-columns: auto;
    gap: 12px;
    overflow-x: visible;
    padding-bottom: 4px;
  }
  .bgc-tile__label{ padding: 15px 14px 8px; font-size: 15px; }
}

/* ==========================================================================
   16. PRODUCT RAIL  — [bgc_products]
   Reuses WooCommerce's own product card, so the spec line, stock status,
   badges and pricing are identical to the shop pages.
   ========================================================================== */
.bgc-prail{ margin: 0 0 48px; }

.bgc-prail__head{
  max-width: 1320px; margin-inline: auto;
  padding: 0 var(--bgc-pad) 14px;
  display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
}
.bgc-prail__heading{ font-size: clamp(20px, 3vw, 27px); margin: 0; }
.bgc-prail__more{
  font-size: 14px; font-weight: 700; color: var(--bgc-maroon);
  white-space: nowrap;
  border-bottom: 2px solid var(--bgc-clay-light); padding-bottom: 2px;
}
.bgc-prail__more:hover{ border-bottom-color: var(--bgc-clay); }

.bgc-prail__scroller{
  max-width: 1320px; margin-inline: auto;
  padding: 4px var(--bgc-pad) 16px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: var(--bgc-clay) var(--bgc-cream-2);
}
.bgc-prail__scroller::-webkit-scrollbar{ height: 6px; }
.bgc-prail__scroller::-webkit-scrollbar-track{ background: var(--bgc-cream-2); border-radius: var(--bgc-pill); }
.bgc-prail__scroller::-webkit-scrollbar-thumb{ background: var(--bgc-clay); border-radius: var(--bgc-pill); }
.bgc-prail__scroller::-webkit-scrollbar-thumb:hover{ background: var(--bgc-clay-dark); }

/* turn the standard product grid into a single scrolling row */
.bgc-prail .woocommerce ul.products,
.bgc-prail ul.products{
  display: grid;
  grid-auto-flow: column;
  grid-template-columns: none;
  grid-auto-columns: 62%;
  gap: 12px;
  margin: 0;
}
.bgc-prail ul.products li.product{ scroll-snap-align: start; }
.bgc-prail ul.products li.product:hover{ transform: none; }

@media (min-width: 480px){ .bgc-prail ul.products{ grid-auto-columns: 46%; } }
@media (min-width: 700px){ .bgc-prail ul.products{ grid-auto-columns: 31%; } }
@media (min-width: 1000px){
  .bgc-prail ul.products{ grid-auto-columns: 23%; gap: var(--bgc-gap); }
}
@media (min-width: 1240px){
  .bgc-prail ul.products{ grid-auto-columns: calc((100% - 4 * var(--bgc-gap)) / 5); }
}

/* ==========================================================================
   17. MOSAIC  — [bgc_mosaic]
   One lead image plus a 2x2, each with a "+" that reveals the product.
   ========================================================================== */
.bgc-mosaic{ max-width: 1320px; margin: 0 auto 52px; padding-inline: var(--bgc-pad); }

.bgc-mosaic__head{ text-align: center; margin-bottom: 20px; }
.bgc-mosaic__heading{ font-size: clamp(22px, 3.4vw, 32px); margin: 0 0 6px; }
.bgc-mosaic__sub{ color: var(--bgc-soft); margin: 0; font-size: 15.5px; }

.bgc-mosaic__grid{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}

.bgc-mosaic__item{
  position: relative;
  overflow: hidden;
  border-radius: var(--bgc-radius);
  background: var(--bgc-cream-2);
  aspect-ratio: 4 / 3;
}
.bgc-mosaic__item--lead{ grid-column: span 2; aspect-ratio: 3 / 2; }

.bgc-mosaic__link{ display: block; width: 100%; height: 100%; }
.bgc-mosaic__img{
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform .4s ease;
}
.bgc-mosaic__item:hover .bgc-mosaic__img{ transform: scale(1.04); }

/* the + button */
.bgc-mosaic__toggle{
  position: absolute;
  left: 12px; bottom: 12px;
  z-index: 3;
  width: 40px; height: 40px;
  border: 0; padding: 0;
  border-radius: var(--bgc-pill);
  background: #fff !important;
  box-shadow: 0 3px 12px rgba(46,33,29,.24);
  display: grid; place-items: center;
  transition: transform .18s ease, background .18s ease;
}
.bgc-mosaic__toggle span{
  position: absolute;
  background: var(--bgc-ink);
  border-radius: 2px;
  transition: transform .2s ease, background .18s ease;
}
.bgc-mosaic__toggle span:nth-child(1){ width: 16px; height: 2px; }
.bgc-mosaic__toggle span:nth-child(2){ width: 2px; height: 16px; }
.bgc-mosaic__toggle:hover{ transform: scale(1.08); }
.bgc-mosaic__item.is-open .bgc-mosaic__toggle{ background: var(--bgc-maroon) !important; }
.bgc-mosaic__item.is-open .bgc-mosaic__toggle span{ background: #fff; }
.bgc-mosaic__item.is-open .bgc-mosaic__toggle span:nth-child(1){ transform: rotate(45deg); }
.bgc-mosaic__item.is-open .bgc-mosaic__toggle span:nth-child(2){ transform: rotate(45deg); }
.bgc-mosaic__toggle:focus{ outline: none; }
.bgc-mosaic__toggle:focus-visible{ outline: 2px solid var(--bgc-clay); outline-offset: 3px; }

/* the reveal card */
.bgc-mosaic__card{
  position: absolute;
  left: 12px; right: 12px; bottom: 12px;
  z-index: 2;
  background: #fff;
  border-radius: var(--bgc-radius-sm);
  padding: 14px 16px 14px 62px;
  box-shadow: 0 8px 24px rgba(46,33,29,.18);
  opacity: 0;
  transform: translateY(10px);
  pointer-events: none;
  transition: opacity .2s ease, transform .2s ease;
}
.bgc-mosaic__item.is-open .bgc-mosaic__card{
  opacity: 1; transform: none; pointer-events: auto;
}
.bgc-mosaic__name{
  display: block;
  font-size: 14.5px; font-weight: 700; line-height: 1.3;
  color: var(--bgc-ink);
  margin-bottom: 3px;
}
.bgc-mosaic__name:hover{ color: var(--bgc-maroon); }
.bgc-mosaic__price{
  display: block;
  font-size: 15px; font-weight: 800; color: var(--bgc-ink);
  line-height: 1.3;
}
.bgc-mosaic__price del{ font-size: 12.5px; font-weight: 500; color: var(--bgc-soft); }
.bgc-mosaic__price ins{ background: none; text-decoration: none; color: var(--bgc-sale); }
.bgc-mosaic__cta{
  display: inline-block; margin-top: 6px;
  font-size: 13px; font-weight: 700; color: var(--bgc-maroon);
}

@media (min-width: 900px){
  .bgc-mosaic__grid{
    grid-template-columns: 1.25fr 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 12px;
  }
  .bgc-mosaic__item{ aspect-ratio: 4 / 3; }
  .bgc-mosaic__item--lead{
    grid-column: 1;
    grid-row: 1 / span 2;
    aspect-ratio: auto;
  }
  /* hover reveals on desktop, click still works */
  .bgc-mosaic__item:hover .bgc-mosaic__card{ opacity: 1; transform: none; pointer-events: auto; }
  .bgc-mosaic__item:hover .bgc-mosaic__toggle span:nth-child(1){ transform: rotate(45deg); }
  .bgc-mosaic__item:hover .bgc-mosaic__toggle span:nth-child(2){ transform: rotate(45deg); }
  .bgc-mosaic__item:hover .bgc-mosaic__toggle{ background: var(--bgc-maroon) !important; }
  .bgc-mosaic__item:hover .bgc-mosaic__toggle span{ background: #fff; }
}

/* ==========================================================================
   18. SINGLE PRODUCT — detail
   ========================================================================== */

/* title + rating */
.woocommerce div.product .product_title{
  font-size: clamp(24px, 3.4vw, 34px);
  line-height: 1.15;
  margin: 0 0 10px;
}
.woocommerce div.product .woocommerce-product-rating{ margin-bottom: 12px; }
.woocommerce div.product .woocommerce-product-rating .star-rating{ color: #D9A62B; }
.woocommerce div.product .woocommerce-review-link{ font-size: 13.5px; color: var(--bgc-soft); }

/* spec chips */
.bgc-chips{ display: flex; flex-wrap: wrap; gap: 7px; margin: 0 0 18px; }
.bgc-chip{
  display: inline-flex; align-items: baseline; gap: 6px;
  background: var(--bgc-cream-2);
  border-radius: var(--bgc-pill);
  padding: 6px 14px;
  font-size: 13px; color: var(--bgc-ink);
}
.bgc-chip b{
  font-size: 10.5px; font-weight: 800; letter-spacing: .08em;
  text-transform: uppercase; color: var(--bgc-clay-dark);
}

/* price block */
.woocommerce div.product p.price,
.woocommerce div.product span.price{ margin-bottom: 14px; line-height: 1.25; }
.woocommerce div.product p.price small,
.woocommerce div.product p.price .woocommerce-Price-amount + .woocommerce-Price-amount{
  display: block; font-size: 14px; font-weight: 500; color: var(--bgc-soft); margin-top: 2px;
}

/* short description */
.woocommerce div.product .woocommerce-product-details__short-description{
  color: var(--bgc-soft);
  font-size: 15.5px;
  margin-bottom: 20px;
  max-width: 52ch;
}

/* stock line */
.bgc-stock--single{
  font-size: 14px !important;
  padding: 0 !important;
  margin: 0 0 14px !important;
}
.bgc-stock--single::before{ width: 8px; height: 8px; }

/* cart form */
.woocommerce div.product form.cart{ margin-bottom: 18px; }
.woocommerce div.product form.cart .quantity{ margin-right: 10px; }
.woocommerce div.product form.cart .quantity .qty{
  height: 50px; width: 78px; text-align: center;
  border-radius: var(--bgc-pill);
  border: 1.5px solid var(--bgc-clay-light);
  font-size: 15px; font-weight: 700;
}
.woocommerce div.product form.cart .button{
  height: 50px; padding-inline: 34px;
  font-size: 15.5px;
}
.woocommerce div.product form.cart .variations{
  margin-bottom: 16px; border: 0; width: 100%;
}
.woocommerce div.product form.cart .variations tr{ display: block; margin-bottom: 12px; }
.woocommerce div.product form.cart .variations,
.woocommerce div.product form.cart .variations tbody,
.woocommerce div.product form.cart .variations tr,
.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td{
  background: transparent !important;
  box-shadow: none !important;
}
.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td{
  display: block; padding: 0; text-align: left; border: 0;
}
.woocommerce div.product form.cart .variations label{
  font-size: 12px; font-weight: 800; letter-spacing: .07em;
  text-transform: uppercase; color: var(--bgc-clay-dark);
  margin-bottom: 6px; display: block;
}
.woocommerce div.product form.cart .variations select{
  width: 100%; max-width: 340px;
  height: 46px; border-radius: var(--bgc-pill);
  padding-inline: 18px; font-size: 15px;
  background-color: #fff !important;
  border: 1.5px solid var(--bgc-line);
  color: var(--bgc-ink);
}
.woocommerce div.product .woocommerce-variation-price{ margin-bottom: 14px; }
.reset_variations{ font-size: 13px; color: var(--bgc-soft); }

/* reassurance row */
.bgc-assure{
  list-style: none; margin: 0 0 20px; padding: 16px 0 0;
  border-top: 1px solid var(--bgc-line);
  display: grid; gap: 10px;
}
.bgc-assure li{
  display: flex; align-items: center; gap: 10px;
  font-size: 14px; color: var(--bgc-soft);
}
.bgc-assure svg{ color: var(--bgc-clay-dark); flex: none; }

/* meta */
.woocommerce div.product .product_meta{
  font-size: 13px; color: var(--bgc-soft);
  border-top: 1px solid var(--bgc-line);
  padding-top: 14px;
}
.woocommerce div.product .product_meta > span{ display: block; margin-bottom: 4px; }

/* tabs + spec table */
.woocommerce div.product .woocommerce-tabs{ padding-top: 14px; }
.woocommerce div.product .woocommerce-tabs .panel{
  background: var(--bgc-paper);
  border: 1px solid var(--bgc-line);
  border-radius: 0 var(--bgc-radius) var(--bgc-radius) var(--bgc-radius);
  padding: 26px 28px;
  margin-bottom: 40px;
}
.woocommerce div.product .woocommerce-tabs .panel h2{ font-size: 20px; }
.woocommerce table.shop_attributes{ border: 0; }
.woocommerce table.shop_attributes tr:nth-child(even) th,
.woocommerce table.shop_attributes tr:nth-child(even) td{ background: transparent; }
.woocommerce table.shop_attributes th{
  background: transparent;
  font-size: 12px; font-weight: 800; letter-spacing: .06em;
  text-transform: uppercase; color: var(--bgc-clay-dark);
  width: 34%;
}
.woocommerce table.shop_attributes td{ font-style: normal; }
.woocommerce table.shop_attributes td p{ padding: 0; margin: 0; }

/* related heading */
.woocommerce div.product .related > h2,
.woocommerce div.product .upsells > h2{
  font-size: clamp(20px, 3vw, 27px);
  padding-inline: var(--bgc-pad);
  max-width: 1320px; margin-inline: auto;
}
.bgc-prail--related{ margin-bottom: 0; }

/* sticky buy bar — mobile only */
.bgc-buybar{
  position: fixed; left: 0; right: 0; bottom: 0;
  z-index: 250;
  background: #fff;
  border-top: 1px solid var(--bgc-line);
  box-shadow: 0 -6px 22px rgba(46,33,29,.12);
  transform: translateY(100%);
  transition: transform .22s ease;
  padding-bottom: env(safe-area-inset-bottom);
}
.bgc-buybar.is-on{ transform: none; }
.bgc-buybar__in{
  display: flex; align-items: center; gap: 12px;
  padding: 10px 14px;
  max-width: 1320px; margin-inline: auto;
}
.bgc-buybar__info{ min-width: 0; flex: 1 1 auto; line-height: 1.25; }
.bgc-buybar__name{
  display: block; font-size: 12.5px; color: var(--bgc-soft);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.bgc-buybar__price{ display: block; font-size: 16px; font-weight: 800; }
.bgc-buybar__price del{ font-size: 12px; font-weight: 500; color: var(--bgc-soft); }
.bgc-buybar__price ins{ background: none; text-decoration: none; color: var(--bgc-sale); }
.bgc-buybar__btn{
  flex: none;
  background: var(--bgc-maroon) !important; color: #fff !important;
  border-radius: var(--bgc-pill);
  padding: 13px 30px; font-weight: 700; font-size: 15px;
}
@media (min-width: 900px){
  .bgc-buybar{ display: none !important; }
  .bgc-assure{ grid-template-columns: 1fr; }
}

/* ==========================================================================
   19. SINGLE PRODUCT — fixes and polish
   ========================================================================== */

/* related rail is a child of div.product's grid — it must span both columns */
.woocommerce div.product .bgc-prail,
.woocommerce div.product .bgc-prail--related{
  grid-column: 1 / -1;
  width: 100%;
}
.woocommerce div.product .bgc-prail__scroller{ padding-inline: 0; max-width: none; }
.woocommerce div.product .related,
.woocommerce div.product .upsells{ width: 100%; margin: 0; }
.woocommerce div.product .related > h2,
.woocommerce div.product .upsells > h2{ padding-inline: 0; margin-bottom: 16px; }

/* back-to-top steps aside when the buy bar is up */
body.bgc-has-buybar .bgc-top{ bottom: 88px; }

/* --- desktop layout: gallery a touch wider, summary sticky --- */
@media (min-width: 900px){
  .woocommerce div.product{
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: 72px;
  }
  .woocommerce div.product div.summary{ align-self: start; }
}

/* gallery sits on a soft card so cut-out product shots don't float */
.woocommerce div.product div.images{
  background: var(--bgc-paper);
  border: 1px solid var(--bgc-line);
  border-radius: var(--bgc-radius);
  padding: 14px;
}
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper{ margin: 0; }
.woocommerce div.product div.images img{ border-radius: var(--bgc-radius-sm); }
.woocommerce div.product div.images .flex-control-thumbs{ margin-top: 12px; max-height: 200px; }
.woocommerce div.product .woocommerce-product-gallery__trigger{
  top: 22px; right: 22px;
  width: 40px; height: 40px;
  border-radius: var(--bgc-pill);
  background: #fff !important;
  box-shadow: 0 3px 12px rgba(46,33,29,.18);
  display: grid; place-items: center;
  font-size: 0;
}
.woocommerce div.product .woocommerce-product-gallery__trigger::before{
  content: "";
  width: 13px; height: 13px;
  border: 2px solid var(--bgc-ink);
  border-radius: 50%;
  position: static;
}
.woocommerce div.product .woocommerce-product-gallery__trigger::after{
  content: "";
  width: 2px; height: 7px;
  background: var(--bgc-ink);
  position: absolute;
  bottom: 9px; right: 12px;
  transform: rotate(-45deg);
  border-radius: 2px;
}

/* price gets real weight */
.woocommerce div.product p.price,
.woocommerce div.product span.price{
  font-size: clamp(26px, 3.6vw, 34px);
  margin-bottom: 6px;
}
.woocommerce div.product p.price + .bgc-stock--single{ margin-top: 10px !important; }

/* separators so the summary reads as blocks, not a list */
.woocommerce div.product form.cart{
  padding-top: 18px;
  border-top: 1px solid var(--bgc-line);
}
.woocommerce div.product .woocommerce-product-details__short-description{
  padding-bottom: 4px;
}

/* tabs: flush, quieter */
.woocommerce div.product .woocommerce-tabs ul.tabs li{
  background: transparent;
  border: 0;
  border-bottom: 3px solid transparent;
  border-radius: 0;
  margin: 0 22px 0 0;
  padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after{ display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  padding: 12px 0;
  font-size: 15.5px;
  color: var(--bgc-soft);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{
  border-bottom-color: var(--bgc-maroon);
  background: transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{ color: var(--bgc-ink); }
.woocommerce div.product .woocommerce-tabs .panel{
  border-radius: var(--bgc-radius);
  padding: 28px 30px;
}
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child{ display: none; }

/* tags list, quieter */
.woocommerce div.product .product_meta .tagged_as{ color: var(--bgc-soft); }
.woocommerce div.product .product_meta a{ color: var(--bgc-soft); }
.woocommerce div.product .product_meta a:hover{ color: var(--bgc-maroon); }

/* ==========================================================================
   20. LEFTOVERS FROM THE OLD THEME
   ThemeREX Addons still injects UI. Suppress it until the plugin goes.
   ========================================================================== */
.trx_addons_scroll_to_top,
a.trx_addons_scroll_to_top{ display: none !important; }


/* ==========================================================================
   21. FOOTER
   ========================================================================== */
.site-footer{ display: none !important; }   /* Hello Elementor's own */

.bgc-footer{
  background: var(--bgc-maroon);
  color: rgba(255,255,255,.82);
  margin-top: 60px;
  font-size: 14.5px;
}
.bgc-footer a{ color: rgba(255,255,255,.82); }
.bgc-footer a:hover{ color: #fff; }

.bgc-footer__in{
  max-width: 1320px; margin-inline: auto;
  padding: 44px var(--bgc-pad) 34px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 34px;
}

/* --- brand block --- */
.bgc-footer__logo{ display: inline-block; margin-bottom: 14px; }
.bgc-footer__logoimg{
  display: block;
  width: auto !important;
  height: auto !important;
  max-height: 76px !important;
  max-width: 240px !important;
  object-fit: contain;
}
.bgc-footer__logo--text{ line-height: 1; }
.bgc-footer__mark{
  display: block;
  font-family: var(--bgc-font-display);
  font-size: 27px; letter-spacing: .07em; color: #fff;
}
.bgc-footer__tag{
  display: block; margin-top: 7px;
  font-size: 9px; letter-spacing: .3em; color: rgba(255,255,255,.6);
}
.bgc-footer__about{
  margin: 0 0 18px;
  max-width: 34ch;
  color: rgba(255,255,255,.7);
  font-size: 14px;
  line-height: 1.6;
}

.bgc-footer__social{ display: flex; gap: 8px; list-style: none; margin: 0; padding: 0; }
.bgc-footer__social a{
  display: grid; place-items: center;
  width: 38px; height: 38px;
  border-radius: var(--bgc-pill);
  border: 1px solid rgba(255,255,255,.25);
  color: #fff;
  transition: background .15s ease, border-color .15s ease;
}
.bgc-footer__social a:hover{ background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.5); }

/* --- link columns --- */
.bgc-footer__cols{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px 20px;
}
.bgc-footer__title{
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: #fff;
  margin: 0 0 12px;
  line-height: 1.35;
}
.bgc-footer__title a{ color: #fff; }
.bgc-footer__links{ list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.bgc-footer__links a{ font-size: 14px; line-height: 1.45; display: inline-block; }

.bgc-footer__email{
  display: inline-block;
  margin-bottom: 12px;
  font-size: 14.5px;
  border-bottom: 1px solid rgba(255,255,255,.3);
  padding-bottom: 1px;
}
.bgc-footer__hours{
  margin: 0;
  font-size: 13.5px;
  line-height: 1.6;
  color: rgba(255,255,255,.7);
}

/* --- bottom bar --- */
.bgc-footer__bottom{
  border-top: 1px solid rgba(255,255,255,.16);
}
.bgc-footer__bottomin{
  max-width: 1320px; margin-inline: auto;
  padding: 16px var(--bgc-pad);
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
  gap: 10px 22px;
  text-align: center;
}
.bgc-footer__copy{ font-size: 13px; color: rgba(255,255,255,.6); }
.bgc-footer__legal{
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: 6px 18px; justify-content: center;
}
.bgc-footer__legal a{ font-size: 13px; color: rgba(255,255,255,.6); }

@media (min-width: 620px){
  .bgc-footer__cols{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1000px){
  .bgc-footer__in{
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 2.6fr);
    gap: 50px;
    padding-block: 54px 40px;
  }
  .bgc-footer__cols{ grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
  .bgc-footer__bottomin{ justify-content: space-between; text-align: left; }
  .bgc-footer__legal{ justify-content: flex-end; }
}

/* ==========================================================================
   22. CART & CHECKOUT
   ========================================================================== */

/* --- progress steps --- */
.bgc-steps{
  list-style: none; margin: 0 0 30px; padding: 0;
  display: flex; align-items: center; gap: 6px;
  counter-reset: step;
}
.bgc-steps__item{
  display: flex; align-items: center; gap: 9px;
  flex: 1 1 0; min-width: 0;
  color: var(--bgc-soft);
  font-size: 13.5px; font-weight: 600;
}
.bgc-steps__item + .bgc-steps__item::before{
  content: ""; height: 2px; flex: 1 1 auto;
  background: var(--bgc-line); border-radius: 2px; margin-right: 3px;
}
.bgc-steps__num{
  flex: none;
  width: 28px; height: 28px; border-radius: var(--bgc-pill);
  display: grid; place-items: center;
  background: var(--bgc-cream-2); color: var(--bgc-soft);
  font-size: 13px; font-weight: 800;
}
.bgc-steps__label{ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bgc-steps__item.is-now{ color: var(--bgc-ink); }
.bgc-steps__item.is-now .bgc-steps__num{ background: var(--bgc-maroon); color: #fff; }
.bgc-steps__item.is-done .bgc-steps__num{ background: var(--bgc-ok); color: #fff; }
.bgc-steps__item.is-done{ color: var(--bgc-ink); }
@media (max-width: 640px){
  .bgc-steps__label{ display: none; }
  .bgc-steps__item{ flex: 0 0 auto; }
  .bgc-steps__item + .bgc-steps__item::before{ width: 26px; flex: none; }
  .bgc-steps{ justify-content: center; }
}

/* --- cart table --- */
.woocommerce table.shop_table.cart{
  background: var(--bgc-paper);
  border: 1px solid var(--bgc-line);
  border-radius: var(--bgc-radius);
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  margin-bottom: 26px;
}
.woocommerce table.shop_table.cart th{
  background: var(--bgc-cream-2);
  font-size: 11.5px; letter-spacing: .09em; text-transform: uppercase;
  color: var(--bgc-maroon); font-weight: 800;
  padding: 13px 16px;
}
.woocommerce table.shop_table.cart td{
  padding: 16px; border-top: 1px solid var(--bgc-line); vertical-align: middle;
}
.woocommerce table.shop_table.cart td.product-thumbnail img{
  width: 74px; height: 74px;
  object-fit: contain; background: #fff;
  border: 1px solid var(--bgc-line); border-radius: var(--bgc-radius-sm);
  padding: 5px;
}
.woocommerce table.shop_table.cart td.product-name a{ font-weight: 600; color: var(--bgc-ink); }
.woocommerce table.shop_table.cart td.product-name a:hover{ color: var(--bgc-maroon); }
.woocommerce table.shop_table.cart .variation{ font-size: 12.5px; color: var(--bgc-soft); margin-top: 3px; }
.woocommerce table.shop_table.cart td.product-price,
.woocommerce table.shop_table.cart td.product-subtotal{ font-weight: 700; }

.woocommerce a.remove{
  width: 26px; height: 26px; line-height: 24px;
  color: var(--bgc-soft) !important;
  border: 1px solid var(--bgc-line);
  font-size: 16px;
}
.woocommerce a.remove:hover{
  background: var(--bgc-sale) !important; color: #fff !important; border-color: var(--bgc-sale);
}

.woocommerce .quantity .qty{
  height: 44px; width: 74px; text-align: center;
  border-radius: var(--bgc-pill);
  border: 1.5px solid var(--bgc-clay-light);
  font-weight: 700;
}

/* coupon row */
.woocommerce table.shop_table.cart td.actions{ background: var(--bgc-cream); padding: 16px; }
.woocommerce .coupon{ display: flex; gap: 8px; flex-wrap: wrap; }
.woocommerce .coupon .input-text{
  height: 46px; border-radius: var(--bgc-pill);
  padding-inline: 18px; min-width: 190px;
}
.woocommerce .coupon .button,
.woocommerce td.actions > .button{ height: 46px; }

/* --- totals --- */
.cart_totals{
  background: var(--bgc-paper);
  border: 1px solid var(--bgc-line);
  border-radius: var(--bgc-radius);
  padding: 22px 24px;
}
.cart_totals h2{ font-size: 18px; margin: 0 0 14px; }
.woocommerce-cart .cart-collaterals .cart_totals table.shop_table{
  border: 0; margin: 0;
}
.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td{
  background: transparent;
  border: 0; border-bottom: 1px solid var(--bgc-line);
  padding: 12px 0;
  font-size: 14.5px;
}
.woocommerce-cart .cart_totals table.shop_table th{
  text-transform: none; letter-spacing: 0; font-size: 14.5px;
  color: var(--bgc-soft); font-weight: 600; width: 45%;
}
.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td{
  border-bottom: 0; padding-top: 16px;
  font-size: 19px; font-weight: 800; color: var(--bgc-ink);
}
.wc-proceed-to-checkout{ padding-top: 16px !important; }
.wc-proceed-to-checkout .button{
  display: block; width: 100%; text-align: center;
  padding: 15px; font-size: 16px;
}
.woocommerce-shipping-destination{ font-size: 13px; color: var(--bgc-soft); }
.woocommerce-shipping-calculator a{ font-size: 13.5px; }

/* --- empty cart --- */
.bgc-empty{
  text-align: center;
  background: var(--bgc-paper);
  border: 1px solid var(--bgc-line);
  border-radius: var(--bgc-radius);
  padding: 56px 26px;
  margin-bottom: 40px;
  color: var(--bgc-soft);
}
.bgc-empty svg{ color: var(--bgc-clay); margin-bottom: 14px; }
.bgc-empty h2{ font-size: 22px; margin: 0 0 8px; }
.bgc-empty p{ margin: 0 0 22px; }

/* --- checkout layout --- */
.woocommerce-checkout form.checkout{
  display: grid;
  grid-template-columns: 1fr;
  gap: 30px;
  align-items: start;
}
.woocommerce-checkout #customer_details{ min-width: 0; }
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2{ width: 100%; float: none; }
.woocommerce-checkout h3{
  font-size: 18px;
  padding-bottom: 12px;
  margin-bottom: 18px;
  border-bottom: 1px solid var(--bgc-line);
}

/* fields */
.woocommerce form .form-row{ padding: 0; margin: 0 0 14px; }
.woocommerce form .form-row label{
  font-size: 12.5px; font-weight: 700;
  color: var(--bgc-soft);
  margin-bottom: 5px; display: block;
}
.woocommerce form .form-row .required{ color: var(--bgc-sale); text-decoration: none; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single{
  width: 100%;
  height: 48px;
  border: 1.5px solid var(--bgc-clay-light);
  border-radius: var(--bgc-radius-sm);
  padding: 0 14px;
  font-size: 15px;
  background: var(--bgc-paper);
  color: var(--bgc-ink);
}
.woocommerce form .form-row textarea{ height: 110px; padding-top: 12px; line-height: 1.55; }
.woocommerce .select2-container .select2-selection--single .select2-selection__rendered{
  line-height: 45px; padding-left: 0; color: var(--bgc-ink);
}
.woocommerce .select2-container .select2-selection--single .select2-selection__arrow{ height: 46px; }
.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select{ border-color: var(--bgc-sale); }
.woocommerce form .form-row.woocommerce-validated input.input-text{ border-color: var(--bgc-ok); }

/* order review */
.woocommerce-checkout #order_review_heading{ margin-bottom: 14px; }
.woocommerce-checkout #order_review{
  background: var(--bgc-paper);
  border: 1px solid var(--bgc-line);
  border-radius: var(--bgc-radius);
  padding: 22px 24px;
}
.woocommerce-checkout #order_review table.shop_table{
  border: 0; margin: 0; background: transparent;
}
.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td{
  background: transparent;
  border: 0; border-bottom: 1px solid var(--bgc-line);
  padding: 11px 0;
  font-size: 14.5px;
}
.woocommerce-checkout #order_review table.shop_table thead th{
  font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase;
  color: var(--bgc-clay-dark); font-weight: 800;
}
.woocommerce-checkout #order_review .order-total th,
.woocommerce-checkout #order_review .order-total td{
  border-bottom: 0; font-size: 19px; font-weight: 800; padding-top: 15px;
}
.woocommerce-checkout .product-name .variation{ font-size: 12.5px; color: var(--bgc-soft); }

/* payment box */
.woocommerce-checkout #payment{
  background: transparent;
  border-radius: 0;
  margin-top: 16px;
}
.woocommerce-checkout #payment ul.payment_methods{
  border: 0; padding: 0; margin: 0 0 14px;
  display: grid; gap: 8px;
}
.woocommerce-checkout #payment ul.payment_methods li{
  background: var(--bgc-cream);
  border: 1.5px solid var(--bgc-line);
  border-radius: var(--bgc-radius-sm);
  padding: 13px 15px;
  list-style: none;
}
.woocommerce-checkout #payment ul.payment_methods li:has(input:checked){
  border-color: var(--bgc-clay);
  background: #fff;
}
.woocommerce-checkout #payment ul.payment_methods li label{
  display: inline-flex; align-items: center; gap: 8px;
  font-weight: 600; font-size: 14.5px; margin: 0;
}
.woocommerce-checkout #payment div.payment_box{
  background: var(--bgc-cream-2);
  border-radius: var(--bgc-radius-sm);
  margin: 10px 0 0;
  font-size: 13.5px;
  color: var(--bgc-soft);
}
.woocommerce-checkout #payment div.payment_box::before{ display: none; }
.woocommerce-checkout #payment .form-row.place-order{ padding: 0; margin: 0; }
.woocommerce-checkout #payment #place_order{
  width: 100%;
  float: none !important;
  display: block;
  padding: 16px;
  font-size: 16.5px;
}
.woocommerce-privacy-policy-text{ font-size: 12.5px; color: var(--bgc-soft); }
.woocommerce-terms-and-conditions-wrapper{ margin-bottom: 14px; }

.bgc-assure--checkout{
  clear: both;
  width: 100%;
  border-top: 1px solid var(--bgc-line);
  margin-top: 16px; padding-top: 14px;
  grid-template-columns: 1fr 1fr;
  display: grid; gap: 8px;
}
.bgc-assure--checkout li{ white-space: nowrap; }
.bgc-assure--checkout li{ font-size: 12.5px; }

/* login / coupon notices at the top of checkout */
.woocommerce-form-login-toggle .woocommerce-info,
.woocommerce-form-coupon-toggle .woocommerce-info{
  background: var(--bgc-cream-2);
  border-top: 3px solid var(--bgc-clay);
  border-radius: var(--bgc-radius-sm);
  font-size: 14px;
}
.woocommerce form.login,
.woocommerce form.checkout_coupon{
  border: 1px solid var(--bgc-line);
  border-radius: var(--bgc-radius);
  padding: 22px 24px;
  background: var(--bgc-paper);
}

/* --- order received --- */
.woocommerce-order .woocommerce-thankyou-order-received{
  background: var(--bgc-paper);
  border: 1px solid var(--bgc-line);
  border-left: 5px solid var(--bgc-ok);
  border-radius: 0 var(--bgc-radius) var(--bgc-radius) 0;
  padding: 20px 24px;
  font-size: 17px; font-weight: 700;
  color: var(--bgc-ink);
  margin-bottom: 24px;
}
.woocommerce-order ul.woocommerce-order-overview{
  list-style: none; margin: 0 0 30px; padding: 0;
  display: grid; gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  border: 0;
}
.woocommerce-order ul.woocommerce-order-overview li{
  background: var(--bgc-paper);
  border: 1px solid var(--bgc-line);
  border-radius: var(--bgc-radius-sm);
  padding: 14px 16px;
  float: none; margin: 0;
  font-size: 11.5px; letter-spacing: .07em; text-transform: uppercase;
  color: var(--bgc-clay-dark); font-weight: 800;
  border-right: 1px solid var(--bgc-line);
}
.woocommerce-order ul.woocommerce-order-overview li strong{
  display: block; margin-top: 5px;
  font-size: 16px; letter-spacing: 0; text-transform: none;
  color: var(--bgc-ink);
}

/* --- responsive --- */
@media (min-width: 1000px){
  .woocommerce-checkout form.checkout{
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
    gap: 46px;
  }
  .woocommerce-checkout #customer_details{ grid-column: 1; grid-row: 1 / span 2; }
  .woocommerce-checkout #order_review_heading{ grid-column: 2; grid-row: 1; margin: 0; }
  .woocommerce-checkout #order_review{ grid-column: 2; grid-row: 2; }
  .woocommerce-checkout .col2-set{ display: grid; grid-template-columns: 1fr; gap: 0; }

  .woocommerce-cart .cart-collaterals{ display: flex; justify-content: flex-end; }
  .woocommerce-cart .cart-collaterals .cart_totals{ width: 420px; max-width: 100%; float: none; }
}

@media (max-width: 767px){
  /* Woo stacks the cart table — make each row a card */
  .woocommerce table.shop_table_responsive.cart tr{
    display: block;
    background: var(--bgc-paper);
    border: 1px solid var(--bgc-line);
    border-radius: var(--bgc-radius);
    margin-bottom: 12px;
    padding: 6px 4px;
  }
  .woocommerce table.shop_table_responsive.cart td{
    border: 0; padding: 9px 14px;
    display: flex; justify-content: space-between; align-items: center; gap: 12px;
  }
  .woocommerce table.shop_table_responsive.cart td::before{
    font-size: 12px; font-weight: 700; color: var(--bgc-soft);
  }
  .woocommerce table.shop_table_responsive.cart td.product-thumbnail{ justify-content: flex-start; }
  .woocommerce table.shop_table_responsive.cart td.product-thumbnail::before{ display: none; }
  .woocommerce table.shop_table_responsive.cart td.product-thumbnail img{ width: 90px; height: 90px; }
  .woocommerce table.shop_table.cart td.actions{ border-radius: var(--bgc-radius); }
  .bgc-assure--checkout{ grid-template-columns: 1fr; }
}

/* ==========================================================================
   23. SHOP + CATEGORY ARCHIVES  (mobile-first)
   ========================================================================== */

/* --- the yellow (32) bug: Woo wraps counts in <mark>, browsers paint it --- */
mark,
.woocommerce mark,
mark.count,
.woocommerce-result-count mark{
  background: transparent !important;
  color: inherit !important;
  padding: 0;
}

/* --- archive header --- */
.bgc-archive__parent{
  margin: 0 0 6px;
  font-size: 13px;
  color: var(--bgc-soft);
}
.bgc-archive__parent a{ color: var(--bgc-soft); }
.bgc-archive__parent a:hover{ color: var(--bgc-maroon); }
.bgc-archive__parent span{ opacity: .5; }
.bgc-archive__parent b{ color: var(--bgc-ink); }

.woocommerce-products-header__title,
.woocommerce-products-header h1,
.woocommerce .page-title{
  margin: 0 0 4px;
  font-size: 28px;
  line-height: 1.15;
  letter-spacing: -.01em;
}
.term-description,
.woocommerce-product-category-description{
  max-width: 66ch;
  margin: 6px 0 0;
  color: var(--bgc-soft);
  font-size: 14.5px;
}

/* --- category rail --- */
.bgc-catrail{
  margin: 18px 0 22px;
  /* bleed to the screen edges on mobile so the scroll feels native */
  margin-inline: calc(var(--bgc-pad) * -1);
  padding-inline: var(--bgc-pad);
}
.bgc-catrail__head{
  display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
  margin-bottom: 10px;
}
.bgc-catrail__heading{
  margin: 0;
  font-size: 15px; font-weight: 800; letter-spacing: .01em;
  text-transform: uppercase;
  color: var(--bgc-soft);
}
.bgc-catrail__up{
  flex: none;
  font-size: 13px; font-weight: 700;
  color: var(--bgc-maroon);
  white-space: nowrap;
}
.bgc-catrail__up:hover{ text-decoration: underline; }

.bgc-catrail__list{
  list-style: none; margin: 0; padding: 0 var(--bgc-pad) 4px 0;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 40%;          /* ~2.5 tiles visible on a phone */
  gap: 10px;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.bgc-catrail__list::-webkit-scrollbar{ display: none; }
.bgc-catrail__item{ scroll-snap-align: start; }

.bgc-cattile{
  display: flex; flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: var(--bgc-ink);
}
.bgc-cattile__media{
  position: relative;
  display: block;
  aspect-ratio: 1 / 1;
  border-radius: var(--bgc-radius);
  overflow: hidden;
  background: var(--tile, var(--bgc-cream-2));
  transition: transform .18s ease, box-shadow .18s ease;
}
.bgc-cattile__img{
  position: absolute; inset: 0;
  width: 100% !important; height: 100% !important;
  object-fit: cover;
  display: block;
}
.bgc-cattile__letter{
  position: absolute; inset: 0;
  display: grid; place-items: center;
  font-family: var(--bgc-font-display);
  font-size: 34px; font-weight: 700;
  color: rgba(46,33,29,.42);
}
.bgc-cattile:hover .bgc-cattile__media{
  transform: translateY(-3px);
  box-shadow: 0 10px 22px rgba(46,33,29,.16);
}
.bgc-cattile__name{
  display: block;
  margin-top: 8px;
  font-size: 14px; font-weight: 700; line-height: 1.25;
}
.bgc-cattile:hover .bgc-cattile__name{ color: var(--bgc-maroon); }
.bgc-cattile__count{
  display: block;
  margin-top: 2px;
  font-size: 12px;
  color: var(--bgc-soft);
}

/* current category, when we're showing siblings */
.bgc-catrail--siblings .bgc-cattile__media{ opacity: .92; }

@media (min-width: 620px){
  .bgc-catrail__list{ grid-auto-columns: 25%; }
  .woocommerce-products-header__title,
  .woocommerce-products-header h1,
  .woocommerce .page-title{ font-size: 34px; }
}

@media (min-width: 1000px){
  .bgc-catrail{
    margin-inline: 0;
    padding-inline: 0;
    margin: 22px 0 26px;
  }
  .bgc-catrail__list{
    grid-auto-flow: row;
    grid-auto-columns: auto;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 14px;
    padding: 0;
    overflow: visible;
  }
  .bgc-catrail__heading{ font-size: 13px; }
  .bgc-cattile__name{ font-size: 14.5px; }
  .woocommerce-products-header__title,
  .woocommerce-products-header h1,
  .woocommerce .page-title{ font-size: 40px; }

  /* a root shop with few categories shouldn't stretch them across the page */
  .bgc-catrail--root .bgc-catrail__list{ grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
}

/* ==========================================================================
   24. 3D PRINT BADGE
   ========================================================================== */
.bgc-badge--3d{
  top: 10px; left: 10px;
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--bgc-ink); color: #fff;
  letter-spacing: .04em;
  padding: 5px 9px 5px 7px;
}
.bgc-badge--3d svg{ flex: none; opacity: .9; }
.bgc-badge--3d b{ font-weight: 800; }
.bgc-badge--3d i{
  font-style: normal; font-weight: 600; opacity: .75;
  border-left: 1px solid rgba(255,255,255,.35); padding-left: 6px;
}
.bgc-badge--new + .bgc-badge--3d,
.bgc-badge--new ~ .bgc-badge--3d{ top: 40px; }
@media (max-width: 480px){
  .bgc-badge--3d i{ display: none; }   /* just "3D принт" on small cards */
}

.bgc-3dtag{
  display: inline-flex; align-items: center; gap: 7px;
  margin: 0 0 10px;
  padding: 6px 12px 6px 10px;
  border-radius: var(--bgc-pill);
  background: var(--bgc-ink); color: #fff;
  font-size: 12.5px; letter-spacing: .03em;
}
.bgc-3dtag b{ font-weight: 800; }
.bgc-3dtag span{ opacity: .5; }

/* ==========================================================================
   25. CHECKOUT — invoice fields
   ========================================================================== */
.bgc-invoice{ margin: 6px 0 18px; }
.bgc-invoice__toggle{
  display: flex; align-items: center; gap: 10px;
  padding: 14px 16px;
  border: 1.5px solid var(--bgc-line);
  border-radius: var(--bgc-radius-sm);
  background: #fff;
  font-weight: 700; cursor: pointer;
}
.bgc-invoice__toggle input{ width: 18px; height: 18px; margin: 0; accent-color: var(--bgc-maroon); }
.bgc-invoice__toggle:has(input:checked){ border-color: var(--bgc-maroon); }
.bgc-invoice__fields{
  margin-top: -1px;
  padding: 16px 16px 4px;
  border: 1.5px solid var(--bgc-line); border-top: 0;
  border-radius: 0 0 var(--bgc-radius-sm) var(--bgc-radius-sm);
  background: var(--bgc-cream-2);
}
.bgc-invoice__fields[hidden]{ display: none !important; }
.bgc-invoice-block{ margin: 22px 0; }
.bgc-invoice-block h2{ font-size: 18px; margin: 0 0 8px; }
.bgc-invoice-table{ width: auto; border: 0; }
.bgc-invoice-table th{ text-align: left; padding: 3px 14px 3px 0; color: var(--bgc-soft); font-weight: 600; border: 0; }
.bgc-invoice-table td{ padding: 3px 0; border: 0; }

/* ==========================================================================
   26. CONTENT BLOCKS — За нас
   ========================================================================== */
.bgc-statement{
  max-width: 820px; margin: 28px auto 40px; text-align: center;
}
.bgc-statement__eyebrow,
.bgc-split__eyebrow{
  display: block; margin-bottom: 12px;
  font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
  color: var(--bgc-clay-dark);
}
.bgc-statement__text{
  margin: 0;
  font-family: var(--bgc-font-display);
  font-size: clamp(26px, 5vw, 44px); font-weight: 400; line-height: 1.18;
  letter-spacing: -.01em; color: var(--bgc-maroon);
}
.bgc-statement__sub{
  max-width: 60ch; margin: 16px auto 0;
  font-size: 17px; color: var(--bgc-soft);
}

.bgc-split{
  display: grid; grid-template-columns: 1fr; gap: 22px;
  align-items: center;
  margin: 0 0 44px;
}
.bgc-split__media{
  border-radius: var(--bgc-radius); overflow: hidden;
  background: var(--bgc-cream-2);
  aspect-ratio: 4 / 3;
}
.bgc-split__img{ width: 100% !important; height: 100% !important; object-fit: cover; display: block; }
.bgc-split__heading{
  margin: 0 0 12px;
  font-size: clamp(24px, 3.5vw, 32px); line-height: 1.15; letter-spacing: -.01em;
}
.bgc-split__text{ font-size: 16.5px; color: var(--bgc-ink); }
.bgc-split__text p{ margin: 0 0 12px; }
.bgc-split .bgc-btn{ margin-top: 8px; }

.bgc-numbers{
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px;
  margin: 0 0 44px;
}
.bgc-numbers__item{
  padding: 22px 18px;
  background: #fff; border-radius: var(--bgc-radius);
  border: 1px solid var(--bgc-line);
  text-align: center;
}
.bgc-numbers__value{
  display: block;
  font-family: var(--bgc-font-display);
  font-size: clamp(34px, 6vw, 48px); line-height: 1; color: var(--bgc-maroon);
  font-variant-numeric: tabular-nums;
}
.bgc-numbers__label{
  display: block; margin-top: 8px;
  font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  color: var(--bgc-soft);
}

.bgc-values{ margin: 0 0 44px; }
.bgc-values__heading{ margin: 0 0 18px; font-size: clamp(24px, 3.5vw, 32px); letter-spacing: -.01em; }
.bgc-values__grid{ display: grid; grid-template-columns: 1fr; gap: 14px; }
.bgc-values__card{
  position: relative;
  padding: 22px 20px 20px;
  background: #fff; border-radius: var(--bgc-radius);
  border: 1px solid var(--bgc-line);
  transition: transform .18s ease, box-shadow .18s ease;
}
.bgc-values__card:hover{ transform: translateY(-3px); box-shadow: var(--bgc-shadow); }
.bgc-values__num{
  display: inline-block; margin-bottom: 12px;
  font-family: var(--bgc-font-display); font-size: 30px; line-height: 1;
  color: var(--bgc-clay);
}
.bgc-values__card h3{ margin: 0 0 6px; font-size: 18px; }
.bgc-values__card p{ margin: 0; font-size: 15px; color: var(--bgc-soft); }

/* --- partners --- */
.bgc-partners{ margin: 0 0 44px; }
.bgc-partners__heading{
  margin: 0 0 6px; text-align: center;
  font-size: clamp(22px, 3.5vw, 30px); letter-spacing: -.01em;
}
.bgc-partners__sub{ margin: 0 0 22px; text-align: center; color: var(--bgc-soft); }

.bgc-partner{
  display: flex; align-items: center; justify-content: center;
  height: 84px; padding: 16px 26px;
  background: #fff; border-radius: var(--bgc-radius);
  border: 1px solid var(--bgc-line);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.bgc-partner__img{
  max-height: 48px !important; max-width: 150px !important;
  width: auto !important; height: auto !important;
  object-fit: contain;
  filter: grayscale(1); opacity: .7;
  transition: filter .2s ease, opacity .2s ease;
}
.bgc-partner:hover{ transform: translateY(-3px); box-shadow: var(--bgc-shadow); border-color: var(--bgc-clay-light); }
.bgc-partner:hover .bgc-partner__img{ filter: none; opacity: 1; }

.bgc-partners__grid{
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px;
}

.bgc-partners__track{
  display: flex; gap: 12px;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.bgc-partners__row{
  display: flex; gap: 12px; flex: none;
  animation: bgc-marquee 36s linear infinite;
}
.bgc-partners__row .bgc-partner{ flex: none; min-width: 170px; }
.bgc-partners__track:hover .bgc-partners__row{ animation-play-state: paused; }
@keyframes bgc-marquee{
  from{ transform: translateX(0); }
  to{ transform: translateX(calc(-100% - 12px)); }
}
@media (prefers-reduced-motion: reduce){
  .bgc-partners__row{ animation: none; }
  .bgc-partners__track{ overflow-x: auto; mask-image: none; -webkit-mask-image: none; }
}

@media (min-width: 700px){
  .bgc-split{ grid-template-columns: 1fr 1fr; gap: 44px; margin-bottom: 64px; }
  .bgc-split.is-reverse .bgc-split__media{ order: 2; }
  .bgc-numbers{ grid-template-columns: repeat(4, 1fr); }
  .bgc-values__grid{ grid-template-columns: repeat(3, 1fr); }
  .bgc-partners__grid{ grid-template-columns: repeat(4, 1fr); }
}
@media (min-width: 1000px){
  .bgc-hero{ margin-top: 22px; }
  .bgc-split{ gap: 64px; }
  .bgc-partners__grid{ grid-template-columns: repeat(5, 1fr); }
}

/* ==========================================================================
   27. BLOG  (mobile-first)
   ========================================================================== */

/* --- archive header --- */
.bgc-archive{ max-width: 1180px; margin-inline: auto; padding: 22px var(--bgc-pad) 40px; }
.bgc-archive__head{ margin: 0 0 22px; }
.bgc-archive__eyebrow{
  display: block; margin-bottom: 8px;
  font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
  color: var(--bgc-clay-dark);
}
.bgc-archive__title{
  margin: 0;
  font-size: clamp(32px, 7vw, 56px); line-height: 1.02; letter-spacing: -.02em;
  color: var(--bgc-ink);
}
.bgc-archive__count{ margin: 8px 0 0; font-size: 14px; color: var(--bgc-soft); }
.bgc-archive__desc{ max-width: 62ch; margin: 10px 0 0; font-size: 16px; color: var(--bgc-soft); }

/* --- topic chips --- */
.bgc-topics{ margin: 0 0 26px; }
.bgc-topics__heading{ margin: 0 0 10px; font-size: 13px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--bgc-soft); }
.bgc-topics__list{
  list-style: none; margin: 0; padding: 0 0 4px;
  display: flex; gap: 8px; flex-wrap: nowrap;
  overflow-x: auto; scrollbar-width: none;
  margin-inline: calc(var(--bgc-pad) * -1); padding-inline: var(--bgc-pad);
}
.bgc-topics__list::-webkit-scrollbar{ display: none; }
.bgc-topic{
  display: inline-flex; align-items: center; gap: 7px;
  height: 36px; padding: 0 14px;
  border-radius: var(--bgc-pill);
  background: #fff; border: 1.5px solid var(--bgc-line);
  color: var(--bgc-ink); font-size: 13.5px; font-weight: 700; white-space: nowrap;
  text-decoration: none;
  transition: border-color .15s ease, background .15s ease;
}
.bgc-topic b{ font-size: 11px; font-weight: 800; color: var(--bgc-soft); }
.bgc-topic:hover{ border-color: var(--bgc-maroon); color: var(--bgc-maroon); }
.bgc-topic.is-current{ background: var(--bgc-maroon); border-color: var(--bgc-maroon); color: #fff; }
.bgc-topic.is-current b{ color: rgba(255,255,255,.7); }

/* --- section wrapper (shortcode + archive) --- */
.bgc-blog{ margin: 0 0 40px; }
.bgc-blog__head{
  display: flex; align-items: baseline; justify-content: space-between; gap: 14px;
  margin: 0 0 16px;
}
.bgc-blog__heading{ margin: 0; font-size: clamp(22px, 3.5vw, 30px); letter-spacing: -.01em; }
.bgc-blog__link{ flex: none; font-size: 14px; font-weight: 700; color: var(--bgc-maroon); white-space: nowrap; }
.bgc-blog__grid{ display: grid; grid-template-columns: 1fr; gap: 18px; }

/* --- the card --- */
.bgc-post{
  display: flex; flex-direction: column;
  background: #fff; border-radius: var(--bgc-radius);
  border: 1px solid var(--bgc-line);
  overflow: hidden;
  transition: transform .18s ease, box-shadow .18s ease;
}
.bgc-post:hover{ transform: translateY(-3px); box-shadow: var(--bgc-shadow); }
.bgc-post__media{
  position: relative; display: block;
  aspect-ratio: 16 / 10;
  background: var(--tile, var(--bgc-cream-2));
  overflow: hidden;
}
.bgc-post__img{
  position: absolute; inset: 0;
  width: 100% !important; height: 100% !important;
  object-fit: cover; display: block;
  transition: transform .5s ease;
}
.bgc-post:hover .bgc-post__img{ transform: scale(1.03); }
.bgc-post__letter{
  position: absolute; inset: 0; display: grid; place-items: center;
  font-family: var(--bgc-font-display); font-size: 84px; line-height: 1;
  color: rgba(255,255,255,.35);
}
.bgc-post__body{ display: flex; flex-direction: column; gap: 8px; padding: 16px 18px 20px; }
.bgc-post__meta{
  display: flex; align-items: center; flex-wrap: wrap; gap: 8px;
  font-size: 12.5px; color: var(--bgc-soft);
}
.bgc-post__meta > *:not(:first-child)::before{ content: "·"; margin-right: 8px; opacity: .5; }
.bgc-post__cat{
  font-weight: 800; letter-spacing: .06em; text-transform: uppercase; font-size: 11px;
  color: var(--bgc-maroon);
}
.bgc-post__title{ margin: 0; font-size: 18px; line-height: 1.25; letter-spacing: -.01em; }
.bgc-post__title a{ color: var(--bgc-ink); text-decoration: none; }
.bgc-post:hover .bgc-post__title a{ color: var(--bgc-maroon); }
.bgc-post__excerpt{ margin: 0; font-size: 14.5px; line-height: 1.5; color: var(--bgc-soft); }
.bgc-post__more{ margin-top: 4px; font-size: 14px; font-weight: 700; color: var(--bgc-maroon); }

/* lead card — full width, image bigger, title bigger */
.bgc-post--lead{ margin-bottom: 18px; }
.bgc-post--lead .bgc-post__media{ aspect-ratio: 16 / 9; }
.bgc-post--lead .bgc-post__title{ font-size: clamp(22px, 5vw, 34px); line-height: 1.12; }
.bgc-post--lead .bgc-post__excerpt{ font-size: 16px; }
.bgc-post--lead .bgc-post__body{ padding: 20px 20px 24px; }

/* --- blog-only search --- */
.bgc-blogsearch{
  display: flex; align-items: center; gap: 10px;
  height: 52px; padding: 0 6px 0 16px;
  background: #fff; border: 1.5px solid var(--bgc-line); border-radius: var(--bgc-pill);
  margin: 0 0 22px;
}
.bgc-blogsearch svg{ flex: none; color: var(--bgc-soft); }
.bgc-blogsearch input[type="search"]{
  flex: 1 1 auto; min-width: 0; height: 100%;
  border: 0 !important; background: transparent !important; box-shadow: none !important;
  padding: 0; font-size: 15px;
}
.bgc-blogsearch button{ height: 40px; padding: 0 18px; font-size: 14px; }

/* --- pagination --- */
.bgc-pagination{ margin: 6px 0 0; }
.bgc-pagination .nav-links{ display: flex; align-items: center; justify-content: center; gap: 6px; flex-wrap: wrap; }
.bgc-pagination .page-numbers{
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 40px; height: 40px; padding: 0 12px;
  border-radius: var(--bgc-pill); background: #fff; border: 1.5px solid var(--bgc-line);
  color: var(--bgc-ink); font-weight: 700; font-size: 14px; text-decoration: none;
}
.bgc-pagination .page-numbers.current{ background: var(--bgc-maroon); border-color: var(--bgc-maroon); color: #fff; }
.bgc-pagination .page-numbers.dots{ border: 0; background: transparent; }
.bgc-pagination a.page-numbers:hover{ border-color: var(--bgc-maroon); color: var(--bgc-maroon); }

/* --- single post --- */
.bgc-single{ padding: 22px var(--bgc-pad) 40px; }
.bgc-article{ max-width: 1100px; margin-inline: auto; }
.bgc-article__head{ max-width: 760px; margin: 0 auto 26px; text-align: center; }
.bgc-article__crumbs{
  display: flex; justify-content: center; flex-wrap: wrap; gap: 6px;
  margin-bottom: 16px; font-size: 13px; color: var(--bgc-soft);
}
.bgc-article__crumbs a{ color: var(--bgc-soft); }
.bgc-article__crumbs a:hover{ color: var(--bgc-maroon); }
.bgc-article__crumbs span{ opacity: .5; }
.bgc-article__title{
  margin: 0;
  font-size: clamp(30px, 6.5vw, 52px); line-height: 1.06; letter-spacing: -.02em;
  color: var(--bgc-ink);
}
.bgc-article__standfirst{
  margin: 14px auto 0; max-width: 60ch;
  font-size: clamp(16px, 2.4vw, 19px); line-height: 1.5; color: var(--bgc-soft);
}
.bgc-article__meta{
  display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px;
  margin-top: 18px; font-size: 14px; color: var(--bgc-soft);
}
.bgc-article__avatar img{ width: 32px !important; height: 32px !important; border-radius: 50%; display: block; }
.bgc-article__author{ font-weight: 700; color: var(--bgc-ink); }
.bgc-article__hero{
  margin: 0 0 28px;
  border-radius: var(--bgc-radius); overflow: hidden;
  background: var(--bgc-cream-2);
}
.bgc-article__heroimg{ width: 100% !important; height: auto !important; max-height: 620px; object-fit: cover; display: block; }

.bgc-article__content{
  max-width: 720px; margin-inline: auto;
  font-size: 17px; line-height: 1.7; color: var(--bgc-ink);
}
.bgc-article__content > *{ margin-block: 0 1.25em; }
.bgc-article__content h2{ font-size: clamp(24px, 4vw, 30px); line-height: 1.2; margin-top: 1.6em; letter-spacing: -.01em; }
.bgc-article__content h3{ font-size: 21px; line-height: 1.25; margin-top: 1.4em; }
.bgc-article__content img{ border-radius: var(--bgc-radius-sm); height: auto; }
.bgc-article__content figure{ margin-inline: 0; }
.bgc-article__content figcaption{ font-size: 13px; color: var(--bgc-soft); text-align: center; margin-top: 8px; }
.bgc-article__content blockquote{
  margin: 1.6em 0; padding: 4px 0 4px 22px;
  border-left: 3px solid var(--bgc-clay);
  font-family: var(--bgc-font-display); font-size: 21px; line-height: 1.4; color: var(--bgc-maroon);
}
.bgc-article__content blockquote p{ margin: 0; }
.bgc-article__content ul, .bgc-article__content ol{ padding-left: 1.3em; }
.bgc-article__content li{ margin-bottom: .4em; }
.bgc-article__content a{ color: var(--bgc-maroon); text-decoration: underline; text-underline-offset: 3px; }
.bgc-article__content pre, .bgc-article__content code{ font-size: 14px; background: var(--bgc-cream-2); border-radius: 6px; }
.bgc-article__content pre{ padding: 14px 16px; overflow-x: auto; }
.bgc-article__content hr{ border: 0; border-top: 1px solid var(--bgc-line); margin: 2em 0; }
.bgc-article__content table{ font-size: 15px; }

.bgc-article__foot{
  max-width: 720px; margin: 30px auto 0; padding-top: 18px;
  border-top: 1px solid var(--bgc-line);
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
}
.bgc-article__footlabel{ font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--bgc-soft); }
.bgc-article__foot .bgc-topics__list{ margin: 0; padding: 0; flex-wrap: wrap; overflow: visible; }

.bgc-adjacent{
  max-width: 1100px; margin: 34px auto 0;
  display: grid; grid-template-columns: 1fr; gap: 12px;
}
.bgc-adjacent__item{
  display: flex; flex-direction: column; gap: 4px;
  padding: 16px 18px;
  background: #fff; border: 1px solid var(--bgc-line); border-radius: var(--bgc-radius);
  text-decoration: none; color: var(--bgc-ink);
  transition: border-color .15s ease;
}
.bgc-adjacent__item:hover{ border-color: var(--bgc-maroon); }
.bgc-adjacent__item span{ font-size: 12.5px; font-weight: 700; color: var(--bgc-soft); }
.bgc-adjacent__item b{ font-size: 15.5px; line-height: 1.3; }
.bgc-adjacent__item--next{ text-align: right; }

.bgc-blog--related{ max-width: 1100px; margin: 40px auto 0; }
.bgc-comments{ max-width: 720px; margin: 40px auto 0; }

@media (min-width: 640px){
  .bgc-blog__grid{ grid-template-columns: repeat(2, 1fr); }
  .bgc-adjacent{ grid-template-columns: 1fr 1fr; }
  .bgc-topics__list{ flex-wrap: wrap; overflow: visible; margin-inline: 0; padding-inline: 0; }
}
@media (min-width: 1000px){
  .bgc-archive, .bgc-single{ padding-top: 34px; }
  .bgc-blog__grid{ grid-template-columns: repeat(3, 1fr); gap: 22px; }
  .bgc-post__body{ padding: 18px 20px 22px; }

  /* lead card goes side-by-side: image left, text right */
  .bgc-post--lead{ display: grid; grid-template-columns: 1.15fr 1fr; align-items: stretch; margin-bottom: 22px; }
  .bgc-post--lead .bgc-post__media{ aspect-ratio: auto; min-height: 380px; }
  .bgc-post--lead .bgc-post__body{ justify-content: center; padding: 34px 38px; gap: 12px; }

  .bgc-article__content{ font-size: 18px; }
}

/* ==========================================================================
   28. MY ACCOUNT  (mobile-first)
   ========================================================================== */
.bgc-acct-wrap{ max-width: 1180px; margin-inline: auto; }

/* --- logged out: login + register as two cards --- */
.woocommerce-account .u-columns.col2-set#customer_login{
  display: grid; grid-template-columns: 1fr; gap: 18px;
  margin: 10px 0 40px;
}
/* Woo's clearfix pseudo-elements become grid cells and shove the cards diagonally */
.woocommerce-account .u-columns.col2-set#customer_login::before,
.woocommerce-account .u-columns.col2-set#customer_login::after{ content: none !important; display: none !important; }
.woocommerce-account .u-columns.col2-set#customer_login .u-column1,
.woocommerce-account .u-columns.col2-set#customer_login .u-column2{
  width: 100%; float: none; max-width: 100%;
  background: #fff; border: 1px solid var(--bgc-line); border-radius: var(--bgc-radius);
  padding: 26px 22px;
}
.woocommerce-account .u-columns h2{ margin: 0 0 6px; font-size: 24px; letter-spacing: -.01em; }
.bgc-auth__hint{ margin: 0 0 18px !important; font-size: 14px; color: var(--bgc-soft); }
.woocommerce-account form.login,
.woocommerce-account form.register,
.woocommerce-account form.lost_reset_password{
  border: 0 !important; padding: 0 !important; margin: 0 !important; border-radius: 0;
}
.bgc-acct-wrap form .form-row{ margin-bottom: 14px; }
.bgc-acct-wrap form label{ font-size: 13px; font-weight: 700; margin-bottom: 6px; display: block; }
.bgc-acct-wrap form .input-text,
.bgc-acct-wrap form input[type="password"]{
  width: 100%; height: 48px; border-radius: var(--bgc-radius-sm);
  border: 1.5px solid var(--bgc-line); background: #fff; padding-inline: 14px;
}
.bgc-acct-wrap form .show-password-input{ top: 14px; right: 14px; }
.bgc-acct-wrap form .woocommerce-form-login__rememberme{
  display: flex; align-items: center; gap: 8px; margin: 4px 0 12px; font-weight: 500;
}
.bgc-acct-wrap form .woocommerce-form-login__rememberme input{ margin: 0; accent-color: var(--bgc-maroon); }
.bgc-acct-wrap form button[type="submit"]{ width: 100%; height: 48px; margin-top: 4px; }
.woocommerce-account .lost_password{ margin: 12px 0 0; font-size: 13.5px; }
.woocommerce-account .lost_password a{ color: var(--bgc-maroon); }
.woocommerce-account .woocommerce-privacy-policy-text{ font-size: 12.5px; color: var(--bgc-soft); }

/* --- logged in: sidebar + content --- */
.woocommerce-account .woocommerce-MyAccount-navigation{
  float: none; width: 100%;
  margin: 0 0 18px;
}
.bgc-acct__who{
  display: grid; grid-template-columns: 48px 1fr; column-gap: 12px; align-items: center;
  padding: 16px 18px; margin-bottom: 10px;
  background: #fff; border: 1px solid var(--bgc-line); border-radius: var(--bgc-radius);
}
.bgc-acct__avatar{ grid-row: 1 / 3; }
.bgc-acct__avatar img{ width: 48px !important; height: 48px !important; border-radius: 50%; display: block; }
.bgc-acct__name{ font-weight: 800; font-size: 16px; line-height: 1.2; }
.bgc-acct__email{ font-size: 13px; color: var(--bgc-soft); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.woocommerce-MyAccount-navigation ul{
  list-style: none; margin: 0; padding: 4px 0;
  display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none;
  margin-inline: calc(var(--bgc-pad) * -1); padding-inline: var(--bgc-pad);
}
.woocommerce-MyAccount-navigation ul::-webkit-scrollbar{ display: none; }
.woocommerce-MyAccount-navigation li{ flex: none; }
.woocommerce-MyAccount-navigation a{
  display: inline-flex; align-items: center; gap: 8px;
  height: 40px; padding: 0 14px;
  border-radius: var(--bgc-pill);
  background: #fff; border: 1.5px solid var(--bgc-line);
  color: var(--bgc-ink); font-weight: 700; font-size: 14px; text-decoration: none; white-space: nowrap;
  transition: border-color .15s ease, background .15s ease;
}
.woocommerce-MyAccount-navigation a svg{ color: var(--bgc-clay-dark); }
.woocommerce-MyAccount-navigation a:hover{ border-color: var(--bgc-maroon); color: var(--bgc-maroon); }
.woocommerce-MyAccount-navigation li.is-active a{ background: var(--bgc-maroon); border-color: var(--bgc-maroon); color: #fff; }
.woocommerce-MyAccount-navigation li.is-active a svg{ color: rgba(255,255,255,.85); }
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a{ color: var(--bgc-soft); }

.woocommerce-account .woocommerce-MyAccount-content{
  float: none; width: 100%;
  background: #fff; border: 1px solid var(--bgc-line); border-radius: var(--bgc-radius);
  padding: 22px 20px 26px;
  margin-bottom: 40px;
}
.woocommerce-account .woocommerce-MyAccount-content > h2,
.woocommerce-account .woocommerce-MyAccount-content > h3,
.woocommerce-account .woocommerce-MyAccount-content legend{
  font-size: 20px; margin: 0 0 14px; letter-spacing: -.01em;
}
/* the two default dashboard sentences */
.woocommerce-account.woocommerce-dashboard .woocommerce-MyAccount-content > p{ display: none; }

/* --- dashboard --- */
.bgc-dash__stats{ display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 22px; }
.bgc-dash__stat{
  padding: 16px; border-radius: var(--bgc-radius-sm);
  background: var(--bgc-cream-2); text-align: center;
}
.bgc-dash__stat b{ display: block; font-family: var(--bgc-font-display); font-size: 28px; line-height: 1; color: var(--bgc-maroon); }
.bgc-dash__stat b .amount{ font-size: 24px; }
.bgc-dash__stat b .amount,
.bgc-dash__stat b .amount *{ display: inline !important; }
.bgc-dash__stat span{ display: block; margin-top: 6px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--bgc-soft); }
.bgc-dash__section{ margin-bottom: 22px; }
.bgc-dash__head{ display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 10px; }
.bgc-dash__head h3{ margin: 0; font-size: 17px; }
.bgc-dash__head a{ font-size: 13.5px; font-weight: 700; color: var(--bgc-maroon); }
.bgc-dash__orders{ list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.bgc-dash__order{
  display: grid; grid-template-columns: auto 1fr auto; grid-template-areas: "num status total" "date status total";
  column-gap: 12px; align-items: center;
  padding: 12px 14px; border: 1px solid var(--bgc-line); border-radius: var(--bgc-radius-sm);
  color: var(--bgc-ink); text-decoration: none;
  transition: border-color .15s ease;
}
.bgc-dash__order:hover{ border-color: var(--bgc-maroon); }
.bgc-dash__onum{ grid-area: num; font-weight: 800; }
.bgc-dash__odate{ grid-area: date; font-size: 12.5px; color: var(--bgc-soft); }
.bgc-dash__ostatus{
  grid-area: status; justify-self: start;
  font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase;
  padding: 4px 9px; border-radius: 6px; background: var(--bgc-cream-2); color: var(--bgc-soft);
}
.bgc-dash__ostatus.is-completed{ background: #E3EFE6; color: var(--bgc-ok); }
.bgc-dash__ostatus.is-processing{ background: #FBEFD9; color: var(--bgc-warn); }
.bgc-dash__ostatus.is-cancelled, .bgc-dash__ostatus.is-failed{ background: #F6E0DD; color: var(--bgc-sale); }
.bgc-dash__ototal{ grid-area: total; font-weight: 800; }
.bgc-dash__empty{ text-align: center; padding: 18px 0; }
.bgc-dash__empty p{ color: var(--bgc-soft); margin: 0 0 14px; }
.bgc-dash__links{ display: grid; grid-template-columns: 1fr; gap: 10px; }
.bgc-dash__links a{
  display: grid; grid-template-columns: 22px 1fr; column-gap: 12px; align-items: center;
  padding: 14px 16px; border: 1px solid var(--bgc-line); border-radius: var(--bgc-radius-sm);
  color: var(--bgc-ink); text-decoration: none;
}
.bgc-dash__links a svg{ grid-row: 1 / 3; color: var(--bgc-clay-dark); }
.bgc-dash__links a b{ font-size: 15px; }
.bgc-dash__links a span{ font-size: 13px; color: var(--bgc-soft); }
.bgc-dash__links a:hover{ border-color: var(--bgc-maroon); }

/* --- orders table --- */
.woocommerce-account table.woocommerce-orders-table{ border: 0; font-size: 14.5px; }
.woocommerce-account table.woocommerce-orders-table th{ background: transparent; border: 0; border-bottom: 2px solid var(--bgc-ink); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--bgc-soft); }
.woocommerce-account table.woocommerce-orders-table td{ border: 0; border-bottom: 1px solid var(--bgc-line); background: transparent; padding: 14px 10px; }
.woocommerce-account table.woocommerce-orders-table .woocommerce-orders-table__cell-order-number a{ font-weight: 800; color: var(--bgc-maroon); }
.woocommerce-account table.woocommerce-orders-table .button{ height: 36px; padding-inline: 16px; font-size: 13px; margin-right: 6px; }
.woocommerce-account .woocommerce-pagination{ margin-top: 14px; }

/* order detail */
.woocommerce-account .woocommerce-order-details,
.woocommerce-account .woocommerce-customer-details{ margin-top: 10px; }
.woocommerce-account table.order_details{ border: 0; }
.woocommerce-account table.order_details th,
.woocommerce-account table.order_details td{ border: 0; border-bottom: 1px solid var(--bgc-line); background: transparent; }
.woocommerce-account .woocommerce-column--billing-address,
.woocommerce-account .woocommerce-column--shipping-address{ padding: 16px; border: 1px solid var(--bgc-line); border-radius: var(--bgc-radius-sm); }
.woocommerce-account address{ font-style: normal; line-height: 1.6; }

/* addresses */
.woocommerce-account .woocommerce-Addresses{ display: grid; grid-template-columns: 1fr; gap: 14px; }
.woocommerce-account .woocommerce-Addresses .woocommerce-Address{ width: 100%; float: none; max-width: 100%; padding: 16px; border: 1px solid var(--bgc-line); border-radius: var(--bgc-radius-sm); }
.woocommerce-account .woocommerce-Address-title{ display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.woocommerce-account .woocommerce-Address-title h2,
.woocommerce-account .woocommerce-Address-title h3{ margin: 0 0 8px; font-size: 16px; }
.woocommerce-account .woocommerce-Address-title .edit{ float: none; font-size: 13px; font-weight: 700; color: var(--bgc-maroon); }

/* edit account — the password block stands out */
.woocommerce-account .woocommerce-EditAccountForm fieldset{
  margin: 20px 0 0; padding: 18px 16px 6px;
  border: 1.5px solid var(--bgc-line); border-radius: var(--bgc-radius-sm);
  background: var(--bgc-cream-2);
}
.woocommerce-account .woocommerce-EditAccountForm fieldset legend{ padding: 0 8px; font-size: 16px; background: transparent; }
.woocommerce-account .woocommerce-EditAccountForm .form-row-first,
.woocommerce-account .woocommerce-EditAccountForm .form-row-last{ width: 100%; float: none; }
.woocommerce-account .woocommerce-EditAccountForm button[type="submit"]{ width: auto; min-width: 180px; margin-top: 14px; }
.woocommerce-account .woocommerce-EditAccountForm span em{ font-size: 12.5px; color: var(--bgc-soft); }

@media (min-width: 700px){
  .woocommerce-account .u-columns.col2-set#customer_login{ grid-template-columns: 1fr 1fr; gap: 24px; }
  .bgc-dash__stats{ grid-template-columns: repeat(3, 1fr); }
  .bgc-dash__stats .bgc-dash__stat--points[hidden] ~ *,
  .bgc-dash__stats:has(.bgc-dash__stat--points[hidden]){ grid-template-columns: 1fr 1fr; }
  .bgc-dash__links{ grid-template-columns: 1fr 1fr; }
  .woocommerce-account .woocommerce-Addresses{ grid-template-columns: 1fr 1fr; }
  .woocommerce-account .woocommerce-EditAccountForm .form-row-first,
  .woocommerce-account .woocommerce-EditAccountForm .form-row-last{ width: 48%; float: left; }
  .woocommerce-account .woocommerce-EditAccountForm .form-row-last{ float: right; }
}
@media (min-width: 1000px){
  .bgc-acct-wrap.is-logged-in{
    display: grid; grid-template-columns: 260px minmax(0, 1fr); grid-template-rows: auto 1fr;
    column-gap: 26px; row-gap: 12px; align-items: start;
    padding-bottom: 40px;
  }
  .bgc-acct-wrap.is-logged-in > .woocommerce-notices-wrapper{ grid-column: 1 / -1; }
  .bgc-acct-wrap.is-logged-in > .bgc-acct__who{ grid-column: 1; grid-row: 1; margin: 0; }
  .bgc-acct-wrap.is-logged-in > .woocommerce-MyAccount-navigation{ grid-column: 1; grid-row: 2; margin: 0; position: sticky; top: 20px; }
  .bgc-acct-wrap.is-logged-in > .woocommerce-MyAccount-content{ grid-column: 2; grid-row: 1 / span 2; }
  .woocommerce-MyAccount-navigation ul{ flex-direction: column; gap: 4px; overflow: visible; margin-inline: 0; padding-inline: 0; }
  .woocommerce-MyAccount-navigation a{ width: 100%; height: 44px; border-radius: var(--bgc-radius-sm); border-color: transparent; background: transparent; }
  .woocommerce-MyAccount-navigation a:hover{ background: #fff; border-color: var(--bgc-line); }
  .woocommerce-account .woocommerce-MyAccount-content{ padding: 30px 32px 34px; margin-bottom: 0; }
  .woocommerce-account .woocommerce-MyAccount-content > h2,
  .woocommerce-account .woocommerce-MyAccount-content > h3{ font-size: 24px; }
}

/* ==========================================================================
   29. POLISH FROM THE STAGING WALKTHROUGH
   ========================================================================== */
/* variable product: the "Купи" button before a variation is chosen was lavender */
.woocommerce div.product form.cart .single_add_to_cart_button.disabled,
.woocommerce div.product form.cart .single_add_to_cart_button:disabled{
  background: var(--bgc-maroon) !important;
  color: #fff !important;
  opacity: .38;
  cursor: not-allowed;
}
/* 1,100 tags do not belong on a product page */
.woocommerce div.product .product_meta .tagged_as{ display: none; }
/* 404 page */
.error404 .site-main{ max-width: 720px; margin: 40px auto 60px; padding-inline: var(--bgc-pad); text-align: center; }
.error404 .site-main h1{ font-size: clamp(30px, 6vw, 48px); letter-spacing: -.02em; margin: 0 0 10px; }
.error404 .site-main p{ color: var(--bgc-soft); font-size: 17px; }

/* ==========================================================================
   30. MOBILE CART OVERFLOW  (phone test, Sept 2026)
   The coupon row put the input, the apply button and the update button on
   one line, which forced the whole table to 500px on a 440px screen.
   ========================================================================== */
@media (max-width: 767px){
  .woocommerce-cart .site-main,
  .woocommerce-checkout .site-main{ overflow-x: clip; }

  .woocommerce table.shop_table.cart{ width: 100% !important; table-layout: fixed; }
  .woocommerce table.shop_table.cart td.actions{ display: block; width: auto; padding: 14px; }
  .woocommerce table.shop_table.cart td.actions .coupon{ display: block; width: 100%; }
  .woocommerce table.shop_table.cart td.actions .coupon .input-text{
    display: block; width: 100%; min-width: 0; margin: 0 0 8px;
  }
  .woocommerce table.shop_table.cart td.actions .coupon .button,
  .woocommerce table.shop_table.cart td.actions > .button{
    display: block; width: 100%;
    white-space: normal; line-height: 1.2; height: auto; min-height: 46px; padding: 12px 16px;
  }
  .woocommerce table.shop_table.cart td.actions > .button{ margin-top: 8px; }

  /* row cards must never exceed the screen */
  .woocommerce table.shop_table_responsive.cart tr{ width: 100%; box-sizing: border-box; }
  .woocommerce table.shop_table_responsive.cart td{ max-width: 100%; box-sizing: border-box; }
  .woocommerce table.shop_table_responsive.cart td.product-name a{ word-break: break-word; }

  /* checkout review table and totals likewise */
  .woocommerce-checkout table.shop_table,
  .cart_totals table.shop_table{ width: 100% !important; table-layout: fixed; }
  .woocommerce-checkout table.shop_table td,
  .woocommerce-checkout table.shop_table th{ word-break: break-word; }
}

/* more air between the hero and whatever follows it */
.bgc-hero{ margin-bottom: 40px; }
@media (min-width: 1000px){ .bgc-hero{ margin-bottom: 52px; } }
.bgc-hero + *,
.bgc-hero + .bgc-crail,
.bgc-hero + .bgc-prail{ margin-top: 0; }

/* ==========================================================================
   31. THE CAT  (mascot placements)
   ========================================================================== */
.bgc-cat{
  --cat: 120px;
  width: var(--cat) !important; height: auto !important; max-width: 100%;
  display: block; object-fit: contain;
}

/* cat + text block, used by every empty state and hero moment */
.bgc-catnote{
  display: flex; align-items: center; gap: 16px;
  padding: 14px 18px; margin: 0 0 18px;
  background: #fff; border: 1px solid var(--bgc-line); border-radius: var(--bgc-radius);
}
.bgc-catnote .bgc-cat{ flex: none; }
.bgc-catnote__body{ display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.bgc-catnote__title{ font-size: 17px; line-height: 1.25; }
.bgc-catnote__text{ font-size: 14.5px; color: var(--bgc-soft); line-height: 1.45; }
.bgc-catnote--nocat{ padding-left: 18px; }
.bgc-catnote--hero{ padding: 18px 22px; margin: 6px 0 26px; background: var(--bgc-cream-2); border-color: transparent; }
.bgc-catnote--hero .bgc-catnote__title{ font-size: clamp(20px, 3.5vw, 26px); letter-spacing: -.01em; }
.bgc-catnote--lowstock{ padding: 8px 14px; margin: 0 0 14px; background: #FBEFD9; border-color: transparent; }
.bgc-catnote--lowstock .bgc-catnote__text{ color: var(--bgc-warn); font-weight: 700; }
.bgc-catnote--crown{ margin-bottom: 10px; background: linear-gradient(135deg, #FFF6DA, #fff); border-color: #F0D58A; }
.bgc-catnote--inline{ display: inline-flex; margin: 0; }

/* empty states: cat above the text */
.bgc-empty .bgc-cat{ margin: 0 auto 14px; }
.bgc-404 .bgc-cat{ margin: 0 auto 18px; }
.bgc-dash__empty .bgc-cat{ margin: 0 auto 8px; }

/* cat inside a WooCommerce notice (coupon accepted / rejected / checkout errors) */
.woocommerce-message .bgc-cat--notice,
.woocommerce-error .bgc-cat--notice,
.woocommerce-info .bgc-cat--notice{
  display: inline-block; vertical-align: middle; margin: -6px 10px -6px 0;
}
.woocommerce-error.has-cat{ padding-left: 18px; }
.woocommerce-error.has-cat .bgc-cat--notice{ float: left; margin: 0 12px 0 0; }

/* section heading with the scissors cat */
.bgc-prail__heading{ display: flex; align-items: center; gap: 10px; }
.bgc-cat--heading{ margin: -10px 0; }

/* --- free shipping bar --- */
.bgc-shipbar{
  display: flex; align-items: center; gap: 12px;
  padding: 10px 14px; margin: 0 0 16px;
  background: var(--bgc-cream-2); border-radius: var(--bgc-radius-sm);
}
.bgc-shipbar .bgc-cat{ flex: none; }
.bgc-shipbar__body{ flex: 1 1 auto; min-width: 0; }
.bgc-shipbar__text{ display: block; font-size: 13.5px; margin-bottom: 7px; }
.bgc-shipbar__track{ display: block; height: 8px; border-radius: var(--bgc-pill); background: rgba(46,33,29,.12); overflow: hidden; }
.bgc-shipbar__fill{ display: block; height: 100%; border-radius: var(--bgc-pill); background: var(--bgc-maroon); transition: width .5s ease; }
.bgc-shipbar.is-done{ background: #E3EFE6; }
.bgc-shipbar.is-done .bgc-shipbar__text{ color: var(--bgc-ok); }
.bgc-shipbar.is-done .bgc-shipbar__fill{ background: var(--bgc-ok); }
.bgc-minicart .bgc-shipbar{ margin: 0 0 12px; padding: 8px 12px; }
.bgc-minicart .bgc-shipbar .bgc-cat{ --cat: 56px !important; }
.cart_totals .bgc-shipbar{ margin: 0 0 18px; }

/* --- added-to-cart pop --- */
.bgc-catpop{
  position: fixed; z-index: 400;
  right: 12px; top: 64px;
  pointer-events: none;
  opacity: 0; transform: translateY(14px) scale(.6);
  transform-origin: 80% 100%;
  filter: drop-shadow(0 8px 18px rgba(46,33,29,.28));
}
.bgc-catpop.is-on{ animation: bgc-catpop 1.6s cubic-bezier(.2,.9,.3,1.2) both; }
@keyframes bgc-catpop{
  0%   { opacity: 0; transform: translateY(14px) scale(.6); }
  18%  { opacity: 1; transform: translateY(-6px) scale(1.05); }
  30%  { transform: translateY(0) scale(1); }
  80%  { opacity: 1; transform: translateY(0) scale(1); }
  100% { opacity: 0; transform: translateY(10px) scale(.8); }
}
@media (min-width: 1000px){
  .bgc-catpop{ right: calc(50% - 660px + 40px); top: 78px; }
}
@media (max-width: 1319px) and (min-width: 1000px){
  .bgc-catpop{ right: 40px; }
}
@media (prefers-reduced-motion: reduce){
  .bgc-catpop.is-on{ animation: none; opacity: 1; transform: none; transition: opacity .2s; }
}

@media (max-width: 640px){
  .bgc-catnote{ gap: 12px; padding: 12px 14px; }
  .bgc-catnote--hero{ flex-direction: column; text-align: center; }
  .bgc-catnote .bgc-cat{ --cat: 96px !important; }
  .bgc-catnote--lowstock .bgc-cat{ --cat: 52px !important; }
  .bgc-shipbar .bgc-cat{ --cat: 56px !important; }
}

/* single product: the sale flash sits on the gallery, not over the title */
.woocommerce div.product > .onsale,
.woocommerce div.product .woocommerce-product-gallery .onsale{
  left: 12px !important; right: auto !important; top: 12px !important;
  z-index: 5;
}
