/* ======================================================
   FUTURISTIC OVERLAY v2 - OTHERWORLDLY EDITION
   ogbesamultiservices.com/tienda
   Mismos colores pero BORDES ALIEN + ANIMACIONES NO TERRENALES
   ====================================================== */

/* --- Fondo con grid sutil alien --- */
body {
  background: linear-gradient(180deg, #fafafc 0%, #f3f4f6 100%) !important;
  position: relative;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  background-image:
    linear-gradient(rgba(212,53,51,0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(212,53,51,0.03) 1px, transparent 1px),
    radial-gradient(ellipse at top, var(--soft-primary) 0%, transparent 50%),
    radial-gradient(ellipse at bottom right, rgba(255,186,0,0.04) 0%, transparent 40%);
  background-size: 48px 48px, 48px 48px, 100% 100%, 100% 100%;
  pointer-events: none;
  z-index: -1;
}

/* --- Header con borde inferior alien pulsante --- */
header, .aiz-navbar, [class*="navbar"] {
  backdrop-filter: blur(16px) saturate(1.4) !important;
  -webkit-backdrop-filter: blur(16px) saturate(1.4) !important;
  background: rgba(255,255,255,0.78) !important;
  border-bottom: 1px solid rgba(0,0,0,0.05) !important;
  box-shadow: 0 8px 32px rgba(0,0,0,0.06) !important;
  position: relative;
}
header::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--primary), var(--secondary-base), var(--blue), transparent);
  background-size: 200% 100%;
  animation: borderShift 3s linear infinite;
  opacity: 0.9;
}
@keyframes borderShift {
  0% { background-position: 0% 50%; }
  100% { background-position: 200% 50%; }
}

/* --- CARDS con BORDE ALIEN ANIMADO --- */
.card, .aiz-card-box, .aiz-product-box, .product-box, .border, .shadow-sm {
  border-radius: 20px !important;
  border: 1px solid rgba(255,255,255,0.7) !important;
  background: rgba(255,255,255,0.88) !important;
  backdrop-filter: blur(10px) !important;
  box-shadow: 0 4px 24px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04) !important;
  transition: all 0.45s cubic-bezier(0.23,1,0.32,1) !important;
  position: relative;
  overflow: hidden;
  z-index: 0;
}
/* Borde degradado animado oculto por defecto */
.card::after, .aiz-card-box::after, .product-box::after {
  content: "";
  position: absolute;
  inset: -1.5px;
  border-radius: 21px;
  background: linear-gradient(120deg, var(--primary), var(--secondary-base), var(--blue), var(--primary), var(--secondary-base));
  background-size: 300% 300%;
  z-index: -1;
  opacity: 0;
  transition: opacity 0.5s ease;
  animation: borderShift 4s linear infinite;
}
.card::before, .aiz-card-box::before, .product-box::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 20px;
  background: linear-gradient(105deg, transparent 30%, rgba(255,255,255,0.35) 45%, transparent 60%);
  background-size: 200% 100%;
  background-position: -100% 0;
  transition: background-position 0.8s ease;
  pointer-events: none;
  z-index: 1;
}
.card:hover, .aiz-card-box:hover, .product-box:hover {
  transform: translateY(-8px) scale(1.01) !important;
  box-shadow: 0 24px 48px rgba(0,0,0,0.12), 0 0 0 1px rgba(255,255,255,0.8) inset, 0 0 30px var(--soft-primary) !important;
  border-color: transparent !important;
}
.card:hover::after, .aiz-card-box:hover::after, .product-box:hover::after {
  opacity: 1;
}
.card:hover::before, .aiz-card-box:hover::before { background-position: 100% 0; }

/* Brillo interno holográfico */
.card:hover {
  animation: alienFloat 3s ease-in-out infinite, alienGlow 2.5s ease-in-out infinite;
}
@keyframes alienFloat {
  0%,100% { transform: translateY(-8px) scale(1.01); }
  50% { transform: translateY(-11px) scale(1.015); }
}
@keyframes alienGlow {
  0%,100% { box-shadow: 0 24px 48px rgba(0,0,0,0.12), 0 0 20px var(--soft-primary); }
  50% { box-shadow: 0 24px 48px rgba(0,0,0,0.14), 0 0 35px var(--soft-primary), 0 0 60px rgba(52,144,243,0.08); }
}

/* Imagen con efecto holograma */
.product-box img, .aiz-product-box img {
  transition: transform 0.7s cubic-bezier(0.23,1,0.32,1), filter 0.5s ease !important;
  border-radius: 14px !important;
}
.product-box:hover img { transform: scale(1.08) rotate(0.5deg); filter: saturate(1.15) contrast(1.05); }

/* --- BOTONES con borde neon pulsante --- */
.btn-primary, [class*="btn-primary"] {
  background: linear-gradient(135deg, var(--primary) 0%, var(--hov-primary) 100%) !important;
  border: none !important;
  border-radius: 14px !important;
  box-shadow: 0 4px 14px var(--soft-primary) !important;
  position: relative;
  overflow: hidden;
  font-weight: 700 !important;
  letter-spacing: 0.02em;
  transition: all 0.35s ease !important;
  z-index: 0;
}
.btn-primary::before {
  content: "";
  position: absolute;
  inset: -2px;
  border-radius: 16px;
  background: linear-gradient(90deg, var(--primary), var(--secondary-base), var(--primary));
  background-size: 200% 100%;
  z-index: -1;
  opacity: 0;
  animation: borderShift 2s linear infinite;
  transition: opacity 0.3s;
}
.btn-primary::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 20%, rgba(255,255,255,0.3) 40%, transparent 60%);
  background-size: 200% 100%;
  background-position: -100% 0;
  transition: background-position 0.6s;
}
.btn-primary:hover {
  transform: translateY(-3px) scale(1.02) !important;
  box-shadow: 0 10px 28px var(--soft-primary), 0 4px 12px rgba(0,0,0,0.1) !important;
  filter: brightness(1.08);
}
.btn-primary:hover::before { opacity: 1; }
.btn-primary:hover::after { background-position: 100% 0; }
.btn-primary:active { transform: scale(0.97) !important; }

