/* Public menu experience refresh v1.
   Keep per-restaurant colors, typography selection, menu features and all JS hooks intact. */
.public-menu {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-kerning: normal;
}
.public-menu .menu-content {
  width: min(1200px, calc(100% - 36px));
  margin-inline: auto;
  padding-bottom: max(44px, env(safe-area-inset-bottom));
}
.public-menu .menu-hero {
  isolation: isolate;
  overflow: clip;
}
.public-menu .hero-topbar { width: min(1320px, calc(100% - 32px)); }
.public-menu .hero-content {
  width: min(1100px, calc(100% - 32px));
  margin-inline: auto;
}
.public-menu .hero-logo-shell,
.public-menu .hero-logo { transition: transform .25s ease, box-shadow .25s ease; }
.public-menu .hero-logo-shell { box-shadow: 0 16px 42px rgba(0,0,0,.2); }
.public-menu .hero-description { text-wrap: pretty; }
.public-menu .hero-action,
.public-menu .hero-review-button,
.public-menu .menu-language-trigger {
  -webkit-tap-highlight-color: transparent;
  transition: transform .16s ease, background .16s ease, border-color .16s ease;
}
.public-menu .hero-action:active,
.public-menu .hero-review-button:active { transform: scale(.96); }

/* Give feature cards and section starts a consistent visual hierarchy. */
.public-menu .menu-feature-grid { width: 100%; gap: 13px; }
.public-menu .menu-prediction-card {
  border-radius: 19px;
  box-shadow: 0 8px 24px rgba(16, 33, 22, .07);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.public-menu .menu-prediction-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 13px 30px rgba(16, 33, 22, .11);
}
.public-menu .section-heading { gap: 12px; }
.public-menu .section-heading h2 { letter-spacing: -.2px; text-wrap: balance; }
.public-menu .section-kicker { letter-spacing: .12em; }
.public-menu .section-note { white-space: nowrap; }
.public-menu .category-rail { scrollbar-width: thin; scrollbar-color: color-mix(in srgb, var(--menu-primary) 38%, transparent) transparent; }
.public-menu .category-card {
  border: 1px solid color-mix(in srgb, var(--menu-text) 9%, transparent);
  box-shadow: 0 6px 18px rgba(18, 31, 22, .08);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.public-menu .category-card:hover {
  transform: translateY(-2px);
  border-color: color-mix(in srgb, var(--menu-primary) 38%, transparent);
  box-shadow: 0 12px 25px rgba(18, 31, 22, .13);
}
.public-menu .category-card-copy strong { text-wrap: pretty; }

/* Search and category navigation remain compact and thumb-friendly. */
.public-menu .menu-controls { min-width: 0; }
.public-menu .menu-search {
  border: 1px solid color-mix(in srgb, var(--menu-text) 12%, transparent);
  box-shadow: 0 5px 18px rgba(20, 30, 21, .045);
  transition: border-color .16s ease, box-shadow .16s ease;
}
.public-menu .menu-search:focus-within {
  border-color: color-mix(in srgb, var(--menu-primary) 58%, white);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--menu-primary) 13%, transparent), 0 7px 20px rgba(20,30,21,.05);
}
.public-menu .category-tabs { scrollbar-width: none; }
.public-menu .category-tabs::-webkit-scrollbar { display: none; }
.public-menu .category-tab {
  min-height: 38px;
  border: 1px solid color-mix(in srgb, var(--menu-text) 10%, transparent);
  -webkit-tap-highlight-color: transparent;
  transition: border-color .16s ease, background .16s ease, color .16s ease, transform .16s ease;
}
.public-menu .category-tab:active { transform: scale(.98); }
.public-menu .category-tab.active {
  border-color: color-mix(in srgb, var(--menu-primary) 58%, transparent);
}

