/* ---------- Font ---------- */
body {
  font-family: 'Nunito Sans', 'Open Sans', sans-serif;
}
input, button, select, textarea { font-family: inherit; }

/* Hide default OC Bootstrap alerts — we use custom toasts */
.alert.alert-success.alert-dismissible { display: none !important; }

/* ---------- SVG icons ---------- */
.svg-icon {
  width: 24px;
  height: 24px;
  fill: currentColor;
  flex-shrink: 0;
  display: inline-block;
  vertical-align: middle;
}
.icon-sm { width: 16px; height: 16px; }
.icon-xs { width: 12px; height: 12px; }

/* ---------- Container ---------- */
.bm-container {
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 8px;
  padding-right: 8px;
}

/* ---------- Site header ---------- */
#site-header {
  position: relative;
  z-index: 1040;
  background: #fff;
}

/* ---------- Topbar ---------- */
#topbar {
  background: #f2f2f2;
  height: 48px;
}
#topbar .bm-container {
  height: 100%;
}

.topbar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
}

.topbar-left {
  display: flex;
  align-items: center;
  gap: 40px;
}
/* Region picker */
.bm-region-picker {
  position: relative;
}
.bm-region-trigger {
  background: none;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0;
  font-family: inherit;
  font-size: 14px;
  font-weight: 400;
  color: rgba(0,0,0,0.6);
  line-height: 1.4;
}
.bm-region-trigger .svg-icon {
  width: 24px;
  height: 24px;
  color: rgba(0,0,0,0.6);
  flex-shrink: 0;
}
.bm-region-dropdown {
  position: absolute;
  top: calc(100% + 12px);
  left: 50%;
  transform: translateX(-50%);
  width: 240px;
  background: #fff;
  border-radius: 4px;
  box-shadow: 0 0 12px rgba(0,0,0,0.1);
  padding: 4px 0;
  z-index: 1000;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
  transform: translateX(-50%) translateY(-6px);
}
.bm-region-dropdown.open {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
.bm-region-arrow {
  position: absolute;
  top: -6px;
  left: 50%;
  transform: translateX(-50%);
  width: 12px;
  height: 6px;
  overflow: hidden;
}
.bm-region-arrow::after {
  content: '';
  position: absolute;
  top: 3px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 8px;
  height: 8px;
  background: #fff;
  box-shadow: 0 0 12px rgba(0,0,0,0.1);
}
.bm-region-list {
  display: flex;
  flex-direction: column;
}
.bm-region-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 16px;
  background: none;
  border: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 16px;
  font-weight: 400;
  color: rgba(0, 0, 0, 0.5);
  opacity: 1;
  text-align: left;
  width: 100%;
  transition: background 0.15s ease;
}
.bm-region-item.active {
  opacity: 1;
  background: rgba(0,0,0,0.05);
}
.bm-region-item:hover {
  color: #000;
  background: rgba(0,0,0,0.05);
}
.bm-flag {
  width: 22px;
  height: 16px;
  flex-shrink: 0;
  border-radius: 2px;
}

.topbar-nav {
  display: flex;
  align-items: center;
  gap: 20px;
}
.topbar-nav a {
  font-size: 14px;
  color: rgba(0,0,0,0.6);
  text-decoration: none;
  line-height: 1.4;
}
.topbar-nav a:hover { color: #000; }

.topbar-right {
  display: flex;
  align-items: center;
  gap: 15px;
}
.topbar-buyout-text {
  font-size: 14px;
  color: rgba(0,0,0,0.6);
}
.btn-buyout-topbar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #000;
  color: #fff !important;
  border: none;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 500;
  padding: 4px 10px;
  text-decoration: none !important;
  cursor: pointer;
  font-family: inherit;
  line-height: 1.4;
}
.btn-buyout-topbar:hover { background: #333; color: #fff !important; }

.btn-chat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  color: #1bb249;
  border: none;
  border-radius: 8px;
  width: 32px;
  height: 32px;
  cursor: pointer;
  flex-shrink: 0;
  padding: 0;
  text-decoration: none;
}
.btn-chat .svg-icon { width: 28px; height: 28px; }
.btn-chat:hover { color: #189940; }

/* ---------- Mainbar ---------- */
#mainbar {
  background: #fff;
  border-bottom: 1px solid rgba(0,0,0,0.05);
}

.mainbar-top {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-top: 16px;
  margin-bottom: 16px;
  height: 48px;
  flex-wrap: nowrap;
}
#mainbar-logo { margin-right: 10px; flex-shrink: 0; }
.mainbar-icons { margin-left: 10px; }
#mainbar-logo a,
#mainbar-logo span {
  font-size: 32px;
  font-weight: 700;
  text-transform: uppercase;
  color: #000;
  text-decoration: none;
  letter-spacing: 1.28px;
  white-space: nowrap;
  line-height: 1;
}
#mainbar-logo img {
  max-height: 48px;
  width: auto;
}

#catalog-toggle-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #000;
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 700;
  padding: 10px 24px 10px 20px;
  cursor: pointer;
  white-space: nowrap;
  height: 48px;
  flex-shrink: 0;
  font-family: inherit;
}
#catalog-toggle-btn:hover { background: #333; }
#catalog-toggle-btn .svg-icon { width: 24px; height: 24px; }

#mainbar-search {
  flex: 1 1 auto;
  min-width: 0;
}
#mainbar-search #search.input-group {
  margin-bottom: 0;
  border: 1px solid #000;
  border-radius: 8px;
  overflow: visible;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
  display: flex;
  flex-wrap: nowrap;
  height: 48px;
  background: #fff;
}
#mainbar-search #search .form-control {
  border: none !important;
  box-shadow: none !important;
  height: 46px !important;
  font-size: 16px;
  padding: 0 16px;
  font-family: inherit;
  border-radius: 7px 0 0 7px !important;
  flex: 1;
  background: transparent;
}
#mainbar-search #search .input-group-btn {
  width: auto;
  flex-shrink: 0;
}
#mainbar-search #search .btn {
  background: #000 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 0 7px 7px 0 !important;
  height: 100% !important;
  min-height: 46px;
  width: 62px;
  font-size: 18px;
  padding: 0;
  margin: 0 !important;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: none !important;
  position: static !important;
  transition: background 0.2s ease;
}
#mainbar-search #search .btn .svg-icon { width: 22px; height: 22px; }
#mainbar-search #search .btn:hover { background: #333 !important; }

#mainbar-search #search.input-group:focus-within {
  border-color: #000;
  box-shadow: 0 0 0 1.5px #000;
}

/* Live search dropdown */
#mainbar-search #search { position: relative; }

.bm-search-dd {
  display: none;
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 1060;
  width: 718px;
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 12px;
  box-shadow: 0 12px 40px rgba(0,0,0,0.12);
  flex-direction: column;
}
.bm-search-dd.open {
  display: flex;
}
.bm-search-dd__tabs {
  display: none;
  gap: 0;
  padding: 12px 20px 0;
  border-bottom: 1px solid #f2f2f2;
}
.bm-search-dd__tabs.has-tabs { display: flex; }
.bm-search-dd__tab {
  padding: 8px 16px 12px;
  font-size: 15px;
  font-weight: 500;
  color: rgba(0,0,0,0.5);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  text-decoration: none;
  background: none;
  border-top: none;
  border-left: none;
  border-right: none;
  font-family: inherit;
}
.bm-search-dd__tab:hover { color: #000; }
.bm-search-dd__tab.active {
  color: #000;
  font-weight: 600;
  border-bottom-color: #000;
}
.bm-search-dd__body {
  display: flex;
  max-height: 680px;
  overflow: hidden;
}
.bm-search-dd__left {
  width: 300px;
  flex-shrink: 0;
  padding: 20px;
  overflow-y: auto;
}
.bm-search-dd__right {
  flex: 1;
  padding: 20px;
  overflow-y: auto;
  border-left: 1px solid #f2f2f2;
}
.bm-search-dd__title {
  font-size: 18px;
  font-weight: 600;
  color: #000;
  margin-bottom: 16px;
}

/* Suggestions — search results */
.bm-sug-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 5px 0;
  font-size: 16px;
  color: #000;
  text-decoration: none;
  cursor: pointer;
}
.bm-sug-item:hover { color: #000; text-decoration: none; }
.bm-sug-icon {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  background: #f2f2f2;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.bm-sug-icon .svg-icon {
  width: 16px;
  height: 16px;
  color: rgba(0,0,0,0.45);
}
.bm-sug-item__name {
  flex: 1;
  min-width: 0;
  font-size: 16px;
  color: #000;
  line-height: 26px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bm-sug-item__name b { font-weight: 600; }

/* Suggestions — category matches */
.bm-sug-item--cat {
  padding: 8px 0;
}
.bm-sug-icon--cat {
  width: 48px;
  height: 48px;
  border-radius: 12px;
}
.bm-sug-icon--cat .svg-icon {
  width: 24px;
  height: 24px;
}
.bm-sug-item__info { flex: 1; min-width: 0; }
.bm-sug-item__info .bm-sug-item__name {
  line-height: 24px;
}
.bm-sug-cat {
  display: block;
  font-size: 14px;
  color: rgba(0,0,0,0.45);
  line-height: 20px;
  margin-top: 2px;
}

/* Suggestions — brand matches */
.bm-sug-item--brand {
  padding: 8px 0;
}
.bm-sug-brand-logo {
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  background: rgba(0,0,0,0.05);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
  font-style: italic;
  color: #000;
  line-height: 1;
  overflow: hidden;
}

/* History */
.bm-search-hist__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 20px;
  margin-bottom: 12px;
}
.bm-search-hist__title {
  font-size: 16px;
  font-weight: 600;
  color: #000;
}
.bm-search-hist__clear {
  font-size: 14px;
  color: rgba(0,0,0,0.45);
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
  font-family: inherit;
}
.bm-search-hist__clear:hover { color: #000; }
.bm-hist-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 4px 0;
  font-size: 15px;
  color: #000;
  text-decoration: none;
  cursor: pointer;
  height: 32px;
}
.bm-hist-item:hover { color: #000; text-decoration: none; }
.bm-hist-item .svg-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  color: rgba(0,0,0,0.3);
  fill: none;
}
.bm-hist-item__text {
  flex: 1;
  line-height: 26px;
}
.bm-hist-item__del {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  color: rgba(0,0,0,0.25);
  fill: none;
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
}
.bm-hist-item__del:hover { color: rgba(0,0,0,0.6); }

/* Product cards in dropdown */
.bm-search-dd__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.bm-sug-card {
  text-decoration: none;
  color: #000;
  position: relative;
}
.bm-sug-card:hover { color: #000; text-decoration: none; }
.bm-sug-card__img {
  width: 100%;
  aspect-ratio: 179/210;
  background: #f5f5f5;
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 10px;
  position: relative;
}
.bm-sug-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.bm-sug-card__wish {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 28px;
  height: 28px;
  color: rgba(0,0,0,0.3);
  cursor: pointer;
  z-index: 2;
}
.bm-sug-card__wish:hover { color: rgba(0,0,0,0.6); }
.bm-sug-card__brand {
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 20px;
}
.bm-sug-card__name {
  font-size: 13px;
  color: rgba(0,0,0,0.6);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 18px;
  margin-top: 2px;
}
.bm-sug-card__price {
  margin-top: 6px;
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
}
.bm-sug-card__price .old {
  font-weight: 400;
  font-size: 13px;
  color: rgba(0,0,0,0.4);
  text-decoration: line-through;
  margin-left: 6px;
}

#mainbar-search #search .btn:active,
#mainbar-search #search .btn:focus {
  outline: none !important;
  box-shadow: none !important;
  transform: none !important;
  background: #000 !important;
}

.mainbar-icons {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-shrink: 0;
}
.mainbar-icons .icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  color: #000;
  text-decoration: none;
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
  font-size: 20px;
  line-height: 1;
}
.mainbar-icons .icon-btn:hover { color: #555; }
.mainbar-icons .icon-btn .svg-icon { width: 24px; height: 24px; }

/* Account dropdown */
.bm-account-dd-wrap { position: relative; }
.bm-account-dd {
  display: none;
  position: absolute;
  top: calc(100% + 12px);
  right: 0;
  width: 220px;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.12);
  padding: 16px 0;
  z-index: 1000;
}
.bm-account-dd--open { display: block; animation: bm-fadeIn 0.15s ease; }
.bm-account-dd__title {
  font-weight: 700;
  font-size: 16px;
  padding: 0 20px 12px;
  border-bottom: 1px solid rgba(0,0,0,0.06);
  margin-bottom: 4px;
}
.bm-account-dd__item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 20px;
  font-size: 14px;
  color: #000;
  text-decoration: none;
}
.bm-account-dd__item:hover { background: rgba(0,0,0,0.03); text-decoration: none; color: #000; }
.bm-account-dd__divider { height: 1px; background: rgba(0,0,0,0.06); margin: 4px 0; }
.bm-account-dd__logout { color: #000; font-weight: 500; }
.bm-account-dd__logout svg { flex-shrink: 0; }

/* Cart badge */
.bm-icon-badge-wrap { position: relative; }
.bm-icon-badge {
  position: absolute;
  top: -8px;
  right: -8px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 17px;
  background: #ed2939;
  color: #fff;
  font-size: 10px;
  font-weight: 500;
  line-height: 18px;
  text-align: center;
  pointer-events: none;
  display: none;
  box-sizing: border-box;
}
.bm-icon-badge.active { display: block; }

#cart-hidden {
  display: none;
}

.mainbar-nav {
  overflow-x: auto;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.mainbar-nav::-webkit-scrollbar { display: none; }
.mainbar-nav .nav-links {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 40px;
  padding-bottom: 6px;
}
.mainbar-nav .nav-links li { list-style: none; }
.mainbar-nav .nav-links li a {
  font-size: 16px;
  font-weight: 400;
  color: #000;
  text-decoration: none;
  white-space: nowrap;
  line-height: 24px;
  display: block;
  padding: 4px 0;
  position: relative;
}
.mainbar-nav .nav-links li a::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 1.5px;
  background: #000;
  transition: width 0.3s ease;
}
.mainbar-nav .nav-links li a:hover {
  color: #000;
}
.mainbar-nav .nav-links li a:hover::after {
  width: 100%;
}

/* Reduce gap between header and banner */
.swiper-viewport { margin-top: 12px !important; }
#common-home .swiper-viewport { margin-top: 40px !important; }

/* ---------- Catalog mega-menu ---------- */
#catalog-dropdown {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  z-index: 1050;
  background: #fff;
  border-top: 1px solid #e8e8e8;
  height: 560px;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-12px);
  pointer-events: none;
  visibility: hidden;
  transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s;
}
#catalog-dropdown.open {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
  visibility: visible;
}

.catalog-inner {
  display: flex;
  height: 100%;
  max-width: 1280px;
  margin: 0 auto;
}

/* Column 1 — category tabs with icons */
#catalog-tabs {
  flex-shrink: 0;
  overflow-y: auto;
  padding: 20px 8px;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
#catalog-tabs::-webkit-scrollbar { display: none; }

#catalog-tabs .cat-tab {
  display: flex;
  align-items: center;
  gap: 10px;
  width: max-content;
  min-height: 48px;
  border-radius: 12px;
  padding: 12px 12px 12px 16px;
  font-size: 16px;
  font-weight: 400;
  color: rgba(0,0,0,0.6);
  text-decoration: none;
  cursor: pointer;
  background: transparent;
  border: none;
  font-family: inherit;
  text-align: left;
  box-sizing: border-box;
  line-height: 1.5;
  white-space: nowrap;
  transition: background 0.15s ease, color 0.15s ease;
}
#catalog-tabs .cat-tab:hover {
  background: #f2f2f2;
  color: #000;
}
#catalog-tabs .cat-tab.active {
  background: #f2f2f2;
  color: #000;
  font-weight: 500;
}
.cat-tab-icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  color: currentColor;
}
.cat-tab-text {
  white-space: nowrap;
}
.cat-tab-arrow {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  opacity: 0;
  transition: opacity 0.15s ease;
}
#catalog-tabs .cat-tab.active .cat-tab-arrow {
  opacity: 1;
}

/* Separator */
.catalog-sep {
  width: 1px;
  flex-shrink: 0;
  background: #f2f2f2;
}

/* Column 2 — subcategories */
#catalog-panels {
  flex-shrink: 0;
  overflow-y: auto;
  padding: 20px;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
#catalog-panels::-webkit-scrollbar { display: none; }

/* Column 3 — sub-subcategories */
#catalog-subpanels {
  flex-shrink: 0;
  overflow-y: auto;
  padding: 20px;
  border-left: 1px solid #f2f2f2;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
#catalog-subpanels::-webkit-scrollbar { display: none; }
#catalog-subpanels:empty {
  display: none;
}

.cat-panel { display: none; }
.cat-panel.active { display: block; }
.cat-subpanel { display: none; }
.cat-subpanel.active { display: block; }

.cat-panel-title {
  font-size: 20px;
  font-weight: 600;
  color: #000;
  margin-bottom: 8px;
  line-height: 29px;
}
.cat-panel-title a {
  color: inherit;
  text-decoration: none;
}
.cat-panel-title a:hover { text-decoration: underline; }

.cat-panel-link {
  display: flex;
  align-items: center;
  height: 40px;
  padding: 8px 0;
  font-size: 16px;
  font-weight: 400;
  color: rgba(0,0,0,0.6);
  text-decoration: none;
  white-space: nowrap;
  border: none;
  background: transparent;
  transition: color 0.15s ease;
}
.cat-panel-link:hover { color: #000; }
.cat-panel-link.active { color: #000; font-weight: 500; }
.cat-link-arrow {
  width: 16px;
  height: 16px;
  margin-left: 6px;
  flex-shrink: 0;
  opacity: 0.4;
}
.cat-panel-link:hover .cat-link-arrow,
.cat-panel-link.active .cat-link-arrow { opacity: 1; }

/* ---------- Mobile header ---------- */
#mobile-header {
  display: none;
  align-items: center;
  justify-content: space-between;
  background: #fff;
  border-bottom: 1px solid #d9d9d9;
  height: 53px;
  padding: 0 16px;
}
.mobile-left {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.mobile-left button {
  background: none;
  border: none;
  padding: 0;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #000;
  font-size: 20px;
}
.mobile-left button .svg-icon {
  width: 24px;
  height: 24px;
}
.mobile-logo {
  flex: 1;
  text-align: center;
}
.mobile-logo a,
.mobile-logo span {
  font-size: 20px;
  font-weight: 700;
  text-transform: uppercase;
  color: #000;
  text-decoration: none;
  letter-spacing: 0;
}
.mobile-logo img {
  max-height: 32px;
  width: auto;
}
.mobile-right {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.btn-buyout-mobile {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #000;
  color: #fff !important;
  border: none;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 600;
  height: 28px;
  padding: 0 8px;
  text-decoration: none !important;
  white-space: nowrap;
  font-family: inherit;
}
.btn-buyout-mobile:hover { background: #333; color: #fff !important; }

.btn-chat-mobile {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  color: #1bb249;
  border: none;
  border-radius: 8px;
  width: 32px;
  height: 32px;
  cursor: pointer;
  flex-shrink: 0;
  padding: 0;
  text-decoration: none;
}
.btn-chat-mobile .svg-icon { width: 24px; height: 24px; }
.btn-chat-mobile:hover { color: #189940; }

/* ---------- Mobile search panel ---------- */
#mobile-search-panel {
  background: #fff;
  border-bottom: 1px solid #d9d9d9;
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  padding: 0 16px;
  transition: max-height 0.3s ease, opacity 0.25s ease, padding 0.3s ease;
}
#mobile-search-panel.open {
  max-height: 70px;
  opacity: 1;
  padding: 8px 16px 12px;
}
#mobile-search-panel #search.input-group {
  margin-bottom: 0;
  border: 1px solid rgba(0,0,0,0.2);
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  flex-wrap: nowrap;
  height: 40px;
  background: #fff;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
#mobile-search-panel #search .form-control {
  border: none !important;
  box-shadow: none !important;
  height: 38px !important;
  font-size: 14px;
  padding: 0 12px;
  font-family: inherit;
  border-radius: 0 !important;
  flex: 1;
  background: transparent;
}
#mobile-search-panel #search .input-group-btn {
  width: auto;
  flex-shrink: 0;
}
#mobile-search-panel #search .btn {
  background: #000 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 0 7px 7px 0 !important;
  height: 100% !important;
  min-height: 38px;
  width: 48px;
  font-size: 16px;
  padding: 0;
  margin: 0 !important;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: none !important;
  position: static !important;
  transition: background 0.2s ease;
}
#mobile-search-panel #search .btn .svg-icon { width: 18px; height: 18px; }
#mobile-search-panel #search.input-group:focus-within {
  border-color: #000;
  box-shadow: 0 0 0 1px #000;
}

/* ---------- Mobile drawer ---------- */
#mobile-drawer {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: 360px;
  max-width: 92vw;
  background: #fff;
  z-index: 2000;
  overflow: hidden;
  transform: translateX(-100%);
  transition: transform 0.28s ease;
  box-shadow: 4px 0 24px rgba(0,0,0,0.18);
}
#mobile-drawer.open { transform: translateX(0); }

.drawer-scroll {
  height: 100%;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}

#drawer-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.4);
  z-index: 1999;
}
#drawer-overlay.open { display: block; }

/* Top bar */
.drawer-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px 12px;
  flex-shrink: 0;
}
.drawer-logo {
  font-size: 18px;
  font-weight: 700;
  color: #000;
  text-decoration: none;
  letter-spacing: 0.02em;
}
.drawer-top-right {
  display: flex;
  align-items: center;
  gap: 10px;
}
.drawer-concierge {
  background: #000;
  color: #fff;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.35;
  padding: 3px 6px;
  border-radius: 4px;
}
.drawer-chat {
  display: flex;
  align-items: center;
  color: #25d366;
  text-decoration: none;
}
.drawer-chat .svg-icon { width: 24px; height: 24px; }
.drawer-close-btn {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  display: flex;
  align-items: center;
  color: #000;
}
.drawer-close-btn .svg-icon { width: 20px; height: 20px; }

/* Category tabs */
.drawer-tabs-nav {
  display: flex;
  gap: 20px;
  padding: 0 20px;
  border-bottom: 1px solid #e5e5e5;
  overflow-x: auto;
  scrollbar-width: none;
  flex-shrink: 0;
}
.drawer-tabs-nav::-webkit-scrollbar { display: none; }
.drawer-tab {
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  padding: 8px 0;
  font-size: 16px;
  font-weight: 400;
  color: #000;
  text-transform: uppercase;
  white-space: nowrap;
  opacity: 0.6;
  transition: opacity 0.15s, border-color 0.15s;
  margin-bottom: -1px;
  flex-shrink: 0;
}
.drawer-tab.active {
  opacity: 1;
  border-bottom-color: #000;
}

/* Panels */
.drawer-panels-wrap {
  position: relative;
  flex-shrink: 0;
}
.drawer-panel {
  display: none;
  padding: 0 20px;
}
.drawer-panel.active { display: block; }

/* Links */
.drawer-link {
  display: flex;
  align-items: center;
  padding: 8px 0;
  font-size: 16px;
  line-height: 1.5;
  color: #000;
  text-decoration: none;
  width: 100%;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
}
.drawer-link-arr {
  margin-left: auto;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  opacity: 0.4;
}

