input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

input[type=number] {
  appearance: textfield;
  -moz-appearance: textfield;
}

body.cart-open {
  overflow: hidden;
  padding-right: var(--scrollbar-width, 0px);
}

@keyframes fade-in {
  from {
      background-color: rgba(0, 0, 0, 0);
  }
  to {
      background-color: rgba(0, 0, 0, 0.8);
  }
}

@keyframes fade-out {
  from {
      background-color: rgba(0, 0, 0, 0.8);
  }
  to {
      background-color: rgba(0, 0, 0, 0);
  }
}

@keyframes slide-in {
  from {
      transform: translateX(500px);
  }
  to {
      transform: translateX(0px);
  }
}

@keyframes slide-out {
  from {
      transform: translateX(0px);
  }
  to {
      transform: translateX(500px);
  }
}


#cart-drawer[data-state="open"] {
  animation: fade-in 0.4s forwards;
}

#cart-drawer[data-state="closed"] {
  animation: fade-out 0.4s forwards;
}

#cart-drawer[data-state="open"] > div {
  animation: slide-in 0.4s forwards;
}

#cart-drawer[data-state="closed"] > div {
  animation: slide-out 0.4s forwards;
}

.dialog[data-state="open"] {
  animation: fade-in 0.4s forwards;
}

.dialog[data-state="closed"] {
  animation: fade-out 0.4s forwards;
}

.dialog[data-state="open"] > div {
  animation: dialog-in 0.2s forwards;
}

.dialog[data-state="closed"] > div {
  animation: dialog-out 0.2s forwards;
}

@keyframes dialog-in {
  from {
      opacity: 0;
      scale: 50%;
  }
  to {
      opacity: 1;
      scale: 100%;
  }
}

@keyframes dialog-out {
  from {
      opacity: 1;
      scale: 100%;
  }
  to {
      opacity: 0;
      scale: 50%;
  }
}

.reveal-fade-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.3s ease, transform 0.3s ease;
  transition-delay: var(--delay, 0s);
}

.reveal-fade-up.visible {
  opacity: 1;
  transform: translateY(0);
}

.centralcart-content iframe {
  aspect-ratio: 16 / 9;
  border-radius: 0.5rem;
  width: 100%;
  height: auto;
}


.grid-background {
  background-image: linear-gradient(to right,hsla(0,0%,100%,.03) 1px,transparent 1px),linear-gradient(to bottom,hsla(0,0%,100%,.03) 1px,transparent 1px);
  background-size: 40px 40px;
  mask-image: radial-gradient(ellipse 60% 85% at 40% 30%, #000 0%, #fff0 110%)
}

.custom-bg-mask {
	mask-image: linear-gradient(hsl(var(--background)), rgba(0, 0, 0, 0.3), rgb(0, 0, 0, 0));
}

@keyframes loading {
  0% {
      transform: translateX(-50%);
  }

  to {
      transform: translateX(100%);
  }
}

.detail-dash {
  background-image: linear-gradient(to right, rgba(255, 255, 255, 0.1) 50%, hsl(var(--foreground) / 0) 0%);
  background-position: center bottom;
  background-size: 16px;
  background-repeat: repeat-x;
  width: 100%;
  height: 1px;
}

/* Modern Navbar Styles */
.modern-navbar {
  position: relative;
}

.modern-navbar::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(59, 130, 246, 0.5), transparent);
}

/* Preservar cores originais das imagens dos produtos */
.package img,
.package-card img,
[data-package-id] img,
#package-image,
.package-wrapper img {
  filter: none !important;
  -webkit-filter: none !important;
  opacity: 1 !important;
  mix-blend-mode: normal !important;
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
  image-rendering: pixelated;
  color-scheme: normal !important;
  color-profile: sRGB !important;
  isolation: isolate;
  position: relative;
  z-index: 1;
}

/* Garantir que overlays não afetem cores das imagens */
.package img::before,
.package img::after {
  display: none !important;
}

/* Garantir que SVG e emojis nas imagens mantenham cores originais */
.package img svg,
.package-card img svg,
.package img *,
.package-card img * {
  filter: none !important;
  -webkit-filter: none !important;
  opacity: 1 !important;
  mix-blend-mode: normal !important;
}