/* Botones secundarios con borde alien sutil */
.btn-secondary, .btn-outline-primary {
  border-radius: 14px !important;
  position: relative;
  overflow: hidden;
  transition: all 0.35s ease !important;
}
.btn-secondary:hover, .btn-outline-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.08), 0 0 12px var(--soft-primary);
  border-color: var(--primary) !important;
}

/* --- INPUTS con borde neón al enfocar --- */
.form-control, input, textarea, select {
  border-radius: 14px !important;
  border: 1.5px solid #e5e7eb !important;
  background: rgba(255,255,255,0.92) !important;
  transition: all 0.3s ease !important;
  position: relative;
}
.form-control:focus, textarea:focus, select:focus, input:focus {
  border-color: transparent !important;
  background: #fff !important;
  box-shadow: 0 0 0 2.5px var(--soft-primary), 0 0 20px var(--soft-primary), 0 4px 12px rgba(0,0,0,0.06) !important;
  outline: none !important;
  /* Borde degradado simulado con sombra */
  border-image: linear-gradient(90deg, var(--primary), var(--secondary-base)) 1;
}

/* --- BADGES con borde brillante --- */
.badge, .discount-badge {
  border-radius: 24px !important;
  padding: 6px 14px !important;
  font-weight: 800 !important;
  position: relative;
  overflow: hidden;
  box-shadow: 0 3px 10px rgba(0,0,0,0.1) !important;
}
.discount-badge {
  background: linear-gradient(135deg, var(--primary), var(--hov-primary)) !important;
  animation: pulseBadge 2s ease-in-out infinite;
}
@keyframes pulseBadge {
  0%,100% { transform: scale(1); box-shadow: 0 4px 12px var(--soft-primary); }
  50% { transform: scale(1.05); box-shadow: 0 6px 20px var(--soft-primary), 0 0 15px var(--primary); }
}

/* --- PRECIO holográfico --- */
.price, .product-price {
  font-weight: 900 !important;
  letter-spacing: -0.02em;
  background: linear-gradient(135deg, var(--primary) 0%, var(--hov-primary) 50%, var(--secondary-base) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  background-size: 200% 100%;
  animation: borderShift 5s linear infinite;
}

/* --- FOOTER con borde superior alien --- */
footer, .footer-widget {
  background: linear-gradient(180deg, #212129 0%, #16161d 100%) !important;
  position: relative;
  overflow: hidden;
}
footer::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--primary) 25%, var(--secondary-base) 50%, var(--blue) 75%, transparent);
  background-size: 200% 100%;
  animation: borderShift 3s linear infinite;
  opacity: 0.8;
}
footer::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at bottom, var(--soft-primary) 0%, transparent 70%);
  opacity: 0.15;
  pointer-events: none;
}

/* --- SCROLLBAR alien --- */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: #f1f1f5; border-radius: 10px; }
::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--primary), var(--hov-primary));
  border-radius: 10px;
  border: 2px solid #f1f1f5;
  box-shadow: inset 0 0 4px rgba(255,255,255,0.3);
}
::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, var(--hov-primary), var(--primary));
  box-shadow: 0 0 10px var(--soft-primary);
}

/* --- Animación de entrada escalonada otherworldly --- */
@keyframes otherworldlyIn {
  from { opacity: 0; transform: translateY(24px) scale(0.96) rotateX(8deg); filter: blur(4px); }
  to { opacity: 1; transform: translateY(0) scale(1) rotateX(0); filter: blur(0); }
}
.container > section { animation: otherworldlyIn 0.8s cubic-bezier(0.23,1,0.32,1) both; }
.container > section:nth-child(2) { animation-delay: 0.1s; }
.container > section:nth-child(3) { animation-delay: 0.2s; }
.container > section:nth-child(4) { animation-delay: 0.3s; }

/* --- Bordes con esquinas recortadas (sci-fi) opcional para destacados --- */
.featured, .flash-deal, [class*="featured"] {
  position: relative;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%);
}
.featured::before {
  content: "";
  position: absolute;
  inset: 0;
  border: 1.5px solid transparent;
  background: linear-gradient(120deg, var(--primary), var(--secondary-base)) border-box;
  -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
  mask-composite: exclude;
  pointer-events: none;
  opacity: 0.7;
}

/* --- Efecto scanline holográfico sutil en cards destacadas --- */
.card.featured::after {
  background: linear-gradient(90deg, transparent, var(--primary), var(--blue), transparent) !important;
  opacity: 0.6 !important;
  height: 1.5px;
  inset: auto 0 0 0;
  border-radius: 0;
  animation: scanMove 3s linear infinite;
}
@keyframes scanMove {
  0% { transform: translateY(-200px); opacity: 0; }
  50% { opacity: 0.6; }
  100% { transform: translateY(200px); opacity: 0; }
}

/* --- Suavizado global --- */
a, button, .btn { transition: all 0.3s cubic-bezier(0.23,1,0.32,1) !important; }
hr { border-color: rgba(0,0,0,0.06) !important; }
.modal-content { border-radius: 24px !important; border: 1.5px solid rgba(255,255,255,0.6) !important; box-shadow: 0 24px 64px rgba(0,0,0,0.15), 0 0 0 1px var(--soft-primary) inset !important; backdrop-filter: blur(20px) !important; }
img { border-radius: inherit; }
