/* ===== Taraxacum menu — frontend ===== */
.txm-menu, .txm-special {
  --txm-navy:#101A4A; --txm-blue:#3758EB; --txm-cream:#DED8C5;
  --txm-line:rgba(16,26,74,.20); --txm-rule:rgba(16,26,74,.55);
  --txm-mut:rgba(16,26,74,.60); --txm-faint:rgba(16,26,74,.42);
  --txm-onnavy:#F3EEDF;
  font-family:"utile","Helvetica Neue",Inter,system-ui,sans-serif;
  color:var(--txm-navy); box-sizing:border-box;
}
.txm-menu *, .txm-special * { box-sizing:border-box; }

/* ---------- weekly special (navy block, light text) ---------- */
.txm-special {
  background:var(--txm-navy);
  color:#fff;
  padding:36px 44px 32px;
  margin:0 auto 40px;
  max-width:1180px;
}
.txm-special-head { display:flex; justify-content:space-between; align-items:baseline; gap:20px; }
.txm-special-title {
  font-family:"utile-display","Helvetica Neue",sans-serif;
  font-weight:600; letter-spacing:.2em; text-transform:uppercase;
  font-size:19px; margin:0; color:#fff;
}
.txm-special-date {
  font-family:"utile-display",sans-serif; font-weight:600;
  font-size:19px; color:#fff; white-space:nowrap;
}
.txm-special-note { font-size:14px; color:rgba(255,255,255,.72); margin:4px 0 26px; }
.txm-special .txm-items { display:flex; flex-direction:column; gap:20px; }
.txm-special .txm-item { margin:0; }
.txm-special .txm-name { font-size:18px; color:#fff; }
.txm-special .txm-price { font-size:18px; color:#fff; }
.txm-special .txm-desc { color:rgba(255,255,255,.8); }
.txm-special .txm-allergens { color:rgba(255,255,255,.6); }
.txm-combo {
  display:flex; justify-content:space-between; align-items:baseline;
  border-top:1px solid rgba(255,255,255,.25); padding-top:18px; margin-top:22px;
}
.txm-combo-label {
  font-family:"utile-display",sans-serif; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; font-size:14.5px; color:#fff;
}
.txm-combo .txm-price { font-size:18px; color:#fff; }

/* ---------- menu (cream block) ---------- */
.txm-menu {
  background:var(--txm-cream);
  max-width:1180px; margin:0 auto; padding:40px 44px 42px;
}
/* Deterministic 3-column layout: the column split is computed in PHP (Renderer::columns),
   so each category is emitted inside its own .txm-col — no browser column balancing. */
.txm-grid {
  display:grid; grid-template-columns:repeat(3, 1fr);
  column-gap:56px; align-items:start;
}
.txm-col { min-width:0; }
/* Mobile block: a single-column list whose order interleaves the desktop columns
   (col1·col2·col3 row by row), so the phone order matches reading the desktop across.
   Hidden on desktop; the desktop grid is hidden on mobile (see breakpoint below). */
.txm-flow { display:none; }
@media (max-width:980px){ .txm-grid{ column-gap:44px; } }
@media (max-width:900px){
  .txm-grid { display:none; }
  .txm-flow { display:block; }
}

.txm-cat {
  display:block; margin:0 0 38px;
}
.txm-cat-title {
  font-family:"utile-display","Helvetica Neue",sans-serif;
  font-weight:600; letter-spacing:.2em; text-transform:uppercase;
  font-size:17px; color:var(--txm-navy);
  margin:0 0 16px; padding-bottom:11px;
  border-bottom:1.5px solid var(--txm-rule);
}
.txm-items { list-style:none; margin:0; padding:0; }
.txm-subcat {
  font-style:italic; font-weight:600; font-size:14px;
  color:rgba(16,26,74,.8); margin:20px 0 11px; letter-spacing:.01em;
}
.txm-subcat:first-child { margin-top:2px; }

.txm-item { margin:0 0 20px; }
.txm-item-row { display:flex; justify-content:space-between; gap:18px; align-items:baseline; }
.txm-item-head { min-width:0; }
.txm-name { font-weight:700; font-size:16px; line-height:1.3; }
.txm-tags { display:inline-flex; align-items:center; gap:7px; margin-left:9px; vertical-align:middle; }
.txm-tag { display:inline-flex; align-items:center; }
.txm-tag--icon svg { width:13px; height:13px; display:block; }
.txm-tag--label {
  display:inline-flex; align-items:center;
  background:rgba(16,26,74,.05); border:1px solid var(--txm-line); border-radius:4px;
  padding:2px 6px; font-size:9.5px; font-weight:700; letter-spacing:.09em; line-height:1;
  color:var(--txm-navy);
}
.txm-tag--badge {
  display:inline-flex; align-items:center;
  color:var(--txm-blue); border:1px solid rgba(55,88,235,.4); border-radius:999px;
  padding:2px 8px; font-size:9.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; line-height:1;
}
/* gramáž / cena */
.txm-variants { display:flex; gap:14px; align-items:baseline; white-space:nowrap; }
.txm-variant { display:inline-flex; align-items:baseline; gap:9px; }
.txm-amount { font-size:11.5px; color:var(--txm-faint); }
.txm-price { font-weight:700; font-size:15.5px; }
.txm-desc { font-size:13px; color:var(--txm-mut); line-height:1.45; margin-top:3px; max-width:42ch; }
.txm-allergens { font-size:10.5px; color:var(--txm-faint); margin-top:5px; letter-spacing:.06em; }
.txm-empty { color:var(--txm-mut); }

/* ---------- allergen legend (white panel on cream) ---------- */
.txm-legend {
  margin:34px auto 0;
  background:#FCFBF8; padding:26px 30px;
}
.txm-legend-title {
  font-family:"utile-display","Helvetica Neue",sans-serif;
  font-weight:600; letter-spacing:.2em; text-transform:uppercase;
  font-size:13px; color:var(--txm-navy); margin:0 0 14px;
}
.txm-legend ul {
  list-style:none; margin:0; padding:0;
  column-count:3; column-gap:36px;
  font-size:11.5px; color:var(--txm-mut); line-height:1.5;
}
@media (max-width:780px){ .txm-legend ul{ column-count:2; column-gap:28px; } }
@media (max-width:520px){ .txm-legend ul{ column-count:1; } }
.txm-legend li { break-inside:avoid; margin-bottom:3px; }
.txm-leg-n { font-weight:700; color:var(--txm-navy); margin-right:5px; }
.txm-leg-note { font-size:12px; font-style:italic; color:var(--txm-mut); margin:16px 0 0; padding-top:14px; border-top:1px solid var(--txm-line); }
