/* ==============================================================================
 * BUZU Wishlist – Shared Button Styles
 * ============================================================================== */

/* --- Spinner animation --- */
@keyframes buzu-wl-spin {
  to { transform: rotate(360deg); }
}

/* Spinner icon: absolute-centered, hidden by default */
.buzu-wl-spinner {
  display: none;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  line-height: 1;
}

.buzu-wl-spinner i,
.buzu-wl-spinner svg {
  animation: buzu-wl-spin 0.7s linear infinite;
  display: block;
}

/* All wishlist buttons: require relative for spinner centering */
.buzu-wishlist-toggle-btn,
.buzu-wishlist-single-btn,
.buzu-wishlist-bulk-btn {
  position: relative !important;
  overflow: hidden;
  transition: opacity 0.15s ease;
}

/* Content wrapper inside single/bulk buttons */
.buzu-wl-content-wrapper {
  display: inline-flex;
  align-items: center;
  transition: visibility 0s, opacity 0.15s ease;
}

/* State spans inside toggle buttons */
.buzu-wl-state-add,
.buzu-wl-state-remove {
  align-items: center;
  transition: visibility 0s, opacity 0.15s ease;
}

/* Fallback gap, wrapped in :where() so the Bricks gap controls always win */
:where(.buzu-wl-content-wrapper, .buzu-wl-state-add, .buzu-wl-state-remove) {
  gap: 0.5em;
}

/* Toggle state: the .is-active class decides which label is visible */
.buzu-wl-state-add {
  display: inline-flex;
}

.buzu-wl-state-remove,
.buzu-wishlist-toggle-btn.is-active .buzu-wl-state-add {
  display: none;
}

.buzu-wishlist-toggle-btn.is-active .buzu-wl-state-remove {
  display: inline-flex;
}

/* Variable product without a chosen variation. !important beats the display
   value from the Bricks settings; removing the class restores it. */
.buzu-wishlist-toggle-btn.is-wl-hidden {
  display: none !important;
}

/* --- Loading State --- */
.is-loading .buzu-wl-spinner {
  display: block !important;
}

.is-loading .buzu-wl-content-wrapper,
.is-loading .buzu-wl-state-add,
.is-loading .buzu-wl-state-remove {
  visibility: hidden !important;
}

/* Subtle disabled look for bulk buttons */
.buzu-wishlist-bulk-btn.is-disabled,
.buzu-wishlist-bulk-btn[disabled] {
  opacity: 0.5;
  cursor: not-allowed;
}
