/* CodeMola Shop Toolkit — FNX-token aware, self-sufficient elsewhere */
:root { --cmtk-gold: var(--fnx-gold, #c6a15b); --cmtk-black: var(--fnx-black, #111); }

/* Wishlist hearts */
.cmtk-wish {
  border: 0; cursor: pointer; background: rgba(255, 255, 255, 0.92); color: var(--cmtk-black);
  width: 36px; height: 36px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  transition: transform 0.2s ease, color 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}
.cmtk-wish svg { width: 18px; height: 18px; stroke-width: 1.5; transition: fill 0.2s ease; }
.cmtk-wish:hover { transform: scale(1.1); }
.cmtk-wish.is-active { color: #c0392b; }
.cmtk-wish.is-active svg { fill: currentColor; }
.cmtk-wish--loop { position: absolute; top: 10px; right: 10px; z-index: 3; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12); }
li.product, .fnx-product-card { position: relative; }
.cmtk-wish--single { width: 44px; height: 44px; border: 1px solid rgba(0, 0, 0, 0.15); background: transparent; margin-left: 10px; vertical-align: middle; }
.cmtk-wish--single svg { width: 20px; height: 20px; }
.cmtk-wishlist-empty { padding: 2em 0; opacity: 0.7; }

/* Toast (wishlist + stock-alert feedback) */
.cmtk-toast {
  position: fixed; left: 50%; bottom: 26px; transform: translate(-50%, 16px);
  z-index: 9999; background: var(--cmtk-black); color: #fff;
  font-size: 0.8rem; letter-spacing: 0.08em; padding: 11px 20px;
  opacity: 0; transition: opacity 0.25s ease, transform 0.25s ease; pointer-events: none;
}
.cmtk-toast.is-on { opacity: 1; transform: translate(-50%, 0); }

/* Recently viewed */
.cmtk-recent { max-width: var(--fnx-container, 1320px); margin: 3rem auto 0; padding-inline: clamp(18px, 4vw, 2.5rem); }
.cmtk-recent__title { font-family: var(--fnx-font-display, Georgia, serif); font-size: 1.4rem; margin-bottom: 1.2rem; }

/* Free-shipping progress bar */
.cmtk-shipbar { margin: 0 0 1.2rem; padding: 12px 16px; background: #faf7f1; border: 1px solid #efe7d6; }
.cmtk-shipbar[hidden] { display: none; }
.cmtk-shipbar__text { margin: 0 0 8px; font-size: 0.84rem; letter-spacing: 0.03em; }
.cmtk-shipbar__track { height: 4px; background: #e8e0cf; overflow: hidden; }
.cmtk-shipbar__fill { display: block; height: 100%; background: var(--cmtk-gold); transition: width 0.5s cubic-bezier(0.22, 1, 0.36, 1); }
.cmtk-shipbar--done { border-color: var(--cmtk-gold); }
.cmtk-shipbar--done .cmtk-shipbar__fill { background: #1b7a3e; }
.widget_shopping_cart .cmtk-shipbar { margin: 0 0 10px; }

/* Smart badges */
.cmtk-badges { position: absolute; top: 10px; left: 10px; z-index: 3; display: grid; gap: 4px; justify-items: start; pointer-events: none; }
.single-product div.product .cmtk-badges { position: static; display: inline-flex; gap: 6px; margin-bottom: 8px; }
.cmtk-badge { font-size: 0.6rem; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; padding: 4px 9px; line-height: 1; }
.cmtk-badge--sale { background: var(--cmtk-gold); color: var(--cmtk-black); }
.cmtk-badge--new { background: var(--cmtk-black); color: #fff; }
.cmtk-badge--low { background: #b3261e; color: #fff; }
/* Theme sale badge yields to computed −% badge */
.cmtk-badges ~ .fnx-product-card__badge--sale, li.product .cmtk-badges ~ .onsale { display: none; }

/* Back-in-stock form */
.cmtk-stock-alert { border: 1px dashed var(--cmtk-gold); padding: 16px 18px; margin: 1.2rem 0; }
.cmtk-stock-alert__title { margin: 0 0 2px; font-weight: 600; letter-spacing: 0.06em; }
.cmtk-stock-alert__text { margin: 0 0 10px; font-size: 0.85rem; opacity: 0.75; }
.cmtk-stock-alert__row { display: flex; }
.cmtk-stock-alert__row input { flex: 1; min-width: 0; border: 1px solid #d8cfb9; border-right: 0; padding: 0.7em 1em; font-size: 16px; outline: 0; }
.cmtk-stock-alert__row input:focus { border-color: var(--cmtk-gold); }
.cmtk-stock-alert__row button { border: 0; cursor: pointer; background: var(--cmtk-black); color: #fff; font-size: 0.7rem; letter-spacing: 0.18em; text-transform: uppercase; padding: 0 1.4em; }
.cmtk-stock-alert__row button:hover { background: var(--cmtk-gold); color: var(--cmtk-black); }
.cmtk-stock-alert.is-done .cmtk-stock-alert__row { display: none; }

/* Social proof toast */
.cmtk-proof {
  position: fixed; left: 18px; bottom: calc(18px + env(safe-area-inset-bottom)); z-index: 9970;
  display: flex; gap: 12px; align-items: center; width: min(320px, calc(100vw - 96px));
  background: #fff; color: var(--cmtk-black); box-shadow: 0 12px 40px rgba(0, 0, 0, 0.22);
  padding: 10px 14px 10px 10px; text-decoration: none;
  transform: translateY(16px); opacity: 0; transition: opacity 0.35s ease, transform 0.35s ease;
  pointer-events: none;
}
.cmtk-proof.is-on { opacity: 1; transform: none; pointer-events: auto; }
.cmtk-proof img { width: 44px; height: 54px; object-fit: cover; flex-shrink: 0; }
.cmtk-proof__text { font-size: 0.78rem; line-height: 1.45; }
.cmtk-proof__text strong { font-weight: 600; }
.cmtk-proof__ago { display: block; font-size: 0.68rem; opacity: 0.55; margin-top: 2px; }
@media (max-width: 640px) { .cmtk-proof { display: none; } } /* never fight thumbs for the mobile viewport */
@media (prefers-reduced-motion: reduce) { .cmtk-proof, .cmtk-toast { transition: none; } }

/* Custom per-product badge styles */
.cmtk-badge--custom.cmtk-badge--black { background: var(--cmtk-black); color: #fff; }
.cmtk-badge--custom.cmtk-badge--red { background: #b3261e; color: #fff; }