/* Sub-panel (slides over full drawer) */
.drawer-subpanel {
  position: absolute;
  inset: 0;
  background: #fff;
  transform: translateX(100%);
  transition: transform 0.25s ease;
  z-index: 10;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.drawer-subpanel.open { transform: translateX(0); }
.drawer-subpanel-head {
  display: flex;
  align-items: center;
  padding: 12px 20px;
  gap: 8px;
  border-bottom: 1px solid #e5e5e5;
  flex-shrink: 0;
}
.drawer-subpanel-back {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  display: flex;
  align-items: center;
  color: #000;
}
.drawer-subpanel-back .svg-icon { width: 20px; height: 20px; }
.drawer-subpanel-title {
  flex: 1;
  text-align: center;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.4;
}
.drawer-subpanel-close {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  display: flex;
  align-items: center;
  color: #000;
}
.drawer-subpanel-close .svg-icon { width: 20px; height: 20px; }
.drawer-subpanel-links {
  padding: 0 20px;
  overflow-y: auto;
  flex: 1;
}

/* Divider */
.drawer-divider {
  height: 1px;
  background: #e5e5e5;
  flex-shrink: 0;
}

/* Account (Личный кабинет) */
.drawer-lk {
  padding: 8px 20px 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex-shrink: 0;
}
.drawer-lk-title {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.45;
  color: #000;
  padding-top: 4px;
}
.drawer-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  border: 1px solid #000;
  width: 100%;
  background: none;
  font-family: inherit;
}
.drawer-btn--outline { color: #000; background: #fff; }
.drawer-btn--filled { color: #fff; background: #000; }

/* Region */
.drawer-region {
  padding: 16px 20px 20px;
  background: #f2f2f2;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex-shrink: 0;
}
.drawer-region-title {
  font-size: 18px;
  font-weight: 600;
  color: #000;
  line-height: 1.45;
}
.drawer-region-row {
  display: flex;
  align-items: center;
  gap: 10px;
  color: rgba(0,0,0,0.6);
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
  font-family: inherit;
  width: 100%;
  text-align: left;
}
.drawer-region-row svg:first-child { width: 24px; height: 24px; flex-shrink: 0; }
.drawer-region-name { flex: 1; font-size: 16px; line-height: 1.5; color: rgba(0,0,0,0.6); }
.drawer-region-arr { width: 16px; height: 16px; flex-shrink: 0; margin-left: auto; color: rgba(0,0,0,0.6); }

/* Region sub-panel */
.drawer-region-panel {
  position: absolute;
  inset: 0;
  background: #fff;
  z-index: 10;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.25s ease;
}
.drawer-region-panel.open {
  transform: translateX(0);
}
.drawer-region-panel__header {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 16px 20px;
  border-bottom: 1px solid rgba(0,0,0,0.1);
  height: 56px;
  flex-shrink: 0;
}
.drawer-region-panel__back,
.drawer-region-panel__close {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  color: #000;
}
.drawer-region-panel__back svg,
.drawer-region-panel__close svg {
  width: 24px;
  height: 24px;
}
.drawer-region-panel__title {
  flex: 1;
  font-size: 18px;
  font-weight: 600;
  color: #000;
  text-align: center;
  line-height: 1.45;
}
.drawer-region-panel__list {
  display: flex;
  flex-direction: column;
  padding: 20px 20px 0;
  overflow-y: auto;
  flex: 1;
}
.drawer-region-panel__item {
  display: flex;
  align-items: center;
  padding: 8px 0;
  background: none;
  border: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 16px;
  font-weight: 400;
  color: #000;
  text-align: left;
  width: 100%;
}
.drawer-region-panel__item:hover {
  color: rgba(0,0,0,0.6);
}

/* ---------- Mobile bottom tabbar ---------- */
#mobile-tabbar {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: 49px;
  background: #fff;
  border-top: 1px solid rgba(0,0,0,0.1);
  z-index: 1500;
}
.tabbar-inner {
  display: flex;
  height: 100%;
}
.tabbar-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: #000;
  background: none;
  border: none;
  border-top: 2px solid transparent;
  padding: 0;
  cursor: pointer;
  font-size: 0; /* hide any text */
}
.tabbar-item .svg-icon {
  width: 24px;
  height: 24px;
  color: #000;
  display: block;
}
.tabbar-item.active {
  border-top: 2px solid #000;
}

body.has-tabbar { padding-bottom: 49px; }

/* ---------- Brands ticker ---------- */
.brands-ticker-wrap {
  overflow: hidden;
  height: 40px;
  display: flex;
  align-items: center;
  margin-top: 60px;
  margin-bottom: 60px;
}
.brands-ticker-track {
  display: flex;
  align-items: center;
  animation: brandsTicker 120s linear infinite;
  will-change: transform;
}
@media (hover: hover) {
  .brands-ticker-track:hover {
    animation-play-state: paused;
  }
}
.brand-item {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  padding: 0 27px; /* gap/2 = 54px/2 */
}
.brand-item img {
  height: 40px;
  width: auto;
  transition: opacity 0.2s;
}
@keyframes brandsTicker {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ---------- Slideshow ---------- */
.slideshow.swiper-viewport {
  border-radius: 0 !important;
  overflow: visible !important;
  margin-top: 40px !important;
  margin-bottom: 0 !important;
  box-shadow: none !important;
  border: none !important;
  background: transparent !important;
}
.slideshow .swiper-container {
  border-radius: 24px !important;
  overflow: hidden !important;
}

.slideshow .swiper-button-next,
.slideshow .swiper-button-prev {
  display: none !important;
}

.slideshow .swiper-pagination {
  position: relative !important;
  bottom: auto !important;
  left: 0 !important;
  right: 0 !important;
  text-align: center !important;
  padding: 20px 0 0 !important;
}
.slideshow .swiper-pagination-bullet {
  width: 24px !important;
  height: 3px !important;
  border-radius: 1px !important;
  background: rgba(0,0,0,0.05) !important;
  opacity: 1 !important;
  margin: 0 3.5px !important;
  display: inline-block !important;
}
.slideshow .swiper-pagination-bullet-active {
  background: #000 !important;
}

/* Hero slide */
.bm-hero-slide {
  position: relative;
  width: 100%;
  height: 360px;
  border-radius: 24px;
  overflow: hidden;
  display: flex;
  align-items: center;
  padding: 85px 60px;
}
.bm-hero-slide__photo {
  position: absolute;
  top: 0;
  right: 0;
  width: 50%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  pointer-events: none;
}
.bm-hero-slide__content {
  position: relative;
  z-index: 2;
  max-width: 570px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.bm-hero-slide__title {
  font-size: 48px;
  font-weight: 700;
  line-height: 1.3;
  color: #fff;
  margin: 0;
}
.bm-hero-slide__desc {
  font-size: 20px;
  font-weight: 400;
  line-height: 1.5;
  color: #fff;
  margin: 0;
}
.bm-hero-slide__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 11px 24px;
  border: 1px solid #fff;
  border-radius: 8px;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.45;
  color: #fff;
  text-decoration: none;
  align-self: flex-start;
  transition: background 0.2s, color 0.2s;
}
.bm-hero-slide__btn:hover {
  background: #fff;
  color: #000;
  text-decoration: none;
}

/* ---------- Homepage layout ---------- */
#common-home {
  background: #fff;
}
#common-home .bm-container {
  max-width: 1280px;
  margin: 0 auto;
  padding-left: 8px;
  padding-right: 8px;
  display: flex;
  flex-direction: column;
}
#common-home .slideshow { order: 1; }
#common-home .slideshow + script { order: 1; }
#common-home .brands-ticker-wrap { order: 2; }
#common-home .bm-category-section { order: 3; }

.bm-product-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 20px;
}

/* ---------- Product card ---------- */
.bm-product-card {
  min-width: 0;
  min-height: 0;
}
.bm-card-image {
  position: relative;
  overflow: hidden;
  border-radius: 16px;
  background: #f2f2f2;
  padding: 10px;
}
.bm-card-image::before {
  content: '';
  display: block;
  padding-bottom: 111.48%; /* 340/305 ≈ 4-col Figma ratio */
}
.bm-card-image a {
  position: absolute;
  inset: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 16px;
  overflow: hidden;
}
.bm-card-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain;
  mix-blend-mode: darken;
  display: block;
  transition: transform 0.35s ease;
}
.bm-product-card:hover .bm-card-image img {
  transform: scale(1.04);
}

/* Wishlist heart — always visible, top-right */
.bm-card-wishlist {
  position: absolute;
  top: 10px;
  right: 10px;
  padding: 4px;
  background: none;
  border: none;
  cursor: pointer;
  color: #000;
  opacity: 0.2;
  transition: opacity 0.2s;
  z-index: 2;
}
.bm-card-wishlist:hover {
  opacity: 0.6;
}