/* Isolar imagens de produtos dos efeitos backdrop-blur do container */
.package > div:first-child,
.package > div:first-child img {
  isolation: isolate;
  transform: translateZ(0);
  will-change: auto;
}

/* Forçar renderização de cores vibrantes */
.package img,
.package-card img {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  image-rendering: auto;
}

/* Preservar cores originais dos emojis */
/* Remover filtros de emojis em elementos com animações */
.christmas-sparkle,
.animate-pulse,
.animate-bounce {
  filter: none !important;
  -webkit-filter: none !important;
}

/* Garantir que emojis não sejam afetados por gradientes de texto */
.bg-clip-text,
.gradient-text {
  background-clip: padding-box !important;
  -webkit-background-clip: padding-box !important;
}

/* Preservar cores naturais dos emojis - regra universal */
* {
  emoji-color: auto !important;
  emoji-rendering: auto !important;
}

/* Ensure emojis retain their original colors */
.emoji,
.christmas-decorations span,
.christmas-banner-decorations span,
.christmas-header-decorations span,
.christmas-text-emoji,
span.christmas-text-emoji,
.christmas-text-emoji span,
span:has(> *:is([class*="emoji"], [class*="christmas"])),
*:has(> .christmas-text-emoji) .christmas-text-emoji {
  -webkit-text-fill-color: initial !important;
  color: initial !important;
  filter: none !important;
  -webkit-filter: none !important;
  mix-blend-mode: normal !important;
  text-shadow: none !important;
  background: none !important;
  background-clip: unset !important;
  -webkit-background-clip: unset !important;
}

/* Garantir que emojis dentro de elementos com bg-clip-text mantenham cores */
.bg-clip-text .christmas-text-emoji,
.text-transparent .christmas-text-emoji,
h1 .christmas-text-emoji,
h2 .christmas-text-emoji,
h3 .christmas-text-emoji,
p .christmas-text-emoji,
span .christmas-text-emoji {
  -webkit-text-fill-color: initial !important;
  color: initial !important;
  background: none !important;
  background-clip: unset !important;
  -webkit-background-clip: unset !important;
  filter: none !important;
  -webkit-filter: none !important;
}

/* Forçar cores originais em emojis específicos */
span[style*="filter: none"],
span[style*="filter: none"] * {
  filter: none !important;
  -webkit-filter: none !important;
  color: unset !important;
  background: unset !important;
  background-clip: unset !important;
  -webkit-background-clip: unset !important;
  mix-blend-mode: normal !important;
}


/* Sidebar categories */
.custom-scrollbar::-webkit-scrollbar {
  width: 3px;
  height: 3px;
}

.custom-scrollbar::-webkit-scrollbar-track {
  background: transparent;
}

.custom-scrollbar::-webkit-scrollbar-thumb {
  background: hsl(var(--primary));
  border-radius: 0.25rem;
}

.cat-dropdown {
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  transform-origin: top;
}

