html { scroll-behavior: smooth; }

/* Sembunyikan scrollbar halaman utama, halaman tetap bisa di-scroll */
html, body { -ms-overflow-style: none; scrollbar-width: none; }
html::-webkit-scrollbar, body::-webkit-scrollbar { display: none; }

.lucide { width: 1em; height: 1em; }

/* Fokus keyboard terlihat (WCAG 2.4.7) */
:focus-visible { outline: 2px solid #ea580c; outline-offset: 2px; border-radius: 4px; }

/* Sembunyikan scrollbar, tetap bisa digeser */
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
.no-scrollbar::-webkit-scrollbar { display: none; }

/* Scroll reveal */
.fade-in { opacity: 0; transform: translateY(20px); transition: opacity .6s ease-out, transform .6s ease-out; }
.fade-in.visible { opacity: 1; transform: translateY(0); }

/* Hero masuk dari atas */
@keyframes fadeDown {
  from { opacity: 0; transform: translateY(-24px); }
  to   { opacity: 1; transform: translateY(0); }
}
.animate-fade-down { animation: fadeDown .8s ease-out both; }

/* Tombol WA melayang */
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-10px); }
}
.animate-float { animation: float 3s ease-in-out infinite; }

/* Hover kartu menu */
.menu-card { transition: transform .2s ease-out; }
.menu-card:hover { transform: translateY(-6px); }

/* Pulsa tombol utama */
@keyframes glow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(34,197,94,.45); }
  50%      { box-shadow: 0 0 0 12px rgba(34,197,94,0); }
}
.btn-glow { animation: glow 2s infinite; }

/* Animasi kartu menu saat filter kategori berpindah */
@keyframes itemEnter {
  from { opacity: 0; transform: translateY(14px) scale(.96); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.menu-item-anim { animation: itemEnter .4s ease-out backwards; }

/* Tombol: animasi hover/klik yang lebih terasa */
.btn-pop { transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease, color .25s ease; }
.btn-pop:hover { transform: translateY(-3px) scale(1.05); box-shadow: 0 10px 22px -8px rgba(0,0,0,.35); }
.btn-pop:active { transform: translateY(-1px) scale(.97); }

/* Animasi link navbar: underline sweep + lift halus */
.nav-link { position: relative; transition: color .3s ease, transform .3s ease; }
.nav-link:hover { transform: translateY(-2px); }
.nav-link::after {
  content: ""; position: absolute; left: 0; bottom: -4px; height: 2px; width: 100%;
  background: currentColor; transform: scaleX(0); transform-origin: left;
  transition: transform .3s ease;
}
.nav-link:hover::after { transform: scaleX(1); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .fade-in, .animate-fade-down, .animate-float, .btn-glow, .menu-item-anim { animation: none; }
  .animate-bounce { animation: none !important; }
  .fade-in { opacity: 1; transform: none; }
  .menu-card { transition: none; transform: none; }
  .transition-transform, .transition-colors, .transition-all, .nav-link, .nav-link::after, .btn-pop { transition: none; }
  .nav-link:hover { transform: none; }
  .nav-link:hover::after { transform: scaleX(0); }
  .btn-pop:hover, .btn-pop:active { transform: none; box-shadow: none; }
}