/* Product cards retain their existing grid/list breakpoints and cart control placement. */
.public-menu .product-grid { min-width: 0; }
.public-menu .product-card {
  min-width: 0;
  border: 1px solid color-mix(in srgb, var(--menu-text) 9%, transparent);
  box-shadow: 0 5px 18px rgba(20, 30, 21, .055);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
  -webkit-tap-highlight-color: transparent;
}
.public-menu .product-card:hover {
  border-color: color-mix(in srgb, var(--menu-primary) 35%, transparent);
  box-shadow: 0 10px 25px rgba(20, 30, 21, .09);
}
.public-menu .product-card:focus-visible,
.public-menu .featured-card:focus-visible,
.public-menu .offer-card:focus-visible,
.public-menu .category-card:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--menu-primary) 65%, white);
  outline-offset: 3px;
}
.public-menu .product-image img,
.public-menu .featured-image img,
.public-menu .offer-image img { transition: transform .32s ease; }
.public-menu .product-card:hover .product-image img,
.public-menu .featured-card:hover .featured-image img,
.public-menu .offer-card:hover .offer-image img { transform: scale(1.035); }
.public-menu .product-name-row h3,
.public-menu .featured-copy h3,
.public-menu .offer-info h3 { text-wrap: pretty; }
.public-menu .product-price strong,
.public-menu .featured-price-row strong,
.public-menu .offer-info strong { font-variant-numeric: tabular-nums; }
.public-menu .direct-order-add {
  border-color: color-mix(in srgb, var(--menu-primary) 27%, transparent);
  box-shadow: 0 3px 8px color-mix(in srgb, var(--menu-primary) 12%, transparent);
  transition: transform .15s ease, background .15s ease, box-shadow .15s ease;
}
.public-menu .direct-order-add:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 14px color-mix(in srgb, var(--menu-primary) 20%, transparent);
}
.public-menu .direct-order-add:active { transform: scale(.94); }
.public-menu .is-unavailable { filter: saturate(.72); }
.public-menu .product-badge { font-weight: 800; }

/* Horizontal offer/recommendation rails: consistent spacing without changing content order. */
.public-menu .offers-rail,
.public-menu .featured-rail { scroll-snap-type: x proximity; scrollbar-width: thin; }
.public-menu .offer-card,
.public-menu .featured-card {
  border: 1px solid color-mix(in srgb, var(--menu-text) 9%, transparent);
  box-shadow: 0 6px 20px rgba(20, 30, 21, .06);
}
.public-menu .offer-card:hover,
.public-menu .featured-card:hover {
  border-color: color-mix(in srgb, var(--menu-primary) 34%, transparent);
}

/* Accessible modal fields and touch controls. */
.public-menu .product-modal button,
.public-menu .info-modal button,
.public-menu .review-modal button { -webkit-tap-highlight-color: transparent; }
.public-menu .product-modal input,
.public-menu .product-modal textarea,
.public-menu .product-modal select,
.public-menu .review-modal input,
.public-menu .review-modal textarea,
.public-menu .review-modal select {
  max-width: 100%;
  min-width: 0;
}
.public-menu :where(button, a, input, select, textarea):focus-visible {
  outline: 3px solid color-mix(in srgb, var(--menu-primary) 62%, white);
  outline-offset: 3px;
}
.public-menu img { -webkit-user-drag: none; }

@media (max-width: 700px) {
  .public-menu .menu-content { width: calc(100% - 24px); }
  .public-menu .hero-topbar { width: calc(100% - 24px); }
  .public-menu .hero-content { width: calc(100% - 26px); }
  .public-menu .menu-feature-grid { gap: 9px; }
  .public-menu .section-heading { align-items: flex-end; }
  .public-menu .section-heading h2 { font-size: clamp(17px, 4.8vw, 22px); }
  .public-menu .section-note { font-size: 10px; }
  .public-menu .category-card { box-shadow: 0 4px 13px rgba(18,31,22,.07); }
  .public-menu .product-card { box-shadow: 0 3px 12px rgba(20,30,21,.045); }
}
@media (max-width: 390px) {
  .public-menu .menu-content { width: calc(100% - 18px); }
  .public-menu .hero-content { width: calc(100% - 20px); }
  .public-menu .section-note { max-width: 35%; overflow: hidden; text-overflow: ellipsis; }
}
@media (hover: none) {
  .public-menu .product-card:hover,
  .public-menu .category-card:hover,
  .public-menu .offer-card:hover,
  .public-menu .featured-card:hover { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .public-menu *, .public-menu *::before, .public-menu *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
