:root {
  --bg: #050505;
  --glow: #1a1a2e;
  --accent: #22d3ee;
  --accent2: #2563eb;
  --card: #111827;
  --text: #ffffff;
  --logo-glow: #ec4899;
}

body {
  background-color: var(--bg);
  background-image: radial-gradient(circle at 50% 0%, var(--glow) 0%, var(--bg) 60%);
  background-attachment: fixed;
  color: var(--text);
  font-family: 'Outfit', sans-serif;
  overflow-x: hidden;
  margin: 0;
}

.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

.neon-text {
  -webkit-text-stroke: 2px var(--accent);
  background: linear-gradient(to bottom right, var(--accent), var(--accent2));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: neonGlowText 2s ease-in-out infinite alternate;
}

.neon-sign {
  filter: drop-shadow(0 0 12px var(--logo-glow));
  animation: neonGlowSign 2s ease-in-out infinite alternate;
}

@keyframes neonGlowText {
  0%   { filter: drop-shadow(0 0 8px rgba(34,211,238,0.4)); }
  100% { filter: drop-shadow(0 0 25px rgba(34,211,238,0.9)); }
}
@keyframes neonGlowSign {
  0%   { filter: drop-shadow(0 0 6px var(--logo-glow)); }
  100% { filter: drop-shadow(0 0 20px var(--logo-glow)); }
}

.category-btn.active { color: var(--accent); }
.category-btn.active::after {
  content: '';
  position: absolute;
  inset: 0;
  border: 1px solid var(--accent);
  border-radius: 9999px;
  box-shadow: 0 0 15px rgba(34,211,238,0.5);
  background-color: rgba(8, 51, 68, 0.3);
  z-index: -1;
}

.menu-item {
  animation: fadeInUp 0.5s ease-out forwards;
  opacity: 0;
  transition: all 0.3s ease;
}
.menu-item:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px -5px rgba(34, 211, 238, 0.2);
  border-color: rgba(34, 211, 238, 0.4);
}
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

.drink-icon { transition: transform 0.3s ease; }
.menu-item:hover .drink-icon { transform: scale(1.15) rotate(5deg); }

/* Sold-out state */
.menu-item.sold-out { opacity: 0.45; filter: grayscale(0.8); }
.menu-item.sold-out:hover { transform: none; box-shadow: none; }
.sold-out-badge {
  font-size: 0.6rem;
  letter-spacing: 0.15em;
  font-weight: 700;
  color: #fff;
  background: #ef4444;
  padding: 2px 8px;
  border-radius: 9999px;
  box-shadow: 0 0 10px rgba(239,68,68,0.6);
}

/* New/Popular/custom item badge */
.item-badge {
  display: inline-block;
  font-size: 0.6rem;
  letter-spacing: 0.1em;
  font-weight: 800;
  text-transform: uppercase;
  color: #04121a;
  padding: 2px 8px;
  border-radius: 9999px;
  vertical-align: middle;
  box-shadow: 0 0 10px rgba(255,255,255,0.15);
}

/* Banners */
.banner-strip { scroll-snap-type: x mandatory; }
.banner-slide { scroll-snap-align: center; }
.text-banner {
  min-width: 100%;
  border-radius: 1rem;
  padding: 2rem 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-weight: 900;
  letter-spacing: 0.02em;
  font-size: 1.5rem;
  line-height: 1.2;
  border: 1px solid rgba(255,255,255,0.08);
}
@media (min-width: 768px) { .text-banner { font-size: 2rem; } }

/* Per-category banner */
.cat-banner-img { width: 100%; height: 9rem; object-fit: cover; border-radius: 1rem; }
@media (min-width: 768px) { .cat-banner-img { height: 12rem; } }
.cat-banner-text {
  width: 100%; border-radius: 1rem; padding: 1.25rem 1rem; text-align: center;
  font-weight: 800; font-size: 1.15rem; border: 1px solid rgba(255,255,255,0.08);
}

/* Promos */
.promo-card {
  border: 1px solid var(--accent);
  box-shadow: 0 0 20px rgba(34,211,238,0.25);
  background: linear-gradient(135deg, rgba(34,211,238,0.08), rgba(37,99,235,0.05));
}
.promo-badge {
  background: linear-gradient(to right, var(--accent), var(--accent2));
  color: #04121a;
  font-weight: 900;
  letter-spacing: 0.1em;
}
