.menu-card { position: relative; }
.menu-card.sold-out { opacity: .62; filter: grayscale(.25); }
.menu-card.sold-out:hover { transform: none; box-shadow: 0 8px 25px rgba(90,49,24,.05); }
.menu-card.sold-out .price { color: #8a5545; }
.add-button:disabled { cursor: not-allowed; border-color: #aaa; color: #888; background: #eee; }
.special-badge { position: absolute; top: 14px; right: 14px; max-width: 60%; padding: 7px 14px; border-radius: 999px; background: #c80a36; color: #fff; font-size: .88rem; font-weight: 800; line-height: 1.2; text-align: center; box-shadow: 0 6px 16px rgba(200,10,54,.28); }
.menu-card.special { border-color: #c80a36; box-shadow: 0 10px 28px rgba(200,10,54,.14); }
.menu-card { min-height: 170px; padding: 18px 20px; }
.menu-card h3 { margin: 8px 0 3px; }
.menu-card p { margin-bottom: 10px; line-height: 1.42; }
.menu-card .dish-icon { display: grid; place-items: center; width: 42px; height: 42px; }
.menu-grid { gap: 14px; }
.dish-photo { width: 58px; height: 58px; padding: 0; border: 1px solid #efd79b; border-radius: 15px; overflow: hidden; background: #fffaf0; cursor: zoom-in; box-shadow: 0 7px 16px rgba(160,99,21,.1); }
.dish-photo img { width: 100%; height: 100%; object-fit: cover; }
.dish-photo-fallback { display: none; width: 100%; height: 100%; place-items: center; color: var(--pink); }
.dish-photo-fallback svg { width: 27px; height: 27px; }
.dish-photo.photo-error img { display: none; }
.dish-photo.photo-error .dish-photo-fallback { display: grid; }
.dish-photo-dialog { width: min(860px,92vw); max-width: none; border: 0; border-radius: 18px; padding: 12px; background: #211513; color: #fff; box-shadow: 0 30px 100px rgba(0,0,0,.55); }
.dish-photo-dialog::backdrop { background: rgba(15,7,5,.84); backdrop-filter: blur(5px); }
.dish-photo-dialog img { width: 100%; max-height: 78vh; object-fit: contain; border-radius: 11px; background: #160d0b; }
.dish-photo-dialog p { text-align: center; margin: 10px 0 3px; font-weight: 700; }
.dish-photo-close { position: absolute; top: 20px; right: 20px; width: 42px; height: 42px; border: 0; border-radius: 50%; background: rgba(255,255,255,.94); color: #211513; font-size: 1.8rem; line-height: 1; cursor: pointer; box-shadow: 0 5px 18px rgba(0,0,0,.25); }
@media (max-width: 560px) {
  .menu-card { min-height: 158px; padding: 17px; }
  .special-badge { font-size: .82rem; padding: 6px 11px; }
  .dish-photo-dialog { width: calc(100vw - 24px); padding: 8px; }
}
