/* Individual food illustrations give the catalogue its visual rhythm. */
.hero-art-caption { z-index: 1; color: #f8f4ec; background: rgb(20 20 18 / 82%); }
.menu-image-note {
  max-width: 720px;
  margin: -10px 0 24px;
  color: var(--ink-soft);
  font-size: 12px;
  line-height: 1.7;
}
.dish-visual {
  display: block;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 9px;
  background: #efede8;
  aspect-ratio: 4 / 3;
}
button.dish-visual { cursor: pointer; }
.dish-photo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.dish-visual:focus-visible { outline-offset: 4px; }
.dish-detail-figure { margin: -4px 0 23px; }
.dish-detail-figure .dish-photo {
  width: 100%;
  height: auto;
  max-height: 270px;
  aspect-ratio: 4 / 3;
  object-fit: contain;
  border-radius: 10px;
  background: #efede8;
}
.dish-detail-figure figcaption {
  margin-top: 9px;
  color: var(--ink-soft);
  font-size: 11px;
  line-height: 1.6;
}
.menu-panel { container-type: inline-size; }
.items-list { gap: 14px; margin-top: 21px; }
.mi {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 160px;
  grid-template-areas: 'main photo' 'actions photo';
  align-items: start;
  gap: 13px 22px;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: white;
  transition: border-color 160ms;
}
.mi:focus-within { border-color: var(--line-strong); }
.menu-visual { grid-area: photo; width: 100%; align-self: start; }
.mi-main { grid-area: main; }
.mi-actions { grid-area: actions; display: flex; justify-content: start; }
.mi-top { display: block; }
.mi-name { font-size: 16px; line-height: 1.5; }
.mi-top > .mi-price { display: block; margin-top: 7px; font-size: 15px; }
.mi-desc { margin-top: 7px; font-size: 12px; line-height: 1.75; }
.mi-allergens { margin-top: 1px; font-size: 11px; }
.mi-allergens .link-btn { font-size: 11px; }
.mi-allergens-note { font-size: 11px; line-height: 1.6; }
.mi-add { min-width: 108px; }
.mi.sold-out .dish-photo { opacity: .58; }
.mi.sold-out { background: #faf9f6; }
.deal { padding: 0 0 18px; }
.deal::before { display: none; }
.deal-visual { width: 100%; border-radius: 0; margin-bottom: 17px; }
.deal-main, .deal-foot { margin-inline: 18px; }
.deal-name { font-size: 16px; }
.deal-desc { line-height: 1.75; }
.deal-foot { margin-top: auto; }
@container (min-width: 850px) {
  .items-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mi { grid-template-columns: minmax(0, 1fr) 128px; gap: 12px 16px; padding: 20px; }
  .mi-name { font-size: 15px; }
}
@media (max-width: 1024px) and (min-width: 641px) {
  .mi { grid-template-columns: minmax(0, 1fr) 174px; }
  @container (min-width: 850px) {
    .mi { grid-template-columns: minmax(0, 1fr) 128px; }
  }
}
@media (max-width: 640px) {
  .menu-image-note { margin: -7px 0 21px; font-size: 11px; max-width: 330px; }
  .items-list { gap: 12px; margin-top: 17px; }
  .mi {
    grid-template-columns: minmax(0, 1fr) 112px;
    gap: 11px 14px;
    padding: 17px 15px;
    border-radius: 10px;
  }
  .mi-name { font-size: 14px; line-height: 1.5; }
  .mi-top > .mi-price { font-size: 14px; margin-top: 6px; }
  .mi-desc { font-size: 12px; line-height: 1.7; }
  .mi-allergens, .mi-allergens-note { font-size: 10px; }
  .mi-allergens .link-btn { font-size: 10px; }
  .mi-tags { display: flex; margin: 5px 0 0; }
  .mi-actions { justify-content: start; }
  .mi-add { min-width: 113px; min-height: 44px; }
  .menu-visual { border-radius: 7px; }
  .dish-detail-figure { margin-bottom: 21px; }
  .dish-detail-figure .dish-photo { max-height: 235px; }
  .deals-group > .deals-grid > .deal,
  .deals-disclosure .deal {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 102px;
    grid-template-areas: 'main photo' 'foot photo';
    gap: 12px 15px;
    padding: 18px 16px;
  }
  .deal-visual { grid-area: photo; border-radius: 7px; margin: 0; align-self: start; }
  .deal-main { grid-area: main; margin: 0; }
  .deal-foot { grid-area: foot; margin: 0; flex-direction: row; align-items: center; justify-content: start; gap: 15px; }
  .deal-name { font-size: 15px; }
  .deal-desc { font-size: 11px; line-height: 1.7; }
  .deal-foot .mi-price { font-size: 15px; }
  .deal-foot .btn { min-height: 44px; padding-inline: 11px; }
}
@media (max-width: 374px) {
  .mi { grid-template-columns: minmax(0, 1fr) 96px; gap: 11px 12px; padding: 16px 13px; }
  .mi-name { font-size: 13px; }
  .deals-group > .deals-grid > .deal,
  .deals-disclosure .deal { grid-template-columns: minmax(0, 1fr) 88px; padding: 17px 14px; gap: 11px; }
}
@media (prefers-reduced-motion: reduce) { .mi { transition: none; } }

/* Shared minimum touch targets confirmed by the responsive audit. */
.cart-button,.allergen-filter-btn,#clearCartBtn{min-height:44px}