/* Card info */
.bm-card-info {
  display: flex;
  flex-direction: column;
  padding-top: 20px;
}
.bm-card-brand {
  font-size: 16px;
  font-weight: 700;
  color: #000;
  line-height: 1.5;
  margin-bottom: 4px;
}
.bm-card-brand a {
  color: inherit;
  text-decoration: none;
}
.bm-card-name {
  font-size: 16px;
  font-weight: 400;
  color: #000;
  line-height: 1.5;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bm-card-name a {
  color: inherit;
  text-decoration: none;
}
a.bm-card-name {
  font-size: 16px;
  font-weight: 400;
  color: #000;
  line-height: 1.5;
  text-decoration: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
}
a.bm-card-name:hover {
  color: #000;
}
.bm-card-price {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 6px;
}
.bm-price-current {
  font-size: 18px;
  font-weight: 700;
  color: #000;
  line-height: 1.45;
}
.bm-price-old {
  font-size: 14px;
  font-weight: 500;
  color: #000;
  opacity: 0.6;
  text-decoration: line-through;
  line-height: 1.5;
}
.bm-price-discount {
  font-size: 12px;
  font-weight: 500;
  color: #ed2939;
  line-height: 1.5;
}

/* ---------- Footer ---------- */
.bm-footer {
  background: rgba(0,0,0,0.05);
  color: #000;
  margin-top: 100px;
  padding: 80px 0 100px;
}

/* Footer grid — 4 columns: brand(320px) + 3 flex */
.bm-footer-grid {
  display: grid;
  grid-template-columns: 320px 1fr 1fr 1fr;
  gap: 60px;
}

/* Col 1: Brand block */
.bm-footer-col--brand {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.bm-footer-top {
  display: flex;
  flex-direction: column;
  gap: 24px;
  flex: 1;
}
.bm-footer-brand {
  font-size: 32px;
  font-weight: 700;
  color: #000;
  text-transform: uppercase;
  letter-spacing: 1.28px;
  line-height: 30px;
}
.bm-footer-legal {
  font-size: 14px;
  color: #000;
  line-height: 1.4;
  margin: 0;
}
.bm-footer-bottom {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.bm-footer-social-block {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.bm-footer-label {
  font-size: 16px;
  font-weight: 600;
  color: #000;
  margin: 0;
  line-height: 1.5;
}
.bm-footer-socials {
  display: flex;
  gap: 16px;
  align-items: center;
}
.bm-social-icon {
  display: block;
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  transition: opacity 0.2s;
}
.bm-social-icon:hover { opacity: 0.7; }
.bm-social-icon img { display: block; width: 32px; height: 32px; }
.bm-footer-payments-block {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.bm-footer-payments__img {
  height: 24px;
  width: auto;
}

/* Footer columns — link sections */
.bm-footer-col--links {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.bm-footer-section {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.bm-footer-heading {
  font-size: 16px;
  font-weight: 600;
  color: #000;
  margin: 0;
  padding: 0;
  line-height: 1.5;
  background: none;
  border: none;
  text-align: left;
  font-family: inherit;
  cursor: default;
}
.bm-footer-chevron {
  display: none;
}
.bm-footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.bm-footer-links a {
  font-size: 14px;
  line-height: 1.4;
  color: #000;
  text-decoration: none;
  transition: color 0.15s;
}
.bm-footer-links a:hover {
  color: #555;
}

/* Newsletter (inside footer col 4) */
.bm-newsletter-form {
  display: flex;
  border: 1px solid #000;
  border-radius: 8px;
  overflow: hidden;
  margin-top: 4px;
  width: 100%;
}
.bm-newsletter-input {
  flex: 1;
  padding: 14px 16px;
  border: none;
  background: #fff;
  color: #000;
  font-size: 14px;
  font-family: inherit;
  outline: none;
  border-radius: 8px 0 0 8px;
}
.bm-newsletter-input::placeholder { color: rgba(0,0,0,0.6); }
.bm-newsletter-btn {
  padding: 14px 16px;
  background: #000;
  color: #fff;
  border: none;
  border-radius: 0 8px 8px 0;
  font-size: 14px;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  transition: background 0.2s;
  white-space: nowrap;
}
.bm-newsletter-btn:hover { background: #333; }
.bm-newsletter-desc {
  font-size: 14px;
  color: #000;
  margin: 12px 0 0;
  line-height: 1.4;
}

/* ---------- Breadcrumb ---------- */
ul.bm-breadcrumb {
  display: flex !important;
  align-items: center;
  flex-wrap: wrap;
  list-style: none !important;
  padding: 40px 0 0 !important;
  margin: 0 !important;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
}
ul.bm-breadcrumb li { display: inline-flex; align-items: center; }
ul.bm-breadcrumb li + li::before { content: '/'; margin: 0 6px; color: #000; }
ul.bm-breadcrumb li a { color: #000; text-decoration: none; }
ul.bm-breadcrumb li a:hover { color: #000; }
ul.bm-breadcrumb li:last-child a { color: rgba(0,0,0,0.6); pointer-events: none; }

/* ---------- Store card (manufacturer page) ---------- */
.bm-store-card {
  background: #f2f2f2;
  border-radius: 16px;
  padding: 24px 40px 32px;
  margin-top: 60px;
}
.bm-store-card__name {
  font-size: 32px;
  font-weight: 600;
  color: #000;
  line-height: 1.25;
  margin: 0;
}
.bm-store-card__desc {
  font-size: 16px;
  font-weight: 400;
  color: rgba(0,0,0,0.6);
  line-height: 1.5;
  margin: 8px 0 0;
}
.bm-store-card + .bm-catalog-head {
  margin-top: 24px;
}

/* ---------- Category Landing (parent categories) ---------- */
.bm-cat-hero {
  position: relative; width: 100%; border-radius: 24px;
  overflow: hidden; margin-top: 16px; margin-bottom: 40px;
}
.bm-cat-hero__bg {
  display: block; width: 100%; height: auto; border-radius: 24px;
}
.bm-cat-hero__overlay {
  position: absolute; inset: 0; z-index: 2;
  display: flex; flex-direction: column; justify-content: center;
  padding: 85px 60px; gap: 24px;
  max-width: 570px;
}
.bm-cat-hero__text {
  display: flex; flex-direction: column; gap: 8px;
}
.bm-cat-hero__title {
  font-size: 48px; font-weight: 700; color: #fff;
  margin: 0; line-height: 62.4px;
}
.bm-cat-hero__desc {
  font-size: 20px; font-weight: 400; color: #fff;
  line-height: 30px; margin: 0;
}
.bm-cat-hero__btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 11px 24px; border: none; outline: 1px solid #fff; outline-offset: -1px;
  border-radius: 8px; gap: 10px;
  font-size: 18px; font-weight: 600; line-height: 26.1px; color: #fff;
  text-decoration: none; text-align: center;
  background: transparent; cursor: pointer; width: fit-content;
}
.bm-cat-hero__btn:hover { background: rgba(255,255,255,0.15); }
/* Light-background hero variant (cats 16/26/27 — gray gradient) */
.bm-cat-hero--light .bm-cat-hero__title { color: #000; }
.bm-cat-hero--light .bm-cat-hero__desc  { color: rgba(0,0,0,0.7); }
.bm-cat-hero--light .bm-cat-hero__btn   { color: #000; outline-color: #000; }
.bm-cat-hero--light .bm-cat-hero__btn:hover { background: rgba(0,0,0,0.06); }

/* Subcategory circle pills */
.bm-cat-circles {
  display: flex; flex-wrap: wrap; gap: 24px; justify-content: center;
  padding: 0 0 48px;
}
.bm-cat-circle {
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  text-decoration: none; color: #000; flex-shrink: 0; width: 130px;
}
.bm-cat-circle:hover { color: rgba(0,0,0,0.6); }
.bm-cat-circle__img {
  width: 100px; height: 100px; border-radius: 50%;
  background: #f2f2f2; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.bm-cat-circle__img img {
  width: 75%; height: 75%; object-fit: contain; object-position: center;
}
.bm-cat-circle__name {
  font-size: 14px; font-weight: 500; line-height: 1.4;
  text-align: center; max-width: 100px;
}

/* ---------- Catalog page ---------- */
.bm-catalog-head {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 16px;
}
.bm-catalog-title-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
}
.bm-catalog-title {
  font-size: 32px;
  font-weight: 600;
  color: #000;
  margin: 0;
  line-height: 1.25;
}
.bm-catalog-count {
  font-size: 16px;
  font-weight: 500;
  color: rgba(0,0,0,0.6);
  line-height: 1.5;
}
.bm-catalog-desc {
  font-size: 14px;
  color: #666;
  line-height: 1.6;
}

/* Filter bar */
.bm-filter-bar {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-top: 24px;
  margin-bottom: 40px;
}
.bm-filter-bar__pills {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 0;
  flex-wrap: wrap;
}
.bm-fpill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 40px;
  padding: 0 12px;
  background: rgba(0,0,0,0.05);
  border: none;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 400;
  color: #000;
  white-space: nowrap;
  cursor: pointer;
  flex-shrink: 0;
  font-family: inherit;
  transition: background 0.2s;
}
.bm-fpill:hover { background: rgba(0,0,0,0.1); }
.bm-fpill--all { position: relative; }
.bm-fpill--all svg { flex-shrink: 0; }
.bm-fpill__badge {
  position: absolute;
  top: -5px;
  right: -5px;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  background: #ed2939;
  color: #fff;
  font-size: 10px;
  font-weight: 500;
  line-height: 18px;
  text-align: center;
  border-radius: 17px;
}

/* Active filter tag */
.bm-fpill--active {
  background: rgba(0,0,0,0.15);
}
.bm-fpill--active:hover { background: rgba(0,0,0,0.2); }
.bm-fpill__divider {
  width: 1px;
  height: 100%;
  background: rgba(0,0,0,0.2);
  align-self: stretch;
}
.bm-fpill__close {
  flex-shrink: 0;
  opacity: 0.6;
  transition: opacity 0.2s;
}
.bm-fpill--active:hover .bm-fpill__close { opacity: 1; }

/* ===== Filter Sidebar ===== */
.bm-foverlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.4);
  z-index: 1050;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
}
.bm-foverlay.open { opacity: 1; visibility: visible; }

.bm-fsidebar {
  position: fixed;
  top: 0;
  left: 0;
  width: 332px;
  height: 100%;
  background: #fff;
  z-index: 1051;
  display: flex;
  flex-direction: column;
  transform: translateX(-100%);
  transition: transform 0.3s ease;
}
.bm-fsidebar.open { transform: translateX(0); }

.bm-fsidebar__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 30px;
  border-bottom: 1px solid rgba(0,0,0,0.1);
  flex-shrink: 0;
}
.bm-fsidebar__title {
  font-size: 24px;
  font-weight: 600;
  color: #000;
  line-height: 1.35;
}
.bm-fsidebar__close {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  color: #000;
  opacity: 0.6;
  transition: opacity 0.2s;
}
.bm-fsidebar__close:hover { opacity: 1; }

.bm-fsidebar__body {
  flex: 1;
  overflow-y: auto;
  padding: 0 16px;
}

/* Sidebar sections */
.bm-fsection {
  padding: 12px 0;
}
.bm-fsection--row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 20px;
}
.bm-fsection__label {
  font-size: 16px;
  font-weight: 500;
  color: #000;
  line-height: 1.5;
}
.bm-fsection__title {
  font-size: 16px;
  font-weight: 500;
  color: #000;
  line-height: 1.5;
  padding: 0 20px;
  margin-bottom: 10px;
}
.bm-fsection__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 0 20px;
  margin-bottom: 10px;
  background: none;
  border: none;
  cursor: pointer;
  font-family: inherit;
}
.bm-fsection__head .bm-fsection__title {
  padding: 0;
  margin: 0;
}
.bm-fsection__chevron {
  flex-shrink: 0;
  transition: transform 0.2s;
}
.bm-fsection.collapsed .bm-fsection__chevron { transform: rotate(-90deg); }
.bm-fsection.collapsed .bm-fsection__list { display: none; }

.bm-fsection__list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 0 20px;
  max-height: 280px;
  overflow-y: auto;
}
.bm-fsection__list::-webkit-scrollbar { width: 3px; }
.bm-fsection__list::-webkit-scrollbar-track { background: transparent; }
.bm-fsection__list::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.15); border-radius: 3px; }

/* Checkbox items */
.bm-fcheck {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  text-decoration: none;
  color: inherit;
}
.bm-fcheck:hover { text-decoration: none; color: inherit; }
.bm-fcheck input[type="checkbox"] { display: none; }
.bm-fcheck__box {
  width: 24px;
  height: 24px;
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 4px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.bm-fcheck__box svg { display: none; }
.bm-fcheck input:checked ~ .bm-fcheck__box svg { display: block; }
.bm-fcheck__text {
  font-size: 16px;
  font-weight: 400;
  color: #000;
  opacity: 0.6;
  line-height: 1.5;
}
.bm-fcheck input:checked ~ .bm-fcheck__text { opacity: 1; }
/* For <a> links (categories) — no input, always unchecked look */
a.bm-fcheck .bm-fcheck__text { opacity: 0.6; }
a.bm-fcheck:hover .bm-fcheck__text { opacity: 1; }

/* Price inputs */
.bm-fprice {
  display: flex;
  gap: 10px;
  padding: 0 20px;
}
.bm-fprice__col {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.bm-fprice__label {
  font-size: 14px;
  font-weight: 500;
  color: #000;
  opacity: 0.6;
  line-height: 1.4;
}
.bm-fprice__input {
  width: 100%;
  height: 36px;
  padding: 0 16px;
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 8px;
  font-size: 14px;
  font-family: inherit;
  color: rgba(0,0,0,0.6);
  outline: none;
}
.bm-fprice__input:focus { border-color: rgba(0,0,0,0.3); }

/* Toggle switch */
.bm-toggle {
  position: relative;
  cursor: pointer;
  margin: 0;
}
.bm-toggle input { display: none; }
.bm-toggle__track {
  display: block;
  width: 40px;
  height: 24px;
  background: rgba(0,0,0,0.15);
  border-radius: 12px;
  position: relative;
  transition: background 0.2s;
}
.bm-toggle__thumb {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 20px;
  height: 20px;
  background: #fff;
  border-radius: 50%;
  transition: transform 0.2s;
}
.bm-toggle input:checked + .bm-toggle__track { background: #000; }
.bm-toggle input:checked + .bm-toggle__track .bm-toggle__thumb { transform: translateX(16px); }

/* Sidebar footer */
.bm-fsidebar__footer {
  flex-shrink: 0;
  padding: 20px;
  border-top: 1px solid rgba(0,0,0,0.1);
}
.bm-fsidebar__count {
  display: block;
  text-align: center;
  font-size: 14px;
  font-weight: 400;
  color: #000;
  opacity: 0.6;
  margin-bottom: 10px;
}
.bm-fsidebar__buttons {
  display: flex;
  gap: 10px;
}
.bm-fbtn {
  flex: 1;
  height: 44px;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 500;
  font-family: inherit;
  cursor: pointer;
  border: none;
  transition: opacity 0.2s;
}
.bm-fbtn:hover { opacity: 0.85; }
.bm-fbtn--primary { background: #000; color: #fff; }
.bm-fbtn--outline { background: #fff; color: rgba(0,0,0,0.6); border: 1px solid rgba(0,0,0,0.1); }


/* ===== Sale Toggle (in filter bar) ===== */
.bm-sale-toggle {
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  margin: 0;
  flex-shrink: 0;
  height: 40px;
  padding: 0;
}
.bm-sale-toggle input { display: none; }
.bm-sale-toggle__text {
  font-size: 16px;
  font-weight: 400;
  color: #000;
  line-height: 1.5;
  white-space: nowrap;
}
.bm-sale-toggle__track {
  display: block;
  width: 33px;
  height: 20px;
  background: rgba(0,0,0,0.15);
  border-radius: 10px;
  position: relative;
  transition: background 0.2s;
  flex-shrink: 0;
}
.bm-sale-toggle__thumb {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 16px;
  height: 16px;
  background: #fff;
  border-radius: 50%;
  transition: transform 0.2s;
}
.bm-sale-toggle input:checked + .bm-sale-toggle__track { background: #000; }
.bm-sale-toggle input:checked + .bm-sale-toggle__track .bm-sale-toggle__thumb { transform: translateX(13px); }

/* ===== Inline Dropdown Panels ===== */
.bm-dd-layer {
  position: relative;
  z-index: 100;
}
.bm-dd-panel {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 300px;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.08);
  overflow: hidden;
  padding-top: 12px;
  z-index: 101;
}
.bm-dd-panel.open { display: flex; flex-direction: column; }

.bm-dd-search {
  padding: 8px 20px;
}
.bm-dd-search__input {
  width: 100%;
  height: 40px;
  padding: 0 16px;
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 8px;
  font-size: 14px;
  font-family: inherit;
  color: #000;
  outline: none;
  background: #fff;
}
.bm-dd-search__input::placeholder { color: rgba(0,0,0,0.6); }
.bm-dd-search__input:focus { border-color: rgba(0,0,0,0.3); }

.bm-dd-scroll {
  max-height: 320px;
  overflow-y: auto;
  padding: 8px 20px 16px;
}
.bm-dd-scroll--auto { max-height: none; }
.bm-dd-scroll::-webkit-scrollbar { width: 3px; }
.bm-dd-scroll::-webkit-scrollbar-track { background: transparent; }
.bm-dd-scroll::-webkit-scrollbar-thumb { background: #000; border-radius: 2px; }

.bm-dd-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.bm-dd-footer {
  display: flex;
  gap: 10px;
  padding: 20px;
  border-top: 1px solid rgba(0,0,0,0.1);
}

/* Sort pill override — remove native select */
.bm-fpill--sort { flex-shrink: 0; }

/* Sort dropdown — no footer buttons, positioned below pill */
.bm-dd-panel--sort { padding: 12px 0; top: 100%; margin-top: 8px; left: 0; }
.bm-dd-panel--sort .bm-dd-scroll { padding: 8px 20px; }

/* Radio buttons (sort) */
.bm-fradio {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
}
.bm-fradio input { display: none; }
.bm-fradio__circle {
  width: 24px;
  height: 24px;
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 100px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.bm-fradio__circle::after {
  content: '';
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #000;
  display: none;
}
.bm-fradio input:checked ~ .bm-fradio__circle { border-color: #000; }
.bm-fradio input:checked ~ .bm-fradio__circle::after { display: block; }
.bm-fradio__text {
  font-size: 16px;
  font-weight: 400;
  color: #000;
  opacity: 0.6;
  line-height: 1.5;
}
.bm-fradio input:checked ~ .bm-fradio__text { opacity: 1; }

/* Active filter pill (darker bg) */
.bm-fpill--dd.active { background: rgba(0,0,0,0.12); }

/* Catalog grid override — 4 columns per Figma */
.bm-product-grid--catalog {
  grid-template-columns: repeat(4, 1fr);
  column-gap: 20px;
  row-gap: 40px;
}
/* Related products — 5 columns per Figma */
.bm-product-grid--related {
  grid-template-columns: repeat(5, 1fr);
  gap: 20px;
}

/* Pagination (Figma style) */
.bm-pagination {
  display: flex;
  align-items: center;
  margin: 60px 0 16px;
}
.bm-pagination .pagination {
  display: flex;
  gap: 8px;
  flex: 1;
  margin: 0;
  padding: 0;
  list-style: none;
}
.bm-pagination .pagination > li > a,
.bm-pagination .pagination > li > span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 8px !important;
  color: #000;
  font-size: 16px;
  font-weight: 400;
  margin: 0;
  padding: 0;
  transition: all 0.2s;
  background: #fff;
}
.bm-pagination .pagination > li > a:hover {
  background: #000;
  color: #fff;
  border-color: #000;
}
.bm-pagination .pagination > .active > a,
.bm-pagination .pagination > .active > span {
  background: #000 !important;
  border-color: #000 !important;
  color: #fff !important;
}
.bm-pagination .pagination > li > a svg,
.bm-pagination .pagination > li > span svg {
  display: block;
}
.bm-pagination .pagination > .ellipsis > span {
  border: none;
  background: transparent;
  pointer-events: none;
}

/* Page selector (right side) */
.bm-pg-selector {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
  flex-shrink: 0;
}
.bm-pg-selector__label,
.bm-pg-selector__total {
  font-size: 16px;
  font-weight: 400;
  color: #000;
  white-space: nowrap;
}
.bm-pg-selector__field {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 44px;
  padding: 0 16px;
  border: 1px solid #ddd;
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
  position: relative;
  user-select: none;
}
.bm-pg-selector__value {
  font-size: 16px;
  color: #000;
}
.bm-pg-dropdown {
  position: absolute;
  bottom: 100%;
  left: 0;
  right: 0;
  max-height: 240px;
  overflow-y: auto;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 8px;
  margin-bottom: 4px;
  box-shadow: 0 4px 16px rgba(0,0,0,0.1);
  z-index: 10;
}
.bm-pg-dropdown__item {
  display: block;
  padding: 8px 16px;
  font-size: 16px;
  color: #000;
  cursor: pointer;
  text-decoration: none;
}
.bm-pg-dropdown__item:hover {
  background: rgba(0,0,0,0.05);
}

/* Product page form controls (moved from toolbar section) */
.bm-select {
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 8px;
  padding: 10px 16px;
  font-size: 16px;
  font-family: inherit;
  color: #000;
  background: #fff;
  cursor: pointer;
  outline: none;
  transition: border-color 0.2s;
}
.bm-select:focus { border-color: #000; }
.bm-select--full {
  width: 320px;
  max-width: 100%;
  height: 48px;
  padding: 10px 40px 10px 16px;
  font-size: 16px;
  font-weight: 400;
  color: #000;
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 8px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='rgba(0,0,0,0.6)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 16px center;
  background-size: 16px 16px;
}
.bm-product-info .form-control {
  width: 320px;
  max-width: 100%;
  height: 48px;
  padding: 10px 16px;
  font-size: 16px !important;
  color: #000;
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 8px;
  box-shadow: none;
  font-family: inherit;
}
.bm-product-info textarea.form-control {
  height: auto;
  min-height: 100px;
  padding: 12px 16px;
}
.bm-product-info .form-control:focus {
  border-color: #000;
  box-shadow: none;
}
.bm-product-info .radio label,
.bm-product-info .checkbox label {
  font-size: 16px;
  color: #000;
  font-weight: 400;
  padding-left: 8px;
}
.bm-product-info .radio,
.bm-product-info .checkbox {
  margin: 8px 0;
}
.bm-product-info .radio input[type="radio"],
.bm-product-info .checkbox input[type="checkbox"] {
  margin-top: 4px;
}
.bm-product-info .input-group {
  width: 320px;
  max-width: 100%;
}
.bm-product-info .input-group .form-control {
  border-radius: 8px 0 0 8px;
}
.bm-product-info .input-group .btn {
  height: 48px;
  border: 1px solid rgba(0,0,0,0.1);
  border-left: none;
  border-radius: 0 8px 8px 0;
  background: #fff;
  color: rgba(0,0,0,0.6);
  box-shadow: none;
}
.bm-product-info .input-group .btn:hover {
  background: #f5f5f5;
}
.bm-product-info .input-group-btn {
  width: auto;
}
.bm-product-info .btn-block {
  width: 320px;
  max-width: 100%;
  height: 48px;
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 8px;
  background: #fff;
  color: #000;
  font-size: 16px;
  font-family: inherit;
  box-shadow: none;
}
.bm-product-info .btn-block:hover {
  background: #f5f5f5;
}

/* Empty state */
.bm-empty {
  text-align: center;
  padding: 60px 0;
}
.bm-empty p { font-size: 16px; color: #666; margin-bottom: 20px; }
.bm-btn-primary {
  display: inline-block;
  background: #000;
  color: #fff !important;
  padding: 12px 32px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: background 0.2s;
  font-family: inherit;
}
.bm-btn-primary:hover { background: #333; }

/* ---------- Product page ---------- */
.bm-product-page {
  display: grid;
  grid-template-columns: 1fr 560px;
  gap: 40px;
  margin-top: 60px;
  margin-bottom: 40px;
}

/* Gallery — thumbnails left + main image right (VESTIAR layout) */
.bm-gallery-grid {
  display: flex;
  flex-direction: row;
  gap: 20px;
  align-items: flex-start;
}
.bm-gallery-thumbs {
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: center;
  justify-content: center;
  width: 145px;
  flex-shrink: 0;
  align-self: stretch;
}
.bm-gallery-thumb {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 133px;
  height: 133px;
  border-radius: 8px;
  background: rgba(0,0,0,0.05);
  overflow: hidden;
  cursor: pointer;
  flex-shrink: 0;
}
.bm-gallery-thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  mix-blend-mode: multiply;
  opacity: 0.5;
}
.bm-gallery-thumb.active {
  width: 145px;
  height: 144px;
  border: 1px solid #000;
  border-radius: 12px;
  background: transparent;
}
.bm-gallery-thumb.active img {
  opacity: 1;
  padding: 6px;
  border-radius: 8px;
}
.bm-gallery-main {
  flex: 1;
  position: relative;
  height: 440px;
  border-radius: 24px;
  overflow: hidden;
  background: #fff;
}
.bm-gallery-main img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.bm-gallery-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  z-index: 2;
}
.bm-gallery-arrow--prev { left: 24px; opacity: 0.6; }
.bm-gallery-arrow--next { right: 32px; }
.bm-gallery-arrow svg { width: 24px; height: 24px; fill: none; stroke: #000; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* Product info */
.bm-product-info {
  position: sticky;
  top: 0;
  align-self: start;
}
.bm-product-brand {
  font-size: 32px;
  font-weight: 700;
  color: #000;
  line-height: 1.25;
  margin-bottom: 4px;
}
.bm-product-brand a { color: #000; text-decoration: none; }
.bm-product-brand a:hover { color: #555; }
.bm-product-title {
  font-size: 24px;
  font-weight: 400;
  color: #000;
  margin: 0 0 8px;
  line-height: 1.35;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bm-product-meta {
  display: none;
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 16px;
  color: #666;
}
.bm-product-meta li { margin-bottom: 4px; }
.bm-product-meta li span { color: #666; }

/* Article number */
.bm-product-article {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 16px;
  color: rgba(0,0,0,0.6);
  margin-bottom: 20px;
}
.bm-article-value { color: #000; }
.bm-article-copy {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  color: rgba(0,0,0,0.4);
  display: flex;
  align-items: center;
  transition: color 0.2s;
}
.bm-article-copy:hover { color: #000; }

.bm-product-pricing { margin-bottom: 20px; }
.bm-price-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
}
.bm-price-was {
  font-size: 16px;
  font-weight: 500;
  color: #000;
  opacity: 0.6;
  text-decoration: line-through;
  order: 1;
}
.bm-price-discount {
  font-size: 14px;
  font-weight: 500;
  color: #ed2939;
  order: 2;
}
.bm-price-main {
  font-size: 24px;
  font-weight: 700;
  color: #000;
  line-height: 1.3;
}
.bm-price-tax {
  font-size: 14px;
  font-weight: 500;
  color: #000;
  margin-top: 4px;
}

.bm-product-rating {
  display: none;
}
.bm-rating-link { font-size: 13px; color: #999; text-decoration: none; }
.bm-rating-link:hover { color: #000; }

.bm-product-options { margin-bottom: 16px; }
.bm-option-label {
  display: block;
  font-size: 16px;
  font-weight: 700;
  color: #000;
  margin-bottom: 8px;
}

.bm-cart-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
  max-width: 320px;
}

.bm-btn-cart {
  flex: 1;
  height: 48px;
  background: #000;
  color: #fff;
  border: 1px solid #000;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 500;
  cursor: pointer;
  font-family: inherit;
  transition: background 0.2s;
}
.bm-btn-cart:hover { background: #333; }

.bm-btn-wish {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  background: #000;
  color: #fff;
  border: 1px solid #000;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.2s;
  flex-shrink: 0;
}
.bm-btn-wish:hover { background: #333; }
.bm-btn-wish svg { stroke: #fff; }

/* Delivery info */
.bm-delivery-info {
  padding-top: 0;
}
.bm-delivery-heading {
  font-size: 20px;
  font-weight: 600;
  color: #000;
  margin-bottom: 24px;
}
.bm-delivery-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.bm-delivery-list li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
  color: rgba(0,0,0,0.6);
  line-height: 1.5;
}
.bm-delivery-list li svg {
  flex-shrink: 0;
  color: rgba(0,0,0,0.6);
}
.bm-delivery-list li strong {
  font-weight: 700;
}
.bm-delivery-note {
  font-size: 16px;
  color: rgba(0,0,0,0.6);
  line-height: 1.5;
  margin-top: 16px;
}

/* Seller block */
.bm-seller-block {
  display: flex;
  align-items: center;
  gap: 30px;
  margin-top: 24px;
}
.bm-seller-info {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 10px;
}
.bm-seller-logo {
  width: 64px;
  height: 64px;
  border-radius: 75px;
  background: rgba(0,0,0,0.05);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  font-weight: 700;
  color: #000;
  flex-shrink: 0;
}
.bm-seller-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.bm-seller-name {
  font-size: 16px;
  font-weight: 400;
  color: #000;
}
.bm-seller-link {
  font-size: 14px;
  color: rgba(0,0,0,0.6);
}
.bm-seller-all {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 40px;
  padding: 0 16px;
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 8px;
  font-size: 14px;
  color: #000;
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
  transition: background 0.2s;
}
.bm-seller-all:hover { background: rgba(0,0,0,0.03); text-decoration: none; color: #000; }
.bm-seller-all svg { opacity: 0.6; }

/* Tabs */
.bm-tabs { margin-top: 40px; margin-bottom: 40px; }
.bm-tabs-nav {
  display: flex;
  gap: 60px;
  border-bottom: 1px solid rgba(0,0,0,0.1);
  margin-bottom: 0;
}
.bm-tab {
  padding: 12px 0;
  background: none;
  border: none;
  border-bottom: 1px solid transparent;
  margin-bottom: -1px;
  font-size: 20px;
  font-weight: 500;
  color: rgba(0,0,0,0.6);
  cursor: pointer;
  font-family: inherit;
  transition: color 0.2s, border-color 0.2s;
}
.bm-tab:hover { color: #000; }
.bm-tab.active { color: #000; border-bottom-color: #000; }
.bm-tab-content { display: none; font-size: 16px; line-height: 1.5; color: #000; max-width: 680px; padding-top: 40px; }
.bm-tab-content.active { display: block; }

/* Specification tab */
.bm-spec { display: flex; flex-direction: column; gap: 24px; }
.bm-spec-group { display: flex; flex-direction: column; gap: 16px; }
.bm-spec-group__title {
  font-size: 20px;
  font-weight: 600;
  color: #000;
  line-height: 1.5;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(0,0,0,0.1);
}
.bm-spec-rows { display: flex; flex-direction: column; gap: 20px; }
.bm-spec-row {
  display: flex;
  align-items: center;
  gap: 10px;
  line-height: 1.5;
}
.bm-spec-row__label {
  font-size: 16px;
  font-weight: 400;
  color: rgba(0,0,0,0.6);
  white-space: nowrap;
  flex-shrink: 0;
}
.bm-spec-row__dots {
  flex: 1;
  min-width: 20px;
  border-bottom: 1px dashed rgba(0,0,0,0.1);
  align-self: center;
  height: 0;
}
.bm-spec-row__value {
  font-size: 16px;
  font-weight: 400;
  color: #000;
  white-space: nowrap;
  flex-shrink: 0;
}

.bm-delivery-tab__heading {
  font-size: 24px;
  font-weight: 600;
  color: #000;
  line-height: 1.35;
  margin: 0 0 16px;
}
.bm-delivery-tab p {
  margin: 0 0 16px;
  font-size: 16px;
  line-height: 1.5;
  color: #000;
}
.bm-delivery-tab p:last-child { margin-bottom: 0; }

/* Size row (above options) */
.bm-size-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 320px;
  margin-bottom: 8px;
}
.bm-size-label {
  font-size: 16px;
  font-weight: 700;
  color: #000;
}
.bm-size-link {
  font-size: 16px;
  font-weight: 400;
  color: rgba(0,0,0,0.6);
  text-decoration: none;
  border-bottom: 1px dashed rgba(0,0,0,0.6);
}
.bm-size-link:hover { color: #000; border-bottom-color: #000; }

/* Color selector */
.bm-color-selector { margin-bottom: 20px; }
.bm-color-label {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}
.bm-color-label__title {
  font-size: 16px;
  font-weight: 700;
  color: #000;
}
.bm-color-label__value {
  font-size: 16px;
  font-weight: 400;
  color: rgba(0,0,0,0.6);
}
.bm-color-swatches {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}
.bm-color-swatch {
  cursor: pointer;
  display: block;
}
.bm-color-swatch input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.bm-color-swatch__frame {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  border-radius: 8px;
  background: rgba(0,0,0,0.05);
  overflow: hidden;
  border: 2px solid transparent;
  transition: border-color 0.2s;
}
.bm-color-swatch__frame img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  mix-blend-mode: multiply;
}
.bm-color-swatch__placeholder {
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0.1);
  border-radius: 6px;
}
.bm-color-swatch input:checked + .bm-color-swatch__frame {
  width: 70px;
  height: 70px;
  border: 1px solid #000;
  border-radius: 12px;
  padding: 3px;
}
.bm-color-swatch input:checked + .bm-color-swatch__frame img,
.bm-color-swatch input:checked + .bm-color-swatch__frame .bm-color-swatch__placeholder {
  border-radius: 8px;
}

/* Size selector (buttons) */
.bm-size-selector { margin-bottom: 20px; }
.bm-size-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.bm-size-btn {
  cursor: pointer;
  display: block;
}
.bm-size-btn input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.bm-size-btn span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 8px;
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 8px;
  font-size: 16px;
  font-weight: 400;
  color: #000;
  background: #fff;
  transition: border-color 0.2s, background 0.2s;
}
.bm-size-btn:hover span {
  border-color: rgba(0,0,0,0.3);
}
.bm-size-btn input:checked + span {
  border-color: #000;
  background: #000;
  color: #fff;
  font-weight: 500;
}

/* Size chart modal */
.bm-modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(4,4,4,0.4);
  padding: 20px;
  align-items: center;
  justify-content: center;
}
.bm-modal-overlay.active { display: flex; }
.bm-modal-card {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.08);
  padding: 30px;
  width: 100%;
  max-width: 640px;
  max-height: 90vh;
  overflow-y: auto;
  position: relative;
}
.bm-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}
.bm-modal-title {
  font-size: 32px;
  font-weight: 600;
  color: #000;
  margin: 0;
  line-height: 1.35;
}
.bm-modal-close {
  background: none;
  border: none;
  cursor: pointer;
  color: #000;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.bm-modal-close:hover { opacity: 0.6; }
.bm-size-table { width: 100%; }
.bm-size-table__head {
  display: flex;
  margin-bottom: 0;
}
.bm-size-table__head span {
  flex: 1;
  font-size: 16px;
  font-weight: 600;
  color: #000;
  text-align: center;
  padding: 8px 0;
}
.bm-size-table__row {
  display: flex;
}
.bm-size-table__row span {
  flex: 1;
  font-size: 16px;
  font-weight: 400;
  color: #000;
  text-align: center;
  padding: 8px 0;
}
.bm-size-table__row span:first-child {
  font-weight: 600;
}
.bm-size-table__row:nth-child(odd) {
  border-top: 1px solid rgba(0,0,0,0.1);
  border-bottom: 1px solid rgba(0,0,0,0.1);
}

.bm-tags { font-size: 13px; color: #666; margin-bottom: 20px; }
.bm-tags a { color: #333; text-decoration: none; }
.bm-tags a:hover { color: #000; text-decoration: underline; }

/* ---------- Category sections (homepage) ---------- */
.bm-category-section {
  padding: 60px 0 0;
}
.bm-category-section .bm-cat-banners {
  margin-bottom: 0;
}
.bm-category-section--banners-only {
  padding-bottom: 0;
}
.bm-cat-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 32px;
}
.bm-cat-title {
  font-size: 32px;
  font-weight: 600;
  color: #000;
  margin: 0 0 32px;
  line-height: 1.25;
}
.bm-cat-link {
  font-size: 14px;
  font-weight: 600;
  color: #000;
  text-decoration: none;
  white-space: nowrap;
}
.bm-cat-link:hover { opacity: 0.6; }
.bm-cat-banners {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.bm-cat-banners--2col {
  grid-template-columns: repeat(2, 1fr);
}
.bm-cat-banners--2col .bm-cat-banner {
  aspect-ratio: 630 / 320;
}
/* Banner card */
.bm-cat-banner {
  position: relative;
  display: block;
  aspect-ratio: 413 / 320;
  border-radius: 24px;
  overflow: hidden;
  text-decoration: none;
  color: #fff;
  transition: box-shadow 0.25s ease, transform 0.25s ease;
  background-size: cover;
  background-position: center;
}
.bm-cat-banner__photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
}
.bm-cat-banner:hover {
  box-shadow: 0 8px 32px rgba(0,0,0,0.18);
  transform: translateY(-2px);
  text-decoration: none;
}
.bm-cat-banner:focus,
.bm-cat-banner:active,
.bm-cat-banner:visited { text-decoration: none; }
.bm-cat-banner__overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 40px;
  max-width: 260px;
  justify-content: center;
  background: transparent;
  transition: background 0.25s ease;
}
/* Dark text variant (light gradient banners: Одежда, Сумки) */
.bm-cat-banner--dark { color: #000; }
.bm-cat-banner--dark .bm-cat-banner__title { color: #000; }
.bm-cat-banner--dark .bm-cat-banner__desc { color: rgba(0,0,0,0.7); }
.bm-cat-banner--dark .bm-cat-banner__link { color: #000; }
.bm-cat-banner--dark:hover,
.bm-cat-banner--dark:focus,
.bm-cat-banner--dark:visited { color: #000; }
.bm-cat-banner__title {
  font-size: 32px;
  font-weight: 700;
  line-height: 1.1;
  color: #fff;
  margin: 0;
}
.bm-cat-banner__desc {
  font-size: 18px;
  font-weight: 400;
  line-height: 1.5;
  color: rgba(255,255,255,0.90);
}
.bm-cat-banner__link {
  font-size: 18px;
  font-weight: 600;
  line-height: 26px;
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
  margin-top: 8px;
  align-self: flex-start;
}

/* Консьерж promo banner */
.bm-concierge-promo {
  margin-top: 60px;
  border-radius: 24px;
  overflow: hidden;
}
.bm-concierge-promo a {
  display: block;
  position: relative;
  text-decoration: none;
}
.bm-concierge-promo__bg {
  width: 100%;
  height: auto;
  display: block;
}
.bm-concierge-promo__text {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 16px;
  padding: 40px 60px;
  color: #fff;
  width: 760px;
}
.bm-concierge-promo__body {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.bm-concierge-promo__title {
  font-size: 32px;
  font-weight: 700;
  line-height: 1.1;
  margin: 0;
}
.bm-concierge-promo__desc {
  font-size: 18px;
  font-weight: 400;
  line-height: 1.5;
  margin: 0;
}
.bm-concierge-promo__link {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.45;
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
  align-self: flex-start;
}

/* Homepage product rows (Новинки / Скидки) */
.bm-home-row {
  margin-top: 40px;
}
.bm-home-row__head {
  display: flex;
  align-items: center;
  margin-bottom: 32px;
}
.bm-home-row__title {
  font-size: 28px;
  font-weight: 600;
  color: #000;
  margin: 0;
  line-height: 1.3;
}
.bm-home-row__link {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  font-size: 16px;
  font-weight: 500;
  color: rgba(0,0,0,0.6);
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.2s;
}
.bm-home-row__link:hover { color: #000; }
.bm-home-row__link svg { flex-shrink: 0; color: rgba(0,0,0,0.6); }
.bm-product-grid--home {
  grid-template-columns: repeat(5, 1fr);
}
.bm-product-grid--home .bm-card-image::before {
  padding-bottom: 116.67%; /* 280/240 — 5-col Figma ratio */
}
.bm-product-grid--home .bm-card-info {
  gap: 6px;
}
.bm-product-grid--home .bm-card-brand {
  margin-bottom: 0;
}
.bm-product-grid--home .bm-card-price {
  margin-top: 0;
}

/* ---------- App Store buttons ---------- */
.bm-app-buttons {
  display: flex;
  gap: 10px;
  margin-top: 40px;
}
.bm-app-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #000;
  border: none;
  color: #fff !important;
  text-decoration: none !important;
  padding: 10px 18px;
  border-radius: 8px;
  height: 48px;
  flex: 1;
  transition: background 0.2s;
}
.bm-app-btn:hover { background: #333; }
.bm-app-btn { opacity: 0.50; }
.bm-app-btn:hover { opacity: 0.65; }
.bm-app-btn svg { flex-shrink: 0; }
.bm-app-btn-text {
  display: flex;
  flex-direction: column;
  gap: 3px;
  line-height: 1;
}
.bm-app-btn-label {
  font-size: 10px;
  font-weight: 400;
}
.bm-app-btn-store {
  font-size: 17px;
  font-weight: 500;
  letter-spacing: -0.47px;
  white-space: nowrap;
}

/* ---------- Responsive ---------- */
@media (max-width: 991px) {
  .topbar-buyout-text { display: none; }
  .mainbar-icons .icon-btn { font-size: 18px; }
  .mainbar-icons .icon-btn .svg-icon { width: 20px; height: 20px; }
  .mainbar-top { gap: 12px; }
  .bm-hero-slide { height: 300px; padding: 48px 40px; }
  .bm-hero-slide__title { font-size: 36px; }
  .bm-hero-slide__desc { font-size: 16px; }
  .bm-product-grid { grid-template-columns: repeat(3, 1fr); gap: 12px; }
  .bm-product-grid--catalog { grid-template-columns: repeat(3, 1fr); row-gap: 32px; }
  .bm-cat-banners { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .bm-cat-banner { border-radius: 18px; }
  .bm-cat-banner__overlay { padding: 24px 28px; gap: 6px; max-width: 220px; }
  .bm-cat-banner__subtitle { font-size: 12px; }
  .bm-cat-banner__title { font-size: 22px; line-height: 1.1; }
  .bm-cat-banner__desc { font-size: 14px; line-height: 1.5; }
  .bm-cat-banner__link { font-size: 14px; line-height: 1.5; }
  .bm-cat-title { font-size: 26px; }
  .bm-category-section { padding: 48px 0 0; }
  .bm-home-row__title { font-size: 22px; }
  .bm-product-grid--home { grid-template-columns: repeat(3, 1fr); }
  .bm-cat-hero { border-radius: 18px; }
  .bm-cat-hero__overlay { padding: 40px 40px; gap: 16px; max-width: 420px; }
  .bm-cat-hero__title { font-size: 36px; }
  .bm-cat-hero__desc { font-size: 16px; }
  .bm-cat-circles { gap: 20px; padding-bottom: 36px; }
  .bm-cat-circle__img { width: 80px; height: 80px; }
  .bm-cat-circle__name { font-size: 13px; max-width: 80px; }
  .bm-footer { padding: 48px 0; }
  .bm-footer-grid { grid-template-columns: 1fr 1fr; gap: 28px 40px; }
  .bm-footer-col--brand { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 28px 40px; }
  .bm-footer-col--subscribe { grid-column: 1 / -1; max-width: 400px; }
  .bm-footer-top { flex: unset; }
  .bm-app-buttons { max-width: 320px; }
  .bm-product-page { grid-template-columns: 1fr 1fr; gap: 24px; }
  .bm-product-grid--related { grid-template-columns: repeat(4, 1fr); }
  .bm-catalog-title { font-size: 28px; }
  .bm-filter-bar { flex-wrap: wrap; }
}

@media (max-width: 767px) {
  #mobile-header { display: flex !important; }
  #mobile-drawer { display: block; }
  #mobile-tabbar { display: block; }

  body.has-tabbar { padding-bottom: 49px; }

  .bm-product-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .bm-product-grid--catalog { grid-template-columns: repeat(2, 1fr); column-gap: 10px; row-gap: 20px; }
  .bm-fsidebar { width: 100%; }
  .bm-dd-layer { display: none !important; }
  .bm-sale-toggle { display: none; }
  .bm-filter-bar { gap: 10px; flex-wrap: nowrap; }
  .bm-filter-bar__pills { gap: 8px; }
  .bm-fpill { font-size: 13px; height: 36px; padding: 0 10px; }

  /* === Category landing — container & overflow clip === */
  #product-category { overflow-x: clip; }
  #product-category .bm-container { padding-left: 20px; padding-right: 20px; }

  /* === Hero banner — fixed 240px height, cover image === */
  .bm-cat-hero { height: 240px; border-radius: 16px; margin-top: 8px; margin-bottom: 20px; }
  .bm-cat-hero__bg { position: absolute; inset: 0; height: 100%; object-fit: cover; border-radius: 0; }
  .bm-cat-hero__overlay { padding: 20px; gap: 20px; max-width: 100%; }
  .bm-cat-hero__title { font-size: 24px; line-height: 1.3; }
  .bm-cat-hero__desc { font-size: 16px; line-height: 1.5; }
  .bm-cat-hero__btn { padding: 10px 24px; font-size: 14px; border-radius: 8px; }

  /* === Circles — horizontal scroll (scoped to category landing) === */
  #product-category .bm-cat-circles { flex-wrap: nowrap; overflow-x: auto; gap: 4px; padding: 0 20px 28px; margin: 0 -20px; width: calc(100% + 40px); scrollbar-width: none; justify-content: flex-start; }
  #product-category .bm-cat-circles::-webkit-scrollbar { display: none; }
  .bm-cat-circle { width: 90px; flex-shrink: 0; gap: 10px; }
  .bm-cat-circle__img { width: 72px; height: 72px; }
  .bm-cat-circle__name { font-size: 12px; max-width: 90px; }

  /* === Section title & spacing === */
  .bm-cat-title { font-size: 22px; margin-bottom: 16px; }
  .bm-category-section { padding: 32px 0 0; }

  /* === Banners — horizontal scroll carousel (scoped to category landing) === */
  #product-category .bm-cat-banners { display: flex; flex-wrap: nowrap; overflow-x: auto; gap: 10px; padding: 0 20px 4px; margin: 0 -20px; width: calc(100% + 40px); scrollbar-width: none; }
  #product-category .bm-cat-banners::-webkit-scrollbar { display: none; }
  #product-category .bm-cat-banner { flex: 0 0 280px; aspect-ratio: 280 / 200; border-radius: 16px; }
  .bm-cat-banner__overlay { padding: 20px; gap: 6px; max-width: 200px; }
  .bm-cat-banner__subtitle { font-size: 11px; }
  .bm-cat-banner__title { font-size: 22px; line-height: 1.1; }
  .bm-cat-banner__desc { font-size: 14px; line-height: 1.5; }
  .bm-cat-banner__link { font-size: 14px; line-height: 1.5; }

  /* === Product rows === */
  .bm-home-row { margin-top: 24px; }
  .bm-home-row__head { margin-bottom: 20px; }
  .bm-home-row__title { font-size: 24px; line-height: 1.3; }
  .bm-home-row__link { font-size: 14px; }
  .bm-home-row__link svg { width: 20px; height: 20px; }
  .bm-product-grid--home { grid-template-columns: repeat(2, 1fr); column-gap: 10px; row-gap: 20px; }

  /* === Product cards === */
  .bm-card-image { border-radius: 12px; }
  .bm-card-info { padding-top: 12px; }
  .bm-card-brand { font-size: 14px; }
  a.bm-card-name { font-size: 14px; font-weight: 400; }
  .bm-price-current { font-size: 14px; }
  .bm-price-old { font-size: 12px; }
  .bm-catalog-title { font-size: 24px; }
  .bm-catalog-count { font-size: 14px; }
  .bm-filter-bar { margin-top: 16px; margin-bottom: 20px; }
  .bm-filter-pill { font-size: 13px; height: 36px; padding: 0 10px; }
  .bm-pagination .pagination > li > a,
  .bm-pagination .pagination > li > span { width: 36px; height: 36px; font-size: 14px; }
  .bm-product-page { grid-template-columns: 1fr; gap: 16px; }
  .bm-product-info { position: static; }
  .bm-gallery-grid { flex-direction: column; gap: 12px; }
  .bm-gallery-thumbs { flex-direction: row; width: 100%; align-self: auto; order: 2; }
  .bm-gallery-main { height: auto; aspect-ratio: 1/1; border-radius: 16px; order: 1; }
  .bm-gallery-thumb { width: 56px; height: 56px; border-radius: 6px; }
  .bm-gallery-thumb.active { width: 60px; height: 60px; border-radius: 8px; }
  .bm-product-brand { font-size: 24px; }
  .bm-product-title { font-size: 20px; white-space: normal; margin-bottom: 12px; }
  .bm-price-main { font-size: 20px; }
  .bm-price-was { font-size: 14px; }
  .bm-price-discount { font-size: 12px; }
  .bm-price-tax { font-size: 12px; }
  .bm-cart-row { flex-direction: row; align-items: center; max-width: 100%; }
  .bm-btn-cart { height: 40px; font-size: 14px; }
  .bm-btn-wish { width: 40px; height: 40px; }
  .bm-delivery-heading { font-size: 20px; }
  .bm-delivery-list li { font-size: 14px; }
  .bm-category-title { font-size: 22px; }
  .bm-toolbar { flex-direction: column; align-items: flex-start; gap: 8px; }
  .bm-toolbar-right { width: 100%; }
  .bm-select { flex: 1; }
  .bm-select--full { width: 100%; }
  .bm-product-info .form-control { width: 100%; }
  .bm-tab { padding: 10px 0; font-size: 16px; white-space: nowrap; }
  .bm-tabs { margin-bottom: 24px; }
  .bm-tabs-nav { gap: 20px; margin-bottom: 0; overflow-x: auto; flex-wrap: nowrap; }
  .bm-tab-content { padding-top: 24px; }
  .bm-spec-row__label, .bm-spec-row__value { font-size: 14px; }
  .bm-spec-group__title { font-size: 16px; }
  .bm-product-grid--related { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .bm-seller-block { flex-wrap: wrap; gap: 12px; }
  .bm-seller-all { margin-left: auto; }
  .bm-product-article { font-size: 14px; }
  .bm-delivery-note { font-size: 14px; }
  .bm-size-buttons { gap: 8px; }
  .bm-size-btn span { min-width: 36px; height: 36px; font-size: 14px; }
  .bm-color-swatches { gap: 10px; }
  .bm-color-swatch__frame { width: 52px; height: 52px; }
  .bm-color-swatch input:checked + .bm-color-swatch__frame { width: 56px; height: 56px; }
  .bm-size-row { flex-wrap: wrap; gap: 6px; }

  .bm-footer { margin-top: 40px; padding: 32px 0; }
  .bm-footer-grid { grid-template-columns: 1fr; gap: 0; }
  .bm-footer .bm-container { padding-left: 20px; padding-right: 20px; }
  .bm-footer-col--brand { display: flex; flex-direction: column; gap: 24px; grid-template-columns: none; }
  .bm-footer-top { flex: unset; gap: 16px; }
  .bm-footer-brand { font-size: 18px; line-height: 18px; letter-spacing: 0.72px; }
  .bm-footer-legal { font-size: 12px; line-height: 1.35; }
  .bm-footer-bottom { gap: 12px; }
  .bm-footer-social-block { gap: 12px; }
  .bm-footer-payments__img { height: 20px; }
  .bm-footer-col--links { gap: 0; padding-top: 16px; }
  .bm-footer-section { gap: 0; border-bottom: 1px solid rgba(0,0,0,0.1); }
  .bm-footer-section:first-child { border-top: 1px solid rgba(0,0,0,0.1); }
  .bm-footer-heading.bm-footer-accordion {
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    padding: 8px 0;
    width: 100%;
  }
  .bm-footer-chevron {
    display: block;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    transition: transform 0.25s;
    transform: rotate(90deg);
  }
  .bm-footer-accordion.open .bm-footer-chevron {
    transform: rotate(-90deg);
  }
  .bm-footer-links {
    display: none;
    padding-bottom: 12px;
  }
  .bm-footer-accordion.open + .bm-footer-links {
    display: flex;
  }
  .bm-footer-col--subscribe { padding-top: 16px; }
  .bm-footer-col--subscribe .bm-footer-heading { margin-bottom: 0; }
  .bm-newsletter-form { margin-top: 12px; height: 44px; }
  .bm-newsletter-input { padding: 12px 16px; }
  .bm-newsletter-btn { padding: 12px 16px; }
  .bm-newsletter-desc { font-size: 12px; line-height: 1.35; margin-top: 16px; }
  .bm-app-buttons { margin-top: 24px; }
  .bm-app-btn { flex: 1; width: auto; height: 44px; padding: 8px 10px; }
  .bm-app-btn-store { font-size: 14px; }

  /* Auth */
  .bm-auth-card {
    width: 100%;
    margin: 24px auto;
    padding: 16px;
  }
  .bm-auth-tabs { gap: 0; }
  .bm-auth-tab { flex: 1; width: auto; font-size: 16px; }
  .bm-gender-btns { width: 100%; }
  .bm-gender-btn { flex: 1; width: auto; }
  .bm-auth-buttons { flex-direction: column; }
  .bm-auth-buttons .bm-btn { width: 100%; }
  .bm-auth-overlay { padding: 0; align-items: flex-end; }
  .bm-auth-modal {
    width: 100%;
    max-height: 92vh;
    border-radius: 16px 16px 0 0;
    padding: 24px 16px;
  }
  .bm-auth-modal .bm-auth-tab { font-size: 16px; }
  .bm-auth-modal .bm-gender-btns { width: 100%; }
  .bm-auth-modal .bm-gender-btn { flex: 1; width: auto; }

  /* Cart */
  .bm-cart-title { font-size: 24px; line-height: 32px; margin-bottom: 24px; }
  .bm-cart-layout { flex-direction: column; gap: 24px; }
  .bm-cart-sidebar { width: 100%; position: static; }
  .bm-cart-item { gap: 12px; }
  .bm-cart-item__image { width: 100px; height: 100px; border-radius: 12px; padding: 8px; }
  .bm-cart-item__image img { max-width: 84px; max-height: 84px; }
  .bm-cart-item__brand { font-size: 16px; }
  .bm-cart-tooltip { width: 160px; font-size: 12px; }
  .bm-cart-item__price-row { flex-wrap: wrap; gap: 12px; }
  .bm-cart-item__prices { flex: unset; justify-content: flex-start; }
  .bm-cart-products__title { font-size: 20px; }
  .bm-cart-summary__title { font-size: 20px; }
  .bm-cart-empty { padding: 40px 0; }

  .bm-modal--sm { width: calc(100% - 32px); }
  .bm-modal--delete { width: calc(100% - 32px); }

  /* Search */
  .bm-search-bar { max-width: 100%; }
  .bm-search-bar__select { width: 140px; font-size: 13px; }
  .bm-search-options { flex-direction: column; gap: 12px; }

  /* Account */
  .bm-account-layout { flex-direction: column; gap: 0; }
  .bm-account-sidebar { width: 100%; position: static; margin-bottom: 24px; }
  .bm-account-title { font-size: 24px; line-height: 32px; margin-bottom: 24px; }
  .bm-account-cards { grid-template-columns: 1fr; }
  .bm-account-content-header { flex-direction: column; align-items: flex-start; gap: 16px; }
  .bm-address-list { grid-template-columns: 1fr; }
  .bm-address-form__row--2 { flex-direction: column; gap: 16px; }
  .bm-address-form-card { max-width: 100%; }
  .bm-form-actions { flex-direction: column-reverse; gap: 12px; }
  .bm-form-actions .bm-btn { width: 100%; }
  .bm-vfield { max-width: 100%; }
  .bm-balance-row { flex-direction: column; }
  .bm-tab-nav { overflow-x: auto; }
  .bm-banner-grid { flex-direction: column; }
  .bm-cancel-block { flex-direction: column; align-items: flex-start; }
  .bm-tracking-block { flex-direction: column; align-items: flex-start; }
  .bm-order-section__body--cols { flex-direction: column; gap: 16px; }
  .bm-passport-block { flex-direction: column; align-items: flex-start; }
  .bm-parcel__header { padding: 16px 20px; }
  .bm-order-product { padding: 16px 20px; }
  .bm-order-section { padding: 16px 20px; }
  .bm-order-totals { padding: 16px 20px; }
  .bm-stepper { padding: 16px 20px; }
  .bm-cancel-block { padding: 16px 20px; }
  .bm-tracking-block { padding: 16px 20px; }
  .bm-modal__form-row--3 { grid-template-columns: 1fr; }

  /* Orders table mobile */
  .bm-orders-table__head { display: none; }
  .bm-orders-table__row { flex-wrap: wrap; gap: 8px; padding: 16px 0; }
  .bm-orders-col--id { width: auto; }
  .bm-orders-col--thumbs { width: 100%; order: -1; }
  .bm-orders-col--status { width: auto; }
  .bm-orders-col--date { width: auto; }
  .bm-orders-col--total { width: auto; margin-left: auto; }

  /* Order detail mobile */
  .bm-order-meta { flex-direction: column; align-items: flex-start; gap: 8px; }
  .bm-btn--pay { margin-left: 0; width: 100%; justify-content: center; }

  /* Checkout */
  .bm-checkout-title { font-size: 24px; line-height: 32px; margin-bottom: 24px; }
  .bm-checkout-layout { flex-direction: column; gap: 24px; }
  .bm-checkout-sidebar { width: 100%; position: static; }
  .bm-co-sidebar__title { font-size: 20px; }
  .bm-co-row { flex-direction: column; gap: 16px; }
  .bm-co-delivery-types { flex-direction: column; gap: 12px; }
  .bm-radio-cards { flex-direction: column; gap: 12px; }
  .bm-co-section-head { flex-direction: column; gap: 8px; }
  .bm-co-section__title { font-size: 20px; }
  .bm-co-pvz-modal { width: 95vw; }
  .bm-co-pvz-modal__header { padding: 20px 20px 0; }
  .bm-co-pvz-popup { width: calc(100% - 20px); right: 10px; bottom: 10px; }
  .bm-co-pvz-info__row { flex-direction: column; align-items: flex-start; gap: 8px; }
  .bm-radio-card--pay { flex-direction: column; align-items: flex-start; gap: 8px; min-height: auto; padding: 12px; }
  .bm-radio-card__logos { margin-left: 30px; }

  /* Success */
  .bm-success-content { padding: 48px 0; }
  .bm-success-title { font-size: 24px; line-height: 32px; }
  .bm-success-buttons { flex-direction: column; gap: 16px; }
  .bm-btn--success { width: 100%; }

  /* Orders */
  .bm-order-product { flex-wrap: wrap; }
  .bm-order-product__right { width: 100%; text-align: left; display: flex; gap: 12px; align-items: center; }
  .bm-stepper { flex-wrap: wrap; gap: 4px; }
  .bm-cancelled-row { flex-wrap: wrap; }
  .bm-cancelled-row__order { width: 100%; text-align: left; }

  /* Cookie / Buyback / Newsletter mobile */
  .bm-cookie-banner { padding: 12px; }
  .bm-cookie-card { padding: 20px; }
  .bm-cookie-text { font-size: 14px; margin-bottom: 16px; }
  .bm-cookie-buttons { gap: 10px; flex-direction: column; }
  .bm-cookie-buttons .bm-btn { font-size: 14px; height: 44px; width: 100%; }
  #cookie-settings-overlay { padding: 12px; align-items: flex-end; padding-bottom: 20px; }
  .bm-cs-card { max-height: calc(100svh - 40px); border-radius: 20px; }
  .bm-cs-footer { gap: 8px; }
  .bm-cs-footer .bm-btn { min-width: calc(50% - 4px); flex: none; font-size: 12px; }
  .bm-buyback-card { max-height: 95vh; width: 100%; }
  .bm-buyback-card--detail, .bm-buyback-card--brands { width: 100%; }
  .bm-buyback-scroll { padding: 24px 20px; }
  .bm-buyback-title { font-size: 20px; }
  .bm-buyback-input { height: 40px; font-size: 14px; }
  .bm-buyback-footer { padding: 16px 20px 20px; }
  .bm-buyback-hero { height: 220px; }
  .bm-buyback-hero__brand { font-size: 24px; }
  .bm-buyback-thumb { width: 75px; height: 80px; }
  .bm-buyback-brands-grid { grid-template-columns: repeat(3, 1fr); }
  .bm-buyback-section__title { font-size: 20px; }
  .bm-toast { width: 280px; padding: 24px; }
  .bm-toast-row { font-size: 14px; }
  #newsletter-overlay { padding: 16px; align-items: flex-end; padding-bottom: 24px; }
  .bm-nl-card { max-height: calc(100svh - 48px); overflow-y: auto; }
  .bm-nl-photo { height: clamp(140px, 30vh, 240px); flex-shrink: 0; }
  .bm-nl-body { padding: 20px; gap: 16px; }
  .bm-nl-texts { gap: 8px; }
  .bm-nl-title { font-size: 20px; line-height: 1.4; }
  .bm-nl-subtitle { font-size: 14px; line-height: 1.45; }
  .bm-nl-form { gap: 10px; }
  .bm-nl-input { height: 44px; font-size: 14px; }
  .bm-nl-btn { height: 44px; font-size: 14px; }
  .bm-nl-close { width: 32px; height: 32px; top: 8px; right: 8px; }
  .bm-nl-toast { width: calc(100vw - 40px); right: 20px; }

  /* ===== Block 1: Homepage mobile ===== */
  #common-home .bm-container { padding-left: 20px; padding-right: 20px; overflow-x: clip; }
  .slideshow.swiper-viewport { margin-top: 16px !important; }
  .slideshow .swiper-container { border-radius: 16px !important; }
  .bm-hero-slide { height: auto; min-height: 260px; padding: 40px 20px; border-radius: 16px; }
  .bm-hero-slide__photo { width: 65%; left: auto; right: 0; }
  .bm-hero-slide__content { gap: 20px; max-width: 100%; }
  .bm-hero-slide__title { font-size: 24px; line-height: 1.3; }
  .bm-hero-slide__desc { font-size: 16px; }
  .bm-hero-slide__btn { font-size: 14px; padding: 10px 24px; }
  .brands-ticker-wrap { margin-top: 24px; margin-bottom: 24px; }
  .brand-item img { height: 24px; }
  #common-home .bm-category-section { padding-top: 32px; }
  /* Homepage category banners — horizontal scroll */
  #common-home .bm-cat-banners {
    display: flex; flex-wrap: nowrap; overflow-x: auto;
    gap: 10px; padding: 0 20px 4px; margin: 0 -20px;
    width: calc(100% + 40px); scrollbar-width: none;
  }
  #common-home .bm-cat-banners::-webkit-scrollbar { display: none; }
  #common-home .bm-cat-banner { flex: 0 0 240px; aspect-ratio: 240/200; border-radius: 16px; }
  #common-home .bm-cat-header { margin-bottom: 20px; }
  #common-home .bm-home-row { margin-top: 20px; }
  #common-home .bm-home-row__title { font-size: 20px; }
  #common-home .bm-product-grid--home { column-gap: 10px; row-gap: 16px; }

  /* ===== Block 2: Catalog child mobile — filter bar ===== */
  /* Hide individual filter-group dropdowns; keep only "По фильтрам" + sort */
  .bm-fpill--dd:not(.bm-fpill--sort) { display: none; }
  .bm-filter-bar { margin-top: 12px; margin-bottom: 16px; padding-bottom: 0; }

  /* ===== Block 3: Filter sidebar mobile ===== */
  .bm-fsidebar { max-width: 100%; }
  .bm-fsidebar__header { padding: 16px 20px; }
  .bm-fsidebar__title { font-size: 20px; }
  .bm-fsidebar__body { padding: 0 20px; }
  .bm-fsidebar__footer { padding: 16px 20px 32px; }
  .bm-fsidebar__buttons { gap: 10px; }

  /* ===== Block 2: Breadcrumbs mobile ===== */
  ul.bm-breadcrumb { padding-top: 12px !important; font-size: 13px; }

  /* ===== Block 4: Product page mobile ===== */
  .bm-product-page { margin-top: 0; margin-bottom: 32px; }
  /* Gallery edge-to-edge */
  .bm-gallery-grid { margin: 0 -20px; }
  .bm-gallery-main { border-radius: 0; }
  .bm-gallery-thumbs { padding: 12px 20px; justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; }
  .bm-gallery-thumb { flex-shrink: 0; }
  /* Product info */
  .bm-product-info { padding: 0; }
  .bm-product-brand { font-size: 20px; }
  .bm-price-main { font-size: 22px; }
  /* Delivery/shipping */
  .bm-delivery-block { margin-top: 16px; }
  /* Size chart modal — bottom sheet */
  #size-chart-modal .modal-dialog { margin: 0; position: fixed; bottom: 0; left: 0; right: 0; max-width: 100%; border-radius: 16px 16px 0 0; top: auto; }
  #size-chart-modal .modal-content { border-radius: 16px 16px 0 0; max-height: 80vh; overflow-y: auto; }

  /* ===== Block 5: Manufacturer/Store page mobile ===== */
  .bm-store-card { margin-top: 24px; padding: 20px; }
  .bm-store-card__name { font-size: 24px; }
  .bm-store-card__desc { font-size: 14px; }

  /* ===== Buyout modal — full screen on mobile ===== */
  .bm-buyback-overlay { align-items: flex-end; padding: 0; }
  .bm-buyback-card { border-radius: 16px 16px 0 0; max-height: 92vh; }
  .bm-buyback-card--detail { border-radius: 16px 16px 0 0; }
  .bm-buyback-card--brands { border-radius: 16px 16px 0 0; }

  /* ===== Sort backdrop overlay ===== */
  #sort-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.4);
    z-index: 1600;
  }
  #sort-overlay.open { display: block; }

  /* ===== Sort dropdown — bottom-sheet on mobile ===== */
  .bm-dd-panel--sort {
    position: fixed !important;
    top: auto !important;
    bottom: 0;
    left: 0 !important;
    right: 0;
    width: 100% !important;
    max-height: 60vh;
    overflow-y: auto;
    border-radius: 16px 16px 0 0;
    box-shadow: 0 -4px 24px rgba(0,0,0,0.12);
    z-index: 1601;
    padding: 20px 0 32px;
  }
  .bm-dd-panel--sort::before {
    content: '';
    display: block;
    width: 40px;
    height: 4px;
    background: rgba(0,0,0,0.15);
    border-radius: 2px;
    margin: 0 auto 16px;
  }
}

@media (max-width: 479px) {
  .bm-footer-grid { grid-template-columns: 1fr; }
}

@media (min-width: 768px) {
  #mobile-header,
  #mobile-search-panel,
  #mobile-tabbar,
  #mobile-drawer,
  #drawer-overlay { display: none !important; }
}

/* ===== AUTH PAGES (Login / Register / Forgotten) ===== */
.bm-auth-page { background: #fff; min-height: 50vh; }
.bm-auth-card {
  width: 440px;
  max-width: 100%;
  margin: 60px auto;
  padding: 30px;
  box-sizing: border-box;
}
.bm-auth-tabs {
  display: flex;
  gap: 20px;
  border-bottom: 1px solid rgba(0,0,0,0.1);
  margin-bottom: 24px;
}
.bm-auth-tab {
  width: 180px;
  height: 54px;
  padding: 12px 0;

  font-weight: 500;
  font-size: 20px;
  line-height: 30px;
  color: #000;
  text-align: center;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  margin-bottom: -1px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
}
.bm-auth-tab.active {
  border-bottom-color: #000;
}
.bm-auth-tab:hover { color: #000; text-decoration: none; }

.bm-auth-fields {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 24px;
}
.bm-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.bm-field__label {
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  color: rgba(0,0,0,0.6);
}
.bm-req { color: #ed2939; }
.bm-field__input {
  width: 100%;
  height: 44px;
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 8px;
  padding: 2px 16px;

  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  color: #000;
  outline: none;
  box-sizing: border-box;
  background: #fff;
  transition: border-color 0.2s;
}
.bm-field__input:focus {
  border-color: rgba(0,0,0,0.3);
}
.bm-field__input.has-error {
  border-color: #ed2939;
}
.bm-field__input.has-success {
  border-color: #20a149;
}
.bm-field__error {
  font-weight: 400;
  font-size: 14px;
  line-height: 1.5;
  color: #ed2939;
  margin-top: 4px;
}
.bm-field__hint {
  font-weight: 400;
  font-size: 14px;
  line-height: 1.5;
  color: rgba(0,0,0,0.5);
  margin-top: 4px;
}

.bm-auth-forgot {

  font-weight: 400;
  font-size: 16px;
  line-height: 22.4px;
  color: #000;
  text-decoration: none;
  display: block;
  margin-bottom: 24px;
}
.bm-auth-forgot:hover { text-decoration: underline; color: #000; }

.bm-auth-legal {

  font-weight: 400;
  font-size: 16px;
  line-height: 22.4px;
  color: #000;
  margin-top: 24px;
}

.bm-auth-terms { margin-bottom: 24px; }

.bm-auth-title {

  font-weight: 600;
  font-size: 24px;
  line-height: 32px;
  color: #000;
  margin: 0 0 8px;
}
.bm-auth-subtitle {

  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  color: rgba(0,0,0,0.6);
  margin: 0 0 24px;
}
.bm-auth-buttons {
  display: flex;
  gap: 20px;
  margin-top: 24px;
}

/* Auth modal overlay */
.bm-auth-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: rgba(0,0,0,0.5);
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.bm-auth-overlay.open { display: flex; }
.bm-auth-modal {
  background: #fff;
  border-radius: 16px;
  padding: 30px;
  width: 440px;
  max-width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  position: relative;
  box-sizing: border-box;
}
.bm-auth-modal__close {
  position: absolute;
  top: 10px;
  right: 10px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
}
.bm-auth-modal__close:hover { opacity: 0.6; }
.bm-auth-modal .bm-auth-tabs { margin-bottom: 0; }
.bm-auth-modal .bm-auth-tab {
  flex: 1;
  width: auto;
  cursor: pointer;
  background: none;
  border: none;
  border-bottom: 1px solid transparent;
  margin-bottom: -1px;
}
.bm-auth-modal .bm-auth-tab.active { border-bottom-color: #000; color: #000; }
.bm-auth-modal .bm-auth-tab:not(.active) { color: rgba(0,0,0,0.6); }
.bm-auth-pane { display: none; padding-top: 24px; }
.bm-auth-pane.active { display: block; }
.bm-auth-modal .bm-auth-legal {
  font-size: 16px;
  line-height: 1.4;
  color: rgba(0,0,0,0.6);
  margin-top: 24px;
}
.bm-auth-modal .bm-auth-legal a {
  color: #000;
  text-decoration: underline;
}
.bm-auth-modal .bm-auth-forgot {
  text-decoration: underline;
}
.bm-auth-trigger {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
}

/* Phone input with prefix */
.bm-phone-input {
  display: flex;
  align-items: center;
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 8px;
  height: 44px;
  overflow: hidden;
}
.bm-phone-prefix {
  padding: 0 0 0 16px;
  font-size: 16px;
  font-weight: 400;
  color: #000;
  white-space: nowrap;
  flex-shrink: 0;
}
.bm-phone-input .bm-field__input {
  border: none;
  border-radius: 0;
  height: 100%;
  padding-left: 8px;
}
.bm-phone-input .bm-field__input:focus { box-shadow: none; }

/* Gender / Customer group buttons */
.bm-gender-btns { display: flex; gap: 20px; }
.bm-gender-btn {
  width: 180px;
  height: 44px;
  border-radius: 8px;
  border: 1px solid rgba(0,0,0,0.1);
  background: transparent;

  font-weight: 500;
  font-size: 16px;
  color: #000;
  cursor: pointer;
  transition: all 0.2s;
}
.bm-gender-btn.active {
  background: rgba(0,0,0,0.05);
  color: #000;
  border-color: transparent;
}

.bm-checkbox__text {
  font-weight: 400;
  font-size: 16px;
  line-height: 22.4px;
  color: #000;
}

/* Alerts */
.bm-alert {
  border-radius: 8px;
  padding: 12px 16px;

  font-weight: 400;
  font-size: 14px;
  line-height: 20px;
  margin-bottom: 16px;
}
.bm-alert--danger { background: #fff0f0; border: 1px solid #ed2939; color: #ed2939; }
.bm-alert--success { background: #f0fff4; border: 1px solid #1bb249; color: #1bb249; }
.bm-alert--info { background: #f0f4ff; border: 1px solid #3b82f6; color: #3b82f6; }

/* Buttons */
.bm-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  border-radius: 8px;
  font-weight: 600;
  font-size: 16px;
  line-height: 24px;
  white-space: nowrap;
  cursor: pointer;
  text-decoration: none;
  box-sizing: border-box;
  transition: opacity 0.2s;
}
.bm-btn:hover { opacity: 0.85; text-decoration: none; }
.bm-btn--primary {
  background: #000;
  color: #fff;
  border: none;
  padding: 12px 24px;
}
.bm-btn--primary:hover { color: #fff; background: #333; }
.bm-btn--outline {
  background: #fff;
  color: #000;
  border: 1px solid #000;
  padding: 12px 40px;
}
.bm-btn--outline:hover { color: #000; background: rgba(0,0,0,0.04); }
.bm-btn--full { width: 100%; }
.bm-btn--sm { width: 120px; }

/* ===== CART PAGE ===== */
.bm-cart-page { background: #fff; }
.bm-cart-title {

  font-weight: 600;
  font-size: 32px;
  line-height: 40px;
  color: #000;
  margin: 0 0 40px;
}
.bm-cart-layout {
  display: flex;
  gap: 40px;
  align-items: flex-start;
}
.bm-cart-products { flex: 1; min-width: 0; }
.bm-cart-products__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}
.bm-cart-products__title {

  font-weight: 600;
  font-size: 24px;
  line-height: 32.4px;
  color: #000;
  margin: 0;
}
.bm-cart-clear {

  font-weight: 500;
  font-size: 16px;
  line-height: 24px;
  color: #000;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
}
.bm-cart-clear:hover { text-decoration: underline; }

/* Cart item card */
.bm-cart-item {
  display: flex;
  gap: 20px;
  padding-bottom: 20px;
  margin-bottom: 20px;
  border-bottom: 1px solid rgba(0,0,0,0.1);
}
.bm-cart-item:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.bm-cart-item__image {
  width: 164px;
  height: 164px;
  flex-shrink: 0;
  background: #f2f2f2;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px;
  overflow: hidden;
  box-sizing: border-box;
}
.bm-cart-item__image a { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.bm-cart-item__image img {
  max-width: 144px;
  max-height: 144px;
  object-fit: contain;
}
.bm-cart-item__details {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}
.bm-cart-item__top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
}
.bm-cart-item__info { flex: 1; min-width: 0; }
.bm-cart-item__brand-row {
  display: flex;
  align-items: center;
  gap: 8px;
}
.bm-cart-item__brand {
  font-weight: 700;
  font-size: 20px;
  line-height: 1.5;
  color: #000;
}
.bm-cart-item__badge-concierge {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 10px;
  border: 1px solid #000;
  border-radius: 100px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  color: #000;
  white-space: nowrap;
}
.bm-cart-item__name {
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  color: #000;
  text-decoration: none;
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bm-cart-item__name:hover { text-decoration: underline; color: #000; }
.bm-cart-item__actions { display: flex; gap: 20px; flex-shrink: 0; }
.bm-cart-item__action {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.bm-cart-item__action:hover { opacity: 0.6; }

/* Info tooltip */
.bm-cart-item__info-tip { position: relative; }
.bm-cart-tooltip {
  display: none;
  position: absolute;
  top: -8px;
  right: 100%;
  margin-right: 8px;
  width: 200px;
  padding: 10px 12px;
  background: #fff;
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(0,0,0,0.1);
  font-size: 13px;
  line-height: 1.4;
  color: rgba(0,0,0,0.7);
  z-index: 10;
}
.bm-cart-item__info-tip:hover .bm-cart-tooltip { display: block; }

/* Hide default OC cart panels (scoped to cart page only) */
.bm-cart-page .panel-group,
.bm-cart-page #accordion { display: none !important; }

/* Meta */
.bm-cart-item__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 24px;
}
.bm-cart-item__article {

  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  color: #000;
}
.bm-cart-item__option {
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  color: #000;
}
.bm-cart-item__option strong { font-weight: 700; color: #141718; }
.bm-cart-item__options {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.bm-cart-item__wishlist { color: #000; }
.bm-cart-item__wishlist:hover { color: rgba(0,0,0,0.6); }

/* Price row */
.bm-cart-item__bottom {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.bm-cart-item__price-row {
  display: flex;
  align-items: center;
  gap: 40px;
}
.bm-cart-item__prices {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  justify-content: flex-end;
}
.bm-cart-item__price {
  font-weight: 700;
  font-size: 18px;
  line-height: 26.1px;
  color: #000;
}
.bm-cart-item__price-old {
  font-weight: 500;
  font-size: 14px;
  line-height: 1.5;
  color: #000;
  opacity: 0.6;
  text-decoration: line-through;
}

/* Quantity controls */
.bm-cart-qty {
  display: flex;
  align-items: center;
  gap: 10px;
}
.bm-cart-qty__btn {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.bm-cart-qty__btn:hover { opacity: 0.6; }
.bm-cart-qty__value {
  width: 45px;
  height: 40px;
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;

  font-weight: 700;
  font-size: 16px;
  color: #000;
}

/* Sidebar */
.bm-cart-sidebar {
  width: 340px;
  flex-shrink: 0;
  position: sticky;
  top: 20px;
}
.bm-cart-summary {
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(0,0,0,0.1);
  margin-bottom: 24px;
}
.bm-cart-summary__title {

  font-weight: 600;
  font-size: 24px;
  line-height: 32.4px;
  color: #000;
  margin: 0 0 24px;
}
.bm-cart-summary__rows {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.bm-cart-summary__row {
  display: flex;
  justify-content: space-between;

  font-weight: 500;
  font-size: 16px;
  line-height: 24px;
  color: #000;
}
.bm-cart-total {
  display: flex;
  justify-content: space-between;
  margin-bottom: 24px;
}
.bm-cart-total__label,
.bm-cart-total__value {

  font-weight: 700;
  font-size: 20px;
  line-height: 30px;
  color: #000;
}
.bm-btn--checkout { margin-bottom: 24px; }

/* Agreement checkbox */
.bm-cart-agree {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
  font-size: 14px;
  line-height: 1.4;
  color: rgba(0,0,0,0.6);
}
.bm-cart-agree input { display: none; }
.bm-cart-agree__check,
.bm-cart-agree__uncheck { flex-shrink: 0; margin-top: 1px; }
.bm-cart-agree input:checked ~ .bm-cart-agree__check { display: block; }
.bm-cart-agree input:checked ~ .bm-cart-agree__uncheck { display: none; }
.bm-cart-agree input:not(:checked) ~ .bm-cart-agree__check { display: none; }
.bm-cart-agree input:not(:checked) ~ .bm-cart-agree__uncheck { display: block; }
.bm-cart-agree__text a { color: #000; text-decoration: underline; }
.bm-cart-agree__text a:hover { text-decoration: none; }

/* Delete modal */
.bm-modal--delete {
  background: #fff;
  border-radius: 16px;
  padding: 30px;
  width: 320px;
  max-width: 90vw;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: stretch;
}
.bm-modal--delete .bm-modal__close {
  position: absolute;
  top: 10px;
  right: 10px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  color: #000;
}
.bm-modal--delete .bm-modal__close:hover { opacity: 0.6; }
.bm-modal--delete .bm-modal__title {
  font-weight: 600;
  font-size: 20px;
  line-height: 1.5;
  color: #000;
  text-align: center;
  margin: 0;
  padding-right: 20px;
}
.bm-modal__noask {
  display: flex;
  align-items: center;
  gap: 10px;
  justify-content: center;
  cursor: pointer;
  font-size: 16px;
  line-height: 1.5;
  color: rgba(0,0,0,0.6);
}
.bm-modal__noask input { display: none; }
.bm-modal__noask-check,
.bm-modal__noask-uncheck { flex-shrink: 0; }
.bm-modal__noask input:checked ~ .bm-modal__noask-check { display: block; }
.bm-modal__noask input:checked ~ .bm-modal__noask-uncheck { display: none; }
.bm-modal__noask input:not(:checked) ~ .bm-modal__noask-check { display: none; }
.bm-modal__noask input:not(:checked) ~ .bm-modal__noask-uncheck { display: block; }
.bm-modal--delete .bm-modal__actions {
  display: flex;
  gap: 20px;
  justify-content: center;
}
.bm-modal--delete .bm-modal__actions .bm-btn {
  flex: 1;
  padding: 12px 24px;
  border-radius: 8px;
  font-weight: 600;
  font-size: 16px;
  text-align: center;
  cursor: pointer;
  border: none;
}
.bm-btn--gray {
  background: rgba(0,0,0,0.1);
  color: rgba(0,0,0,0.6);
}
.bm-btn--gray:hover { background: rgba(0,0,0,0.15); }

/* Empty cart */
.bm-cart-empty-head {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 0;
}
.bm-cart-empty-head .bm-cart-title { margin-bottom: 0; }
.bm-cart-empty-subtitle {
  font-weight: 400;
  font-size: 16px;
  line-height: 1.5;
  color: #000;
  opacity: 0.6;
  margin: 0;
}
.bm-cart-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 80px 0 200px;
  gap: 24px;
}
.bm-cart-empty__icon { opacity: 1; }
.bm-cart-empty__text {
  font-weight: 400;
  font-size: 20px;
  line-height: 1.5;
  color: #000;
  text-align: center;
  max-width: 412px;
}
.bm-btn--cart-home {
  border-color: #000;
  color: #000;
  padding: 12px 40px;
}
.bm-btn--cart-home:hover {
  background: #000;
  color: #fff;
}

/* Badge */
.bm-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 4px;

  font-weight: 500;
  font-size: 12px;
  line-height: 16px;
}
.bm-badge--danger { background: #ed2939; color: #fff; }

/* Cart modules */
.bm-cart-modules { margin-top: 40px; }

/* ===== MODAL (Delete confirmation) ===== */
/* Cart delete modal uses #cart-delete-overlay with inline style display:none/block */
#cart-delete-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(4,4,4,0.4);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
}
.bm-modal {
  background: #fff;
  border-radius: 16px;
  position: relative;
}
.bm-modal--sm {
  width: 320px;
  padding: 30px;
}
.bm-modal__close {
  position: absolute;
  top: 16px;
  right: 16px;
  background: none;
  border: none;
  cursor: pointer;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.bm-modal__title {

  font-weight: 600;
  font-size: 20px;
  line-height: 30px;
  color: #000;
  margin: 0 0 16px;
}
.bm-modal__actions {
  display: flex;
  gap: 20px;
}

/* ===== SEARCH PAGE ===== */
.bm-search-page { background: #fff; }
.bm-search-bar {
  display: flex;
  gap: 0;
  margin-bottom: 24px;
  max-width: 700px;
}
.bm-search-bar__input-wrap { flex: 1; }
.bm-search-bar__input {
  width: 100%;
  height: 48px;
  border: 1px solid rgba(0,0,0,0.1);
  border-right: none;
  border-radius: 8px 0 0 8px;
  padding: 0 16px;
  font-size: 16px;
  color: #000;
  outline: none;
  box-sizing: border-box;
  background: #fff;
}
.bm-search-bar__input:focus { border-color: rgba(0,0,0,0.3); }
.bm-search-bar__select {
  width: 200px;
  height: 48px;
  border: 1px solid rgba(0,0,0,0.1);
  border-right: none;
  padding: 0 12px;
  font-size: 14px;
  color: #000;
  background: #fff;
  outline: none;
  box-sizing: border-box;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}
.bm-search-bar__btn {
  width: 54px;
  height: 48px;
  border: none;
  border-radius: 0 8px 8px 0;
  background: #000;
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: opacity 0.2s;
}
.bm-search-bar__btn:hover { opacity: 0.85; }
.bm-search-bar__btn .svg-icon { fill: #fff; }
.bm-search-options {
  display: flex;
  gap: 24px;
  margin-bottom: 32px;
}

/* ===== ACCOUNT LAYOUT (shared across all ЛК pages) ===== */
.bm-account-page { background: #fff; padding-top: 40px; }
.bm-account-layout {
  display: flex;
  gap: 40px;
  align-items: flex-start;
}
.bm-account-sidebar {
  width: 340px;
  flex-shrink: 0;
  position: sticky;
  top: 20px;
}
.bm-account-content { flex: 1; min-width: 0; }

/* Sidebar: profile */
.bm-account-profile {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-bottom: 16px;
}
.bm-account-avatar {
  width: 56px;
  height: 56px;
  border-radius: 100px;
  background: #f2f2f2;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.bm-account-name { font-weight: 600; font-size: 16px; line-height: 1.5; color: #000; }
.bm-account-id { font-weight: 500; font-size: 14px; line-height: 1.45; color: rgba(0,0,0,0.6); }

/* Sidebar: divider + section title */
.bm-account-divider { height: 1px; background: rgba(0,0,0,0.1); margin-bottom: 16px; }
.bm-account-nav-title {
  font-weight: 500;
  font-size: 16px;
  line-height: 1.5;
  color: #000;
  margin: 0 0 16px;
}

/* Sidebar: nav links */
.bm-account-nav {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.bm-account-nav__item {
  font-weight: 400;
  font-size: 16px;
  line-height: 1.5;
  color: rgba(0,0,0,0.6);
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid rgba(0,0,0,0.06);
}
.bm-account-nav__item:first-child { border-top: 1px solid rgba(0,0,0,0.06); }
.bm-account-nav__item:hover { color: #000; text-decoration: none; }
.bm-account-nav__item--active { color: #000; font-weight: 600; }
.bm-account-nav__item--active::after { content: '\2192'; font-size: 18px; }

/* Sidebar: logout */
.bm-account-logout {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-top: 40px;
  font-weight: 500;
  font-size: 16px;
  line-height: 1.5;
  color: #000;
  text-decoration: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
}
.bm-account-logout:hover { opacity: 0.6; text-decoration: none; }

/* ===== CHECKOUT PAGE ===== */
.bm-checkout-page { background: #fff; }
.bm-checkout-title { font-weight: 600; font-size: 32px; line-height: 1.25; margin: 0 0 32px; }

/* Section header with link (Figma: title left + "Изменить получателя" right) */
.bm-co-section-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 0; }
.bm-co-section-head__title { font-weight: 600; font-size: 24px; line-height: 32px; color: #000; margin: 0; }
.bm-co-section-head__link { font-size: 16px; font-weight: 400; color: #000; text-decoration: underline; cursor: pointer; }

/* Checkout sections */
.bm-co-section { padding: 0 0 24px; }
.bm-co-section--bordered { border-top: 1px solid rgba(0,0,0,0.1); border-bottom: 1px solid rgba(0,0,0,0.1); padding: 24px 0; }
.bm-co-section__title { font-weight: 600; font-size: 24px; line-height: 1.35; color: #000; margin: 0 0 24px; }
.bm-co-section__desc { font-size: 16px; line-height: 1.5; color: #000; margin: 0 0 24px; }

/* Checkout field rows (2×440px, gap 20px horiz, 16px vert) */
.bm-co-fields { margin-bottom: 0; }
.bm-co-fields + .bm-co-fields { margin-top: 24px; }
.bm-co-row { display: flex; gap: 20px; margin-bottom: 16px; }
.bm-co-row:last-child { margin-bottom: 0; }
.bm-co-row .bm-field { flex: 1; min-width: 0; }
.bm-co-row .bm-field--full { flex: 0 0 100%; }

/* Section head → fields gap = 56px (title 32px height + 24px margin) */
.bm-co-section-head + .bm-co-fields { margin-top: 24px; }

/* Checkout select (dropdown arrow) */
.bm-field__select {
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center; background-size: 16px; padding-right: 36px;
}

/* Country select with flag prefix */
.bm-field__select-wrap { position: relative; }
.bm-field__select-flag { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); z-index: 1; pointer-events: none; display: flex; align-items: center; }
.bm-field__select--flag { padding-left: 48px; }

/* Checkout textarea */
.bm-field__textarea { height: 132px; min-height: 132px; padding: 14px 16px; resize: vertical; }

/* Phone input with prefix (Figma: flag 22×16 + arrow 12×12 + "+7" text) */
.bm-field__phone { display: flex; align-items: center; border: 1px solid rgba(0,0,0,0.1); border-radius: 8px; height: 44px; transition: border-color 0.2s; }
.bm-field__phone:focus-within { border-color: #000; }
.bm-field__phone-prefix { display: flex; align-items: center; gap: 4px; padding: 0 0 0 16px; flex-shrink: 0; }
.bm-field__phone-prefix svg { flex-shrink: 0; }
.bm-field__phone-arrow { opacity: 0.6; }
.bm-field__phone-code { font-size: 16px; color: #000; padding: 0 4px 0 8px; flex-shrink: 0; }
.bm-field__input--phone { border: none; padding-left: 0; height: 100%; flex: 1; min-width: 0; }
.bm-field__input--phone:focus { border: none; box-shadow: none; outline: none; }
.has-error .bm-field__phone { border-color: #ed2939; }

/* Delivery type cards (2 cards, 440px each, h64, r8) */
.bm-co-delivery-types { display: flex; gap: 20px; margin-bottom: 24px; }

/* Radio card component (shared for delivery + payment) */
.bm-radio-card {
  flex: 1; min-height: 64px; border: 1px solid rgba(0,0,0,0.1); border-radius: 8px;
  padding: 16px; display: flex; align-items: center; gap: 10px; cursor: pointer;
  transition: border-color 0.2s; position: relative;
}
.bm-radio-card:hover { border-color: rgba(0,0,0,0.3); }
.bm-radio-card.active { border-color: #000; }
.bm-radio-card input[type="radio"] { display: none; }
.bm-radio-card__dot {
  width: 20px; height: 20px; border: 1.5px solid rgba(0,0,0,0.3); border-radius: 50%;
  flex-shrink: 0; display: flex; align-items: center; justify-content: center;
}
.bm-radio-card.active .bm-radio-card__dot { border-color: #000; }
.bm-radio-card.active .bm-radio-card__dot::after {
  content: ''; width: 12px; height: 12px; background: #000; border-radius: 50%;
}
.bm-radio-card__text { font-size: 16px; font-weight: 600; line-height: 1.5; color: #000; }
.bm-radio-card__link {
  margin-left: auto; font-size: 16px; font-weight: 600; color: rgba(0,0,0,0.6);
  text-decoration: underline; white-space: nowrap;
}

/* Payment card logos (Figma: МИР, MC, VISA, Т-Банк) */
.bm-radio-card__logos { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.bm-radio-card__logos img { height: 15px; width: auto; }

/* Payment cards (Figma: 440px each, h80, r8) */
.bm-radio-card--pay { min-height: 80px; max-width: 440px; }
.bm-radio-card--pay .bm-radio-card__text { font-size: 16px; font-weight: 500; line-height: 1.5; flex-shrink: 0; }

/* Backward compat */
.bm-radio-cards { display: flex; gap: 20px; margin-bottom: 24px; }

/* PVZ info (Figma: plain text, no border card) */
.bm-co-pvz-info { margin-bottom: 24px; }
.bm-co-pvz-info__title { font-weight: 600; font-size: 20px; line-height: 30px; color: #000; margin: 0 0 16px; }
.bm-co-pvz-info__row { display: flex; align-items: flex-end; gap: 20px; }
.bm-co-pvz-info__details { flex: 1; }
.bm-co-pvz-info__provider { font-weight: 600; font-size: 16px; color: #000; margin-bottom: 8px; }
.bm-co-pvz-info__address { font-size: 16px; color: rgba(0,0,0,0.6); line-height: 1.5; }
.bm-co-pvz-info__change { font-size: 16px; font-weight: 400; color: #000; text-decoration: underline; white-space: nowrap; }

/* PVZ Map Modal (Figma: 1000px wide, r16, map fills bottom) */
.bm-co-pvz-modal {
  width: 1000px; max-width: 95vw; background: #fff; border-radius: 16px;
  position: relative; overflow: hidden;
  display: flex; flex-direction: column; gap: 24px;
}
.bm-co-pvz-modal__header {
  display: flex; align-items: center; justify-content: center;
  padding: 30px 30px 0; position: relative;
}
.bm-co-pvz-modal__title { font-weight: 600; font-size: 24px; line-height: 1.35; flex: 1; margin: 0; }
.bm-co-pvz-modal__close {
  position: absolute; top: 10px; right: 10px; width: 24px; height: 24px;
  background: none; border: none; padding: 0; cursor: pointer; display: flex; align-items: center; justify-content: center;
}
.bm-co-pvz-modal__map {
  position: relative; width: 100%;
  border-radius: 0 0 16px 16px; overflow: hidden;
  background: #e8e8e8;
}
.bm-co-pvz-modal__map-img { display: block; width: 100%; height: auto; }

/* Map pins (Figma: 40×40 black rounded squares with "BM") */
.bm-co-pvz-pin {
  position: absolute; width: 40px; height: 40px; background: #000; border-radius: 12px;
  display: flex; align-items: center; justify-content: center; cursor: pointer;
  transform: translate(-50%, -50%); z-index: 2; transition: transform 0.15s;
}
.bm-co-pvz-pin:hover { transform: translate(-50%, -50%) scale(1.1); }
.bm-co-pvz-pin.active { transform: translate(-50%, -50%) scale(1.15); box-shadow: 0 4px 12px rgba(0,0,0,0.3); }
.bm-co-pvz-pin__label { color: #fff; font-weight: 700; font-size: 12px; letter-spacing: 0.5px; }

/* PVZ popup card on map (Figma: bottom-right, 420px, r16, shadow) */
.bm-co-pvz-popup {
  position: absolute; bottom: 20px; right: 20px; z-index: 3;
  width: 420px; padding: 20px; background: #fff; border-radius: 16px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.08);
  display: flex; flex-direction: column; gap: 16px;
}
.bm-co-pvz-popup__close {
  position: absolute; top: 10px; right: 10px; width: 24px; height: 24px;
  background: none; border: none; padding: 0; cursor: pointer; display: flex; align-items: center; justify-content: center;
}
.bm-co-pvz-popup__info { display: flex; flex-direction: column; gap: 4px; }
.bm-co-pvz-popup__provider { font-weight: 600; font-size: 16px; color: #000; line-height: 1.5; }
.bm-co-pvz-popup__address { font-size: 16px; color: rgba(0,0,0,0.6); line-height: 1.5; }
.bm-co-pvz-popup__btn {
  width: 100%; height: 48px; background: #000; color: #fff; border: none; border-radius: 8px;
  font-weight: 600; font-size: 16px; cursor: pointer;
}
.bm-co-pvz-popup__btn:hover { background: #222; }

/* Error states */
.bm-field.has-error .bm-field__input { border-color: #ed2939; }
.bm-field.has-error .bm-field__select { border-color: #ed2939; }
.bm-field__error { font-size: 13px; color: #ed2939; margin-top: 4px; }

/* Checkout alerts */
.bm-checkout-page .bm-alert { border-radius: 8px; padding: 12px 16px; font-size: 14px; margin-bottom: 16px; }
.bm-checkout-page .bm-alert--danger { background: rgba(237,41,57,0.08); color: #ed2939; }

/* Buttons */
.bm-checkout-page .btn-primary {
  height: 48px; padding: 0 32px; border-radius: 8px;
  background: #000; border-color: #000; font-weight: 600; font-size: 16px;
  letter-spacing: 0; text-transform: none;
}
.bm-checkout-page .btn-primary:hover,
.bm-checkout-page .btn-primary:focus { background: #222; border-color: #222; }
.bm-checkout-page .buttons { margin-top: 24px; }
.bm-checkout-page .buttons .pull-right { float: none !important; }

/* Fieldset reskin */
.bm-checkout-page fieldset { border: none; padding: 0; margin: 0; }
.bm-checkout-page legend { display: none; }

/* Hide company field (not in Figma) */
.bm-checkout-page .form-group:has(input[name="company"]) { display: none; }

/* Confirm step table */
.bm-checkout-page .table-responsive { border: none; }
.bm-checkout-page .table { border-radius: 8px; overflow: hidden; margin-bottom: 24px; }
.bm-checkout-page .table-bordered { border: 1px solid rgba(0,0,0,0.1); }
.bm-checkout-page .table-bordered > thead > tr > td { background: rgba(0,0,0,0.03); font-weight: 600; font-size: 14px; border-color: rgba(0,0,0,0.1); }
.bm-checkout-page .table-bordered > tbody > tr > td { border-color: rgba(0,0,0,0.1); font-size: 14px; }
.bm-checkout-page .table-bordered > tfoot > tr > td { border-color: rgba(0,0,0,0.1); font-size: 14px; }

/* Login step */
.bm-checkout-login { display: flex; gap: 40px; }
.bm-checkout-login__col { flex: 1; }
.bm-checkout-section-title { font-weight: 600; font-size: 18px; line-height: 28px; margin: 0 0 12px; }
.bm-checkout-text { font-size: 14px; line-height: 1.5; color: rgba(0,0,0,0.6); margin: 0 0 16px; }
.bm-checkout-text--sm { font-size: 13px; }
.bm-checkout-radios { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }

/* input-group date/time fix */
.bm-checkout-page .input-group .form-control { border-radius: 8px 0 0 8px; }
.bm-checkout-page .input-group-btn .btn { height: 44px; border-radius: 0 8px 8px 0; }

/* Address select (existing/new toggle) */
.bm-checkout-page #payment-existing,
.bm-checkout-page #shipping-existing { margin-bottom: 16px; }
.bm-checkout-page #payment-existing .form-control,
.bm-checkout-page #shipping-existing .form-control { margin-bottom: 0; }

/* Guest/register form — remove old 2-col, use new grid */
.bm-checkout-page .row { display: flex; gap: 0; flex-wrap: wrap; margin: 0; }
.bm-checkout-page .col-sm-6 { width: 100%; padding: 0; float: none; }
.bm-checkout-page .col-sm-6:last-child { padding: 0; }
.bm-checkout-page .col-sm-10 { width: 100%; float: none; padding: 0; }
.bm-checkout-page .col-sm-2 { width: 100%; float: none; padding: 0; text-align: left; }

/* ===== CHECKOUT TWO-COLUMN LAYOUT ===== */
.bm-checkout-layout {
  display: flex; gap: 40px; align-items: flex-start;
}
.bm-checkout-form { flex: 1; min-width: 0; }
.bm-checkout-sidebar {
  width: 340px; flex-shrink: 0; position: sticky; top: 24px;
}

/* Sidebar: order info (Figma: 340px, r16) */
.bm-co-sidebar__title {
  font-weight: 600; font-size: 24px; line-height: 1.35; margin: 0 0 24px;
}

/* Product list (Figma: h286, overflow with 3px scrollbar) */
.bm-co-products {
  max-height: 286px; overflow-y: auto; padding-right: 20px;
  margin-bottom: 24px; position: relative;
}
.bm-co-products::-webkit-scrollbar { width: 3px; }
.bm-co-products::-webkit-scrollbar-thumb { background: #000; border-radius: 2px; }
.bm-co-products::-webkit-scrollbar-track { background: transparent; }

/* Product card (Figma: 80×80 img + details) */
.bm-co-product {
  display: flex; gap: 10px; padding-bottom: 10px; margin-bottom: 10px;
}
.bm-co-product:last-child { margin-bottom: 0; }
.bm-co-product__img {
  width: 80px; height: 80px; flex-shrink: 0;
  background: #f2f2f2; border-radius: 16px; overflow: hidden;
  display: flex; align-items: center; justify-content: center; padding: 10px;
}
.bm-co-product__img img {
  max-width: 100%; max-height: 100%; object-fit: contain; mix-blend-mode: darken;
}
.bm-co-product__info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; justify-content: center; }
.bm-co-product__badge {
  display: inline-block; align-self: flex-start; font-size: 14px; font-weight: 500; color: #079e35;
  background: rgba(27,178,73,0.1); border: 1px solid #1bb249; border-radius: 4px;
  padding: 2px 8px; line-height: 1.45; margin-bottom: 2px;
}
.bm-co-product__brand { font-weight: 700; font-size: 18px; line-height: 1.45; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bm-co-product__name { font-size: 16px; line-height: 1.5; color: #000; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bm-co-product__price { display: flex; align-items: center; gap: 8px; }
.bm-co-product__price-cur { font-weight: 700; font-size: 18px; line-height: 1.45; color: #000; }
.bm-co-product__price-old { font-size: 14px; font-weight: 500; color: #000; opacity: 0.6; text-decoration: line-through; }
.bm-co-product__price-pct { font-size: 12px; font-weight: 500; color: #ed2939; }
.bm-co-product__qty { font-size: 13px; color: rgba(0,0,0,0.5); }
.bm-co-product__stock { font-size: 14px; color: #000; opacity: 0.6; line-height: 1.45; }

/* Sidebar bottom section (promo → summary → total → button) */
.bm-co-sidebar-bottom { display: flex; flex-direction: column; gap: 0; }

/* Promo code (Figma: single input, no button) */
.bm-co-promo { margin-bottom: 20px; }
.bm-co-promo__input {
  width: 100%; height: 44px; border: 1px solid rgba(0,0,0,0.1); border-radius: 8px;
  padding: 0 16px; font-size: 16px; outline: none;
}
.bm-co-promo__input:focus { border-color: #000; }
.bm-co-promo__input::placeholder { color: rgba(0,0,0,0.6); }

/* Summary rows (Figma: 16px/Medium, gap 16px) */
.bm-co-summary {
  border-bottom: 1px solid rgba(0,0,0,0.1); padding-bottom: 20px; margin-bottom: 0;
}
.bm-co-summary__row {
  display: flex; justify-content: space-between; align-items: baseline;
  font-size: 16px; font-weight: 500; line-height: 1.5; color: #000; margin-bottom: 16px;
}
.bm-co-summary__row:last-child { margin-bottom: 0; }

/* Total (Figma: 20px/Bold + old price strikethrough below) */
.bm-co-total-wrap { padding: 24px 0; }
.bm-co-total {
  display: flex; justify-content: space-between; align-items: baseline;
}
.bm-co-total__label { font-weight: 700; font-size: 20px; line-height: 1.5; }
.bm-co-total__value { font-weight: 700; font-size: 20px; line-height: 1.5; text-align: right; }
.bm-co-total-old {
  font-size: 14px; font-weight: 500; color: #000; opacity: 0.6;
  text-decoration: line-through; text-align: right; margin-top: 4px;
}

/* Pay button (Figma: full width, h48, bg #000, r8) */
.bm-co-pay {
  display: block; width: 100%; height: 48px; background: #000; color: #fff;
  border: none; border-radius: 8px; font-size: 16px; font-weight: 600;
  cursor: pointer; text-align: center; line-height: 48px; text-decoration: none;
}
.bm-co-pay:hover { background: #222; color: #fff; text-decoration: none; }

/* ===== SUCCESS PAGE ===== */
.bm-success-page { background: #fff; }
.bm-success-content {
  display: flex; flex-direction: column; align-items: center;
  padding: 80px 0 200px; text-align: center;
}
.bm-success-icon { margin-bottom: 24px; }
.bm-success-title { font-weight: 600; font-size: 32px; line-height: 1.25; margin: 0 0 16px; }
.bm-success-text { font-size: 16px; line-height: 1.5; color: #000; max-width: 500px; margin: 0 0 24px; }
.bm-success-text b, .bm-success-text strong { font-weight: 700; }
.bm-success-buttons { display: flex; gap: 24px; align-items: center; }
.bm-btn--success { width: 220px; height: 48px; display: flex; align-items: center; justify-content: center; border-radius: 8px; font-size: 16px; font-weight: 600; text-decoration: none; }
.bm-btn--success.bm-btn--outline { border: 1px solid #000; color: #000; background: #fff; }
.bm-btn--success.bm-btn--outline:hover { background: rgba(0,0,0,0.03); }
.bm-btn--success.bm-btn--primary { background: #000; color: #fff; border: 1px solid #000; }
.bm-btn--success.bm-btn--primary:hover { background: #222; color: #fff; }

/* ===== EMPTY STATE (shared: search, orders, wishlist, etc.) ===== */
.bm-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 80px 0;
  gap: 24px;
}
.bm-empty-state__icon { opacity: 0.5; }
.bm-empty-state__title {
  font-weight: 600;
  font-size: 24px;
  line-height: 32px;
  color: #000;
  text-align: center;
}
.bm-empty-state__text {
  font-weight: 400;
  font-size: 20px;
  line-height: 30px;
  color: #000;
  text-align: center;
  max-width: 412px;
}

/* ===== ACCOUNT PAGES — Figma ЛК redesign ===== */
.bm-account-title {
  font-weight: 700;
  font-size: 32px;
  line-height: 40px;
  margin: 0 0 32px;
}

/* Info banner (review promo) */
.bm-account-banner {
  background: #f2f2f2;
  border-radius: 8px;
  padding: 14px 20px;
  margin-bottom: 24px;
  font-size: 14px;
  line-height: 1.5;
  color: #000;
  margin-bottom: 40px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.bm-account-banner a { font-weight: 700; color: #000; text-decoration: underline; }
.bm-account-banner__close {
  margin-left: auto;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  flex-shrink: 0;
  color: #000;
  opacity: 0.5;
}
.bm-account-banner__close:hover { opacity: 1; }

/* Dashboard stat cards */
.bm-account-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-bottom: 0;
}
.bm-stat-card {
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 16px;
  padding: 24px;
  text-decoration: none;
  color: inherit;
  display: block;
}
.bm-stat-card:hover { text-decoration: none; color: inherit; }
.bm-stat-card__header {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  color: rgba(0,0,0,0.6);
  margin-bottom: 8px;
}
.bm-stat-card__header svg { flex-shrink: 0; }
.bm-stat-card__value {
  font-weight: 700;
  font-size: 24px;
  line-height: 32px;
  color: #000;
}
.bm-stat-card__text {
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  color: rgba(0,0,0,0.5);
}

/* Content header (title + action button) */
.bm-account-content-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}
.bm-account-content-header .bm-account-title { margin-bottom: 0; }

/* ===== TAB NAV (orders, balance, partner) ===== */
.bm-tab-nav {
  display: flex;
  gap: 0;
  border-bottom: 1px solid rgba(0,0,0,0.1);
  margin-bottom: 24px;
}
.bm-tab-nav__item {
  font-size: 16px;
  font-weight: 400;
  color: rgba(0,0,0,0.5);
  text-decoration: none;
  padding: 12px 16px;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  white-space: nowrap;
  cursor: pointer;
  background: none;
  border-top: none;
  border-left: none;
  border-right: none;
}
.bm-tab-nav__item:first-child { padding-left: 0; }
.bm-tab-nav__item:hover { color: #000; text-decoration: none; }
.bm-tab-nav__item--active {
  color: #000;
  font-weight: 600;
  border-bottom-color: #000;
}

/* ===== ORDER LIST TABLE ===== */
.bm-orders-table { margin-bottom: 24px; }
.bm-orders-table__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(0,0,0,0.1);
  font-weight: 600;
  font-size: 16px;
  color: #000;
}
.bm-orders-table__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 0 10px;
  border-bottom: 1px solid rgba(0,0,0,0.1);
  font-size: 16px;
  color: #000;
  text-decoration: none;
  transition: background 0.15s;
}
.bm-orders-table__row:hover { background: rgba(0,0,0,0.02); text-decoration: none; color: #000; }
.bm-orders-col--id { width: 133px; flex-shrink: 0; display: flex; flex-direction: column; justify-content: center; }
.bm-orders-col__order-num { display: flex; align-items: center; gap: 0; }
.bm-orders-col__order-num svg { flex-shrink: 0; opacity: 0.5; }
.bm-orders-col--thumbs { width: 180px; flex-shrink: 0; display: flex; align-items: center; padding-right: 4px; }
.bm-order-thumb {
  width: 48px; height: 48px; flex-shrink: 0;
  border-radius: 8px; background: #f2f2f2;
  border: 1px solid #fff;
  margin-right: -4px;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.bm-order-thumb img {
  width: 100%; height: 100%;
  object-fit: contain;
  mix-blend-mode: darken;
  padding: 4px;
}
.bm-order-thumb--more {
  font-size: 14px; color: #000;
  background: #f2f2f2;
}
.bm-orders-col--status { width: 90px; flex-shrink: 0; text-decoration: underline; }
.bm-orders-col--date { width: 85px; flex-shrink: 0; }
.bm-orders-col--total { width: 100px; flex-shrink: 0; text-align: right; }

/* Консьерж badge */
.bm-badge-concierge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 24px;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 500;
  color: #079e35;
  background: rgba(27,178,73,0.1);
  border: 1px solid #1bb249;
  margin-top: 4px;
}

/* Cancelled orders — product card layout */
.bm-cancelled-list { display: flex; flex-direction: column; gap: 0; }
.bm-cancelled-row {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 20px 0;
  border-bottom: 1px solid rgba(0,0,0,0.06);
}
.bm-cancelled-row__img { width: 60px; height: 80px; object-fit: cover; border-radius: 8px; background: #f2f2f2; flex-shrink: 0; }
.bm-cancelled-row__info { flex: 1; min-width: 0; }
.bm-cancelled-row__brand { font-weight: 700; font-size: 14px; margin-bottom: 2px; }
.bm-cancelled-row__name { font-size: 14px; color: rgba(0,0,0,0.6); margin-bottom: 4px; }
.bm-cancelled-row__price { font-size: 14px; font-weight: 600; }
.bm-cancelled-row__price .bm-price-old { text-decoration: line-through; color: rgba(0,0,0,0.4); font-weight: 400; margin-left: 6px; }
.bm-cancelled-row__price .bm-price-discount { color: #ed2939; font-weight: 600; margin-left: 6px; }
.bm-cancelled-row__status { font-size: 14px; color: #ed2939; }
.bm-cancelled-row__order { text-align: right; flex-shrink: 0; }
.bm-cancelled-row__order-label { font-size: 12px; color: rgba(0,0,0,0.5); }
.bm-cancelled-row__order-link { font-size: 14px; font-weight: 600; color: #000; text-decoration: none; }
.bm-cancelled-row__order-link:hover { text-decoration: underline; }

/* Back link (order detail) */
.bm-order-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 16px;
  font-weight: 600;
  color: rgba(0,0,0,0.6);
  text-decoration: none;
  margin-bottom: 16px;
}
.bm-order-back:hover { color: #000; text-decoration: none; }
.bm-back-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 16px;
  font-weight: 400;
  color: rgba(0,0,0,0.5);
  text-decoration: none;
  margin-bottom: 16px;
}
.bm-back-link:hover { color: #000; text-decoration: none; }

/* Order meta header */
.bm-order-meta {
  display: flex;
  align-items: center;
  gap: 40px;
  margin-bottom: 32px;
  flex-wrap: wrap;
}
.bm-order-meta__item { font-size: 16px; color: #000; }
.bm-order-meta__item b { font-weight: 600; }
.bm-order-meta__status { text-decoration: underline; cursor: pointer; }
.bm-order-meta__status--red { color: #ed2939; }

/* Pay button (red for unpaid orders) */
.bm-btn--pay {
  background: #ed2939;
  color: #fff;
  border: none;
  border-radius: 8px;
  height: 44px;
  padding: 0 24px;
  font-size: 16px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  margin-left: auto;
}
.bm-btn--pay:hover { background: #d41f2f; color: #fff; text-decoration: none; }

/* Small outline button */
.bm-btn--sm {
  height: 40px;
  padding: 0 24px;
  font-size: 14px;
  width: auto;
  white-space: nowrap;
}

/* ===== ORDER DETAIL (parcel, products, stepper, etc.) ===== */

/* Passport alert bar (above parcel, when not filled) */
.bm-passport-alert {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 16px;
  margin-bottom: 24px;
}
.bm-passport-alert__left {
  display: flex;
  align-items: center;
  gap: 10px;
}
.bm-passport-alert__text {
  font-size: 18px;
  font-weight: 600;
}

/* Parcel container — bordered card with sections inside */
.bm-parcel {
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 16px;
  overflow: hidden;
  margin-bottom: 32px;
}

/* Parcel header bar */
.bm-parcel__header {
  background: #f2f2f2;
  padding: 24px 30px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.bm-parcel__header-top {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.bm-parcel__header-left {
  display: flex;
  align-items: center;
  gap: 12px;
}
.bm-parcel__flag { font-size: 20px; line-height: 1; }
.bm-parcel__label { font-size: 16px; }
.bm-parcel__label b { font-weight: 600; }
.bm-parcel__delivery { font-size: 16px; color: rgba(0,0,0,0.6); }
.bm-parcel__header-right {
  display: flex;
  align-items: center;
  gap: 20px;
}
.bm-parcel__seller-link {
  font-size: 14px;
  color: rgba(0,0,0,0.6);
  text-decoration: none;
}
.bm-parcel__seller-link:hover { color: #000; text-decoration: underline; }
.bm-parcel__receipt-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 500;
  color: #000;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  font-family: inherit;
}
.bm-parcel__receipt-btn:hover { opacity: 0.7; }
.bm-parcel__receipt-btn svg { flex-shrink: 0; }

/* Pickup point address bar */
.bm-order-pickup-address {
  padding: 0 30px 24px;
  border-top: none;
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 16px;
  margin-top: -8px;
}
.bm-order-pickup-address__carrier {
  font-weight: 600;
  color: #000;
}
.bm-order-pickup-address__text {
  color: rgba(0,0,0,0.6);
}

/* Per-product cancelled badge */
.bm-order-product-cancelled {
  padding: 12px 30px 16px;
}

/* Консьерж badge (inline with brand) */
.bm-order-product__brand .bm-badge-concierge {
  font-size: 12px;
  height: 22px;
  padding: 2px 8px;
  margin-left: 8px;
  vertical-align: middle;
}

/* Product card in order detail */
.bm-order-product {
  display: flex;
  gap: 16px;
  padding: 24px 30px;
  border-top: 1px solid rgba(0,0,0,0.1);
  align-items: flex-start;
}
.bm-order-product__img {
  width: 80px; height: 80px;
  border-radius: 16px;
  background: #f2f2f2;
  flex-shrink: 0;
  padding: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.bm-order-product__img img {
  width: 100%; height: 100%;
  object-fit: contain;
  mix-blend-mode: darken;
}
.bm-order-product__info { flex: 1; min-width: 0; }
.bm-order-product__brand { font-weight: 700; font-size: 18px; line-height: 1.45; margin-bottom: 4px; }
.bm-order-product__name { font-size: 16px; color: #000; margin-bottom: 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bm-order-product__meta { font-size: 16px; color: rgba(0,0,0,0.6); line-height: 1.5; }
.bm-order-product__meta span { color: #000; }
.bm-order-product__meta b { font-weight: 700; color: #141718; }
.bm-order-product__right { text-align: right; flex-shrink: 0; }
.bm-order-product__qty { font-size: 16px; color: #000; margin-bottom: 8px; }
.bm-order-product__qty b { font-weight: 700; }
.bm-order-product__price { font-size: 18px; font-weight: 700; }

/* Status stepper (5 steps) — Figma: 8px dots, 1px lines */
.bm-stepper {
  display: flex;
  align-items: flex-start;
  padding: 24px 30px;
  border-top: 1px solid rgba(0,0,0,0.1);
  position: relative;
}
.bm-stepper__step {
  flex: 1;
  text-align: center;
  position: relative;
  color: rgba(0,0,0,0.6);
}
.bm-stepper__dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  border: 1px solid #ccc;
  background: #fff;
  margin: 0 auto 8px;
  position: relative;
  z-index: 1;
}
.bm-stepper__step--done .bm-stepper__dot { background: #000; border-color: #000; }
.bm-stepper__step--active .bm-stepper__dot { background: #000; border-color: #000; }
.bm-stepper__step--done { color: #000; }
.bm-stepper__step--active { color: #000; font-weight: 600; }
.bm-stepper__label { font-size: 14px; line-height: 1.45; }
.bm-stepper__line {
  position: absolute;
  top: 3px;
  left: calc(50% + 6px);
  right: calc(-50% + 6px);
  height: 0;
  border-top: 1px solid #000;
}
.bm-stepper__line--dashed {
  border-top: 1px dashed rgba(0,0,0,0.2);
}

/* Cancel block — inside parcel */
.bm-cancel-block {
  padding: 16px 30px;
  border-top: 1px solid rgba(0,0,0,0.1);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.bm-cancel-block__title { font-weight: 600; font-size: 16px; margin-bottom: 4px; }
.bm-cancel-block__text { font-size: 16px; color: rgba(0,0,0,0.6); }

/* Tracking block — inside parcel */
.bm-tracking-block {
  padding: 16px 30px;
  border-top: 1px solid rgba(0,0,0,0.1);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.bm-tracking-block__info { display: flex; flex-direction: column; gap: 4px; }
.bm-tracking-block__text { font-size: 16px; }
.bm-tracking-block__id { font-size: 16px; color: rgba(0,0,0,0.6); display: flex; align-items: center; gap: 6px; }
.bm-tracking-block__copy { background: none; border: none; cursor: pointer; padding: 0; opacity: 0.4; }
.bm-tracking-block__copy:hover { opacity: 1; }

/* Cancelled status bar */
.bm-order-cancelled-bar {
  padding: 16px 30px;
  border-top: 1px solid rgba(0,0,0,0.1);
}
.bm-badge-cancelled {
  display: inline-flex;
  height: 28px;
  padding: 2px 12px;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 600;
  color: #ed2939;
  background: rgba(237,41,57,0.08);
  border: 1px solid rgba(237,41,57,0.3);
  align-items: center;
}

/* Sections inside parcel (address, passport, totals) */
.bm-order-section {
  padding: 24px 30px;
  border-top: 1px solid rgba(0,0,0,0.1);
}
.bm-order-section__header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
}
.bm-order-section__title { font-weight: 600; font-size: 18px; }
.bm-order-section__body { font-size: 16px; line-height: 1.5; }
.bm-order-section__body--cols { display: flex; gap: 40px; }
.bm-order-section__col { flex: 1; font-size: 16px; line-height: 1.8; }
.bm-order-section__col--muted { color: rgba(0,0,0,0.6); }
.bm-order-section--row { display: flex; align-items: center; justify-content: space-between; }
.bm-order-section--row .bm-order-section__header { margin-bottom: 0; }
.bm-order-section__link { margin-left: auto; font-size: 14px; color: #000; text-decoration: underline; }

/* Order totals — last section in parcel */
.bm-order-totals {
  padding: 24px 30px;
  border-top: 1px solid rgba(0,0,0,0.1);
}
.bm-order-totals__title { font-weight: 600; font-size: 20px; margin-bottom: 16px; }
.bm-order-totals__row {
  display: flex;
  justify-content: space-between;
  font-size: 16px;
  font-weight: 500;
  line-height: 2;
}
.bm-order-totals__row--label { color: rgba(0,0,0,0.6); font-weight: 400; }
.bm-order-totals__divider { height: 1px; background: rgba(0,0,0,0.1); margin: 12px 0; }
.bm-order-totals__grand {
  display: flex;
  justify-content: space-between;
  font-weight: 700;
  font-size: 20px;
  line-height: 1.5;
}

/* Order history */
.bm-order-history { margin-top: 32px; }
.bm-order-history__title { font-size: 20px; font-weight: 600; margin-bottom: 16px; }
.bm-order-history__row {
  display: flex;
  gap: 24px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(0,0,0,0.06);
  font-size: 14px;
}
.bm-order-history__date { width: 100px; color: rgba(0,0,0,0.6); flex-shrink: 0; }
.bm-order-history__status { width: 140px; font-weight: 600; flex-shrink: 0; }
.bm-order-history__comment { flex: 1; color: rgba(0,0,0,0.6); }

/* ===== Order Detail Modals ===== */
.bm-modal--status { width: 600px; max-width: 100%; max-height: 90vh; display: flex; flex-direction: column; overflow: hidden; }
.bm-modal--passport { width: 600px; max-width: 100%; max-height: 90vh; display: flex; flex-direction: column; overflow: hidden; }
.bm-modal--map { width: 700px; max-width: 95vw; max-height: 90vh; display: flex; flex-direction: column; overflow: hidden; }
.bm-modal__body--map { padding: 0; flex: 1; min-height: 0; }
#pickup-map { width: 100%; height: 400px; }
.bm-map-footer { display: flex; align-items: center; justify-content: space-between; }
.bm-map-footer__carrier { font-weight: 600; font-size: 16px; margin-bottom: 2px; }
.bm-map-footer__address { font-size: 14px; color: rgba(0,0,0,0.6); }
.bm-modal--status .bm-modal__body,
.bm-modal--passport .bm-modal__body { overflow-y: auto; flex: 1; }
.bm-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 30px;
  border-bottom: 1px solid rgba(0,0,0,0.1);
}
.bm-modal__header .bm-modal__close {
  position: static;
  width: 24px; height: 24px;
  background: none; border: none; padding: 0;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.bm-modal__title { font-size: 24px; font-weight: 600; margin: 0; }
.bm-modal__body { padding: 24px 30px; }
.bm-modal__footer { padding: 24px 30px; border-top: 1px solid rgba(0,0,0,0.1); }
.bm-modal__form-row--3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.bm-modal__body .bm-field { margin-bottom: 16px; }
.bm-modal__body .bm-field__label {
  display: block; font-size: 16px; color: rgba(0,0,0,0.6); margin-bottom: 8px;
}
.bm-modal__body .bm-field__input {
  width: 100%; height: 44px;
  border: 1px solid rgba(0,0,0,0.1); border-radius: 8px;
  padding: 2px 16px; font-size: 16px; font-family: inherit;
  outline: none;
}
.bm-modal__body .bm-field__input:focus { border-color: #000; }

/* Timeline entry (delivery status modal — Figma: city bold, description, date) */
.bm-timeline-entry {
  display: flex;
  gap: 12px;
  margin-bottom: 24px;
}
.bm-timeline-entry:last-child { margin-bottom: 0; }
.bm-timeline-entry__num {
  width: 32px; height: 32px; flex-shrink: 0;
  border: 1px solid rgba(0,0,0,0.6);
  border-radius: 100px;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; font-weight: 600; color: rgba(0,0,0,0.6);
}
.bm-timeline-entry__content { flex: 1; }
.bm-timeline-entry__city { font-size: 16px; font-weight: 700; color: #000; margin-bottom: 4px; }
.bm-timeline-entry__status { font-size: 16px; color: rgba(0,0,0,0.6); margin-bottom: 2px; }
.bm-timeline-entry__comment { font-size: 16px; color: rgba(0,0,0,0.6); margin-bottom: 2px; }
.bm-timeline-entry__date { font-size: 16px; color: rgba(0,0,0,0.6); }

/* Edit Recipient Modal */
.bm-modal--recipient { width: 600px; max-width: 100%; max-height: 90vh; display: flex; flex-direction: column; overflow: hidden; }
.bm-modal--recipient .bm-modal__body { overflow-y: auto; flex: 1; }
.bm-modal__section-title { font-size: 20px; font-weight: 600; margin: 0 0 24px; display: flex; align-items: center; gap: 8px; }
.bm-modal__divider { height: 1px; background: rgba(0,0,0,0.1); margin: 8px 0 24px; }
.bm-modal__form-row--2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}
.bm-gender-toggle--modal { margin-bottom: 0; }

/* ===== EDIT PROFILE ===== */

/* Gender toggle */
.bm-gender-toggle {
  display: flex;
  gap: 20px;
}
.bm-gender-toggle__btn {
  flex: 1;
  height: 44px;
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 8px;
  background: #fff;
  font-size: 16px;
  font-weight: 500;
  color: #000;
  cursor: pointer;
  transition: all 0.2s;
  text-align: center;
}
.bm-gender-toggle__btn--active {
  background: rgba(0,0,0,0.05);
  border-color: rgba(0,0,0,0.05);
  font-weight: 500;
}

/* Edit profile form */
.bm-edit-form { max-width: 460px; }
.bm-edit-form .bm-gender-toggle { margin-bottom: 0; }
.bm-edit-form__submit {
  display: block;
  width: 100%;
  background: #000;
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 12px 24px;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
  cursor: pointer;
  margin-top: 8px;
}
.bm-edit-form__submit:hover { opacity: 0.85; }

/* Vertical form fields (Figma: label above input) */
.bm-vfield { margin-bottom: 16px; }
.bm-vfield__label {
  display: block;
  font-size: 16px;
  font-weight: 400;
  color: rgba(0,0,0,0.6);
  margin-bottom: 8px;
  line-height: 1.5;
}
.bm-vfield__label .required { color: #ed2939; }
.bm-vfield__req { color: #ed2939; }
.bm-vfield__input {
  width: 100%;
  height: 44px;
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 8px;
  padding: 0 16px;
  font-size: 16px;
  font-family: inherit;
  box-sizing: border-box;
}
.bm-vfield__input:focus { border-color: #000; outline: none; }
.bm-vfield .text-danger { font-size: 13px; color: #ed2939; margin-top: 4px; }
.has-error .bm-vfield__input { border-color: #ed2939; }

/* ===== ADDRESS CARDS ===== */
.bm-address-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.bm-address-card {
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 16px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.bm-address-card--default { border-color: rgba(0,0,0,0.6); }
.bm-address-card__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-height: 190px;
}
.bm-address-card__name { font-weight: 600; font-size: 20px; line-height: 1.5; }
.bm-address-card__details {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.bm-address-card__phone { font-size: 16px; line-height: 1.5; color: #000; }
.bm-address-card__text {
  font-size: 16px;
  line-height: 1.5;
  color: rgba(0,0,0,0.6);
}
.bm-address-card__default {
  font-size: 16px;
  line-height: 1.5;
  color: #000;
}
.bm-address-card__actions {
  display: flex;
  gap: 77px;
}
.bm-address-card__action {
  font-size: 16px;
  font-weight: 500;
  color: rgba(0,0,0,0.6);
  text-decoration: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  line-height: 1.5;
}
.bm-address-card__action:hover { text-decoration: underline; color: rgba(0,0,0,0.6); }
.bm-address-card--add {
  border: 1px solid rgba(0,0,0,0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: rgba(0,0,0,0.3);
  transition: border-color 0.2s;
}
.bm-address-card--add:hover { border-color: rgba(0,0,0,0.5); color: rgba(0,0,0,0.6); text-decoration: none; }

/* ===== ADDRESS FORM CARD ===== */
.bm-address-form-card {
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  max-width: 600px;
}
.bm-address-form__header {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 24px 30px;
}
.bm-address-form__title {
  flex: 1;
  font-size: 24px;
  font-weight: 600;
  line-height: 1.35;
  margin: 0;
}
.bm-address-form__close {
  color: #000;
  text-decoration: none;
}
.bm-address-form__close:hover { opacity: 0.6; }
.bm-address-form__section {
  padding: 24px 30px 30px;
  border-bottom: 1px solid rgba(0,0,0,0.1);
}
.bm-address-form__section-title {
  font-size: 20px;
  font-weight: 600;
  line-height: 1.5;
  margin-bottom: 24px;
}
.bm-address-form__fields {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.bm-address-form__row { display: flex; flex-direction: column; gap: 16px; }
.bm-address-form__row--2 { flex-direction: row; gap: 20px; }
.bm-address-form__row--2 > .bm-vfield { flex: 1; min-width: 0; }
.bm-address-form__footer {
  padding: 24px 30px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.bm-address-form__checkbox {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
  line-height: 1.5;
  cursor: pointer;
}
.bm-address-form__check-box { display: flex; align-items: center; }
.bm-address-form__submit {
  display: block;
  width: 100%;
  background: #000;
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 12px 24px;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
  cursor: pointer;
}
.bm-address-form__submit:hover { opacity: 0.85; }
.bm-vfield__select {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 6l4 4 4-4' stroke='rgba(0,0,0,0.6)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  padding-right: 40px;
}

/* ===== WISHLIST ===== */
.bm-account-content .bm-product-grid--catalog { grid-template-columns: repeat(4, 1fr); row-gap: 40px; }
.bm-account-content .bm-card-image::before { padding-bottom: 116.67%; /* 280/240 — wishlist card ratio per Figma */ }
.bm-wishlist-heart {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 2;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
  color: #ed2939;
}
.bm-wishlist-heart svg { fill: #ed2939; stroke: #ed2939; }
.bm-wishlist-heart--outline { color: #000; }
.bm-wishlist-heart--outline svg { fill: none; stroke: #000; }
.bm-wishlist-heart--outline:hover svg { stroke: #ed2939; }
.bm-card-stock-out { font-size: 14px; color: rgba(0,0,0,0.4); margin-top: 4px; }

/* ===== BALANCE PAGE ===== */
.bm-balance-row {
  display: flex;
  gap: 20px;
  margin-bottom: 32px;
}
.bm-balance-card {
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 16px;
  padding: 24px;
  flex: 1;
}
.bm-balance-card__label { font-size: 16px; color: rgba(0,0,0,0.6); margin-bottom: 8px; }
.bm-balance-card__value { font-weight: 700; font-size: 28px; line-height: 36px; }
.bm-partner-code-card { position: relative; }
.bm-partner-code-card__header { display: flex; align-items: center; gap: 6px; font-size: 16px; color: rgba(0,0,0,0.6); margin-bottom: 8px; }
.bm-partner-code-card__value {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  font-size: 20px;
}
.bm-copy-btn {
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
  opacity: 0.4;
}
.bm-copy-btn:hover { opacity: 1; }
.bm-partner-tooltip {
  position: absolute;
  top: -10px;
  right: 0;
  transform: translateY(-100%);
  background: #000;
  color: #fff;
  font-size: 13px;
  font-weight: 400;
  padding: 10px 14px;
  border-radius: 8px;
  max-width: 240px;
  line-height: 1.4;
  display: none;
}
.bm-partner-tooltip--visible { display: block; }

/* Balance table colored amounts */
.bm-amount-positive { color: #1bb249; font-weight: 600; }
.bm-amount-negative { color: #ed2939; font-weight: 600; }

/* ===== DATA TABLE (shared: balance, partner stats) ===== */
.bm-data-table { margin-bottom: 24px; }
.bm-data-table__head {
  display: flex;
  padding: 14px 0;
  border-bottom: 1px solid rgba(0,0,0,0.1);
  font-weight: 600;
  font-size: 14px;
  color: rgba(0,0,0,0.5);
}
.bm-data-table__row {
  display: flex;
  padding: 14px 0;
  border-bottom: 1px solid rgba(0,0,0,0.06);
  font-size: 14px;
  align-items: center;
}
.bm-data-table__row:hover { background: rgba(0,0,0,0.015); }
.bm-data-table__col { min-width: 0; }

/* Account balance header */
.bm-account-balance { font-size: 16px; color: rgba(0,0,0,0.7); }
.bm-account-balance strong { color: #000; font-weight: 700; }

/* ===== PARTNER PROGRAM ===== */
.bm-partner-info {
  background: #f2f2f2;
  border-radius: 8px;
  padding: 20px 24px;
  font-size: 14px;
  line-height: 1.6;
  margin-bottom: 32px;
}
.bm-partner-info strong { font-weight: 700; }

/* Promo materials */
.bm-promo-field { margin-bottom: 24px; }
.bm-promo-field__label { font-size: 14px; color: rgba(0,0,0,0.5); margin-bottom: 8px; }
.bm-promo-field__input-wrap {
  display: flex;
  align-items: center;
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 8px;
  height: 48px;
  padding: 0 12px 0 16px;
}
.bm-promo-field__input {
  flex: 1;
  border: none;
  font-size: 14px;
  font-family: inherit;
  background: transparent;
  outline: none;
  min-width: 0;
}
.bm-promo-field__copy-text {
  font-size: 13px;
  color: #1bb249;
  font-weight: 500;
  white-space: nowrap;
  display: none;
}
.bm-promo-field__copy-text--visible { display: block; }

/* Banners tab */
.bm-banner-section { margin-bottom: 32px; }
.bm-banner-section__title { font-weight: 700; font-size: 20px; margin-bottom: 16px; }
.bm-banner-grid { display: flex; gap: 20px; margin-bottom: 16px; }
.bm-banner-preview {
  background: #f2f2f2;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  color: rgba(0,0,0,0.3);
}
.bm-banner-preview--200x400 { width: 200px; height: 400px; }
.bm-banner-preview--900x90 { width: 100%; height: 90px; }

/* Stats tab */
.bm-stats-summary { margin-bottom: 32px; }
.bm-stats-row {
  display: flex;
  justify-content: space-between;
  padding: 10px 0;
  border-bottom: 1px solid rgba(0,0,0,0.06);
  font-size: 14px;
}
.bm-stats-row__label { color: rgba(0,0,0,0.6); }
.bm-stats-row__value { font-weight: 700; }
.bm-stats-chart-placeholder {
  background: #f8f8f8;
  border-radius: 12px;
  padding: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 24px;
}
.bm-stats-chart-placeholder__text { font-size: 14px; color: rgba(0,0,0,0.5); }

/* Date range picker */
.bm-date-range {
  display: flex;
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 8px;
  height: 44px;
  padding: 0 16px;
  font-size: 14px;
  cursor: pointer;
  margin-bottom: 24px;
  width: fit-content;
}
.bm-date-range svg { flex-shrink: 0; opacity: 0.5; }

/* ===== FORM ACTIONS ===== */
.bm-form-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid rgba(0,0,0,0.1);
}

/* Danger outline button */
.bm-btn--danger-outline {
  background: #fff;
  color: #ed2939;
  border: 1px solid #ed2939;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  font-weight: 600;
  font-size: 14px;
  cursor: pointer;
  text-decoration: none;
}
.bm-btn--danger-outline:hover { background: #ed2939; color: #fff; text-decoration: none; }

/* Outline button (e.g. "Перейти в каталог", "Отменить") */
.bm-btn--outline-black {
  background: #fff;
  color: #000;
  border: 1px solid #000;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  height: 48px;
  padding: 0 32px;
  font-weight: 600;
  font-size: 16px;
  cursor: pointer;
  text-decoration: none;
  font-family: inherit;
}
.bm-btn--outline-black:hover { background: #000; color: #fff; text-decoration: none; }

/* ===== 404 PAGE ===== */
.bm-404-page { padding-bottom: 40px; }
.bm-404-content {
  display: flex; flex-direction: column; align-items: center;
  min-height: 400px; justify-content: center; gap: 24px; text-align: center;
}
.bm-404-number {
  font-size: 150px; font-weight: 700; line-height: 1.35; color: rgba(0,0,0,0.1);
}
.bm-404-title {
  font-size: 24px; font-weight: 600; line-height: 1.35; color: #000; margin: 0;
}
.bm-404-desc {
  font-size: 16px; line-height: 1.35; color: rgba(0,0,0,0.6); margin: 0;
}
@media (max-width: 767px) {
  .bm-404-number { font-size: 80px; }
  .bm-404-title { font-size: 20px; }
  .bm-404-content { min-height: 300px; }
}

/* Fieldset legend for complex forms */
.bm-fieldset-legend {
  font-size: 18px;
  font-weight: 600;
  border: none;
  margin-bottom: 20px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(0,0,0,0.08);
}

/* Bootstrap form override inside account pages */
.bm-account-page .form-horizontal .form-group {
  margin-left: 0;
  margin-right: 0;
  margin-bottom: 16px;
}
.bm-account-page .form-horizontal .control-label {
  text-align: left;
  padding-top: 8px;
  font-weight: 500;
  font-size: 14px;
  width: 100%;
  float: none;
}
.bm-account-page .form-horizontal .col-sm-10,
.bm-account-page .form-horizontal .col-sm-3 {
  width: 100%;
  padding-left: 0;
  padding-right: 0;
  float: none;
}
.bm-account-page .form-horizontal .col-sm-2 {
  width: 100%;
  padding-left: 0;
  padding-right: 0;
  float: none;
}
.bm-account-page .form-control {
  height: 48px;
  border-radius: 8px;
  border: 1px solid rgba(0,0,0,0.1);
  font-size: 16px;
  padding: 0 16px;
  box-shadow: none;
}
.bm-account-page .form-control:focus { border-color: #000; box-shadow: none; }
.bm-account-page select.form-control {
  appearance: none; -webkit-appearance: none;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23000' stroke-width='1.5' fill='none'/%3E%3C/svg%3E") no-repeat right 16px center;
  padding-right: 40px;
}
.bm-account-page textarea.form-control { height: auto; padding: 12px 16px; }
.bm-account-page .has-error .form-control { border-color: #ed2939; }
.bm-account-page .text-danger { font-size: 13px; color: #ed2939; margin-top: 4px; }
.bm-account-page .radio label,
.bm-account-page .checkbox label,
.bm-account-page .radio-inline { font-size: 14px; font-weight: 400; }
.bm-account-page fieldset { border: none; padding: 0; margin: 0 0 24px; }
.bm-account-page .payment { display: none; }

/* ---------- Wishlist Toast ---------- */
.bm-toast {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 320px;
  background: #fff;
  border-radius: 16px;
  padding: 30px;
  z-index: 10001;
  box-shadow: 0 8px 40px rgba(0,0,0,0.2);
  animation: bm-fadeIn 0.25s ease;
}
.bm-toast-close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 24px;
  height: 24px;
  background: none;
  border: none;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  color: #000;
}
.bm-toast-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
  font-size: 16px;
  color: #000;
}
.bm-toast-row svg { flex-shrink: 0; }

/* Filled heart state */
.bm-action-wish--active { color: #20a149 !important; }
.bm-action-wish--active svg { fill: #20a149; }

/* ---------- Cookie Consent Banner ---------- */
.bm-cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  display: flex;
  justify-content: center;
  padding: 20px;
  pointer-events: none;
}
.bm-cookie-card {
  position: relative;
  width: 680px;
  max-width: 100%;
  background: #fff;
  border-radius: 16px;
  padding: 30px;
  box-shadow: 0 8px 40px rgba(0,0,0,0.15);
  pointer-events: auto;
  animation: bm-slideUp 0.35s ease;
}
.bm-cookie-close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 24px;
  height: 24px;
  background: none;
  border: none;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  color: #000;
}
.bm-cookie-text {
  font-size: 16px;
  line-height: 1.5;
  color: #000;
  margin: 0 0 24px;
}
.bm-cookie-text a { color: #000; text-decoration: underline; }
.bm-cookie-buttons {
  display: flex;
  gap: 20px;
}
.bm-cookie-buttons .bm-btn {
  flex: 1;
  height: 48px;
  font-size: 16px;
  font-weight: 600;
  border-radius: 8px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ---------- Cookie Settings Link (in banner) ---------- */
.bm-cookie-settings-row {
  margin-top: 16px;
  text-align: center;
}
.bm-cookie-settings-link {
  background: none;
  border: none;
  padding: 0;
  font-size: 14px;
  color: rgba(0,0,0,0.5);
  text-decoration: underline;
  cursor: pointer;
  font-family: inherit;
}
.bm-cookie-settings-link:hover { color: #000; }

/* ---------- Cookie Settings Modal ---------- */
#cookie-settings-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.45);
  z-index: 10001;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  animation: bm-fadeIn 0.2s ease;
}
.bm-cs-card {
  width: 560px;
  max-width: 100%;
  max-height: 90vh;
  background: #fff;
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  animation: bm-slideUp 0.3s ease;
}
.bm-cs-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  border-bottom: 1px solid #f0f0f0;
  flex-shrink: 0;
}
.bm-cs-title {
  font-size: 18px;
  font-weight: 600;
  color: #000;
  margin: 0;
}
.bm-cs-close {
  width: 32px;
  height: 32px;
  background: none;
  border: none;
  cursor: pointer;
  color: #000;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.bm-cs-body {
  flex: 1;
  overflow-y: auto;
  padding: 0 24px;
}
.bm-cs-row {
  border-bottom: 1px solid #f0f0f0;
  padding: 16px 0;
}
.bm-cs-row:last-child { border-bottom: none; }
.bm-cs-row-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}
.bm-cs-row-info {
  display: flex;
  align-items: center;
  gap: 10px;
}
.bm-cs-row-name {
  font-size: 15px;
  font-weight: 600;
  color: #000;
}
.bm-cs-badge {
  font-size: 11px;
  font-weight: 600;
  color: rgba(0,0,0,0.5);
  background: #f2f2f2;
  border-radius: 4px;
  padding: 2px 7px;
  white-space: nowrap;
}
/* Toggle switch */
.bm-cs-toggle {
  width: 40px;
  height: 24px;
  border-radius: 12px;
  background: #d0d0d0;
  border: none;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
  transition: background 0.2s;
  padding: 0;
}
.bm-cs-toggle.is-on { background: #000; }
.bm-cs-toggle:disabled { cursor: default; }
.bm-cs-toggle::after {
  content: '';
  position: absolute;
  top: 3px;
  left: 3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #fff;
  transition: transform 0.2s;
}
.bm-cs-toggle.is-on::after { transform: translateX(16px); }
/* Accordion */
.bm-cs-accordion {
  display: flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: none;
  padding: 0;
  font-size: 13px;
  color: rgba(0,0,0,0.5);
  cursor: pointer;
  font-family: inherit;
}
.bm-cs-accordion:hover { color: #000; }
.bm-cs-chevron { transition: transform 0.2s; }
.bm-cs-accordion.is-open .bm-cs-chevron { transform: rotate(180deg); }
.bm-cs-desc {
  margin-top: 12px;
}
.bm-cs-desc p {
  font-size: 13px;
  color: rgba(0,0,0,0.6);
  line-height: 1.55;
  margin: 0 0 10px;
}
.bm-cs-table-wrap { overflow-x: auto; margin-top: 8px; }
.bm-cs-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
  color: rgba(0,0,0,0.7);
}
.bm-cs-table th, .bm-cs-table td {
  text-align: left;
  padding: 7px 10px;
  border-bottom: 1px solid #f0f0f0;
}
.bm-cs-table th { font-weight: 600; color: #000; background: #fafafa; }
/* Footer */
.bm-cs-footer {
  display: flex;
  gap: 10px;
  padding: 16px 24px;
  border-top: 1px solid #f0f0f0;
  flex-shrink: 0;
  flex-wrap: wrap;
}
.bm-cs-footer .bm-btn {
  flex: 1;
  min-width: 0;
  height: 44px;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
}

/* ---------- Newsletter Popup Modal ---------- */
#newsletter-overlay {
  position: fixed;
  inset: 0;
  background: rgba(4,4,4,0.4);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  animation: bm-fadeIn 0.25s ease;
}
.bm-nl-card {
  position: relative;
  width: 560px;
  max-width: 100%;
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
}
.bm-nl-photo {
  position: relative;
  height: 320px;
  overflow: hidden;
  background: linear-gradient(90deg, #666 0%, #666 100%);
}
.bm-nl-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.bm-nl-photo::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at center bottom, transparent 0%, rgba(0,0,0,0.30) 100%);
}
.bm-nl-close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 40px;
  height: 40px;
  z-index: 2;
  background: rgba(255,255,255,0.15);
  border: none;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.bm-nl-close svg { color: #fff; }
.bm-nl-body {
  padding: 30px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.bm-nl-texts {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.bm-nl-title {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.35;
  color: #000;
  margin: 0;
}
.bm-nl-subtitle {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  color: rgba(0,0,0,0.6);
  margin: 0;
}
.bm-nl-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.bm-nl-input {
  width: 100%;
  height: 48px;
  border: 1px solid rgba(0,0,0,0.1);
  border-radius: 8px;
  padding: 0 16px;
  font-size: 16px;
  font-family: inherit;
  outline: none;
  transition: border-color 0.2s;
}
.bm-nl-input:focus {
  border-color: rgba(0,0,0,0.3);
}
.bm-nl-input.has-error {
  border-color: #ed2939;
}
.bm-nl-btn {
  width: 100%;
  height: 48px;
  background: #000;
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: background 0.2s;
}
.bm-nl-btn:hover { background: #222; }
.bm-nl-error {
  font-size: 14px;
  color: #ed2939;
  margin-top: -12px;
}

/* Newsletter success toast */
.bm-nl-toast {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 10001;
  width: 420px;
  max-width: calc(100vw - 40px);
  background: #fff;
  border-radius: 16px;
  padding: 16px 30px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.08);
  display: flex;
  align-items: center;
  gap: 10px;
  animation: bm-slideDown 0.3s ease;
}
.bm-nl-toast__close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 24px;
  height: 24px;
  background: none;
  border: none;
  font-size: 18px;
  cursor: pointer;
  color: rgba(0,0,0,0.4);
}
.bm-nl-toast__icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  opacity: 0.5;
}
.bm-nl-toast__text {
  font-size: 16px;
  line-height: 1.5;
  color: #000;
}
@keyframes bm-slideDown {
  from { transform: translateY(-20px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

/* ---------- Buyback Request Modal ---------- */
#buyback-overlay {
  position: fixed; inset: 0;
  background: rgba(4,4,4,0.4); z-index: 10000;
  display: none; align-items: center; justify-content: center;
  padding: 20px;
}
#buyback-overlay.active { display: flex; animation: bm-fadeIn 0.2s ease; }
/* --- Buyback card container --- */
.bm-buyback-card {
  position: relative;
  width: 480px; max-width: 100%; max-height: 90vh;
  background: #fff; border-radius: 16px;
  display: flex; flex-direction: column; overflow: hidden;
}
.bm-buyback-card--detail, .bm-buyback-card--brands { width: 560px; }
.bm-buyback-scroll { padding: 30px; overflow-y: auto; flex: 1; }
.bm-buyback-close {
  position: absolute; top: 10px; right: 10px; z-index: 2;
  width: 24px; height: 24px; background: none; border: none; padding: 0;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
}

/* --- Head --- */
.bm-buyback-head { margin-bottom: 24px; }
.bm-buyback-title { font-size: 24px; font-weight: 700; color: #000; margin: 0 0 16px; line-height: 1.35; }
.bm-buyback-title--brands { font-size: 24px; }
.bm-buyback-desc { font-size: 16px; line-height: 1.5; color: rgba(0,0,0,0.6); margin: 0; }
.bm-buyback-desc--muted { color: rgba(0,0,0,0.5); }
.bm-buyback-link { color: rgba(0,0,0,0.6); text-decoration: underline; }
.bm-buyback-link:hover { color: #000; }

/* --- Form fields --- */
.bm-buyback-form .bm-field { margin-bottom: 20px; }
.bm-buyback-form .bm-field__label {
  display: block; font-size: 16px; font-weight: 400; color: rgba(0,0,0,0.6); margin-bottom: 8px;
}
.bm-buyback-input {
  width: 100%; height: 44px;
  border: 1px solid rgba(0,0,0,0.1); border-radius: 8px;
  padding: 2px 16px; font-size: 16px; color: #000;
  outline: none; transition: border-color 0.2s;
}
.bm-buyback-input:focus { border-color: #000; }
.bm-buyback-input--lg { height: 48px; }
.bm-buyback-textarea {
  height: 132px; padding: 14px 16px; resize: vertical;
}
.bm-buyback-textarea::placeholder { color: rgba(0,0,0,0.4); }

/* Phone field (reuses checkout pattern) */
.bm-buyback-form .bm-field__phone {
  display: flex; align-items: center;
  border: 1px solid rgba(0,0,0,0.1); border-radius: 8px;
  height: 44px; padding: 0 16px; gap: 10px;
}
.bm-buyback-form .bm-field__phone .bm-field__input--phone {
  border: none; height: 100%; padding: 0; flex: 1;
}

/* Custom messenger select */
.bm-buyback-select { position: relative; }
.bm-buyback-select__trigger {
  display: flex; align-items: center; justify-content: space-between;
  height: 48px; padding: 0 16px;
  border: 1px solid rgba(0,0,0,0.1); border-radius: 8px;
  cursor: pointer; font-size: 16px; color: #000;
}
.bm-buyback-select__trigger:hover { border-color: rgba(0,0,0,0.2); }
.bm-buyback-select__arrow { flex-shrink: 0; transition: transform 0.2s; }
.bm-buyback-select.open .bm-buyback-select__arrow { transform: rotate(180deg); }
.bm-buyback-select__dropdown {
  position: absolute; top: calc(100% + 4px); left: 0; width: 100%; z-index: 5;
  background: #fff; border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.08);
  padding: 4px 0;
}
.bm-buyback-select__option {
  padding: 8px 16px; font-size: 16px; color: #000; cursor: pointer; opacity: 0.5;
}
.bm-buyback-select__option:hover { background: rgba(0,0,0,0.05); opacity: 1; }
.bm-buyback-select__option.selected { opacity: 1; background: rgba(0,0,0,0.05); }

/* Upload (dashed border per Figma) */
.bm-buyback-upload {
  display: flex; align-items: center; justify-content: center;
  gap: 10px; height: 48px;
  border: 1px dashed #000; border-radius: 8px;
  cursor: pointer; font-size: 16px; color: #000;
  transition: background 0.2s; margin-bottom: 20px;
}
.bm-buyback-upload:hover { background: rgba(0,0,0,0.03); }
.bm-buyback-upload svg { flex-shrink: 0; }

/* Photo thumbnails (Figma: 97×100, r12, bg #f2f2f2) */
.bm-buyback-thumbs {
  display: flex; gap: 10px; margin-bottom: 20px; flex-wrap: wrap;
}
.bm-buyback-thumbs:empty { display: none; }
.bm-buyback-thumb {
  position: relative; width: 97px; height: 100px;
  border-radius: 12px; overflow: hidden; background: #f2f2f2;
  padding: 10px;
}
.bm-buyback-thumb img { width: 100%; height: 100%; object-fit: contain; }
.bm-buyback-thumb-del {
  position: absolute; top: 4px; right: 4px;
  width: 16px; height: 16px; background: none;
  border: none; padding: 0; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}

/* Checkbox */
.bm-buyback-consents { margin-top: 0; }
.bm-checkbox {
  display: flex; align-items: flex-start; gap: 10px;
  cursor: pointer; margin-bottom: 10px; font-size: 16px; line-height: 1.5; color: rgba(0,0,0,0.6);
}
.bm-checkbox input { display: none; }
.bm-checkbox__box {
  width: 24px; height: 24px; flex-shrink: 0;
  border: 1px solid rgba(0,0,0,0.1); border-radius: 4px;
  position: relative; transition: background 0.2s, border-color 0.2s;
}
.bm-checkbox input:checked ~ .bm-checkbox__box { background: #000; border-color: #000; }
.bm-checkbox input:checked ~ .bm-checkbox__box::after {
  content: ''; position: absolute; left: 7px; top: 3px;
  width: 8px; height: 13px; border: solid #fff; border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.bm-checkbox__text u { text-decoration: underline; font-weight: 500; }

/* Footer with button */
.bm-buyback-footer { padding: 30px 20px; }

/* --- Detail/Подробнее screen --- */
.bm-buyback-hero {
  position: relative; height: 320px; overflow: hidden;
  border-radius: 16px 16px 0 0;
  background: #666;
}
.bm-buyback-hero__img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
}
.bm-buyback-hero__overlay {
  position: absolute; bottom: 0; left: 0; width: 100%;
  padding: 30px; text-align: center; color: #fff;
  background: radial-gradient(ellipse at center bottom, rgba(0,0,0,0.5) 0%, transparent 100%);
}
.bm-buyback-hero__brand {
  font-size: 32px; font-weight: 700; letter-spacing: 1.28px; margin: 0 0 16px; line-height: 30px;
}
.bm-buyback-hero__subtitle { font-size: 16px; line-height: 1.5; margin: 0; }
.bm-buyback-close--hero {
  top: 10px; right: 10px; width: 40px; height: 40px;
  background: rgba(0,0,0,0.4); border-radius: 50%;
}
.bm-buyback-section { margin-bottom: 24px; }
.bm-buyback-section__title { font-size: 24px; font-weight: 700; color: #000; margin: 0 0 16px; line-height: 1.35; }
.bm-buyback-section__text {
  font-size: 16px; line-height: 1.5; color: rgba(0,0,0,0.6); margin: 0 0 16px;
}
.bm-buyback-section__text:last-child { margin-bottom: 0; }
.bm-buyback-section__text b { font-weight: 600; color: #000; }

/* --- Brands grid --- */
.bm-buyback-brands-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); column-gap: 20px; row-gap: 20px;
}
.bm-buyback-brands-grid span {
  display: flex; align-items: center; justify-content: center;
  height: 47px; font-size: 12px; font-weight: 500; color: #000;
  text-align: center; padding: 4px 6px;
}


/* ===== BRANDS PAGE ===== */
.bm-brands-page { padding-bottom: 80px; }
.bm-brands-title { font-size: 32px; font-weight: 600; line-height: 1.35; margin: 0 0 32px; }

.bm-brands-layout { display: flex; gap: 40px; align-items: flex-start; }

/* Sidebar */
.bm-brands-sidebar { width: 340px; flex-shrink: 0; display: flex; flex-direction: column; gap: 24px; }

.bm-brands-search {
  position: relative;
}
.bm-brands-search input {
  width: 100%; height: 44px; border: 1px solid rgba(0,0,0,0.1); border-radius: 8px;
  padding: 10px 44px 10px 16px; font-size: 16px; line-height: 1.5;
  font-family: 'Nunito Sans', sans-serif; outline: none; background: #fff;
}
.bm-brands-search input:focus { border-color: rgba(0,0,0,0.3); }
.bm-brands-search input::placeholder { color: rgba(0,0,0,0.6); }
.bm-brands-search__icon { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); pointer-events: none; }

/* Filter sections */
.bm-brands-filter-section { display: flex; flex-direction: column; gap: 16px; }
.bm-brands-filter-head {
  display: flex; align-items: center; justify-content: space-between; cursor: pointer;
  font-size: 20px; font-weight: 600; line-height: 1.5; color: #000;
}
.bm-brands-filter-head svg { transition: transform 0.2s; flex-shrink: 0; }
.bm-brands-filter-head.collapsed svg { transform: rotate(-90deg); }
.bm-brands-filter-body { overflow: hidden; transition: max-height 0.3s; }
.bm-brands-filter-body.collapsed { display: none; }

/* Alphabet grid */
.bm-brands-alpha-grid {
  display: flex; flex-wrap: wrap; gap: 0; justify-content: flex-start;
}
.bm-alpha-cell {
  display: flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; font-size: 16px; text-transform: uppercase;
  color: rgba(0,0,0,0.6); text-decoration: none; border-radius: 8px; transition: background 0.15s, color 0.15s;
}
.bm-alpha-cell:hover, .bm-alpha-cell.active { background: rgba(0,0,0,0.05); color: #000; }

/* Filter links */
.bm-brands-filter-links { display: flex; flex-direction: column; gap: 12px; }
.bm-brands-filter-link {
  font-size: 16px; line-height: 1.5; color: rgba(0,0,0,0.6); text-decoration: none;
}
.bm-brands-filter-link:hover { color: #000; }
.bm-brands-filter-link--active { color: #000; }

/* Brand content — CSS columns for balanced flow */
.bm-brands-content {
  flex: 1; min-width: 0;
  column-count: 3; column-gap: 40px;
}
.bm-brands-letter-group {
  break-inside: avoid; margin-bottom: 32px;
}
.bm-brands-letter {
  font-size: 24px; font-weight: 600; line-height: 1.35; margin: 0 0 16px; color: #000;
}
.bm-brands-list { display: flex; flex-direction: column; }
.bm-brands-item {
  font-size: 16px; line-height: 1.5; color: rgba(0,0,0,0.6); text-decoration: none;
  padding: 4px 0;
}
.bm-brands-item:hover { color: #000; }
.bm-brands-item.bm-hidden { display: none; }
.bm-brands-letter-group.bm-hidden { display: none; }

/* Responsive */
@media (max-width: 991px) {
  .bm-brands-layout { flex-direction: column; gap: 24px; }
  .bm-brands-sidebar { width: 100%; }
  .bm-brands-content { column-count: 2; }
}
@media (max-width: 767px) {
  .bm-brands-title { font-size: 24px; margin-bottom: 24px; }
  .bm-brands-content { column-count: 1; }
}

/* ===== NEWS LIST PAGE ===== */
.bm-news-page { padding-bottom: 80px; }
.bm-news-title {
  font-size: 32px; font-weight: 600; line-height: 1.3; margin: 0 0 40px; color: #000;
}
.bm-news-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px 20px;
}
.bm-news-card {
  display: flex; flex-direction: column; text-decoration: none; color: inherit;
}
.bm-news-card:hover .bm-news-card__name { color: rgba(0,0,0,0.7); }
.bm-news-card__img {
  height: 240px; border-radius: 16px; overflow: hidden; margin-bottom: 12px;
}
.bm-news-card__img img {
  width: 100%; height: 100%; object-fit: cover;
}
.bm-news-card__body { display: flex; flex-direction: column; gap: 8px; }
.bm-news-card__date {
  font-size: 14px; line-height: 1.4; color: rgba(0,0,0,0.4);
}
.bm-news-card__name {
  font-size: 18px; font-weight: 600; line-height: 1.45; color: #000;
  margin: 0; transition: color 0.2s;
}
.bm-news-card__desc {
  font-size: 16px; line-height: 1.5; color: rgba(0,0,0,0.6);
  margin: 0; max-height: 95px; overflow: hidden;
}

/* ===== ARTICLE PAGE ===== */
.bm-article-page { padding-bottom: 80px; }
.bm-article-wrapper {
  max-width: 900px; margin: 0 auto;
}
.bm-article-title {
  font-size: 32px; font-weight: 600; line-height: 1.3; margin: 0 0 32px; color: #000;
}
.bm-article-hero {
  height: 442px; border-radius: 16px; overflow: hidden; margin-bottom: 40px;
}
.bm-article-hero img {
  width: 100%; height: 100%; object-fit: cover;
}

/* Article rich content */
.bm-article-content { margin-bottom: 40px; }
.bm-article-content p {
  font-size: 16px; line-height: 1.6; color: #000; margin: 0 0 16px;
}
.bm-article-content h2 {
  font-size: 24px; font-weight: 600; line-height: 1.35; margin: 32px 0 16px; color: #000;
}
.bm-article-content h3 {
  font-size: 20px; font-weight: 600; line-height: 1.4; margin: 24px 0 12px; color: #000;
}
.bm-article-content img {
  max-width: 100%; height: auto; border-radius: 16px; margin: 16px 0;
}
.bm-article-content ul {
  list-style: none; padding: 0; margin: 0 0 16px;
}
.bm-article-content ul li {
  font-size: 16px; line-height: 1.6; color: #000; padding-left: 20px; position: relative; margin-bottom: 8px;
}
.bm-article-content ul li::before {
  content: ''; width: 6px; height: 6px; border-radius: 50%; background: #000;
  position: absolute; left: 0; top: 10px;
}
.bm-article-content blockquote {
  border: 1px solid rgba(0,0,0,0.1); border-radius: 16px; padding: 16px 20px;
  margin: 16px 0; font-style: italic;
}
.bm-article-content blockquote p { margin: 0; }

/* Article gallery */
.bm-article-gallery {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin-bottom: 40px;
}
.bm-article-gallery__item {
  height: 320px; border-radius: 16px; overflow: hidden; display: block;
}
.bm-article-gallery__item img {
  width: 100%; height: 100%; object-fit: cover;
}

/* Article nav bar */
.bm-article-nav {
  display: flex; align-items: center; justify-content: space-between;
  background: rgba(0,0,0,0.05); border-radius: 16px; padding: 16px 20px;
  margin-bottom: 60px;
}
.bm-article-nav__left,
.bm-article-nav__right {
  display: flex; align-items: center; gap: 8px;
  font-size: 16px; font-weight: 500; color: #000; cursor: pointer;
}
.bm-article-nav__left:hover,
.bm-article-nav__right:hover { color: rgba(0,0,0,0.6); }
.bm-article-nav__center {
  display: flex; align-items: center; gap: 8px;
  font-size: 14px; color: rgba(0,0,0,0.4);
}

/* Article products */
.bm-article-products { margin-bottom: 60px; }
.bm-article-products__title {
  font-size: 32px; font-weight: 600; line-height: 1.3; margin: 0 0 32px; color: #000;
}
.bm-article-products__grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px;
}

/* Article related */
.bm-article-related__title {
  font-size: 32px; font-weight: 600; line-height: 1.3; margin: 0 0 32px; color: #000;
}

/* News responsive */
@media (max-width: 991px) {
  .bm-news-grid { grid-template-columns: repeat(3, 1fr); }
  .bm-article-products__grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 767px) {
  .bm-news-title { font-size: 24px; margin-bottom: 24px; }
  .bm-news-grid { grid-template-columns: repeat(2, 1fr); gap: 24px 16px; }
  .bm-news-card__img { height: 180px; }
  .bm-article-title { font-size: 24px; margin-bottom: 24px; }
  .bm-article-hero { height: 240px; margin-bottom: 24px; }
  .bm-article-gallery { grid-template-columns: 1fr; }
  .bm-article-gallery__item { height: 220px; }
  .bm-article-nav { flex-direction: column; gap: 12px; }
  .bm-article-products__title { font-size: 24px; }
  .bm-article-products__grid { grid-template-columns: repeat(2, 1fr); }
  .bm-article-related__title { font-size: 24px; }
}
@media (max-width: 480px) {
  .bm-news-grid { grid-template-columns: 1fr; }
  .bm-article-products__grid { grid-template-columns: repeat(2, 1fr); }
}

/* Animations */
@keyframes bm-fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes bm-slideUp { from { transform: translateY(30px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }

/* ---------- Modal Overlay (shared) ---------- */
.bm-modal-overlay-bg {
  position: fixed;
  inset: 0;
  background: rgba(4,4,4,0.7);
  z-index: 9998;
}


