/* Loading Animation Styles */
.search-loading {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.5);
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 99999;
  backdrop-filter: blur(3px);
}

.search-loading.active {
  display: flex !important;
}

/* Force hide loading overlay when page loads */
.search-loading.force-hidden {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.search-loading__spinner {
  width: 80px;
  height: 80px;
  border: 6px solid #f3f3f3;
  border-top: 6px solid #DB002F;
  border-radius: 50%;
  animation: spin 1s linear infinite;
  box-shadow: 0 0 30px rgba(219, 0, 47, 0.5);
}

.search-loading__text {
  color: white;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 18px;
  margin-top: 25px;
  text-align: center;
  font-weight: 500;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* Loading overlay for search buttons */
.search-button-loading {
  position: relative;
  pointer-events: none;
}

.search-button-loading::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 20px;
  height: 20px;
  margin: -10px 0 0 -10px;
  border: 2px solid #f3f3f3;
  border-top: 2px solid #DB002F;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

.search-button-loading .search-modal__icon,
.search-button-loading .category-modal__icon {
  opacity: 0;
}

/* Loading overlay for product action buttons */
.action-button-loading {
  position: relative;
  pointer-events: none;
  opacity: 0.7;
}

.action-button-loading::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 24px;
  height: 24px;
  margin: -12px 0 0 -12px;
  border: 3px solid rgba(255, 255, 255, 0.3);
  border-top: 3px solid #fff;
  border-radius: 50%;
  animation: spin 1s linear infinite;
  z-index: 10;
}

/* Hide button content when loading */
.action-button-loading .action-button-content,
.action-button-loading span,
.action-button-loading i,
.action-button-loading svg {
  opacity: 0;
}

/* Specific loading for add to cart button */
.add-cart.action-button-loading::after {
  border-top: 3px solid #fff;
}

/* Specific loading for favorite button */
#favorite-button.action-button-loading::after,
#favorite-button-nostock.action-button-loading::after {
  border-top: 3px solid #fff;
}
