/* bcwishlist — избранное по размерам */

.bcwl-modal {
  display: none;
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 10050;
}
.bcwl-modal.bcwl-modal-open { display: block; }
.bcwl-modal-overlay {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(17,17,17,.55);
}
.bcwl-modal-window {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 92%; max-width: 420px;
  max-height: 86vh; overflow: auto;
  background: #fff;
  border-radius: 14px;
  padding: 22px 20px 18px;
  box-shadow: 0 18px 48px rgba(0,0,0,.22);
}
.bcwl-modal-close {
  position: absolute; top: 8px; right: 12px;
  border: 0; background: none;
  font-size: 28px; line-height: 1;
  color: #9a9a9a; cursor: pointer;
  padding: 4px 8px;
}
.bcwl-modal-close:hover { color: #111; }
.bcwl-head { margin-bottom: 14px; padding-right: 24px; }
.bcwl-title { font-size: 17px; font-weight: 600; color: #111; letter-spacing: .2px; }
.bcwl-product { margin-top: 4px; font-size: 12px; line-height: 1.35; color: #8b8b8b; }
.bcwl-sizes { list-style: none; margin: 0; padding: 0; border-top: 1px solid #ededed; }
.bcwl-size {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; padding: 11px 2px; border-bottom: 1px solid #ededed;
}
.bcwl-size-name { flex: 0 0 auto; min-width: 48px; font-size: 15px; font-weight: 600; color: #111; }
.bcwl-size-state { flex: 1 1 auto; font-size: 12px; color: #7f9c7f; }
.bcwl-size-out .bcwl-size-name { color: #9a9a9a; }
.bcwl-size-out .bcwl-size-state { color: #b07a5a; }
.bcwl-heart {
  position: relative;
  flex: 0 0 auto;
  width: 34px; height: 34px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 0;
  background: none;
  color: #713B3B;
  cursor: pointer;
  padding: 0;
}
.bcwl-heart:active { transform: scale(.92); }
.bcwl-heart svg { fill: none; stroke: #713B3B; stroke-width: 1.7; }
.bcwl-heart-on svg { fill: #713B3B; }
.bcwl-heart-busy { opacity: .5; pointer-events: none; }

.bcwl-hint { margin-top: 12px; font-size: 11.5px; line-height: 1.4; color: #9a9a9a; }
.bcwl-error { padding: 10px 0; color: #c0392b; font-size: 14px; }
.bcwl-loader {
  margin: 30px auto; width: 26px; height: 26px;
  border: 2px solid #e6e6e6; border-top-color: #111;
  border-radius: 50%; animation: bcwl-spin .7s linear infinite;
}
@keyframes bcwl-spin { to { transform: rotate(360deg); } }
.bcwl-toast {
  position: fixed; left: 50%; bottom: 26px;
  transform: translateX(-50%) translateY(20px);
  background: #111; color: #fff; font-size: 13px;
  padding: 11px 18px; border-radius: 24px;
  opacity: 0; pointer-events: none;
  transition: opacity .2s ease, transform .2s ease;
  z-index: 10060; max-width: 88%; text-align: center;
}
.bcwl-toast-on { opacity: 1; transform: translateX(-50%) translateY(0); }
@media (max-width: 480px) {
  .bcwl-modal-window {
    top: auto; bottom: 0; left: 0;
    transform: none; width: 100%; max-width: none;
    border-radius: 16px 16px 0 0; max-height: 82vh;
  }
}

/* Кабинет «Избранное» */

.bcwl-acc-title { font-size: 24px; font-weight: 600; margin: 0 0 22px; color: #111; }
.bcwl-acc-section { margin-bottom: 38px; }
.bcwl-acc-subtitle {
  font-size: 15px; font-weight: 600; color: #111;
  margin-bottom: 14px; padding-bottom: 8px;
  border-bottom: 1px solid #ededed;
}
.bcwl-acc-count {
  display: inline-block; min-width: 22px; margin-left: 6px;
  padding: 1px 7px; font-size: 12px; font-weight: 500;
  color: #7a7a7a; background: #f4f4f4;
  border-radius: 11px; text-align: center;
}
.bcwl-acc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: 22px;
}
.bcwl-acc-card { display: flex; flex-direction: column; position: relative; }
.bcwl-acc-card-appeared::before {
  content: ''; position: absolute; top: 10px; left: 10px;
  width: 8px; height: 8px; border-radius: 50%;
  background: #4a8a4a; z-index: 2;
}
.bcwl-acc-image { display: block; background: #f6f6f6; overflow: hidden; }
.bcwl-acc-image img { width: 100%; height: auto; display: block; }
.bcwl-acc-info { padding-top: 10px; }
.bcwl-acc-name { display: block; font-size: 13px; line-height: 1.35; color: #111; text-decoration: none; }
.bcwl-acc-name:hover { text-decoration: underline; }
.bcwl-acc-size { margin-top: 5px; font-size: 12px; color: #7a7a7a; }
.bcwl-acc-price { margin-top: 6px; font-size: 14px; font-weight: 600; color: #111; }
.bcwl-acc-old { margin-left: 6px; font-size: 12px; font-weight: 400; color: #a5a5a5; text-decoration: line-through; }
.bcwl-acc-state { margin-top: 5px; font-size: 11.5px; color: #7f9c7f; }
.bcwl-acc-state-out { color: #b07a5a; }
.bcwl-acc-state-appeared { color: #4a8a4a; font-weight: 600; }
.bcwl-acc-empty { padding: 18px 0; font-size: 13px; color: #9a9a9a; }

/* Перелистывание фото при наведении */

.bcwl-acc-image { position: relative; display: block; }
.bcwl-slide { display: none; }
.bcwl-slide-active { display: block; }
.bcwl-slide img { width: 100%; height: auto; display: block; }
.bcwl-zones { position: absolute; top: 0; left: 0; right: 0; bottom: 0; display: flex; z-index: 2; }
.bcwl-zone { flex: 1 1 auto; height: 100%; }
.bcwl-dots {
  position: absolute; bottom: 8px; left: 0; right: 0;
  display: flex; justify-content: center; gap: 4px; z-index: 3;
  opacity: 0; transition: opacity .2s ease;
}
.bcwl-acc-image:hover .bcwl-dots { opacity: 1; }
.bcwl-dot { width: 16px; height: 3px; background: rgba(17,17,17,.2); border-radius: 2px; }
.bcwl-dot-active { background: #111; }

/* Кнопка удаления поверх фото */

.bcwl-acc-remove {
  position: absolute;
  top: 8px; right: 8px;
  z-index: 4;
  width: 32px; height: 32px;
  display: flex; align-items: center; justify-content: center;
  border: 0; padding: 0;
  background: rgba(255,255,255,.85);
  border-radius: 50%;
  color: #c0392b;
  cursor: pointer;
  opacity: 0;
  transition: opacity .2s ease, background .2s ease;
}
.bcwl-acc-remove svg { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.bcwl-acc-card:hover .bcwl-acc-remove { opacity: 1; }
.bcwl-acc-remove:hover { background: #fff; }
@media (max-width: 768px) { .bcwl-acc-remove { opacity: 1; } }

/* Счётчик на сердечке в шапке */

.bcwl-icon-wrap { position: relative; display: inline-block; line-height: 0; }
.bcwl-badge {
  position: absolute;
  top: -7px; right: -9px;
  min-width: 16px; height: 16px;
  padding: 0 4px;
  display: none;
  align-items: center; justify-content: center;
  background: #111; color: #fff;
  font-size: 10px; font-weight: 600; line-height: 1;
  border-radius: 8px;
  pointer-events: none;
}

/* Хлебная крошка */

.bcwl-crumbs {
  display: flex; align-items: center; gap: 7px;
  margin: 14px 0 18px;
  font-size: 13px; color: #7a7a7a;
}
.bcwl-crumbs svg { fill: currentColor; }

/* Сердце на карточке товара — без кружка */

.bcwl-styled {
  position: relative;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
  width: auto !important;
  height: auto !important;
  padding: 4px !important;
}

.bcwl-heart-icon {
  width: 23px;
  height: 23px;
  display: block;
  fill: none;
  stroke: #713B3B;
  stroke-width: 1.7;
}

.bcwl-on .bcwl-heart-icon { fill: #713B3B; }

/* Эффект добавления: пульс + искры */

@keyframes bcwl-pop {
  0%   { transform: scale(1); }
  30%  { transform: scale(1.4); }
  55%  { transform: scale(0.88); }
  75%  { transform: scale(1.1); }
  100% { transform: scale(1); }
}

@keyframes bcwl-sparkle {
  0%   { transform: translate(0,0) scale(1); opacity: 1; }
  100% { transform: translate(var(--dx), var(--dy)) scale(0); opacity: 0; }
}

.bcwl-pop { animation: bcwl-pop .5s cubic-bezier(.3,1.5,.5,1); transform-origin: center; }

.bcwl-spark {
  position: absolute;
  top: 50%; left: 50%;
  width: 5px; height: 5px;
  margin: -2.5px 0 0 -2.5px;
  border-radius: 50%;
  background: #713B3B;
  pointer-events: none;
  animation: bcwl-sparkle .6s ease-out forwards;
}
