@layer base {
  body { font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; overflow-x: hidden; }
  *, *::before, *::after { box-sizing: border-box; }
}

/* Prevent ANY child from blowing out the viewport on mobile */
#content, #mobileContentWrapper {
  max-width: 100vw;
  overflow-x: hidden;
}

#directoryResults, #directoryResults * {
  max-width: 100%;
  box-sizing: border-box;
}

.card-hover {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.card-hover:hover {
  transform: translateY(-4px);
  box-shadow: 0 25px 50px -12px rgb(16 185 129 / 0.25);
}

/* Line clamping for business card descriptions */
.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Hide scrollbar on category filters */
.hide-scrollbar {
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.hide-scrollbar::-webkit-scrollbar {
  display: none;
}

/* Verified notification pop-in */
@keyframes bounce-in {
  0%   { transform: translateX(-50%) translateY(-30px); opacity: 0; }
  60%  { transform: translateX(-50%) translateY(6px); opacity: 1; }
  80%  { transform: translateX(-50%) translateY(-3px); }
  100% { transform: translateX(-50%) translateY(0); }
}
.animate-bounce-in {
  animation: bounce-in 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}

/* Star rating hover effects */
.star-btn:hover ~ .star-btn {
  color: #d1d5db !important;
}