.cat-dropdown:not(.hidden) {
  animation: slideDown 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes slideDown {
  from {
    opacity: 0;
    transform: scaleY(0);
  }
  to {
    opacity: 1;
    transform: scaleY(1);
  }
}

#mobile-categories-dropdown:not(.hidden) {
  animation: slideInMobile 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes slideInMobile {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.mobile-subcategories:not(.hidden) {
  animation: slideInSub 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes slideInSub {
  from {
    opacity: 0;
    transform: translateX(-10px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Ocultar categoria Recargas - Backup CSS */
a[href*="/category/recarga" i],
a[href*="/category/RECARGA" i] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
}

/* Sidebar categories */

.modern-search-bar::placeholder {
  color: rgba(156, 163, 175, 0.8);
}

.modern-search-bar:focus {
  outline: none;
}

.modern-nav-button {
  backdrop-filter: blur(8px);
}

.modern-nav-button:hover {
  transform: translateY(-1px);
}

.modern-cart-button {
  position: relative;
  overflow: hidden;
}

.modern-cart-button::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
  transition: left 0.5s;
}

.modern-cart-button:hover::before {
  left: 100%;
}

/* Modern Hero Buttons - New Style */
.modern-hero-button-vip,
.modern-hero-button-products,
.modern-hero-button-affiliate {
  position: relative;
  overflow: hidden;
  backdrop-filter: blur(8px);
}

.modern-hero-button-vip::before,
.modern-hero-button-products::before,
.modern-hero-button-affiliate::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
  transition: left 0.6s;
}

.modern-hero-button-vip:hover::before,
.modern-hero-button-products:hover::before,
.modern-hero-button-affiliate:hover::before {
  left: 100%;
}

/* Enhanced Modern Category Card Styles */
.modern-category-card-enhanced {
  backdrop-filter: blur(12px);
  position: relative;
  animation: fadeInUp 0.6s ease-out backwards;
}

.modern-category-card-enhanced:nth-child(1) { animation-delay: 0.1s; }
.modern-category-card-enhanced:nth-child(2) { animation-delay: 0.2s; }
.modern-category-card-enhanced:nth-child(3) { animation-delay: 0.3s; }
.modern-category-card-enhanced:nth-child(4) { animation-delay: 0.4s; }
.modern-category-card-enhanced:nth-child(5) { animation-delay: 0.5s; }
.modern-category-card-enhanced:nth-child(6) { animation-delay: 0.6s; }
.modern-category-card-enhanced:nth-child(n+7) { animation-delay: 0.7s; }

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px) scale(0.9);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.modern-category-card-enhanced::after {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: 1rem;
  padding: 2px;
  background: linear-gradient(45deg, rgba(59, 130, 246, 0.5), rgba(6, 182, 212, 0.5), rgba(59, 130, 246, 0.5));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity 0.3s;
  z-index: -1;
}

.modern-category-card-enhanced:hover::after {
  opacity: 1;
}

/* Pulse animation for category badge */
@keyframes pulse-glow-blue {
  0%, 100% {
    transform: scale(1);
    box-shadow: 0 0 8px rgba(59, 130, 246, 0.5);
  }
  50% {
    transform: scale(1.2);
    box-shadow: 0 0 16px rgba(59, 130, 246, 0.8);
  }
}

/* Modern Package Card Styles */
.modern-package-card {
  position: relative;
}

.modern-package-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(to bottom, rgba(59, 130, 246, 0.05), transparent);
  opacity: 0;
  transition: opacity 0.3s;
  pointer-events: none;
  z-index: 0;
}

.modern-package-card:hover::before {
  opacity: 1;
}

.modern-discount-badge {
  animation: pulse-badge 2s ease-in-out infinite;
}

@keyframes pulse-badge {
  0%, 100% {
    transform: scale(1);
    box-shadow: 0 0 10px rgba(59, 130, 246, 0.5);
  }
  50% {
    transform: scale(1.05);
    box-shadow: 0 0 15px rgba(59, 130, 246, 0.7);
  }
}

.modern-buy-button {
  position: relative;
  overflow: hidden;
  backdrop-filter: blur(4px);
}

.modern-buy-button::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
  transition: left 0.5s;
}

.modern-buy-button:hover::before {
  left: 100%;
}

/* Modern Footer Styles */
.modern-footer {
  position: relative;
}

.modern-footer::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: rgba(59, 130, 246, 0.8);
  box-shadow: 0 0 20px rgba(59, 130, 246, 0.5);
}

.modern-footer::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: rgba(59, 130, 246, 0.6);
  box-shadow: 0 0 15px rgba(59, 130, 246, 0.4);
}

.modern-social-button {
  backdrop-filter: blur(8px);
  position: relative;
  overflow: hidden;
}

.modern-social-button::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-radius: 50%;
  background: rgba(59, 130, 246, 0.3);
  transform: translate(-50%, -50%);
  transition: width 0.5s, height 0.5s;
}

.modern-social-button:hover::before {
  width: 100px;
  height: 100px;
}

.footer-bg {
  width: 100%;
  height: 300px;
  background: rgba(59, 130, 246, 0.2);
  filter: blur(80px);
  animation: pulse-glow 3s ease-in-out infinite;
}

@keyframes pulse-glow {
  0%, 100% {
    opacity: 0.2;
  }
  50% {
    opacity: 0.3;
  }
}
