/* ================================================================
   BLOCK 40 · Speisekarte / Karten (aus Excel-Master)
   ----------------------------------------------------------------
   Design 1:1 aus dem Theme: Fraunces-Überschriften, Inter-Fließtext,
   Waldgrün/Creme, Ember-Gold-Akzente, eckig (0px Radius), Signaturlinie.
   Klassische zweispaltige Speisekarte mit dezenter Punkt-Führung
   zwischen Gericht und Preis. Nur .zl-menu40*-Selektoren.
   ================================================================ */

.loewen-redesign .zl-menu40{padding-block:var(--zl-section-y);background:var(--zl-paper-soft,#F2EEE6);}
.zl-menu40__inner{display:flex;flex-direction:column;}

/* ---- Kopf: exakt wie die anderen Blöcke – Eyebrow (klein, gold) · H2 (mit globaler
   Signaturlinie) · Einleitungstext. Keine eigene Zusatzlinie mehr (die zeichnet das globale
   .zl-h2::after bereits). Sauber untereinander gestapelt, linksbündig, begrenzte Breite. */
/* Kopf GARANTIERT als sauberer vertikaler Stapel (Eyebrow → Titel → Text), wie bei den anderen
   Blöcken. display:block erzwungen, damit keine fremde/gecachte Grid-/Flex-Regel den Kopf in
   Spalten legt; Eyebrow bleibt einzeilig. */
.zl-menu40 .zl-menu40__head{display:block !important;max-width:760px;margin:0 0 clamp(32px,4vw,56px);}
.zl-menu40 .zl-menu40__head .zl-eyebrow{display:inline-flex !important;white-space:nowrap;max-width:100%;}
.zl-menu40 .zl-menu40__head .zl-menu40__title{display:block;margin-top:0;}
.zl-menu40 .zl-menu40__head .zl-menu40__intro{display:block;margin:6px 0 0;max-width:60ch;color:var(--zl-muted);}

/* ---- Kategorien: klassisch zweispaltig (Karte), Kategorie bricht nicht um ---- */
.zl-menu40__cats{column-gap:clamp(40px,5vw,84px);}
@media (min-width:861px){ .zl-menu40__cats{column-count:2;} }
.zl-menu40__cat{break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid;margin:0 0 clamp(30px,3.4vw,48px);}

.zl-menu40__cat-head{margin:0 0 clamp(14px,1.6vw,20px);padding:0 0 10px;border-bottom:1px solid var(--zl-line);}
.zl-menu40__cat-title{font-family:var(--zl-font-head);font-weight:500;font-size:clamp(21px,2vw,27px);line-height:1.1;color:var(--zl-ink);margin:0;}
.zl-menu40__cat-sub{font-family:var(--zl-font-body);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--zl-ember-3);margin:6px 0 0;}

/* Mehr Luft ZWISCHEN den Gerichten (klare Trennung), damit die Karte ruhig wirkt. */
.zl-menu40__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:clamp(22px,2.2vw,32px);}
.zl-menu40__item{min-width:0;}
.zl-menu40__item--highlight{background:linear-gradient(180deg,rgba(200,111,45,.06),transparent 70%);box-shadow:inset 3px 0 0 var(--zl-ember-1);padding:10px 0 10px 14px;margin-left:-14px;}

/* v6.7.71 · Kopf eines Gerichts: LINKS Name+Beschreibung (immer zusammen), RECHTS Preis (oben bündig).
   Der (evtl. mehrzeilige) Preis kann die Beschreibung NICHT mehr vom Namen wegdrücken. Keine Punkt-Führung
   mehr → ruhiger/übersichtlicher. */
.zl-menu40__head{display:flex;align-items:baseline;justify-content:space-between;gap:clamp(14px,1.6vw,26px);}
.zl-menu40__main{flex:1 1 auto;min-width:0;}
.zl-menu40__name{display:block;font-family:var(--zl-font-head);font-weight:500;font-size:clamp(16px,1.25vw,18.5px);line-height:1.28;color:var(--zl-ink);}
/* Beschreibung sitzt IMMER direkt unter dem Namen (kein Abstand durch mehrzeilige Preise). */
.zl-menu40__desc{margin:3px 0 0;font-family:var(--zl-font-body);font-size:13.5px;line-height:1.5;color:var(--zl-muted);max-width:56ch;}
.zl-menu40__codes{margin:3px 0 0;font-family:var(--zl-font-body);font-size:12px;color:var(--zl-muted);opacity:.85;}

.zl-menu40__price{flex:none;text-align:right;font-family:var(--zl-font-head);font-weight:500;font-size:clamp(15px,1.15vw,17px);color:var(--zl-forest-700);white-space:nowrap;}
.zl-menu40__unit{font-family:var(--zl-font-body);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--zl-muted);}
/* mehrere Varianten: kompakt untereinander, rechtsbündig, mit dezentem Label. */
.zl-menu40__price:has(.zl-menu40__var){display:flex;flex-direction:column;align-items:flex-end;gap:3px;line-height:1.2;}
.zl-menu40__var{font-size:inherit;white-space:nowrap;}
.zl-menu40__var-label{font-family:var(--zl-font-body);font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--zl-muted);margin-right:4px;}

/* ---- Kennzeichnungs-Pills (dezent) ---- */
.zl-menu40__pills{display:inline-flex;flex-wrap:wrap;gap:5px;margin-left:8px;vertical-align:middle;}
.zl-menu40__pill{display:inline-block;font-family:var(--zl-font-body);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;line-height:1.6;padding:0 7px;border:1px solid var(--zl-line);color:var(--zl-muted);background:var(--zl-paper,#F8F3EA);}
.zl-menu40__pill--recommendation{color:var(--zl-ember-1);border-color:rgba(200,111,45,.5);background:rgba(200,111,45,.08);}
.zl-menu40__pill--isNew{color:#fff;background:var(--zl-forest-700,#2c3f31);border-color:var(--zl-forest-700,#2c3f31);}
.zl-menu40__pill--vegetarian,.zl-menu40__pill--vegan{color:var(--zl-forest-700,#2c3f31);border-color:rgba(44,63,49,.4);background:rgba(44,63,49,.06);}

/* ---- Legende ---- */
.zl-menu40__legend{margin:clamp(24px,3vw,40px) 0 0;padding:clamp(18px,2vw,26px) clamp(20px,2.2vw,30px);background:var(--zl-paper,#F8F3EA);border-top:2px solid var(--zl-ember-line);display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:clamp(16px,2vw,28px);}
.zl-menu40__legend-title{font-family:var(--zl-font-body);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--zl-ember-3);margin:0 0 10px;}
.zl-menu40__legend-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px;font-family:var(--zl-font-body);font-size:12.5px;line-height:1.5;color:var(--zl-muted);}
.zl-menu40__legend-list strong{display:inline-block;min-width:22px;color:var(--zl-ink);font-weight:700;}

.zl-menu40__note{margin:clamp(16px,2vw,24px) 0 0;font-family:var(--zl-font-body);font-size:12.5px;color:var(--zl-muted);}
.zl-menu40__hint{margin:8px 0;padding:12px 16px;border:1px dashed var(--zl-line);background:var(--zl-paper,#F8F3EA);font-family:var(--zl-font-body);font-size:13px;color:var(--zl-muted);}

@media (max-width:600px){
  .zl-menu40__item--highlight{margin-left:0;padding-left:12px;}
  .zl-menu40__price:has(.zl-menu40__var){align-items:flex-start;text-align:left;}
}
