:root {
  --cbi-font: "IBM Plex Sans Thai Looped", system-ui, -apple-system, "Segoe UI", sans-serif;
  --cbi-navy: #19233e;
  --cbi-text: #000;
  --cbi-muted: #666;
  --cbi-line: rgba(0, 0, 0, .08);
  --cbi-container: min(80vw, 1240px);
  --cbi-header-h: 92px;
}

* {
  box-sizing: border-box
}

html {
  scroll-behavior: smooth;
  overflow-x: hidden !important;
  overflow-y: scroll !important;
  height: auto !important
}

body.cbi-exact-body {
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: hidden !important;
  overflow-y: scroll !important;
  height: auto !important;
  min-height: 100%;
  font-family: var(--cbi-font) !important;
  background: #fff;
  color: var(--cbi-text);
  opacity: 1 !important;
  visibility: visible !important;
  line-height: 1.45
}

body.cbi-exact-body.no-scroll {
  overflow: hidden !important
}

a {
  color: inherit;
  text-decoration: none
}

.cbi-container {
  width: var(--cbi-container);
  max-width: 1240px;
  margin-inline: auto
}

.cbi-site {
  min-height: 100vh;
  overflow: visible !important
}

.cbi-sticky-shell {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(255, 255, 255, .88);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: background .28s ease, box-shadow .28s ease
}

.admin-bar .cbi-sticky-shell {
  top: 32px
}

.cbi-sticky-shell.is-scrolled {
  background: rgba(255, 255, 255, .74);
  box-shadow: 0 8px 25px rgba(0, 0, 0, .08)
}

.cbi-navone {
  height: 26px;
  background: rgba(255, 255, 255, .94);
  font-size: 12px;
  line-height: 26px
}

.cbi-topbar-inner {
  height: 26px;
  display: flex;
  justify-content: flex-end;
  align-items: center
}

.cbi-navone ul {
  display: flex;
  gap: 14px;
  list-style: none;
  margin: 0;
  padding: 0
}

.cbi-navone a {
  color: #000
}

.cbi-navone .sep {
  color: #7e4d25
}

.cbi-header {
  height: 66px;
  background: transparent;
  color: #000;
  z-index: 1001
}

.cbi-header-inner {
  height: 66px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  position: relative
}

.cbi-main-nav {
  display: flex;
  gap: 28px;
  align-items: center;
  justify-content: flex-start;
  font-size: 16px;
  white-space: nowrap
}

.nav-link-underline {
  position: relative;
  display: inline-block;
  color: #000;
  text-decoration: none;
  transition: color .25s ease
}

.nav-link-underline:after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -3px;
  width: 0;
  height: 2px;
  background: #000;
  transition: width .28s ease
}

.nav-link-underline:hover:after {
  width: 100%
}

.nav-link-underline:hover {
  color: #555
}

.cbi-logo {
  justify-self: center;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1
}

.cbi-logo img {
  width: 130px;
  height: auto;
  max-height: 32px;
  display: block;
  object-fit: contain
}

.cbi-actions {
  justify-self: end;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 18px
}

.cbi-icon-btn {
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0;
  color: #000;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  position: relative
}

.cbi-icon-btn i {
  font-size: 28px;
  line-height: 1
}

.cart-container {
  position: relative;
  display: flex;
  align-items: center
}

.cart-count {
  position: absolute;
  right: -8px;
  bottom: -8px;
  min-width: 17px;
  height: 17px;
  border-radius: 999px;
  background: var(--cbi-navy);
  color: #fff;
  font-size: 10px;
  line-height: 17px;
  text-align: center;
  font-weight: 700
}

.divider {
  width: 1px;
  height: 28px;
  background: #d8d8d8;
  display: inline-block
}

.account-link {
  display: flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  font-size: 15px
}

.account-link i {
  font-size: 24px
}

.cbi-mobile-toggle {
  display: none;
  width: 44px;
  height: 38px;
  border: 1px solid rgba(0, 0, 0, .18);
  border-radius: 8px;
  background: rgba(255, 255, 255, .65);
  align-items: center;
  justify-content: center;
  font-size: 30px;
  line-height: 1
}

.cbi-mobile-panel {
  display: none;
  background: rgba(255, 255, 255, .95);
  border-top: 1px solid var(--cbi-line);
  padding: 8px var(--side-pad, 10vw) 14px
}

.cbi-mobile-panel a {
  display: block;
  padding: 8px 0;
  font-size: 15px
}

.cart-dropdown {
  position: absolute;
  top: 50px;
  right: -16px;
  width: 350px;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, .15);
  z-index: 2000;
  opacity: 0;
  transform: translateY(-14px) scale(.98);
  transition: opacity .25s ease, transform .25s ease;
  visibility: hidden;
  color: #333
}

.cart-dropdown.active {
  opacity: 1;
  transform: translateY(0) scale(1);
  visibility: visible
}

.cart-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px 20px;
  border-bottom: 1px solid #eee;
  background: #f8f9fa;
  border-radius: 8px 8px 0 0
}

.cart-header h3 {
  margin: 0;
  font-size: 18px;
  font-weight: 700
}

.close-btn {
  background: transparent;
  border: 0;
  font-size: 24px;
  cursor: pointer;
  color: #666
}

.cart-items {
  padding: 15px 20px;
  max-height: 300px;
  overflow: auto
}

.empty-cart-text {
  text-align: center;
  color: #888;
  padding: 20px 0;
  margin: 0
}

.cart-item {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 15px;
  border-bottom: 1px dashed #eee;
  padding-bottom: 15px
}

.cart-item:last-child {
  border-bottom: 0;
  margin-bottom: 0;
  padding-bottom: 0
}

.cart-item img {
  width: 60px !important;
  height: 60px !important;
  object-fit: cover;
  border-radius: 5px
}

.item-details {
  flex: 1;
  min-width: 0
}

.item-name {
  display: block;
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis
}

.item-price {
  font-size: 14px;
  color: #555
}

.item-quantity input {
  width: 46px;
  text-align: center
}

.remove-item-btn {
  font-size: 20px;
  color: #d33;
  text-decoration: none
}

.cart-footer {
  padding: 15px 20px;
  border-top: 1px solid #eee;
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: #f8f9fa;
  border-radius: 0 0 8px 8px
}

.total-price {
  text-align: right;
  font-weight: 700
}

.checkout-btn,
.cart-link {
  display: block;
  width: 100%;
  padding: 11px 12px;
  text-align: center;
  border-radius: 6px;
  text-decoration: none
}

.checkout-btn {
  background: var(--cbi-navy);
  color: #fff
}

.cart-link {
  border: 1px solid #d9dde6;
  color: var(--cbi-navy);
  background: #fff
}

.search-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 88px;
  z-index: 3000;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-100%);
  transition: .25s ease
}

.admin-bar .search-overlay {
  top: 32px
}

.search-overlay.active {
  opacity: 1;
  visibility: visible;
  transform: translateY(0)
}

.search-panel {
  width: min(820px, calc(100% - 30px));
  height: 64px;
  display: flex;
  align-items: center;
  gap: 14px
}

.search-panel input {
  flex: 1;
  border: 0;
  outline: 0;
  font-size: 20px;
  font-family: var(--cbi-font);
  background: transparent
}

.btn-close-search {
  background: transparent;
  border: 0;
  font-size: 26px;
  cursor: pointer
}

.shop-hero-video {
  width: 100%;
  height: clamp(460px, 62vh, 640px);
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: #f7f3ec;
  position: relative
}

.shop-hero-video video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  margin: 0;
  padding: 0
}

.shop-brand-section {
  background: #fff;
  padding: clamp(86px, 9vw, 150px) 0 clamp(34px, 4vw, 48px)
}

.shop-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 24px
}

.shop-section-head h2 {
  margin: 0;
  font-size: clamp(34px, 3.1vw, 48px);
  line-height: 1.05;
  font-weight: 800;
  letter-spacing: -.035em
}

.shop-brand-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 14px;
  width: 100%
}

.shop-brand-card {
  height: 128px;
  border: 1px solid rgba(0, 0, 0, .10);
  border-radius: 16px;
  background: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #000;
  text-decoration: none;
  padding: 16px 12px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, .018);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease
}

.shop-brand-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(0, 0, 0, .06);
  border-color: rgba(0, 0, 0, .20)
}

.shop-brand-card.active {
  background: linear-gradient(180deg, #fffdf9, #faf7f0);
  border-color: #c9b08a
}

.shop-brand-logo-wrap {
  height: 58px;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 10px
}

.shop-brand-logo {
  max-width: 94px;
  max-height: 52px;
  object-fit: contain;
  display: block
}

.shop-brand-card strong {
  font-size: 15px;
  font-weight: 800;
  line-height: 1.15
}

.brand-card-subtitle {
  display: none
}

.cbi-catalog-section {
  padding: 0 0 70px;
  background: #fff;
  scroll-margin-top: calc(var(--cbi-header-h, 66px) + var(--cbi-brand-pinned-h, 100px));
}

.catalog-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px
}

.filter-toggle,
.sort-toggle {
  border: 0;
  background: transparent;
  font-family: var(--cbi-font);
  font-size: 16px;
  color: #000;
  cursor: pointer;
  padding: 0
}

.filter-toggle i {
  font-size: 18px;
  margin-right: 4px
}

.sort-dropdown {
  position: relative
}

.sort-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 10px);
  width: 170px;
  background: #fff;
  border: 1px solid var(--cbi-line);
  box-shadow: 0 10px 25px rgba(0, 0, 0, .08);
  padding: 8px;
  border-radius: 8px;
  z-index: 60;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: .2s ease
}

.sort-menu.active {
  opacity: 1;
  visibility: visible;
  transform: translateY(0)
}

.sort-item {
  display: block;
  text-align: right;
  padding: 8px 10px;
  border-radius: 6px
}

.sort-item:hover {
  background: #f6f6f6
}

.cbi-catalog-shell {
  display: grid;
  grid-template-columns: 0 minmax(0, 1fr);
  gap: 0;
  align-items: start;
  transition: grid-template-columns .32s ease, gap .32s ease;
  position: relative;
  min-height: 220px
}

.cbi-catalog-shell.filter-open {
  grid-template-columns: 200px minmax(0, 1fr);
  gap: 28px
}

.filter-menu {
  position: relative;
  top: auto;
  left: auto;
  width: 200px;
  background: #fff;
  padding: 0 10px 18px 0;
  visibility: hidden;
  opacity: 0;
  transform: translateX(-18px);
  transition: opacity .25s ease, transform .25s ease;
  z-index: 5;
  border-radius: 0;
  overflow: visible
}

.cbi-catalog-shell.filter-open .filter-menu {
  visibility: visible;
  opacity: 1;
  transform: translateX(0)
}

.filter-group {
  border-bottom: 1px solid #ddd;
  padding: 0 0 14px;
  margin-bottom: 16px
}

.filter-group h3 {
  font-size: 16px;
  margin: 0 0 8px;
  font-weight: 700
}

.filter-link {
  display: block;
  padding: 2px 0 2px 16px;
  color: #000;
  text-decoration: none;
  font-size: 15px;
  line-height: 1.55
}

.filter-link:hover,
.filter-link.active {
  text-decoration: underline
}

.filter-reset {
  display: block;
  margin-top: 10px;
  color: #777;
  font-size: 14px
}

.product-container {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 26px 12px;
  width: 100%;
  transition: all .3s ease
}

.cbi-catalog-shell.filter-open .product-container {
  gap: 22px 12px
}

.product-card {
  width: auto !important;
  margin: 0 !important;
  border: 0 !important;
  background: #fff;
  position: relative;
  transition: transform .25s ease
}

.product-card:hover {
  transform: translateY(-2px)
}

.product-image-wrapper {
  display: block;
  position: relative;
  overflow: hidden;
  background: #f5f5f5;
  box-shadow: 0 2px 6px rgba(0, 0, 0, .10);
  aspect-ratio: 1/1;
  color: inherit
}

.product-image-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: opacity .3s ease, transform .35s ease
}

.product-image-wrapper img.human-view {
  position: absolute;
  inset: 0;
  opacity: 0
}

.product-image-wrapper:hover img.human-view {
  opacity: 1
}

.product-image-wrapper:hover img.main-view {
  transform: scale(1.02)
}

.badge-new {
  position: absolute;
  top: 10px;
  left: 10px;
  background: #dc3545;
  color: #fff;
  padding: 4px 8px;
  font-size: 13px;
  border-radius: 5px;
  z-index: 3
}

.badge-price {
  position: absolute;
  right: 10px;
  bottom: 10px;
  background: #e4a30d;
  color: #fff;
  padding: 4px 8px;
  font-size: 14px;
  border-radius: 5px;
  z-index: 3
}

.badge-price .amount {
  color: #fff
}

.card-body {
  padding: 12px 0 0 !important;
  text-align: left
}

.shop-card-brand {
  display: inline-flex;
  align-items: center;
  margin-bottom: 7px;
  padding: 4px 10px;
  border-radius: 999px;
  background: #f6f1ea;
  color: #555;
  font-size: 12px;
  font-weight: 700
}

.card-title {
  display: block;
  font-size: 18px;
  line-height: 1.25;
  font-weight: 700;
  margin: 0 0 6px !important;
  color: #000;
  text-decoration: none
}

.size,
.note {
  font-size: 13px;
  color: #666;
  margin: 0 0 5px !important
}

.note {
  color: #a67c00
}

.color-select {
  display: flex;
  gap: 4px;
  margin-top: 7px
}

.color-dot {
  width: 15px;
  height: 15px;
  display: inline-block;
  border: 1px solid #ccc;
  background: #eee
}

.cbi-card-actions {
  margin-top: 10px
}

.cbi-add-cart {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: 8px 13px !important;
  border-radius: 999px !important;
  border: 1px solid var(--cbi-navy) !important;
  background: #fff !important;
  color: var(--cbi-navy) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  text-decoration: none !important
}

.cbi-add-cart:hover {
  background: var(--cbi-navy) !important;
  color: #fff !important
}

.no-products-message {
  grid-column: 1/-1;
  text-align: center;
  color: #555;
  font-size: 17px;
  padding: 38px 0
}

.cbi-footer {
  background: var(--cbi-navy);
  color: #fff;
  padding: 44px 0 24px;
  margin-top: 0
}

.footer-inner {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: center
}

.footer-brand {
  font-weight: 800;
  letter-spacing: .02em
}

.footer-text {
  margin: 6px 0 14px;
  color: rgba(255, 255, 255, .8)
}

.social-links {
  display: flex;
  gap: 14px
}

.social-links a {
  width: 36px;
  height: 36px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .10);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff
}

.footer-links {
  display: flex;
  gap: 18px;
  list-style: none;
  margin: 0;
  padding: 0
}

.footer-links a {
  color: #fff
}

.copyright {
  grid-column: 1/-1;
  text-align: center;
  border-top: 1px solid rgba(255, 255, 255, .12);
  padding-top: 18px;
  color: #fff
}

.scroll-top {
  position: fixed;
  right: 28px;
  bottom: 28px;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 999px;
  background: var(--cbi-navy);
  color: #fff;
  font-size: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 900;
  opacity: 0;
  visibility: hidden;
  transition: .25s ease;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .22)
}

.scroll-top.show {
  opacity: 1;
  visibility: visible
}

.cbi-woo-main,
.cbi-page-main {
  padding: 50px 0;
  min-height: 55vh
}

.cbi-single-product div.product {
  padding-top: 20px
}

.woocommerce div.product .product_title {
  font-family: var(--cbi-font);
  font-weight: 800
}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
  font-family: var(--cbi-font);
  border-radius: 999px;
  background: var(--cbi-navy);
  color: #fff
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
  background: #26375f;
  color: #fff
}

.woocommerce-product-grid {
  margin-top: 24px
}

@media(max-width:1280px) {
  :root {
    --cbi-container: min(86vw, 1180px)
  }

  .cbi-main-nav {
    gap: 22px
  }

  .shop-brand-card {
    height: 122px
  }

  .shop-brand-logo {
    max-width: 84px
  }

  .product-container {
    grid-template-columns: repeat(4, minmax(0, 1fr))
  }
}

@media(max-width:1024px) {
  :root {
    --cbi-container: 90vw
  }

  .cbi-main-nav {
    gap: 18px
  }

  .account-link span {
    display: none
  }

  .shop-brand-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 10px
  }

  .shop-brand-card {
    height: 110px;
    padding: 12px 8px
  }

  .shop-brand-logo-wrap {
    height: 48px
  }

  .shop-brand-logo {
    max-width: 72px;
    max-height: 44px
  }

  .shop-brand-card strong {
    font-size: 13px
  }

  .product-container {
    grid-template-columns: repeat(3, minmax(0, 1fr))
  }

  .shop-hero-video {
    height: clamp(380px, 56vh, 560px)
  }
}

@media(max-width:900px) {
  .cbi-main-nav {
    display: none
  }

  .cbi-header-inner {
    grid-template-columns: 1fr auto 1fr
  }

  .cbi-mobile-toggle {
    display: inline-flex
  }

  .cbi-mobile-panel.active {
    display: block
  }

  .cbi-actions {
    gap: 14px
  }

  .cbi-icon-btn i {
    font-size: 26px
  }

  .shop-brand-section {
    padding-top: 90px
  }

  .shop-section-head h2 {
    font-size: 36px
  }

  .shop-brand-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr))
  }

  .shop-brand-card {
    border-radius: 14px
  }

  .cbi-catalog-shell.filter-open {
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 18px
  }

  .filter-menu {
    width: 180px
  }

  .product-container {
    grid-template-columns: repeat(3, minmax(0, 1fr))
  }
}

@media(max-width:768px) {
  .admin-bar .cbi-sticky-shell {
    top: 46px
  }

  .cbi-navone {
    display: none
  }

  .cbi-header,
  .cbi-header-inner {
    height: 70px
  }

  .cbi-container {
    width: calc(100% - 32px)
  }

  .cbi-logo img {
    width: 120px
  }

  .divider {
    display: none
  }

  .cbi-actions {
    gap: 12px
  }

  .shop-hero-video {
    height: 48vh;
    min-height: 330px
  }

  .shop-brand-section {
    padding: 74px 0 34px
  }

  .shop-section-head {
    display: flex;
    align-items: center
  }

  .shop-section-head h2 {
    font-size: 32px
  }

  .shop-brand-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px
  }

  .catalog-toolbar {
    margin-bottom: 18px
  }

  .cbi-catalog-shell,
  .cbi-catalog-shell.filter-open {
    display: block
  }

  .filter-menu {
    display: none;
    position: fixed;
    left: 16px;
    right: 16px;
    top: 96px;
    width: auto;
    max-height: calc(100vh - 130px);
    overflow: auto;
    z-index: 2500;
    padding: 18px;
    background: #fff;
    border: 1px solid var(--cbi-line);
    border-radius: 12px;
    box-shadow: 0 18px 55px rgba(0, 0, 0, .18);
    transform: translateY(-10px)
  }

  .filter-menu.mobile-active {
    display: block;
    visibility: visible;
    opacity: 1;
    transform: translateY(0)
  }

  .product-container {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px 12px
  }

  .footer-inner {
    grid-template-columns: 1fr;
    text-align: center
  }

  .social-links,
  .footer-links {
    justify-content: center;
    flex-wrap: wrap
  }

  .cart-dropdown {
    right: -110px;
    width: min(340px, calc(100vw - 28px))
  }
}

@media(max-width:520px) {
  .cbi-header-inner {
    grid-template-columns: auto 1fr auto
  }

  .cbi-logo {
    justify-self: start
  }

  .cbi-logo img {
    width: 112px
  }

  .cbi-actions {
    justify-self: end
  }

  .cbi-icon-btn i {
    font-size: 24px
  }

  .account-link {
    font-size: 0
  }

  .account-link i {
    font-size: 24px
  }

  .shop-hero-video {
    height: 42vh;
    min-height: 270px
  }

  .shop-section-head h2 {
    font-size: 28px
  }

  .shop-section-head a {
    font-size: 14px
  }

  .shop-brand-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }

  .shop-brand-card {
    height: 106px
  }

  .product-container {
    grid-template-columns: 1fr
  }

  .cart-dropdown {
    right: -74px
  }

  .search-panel input {
    font-size: 17px
  }
}

/* ==========================================================
   CBI v0.4.1 exact layout refinement
   Focus: fixed/sticky nav, 85-90vh hero, cleaner brand scale,
   and safer responsive nav behavior without nested scroll.
   ========================================================== */
:root {
  --cbi-topbar-h: 0px;
  --cbi-mainbar-h: 66px;
  --cbi-header-total: calc(var(--cbi-topbar-h) + var(--cbi-mainbar-h));
}

html,
body.cbi-exact-body {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: clip !important;
  overflow-y: visible !important;
}

body.cbi-exact-body .cbi-site,
body.cbi-exact-body #page {
  width: 100% !important;
  max-width: 100% !important;
  min-height: 100vh;
  overflow: visible !important;
}

body.cbi-exact-body .cbi-sticky-shell {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  z-index: 9999 !important;
  background: rgba(255, 255, 255, .96) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  transform: translateZ(0);
  will-change: background, box-shadow, backdrop-filter;
}

.admin-bar body.cbi-exact-body .cbi-sticky-shell,
body.admin-bar.cbi-exact-body .cbi-sticky-shell {
  top: 32px !important;
}

body.cbi-exact-body .cbi-sticky-shell.is-scrolled {
  background: rgba(255, 255, 255, .76) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
  box-shadow: 0 12px 32px rgba(0, 0, 0, .08) !important;
}

body.cbi-exact-body .cbi-home-main,
body.cbi-exact-body .cbi-woo-main,
body.cbi-exact-body .cbi-page-main,
body.cbi-exact-body .cbi-single-product {
  padding-top: var(--cbi-header-total) !important;
}

body.cbi-exact-body .cbi-home-main {
  padding-top: var(--cbi-header-total) !important;
}

body.cbi-exact-body .cbi-navone {
  height: var(--cbi-topbar-h) !important;
  line-height: var(--cbi-topbar-h) !important;
  background: rgba(255, 255, 255, .98) !important;
  font-size: 12px !important;
}

body.cbi-exact-body .cbi-topbar-inner {
  height: var(--cbi-topbar-h) !important;
}

body.cbi-exact-body .cbi-header,
body.cbi-exact-body .cbi-header-inner {
  height: var(--cbi-mainbar-h) !important;
}

body.cbi-exact-body .cbi-header-inner {
  display: grid !important;
  grid-template-columns: 1fr auto 1fr !important;
  align-items: center !important;
  gap: 16px !important;
}

body.cbi-exact-body .cbi-main-nav {
  min-width: 0 !important;
  flex-wrap: nowrap !important;
  gap: 26px !important;
  overflow: visible !important;
}

body.cbi-exact-body .cbi-main-nav a {
  white-space: nowrap !important;
}

body.cbi-exact-body .cbi-logo img {
  width: 128px !important;
  max-width: 128px !important;
  max-height: 34px !important;
  object-fit: contain !important;
}

body.cbi-exact-body .cbi-actions {
  min-width: 0 !important;
  flex-wrap: nowrap !important;
  justify-self: end !important;
}

body.cbi-exact-body .cbi-icon-btn i {
  font-size: 27px !important;
}

body.cbi-exact-body .cbi-mobile-toggle {
  display: none !important;
}

/* Hero video: keep original shop video feeling, no artificial gap, taller like old site */
body.cbi-exact-body .shop-hero-video {
  width: 100% !important;
  height: clamp(560px, calc(90vh - var(--cbi-header-total)), 820px) !important;
  min-height: clamp(560px, calc(90vh - var(--cbi-header-total)), 820px) !important;
  max-height: 820px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #f7f3ec !important;
}

body.cbi-exact-body .shop-hero-video video,
body.cbi-exact-body .shop-hero-video .shop-hero-fallback {
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block !important;
}

/* Brand section scale refinement */
body.cbi-exact-body .shop-brand-section {
  padding: clamp(72px, 7vw, 118px) 0 clamp(24px, 3.5vw, 44px) !important;
}

body.cbi-exact-body .shop-section-head {
  margin-bottom: 20px !important;
  align-items: flex-end !important;
}

body.cbi-exact-body .shop-section-head h2 {
  font-size: clamp(28px, 2.55vw, 40px) !important;
  line-height: 1.08 !important;
  letter-spacing: -.035em !important;
  font-weight: 800 !important;
}

body.cbi-exact-body .shop-section-head a {
  font-size: 15px !important;
  white-space: nowrap !important;
}

body.cbi-exact-body .shop-brand-grid {
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  gap: 14px !important;
}

body.cbi-exact-body .shop-brand-card {
  min-width: 0 !important;
  height: 124px !important;
  min-height: 124px !important;
  border-radius: 18px !important;
  padding: 14px 10px 16px !important;
}

body.cbi-exact-body .shop-brand-logo-wrap {
  height: 56px !important;
  margin-bottom: 8px !important;
}

body.cbi-exact-body .shop-brand-logo {
  max-width: 94px !important;
  max-height: 48px !important;
}

body.cbi-exact-body .shop-brand-card strong {
  font-size: 14px !important;
  line-height: 1.2 !important;
}

/* Prevent filter/catalog from creating horizontal or nested scroll */
body.cbi-exact-body .cbi-catalog-section,
body.cbi-exact-body .cbi-catalog-shell,
body.cbi-exact-body .product-container {
  max-width: 100% !important;
  overflow: visible !important;
}

body.cbi-exact-body .filter-menu {
  max-width: 100% !important;
}

/* Medium widths: switch to clean dropdown before menu wraps vertically */
@media(max-width:1120px) {
  :root {
    --cbi-topbar-h: 0px;
    --cbi-mainbar-h: 66px;
    --cbi-header-total: calc(var(--cbi-topbar-h) + var(--cbi-mainbar-h));
  }

  body.cbi-exact-body .cbi-container {
    width: calc(100% - 48px) !important;
    max-width: 100% !important;
  }

  body.cbi-exact-body .cbi-header-inner {
    grid-template-columns: auto 1fr auto !important;
    gap: 16px !important;
  }

  body.cbi-exact-body .cbi-main-nav {
    display: none !important;
  }

  body.cbi-exact-body .cbi-logo {
    justify-self: start !important;
    order: 0 !important;
  }

  body.cbi-exact-body .cbi-actions {
    justify-self: end !important;
    gap: 16px !important;
  }

  body.cbi-exact-body .account-link span {
    display: inline !important;
  }

  body.cbi-exact-body .cbi-mobile-toggle {
    display: inline-flex !important;
    width: 42px !important;
    height: 38px !important;
    flex: 0 0 auto !important;
  }

  body.cbi-exact-body .cbi-mobile-panel {
    position: fixed !important;
    top: var(--cbi-header-total) !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 9998 !important;
    display: none !important;
    background: rgba(255, 255, 255, .96) !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
    border-top: 1px solid rgba(0, 0, 0, .07) !important;
    box-shadow: 0 16px 36px rgba(0, 0, 0, .10) !important;
    padding: 16px 24px 18px !important;
  }

  body.cbi-exact-body .cbi-mobile-panel.active {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px 18px !important;
  }

  body.cbi-exact-body .cbi-mobile-panel a {
    display: block !important;
    padding: 10px 12px !important;
    border-radius: 10px !important;
    text-align: center !important;
    font-size: 15px !important;
    line-height: 1.2 !important;
  }

  body.cbi-exact-body .cbi-mobile-panel a:hover {
    background: rgba(0, 0, 0, .045) !important;
  }

  body.cbi-exact-body .shop-hero-video {
    height: clamp(520px, calc(88vh - var(--cbi-header-total)), 760px) !important;
    min-height: clamp(520px, calc(88vh - var(--cbi-header-total)), 760px) !important;
  }

  body.cbi-exact-body .shop-brand-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  body.cbi-exact-body .shop-brand-card {
    height: 112px !important;
    min-height: 112px !important;
  }

  body.cbi-exact-body .shop-brand-logo-wrap {
    height: 48px !important;
  }

  body.cbi-exact-body .shop-brand-logo {
    max-width: 76px !important;
    max-height: 42px !important;
  }

  body.cbi-exact-body .shop-brand-card strong {
    font-size: 13px !important;
  }
}

@media(max-width:768px) {
  :root {
    --cbi-topbar-h: 0px;
    --cbi-mainbar-h: 70px;
    --cbi-header-total: 70px;
  }

  body.admin-bar.cbi-exact-body .cbi-sticky-shell {
    top: 46px !important;
  }

  body.cbi-exact-body .cbi-navone {
    display: none !important;
  }

  body.cbi-exact-body .cbi-container {
    width: calc(100% - 28px) !important;
  }

  body.cbi-exact-body .cbi-header,
  body.cbi-exact-body .cbi-header-inner {
    height: var(--cbi-mainbar-h) !important;
  }

  body.cbi-exact-body .cbi-logo img {
    width: 118px !important;
    max-width: 118px !important;
    max-height: 32px !important;
  }

  body.cbi-exact-body .account-link span {
    display: none !important;
  }

  body.cbi-exact-body .divider {
    display: none !important;
  }

  body.cbi-exact-body .cbi-actions {
    gap: 12px !important;
  }

  body.cbi-exact-body .cbi-icon-btn i,
  body.cbi-exact-body .account-link i {
    font-size: 25px !important;
  }

  body.cbi-exact-body .cbi-mobile-panel {
    top: var(--cbi-header-total) !important;
    padding: 14px 16px 16px !important;
  }

  body.cbi-exact-body .cbi-mobile-panel.active {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.cbi-exact-body .shop-hero-video {
    height: clamp(430px, calc(82vh - var(--cbi-header-total)), 650px) !important;
    min-height: clamp(430px, calc(82vh - var(--cbi-header-total)), 650px) !important;
    max-height: 650px !important;
  }

  body.cbi-exact-body .shop-section-head {
    display: flex !important;
    align-items: flex-end !important;
    gap: 14px !important;
  }

  body.cbi-exact-body .shop-section-head h2 {
    font-size: clamp(26px, 6vw, 34px) !important;
  }

  body.cbi-exact-body .shop-section-head a {
    font-size: 14px !important;
  }

  body.cbi-exact-body .shop-brand-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }
}

@media(max-width:560px) {
  body.cbi-exact-body .cbi-container {
    width: calc(100% - 22px) !important;
  }

  body.cbi-exact-body .cbi-header-inner {
    gap: 10px !important;
  }

  body.cbi-exact-body .cbi-logo img {
    width: 108px !important;
    max-width: 108px !important;
  }

  body.cbi-exact-body .cbi-actions {
    gap: 10px !important;
  }

  body.cbi-exact-body .cbi-icon-btn i,
  body.cbi-exact-body .account-link i {
    font-size: 23px !important;
  }

  body.cbi-exact-body .cbi-mobile-toggle {
    width: 38px !important;
    height: 36px !important;
    font-size: 26px !important;
  }

  body.cbi-exact-body .shop-hero-video {
    height: clamp(360px, calc(78vh - var(--cbi-header-total)), 560px) !important;
    min-height: clamp(360px, calc(78vh - var(--cbi-header-total)), 560px) !important;
  }

  body.cbi-exact-body .shop-brand-section {
    padding-top: 58px !important;
  }

  body.cbi-exact-body .shop-section-head {
    display: block !important;
  }

  body.cbi-exact-body .shop-section-head a {
    display: inline-block !important;
    margin-top: 8px !important;
  }

  body.cbi-exact-body .shop-brand-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* =========================================================
   CBI v0.4.2: topbar separation + reliable hamburger dropdown
   - top small menu scrolls away and does not stick
   - main nav follows scroll with blur
   - product menu moves into hamburger at medium/small widths
   ========================================================= */
:root {
  --cbi-topbar-h: 0px;
  --cbi-mainbar-h: 66px;
  --cbi-header-total: var(--cbi-mainbar-h);
}

body.cbi-exact-body .cbi-navone {
  position: relative !important;
  z-index: 900 !important;
  height: var(--cbi-topbar-h) !important;
  background: #fff !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
}

body.cbi-exact-body .cbi-sticky-shell {
  position: sticky !important;
  top: 0 !important;
  z-index: 10000 !important;
  width: 100% !important;
  background: rgba(255, 255, 255, .92) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  box-shadow: none !important;
  transition: background .28s ease, box-shadow .28s ease, backdrop-filter .28s ease !important;
}

body.admin-bar.cbi-exact-body .cbi-sticky-shell {
  top: 32px !important;
}

body.cbi-exact-body .cbi-sticky-shell.is-scrolled {
  background: rgba(255, 255, 255, .70) !important;
  backdrop-filter: blur(18px) !important;
  -webkit-backdrop-filter: blur(18px) !important;
  box-shadow: 0 8px 26px rgba(0, 0, 0, .08) !important;
}

body.cbi-exact-body .cbi-header,
body.cbi-exact-body .cbi-header-inner {
  height: var(--cbi-mainbar-h) !important;
}

body.cbi-exact-body .cbi-header-inner {
  grid-template-columns: 1fr auto 1fr !important;
}

body.cbi-exact-body .cbi-mobile-toggle {
  display: none !important;
  cursor: pointer !important;
}

body.cbi-exact-body .cbi-mobile-panel {
  display: none !important;
  position: fixed !important;
  top: var(--cbi-mainbar-h) !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 9999 !important;
  width: 100% !important;
  background: rgba(255, 255, 255, .96) !important;
  backdrop-filter: blur(18px) !important;
  -webkit-backdrop-filter: blur(18px) !important;
  border-top: 1px solid rgba(0, 0, 0, .08) !important;
  box-shadow: 0 18px 40px rgba(0, 0, 0, .10) !important;
  padding: 0 !important;
  transform: translateY(-8px) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transition: opacity .22s ease, transform .22s ease, visibility .22s ease !important;
}

body.admin-bar.cbi-exact-body .cbi-mobile-panel {
  top: calc(32px + var(--cbi-mainbar-h)) !important;
}

body.cbi-exact-body .cbi-mobile-panel.active {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateY(0) !important;
}

body.cbi-exact-body .cbi-mobile-panel-inner {
  width: min(980px, calc(100% - 48px)) !important;
  margin: 0 auto !important;
  padding: 18px 0 20px !important;
  display: grid !important;
  grid-template-columns: 1.2fr 1fr !important;
  gap: 20px !important;
}

body.cbi-exact-body .cbi-mobile-menu-group {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px !important;
}

body.cbi-exact-body .cbi-mobile-panel a {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 42px !important;
  padding: 10px 12px !important;
  border-radius: 12px !important;
  color: #000 !important;
  font-size: 15px !important;
  line-height: 1.2 !important;
  text-align: center !important;
  background: rgba(255, 255, 255, .45) !important;
  text-decoration: none !important;
}

body.cbi-exact-body .cbi-mobile-panel a:hover {
  background: rgba(0, 0, 0, .055) !important;
}

body.cbi-exact-body .shop-hero-video {
  margin-top: 0 !important;
}

@media(min-width:1121px) {
  body.cbi-exact-body .cbi-main-nav {
    display: flex !important;
  }

  body.cbi-exact-body .cbi-mobile-toggle {
    display: none !important;
  }

  body.cbi-exact-body .cbi-mobile-panel {
    display: none !important;
  }
}

@media(max-width:1120px) {
  :root {
    --cbi-mainbar-h: 66px;
    --cbi-header-total: var(--cbi-mainbar-h);
  }

  body.cbi-exact-body .cbi-container {
    width: calc(100% - 48px) !important;
    max-width: 100% !important;
  }

  body.cbi-exact-body .cbi-header-inner {
    grid-template-columns: auto 1fr auto !important;
    gap: 16px !important;
  }

  body.cbi-exact-body .cbi-main-nav {
    display: none !important;
  }

  body.cbi-exact-body .cbi-logo {
    justify-self: start !important;
  }

  body.cbi-exact-body .cbi-actions {
    justify-self: end !important;
    gap: 16px !important;
  }

  body.cbi-exact-body .account-link span {
    display: inline !important;
  }

  body.cbi-exact-body .cbi-mobile-toggle {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 42px !important;
    height: 38px !important;
    flex: 0 0 auto !important;
  }

  body.cbi-exact-body .shop-hero-video {
    height: clamp(540px, 88vh, 780px) !important;
    min-height: clamp(540px, 88vh, 780px) !important;
  }
}

@media(max-width:768px) {
  :root {
    --cbi-mainbar-h: 70px;
  }

  body.admin-bar.cbi-exact-body .cbi-sticky-shell {
    top: 46px !important;
  }

  body.admin-bar.cbi-exact-body .cbi-mobile-panel {
    top: calc(46px + var(--cbi-mainbar-h)) !important;
  }

  body.cbi-exact-body .cbi-navone {
    display: none !important;
  }

  body.cbi-exact-body .cbi-container {
    width: calc(100% - 28px) !important;
  }

  body.cbi-exact-body .cbi-header,
  body.cbi-exact-body .cbi-header-inner {
    height: var(--cbi-mainbar-h) !important;
  }

  body.cbi-exact-body .cbi-logo img {
    width: 118px !important;
    max-width: 118px !important;
  }

  body.cbi-exact-body .account-link span {
    display: none !important;
  }

  body.cbi-exact-body .divider {
    display: none !important;
  }

  body.cbi-exact-body .cbi-actions {
    gap: 12px !important;
  }

  body.cbi-exact-body .cbi-mobile-panel {
    top: var(--cbi-mainbar-h) !important;
  }

  body.cbi-exact-body .cbi-mobile-panel-inner {
    width: calc(100% - 32px) !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    padding: 14px 0 16px !important;
  }

  body.cbi-exact-body .cbi-mobile-menu-group {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.cbi-exact-body .shop-hero-video {
    height: clamp(460px, 84vh, 660px) !important;
    min-height: clamp(460px, 84vh, 660px) !important;
  }
}

@media(max-width:560px) {
  :root {
    --cbi-mainbar-h: 68px;
  }

  body.cbi-exact-body .cbi-container {
    width: calc(100% - 22px) !important;
  }

  body.cbi-exact-body .cbi-logo img {
    width: 108px !important;
    max-width: 108px !important;
  }

  body.cbi-exact-body .cbi-actions {
    gap: 10px !important;
  }

  body.cbi-exact-body .cbi-icon-btn i,
  body.cbi-exact-body .account-link i {
    font-size: 23px !important;
  }

  body.cbi-exact-body .cbi-mobile-toggle {
    width: 38px !important;
    height: 36px !important;
    font-size: 26px !important;
  }

  body.cbi-exact-body .cbi-mobile-menu-group {
    grid-template-columns: 1fr !important;
  }

  body.cbi-exact-body .shop-hero-video {
    height: clamp(400px, 78vh, 570px) !important;
    min-height: clamp(400px, 78vh, 570px) !important;
  }
}


/* =========================================================
   CBI v0.4.3: correct topbar/mainbar behavior
   - top mini menu is normal document flow and scrolls away
   - ONLY .cbi-sticky-shell/main nav is fixed and follows scroll
   - at page top main nav sits below topbar; after scroll it moves to top
   - fixes hamburger panel opening position and menu wrapping
   ========================================================= */
:root {
  --cbi-topbar-h: 0px;
  --cbi-mainbar-h: 66px;
  --cbi-header-total: var(--cbi-mainbar-h);
}

html,
body.cbi-exact-body {
  overflow-x: hidden !important;
  overflow-y: auto !important;
  height: auto !important;
}

body.cbi-exact-body .cbi-site,
body.cbi-exact-body #page {
  overflow: visible !important;
  min-height: 100vh !important;
}

/* top mini nav must NOT be sticky/fixed */
body.cbi-exact-body .cbi-navone {
  position: relative !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  z-index: 50 !important;
  height: var(--cbi-topbar-h) !important;
  line-height: var(--cbi-topbar-h) !important;
  background: #fff !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
}

body.cbi-exact-body .cbi-topbar-inner {
  height: var(--cbi-topbar-h) !important;
}

/* only the lower/main nav follows the page */
body.cbi-exact-body .cbi-sticky-shell {
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  top: var(--cbi-topbar-h) !important;
  width: 100% !important;
  z-index: 10000 !important;
  background: rgba(255, 255, 255, .96) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  box-shadow: none !important;
  transform: translateZ(0) !important;
  transition: top .18s ease, background .28s ease, box-shadow .28s ease, backdrop-filter .28s ease !important;
}

body.cbi-exact-body.cbi-topbar-passed .cbi-sticky-shell {
  top: 0 !important;
}

body.admin-bar.cbi-exact-body .cbi-sticky-shell {
  top: calc(32px + var(--cbi-topbar-h)) !important;
}

body.admin-bar.cbi-exact-body.cbi-topbar-passed .cbi-sticky-shell {
  top: 32px !important;
}

body.cbi-exact-body .cbi-sticky-shell.is-scrolled {
  background: rgba(255, 255, 255, .72) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  box-shadow: 0 10px 28px rgba(0, 0, 0, .08) !important;
}

/* content offset: topbar remains in flow, fixed mainbar needs its own space */
body.cbi-exact-body .cbi-home-main,
body.cbi-exact-body .cbi-woo-main,
body.cbi-exact-body .cbi-page-main,
body.cbi-exact-body .cbi-single-product {
  padding-top: var(--cbi-mainbar-h) !important;
}

body.cbi-exact-body .cbi-header,
body.cbi-exact-body .cbi-header-inner {
  height: var(--cbi-mainbar-h) !important;
}

body.cbi-exact-body .cbi-header-inner {
  display: grid !important;
  grid-template-columns: 1fr auto 1fr !important;
  align-items: center !important;
  gap: 16px !important;
}

/* desktop: main product menu visible; hamburger hidden */
@media(min-width:1121px) {
  body.cbi-exact-body .cbi-main-nav {
    display: flex !important;
    flex-wrap: nowrap !important;
  }

  body.cbi-exact-body .cbi-mobile-toggle {
    display: none !important;
  }

  body.cbi-exact-body .cbi-mobile-panel {
    display: none !important;
  }
}

/* mobile panel follows only lower nav, not topbar after scroll */
body.cbi-exact-body .cbi-mobile-panel {
  position: fixed !important;
  top: calc(var(--cbi-topbar-h) + var(--cbi-mainbar-h)) !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 9999 !important;
  width: 100% !important;
  background: rgba(255, 255, 255, .96) !important;
  backdrop-filter: blur(18px) !important;
  -webkit-backdrop-filter: blur(18px) !important;
  border-top: 1px solid rgba(0, 0, 0, .08) !important;
  box-shadow: 0 18px 40px rgba(0, 0, 0, .10) !important;
  padding: 0 !important;
  transform: translateY(-8px) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transition: opacity .22s ease, transform .22s ease, visibility .22s ease, top .18s ease !important;
}

body.cbi-exact-body.cbi-topbar-passed .cbi-mobile-panel {
  top: var(--cbi-mainbar-h) !important;
}

body.admin-bar.cbi-exact-body .cbi-mobile-panel {
  top: calc(32px + var(--cbi-topbar-h) + var(--cbi-mainbar-h)) !important;
}

body.admin-bar.cbi-exact-body.cbi-topbar-passed .cbi-mobile-panel {
  top: calc(32px + var(--cbi-mainbar-h)) !important;
}

body.cbi-exact-body .cbi-mobile-panel.active {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateY(0) !important;
}

body.cbi-exact-body .cbi-mobile-panel-inner {
  width: min(980px, calc(100% - 48px)) !important;
  margin: 0 auto !important;
  padding: 18px 0 20px !important;
  display: grid !important;
  grid-template-columns: 1.1fr 1fr !important;
  gap: 20px !important;
}

body.cbi-exact-body .cbi-mobile-menu-group {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px !important;
}

body.cbi-exact-body .cbi-mobile-panel a {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 42px !important;
  padding: 10px 12px !important;
  border-radius: 12px !important;
  color: #000 !important;
  font-size: 15px !important;
  line-height: 1.2 !important;
  text-align: center !important;
  background: rgba(255, 255, 255, .45) !important;
  text-decoration: none !important;
}

@media(max-width:1120px) {
  :root {
    --cbi-mainbar-h: 66px;
    --cbi-header-total: var(--cbi-mainbar-h);
  }

  body.cbi-exact-body .cbi-header-inner {
    grid-template-columns: auto 1fr auto !important;
    gap: 16px !important;
  }

  body.cbi-exact-body .cbi-main-nav {
    display: none !important;
  }

  body.cbi-exact-body .cbi-logo {
    justify-self: start !important;
  }

  body.cbi-exact-body .cbi-actions {
    justify-self: end !important;
    gap: 16px !important;
  }

  body.cbi-exact-body .cbi-mobile-toggle {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 42px !important;
    height: 38px !important;
    flex: 0 0 auto !important;
    cursor: pointer !important;
  }
}

@media(max-width:768px) {
  :root {
    --cbi-topbar-h: 0px;
    --cbi-mainbar-h: 70px;
    --cbi-header-total: var(--cbi-mainbar-h);
  }

  body.cbi-exact-body .cbi-navone {
    display: none !important;
  }

  body.cbi-exact-body .cbi-sticky-shell {
    top: 0 !important;
  }

  body.admin-bar.cbi-exact-body .cbi-sticky-shell {
    top: 46px !important;
  }

  body.cbi-exact-body .cbi-mobile-panel {
    top: var(--cbi-mainbar-h) !important;
  }

  body.admin-bar.cbi-exact-body .cbi-mobile-panel {
    top: calc(46px + var(--cbi-mainbar-h)) !important;
  }

  body.cbi-exact-body .cbi-mobile-panel-inner {
    width: calc(100% - 32px) !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    padding: 14px 0 16px !important;
  }

  body.cbi-exact-body .cbi-mobile-menu-group {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.cbi-exact-body .account-link span {
    display: none !important;
  }

  body.cbi-exact-body .divider {
    display: none !important;
  }
}

@media(max-width:560px) {
  body.cbi-exact-body .cbi-mobile-menu-group {
    grid-template-columns: 1fr !important;
  }
}


/* =========================================================
   CBI v0.4.4: sticky gap fix
   Fixes the empty video strip above the main nav after scrolling.
   Top mini nav scrolls away; only main nav follows the page.
   ========================================================= */
:root {
  --cbi-topbar-h: 0px;
  --cbi-mainbar-h: 66px;
}

body.cbi-exact-body .cbi-navone {
  position: relative !important;
  top: auto !important;
  height: var(--cbi-topbar-h) !important;
  line-height: var(--cbi-topbar-h) !important;
  z-index: 20 !important;
}

body.cbi-exact-body .cbi-sticky-shell {
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  top: var(--cbi-topbar-h) !important;
  width: 100% !important;
  height: var(--cbi-mainbar-h) !important;
  z-index: 10000 !important;
  margin: 0 !important;
}

/* Important: when scrolled, the main nav must attach to top edge, not leave a topbar-sized hole. */
body.cbi-exact-body.cbi-topbar-passed .cbi-sticky-shell,
body.cbi-exact-body .cbi-sticky-shell.is-scrolled {
  top: 0 !important;
}

body.admin-bar.cbi-exact-body .cbi-sticky-shell {
  top: calc(32px + var(--cbi-topbar-h)) !important;
}

body.admin-bar.cbi-exact-body.cbi-topbar-passed .cbi-sticky-shell,
body.admin-bar.cbi-exact-body .cbi-sticky-shell.is-scrolled {
  top: 32px !important;
}

body.cbi-exact-body .cbi-header,
body.cbi-exact-body .cbi-header-inner {
  height: var(--cbi-mainbar-h) !important;
}

/* The topbar is still in document flow, so the fixed mainbar only needs this spacer. */
body.cbi-exact-body .cbi-home-main,
body.cbi-exact-body .cbi-woo-main,
body.cbi-exact-body .cbi-page-main,
body.cbi-exact-body .cbi-single-product {
  padding-top: var(--cbi-mainbar-h) !important;
}

body.cbi-exact-body .shop-hero-video {
  margin-top: 0 !important;
}

/* Mobile/dropdown panel follows the actual main nav position. */
body.cbi-exact-body .cbi-mobile-panel {
  top: calc(var(--cbi-topbar-h) + var(--cbi-mainbar-h)) !important;
}

body.cbi-exact-body.cbi-topbar-passed .cbi-mobile-panel,
body.cbi-exact-body .cbi-sticky-shell.is-scrolled+.cbi-mobile-panel {
  top: var(--cbi-mainbar-h) !important;
}

body.admin-bar.cbi-exact-body .cbi-mobile-panel {
  top: calc(32px + var(--cbi-topbar-h) + var(--cbi-mainbar-h)) !important;
}

body.admin-bar.cbi-exact-body.cbi-topbar-passed .cbi-mobile-panel {
  top: calc(32px + var(--cbi-mainbar-h)) !important;
}

/* keep dropdown compact and aligned; do not reserve a blank strip above it */
body.cbi-exact-body .cbi-mobile-panel.active {
  margin-top: 0 !important;
}

@media(max-width:768px) {
  :root {
    --cbi-topbar-h: 0px;
    --cbi-mainbar-h: 70px;
  }

  body.cbi-exact-body .cbi-navone {
    display: none !important;
  }

  body.cbi-exact-body .cbi-sticky-shell {
    top: 0 !important;
  }

  body.admin-bar.cbi-exact-body .cbi-sticky-shell {
    top: 46px !important;
  }

  body.cbi-exact-body .cbi-home-main,
  body.cbi-exact-body .cbi-woo-main,
  body.cbi-exact-body .cbi-page-main,
  body.cbi-exact-body .cbi-single-product {
    padding-top: var(--cbi-mainbar-h) !important;
  }

  body.cbi-exact-body .cbi-mobile-panel {
    top: var(--cbi-mainbar-h) !important;
  }

  body.admin-bar.cbi-exact-body .cbi-mobile-panel {
    top: calc(46px + var(--cbi-mainbar-h)) !important;
  }
}

/* =========================================================
   CBI v0.4.6: dropdown gap fix for 769px - 1120px
   Keep the upper topbar in normal document flow, but pin the
   hamburger dropdown directly under the main sticky nav.
   ========================================================= */
body.cbi-exact-body .cbi-sticky-shell,
body.cbi-exact-body .cbi-header {
  overflow: visible !important;
}

body.cbi-exact-body .cbi-header {
  position: relative !important;
}

body.cbi-exact-body .cbi-mobile-panel {
  position: absolute !important;
  top: 100% !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  margin-top: 0 !important;
  transform: translateY(0) !important;
}

body.cbi-exact-body .cbi-mobile-panel.active {
  top: 100% !important;
  margin-top: 0 !important;
  transform: translateY(0) !important;
}

body.admin-bar.cbi-exact-body .cbi-mobile-panel,
body.admin-bar.cbi-exact-body.cbi-topbar-passed .cbi-mobile-panel,
body.cbi-exact-body.cbi-topbar-passed .cbi-mobile-panel,
body.cbi-exact-body .cbi-sticky-shell.is-scrolled+.cbi-mobile-panel {
  top: 100% !important;
}

@media (min-width:769px) and (max-width:1120px) {
  body.cbi-exact-body .cbi-mobile-panel {
    border-top: 0 !important;
    box-shadow: 0 22px 42px rgba(0, 0, 0, .10) !important;
  }

  body.cbi-exact-body .cbi-mobile-panel-inner {
    padding-top: 14px !important;
  }
}


/* =========================================================
   CBI v0.4.7: restore Hello Pony brand card while keeping
   v0.4.6 dropdown gap fix.
   ========================================================= */
@media (min-width:1121px) {
  body.cbi-exact-body .shop-brand-grid {
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }

  body.cbi-exact-body .shop-brand-card {
    min-height: 118px !important;
    height: 118px !important;
    padding: 12px 8px 14px !important;
  }

  body.cbi-exact-body .shop-brand-logo-wrap {
    height: 52px !important;
    margin-bottom: 7px !important;
  }

  body.cbi-exact-body .shop-brand-logo {
    max-width: 82px !important;
    max-height: 46px !important;
  }

  body.cbi-exact-body .shop-brand-card strong {
    font-size: 13px !important;
  }
}

@media (min-width:769px) and (max-width:1120px) {
  body.cbi-exact-body .shop-brand-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

@media (max-width:768px) {
  body.cbi-exact-body .shop-brand-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}


/* CBI v0.4.8: Hello Pony remains in brand section only; removed from hamburger navigation. */


/* v0.4.9 Search fix */
.search-overlay {
  height: auto !important;
  min-height: 104px !important;
  padding: 18px 0 20px !important;
  align-items: flex-start !important;
  background: rgba(255, 255, 255, .96) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .08);
}

.search-panel-wrap {
  width: min(920px, calc(100% - 32px));
  margin: 0 auto;
}

.search-panel {
  width: 100% !important;
  height: 64px !important;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, .12);
  border-radius: 999px;
  padding: 0 14px 0 22px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
}

.search-panel-icon {
  font-size: 24px;
  color: #111;
  flex: 0 0 auto;
}

.search-panel input {
  min-width: 0;
  height: 100%;
  font-size: 18px !important;
}

.btn-submit-search {
  border: 0;
  background: var(--cbi-navy);
  color: #fff;
  border-radius: 999px;
  height: 42px;
  padding: 0 22px;
  font-family: var(--cbi-font);
  font-weight: 700;
  cursor: pointer;
}

.btn-close-search {
  width: 40px;
  height: 40px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.cbi-search-results {
  display: none;
  margin-top: 10px;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, .10);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 14px 35px rgba(0, 0, 0, .08);
}

.cbi-search-results.active {
  display: block;
}

.cbi-search-result-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  border-bottom: 1px solid rgba(0, 0, 0, .06);
  color: #000;
  text-decoration: none;
}

.cbi-search-result-item:last-child {
  border-bottom: 0;
}

.cbi-search-result-item:hover {
  background: #f7f7f7;
}

.cbi-search-result-item img {
  width: 54px;
  height: 54px;
  object-fit: cover;
  border-radius: 10px;
  background: #f3f3f3;
  flex: 0 0 auto;
}

.cbi-search-result-text {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.cbi-search-result-text strong {
  font-size: 15px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cbi-search-result-text small {
  color: #666;
  font-size: 13px;
}

.cbi-search-empty {
  padding: 16px 18px;
  color: #666;
  text-align: center;
}

.cbi-search-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 16px;
  margin: 0 0 18px;
  border: 1px solid rgba(0, 0, 0, .08);
  border-radius: 12px;
  background: #fafafa;
  font-size: 15px;
}

.cbi-search-summary a {
  color: var(--cbi-navy);
  font-weight: 700;
  text-decoration: underline;
}

@media (max-width:768px) {
  .search-overlay {
    padding: 14px 0 16px !important;
  }

  .search-panel-wrap {
    width: calc(100% - 20px);
  }

  .search-panel {
    height: 58px !important;
    padding: 0 10px 0 16px;
    gap: 9px;
  }

  .search-panel input {
    font-size: 15px !important;
  }

  .btn-submit-search {
    height: 38px;
    padding: 0 14px;
    font-size: 14px;
  }

  .btn-close-search {
    width: 36px;
    height: 36px;
    font-size: 22px;
  }
}


/* ==========================================================
   CBI v0.5.0 Search overlay layer fix
   - Search panel must be above sticky nav, video, dropdowns and WP wrappers
   - Prevent nav from stealing pointer events while search is open
   ========================================================== */
body.cbi-exact-body.no-scroll {
  overflow: hidden !important;
}

body.cbi-exact-body .search-overlay {
  position: fixed !important;
  inset: 0 !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100vw !important;
  height: 100dvh !important;
  min-height: 100dvh !important;
  padding: clamp(18px, 3vh, 32px) 0 0 !important;
  display: flex !important;
  align-items: flex-start !important;
  justify-content: center !important;
  background: rgba(255, 255, 255, .72) !important;
  backdrop-filter: blur(18px) !important;
  -webkit-backdrop-filter: blur(18px) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: none !important;
  z-index: 2147483000 !important;
  transition: opacity .22s ease, visibility .22s ease !important;
}

body.admin-bar.cbi-exact-body .search-overlay {
  top: 32px !important;
  height: calc(100dvh - 32px) !important;
  min-height: calc(100dvh - 32px) !important;
}

body.cbi-exact-body .search-overlay.active {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: none !important;
}

body.cbi-exact-body.no-scroll .cbi-sticky-shell,
body.cbi-exact-body.no-scroll .cart-dropdown,
body.cbi-exact-body.no-scroll .cbi-mobile-panel {
  pointer-events: none !important;
}

body.cbi-exact-body .search-panel-wrap {
  position: relative !important;
  z-index: 2147483001 !important;
  width: min(920px, calc(100vw - 32px)) !important;
  margin: 0 auto !important;
  pointer-events: auto !important;
}

body.cbi-exact-body .search-panel {
  width: 100% !important;
  height: 64px !important;
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  background: #fff !important;
  border: 1px solid rgba(0, 0, 0, .12) !important;
  border-radius: 999px !important;
  padding: 0 14px 0 22px !important;
  box-shadow: 0 18px 45px rgba(0, 0, 0, .14) !important;
}

body.cbi-exact-body .search-panel input {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  height: 100% !important;
  border: 0 !important;
  outline: 0 !important;
  background: transparent !important;
  font-size: 18px !important;
  font-family: var(--cbi-font) !important;
}

body.cbi-exact-body .search-panel input[type="search"]::-webkit-search-cancel-button,
body.cbi-exact-body .search-panel input[type="search"]::-webkit-search-decoration {
  display: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}

body.cbi-exact-body .search-panel input[type="search"]::-ms-clear {
  display: none !important;
  width: 0;
  height: 0;
}

body.cbi-exact-body .cbi-search-clear {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 1px solid #e1e5ec;
  border-radius: 50%;
  background: #f3f5f8;
  color: #69758b;
  font-size: 13px;
  line-height: 1;
  cursor: pointer;
  transition: color .18s ease, background .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

body.cbi-exact-body .cbi-search-clear[hidden] {
  display: none !important;
}

body.cbi-exact-body .cbi-search-clear:hover,
body.cbi-exact-body .cbi-search-clear:focus-visible {
  border-color: #c8d1e1;
  background: #e9edf4;
  color: #172554;
  box-shadow: 0 4px 12px rgba(23, 37, 84, .12);
  outline: none;
  transform: scale(1.04);
}

body.cbi-exact-body .cbi-search-clear:active {
  transform: scale(.96);
}

body.cbi-exact-body .cbi-search-results {
  position: relative !important;
  z-index: 2147483002 !important;
  max-height: calc(100dvh - 120px) !important;
  overflow: auto !important;
}

/* CBI 5.9.8: three-column smart search with two product columns */
body.cbi-exact-body .cbi-search-results {
  margin-top: 12px !important;
  padding: 0 !important;
  max-height: min(590px, calc(100dvh - 112px)) !important;
  background: #f7f8fb !important;
  border: 1px solid rgba(24, 37, 72, .10) !important;
  border-radius: 20px !important;
  box-shadow: 0 22px 55px rgba(21, 31, 58, .14) !important;
  scrollbar-width: thin;
  scrollbar-color: #c8ceda transparent;
}

body.cbi-exact-body .cbi-search-results::-webkit-scrollbar {
  width: 6px;
}

body.cbi-exact-body .cbi-search-results::-webkit-scrollbar-thumb {
  background: #c8ceda;
  border-radius: 999px;
}

body.cbi-exact-body .cbi-search-live-layout {
  display: grid;
  grid-template-columns: minmax(250px, 1fr) minmax(0, 2fr);
  align-items: stretch;
  gap: 10px;
  padding: 10px;
}

body.cbi-exact-body .cbi-search-products {
  min-width: 0;
}

body.cbi-exact-body .cbi-search-results-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 42px;
  padding: 5px 6px 10px;
  color: #17213c;
}

body.cbi-exact-body .cbi-search-results-head strong {
  font-size: 13px;
  font-weight: 800;
}

body.cbi-exact-body .cbi-search-results-head span {
  color: #8790a2;
  font-size: 11px;
  font-weight: 600;
}

body.cbi-exact-body .cbi-search-results-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  padding: 0;
}

body.cbi-exact-body .cbi-search-smart {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 13px;
  border: 1px solid #dfe5f1;
  border-radius: 16px;
  background: linear-gradient(155deg, #ffffff 0%, #f2f5fb 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9);
}

body.cbi-exact-body .cbi-search-smart-head {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-height: 50px;
  padding: 1px 3px 10px;
}

body.cbi-exact-body .cbi-search-smart-head > strong {
  display: block;
  color: #172554;
  font-size: 13px;
  font-weight: 850;
  line-height: 1.35;
}

body.cbi-exact-body .cbi-search-smart-head small {
  display: block;
  max-width: 100%;
  overflow: hidden;
  color: #8993a6;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.cbi-exact-body .cbi-search-smart-list {
  display: grid;
  gap: 7px;
}

body.cbi-exact-body .cbi-search-smart-item {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) 12px;
  align-items: center;
  gap: 9px;
  min-width: 0;
  min-height: 51px;
  padding: 7px 8px;
  border: 1px solid rgba(213, 220, 233, .9);
  border-radius: 12px;
  background: rgba(255, 255, 255, .82);
  color: #18213a;
  text-decoration: none;
  transition: background .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

body.cbi-exact-body .cbi-search-smart-item:hover,
body.cbi-exact-body .cbi-search-smart-item:focus-visible {
  border-color: #bfcbe1;
  background: #fff;
  box-shadow: 0 8px 20px rgba(30, 48, 88, .09);
  outline: none;
  transform: translateY(-1px);
}

body.cbi-exact-body .cbi-search-smart-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 11px;
  background: #edf2ff;
  color: #355aab;
  font-size: 15px;
}

body.cbi-exact-body .cbi-search-smart-item.is-brand .cbi-search-smart-icon {
  background: #eef1f8;
  color: #263b6b;
}

body.cbi-exact-body .cbi-search-smart-item.is-category .cbi-search-smart-icon,
body.cbi-exact-body .cbi-search-smart-item.is-tag .cbi-search-smart-icon {
  background: #edf7f5;
  color: #247964;
}

body.cbi-exact-body .cbi-search-smart-item.is-orders .cbi-search-smart-icon,
body.cbi-exact-body .cbi-search-smart-item.is-account .cbi-search-smart-icon,
body.cbi-exact-body .cbi-search-smart-item.is-cart .cbi-search-smart-icon {
  background: #f5efff;
  color: #7352a8;
}

body.cbi-exact-body .cbi-search-smart-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
  gap: 2px;
}

body.cbi-exact-body .cbi-search-smart-text strong,
body.cbi-exact-body .cbi-search-smart-text small {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.cbi-exact-body .cbi-search-smart-text strong {
  color: #18213a;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.3;
}

body.cbi-exact-body .cbi-search-smart-text small {
  color: #8993a5;
  font-size: 9px;
  font-weight: 650;
  line-height: 1.3;
}

body.cbi-exact-body .cbi-search-smart-chevron {
  color: #a0a9ba;
  font-size: 19px;
  font-weight: 300;
  line-height: 1;
  transition: color .18s ease, transform .18s ease;
}

body.cbi-exact-body .cbi-search-smart-item:hover .cbi-search-smart-chevron,
body.cbi-exact-body .cbi-search-smart-item:focus-visible .cbi-search-smart-chevron {
  color: #172554;
  transform: translateX(2px);
}

body.cbi-exact-body .cbi-search-smart.is-empty p {
  margin: auto 3px;
  color: #8993a6;
  font-size: 11px;
  line-height: 1.55;
}

body.cbi-exact-body .cbi-search-result-item {
  display: grid !important;
  grid-template-columns: 76px minmax(0, 1fr) 18px;
  align-items: center !important;
  gap: 12px !important;
  min-width: 0;
  min-height: 98px;
  padding: 10px !important;
  border: 1px solid #e6e9ef !important;
  border-radius: 15px;
  background: #fff;
  color: #17213c !important;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease;
}

body.cbi-exact-body .cbi-search-result-item:hover,
body.cbi-exact-body .cbi-search-result-item:focus-visible {
  border-color: #c8d1e1 !important;
  background: #fff !important;
  box-shadow: 0 10px 24px rgba(25, 38, 72, .09);
  transform: translateY(-1px);
  outline: none;
}

body.cbi-exact-body .cbi-search-result-media {
  position: relative;
  display: block;
  width: 76px;
  height: 76px;
  overflow: hidden;
  border-radius: 12px;
  background: #f4f5f7;
}

body.cbi-exact-body .cbi-search-result-media img {
  width: 100% !important;
  height: 100% !important;
  border-radius: 0 !important;
  object-fit: cover !important;
  transition: transform .22s ease;
}

body.cbi-exact-body .cbi-search-result-item:hover .cbi-search-result-media img {
  transform: scale(1.035);
}

body.cbi-exact-body .cbi-search-result-text {
  display: flex !important;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px !important;
  min-width: 0;
  line-height: 1.35;
}

body.cbi-exact-body .cbi-search-result-brand {
  max-width: 100%;
  overflow: hidden;
  color: #778197;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .075em;
  line-height: 1.2;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

body.cbi-exact-body .cbi-search-result-name {
  display: block;
  max-width: 100%;
  overflow: hidden;
  color: #11182b;
  font-size: 14px !important;
  font-weight: 800;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.cbi-exact-body .cbi-search-result-price {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 2px;
  font-size: 12px;
}

body.cbi-exact-body .cbi-search-result-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  min-width: 0;
  margin-top: 2px;
}

body.cbi-exact-body .cbi-search-result-price strong {
  color: #1b294b;
  font-size: 13px !important;
  font-weight: 800;
  white-space: nowrap;
}

body.cbi-exact-body .cbi-search-result-price del {
  color: #a0a7b5;
  font-size: 10px;
  font-weight: 600;
  white-space: nowrap;
}

body.cbi-exact-body .cbi-search-media-status {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 5px 3px;
  border-radius: 0 0 12px 12px;
  color: #fff;
  font-size: 10px;
  font-weight: 750;
  line-height: 1.1;
  text-align: center;
  white-space: nowrap;
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
}

body.cbi-exact-body .cbi-search-media-status.is-backorder {
  background: rgba(32, 70, 123, .84);
}

body.cbi-exact-body .cbi-search-media-status.is-out {
  background: rgba(39, 45, 57, .78);
}

body.cbi-exact-body .cbi-search-result-item.is-out-of-stock {
  border-color: #e7e9ee !important;
  background: #fafbfc;
}

body.cbi-exact-body .cbi-search-result-item.is-out-of-stock .cbi-search-result-media img {
  filter: grayscale(.32);
  opacity: .76;
}

body.cbi-exact-body .cbi-search-result-item.is-out-of-stock .cbi-search-result-brand,
body.cbi-exact-body .cbi-search-result-item.is-out-of-stock .cbi-search-result-name,
body.cbi-exact-body .cbi-search-result-item.is-out-of-stock .cbi-search-result-price strong {
  color: #7f8796;
}

body.cbi-exact-body .cbi-search-result-item.is-out-of-stock:hover,
body.cbi-exact-body .cbi-search-result-item.is-out-of-stock:focus-visible {
  border-color: #d8dce4 !important;
  background: #fff !important;
}

body.cbi-exact-body .cbi-search-result-chevron {
  color: #a2aaba;
  font-size: 24px;
  font-weight: 300;
  line-height: 1;
  transition: color .18s ease, transform .18s ease;
}

body.cbi-exact-body .cbi-search-result-item:hover .cbi-search-result-chevron {
  color: #172554;
  transform: translateX(2px);
}

body.cbi-exact-body .cbi-search-view-all {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 47px;
  padding: 10px 16px;
  border-top: 1px solid #e5e8ee;
  background: #fff;
  color: #172554;
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}

body.cbi-exact-body .cbi-search-view-all:hover {
  background: #f4f6fb;
}

body.cbi-exact-body .cbi-search-view-all i {
  font-size: 16px;
  font-style: normal;
  transition: transform .18s ease;
}

body.cbi-exact-body .cbi-search-view-all:hover i {
  transform: translateX(3px);
}

body.cbi-exact-body .cbi-search-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 82px;
  color: #717b8e;
  font-size: 12px;
  font-weight: 700;
}

body.cbi-exact-body .cbi-search-loading span {
  width: 16px;
  height: 16px;
  border: 2px solid #d9dee8;
  border-top-color: #172554;
  border-radius: 50%;
  animation: cbi-search-spin .75s linear infinite;
}

@keyframes cbi-search-spin {
  to { transform: rotate(360deg); }
}

body.cbi-exact-body .cbi-search-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-height: 150px;
  padding: 25px 18px !important;
  color: #717b8e !important;
  font-size: 12px;
  font-weight: 600;
  text-align: center;
}

body.cbi-exact-body .cbi-search-empty i {
  margin-bottom: 4px;
  color: #9aa5b8;
  font-size: 25px;
}

body.cbi-exact-body .cbi-search-empty strong {
  color: #2a344b;
  font-size: 13px;
  font-weight: 800;
}

body.cbi-exact-body .cbi-search-empty span {
  color: #8993a5;
  font-size: 10.5px;
}

body.cbi-exact-body .cbi-search-products-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 205px;
  padding: 20px;
  border: 1px dashed #d9deea;
  border-radius: 15px;
  background: rgba(255, 255, 255, .64);
  color: #858fa2;
  font-size: 11px;
  font-weight: 650;
  line-height: 1.55;
  text-align: center;
}

body.cbi-exact-body .cbi-search-products-empty i {
  color: #a1aaba;
  font-size: 24px;
}

@media (max-width:900px) and (min-width:769px) {
  body.cbi-exact-body .cbi-search-live-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  body.cbi-exact-body .cbi-search-smart-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width:768px) {
  body.cbi-exact-body .search-overlay {
    padding: 14px 0 0 !important;
  }

  body.cbi-exact-body .search-panel-wrap {
    width: calc(100vw - 20px) !important;
  }

  body.cbi-exact-body .search-panel {
    height: 58px !important;
    padding: 0 10px 0 16px !important;
    gap: 9px !important;
  }

  body.cbi-exact-body .search-panel input {
    font-size: 15px !important;
  }

  body.cbi-exact-body .cbi-search-results {
    margin-top: 9px !important;
    max-height: calc(100dvh - 82px) !important;
    border-radius: 16px !important;
  }

  body.cbi-exact-body .cbi-search-results-head {
    min-height: 34px;
    padding: 2px 3px 7px;
  }

  body.cbi-exact-body .cbi-search-results-head span {
    font-size: 10px;
  }

  body.cbi-exact-body .cbi-search-live-layout {
    display: block;
    padding: 6px;
  }

  body.cbi-exact-body .cbi-search-smart {
    margin-bottom: 6px;
    padding: 7px;
    border-radius: 13px;
  }

  body.cbi-exact-body .cbi-search-smart-head {
    min-height: 32px;
    padding: 0 2px 6px;
  }

  body.cbi-exact-body .cbi-search-smart-head small {
    display: none;
  }

  body.cbi-exact-body .cbi-search-smart-list {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    padding: 0 0 1px;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  body.cbi-exact-body .cbi-search-smart-list::-webkit-scrollbar {
    display: none;
  }

  body.cbi-exact-body .cbi-search-smart-item {
    grid-template-columns: 32px minmax(0, 1fr) 10px;
    flex: 0 0 min(158px, 42vw);
    min-height: 45px;
    gap: 7px;
    padding: 6px;
    border-radius: 11px;
    scroll-snap-align: start;
  }

  body.cbi-exact-body .cbi-search-smart-icon {
    width: 32px;
    height: 32px;
    border-radius: 9px;
    font-size: 13px;
  }

  body.cbi-exact-body .cbi-search-smart-text strong {
    font-size: 11px;
  }

  body.cbi-exact-body .cbi-search-smart-text small {
    font-size: 8px;
  }

  body.cbi-exact-body .cbi-search-smart-chevron {
    font-size: 16px;
  }

  body.cbi-exact-body .cbi-search-results-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    padding: 0 0 7px;
  }

  body.cbi-exact-body .cbi-search-result-item {
    grid-template-columns: 56px minmax(0, 1fr);
    min-height: 72px;
    gap: 7px !important;
    padding: 7px !important;
    border-radius: 12px;
  }

  body.cbi-exact-body .cbi-search-result-media {
    width: 56px;
    height: 56px;
    border-radius: 9px;
  }

  body.cbi-exact-body .cbi-search-media-status {
    min-height: 20px;
    padding: 3px 1px;
    border-radius: 0 0 9px 9px;
    font-size: 8px;
  }

  body.cbi-exact-body .cbi-search-result-text {
    gap: 2px !important;
  }

  body.cbi-exact-body .cbi-search-result-brand {
    font-size: 8px;
    letter-spacing: .055em;
  }

  body.cbi-exact-body .cbi-search-result-name {
    font-size: 12px !important;
  }

  body.cbi-exact-body .cbi-search-result-price strong {
    font-size: 11px !important;
  }

  body.cbi-exact-body .cbi-search-result-price del {
    font-size: 8.5px;
  }

  body.cbi-exact-body .cbi-search-result-chevron {
    display: none;
  }

  body.cbi-exact-body .cbi-search-clear {
    flex-basis: 31px;
    width: 31px;
    height: 31px;
    font-size: 12px;
  }

  body.cbi-exact-body .cbi-search-result-meta {
    gap: 3px;
    margin-top: 1px;
  }

  body.cbi-exact-body .cbi-search-result-price {
    gap: 3px;
    margin-top: 0;
  }
}


/* CBI v0.5.5 dynamic category filter: use WooCommerce hierarchy, keep original filter UX. */
body.cbi-exact-body .cbi-catalog-shell.filter-open {
  grid-template-columns: minmax(210px, 230px) minmax(0, 1fr) !important;
  gap: clamp(18px, 2.2vw, 32px) !important;
}

body.cbi-exact-body .filter-menu {
  width: 230px !important;
  min-width: 0 !important;
  padding: 2px 12px 18px 0 !important;
}

body.cbi-exact-body .filter-group {
  border-bottom: 1px solid rgba(0, 0, 0, .14) !important;
  padding: 0 0 16px !important;
  margin: 0 0 16px !important;
}

body.cbi-exact-body .filter-group.has-active {
  border-bottom-color: rgba(25, 35, 62, .28) !important;
}

body.cbi-exact-body .filter-parent-link {
  display: block !important;
  margin: 0 0 8px !important;
  color: #000 !important;
  font-size: 16px !important;
  line-height: 1.45 !important;
  font-weight: 800 !important;
  text-decoration: none !important;
  word-break: break-word !important;
}

body.cbi-exact-body .filter-parent-link:hover,
body.cbi-exact-body .filter-parent-link.active {
  color: var(--cbi-navy) !important;
  text-decoration: underline !important;
  text-underline-offset: 4px !important;
  text-decoration-thickness: 1.5px !important;
}

body.cbi-exact-body .filter-children {
  display: flex !important;
  flex-direction: column !important;
  gap: 1px !important;
}

body.cbi-exact-body .filter-link {
  display: block !important;
  width: 100% !important;
  padding: 3px 0 3px 16px !important;
  color: #000 !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
  text-decoration: none !important;
  word-break: break-word !important;
}

body.cbi-exact-body .filter-link-depth-2 {
  padding-left: 28px !important;
  font-size: 14px !important;
}

body.cbi-exact-body .filter-link-depth-3 {
  padding-left: 40px !important;
  font-size: 13px !important;
}

body.cbi-exact-body .filter-link:hover,
body.cbi-exact-body .filter-link.active {
  color: var(--cbi-navy) !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

body.cbi-exact-body .filter-reset {
  display: inline-block !important;
  margin-top: 2px !important;
  color: #777 !important;
  font-size: 14px !important;
  text-decoration: none !important;
}

body.cbi-exact-body .filter-reset:hover {
  color: var(--cbi-navy) !important;
  text-decoration: underline !important;
}

body.cbi-exact-body .filter-empty {
  padding: 10px 0 16px !important;
  color: #777 !important;
  font-size: 14px !important;
}

@media (max-width:1024px) {
  body.cbi-exact-body .cbi-catalog-shell.filter-open {
    grid-template-columns: 200px minmax(0, 1fr) !important;
    gap: 18px !important;
  }

  body.cbi-exact-body .filter-menu {
    width: 200px !important;
  }

  body.cbi-exact-body .filter-parent-link {
    font-size: 15px !important;
  }

  body.cbi-exact-body .filter-link {
    font-size: 14px !important;
  }
}

@media (max-width:768px) {

  body.cbi-exact-body .cbi-catalog-shell,
  body.cbi-exact-body .cbi-catalog-shell.filter-open {
    display: block !important;
  }

  body.cbi-exact-body .filter-menu {
    display: none !important;
    position: fixed !important;
    left: 14px !important;
    right: 14px !important;
    top: calc(var(--cbi-mainbar-h, 70px) + 12px) !important;
    width: auto !important;
    max-width: none !important;
    max-height: calc(100dvh - var(--cbi-mainbar-h, 70px) - 28px) !important;
    overflow: auto !important;
    -webkit-overflow-scrolling: touch !important;
    z-index: 2147482500 !important;
    padding: 18px 18px 20px !important;
    background: #fff !important;
    border: 1px solid rgba(0, 0, 0, .10) !important;
    border-radius: 16px !important;
    box-shadow: 0 22px 60px rgba(0, 0, 0, .20) !important;
    visibility: hidden !important;
    opacity: 0 !important;
    transform: translateY(-8px) !important;
  }

  body.admin-bar.cbi-exact-body .filter-menu {
    top: calc(46px + var(--cbi-mainbar-h, 70px) + 12px) !important;
    max-height: calc(100dvh - 46px - var(--cbi-mainbar-h, 70px) - 28px) !important;
  }

  body.cbi-exact-body .filter-menu.mobile-active {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: translateY(0) !important;
  }

  body.cbi-exact-body .filter-group {
    padding-bottom: 14px !important;
    margin-bottom: 14px !important;
  }

  body.cbi-exact-body .filter-parent-link {
    font-size: 16px !important;
    padding: 2px 0 !important;
  }

  body.cbi-exact-body .filter-link {
    font-size: 15px !important;
    padding-top: 5px !important;
    padding-bottom: 5px !important;
  }
}

@media (max-width:420px) {
  body.cbi-exact-body .catalog-toolbar {
    align-items: flex-start !important;
    gap: 12px !important;
  }

  body.cbi-exact-body .sort-dropdown {
    max-width: 58% !important;
  }

  body.cbi-exact-body .sort-toggle,
  body.cbi-exact-body .filter-toggle {
    font-size: 14px !important;
    line-height: 1.35 !important;
  }

  body.cbi-exact-body .sort-menu {
    width: min(180px, calc(100vw - 32px)) !important;
  }
}


/* CBI v0.5.5 AJAX catalog update: keep the original filter layout, only dim products while loading. */
body.cbi-exact-body .product-container.is-loading {
  opacity: .48;
  pointer-events: none;
}

body.cbi-exact-body .sort-item.active {
  font-weight: 700;
  background: #f6f6f6;
}


/* CBI v0.5.6 product card/grid polish: improve product display only, keep dynamic filter UI unchanged. */
body.cbi-exact-body .product-container {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 32px 18px !important;
  align-items: start !important;
}

body.cbi-exact-body .cbi-catalog-shell.filter-open .product-container {
  gap: 30px 16px !important;
}

body.cbi-exact-body .product-card,
body.cbi-exact-body .cbi-product-card {
  display: flex !important;
  flex-direction: column !important;
  min-width: 0 !important;
  height: 100% !important;
  background: #fff !important;
  border-radius: 8px !important;
  transform: none !important;
}

body.cbi-exact-body .product-card:hover,
body.cbi-exact-body .cbi-product-card:hover {
  transform: translateY(-2px) !important;
}

body.cbi-exact-body .product-image-wrapper {
  width: 100% !important;
  aspect-ratio: 1/1 !important;
  background: #f7f7f7 !important;
  border: 1px solid rgba(0, 0, 0, .045) !important;
  border-radius: 4px !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .065) !important;
  overflow: hidden !important;
}

body.cbi-exact-body .product-image-wrapper img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
  background: #f7f7f7 !important;
  transform: none !important;
}

body.cbi-exact-body .product-image-wrapper:hover img.main-view {
  transform: scale(1.015) !important;
}

body.cbi-exact-body .badge-new {
  top: 8px !important;
  left: 8px !important;
  padding: 3px 7px !important;
  border-radius: 4px !important;
  font-size: 10px !important;
  line-height: 1.15 !important;
  font-weight: 800 !important;
  letter-spacing: .02em !important;
}

body.cbi-exact-body .badge-price {
  right: 8px !important;
  bottom: 8px !important;
  padding: 4px 8px !important;
  border-radius: 5px !important;
  font-size: 11px !important;
  line-height: 1.15 !important;
  font-weight: 800 !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .12) !important;
}

body.cbi-exact-body .badge-price del,
body.cbi-exact-body .badge-price .woocommerce-Price-currencySymbol {
  color: inherit !important;
}

body.cbi-exact-body .card-body {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  min-width: 0 !important;
  padding: 10px 0 0 !important;
}

body.cbi-exact-body .shop-card-brand {
  margin: 0 0 6px !important;
  padding: 3px 8px !important;
  max-width: 100% !important;
  border-radius: 999px !important;
  font-size: 10px !important;
  line-height: 1.25 !important;
  font-weight: 700 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

body.cbi-exact-body .card-title {
  display: -webkit-box !important;
  width: 100% !important;
  min-height: 18px !important;
  margin: 0 0 5px !important;
  color: #000 !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  letter-spacing: .01em !important;
  text-decoration: none !important;
  overflow: hidden !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
}

body.cbi-exact-body .card-title:hover {
  color: var(--cbi-navy) !important;
  text-decoration: none !important;
}

body.cbi-exact-body .note,
body.cbi-exact-body .size {
  width: 100% !important;
  margin: 0 0 4px !important;
  color: #666 !important;
  font-size: 11px !important;
  line-height: 1.35 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

body.cbi-exact-body .note {
  color: #9a7a2f !important;
}

body.cbi-exact-body .color-select {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 5px !important;
  min-height: 14px !important;
  margin: 5px 0 0 !important;
}

body.cbi-exact-body .color-dot {
  width: 13px !important;
  height: 13px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(0, 0, 0, .22) !important;
  background: #fff !important;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .35) !important;
}

body.cbi-exact-body .cbi-card-actions {
  margin-top: 9px !important;
}

body.cbi-exact-body .cbi-add-cart,
body.cbi-exact-body .added_to_cart {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 28px !important;
  padding: 6px 12px !important;
  border: 1px solid var(--cbi-navy) !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: var(--cbi-navy) !important;
  font-family: var(--cbi-font) !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

body.cbi-exact-body .cbi-add-cart:hover,
body.cbi-exact-body .added_to_cart:hover {
  background: var(--cbi-navy) !important;
  color: #fff !important;
  text-decoration: none !important;
}

body.cbi-exact-body .added_to_cart {
  margin-left: 6px !important;
}

@media(max-width:1180px) {
  body.cbi-exact-body .product-container {
    gap: 28px 16px !important;
  }
}

@media(max-width:1024px) {
  body.cbi-exact-body .product-container {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media(max-width:768px) {
  body.cbi-exact-body .product-container {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 26px 14px !important;
  }

  body.cbi-exact-body .card-title {
    font-size: 13px !important;
  }
}

@media(max-width:380px) {
  body.cbi-exact-body .product-container {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
}

/* CBI v0.5.7 product display: premium WooCommerce card like reference, filter/AJAX unchanged. */
body.cbi-exact-body .product-container {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 42px 18px !important;
  align-items: start !important;
  margin-bottom: 24px !important; /* Reduced to avoid looking empty when not hovering */
}

body.cbi-exact-body .cbi-catalog-shell.filter-open .product-container {
  gap: 40px 16px !important;
}

body.cbi-exact-body .product-card.cbi-product-card-v5 {
  display: flex !important;
  flex-direction: column !important;
  position: relative !important;
  min-width: 0 !important;
  height: auto !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
  transform: none !important;
}

body.cbi-exact-body .product-card.cbi-product-card-v5::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: #fff !important;
  z-index: -1 !important;
  pointer-events: none !important;
}

body.cbi-exact-body .product-card.cbi-product-card-v5:hover {
  transform: none !important;
}

body.cbi-exact-body .cbi-product-card-v5 .product-image-wrapper,
body.cbi-exact-body .cbi-product-card-v5 .cbi-product-media {
  display: block !important;
  width: 100% !important;
  aspect-ratio: 1/1.05 !important;
  background: #f1f1f1 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: hidden !important;
  color: inherit !important;
}

body.cbi-exact-body .cbi-product-card-v5 .product-image-wrapper img,
body.cbi-exact-body .cbi-product-card-v5 .cbi-product-media img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
  background: #f1f1f1 !important;
  transform: none !important;
  transition: opacity .32s ease, transform .32s ease !important;
}

body.cbi-exact-body .cbi-product-card-v5 .product-image-wrapper img.human-view {
  position: absolute !important;
  inset: 0 !important;
  opacity: 0 !important;
}

body.cbi-exact-body .cbi-product-card-v5:hover .product-image-wrapper img.human-view {
  opacity: 1 !important;
}

body.cbi-exact-body .cbi-product-card-v5:hover .product-image-wrapper img.main-view {
  transform: scale(1.015) !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-product-summary,
body.cbi-exact-body .cbi-product-card-v5 .card-body {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  padding: 16px 10px 0 !important;
  text-align: center !important;
  min-width: 0 !important;
  min-height: auto !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-product-colors,
body.cbi-exact-body .cbi-product-card-v5 .color-select {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-wrap: wrap !important;
  gap: 7px !important;
  min-height: 24px !important;
  margin: 0 0 10px !important;
}

body.cbi-exact-body .cbi-product-card-v5 .color-dot {
  width: 18px !important;
  height: 18px !important;
  border-radius: 999px !important;
  border: 1.5px solid rgba(0, 0, 0, .9) !important;
  box-shadow: inset 0 0 0 2px #fff !important;
  background: var(--cbi-swatch-color, #e9e9e9) !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-new-pill {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 20px !important;
  margin: 0 0 9px !important;
  padding: 2px 10px !important;
  border: 1px solid #cfcfcf !important;
  border-radius: 5px !important;
  background: #fff !important;
  color: #333 !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: .02em !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-product-title,
body.cbi-exact-body .cbi-product-card-v5 .card-title {
  display: block !important;
  width: 100% !important;
  min-height: 0 !important;
  margin: 0 0 11px !important;
  color: #111 !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  letter-spacing: 0 !important;
  text-align: center !important;
  text-decoration: none !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-product-title:hover,
body.cbi-exact-body .cbi-product-card-v5 .card-title:hover {
  color: #000 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-product-price {
  display: block !important;
  width: 100% !important;
  margin: 0 0 12px !important;
  color: #000 !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
  text-align: center !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-product-price .amount,
body.cbi-exact-body .cbi-product-card-v5 .cbi-product-price .woocommerce-Price-currencySymbol {
  color: #000 !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-product-price del {
  color: #999 !important;
  font-size: 12px !important;
  margin-right: 5px !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-product-price ins {
  text-decoration: none !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-product-sizes {
  display: flex !important;
  justify-content: center !important;
  flex-wrap: wrap !important;
  gap: 7px !important;
  width: 100% !important;
  margin: 0 0 14px !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-size-chip {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 38px !important;
  height: 30px !important;
  padding: 0 9px !important;
  border: 1px solid #d7d7d7 !important;
  border-radius: 6px !important;
  background: #fff !important;
  color: #111 !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  text-decoration: none !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-size-chip:hover {
  border-color: #111 !important;
  box-shadow: 0 0 0 1px #111 inset !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-size-chip.is-disabled {
  color: #bfbfbf !important;
  background: linear-gradient(to bottom right, transparent calc(50% - 1px), #d7d7d7 50%, transparent calc(50% + 1px)) !important;
  pointer-events: auto !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-card-actions {
  width: 100% !important;
  margin: 0 !important;
  opacity: 0 !important;
  transform: translateY(8px) !important;
  transition: opacity .22s ease, transform .22s ease !important;
  pointer-events: none !important;
}

body.cbi-exact-body .cbi-product-card-v5:hover .cbi-card-actions,
body.cbi-exact-body .cbi-product-card-v5:focus-within .cbi-card-actions {
  opacity: 1 !important;
  transform: translateY(0) !important;
  pointer-events: auto !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-add-cart,
body.cbi-exact-body .cbi-product-card-v5 .added_to_cart {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 42px !important;
  padding: 10px 14px !important;
  border: 1px solid #333 !important;
  border-radius: 5px !important;
  background: #333 !important;
  color: #fff !important;
  font-family: var(--cbi-font) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  line-height: 1.1 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-add-cart:hover,
body.cbi-exact-body .cbi-product-card-v5 .added_to_cart:hover {
  background: #111 !important;
  border-color: #111 !important;
  color: #fff !important;
  text-decoration: none !important;
}

body.cbi-exact-body .cbi-product-card-v5 .added_to_cart {
  margin: 8px 0 0 !important;
}

@media(max-width:1180px) {
  body.cbi-exact-body .product-container {
    gap: 38px 16px !important;
  }

  body.cbi-exact-body .cbi-product-card-v5 .cbi-product-title,
  body.cbi-exact-body .cbi-product-card-v5 .card-title {
    font-size: 14px !important;
  }
}

@media(max-width:1024px) {
  body.cbi-exact-body .product-container {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media(max-width:768px) {
  body.cbi-exact-body .product-container {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 34px 12px !important;
  }

  body.cbi-exact-body .cbi-product-card-v5 .product-image-wrapper,
  body.cbi-exact-body .cbi-product-card-v5 .cbi-product-media {
    aspect-ratio: 1/1.06 !important;
  }

  body.cbi-exact-body .cbi-product-card-v5 .cbi-product-summary,
  body.cbi-exact-body .cbi-product-card-v5 .card-body {
    padding: 12px 4px 0 !important;
  }

  body.cbi-exact-body .cbi-product-card-v5 .cbi-card-actions {
    opacity: 1 !important;
    transform: none !important;
    pointer-events: auto !important;
  }

  body.cbi-exact-body .cbi-product-card-v5 .cbi-add-cart,
  body.cbi-exact-body .cbi-product-card-v5 .added_to_cart {
    min-height: 38px !important;
    font-size: 13px !important;
  }

  body.cbi-exact-body .cbi-product-card-v5 .cbi-size-chip {
    min-width: 34px !important;
    height: 28px !important;
    font-size: 13px !important;
  }

  body.cbi-exact-body .cbi-product-card-v5 .color-dot {
    width: 16px !important;
    height: 16px !important;
  }
}

@media(max-width:420px) {
  body.cbi-exact-body .product-container {
    grid-template-columns: 1fr !important;
    gap: 34px !important;
  }

  body.cbi-exact-body .cbi-product-card-v5 .cbi-product-title,
  body.cbi-exact-body .cbi-product-card-v5 .card-title {
    font-size: 15px !important;
  }
}

/* CBI v0.5.8: default card = reference image 1; hover card = size/add-to-cart panel. */
body.cbi-exact-body .cbi-product-card-v5 .cbi-product-colors,
body.cbi-exact-body .cbi-product-card-v5 .color-select {
  order: 1 !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-new-pill {
  order: 2 !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-product-title,
body.cbi-exact-body .cbi-product-card-v5 .card-title {
  order: 3 !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-product-sizes {
  order: 4 !important;
  display: none !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-product-price {
  order: 5 !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-card-actions {
  order: 6 !important;
  display: none !important;
  opacity: 1 !important;
  transform: none !important;
  pointer-events: auto !important;
}

@media (hover:hover) and (pointer:fine) {

  /* Prevent card collapse on hover */
  body.cbi-exact-body .cbi-product-card-v5:hover .cbi-new-pill,
  body.cbi-exact-body .cbi-product-card-v5:focus-within .cbi-new-pill,
  body.cbi-exact-body .cbi-product-card-v5:hover .cbi-product-title,
  body.cbi-exact-body .cbi-product-card-v5:focus-within .cbi-product-title,
  body.cbi-exact-body .cbi-product-card-v5:hover .card-title,
  body.cbi-exact-body .cbi-product-card-v5:focus-within .card-title {
    /* Keep these visible so the card doesn't shrink and lose hover state */
  }

  body.cbi-exact-body .cbi-product-card-v5:hover .cbi-product-sizes,
  body.cbi-exact-body .cbi-product-card-v5:focus-within .cbi-product-sizes,
  body.cbi-exact-body .cbi-product-card-v5:hover .cbi-card-actions,
  body.cbi-exact-body .cbi-product-card-v5:focus-within .cbi-card-actions {
    display: flex !important;
  }
}

@media (hover:none),
(pointer:coarse) {

  body.cbi-exact-body .cbi-product-card-v5 .cbi-product-sizes,
  body.cbi-exact-body .cbi-product-card-v5 .cbi-card-actions {
    display: flex !important;
  }
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-size-chip {
  cursor: pointer !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-size-chip.is-selected,
body.cbi-exact-body .cbi-product-card-v5 .cbi-size-chip[aria-pressed="true"] {
  border-color: #111 !important;
  box-shadow: 0 0 0 1px #111 inset !important;
  color: #000 !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-size-chip.is-disabled,
body.cbi-exact-body .cbi-product-card-v5 .cbi-size-chip:disabled {
  cursor: not-allowed !important;
  opacity: .75 !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-add-cart.is-disabled {
  opacity: .7 !important;
  pointer-events: none !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-add-cart.is-added {
  background: #111 !important;
  border-color: #111 !important;
}


/* CBI v0.5.9: make product swatches use WooCommerce/legacy DB hex values. */
body.cbi-exact-body .cbi-product-card-v5 .color-dot {
  background: var(--cbi-swatch-color, #e9e9e9) !important;
}


/* CBI v0.6.0: clickable color swatches. */
body.cbi-exact-body .cbi-product-card-v5 .cbi-color-dot,
body.cbi-exact-body .cbi-product-card-v5 button.color-dot {
  appearance: none !important;
  -webkit-appearance: none !important;
  padding: 0 !important;
  margin: 0 !important;
  cursor: pointer !important;
  line-height: 0 !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-color-dot.is-selected,
body.cbi-exact-body .cbi-product-card-v5 .cbi-color-dot[aria-pressed="true"] {
  outline: 2px solid #111 !important;
  outline-offset: 2px !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-color-dot:focus-visible {
  outline: 2px solid #111 !important;
  outline-offset: 3px !important;
}


/* CBI v0.6.1: color-specific main/hover image and clearer hover frame. */
body.cbi-exact-body .product-card.cbi-product-card-v5 {
  outline: 1px solid transparent !important;
  outline-offset: 0 !important;
  transition: outline-color .18s ease, box-shadow .18s ease !important;
}

body.cbi-exact-body .product-card.cbi-product-card-v5:hover,
body.cbi-exact-body .product-card.cbi-product-card-v5:focus-within {
  outline-color: transparent !important;
  border-bottom-color: transparent !important;
  box-shadow: 0 10px 24px rgba(17, 17, 17, .06), -1px 0 0 #111, 1px 0 0 #111, 0 -1px 0 #111 !important;
}

body.cbi-exact-body .cbi-product-card-v5 .product-image-wrapper,
body.cbi-exact-body .cbi-product-card-v5 .cbi-product-media {
  position: relative !important;
}

body.cbi-exact-body .cbi-product-card-v5 .product-image-wrapper img.main-view,
body.cbi-exact-body .cbi-product-card-v5 .cbi-product-media img.main-view {
  position: relative !important;
  z-index: 1 !important;
}

body.cbi-exact-body .cbi-product-card-v5 .product-image-wrapper img.human-view,
body.cbi-exact-body .cbi-product-card-v5 .cbi-product-media img.human-view {
  z-index: 2 !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-color-dot {
  transition: transform .15s ease, outline-color .15s ease, box-shadow .15s ease !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-color-dot:hover {
  transform: translateY(-1px) !important;
}


/* CBI v0.7.0: premium shop layout inspired by modern fashion grids. */
body.cbi-exact-body .cbi-catalog-section {
  padding: 0 0 84px !important;
}

body.cbi-exact-body .cbi-catalog-section>.cbi-container {
  width: calc(100% - clamp(28px, 6vw, 120px)) !important;
  max-width: none !important;
  margin-inline: auto !important;
}

body.cbi-exact-body .cbi-shop-toolbar {
  display: grid !important;
  grid-template-columns: minmax(260px, 1fr) auto minmax(260px, 1fr) !important;
  align-items: center !important;
  gap: 18px !important;
  min-height: 48px !important;
  margin: 0 0 8px !important;
  color: #111 !important;
}

body.cbi-exact-body .cbi-shop-toolbar-left {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 14px !important;
  min-width: 0 !important;
}

body.cbi-exact-body .cbi-shop-toolbar .filter-toggle,
body.cbi-exact-body .cbi-shop-toolbar .sort-toggle {
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  min-height: 34px !important;
  border: 0 !important;
  background: transparent !important;
  color: #111 !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

body.cbi-exact-body .cbi-shop-toolbar .filter-toggle i {
  font-size: 20px !important;
  margin: 0 !important;
}

body.cbi-exact-body .cbi-toolbar-separator {
  display: inline-block !important;
  width: 1px !important;
  height: 22px !important;
  background: #d6d6d6 !important;
}

body.cbi-exact-body .cbi-shop-count {
  justify-self: center !important;
  color: #777 !important;
  font-size: 14px !important;
  font-style: italic !important;
  line-height: 1.2 !important;
  text-align: center !important;
  white-space: nowrap !important;
}

body.cbi-exact-body .cbi-shop-count-compact {
  display: none;
}

body.cbi-exact-body .cbi-shop-view {
  justify-self: end !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 15px !important;
  color: #333 !important;
  font-size: 14px !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

body.cbi-exact-body .cbi-view-option {
  color: #8b8b8b !important;
  text-decoration: none !important;
  font-weight: 500 !important;
  padding: 4px 0 !important;
  border-bottom: 1px solid transparent !important;
}

body.cbi-exact-body .cbi-view-option:hover,
body.cbi-exact-body .cbi-view-option.active {
  color: #111 !important;
  border-bottom-color: #111 !important;
}

body.cbi-exact-body .sort-dropdown .sort-menu {
  left: 0 !important;
  right: auto !important;
  top: calc(100% + 12px) !important;
  width: 230px !important;
  padding: 12px 14px !important;
  border-radius: 3px !important;
  border: 1px solid rgba(0, 0, 0, .18) !important;
  box-shadow: 0 12px 28px rgba(0, 0, 0, .14) !important;
}

body.cbi-exact-body .sort-dropdown .sort-menu:before {
  content: "" !important;
  position: absolute !important;
  top: -8px !important;
  left: 26px !important;
  width: 14px !important;
  height: 14px !important;
  background: #fff !important;
  border-left: 1px solid rgba(0, 0, 0, .18) !important;
  border-top: 1px solid rgba(0, 0, 0, .18) !important;
  transform: rotate(45deg) !important;
}

body.cbi-exact-body .sort-item {
  text-align: left !important;
  display: flex !important;
  align-items: center !important;
  min-height: 34px !important;
  gap: 10px !important;
  padding: 7px 8px !important;
  border-radius: 0 !important;
  font-size: 14px !important;
}

body.cbi-exact-body .sort-item:before {
  content: "" !important;
  width: 14px !important;
  height: 14px !important;
  border: 1px solid #aaa !important;
  border-radius: 999px !important;
  box-shadow: inset 0 0 0 3px #fff !important;
  background: #fff !important;
  flex: 0 0 auto !important;
}

body.cbi-exact-body .sort-item.active:before {
  background: #111 !important;
  border-color: #111 !important;
}

body.cbi-exact-body .sort-item.active,
body.cbi-exact-body .sort-item:hover {
  background: #fff !important;
  color: #111 !important;
}

body.cbi-exact-body .cbi-catalog-shell,
body.cbi-exact-body .cbi-catalog-shell.filter-open {
  transition: grid-template-columns .24s ease, gap .24s ease !important;
}

body.cbi-exact-body .cbi-catalog-shell.filter-open {
  grid-template-columns: minmax(260px, 300px) minmax(0, 1fr) !important;
  gap: 26px !important;
}

body.cbi-exact-body .filter-menu {
  width: 300px !important;
  padding: 0 0 28px !important;
  border-right: 0 !important;
}

body.cbi-exact-body .filter-group {
  margin: 0 0 0 !important;
  padding: 0 0 18px !important;
  border-bottom: 0 !important;
}

body.cbi-exact-body .filter-group+.filter-group {
  border-top: 14px solid #f7f7f7 !important;
  padding-top: 14px !important;
}

body.cbi-exact-body .filter-parent-link,
body.cbi-exact-body .filter-link {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  width: 100% !important;
  padding: 8px 10px 8px 18px !important;
  color: #111 !important;
  text-decoration: none !important;
  font-size: 14px !important;
  line-height: 1.3 !important;
  font-weight: 500 !important;
}

body.cbi-exact-body .filter-parent-link {
  padding-top: 10px !important;
  padding-bottom: 10px !important;
  font-weight: 700 !important;
}

body.cbi-exact-body .filter-link-depth-2 {
  padding-left: 34px !important;
}

body.cbi-exact-body .filter-link-depth-3 {
  padding-left: 50px !important;
}

body.cbi-exact-body .cbi-filter-box {
  width: 18px !important;
  height: 18px !important;
  border: 1px solid #9e9e9e !important;
  border-radius: 2px !important;
  background: #fff !important;
  flex: 0 0 auto !important;
  position: relative !important;
}

body.cbi-exact-body .cbi-filter-option.active .cbi-filter-box {
  border-color: #111 !important;
  background: #111 !important;
}

body.cbi-exact-body .cbi-filter-option.active .cbi-filter-box:after {
  content: "" !important;
  position: absolute !important;
  left: 5px !important;
  top: 2px !important;
  width: 5px !important;
  height: 10px !important;
  border: solid #fff !important;
  border-width: 0 2px 2px 0 !important;
  transform: rotate(45deg) !important;
}

body.cbi-exact-body .cbi-filter-name {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

body.cbi-exact-body .cbi-filter-count {
  color: #777 !important;
  margin-left: auto !important;
  font-weight: 400 !important;
  white-space: nowrap !important;
}

body.cbi-exact-body .filter-parent-link:hover,
body.cbi-exact-body .filter-parent-link.active,
body.cbi-exact-body .filter-link:hover,
body.cbi-exact-body .filter-link.active {
  color: #111 !important;
  text-decoration: none !important;
  background: #fafafa !important;
}

body.cbi-exact-body .filter-reset {
  display: inline-flex !important;
  margin: 14px 0 0 18px !important;
  color: #777 !important;
  font-size: 13px !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

body.cbi-exact-body .product-container,
body.cbi-exact-body .cbi-catalog-shell.filter-open .product-container {
  gap: 2px !important;
  align-items: start !important;
}

body.cbi-exact-body .cbi-catalog-view-3 .product-container,
body.cbi-exact-body .product-container.cbi-view-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

body.cbi-exact-body .cbi-catalog-view-4 .product-container,
body.cbi-exact-body .product-container.cbi-view-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

body.cbi-exact-body .cbi-catalog-view-6 .product-container,
body.cbi-exact-body .product-container.cbi-view-6 {
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
}

body.cbi-exact-body .product-card.cbi-product-card-v5 {
  border-radius: 0 !important;
  background: transparent !important;
  outline: 1px solid transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
  z-index: 1 !important;
}

body.cbi-exact-body .product-card.cbi-product-card-v5:hover,
body.cbi-exact-body .product-card.cbi-product-card-v5:focus-within {
  outline-color: transparent !important;
  border-bottom-color: transparent !important;
  box-shadow: -1px 0 0 #111, 1px 0 0 #111, 0 -1px 0 #111 !important;
  z-index: 30 !important;
}

body.cbi-exact-body .cbi-product-card-v5 .product-image-wrapper,
body.cbi-exact-body .cbi-product-card-v5 .cbi-product-media {
  aspect-ratio: 1/1.26 !important;
  background: #f1f1f1 !important;
}

body.cbi-exact-body .cbi-catalog-view-3 .cbi-product-card-v5 .product-image-wrapper,
body.cbi-exact-body .cbi-catalog-view-3 .cbi-product-card-v5 .cbi-product-media,
body.cbi-exact-body .product-container.cbi-view-3 .cbi-product-card-v5 .product-image-wrapper,
body.cbi-exact-body .product-container.cbi-view-3 .cbi-product-card-v5 .cbi-product-media {
  aspect-ratio: 1/1.18 !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-product-summary,
body.cbi-exact-body .cbi-product-card-v5 .card-body {
  padding: 14px 10px 18px !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-product-colors,
body.cbi-exact-body .cbi-product-card-v5 .color-select {
  margin-bottom: 9px !important;
}

body.cbi-exact-body .cbi-product-card-v5 .color-dot {
  width: 18px !important;
  height: 18px !important;
  border: 1px solid rgba(0, 0, 0, .85) !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-new-pill {
  min-height: 17px !important;
  padding: 2px 8px !important;
  font-size: 9px !important;
  margin-bottom: 7px !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-product-title,
body.cbi-exact-body .cbi-product-card-v5 .card-title {
  font-size: 14px !important;
  line-height: 1.4 !important;
  margin-bottom: 9px !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-product-price {
  font-size: 15px !important;
  margin-bottom: 0 !important;
}

body.cbi-exact-body .cbi-catalog-view-6 .product-card.cbi-product-card-v5,
body.cbi-exact-body .product-container.cbi-view-6 .product-card.cbi-product-card-v5 {
  position: relative !important;
}

body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5 .cbi-product-summary,
body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5 .cbi-product-summary {
  display: none !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  top: calc(100% - 1px) !important;
  z-index: 31 !important;
  background: #fff !important;
  border: 1px solid #111 !important;
  border-top: 0 !important;
  padding: 14px 10px 16px !important;
}

body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5:hover .cbi-product-summary,
body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5:focus-within .cbi-product-summary,
body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5:hover .cbi-product-summary,
body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5:focus-within .cbi-product-summary {
  display: flex !important;
}

body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5 .cbi-new-pill,
body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5 .cbi-product-title,
body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5 .cbi-new-pill,
body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5 .cbi-product-title {
  display: none !important;
}

body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5 .cbi-product-sizes,
body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5 .cbi-card-actions,
body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5 .cbi-product-sizes,
body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5 .cbi-card-actions {
  display: flex !important;
}

body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5 .cbi-product-price,
body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5 .cbi-product-price {
  margin: 0 0 14px !important;
}

body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5 .cbi-size-chip,
body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5 .cbi-size-chip {
  min-width: 34px !important;
  height: 28px !important;
  font-size: 13px !important;
}

body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5 .cbi-add-cart,
body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5 .cbi-add-cart {
  min-height: 40px !important;
  font-size: 14px !important;
}

@media(max-width:1180px) {

  body.cbi-exact-body .cbi-catalog-view-6 .product-container,
  body.cbi-exact-body .product-container.cbi-view-6 {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

@media(max-width:1024px) {
  body.cbi-exact-body .cbi-shop-toolbar {
    grid-template-columns: 1fr !important;
    justify-items: start !important;
    gap: 8px !important;
  }

  body.cbi-exact-body .cbi-shop-count {
    justify-self: start !important;
  }

  body.cbi-exact-body .cbi-shop-view {
    justify-self: start !important;
  }

  body.cbi-exact-body .cbi-catalog-shell.filter-open {
    grid-template-columns: 230px minmax(0, 1fr) !important;
    gap: 18px !important;
  }

  body.cbi-exact-body .filter-menu {
    width: 230px !important;
  }
}

@media(max-width:768px) {
  body.cbi-exact-body .cbi-catalog-section>.cbi-container {
    width: calc(100% - 24px) !important;
  }

  body.cbi-exact-body .cbi-shop-toolbar-left {
    width: 100% !important;
    justify-content: space-between !important;
  }

  body.cbi-exact-body .cbi-toolbar-separator {
    display: none !important;
  }

  body.cbi-exact-body .cbi-shop-view {
    display: none !important;
  }

  body.cbi-exact-body .product-container,
  body.cbi-exact-body .cbi-catalog-view-3 .product-container,
  body.cbi-exact-body .cbi-catalog-view-4 .product-container,
  body.cbi-exact-body .cbi-catalog-view-6 .product-container,
  body.cbi-exact-body .product-container.cbi-view-3,
  body.cbi-exact-body .product-container.cbi-view-4,
  body.cbi-exact-body .product-container.cbi-view-6 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 2px !important;
  }

  body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5 .cbi-product-summary,
  body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5 .cbi-product-summary {
    display: flex !important;
    position: static !important;
    border: 0 !important;
    padding: 12px 6px 16px !important;
  }

  body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5 .cbi-new-pill,
  body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5 .cbi-product-title,
  body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5 .cbi-new-pill,
  body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5 .cbi-product-title {
    display: inline-flex !important;
  }
}

@media(max-width:460px) {

  body.cbi-exact-body .product-container,
  body.cbi-exact-body .cbi-catalog-view-3 .product-container,
  body.cbi-exact-body .cbi-catalog-view-4 .product-container,
  body.cbi-exact-body .cbi-catalog-view-6 .product-container,
  body.cbi-exact-body .product-container.cbi-view-3,
  body.cbi-exact-body .product-container.cbi-view-4,
  body.cbi-exact-body .product-container.cbi-view-6 {
    grid-template-columns: 1fr !important;
  }
}


/* CBI v0.7.1: compact brand selector aligned with the new shop toolbar/layout. */
body.cbi-exact-body .shop-brand-section.shop-brand-strip {
  padding: clamp(26px, 3.2vw, 48px) 0 clamp(18px, 2.2vw, 30px) !important;
  background: #fff !important;
}

body.cbi-exact-body .shop-brand-strip .cbi-container {
  width: min(96vw, 1780px) !important;
  max-width: 1780px !important;
}

body.cbi-exact-body .shop-brand-bar {
  display: grid !important;
  grid-template-columns: minmax(210px, 280px) minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 24px !important;
  padding: 0 0 22px !important;
  border-bottom: 1px solid rgba(0, 0, 0, .08) !important;
}

body.cbi-exact-body .shop-brand-head {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 14px !important;
  margin: 0 !important;
  min-width: 0 !important;
}

body.cbi-exact-body .shop-brand-kicker {
  display: block !important;
  margin: 0 0 5px !important;
  color: #777 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

body.cbi-exact-body .shop-brand-head h2 {
  margin: 0 !important;
  font-size: clamp(18px, 1.45vw, 24px) !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
  letter-spacing: -.025em !important;
  white-space: normal !important;
}

body.cbi-exact-body .shop-brand-all-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 30px !important;
  padding: 5px 12px !important;
  border: 1px solid rgba(0, 0, 0, .14) !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #111 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  transition: background .18s ease, color .18s ease, border-color .18s ease !important;
}

body.cbi-exact-body .shop-brand-all-link:hover,
body.cbi-exact-body .shop-brand-all-link.active {
  background: #111 !important;
  border-color: #111 !important;
  color: #fff !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-grid {
  display: grid !important;
  grid-template-columns: repeat(7, minmax(112px, 1fr)) !important;
  gap: 8px !important;
  align-items: stretch !important;
  width: 100% !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-card {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  min-width: 0 !important;
  width: 100% !important;
  height: 56px !important;
  min-height: 56px !important;
  padding: 8px 12px !important;
  border: 1px solid rgba(0, 0, 0, .10) !important;
  border-radius: 12px !important;
  background: #fff !important;
  box-shadow: none !important;
  color: #111 !important;
  text-decoration: none !important;
  transform: none !important;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-card:hover,
body.cbi-exact-body .shop-brand-strip .shop-brand-card:focus-visible {
  border-color: #111 !important;
  background: #fafafa !important;
  box-shadow: 0 8px 22px rgba(0, 0, 0, .055) !important;
  transform: translateY(-1px) !important;
  outline: none !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-card.active {
  border-color: #111 !important;
  background: #111 !important;
  color: #fff !important;
  box-shadow: none !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-logo-wrap {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 38px !important;
  width: 38px !important;
  height: 38px !important;
  margin: 0 !important;
  border-radius: 999px !important;
  background: #f7f7f7 !important;
  overflow: hidden !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-card.active .shop-brand-logo-wrap {
  background: #fff !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-logo {
  max-width: 30px !important;
  max-height: 28px !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-card strong {
  display: block !important;
  min-width: 0 !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.cbi-exact-body .shop-brand-strip .brand-card-subtitle {
  display: none !important;
}

body.cbi-exact-body .shop-brand-strip+.cbi-catalog-section {
  padding-top: 0 !important;
}

@media(max-width:1280px) {
  body.cbi-exact-body .shop-brand-bar {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

@media(max-width:768px) {
  body.cbi-exact-body .shop-brand-section.shop-brand-strip {
    padding: 22px 0 16px !important;
  }

  body.cbi-exact-body .shop-brand-strip .cbi-container {
    width: calc(100% - 24px) !important;
  }

  body.cbi-exact-body .shop-brand-head {
    align-items: center !important;
  }

  body.cbi-exact-body .shop-brand-head h2 {
    font-size: 19px !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-grid {
    display: flex !important;
    gap: 8px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding: 2px 2px 8px !important;
    scroll-snap-type: x proximity !important;
    -webkit-overflow-scrolling: touch !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-card {
    flex: 0 0 160px !important;
    scroll-snap-align: start !important;
  }
}

@media(max-width:460px) {
  body.cbi-exact-body .shop-brand-kicker {
    display: none !important;
  }

  body.cbi-exact-body .shop-brand-all-link {
    min-height: 28px !important;
    padding: 4px 10px !important;
    font-size: 12px !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-card {
    flex-basis: 145px !important;
    height: 52px !important;
    min-height: 52px !important;
    padding: 7px 10px !important;
  }
}


/* CBI v0.7.2: refined brand selector - cleaner, less bulky, aligned with shop toolbar. */
body.cbi-exact-body .shop-brand-section.shop-brand-strip {
  padding: clamp(18px, 2vw, 30px) 0 clamp(16px, 1.8vw, 24px) !important;
  background: #fff !important;
}

body.cbi-exact-body .shop-brand-strip .cbi-container {
  width: min(94vw, 1680px) !important;
  max-width: 1680px !important;
}

body.cbi-exact-body .shop-brand-bar {
  display: grid !important;
  grid-template-columns: 160px minmax(0, 1fr) !important;
  gap: 18px !important;
  align-items: center !important;
  padding: 0 0 18px !important;
  border-bottom: 1px solid rgba(0, 0, 0, .08) !important;
}

body.cbi-exact-body .shop-brand-head {
  display: block !important;
  margin: 0 !important;
  min-width: 0 !important;
}

body.cbi-exact-body .shop-brand-kicker {
  display: block !important;
  margin: 0 0 3px !important;
  color: #777 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: .08em !important;
}

body.cbi-exact-body .shop-brand-head h2 {
  margin: 0 !important;
  font-size: 20px !important;
  line-height: 1.18 !important;
  font-weight: 800 !important;
  letter-spacing: -.025em !important;
  white-space: normal !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-grid {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 10px !important;
  align-items: center !important;
  width: 100% !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  padding: 2px 2px 8px !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: thin !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-grid::-webkit-scrollbar {
  height: 5px !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-grid::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, .18) !important;
  border-radius: 999px !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-card {
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 154px !important;
  max-width: 190px !important;
  height: 46px !important;
  min-height: 46px !important;
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  padding: 7px 13px !important;
  border: 1px solid rgba(0, 0, 0, .12) !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #111 !important;
  box-shadow: none !important;
  text-decoration: none !important;
  transform: none !important;
  transition: border-color .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-card:hover,
body.cbi-exact-body .shop-brand-strip .shop-brand-card:focus-visible {
  border-color: #111 !important;
  background: #fafafa !important;
  color: #111 !important;
  box-shadow: 0 5px 16px rgba(0, 0, 0, .055) !important;
  transform: none !important;
  outline: none !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-card.active {
  border-color: #111 !important;
  background: #111 !important;
  color: #fff !important;
  box-shadow: none !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-logo-wrap {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 30px !important;
  width: 30px !important;
  height: 30px !important;
  margin: 0 !important;
  border-radius: 999px !important;
  background: #f6f6f6 !important;
  overflow: hidden !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-card.active .shop-brand-logo-wrap {
  background: #fff !important;
  color: #111 !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-logo {
  max-width: 24px !important;
  max-height: 22px !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-card strong {
  display: block !important;
  min-width: 0 !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.cbi-exact-body .shop-brand-strip .brand-card-subtitle {
  display: none !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-all-card {
  min-width: 104px !important;
  max-width: 120px !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-all-dot {
  flex-basis: 34px !important;
  width: 34px !important;
  height: 22px !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  border-radius: 999px !important;
  background: #111 !important;
  color: #fff !important;
  letter-spacing: 0 !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-all-card.active .shop-brand-all-dot {
  background: #fff !important;
  color: #111 !important;
}

@media(max-width:900px) {
  body.cbi-exact-body .shop-brand-bar {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  body.cbi-exact-body .shop-brand-head {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
  }

  body.cbi-exact-body .shop-brand-head h2 {
    font-size: 19px !important;
  }
}

@media(max-width:520px) {
  body.cbi-exact-body .shop-brand-section.shop-brand-strip {
    padding: 16px 0 12px !important;
  }

  body.cbi-exact-body .shop-brand-strip .cbi-container {
    width: calc(100% - 24px) !important;
  }

  body.cbi-exact-body .shop-brand-kicker {
    display: none !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-card {
    min-width: 136px !important;
    max-width: 150px !important;
    height: 42px !important;
    min-height: 42px !important;
    padding: 6px 10px !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-logo-wrap {
    flex-basis: 28px !important;
    width: 28px !important;
    height: 28px !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-all-card {
    min-width: 98px !important;
  }
}

/* CBI v0.7.3: cleaner brand selector proportions. Keeps brand filtering/AJAX behavior, improves spacing and hierarchy. */
body.cbi-exact-body .shop-brand-section.shop-brand-strip {
  padding: 16px 0 10px !important;
  background: #fff !important;
}

body.cbi-exact-body .shop-brand-strip .cbi-container {
  width: min(94vw, 1680px) !important;
  max-width: 1680px !important;
}

body.cbi-exact-body .shop-brand-bar {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  gap: 24px !important;
  align-items: center !important;
  padding: 0 0 16px !important;
  border-bottom: 1px solid rgba(0, 0, 0, .07) !important;
}

body.cbi-exact-body .shop-brand-head {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.cbi-exact-body .shop-brand-kicker {
  display: none !important;
}

body.cbi-exact-body .shop-brand-head h2 {
  margin: 0 !important;
  font-size: 14px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  white-space: nowrap !important;
  color: #111 !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-grid {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 9px !important;
  align-items: center !important;
  width: 100% !important;
  min-width: 0 !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  padding: 1px 2px 6px !important;
  margin: 0 !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: none !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-grid::-webkit-scrollbar {
  display: none !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-card {
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 132px !important;
  max-width: 168px !important;
  height: 40px !important;
  min-height: 40px !important;
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 9px !important;
  padding: 6px 12px !important;
  border: 1px solid rgba(0, 0, 0, .12) !important;
  border-radius: 14px !important;
  background: #fff !important;
  color: #111 !important;
  box-shadow: none !important;
  text-decoration: none !important;
  transform: none !important;
  transition: border-color .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-card:hover,
body.cbi-exact-body .shop-brand-strip .shop-brand-card:focus-visible {
  border-color: rgba(0, 0, 0, .42) !important;
  background: #fbfbfb !important;
  color: #111 !important;
  box-shadow: 0 6px 16px rgba(0, 0, 0, .045) !important;
  transform: none !important;
  outline: none !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-card.active {
  border-color: #111 !important;
  background: #111 !important;
  color: #fff !important;
  box-shadow: none !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-logo-wrap {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 26px !important;
  width: 26px !important;
  height: 26px !important;
  min-width: 26px !important;
  margin: 0 !important;
  border-radius: 999px !important;
  background: #f4f4f4 !important;
  overflow: hidden !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-card.active .shop-brand-logo-wrap {
  background: #fff !important;
  color: #111 !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-logo {
  max-width: 21px !important;
  max-height: 20px !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-card strong {
  display: block !important;
  min-width: 0 !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.cbi-exact-body .shop-brand-strip .brand-card-subtitle,
body.cbi-exact-body .shop-brand-strip .shop-brand-all-dot {
  display: none !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-all-card {
  min-width: 82px !important;
  max-width: 92px !important;
  justify-content: center !important;
  padding-inline: 16px !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-all-card strong {
  text-align: center !important;
}

body.cbi-exact-body .shop-brand-strip+.cbi-catalog-section {
  padding-top: 0 !important;
}

@media(max-width:900px) {
  body.cbi-exact-body .shop-brand-section.shop-brand-strip {
    padding: 13px 0 8px !important;
  }

  body.cbi-exact-body .shop-brand-bar {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    align-items: start !important;
    padding-bottom: 12px !important;
  }

  body.cbi-exact-body .shop-brand-head h2 {
    font-size: 13px !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-card {
    min-width: 126px !important;
    max-width: 148px !important;
    height: 38px !important;
    min-height: 38px !important;
    border-radius: 13px !important;
    padding: 6px 10px !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-all-card {
    min-width: 78px !important;
  }
}

@media(max-width:520px) {
  body.cbi-exact-body .shop-brand-strip .cbi-container {
    width: calc(100% - 24px) !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-grid {
    gap: 8px !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-card {
    min-width: 118px !important;
    max-width: 140px !important;
  }
}


/* CBI v0.7.4: balanced brand selector - bigger, centered, symmetrical. */
body.cbi-exact-body .shop-brand-section.shop-brand-strip {
  padding: 18px 0 14px !important;
  background: #fff !important;
}

body.cbi-exact-body .shop-brand-strip .cbi-container {
  width: min(94vw, 1640px) !important;
  max-width: 1640px !important;
}

body.cbi-exact-body .shop-brand-bar {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 16px !important;
  padding: 0 0 18px !important;
  border-bottom: 1px solid rgba(0, 0, 0, .08) !important;
  min-height: 70px !important;
}

body.cbi-exact-body .shop-brand-head {
  flex: 0 0 auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 82px !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.cbi-exact-body .shop-brand-kicker {
  display: none !important;
}

body.cbi-exact-body .shop-brand-head h2 {
  margin: 0 !important;
  font-size: 16px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  white-space: nowrap !important;
  color: #111 !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-grid {
  flex: 0 1 auto !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 10px !important;
  width: auto !important;
  max-width: calc(100% - 98px) !important;
  min-width: 0 !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  padding: 2px 4px 6px !important;
  margin: 0 !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: none !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-grid::-webkit-scrollbar {
  display: none !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-card {
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 150px !important;
  max-width: 178px !important;
  height: 48px !important;
  min-height: 48px !important;
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  padding: 8px 14px !important;
  border: 1px solid rgba(0, 0, 0, .13) !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #111 !important;
  box-shadow: none !important;
  text-decoration: none !important;
  transform: none !important;
  transition: border-color .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-card:hover,
body.cbi-exact-body .shop-brand-strip .shop-brand-card:focus-visible {
  border-color: rgba(0, 0, 0, .55) !important;
  background: #fbfbfb !important;
  color: #111 !important;
  box-shadow: 0 8px 20px rgba(0, 0, 0, .06) !important;
  transform: none !important;
  outline: none !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-card.active {
  border-color: #111 !important;
  background: #111 !important;
  color: #fff !important;
  box-shadow: none !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-logo-wrap {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 32px !important;
  width: 32px !important;
  height: 32px !important;
  min-width: 32px !important;
  margin: 0 !important;
  border-radius: 999px !important;
  background: #f5f5f5 !important;
  overflow: hidden !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-card.active .shop-brand-logo-wrap {
  background: #fff !important;
  color: #111 !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-logo {
  max-width: 26px !important;
  max-height: 24px !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-card strong {
  display: block !important;
  min-width: 0 !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.cbi-exact-body .shop-brand-strip .brand-card-subtitle,
body.cbi-exact-body .shop-brand-strip .shop-brand-all-dot {
  display: none !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-all-card {
  min-width: 106px !important;
  max-width: 118px !important;
  justify-content: center !important;
  padding-inline: 20px !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-all-card strong {
  text-align: center !important;
}

body.cbi-exact-body .shop-brand-strip+.cbi-catalog-section {
  padding-top: 0 !important;
}

@media(max-width:1180px) {
  body.cbi-exact-body .shop-brand-bar {
    justify-content: flex-start !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-grid {
    justify-content: flex-start !important;
    max-width: calc(100% - 98px) !important;
  }
}

@media(max-width:900px) {
  body.cbi-exact-body .shop-brand-section.shop-brand-strip {
    padding: 16px 0 12px !important;
  }

  body.cbi-exact-body .shop-brand-bar {
    display: block !important;
    min-height: 0 !important;
    padding-bottom: 14px !important;
  }

  body.cbi-exact-body .shop-brand-head {
    justify-content: flex-start !important;
    min-width: 0 !important;
    margin: 0 0 10px !important;
  }

  body.cbi-exact-body .shop-brand-head h2 {
    font-size: 15px !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-grid {
    max-width: 100% !important;
    justify-content: flex-start !important;
    gap: 9px !important;
    padding-bottom: 6px !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-card {
    min-width: 142px !important;
    max-width: 164px !important;
    height: 46px !important;
    min-height: 46px !important;
    padding: 7px 12px !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-all-card {
    min-width: 100px !important;
    max-width: 110px !important;
  }
}

@media(max-width:520px) {
  body.cbi-exact-body .shop-brand-strip .cbi-container {
    width: calc(100% - 24px) !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-card {
    min-width: 132px !important;
    max-width: 150px !important;
    height: 44px !important;
    min-height: 44px !important;
    padding: 6px 10px !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-logo-wrap {
    flex-basis: 30px !important;
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-card strong {
    font-size: 13px !important;
  }
}


/* v0.7.6: raise brand selector slightly while keeping clear space under the hero video. */
body.cbi-exact-body .shop-brand-section.shop-brand-strip {
  padding-top: clamp(118px, 14vh, 178px) !important;
  padding-bottom: clamp(18px, 2.2vw, 32px) !important;
}

body.cbi-exact-body .shop-brand-section.shop-brand-strip .cbi-container {
  position: relative !important;
}

@media(max-width:900px) {
  body.cbi-exact-body .shop-brand-section.shop-brand-strip {
    padding-top: clamp(60px, 9vh, 96px) !important;
    padding-bottom: 16px !important;
  }
}

@media(max-width:520px) {
  body.cbi-exact-body .shop-brand-section.shop-brand-strip {
    padding-top: 56px !important;
  }
}

/* CBI v0.7.7: multi-select filter sidebar + collapsible sections + price filter. */
body.cbi-exact-body .cbi-filter-panel {
  background: #fff !important;
  color: #111 !important;
  font-size: 14px !important;
}

body.cbi-exact-body .cbi-filter-panel-head {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  min-height: 42px !important;
  padding: 0 0 10px !important;
  border-bottom: 1px solid rgba(0, 0, 0, .10) !important;
  margin-bottom: 0 !important;
}

body.cbi-exact-body .cbi-filter-panel-head strong {
  font-size: 15px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
}

body.cbi-exact-body .cbi-filter-reset-top {
  margin: 0 !important;
  font-size: 12px !important;
  color: #777 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

body.cbi-exact-body .cbi-filter-section {
  border: 0 !important;
  border-bottom: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #fff !important;
}

body.cbi-exact-body .cbi-filter-section+.cbi-filter-section {
  border-top: 12px solid #f7f7f7 !important;
  padding-top: 0 !important;
}

body.cbi-exact-body .filter-section-toggle {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  width: 100% !important;
  min-height: 44px !important;
  padding: 0 14px !important;
  border: 0 !important;
  background: #fff !important;
  color: #111 !important;
  font-family: var(--cbi-font) !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  cursor: pointer !important;
  text-align: left !important;
}

body.cbi-exact-body .filter-section-toggle i {
  font-size: 13px !important;
  transition: transform .22s ease !important;
}

body.cbi-exact-body .cbi-filter-section.is-collapsed .filter-section-toggle i {
  transform: rotate(-90deg) !important;
}

body.cbi-exact-body .filter-section-body {
  display: block !important;
  padding: 7px 0 16px !important;
}

body.cbi-exact-body .cbi-filter-section.is-collapsed .filter-section-body {
  display: none !important;
}

body.cbi-exact-body label.cbi-filter-option,
body.cbi-exact-body .cbi-filter-option {
  cursor: pointer !important;
  user-select: none !important;
  -webkit-user-select: none !important;
}

body.cbi-exact-body .cbi-filter-option input[type="checkbox"] {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

body.cbi-exact-body .cbi-filter-option.active .cbi-filter-name {
  font-weight: 700 !important;
}

body.cbi-exact-body .cbi-filter-option:focus-within .cbi-filter-box {
  outline: 2px solid rgba(0, 0, 0, .20) !important;
  outline-offset: 2px !important;
}

body.cbi-exact-body .cbi-filter-color-dot {
  width: 17px !important;
  height: 17px !important;
  border-radius: 999px !important;
  background: var(--cbi-filter-color, #f0f0f0) !important;
  border: 1px solid rgba(0, 0, 0, .22) !important;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .65) !important;
  flex: 0 0 auto !important;
}

body.cbi-exact-body .cbi-filter-section-color .cbi-filter-box {
  margin-right: 0 !important;
}

body.cbi-exact-body .cbi-price-filter {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 10px !important;
  padding: 7px 14px 2px !important;
}

body.cbi-exact-body .cbi-price-filter label {
  display: flex !important;
  flex-direction: column !important;
  gap: 5px !important;
  min-width: 0 !important;
  color: #9a9a9a !important;
  font-size: 12px !important;
  line-height: 1 !important;
}

body.cbi-exact-body .cbi-price-filter input {
  width: 100% !important;
  height: 38px !important;
  border: 1px solid #d5d5d5 !important;
  border-radius: 4px !important;
  padding: 0 10px !important;
  font-family: var(--cbi-font) !important;
  font-size: 14px !important;
  color: #111 !important;
  background: #fff !important;
  outline: none !important;
}

body.cbi-exact-body .cbi-price-filter input:focus {
  border-color: #111 !important;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, .06) !important;
}

body.cbi-exact-body .cbi-price-filter button {
  grid-column: 1/-1 !important;
  height: 40px !important;
  border: 0 !important;
  border-radius: 4px !important;
  background: #111 !important;
  color: #fff !important;
  font-family: var(--cbi-font) !important;
  font-weight: 800 !important;
  cursor: pointer !important;
}

body.cbi-exact-body .cbi-price-clear {
  grid-column: 1/-1 !important;
  justify-self: center !important;
  color: #777 !important;
  font-size: 13px !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

body.cbi-exact-body .cbi-filter-reset-bottom {
  margin: 18px 14px 0 !important;
}

body.cbi-exact-body .filter-menu.mobile-active .cbi-filter-panel-head {
  position: sticky !important;
  top: 0 !important;
  z-index: 2 !important;
  background: #fff !important;
}

@media(max-width:1024px) {
  body.cbi-exact-body .cbi-catalog-shell.filter-open {
    grid-template-columns: 250px minmax(0, 1fr) !important;
  }

  body.cbi-exact-body .filter-menu {
    width: 250px !important;
  }
}

@media(max-width:768px) {
  body.cbi-exact-body .filter-menu.mobile-active {
    padding: 0 !important;
  }

  body.cbi-exact-body .cbi-filter-panel-head {
    padding: 14px 16px 12px !important;
  }

  body.cbi-exact-body .filter-section-toggle {
    padding-inline: 16px !important;
  }

  body.cbi-exact-body .filter-parent-link,
  body.cbi-exact-body .filter-link {
    padding-right: 16px !important;
  }

  body.cbi-exact-body .cbi-price-filter {
    padding-inline: 16px !important;
  }
}

/* CBI v0.7.9: higher contrast dual-handle price slider. */
body.cbi-exact-body .cbi-filter-panel {
  background: #fff !important;
}

body.cbi-exact-body .cbi-filter-panel-head {
  padding: 0 0 12px !important;
  margin-bottom: 8px !important;
  border-bottom: 1px solid rgba(0, 0, 0, .08) !important;
}

body.cbi-exact-body .cbi-filter-section {
  position: relative !important;
  background: #fff !important;
  border: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.cbi-exact-body .cbi-filter-section+.cbi-filter-section {
  border-top: 1px solid #fff !important;
  padding-top: 0 !important;
}

body.cbi-exact-body .filter-section-toggle {
  min-height: 44px !important;
  padding: 0 14px !important;
  background: #f6f6f6 !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: #111 !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  transition: background .18s ease !important;
}

body.cbi-exact-body .filter-section-toggle:hover,
body.cbi-exact-body .filter-section-toggle:focus-visible {
  background: #efefef !important;
  outline: none !important;
}

body.cbi-exact-body .filter-section-toggle i {
  font-size: 15px !important;
  color: #111 !important;
}

body.cbi-exact-body .cbi-filter-section.is-collapsed .filter-section-toggle {
  background: #f7f7f7 !important;
}

body.cbi-exact-body .filter-section-body {
  padding: 10px 0 18px !important;
  background: #fff !important;
}

body.cbi-exact-body .cbi-filter-option,
body.cbi-exact-body label.cbi-filter-option {
  min-height: 28px !important;
  padding-top: 6px !important;
  padding-bottom: 6px !important;
}

body.cbi-exact-body .cbi-price-filter-section .filter-section-toggle {
  padding-right: 62px !important;
}

body.cbi-exact-body .cbi-price-clear {
  position: absolute !important;
  top: 13px !important;
  right: 14px !important;
  z-index: 2 !important;
  margin: 0 !important;
  color: #8a8a8a !important;
  font-size: 12px !important;
  line-height: 1 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

body.cbi-exact-body .cbi-price-filter {
  display: block !important;
  padding: 18px 14px 4px !important;
}

body.cbi-exact-body .cbi-price-range {
  --cbi-price-from: 0%;
  --cbi-price-to: 100%;
  position: relative !important;
  height: 30px !important;
  margin: 0 4px 12px !important;
}

body.cbi-exact-body .cbi-price-slider-track {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: 50% !important;
  height: 2px !important;
  transform: translateY(-50%) !important;
  background: linear-gradient(to right,
      #e5e5e5 0%,
      #e5e5e5 var(--cbi-price-from),
      #b7b7b7 var(--cbi-price-from),
      #b7b7b7 var(--cbi-price-to),
      #e5e5e5 var(--cbi-price-to),
      #e5e5e5 100%) !important;
  border-radius: 999px !important;
}

body.cbi-exact-body .cbi-price-range-input {
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  width: 100% !important;
  height: 30px !important;
  margin: 0 !important;
  padding: 0 !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  background: transparent !important;
  pointer-events: none !important;
  border: 0 !important;
  outline: none !important;
}

body.cbi-exact-body .cbi-price-range-input::-webkit-slider-runnable-track {
  height: 2px !important;
  background: transparent !important;
  border: 0 !important;
}

body.cbi-exact-body .cbi-price-range-input::-moz-range-track {
  height: 2px !important;
  background: transparent !important;
  border: 0 !important;
}

body.cbi-exact-body .cbi-price-range-input::-webkit-slider-thumb {
  appearance: none !important;
  -webkit-appearance: none !important;
  pointer-events: auto !important;
  width: 15px !important;
  height: 15px !important;
  margin-top: -6.5px !important;
  border-radius: 999px !important;
  border: 1px solid #dedede !important;
  background: #fff !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .16) !important;
  cursor: pointer !important;
}

body.cbi-exact-body .cbi-price-range-input::-moz-range-thumb {
  pointer-events: auto !important;
  width: 15px !important;
  height: 15px !important;
  border-radius: 999px !important;
  border: 1px solid #dedede !important;
  background: #fff !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .16) !important;
  cursor: pointer !important;
}

body.cbi-exact-body .cbi-price-range-input:focus-visible::-webkit-slider-thumb {
  outline: 2px solid rgba(0, 0, 0, .25) !important;
  outline-offset: 3px !important;
}

body.cbi-exact-body .cbi-price-inputs {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 10px !important;
}

body.cbi-exact-body .cbi-price-filter label {
  display: flex !important;
  flex-direction: column !important;
  gap: 5px !important;
  color: #9a9a9a !important;
  font-size: 12px !important;
  line-height: 1 !important;
}

body.cbi-exact-body .cbi-price-filter input[type="number"] {
  width: 100% !important;
  height: 38px !important;
  border: 1px solid #d6d6d6 !important;
  border-radius: 5px !important;
  background: #fff !important;
  padding: 0 11px !important;
  color: #111 !important;
  font-size: 14px !important;
  font-family: var(--cbi-font) !important;
  box-shadow: none !important;
}

body.cbi-exact-body .cbi-price-filter input[type="number"]:focus {
  border-color: #111 !important;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, .05) !important;
}

body.cbi-exact-body .cbi-price-submit {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@media(max-width:768px) {
  body.cbi-exact-body .filter-section-toggle {
    padding-inline: 16px !important;
  }

  body.cbi-exact-body .cbi-price-filter {
    padding-inline: 16px !important;
  }

  body.cbi-exact-body .cbi-price-clear {
    right: 16px !important;
  }
}


/* CBI v0.7.9: make price slider clearly visible */
body.cbi-exact-body .cbi-price-filter {
  padding: 16px 14px 6px !important;
}

body.cbi-exact-body .cbi-price-range {
  height: 44px !important;
  margin: 0 0 12px !important;
  padding: 0 12px !important;
  border: 1px solid #d8d8d8 !important;
  border-radius: 4px !important;
  background: #fff !important;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, .06), 0 1px 4px rgba(0, 0, 0, .08) !important;
}

body.cbi-exact-body .cbi-price-slider-track {
  left: 14px !important;
  right: 14px !important;
  height: 4px !important;
  background: linear-gradient(to right,
      #dcdcdc 0%,
      #dcdcdc var(--cbi-price-from),
      #111 var(--cbi-price-from),
      #111 var(--cbi-price-to),
      #dcdcdc var(--cbi-price-to),
      #dcdcdc 100%) !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .08) !important;
}

body.cbi-exact-body .cbi-price-range-input {
  left: 14px !important;
  width: calc(100% - 28px) !important;
  height: 44px !important;
  z-index: 2 !important;
}

body.cbi-exact-body .cbi-price-range-min {
  z-index: 3 !important;
}

body.cbi-exact-body .cbi-price-range-max {
  z-index: 4 !important;
}

body.cbi-exact-body .cbi-price-range-input::-webkit-slider-runnable-track {
  height: 4px !important;
}

body.cbi-exact-body .cbi-price-range-input::-moz-range-track {
  height: 4px !important;
}

body.cbi-exact-body .cbi-price-range-input::-webkit-slider-thumb {
  width: 18px !important;
  height: 18px !important;
  margin-top: -7px !important;
  border: 2px solid #111 !important;
  background: #fff !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .22) !important;
}

body.cbi-exact-body .cbi-price-range-input::-moz-range-thumb {
  width: 18px !important;
  height: 18px !important;
  border: 2px solid #111 !important;
  background: #fff !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .22) !important;
}

body.cbi-exact-body .cbi-price-range-input:hover::-webkit-slider-thumb,
body.cbi-exact-body .cbi-price-range-input:focus-visible::-webkit-slider-thumb {
  background: #111 !important;
  border-color: #111 !important;
  box-shadow: 0 0 0 4px rgba(0, 0, 0, .10), 0 3px 10px rgba(0, 0, 0, .24) !important;
}

body.cbi-exact-body .cbi-price-range-input:hover::-moz-range-thumb,
body.cbi-exact-body .cbi-price-range-input:focus-visible::-moz-range-thumb {
  background: #111 !important;
  border-color: #111 !important;
  box-shadow: 0 0 0 4px rgba(0, 0, 0, .10), 0 3px 10px rgba(0, 0, 0, .24) !important;
}

body.cbi-exact-body .cbi-price-filter label {
  color: #767676 !important;
  font-size: 12px !important;
  font-weight: 500 !important;
}

body.cbi-exact-body .cbi-price-filter input[type="number"] {
  height: 40px !important;
  border-color: #cfcfcf !important;
  border-radius: 4px !important;
  font-size: 15px !important;
}


/* CBI v0.8.0: polish filter chevron alignment and price slider UI to match reference. */
body.cbi-exact-body .cbi-filter-section+.cbi-filter-section {
  border-top: 10px solid #f5f5f5 !important;
}

body.cbi-exact-body .filter-section-toggle {
  min-height: 48px !important;
  padding: 0 14px !important;
  background: #f3f3f3 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}

body.cbi-exact-body .filter-section-toggle>span {
  display: block !important;
  line-height: 1.2 !important;
}

body.cbi-exact-body .filter-section-toggle i {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 18px !important;
  height: 18px !important;
  flex: 0 0 18px !important;
  line-height: 1 !important;
  font-size: 14px !important;
  margin: 0 !important;
  transform-origin: center center !important;
}

body.cbi-exact-body .cbi-price-filter-section .filter-section-toggle {
  padding-right: 44px !important;
}

body.cbi-exact-body .cbi-price-clear {
  top: 16px !important;
  right: 14px !important;
  transform: none !important;
}

body.cbi-exact-body .cbi-price-filter {
  display: block !important;
  padding: 14px 14px 6px !important;
}

body.cbi-exact-body .cbi-price-range {
  --cbi-price-from: 0%;
  --cbi-price-to: 100%;
  position: relative !important;
  height: 38px !important;
  margin: 0 0 12px !important;
  padding: 0 12px !important;
  border: 1px solid #d8d8d8 !important;
  border-radius: 4px !important;
  background: #fff !important;
  box-shadow: none !important;
  overflow: visible !important;
}

body.cbi-exact-body .cbi-price-slider-track {
  position: absolute !important;
  left: 12px !important;
  right: 12px !important;
  top: 50% !important;
  height: 2px !important;
  transform: translateY(-50%) !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  background: linear-gradient(to right,
      #d6d6d6 0%,
      #d6d6d6 var(--cbi-price-from),
      #9e9e9e var(--cbi-price-from),
      #9e9e9e var(--cbi-price-to),
      #d6d6d6 var(--cbi-price-to),
      #d6d6d6 100%) !important;
}

body.cbi-exact-body .cbi-price-range-input {
  position: absolute !important;
  left: 12px !important;
  top: 0 !important;
  width: calc(100% - 24px) !important;
  height: 38px !important;
  margin: 0 !important;
  padding: 0 !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  background: transparent !important;
  pointer-events: none !important;
  border: 0 !important;
  outline: none !important;
  overflow: visible !important;
}

body.cbi-exact-body .cbi-price-range-min {
  z-index: 5 !important;
}

body.cbi-exact-body .cbi-price-range-max {
  z-index: 4 !important;
}

body.cbi-exact-body .cbi-price-range-input::-webkit-slider-runnable-track {
  height: 2px !important;
  background: transparent !important;
}

body.cbi-exact-body .cbi-price-range-input::-moz-range-track {
  height: 2px !important;
  background: transparent !important;
  border: 0 !important;
}

body.cbi-exact-body .cbi-price-range-input::-webkit-slider-thumb {
  appearance: none !important;
  -webkit-appearance: none !important;
  pointer-events: auto !important;
  width: 16px !important;
  height: 16px !important;
  margin-top: -7px !important;
  border-radius: 999px !important;
  border: 2px solid #9a9a9a !important;
  background: #fff !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .18) !important;
  cursor: pointer !important;
}

body.cbi-exact-body .cbi-price-range-input::-moz-range-thumb {
  pointer-events: auto !important;
  width: 16px !important;
  height: 16px !important;
  border-radius: 999px !important;
  border: 2px solid #9a9a9a !important;
  background: #fff !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .18) !important;
  cursor: pointer !important;
}

body.cbi-exact-body .cbi-price-range-input:hover::-webkit-slider-thumb,
body.cbi-exact-body .cbi-price-range-input:focus-visible::-webkit-slider-thumb {
  border-color: #111 !important;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, .08), 0 1px 4px rgba(0, 0, 0, .22) !important;
}

body.cbi-exact-body .cbi-price-range-input:hover::-moz-range-thumb,
body.cbi-exact-body .cbi-price-range-input:focus-visible::-moz-range-thumb {
  border-color: #111 !important;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, .08), 0 1px 4px rgba(0, 0, 0, .22) !important;
}

body.cbi-exact-body .cbi-price-inputs {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 10px !important;
}

body.cbi-exact-body .cbi-price-filter label {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  color: #8c8c8c !important;
  font-size: 12px !important;
  font-weight: 500 !important;
}

body.cbi-exact-body .cbi-price-filter input[type="number"] {
  height: 40px !important;
  border: 1px solid #cfcfcf !important;
  border-radius: 4px !important;
  background: #fff !important;
  padding: 0 12px !important;
  color: #111 !important;
  font-size: 15px !important;
  box-shadow: none !important;
}

@media(max-width:768px) {
  body.cbi-exact-body .cbi-price-filter {
    padding-inline: 16px !important;
  }

  body.cbi-exact-body .cbi-price-clear {
    right: 16px !important;
  }
}


/* CBI v0.8.1: final price-filter cleanup based on user review. */
body.cbi-exact-body .cbi-price-clear {
  display: none !important;
}

body.cbi-exact-body .cbi-price-filter-section .filter-section-toggle {
  padding-right: 14px !important;
}

body.cbi-exact-body .filter-section-toggle i {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 16px !important;
  height: 16px !important;
  flex: 0 0 16px !important;
  line-height: 1 !important;
  margin: 0 !important;
}

body.cbi-exact-body .cbi-price-filter {
  display: block !important;
  padding: 14px 14px 6px !important;
}

body.cbi-exact-body .cbi-price-range {
  --cbi-price-from: 0%;
  --cbi-price-to: 100%;
  position: relative !important;
  height: 24px !important;
  margin: 2px 6px 14px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}

body.cbi-exact-body .cbi-price-slider-track {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: 50% !important;
  height: 2px !important;
  transform: translateY(-50%) !important;
  border-radius: 999px !important;
  background: linear-gradient(to right,
      #d8d8d8 0%,
      #d8d8d8 var(--cbi-price-from),
      #9b9b9b var(--cbi-price-from),
      #9b9b9b var(--cbi-price-to),
      #d8d8d8 var(--cbi-price-to),
      #d8d8d8 100%) !important;
  box-shadow: none !important;
}

body.cbi-exact-body .cbi-price-range-input {
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  width: 100% !important;
  height: 24px !important;
  margin: 0 !important;
  padding: 0 !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  background: transparent !important;
  border: 0 !important;
  outline: none !important;
  pointer-events: none !important;
  overflow: visible !important;
}

body.cbi-exact-body .cbi-price-range-min {
  z-index: 3 !important;
}

body.cbi-exact-body .cbi-price-range-max {
  z-index: 4 !important;
}

body.cbi-exact-body .cbi-price-range-input::-webkit-slider-runnable-track {
  height: 2px !important;
  background: transparent !important;
}

body.cbi-exact-body .cbi-price-range-input::-moz-range-track {
  height: 2px !important;
  background: transparent !important;
  border: 0 !important;
}

body.cbi-exact-body .cbi-price-range-input::-webkit-slider-thumb {
  appearance: none !important;
  -webkit-appearance: none !important;
  pointer-events: auto !important;
  width: 16px !important;
  height: 16px !important;
  margin-top: -7px !important;
  border-radius: 999px !important;
  border: 2px solid #a9a9a9 !important;
  background: #fff !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .16) !important;
  cursor: pointer !important;
}

body.cbi-exact-body .cbi-price-range-input::-moz-range-thumb {
  pointer-events: auto !important;
  width: 16px !important;
  height: 16px !important;
  border-radius: 999px !important;
  border: 2px solid #a9a9a9 !important;
  background: #fff !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .16) !important;
  cursor: pointer !important;
}

body.cbi-exact-body .cbi-price-range-input:hover::-webkit-slider-thumb,
body.cbi-exact-body .cbi-price-range-input:focus-visible::-webkit-slider-thumb {
  border-color: #111 !important;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, .08), 0 1px 4px rgba(0, 0, 0, .20) !important;
}

body.cbi-exact-body .cbi-price-range-input:hover::-moz-range-thumb,
body.cbi-exact-body .cbi-price-range-input:focus-visible::-moz-range-thumb {
  border-color: #111 !important;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, .08), 0 1px 4px rgba(0, 0, 0, .20) !important;
}

body.cbi-exact-body .cbi-price-inputs {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 10px !important;
}


/* CBI v0.8.2: rebuilt stable price filter, no dual range slider. */
body.cbi-exact-body .cbi-price-filter-section .filter-section-toggle {
  padding-right: 14px !important;
}

body.cbi-exact-body .cbi-price-clear {
  display: none !important;
}

body.cbi-exact-body .cbi-price-filter-v2 {
  display: block !important;
  padding: 12px 14px 6px !important;
}

body.cbi-exact-body .cbi-price-presets {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 8px !important;
  margin: 0 0 13px !important;
}

body.cbi-exact-body .cbi-price-preset {
  appearance: none !important;
  -webkit-appearance: none !important;
  width: 100% !important;
  min-height: 36px !important;
  border: 1px solid #d7d7d7 !important;
  border-radius: 5px !important;
  background: #fff !important;
  color: #111 !important;
  padding: 0 12px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  font-family: var(--cbi-font) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-align: left !important;
  cursor: pointer !important;
  transition: background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease !important;
}

body.cbi-exact-body .cbi-price-preset:after {
  content: "" !important;
  width: 8px !important;
  height: 8px !important;
  border-radius: 999px !important;
  border: 1px solid #c8c8c8 !important;
  background: #fff !important;
  flex: 0 0 auto !important;
  margin-left: 10px !important;
}

body.cbi-exact-body .cbi-price-preset:hover,
body.cbi-exact-body .cbi-price-preset:focus-visible {
  border-color: #111 !important;
  outline: none !important;
}

body.cbi-exact-body .cbi-price-preset.active {
  background: #111 !important;
  border-color: #111 !important;
  color: #fff !important;
}

body.cbi-exact-body .cbi-price-preset.active:after {
  border-color: #fff !important;
  background: #fff !important;
  box-shadow: inset 0 0 0 2px #111 !important;
}

body.cbi-exact-body .cbi-price-inputs {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 10px !important;
  margin: 0 0 10px !important;
}

body.cbi-exact-body .cbi-price-filter-v2 label {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  color: #8a8a8a !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
}

body.cbi-exact-body .cbi-price-filter-v2 input[type="number"] {
  width: 100% !important;
  height: 40px !important;
  border: 1px solid #cfcfcf !important;
  border-radius: 5px !important;
  background: #fff !important;
  color: #111 !important;
  padding: 0 11px !important;
  font-family: var(--cbi-font) !important;
  font-size: 14px !important;
  box-shadow: none !important;
  outline: none !important;
}

body.cbi-exact-body .cbi-price-filter-v2 input[type="number"]:focus {
  border-color: #111 !important;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, .06) !important;
}

body.cbi-exact-body .cbi-price-actions {
  display: grid !important;
  grid-template-columns: 1fr 92px !important;
  gap: 8px !important;
  align-items: center !important;
}

body.cbi-exact-body .cbi-price-filter-v2 .cbi-price-submit {
  position: static !important;
  clip: auto !important;
  width: 100% !important;
  height: 40px !important;
  margin: 0 !important;
  overflow: visible !important;
  white-space: normal !important;
  border: 0 !important;
  border-radius: 5px !important;
  background: #111 !important;
  color: #fff !important;
  font-family: var(--cbi-font) !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  cursor: pointer !important;
}

body.cbi-exact-body .cbi-price-clear-inline {
  height: 40px !important;
  border: 1px solid #d6d6d6 !important;
  border-radius: 5px !important;
  background: #fff !important;
  color: #555 !important;
  font-family: var(--cbi-font) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  cursor: pointer !important;
}

body.cbi-exact-body .cbi-price-clear-inline:hover,
body.cbi-exact-body .cbi-price-clear-inline:focus-visible {
  border-color: #111 !important;
  color: #111 !important;
  outline: none !important;
}

body.cbi-exact-body .cbi-price-range,
body.cbi-exact-body .cbi-price-slider-track,
body.cbi-exact-body .cbi-price-range-input {
  display: none !important;
}

body.cbi-exact-body .filter-section-toggle i {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 18px !important;
  height: 18px !important;
  flex: 0 0 18px !important;
  line-height: 1 !important;
}

@media(max-width:768px) {
  body.cbi-exact-body .cbi-price-filter-v2 {
    padding-inline: 16px !important;
  }
}


/* CBI v0.8.3: rebuild price filter as a clean dual-range slider. */
body.cbi-exact-body .cbi-price-presets,
body.cbi-exact-body .cbi-price-actions,
body.cbi-exact-body .cbi-price-clear,
body.cbi-exact-body .cbi-price-clear-inline {
  display: none !important;
}

body.cbi-exact-body .cbi-price-filter-section .filter-section-toggle {
  padding-right: 14px !important;
}

body.cbi-exact-body .filter-section-toggle {
  align-items: center !important;
}

body.cbi-exact-body .filter-section-toggle i {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 16px !important;
  height: 16px !important;
  flex: 0 0 16px !important;
  margin: 0 !important;
  line-height: 1 !important;
  transform-origin: center center !important;
}

body.cbi-exact-body .cbi-price-filter.cbi-price-filter-slider {
  display: block !important;
  padding: 14px 14px 6px !important;
}

body.cbi-exact-body .cbi-price-filter-slider .cbi-price-range {
  --cbi-price-from: 0%;
  --cbi-price-to: 100%;
  position: relative !important;
  height: 28px !important;
  margin: 0 2px 10px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}

body.cbi-exact-body .cbi-price-filter-slider .cbi-price-slider-track {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: 50% !important;
  height: 2px !important;
  transform: translateY(-50%) !important;
  border-radius: 999px !important;
  background: linear-gradient(to right,
      #d7d7d7 0%,
      #d7d7d7 var(--cbi-price-from),
      #999 var(--cbi-price-from),
      #999 var(--cbi-price-to),
      #d7d7d7 var(--cbi-price-to),
      #d7d7d7 100%) !important;
  box-shadow: none !important;
}

body.cbi-exact-body .cbi-price-filter-slider .cbi-price-range-input {
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  width: 100% !important;
  height: 28px !important;
  margin: 0 !important;
  padding: 0 !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  background: transparent !important;
  border: 0 !important;
  outline: none !important;
  pointer-events: none !important;
  overflow: visible !important;
  box-shadow: none !important;
}

body.cbi-exact-body .cbi-price-filter-slider .cbi-price-range-min {
  z-index: 3 !important;
}

body.cbi-exact-body .cbi-price-filter-slider .cbi-price-range-max {
  z-index: 4 !important;
}

body.cbi-exact-body .cbi-price-filter-slider .cbi-price-range-input::-webkit-slider-runnable-track {
  height: 2px !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

body.cbi-exact-body .cbi-price-filter-slider .cbi-price-range-input::-moz-range-track {
  height: 2px !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

body.cbi-exact-body .cbi-price-filter-slider .cbi-price-range-input::-webkit-slider-thumb {
  appearance: none !important;
  -webkit-appearance: none !important;
  pointer-events: auto !important;
  width: 16px !important;
  height: 16px !important;
  margin-top: -7px !important;
  border-radius: 50% !important;
  border: 1px solid #cfcfcf !important;
  background: #fff !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .16) !important;
  cursor: pointer !important;
}

body.cbi-exact-body .cbi-price-filter-slider .cbi-price-range-input::-moz-range-thumb {
  pointer-events: auto !important;
  width: 16px !important;
  height: 16px !important;
  border-radius: 50% !important;
  border: 1px solid #cfcfcf !important;
  background: #fff !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .16) !important;
  cursor: pointer !important;
}

body.cbi-exact-body .cbi-price-filter-slider .cbi-price-range-input:hover::-webkit-slider-thumb,
body.cbi-exact-body .cbi-price-filter-slider .cbi-price-range-input:focus-visible::-webkit-slider-thumb {
  border-color: #999 !important;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, .06), 0 1px 4px rgba(0, 0, 0, .20) !important;
}

body.cbi-exact-body .cbi-price-filter-slider .cbi-price-range-input:hover::-moz-range-thumb,
body.cbi-exact-body .cbi-price-filter-slider .cbi-price-range-input:focus-visible::-moz-range-thumb {
  border-color: #999 !important;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, .06), 0 1px 4px rgba(0, 0, 0, .20) !important;
}

body.cbi-exact-body .cbi-price-filter-slider .cbi-price-inputs {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 10px !important;
}

body.cbi-exact-body .cbi-price-filter-slider .cbi-price-inputs label {
  display: flex !important;
  flex-direction: column !important;
  gap: 5px !important;
  color: #8f8f8f !important;
  font-size: 12px !important;
  line-height: 1 !important;
  font-weight: 500 !important;
}

body.cbi-exact-body .cbi-price-filter-slider input[type="number"] {
  width: 100% !important;
  height: 38px !important;
  border: 1px solid #d1d1d1 !important;
  border-radius: 4px !important;
  background: #fff !important;
  padding: 0 11px !important;
  color: #111 !important;
  font-size: 14px !important;
  font-family: var(--cbi-font) !important;
  box-shadow: none !important;
  outline: none !important;
}

body.cbi-exact-body .cbi-price-filter-slider input[type="number"]:focus {
  border-color: #111 !important;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, .05) !important;
}

body.cbi-exact-body .cbi-price-filter-slider .cbi-price-submit {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@media(max-width:768px) {
  body.cbi-exact-body .cbi-price-filter.cbi-price-filter-slider {
    padding-inline: 16px !important;
  }
}


/* CBI v0.8.4: force rebuilt price slider visible over old v22 hide rules. */
body.cbi-exact-body .cbi-price-filter-slider .cbi-price-range {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

body.cbi-exact-body .cbi-price-filter-slider .cbi-price-slider-track {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

body.cbi-exact-body .cbi-price-filter-slider .cbi-price-range-input {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

body.cbi-exact-body .cbi-price-filter-slider .cbi-price-range-min,
body.cbi-exact-body .cbi-price-filter-slider .cbi-price-range-max {
  display: block !important;
}


/* CBI v0.8.5: per-section filter reset controls. */
body.cbi-exact-body .cbi-filter-panel-head,
body.cbi-exact-body .cbi-filter-reset-top,
body.cbi-exact-body .cbi-filter-reset-bottom {
  display: none !important;
}

body.cbi-exact-body .filter-section-toggle {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
}

body.cbi-exact-body .filter-section-toggle>span:first-child {
  min-width: 0 !important;
  flex: 1 1 auto !important;
  text-align: left !important;
}

body.cbi-exact-body .cbi-filter-header-actions {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 10px !important;
  flex: 0 0 auto !important;
  min-width: 72px !important;
}

body.cbi-exact-body .cbi-filter-header-actions i {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 16px !important;
  height: 16px !important;
  margin: 0 !important;
  line-height: 1 !important;
  flex: 0 0 16px !important;
}

body.cbi-exact-body .cbi-filter-section-reset {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 42px !important;
  height: 22px !important;
  padding: 0 7px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #777 !important;
  font-family: var(--cbi-font) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
  opacity: 0 !important;
  pointer-events: none !important;
  user-select: none !important;
  -webkit-user-select: none !important;
  transition: opacity .16s ease, color .16s ease !important;
}

body.cbi-exact-body .cbi-filter-section-reset.is-visible {
  opacity: 1 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
}

body.cbi-exact-body .cbi-filter-section-reset.is-visible:hover,
body.cbi-exact-body .cbi-filter-section-reset.is-visible:focus-visible {
  color: #111 !important;
  outline: none !important;
}

body.cbi-exact-body .filter-section-toggle:hover .cbi-filter-section-reset.is-visible {
  color: #111 !important;
}

/* Prevent hidden reset placeholder from feeling clickable while keeping arrow aligned. */
body.cbi-exact-body .cbi-filter-section-reset:not(.is-visible) {
  visibility: hidden !important;
}

@media(max-width:768px) {
  body.cbi-exact-body .cbi-filter-header-actions {
    min-width: 68px !important;
    gap: 8px !important;
  }

  body.cbi-exact-body .cbi-filter-section-reset {
    min-width: 40px !important;
    height: 21px !important;
    font-size: 10.5px !important;
  }
}


/* CBI v0.8.8: visual identity pass — keep UX, make shop feel more Hello Polo/CBI. */

/* Toolbar: more branded, less like the reference site. */
body.cbi-exact-body .cbi-shop-toolbar {
  border-top: 1px solid rgba(0, 0, 0, .08) !important;
  border-bottom: 1px solid rgba(0, 0, 0, .08) !important;
  padding: 13px 0 !important;
  margin-bottom: 22px !important;
  background: linear-gradient(180deg, #fff, #fffaf4) !important;
}

body.cbi-exact-body .cbi-shop-toolbar .filter-toggle,
body.cbi-exact-body .cbi-shop-toolbar .sort-toggle {
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  min-height: 34px !important;
  padding: 0 12px !important;
  border: 1px solid rgba(0, 0, 0, .12) !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #111 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: .01em !important;
  transition: border-color .18s ease, background .18s ease, transform .18s ease !important;
}

body.cbi-exact-body .cbi-shop-toolbar .filter-toggle:hover,
body.cbi-exact-body .cbi-shop-toolbar .sort-toggle:hover {
  border-color: rgba(0, 0, 0, .28) !important;
  background: #fffdf8 !important;
  transform: translateY(-1px) !important;
}

body.cbi-exact-body .cbi-shop-count {
  font-size: 13px !important;
  color: #777 !important;
  letter-spacing: .01em !important;
}

body.cbi-exact-body .cbi-shop-view {
  gap: 8px !important;
}

body.cbi-exact-body .cbi-shop-view>span {
  color: #777 !important;
  font-size: 13px !important;
}

body.cbi-exact-body .cbi-view-option {
  min-width: 30px !important;
  height: 30px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid rgba(0, 0, 0, .12) !important;
  border-radius: 50% !important;
  background: #fff !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  transition: background .18s ease, border-color .18s ease, color .18s ease !important;
}

body.cbi-exact-body .cbi-view-option.active,
body.cbi-exact-body .cbi-view-option:hover {
  background: #111 !important;
  border-color: #111 !important;
  color: #fff !important;
}

/* Filter sections: warmer tone, cleaner reset text. */
body.cbi-exact-body .filter-section-toggle {
  background: #f8f3eb !important;
  min-height: 46px !important;
  border-left: 3px solid #c8a46f !important;
  padding-left: 13px !important;
}

body.cbi-exact-body .filter-section-toggle:hover,
body.cbi-exact-body .filter-section-toggle:focus-visible {
  background: #f3ecdf !important;
}

body.cbi-exact-body .cbi-filter-section+.cbi-filter-section {
  border-top: 10px solid #fff !important;
}

body.cbi-exact-body .cbi-filter-section-reset {
  color: #8b6a42 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
  font-weight: 600 !important;
}

body.cbi-exact-body .cbi-filter-section-reset.is-visible:hover,
body.cbi-exact-body .cbi-filter-section-reset.is-visible:focus-visible {
  color: #111 !important;
}

/* Product card: add a subtle Hello Polo signature without changing product logic. */
body.cbi-exact-body .cbi-product-card {
  border: 1px solid transparent !important;
  transition: border-color .22s ease, box-shadow .22s ease, transform .22s ease !important;
}

body.cbi-exact-body .cbi-product-card:hover {
  border-color: rgba(143, 104, 55, .30) !important;
  box-shadow: 0 14px 34px rgba(67, 45, 22, .08) !important;
}

body.cbi-exact-body .product-image-wrapper {
  background: #f7f4ef !important;
}

body.cbi-exact-body .cbi-new-pill {
  background: #fff7eb !important;
  color: #7d5628 !important;
  border: 1px solid rgba(125, 86, 40, .22) !important;
  border-radius: 999px !important;
  padding: 3px 8px !important;
  font-size: 11px !important;
  letter-spacing: .06em !important;
}

body.cbi-exact-body .cbi-color-dot.is-selected {
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px #b89158 !important;
}

/* Add-cart styling: slightly warmer brand button. */
body.cbi-exact-body .cbi-add-cart {
  background: #111 !important;
  border-color: #111 !important;
}

body.cbi-exact-body .cbi-add-cart:hover {
  background: #7d5628 !important;
  border-color: #7d5628 !important;
}

@media(max-width:768px) {
  body.cbi-exact-body .cbi-shop-toolbar {
    padding: 10px 0 !important;
  }

  body.cbi-exact-body .cbi-shop-toolbar .filter-toggle,
  body.cbi-exact-body .cbi-shop-toolbar .sort-toggle {
    min-height: 32px !important;
    padding: 0 10px !important;
    font-size: 13px !important;
  }

  body.cbi-exact-body .cbi-view-option {
    min-width: 28px !important;
    height: 28px !important;
  }
}


/* CBI v0.8.9: modernize shop toolbar only. */
body.cbi-exact-body .cbi-shop-toolbar {
  background: #fff !important;
  border-top: 1px solid rgba(0, 0, 0, .06) !important;
  border-bottom: 1px solid rgba(0, 0, 0, .06) !important;
  padding: 11px 0 !important;
  margin-bottom: 20px !important;
  box-shadow: none !important;
}

body.cbi-exact-body .cbi-shop-toolbar .filter-toggle,
body.cbi-exact-body .cbi-shop-toolbar .sort-toggle {
  min-height: auto !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #111 !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  gap: 7px !important;
  transform: none !important;
  box-shadow: none !important;
}

body.cbi-exact-body .cbi-shop-toolbar .filter-toggle:hover,
body.cbi-exact-body .cbi-shop-toolbar .sort-toggle:hover {
  border-color: transparent !important;
  background: transparent !important;
  transform: none !important;
  color: #6f4d25 !important;
}

body.cbi-exact-body .cbi-shop-toolbar .filter-toggle i,
body.cbi-exact-body .cbi-shop-toolbar .sort-toggle i {
  font-size: 16px !important;
  line-height: 1 !important;
}

body.cbi-exact-body .cbi-shop-actions-left {
  gap: 20px !important;
}

body.cbi-exact-body .cbi-shop-actions-left .toolbar-divider {
  height: 18px !important;
  opacity: .45 !important;
}

body.cbi-exact-body .cbi-shop-count {
  color: #8a8a8a !important;
  font-size: 13px !important;
  font-style: italic !important;
  letter-spacing: 0 !important;
}

body.cbi-exact-body .cbi-shop-view {
  gap: 11px !important;
  align-items: center !important;
}

body.cbi-exact-body .cbi-shop-view>span {
  color: #555 !important;
  font-size: 13px !important;
  font-weight: 500 !important;
}

@media(max-width:768px) {
  body.cbi-exact-body .cbi-shop-toolbar {
    padding: 10px 0 !important;
  }

  body.cbi-exact-body .cbi-shop-actions-left {
    gap: 13px !important;
  }

  body.cbi-exact-body .cbi-shop-toolbar .filter-toggle,
  body.cbi-exact-body .cbi-shop-toolbar .sort-toggle {
    font-size: 13px !important;
  }

  body.cbi-exact-body .cbi-shop-view {
    gap: 8px !important;
  }
}


/* CBI v0.9.0: switch warm/gold accents to brand blue theme. */
body.cbi-exact-body {
  --cbi-brand-blue: #1e3a8a;
  --cbi-brand-blue-2: #2748a6;
  --cbi-brand-blue-3: #5f7fcb;
  --cbi-brand-blue-soft: #edf3ff;
  --cbi-brand-blue-soft-2: #f6f9ff;
  --cbi-brand-blue-line: rgba(30, 58, 138, .18);
}

/* Toolbar hover / active */
body.cbi-exact-body .cbi-shop-toolbar .filter-toggle:hover,
body.cbi-exact-body .cbi-shop-toolbar .sort-toggle:hover {
  color: var(--cbi-brand-blue) !important;
}

body.cbi-exact-body .cbi-view-option.active,
body.cbi-exact-body .cbi-view-option:hover {
  background: var(--cbi-brand-blue) !important;
  border-color: var(--cbi-brand-blue) !important;
  color: #fff !important;
}

/* Filter section headers */
body.cbi-exact-body .filter-section-toggle {
  background: var(--cbi-brand-blue-soft) !important;
  border-left: 3px solid var(--cbi-brand-blue) !important;
}

body.cbi-exact-body .filter-section-toggle:hover,
body.cbi-exact-body .filter-section-toggle:focus-visible {
  background: var(--cbi-brand-blue-soft-2) !important;
}

body.cbi-exact-body .cbi-filter-section-reset {
  color: var(--cbi-brand-blue-2) !important;
}

body.cbi-exact-body .cbi-filter-section-reset.is-visible:hover,
body.cbi-exact-body .cbi-filter-section-reset.is-visible:focus-visible,
body.cbi-exact-body .filter-section-toggle:hover .cbi-filter-section-reset.is-visible {
  color: var(--cbi-brand-blue) !important;
}

/* Selected state / accent items */
body.cbi-exact-body .cbi-color-dot.is-selected {
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--cbi-brand-blue-3) !important;
}

body.cbi-exact-body .cbi-new-pill {
  background: var(--cbi-brand-blue-soft) !important;
  color: var(--cbi-brand-blue) !important;
  border: 1px solid var(--cbi-brand-blue-line) !important;
}

/* Product card hover */
body.cbi-exact-body .cbi-product-card:hover {
  border-color: rgba(39, 72, 166, .26) !important;
  box-shadow: 0 14px 34px rgba(30, 58, 138, .10) !important;
}

body.cbi-exact-body .product-image-wrapper {
  background: #f6f8fc !important;
}

/* Price slider accent */
body.cbi-exact-body .cbi-price-filter-slider .cbi-price-slider-track {
  background: linear-gradient(to right,
      #d7d7d7 0%,
      #d7d7d7 var(--cbi-price-from),
      var(--cbi-brand-blue-3) var(--cbi-price-from),
      var(--cbi-brand-blue-3) var(--cbi-price-to),
      #d7d7d7 var(--cbi-price-to),
      #d7d7d7 100%) !important;
}

body.cbi-exact-body .cbi-price-filter-slider .cbi-price-range-input:hover::-webkit-slider-thumb,
body.cbi-exact-body .cbi-price-filter-slider .cbi-price-range-input:focus-visible::-webkit-slider-thumb {
  border-color: var(--cbi-brand-blue-3) !important;
  box-shadow: 0 0 0 3px rgba(39, 72, 166, .08), 0 1px 4px rgba(30, 58, 138, .20) !important;
}

body.cbi-exact-body .cbi-price-filter-slider .cbi-price-range-input:hover::-moz-range-thumb,
body.cbi-exact-body .cbi-price-filter-slider .cbi-price-range-input:focus-visible::-moz-range-thumb {
  border-color: var(--cbi-brand-blue-3) !important;
  box-shadow: 0 0 0 3px rgba(39, 72, 166, .08), 0 1px 4px rgba(30, 58, 138, .20) !important;
}

/* Primary CTA */
body.cbi-exact-body .cbi-add-cart {
  background: var(--cbi-brand-blue) !important;
  border-color: var(--cbi-brand-blue) !important;
}

body.cbi-exact-body .cbi-add-cart:hover {
  background: var(--cbi-brand-blue-2) !important;
  border-color: var(--cbi-brand-blue-2) !important;
}

/* Active/checked controls */
body.cbi-exact-body input[type="checkbox"]:checked,
body.cbi-exact-body input[type="radio"]:checked {
  accent-color: var(--cbi-brand-blue) !important;
}

body.cbi-exact-body .cbi-price-filter-slider input[type="number"]:focus {
  border-color: var(--cbi-brand-blue) !important;
  box-shadow: 0 0 0 2px rgba(39, 72, 166, .08) !important;
}


/* CBI v0.9.1: fix WooCommerce category tree indentation only. */
body.cbi-exact-body .filter-children {
  border-left: 0 !important;
  margin-left: 0 !important;
  padding-left: 0 !important;
}

body.cbi-exact-body .filter-children .filter-link,
body.cbi-exact-body .filter-children .filter-link-depth-1 {
  padding-left: 38px !important;
}

body.cbi-exact-body .filter-children .filter-link-depth-2 {
  padding-left: 56px !important;
}

body.cbi-exact-body .filter-children .filter-link-depth-3 {
  padding-left: 74px !important;
}

/* Keep checkbox, name, and count aligned after the indent change. */
body.cbi-exact-body .filter-children .cbi-filter-box {
  flex: 0 0 18px !important;
}

body.cbi-exact-body .filter-children .cbi-filter-name {
  min-width: 0 !important;
}

@media(max-width:768px) {

  body.cbi-exact-body .filter-children .filter-link,
  body.cbi-exact-body .filter-children .filter-link-depth-1 {
    padding-left: 34px !important;
  }

  body.cbi-exact-body .filter-children .filter-link-depth-2 {
    padding-left: 50px !important;
  }

  body.cbi-exact-body .filter-children .filter-link-depth-3 {
    padding-left: 66px !important;
  }
}


/* CBI v0.9.2: responsive polish for desktop / notebook / tablet / mobile.
   CSS-only overrides: do not change filter, AJAX, sort, or product logic. */
body.cbi-exact-body {
  --cbi-safe-x: clamp(14px, 2.8vw, 42px);
}

/* Large desktop: keep content wide but not stretched awkwardly. */
@media(min-width:1600px) {

  body.cbi-exact-body .cbi-container,
  body.cbi-exact-body .shop-brand-strip .cbi-container {
    width: min(94vw, 1760px) !important;
    max-width: 1760px !important;
  }

  body.cbi-exact-body .cbi-catalog-shell.filter-open {
    grid-template-columns: minmax(270px, 310px) minmax(0, 1fr) !important;
    gap: 28px !important;
  }

  body.cbi-exact-body .filter-menu {
    width: 300px !important;
  }
}

/* Common notebook / 1366px screens. */
@media(max-width:1440px) {

  body.cbi-exact-body .cbi-container,
  body.cbi-exact-body .shop-brand-strip .cbi-container {
    width: calc(100% - 56px) !important;
    max-width: 1320px !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-grid {
    grid-template-columns: repeat(4, minmax(150px, 1fr)) !important;
  }

  body.cbi-exact-body .cbi-catalog-shell.filter-open {
    grid-template-columns: minmax(250px, 280px) minmax(0, 1fr) !important;
    gap: 24px !important;
  }

  body.cbi-exact-body .filter-menu {
    width: 280px !important;
  }
}

/* Small notebook / landscape tablet. */
@media(max-width:1200px) {

  body.cbi-exact-body .cbi-container,
  body.cbi-exact-body .shop-brand-strip .cbi-container {
    width: calc(100% - 40px) !important;
    max-width: 1120px !important;
  }

  body.cbi-exact-body .shop-brand-bar {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    align-items: start !important;
  }

  body.cbi-exact-body .shop-brand-head {
    justify-content: flex-start !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-grid {
    grid-template-columns: repeat(3, minmax(150px, 1fr)) !important;
  }

  body.cbi-exact-body .cbi-catalog-shell.filter-open {
    grid-template-columns: minmax(235px, 260px) minmax(0, 1fr) !important;
    gap: 20px !important;
  }

  body.cbi-exact-body .filter-menu {
    width: 260px !important;
  }

  body.cbi-exact-body .cbi-catalog-view-6 .product-container,
  body.cbi-exact-body .product-container.cbi-view-6 {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

/* Tablet portrait: convert to overlay filter and keep cards readable. */
@media(max-width:900px) {

  body.cbi-exact-body .cbi-container,
  body.cbi-exact-body .shop-brand-strip .cbi-container {
    width: calc(100% - 32px) !important;
    max-width: none !important;
  }

  body.cbi-exact-body .shop-hero-video {
    height: clamp(300px, 46vh, 460px) !important;
    min-height: 300px !important;
  }

  body.cbi-exact-body .shop-brand-section.shop-brand-strip {
    padding: 24px 0 18px !important;
  }

  body.cbi-exact-body .shop-brand-bar {
    padding-bottom: 16px !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-grid {
    display: flex !important;
    gap: 10px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding: 0 2px 8px !important;
    scroll-snap-type: x proximity !important;
    -webkit-overflow-scrolling: touch !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-card {
    flex: 0 0 170px !important;
    height: 54px !important;
    min-height: 54px !important;
    scroll-snap-align: start !important;
  }

  body.cbi-exact-body .catalog-toolbar.cbi-shop-toolbar {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    grid-template-areas:
      "left view"
      "count count" !important;
    gap: 9px 14px !important;
    align-items: center !important;
    padding: 12px 0 !important;
  }

  body.cbi-exact-body .cbi-shop-toolbar-left {
    grid-area: left !important;
    min-width: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    flex-wrap: nowrap !important;
  }

  body.cbi-exact-body .cbi-shop-count {
    grid-area: count !important;
    justify-self: start !important;
    font-size: 12px !important;
  }

  body.cbi-exact-body .cbi-shop-view {
    grid-area: view !important;
    display: flex !important;
  }

  body.cbi-exact-body .cbi-shop-view>span {
    display: none !important;
  }

  body.cbi-exact-body .cbi-catalog-shell,
  body.cbi-exact-body .cbi-catalog-shell.filter-open {
    display: block !important;
    grid-template-columns: none !important;
  }

  body.cbi-exact-body .filter-menu {
    display: none !important;
    position: fixed !important;
    left: 16px !important;
    right: 16px !important;
    top: auto !important;
    bottom: 16px !important;
    width: auto !important;
    max-width: none !important;
    max-height: min(74vh, 680px) !important;
    overflow: auto !important;
    overscroll-behavior: contain !important;
    z-index: 10050 !important;
    padding: 0 !important;
    background: #fff !important;
    border: 1px solid rgba(0, 0, 0, .12) !important;
    border-radius: 18px !important;
    box-shadow: 0 22px 70px rgba(0, 0, 0, .24) !important;
    transform: translateY(14px) !important;
  }

  body.cbi-exact-body .filter-menu.mobile-active {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) !important;
  }

  body.cbi-exact-body .filter-section-toggle {
    min-height: 48px !important;
  }

  body.cbi-exact-body .filter-parent-link,
  body.cbi-exact-body .filter-link {
    min-height: 34px !important;
  }

  body.cbi-exact-body .product-container,
  body.cbi-exact-body .cbi-catalog-view-3 .product-container,
  body.cbi-exact-body .cbi-catalog-view-4 .product-container,
  body.cbi-exact-body .cbi-catalog-view-6 .product-container,
  body.cbi-exact-body .product-container.cbi-view-3,
  body.cbi-exact-body .product-container.cbi-view-4,
  body.cbi-exact-body .product-container.cbi-view-6 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 20px 10px !important;
  }
}

/* Mobile: clean toolbar, 2-column catalog, full touch controls. */
@media(max-width:640px) {

  body.cbi-exact-body .cbi-container,
  body.cbi-exact-body .shop-brand-strip .cbi-container {
    width: calc(100% - 24px) !important;
  }

  body.cbi-exact-body .shop-hero-video {
    height: clamp(250px, 42vh, 360px) !important;
    min-height: 250px !important;
  }

  body.cbi-exact-body .shop-brand-head h2 {
    font-size: 20px !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-card {
    flex-basis: 152px !important;
    height: 50px !important;
    min-height: 50px !important;
    padding: 7px 10px !important;
  }

  body.cbi-exact-body .shop-brand-logo-wrap {
    width: 32px !important;
    height: 32px !important;
    flex: 0 0 32px !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-card strong {
    font-size: 12px !important;
  }

  body.cbi-exact-body .catalog-toolbar.cbi-shop-toolbar {
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "left"
      "view"
      "count" !important;
    gap: 8px !important;
    margin-bottom: 16px !important;
  }

  body.cbi-exact-body .cbi-shop-toolbar-left {
    width: 100% !important;
    justify-content: space-between !important;
    gap: 8px !important;
  }

  body.cbi-exact-body .cbi-toolbar-separator {
    display: none !important;
  }

  body.cbi-exact-body .cbi-shop-toolbar .filter-toggle,
  body.cbi-exact-body .cbi-shop-toolbar .sort-toggle {
    font-size: 13px !important;
    max-width: calc(50vw - 22px) !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.cbi-exact-body .cbi-shop-view {
    justify-self: end !important;
    gap: 12px !important;
  }

  body.cbi-exact-body .cbi-shop-count {
    justify-self: end !important;
  }

  body.cbi-exact-body .product-container,
  body.cbi-exact-body .cbi-catalog-view-3 .product-container,
  body.cbi-exact-body .cbi-catalog-view-4 .product-container,
  body.cbi-exact-body .cbi-catalog-view-6 .product-container,
  body.cbi-exact-body .product-container.cbi-view-3,
  body.cbi-exact-body .product-container.cbi-view-4,
  body.cbi-exact-body .product-container.cbi-view-6 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 22px 8px !important;
  }

  body.cbi-exact-body .product-image-wrapper,
  body.cbi-exact-body .cbi-product-media {
    border-radius: 3px !important;
  }

  body.cbi-exact-body .card-body,
  body.cbi-exact-body .cbi-product-summary {
    padding: 9px 4px 12px !important;
    gap: 5px !important;
  }

  body.cbi-exact-body .cbi-product-colors {
    gap: 5px !important;
    min-height: 20px !important;
    justify-content: center !important;
  }

  body.cbi-exact-body .cbi-color-dot {
    width: 15px !important;
    height: 15px !important;
  }

  body.cbi-exact-body .cbi-new-pill {
    font-size: 10px !important;
    padding: 2px 7px !important;
  }

  body.cbi-exact-body .cbi-product-title {
    font-size: 13px !important;
    line-height: 1.35 !important;
    min-height: 2.7em !important;
  }

  body.cbi-exact-body .cbi-product-price {
    font-size: 13px !important;
  }

  body.cbi-exact-body .cbi-product-sizes {
    gap: 5px !important;
  }

  body.cbi-exact-body .cbi-size-chip {
    min-width: 32px !important;
    min-height: 28px !important;
    font-size: 12px !important;
  }

  body.cbi-exact-body .cbi-add-cart {
    width: 100% !important;
    min-height: 36px !important;
    font-size: 12px !important;
  }
}

/* Small phones: prevent cramped cards and overlay issues. */
@media(max-width:390px) {

  body.cbi-exact-body .cbi-container,
  body.cbi-exact-body .shop-brand-strip .cbi-container {
    width: calc(100% - 18px) !important;
  }

  body.cbi-exact-body .cbi-shop-toolbar .filter-toggle,
  body.cbi-exact-body .cbi-shop-toolbar .sort-toggle {
    font-size: 12px !important;
    max-width: calc(50vw - 18px) !important;
  }

  body.cbi-exact-body .cbi-shop-view {
    gap: 10px !important;
  }

  body.cbi-exact-body .product-container,
  body.cbi-exact-body .cbi-catalog-view-3 .product-container,
  body.cbi-exact-body .cbi-catalog-view-4 .product-container,
  body.cbi-exact-body .cbi-catalog-view-6 .product-container,
  body.cbi-exact-body .product-container.cbi-view-3,
  body.cbi-exact-body .product-container.cbi-view-4,
  body.cbi-exact-body .product-container.cbi-view-6 {
    gap: 20px 7px !important;
  }

  body.cbi-exact-body .cbi-product-title {
    font-size: 12.5px !important;
  }

  body.cbi-exact-body .filter-menu {
    left: 10px !important;
    right: 10px !important;
    bottom: 10px !important;
    max-height: 78vh !important;
    border-radius: 16px !important;
  }
}

/* Very narrow legacy phones: one column is safer than unreadable cards. */
@media(max-width:330px) {

  body.cbi-exact-body .product-container,
  body.cbi-exact-body .cbi-catalog-view-3 .product-container,
  body.cbi-exact-body .cbi-catalog-view-4 .product-container,
  body.cbi-exact-body .cbi-catalog-view-6 .product-container,
  body.cbi-exact-body .product-container.cbi-view-3,
  body.cbi-exact-body .product-container.cbi-view-4,
  body.cbi-exact-body .product-container.cbi-view-6 {
    grid-template-columns: 1fr !important;
  }
}

/* Touch devices: do not depend on hover-only product details. */
@media(hover:none) {

  body.cbi-exact-body .product-card.cbi-product-card-v5 .cbi-product-summary,
  body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5 .cbi-product-summary,
  body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5 .cbi-product-summary {
    position: static !important;
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  body.cbi-exact-body .product-image-wrapper img.human-view {
    opacity: 0 !important;
  }
}


/* CBI v0.9.3: fix tablet breakpoints requested by user.
   - 901–1024: keep desktop-style toolbar instead of awkward stacked layout.
   - 770–900: make filter overlay open correctly with JS max-width 900. */

/* 901–1024px: notebook/tablet landscape layout. */
@media(min-width:901px) and (max-width:1024px) {

  body.cbi-exact-body .cbi-container,
  body.cbi-exact-body .shop-brand-strip .cbi-container,
  body.cbi-exact-body .cbi-catalog-section>.cbi-container {
    width: calc(100% - 40px) !important;
    max-width: none !important;
  }

  body.cbi-exact-body .shop-brand-section.shop-brand-strip {
    padding: 28px 0 18px !important;
  }

  body.cbi-exact-body .shop-brand-bar {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    align-items: start !important;
    padding-bottom: 18px !important;
  }

  body.cbi-exact-body .shop-brand-head {
    justify-content: flex-start !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 10px !important;
    overflow: visible !important;
    padding: 0 !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-card {
    width: 100% !important;
    min-width: 0 !important;
    height: 52px !important;
    min-height: 52px !important;
  }

  body.cbi-exact-body .catalog-toolbar.cbi-shop-toolbar {
    display: grid !important;
    grid-template-columns: minmax(250px, 1fr) auto minmax(170px, 1fr) !important;
    grid-template-areas: "left count view" !important;
    align-items: center !important;
    gap: 14px !important;
    justify-items: stretch !important;
    padding: 11px 0 !important;
    margin-bottom: 18px !important;
  }

  body.cbi-exact-body .cbi-shop-toolbar-left {
    grid-area: left !important;
    width: auto !important;
    justify-self: start !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    gap: 14px !important;
  }

  body.cbi-exact-body .cbi-shop-count {
    grid-area: count !important;
    justify-self: center !important;
    text-align: center !important;
    white-space: nowrap !important;
  }

  body.cbi-exact-body .cbi-shop-view {
    grid-area: view !important;
    display: flex !important;
    justify-self: end !important;
    align-items: center !important;
    gap: 11px !important;
  }

  body.cbi-exact-body .cbi-shop-view>span {
    display: inline !important;
  }

  body.cbi-exact-body .cbi-catalog-shell,
  body.cbi-exact-body .cbi-catalog-shell.filter-open {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.cbi-exact-body .cbi-catalog-shell.filter-open {
    grid-template-columns: minmax(225px, 250px) minmax(0, 1fr) !important;
    gap: 20px !important;
  }

  body.cbi-exact-body .filter-menu {
    width: 250px !important;
    display: block !important;
    position: static !important;
    max-height: none !important;
    overflow: visible !important;
    box-shadow: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    transform: none !important;
    padding: 0 0 18px !important;
  }

  body.cbi-exact-body .cbi-catalog-shell:not(.filter-open) .filter-menu {
    display: none !important;
  }

  body.cbi-exact-body .product-container,
  body.cbi-exact-body .cbi-catalog-view-3 .product-container,
  body.cbi-exact-body .cbi-catalog-view-4 .product-container,
  body.cbi-exact-body .cbi-catalog-view-6 .product-container,
  body.cbi-exact-body .product-container.cbi-view-3,
  body.cbi-exact-body .product-container.cbi-view-4,
  body.cbi-exact-body .product-container.cbi-view-6 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 24px 10px !important;
  }
}

/* 770–900px: true tablet overlay filter. */
@media(min-width:769px) and (max-width:900px) {

  body.cbi-exact-body .cbi-container,
  body.cbi-exact-body .shop-brand-strip .cbi-container,
  body.cbi-exact-body .cbi-catalog-section>.cbi-container {
    width: calc(100% - 36px) !important;
    max-width: none !important;
  }

  body.cbi-exact-body .catalog-toolbar.cbi-shop-toolbar {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    grid-template-areas:
      "left view"
      "count count" !important;
    gap: 9px 14px !important;
    align-items: center !important;
    padding: 12px 0 !important;
  }

  body.cbi-exact-body .cbi-shop-toolbar-left {
    grid-area: left !important;
    width: auto !important;
    justify-content: flex-start !important;
    gap: 14px !important;
  }

  body.cbi-exact-body .cbi-shop-count {
    grid-area: count !important;
    justify-self: start !important;
  }

  body.cbi-exact-body .cbi-shop-view {
    grid-area: view !important;
    display: flex !important;
    justify-self: end !important;
  }

  body.cbi-exact-body .cbi-shop-view>span {
    display: none !important;
  }

  body.cbi-exact-body .cbi-catalog-shell,
  body.cbi-exact-body .cbi-catalog-shell.filter-open {
    display: block !important;
    grid-template-columns: none !important;
  }

  body.cbi-exact-body .filter-menu,
  body.cbi-exact-body .cbi-catalog-shell.filter-open .filter-menu {
    display: none !important;
    position: fixed !important;
    left: 18px !important;
    right: 18px !important;
    top: auto !important;
    bottom: 18px !important;
    width: auto !important;
    max-width: none !important;
    max-height: min(74vh, 680px) !important;
    overflow: auto !important;
    overscroll-behavior: contain !important;
    z-index: 10050 !important;
    padding: 0 !important;
    background: #fff !important;
    border: 1px solid rgba(0, 0, 0, .12) !important;
    border-radius: 18px !important;
    box-shadow: 0 22px 70px rgba(0, 0, 0, .24) !important;
    transform: translateY(14px) !important;
    visibility: hidden !important;
    opacity: 0 !important;
  }

  body.cbi-exact-body .filter-menu.mobile-active {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: translateY(0) !important;
  }

  body.cbi-exact-body .product-container,
  body.cbi-exact-body .cbi-catalog-view-3 .product-container,
  body.cbi-exact-body .cbi-catalog-view-4 .product-container,
  body.cbi-exact-body .cbi-catalog-view-6 .product-container,
  body.cbi-exact-body .product-container.cbi-view-3,
  body.cbi-exact-body .product-container.cbi-view-4,
  body.cbi-exact-body .product-container.cbi-view-6 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 22px 10px !important;
  }
}

/* 641–768px: keep old mobile overlay working, but force active visible. */
@media(min-width:641px) and (max-width:768px) {
  body.cbi-exact-body .filter-menu.mobile-active {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: translateY(0) !important;
    z-index: 10050 !important;
  }
}


/* CBI v0.9.4: compact brand selector only for 901–1024px. */
@media(min-width:901px) and (max-width:1024px) {
  body.cbi-exact-body .shop-brand-section.shop-brand-strip {
    padding: 18px 0 12px !important;
  }

  body.cbi-exact-body .shop-brand-bar {
    display: grid !important;
    grid-template-columns: 86px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 14px !important;
    padding: 0 0 14px !important;
    border-bottom: 1px solid rgba(0, 0, 0, .08) !important;
  }

  body.cbi-exact-body .shop-brand-head {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    margin: 0 !important;
    min-width: 0 !important;
  }

  body.cbi-exact-body .shop-brand-head h2 {
    font-size: 17px !important;
    line-height: 1 !important;
    margin: 0 !important;
    white-space: nowrap !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-grid {
    display: flex !important;
    grid-template-columns: none !important;
    gap: 9px !important;
    align-items: center !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding: 0 2px 7px !important;
    scroll-snap-type: x proximity !important;
    -webkit-overflow-scrolling: touch !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-card {
    flex: 0 0 155px !important;
    width: 155px !important;
    min-width: 155px !important;
    height: 48px !important;
    min-height: 48px !important;
    padding: 7px 11px !important;
    border-radius: 999px !important;
    scroll-snap-align: start !important;
  }

  body.cbi-exact-body .shop-brand-logo-wrap {
    width: 30px !important;
    height: 30px !important;
    flex: 0 0 30px !important;
  }

  body.cbi-exact-body .shop-brand-logo {
    max-width: 24px !important;
    max-height: 24px !important;
  }

  body.cbi-exact-body .shop-brand-strip .shop-brand-card strong {
    font-size: 12px !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
}


/* CBI v0.9.5: fix mobile toolbar stacking for 0–640px only. */
@media(max-width:640px) {
  body.cbi-exact-body .catalog-toolbar.cbi-shop-toolbar {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    grid-template-areas:
      "left right"
      "count count" !important;
    align-items: start !important;
    gap: 10px 12px !important;
    padding: 12px 0 !important;
    margin-bottom: 16px !important;
  }

  body.cbi-exact-body .cbi-shop-toolbar-left {
    grid-area: left !important;
    width: 100% !important;
    min-width: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 12px !important;
    flex-wrap: nowrap !important;
  }

  body.cbi-exact-body .cbi-shop-toolbar .filter-toggle {
    flex: 0 0 auto !important;
    max-width: none !important;
    white-space: nowrap !important;
  }

  body.cbi-exact-body .cbi-shop-toolbar .sort-toggle {
    flex: 1 1 auto !important;
    max-width: none !important;
    min-width: 0 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.cbi-exact-body .cbi-shop-view {
    grid-area: right !important;
    display: flex !important;
    align-items: center !important;
    justify-self: end !important;
    justify-content: flex-end !important;
    gap: 12px !important;
    margin: 0 !important;
  }

  body.cbi-exact-body .cbi-shop-view>span {
    display: none !important;
  }

  body.cbi-exact-body .cbi-shop-count {
    grid-area: count !important;
    display: block !important;
    justify-self: end !important;
    text-align: right !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
    margin: 0 !important;
  }
}

/* Extra narrow phones: keep sort on its own row if needed, but not piled on the far right. */
@media(max-width:420px) {
  body.cbi-exact-body .catalog-toolbar.cbi-shop-toolbar {
    grid-template-columns: 1fr auto !important;
    grid-template-areas:
      "left left"
      "right count" !important;
    align-items: start !important;
  }

  body.cbi-exact-body .cbi-shop-toolbar-left {
    width: 100% !important;
  }

  body.cbi-exact-body .cbi-shop-view {
    justify-self: start !important;
  }

  body.cbi-exact-body .cbi-shop-count {
    justify-self: end !important;
  }
}


/* CBI v0.9.6: 0-1023px auto catalog grid and hidden product view control.
   The numeric 3/4/6 view switch is useful on desktop only. Below 1024px the
   product grid now ignores cbi-view-* classes and lets CSS choose columns from
   the available width, including when the filter panel is open. */
@media(max-width:1023px) {
  body.cbi-exact-body .catalog-toolbar.cbi-shop-toolbar {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-areas: "left count" !important;
    align-items: center !important;
    gap: 10px 14px !important;
    padding: 12px 0 !important;
    margin-bottom: 18px !important;
  }

  body.cbi-exact-body .cbi-shop-toolbar-left {
    grid-area: left !important;
    width: auto !important;
    min-width: 0 !important;
    justify-self: start !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 12px !important;
    flex-wrap: nowrap !important;
  }

  body.cbi-exact-body .cbi-shop-count {
    grid-area: count !important;
    display: block !important;
    justify-self: end !important;
    text-align: right !important;
    white-space: nowrap !important;
    margin: 0 !important;
  }

  body.cbi-exact-body .cbi-shop-view,
  body.cbi-exact-body .catalog-toolbar.cbi-shop-toolbar .cbi-shop-view {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  body.cbi-exact-body .product-container,
  body.cbi-exact-body .cbi-catalog-view-3 .product-container,
  body.cbi-exact-body .cbi-catalog-view-4 .product-container,
  body.cbi-exact-body .cbi-catalog-view-6 .product-container,
  body.cbi-exact-body .product-container.cbi-view-3,
  body.cbi-exact-body .product-container.cbi-view-4,
  body.cbi-exact-body .product-container.cbi-view-6 {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(clamp(156px, 24vw, 230px), 1fr)) !important;
    gap: 22px 10px !important;
    width: 100% !important;
  }
}

@media(max-width:560px) {
  body.cbi-exact-body .catalog-toolbar.cbi-shop-toolbar {
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "left"
      "count" !important;
    align-items: start !important;
    gap: 9px !important;
  }

  body.cbi-exact-body .cbi-shop-toolbar-left {
    width: 100% !important;
    justify-content: flex-start !important;
  }

  body.cbi-exact-body .cbi-shop-toolbar .filter-toggle {
    flex: 0 0 auto !important;
  }

  body.cbi-exact-body .cbi-shop-toolbar .sort-toggle {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: none !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.cbi-exact-body .cbi-shop-count {
    justify-self: end !important;
    text-align: right !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
    white-space: normal !important;
  }
}

@media(max-width:340px) {

  body.cbi-exact-body .product-container,
  body.cbi-exact-body .cbi-catalog-view-3 .product-container,
  body.cbi-exact-body .cbi-catalog-view-4 .product-container,
  body.cbi-exact-body .cbi-catalog-view-6 .product-container,
  body.cbi-exact-body .product-container.cbi-view-3,
  body.cbi-exact-body .product-container.cbi-view-4,
  body.cbi-exact-body .product-container.cbi-view-6 {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr)) !important;
  }
}


/* v0.9.7 mobile toolbar refinement */
@media(max-width:1023px) {
  body.cbi-exact-body .cbi-shop-count-full {
    display: inline !important;
  }

  body.cbi-exact-body .cbi-shop-count-compact {
    display: none !important;
  }
}

@media(max-width:560px) {
  body.cbi-exact-body .cbi-shop-toolbar-left {
    width: 100% !important;
    justify-content: flex-start !important;
    gap: 10px !important;
  }

  body.cbi-exact-body .cbi-shop-toolbar .sort-dropdown {
    margin-left: auto !important;
    flex: 0 1 auto !important;
    max-width: calc(100% - 108px) !important;
  }

  body.cbi-exact-body .cbi-shop-toolbar .sort-toggle {
    flex: 0 1 auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.cbi-exact-body .cbi-shop-count {
    justify-self: end !important;
    text-align: right !important;
  }

  body.cbi-exact-body .cbi-shop-count-full {
    display: none !important;
  }

  body.cbi-exact-body .cbi-shop-count-compact {
    display: inline !important;
  }
}

/* v0.9.8 display-only product cards for non-mouse devices */
@media (hover: none),
(pointer: coarse) {

  body.cbi-exact-body .cbi-product-card-v5 .cbi-product-sizes,
  body.cbi-exact-body .cbi-product-card-v5 .cbi-card-actions {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  body.cbi-exact-body .cbi-product-card-v5 .cbi-product-colors {
    position: relative !important;
    z-index: 3 !important;
    pointer-events: auto !important;
  }

  body.cbi-exact-body .cbi-product-card-v5 .cbi-color-dot {
    pointer-events: auto !important;
    cursor: pointer !important;
  }
}

html.cbi-card-display-only-device body.cbi-exact-body .cbi-product-card-v5 .cbi-product-sizes,
html.cbi-card-display-only-device body.cbi-exact-body .cbi-product-card-v5 .cbi-card-actions,
body.cbi-exact-body.cbi-card-display-only-device .cbi-product-card-v5 .cbi-product-sizes,
body.cbi-exact-body.cbi-card-display-only-device .cbi-product-card-v5 .cbi-card-actions {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

html.cbi-card-display-only-device body.cbi-exact-body .cbi-product-card-v5 .cbi-product-colors,
body.cbi-exact-body.cbi-card-display-only-device .cbi-product-card-v5 .cbi-product-colors {
  position: relative !important;
  z-index: 3 !important;
  pointer-events: auto !important;
}


/* v0.9.9 remove black card outline on touch/display-only devices */
@media (hover: none),
(pointer: coarse) {

  body.cbi-exact-body .product-card.cbi-product-card-v5,
  body.cbi-exact-body .product-card.cbi-product-card-v5:hover,
  body.cbi-exact-body .product-card.cbi-product-card-v5:focus,
  body.cbi-exact-body .product-card.cbi-product-card-v5:focus-within,
  body.cbi-exact-body .product-card.cbi-product-card-v5:active {
    outline: none !important;
    outline-color: transparent !important;
    box-shadow: none !important;
    border-color: transparent !important;
  }
}

html.cbi-card-display-only-device body.cbi-exact-body .product-card.cbi-product-card-v5,
html.cbi-card-display-only-device body.cbi-exact-body .product-card.cbi-product-card-v5:hover,
html.cbi-card-display-only-device body.cbi-exact-body .product-card.cbi-product-card-v5:focus,
html.cbi-card-display-only-device body.cbi-exact-body .product-card.cbi-product-card-v5:focus-within,
html.cbi-card-display-only-device body.cbi-exact-body .product-card.cbi-product-card-v5:active,
body.cbi-exact-body.cbi-card-display-only-device .product-card.cbi-product-card-v5,
body.cbi-exact-body.cbi-card-display-only-device .product-card.cbi-product-card-v5:hover,
body.cbi-exact-body.cbi-card-display-only-device .product-card.cbi-product-card-v5:focus,
body.cbi-exact-body.cbi-card-display-only-device .product-card.cbi-product-card-v5:focus-within,
body.cbi-exact-body.cbi-card-display-only-device .product-card.cbi-product-card-v5:active {
  outline: none !important;
  outline-color: transparent !important;
  box-shadow: none !important;
  border-color: transparent !important;
}


/* v0.9.10 keep 6-column view image-only on non-mouse/display-only devices */
@media (hover: none),
(pointer: coarse) {

  html.cbi-card-display-only-device body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5 .cbi-product-summary,
  html.cbi-card-display-only-device body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5 .cbi-product-summary,
  body.cbi-exact-body.cbi-card-display-only-device .cbi-catalog-view-6 .cbi-product-card-v5 .cbi-product-summary,
  body.cbi-exact-body.cbi-card-display-only-device .product-container.cbi-view-6 .cbi-product-card-v5 .cbi-product-summary {
    display: none !important;
    position: absolute !important;
    visibility: hidden !important;
    pointer-events: none !important;
    opacity: 0 !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    min-height: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
  }
}

html.cbi-card-display-only-device body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5 .cbi-product-summary,
html.cbi-card-display-only-device body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5 .cbi-product-summary,
body.cbi-exact-body.cbi-card-display-only-device .cbi-catalog-view-6 .cbi-product-card-v5 .cbi-product-summary,
body.cbi-exact-body.cbi-card-display-only-device .product-container.cbi-view-6 .cbi-product-card-v5 .cbi-product-summary {
  display: none !important;
  position: absolute !important;
  visibility: hidden !important;
  pointer-events: none !important;
  opacity: 0 !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
}

/* v0.9.11 mobile/touch quick add popup */
body.cbi-exact-body .cbi-product-card-v5 .cbi-product-media-shell {
  position: relative !important;
  display: block !important;
  width: 100% !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-mobile-quick-open {
  display: none !important;
  position: absolute !important;
  right: 10px !important;
  bottom: 10px !important;
  width: 34px !important;
  height: 34px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, .94) !important;
  color: #1f1f1f !important;
  box-shadow: 0 3px 14px rgba(0, 0, 0, .12) !important;
  align-items: center !important;
  justify-content: center !important;
  z-index: 8 !important;
  font-size: 24px !important;
  line-height: 1 !important;
  font-weight: 400 !important;
  cursor: pointer !important;
  -webkit-tap-highlight-color: transparent !important;
}

body.cbi-exact-body .cbi-product-card-v5 .cbi-mobile-quick-open span {
  display: block !important;
  transform: translateY(-1px) !important;
}

@media (hover: none),
(pointer: coarse) {
  body.cbi-exact-body .cbi-product-card-v5 .cbi-mobile-quick-open {
    display: flex !important;
  }
}

html.cbi-card-display-only-device body.cbi-exact-body .cbi-product-card-v5 .cbi-mobile-quick-open,
body.cbi-exact-body.cbi-card-display-only-device .cbi-product-card-v5 .cbi-mobile-quick-open {
  display: flex !important;
}

body.cbi-mobile-quick-opened {
  overflow: hidden !important;
  touch-action: none !important;
}

.cbi-mobile-quick-modal {
  position: fixed !important;
  inset: 0 !important;
  z-index: 99999 !important;
  display: none !important;
  align-items: flex-end !important;
  justify-content: center !important;
  font-family: var(--cbi-font, inherit) !important;
}

.cbi-mobile-quick-modal.is-open {
  display: flex !important;
}

.cbi-mobile-quick-backdrop {
  position: absolute !important;
  inset: 0 !important;
  background: rgba(0, 0, 0, .62) !important;
}

.cbi-mobile-quick-dialog {
  position: relative !important;
  width: min(100%, 620px) !important;
  max-height: calc(100vh - 18px) !important;
  background: #fff !important;
  border-radius: 14px 14px 0 0 !important;
  overflow: auto !important;
  box-shadow: 0 -10px 35px rgba(0, 0, 0, .25) !important;
  z-index: 1 !important;
  -webkit-overflow-scrolling: touch !important;
}

.cbi-mobile-quick-close {
  position: absolute !important;
  top: 10px !important;
  right: 10px !important;
  width: 34px !important;
  height: 34px !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, .92) !important;
  color: #b8b8b8 !important;
  font-size: 30px !important;
  line-height: 30px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  z-index: 4 !important;
  cursor: pointer !important;
  box-shadow: 0 1px 4px rgba(0,0,0,.15) !important;
}

.cbi-mobile-quick-gallery {
  display: flex !important;
  overflow-x: auto !important;
  overscroll-behavior-x: contain !important;
  scroll-snap-type: x mandatory !important;
  gap: 2px !important;
  background: #eee !important;
  scrollbar-width: none !important;
  -webkit-overflow-scrolling: touch !important;
}

.cbi-mobile-quick-gallery::-webkit-scrollbar {
  display: none !important;
}

.cbi-mobile-quick-slide {
  flex: 0 0 82% !important;
  min-width: 82% !important;
  aspect-ratio: 1/1 !important;
  scroll-snap-align: center !important;
  background: #eee !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.cbi-mobile-quick-slide:first-child {
  margin-left: 0 !important;
}

.cbi-mobile-quick-slide img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  display: block !important;
}

.cbi-mobile-quick-empty {
  color: #777 !important;
  font-size: 14px !important;
}

.cbi-mobile-quick-detail {
  position: absolute !important;
  right: 14px !important;
  top: calc(min(100vw, 620px) * .82 - 46px) !important;
  z-index: 3 !important;
  display: inline-flex !important;
  min-height: 32px !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 5px 10px !important;
  background: rgba(255, 255, 255, .88) !important;
  color: #777 !important;
  font-size: 13px !important;
  text-decoration: underline !important;
}

.cbi-mobile-quick-info {
  padding: 18px 30px 28px !important;
  text-align: left !important;
}

.cbi-mobile-quick-title {
  font-size: 15px !important;
  line-height: 1.35 !important;
  font-weight: 700 !important;
  color: #111 !important;
  margin: 0 0 4px !important;
}

.cbi-mobile-quick-price {
  font-size: 16px !important;
  line-height: 1.35 !important;
  font-weight: 500 !important;
  color: #111 !important;
  margin: 0 0 18px !important;
}

.cbi-mobile-quick-colors {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 14px !important;
  margin: 6px 0 18px !important;
  flex-wrap: wrap !important;
}

.cbi-mobile-quick-color {
  width: 22px !important;
  height: 22px !important;
  border: 1px solid rgba(0, 0, 0, .65) !important;
  border-radius: 999px !important;
  background: var(--cbi-swatch-color, #eee) !important;
  box-shadow: inset 0 0 0 3px #fff !important;
  padding: 0 !important;
  cursor: pointer !important;
}

.cbi-mobile-quick-color.is-selected,
.cbi-mobile-quick-color[aria-pressed="true"] {
  outline: 2px solid #111 !important;
  outline-offset: 2px !important;
}

.cbi-mobile-quick-sizes {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 12px 14px !important;
  margin: 0 0 22px !important;
}

.cbi-mobile-quick-size {
  min-height: 34px !important;
  border: 1px solid #d8d8d8 !important;
  border-radius: 5px !important;
  background: #fff !important;
  color: #111 !important;
  font-size: 15px !important;
  line-height: 1 !important;
  font-family: var(--cbi-font, inherit) !important;
  cursor: pointer !important;
  position: relative !important;
}

.cbi-mobile-quick-size.is-selected,
.cbi-mobile-quick-size[aria-pressed="true"] {
  border-color: #111 !important;
  box-shadow: 0 0 0 1px #111 inset !important;
}

.cbi-mobile-quick-size.is-disabled,
.cbi-mobile-quick-size:disabled {
  color: #bbb !important;
  background: linear-gradient(to bottom right, transparent calc(50% - 1px), #d6d6d6 50%, transparent calc(50% + 1px)) !important;
  cursor: not-allowed !important;
}

.cbi-mobile-quick-message {
  min-height: 18px !important;
  margin: -6px 0 10px !important;
  text-align: center !important;
  color: #777 !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
}

.cbi-mobile-quick-add {
  width: 100% !important;
  min-height: 48px !important;
  border: 0 !important;
  border-radius: 5px !important;
  background: #333 !important;
  color: #fff !important;
  font-family: var(--cbi-font, inherit) !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  cursor: pointer !important;
}

.cbi-mobile-quick-add:disabled {
  opacity: .55 !important;
  cursor: not-allowed !important;
}

.cbi-mobile-quick-add.is-added {
  background: #1f5f3a !important;
}

@media(max-width:420px) {
  .cbi-mobile-quick-info {
    padding: 16px 22px 24px !important;
  }

  .cbi-mobile-quick-slide {
    flex-basis: 86% !important;
    min-width: 86% !important;
  }

  .cbi-mobile-quick-sizes {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  .cbi-mobile-quick-size {
    font-size: 14px !important;
  }
}


/* v0.9.12 reduce touch quick popup overall size */
body.cbi-exact-body .cbi-product-card-v5 .cbi-mobile-quick-open {
  width: 30px !important;
  height: 30px !important;
  right: 8px !important;
  bottom: 8px !important;
  font-size: 21px !important;
}

.cbi-mobile-quick-dialog {
  width: min(100%, 540px) !important;
  max-height: calc(100vh - 34px) !important;
  border-radius: 12px 12px 0 0 !important;
}

.cbi-mobile-quick-close {
  top: 8px !important;
  right: 8px !important;
  width: 30px !important;
  height: 30px !important;
  font-size: 26px !important;
  line-height: 26px !important;
}


.cbi-mobile-quick-slide {
  flex: 0 0 70% !important;
  min-width: 70% !important;
}

.cbi-mobile-quick-detail {
  right: 10px !important;
  top: calc(min(100vw, 540px) * .70 - 40px) !important;
  min-height: 28px !important;
  padding: 4px 8px !important;
  font-size: 12px !important;
}

.cbi-mobile-quick-info {
  padding: 14px 22px 20px !important;
}

.cbi-mobile-quick-title {
  font-size: 14px !important;
  margin: 0 0 2px !important;
}

.cbi-mobile-quick-price {
  font-size: 15px !important;
  margin: 0 0 14px !important;
}

.cbi-mobile-quick-colors {
  gap: 12px !important;
  margin: 4px 0 14px !important;
}

.cbi-mobile-quick-color {
  width: 20px !important;
  height: 20px !important;
}

.cbi-mobile-quick-sizes {
  gap: 10px 12px !important;
  margin: 0 0 16px !important;
}

.cbi-mobile-quick-size {
  min-height: 32px !important;
  font-size: 14px !important;
}

.cbi-mobile-quick-message {
  min-height: 16px !important;
  margin: -4px 0 8px !important;
  font-size: 11px !important;
}

.cbi-mobile-quick-add {
  min-height: 44px !important;
  font-size: 15px !important;
}

@media(max-width:420px) {
  .cbi-mobile-quick-dialog {
    width: min(100%, 500px) !important;
    max-height: calc(100vh - 20px) !important;
  }

  .cbi-mobile-quick-slide {
    flex-basis: 76% !important;
    min-width: 76% !important;
  }

  .cbi-mobile-quick-detail {
    top: calc(100vw * .76 - 38px) !important;
    right: 8px !important;
  }

  .cbi-mobile-quick-info {
    padding: 12px 18px 18px !important;
  }

  .cbi-mobile-quick-colors {
    gap: 10px !important;
  }

  .cbi-mobile-quick-color {
    width: 19px !important;
    height: 19px !important;
  }

  .cbi-mobile-quick-sizes {
    gap: 8px 10px !important;
  }

  .cbi-mobile-quick-size {
    min-height: 30px !important;
    font-size: 13px !important;
  }

  .cbi-mobile-quick-add {
    min-height: 42px !important;
    font-size: 14px !important;
  }
}


/* =========================================================
   CBI v0.9.13: distinctive single-product layout
   ========================================================= */
body.cbi-exact-body .cbi-single-product {
  width: min(1320px, calc(100% - 48px)) !important;
  margin: 0 auto !important;
  padding-bottom: 48px !important;
}

body.cbi-exact-body .cbi-single-product-shell {
  color: #111 !important;
}

body.cbi-exact-body .cbi-single-breadcrumb-wrap {
  margin: 18px 0 18px !important;
}

body.cbi-exact-body .cbi-single-product .woocommerce-breadcrumb {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  font-size: 13px !important;
  color: #777 !important;
}

body.cbi-exact-body .cbi-single-product .woocommerce-breadcrumb a {
  color: #222 !important;
  text-decoration: none !important;
}

body.cbi-exact-body .cbi-single-layout {
  display: grid !important;
  grid-template-columns: minmax(0, 1.12fr) minmax(360px, .88fr) !important;
  gap: 40px !important;
  align-items: start !important;
}

body.cbi-exact-body .cbi-single-gallery-column {
  min-width: 0 !important;
}

body.cbi-exact-body .cbi-single-gallery-card,
body.cbi-exact-body .cbi-single-summary-card {
  background: #fff !important;
}

body.cbi-exact-body .cbi-single-summary-column {
  margin: 0 !important;
}

body.cbi-exact-body .cbi-single-summary-card {
  position: sticky !important;
  top: calc(var(--cbi-mainbar-h) + 28px) !important;
  padding: 10px 0 0 !important;
}

body.cbi-exact-body .cbi-single-brand-badge {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 30px !important;
  padding: 0 12px !important;
  border-radius: 999px !important;
  background: linear-gradient(180deg, #f9f6ef, #f2ebdf) !important;
  color: #6a5844 !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: .03em !important;
  text-transform: uppercase !important;
  margin: 0 0 14px !important;
}

body.cbi-exact-body .cbi-single-product .product_title {
  font-size: clamp(28px, 2.2vw, 38px) !important;
  line-height: 1.12 !important;
  margin: 0 0 12px !important;
  font-weight: 800 !important;
  letter-spacing: -.03em !important;
}

body.cbi-exact-body .cbi-single-product .price {
  margin: 0 0 18px !important;
  color: #111 !important;
  font-size: 26px !important;
  font-weight: 800 !important;
}

body.cbi-exact-body .cbi-single-product .price .amount,
body.cbi-exact-body .cbi-single-product .price bdi {
  color: #111 !important;
}

body.cbi-exact-body .cbi-single-product .woocommerce-product-details__short-description {
  margin: 0 0 22px !important;
  color: #555 !important;
  font-size: 15px !important;
  line-height: 1.75 !important;
}

body.cbi-exact-body .cbi-single-product form.cart {
  padding: 22px 24px !important;
  margin: 0 0 22px !important;
  border: 1px solid rgba(0, 0, 0, .08) !important;
  border-radius: 22px !important;
  background: linear-gradient(180deg, #ffffff, #fcfbf8) !important;
  box-shadow: 0 18px 36px rgba(15, 22, 36, .05) !important;
}

body.cbi-exact-body .cbi-single-product table.variations {
  margin: 0 0 16px !important;
  border: 0 !important;
}

body.cbi-exact-body .cbi-single-product table.variations th,
body.cbi-exact-body .cbi-single-product table.variations td {
  padding: 0 0 14px !important;
  border: 0 !important;
  vertical-align: top !important;
}

body.cbi-exact-body .cbi-single-product table.variations th.label label {
  display: inline-block !important;
  color: #222 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  margin: 0 0 8px !important;
}

body.cbi-exact-body .cbi-single-product table.variations select {
  width: 100% !important;
  min-height: 46px !important;
  border: 1px solid rgba(0, 0, 0, .14) !important;
  border-radius: 14px !important;
  padding: 0 14px !important;
  font-family: var(--cbi-font) !important;
  font-size: 14px !important;
  color: #111 !important;
  background: #fff !important;
}

body.cbi-exact-body .cbi-single-product .reset_variations {
  display: inline-flex !important;
  margin-top: 4px !important;
  color: #6d5a45 !important;
  font-size: 12px !important;
  text-decoration: underline !important;
}

body.cbi-exact-body .cbi-single-product .single_variation_wrap {
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
}

body.cbi-exact-body .cbi-single-product .woocommerce-variation-price,
body.cbi-exact-body .cbi-single-product .woocommerce-variation-availability {
  margin: 0 !important;
}

body.cbi-exact-body .cbi-single-product .woocommerce-variation-description {
  color: #666 !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
}

body.cbi-exact-body .cbi-single-product .quantity .qty {
  min-height: 48px !important;
  min-width: 78px !important;
  border: 1px solid rgba(0, 0, 0, .14) !important;
  border-radius: 14px !important;
  padding: 0 12px !important;
  font-family: var(--cbi-font) !important;
}

body.cbi-exact-body .cbi-single-product .single_add_to_cart_button,
body.cbi-exact-body .cbi-single-product .woocommerce-variation-add-to-cart .single_add_to_cart_button {
  min-height: 50px !important;
  padding: 0 22px !important;
  border-radius: 16px !important;
  background: #1f2940 !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  letter-spacing: .01em !important;
  box-shadow: 0 16px 32px rgba(31, 41, 64, .16) !important;
}

body.cbi-exact-body .cbi-single-product .single_add_to_cart_button:hover {
  background: #111a2d !important;
}

body.cbi-exact-body .cbi-single-accordion-group {
  margin-top: 10px !important;
  border-top: 1px solid rgba(0, 0, 0, .08) !important;
}

body.cbi-exact-body .cbi-single-accordion {
  border-bottom: 1px solid rgba(0, 0, 0, .08) !important;
}

body.cbi-exact-body .cbi-single-accordion-toggle {
  width: 100% !important;
  min-height: 58px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 16px !important;
  border: 0 !important;
  background: transparent !important;
  padding: 0 !important;
  color: #111 !important;
  font-family: var(--cbi-font) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  cursor: pointer !important;
}

body.cbi-exact-body .cbi-single-accordion-toggle i {
  font-size: 22px !important;
  color: #8b7c6d !important;
  transition: transform .18s ease !important;
}

body.cbi-exact-body .cbi-single-accordion.is-open .cbi-single-accordion-toggle i {
  transform: rotate(45deg) !important;
}

body.cbi-exact-body .cbi-single-accordion-content {
  padding: 0 0 18px !important;
  color: #5b5b5b !important;
  font-size: 14px !important;
  line-height: 1.8 !important;
}

body.cbi-exact-body .cbi-single-accordion-content p,
body.cbi-exact-body .cbi-single-accordion-content ul {
  margin: 0 0 10px !important;
}

body.cbi-exact-body .cbi-single-accordion-content ul {
  padding-left: 18px !important;
}

body.cbi-exact-body .cbi-single-product .woocommerce-product-gallery {
  display: grid !important;
  grid-template-columns: 88px minmax(0, 1fr) !important;
  gap: 16px !important;
  align-items: start !important;
}

body.cbi-exact-body .cbi-single-product .woocommerce-product-gallery .flex-viewport,
body.cbi-exact-body .cbi-single-product .woocommerce-product-gallery__wrapper {
  min-width: 0 !important;
}

body.cbi-exact-body .cbi-single-product .woocommerce-product-gallery .flex-viewport {
  grid-column: 2 !important;
  grid-row: 1 !important;
  border-radius: 28px !important;
  background: #f4f3ef !important;
  overflow: hidden !important;
}

body.cbi-exact-body .cbi-single-product .woocommerce-product-gallery .woocommerce-product-gallery__image a,
body.cbi-exact-body .cbi-single-product .woocommerce-product-gallery .woocommerce-product-gallery__image img {
  display: block !important;
  width: 100% !important;
}

body.cbi-exact-body .cbi-single-product .woocommerce-product-gallery .woocommerce-product-gallery__image img {
  object-fit: cover !important;
  aspect-ratio: 1/1.15 !important;
}

body.cbi-exact-body .cbi-single-product .woocommerce-product-gallery .flex-control-thumbs {
  grid-column: 1 !important;
  grid-row: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  max-height: 760px !important;
  overflow: auto !important;
}

body.cbi-exact-body .cbi-single-product .woocommerce-product-gallery .flex-control-thumbs li {
  width: 100% !important;
  margin: 0 !important;
}

body.cbi-exact-body .cbi-single-product .woocommerce-product-gallery .flex-control-thumbs img {
  width: 100% !important;
  aspect-ratio: 1/1.12 !important;
  object-fit: cover !important;
  display: block !important;
  border-radius: 16px !important;
  border: 1px solid rgba(0, 0, 0, .08) !important;
  background: #f4f3ef !important;
  opacity: 1 !important;
  transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease !important;
}

body.cbi-exact-body .cbi-single-product .woocommerce-product-gallery .flex-control-thumbs img.flex-active,
body.cbi-exact-body .cbi-single-product .woocommerce-product-gallery .flex-control-thumbs li:hover img {
  border-color: #c4a37a !important;
  box-shadow: 0 8px 18px rgba(0, 0, 0, .05) !important;
  transform: translateY(-1px) !important;
}

body.cbi-exact-body .cbi-single-after-summary {
  margin-top: 54px !important;
}

body.cbi-exact-body .cbi-single-after-summary .related>h2,
body.cbi-exact-body .cbi-single-after-summary .upsells>h2 {
  font-size: 28px !important;
  line-height: 1.15 !important;
  margin: 0 0 22px !important;
  font-weight: 800 !important;
  letter-spacing: -.02em !important;
}

body.cbi-exact-body .cbi-single-after-summary ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 24px 14px !important;
}

body.cbi-exact-body .cbi-single-after-summary ul.products::before,
body.cbi-exact-body .cbi-single-after-summary ul.products::after {
  display: none !important;
}

body.cbi-exact-body .cbi-single-after-summary ul.products li.product {
  width: auto !important;
  float: none !important;
  margin: 0 !important;
}

/* Hide elements the user asked to remove and other generic third-party extras */
body.cbi-exact-body.single-product .woocommerce-product-gallery__trigger,
body.cbi-exact-body.single-product .sharedaddy,
body.cbi-exact-body.single-product .product-share,
body.cbi-exact-body.single-product [class*="share"],
body.cbi-exact-body.single-product [class*="compare"],
body.cbi-exact-body.single-product [class*="store-locator"],
body.cbi-exact-body.single-product [class*="find-store"],
body.cbi-exact-body.single-product [class*="promotion"],
body.cbi-exact-body.single-product [class*="service-history"],
body.cbi-exact-body.single-product [class*="service-record"] {
  display: none !important;
}

body.cbi-exact-body .cbi-single-product .product_meta,
body.cbi-exact-body .cbi-single-product .woocommerce-tabs,
body.cbi-exact-body .cbi-single-product .woocommerce-review-link,
body.cbi-exact-body .cbi-single-product .star-rating,
body.cbi-exact-body .cbi-single-product .woocommerce-product-rating {
  display: none !important;
}

@media(max-width:1120px) {
  body.cbi-exact-body .cbi-single-layout {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 28px !important;
  }

  body.cbi-exact-body .cbi-single-summary-card {
    position: static !important;
  }

  body.cbi-exact-body .cbi-single-after-summary ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media(max-width:768px) {
  body.cbi-exact-body .cbi-single-product {
    width: calc(100% - 32px) !important;
    padding-bottom: 34px !important;
  }

  body.cbi-exact-body .cbi-single-breadcrumb-wrap {
    margin: 10px 0 14px !important;
  }

  body.cbi-exact-body .cbi-single-product .woocommerce-product-gallery {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  body.cbi-exact-body .cbi-single-product .woocommerce-product-gallery .flex-viewport {
    grid-column: 1 !important;
  }

  body.cbi-exact-body .cbi-single-product .woocommerce-product-gallery .flex-control-thumbs {
    grid-column: 1 !important;
    grid-row: 2 !important;
    flex-direction: row !important;
    max-height: none !important;
    overflow: auto !important;
    padding-bottom: 4px !important;
  }

  body.cbi-exact-body .cbi-single-product .woocommerce-product-gallery .flex-control-thumbs li {
    width: 84px !important;
    min-width: 84px !important;
  }

  body.cbi-exact-body .cbi-single-product .product_title {
    font-size: 28px !important;
  }

  body.cbi-exact-body .cbi-single-product form.cart {
    padding: 18px !important;
    border-radius: 18px !important;
  }

  body.cbi-exact-body .cbi-single-after-summary {
    margin-top: 40px !important;
  }

  body.cbi-exact-body .cbi-single-after-summary ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media(max-width:520px) {

  body.cbi-exact-body .cbi-single-product .single_variation_wrap .woocommerce-variation-add-to-cart,
  body.cbi-exact-body .cbi-single-product .single_variation_wrap .variations_button {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  body.cbi-exact-body .cbi-single-after-summary ul.products {
    grid-template-columns: 1fr !important;
  }
}

/* =========================================================
   CBI v0.9.14: rescue/fix single product layout
   - reset Woo floats
   - fix gallery/thumb list markers
   - make variations/buttons readable
   ========================================================= */
body.single-product.cbi-exact-body .cbi-woo-main.cbi-single-product,
body.cbi-exact-body.single-product .cbi-woo-main.cbi-single-product {
  width: min(1280px, calc(100% - 56px)) !important;
  max-width: 1280px !important;
  margin-inline: auto !important;
  padding-top: calc(var(--cbi-mainbar-h) + 20px) !important;
  padding-bottom: 54px !important;
}

body.single-product.cbi-exact-body .cbi-single-breadcrumb-wrap,
body.cbi-exact-body.single-product .cbi-single-breadcrumb-wrap {
  margin: 0 0 18px !important;
}

body.single-product.cbi-exact-body .cbi-single-layout,
body.cbi-exact-body.single-product .cbi-single-layout {
  display: grid !important;
  grid-template-columns: minmax(460px, 1fr) minmax(380px, 480px) !important;
  gap: clamp(34px, 5vw, 72px) !important;
  align-items: start !important;
  width: 100% !important;
}

/* Hard reset WooCommerce's default float/width layout */
body.single-product.cbi-exact-body div.product div.images,
body.single-product.cbi-exact-body div.product div.summary,
body.cbi-exact-body.single-product div.product div.images,
body.cbi-exact-body.single-product div.product div.summary,
body.single-product.cbi-exact-body .woocommerce-product-gallery,
body.cbi-exact-body.single-product .woocommerce-product-gallery,
body.single-product.cbi-exact-body .summary.entry-summary,
body.cbi-exact-body.single-product .summary.entry-summary {
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  clear: none !important;
  margin: 0 !important;
}

body.single-product.cbi-exact-body .cbi-single-summary-card,
body.cbi-exact-body.single-product .cbi-single-summary-card {
  width: 100% !important;
  max-width: 480px !important;
  margin-left: auto !important;
  position: sticky !important;
  top: calc(var(--cbi-mainbar-h) + 28px) !important;
  padding-top: 0 !important;
}

/* Gallery: force main image + vertical thumbnails into a predictable grid */
body.single-product.cbi-exact-body .cbi-single-gallery-card,
body.cbi-exact-body.single-product .cbi-single-gallery-card {
  width: 100% !important;
  max-width: 760px !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery,
body.cbi-exact-body.single-product .woocommerce-product-gallery {
  opacity: 1 !important;
  display: grid !important;
  grid-template-columns: 74px minmax(0, 1fr) !important;
  gap: 14px !important;
  align-items: start !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery__wrapper,
body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-viewport,
body.cbi-exact-body.single-product .woocommerce-product-gallery__wrapper,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-viewport {
  grid-column: 2 !important;
  grid-row: 1 !important;
  width: 100% !important;
  max-width: 640px !important;
  min-width: 0 !important;
  border-radius: 24px !important;
  background: #f3f3f1 !important;
  overflow: hidden !important;
  margin: 0 !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery__image,
body.cbi-exact-body.single-product .woocommerce-product-gallery__image {
  width: 100% !important;
  max-width: 100% !important;
  background: #f3f3f1 !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery__image a,
body.cbi-exact-body.single-product .woocommerce-product-gallery__image a {
  display: block !important;
  width: 100% !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery__image img,
body.cbi-exact-body.single-product .woocommerce-product-gallery__image img {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: 660px !important;
  aspect-ratio: 1/1.13 !important;
  object-fit: contain !important;
  object-position: center !important;
  background: #f3f3f1 !important;
}

/* Thumb controls can be ol/ul and can appear before FlexSlider init, so reset everything */
body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-nav,
body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-thumbs,
body.single-product.cbi-exact-body .woocommerce-product-gallery ol.flex-control-thumbs,
body.single-product.cbi-exact-body .woocommerce-product-gallery ul.flex-control-thumbs,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-nav,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-thumbs,
body.cbi-exact-body.single-product .woocommerce-product-gallery ol.flex-control-thumbs,
body.cbi-exact-body.single-product .woocommerce-product-gallery ul.flex-control-thumbs {
  grid-column: 1 !important;
  grid-row: 1 !important;
  width: 74px !important;
  max-width: 74px !important;
  max-height: 660px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  counter-reset: none !important;
  scrollbar-width: thin !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-thumbs li,
body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-nav li,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-thumbs li,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-nav li {
  width: 74px !important;
  min-width: 74px !important;
  height: 88px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  display: block !important;
  font-size: 0 !important;
  line-height: 0 !important;
  text-indent: 0 !important;
  float: none !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-thumbs li::marker,
body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-nav li::marker,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-thumbs li::marker,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-nav li::marker {
  content: "" !important;
  font-size: 0 !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-thumbs img,
body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-nav img,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-thumbs img,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-nav img {
  width: 74px !important;
  height: 88px !important;
  display: block !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 14px !important;
  border: 1px solid rgba(0, 0, 0, .08) !important;
  background: #f3f3f1 !important;
  opacity: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-thumbs img.flex-active,
body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-nav img.flex-active,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-thumbs img.flex-active,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-nav img.flex-active {
  border-color: #bea078 !important;
  box-shadow: 0 6px 15px rgba(0, 0, 0, .08) !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery__trigger,
body.cbi-exact-body.single-product .woocommerce-product-gallery__trigger {
  display: none !important;
}

/* Summary sizing */
body.single-product.cbi-exact-body .cbi-single-brand-badge,
body.cbi-exact-body.single-product .cbi-single-brand-badge {
  margin: 0 0 14px !important;
}

body.single-product.cbi-exact-body .summary .product_title,
body.cbi-exact-body.single-product .summary .product_title {
  font-size: clamp(24px, 2vw, 34px) !important;
  line-height: 1.16 !important;
  margin: 0 0 10px !important;
  font-weight: 800 !important;
}

body.single-product.cbi-exact-body .summary .price,
body.cbi-exact-body.single-product .summary .price {
  display: block !important;
  font-size: 22px !important;
  line-height: 1.25 !important;
  font-weight: 800 !important;
  margin: 0 0 18px !important;
}

/* Variation form cleanup */
body.single-product.cbi-exact-body .summary form.cart,
body.cbi-exact-body.single-product .summary form.cart {
  width: 100% !important;
  padding: 20px !important;
  margin: 0 0 18px !important;
  border: 1px solid rgba(0, 0, 0, .10) !important;
  border-radius: 20px !important;
  background: linear-gradient(180deg, #fff, #fbfaf7) !important;
  box-shadow: 0 14px 28px rgba(0, 0, 0, .045) !important;
}

body.single-product.cbi-exact-body .summary table.variations,
body.cbi-exact-body.single-product .summary table.variations {
  display: block !important;
  width: 100% !important;
  margin: 0 0 14px !important;
  border: 0 !important;
}

body.single-product.cbi-exact-body .summary table.variations tbody,
body.single-product.cbi-exact-body .summary table.variations tr,
body.single-product.cbi-exact-body .summary table.variations th,
body.single-product.cbi-exact-body .summary table.variations td,
body.cbi-exact-body.single-product .summary table.variations tbody,
body.cbi-exact-body.single-product .summary table.variations tr,
body.cbi-exact-body.single-product .summary table.variations th,
body.cbi-exact-body.single-product .summary table.variations td {
  display: block !important;
  width: 100% !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  text-align: left !important;
}

body.single-product.cbi-exact-body .summary table.variations tr,
body.cbi-exact-body.single-product .summary table.variations tr {
  margin-bottom: 14px !important;
}

body.single-product.cbi-exact-body .summary table.variations th.label label,
body.cbi-exact-body.single-product .summary table.variations th.label label {
  display: block !important;
  margin: 0 0 7px !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
  color: #333 !important;
  font-weight: 800 !important;
}

body.single-product.cbi-exact-body .summary table.variations select,
body.single-product.cbi-exact-body .summary form.cart select,
body.cbi-exact-body.single-product .summary table.variations select,
body.cbi-exact-body.single-product .summary form.cart select {
  width: 100% !important;
  max-width: 100% !important;
  min-height: 44px !important;
  border: 1px solid rgba(0, 0, 0, .16) !important;
  border-radius: 13px !important;
  background: #fff !important;
  color: #111 !important;
  padding: 0 38px 0 14px !important;
  font-family: var(--cbi-font, inherit) !important;
  font-size: 14px !important;
  line-height: 44px !important;
  appearance: auto !important;
  -webkit-appearance: menulist !important;
}

body.single-product.cbi-exact-body .summary .reset_variations,
body.cbi-exact-body.single-product .summary .reset_variations {
  display: inline-block !important;
  margin-top: 8px !important;
  font-size: 12px !important;
  color: #8b7459 !important;
  text-decoration: underline !important;
}

body.single-product.cbi-exact-body .summary .quantity,
body.cbi-exact-body.single-product .summary .quantity {
  display: inline-flex !important;
  margin: 0 10px 0 0 !important;
  vertical-align: middle !important;
}

body.single-product.cbi-exact-body .summary .quantity .qty,
body.cbi-exact-body.single-product .summary .quantity .qty {
  width: 72px !important;
  min-height: 46px !important;
  border: 1px solid rgba(0, 0, 0, .16) !important;
  border-radius: 13px !important;
  text-align: center !important;
  font-family: var(--cbi-font, inherit) !important;
  font-size: 14px !important;
}

body.single-product.cbi-exact-body .summary .single_add_to_cart_button,
body.cbi-exact-body.single-product .summary .single_add_to_cart_button {
  min-height: 46px !important;
  padding: 0 22px !important;
  border-radius: 13px !important;
  background: #20263a !important;
  color: #fff !important;
  font-family: var(--cbi-font, inherit) !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  border: 0 !important;
  box-shadow: none !important;
}

body.single-product.cbi-exact-body .summary .single_add_to_cart_button:hover,
body.cbi-exact-body.single-product .summary .single_add_to_cart_button:hover {
  background: #111827 !important;
}

/* Accordion readability */
body.single-product.cbi-exact-body .cbi-single-accordion-toggle,
body.cbi-exact-body.single-product .cbi-single-accordion-toggle {
  min-height: 54px !important;
  font-size: 15px !important;
}

body.single-product.cbi-exact-body .cbi-single-accordion-content,
body.cbi-exact-body.single-product .cbi-single-accordion-content {
  font-size: 14px !important;
  line-height: 1.75 !important;
}

/* Product recommendations: prevent Woo default floats */
body.single-product.cbi-exact-body .cbi-single-after-summary ul.products,
body.cbi-exact-body.single-product .cbi-single-after-summary ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 24px 14px !important;
}

body.single-product.cbi-exact-body .cbi-single-after-summary ul.products::before,
body.single-product.cbi-exact-body .cbi-single-after-summary ul.products::after,
body.cbi-exact-body.single-product .cbi-single-after-summary ul.products::before,
body.cbi-exact-body.single-product .cbi-single-after-summary ul.products::after {
  display: none !important;
}

body.single-product.cbi-exact-body .cbi-single-after-summary ul.products li.product,
body.cbi-exact-body.single-product .cbi-single-after-summary ul.products li.product {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
}

/* Responsive */
@media(max-width:1120px) {

  body.single-product.cbi-exact-body .cbi-single-layout,
  body.cbi-exact-body.single-product .cbi-single-layout {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }

  body.single-product.cbi-exact-body .cbi-single-summary-card,
  body.cbi-exact-body.single-product .cbi-single-summary-card {
    position: static !important;
    max-width: none !important;
    margin-left: 0 !important;
  }

  body.single-product.cbi-exact-body .cbi-single-gallery-card,
  body.cbi-exact-body.single-product .cbi-single-gallery-card {
    max-width: 820px !important;
    margin-inline: auto !important;
  }
}

@media(max-width:768px) {

  body.single-product.cbi-exact-body .cbi-woo-main.cbi-single-product,
  body.cbi-exact-body.single-product .cbi-woo-main.cbi-single-product {
    width: calc(100% - 28px) !important;
    padding-top: calc(var(--cbi-mainbar-h) + 12px) !important;
  }

  body.single-product.cbi-exact-body .woocommerce-product-gallery,
  body.cbi-exact-body.single-product .woocommerce-product-gallery {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  body.single-product.cbi-exact-body .woocommerce-product-gallery__wrapper,
  body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-viewport,
  body.cbi-exact-body.single-product .woocommerce-product-gallery__wrapper,
  body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-viewport {
    grid-column: 1 !important;
    grid-row: 1 !important;
    max-width: 100% !important;
    border-radius: 20px !important;
  }

  body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-nav,
  body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-thumbs,
  body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-nav,
  body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-thumbs {
    grid-column: 1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    max-width: 100% !important;
    max-height: none !important;
    flex-direction: row !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding-bottom: 3px !important;
  }

  body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-thumbs li,
  body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-nav li,
  body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-thumbs li,
  body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-nav li {
    width: 68px !important;
    min-width: 68px !important;
    height: 78px !important;
  }

  body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-thumbs img,
  body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-nav img,
  body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-thumbs img,
  body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-nav img {
    width: 68px !important;
    height: 78px !important;
  }

  body.single-product.cbi-exact-body .summary .product_title,
  body.cbi-exact-body.single-product .summary .product_title {
    font-size: 25px !important;
  }

  body.single-product.cbi-exact-body .summary form.cart,
  body.cbi-exact-body.single-product .summary form.cart {
    padding: 16px !important;
    border-radius: 18px !important;
  }

  body.single-product.cbi-exact-body .cbi-single-after-summary ul.products,
  body.cbi-exact-body.single-product .cbi-single-after-summary ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media(max-width:480px) {

  body.single-product.cbi-exact-body .summary .quantity,
  body.cbi-exact-body.single-product .summary .quantity {
    width: 100% !important;
    margin: 0 0 10px !important;
  }

  body.single-product.cbi-exact-body .summary .quantity .qty,
  body.cbi-exact-body.single-product .summary .quantity .qty,
  body.single-product.cbi-exact-body .summary .single_add_to_cart_button,
  body.cbi-exact-body.single-product .summary .single_add_to_cart_button {
    width: 100% !important;
  }

  body.single-product.cbi-exact-body .cbi-single-after-summary ul.products,
  body.cbi-exact-body.single-product .cbi-single-after-summary ul.products {
    grid-template-columns: 1fr !important;
  }
}


/* =========================================================
   CBI v0.9.15: single-product closer to approved reference
   ========================================================= */
body.single-product.cbi-exact-body .cbi-woo-main.cbi-single-product,
body.cbi-exact-body.single-product .cbi-woo-main.cbi-single-product {
  width: min(1220px, calc(100% - 46px)) !important;
}

body.single-product.cbi-exact-body .cbi-single-layout,
body.cbi-exact-body.single-product .cbi-single-layout {
  grid-template-columns: minmax(0, 1fr) minmax(360px, 420px) !important;
  gap: 46px !important;
}

body.single-product.cbi-exact-body .cbi-single-gallery-card,
body.cbi-exact-body.single-product .cbi-single-gallery-card {
  max-width: none !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery,
body.cbi-exact-body.single-product .woocommerce-product-gallery {
  grid-template-columns: 60px minmax(0, 1fr) !important;
  gap: 12px !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery__wrapper,
body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-viewport,
body.cbi-exact-body.single-product .woocommerce-product-gallery__wrapper,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-viewport {
  max-width: 100% !important;
  border-radius: 0 !important;
  background: #f3f3f3 !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery__image img,
body.cbi-exact-body.single-product .woocommerce-product-gallery__image img {
  aspect-ratio: 1/1.16 !important;
  max-height: 760px !important;
  object-fit: cover !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-thumbs,
body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-nav,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-thumbs,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-nav {
  width: 60px !important;
  max-width: 60px !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-thumbs li,
body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-nav li,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-thumbs li,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-nav li {
  width: 60px !important;
  min-width: 60px !important;
  height: 78px !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-thumbs img,
body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-nav img,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-thumbs img,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-nav img {
  width: 60px !important;
  height: 78px !important;
  border-radius: 0 !important;
  border: 0 !important;
}

body.single-product.cbi-exact-body .summary .price,
body.cbi-exact-body.single-product .summary .price {
  font-size: 18px !important;
  margin: 0 0 16px !important;
}

body.single-product.cbi-exact-body .summary .product_title,
body.cbi-exact-body.single-product .summary .product_title {
  font-size: 19px !important;
  line-height: 1.35 !important;
  margin: 0 0 8px !important;
}

body.single-product.cbi-exact-body .cbi-single-summary-card,
body.cbi-exact-body.single-product .cbi-single-summary-card {
  max-width: 420px !important;
}

body.single-product.cbi-exact-body .cbi-single-brand-badge,
body.cbi-exact-body.single-product .cbi-single-brand-badge {
  background: transparent !important;
  color: #555 !important;
  min-height: auto !important;
  padding: 0 !important;
  margin: 0 0 8px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

body.single-product.cbi-exact-body .summary form.cart,
body.cbi-exact-body.single-product .summary form.cart {
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  margin: 0 0 20px !important;
}

body.single-product.cbi-exact-body .summary .variations_form,
body.cbi-exact-body.single-product .summary .variations_form {
  padding-top: 12px !important;
  border-top: 1px solid rgba(0, 0, 0, .09) !important;
}

/* custom option UI */
body.single-product.cbi-exact-body .cbi-single-option-ui,
body.cbi-exact-body.single-product .cbi-single-option-ui {
  margin: 0 0 18px !important;
}

body.single-product.cbi-exact-body .cbi-single-option-group,
body.cbi-exact-body.single-product .cbi-single-option-group {
  margin: 0 0 16px !important;
}

body.single-product.cbi-exact-body .cbi-single-option-head,
body.cbi-exact-body.single-product .cbi-single-option-head {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  margin: 0 0 10px !important;
  font-size: 13px !important;
  line-height: 1.4 !important;
}

body.single-product.cbi-exact-body .cbi-single-option-label,
body.cbi-exact-body.single-product .cbi-single-option-label {
  color: #444 !important;
  font-weight: 500 !important;
}

body.single-product.cbi-exact-body .cbi-single-option-value,
body.cbi-exact-body.single-product .cbi-single-option-value {
  color: #222 !important;
  font-weight: 700 !important;
}

body.single-product.cbi-exact-body .cbi-single-swatch-row,
body.cbi-exact-body.single-product .cbi-single-swatch-row {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
}

body.single-product.cbi-exact-body .cbi-single-color-swatch,
body.cbi-exact-body.single-product .cbi-single-color-swatch {
  width: 22px !important;
  height: 22px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(0, 0, 0, .55) !important;
  background: var(--cbi-swatch-color, #ececec) !important;
  box-shadow: inset 0 0 0 3px #fff !important;
  cursor: pointer !important;
  position: relative !important;
}

body.single-product.cbi-exact-body .cbi-single-color-swatch.is-selected,
body.single-product.cbi-exact-body .cbi-single-color-swatch[aria-pressed="true"],
body.cbi-exact-body.single-product .cbi-single-color-swatch.is-selected,
body.cbi-exact-body.single-product .cbi-single-color-swatch[aria-pressed="true"] {
  outline: 2px solid #111 !important;
  outline-offset: 2px !important;
}

body.single-product.cbi-exact-body .cbi-single-size-row,
body.cbi-exact-body.single-product .cbi-single-size-row {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
}

body.single-product.cbi-exact-body .cbi-single-size-chip,
body.cbi-exact-body.single-product .cbi-single-size-chip {
  min-width: 44px !important;
  min-height: 28px !important;
  padding: 0 12px !important;
  border: 1px solid #cfcfcf !important;
  border-radius: 4px !important;
  background: #fff !important;
  color: #111 !important;
  font-family: var(--cbi-font, inherit) !important;
  font-size: 14px !important;
  line-height: 26px !important;
  cursor: pointer !important;
}

body.single-product.cbi-exact-body .cbi-single-size-chip.is-selected,
body.cbi-exact-body.single-product .cbi-single-size-chip.is-selected {
  border-color: #111 !important;
}

body.single-product.cbi-exact-body .cbi-single-size-chip.is-disabled,
body.single-product.cbi-exact-body .cbi-single-size-chip:disabled,
body.cbi-exact-body.single-product .cbi-single-size-chip.is-disabled,
body.cbi-exact-body.single-product .cbi-single-size-chip:disabled {
  color: #b8b8b8 !important;
  background: linear-gradient(to bottom right, transparent calc(50% - 1px), #d9d9d9 50%, transparent calc(50% + 1px)) !important;
  cursor: not-allowed !important;
}

/* hide default dropdown UI but keep it functional for variation JS */
body.single-product.cbi-exact-body .summary table.variations,
body.cbi-exact-body.single-product .summary table.variations {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

body.single-product.cbi-exact-body .summary .single_variation_wrap,
body.cbi-exact-body.single-product .summary .single_variation_wrap {
  display: block !important;
}

body.single-product.cbi-exact-body .summary .woocommerce-variation.single_variation,
body.cbi-exact-body.single-product .summary .woocommerce-variation.single_variation {
  display: block !important;
  margin-bottom: 12px !important;
}
body.single-product.cbi-exact-body .summary .woocommerce-variation.single_variation .woocommerce-variation-price,
body.cbi-exact-body.single-product .summary .woocommerce-variation.single_variation .woocommerce-variation-price,
body.single-product.cbi-exact-body .summary .woocommerce-variation.single_variation .woocommerce-variation-description,
body.cbi-exact-body.single-product .summary .woocommerce-variation.single_variation .woocommerce-variation-description {
  display: none !important;
}
body.single-product.cbi-exact-body .summary .woocommerce-variation.single_variation .woocommerce-variation-availability p.stock,
body.cbi-exact-body.single-product .summary .woocommerce-variation.single_variation .woocommerce-variation-availability p.stock {
  font-size: 13px !important;
  color: #666 !important;
  margin: 0 !important;
}

body.single-product.cbi-exact-body .summary .woocommerce-variation-add-to-cart,
body.cbi-exact-body.single-product .summary .woocommerce-variation-add-to-cart {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin-top: 8px !important;
}

body.single-product.cbi-exact-body .summary .quantity .qty,
body.cbi-exact-body.single-product .summary .quantity .qty {
  min-height: 36px !important;
  width: 68px !important;
}

body.single-product.cbi-exact-body .summary .single_add_to_cart_button,
body.cbi-exact-body.single-product .summary .single_add_to_cart_button {
  flex: 1 1 auto !important;
  min-height: 38px !important;
  border-radius: 0 !important;
  font-size: 14px !important;
}

body.single-product.cbi-exact-body .cbi-single-accordion-group,
body.cbi-exact-body.single-product .cbi-single-accordion-group {
  margin-top: 18px !important;
}

body.single-product.cbi-exact-body .cbi-single-accordion-toggle,
body.cbi-exact-body.single-product .cbi-single-accordion-toggle {
  min-height: 48px !important;
  font-size: 14px !important;
}

body.single-product.cbi-exact-body .cbi-single-after-summary,
body.cbi-exact-body.single-product .cbi-single-after-summary {
  margin-top: 36px !important;
}

@media(max-width:900px) {

  body.single-product.cbi-exact-body .cbi-single-layout,
  body.cbi-exact-body.single-product .cbi-single-layout {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  body.single-product.cbi-exact-body .cbi-single-summary-card,
  body.cbi-exact-body.single-product .cbi-single-summary-card {
    position: static !important;
    max-width: none !important;
  }
}

@media(max-width:768px) {

  body.single-product.cbi-exact-body .woocommerce-product-gallery,
  body.cbi-exact-body.single-product .woocommerce-product-gallery {
    grid-template-columns: 1fr !important;
  }

  body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-thumbs,
  body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-nav,
  body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-thumbs,
  body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-nav {
    width: 100% !important;
    max-width: 100% !important;
    flex-direction: row !important;
  }

  body.single-product.cbi-exact-body .summary .woocommerce-variation-add-to-cart,
  body.cbi-exact-body.single-product .summary .woocommerce-variation-add-to-cart {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  body.single-product.cbi-exact-body .summary .quantity,
  body.cbi-exact-body.single-product .summary .quantity {
    margin: 0 !important;
  }
}


/* =========================================================
   CBI v0.9.16: smaller single-product scale + reliable custom gallery
   ========================================================= */
body.single-product.cbi-exact-body .cbi-woo-main.cbi-single-product,
body.cbi-exact-body.single-product .cbi-woo-main.cbi-single-product {
  width: min(1140px, calc(100% - 40px)) !important;
  padding-bottom: 40px !important;
}

body.single-product.cbi-exact-body .cbi-single-layout,
body.cbi-exact-body.single-product .cbi-single-layout {
  grid-template-columns: minmax(0, 1fr) minmax(320px, 380px) !important;
  gap: 34px !important;
}

body.single-product.cbi-exact-body .cbi-single-summary-card,
body.cbi-exact-body.single-product .cbi-single-summary-card {
  max-width: 380px !important;
}

body.single-product.cbi-exact-body .summary .product_title,
body.cbi-exact-body.single-product .summary .product_title {
  font-size: 18px !important;
  margin: 0 0 6px !important;
}

body.single-product.cbi-exact-body .summary .price,
body.cbi-exact-body.single-product .summary .price {
  font-size: 16px !important;
  margin: 0 0 12px !important;
}

body.single-product.cbi-exact-body .cbi-single-brand-badge,
body.cbi-exact-body.single-product .cbi-single-brand-badge {
  font-size: 11px !important;
  margin: 0 0 6px !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery,
body.cbi-exact-body.single-product .woocommerce-product-gallery {
  grid-template-columns: 52px minmax(0, 1fr) !important;
  gap: 10px !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery__wrapper,
body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-viewport,
body.cbi-exact-body.single-product .woocommerce-product-gallery__wrapper,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-viewport {
  max-width: 100% !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery__image img,
body.cbi-exact-body.single-product .woocommerce-product-gallery__image img {
  max-height: 620px !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-thumbs,
body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-nav,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-thumbs,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-nav {
  width: 52px !important;
  max-width: 52px !important;
  gap: 8px !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-thumbs li,
body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-nav li,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-thumbs li,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-nav li {
  width: 52px !important;
  min-width: 52px !important;
  height: 68px !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-thumbs img,
body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-nav img,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-thumbs img,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-nav img {
  width: 52px !important;
  height: 68px !important;
}

body.single-product.cbi-exact-body .summary .variations_form,
body.cbi-exact-body.single-product .summary .variations_form {
  padding-top: 10px !important;
}

body.single-product.cbi-exact-body .cbi-single-option-group,
body.cbi-exact-body.single-product .cbi-single-option-group {
  margin: 0 0 14px !important;
}

body.single-product.cbi-exact-body .cbi-single-swatch-row,
body.cbi-exact-body.single-product .cbi-single-swatch-row {
  gap: 10px !important;
}

body.single-product.cbi-exact-body .cbi-single-color-swatch,
body.cbi-exact-body.single-product .cbi-single-color-swatch {
  width: 20px !important;
  height: 20px !important;
}

body.single-product.cbi-exact-body .cbi-single-size-row,
body.cbi-exact-body.single-product .cbi-single-size-row {
  gap: 8px !important;
}

body.single-product.cbi-exact-body .cbi-single-size-chip,
body.cbi-exact-body.single-product .cbi-single-size-chip {
  min-width: 42px !important;
  min-height: 26px !important;
  font-size: 13px !important;
  line-height: 24px !important;
}

body.single-product.cbi-exact-body .summary .quantity .qty,
body.cbi-exact-body.single-product .summary .quantity .qty {
  min-height: 34px !important;
  width: 60px !important;
}

body.single-product.cbi-exact-body .summary .single_add_to_cart_button,
body.cbi-exact-body.single-product .summary .single_add_to_cart_button {
  min-height: 36px !important;
  font-size: 13px !important;
}

/* custom gallery state to avoid blank image when thumb clicked */
body.single-product.cbi-exact-body .woocommerce-product-gallery__wrapper.cbi-custom-gallery-ready,
body.cbi-exact-body.single-product .woocommerce-product-gallery__wrapper.cbi-custom-gallery-ready {
  position: relative !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery__wrapper.cbi-custom-gallery-ready .woocommerce-product-gallery__image,
body.cbi-exact-body.single-product .woocommerce-product-gallery__wrapper.cbi-custom-gallery-ready .woocommerce-product-gallery__image {
  display: none !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery__wrapper.cbi-custom-gallery-ready .woocommerce-product-gallery__image.cbi-gallery-active,
body.cbi-exact-body.single-product .woocommerce-product-gallery__wrapper.cbi-custom-gallery-ready .woocommerce-product-gallery__image.cbi-gallery-active {
  display: block !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-thumbs li.is-active img,
body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-nav li.is-active img,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-thumbs li.is-active img,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-nav li.is-active img {
  box-shadow: 0 0 0 1px #111 inset !important;
}

@media(max-width:900px) {

  body.single-product.cbi-exact-body .cbi-single-layout,
  body.cbi-exact-body.single-product .cbi-single-layout {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }

  body.single-product.cbi-exact-body .cbi-single-summary-card,
  body.cbi-exact-body.single-product .cbi-single-summary-card {
    max-width: none !important;
  }
}

@media(max-width:768px) {

  body.single-product.cbi-exact-body .cbi-woo-main.cbi-single-product,
  body.cbi-exact-body.single-product .cbi-woo-main.cbi-single-product {
    width: calc(100% - 26px) !important;
  }

  body.single-product.cbi-exact-body .woocommerce-product-gallery__image img,
  body.cbi-exact-body.single-product .woocommerce-product-gallery__image img {
    max-height: 520px !important;
  }
}


/* =========================================================
   CBI v0.9.17: custom stable single-product gallery stage
   ========================================================= */
body.single-product.cbi-exact-body .woocommerce-product-gallery.cbi-gallery-enhanced,
body.cbi-exact-body.single-product .woocommerce-product-gallery.cbi-gallery-enhanced {
  align-items: start !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery.cbi-gallery-enhanced .cbi-single-gallery-stage,
body.cbi-exact-body.single-product .woocommerce-product-gallery.cbi-gallery-enhanced .cbi-single-gallery-stage {
  grid-column: 2 !important;
  grid-row: 1 !important;
  width: 100% !important;
  max-width: 100% !important;
  aspect-ratio: 1/1.16 !important;
  background: #f3f3f3 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery.cbi-gallery-enhanced .cbi-single-gallery-stage img,
body.cbi-exact-body.single-product .woocommerce-product-gallery.cbi-gallery-enhanced .cbi-single-gallery-stage img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
  background: #f3f3f3 !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery.cbi-gallery-enhanced .woocommerce-product-gallery__wrapper,
body.single-product.cbi-exact-body .woocommerce-product-gallery.cbi-gallery-enhanced .flex-viewport,
body.cbi-exact-body.single-product .woocommerce-product-gallery.cbi-gallery-enhanced .woocommerce-product-gallery__wrapper,
body.cbi-exact-body.single-product .woocommerce-product-gallery.cbi-gallery-enhanced .flex-viewport {
  display: none !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery.cbi-gallery-enhanced .flex-control-thumbs li.is-active img,
body.single-product.cbi-exact-body .woocommerce-product-gallery.cbi-gallery-enhanced .flex-control-nav li.is-active img,
body.cbi-exact-body.single-product .woocommerce-product-gallery.cbi-gallery-enhanced .flex-control-thumbs li.is-active img,
body.cbi-exact-body.single-product .woocommerce-product-gallery.cbi-gallery-enhanced .flex-control-nav li.is-active img {
  box-shadow: 0 0 0 1px #111 inset !important;
  opacity: 1 !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery.cbi-gallery-enhanced .flex-control-thumbs li img,
body.single-product.cbi-exact-body.single-product .woocommerce-product-gallery.cbi-gallery-enhanced .flex-control-nav li img,
body.cbi-exact-body.single-product .woocommerce-product-gallery.cbi-gallery-enhanced .flex-control-thumbs li img,
body.cbi-exact-body.single-product .woocommerce-product-gallery.cbi-gallery-enhanced .flex-control-nav li img {
  cursor: pointer !important;
}

@media(max-width:768px) {

  body.single-product.cbi-exact-body .woocommerce-product-gallery.cbi-gallery-enhanced .cbi-single-gallery-stage,
  body.cbi-exact-body.single-product .woocommerce-product-gallery.cbi-gallery-enhanced .cbi-single-gallery-stage {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }
}


/* =========================================================
   CBI v0.9.18: custom PHP-rendered single gallery + 60% page width
   ========================================================= */
body.single-product.cbi-exact-body .cbi-woo-main.cbi-single-product,
body.cbi-exact-body.single-product .cbi-woo-main.cbi-single-product {
  width: clamp(980px, 60vw, 1140px) !important;
  max-width: none !important;
  padding-bottom: 36px !important;
}

body.single-product.cbi-exact-body .cbi-single-layout,
body.cbi-exact-body.single-product .cbi-single-layout {
  grid-template-columns: minmax(0, 1fr) minmax(300px, 360px) !important;
  gap: 28px !important;
}

body.single-product.cbi-exact-body .cbi-single-summary-card,
body.cbi-exact-body.single-product .cbi-single-summary-card {
  max-width: 360px !important;
}

body.single-product.cbi-exact-body .cbi-single-gallery-card,
body.cbi-exact-body.single-product .cbi-single-gallery-card {
  max-width: none !important;
}

body.single-product.cbi-exact-body .cbi-native-single-gallery,
body.cbi-exact-body.single-product .cbi-native-single-gallery {
  display: grid !important;
  grid-template-columns: 52px minmax(0, 1fr) !important;
  gap: 10px !important;
  align-items: start !important;
}

body.single-product.cbi-exact-body .cbi-native-single-gallery-thumbs,
body.cbi-exact-body.single-product .cbi-native-single-gallery-thumbs {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  max-height: 620px !important;
  overflow: auto !important;
}

body.single-product.cbi-exact-body .cbi-native-gallery-thumb,
body.cbi-exact-body.single-product .cbi-native-gallery-thumb {
  width: 52px !important;
  min-width: 52px !important;
  height: 68px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  cursor: pointer !important;
}

body.single-product.cbi-exact-body .cbi-native-gallery-thumb img,
body.cbi-exact-body.single-product .cbi-native-gallery-thumb img {
  display: block !important;
  width: 52px !important;
  height: 68px !important;
  object-fit: cover !important;
  background: #f3f3f3 !important;
}

body.single-product.cbi-exact-body .cbi-native-gallery-thumb.is-active img,
body.cbi-exact-body.single-product .cbi-native-gallery-thumb.is-active img {
  box-shadow: 0 0 0 1px #111 inset !important;
}

body.single-product.cbi-exact-body .cbi-native-single-gallery-stage,
body.cbi-exact-body.single-product .cbi-native-single-gallery-stage {
  width: 100% !important;
  aspect-ratio: 1/1.16 !important;
  background: #f3f3f3 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
}

body.single-product.cbi-exact-body .cbi-native-single-gallery-stage img,
body.cbi-exact-body.single-product .cbi-native-single-gallery-stage img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
  background: #f3f3f3 !important;
}

/* Hide default Woo gallery if present */
body.single-product.cbi-exact-body .woocommerce-product-gallery,
body.cbi-exact-body.single-product .woocommerce-product-gallery {
  display: none !important;
}

body.single-product.cbi-exact-body .summary .product_title,
body.cbi-exact-body.single-product .summary .product_title {
  font-size: 18px !important;
}

body.single-product.cbi-exact-body .summary .price,
body.cbi-exact-body.single-product .summary .price {
  font-size: 16px !important;
}

body.single-product.cbi-exact-body .cbi-single-brand-badge,
body.cbi-exact-body.single-product .cbi-single-brand-badge {
  font-size: 11px !important;
}

@media(max-width:1120px) {

  body.single-product.cbi-exact-body .cbi-woo-main.cbi-single-product,
  body.cbi-exact-body.single-product .cbi-woo-main.cbi-single-product {
    width: min(100%, calc(100% - 34px)) !important;
  }
}

@media(max-width:900px) {

  body.single-product.cbi-exact-body .cbi-single-layout,
  body.cbi-exact-body.single-product .cbi-single-layout {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }

  body.single-product.cbi-exact-body .cbi-single-summary-card,
  body.cbi-exact-body.single-product .cbi-single-summary-card {
    max-width: none !important;
  }
}

@media(max-width:768px) {

  body.single-product.cbi-exact-body .cbi-native-single-gallery,
  body.cbi-exact-body.single-product .cbi-native-single-gallery {
    grid-template-columns: 1fr !important;
  }

  body.single-product.cbi-exact-body .cbi-native-single-gallery-thumbs,
  body.cbi-exact-body.single-product .cbi-native-single-gallery-thumbs {
    flex-direction: row !important;
    max-height: none !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    order: 2 !important;
  }

  body.single-product.cbi-exact-body .cbi-native-single-gallery-stage,
  body.cbi-exact-body.single-product .cbi-native-single-gallery-stage {
    order: 1 !important;
  }
}


/* =========================================================
   CBI v0.9.19: true 60% single-product content width
   and 10-15% thumbnail gallery rail
   ========================================================= */
body.single-product.cbi-exact-body .cbi-woo-main.cbi-single-product,
body.cbi-exact-body.single-product .cbi-woo-main.cbi-single-product {
  width: 60% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-bottom: 34px !important;
}

body.single-product.cbi-exact-body .cbi-single-layout,
body.cbi-exact-body.single-product .cbi-single-layout {
  grid-template-columns: minmax(0, 56%) minmax(280px, 44%) !important;
  gap: 24px !important;
  align-items: start !important;
}

body.single-product.cbi-exact-body .cbi-single-gallery-card,
body.cbi-exact-body.single-product .cbi-single-gallery-card,
body.single-product.cbi-exact-body .cbi-single-summary-card,
body.cbi-exact-body.single-product .cbi-single-summary-card {
  max-width: none !important;
}

/* Gallery now uses a true 12% rail + 88% stage */
body.single-product.cbi-exact-body .cbi-native-single-gallery,
body.cbi-exact-body.single-product .cbi-native-single-gallery {
  grid-template-columns: minmax(44px, 12%) minmax(0, 88%) !important;
  gap: 10px !important;
}

body.single-product.cbi-exact-body .cbi-native-single-gallery-thumbs,
body.cbi-exact-body.single-product .cbi-native-single-gallery-thumbs {
  width: 100% !important;
  max-height: 560px !important;
  gap: 8px !important;
}

body.single-product.cbi-exact-body .cbi-native-gallery-thumb,
body.cbi-exact-body.single-product .cbi-native-gallery-thumb {
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  aspect-ratio: 52/68 !important;
}

body.single-product.cbi-exact-body .cbi-native-gallery-thumb img,
body.cbi-exact-body.single-product .cbi-native-gallery-thumb img {
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: 52/68 !important;
}

body.single-product.cbi-exact-body .cbi-native-single-gallery-stage,
body.cbi-exact-body.single-product .cbi-native-single-gallery-stage {
  aspect-ratio: 1/1.12 !important;
}

/* Scale down typography / controls slightly so the whole page feels smaller */
body.single-product.cbi-exact-body .summary .product_title,
body.cbi-exact-body.single-product .summary .product_title {
  font-size: 17px !important;
  line-height: 1.32 !important;
}

body.single-product.cbi-exact-body .summary .price,
body.cbi-exact-body.single-product .summary .price {
  font-size: 15px !important;
  margin: 0 0 10px !important;
}

body.single-product.cbi-exact-body .cbi-single-brand-badge,
body.cbi-exact-body.single-product .cbi-single-brand-badge {
  font-size: 10.5px !important;
  margin: 0 0 5px !important;
}

body.single-product.cbi-exact-body .cbi-single-option-head,
body.cbi-exact-body.single-product .cbi-single-option-head {
  font-size: 12px !important;
  margin: 0 0 8px !important;
}

body.single-product.cbi-exact-body .cbi-single-color-swatch,
body.cbi-exact-body.single-product .cbi-single-color-swatch {
  width: 19px !important;
  height: 19px !important;
}

body.single-product.cbi-exact-body .cbi-single-size-chip,
body.cbi-exact-body.single-product .cbi-single-size-chip {
  min-width: 40px !important;
  min-height: 25px !important;
  font-size: 12.5px !important;
  line-height: 23px !important;
  padding: 0 10px !important;
}

body.single-product.cbi-exact-body .summary .quantity .qty,
body.cbi-exact-body.single-product .summary .quantity .qty {
  width: 56px !important;
  min-height: 32px !important;
}

body.single-product.cbi-exact-body .summary .single_add_to_cart_button,
body.cbi-exact-body.single-product .summary .single_add_to_cart_button {
  min-height: 34px !important;
  font-size: 12.5px !important;
}

body.single-product.cbi-exact-body .cbi-single-accordion-group,
body.cbi-exact-body.single-product .cbi-single-accordion-group {
  margin-top: 14px !important;
}

body.single-product.cbi-exact-body .cbi-single-accordion-toggle,
body.cbi-exact-body.single-product .cbi-single-accordion-toggle {
  min-height: 44px !important;
  font-size: 13px !important;
}

body.single-product.cbi-exact-body .cbi-single-accordion-content,
body.cbi-exact-body.single-product .cbi-single-accordion-content {
  font-size: 13px !important;
  line-height: 1.7 !important;
}

/* Keep desktop as requested; fall back sensibly on smaller screens */
@media(max-width:1400px) {

  body.single-product.cbi-exact-body .cbi-woo-main.cbi-single-product,
  body.cbi-exact-body.single-product .cbi-woo-main.cbi-single-product {
    width: 68% !important;
  }
}

@media(max-width:1200px) {

  body.single-product.cbi-exact-body .cbi-woo-main.cbi-single-product,
  body.cbi-exact-body.single-product .cbi-woo-main.cbi-single-product {
    width: 78% !important;
  }
}

@media(max-width:900px) {

  body.single-product.cbi-exact-body .cbi-woo-main.cbi-single-product,
  body.cbi-exact-body.single-product .cbi-woo-main.cbi-single-product {
    width: calc(100% - 28px) !important;
  }

  body.single-product.cbi-exact-body .cbi-single-layout,
  body.cbi-exact-body.single-product .cbi-single-layout {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
}

@media(max-width:768px) {

  body.single-product.cbi-exact-body .cbi-native-single-gallery,
  body.cbi-exact-body.single-product .cbi-native-single-gallery {
    grid-template-columns: 1fr !important;
  }

  body.single-product.cbi-exact-body .cbi-native-single-gallery-thumbs,
  body.cbi-exact-body.single-product .cbi-native-single-gallery-thumbs {
    flex-direction: row !important;
    max-height: none !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    order: 2 !important;
  }

  body.single-product.cbi-exact-body .cbi-native-gallery-thumb,
  body.cbi-exact-body.single-product .cbi-native-gallery-thumb {
    width: 52px !important;
    min-width: 52px !important;
    aspect-ratio: auto !important;
    height: 68px !important;
  }

  body.single-product.cbi-exact-body .cbi-native-gallery-thumb img,
  body.cbi-exact-body.single-product .cbi-native-gallery-thumb img {
    width: 52px !important;
    height: 68px !important;
    aspect-ratio: auto !important;
  }
}


/* =========================================================
   CBI v0.9.20: rebuilt single-product page to match reference
   ========================================================= */
body.single-product.cbi-exact-body .cbi-single-product-shell.cbi-single-product-reference,
body.cbi-exact-body.single-product .cbi-single-product-shell.cbi-single-product-reference {
  --cbi-ref-divider: rgba(0, 0, 0, .09);
  --cbi-ref-light: #f3f3f3;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-breadcrumb-wrap,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-breadcrumb-wrap {
  width: 60% !important;
  margin: 0 auto 12px !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-layout,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-layout {
  width: 60% !important;
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: minmax(0, 58%) minmax(0, 42%) !important;
  gap: 54px !important;
  align-items: start !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-gallery-column,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-gallery-column,
body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-summary-column,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-summary-column {
  min-width: 0 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-gallery-card,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-gallery-card,
body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-summary-card,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-summary-card {
  background: transparent !important;
  max-width: none !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery {
  display: grid !important;
  grid-template-columns: minmax(42px, 11.5%) minmax(0, 88.5%) !important;
  gap: 14px !important;
  align-items: start !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs {
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  max-height: 670px !important;
  overflow: auto !important;
  padding-top: 18px !important;
  position: relative !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs::before,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: 10px !important;
  height: 10px !important;
  border-top: 2px solid #bcbcbc !important;
  border-left: 2px solid #bcbcbc !important;
  transform-origin: center !important;
  rotate: 45deg !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumb,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumb {
  width: 100% !important;
  padding: 0 !important;
  aspect-ratio: 60/78 !important;
  border: 1px solid transparent !important;
  background: transparent !important;
  cursor: pointer !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumb img,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumb img {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: cover !important;
  background: var(--cbi-ref-light) !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumb.is-active,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumb.is-active {
  border-color: #888 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stage-wrap,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stage-wrap {
  position: relative !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-compare,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-compare {
  position: absolute !important;
  top: 12px !important;
  left: 12px !important;
  z-index: 4 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  min-height: 40px !important;
  padding: 0 16px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(0, 0, 0, .35) !important;
  background: #fff !important;
  color: #555 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  font-family: var(--cbi-font) !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-compare i,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-compare i {
  font-size: 16px !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stage,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stage {
  width: 100% !important;
  background: var(--cbi-ref-light) !important;
  aspect-ratio: 1/1.35 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stage img,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stage img {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: contain !important;
  object-position: center !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-summary-card,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-summary-card {
  position: relative !important;
  padding-top: 34px !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-share,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-share {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  width: 24px !important;
  height: 24px !important;
  border: 0 !important;
  background: transparent !important;
  color: #777 !important;
  padding: 0 !important;
  cursor: pointer !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-share i,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-share i {
  font-size: 18px !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-brand-badge,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-brand-badge {
  display: block !important;
  padding: 0 !important;
  margin: 0 0 8px !important;
  background: transparent !important;
  color: #555 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  min-height: 0 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .product_title,
body.cbi-exact-body.single-product .cbi-single-product-reference .product_title {
  font-size: 19px !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
  font-weight: 700 !important;
  margin: 0 0 8px !important;
  color: #111 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .price,
body.cbi-exact-body.single-product .cbi-single-product-reference .price {
  font-size: 18px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
  color: #111 !important;
  margin: 0 0 14px !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-installments,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-installments {
  margin: 0 0 18px !important;
  padding-bottom: 18px !important;
  border-bottom: 1px solid var(--cbi-ref-divider) !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-installments p,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-installments p {
  margin: 0 0 4px !important;
  color: #666 !important;
  font-size: 12px !important;
  line-height: 1.45 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .summary form.cart,
body.cbi-exact-body.single-product .cbi-single-product-reference .summary form.cart {
  padding: 0 !important;
  margin: 0 0 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .summary .variations_form,
body.cbi-exact-body.single-product .cbi-single-product-reference .summary .variations_form {
  padding-top: 0 !important;
  border-top: 0 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-option-group,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-option-group {
  padding-bottom: 18px !important;
  margin: 0 0 18px !important;
  border-bottom: 1px solid var(--cbi-ref-divider) !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-option-head,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-option-head {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 4px !important;
  flex-wrap: wrap !important;
  margin: 0 0 12px !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-option-head-sizes,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-option-head-sizes {
  justify-content: space-between !important;
  gap: 12px !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-option-label,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-option-label {
  color: #444 !important;
  font-weight: 500 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-option-value,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-option-value {
  color: #222 !important;
  font-weight: 700 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-size-guide,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-size-guide {
  color: #777 !important;
  font-size: 13px !important;
  text-decoration: underline !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-swatch-row,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-swatch-row {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-color-swatch,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-color-swatch {
  width: 22px !important;
  height: 22px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(0, 0, 0, .6) !important;
  background: var(--cbi-swatch-color, #efefef) !important;
  box-shadow: inset 0 0 0 3px #fff !important;
  cursor: pointer !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-color-swatch.is-selected,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-color-swatch.is-selected {
  outline: 2px solid #111 !important;
  outline-offset: 2px !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-size-row,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-size-row {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-size-chip,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-size-chip {
  min-width: 44px !important;
  min-height: 28px !important;
  padding: 0 12px !important;
  border: 1px solid #cfcfcf !important;
  border-radius: 4px !important;
  background: #fff !important;
  color: #111 !important;
  font-size: 14px !important;
  line-height: 26px !important;
  font-weight: 500 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-size-chip.is-selected,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-size-chip.is-selected {
  border-color: #111 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-size-chip.is-disabled,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-size-chip.is-disabled {
  color: #bdbdbd !important;
  background-image: linear-gradient(to bottom right, transparent calc(50% - .8px), #ddd 50%, transparent calc(50% + .8px)) !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .summary .woocommerce-variation-add-to-cart,
body.cbi-exact-body.single-product .cbi-single-product-reference .summary .woocommerce-variation-add-to-cart {
  display: grid !important;
  grid-template-columns: 70px minmax(0, 1fr) !important;
  gap: 14px !important;
  align-items: center !important;
  margin: 0 0 18px !important;
  padding-bottom: 18px !important;
  border-bottom: 1px solid var(--cbi-ref-divider) !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .summary .quantity,
body.cbi-exact-body.single-product .cbi-single-product-reference .summary .quantity {
  width: 70px !important;
  margin: 0 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .summary .quantity .qty,
body.cbi-exact-body.single-product .cbi-single-product-reference .summary .quantity .qty {
  width: 70px !important;
  min-height: 34px !important;
  border-radius: 16px !important;
  border: 1px solid #cfcfcf !important;
  font-size: 18px !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .summary .single_add_to_cart_button,
body.cbi-exact-body.single-product .cbi-single-product-reference .summary .single_add_to_cart_button {
  width: 100% !important;
  min-height: 36px !important;
  border-radius: 0 !important;
  background: #3a393d !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  border: 0 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .summary .single_add_to_cart_button:hover,
body.cbi-exact-body.single-product .cbi-single-product-reference .summary .single_add_to_cart_button:hover {
  background: #2f2e33 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-accordion-group,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-accordion-group {
  border-top: 0 !important;
  margin-top: 0 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-accordion,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-accordion {
  border-bottom: 1px solid var(--cbi-ref-divider) !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-accordion-toggle,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-accordion-toggle {
  min-height: 50px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-accordion-toggle i,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-accordion-toggle i {
  font-size: 18px !important;
  color: #333 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-accordion-content,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-accordion-content {
  padding: 0 0 16px !important;
  font-size: 13px !important;
  color: #666 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .product_meta,
body.cbi-exact-body.single-product .cbi-single-product-reference .product_meta,
body.single-product.cbi-exact-body .cbi-single-product-reference .woocommerce-product-rating,
body.cbi-exact-body.single-product .cbi-single-product-reference .woocommerce-product-rating,
body.single-product.cbi-exact-body .cbi-single-product-reference .woocommerce-tabs,
body.cbi-exact-body.single-product .cbi-single-product-reference .woocommerce-tabs,
body.single-product.cbi-exact-body .cbi-single-product-reference .sharedaddy,
body.cbi-exact-body.single-product .cbi-single-product-reference .sharedaddy {
  display: none !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-after-summary,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-after-summary {
  width: 60% !important;
  margin: 48px auto 0 !important;
}

@media(max-width:1600px) {

  body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-layout,
  body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-layout,
  body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-breadcrumb-wrap,
  body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-breadcrumb-wrap,
  body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-after-summary,
  body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-after-summary {
    width: 68% !important;
  }
}

@media(max-width:1280px) {

  body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-layout,
  body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-layout,
  body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-breadcrumb-wrap,
  body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-breadcrumb-wrap,
  body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-after-summary,
  body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-after-summary {
    width: 78% !important;
  }
}

@media(max-width:900px) {

  body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-layout,
  body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-layout,
  body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-breadcrumb-wrap,
  body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-breadcrumb-wrap,
  body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-after-summary,
  body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-after-summary {
    width: calc(100% - 28px) !important;
  }

  body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-layout,
  body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-layout {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
}

@media(max-width:768px) {

  body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery,
  body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs,
  body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs {
    flex-direction: row !important;
    max-height: none !important;
    overflow-x: auto !important;
    padding-top: 0 !important;
  }

  body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs::before,
  body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs::before {
    display: none !important;
  }

  body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumb,
  body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumb {
    width: 52px !important;
    min-width: 52px !important;
    aspect-ratio: 60/78 !important;
  }

  body.single-product.cbi-exact-body .cbi-single-product-reference .summary .woocommerce-variation-add-to-cart,
  body.cbi-exact-body.single-product .cbi-single-product-reference .summary .woocommerce-variation-add-to-cart {
    grid-template-columns: 1fr !important;
  }

  body.single-product.cbi-exact-body .cbi-single-product-reference .summary .quantity,
  body.cbi-exact-body.single-product .cbi-single-product-reference .summary .quantity {
    width: 100% !important;
  }

  body.single-product.cbi-exact-body .cbi-single-product-reference .summary .quantity .qty,
  body.cbi-exact-body.single-product .cbi-single-product-reference .summary .quantity .qty {
    width: 100% !important;
  }
}


/* =========================================================
   CBI v0.9.21: align summary top with gallery + arrow thumbnail scroller
   ========================================================= */
body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-layout,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-layout {
  align-items: start !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-summary-column,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-summary-column,
body.single-product.cbi-exact-body .cbi-single-product-reference .summary.entry-summary,
body.cbi-exact-body.single-product .cbi-single-product-reference .summary.entry-summary {
  align-self: start !important;
  margin-top: 0 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-summary-card,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-summary-card {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-share,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-share {
  top: 2px !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-brand-badge,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-brand-badge {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery {
  grid-template-columns: minmax(42px, 11.5%) minmax(0, 88.5%) !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs-wrap,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs-wrap {
  display: grid !important;
  grid-template-rows: 24px minmax(0, 1fr) 24px !important;
  gap: 6px !important;
  height: 100% !important;
  min-height: 670px !important;
  align-items: stretch !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 24px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: #666 !important;
  cursor: pointer !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav i,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav i {
  font-size: 18px !important;
  line-height: 1 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav:hover,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav:hover {
  color: #111 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs {
  max-height: none !important;
  height: 100% !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding-top: 0 !important;
  -ms-overflow-style: none !important;
  scrollbar-width: none !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs::-webkit-scrollbar,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs::before,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs::before {
  display: none !important;
}

@media(max-width:768px) {

  body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs-wrap,
  body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs-wrap {
    display: block !important;
    min-height: 0 !important;
  }

  body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav,
  body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav {
    display: none !important;
  }
}


/* =========================================================
   CBI v0.9.22: fix reference alignment + proper thumb rail arrows
   ========================================================= */
/* move summary block up to visually align with the gallery top */
body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-summary-column,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-summary-column {
  position: relative !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-summary-card,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-summary-card {
  padding-top: 0 !important;
  margin-top: -78px !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-share,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-share {
  top: 0 !important;
}

/* thumb rail should look like the reference: one clean arrow on top and bottom */
body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs-wrap,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs-wrap {
  grid-template-rows: 20px minmax(0, 1fr) 20px !important;
  gap: 8px !important;
  min-height: 684px !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav {
  position: relative !important;
  height: 20px !important;
  min-height: 20px !important;
  color: transparent !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav i,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav i {
  display: none !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav::before,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav::before {
  content: "" !important;
  width: 10px !important;
  height: 10px !important;
  display: block !important;
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  border-top: 2px solid #444 !important;
  border-left: 2px solid #444 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav.is-up::before,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav.is-up::before {
  transform: translate(-50%, -25%) rotate(45deg) !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav.is-down::before,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav.is-down::before {
  transform: translate(-50%, -75%) rotate(225deg) !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav:hover::before,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav:hover::before {
  border-color: #111 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs {
  gap: 6px !important;
}

/* keep mobile sane */
@media(max-width:900px) {

  body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-summary-card,
  body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-summary-card {
    margin-top: 0 !important;
  }
}


/* =========================================================
   CBI v0.9.23: make top/bottom gallery rail cells same size as thumbs
   ========================================================= */
body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs-wrap,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs-wrap {
  grid-template-rows: auto minmax(0, 1fr) auto !important;
  gap: 6px !important;
  min-height: 684px !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 60/78 !important;
  border: 1px solid transparent !important;
  background: #fff !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav::before,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav::before {
  width: 12px !important;
  height: 12px !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav:hover,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav:hover {
  border-color: #bdbdbd !important;
  background: #fafafa !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumb,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumb {
  aspect-ratio: 60/78 !important;
}

@media(max-width:768px) {

  body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav,
  body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav {
    display: none !important;
  }
}


/* =========================================================
   CBI v0.9.24: constrain thumb rail to stage height
   ========================================================= */
body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery {
  align-items: stretch !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stage-wrap,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stage-wrap {
  align-self: stretch !important;
  min-height: 0 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs-wrap,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs-wrap {
  align-self: stretch !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: hidden !important;
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) auto !important;
  gap: 6px !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav,
body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumb,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumb {
  width: 100% !important;
  min-width: 0 !important;
  aspect-ratio: 60/78 !important;
  height: auto !important;
  max-height: none !important;
  flex: 0 0 auto !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs {
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  padding: 0 !important;
  -ms-overflow-style: none !important;
  scrollbar-width: none !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs::-webkit-scrollbar,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stage,
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stage {
  height: auto !important;
}

body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav {
  background: #fff !important;
}

/* If old rules made the rail taller than the image, these hard-reset them. */
body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs-wrap[style],
body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs-wrap[style] {
  min-height: 0 !important;
}

@media(max-width:768px) {

  body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs-wrap,
  body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs-wrap {
    display: block !important;
    height: auto !important;
    overflow: visible !important;
  }
}


/* =========================================================
   CBI v0.9.25: hard-lock product gallery rail height
   ========================================================= */
/* This block intentionally overrides all earlier gallery rail rules. */
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery {
  --cbi-ref-gallery-h: clamp(520px, 34vw, 620px);
  --cbi-ref-thumb-w: 52px;
  --cbi-ref-thumb-h: 68px;
  --cbi-ref-thumb-gap: 6px;
  display: grid !important;
  grid-template-columns: var(--cbi-ref-thumb-w) minmax(0, 1fr) !important;
  gap: 14px !important;
  align-items: start !important;
  overflow: visible !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stage-wrap,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stage-wrap {
  height: var(--cbi-ref-gallery-h) !important;
  min-height: var(--cbi-ref-gallery-h) !important;
  max-height: var(--cbi-ref-gallery-h) !important;
  align-self: start !important;
  overflow: hidden !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stage,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stage {
  height: var(--cbi-ref-gallery-h) !important;
  min-height: var(--cbi-ref-gallery-h) !important;
  max-height: var(--cbi-ref-gallery-h) !important;
  aspect-ratio: auto !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs-wrap,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs-wrap {
  display: grid !important;
  grid-template-rows: var(--cbi-ref-thumb-h) minmax(0, 1fr) var(--cbi-ref-thumb-h) !important;
  gap: var(--cbi-ref-thumb-gap) !important;
  width: var(--cbi-ref-thumb-w) !important;
  min-width: var(--cbi-ref-thumb-w) !important;
  max-width: var(--cbi-ref-thumb-w) !important;
  height: var(--cbi-ref-gallery-h) !important;
  min-height: var(--cbi-ref-gallery-h) !important;
  max-height: var(--cbi-ref-gallery-h) !important;
  align-self: start !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav,
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumb,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumb {
  width: var(--cbi-ref-thumb-w) !important;
  min-width: var(--cbi-ref-thumb-w) !important;
  max-width: var(--cbi-ref-thumb-w) !important;
  height: var(--cbi-ref-thumb-h) !important;
  min-height: var(--cbi-ref-thumb-h) !important;
  max-height: var(--cbi-ref-thumb-h) !important;
  aspect-ratio: auto !important;
  flex: 0 0 var(--cbi-ref-thumb-h) !important;
  box-sizing: border-box !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumb img,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumb img {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
  display: block !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs {
  display: flex !important;
  flex-direction: column !important;
  gap: var(--cbi-ref-thumb-gap) !important;
  width: var(--cbi-ref-thumb-w) !important;
  min-width: var(--cbi-ref-thumb-w) !important;
  max-width: var(--cbi-ref-thumb-w) !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: 100% !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding: 0 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  -ms-overflow-style: none !important;
  scrollbar-width: none !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs::-webkit-scrollbar,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs::before,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs::before {
  display: none !important;
  content: none !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav {
  border: 1px solid transparent !important;
  background: #fff !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav:hover {
  border-color: #c8c8c8 !important;
  background: #fafafa !important;
}

/* Do not use JS inline height from older patch on this version. */
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs-wrap[style],
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs-wrap[style] {
  height: var(--cbi-ref-gallery-h) !important;
  min-height: var(--cbi-ref-gallery-h) !important;
  max-height: var(--cbi-ref-gallery-h) !important;
}

@media(max-width:768px) {

  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery {
    grid-template-columns: 1fr !important;
  }

  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stage-wrap,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stage-wrap,
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stage,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stage {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: 1/1.12 !important;
  }

  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs-wrap,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs-wrap {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    display: block !important;
    overflow: visible !important;
  }
}


/* =========================================================
   CBI v0.9.26: smoother gallery scrolling + no arrow hover styling
   ========================================================= */
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs {
  scroll-behavior: smooth !important;
}

/* remove hover effect from arrow cells */
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav:hover,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav:hover,
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav:focus,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav:focus,
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav:active,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav:active {
  border-color: transparent !important;
  background: #fff !important;
  box-shadow: none !important;
  outline: none !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav:hover::before,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav:hover::before,
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav:focus::before,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav:focus::before,
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav:active::before,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav:active::before {
  border-color: #444 !important;
}


/* =========================================================
   CBI v0.9.27: arrow scroll states and disabled fade
   ========================================================= */
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav {
  transition: opacity .2s ease !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav.is-disabled,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav.is-disabled {
  opacity: .28 !important;
  cursor: default !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav.is-disabled::before,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav.is-disabled::before {
  border-color: #9f9f9f !important;
}


/* =========================================================
   CBI v0.9.28: faster rail scroll + drag scroll support
   ========================================================= */
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs,
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stage-wrap,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stage-wrap {
  cursor: grab !important;
  user-select: none !important;
  -webkit-user-select: none !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs.is-dragging,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs.is-dragging,
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stage-wrap.is-dragging,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stage-wrap.is-dragging {
  cursor: grabbing !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav {
  transition: opacity .18s ease !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav.is-disabled,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav.is-disabled {
  opacity: .28 !important;
}


/* =========================================================
   CBI v0.9.29: easier drag scroll for gallery rail
   ========================================================= */
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery {
  touch-action: none !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs,
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stage-wrap,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stage-wrap {
  cursor: grab !important;
  touch-action: none !important;
  overscroll-behavior: contain !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs.is-dragging,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs.is-dragging,
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stage-wrap.is-dragging,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stage-wrap.is-dragging {
  cursor: grabbing !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumb,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumb,
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumb img,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumb img,
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stage img,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stage img {
  user-select: none !important;
  -webkit-user-select: none !important;
  -webkit-user-drag: none !important;
  draggable: false !important;
}


/* =========================================================
   CBI v0.9.30: thumbnail click priority over drag
   ========================================================= */
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumb,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumb,
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumb img,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumb img {
  cursor: pointer !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs {
  cursor: default !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stage-wrap,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stage-wrap {
  cursor: grab !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stage-wrap.is-dragging,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stage-wrap.is-dragging {
  cursor: grabbing !important;
}


/* =========================================================
   CBI v0.9.31: thumbnail supports both click-select and drag-scroll
   ========================================================= */
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs,
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumb,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumb,
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stage-wrap,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stage-wrap {
  cursor: grab !important;
  touch-action: none !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs.is-dragging,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs.is-dragging,
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stage-wrap.is-dragging,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stage-wrap.is-dragging {
  cursor: grabbing !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumb.is-drag-source,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumb.is-drag-source {
  cursor: grabbing !important;
}


/* =========================================================
   CBI v0.9.32: drag boundary cleanup and non-laggy gallery feel
   ========================================================= */
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery {
  touch-action: auto !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs {
  cursor: default !important;
  touch-action: auto !important;
  overscroll-behavior: contain !important;
  user-select: none !important;
  -webkit-user-select: none !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumb,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumb,
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumb img,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumb img {
  cursor: pointer !important;
  touch-action: auto !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stage-wrap,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stage-wrap {
  cursor: grab !important;
  touch-action: none !important;
  user-select: none !important;
  -webkit-user-select: none !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stage-wrap.is-dragging,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stage-wrap.is-dragging {
  cursor: grabbing !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stage-wrap::before,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stage-wrap::before {
  content: none !important;
  display: none !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav.is-disabled,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav.is-disabled {
  opacity: .28 !important;
  cursor: default !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav:not(.is-disabled),
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav:not(.is-disabled) {
  opacity: 1 !important;
  cursor: pointer !important;
}


/* =========================================================
   CBI v0.9.33: enable drag on both thumbnail rail and main image
   ========================================================= */
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs,
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stage-wrap,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stage-wrap {
  cursor: grab !important;
  touch-action: none !important;
  user-select: none !important;
  -webkit-user-select: none !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumbs.is-dragging,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumbs.is-dragging,
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stage-wrap.is-dragging,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stage-wrap.is-dragging {
  cursor: grabbing !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumb,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumb {
  cursor: grab !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumb.is-drag-source,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumb.is-drag-source {
  cursor: grabbing !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-thumb img,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-thumb img,
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stage img,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stage img {
  pointer-events: none !important;
  user-select: none !important;
  -webkit-user-select: none !important;
  -webkit-user-drag: none !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav.is-disabled,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav.is-disabled {
  opacity: .28 !important;
  cursor: default !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-nav:not(.is-disabled),
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-nav:not(.is-disabled) {
  opacity: 1 !important;
  cursor: pointer !important;
}


/* =========================================================
   CBI v0.9.34: separated scroll areas like reference
   ========================================================= */
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked {
  --cbi-ref-gallery-h: clamp(520px, 34vw, 620px);
  --cbi-ref-thumb-w: 52px;
  --cbi-ref-thumb-h: 68px;
  display: grid !important;
  grid-template-columns: var(--cbi-ref-thumb-w) minmax(0, 1fr) !important;
  gap: 14px !important;
  align-items: start !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs-wrap,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs-wrap {
  width: var(--cbi-ref-thumb-w) !important;
  height: var(--cbi-ref-gallery-h) !important;
  min-height: var(--cbi-ref-gallery-h) !important;
  max-height: var(--cbi-ref-gallery-h) !important;
  display: grid !important;
  grid-template-rows: var(--cbi-ref-thumb-h) minmax(0, 1fr) var(--cbi-ref-thumb-h) !important;
  gap: 6px !important;
  overflow: hidden !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage-wrap,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage-wrap {
  height: var(--cbi-ref-gallery-h) !important;
  min-height: var(--cbi-ref-gallery-h) !important;
  max-height: var(--cbi-ref-gallery-h) !important;
  overflow: hidden !important;
  position: relative !important;
  cursor: grab !important;
  touch-action: none !important;
  user-select: none !important;
  -webkit-user-select: none !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage-wrap.is-dragging,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage-wrap.is-dragging {
  cursor: grabbing !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage {
  height: 100% !important;
  min-height: 0 !important;
  max-height: 100% !important;
  aspect-ratio: auto !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  display: block !important;
  scroll-behavior: smooth !important;
  overscroll-behavior: contain !important;
  -ms-overflow-style: none !important;
  scrollbar-width: none !important;
  background: transparent !important;
  cursor: grab !important;
  touch-action: none !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage.is-dragging,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage.is-dragging {
  cursor: grabbing !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage::-webkit-scrollbar,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel {
  width: 100% !important;
  min-height: var(--cbi-ref-gallery-h) !important;
  height: var(--cbi-ref-gallery-h) !important;
  margin: 0 0 10px !important;
  background: #f3f3f3 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel img,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  display: block !important;
  user-select: none !important;
  -webkit-user-select: none !important;
  -webkit-user-drag: none !important;
  pointer-events: none !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs {
  width: var(--cbi-ref-thumb-w) !important;
  height: 100% !important;
  max-height: 100% !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  padding: 0 !important;
  margin: 0 !important;
  cursor: grab !important;
  touch-action: none !important;
  overscroll-behavior: contain !important;
  -ms-overflow-style: none !important;
  scrollbar-width: none !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs.is-dragging,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs.is-dragging {
  cursor: grabbing !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs::-webkit-scrollbar,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumb,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumb,
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-nav,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-nav {
  width: var(--cbi-ref-thumb-w) !important;
  min-width: var(--cbi-ref-thumb-w) !important;
  max-width: var(--cbi-ref-thumb-w) !important;
  height: var(--cbi-ref-thumb-h) !important;
  min-height: var(--cbi-ref-thumb-h) !important;
  max-height: var(--cbi-ref-thumb-h) !important;
  flex: 0 0 var(--cbi-ref-thumb-h) !important;
  aspect-ratio: auto !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumb img,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumb img {
  pointer-events: none !important;
  user-select: none !important;
  -webkit-user-select: none !important;
  -webkit-user-drag: none !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-nav.is-disabled,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-nav.is-disabled {
  opacity: .28 !important;
  cursor: default !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-nav:not(.is-disabled),
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-nav:not(.is-disabled) {
  opacity: 1 !important;
  cursor: pointer !important;
}

@media(max-width:768px) {

  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked {
    grid-template-columns: 1fr !important;
  }

  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs-wrap,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs-wrap {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    display: block !important;
  }

  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage-wrap,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage-wrap,
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }

  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel {
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 1/1.12 !important;
  }
}


/* =========================================================
   CBI v0.9.35: no image drag ghost + smoother separated scroll
   ========================================================= */
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked img,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked img {
  pointer-events: none !important;
  user-select: none !important;
  -webkit-user-select: none !important;
  -webkit-user-drag: none !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs,
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage {
  scroll-behavior: auto !important;
  will-change: scroll-position !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage {
  cursor: grab !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage.is-dragging,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage.is-dragging {
  cursor: grabbing !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel {
  cursor: pointer !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs {
  cursor: grab !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs.is-dragging,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs.is-dragging {
  cursor: grabbing !important;
}


/* =========================================================
   CBI v0.9.36: big-image menu click select polish
   ========================================================= */
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel {
  cursor: pointer !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage.is-dragging .cbi-ref-gallery-panel,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage.is-dragging .cbi-ref-gallery-panel {
  cursor: grabbing !important;
}


/* =========================================================
   CBI v0.9.37: panel click select via pointerup
   ========================================================= */
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel {
  cursor: pointer !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage.is-dragging,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage.is-dragging {
  cursor: grabbing !important;
}


/* =========================================================
   CBI v0.9.38: thumbnail-left click select fixed
   ========================================================= */
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumb,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumb {
  cursor: pointer !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs.is-dragging .cbi-ref-gallery-thumb,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs.is-dragging .cbi-ref-gallery-thumb {
  cursor: grabbing !important;
}


/* =========================================================
   CBI v0.9.39: single product variation selection + add cart
   ========================================================= */
body.single-product.cbi-exact-body .cbi-single-option-message,
body.cbi-exact-body.single-product .cbi-single-option-message {
  min-height: 18px !important;
  margin-top: 8px !important;
  font-size: 12px !important;
  line-height: 1.45 !important;
  color: #b42318 !important;
}

body.single-product.cbi-exact-body .cbi-single-option-message:empty,
body.cbi-exact-body.single-product .cbi-single-option-message:empty {
  display: none !important;
}

body.single-product.cbi-exact-body .summary .single_add_to_cart_button.disabled,
body.cbi-exact-body.single-product .summary .single_add_to_cart_button.disabled,
body.single-product.cbi-exact-body .summary .single_add_to_cart_button:disabled,
body.cbi-exact-body.single-product .summary .single_add_to_cart_button:disabled {
  opacity: .48 !important;
  cursor: not-allowed !important;
}

body.single-product.cbi-exact-body .cbi-single-option-ui+table.variations,
body.cbi-exact-body.single-product .cbi-single-option-ui+table.variations {
  margin-top: 6px !important;
}


/* =========================================================
   CBI v0.9.40: single product quantity stepper
   ========================================================= */
body.single-product.cbi-exact-body .summary .woocommerce-variation-add-to-cart,
body.cbi-exact-body.single-product .summary .woocommerce-variation-add-to-cart,
body.single-product.cbi-exact-body .summary form.cart:not(.variations_form),
body.cbi-exact-body.single-product .summary form.cart:not(.variations_form) {
  align-items: center !important;
}

body.single-product.cbi-exact-body .summary .quantity.cbi-qty-ready,
body.cbi-exact-body.single-product .summary .quantity.cbi-qty-ready {
  width: 112px !important;
  min-width: 112px !important;
  height: 38px !important;
  min-height: 38px !important;
  display: inline-grid !important;
  grid-template-columns: 32px minmax(0, 1fr) 32px !important;
  align-items: center !important;
  margin: 0 12px 0 0 !important;
  padding: 0 !important;
  border: 1px solid rgba(0, 0, 0, .16) !important;
  border-radius: 999px !important;
  background: #fff !important;
  overflow: hidden !important;
  vertical-align: middle !important;
}

body.single-product.cbi-exact-body .summary .quantity.cbi-qty-ready .qty,
body.cbi-exact-body.single-product .summary .quantity.cbi-qty-ready .qty {
  width: 100% !important;
  min-width: 0 !important;
  height: 36px !important;
  min-height: 36px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #111 !important;
  font-family: var(--cbi-font, inherit) !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  line-height: 36px !important;
  text-align: center !important;
  box-shadow: none !important;
  outline: none !important;
  -moz-appearance: textfield !important;
}

body.single-product.cbi-exact-body .summary .quantity.cbi-qty-ready .qty::-webkit-outer-spin-button,
body.single-product.cbi-exact-body .summary .quantity.cbi-qty-ready .qty::-webkit-inner-spin-button,
body.cbi-exact-body.single-product .summary .quantity.cbi-qty-ready .qty::-webkit-outer-spin-button,
body.cbi-exact-body.single-product .summary .quantity.cbi-qty-ready .qty::-webkit-inner-spin-button {
  -webkit-appearance: none !important;
  margin: 0 !important;
}

body.single-product.cbi-exact-body .summary .quantity.cbi-qty-ready .cbi-qty-btn,
body.cbi-exact-body.single-product .summary .quantity.cbi-qty-ready .cbi-qty-btn {
  width: 32px !important;
  height: 36px !important;
  min-height: 36px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: #222 !important;
  font-family: var(--cbi-font, inherit) !important;
  font-size: 18px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  cursor: pointer !important;
  box-shadow: none !important;
  transition: background .16s ease, color .16s ease, opacity .16s ease !important;
}

body.single-product.cbi-exact-body .summary .quantity.cbi-qty-ready .cbi-qty-btn:hover,
body.cbi-exact-body.single-product .summary .quantity.cbi-qty-ready .cbi-qty-btn:hover {
  background: #f4f4f4 !important;
}

body.single-product.cbi-exact-body .summary .quantity.cbi-qty-ready .cbi-qty-btn:disabled,
body.cbi-exact-body.single-product .summary .quantity.cbi-qty-ready .cbi-qty-btn:disabled {
  opacity: .28 !important;
  cursor: default !important;
  background: transparent !important;
}

body.single-product.cbi-exact-body .summary .quantity.cbi-qty-ready+.single_add_to_cart_button,
body.cbi-exact-body.single-product .summary .quantity.cbi-qty-ready+.single_add_to_cart_button {
  min-height: 38px !important;
}

@media(max-width:480px) {

  body.single-product.cbi-exact-body .summary .quantity.cbi-qty-ready,
  body.cbi-exact-body.single-product .summary .quantity.cbi-qty-ready {
    width: 118px !important;
    min-width: 118px !important;
    margin: 0 10px 10px 0 !important;
  }
}


/* =========================================================
   CBI v0.9.41: fix hidden plus button in quantity stepper
   ========================================================= */
body.single-product.cbi-exact-body .summary .woocommerce-variation-add-to-cart,
body.cbi-exact-body.single-product .summary .woocommerce-variation-add-to-cart,
body.single-product.cbi-exact-body .summary form.cart:not(.variations_form),
body.cbi-exact-body.single-product .summary form.cart:not(.variations_form) {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  flex-wrap: nowrap !important;
}

body.single-product.cbi-exact-body .summary .quantity.cbi-qty-ready,
body.cbi-exact-body.single-product .summary .quantity.cbi-qty-ready {
  flex: 0 0 124px !important;
  width: 124px !important;
  min-width: 124px !important;
  max-width: 124px !important;
  height: 40px !important;
  min-height: 40px !important;
  display: grid !important;
  grid-template-columns: 36px 52px 36px !important;
  align-items: center !important;
  justify-items: stretch !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid rgba(0, 0, 0, .16) !important;
  border-radius: 999px !important;
  background: #fff !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
  position: relative !important;
  z-index: 2 !important;
}

body.single-product.cbi-exact-body .summary .quantity.cbi-qty-ready .qty,
body.cbi-exact-body.single-product .summary .quantity.cbi-qty-ready .qty {
  grid-column: 2 !important;
  width: 52px !important;
  min-width: 52px !important;
  max-width: 52px !important;
  height: 38px !important;
  min-height: 38px !important;
  line-height: 38px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  text-align: center !important;
  box-sizing: border-box !important;
  appearance: textfield !important;
  -moz-appearance: textfield !important;
  z-index: 1 !important;
}

body.single-product.cbi-exact-body .summary .quantity.cbi-qty-ready .cbi-qty-btn,
body.cbi-exact-body.single-product .summary .quantity.cbi-qty-ready .cbi-qty-btn {
  width: 36px !important;
  min-width: 36px !important;
  max-width: 36px !important;
  height: 38px !important;
  min-height: 38px !important;
  max-height: 38px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: #222 !important;
  font-size: 18px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  box-sizing: border-box !important;
  position: relative !important;
  z-index: 3 !important;
}

body.single-product.cbi-exact-body .summary .quantity.cbi-qty-ready .cbi-qty-minus,
body.cbi-exact-body.single-product .summary .quantity.cbi-qty-ready .cbi-qty-minus {
  grid-column: 1 !important;
}

body.single-product.cbi-exact-body .summary .quantity.cbi-qty-ready .cbi-qty-plus,
body.cbi-exact-body.single-product .summary .quantity.cbi-qty-ready .cbi-qty-plus {
  grid-column: 3 !important;
}

body.single-product.cbi-exact-body .summary .quantity.cbi-qty-ready+.single_add_to_cart_button,
body.cbi-exact-body.single-product .summary .quantity.cbi-qty-ready+.single_add_to_cart_button,
body.single-product.cbi-exact-body .summary .woocommerce-variation-add-to-cart .single_add_to_cart_button,
body.cbi-exact-body.single-product .summary .woocommerce-variation-add-to-cart .single_add_to_cart_button {
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 100px !important;
  margin-left: auto !important;
  padding: 0 24px !important;
  height: 40px !important;
  min-height: 40px !important;
  box-sizing: border-box !important;
  position: relative !important;
  z-index: 1 !important;
  border-radius: 999px !important;
}

@media(max-width:480px) {

  body.single-product.cbi-exact-body .summary .woocommerce-variation-add-to-cart,
  body.cbi-exact-body.single-product .summary .woocommerce-variation-add-to-cart,
  body.single-product.cbi-exact-body .summary form.cart:not(.variations_form),
  body.cbi-exact-body.single-product .summary form.cart:not(.variations_form) {
    gap: 10px !important;
  }

  body.single-product.cbi-exact-body .summary .quantity.cbi-qty-ready,
  body.cbi-exact-body.single-product .summary .quantity.cbi-qty-ready {
    flex: 0 0 124px !important;
    width: 124px !important;
    min-width: 124px !important;
    margin: 0 !important;
  }
}


/* =========================================================
   CBI v0.9.42: remove compare button, installments, color code display
   ========================================================= */
body.single-product.cbi-exact-body .cbi-ref-compare,
body.cbi-exact-body.single-product .cbi-ref-compare,
body.single-product.cbi-exact-body .cbi-ref-installments,
body.cbi-exact-body.single-product .cbi-ref-installments {
  display: none !important;
}


/* =========================================================
   CBI v0.9.43: hide legacy notices + add-to-cart popup
   ========================================================= */
body.single-product.cbi-exact-body .woocommerce-notices-wrapper,
body.cbi-exact-body.single-product .woocommerce-notices-wrapper,
body.woocommerce-cart.cbi-exact-body .woocommerce-notices-wrapper,
body.cbi-exact-body.woocommerce-cart .woocommerce-notices-wrapper,
body.single-product.cbi-exact-body .woocommerce-message,
body.cbi-exact-body.single-product .woocommerce-message,
body.woocommerce-cart.cbi-exact-body .woocommerce-message,
body.cbi-exact-body.woocommerce-cart .woocommerce-message,
body.single-product.cbi-exact-body .woocommerce-info,
body.cbi-exact-body.single-product .woocommerce-info,
body.woocommerce-cart.cbi-exact-body .woocommerce-info,
body.cbi-exact-body.woocommerce-cart .woocommerce-info {
  display: none !important;
}

body.cbi-added-popup-open {
  overflow: hidden !important;
}

.cbi-added-popup {
  position: fixed !important;
  inset: 0 !important;
  z-index: 999999 !important;
  display: none !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 20px !important;
  box-sizing: border-box !important;
  font-family: var(--cbi-font, inherit) !important;
}

.cbi-added-popup.is-open {
  display: flex !important;
}

.cbi-added-popup__backdrop {
  position: absolute !important;
  inset: 0 !important;
  background: rgba(0, 0, 0, .28) !important;
}

.cbi-added-popup__dialog {
  position: relative !important;
  width: min(540px, 100%) !important;
  background: #fff !important;
  border-radius: 0 !important;
  padding: 22px 20px 18px !important;
  box-sizing: border-box !important;
  z-index: 2 !important;
  box-shadow: 0 20px 60px rgba(0, 0, 0, .18) !important;
}

.cbi-added-popup__close {
  position: absolute !important;
  right: 14px !important;
  top: 10px !important;
  width: 28px !important;
  height: 28px !important;
  border: 0 !important;
  background: transparent !important;
  color: #b9b9b9 !important;
  font-size: 34px !important;
  line-height: 1 !important;
  cursor: pointer !important;
  padding: 0 !important;
}

.cbi-added-popup__title {
  margin: 0 34px 16px 0 !important;
  font-size: 22px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
  color: #111 !important;
}

.cbi-added-popup__benefit {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  margin: 0 0 16px !important;
  padding: 10px 12px !important;
  background: #e8f2e6 !important;
  color: #111 !important;
  font-size: 15px !important;
  line-height: 1.35 !important;
  text-align: center !important;
}

.cbi-added-popup__benefit-icon {
  color: #2b7a1f !important;
  font-weight: 700 !important;
}

.cbi-added-popup__product {
  display: grid !important;
  grid-template-columns: 100px minmax(0, 1fr) !important;
  gap: 16px !important;
  align-items: start !important;
  margin: 0 0 18px !important;
}

.cbi-added-popup__thumb {
  width: 100px !important;
  height: 100px !important;
  background: #f7f7f7 !important;
  overflow: hidden !important;
}

.cbi-added-popup__thumb img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

.cbi-added-popup__name {
  font-size: 16px !important;
  line-height: 1.45 !important;
  font-weight: 700 !important;
  color: #111 !important;
  margin: 0 0 6px !important;
}

.cbi-added-popup__options {
  font-size: 15px !important;
  line-height: 1.4 !important;
  color: #222 !important;
  margin: 0 0 6px !important;
}

.cbi-added-popup__price {
  font-size: 15px !important;
  line-height: 1.4 !important;
  color: #111 !important;
  font-weight: 600 !important;
}

.cbi-added-popup__action {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 52px !important;
  padding: 14px 18px !important;
  background: #2f2f35 !important;
  color: #fff !important;
  text-decoration: none !important;
  font-size: 20px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
  box-sizing: border-box !important;
}

.cbi-added-popup__action:hover {
  opacity: .95 !important;
}

@media (max-width: 640px) {
  .cbi-added-popup {
    padding: 14px !important;
  }

  .cbi-added-popup__dialog {
    padding: 18px 14px 14px !important;
  }

  .cbi-added-popup__title {
    font-size: 18px !important;
    margin-right: 26px !important;
  }

  .cbi-added-popup__product {
    grid-template-columns: 84px minmax(0, 1fr) !important;
    gap: 12px !important;
  }

  .cbi-added-popup__thumb {
    width: 84px !important;
    height: 84px !important;
  }

  .cbi-added-popup__action {
    min-height: 48px !important;
    font-size: 18px !important;
  }
}


/* =========================================================
   CBI v0.9.46: cart item model / color / size display + ajax remove
   ========================================================= */
body.cbi-exact-body #cartItems .cart-item {
  align-items: center !important;
}

body.cbi-exact-body #cartItems .item-details {
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
  min-width: 0 !important;
}

body.cbi-exact-body #cartItems .item-name {
  display: block !important;
  font-size: 14px !important;
  line-height: 1.25 !important;
  font-weight: 800 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  color: #222 !important;
}

body.cbi-exact-body #cartItems .item-options {
  display: block !important;
  font-size: 12px !important;
  line-height: 1.25 !important;
  font-weight: 500 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  color: #666 !important;
}

body.cbi-exact-body #cartItems .item-price {
  display: block !important;
  font-size: 13px !important;
  line-height: 1.25 !important;
  color: #555 !important;
}

body.cbi-exact-body #cartItems .remove-item-btn.is-loading {
  opacity: .35 !important;
  pointer-events: none !important;
}


/* =========================================================
   CBI v0.9.51: clean cart toast, one source of truth
   ========================================================= */
.cbi-added-popup,
.cbi-added-popup.is-open {
  display: none !important;
}

body.cbi-exact-body .cart-container {
  overflow: visible !important;
}

.cbi-cart-toast {
  position: absolute !important;
  top: 50px !important;
  right: -16px !important;
  left: auto !important;
  bottom: auto !important;
  width: 300px !important;
  max-width: calc(100vw - 24px) !important;
  min-height: 56px !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 14px 16px !important;
  box-sizing: border-box !important;
  background: #323235 !important;
  color: #fff !important;
  border-radius: 0 !important;
  box-shadow: 0 14px 30px rgba(0, 0, 0, .18) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transform: translateY(-8px) !important;
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease !important;
  z-index: 2400 !important;
  pointer-events: none !important;
  font-family: var(--cbi-font, inherit) !important;
}

.cbi-cart-toast.is-visible {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateY(0) !important;
  pointer-events: auto !important;
}

.cbi-cart-toast__arrow {
  position: absolute !important;
  top: -8px !important;
  right: var(--cbi-toast-arrow-right, 28px) !important;
  width: 0 !important;
  height: 0 !important;
  border-left: 8px solid transparent !important;
  border-right: 8px solid transparent !important;
  border-bottom: 8px solid #323235 !important;
}

.cbi-cart-toast__icon {
  flex: 0 0 18px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 18px !important;
  height: 18px !important;
  color: #fff !important;
}

.cbi-cart-toast__icon svg {
  display: block !important;
  width: 18px !important;
  height: 18px !important;
}

.cbi-cart-toast__text {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  color: #fff !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
  font-weight: 700 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.cbi-cart-toast__close {
  flex: 0 0 22px !important;
  width: 22px !important;
  height: 22px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 0 !important;
  background: transparent !important;
  color: #fff !important;
  font-size: 24px !important;
  line-height: 1 !important;
  padding: 0 !important;
  margin: 0 !important;
  cursor: pointer !important;
  opacity: .92 !important;
}

.cbi-cart-toast__close:hover {
  opacity: 1 !important;
}

/* Never let raw WooCommerce errors stretch product buttons. */
body.cbi-exact-body .cbi-product-card-v5 [data-cbi-card-add],
body.cbi-exact-body .cbi-mobile-quick-add {
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

@media(max-width:768px) {
  .cbi-cart-toast {
    width: min(300px, calc(100vw - 24px)) !important;
  }
}


/* =========================================================
   CBI v0.9.54: standardize product image ratio to company square standard
   - catalog cards use square media frame (matches 1200x1200 / 1280x1280 assets)
   - single-product stage and thumbnails use square frame
   ========================================================= */
body.cbi-exact-body .cbi-product-card-v5 .product-image-wrapper,
body.cbi-exact-body .cbi-product-card-v5 .cbi-product-media,
body.cbi-exact-body .cbi-catalog-view-3 .cbi-product-card-v5 .product-image-wrapper,
body.cbi-exact-body .cbi-catalog-view-3 .cbi-product-card-v5 .cbi-product-media,
body.cbi-exact-body .product-container.cbi-view-3 .cbi-product-card-v5 .product-image-wrapper,
body.cbi-exact-body .product-container.cbi-view-3 .cbi-product-card-v5 .cbi-product-media,
body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5 .product-image-wrapper,
body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5 .cbi-product-media,
body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5 .product-image-wrapper,
body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5 .cbi-product-media {
  aspect-ratio: 1 / 1 !important;
}

body.cbi-exact-body .cbi-product-card-v5 .product-image-wrapper img,
body.cbi-exact-body .cbi-product-card-v5 .cbi-product-media img,
body.cbi-exact-body .cbi-product-card-v5 .product-image-wrapper img.main-view,
body.cbi-exact-body .cbi-product-card-v5 .cbi-product-media img.main-view,
body.cbi-exact-body .cbi-product-card-v5 .product-image-wrapper img.human-view,
body.cbi-exact-body .cbi-product-card-v5 .cbi-product-media img.human-view {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery__wrapper,
body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-viewport,
body.cbi-exact-body.single-product .woocommerce-product-gallery__wrapper,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-viewport {
  aspect-ratio: 1 / 1 !important;
  max-width: 640px !important;
  max-height: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery__image,
body.cbi-exact-body.single-product .woocommerce-product-gallery__image,
body.single-product.cbi-exact-body .woocommerce-product-gallery__image a,
body.cbi-exact-body.single-product .woocommerce-product-gallery__image a {
  width: 100% !important;
  height: 100% !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery__image img,
body.cbi-exact-body.single-product .woocommerce-product-gallery__image img {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: contain !important;
  object-position: center center !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-nav,
body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-thumbs,
body.single-product.cbi-exact-body .woocommerce-product-gallery ol.flex-control-thumbs,
body.single-product.cbi-exact-body .woocommerce-product-gallery ul.flex-control-thumbs,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-nav,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-thumbs,
body.cbi-exact-body.single-product .woocommerce-product-gallery ol.flex-control-thumbs,
body.cbi-exact-body.single-product .woocommerce-product-gallery ul.flex-control-thumbs {
  width: 74px !important;
  max-width: 74px !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-thumbs li,
body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-nav li,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-thumbs li,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-nav li,
body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-thumbs img,
body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-nav img,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-thumbs img,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-nav img {
  width: 74px !important;
  min-width: 74px !important;
  height: 74px !important;
}

@media(max-width:768px) {

  body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-thumbs li,
  body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-thumbs li,
  body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-control-thumbs img,
  body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-control-thumbs img {
    width: 84px !important;
    min-width: 84px !important;
    height: 84px !important;
  }
}


/* =========================================================
   CBI v0.9.55: fix single-product gallery stage sizing
   - home/catalog stays square
   - single-product main image uses natural ratio to remove extra top/bottom bands
   ========================================================= */
body.single-product.cbi-exact-body .woocommerce-product-gallery,
body.cbi-exact-body.single-product .woocommerce-product-gallery {
  align-items: start !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery__wrapper,
body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-viewport,
body.cbi-exact-body.single-product .woocommerce-product-gallery__wrapper,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-viewport {
  aspect-ratio: auto !important;
  height: auto !important;
  max-height: none !important;
  display: block !important;
  align-items: initial !important;
  justify-content: initial !important;
  background: #f3f3f1 !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery__wrapper,
body.cbi-exact-body.single-product .woocommerce-product-gallery__wrapper {
  overflow: visible !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery__image,
body.cbi-exact-body.single-product .woocommerce-product-gallery__image,
body.single-product.cbi-exact-body .woocommerce-product-gallery__image a,
body.cbi-exact-body.single-product .woocommerce-product-gallery__image a {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: auto !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery__image img,
body.cbi-exact-body.single-product .woocommerce-product-gallery__image img {
  width: 100% !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: center top !important;
  background: #f3f3f1 !important;
}


/* =========================================================
   CBI v0.9.64: safe fix filter closed empty gap before footer
   Root cause: closed filter used visibility:hidden, so the hidden filter
   still kept its full height inside CSS grid and pushed the footer down.
   This patch is CSS-only and does not touch the main JS.
   ========================================================= */

/* Closed filter: remove hidden filter from layout completely. */
body.cbi-exact-body .cbi-catalog-shell:not(.filter-open) {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  align-items: start !important;
}

body.cbi-exact-body .cbi-catalog-shell:not(.filter-open) .filter-menu:not(.mobile-active) {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  transform: none !important;
}

body.cbi-exact-body .cbi-catalog-shell:not(.filter-open) #cbiProductContainer,
body.cbi-exact-body .cbi-catalog-shell:not(.filter-open) .product-container {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  min-height: 0 !important;
  height: auto !important;
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Open filter: keep the normal sidebar layout. */
body.cbi-exact-body .cbi-catalog-shell.filter-open {
  align-items: start !important;
  height: auto !important;
}

body.cbi-exact-body .cbi-catalog-shell.filter-open .filter-menu {
  display: block !important;
  height: auto !important;
  max-height: none !important;
}

/* Reduce only the actual footer gap, not product card spacing. */
body.cbi-exact-body .cbi-catalog-section {
  padding-bottom: clamp(18px, 2vw, 32px) !important;
  min-height: 0 !important;
}

body.cbi-exact-body #cbiProductContainer,
body.cbi-exact-body .product-container {
  margin-bottom: 0 !important;
}

body.cbi-exact-body .cbi-footer {
  margin-top: 0 !important;
}

/* Mobile/tablet overlay filter should still work normally. */
@media(max-width:900px) {

  body.cbi-exact-body .cbi-catalog-shell,
  body.cbi-exact-body .cbi-catalog-shell:not(.filter-open),
  body.cbi-exact-body .cbi-catalog-shell.filter-open {
    display: block !important;
    grid-template-columns: none !important;
  }

  body.cbi-exact-body .cbi-catalog-shell:not(.filter-open) .filter-menu.mobile-active,
  body.cbi-exact-body .filter-menu.mobile-active {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-height: min(74vh, 680px) !important;
    padding: 0 !important;
    overflow: auto !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
}


/* =========================================================
   CBI v0.9.65: single-product image area fit
   - catalog/home product cards stay unchanged
   - fix oversized portrait stage on product detail page
   ========================================================= */

/* The single-product reference gallery was taller than the product image canvas.
   Most imported product images are square, so the old portrait stage created
   large empty bands above and below the image. */
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked {
  --cbi-ref-gallery-h: clamp(410px, 32vw, 520px) !important;
}

/* Keep thumb rail and main stage the same practical height. */
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs-wrap,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs-wrap,
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage-wrap,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage-wrap {
  height: var(--cbi-ref-gallery-h) !important;
  min-height: var(--cbi-ref-gallery-h) !important;
  max-height: var(--cbi-ref-gallery-h) !important;
}

/* Main image panel: make the visible area closer to a square product canvas. */
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel {
  height: var(--cbi-ref-gallery-h) !important;
  min-height: var(--cbi-ref-gallery-h) !important;
  max-height: var(--cbi-ref-gallery-h) !important;
  margin-bottom: 8px !important;
  background: #f3f3f3 !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Image itself should fit the adjusted stage without being cropped. */
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel img,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  background: #f3f3f3 !important;
}

/* Woo gallery fallback, in case a product uses the default Woo gallery instead of CBI reference gallery. */
body.single-product.cbi-exact-body .woocommerce-product-gallery__wrapper,
body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-viewport,
body.cbi-exact-body.single-product .woocommerce-product-gallery__wrapper,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-viewport {
  max-height: 520px !important;
  background: #f3f3f3 !important;
}

body.single-product.cbi-exact-body .woocommerce-product-gallery__image img,
body.cbi-exact-body.single-product .woocommerce-product-gallery__image img {
  max-height: 520px !important;
  object-fit: contain !important;
  object-position: center center !important;
}

/* Mobile remains natural height so it does not create a new overflow bug. */
@media(max-width:768px) {

  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked {
    --cbi-ref-gallery-h: auto !important;
  }

  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs-wrap,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs-wrap,
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage-wrap,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage-wrap,
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }

  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel {
    aspect-ratio: 1/1 !important;
  }
}


/* =========================================================
   CBI v0.9.66: tighten final single-product image gap
   - remove remaining small grey bars above/below main image
   - keep catalog/home product images unchanged
   ========================================================= */

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked {
  --cbi-ref-gallery-h: clamp(390px, 30vw, 490px) !important;
}

/* Make remaining unused gallery background blend with page instead of showing grey bars. */
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage-wrap,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage-wrap,
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage,
html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel {
  background: #fff !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel {
  margin-bottom: 0 !important;
}

html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel img,
html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel img {
  background: #fff !important;
  object-position: center center !important;
}

/* Fallback Woo gallery also uses white background on single product only. */
body.single-product.cbi-exact-body .woocommerce-product-gallery__wrapper,
body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-viewport,
body.single-product.cbi-exact-body .woocommerce-product-gallery__image,
body.single-product.cbi-exact-body .woocommerce-product-gallery__image img,
body.cbi-exact-body.single-product .woocommerce-product-gallery__wrapper,
body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-viewport,
body.cbi-exact-body.single-product .woocommerce-product-gallery__image,
body.cbi-exact-body.single-product .woocommerce-product-gallery__image img {
  background: #fff !important;
}


/* =========================================================
   CBI v0.9.69: mobile-only single-product horizontal image carousel
   Scope: max-width 769px only
   Goal: reference-like one big image, swipe right/left to change images.
   Desktop/tablet >=770 and catalog/home are unchanged.
   ========================================================= */

@media(max-width:769px) {

  /* Single product page becomes a normal one-column product detail flow. */
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-layout,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-layout {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
  }

  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-gallery-column,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-gallery-column,
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-summary-column,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-summary-column {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
  }

  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-summary-card,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-summary-card {
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 18px 0 0 !important;
  }

  /* Gallery wrapper: no side menu, no vertical rail. */
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    grid-template-columns: none !important;
    gap: 0 !important;
    --cbi-ref-gallery-h: auto !important;
    --cbi-ref-thumb-w: 0px !important;
    --cbi-ref-thumb-h: 0px !important;
  }

  /* Hide thumbnail rail and arrow controls completely on mobile. */
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs-wrap,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs-wrap,
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs,
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-nav,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-nav {
    display: none !important;
  }

  /* Stage becomes the visible horizontal carousel box. */
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage-wrap,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage-wrap {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: 1/1.24 !important;
    overflow: hidden !important;
    background: #f3f3f3 !important;
    cursor: default !important;
    touch-action: pan-x !important;
    user-select: auto !important;
    -webkit-user-select: auto !important;
  }

  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x mandatory !important;
    scroll-behavior: smooth !important;
    overscroll-behavior-x: contain !important;
    overscroll-behavior-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    background: #f3f3f3 !important;
    cursor: default !important;
    touch-action: pan-x !important;
    scrollbar-width: none !important;
  }

  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage::-webkit-scrollbar,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
  }

  /* Each image is one full carousel slide. */
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel {
    flex: 0 0 100% !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
    scroll-snap-align: start !important;
    scroll-snap-stop: always !important;
    background: #f3f3f3 !important;
    cursor: default !important;
  }

  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel img,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    background: #f3f3f3 !important;
    pointer-events: none !important;
    user-select: none !important;
    -webkit-user-select: none !important;
    -webkit-user-drag: none !important;
  }

  /* Remove the old fixed gallery height from Woo fallback too. */
  body.single-product.cbi-exact-body .woocommerce-product-gallery__wrapper,
  body.single-product.cbi-exact-body .woocommerce-product-gallery .flex-viewport,
  body.cbi-exact-body.single-product .woocommerce-product-gallery__wrapper,
  body.cbi-exact-body.single-product .woocommerce-product-gallery .flex-viewport {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: 1/1.24 !important;
    overflow: hidden !important;
    background: #f3f3f3 !important;
  }

  /* Keep mobile product info below the carousel, like the reference. */
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-single-summary-column,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-single-summary-column {
    clear: both !important;
  }
}


/* =========================================================
   CBI v0.9.70: mobile carousel snap alignment fix
   - prevent first/active image from sitting between two slides
   ========================================================= */

@media(max-width:769px) {
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage {
    scroll-padding-left: 0 !important;
    scroll-padding-inline-start: 0 !important;
    scroll-snap-type: x mandatory !important;
  }

  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel {
    scroll-snap-align: start !important;
    position: relative !important;
    box-sizing: border-box !important;
    transform: none !important;
  }
}


/* =========================================================
   CBI v0.9.71: mobile single-product carousel centering hard fix
   - keep one full-width slide on screen
   - ensure image starts centered, not cut off to the left
   ========================================================= */
@media(max-width:769px) {
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage {
    align-items: stretch !important;
    justify-content: flex-start !important;
    scroll-snap-type: x mandatory !important;
    scroll-padding: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel {
    flex: 0 0 100% !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    justify-content: center !important;
    align-items: center !important;
  }
}




/* =========================================================
   CBI v0.9.73: Cleaner modern fashion cart page
   - remove big hero/steps
   - reference-inspired, not copied
   ========================================================= */

body.woocommerce-cart .entry-title,
body.woocommerce-cart .page-title,
body.woocommerce-cart h1.entry-title {
  display: none !important
}

body.woocommerce-cart .woocommerce {
  max-width: min(1160px, calc(100% - 40px)) !important;
  margin: 0 auto !important;
}

.cbi-cart-page-v973 {
  --cbi-cart-ink: #0f172a;
  --cbi-cart-muted: #71717a;
  --cbi-cart-line: #e5e5e5;
  --cbi-cart-soft: #f7f7f7;
  --cbi-cart-warm: #fbf7ef;
  --cbi-cart-green: #029a2f;
  max-width: min(1160px, calc(100% - 40px));
  margin: 24px auto 72px;
  color: var(--cbi-cart-ink);
}

.cbi-cart-simple-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  margin: 0 0 18px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--cbi-cart-line);
}

.cbi-cart-simple-head h1 {
  margin: 0 0 4px !important;
  font-size: 32px !important;
  line-height: 1.12 !important;
  letter-spacing: -.015em !important;
  color: #050816 !important;
}

.cbi-cart-simple-head p {
  margin: 0 !important;
  color: #777;
  font-size: 14px;
}

.cbi-cart-continue {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid #dcdcdc;
  border-radius: 0;
  color: #111;
  background: #fff;
  text-decoration: none;
  font-size: 13px;
  font-weight: 800;
}

.cbi-cart-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 350px;
  gap: 28px;
  align-items: start;
}

.cbi-cart-table-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 100px 95px 120px;
  gap: 20px;
  align-items: center;
  padding: 0 0 12px;
  border-bottom: 1px solid #d7d7d7;
  color: #858585;
  font-size: 13px;
  font-weight: 900;
}

.cbi-cart-items {
  display: grid;
  border: 1px solid #ececec;
  border-radius: 4px;
  overflow: hidden;
  background: #fff;
}

.cbi-cart-card {
  border-bottom: 1px solid #ececec;
  background: #fff;
}

.cbi-cart-card:last-child {
  border-bottom: 0;
}

.cbi-cart-delivery-note {
  padding: 12px 18px;
  background: #fafafa;
  color: #111;
  font-size: 13px;
  border-bottom: 1px solid #f0f0f0;
}

.cbi-cart-card__inner {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr) 100px 95px 120px;
  gap: 20px;
  align-items: center;
  padding: 18px;
}

.cbi-cart-card__media a,
.cbi-cart-card__media img {
  display: block;
  width: 94px !important;
  height: 94px !important;
}

.cbi-cart-card__media a {
  background: #f3f3f3;
  overflow: hidden;
}

.cbi-cart-card__media img {
  object-fit: contain !important;
}

.cbi-cart-card__name {
  display: block;
  max-width: 360px;
  color: #050816 !important;
  text-decoration: none !important;
  font-size: 15px;
  line-height: 1.35;
  font-weight: 900;
}

.cbi-cart-sku {
  display: block;
  margin-top: 5px;
  color: #94a3b8;
  font-size: 10px;
  line-height: 1.3;
}

.cbi-cart-card__meta {
  margin-top: 8px;
}

.cbi-cart-card__meta .variation {
  display: grid !important;
  gap: 2px !important;
  margin: 0 !important;
  color: #111;
  font-size: 13px;
}

.cbi-cart-card__meta .variation dt,
.cbi-cart-card__meta .variation dd {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #111 !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
}

.cbi-cart-card__meta .variation dt {
  font-weight: 400 !important;
}

.cbi-cart-stock-chip {
  display: inline-flex;
  margin-top: 8px;
  padding: 3px 7px;
  background: #dbffe0;
  color: #018a28;
  font-size: 11px;
  font-weight: 800;
}

.cbi-cart-card__links {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}

.cbi-cart-remove {
  color: #777;
  font-size: 12px;
  text-decoration: underline;
  font-weight: 600;
}

.cbi-cart-card__price,
.cbi-cart-card__subtotal {
  color: #111;
  font-size: 14px;
  font-weight: 800;
  text-align: right;
}

.cbi-cart-card__price span,
.cbi-cart-card__subtotal span,
.cbi-cart-qty-wrap>span {
  display: none;
}

.cbi-cart-card__subtotal strong,
.cbi-cart-card__price strong {
  font-size: 14px;
  color: #111;
  font-weight: 900;
  white-space: nowrap;
}

.cbi-cart-qty-wrap .quantity {
  display: inline-grid !important;
  grid-template-columns: 32px 38px 32px !important;
  align-items: center;
  width: 102px;
  height: 38px;
  border: 1px solid #d6d6d6;
  border-radius: 4px;
  background: #fff;
  overflow: hidden;
}

.cbi-cart-qty-wrap .quantity .qty {
  width: 38px !important;
  height: 38px !important;
  border: 0 !important;
  text-align: center !important;
  background: #fff !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  appearance: textfield !important;
  -moz-appearance: textfield !important;
}

.cbi-cart-qty-wrap .quantity .qty::-webkit-outer-spin-button,
.cbi-cart-qty-wrap .quantity .qty::-webkit-inner-spin-button {
  -webkit-appearance: none !important;
  margin: 0 !important;
}

.cbi-cart-qty-btn {
  width: 32px;
  height: 38px;
  border: 0;
  background: #fff;
  color: #111;
  cursor: pointer;
  font-size: 15px;
}

.cbi-cart-qty-btn:hover {
  background: #f5f5f5;
}

.cbi-cart-actions {
  display: grid;
  gap: 12px;
  margin-top: 18px;
}

.cbi-cart-coupon {
  padding: 16px;
  border: 1px solid #e0e0e0;
  background: #fafafa;
}

.cbi-cart-coupon label {
  display: block;
  margin-bottom: 10px;
  color: #111;
  font-size: 14px;
  font-weight: 900;
}

.cbi-cart-coupon__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 84px;
  gap: 8px;
}

.cbi-cart-coupon input {
  min-height: 42px !important;
  border: 1px solid #d4d4d4 !important;
  border-radius: 4px !important;
  padding: 0 12px !important;
}

.cbi-cart-coupon .button,
.cbi-cart-update {
  min-height: 42px !important;
  border: 0 !important;
  border-radius: 4px !important;
  background: #111827 !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  padding: 0 14px !important;
}

.cbi-cart-update {
  justify-self: end;
  background: #3f3f46 !important;
}

.cbi-cart-benefit-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-top: 18px;
}

.cbi-cart-benefit-row div {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 10px 16px;
  border: 1px solid #e2e2e2;
  background: #fff;
  color: #111;
  text-align: center;
  font-size: 13px;
  font-weight: 900;
}

.cbi-cart-summary-panel {
  display: grid;
  gap: 14px;
}

.cbi-cart-promo-box {
  padding: 20px;
  background: #fff8ef;
  color: #111;
  font-size: 13px;
  line-height: 1.65;
}

.cbi-cart-promo-box strong {
  display: block;
  margin-bottom: 10px;
  font-size: 14px;
  text-decoration: underline;
}

.cbi-cart-promo-box p {
  margin: 0 0 8px;
}

.cbi-cart-free-box {
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 10px;
  align-items: center;
  padding: 12px 16px;
  background: #e8f8e9;
  border-bottom: 4px solid #009b35;
  color: #111;
  font-size: 13px;
  font-weight: 800;
}

.cbi-cart-free-box span {
  color: #009b35;
  font-weight: 900;
  font-size: 16px;
}

.cbi-cart-totals {
  padding: 20px !important;
  background: #f1f1f1 !important;
  border: 0 !important;
  border-radius: 4px !important;
  box-shadow: none !important;
}

.cbi-cart-totals__head h2 {
  margin: 0 0 16px !important;
  padding-bottom: 14px;
  border-bottom: 1px solid #d7d7d7;
  font-size: 20px !important;
  line-height: 1.2 !important;
  color: #111 !important;
  text-align: center;
}

.cbi-cart-progress {
  margin-bottom: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid #d7d7d7;
}

.cbi-cart-progress p {
  margin: 0 0 8px !important;
  color: #111;
  font-size: 13px;
  line-height: 1.45;
}

.cbi-cart-progress__bar {
  height: 6px;
  background: #d1d1d1;
  overflow: hidden;
}

.cbi-cart-progress__bar span {
  display: block;
  height: 100%;
  background: #111;
}

.cbi-cart-totals__rows {
  display: grid;
  gap: 0;
}

.cbi-cart-total-row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid #d7d7d7;
}

.cbi-cart-total-row span {
  color: #111;
  font-size: 13px;
}

.cbi-cart-total-row strong {
  color: #111;
  font-size: 14px;
  font-weight: 800;
  text-align: right;
}

.cbi-cart-total-row.order-total {
  padding-top: 18px;
  border-bottom: 0;
}

.cbi-cart-total-row.order-total span,
.cbi-cart-total-row.order-total strong {
  font-size: 18px;
  font-weight: 900;
}

.cbi-cart-shipping {
  padding: 12px 0;
  border-bottom: 1px solid #d7d7d7;
}

.cbi-cart-shipping table,
.cbi-cart-shipping tbody,
.cbi-cart-shipping tr,
.cbi-cart-shipping th,
.cbi-cart-shipping td {
  display: block !important;
  width: 100% !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
}

.cbi-cart-checkout {
  padding: 16px 0 0 !important;
}

.cbi-cart-checkout .checkout-button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 48px !important;
  border-radius: 4px !important;
  background: #00a80b !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

.cbi-cart-payments-note {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid #d7d7d7;
  text-align: center;
}

.cbi-cart-payments-note strong,
.cbi-cart-payments-note span {
  display: block;
}

.cbi-cart-payments-note strong {
  color: #111;
  font-size: 13px;
}

.cbi-cart-payments-note span {
  margin-top: 4px;
  color: #71717a;
  font-size: 12px;
}

body.woocommerce-cart .woocommerce-notices-wrapper {
  max-width: min(1160px, calc(100% - 40px));
  margin: 0 auto 14px;
}

body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-error {
  border: 1px solid #dbeafe !important;
  border-radius: 4px !important;
  background: #f8fbff !important;
  color: #111 !important;
  padding: 14px 18px !important;
}

@media(max-width:980px) {
  .cbi-cart-layout {
    grid-template-columns: 1fr;
  }

  .cbi-cart-table-head {
    display: none;
  }

  .cbi-cart-summary-panel {
    order: 2;
  }
}

@media(max-width:640px) {

  body.woocommerce-cart .woocommerce,
  .cbi-cart-page-v973,
  body.woocommerce-cart .woocommerce-notices-wrapper {
    max-width: calc(100% - 18px) !important;
  }

  .cbi-cart-simple-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .cbi-cart-simple-head h1 {
    font-size: 26px !important;
  }

  .cbi-cart-card__inner {
    grid-template-columns: 86px minmax(0, 1fr);
    gap: 12px;
    padding: 14px;
  }

  .cbi-cart-card__media a,
  .cbi-cart-card__media img {
    width: 86px !important;
    height: 86px !important;
  }

  .cbi-cart-card__price,
  .cbi-cart-qty-wrap,
  .cbi-cart-card__subtotal {
    grid-column: 2;
    text-align: left;
  }

  .cbi-cart-card__price span,
  .cbi-cart-card__subtotal span,
  .cbi-cart-qty-wrap>span {
    display: block;
  }

  .cbi-cart-card__name {
    font-size: 14px;
  }

  .cbi-cart-benefit-row {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .cbi-cart-coupon__row {
    grid-template-columns: 1fr;
  }

  .cbi-cart-update {
    justify-self: stretch;
  }
}


/* CBI Dynamic Filter v2.5.2: keep reset click area separate from collapse arrow. */
body.cbi-exact-body .filter-section-toggle {
  position: relative !important;
}

body.cbi-exact-body .cbi-filter-header-actions {
  position: relative !important;
  z-index: 2 !important;
  gap: 14px !important;
}

body.cbi-exact-body .cbi-filter-header-actions i {
  pointer-events: none !important;
  position: relative !important;
  z-index: 1 !important;
}

body.cbi-exact-body .cbi-filter-section-reset.is-visible {
  position: relative !important;
  z-index: 5 !important;
}

/* CBI v0.9.62 / Checkout Takeover v2.6.0 */
body.cbi-exact-body.woocommerce-checkout {
  background: #f5f6f8 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-page {
  background: linear-gradient(180deg, #f7f8fb 0%, #f4f5f7 100%) !important;
  min-height: 70vh !important;
  padding-bottom: 72px !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-hero {
  background: #fff !important;
  border-bottom: 1px solid #e7e9ee !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-hero-inner {
  min-height: 138px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 24px !important;
  padding-top: 28px !important;
  padding-bottom: 28px !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-eyebrow {
  display: block !important;
  margin: 0 0 7px !important;
  color: #7b8492 !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: .16em !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-hero h1 {
  margin: 0 !important;
  color: #111827 !important;
  font-size: 34px !important;
  line-height: 1.1 !important;
  font-weight: 800 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-hero p {
  margin: 8px 0 0 !important;
  color: #64748b !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-steps {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 12px 14px !important;
  border: 1px solid #e5e7eb !important;
  background: #fafafa !important;
  color: #8a94a6 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  white-space: nowrap !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-steps strong {
  color: #111827 !important;
  font-weight: 800 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-shortcode-wrap {
  padding-top: 28px !important;
}

body.cbi-exact-body.woocommerce-checkout .woocommerce-notices-wrapper,
body.cbi-exact-body.woocommerce-checkout .woocommerce-form-coupon-toggle,
body.cbi-exact-body.woocommerce-checkout form.checkout_coupon {
  max-width: 1180px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.cbi-exact-body.woocommerce-checkout .woocommerce-info,
body.cbi-exact-body.woocommerce-checkout .woocommerce-message,
body.cbi-exact-body.woocommerce-checkout .woocommerce-error {
  border: 1px solid #e5e7eb !important;
  background: #fff !important;
  color: #111827 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  font-size: 14px !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-form {
  display: block !important;
  margin: 0 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-layout {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 420px !important;
  gap: 28px !important;
  align-items: start !important;
  max-width: 1180px !important;
  margin: 0 auto !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-maincol,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-sidecol {
  min-width: 0 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-sidecol {
  position: sticky !important;
  top: 112px !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-card {
  background: #fff !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 0 !important;
  box-shadow: 0 18px 38px rgba(15, 23, 42, .04) !important;
  margin: 0 0 18px !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-card-head {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 18px !important;
  padding: 24px 26px 18px !important;
  border-bottom: 1px solid #eef0f3 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-card-head>div {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  min-width: 0 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-card-head h2,
body.cbi-exact-body.woocommerce-checkout .woocommerce-billing-fields>h3,
body.cbi-exact-body.woocommerce-checkout .woocommerce-shipping-fields>h3,
body.cbi-exact-body.woocommerce-checkout h3#order_review_heading {
  margin: 0 !important;
  color: #111827 !important;
  font-size: 18px !important;
  line-height: 1.25 !important;
  font-weight: 800 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-card-head p {
  margin: 0 !important;
  color: #7b8492 !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
  text-align: right !important;
  max-width: 290px !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-step-badge {
  width: 28px !important;
  height: 28px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #111827 !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  flex: 0 0 28px !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-fields-grid {
  padding: 24px 26px 26px !important;
}

body.cbi-exact-body.woocommerce-checkout .woocommerce-billing-fields>h3,
body.cbi-exact-body.woocommerce-checkout .woocommerce-shipping-fields>h3 {
  margin-bottom: 16px !important;
  font-size: 16px !important;
}

body.cbi-exact-body.woocommerce-checkout .woocommerce-additional-fields {
  margin-top: 18px !important;
  padding-top: 18px !important;
  border-top: 1px solid #eef0f3 !important;
}

body.cbi-exact-body.woocommerce-checkout .woocommerce-additional-fields>h3 {
  font-size: 16px !important;
  font-weight: 800 !important;
  margin: 0 0 14px !important;
}

body.cbi-exact-body.woocommerce-checkout form .form-row {
  margin: 0 0 15px !important;
  padding: 0 !important;
}

body.cbi-exact-body.woocommerce-checkout form .form-row label {
  display: block !important;
  margin: 0 0 6px !important;
  color: #111827 !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
  font-weight: 700 !important;
}

body.cbi-exact-body.woocommerce-checkout form .form-row .required {
  color: #ef4444 !important;
}

body.cbi-exact-body.woocommerce-checkout form .form-row input.input-text,
body.cbi-exact-body.woocommerce-checkout form .form-row textarea,
body.cbi-exact-body.woocommerce-checkout form .form-row select,
body.cbi-exact-body.woocommerce-checkout .select2-container .select2-selection--single {
  width: 100% !important;
  min-height: 44px !important;
  border: 1px solid #d9dde5 !important;
  border-radius: 0 !important;
  background: #fff !important;
  color: #111827 !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  box-shadow: none !important;
  outline: none !important;
}

body.cbi-exact-body.woocommerce-checkout form .form-row input.input-text,
body.cbi-exact-body.woocommerce-checkout form .form-row textarea {
  padding: 11px 13px !important;
}

body.cbi-exact-body.woocommerce-checkout form .form-row textarea {
  min-height: 96px !important;
  resize: vertical !important;
}

body.cbi-exact-body.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered {
  line-height: 44px !important;
  padding-left: 13px !important;
  padding-right: 34px !important;
}

body.cbi-exact-body.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow {
  height: 44px !important;
}

body.cbi-exact-body.woocommerce-checkout form .form-row input.input-text:focus,
body.cbi-exact-body.woocommerce-checkout form .form-row textarea:focus,
body.cbi-exact-body.woocommerce-checkout form .form-row select:focus,
body.cbi-exact-body.woocommerce-checkout .select2-container--open .select2-selection--single {
  border-color: #111827 !important;
}

body.cbi-exact-body.woocommerce-checkout form .form-row.woocommerce-invalid input.input-text,
body.cbi-exact-body.woocommerce-checkout form .form-row.woocommerce-invalid select,
body.cbi-exact-body.woocommerce-checkout form .form-row.woocommerce-invalid .select2-selection {
  border-color: #ef4444 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-summary-card {
  overflow: hidden !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-summary-head p {
  align-self: center !important;
  padding: 6px 10px !important;
  background: #f3f4f6 !important;
  color: #111827 !important;
  font-weight: 800 !important;
  text-align: center !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-order-review {
  padding: 0 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-products {
  padding: 18px 18px 4px !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-item {
  display: grid !important;
  grid-template-columns: 72px minmax(0, 1fr) auto !important;
  gap: 12px !important;
  align-items: start !important;
  padding: 0 0 16px !important;
  margin: 0 0 16px !important;
  border-bottom: 1px solid #eef0f3 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-item:last-child {
  margin-bottom: 0 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-thumb,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-thumb a,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-thumb img {
  display: block !important;
  width: 72px !important;
  height: 72px !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-thumb img {
  object-fit: cover !important;
  background: #f6f7f9 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-name,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-name a {
  color: #111827 !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
  font-weight: 800 !important;
  text-decoration: none !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-options,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-qty,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-info .variation {
  margin-top: 4px !important;
  color: #7b8492 !important;
  font-size: 12px !important;
  line-height: 1.45 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-total {
  color: #111827 !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
  font-weight: 800 !important;
  white-space: nowrap !important;
  text-align: right !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-totals-table {
  width: calc(100% - 36px) !important;
  margin: 0 18px 18px !important;
  border-collapse: collapse !important;
  border: 0 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-totals-table th,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-totals-table td {
  border: 0 !important;
  border-top: 1px solid #eef0f3 !important;
  padding: 12px 0 !important;
  background: transparent !important;
  color: #111827 !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  vertical-align: top !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-totals-table th {
  font-weight: 700 !important;
  text-align: left !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-totals-table td {
  font-weight: 700 !important;
  text-align: right !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-totals-table .order-total th,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-totals-table .order-total td {
  padding-top: 16px !important;
  font-size: 18px !important;
  font-weight: 900 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-totals-table .woocommerce-shipping-methods {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: left !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-totals-table .woocommerce-shipping-methods li {
  margin: 0 0 8px !important;
  display: flex !important;
  justify-content: flex-end !important;
  gap: 7px !important;
}

body.cbi-exact-body.woocommerce-checkout #payment {
  background: #fff !important;
  border-top: 1px solid #eef0f3 !important;
  border-radius: 0 !important;
  padding: 18px !important;
}

body.cbi-exact-body.woocommerce-checkout #payment ul.payment_methods {
  border: 0 !important;
  padding: 0 !important;
  margin: 0 0 16px !important;
}

body.cbi-exact-body.woocommerce-checkout #payment ul.payment_methods li {
  padding: 13px 14px !important;
  margin: 0 0 10px !important;
  border: 1px solid #e5e7eb !important;
  background: #fafafa !important;
  color: #111827 !important;
  font-size: 14px !important;
  line-height: 1.45 !important;
}

body.cbi-exact-body.woocommerce-checkout #payment div.payment_box {
  background: #fff !important;
  color: #64748b !important;
  border: 1px solid #eef0f3 !important;
  border-radius: 0 !important;
  margin: 10px 0 0 !important;
  padding: 12px !important;
  font-size: 13px !important;
}

body.cbi-exact-body.woocommerce-checkout #payment div.payment_box:before {
  display: none !important;
}

body.cbi-exact-body.woocommerce-checkout #payment .place-order {
  padding: 0 !important;
  margin: 0 !important;
}

body.cbi-exact-body.woocommerce-checkout #payment #place_order,
body.cbi-exact-body.woocommerce-checkout button#place_order {
  width: 100% !important;
  min-height: 50px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #111827 !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  letter-spacing: .01em !important;
  text-align: center !important;
}

body.cbi-exact-body.woocommerce-checkout #payment #place_order:hover,
body.cbi-exact-body.woocommerce-checkout button#place_order:hover {
  background: #000 !important;
}

body.cbi-exact-body.woocommerce-checkout .woocommerce-privacy-policy-text {
  margin: 0 0 14px !important;
  color: #64748b !important;
  font-size: 12px !important;
  line-height: 1.55 !important;
}

body.cbi-exact-body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
  margin-bottom: 12px !important;
}

body.cbi-exact-body.woocommerce-checkout form.checkout_coupon {
  display: flex !important;
  gap: 10px !important;
  align-items: flex-end !important;
  padding: 18px !important;
  border: 1px solid #e5e7eb !important;
  background: #fff !important;
  margin-bottom: 18px !important;
}

body.cbi-exact-body.woocommerce-checkout form.checkout_coupon p {
  margin: 0 !important;
}

body.cbi-exact-body.woocommerce-checkout form.checkout_coupon .form-row-first {
  flex: 1 1 auto !important;
  width: auto !important;
}

body.cbi-exact-body.woocommerce-checkout form.checkout_coupon .form-row-last {
  flex: 0 0 auto !important;
  width: auto !important;
}

body.cbi-exact-body.woocommerce-checkout form.checkout_coupon input.input-text {
  min-height: 44px !important;
  border: 1px solid #d9dde5 !important;
  padding: 10px 12px !important;
}

body.cbi-exact-body.woocommerce-checkout form.checkout_coupon button.button {
  min-height: 44px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #111827 !important;
  color: #fff !important;
  padding: 0 18px !important;
  font-weight: 800 !important;
}

@media(max-width:1024px) {
  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-layout {
    grid-template-columns: 1fr !important;
    max-width: 760px !important;
  }

  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-sidecol {
    position: static !important;
  }
}

@media(max-width:770px) {
  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-hero-inner {
    min-height: 0 !important;
    padding-top: 22px !important;
    padding-bottom: 18px !important;
    flex-direction: column !important;
    align-items: flex-start !important;
  }

  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-hero h1 {
    font-size: 28px !important;
  }

  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-steps {
    width: 100% !important;
    justify-content: center !important;
    overflow: auto !important;
  }

  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-shortcode-wrap {
    padding-top: 16px !important;
  }

  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-layout {
    gap: 16px !important;
  }

  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-card-head {
    padding: 18px 16px 14px !important;
    flex-direction: column !important;
    gap: 8px !important;
  }

  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-card-head p {
    text-align: left !important;
    max-width: none !important;
  }

  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-fields-grid {
    padding: 18px 16px 20px !important;
  }

  body.cbi-exact-body.woocommerce-checkout form .form-row-first,
  body.cbi-exact-body.woocommerce-checkout form .form-row-last {
    float: none !important;
    width: 100% !important;
  }

  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-products {
    padding: 16px 14px 2px !important;
  }

  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-item {
    grid-template-columns: 64px minmax(0, 1fr) !important;
    gap: 11px !important;
    position: relative !important;
    padding-bottom: 34px !important;
  }

  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-thumb,
  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-thumb a,
  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-thumb img {
    width: 64px !important;
    height: 64px !important;
  }

  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-total {
    position: absolute !important;
    left: 75px !important;
    bottom: 13px !important;
    text-align: left !important;
  }

  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-totals-table {
    width: calc(100% - 28px) !important;
    margin-left: 14px !important;
    margin-right: 14px !important;
  }

  body.cbi-exact-body.woocommerce-checkout #payment {
    padding: 16px 14px !important;
  }

  body.cbi-exact-body.woocommerce-checkout form.checkout_coupon {
    display: block !important;
    padding: 16px !important;
  }

  body.cbi-exact-body.woocommerce-checkout form.checkout_coupon .form-row-first,
  body.cbi-exact-body.woocommerce-checkout form.checkout_coupon .form-row-last {
    width: 100% !important;
    margin-bottom: 10px !important;
  }
}


/* CBI Checkout Takeover v2.6.1 - reference style */
body.cbi-exact-body.woocommerce-checkout {
  background: #fff !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-page,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-ref-page {
  background: #fff !important;
  padding-bottom: 0 !important;
  min-height: 70vh !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-hero {
  display: none !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-ref-head {
  background: #fff !important;
  border: 0 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-ref-head-inner {
  position: relative !important;
  min-height: 54px !important;
  display: grid !important;
  grid-template-columns: 1fr auto 1fr !important;
  align-items: center !important;
  gap: 16px !important;
  padding-top: 8px !important;
  padding-bottom: 8px !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-breadcrumb {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  color: #111 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-breadcrumb a {
  color: #111 !important;
  text-decoration: none !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-ref-head h1 {
  margin: 0 !important;
  color: #111 !important;
  font-size: 22px !important;
  line-height: 1.2 !important;
  font-weight: 900 !important;
  text-align: center !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-secure {
  justify-self: end !important;
  display: flex !important;
  align-items: center !important;
  gap: 7px !important;
  color: #b4b4b4 !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  white-space: nowrap !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-ref-wrap {
  padding-top: 0 !important;
}

body.cbi-exact-body.woocommerce-checkout .woocommerce-notices-wrapper,
body.cbi-exact-body.woocommerce-checkout .woocommerce-form-coupon-toggle,
body.cbi-exact-body.woocommerce-checkout form.checkout_coupon {
  display: none !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-ref-layout {
  max-width: 1180px !important;
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 370px !important;
  gap: 20px !important;
  align-items: start !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-ref-main,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-ref-side {
  min-width: 0 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-ref-side {
  position: sticky !important;
  top: 92px !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-section {
  background: #fff !important;
  border: 0 !important;
  box-shadow: none !important;
  margin: 0 0 22px !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-section-title {
  display: block !important;
  background: #f0f0f0 !important;
  color: #111 !important;
  font-size: 15px !important;
  line-height: 1.2 !important;
  font-weight: 900 !important;
  padding: 10px 13px !important;
  margin: 0 0 18px !important;
  border-radius: 3px !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-subtitle,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-address-block h2,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-shipping-method-block h2,
body.cbi-exact-body.woocommerce-checkout .woocommerce-billing-fields>h3,
body.cbi-exact-body.woocommerce-checkout .woocommerce-shipping-fields>h3,
body.cbi-exact-body.woocommerce-checkout .woocommerce-additional-fields>h3 {
  margin: 0 0 13px !important;
  color: #111 !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
  font-weight: 900 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-required-note {
  margin: -7px 0 14px !important;
  color: #9a9a9a !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-delivery-choice {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 20px !important;
  margin: 0 0 26px !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-delivery-card {
  min-height: 126px !important;
  display: block !important;
  border: 1px solid #d6d6d6 !important;
  background: #fff !important;
  padding: 18px 20px !important;
  cursor: pointer !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-delivery-card.is-active {
  border-color: #111 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-delivery-card.is-muted {
  color: #555 !important;
  background: #fff !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-delivery-card input {
  position: absolute !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-delivery-card-head {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin-bottom: 10px !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-delivery-card strong {
  color: #111 !important;
  font-size: 14px !important;
  line-height: 1.3 !important;
  font-weight: 900 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-delivery-card em {
  color: #111 !important;
  font-style: normal !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  white-space: nowrap !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-delivery-card span:last-child {
  display: block !important;
  color: #111 !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-address-block,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-shipping-method-block {
  margin-top: 2px !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-field-panel,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-fields-grid {
  padding: 0 !important;
}

body.cbi-exact-body.woocommerce-checkout .woocommerce-billing-fields>h3 {
  display: none !important;
}

body.cbi-exact-body.woocommerce-checkout .woocommerce-shipping-fields {
  margin-top: 0 !important;
}

body.cbi-exact-body.woocommerce-checkout .woocommerce-additional-fields {
  border: 0 !important;
  padding-top: 0 !important;
  margin-top: 18px !important;
}

body.cbi-exact-body.woocommerce-checkout form .form-row {
  margin: 0 0 12px !important;
  padding: 0 !important;
}

body.cbi-exact-body.woocommerce-checkout form .form-row label {
  color: #111 !important;
  font-size: 12px !important;
  line-height: 1.25 !important;
  font-weight: 800 !important;
  margin: 0 0 5px !important;
}

body.cbi-exact-body.woocommerce-checkout form .form-row input.input-text,
body.cbi-exact-body.woocommerce-checkout form .form-row textarea,
body.cbi-exact-body.woocommerce-checkout form .form-row select,
body.cbi-exact-body.woocommerce-checkout .select2-container .select2-selection--single {
  min-height: 39px !important;
  border: 1px solid #cfcfcf !important;
  border-radius: 3px !important;
  background: #fff !important;
  color: #111 !important;
  font-size: 13px !important;
  box-shadow: none !important;
}

body.cbi-exact-body.woocommerce-checkout form .form-row input.input-text,
body.cbi-exact-body.woocommerce-checkout form .form-row textarea {
  padding: 9px 12px !important;
}

body.cbi-exact-body.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered {
  line-height: 39px !important;
  padding-left: 12px !important;
  padding-right: 32px !important;
}

body.cbi-exact-body.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow {
  height: 39px !important;
}

body.cbi-exact-body.woocommerce-checkout #billing_first_name_field,
body.cbi-exact-body.woocommerce-checkout #shipping_first_name_field {
  width: 49% !important;
  float: left !important;
  clear: none !important;
}

body.cbi-exact-body.woocommerce-checkout #billing_last_name_field,
body.cbi-exact-body.woocommerce-checkout #shipping_last_name_field {
  width: 49% !important;
  float: right !important;
  clear: none !important;
}

body.cbi-exact-body.woocommerce-checkout #billing_address_1_field,
body.cbi-exact-body.woocommerce-checkout #billing_address_2_field,
body.cbi-exact-body.woocommerce-checkout #shipping_address_1_field,
body.cbi-exact-body.woocommerce-checkout #shipping_address_2_field {
  clear: both !important;
}

body.cbi-exact-body.woocommerce-checkout #billing_state_field,
body.cbi-exact-body.woocommerce-checkout #billing_city_field,
body.cbi-exact-body.woocommerce-checkout #shipping_state_field,
body.cbi-exact-body.woocommerce-checkout #shipping_city_field {
  width: 49% !important;
  clear: none !important;
}

body.cbi-exact-body.woocommerce-checkout #billing_state_field,
body.cbi-exact-body.woocommerce-checkout #shipping_state_field {
  float: left !important;
}

body.cbi-exact-body.woocommerce-checkout #billing_city_field,
body.cbi-exact-body.woocommerce-checkout #shipping_city_field {
  float: right !important;
}

body.cbi-exact-body.woocommerce-checkout #billing_postcode_field,
body.cbi-exact-body.woocommerce-checkout #shipping_postcode_field {
  clear: both !important;
  width: 49% !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-shipping-method-card {
  max-width: 380px !important;
  min-height: 108px !important;
  border: 1px solid #111 !important;
  padding: 17px 20px !important;
  background: #fff !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-shipping-method-card table,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-shipping-method-card tr,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-shipping-method-card th,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-shipping-method-card td {
  display: block !important;
  border: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  text-align: left !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-shipping-method-card .woocommerce-shipping-methods {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-shipping-method-card .woocommerce-shipping-methods li {
  display: block !important;
  margin: 0 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-shipping-method-card label {
  display: flex !important;
  justify-content: space-between !important;
  gap: 12px !important;
  width: 100% !important;
  color: #111 !important;
  font-size: 14px !important;
  font-weight: 900 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-shipping-method-card .woocommerce-shipping-destination,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-shipping-method-card .woocommerce-shipping-calculator {
  display: none !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-payment-section {
  margin-top: 10px !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-payment-inner {
  border: 1px solid #d6d6d6 !important;
  padding: 18px !important;
}

body.cbi-exact-body.woocommerce-checkout #payment {
  background: #fff !important;
  border: 0 !important;
  padding: 0 !important;
}

body.cbi-exact-body.woocommerce-checkout #payment ul.payment_methods {
  border: 0 !important;
  padding: 0 !important;
  margin: 0 0 16px !important;
}

body.cbi-exact-body.woocommerce-checkout #payment ul.payment_methods li {
  background: #fff !important;
  border: 1px solid #d6d6d6 !important;
  padding: 13px !important;
  margin: 0 0 10px !important;
  color: #111 !important;
}

body.cbi-exact-body.woocommerce-checkout #payment #place_order,
body.cbi-exact-body.woocommerce-checkout button#place_order {
  min-height: 48px !important;
  background: #222 !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 3px !important;
  font-size: 15px !important;
  font-weight: 900 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-promo-box,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-summary-box,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-side-toggle {
  background: #f0f0f0 !important;
  border: 0 !important;
  border-radius: 3px !important;
  box-shadow: none !important;
  margin: 0 0 16px !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-promo-box {
  background: #fbf5ec !important;
  padding: 22px 20px !important;
  color: #111 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-promo-box h2 {
  margin: 0 0 18px !important;
  font-size: 13px !important;
  line-height: 1.2 !important;
  font-weight: 900 !important;
  text-decoration: underline !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-promo-box p,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-promo-box small {
  display: block !important;
  margin: 0 0 13px !important;
  color: #111 !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-promo-box small {
  margin-bottom: 0 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-side-toggle-head {
  width: 100% !important;
  min-height: 56px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  padding: 0 18px !important;
  border: 0 !important;
  background: transparent !important;
  color: #111 !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  text-align: left !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-side-toggle-body {
  display: none !important;
  padding: 0 18px 18px !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-side-toggle.is-open .cbi-checkout-side-toggle-body {
  display: block !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-coupon-row {
  display: grid !important;
  grid-template-columns: 1fr 54px !important;
  gap: 0 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-coupon-row input {
  width: 100% !important;
  min-height: 39px !important;
  border: 1px solid #cfcfcf !important;
  border-right: 0 !important;
  background: #fff !important;
  padding: 8px 11px !important;
  font-size: 13px !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-coupon-row button {
  min-height: 39px !important;
  border: 0 !important;
  background: #333 !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 900 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-coupon-note {
  margin-top: 8px !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
  color: #666 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-summary-box {
  padding: 0 !important;
  overflow: hidden !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-summary-box h2 {
  margin: 0 18px !important;
  padding: 18px 0 15px !important;
  border-bottom: 1px solid #cfcfcf !important;
  color: #111 !important;
  font-size: 17px !important;
  line-height: 1.2 !important;
  font-weight: 900 !important;
  text-align: center !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-totals-table {
  width: calc(100% - 36px) !important;
  margin: 0 18px 16px !important;
  border-collapse: collapse !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-totals-table th,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-totals-table td {
  border: 0 !important;
  padding: 8px 0 !important;
  background: transparent !important;
  color: #111 !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-totals-table th {
  font-weight: 700 !important;
  text-align: left !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-totals-table td {
  font-weight: 800 !important;
  text-align: right !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-totals-table .order-total th,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-totals-table .order-total td {
  border-top: 1px solid #cfcfcf !important;
  padding-top: 15px !important;
  font-size: 17px !important;
  font-weight: 900 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-summary-box .woocommerce-shipping-methods {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-summary-box .woocommerce-shipping-methods li {
  margin: 0 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-summary-box .woocommerce-shipping-methods input {
  display: none !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-summary-box .woocommerce-shipping-methods label {
  font-size: 13px !important;
  font-weight: 800 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-member-box p {
  margin: 0 0 9px !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-ref-products {
  padding: 0 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-item {
  display: grid !important;
  grid-template-columns: 58px minmax(0, 1fr) auto !important;
  gap: 10px !important;
  align-items: start !important;
  padding: 12px 0 !important;
  border-bottom: 1px solid #ddd !important;
  margin: 0 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-thumb,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-thumb a,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-thumb img {
  width: 58px !important;
  height: 58px !important;
  display: block !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-thumb img {
  object-fit: cover !important;
  background: #f7f7f7 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-name,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-name a {
  color: #111 !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
  text-decoration: none !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-options,
body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-qty {
  margin-top: 3px !important;
  color: #666 !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
}

body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-total {
  color: #111 !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  white-space: nowrap !important;
}

@media(max-width:1024px) {
  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-ref-layout {
    grid-template-columns: 1fr !important;
    max-width: 760px !important;
  }

  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-ref-side {
    position: static !important;
  }

  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-ref-head-inner {
    grid-template-columns: 1fr !important;
    text-align: left !important;
  }

  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-ref-head h1 {
    text-align: left !important;
  }

  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-secure {
    justify-self: start !important;
  }
}

@media(max-width:770px) {
  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-ref-head-inner {
    min-height: 0 !important;
    gap: 8px !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }

  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-delivery-choice {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  body.cbi-exact-body.woocommerce-checkout #billing_first_name_field,
  body.cbi-exact-body.woocommerce-checkout #billing_last_name_field,
  body.cbi-exact-body.woocommerce-checkout #shipping_first_name_field,
  body.cbi-exact-body.woocommerce-checkout #shipping_last_name_field,
  body.cbi-exact-body.woocommerce-checkout #billing_state_field,
  body.cbi-exact-body.woocommerce-checkout #billing_city_field,
  body.cbi-exact-body.woocommerce-checkout #shipping_state_field,
  body.cbi-exact-body.woocommerce-checkout #shipping_city_field,
  body.cbi-exact-body.woocommerce-checkout #billing_postcode_field,
  body.cbi-exact-body.woocommerce-checkout #shipping_postcode_field {
    width: 100% !important;
    float: none !important;
    clear: both !important;
  }

  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-shipping-method-card {
    max-width: none !important;
  }

  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-item {
    grid-template-columns: 52px minmax(0, 1fr) !important;
    position: relative !important;
    padding-bottom: 32px !important;
  }

  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-thumb,
  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-thumb a,
  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-thumb img {
    width: 52px !important;
    height: 52px !important;
  }

  body.cbi-exact-body.woocommerce-checkout .cbi-checkout-review-total {
    position: absolute !important;
    left: 62px !important;
    bottom: 10px !important;
  }
}


/* CBI Hero Slides Carousel v1.2.4: minimal separated controls + horizontal slide */
body.cbi-exact-body .shop-hero-carousel {
  width: 100% !important;
  height: clamp(560px, calc(90vh - var(--cbi-header-total)), 820px) !important;
  min-height: clamp(560px, calc(90vh - var(--cbi-header-total)), 820px) !important;
  max-height: 820px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  position: relative !important;
  background: #f7f3ec !important;
  touch-action: pan-y !important;
  user-select: none !important;
}

body.cbi-exact-body .shop-hero-carousel.is-dragging {
  cursor: grabbing !important;
}

body.cbi-exact-body .shop-hero-carousel .cbi-hero-track {
  position: relative !important;
  z-index: 1 !important;
  display: flex !important;
  width: 100% !important;
  height: 100% !important;
  transform: translate3d(0, 0, 0);
  will-change: transform !important;
}

body.cbi-exact-body .shop-hero-carousel .cbi-hero-slide {
  position: relative !important;
  flex: 0 0 100% !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: none !important;
}

body.cbi-exact-body .shop-hero-carousel .cbi-hero-slide picture,
body.cbi-exact-body .shop-hero-carousel .cbi-hero-slide img {
  width: 100% !important;
  height: 100% !important;
}

body.cbi-exact-body .shop-hero-carousel img {
  display: block !important;
  object-fit: cover !important;
  object-position: center center !important;
  -webkit-user-drag: none !important;
  user-select: none !important;
}

body.cbi-exact-body .shop-hero-carousel img.cbi-hero-full-quality {
  filter: none !important;
  opacity: 1 !important;
  image-rendering: auto !important;
}

body.cbi-exact-body .shop-hero-carousel .cbi-hero-cta {
  position: absolute !important;
  top: 50% !important;
  right: clamp(52px, 8vw, 128px) !important;
  transform: translateY(-50%) !important;
  z-index: 7 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 7px !important;
  min-width: 200px !important;
  width: max-content !important;
  text-decoration: none !important;
  color: #fff !important;
  pointer-events: auto !important;
}

body.cbi-exact-body .shop-hero-carousel .cbi-hero-cta-title {
  display: block !important;
  font-size: clamp(21px, 1.62vw, 30px) !important;
  line-height: 1.1 !important;
  font-weight: 700 !important;
  letter-spacing: -0.015em !important;
  color: #fff !important;
  text-align: center !important;
  text-shadow: 0 2px 20px rgba(0, 0, 0, .18) !important;
}

body.cbi-exact-body .shop-hero-carousel .cbi-hero-cta-link {
  display: inline-block !important;
  align-self: center !important;
  font-size: 13px !important;
  line-height: 1.2 !important;
  font-weight: 500 !important;
  color: #fff !important;
  border-bottom: 1px solid rgba(255, 255, 255, .92) !important;
  padding-bottom: 2px !important;
  text-align: center !important;
  text-shadow: 0 2px 12px rgba(0, 0, 0, .18) !important;
}

body.cbi-exact-body .shop-hero-carousel .cbi-hero-cta:hover .cbi-hero-cta-link,
body.cbi-exact-body .shop-hero-carousel .cbi-hero-cta:focus-visible .cbi-hero-cta-link {
  border-bottom-color: #fff !important;
}

/* Minimal separated carousel UI */
body.cbi-exact-body .shop-hero-carousel .cbi-hero-ui {
  position: absolute !important;
  inset: 0 !important;
  z-index: 8 !important;
  pointer-events: none !important;
}

body.cbi-exact-body .shop-hero-carousel .cbi-hero-counter {
  position: absolute !important;
  right: 162px !important;
  /* Safari Fallback */
  right: calc(clamp(20px, 3vw, 42px) + 120px) !important;
  /* ป้องกัน Counter ทับกับปุ่มลูกศร (Fix overlap) */
  bottom: clamp(24px, 3.4vw, 46px) !important;
  min-width: 86px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  pointer-events: none !important;
}

body.cbi-exact-body .shop-hero-carousel .cbi-hero-count {
  color: #111 !important;
  font-size: 13px !important;
  line-height: 1 !important;
  font-weight: 700 !important;
  letter-spacing: .14em !important;
  white-space: nowrap !important;
  text-align: left !important;
  text-shadow: 0 1px 18px rgba(255, 255, 255, .8) !important;
}

body.cbi-exact-body .shop-hero-carousel .cbi-hero-progress {
  display: block !important;
  width: 78px !important;
  height: 1px !important;
  background: rgba(17, 17, 17, .24) !important;
  overflow: hidden !important;
}

body.cbi-exact-body .shop-hero-carousel .cbi-hero-progress-bar {
  display: block !important;
  width: 33.333%;
  height: 100% !important;
  background: #111 !important;
  transition: width .28s ease !important;
}

body.cbi-exact-body .shop-hero-carousel .cbi-hero-arrow {
  position: absolute !important;
  bottom: clamp(20px, 3vw, 40px) !important;
  width: 46px !important;
  height: 46px !important;
  border: 1px solid rgba(20, 20, 20, .11) !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  background: rgba(255, 255, 255, .72) !important;
  color: #171717 !important;
  font-size: 18px !important;
  line-height: 1 !important;
  font-family: Arial, sans-serif !important;
  cursor: pointer !important;
  box-shadow: 0 10px 28px rgba(0, 0, 0, .08) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
  transition: transform .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  pointer-events: auto !important;
}

body.cbi-exact-body .shop-hero-carousel .cbi-hero-prev {
  right: 96px !important;
  /* Safari Fallback */
  right: calc(clamp(20px, 3vw, 42px) + 54px) !important;
  /* ใช้ calc วางตำแหน่งปุ่มเลื่อนรูปให้อยู่ติดกันพอดี */
}

body.cbi-exact-body .shop-hero-carousel .cbi-hero-next {
  right: clamp(20px, 3vw, 42px) !important;
}

body.cbi-exact-body .shop-hero-carousel .cbi-hero-arrow span {
  display: block !important;
  transform: translateY(-1px) !important;
}

body.cbi-exact-body .shop-hero-carousel .cbi-hero-arrow:hover,
body.cbi-exact-body .shop-hero-carousel .cbi-hero-arrow:focus-visible,
body.cbi-exact-body .shop-hero-carousel .cbi-hero-arrow:active {
  background: rgba(255, 255, 255, .94) !important;
  border-color: rgba(20, 20, 20, .18) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 14px 34px rgba(0, 0, 0, .12) !important;
  outline: none !important;
}

@media(max-width:1024px) {
  body.cbi-exact-body .shop-hero-carousel {
    height: clamp(380px, 56vh, 560px) !important;
    min-height: clamp(380px, 56vh, 560px) !important;
  }
}

@media(max-width:768px) {
  body.cbi-exact-body .shop-hero-carousel {
    height: 48vh !important;
    min-height: 330px !important;
  }

  body.cbi-exact-body .shop-hero-carousel .cbi-hero-cta {
    right: 18px !important;
    bottom: 18px !important;
    top: auto !important;
    transform: none !important;
    min-width: 0 !important;
    gap: 5px !important;
  }

  body.cbi-exact-body .shop-hero-carousel .cbi-hero-cta-title {
    font-size: 20px !important;
  }

  body.cbi-exact-body .shop-hero-carousel .cbi-hero-cta-link {
    font-size: 12px !important;
  }

  body.cbi-exact-body .shop-hero-carousel .cbi-hero-counter {
    right: 104px !important;
    bottom: 20px !important;
    min-width: 74px !important;
  }

  body.cbi-exact-body .shop-hero-carousel .cbi-hero-count {
    font-size: 12px !important;
  }

  body.cbi-exact-body .shop-hero-carousel .cbi-hero-progress {
    width: 66px !important;
  }

  body.cbi-exact-body .shop-hero-carousel .cbi-hero-arrow {
    bottom: 16px !important;
    width: 42px !important;
    height: 42px !important;
    font-size: 16px !important;
  }

  body.cbi-exact-body .shop-hero-carousel .cbi-hero-prev {
    right: 64px !important;
  }

  body.cbi-exact-body .shop-hero-carousel .cbi-hero-next {
    right: 14px !important;
  }
}

@media(max-width:520px) {
  body.cbi-exact-body .shop-hero-carousel {
    height: 42vh !important;
    min-height: 270px !important;
  }

  body.cbi-exact-body .shop-hero-carousel .cbi-hero-cta {
    right: 16px !important;
    top: auto !important;
    bottom: 16px !important;
    transform: none !important;
    min-width: 0 !important;
    gap: 4px !important;
  }

  body.cbi-exact-body .shop-hero-carousel .cbi-hero-cta-title {
    font-size: 18px !important;
  }

  body.cbi-exact-body .shop-hero-carousel .cbi-hero-cta-link {
    font-size: 11.5px !important;
  }

  body.cbi-exact-body .shop-hero-carousel .cbi-hero-counter {
    right: 96px !important;
    bottom: 18px !important;
  }

  body.cbi-exact-body .shop-hero-carousel .cbi-hero-arrow {
    width: 38px !important;
    height: 38px !important;
  }

  body.cbi-exact-body .shop-hero-carousel .cbi-hero-prev {
    right: 58px !important;
  }
}


/* CBI Hero CTA Responsive Fix v1.2.7: force-hide carousel menu under 1120px */
@media(max-width:1120px) {

  body.cbi-exact-body .shop-hero-carousel .cbi-hero-ui,
  body.cbi-exact-body .shop-hero-carousel .cbi-hero-menu,
  body.cbi-exact-body .shop-hero-carousel .cbi-hero-counter,
  body.cbi-exact-body .shop-hero-carousel .cbi-hero-actions,
  body.cbi-exact-body .shop-hero-carousel .cbi-hero-arrow {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  body.cbi-exact-body .shop-hero-carousel .cbi-hero-cta {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    top: auto !important;
    right: clamp(20px, 3vw, 42px) !important;
    bottom: clamp(20px, 3vw, 40px) !important;
    transform: none !important;
    z-index: 12 !important;
    min-width: 0 !important;
    width: auto !important;
    align-items: center !important;
    gap: 5px !important;
  }
}

/* =========================================================
   CBI v0.9.75: white utility footer, Charles & Keith inspired
   ========================================================= */
body.cbi-exact-body .cbi-footer.cbi-footer-ck {
  margin-top: 0 !important;
  padding: 0 !important;
  background: #fff !important;
  color: #111 !important;
  border-top: 1px solid #e7e7e7 !important;
  font-size: 14px !important;
}

body.cbi-exact-body .cbi-footer-ck a {
  color: #111 !important;
  text-decoration: none !important;
}

body.cbi-exact-body .cbi-footer-ck a:hover {
  text-decoration: underline !important;
}

body.cbi-exact-body .cbi-footer-topnav {
  background: #f6f6f6 !important;
  border-bottom: 1px solid #ededed !important;
}

body.cbi-exact-body .cbi-footer-topnav-inner {
  min-height: 44px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 28px !important;
  flex-wrap: wrap !important;
  font-size: 14px !important;
  font-weight: 600 !important;
}

body.cbi-exact-body .cbi-footer-main {
  display: grid !important;
  grid-template-columns: 1.28fr .8fr .9fr .82fr 1.28fr !important;
  gap: 42px !important;
  padding: 30px 0 32px !important;
  align-items: start !important;
}

body.cbi-exact-body .cbi-footer-column h3 {
  margin: 0 0 12px !important;
  font-size: 15px !important;
  line-height: 1.35 !important;
  font-weight: 800 !important;
  color: #111 !important;
}

body.cbi-exact-body .cbi-footer-column ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.cbi-exact-body .cbi-footer-column li {
  margin: 0 0 7px !important;
  padding: 0 !important;
  line-height: 1.35 !important;
}

body.cbi-exact-body .cbi-footer-column a,
body.cbi-exact-body .cbi-footer-column p {
  font-size: 13px !important;
  line-height: 1.45 !important;
  color: #222 !important;
}

body.cbi-exact-body .cbi-footer-member {
  text-align: center !important;
  align-self: center !important;
}

body.cbi-exact-body .cbi-footer-member h3 {
  text-align: center !important;
  justify-content: center !important;
}

body.cbi-exact-body .cbi-footer-member p {
  margin: 0 auto 14px !important;
  max-width: 320px !important;
}

body.cbi-exact-body .cbi-footer-member-btn {
  display: inline-flex !important;
  align-items: flex-start !important;
  justify-content: center !important;
  min-width: 146px !important;
  height: 38px !important;
  box-sizing: border-box !important;
  padding: 11px 20px 0 !important;
  border: 1px solid #111 !important;
  border-radius: 2px !important;
  background: #fff !important;
  color: #111 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  transition: background .18s ease, color .18s ease !important;
}

body.cbi-exact-body .cbi-footer-member-btn:hover {
  background: #111 !important;
  color: #fff !important;
  text-decoration: none !important;
}

body.cbi-exact-body .cbi-footer-meta {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  gap: 24px !important;
  padding: 0 0 28px !important;
  min-height: 64px !important;
}

body.cbi-exact-body .cbi-footer-locale,
body.cbi-exact-body .cbi-footer-social {
  color: #111 !important;
  font-size: 13px !important;
}

body.cbi-exact-body .cbi-footer-locale {
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
  flex-wrap: wrap !important;
}

body.cbi-exact-body .cbi-footer-social {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 8px !important;
}

body.cbi-exact-body .cbi-footer-social strong {
  font-size: 13px !important;
  line-height: 1 !important;
}

body.cbi-exact-body .cbi-footer-social-icons {
  display: flex !important;
  align-items: center !important;
  gap: 13px !important;
}

body.cbi-exact-body .cbi-footer-social-icons a {
  width: auto !important;
  height: auto !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #111 !important;
  font-size: 16px !important;
  line-height: 1 !important;
  display: inline-flex !important;
}

body.cbi-exact-body .cbi-footer-social-icons i {
  line-height: 1 !important;
}

body.cbi-exact-body .cbi-footer-bottom {
  border-top: 1px solid #d8d8d8 !important;
  background: #fff !important;
}

body.cbi-exact-body .cbi-footer-bottom-inner {
  min-height: 35px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: #555 !important;
  font-size: 12px !important;
}

body.cbi-exact-body .scroll-top {
  right: 28px !important;
  bottom: 24px !important;
  width: 34px !important;
  height: 34px !important;
  border: 1px solid #111 !important;
  border-radius: 3px !important;
  background: #fff !important;
  color: #111 !important;
  box-shadow: none !important;
  font-size: 20px !important;
}

body.cbi-exact-body .scroll-top:hover {
  background: #111 !important;
  color: #fff !important;
}

@media(max-width:1100px) {
  body.cbi-exact-body .cbi-footer-main {
    /* Merged: kept mentor's 3 columns */
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 30px !important;
  }

  body.cbi-exact-body .cbi-footer-member {
    /* Merged: kept mentor's span 2, but kept your padding-top */
    grid-column: span 2 !important;
    padding-top: 10px !important;
  }
}

@media(max-width:768px) {
  body.cbi-exact-body .cbi-footer-topnav-inner {
    justify-content: center !important;
    gap: 16px 22px !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }

  body.cbi-exact-body .cbi-footer-main {
    grid-template-columns: 1fr 1fr !important;
    gap: 24px 28px !important;
    padding: 26px 0 !important;
  }

  body.cbi-exact-body .cbi-footer-member {
    grid-column: 1/-1 !important;
    padding: 24px 0 !important;
  }

  body.cbi-exact-body .cbi-footer-meta {
    align-items: flex-start !important;
    flex-direction: column !important;
    gap: 18px !important;
  }
}

@media(max-width:520px) {
  body.cbi-exact-body .cbi-footer-main {
    grid-template-columns: 1fr !important;
    gap: 22px !important;
  }

  body.cbi-exact-body .cbi-footer-column h3 {
    margin-bottom: 8px !important;
  }

  body.cbi-exact-body .cbi-footer-topnav-inner {
    font-size: 13px !important;
  }

  body.cbi-exact-body .cbi-footer-column ul {
    padding-left: 0 !important;
  }
}

/* v0984 footer recovery + single square scroll-top
   Restores the approved white footer layout after accidental old CSS overwrite. */
.cbi-footer,
.footer.cbi-footer {
  background: #ffffff !important;
  color: #111827 !important;
  padding: 0 !important;
  margin-top: 0 !important;
  border-top: 1px solid #e5e7eb !important;
}

.cbi-footer a,
.footer.cbi-footer a {
  color: #111827 !important;
  text-decoration: none !important;
}

.cbi-footer a:hover,
.footer.cbi-footer a:hover {
  color: #0f4f43 !important;
  text-decoration: underline !important;
}

.cbi-footer ul,
.footer.cbi-footer ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.cbi-footer li,
.footer.cbi-footer li {
  margin: 0 !important;
  padding: 0 !important;
}

.cbi-footer .cbi-footer-top {
  border-bottom: 1px solid #e5e7eb !important;
}

.cbi-footer .cbi-footer-menu {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 28px !important;
  min-height: 48px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  white-space: nowrap !important;
}

.cbi-footer .cbi-footer-main {
  max-width: 1140px !important;
  margin: 0 auto !important;
  padding: 34px 24px 30px !important;
  display: grid !important;
  grid-template-columns: 1.25fr 1fr 1fr 1fr 1.45fr !important;
  gap: 44px !important;
  align-items: start !important;
}

.cbi-footer .cbi-footer-title {
  font-size: 15px !important;
  font-weight: 800 !important;
  margin: 0 0 12px !important;
  color: #111827 !important;
}

.cbi-footer .cbi-footer-list,
.cbi-footer .footer-links {
  display: block !important;
}

.cbi-footer .cbi-footer-list li {
  margin: 0 0 7px !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
}

.cbi-footer .cbi-footer-newsletter {
  font-size: 13px !important;
  line-height: 1.55 !important;
  color: #374151 !important;
}

.cbi-footer .cbi-footer-newsletter .button,
.cbi-footer .cbi-footer-newsletter a.button,
.cbi-footer .cbi-footer-newsletter button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 140px !important;
  height: 38px !important;
  padding: 0 18px !important;
  margin-top: 12px !important;
  border: 1px solid #111827 !important;
  border-radius: 3px !important;
  background: #ffffff !important;
  color: #111827 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
}

.cbi-footer .cbi-footer-bottom {
  border-top: 1px solid #e5e7eb !important;
  padding: 0 !important;
}

.cbi-footer .cbi-footer-bottom-inner {
  max-width: 1140px !important;
  margin: 0 auto !important;
  padding: 18px 24px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 18px !important;
  font-size: 12px !important;
  color: #4b5563 !important;
}

.cbi-footer .social-links,
.cbi-footer .cbi-footer-socials {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin-top: 8px !important;
}

.cbi-footer .social-links a,
.cbi-footer .cbi-footer-socials a {
  width: 26px !important;
  height: 26px !important;
  border-radius: 6px !important;
  background: transparent !important;
  color: #111827 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.cbi-footer .social-links img,
.cbi-footer .cbi-footer-socials img,
.cbi-footer .social-links svg,
.cbi-footer .cbi-footer-socials svg {
  width: 22px !important;
  height: 22px !important;
  display: block !important;
}

.cbi-footer .copyright {
  grid-column: auto !important;
  text-align: center !important;
  border-top: 0 !important;
  padding-top: 0 !important;
  color: #4b5563 !important;
}

/* Single square scroll-to-top button, no circular duplicate look */
.scroll-top,
button.scroll-top {
  position: fixed !important;
  right: 28px !important;
  bottom: 28px !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: #111827 !important;
  color: #ffffff !important;
  font-size: 22px !important;
  line-height: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  z-index: 900 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transition: opacity .2s ease, visibility .2s ease, transform .2s ease !important;
  box-shadow: 0 8px 22px rgba(0, 0, 0, .22) !important;
  overflow: hidden !important;
}

.scroll-top.show,
button.scroll-top.show {
  opacity: 1 !important;
  visibility: visible !important;
}

.scroll-top::before,
.scroll-top::after,
button.scroll-top::before,
button.scroll-top::after {
  display: none !important;
  content: none !important;
}

.scroll-top i,
button.scroll-top i {
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

@media (max-width:900px) {
  .cbi-footer .cbi-footer-menu {
    gap: 16px !important;
    overflow-x: auto !important;
    justify-content: flex-start !important;
    padding: 0 18px !important;
  }

  .cbi-footer .cbi-footer-main {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 28px !important;
  }
}

@media (max-width:560px) {
  .cbi-footer .cbi-footer-main {
    grid-template-columns: 1fr !important;
    padding: 28px 20px !important;
  }

  .cbi-footer .cbi-footer-bottom-inner {
    flex-direction: column !important;
    text-align: center !important;
  }

  .scroll-top,
  button.scroll-top {
    right: 18px !important;
    bottom: 18px !important;
  }
}


/* CBI v2.1.2 catalog load more / progressive auto-load */
.cbi-loadmore {
  grid-column: 1 / -1;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 130px 0 10px;
}

.cbi-loadmore[hidden] {
  display: none !important;
}

.cbi-loadmore-btn {
  min-width: 154px;
  height: 42px;
  padding: 0 24px;
  border: 1px solid #111827;
  border-radius: 8px;
  background: #fff;
  color: #111827;
  font-family: var(--cbi-font);
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
  transition: background .18s ease, color .18s ease, border-color .18s ease, transform .12s ease;
}

.cbi-loadmore-btn:hover {
  background: #111827;
  color: #fff;
}

.cbi-loadmore-btn:active {
  transform: scale(.98);
}

.cbi-loadmore.is-loading .cbi-loadmore-btn,
.cbi-loadmore.is-auto .cbi-loadmore-btn {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

.cbi-loadmore-status {
  min-height: 20px;
  font-size: 13px;
  color: #7b8498;
  text-align: center;
}

.cbi-loadmore.is-loading .cbi-loadmore-status {
  color: #111827;
  font-weight: 700;
}

.cbi-loadmore-sentinel {
  width: 1px;
  height: 1px;
}

.product-container.is-loading-more {
  opacity: .82;
}

@media(max-width:640px) {
  .cbi-loadmore {
    padding-top: 24px;
  }

  .cbi-loadmore-btn {
    width: 100%;
    max-width: 220px;
  }
}

/* --- Sticky Brand Strip + Toolbar (native sticky + smooth transitions) --- */
:root {
  --cbi-brand-pinned-h: 60px;
}

body.cbi-exact-body .shop-brand-section.shop-brand-strip {
  position: sticky !important;
  top: var(--cbi-header-h, 66px) !important;
  z-index: 900 !important;
  transition: padding 0.3s ease, box-shadow 0.3s ease;
}

body.cbi-exact-body .shop-brand-section.shop-brand-strip.is-pinned {
  background: #fff !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, .06) !important;
  padding: 10px 0 8px !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-head {
  transition: opacity 0.3s ease, max-height 0.3s ease, margin 0.3s ease, padding 0.3s ease;
  max-height: 200px;
  opacity: 1;
  overflow: hidden;
}

body.cbi-exact-body .shop-brand-strip.is-pinned .shop-brand-head {
  opacity: 0 !important;
  max-height: 0 !important;
  margin-bottom: 0 !important;
  padding: 0 !important;
}

body.cbi-exact-body .shop-brand-strip.is-pinned .shop-brand-bar {
  grid-template-columns: minmax(0, 1fr) !important;
  padding-bottom: 0 !important;
  border-bottom: none !important;
  gap: 0 !important;
  transition: all 0.3s ease;
}

body.cbi-exact-body .catalog-toolbar.cbi-shop-toolbar {
  position: sticky !important;
  top: calc(var(--cbi-header-h, 66px) + var(--cbi-brand-pinned-h, 60px)) !important;
  z-index: 899 !important;
}

.cbi-footer .copyright {
  grid-column: auto !important;
  text-align: center !important;
  border-top: 0 !important;
  padding-top: 0 !important;
  color: #4b5563 !important;
}

/* Single square scroll-to-top button, no circular duplicate look */
.scroll-top,
button.scroll-top {
  position: fixed !important;
  right: 28px !important;
  bottom: 28px !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: #111827 !important;
  color: #ffffff !important;
  font-size: 22px !important;
  line-height: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  z-index: 900 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transition: opacity .2s ease, visibility .2s ease, transform .2s ease !important;
  box-shadow: 0 8px 22px rgba(0, 0, 0, .22) !important;
  overflow: hidden !important;
}

.scroll-top.show,
button.scroll-top.show {
  opacity: 1 !important;
  visibility: visible !important;
}

.scroll-top::before,
.scroll-top::after,
button.scroll-top::before,
button.scroll-top::after {
  display: none !important;
  content: none !important;
}

.scroll-top i,
button.scroll-top i {
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

@media (max-width:900px) {
  .cbi-footer .cbi-footer-menu {
    gap: 16px !important;
    overflow-x: auto !important;
    justify-content: flex-start !important;
    padding: 0 18px !important;
  }

  .cbi-footer .cbi-footer-main {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 28px !important;
  }
}

@media (max-width:560px) {
  .cbi-footer .cbi-footer-main {
    grid-template-columns: 1fr !important;
    padding: 28px 20px !important;
  }

  .cbi-footer .cbi-footer-bottom-inner {
    flex-direction: column !important;
    text-align: center !important;
  }

  .scroll-top,
  button.scroll-top {
    right: 18px !important;
    bottom: 18px !important;
  }
}


/* CBI v2.1.2 catalog load more / progressive auto-load */
.cbi-loadmore {
  grid-column: 1 / -1;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 40px 0 10px;
}

.cbi-loadmore[hidden] {
  display: none !important;
}

.cbi-loadmore-btn {
  min-width: 154px;
  height: 42px;
  padding: 0 24px;
  border: 1px solid #111827;
  border-radius: 8px;
  background: #fff;
  color: #111827;
  font-family: var(--cbi-font);
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
  transition: background .18s ease, color .18s ease, border-color .18s ease, transform .12s ease;
}

.cbi-loadmore-btn:hover {
  background: #111827;
  color: #fff;
}

.cbi-loadmore-btn:active {
  transform: scale(.98);
}

.cbi-loadmore.is-loading .cbi-loadmore-btn,
.cbi-loadmore.is-auto .cbi-loadmore-btn {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

.cbi-loadmore-status {
  min-height: 20px;
  font-size: 13px;
  color: #7b8498;
  text-align: center;
}

.cbi-loadmore.is-loading .cbi-loadmore-status {
  color: #111827;
  font-weight: 700;
}

.cbi-loadmore-sentinel {
  width: 1px;
  height: 1px;
}

.product-container.is-loading-more {
  opacity: .82;
}

@media(max-width:640px) {
  .cbi-loadmore {
    padding-top: 24px;
  }

  .cbi-loadmore-btn {
    width: 100%;
    max-width: 220px;
  }
}

/* --- Sticky Brand Strip + Toolbar (native sticky + smooth transitions) --- */
:root {
  --cbi-brand-pinned-h: 60px;
}

body.cbi-exact-body .shop-brand-section.shop-brand-strip {
  position: sticky !important;
  top: var(--cbi-header-h, 66px) !important;
  z-index: 900 !important;
  transition: padding 0.3s ease, box-shadow 0.3s ease;
}

body.cbi-exact-body .shop-brand-section.shop-brand-strip.is-pinned {
  background: #fff !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, .06) !important;
  padding: 10px 0 8px !important;
}

body.cbi-exact-body .shop-brand-strip .shop-brand-head {
  transition: opacity 0.3s ease, max-height 0.3s ease, margin 0.3s ease, padding 0.3s ease;
  max-height: 200px;
  opacity: 1;
  overflow: hidden;
}

body.cbi-exact-body .shop-brand-strip.is-pinned .shop-brand-head {
  opacity: 0 !important;
  max-height: 0 !important;
  margin-bottom: 0 !important;
  padding: 0 !important;
}

body.cbi-exact-body .shop-brand-strip.is-pinned .shop-brand-bar {
  grid-template-columns: minmax(0, 1fr) !important;
  padding-bottom: 0 !important;
  border-bottom: none !important;
  gap: 0 !important;
  transition: all 0.3s ease;
}

body.cbi-exact-body .catalog-toolbar.cbi-shop-toolbar {
  position: sticky !important;
  top: calc(var(--cbi-header-h, 66px) + var(--cbi-brand-pinned-h, 60px)) !important;
  z-index: 899 !important;
  transition: box-shadow 0.3s ease, padding 0.3s ease;
}

body.cbi-exact-body .catalog-toolbar.cbi-shop-toolbar.is-pinned {
  background: #fff !important;
  padding: 10px var(--cbi-toolbar-pad, 2vw) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .04) !important;
}

/* 
==========================================================================
   CBI Shop - Sticky Filter Sidebar (Charles & Keith Style)
   Developer: IT Support Intern
   Description: ทำให้แถบตัวกรองด้านซ้ายติดหนึบ (Sticky) และเลื่อนแยกจากสินค้า
========================================================================== 
*/

/* 1. ป้องกันการเลื่อนแนวนอนบน Mobile แต่ยอมให้แนวตั้งทำงานได้ปกติเพื่อไม่ให้กระทบ Sticky */
html,
body.cbi-exact-body {
  overflow-x: clip !important;
  overflow-y: visible !important;
}

/* 2. ระบบ Sticky Sidebar จะทำงานเฉพาะบน Desktop เท่านั้น (เพื่อไม่ให้ชนกับ Popup ของ Mobile) */
@media (min-width: 901px) {

  /* รับประกันว่า Product Grid จะมีความสูงอย่างน้อย 1 หน้าจอเสมอ เพื่อให้มีระยะที่ Sidebar สไลด์ได้ */
  body.cbi-exact-body .cbi-catalog-shell {
    min-height: 100vh !important;
  }

  /* 
   * การตั้งค่า Sticky และ Scroll ภายใน Sidebar
   * หมายเหตุ: ต้องใช้ Selector แบบเต็ม (.cbi-catalog-shell.filter-open .filter-menu.cbi-filter-panel) 
   * เพื่อให้ Specificity สูงพอที่จะ Override โค้ดเก่าของธีม (บรรทัด ~10025) ที่บังคับ max-height: none
   */
  body.cbi-exact-body .cbi-catalog-shell.filter-open .filter-menu.cbi-filter-panel {
    /* ตั้งค่าให้ติดหนึบที่ด้านบน */
    position: -webkit-sticky !important;
    /* รองรับ Safari */
    position: sticky !important;
    align-self: start !important;
    /* จำเป็นสำหรับ CSS Grid เพื่อไม่ให้กล่อง Sidebar ยืดตามความสูง Grid */

    /* ระยะห่างจากด้านบน (หักลบ Navbar + Brand Strip + Toolbar) */
    top: calc(var(--cbi-header-h, 66px) + var(--cbi-brand-pinned-h, 60px) + 65px) !important;

    /* 
     * การตั้งค่า Scroll แยกระหว่าง Sidebar และหน้าจอหลัก 
     * - min-height: 0 จำเป็นมากเพื่อปลดล็อก Grid Item ไม่ให้ยืดตามเนื้อหาข้างใน
     * - max-height: ควบคุมความสูงสูงสุดไม่ให้เกินหน้าจอ เพื่อบังคับให้เกิด Scrollbar
     * - overscroll-behavior: auto เพื่อให้เกิด Scroll Chaining (เวลาเลื่อนสุดแล้วหน้าเว็บหลักขยับตาม)
     */
    min-height: 0 !important;
    height: auto !important;
    max-height: calc(100vh - 215px) !important;
    overflow-y: auto !important;
    overscroll-behavior: auto !important;
    /* overscroll-behavior: auto เพื่อให้เกิด Scroll Chaining (เวลาเลื่อนสุดแล้วหน้าเว็บหลักขยับตาม) */

    /* การตั้งค่าความกว้างและตกแต่งให้เรียบหรู */
    width: 100% !important;
    max-width: 260px !important;
    padding-right: 15px !important;
    border-right: 1px solid #f0f0f0 !important;
    z-index: 800 !important;
  }

  /* 3. ปรับแต่ง Scrollbar ของ Sidebar ให้ดูมินิมอล */
  body.cbi-exact-body .cbi-catalog-shell.filter-open .filter-menu.cbi-filter-panel::-webkit-scrollbar {
    width: 4px !important;
  }

  body.cbi-exact-body .cbi-catalog-shell.filter-open .filter-menu.cbi-filter-panel::-webkit-scrollbar-track {
    background: transparent !important;
  }

  body.cbi-exact-body .cbi-catalog-shell.filter-open .filter-menu.cbi-filter-panel::-webkit-scrollbar-thumb {
    background: #e0e0e0 !important;
    border-radius: 10px !important;
  }

  body.cbi-exact-body .cbi-catalog-shell.filter-open .filter-menu.cbi-filter-panel::-webkit-scrollbar-thumb:hover {
    background: #a8a8a8 !important;
  }
}


/* =========================================================
   CBI v0.9.96: mobile cart dropdown/toast viewport fix
   ========================================================= */
@media(max-width:768px) {
  body.cbi-exact-body .cart-dropdown {
    position: fixed !important;
    top: calc(var(--cbi-mainbar-h-real, 70px) + 10px) !important;
    left: 12px !important;
    right: 12px !important;
    width: auto !important;
    max-width: none !important;
    max-height: calc(100vh - var(--cbi-mainbar-h-real, 70px) - 24px) !important;
    border-radius: 14px !important;
    overflow: hidden !important;
    box-shadow: 0 18px 48px rgba(15, 23, 42, .18) !important;
    transform: translateY(-8px) scale(.98) !important;
  }

  body.cbi-exact-body .cart-dropdown.active {
    transform: translateY(0) scale(1) !important;
  }

  body.cbi-exact-body .cart-dropdown .cart-items {
    max-height: min(360px, calc(100vh - var(--cbi-mainbar-h-real, 70px) - 245px)) !important;
    padding: 14px 16px !important;
  }

  body.cbi-exact-body .cart-dropdown .cart-header,
  body.cbi-exact-body .cart-dropdown .cart-footer {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  body.cbi-exact-body .cart-dropdown .cart-item {
    gap: 10px !important;
  }

  body.cbi-exact-body .cart-dropdown .cart-item img {
    width: 52px !important;
    height: 52px !important;
    flex: 0 0 52px !important;
  }

  body.cbi-exact-body .cart-dropdown .item-quantity input {
    width: 42px !important;
  }

  body.cbi-exact-body .cbi-cart-toast {
    border-radius: 12px !important;
    top: calc(var(--cbi-mainbar-h-real, 70px) + 8px) !important;
    left: 12px !important;
    right: 12px !important;
    width: auto !important;
    max-width: none !important;
    padding: 13px 14px !important;
  }
}

@media(max-width:420px) {
  body.cbi-exact-body .cart-dropdown {
    left: 10px !important;
    right: 10px !important;
  }

  body.cbi-exact-body .cart-dropdown .cart-header h3 {
    font-size: 17px !important;
  }

  body.cbi-exact-body .cart-dropdown .item-name {
    font-size: 13px !important;
  }

  body.cbi-exact-body .cart-dropdown .item-options,
  body.cbi-exact-body .cart-dropdown .item-price {
    font-size: 12px !important;
  }
}


/* =========================================================
   CBI v0.9.97: centered compact add-to-cart toast
   ========================================================= */
body.cbi-exact-body .cbi-cart-toast {
  position: fixed !important;
  top: var(--cbi-toast-top, 78px) !important;
  left: 50% !important;
  right: auto !important;
  bottom: auto !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: calc(100vw - 32px) !important;
  min-height: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0 !important;
  padding: 9px 16px 10px !important;
  box-sizing: border-box !important;
  border-radius: 999px !important;
  background: rgba(17, 24, 39, .94) !important;
  color: #fff !important;
  box-shadow: 0 12px 28px rgba(15, 23, 42, .22) !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transform: translate(-50%, -8px) !important;
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease !important;
  z-index: 5000 !important;
  pointer-events: none !important;
  font-family: var(--cbi-font, inherit) !important;
}

body.cbi-exact-body .cbi-cart-toast.is-visible {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translate(-50%, 0) !important;
  pointer-events: none !important;
}

body.cbi-exact-body .cbi-cart-toast__arrow,
body.cbi-exact-body .cbi-cart-toast__icon,
body.cbi-exact-body .cbi-cart-toast__close {
  display: none !important;
}

body.cbi-exact-body .cbi-cart-toast__text {
  display: block !important;
  color: #fff !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
  font-weight: 800 !important;
  letter-spacing: .01em !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  text-align: center !important;
}

@media(max-width:420px) {
  body.cbi-exact-body .cbi-cart-toast {
    padding: 8px 14px 9px !important;
  }

  body.cbi-exact-body .cbi-cart-toast__text {
    font-size: 12.5px !important;
  }
}

/* =========================================================
   CBI v0.9.99: desktop cart toast points to cart icon, mobile stays centered
   ========================================================= */
@media(min-width:769px) {
  body.cbi-exact-body .cart-container {
    overflow: visible !important;
  }

  body.cbi-exact-body .cart-container .cbi-cart-toast {
    position: absolute !important;
    top: 50px !important;
    right: -16px !important;
    left: auto !important;
    bottom: auto !important;
    width: 300px !important;
    max-width: calc(100vw - 24px) !important;
    min-height: 56px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 12px !important;
    padding: 14px 16px !important;
    border-radius: 0 !important;
    background: #323235 !important;
    color: #fff !important;
    box-shadow: 0 14px 30px rgba(0, 0, 0, .18) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateY(-8px) !important;
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease !important;
    z-index: 2400 !important;
    pointer-events: none !important;
  }

  body.cbi-exact-body .cart-container .cbi-cart-toast.is-visible {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) !important;
    pointer-events: auto !important;
  }

  body.cbi-exact-body .cart-container .cbi-cart-toast__arrow {
    display: block !important;
    position: absolute !important;
    top: -8px !important;
    right: var(--cbi-toast-arrow-right, 28px) !important;
    width: 0 !important;
    height: 0 !important;
    border-left: 8px solid transparent !important;
    border-right: 8px solid transparent !important;
    border-bottom: 8px solid #323235 !important;
  }

  body.cbi-exact-body .cart-container .cbi-cart-toast__icon {
    display: flex !important;
    flex: 0 0 18px !important;
    align-items: center !important;
    justify-content: center !important;
    width: 18px !important;
    height: 18px !important;
    color: #fff !important;
  }

  body.cbi-exact-body .cart-container .cbi-cart-toast__icon svg {
    display: block !important;
    width: 18px !important;
    height: 18px !important;
  }

  body.cbi-exact-body .cart-container .cbi-cart-toast__text {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    color: #fff !important;
    font-size: 14px !important;
    line-height: 1.35 !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    text-align: left !important;
  }

  body.cbi-exact-body .cart-container .cbi-cart-toast__close {
    display: flex !important;
    flex: 0 0 22px !important;
    width: 22px !important;
    height: 22px !important;
    align-items: center !important;
    justify-content: center !important;
    border: 0 !important;
    background: transparent !important;
    color: #fff !important;
    font-size: 24px !important;
    line-height: 1 !important;
    padding: 0 !important;
    margin: 0 !important;
    cursor: pointer !important;
    opacity: .92 !important;
  }
}

@media(max-width:768px) {
  body.cbi-exact-body .cbi-cart-toast {
    position: fixed !important;
    top: var(--cbi-toast-top, 78px) !important;
    left: 50% !important;
    right: auto !important;
    width: auto !important;
    min-height: 0 !important;
    max-width: calc(100vw - 32px) !important;
    padding: 9px 16px 10px !important;
    border-radius: 999px !important;
    transform: translate(-50%, -8px) !important;
    pointer-events: none !important;
  }

  body.cbi-exact-body .cbi-cart-toast.is-visible {
    transform: translate(-50%, 0) !important;
    pointer-events: none !important;
  }

  body.cbi-exact-body .cbi-cart-toast__arrow,
  body.cbi-exact-body .cbi-cart-toast__icon,
  body.cbi-exact-body .cbi-cart-toast__close {
    display: none !important;
  }
}

/* Fix Thai tone marks cut off in brand cards */
body.cbi-exact-body .shop-brand-card strong,
body.cbi-exact-body .shop-brand-strip .shop-brand-card strong {
  line-height: 1.4 !important;
  padding-top: 3px !important;
}

/* Global fix for Thai tone marks and bottom vowels cutoff on truncated text elements */
body.cbi-exact-body .cbi-shop-toolbar .sort-toggle,
body.cbi-exact-body .cbi-product-card-v5 [data-cbi-card-add],
body.cbi-exact-body .cbi-mobile-quick-add,
body.cbi-exact-body #cartItems .item-options,
body.cbi-exact-body #cartItems .item-name,
body.cbi-exact-body #cartItems .item-price,
body.cbi-exact-body .cbi-cart-toast__title,
body.cbi-exact-body .cbi-cart-toast__subtitle,
body.cbi-exact-body .shop-brand-strip .brand-card-subtitle,
body.cbi-exact-body .cbi-filter-option,
body.cbi-exact-body .cbi-product-title,
body.cbi-exact-body .cbi-product-card-title,
body.cbi-exact-body .cbi-filter-title {
  line-height: 1.45 !important;
  padding-top: 2px !important;
  padding-bottom: 2px !important;
}

/* Fix Hero Carousel Progress Bar Width to match text */
body.cbi-exact-body .shop-hero-carousel .cbi-hero-counter {
  min-width: 0 !important;
  width: max-content !important;
}
body.cbi-exact-body .shop-hero-carousel .cbi-hero-progress {
  width: 100% !important;
}

/* Brand Filter Interactive Scroll Arrows */
body.cbi-exact-body .shop-brand-bar {
  position: relative !important;
}

body.cbi-exact-body .shop-brand-scroll-btn {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 36px !important;
  height: 36px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(255, 255, 255, 0.4) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  border: 1px solid rgba(0, 0, 0, 0.08) !important;
  border-radius: 50% !important;
  color: #111 !important;
  font-size: 16px !important;
  cursor: pointer !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08) !important;
  z-index: 10 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transition: all 0.25s ease !important;
  margin-top: -5px !important; /* Offset adjusted to center exactly */
}

body.cbi-exact-body .shop-brand-strip.is-pinned .shop-brand-scroll-btn {
  margin-top: 0 !important;
}

body.cbi-exact-body .shop-brand-scroll-btn:hover {
  background: rgba(255, 255, 255, 0.6) !important;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12) !important;
}

/* Tablet & Mobile Adjustments for Scroll Arrows */
@media (max-width: 1024px) {
  body.cbi-exact-body .shop-brand-scroll-btn {
    margin-top: -6px !important;
  }
  body.cbi-exact-body .shop-brand-strip.is-pinned .shop-brand-scroll-btn {
    margin-top: -3px !important;
  }
}

body.cbi-exact-body .shop-brand-scroll-btn.is-visible {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

body.cbi-exact-body .shop-brand-scroll-btn.prev {
  left: -18px !important;
}

body.cbi-exact-body .shop-brand-scroll-btn.next {
  right: -18px !important;
}

@media (max-width: 768px) {
  body.cbi-exact-body .shop-brand-scroll-btn {
    width: 32px !important;
    height: 32px !important;
    font-size: 14px !important;
    margin-top: -5px !important;
  }
  body.cbi-exact-body .shop-brand-scroll-btn.prev {
    left: -4px !important;
  }
  body.cbi-exact-body .shop-brand-scroll-btn.next {
    right: -4px !important;
  }
  body.cbi-exact-body .shop-brand-strip.is-pinned .shop-brand-scroll-btn {
    margin-top: 0 !important;
  }
}

/* Fix for Compact Header Right Margin on Mobile & Tablet */
@media (max-width: 1120px) {
  body.cbi-exact-body .cbi-sticky-shell .cbi-header-inner {
    width: 100% !important;
    margin: 0 !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
    display: flex !important;
    justify-content: space-between !important;
  }
}
/* Updated by Antigravity: Make product details flow below grid (v5.2.2) */
/* [Intern's Note for Mentor]: We use min-height: auto and removed bottom paddings 
   to allow the hover drawer to naturally attach to the card without creating empty white gaps. */
  /* Removed rogue padding-bottom */

@media (hover: hover) {
  body.cbi-exact-body .product-card.cbi-product-card-v5 .cbi-hover-details {
    position: absolute !important;
    top: calc(100% - 1px) !important;
    left: 0 !important;
    right: 0 !important;
    background: #fff !important;
    border: 0 !important;
    padding: 12px 10px 20px !important; /* Adjusted for better spacing */
    z-index: -2 !important;
    display: flex !important;
    flex-direction: column !important;
    visibility: hidden !important;
    transform: translateY(-100%) !important;
    transition: transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.18s ease, visibility 0s 0.35s !important;
  }
  
  body.cbi-exact-body .product-card.cbi-product-card-v5:hover,
  body.cbi-exact-body .product-card.cbi-product-card-v5:focus-within {
    border-bottom-color: transparent !important;
  }

  body.cbi-exact-body .product-card.cbi-product-card-v5:hover .cbi-hover-details,
  body.cbi-exact-body .product-card.cbi-product-card-v5:focus-within .cbi-hover-details {
    visibility: visible !important;
    transform: translateY(0) !important;
    box-shadow: 0 10px 24px rgba(17,17,17,.06), -1px 0 0 #111, 1px 0 0 #111, 0 1px 0 #111 !important;
    transition: transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.18s ease, visibility 0s 0s !important;
  }

  /* Hide duplicate hover title/price so the original ones stay visible and we append sizes/cart below them */
  body.cbi-exact-body .product-card.cbi-product-card-v5 .cbi-hover-details .cbi-hover-product-price,
  body.cbi-exact-body .product-card.cbi-product-card-v5 .cbi-hover-details .cbi-hover-product-title {
    display: none !important;
  }
}

@media (hover: none), (pointer: coarse) {
  body.cbi-exact-body .product-card.cbi-product-card-v5 .cbi-hover-details {
    position: static !important;
    display: flex !important;
    flex-direction: column !important;
    border: 0 !important;
    box-shadow: none !important;
    padding-top: 6px !important;
  }

  /* Hide duplicate price and title inside .cbi-hover-details on touch/mobile.
     The price and title are already shown above via .cbi-product-price and .cbi-product-title.
     Only keep color swatches, NEW badge, sizes, and cart button. */
  body.cbi-exact-body .product-card.cbi-product-card-v5 .cbi-hover-details .cbi-hover-product-price,
  body.cbi-exact-body .product-card.cbi-product-card-v5 .cbi-hover-details .cbi-hover-product-title {
    display: none !important;
  }
}


/* Reverting to plain text view options and fixing baseline alignment */
body.cbi-exact-body .cbi-shop-view {
  align-items: baseline !important;
}

body.cbi-exact-body .cbi-view-option {
  display: inline-flex !important;
  align-items: baseline !important;
  justify-content: center !important;
  min-width: auto !important;
  width: auto !important;
  height: auto !important;
  padding: 0 4px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #777 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: inherit !important;
  text-decoration: underline transparent !important;
  text-underline-offset: 6px !important;
  text-decoration-thickness: 2px !important;
  border-bottom: 0 !important;
  transition: color .16s ease, text-decoration-color .16s ease !important;
}

body.cbi-exact-body .cbi-view-option.active,
body.cbi-exact-body .cbi-view-option:hover {
  background: transparent !important;
  border-color: transparent !important;
  text-decoration: underline var(--cbi-brand-blue) !important;
  color: var(--cbi-brand-blue) !important;
}

/* Match shop view label with sort toggle */
body.cbi-exact-body .cbi-shop-view>span {
  color: #111 !important;
  font-size: 14px !important;
  font-weight: 600 !important;
}

/* --- Add to cart button fix --- */
body.single-product.cbi-exact-body .summary .woocommerce-variation-add-to-cart {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 16px !important;
  width: 100% !important;
}
body.single-product.cbi-exact-body .summary .woocommerce-variation-add-to-cart .quantity {
  margin-right: auto !important;
}
body.single-product.cbi-exact-body .summary .woocommerce-variation-add-to-cart .single_add_to_cart_button {
  flex: 0 0 auto !important;
  width: auto !important;
  padding: 0 40px !important;
  border-radius: 999px !important;
}

/* Enable scroll chaining for the product gallery (Desktop only) */
@media (min-width: 769px) {
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked,
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs,
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage-wrap,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs,
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage-wrap,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage-wrap {
    overscroll-behavior: auto !important;
    overscroll-behavior-x: auto !important;
    overscroll-behavior-y: auto !important;
    touch-action: pan-y !important;
    overflow: visible !important;
  }
  /* Force native scroll on gallery to act like filter sidebar */
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage,
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs {
    overflow-y: auto !important;
    overscroll-behavior: auto !important;
    overscroll-behavior-y: auto !important;
    touch-action: pan-y !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: y mandatory !important;
    scroll-behavior: smooth !important;
    cursor: default !important;
  }
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel {
    scroll-snap-align: start !important;
  }
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage::-webkit-scrollbar,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage::-webkit-scrollbar,
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs::-webkit-scrollbar,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-thumbs::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
  }
}

/* Fix mobile scroll: allow both horizontal swipe and vertical page scroll */
@media (max-width: 768px) {
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked,
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage-wrap,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage-wrap,
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-stage,
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel,
  html body.single-product.cbi-exact-body .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel img,
  html body.cbi-exact-body.single-product .cbi-single-product-reference .cbi-ref-gallery-stacked .cbi-ref-gallery-panel img {
    touch-action: auto !important;
    overscroll-behavior: auto !important;
    overscroll-behavior-x: auto !important;
    overscroll-behavior-y: auto !important;
    pointer-events: auto !important;
  }
}

/* Fix mobile layout: Quantity and Add to Cart on the same line */
@media (max-width: 768px) {
  body.single-product.cbi-exact-body .summary form.cart .woocommerce-variation-add-to-cart,
  body.cbi-exact-body.single-product .summary form.cart .woocommerce-variation-add-to-cart,
  body.single-product.cbi-exact-body .summary form.cart:not(.variations_form),
  body.cbi-exact-body.single-product .summary form.cart:not(.variations_form) {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 10px !important;
  }
  
  body.single-product.cbi-exact-body .summary .woocommerce-variation-availability,
  body.cbi-exact-body.single-product .summary .woocommerce-variation-availability {
    flex: 0 0 100% !important;
    width: 100% !important;
    margin-bottom: 8px !important;
  }

  body.single-product.cbi-exact-body .summary .woocommerce-variation-add-to-cart .quantity,
  body.cbi-exact-body.single-product .summary .woocommerce-variation-add-to-cart .quantity,
  body.single-product.cbi-exact-body .summary form.cart:not(.variations_form) .quantity,
  body.cbi-exact-body.single-product .summary form.cart:not(.variations_form) .quantity {
    flex: 0 0 120px !important;
    width: 120px !important;
    min-width: 120px !important;
    margin: 0 !important;
  }

  body.single-product.cbi-exact-body .summary .woocommerce-variation-add-to-cart .single_add_to_cart_button,
  body.cbi-exact-body.single-product .summary .woocommerce-variation-add-to-cart .single_add_to_cart_button,
  body.single-product.cbi-exact-body .summary form.cart:not(.variations_form) .single_add_to_cart_button,
  body.cbi-exact-body.single-product .summary form.cart:not(.variations_form) .single_add_to_cart_button {
    flex: 1 1 0% !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 10px !important;
  }
}

/* =========================================================
   CBI v4.1.4 reviewed: cart-page editor gallery + navbar qty
   ========================================================= */
html.cbi-cart-editor-open,
html.cbi-cart-editor-open body {
  overflow: hidden !important;
}

body.cbi-exact-body #cartItems .item-quantity {
  flex: 0 0 auto !important;
}

body.cbi-exact-body #cartItems .cbi-mini-qty {
  display: grid !important;
  grid-template-columns: 24px 32px 24px !important;
  align-items: center !important;
  width: 80px !important;
  min-width: 80px !important;
  overflow: hidden !important;
  border: 1px solid #dfe3eb !important;
  border-radius: 8px !important;
  background: #fff !important;
}

body.cbi-exact-body #cartItems .cbi-mini-qty__btn {
  width: 24px !important;
  min-width: 24px !important;
  height: 30px !important;
  padding: 0 !important;
  border: 0 !important;
  background: #fff !important;
  color: #3d4963 !important;
  font-family: inherit !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  cursor: pointer !important;
}

body.cbi-exact-body #cartItems .cbi-mini-qty__btn:hover:not(:disabled),
body.cbi-exact-body #cartItems .cbi-mini-qty__btn:focus-visible:not(:disabled) {
  background: #f3f5ff !important;
  color: #4153df !important;
}

body.cbi-exact-body #cartItems .cbi-mini-qty__btn:disabled {
  opacity: .28 !important;
  cursor: not-allowed !important;
}

body.cbi-exact-body #cartItems .cbi-mini-qty input[data-cbi-mini-qty-input] {
  display: block !important;
  box-sizing: border-box !important;
  width: 32px !important;
  min-width: 0 !important;
  max-width: 32px !important;
  height: 30px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-left: 1px solid #e8ebf0 !important;
  border-right: 1px solid #e8ebf0 !important;
  border-radius: 0 !important;
  background: #fff !important;
  color: #17213a !important;
  text-align: center !important;
  font-family: inherit !important;
  font-size: 12px !important;
  font-weight: 750 !important;
  line-height: 1 !important;
  appearance: textfield !important;
  -moz-appearance: textfield !important;
}

body.cbi-exact-body #cartItems .cbi-mini-qty input[data-cbi-mini-qty-input]::-webkit-inner-spin-button,
body.cbi-exact-body #cartItems .cbi-mini-qty input[data-cbi-mini-qty-input]::-webkit-outer-spin-button {
  margin: 0 !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}

body.cbi-exact-body #cartItems .cbi-mini-qty.is-loading,
body.cbi-exact-body #cartItems .cbi-mini-qty.is-locked {
  background: #f5f6f8 !important;
}

body.cbi-exact-body #cartItems .cbi-mini-qty.is-loading {
  opacity: .58 !important;
}

body.cbi-exact-body #cartItems .cbi-mini-qty.is-locked input[data-cbi-mini-qty-input],
body.cbi-exact-body #cartItems .cart-item.is-unavailable .cbi-mini-qty input[data-cbi-mini-qty-input] {
  background: #f5f6f8 !important;
  color: #8a94a6 !important;
}

body.cbi-exact-body #cartItems .cart-item.is-cbi-qty-pending .remove-item-btn {
  opacity: .32 !important;
  pointer-events: none !important;
}

body.cbi-exact-body #cartItems.is-cbi-cart-mutating {
  cursor: progress !important;
}

body.cbi-exact-body #cartItems.is-cbi-cart-mutating > * {
  pointer-events: none !important;
}

.cbi-cart-editor,
.cbi-cart-editor * {
  box-sizing: border-box;
}

.cbi-cart-editor [hidden] {
  display: none !important;
}

.cbi-cart-editor {
  position: fixed;
  inset: 0;
  z-index: 100050;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  font-family: inherit;
}

.cbi-cart-editor.is-open {
  display: flex;
}

.cbi-cart-editor__shade {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, .58);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}

.cbi-cart-editor__panel {
  position: relative;
  width: min(800px, calc(100vw - 40px));
  max-height: min(760px, calc(100vh - 40px));
  overflow: hidden;
  border: 1px solid rgba(226, 230, 238, .96);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 26px 80px rgba(15, 23, 42, .28);
  outline: none;
}

.cbi-cart-editor__close {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 8;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  margin: 0;
  padding: 0;
  border: 1px solid #d9dee8;
  border-radius: 9px;
  background: rgba(255, 255, 255, .94);
  color: #3e485e;
  font-family: inherit;
  font-size: 23px;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
  transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}

.cbi-cart-editor__close:hover,
.cbi-cart-editor__close:focus-visible {
  border-color: #aeb7c8;
  background: #f7f8fa;
  color: #111a31;
  outline: none;
}

.cbi-cart-editor__body {
  min-height: 410px;
  max-height: min(760px, calc(100vh - 40px));
  overflow: auto;
  overscroll-behavior: contain;
  padding: 28px;
}

.cbi-cart-editor__loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 354px;
  color: #7b8498;
  text-align: center;
  font-size: 13px;
}

.cbi-cart-editor__spinner {
  display: inline-block;
  width: 19px;
  height: 19px;
  border: 2px solid #dfe3eb;
  border-top-color: #5868f5;
  border-radius: 50%;
  animation: cbi-cart-editor-spin .75s linear infinite;
}

@keyframes cbi-cart-editor-spin {
  to { transform: rotate(360deg); }
}

.cbi-cart-editor__layout {
  display: grid;
  grid-template-columns: minmax(270px, 338px) minmax(0, 1fr);
  align-items: center;
  gap: 34px;
  min-width: 0;
}

.cbi-cart-editor__media,
.cbi-cart-editor__details {
  min-width: 0;
}

.cbi-cart-editor__stage {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border: 1px solid #edf0f4;
  border-radius: 12px;
  background: #f4f4f4;
  outline: none;
}

.cbi-cart-editor__stage:focus-visible {
  box-shadow: 0 0 0 3px rgba(88, 104, 245, .22);
}

.cbi-cart-editor__stage > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  user-select: none;
  -webkit-user-drag: none;
  transition: opacity .16s ease;
}

.cbi-cart-editor__stage.is-loading > img {
  opacity: .28;
}

.cbi-cart-editor__media-spinner {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 4;
  display: none;
  margin: -10px 0 0 -10px;
}

.cbi-cart-editor__stage.is-loading .cbi-cart-editor__media-spinner {
  display: block;
}

.cbi-cart-editor__media-empty {
  max-width: 180px;
  padding: 16px;
  color: #8a94a6;
  text-align: center;
  font-size: 12px;
  line-height: 1.5;
}

.cbi-cart-editor__media-nav {
  position: absolute;
  top: 50%;
  z-index: 5;
  display: grid;
  place-items: center;
  width: 38px;
  height: 46px;
  margin: 0;
  padding: 0 0 4px;
  border: 0;
  border-radius: 11px;
  background: rgba(255, 255, 255, .7);
  color: #8a919e;
  font-family: Arial, sans-serif;
  font-size: 42px;
  font-weight: 300;
  line-height: 1;
  transform: translateY(-50%);
  cursor: pointer;
  box-shadow: 0 3px 14px rgba(15, 23, 42, .08);
  transition: color .15s ease, background-color .15s ease, opacity .15s ease;
}

.cbi-cart-editor__media-nav.is-prev { left: 9px; }
.cbi-cart-editor__media-nav.is-next { right: 9px; }

.cbi-cart-editor__media-nav:hover,
.cbi-cart-editor__media-nav:focus-visible {
  background: rgba(255, 255, 255, .96);
  color: #17213a;
  outline: none;
}

.cbi-cart-editor__media-count {
  position: absolute;
  right: 10px;
  bottom: 10px;
  z-index: 4;
  min-width: 43px;
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(17, 26, 49, .72);
  color: #fff;
  text-align: center;
  font-size: 10px;
  font-weight: 750;
  line-height: 1;
}

.cbi-cart-editor__thumbs {
  display: flex;
  gap: 7px;
  margin-top: 9px;
  padding: 1px;
  overflow-x: auto;
  scrollbar-width: thin;
  scroll-snap-type: x proximity;
}

.cbi-cart-editor__thumb {
  flex: 0 0 51px;
  width: 51px;
  height: 51px;
  margin: 0;
  padding: 2px;
  overflow: hidden;
  border: 1px solid #e0e4ec;
  border-radius: 8px;
  background: #f6f6f6;
  cursor: pointer;
  scroll-snap-align: start;
}

.cbi-cart-editor__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.cbi-cart-editor__thumb.is-active {
  border-color: #5868f5;
  box-shadow: 0 0 0 1px #5868f5;
}

.cbi-cart-editor__thumb:focus-visible {
  outline: 3px solid rgba(88, 104, 245, .2);
  outline-offset: 1px;
}

.cbi-cart-editor__details {
  padding: 12px 18px 8px 0;
}

.cbi-cart-editor__eyebrow {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0 0 6px;
  color: #7a8499;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.cbi-cart-editor__eyebrow b {
  display: inline-flex;
  align-items: center;
  min-height: 18px;
  padding: 0 5px;
  border: 1px solid #bfc6d2;
  border-radius: 4px;
  color: #394257;
  background: #fff;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0;
}

.cbi-cart-editor__details h2 {
  margin: 0;
  color: #111a31;
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 850;
  line-height: 1.35;
}

.cbi-cart-editor__sku {
  margin: 4px 0 0;
  color: #8a94a6;
  font-size: 10px;
  line-height: 1.4;
}

.cbi-cart-editor__price {
  min-height: 28px;
  margin: 8px 0 17px;
  color: #111a31;
  font-size: 20px;
  font-weight: 850;
  line-height: 1.35;
}

.cbi-cart-editor__price del {
  margin-left: 7px;
  color: #98a2b3;
  font-size: 12px;
  font-weight: 600;
}

.cbi-cart-editor__price ins {
  color: inherit;
  text-decoration: none;
}

.cbi-cart-editor__fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.cbi-cart-editor__fields.is-single {
  grid-template-columns: minmax(0, 1fr);
}

.cbi-cart-editor__field.is-full {
  grid-column: 1 / -1;
}

.cbi-cart-editor__field {
  display: block;
  min-width: 0;
  margin: 0;
}

.cbi-cart-editor__field > span {
  display: block;
  margin: 0 0 6px;
  color: #525e75;
  font-size: 11px;
  font-weight: 750;
}

.cbi-cart-editor__field select {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  height: 44px !important;
  margin: 0 !important;
  padding: 0 34px 0 11px !important;
  border: 1px solid #cfd5df !important;
  border-radius: 8px !important;
  background-color: #fff !important;
  color: #27324a !important;
  font-family: inherit !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  box-shadow: none !important;
  cursor: pointer !important;
  transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}

.cbi-cart-editor__field select.is-empty {
  color: #8a94a6 !important;
}

.cbi-cart-editor__field select:hover:not(:disabled) {
  border-color: #aeb6c5 !important;
}

.cbi-cart-editor__field select:focus {
  border-color: #6675f5 !important;
  box-shadow: 0 0 0 3px rgba(88, 104, 245, .16) !important;
  outline: none !important;
}

.cbi-cart-editor__field select:disabled {
  opacity: .56 !important;
  background-color: #f3f4f6 !important;
  cursor: not-allowed !important;
}

.cbi-cart-editor__field option:disabled {
  color: #b1b8c5;
}

.cbi-cart-editor__status {
  min-height: 29px;
  padding: 9px 1px 5px;
  color: #7a8499;
  font-size: 11px;
  line-height: 1.4;
}

.cbi-cart-editor__status.is-error {
  color: #d92d20;
}

.cbi-cart-editor__submit {
  display: block;
  width: 100%;
  height: 45px;
  margin: 0;
  padding: 0 18px;
  border: 1px solid #5868f5;
  border-radius: 8px;
  background: #5868f5;
  color: #fff;
  font-family: inherit;
  font-size: 13px;
  font-weight: 850;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 7px 18px rgba(88, 104, 245, .22);
  transition: opacity .15s ease, background-color .15s ease, box-shadow .15s ease;
}

.cbi-cart-editor__submit:hover:not(:disabled) {
  background: #4859ea;
}

.cbi-cart-editor__submit:focus-visible {
  outline: 3px solid rgba(88, 104, 245, .22);
  outline-offset: 2px;
}

.cbi-cart-editor__submit:disabled {
  border-color: #d3d7df;
  background: #f2f3f5;
  color: #b4bac5;
  box-shadow: none;
  cursor: not-allowed;
}

@media(max-width: 720px) {
  .cbi-cart-editor {
    align-items: flex-end;
    padding: 0;
  }

  .cbi-cart-editor__panel {
    width: 100%;
    max-height: 94vh;
    border-radius: 20px 20px 0 0;
  }

  .cbi-cart-editor__body {
    min-height: 0;
    max-height: 94vh;
    padding: 48px 18px 22px;
  }

  .cbi-cart-editor__layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }

  .cbi-cart-editor__media {
    width: min(100%, 390px);
    margin: 0 auto;
  }

  .cbi-cart-editor__stage {
    aspect-ratio: 1 / 1;
    max-height: 360px;
  }

  .cbi-cart-editor__details {
    padding: 0;
  }
}

@media(max-width: 480px) {
  .cbi-cart-editor__fields {
    grid-template-columns: minmax(0, 1fr);
  }

  .cbi-cart-editor__stage {
    max-height: 320px;
  }

  .cbi-cart-editor__media-nav {
    width: 34px;
    height: 42px;
    font-size: 38px;
  }

  body.cbi-exact-body #cartItems .cbi-mini-qty {
    grid-template-columns: 22px 30px 22px !important;
    width: 74px !important;
    min-width: 74px !important;
  }

  body.cbi-exact-body #cartItems .cbi-mini-qty__btn {
    width: 22px !important;
    min-width: 22px !important;
  }

  body.cbi-exact-body #cartItems .cbi-mini-qty input[data-cbi-mini-qty-input] {
    width: 30px !important;
    max-width: 30px !important;
  }
}

@media(prefers-reduced-motion: reduce) {
  .cbi-cart-editor__spinner,
  .cbi-cart-editor__stage > img,
  .cbi-cart-editor__media-nav,
  .cbi-cart-editor__submit,
  .cbi-cart-editor__field select {
    transition: none !important;
    animation: none !important;
  }
}

/* CBI Product Option Contract v2: display-only bag size and color-only layouts. */
.cbi-product-display-size,
.cbi-product-fixed-info,
.cbi-mobile-quick-fixed-info,
.cbi-cart-editor__fixed-info {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #667085;
  font-size: 13px;
  line-height: 1.35;
}
.cbi-product-display-size strong,
.cbi-product-fixed-info strong,
.cbi-mobile-quick-fixed-info strong,
.cbi-cart-editor__fixed-info strong {
  color: #17213a;
  font-weight: 700;
}
.cbi-product-display-size {
  margin: 3px 0 1px;
}
.cbi-product-fixed-info {
  margin: 2px 0 12px;
  padding: 7px 11px;
  border: 1px solid #e8ebf0;
  border-radius: 9px;
  background: #f8f9fb;
}
.cbi-mobile-quick-fixed-info {
  margin-top: 2px;
  margin-bottom: 10px;
}
.cbi-cart-editor__fixed-info {
  width: fit-content;
  margin: 2px 0 10px;
  padding: 6px 10px;
  border-radius: 8px;
  background: #f5f6f8;
}
@media (max-width: 720px) {
  .cbi-product-display-size,
  .cbi-product-fixed-info,
  .cbi-mobile-quick-fixed-info,
  .cbi-cart-editor__fixed-info { font-size: 12px; }
}


/* Bag display size uses the same product-size UI as footwear/jibbitz, but is informational only. */
body.cbi-exact-body .cbi-product-card-v5 .cbi-size-chip.cbi-size-chip--display-only,
.cbi-mobile-quick-size.cbi-mobile-quick-size--display-only {
  cursor: default !important;
  pointer-events: none !important;
}

/* CBI v5.1.0 v0.0.8: six-column cards stay image-only until hover. */
@media (min-width: 769px) and (any-hover: hover) and (any-pointer: fine) {
  /* No quick-action/transparent dot on desktop six-column cards. */
  html.cbi-card-display-only-device body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5 .cbi-mobile-quick-open,
  html.cbi-card-display-only-device body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5 .cbi-mobile-quick-open,
  body.cbi-exact-body.cbi-card-display-only-device .cbi-catalog-view-6 .cbi-product-card-v5 .cbi-mobile-quick-open,
  body.cbi-exact-body.cbi-card-display-only-device .product-container.cbi-view-6 .cbi-product-card-v5 .cbi-mobile-quick-open,
  body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5 .cbi-mobile-quick-open,
  body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5 .cbi-mobile-quick-open {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  /* The panel remains completely hidden before hover/focus. */
  body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5:not(:hover):not(:focus-within) .cbi-product-summary,
  body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5:not(:hover):not(:focus-within) .cbi-product-summary {
    display: none !important;
  }

  /* Restore the regular theme color selector only inside the hover panel. */
  body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5:hover .cbi-product-summary > .cbi-product-colors,
  body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5:focus-within .cbi-product-summary > .cbi-product-colors,
  body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5:hover .cbi-product-summary > .cbi-product-colors,
  body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5:focus-within .cbi-product-summary > .cbi-product-colors {
    display: flex !important;
    position: relative !important;
    visibility: visible !important;
    opacity: 1 !important;
    align-items: center !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    width: 100% !important;
    margin: 0 0 9px !important;
    padding: 0 !important;
    pointer-events: auto !important;
    order: 0 !important;
  }

  body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5 .cbi-product-summary > .cbi-product-colors .cbi-color-dot,
  body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5 .cbi-product-summary > .cbi-product-colors .cbi-color-dot {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  /* Use the existing theme hover content as one normal flow, not a second floating panel. */
  body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5 .cbi-hover-details,
  body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5 .cbi-hover-details {
    position: static !important;
    inset: auto !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    display: flex !important;
    flex-direction: column !important;
    max-height: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: none !important;
    transition: max-height 0.3s ease, opacity 0.3s ease, visibility 0s 0.3s, padding 0.3s ease !important;
  }

  body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5:hover .cbi-hover-details,
  body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5:focus-within .cbi-hover-details,
  body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5:hover .cbi-hover-details,
  body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5:focus-within .cbi-hover-details {
    max-height: 200px !important;
    padding-top: 10px !important;
    opacity: 1 !important;
    visibility: visible !important;
    transition: max-height 0.3s ease, opacity 0.3s ease, visibility 0s 0s, padding 0.3s ease !important;
  }

  /* Avoid the duplicate outer price; hover content already contains the themed price/title. */
  body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5 .cbi-product-summary > .cbi-product-price,
  body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5 .cbi-product-summary > .cbi-product-price {
    display: none !important;
  }

  /* Show hover title/price for 6-item view because outer ones are hidden and we want them inside the drawer */
  body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5 .cbi-hover-details .cbi-hover-product-price,
  body.cbi-exact-body .cbi-catalog-view-6 .cbi-product-card-v5 .cbi-hover-details .cbi-hover-product-title,
  body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5 .cbi-hover-details .cbi-hover-product-price,
  body.cbi-exact-body .product-container.cbi-view-6 .cbi-product-card-v5 .cbi-hover-details .cbi-hover-product-title {
    display: block !important;
  }
}

/* Force border on hover in 6 column view (override touch media queries) */
/* Force border on hover in 6 column view (override touch media queries) using a pseudo-element to prevent overlapping/clipping */
html body.cbi-exact-body .cbi-catalog-view-6 .product-card.cbi-product-card-v5:hover::after,
html body.cbi-exact-body .cbi-catalog-view-6 .product-card.cbi-product-card-v5:focus-within::after,
html body.cbi-exact-body .product-container.cbi-view-6 .product-card.cbi-product-card-v5:hover::after,
html body.cbi-exact-body .product-container.cbi-view-6 .product-card.cbi-product-card-v5:focus-within::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  bottom: 0 !important;
  border: 1px solid #111 !important;
  border-bottom: 0 !important;
  z-index: 35 !important;
  pointer-events: none !important;
  box-sizing: border-box !important;
}

html body.cbi-exact-body .cbi-catalog-view-6 .product-card.cbi-product-card-v5:hover,
html body.cbi-exact-body .cbi-catalog-view-6 .product-card.cbi-product-card-v5:focus-within,
html body.cbi-exact-body .product-container.cbi-view-6 .product-card.cbi-product-card-v5:hover,
html body.cbi-exact-body .product-container.cbi-view-6 .product-card.cbi-product-card-v5:focus-within {
  box-shadow: none !important;
}

/* ── Mobile: fix huge gap below related products ── */
@media (max-width: 768px) {
  /* Hide the invisible actions that take up space */
  html body.cbi-exact-body .cbi-product-discovery__grid .cbi-product-card-v5 .cbi-card-actions {
    display: none !important;
  }
  
  /* Reduce summary padding bottom */
  html body.cbi-exact-body .cbi-product-discovery__grid .cbi-product-card-v5 .cbi-product-summary {
    padding-bottom: 0 !important;
  }
  
  /* Reduce grid wrapper padding */
  html body.cbi-exact-body .cbi-product-discovery__grid {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }
}

/* ── Filter Menu Mobile Header ── */
body.cbi-exact-body .cbi-filter-mobile-header {
  display: none !important;
}
@media (max-width: 1024px) {
  body.cbi-exact-body .cbi-filter-mobile-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 14px 16px !important;
    border-bottom: 1px solid rgba(0, 0, 0, .08) !important;
    position: sticky !important;
    top: 0 !important;
    background: #fff !important;
    z-index: 10 !important;
    margin-bottom: 8px !important;
  }
  body.cbi-exact-body .cbi-filter-mobile-header .cbi-filter-title-text {
    font-size: 15px !important;
    font-weight: 800 !important;
    color: #111 !important;
  }
  body.cbi-exact-body .cbi-filter-close-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 32px !important;
    height: 32px !important;
    background: #f5f5f5 !important;
    border: none !important;
    border-radius: 50% !important;
    color: #111 !important;
    font-size: 14px !important;
    cursor: pointer !important;
    transition: background 0.2s !important;
  }
  body.cbi-exact-body .cbi-filter-close-btn:hover {
    background: #e0e0e0 !important;
  }
}

/* ปิด Facebook Login ชั่วคราว */
.cbi-auth-social .cbi-soc-btn.cbi-soc-facebook { display: none !important; }

/* Jibbitz exact-SKU choices — progressive enhancement, touch and keyboard. */
.cbi-design-picker[hidden],.cbi-design-picker [hidden]{display:none!important}
body.single-product .summary form.cbi-design-ready table.variations{display:none!important}
.cbi-design-picker{margin:18px 0 24px;color:var(--cbi-navy,#172842);font-family:inherit}
.cbi-design-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.cbi-design-heading strong{font-size:17px}
.cbi-design-heading button{border:0;background:transparent;color:inherit;text-decoration:underline;font:inherit;font-size:12px;padding:8px;cursor:pointer}
.cbi-design-search{display:block;font-size:12px;font-weight:600}
.cbi-design-search input{display:block;width:100%;margin-top:6px;border:1px solid #dce2e9;border-radius:10px;background:#fff;color:#172842;padding:11px 13px;font:inherit;font-size:14px;box-sizing:border-box}
.cbi-design-status{font-size:13px;margin:12px 0;overflow-wrap:anywhere}
.cbi-design-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(105px,1fr));gap:10px;max-height:480px;overflow:auto;padding:3px 5px 7px 3px;overscroll-behavior:contain}
.cbi-design-option{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:5px;min-width:0;padding:7px;border:1px solid #dce2e9;border-radius:12px;background:#fff;color:inherit;font:inherit;text-align:center;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.cbi-design-option img,.cbi-design-placeholder{width:100%;aspect-ratio:1;object-fit:contain;background:#f5f7f9;border-radius:7px}
.cbi-design-placeholder{display:flex;align-items:center;justify-content:center;font-size:16px;padding:6px;box-sizing:border-box}
.cbi-design-name{font-size:13px;font-weight:600;line-height:1.45;overflow-wrap:anywhere}
.cbi-design-sku{font-size:10px;color:#647184;overflow-wrap:anywhere}
.cbi-design-price{font-size:12px}.cbi-design-price .price{font-size:inherit}
.cbi-design-option.is-selected{border-color:#172842;box-shadow:0 0 0 2px #172842;background:#f0f5fa}
.cbi-design-option:disabled{cursor:not-allowed;background:#f5f6f8;color:#697483}.cbi-design-option:disabled img{opacity:.5}
.cbi-design-unavailable{font-size:11px;font-weight:600}
.cbi-design-picker button:focus-visible,.cbi-design-picker input:focus-visible{outline:3px solid #498ccd;outline-offset:3px}
.cbi-design-quick-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:300px;overflow:auto;padding:4px}
.cbi-design-quick-grid .cbi-mobile-quick-size{display:flex;flex-direction:column;gap:5px;height:auto;min-width:0;white-space:normal;padding:7px;border-radius:10px;overflow-wrap:anywhere}
.cbi-design-quick-grid img{width:100%;aspect-ratio:1;object-fit:contain;border-radius:6px}.cbi-design-quick-grid small{font-size:10px}
@media(max-width:600px){.cbi-design-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-height:420px;gap:8px}.cbi-design-name{font-size:12px}.cbi-design-option{padding:6px}}

.cbi-design-gallery{width:100%;margin-bottom:24px}.cbi-design-gallery-main{display:block;width:100%;aspect-ratio:1;object-fit:contain;background:#f8f9fb;border-radius:14px}.cbi-design-gallery-main[hidden]{display:none}
.cbi-design-gallery-thumbs{display:flex;gap:8px;overflow:auto;margin-top:12px;padding:3px}.cbi-design-gallery-thumbs button{flex:0 0 64px;padding:3px;border:1px solid #dce2e9;border-radius:8px;background:#fff;cursor:pointer}.cbi-design-gallery-thumbs img{width:100%;aspect-ratio:1;object-fit:contain}.cbi-design-gallery-thumbs button[aria-pressed="true"]{border-color:#172842;box-shadow:0 0 0 1px #172842}.cbi-design-gallery-thumbs button:focus-visible{outline:3px solid #498ccd;outline-offset:2px}
@media(max-width:768px){.cbi-design-gallery{width:100%;float:none}}

/* Desktop Jibbitz cards: compact preview, complete choice in quick dialog. */
.cbi-desktop-design-choice,.cbi-desktop-design-search{display:none!important}
@media(min-width:1024px){
body .cbi-design-product-card .cbi-hover-details{display:none!important}
body .cbi-design-product-card .cbi-desktop-design-choice{display:flex!important;flex-direction:column;align-items:center;gap:9px;width:100%;margin-top:12px;order:10}
body .cbi-design-product-card .cbi-desktop-design-preview{display:flex;align-items:center;justify-content:center;gap:5px;border:0;background:transparent;padding:2px;cursor:pointer;max-width:100%}
.cbi-desktop-design-preview>span{width:32px;height:32px;overflow:hidden;border:1px solid #e1e6ee;border-radius:8px;background:#f8fafc;font-size:9px;line-height:1.3;display:flex;align-items:center;justify-content:center}
.cbi-desktop-design-preview img{width:100%;height:100%;object-fit:contain}.cbi-desktop-design-preview small{font-size:11px;color:#647184;padding:3px}
.cbi-desktop-design-count{font-size:12px;color:#647184}
body .cbi-desktop-design-open{display:flex;justify-content:center;align-items:center;gap:12px;width:100%;min-height:40px;border:1px solid var(--cbi-navy,#172842);border-radius:10px;background:var(--cbi-navy,#172842);color:#fff;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
body .cbi-desktop-design-open:hover{background:#294563}
.cbi-desktop-design-choice button:focus-visible{outline:3px solid #498ccd;outline-offset:3px}
.cbi-design-quick-desktop.cbi-mobile-quick-modal{align-items:center!important;padding:24px!important}
.cbi-design-quick-desktop .cbi-mobile-quick-dialog{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:min(920px,92vw)!important;max-height:88vh!important;border-radius:18px!important;overflow:auto!important;padding:24px!important;gap:20px!important;box-sizing:border-box}
.cbi-design-quick-desktop .cbi-mobile-quick-gallery{grid-column:1;grid-row:1;align-self:start;margin:0!important;padding:0!important;border-radius:12px}
.cbi-design-quick-desktop .cbi-mobile-quick-slide{flex-basis:100%!important;min-width:100%!important;margin:0!important}
.cbi-design-quick-desktop .cbi-mobile-quick-slide img{width:100%!important;aspect-ratio:1;object-fit:contain!important}
.cbi-design-quick-desktop .cbi-mobile-quick-info{grid-column:2;grid-row:1 / span 2;padding:18px 0 0!important;min-width:0}
.cbi-design-quick-desktop .cbi-mobile-quick-detail{position:static!important;grid-column:1;grid-row:2;align-self:start;justify-self:center;font-size:12px!important}
.cbi-design-quick-desktop .cbi-desktop-design-search{display:block!important;font-size:12px;margin:14px 0 10px}
.cbi-desktop-design-search input{width:100%;padding:10px 12px;margin-top:5px;border:1px solid #dce2e9;border-radius:9px;font:inherit;box-sizing:border-box}
.cbi-design-quick-desktop .cbi-design-quick-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;max-height:360px!important}
.cbi-design-quick-desktop [data-cbi-modal-size][hidden]{display:none!important}
}

/* PC chooser V2: override legacy color-gallery sheet constraints. */
@media(min-width:1024px){
html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop{align-items:center!important;padding:24px!important;box-sizing:border-box!important;}
html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop .cbi-mobile-quick-dialog{width:min(1200px,94vw)!important;max-width:1200px!important;max-height:90dvh!important;grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr)!important;grid-template-rows:minmax(0,1fr) auto!important;gap:16px 32px!important;padding:32px!important;overflow:auto!important;border-radius:20px!important;}
html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop .cbi-mobile-quick-gallery{grid-column:1!important;grid-row:1!important;align-self:start!important;max-height:none!important;width:100%!important;min-width:0!important;margin:0!important;}
html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop .cbi-mobile-quick-slide{width:100%!important;flex:0 0 100%!important;min-width:100%!important;aspect-ratio:1!important;}
html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop .cbi-mobile-quick-detail{grid-column:1!important;grid-row:2!important;margin:0!important;justify-self:center!important;align-self:start!important;font-size:13px!important;padding:10px 16px!important;}
html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop .cbi-mobile-quick-info{grid-column:2!important;grid-row:1 / span 2!important;display:flex!important;flex-direction:column!important;gap:12px!important;padding:8px 0 0!important;overflow:visible!important;min-width:0!important;}
html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop .cbi-mobile-quick-title{font-size:22px!important;line-height:1.4!important;margin:0!important;}
html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop .cbi-mobile-quick-price{font-size:20px!important;line-height:1.4!important;margin:0!important;}
html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop .cbi-desktop-design-search{font-size:14px!important;margin:0!important;}
html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop .cbi-desktop-design-search:empty{display:none!important;}
html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop .cbi-desktop-design-search input{min-height:44px!important;font-size:14px!important;}
html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop .cbi-design-quick-grid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(110px,1fr))!important;gap:10px!important;max-height:min(48dvh,490px)!important;overflow:auto!important;padding:4px!important;margin:0!important;align-items:stretch!important;}
html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop .cbi-design-quick-grid .cbi-mobile-quick-size{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;width:100%!important;min-width:0!important;min-height:0!important;height:auto!important;box-sizing:border-box!important;padding:9px!important;gap:7px!important;border-radius:10px!important;font-size:13px!important;line-height:1.45!important;word-break:normal!important;overflow-wrap:normal!important;white-space:normal!important;}
html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop .cbi-design-quick-grid .cbi-mobile-quick-size img{width:100%!important;height:auto!important;aspect-ratio:1!important;object-fit:contain!important;border-radius:6px!important;}
html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop .cbi-design-quick-grid .cbi-mobile-quick-size span{display:block!important;width:100%!important;line-height:1.45!important;}
html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop .cbi-mobile-quick-add{min-height:48px!important;font-size:16px!important;border-radius:10px!important;margin:0!important;}
html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop .cbi-mobile-quick-close{width:38px!important;height:38px!important;top:10px!important;right:10px!important;}
html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop [data-cbi-modal-size][hidden]{display:none!important;}
}

/* PC chooser V3: intrinsic rows must not compress inside the scroll viewport. */
@media(min-width:1024px){
html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop .cbi-design-quick-grid{flex:0 0 auto!important;height:auto!important;min-height:0!important;grid-template-rows:none!important;grid-auto-rows:minmax(160px,max-content)!important;align-content:start!important;align-items:stretch!important;overflow-y:auto!important;overflow-x:hidden!important;}
html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop .cbi-design-quick-grid .cbi-mobile-quick-size{display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:100px minmax(38px,auto)!important;grid-auto-rows:max-content!important;align-content:start!important;align-items:start!important;justify-items:center!important;min-height:160px!important;max-height:none!important;height:auto!important;flex-shrink:0!important;overflow:hidden!important;}
html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop .cbi-design-quick-grid .cbi-mobile-quick-size img{display:block!important;width:100%!important;min-width:0!important;height:100px!important;min-height:100px!important;max-height:100px!important;object-fit:contain!important;flex-shrink:0!important;grid-row:1!important;}
html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop .cbi-design-quick-grid .cbi-mobile-quick-size span{grid-row:2!important;min-height:38px!important;white-space:normal!important;word-break:normal!important;overflow-wrap:break-word!important;}
html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop .cbi-design-quick-grid .cbi-mobile-quick-size small{grid-row:3!important;}
html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop .cbi-mobile-quick-title,html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop .cbi-mobile-quick-price,html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop .cbi-desktop-design-search,html body.cbi-exact-body .cbi-mobile-quick-modal.cbi-design-quick-desktop .cbi-mobile-quick-add{flex-shrink:0!important;}
}

/* CBI design-card hover drawer 2026-10-21: keep choices out of grid flow. */
@media (min-width: 1024px) and (hover: hover) and (pointer: fine) {
  html body.cbi-exact-body .product-card.cbi-design-product-card .cbi-desktop-design-choice {
    position: absolute !important;
    top: calc(100% - 1px) !important;
    left: 0 !important;
    right: 0 !important;
    width: auto !important;
    margin: 0 !important;
    padding: 12px 10px 20px !important;
    box-sizing: border-box !important;
    background: #fff !important;
    z-index: 2 !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transform: translateY(-8px) !important;
    transition: opacity .18s ease, transform .18s ease, visibility .18s !important;
  }
  html body.cbi-exact-body .product-card.cbi-design-product-card:hover,
  html body.cbi-exact-body .product-card.cbi-design-product-card:focus-within {
    z-index: 40 !important;
  }
  html body.cbi-exact-body .product-card.cbi-design-product-card:hover .cbi-desktop-design-choice,
  html body.cbi-exact-body .product-card.cbi-design-product-card:focus-within .cbi-desktop-design-choice {
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
    box-shadow: 0 10px 24px rgba(17,17,17,.06), -1px 0 0 #111, 1px 0 0 #111, 0 1px 0 #111 !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  html body.cbi-exact-body .product-card.cbi-design-product-card .cbi-desktop-design-choice {
    transition: none !important;
  }
}
