/* --- Force wider square images --- */
.fkcart-image-wrapper {
 width: 100px !important;
 height: 100px !important;
 min-width: 100px !important;
 flex: 0 0 100px !important;
 display: block !important;
}
.fkcart-image-wrapper img {
 width: 100% !important;
 height: 100% !important;
 object-fit: cover !important;
 border-radius: 8px;
}

/* --- Remove divider lines around progress bar --- */
.fkcart-reward-panel {
 border-top: none !important;
 border-bottom: none !important;
 padding-top: 0.5rem !important;
 padding-bottom: 0.5rem !important;
}

/* --- Make the reward message bigger --- */
.fkcart-reward-message {
 font-size: 15px !important;
 font-weight: 500 !important;
 color: #1a1a1a;
 text-align: center;
 margin-bottom: 6px;
 font-family: 'Comfortaa', sans-serif;
}

/* --- Hide original reward icons --- */
.fkcart-reward-icon svg {
 display: none !important;
}

/* --- Reward emoji bubble --- */
.fkcart-reward-icon::before {
 content: '🌱';
 font-size: 20px;
 display: block;
 position: relative;
 animation: bounce 1.2s infinite;
}

/* Pot emoji (middle) */
.fkcart-reward-item[style*="left:calc(75%"] .fkcart-reward-icon::before {
 content: '🪴';
}

/* Final emoji */
.fkcart-reward-item[data-tpos="r"] .fkcart-reward-icon::before {
 content: '🌿';
}

