.mst-cafeteria { color: inherit; overflow-wrap: break-word; }
.mst-cafeteria section { margin: 0; min-width: 0; }
.mst-cafeteria [hidden] { display: none !important; }
.mst-cafeteria__content { min-width: 0; }
.mst-cafeteria__tabs { display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0; }
.mst-cafeteria .btn { min-height: 44px; cursor: pointer; }
.mst-cafeteria__tabs .btn { font-size: 16px; }
.mst-cafeteria__tabs .btn:not([aria-pressed="true"]) { color: #2472dd; background-color: #d2efff; }
.mst-cafeteria__tabs .btn:not([aria-pressed="true"]):hover { color: #164585; background-color: #bde7ff; }
.mst-cafeteria__tabs .btn[aria-pressed="true"] { box-shadow: 0 0 0 3px rgba(36, 114, 221, .18); }
.mst-cafeteria a:focus-visible, .mst-cafeteria button:focus-visible { outline: 3px solid #2472dd; outline-offset: 4px; }
.mst-cafeteria__day { margin-bottom: 0; }
.mst-cafeteria__day h3 { font-size: 24px; margin: 0 0 16px; }
.mst-cafeteria__meal { padding: 12px 0; border-bottom: 1px solid #d2efff; font-size: 18px; line-height: 1.5; }
.mst-cafeteria__meal:last-child { border-bottom: 0; }
.mst-cafeteria__meal p { margin: 0; }
.mst-cafeteria__allergens { color: #535a6b; font-size: 16px; margin-top: 6px !important; padding-left: 10px; border-left: 3px solid #d2efff; }
.mst-cafeteria__legend { font-size: 16px; line-height: 1.5; margin: 16px 0 0; color: #535a6b; }
.mst-cafeteria__week-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin: 24px 0 16px; }
.mst-cafeteria__week-header h3 { margin: 0; font-size: 24px; }
.mst-cafeteria__pdf { font-size: 16px; }
.mst-cafeteria__weeks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mst-cafeteria__weeks .btn { padding: 12px 18px; }
.mst-cafeteria__weeks .btn strong { font-size: 20px; }
.mst-cafeteria__weeks .btn span { font-size: 18px; }
.mst-cafeteria__pdf .btn, .mst-cafeteria__today-header .btn, .mst-cafeteria__dialog .btn { font-size: 18px; }
.mst-cafeteria__weeks button span { display: block; margin-top: 4px; font-weight: 400; }
/* The shortcode provides its own theme row and native aside navigation. */
.content:has([data-cafeteria="section"]), .content:has([data-cafeteria="section"]) > div { max-width: none; width: 100%; }
.mst-cafeteria[data-cafeteria="today"] { margin-top: 12px; }
.mst-cafeteria__today-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 24px; }
.mst-cafeteria__today-header h3 { margin: 0; font-size: 26px; }
.mst-cafeteria__day--today .mst-cafeteria__meals { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.mst-cafeteria__day--today .mst-cafeteria__meal { padding: 0 20px; border-bottom: 0; border-left: 1px solid #d2efff; text-align: center; }
.mst-cafeteria__day--today .mst-cafeteria__meal:first-child { padding-left: 0; border-left: 0; }
.mst-cafeteria__day--today .mst-cafeteria__meal:last-child { padding-right: 0; }
.mst-cafeteria__meal-heading { display: flex; align-items: center; justify-content: center; gap: 10px; margin-bottom: 12px; font-size: 22px; }
.mst-cafeteria__icon { width: 36px; height: 36px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.mst-cafeteria__icon--presnidavka { color: #e7510e; }
.mst-cafeteria__icon--polevka { color: #1291b8; }
.mst-cafeteria__icon--obed { color: #31751e; }
.mst-cafeteria__icon--svacina { color: #a87808; }
.mst-cafeteria__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); gap: 30px; }
.mst-cafeteria__grid figure.card { margin: 0; padding: 0; overflow: hidden; }
.mst-cafeteria__photo-link { display: block; position: relative; aspect-ratio: 4 / 3; background: #fff; }
.mst-cafeteria__zoom { position: absolute; top: 12px; right: 12px; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; color: #164585; background: rgb(255 255 255 / 94%); box-shadow: 0 2px 8px rgb(0 0 0 / 15%); pointer-events: none; }
.mst-cafeteria__zoom svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.mst-cafeteria__grid .mst-cafeteria__photo-link img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; display: block; }
.mst-cafeteria__grid figcaption { padding: 24px; }
.mst-cafeteria__grid h3 { font-size: 22px; line-height: 1.3; margin: 0 0 10px; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.mst-cafeteria__grid p { margin: 0; white-space: pre-line; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.mst-cafeteria__dialog { width: min(950px, 95vw); max-height: 95vh; border: 0; border-radius: 30px; padding: 30px; color: #164585; }
.mst-cafeteria__dialog::backdrop { background: rgb(0 0 0 / 70%); }
.mst-cafeteria__dialog img { display: block; max-width: 100%; max-height: 65vh; margin: 20px auto; object-fit: contain; }
.mst-cafeteria__dialog p { white-space: pre-line; overflow-wrap: anywhere; }
@media (max-width: 767px) {
  .mst-cafeteria__weeks { grid-template-columns: 1fr; }
  .mst-cafeteria__weeks .btn { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 12px; }
  .mst-cafeteria__weeks .btn strong, .mst-cafeteria__weeks .btn span { white-space: nowrap; }
  .mst-cafeteria__weeks .btn span { margin-top: 0; }
  .mst-cafeteria--section .aside { margin-bottom: 24px; }
  .mst-cafeteria--section .order-md-first { order: -1; }
  .mst-cafeteria__day--today .mst-cafeteria__meals { grid-template-columns: 1fr; }
  .mst-cafeteria__day--today .mst-cafeteria__meal { padding: 16px 0; border-left: 0; border-bottom: 1px solid #d2efff; }
}
