* {
  font-family: 'Inter', sans-serif;
}
.font-heading {
  font-family: 'Poppins', sans-serif;
}
.hero-bg-gradient {
  background: linear-gradient(135deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.4) 100%), url('https://images.unsplash.com/photo-1555396273-367ea4eb4db5?ixlib=rb-4.0.3&auto=format&fit=crop&w=2070&q=80');
  background-size: cover;
  background-position: center;
}
.menu-card {
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.menu-card:hover {
  transform: translateY(-8px) scale(1.02);
  box-shadow: 0 20px 25px -12px rgba(0,0,0,0.2);
}
.btn-gradient-primary {
  background: linear-gradient(95deg, var(--de-500, #f97316), var(--de-600, #ea580c));
  transition: all 0.2s ease;
}
.btn-gradient-primary:hover {
  background: linear-gradient(95deg, var(--de-600, #ea580c), var(--de-500, #f97316));
  transform: scale(1.03);
  box-shadow: 0 10px 20px -5px color-mix(in srgb, var(--de-500, #f97316) 40%, transparent);
}
.btn-outline-white {
  transition: all 0.2s;
}
.btn-outline-white:hover {
  background: rgba(255,255,255,0.15);
  transform: translateY(-2px);
}
.lunch-box-card {
  background: linear-gradient(145deg, #ffffff, var(--de-50, #fff7ed));
  transition: all 0.3s;
}
.lunch-box-card:hover {
  background: linear-gradient(145deg, var(--de-50, #fff7ed), #ffffff);
  transform: translateY(-5px);
}
@keyframes float {
  0% { transform: translateY(0px); }
  50% { transform: translateY(-8px); }
  100% { transform: translateY(0px); }
}
.float-animation {
  animation: float 4s ease-in-out infinite;
}
::-webkit-scrollbar {
  width: 8px;
}
::-webkit-scrollbar-track {
  background: #f1f1f1;
}
::-webkit-scrollbar-thumb {
  background: var(--de-500, #f97316);
  border-radius: 10px;
}
.mobile-menu {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease-out;
}
.mobile-menu.open {
  max-height: 560px;
}
.ripple-btn {
  position: relative;
  overflow: hidden;
}
.ripple-btn:after {
  content: "";
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  pointer-events: none;
  background-image: radial-gradient(circle, #fff 10%, transparent 10%);
  background-repeat: no-repeat;
  background-position: 50%;
  transform: scale(10);
  opacity: 0;
  transition: transform 0.5s, opacity 0.8s;
}
.ripple-btn:active:after {
  transform: scale(0);
  opacity: 0.4;
  transition: 0s;
}
.hygiene-icon {
  transition: all 0.3s;
}
.hygiene-icon:hover {
  transform: scale(1.1);
}
.reviews-track {
  display: flex;
  gap: 1.5rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 1rem;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 0.5rem;
  margin-inline: -1rem;
  padding-inline: 1rem;
}
.reviews-track::-webkit-scrollbar {
  height: 6px;
}
.reviews-track::-webkit-scrollbar-thumb {
  background: var(--de-400, #fb923c);
  border-radius: 9999px;
}
.review-card-snap {
  flex: 0 0 min(calc(100vw - 3rem), 22rem);
  scroll-snap-align: center;
}
@media (min-width: 768px) {
  .reviews-track {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    overflow: visible;
    scroll-snap-type: none;
    margin-inline: 0;
    padding-inline: 0;
  }
  .review-card-snap {
    flex: none;
    min-width: 0;
  }
}
.gallery-photo {
  aspect-ratio: 4/3;
  object-fit: cover;
}

/* Shared “component” surfaces */
.doe-surface {
  background: #fff;
  border-radius: 1rem;
  border: 1px solid var(--de-100, #ffedd5);
  box-shadow: 0 4px 6px -1px rgba(0,0,0,0.06);
}
.doe-page-hero {
  background: linear-gradient(135deg, var(--de-50, #fff7ed) 0%, var(--de-100, #ffedd5) 100%);
  border-bottom: 1px solid var(--de-200, #fed7aa);
}