/* --- Only unlocked rewards get confetti --- */
.fkcart-reward-item.is-activated .fkcart-reward-icon::after {
 content: '';
 position: absolute;
 top: 50%;
 left: 50%;
 width: 80px;
 height: 80px;
 pointer-events: none;
 z-index: 1;
 background-image:
 radial-gradient(circle at 10% 20%, #ff66c4 3px, transparent 0),
 radial-gradient(circle at 70% 30%, #00f0ff 3px, transparent 0),
 radial-gradient(circle at 30% 80%, #82ff66 3px, transparent 0),
 radial-gradient(circle at 60% 40%, #ffc300 3px, transparent 0),
 radial-gradient(circle at 90% 70%, #ff66c4 3px, transparent 0),
 radial-gradient(circle at 40% 40%, #a066ff 3px, transparent 0);
 background-repeat: no-repeat;
 animation: confettiSparkle 1.2s ease-out 3;
 transform: translate(-50%, -50%) scale(0.5);
 opacity: 0;
 filter: brightness(1.2);
}

/* --- Bounce animation --- */
@keyframes bounce {
 0%, 100% { transform: translateY(0); }
 50% { transform: translateY(-3px); }
}

/* --- Confetti sparkle burst --- 
@keyframes confettiSparkle {
 0% {
 transform: translate(-50%, -50%) scale(0.5) rotate(0deg);
 opacity: 0;
 filter: brightness(1.5);
 }
 10% {
 opacity: 1;
 transform: translate(-50%, -50%) scale(1.1) rotate(20deg);
 filter: brightness(1.2);
 }
 30% {
 transform: translate(-50%, -50%) scale(1.3) rotate(40deg);
 filter: brightness(1.8);
 }
 50% {
 transform: translate(-50%, -50%) scale(1.4) rotate(70deg);
 filter: brightness(2);
 opacity: 0.6;
 }
 75% {
 transform: translate(-50%, -50%) scale(1.5) rotate(100deg);
 filter: brightness(1.3);
 opacity: 0.3;
 }
 100% {
 transform: translate(-50%, -50%) scale(1.6) rotate(140deg);
 opacity: 0;
 filter: brightness(1);
 }
}*/

/* --- Hide reward update text --- */
.fkcart-notice-text {
 font-size: 0 !important;
 position: relative;
 min-height: 1em;
}
.fkcart-notice-text::after {
 content: "Your reward will also be removed 😭 click again to confirm!";
 font-size: 14px;
 color: #000000;
 display: block;
 font-family: inherit;
 font-weight: 500;
}

/* --- Quantity styling --- */
.fkcart-quantity-selector {
 display: flex !important;
 align-items: center !important;
 justify-content: center !important;
 border: 1px solid #ccc !important;
 border-radius: 6px !important;
 background: #fff !important;
 padding: 0 8px !important;
 height: 40px !important;
 width: fit-content !important;
 gap: 12px !important;
 box-sizing: border-box;
 margin-top: 4px;
}

.fkcart-quantity-button {
 width: 20px !important;
 height: 20px !important;
 display: flex !important;
 align-items: center !important;
 justify-content: center !important;
 font-size: 16px !important;
 cursor: pointer !important;
 background: transparent !important;
 border: none !important;
 padding: 0 !important;
}

.fkcart-quantity__input {
 appearance: none !important;
 border: none !important;
 box-shadow: none !important;
 outline: none !important;
 width: 20px !important;
 text-align: center !important;
 font-size: 16px !important;
 font-weight: 500 !important;
 background: transparent !important;
 font-family: inherit !important;
 pointer-events: none;
 padding: 0 !important;
}

/* --- Header --- */
.fkcart-slider-heading {
 display: flex !important;
 justify-content: center !important;
 align-items: center !important;
 position: relative !important;
 padding: 1rem 1rem 0.75rem !important;
 border-bottom: none !important;
 box-shadow: none !important;
}
.fkcart-slider-heading .fkcart-title {
 font-size: 18px !important;
 font-weight: 600 !important;
 font-family: 'Comfortaa', sans-serif;
 text-align: center !important;
 flex-grow: 1 !important;
}
.fkcart-modal-close {
 margin-left: auto !important;
 position: relative !important;
 top: auto !important;
 right: 0 !important;
 transform: none !important;
}

/* --- Remove button --- */
.fkcart-remove-item {
 width: 30px !important;
 height: 30px !important;
 background-color: white !important;
 border-radius: 50% !important;
 display: flex !important;
 align-items: center !important;
 justify-content: center !important;
 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
 cursor: pointer !important;
}
.fkcart-remove-item .fkcart-icon-close {
 width: 16px !important;
 height: 16px !important;
}

/* --- Progress bar --- */
.fkcart-progress-bar {
 position: relative !important;
 background: none !important;
 overflow: hidden !important;
 border-radius: 999px !important;
 height: 12px !important;
}
.fkcart-progress-bar::before {
 content: '';
 position: absolute;
 top: 0;
 left: 0;
 height: 100%;
 width: 300%;
 background: linear-gradient(
 270deg,
 #ff9a9e,
 #fad0c4,
 #a18cd1,
 #fbc2eb,
 #ff9a9e
 );
 background-size: 600% 100%;
 animation: gradientSwipe 12s linear infinite;
 z-index: 0;
 opacity: 0.9;
 transition: background-position 0.3s ease-in-out;
}
.fkcart-progress-bar::after {
 content: '';
 position: absolute;
 top: -3px;
 left: 0;
 width: 100%;
 height: 100%;
 box-shadow: 0 0 6px 4px rgba(255, 182, 193, 0.3);
 border-radius: 999px;
 z-index: 1;
 pointer-events: none;
}

@keyframes gradientSwipe {
 0% {
 background-position: 0% 50%;
 }
 100% {
 background-position: -300% 50%;
 }
}

.fkcart-free-item .fkcart-item-price ins::after {
 content: 'FREE 🥳';
 display: block;
 font-size: 20px;
 margin-top: 6px;
 text-align: center;
 font-weight: 600;
 color: #ff4081;
 font-family: 'Comfortaa', sans-serif;
 animation: celebrationLoop 2s ease-in-out infinite alternate;
}

@keyframes celebrationLoop {
 0% { transform: scale(1) rotate(0deg); }
 30% { transform: scale(1.1) rotate(4deg); }
 60% { transform: scale(1.03) rotate(-3deg); }
 100% { transform: scale(1.08) rotate(0deg); }
}



/* Hide original "Free" */
.fkcart-summary-line-item:nth-of-type(3) .fkcart-summary-amount {
 font-size: 0 !important;
 position: relative;
 overflow: visible;
}

/* Add styled and animated label */
.fkcart-summary-line-item:nth-of-type(3) .fkcart-summary-amount::after {
 content: "FREE 🥳";
 font-size: 14px;
 font-weight: 600;
 color: #ff1493;
 display: inline-block;
 position: relative;
 left: 0;
 top: 0;
 animation: shippingCelebrate 3s ease-in-out infinite;
 transform-origin: left center;
 white-space: nowrap;
}

@keyframes shippingCelebrate {
 0%, 100% {
 transform: scale(1) rotate(0deg);
 opacity: 1;
 }
 25% {
 transform: scale(1.04) rotate(1deg);
 }
 50% {
 transform: scale(1.07) rotate(-1deg);
 opacity: 0.95;
 }
 75% {
 transform: scale(1.05) rotate(0.5deg);
 }
}

a.fkcart-shop-button.fkcart-modal-close {
 display: block !important;
 margin: 1.5rem auto 0 auto !important;
}

a.fkcart-image-wrapper.fkcart-loading::before {
 position: absolute;
 top: 50%;
 left: 50%;
 transform: translate(-50%, -55%);
}

.cart-enhancer-confetti {
  position: absolute;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 9999;
}