/* wand-web.css · Urban Bros. Pizza & Co. · Corporate Design „Wand“, Web, Phase 2
   Eine Datei für alle Seiten. Mobil zuerst (Basis = 390 px), dann min-width 768 px (48em) und 1280 px (80em).
   Schrift selbst gehostet, relativ zu dieser Datei: wand/archivo-wand.woff2. Keine externen Ressourcen, keine data:-URLs
   (CSP: default-src 'self'). Kein Inhalt hängt an JavaScript. Muster/Strom sind Bausteine aus wand/, nie hinter Text.
   Farben: vier. Mint und Lachs nur als Fläche, nie als Textfarbe. Eine Wandfarbe pro Fläche.
   Dokumentation: WEB-SYSTEM.md */

@font-face{font-family:"Archivo";font-style:normal;font-weight:400 800;font-stretch:75% 100%;font-display:swap;
  src:url(wand/archivo-wand.woff2) format("woff2")}

/* ───────────── 1 · Tokens ───────────── */
:root{
  --tusche:#191917;   /* Schrift, Linie, Kontur. Auf Wand 17,6 : 1 */
  --wand:#FFFFFF;     /* Grund. Tusche auf Wand 17,6 : 1 */
  --mint:#68A397;     /* Fläche. Tusche darauf 6,1 : 1. Mint auf Wand 2,9 : 1 = nie Text */
  --lachs:#E8998B;    /* Fläche. Tusche darauf 7,8 : 1. Lachs auf Wand 2,2 : 1 = nie Text */

  --f:"Archivo","Arial Narrow",Arial,sans-serif;

  /* Typoskala (rem, 1 rem = 16 px). Basis mobil; 768 und 1280 überschreiben unten */
  --t-text:1rem;        /* Fließtext, Zutaten, Allergene, Legende: nie kleiner */
  --t-lead:1.125rem;
  --t-name:1.25rem;     /* Gerichtname, Zeile klein */
  --t-h3:1.5rem;
  --t-h2:2.125rem;
  --t-h1:2.9375rem;     /* 47 px */

  /* Abstände (4-px-Raster) */
  --s-1:.25rem; --s-2:.5rem; --s-3:.75rem; --s-4:1rem; --s-5:1.5rem; --s-6:2rem; --s-7:3rem; --s-8:4.5rem; --s-9:6rem;

  --linie:2px;          /* Trennlinie, Kopf */
  --kontur:3px;         /* Rahmen von Kästchen, Pills, Knöpfen, Fotos */
  --rand:1.25rem;       /* Seitenrand: 20 px */
  --breite:70rem;       /* Inhaltsbreite 1120 px */
  --hoehe-knopf:2.75rem;/* 44 px, kleinste Tippfläche */
  --hoehe-kopf:3.75rem; /* 60 px */
}
@media (min-width:48em){
  :root{--t-lead:1.25rem;--t-name:1.375rem;--t-h3:1.75rem;--t-h2:2.75rem;--t-h1:4rem;--rand:2rem;--hoehe-kopf:4.25rem}
}
@media (min-width:80em){
  :root{--t-lead:1.375rem;--t-h2:3.5rem;--t-h1:5.5rem;--rand:2.5rem;--hoehe-kopf:4.75rem}
}

/* ───────────── 2 · Grund ───────────── */
*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{background:var(--wand);color:var(--tusche);font-family:var(--f);font-weight:400;font-stretch:100%;
  font-size:var(--t-text);line-height:1.5;-webkit-font-smoothing:antialiased;font-kerning:normal;font-variant-numeric:proportional-nums;
  min-height:100vh;display:flex;flex-direction:column}
body>main{flex:1 0 auto}
img,svg{display:block;max-width:100%;height:auto}
ul,ol{list-style:none}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--tusche);outline-offset:3px;border-radius:2px}
.fuss :focus-visible{outline-color:var(--wand)}
.vh{position:absolute!important;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;font-size:0}
.sprung{position:absolute;left:var(--rand);top:-6rem;z-index:100;background:var(--tusche);color:var(--wand);padding:.75rem 1rem;font-weight:700;border-radius:8px}
.sprung:focus{top:.5rem}
.wrap{width:100%;max-width:var(--breite);margin-inline:auto;padding-inline:var(--rand)}
.tab{font-variant-numeric:tabular-nums}

/* ───────────── 3 · Schrift: zwei Stimmen ───────────── */
/* Zeile = schmal und schwer. Alles andere = Text, normal breit. Mehr Schnitte gibt es nicht. */
.zeile,h1,h2{font-weight:800;font-stretch:75%;line-height:.95;letter-spacing:-.006em}
h1{font-size:var(--t-h1)}
h2{font-size:var(--t-h2)}
h3{font-weight:800;font-stretch:75%;font-size:var(--t-h3);line-height:1;letter-spacing:.01em}
.name{font-weight:800;font-stretch:75%;text-transform:uppercase;letter-spacing:.015em;line-height:1.15}
.lead{font-size:var(--t-lead);line-height:1.4}
.fliess{max-width:42rem}
.fliess>*+*{margin-top:var(--s-4)}
.fliess a,.link{font-weight:600;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.fliess a:hover,.link:hover{text-decoration-thickness:4px}
/* Knöpfe in Absätzen bleiben Knöpfe: Fließtext-Linkregeln (hier und wand-themen.css) nicht anwenden */
.fliess a.knopf,.abschnitt p a.knopf,.unterlink a.knopf{text-decoration:none;font-weight:700}
/* Telefonnummern nie mitten in der Nummer umbrechen */
a[href^="tel:"]{white-space:nowrap}
.link{display:inline-block;padding-block:var(--s-2);min-height:var(--hoehe-knopf)}
/* Pfeil als eigene Form (wand/pfeil.svg, Maske in Textfarbe): „→“ fehlt in der Archivo-Teilschrift und käme sonst aus einer Ersatzschrift */
.link--pfeil::after,.bestellen::after{content:"";display:inline-block;background:currentColor;-webkit-mask:url(wand/pfeil.svg) center/contain no-repeat;mask:url(wand/pfeil.svg) center/contain no-repeat}
.link--pfeil::after{width:.9em;height:.62em;margin-left:.35em;vertical-align:-.02em}

/* ───────────── 4 · Kontur, Versatz, Pill ───────────── */
/* Konturform: eine große Rundung oben rechts, drei kleine. --kl Linie, --kr klein, --kR groß */
.kontur{border:var(--kl,var(--kontur)) solid var(--tusche);border-radius:var(--kr,12px) var(--kR,64px) var(--kr,12px) var(--kr,12px)}
.kontur--mint{background:var(--mint)}
.kontur--lachs{background:var(--lachs)}
/* harter Versatz wie die gemalten Buchstaben: nach links unten, nur für Fotos und Freisteller */
.versatz{box-shadow:calc(var(--v,8px) * -.6) var(--v,8px) 0 var(--tusche)}
.pill{display:inline-block;font-weight:800;font-stretch:75%;text-transform:uppercase;letter-spacing:.02em;line-height:1;font-size:1.125rem;
  border:2px solid var(--tusche);border-radius:.32em .95em .32em .32em;padding:.34em .62em .28em;background:var(--mint);color:var(--tusche)}
.pill--lachs{background:var(--lachs)}
.abschnitt--lachs .pill,.abschnitt--mint .pill,.hinweis--lachs .pill,.hinweis--mint .pill{background:var(--wand)}   /* auf farbiger Fläche keine zweite Wandfarbe */

/* ───────────── 5 · Strom und Muster ───────────── */
/* Strom: vom Rand zur Speise, endet am Motiv, nie hinter Text, höchstens einer je Fläche. Nur Tusche. */
.strom{position:absolute;pointer-events:none;background:url(wand/strom-web.svg) 0 0/100% 100% no-repeat;
  left:-5.97%;top:9.7%;width:56.7%;aspect-ratio:190/80}
/* Muster: eines je Fläche, immer Tusche, als Band oder Rand, nie hinter Text. --mt = Teilung */
.muster{display:block;height:2.5rem;border-block:var(--linie) solid var(--tusche)}
.muster--tupfen{--mt:12px;background:url(wand/tupfen.svg) 0 0/calc(var(--mt) * 36) auto repeat}
.muster--streifen{--mt:12px;background:url(wand/streifen.svg) 0 0/calc(var(--mt) * 36) auto repeat}
.muster--geflecht{--mt:14px;background:url(wand/geflecht.svg) 0 0/calc(var(--mt) * 30) auto repeat}
.muster--mint{background-color:var(--mint)}
.muster--lachs{background-color:var(--lachs)}

/* ───────────── 6 · Knöpfe und Links ───────────── */
.knopf{display:inline-flex;align-items:center;justify-content:center;min-height:var(--hoehe-knopf);padding:.25rem 1.125rem;
  background:var(--tusche);color:var(--wand);border:var(--kontur) solid var(--tusche);border-radius:8px 18px 8px 8px;
  font-weight:700;font-size:var(--t-text);line-height:1.1;text-decoration:none;cursor:pointer;transition:background-color .12s,color .12s}
.knopf:hover{background:var(--mint);color:var(--tusche)}
.knopf:active{transform:translateY(1px)}
.knopf--leer{background:var(--wand);color:var(--tusche)}
.knopf--leer:hover{background:var(--lachs)}
.knopf--mint{background:var(--mint);color:var(--tusche)}
.knopf--mint:hover{background:var(--tusche);color:var(--wand)}
.knopf--lachs{background:var(--lachs);color:var(--tusche)}
.knopf--lachs:hover{background:var(--tusche);color:var(--wand)}
.knopf--gross{min-height:3.5rem;padding-inline:1.5rem;font-size:var(--t-lead)}
.knopf[disabled]{opacity:1;background:var(--wand);color:var(--tusche);border-style:dashed;cursor:not-allowed}

/* Bestellen-Block: Name, URL, Pfeil. Endet mobil vor 400 px Höhe. */
.bestellen{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:4rem;padding:.5rem 4rem .5rem 1.25rem;
  background:var(--tusche);color:var(--wand);border:var(--kontur) solid var(--tusche);border-radius:12px 32px 12px 12px;text-decoration:none;transition:background-color .12s,color .12s}
.bestellen b{font-weight:800;font-stretch:75%;font-size:1.5rem;line-height:1.05;letter-spacing:.005em}
.bestellen span{font-size:var(--t-text);line-height:1.25;overflow-wrap:anywhere}
.bestellen::after{position:absolute;right:1.375rem;top:50%;transform:translateY(-50%);width:1.5rem;height:1rem}
.bestellen:hover{background:var(--mint);color:var(--tusche)}
.grund{margin-top:var(--s-3);line-height:1.4}
.grund b{font-weight:700}

/* ───────────── 7 · Kopf, Navigation, Menü ───────────── */
.kopf{position:sticky;top:0;z-index:50;background:var(--wand);border-bottom:var(--linie) solid var(--tusche)}
.kopf__in{display:flex;align-items:center;gap:var(--s-2);min-height:var(--hoehe-kopf)}
.marke{display:block;flex:none;width:6.5rem;margin-right:auto}
.marke img{width:100%;height:auto}
.nav{display:none}
.nav a{display:inline-flex;align-items:center;min-height:var(--hoehe-knopf);padding-inline:var(--s-3);font-weight:600;text-decoration:none;border-bottom:3px solid transparent}
.nav a:hover,.nav a[aria-current="page"]{border-bottom-color:var(--tusche)}
.nav .kk{font-weight:800;font-stretch:75%;letter-spacing:.03em;font-size:1.125rem}
.kopf .knopf{min-height:var(--hoehe-knopf);padding-inline:1rem}
/* mobiles Menü: <details>, ohne JavaScript */
.menue summary{display:inline-flex;align-items:center;min-height:var(--hoehe-knopf);padding:0 .75rem;font-weight:600;cursor:pointer;list-style:none;border-radius:8px}
.menue summary::-webkit-details-marker{display:none}
.menue summary::before{content:"";width:1.125rem;height:2px;background:currentColor;box-shadow:0 -6px 0 currentColor,0 6px 0 currentColor;margin-right:.625rem}
.menue:not([open]) .menue__liste{display:none}
.menue .zu{display:none}
.menue[open] .zu{display:inline}
.menue[open] .auf{display:none}
.menue__liste{position:absolute;left:0;right:0;top:100%;background:var(--wand);border-bottom:var(--linie) solid var(--tusche);padding:var(--s-2) var(--rand) var(--s-5);max-height:calc(100vh - var(--hoehe-kopf));overflow:auto}
.menue__liste a{display:flex;align-items:center;min-height:3.25rem;font-weight:800;font-stretch:75%;text-transform:uppercase;letter-spacing:.015em;font-size:var(--t-h3);text-decoration:none;border-bottom:1.5px solid var(--tusche)}
.menue__liste a:hover{background:var(--mint)}
@media (min-width:48em){
  .marke{width:8rem}
  .kopf .knopf{padding-inline:1.375rem}
}
/* Desktop-Navigation erst ab 60em: sechs Einträge + Bestellen brauchen ca. 875 px (bei 768 lief der Knopf aus dem Bild) */
@media (min-width:60em){
  .nav{display:flex;gap:var(--s-1)}
  .menue{display:none}
}
@media (min-width:80em){
  .marke{width:11rem}
  .nav{gap:var(--s-3)}
  .nav a{padding-inline:var(--s-3)}
}

/* Mittagsband (nur Startseite, optional). data-z steuert das vorhandene Skript: laeuft | vorher | nachher | wochenende | aktion | neutral */
.mband{display:flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:var(--hoehe-knopf);padding:var(--s-1) var(--rand);background:var(--wand);color:var(--tusche);border-bottom:var(--linie) solid var(--tusche);text-decoration:none;text-align:center;font-size:var(--t-text);line-height:1.3}
.mband[data-z="laeuft"]{background:var(--mint)}
.mband[data-z="aktion"]{background:var(--lachs)}
.mband .punkt{flex:none;width:.75rem;height:.75rem;border-radius:50%;background:var(--tusche)}
.mband .uhr{font-weight:700;font-variant-numeric:tabular-nums}

/* ───────────── 8 · Abschnitt, Hero, Wandbild ───────────── */
.abschnitt{padding-block:var(--s-7)}
.abschnitt--mint{background:var(--mint);border-block:var(--linie) solid var(--tusche)}
.abschnitt--lachs{background:var(--lachs);border-block:var(--linie) solid var(--tusche)}
.abschnitt--tusche{background:var(--tusche);color:var(--wand)}
.abschnitt-kopf{display:grid;gap:var(--s-3);margin-bottom:var(--s-5)}
.abschnitt-kopf .pill{justify-self:start}
.abschnitt-kopf p{max-width:42rem}
@media (min-width:48em){.abschnitt{padding-block:var(--s-8)}.abschnitt-kopf{margin-bottom:var(--s-6)}}
/* Seitenkopf aller Innenseiten (Info, Recht, Thema, Angebot): eine Klasse, gleicher Abschnittsabstand wie .abschnitt */
.seitenkopf{padding-block:var(--s-7)}
.seitenkopf .abschnitt-kopf{margin-bottom:0}
.seitenkopf h1{overflow-wrap:break-word;hyphens:auto;text-wrap:balance}
.seitenkopf .lead{max-width:42rem}
.seitenkopf .stand{font-weight:600}
@media (min-width:48em){.seitenkopf{padding-block:var(--s-8)}}

.hero{padding-block:var(--s-5) var(--s-6)}
.hero__raster{display:grid;gap:var(--s-6)}
.hero .ort{font-weight:600}
.hero h1{margin-top:var(--s-2)}
.hero .unter{margin-top:var(--s-3);font-size:var(--t-lead);line-height:1.35}
.hero .bestellen{margin-top:var(--s-5)}
@media (min-width:48em){
  .hero{padding-block:var(--s-7)}
  .hero__raster{grid-template-columns:1.1fr 1fr;gap:var(--s-7);align-items:center}
  .hero .bestellen{max-width:26rem}
}
@media (min-width:80em){.hero__raster{gap:var(--s-8)}}

/* Wandbild: Fläche in Wandfarbe, Strom vom Rand, Foto im Kreis mit Versatz, Text daneben (gleiches Gericht). Prozent = Maßstab der Phase-1-Vorlage 335 × 206 */
.wandbild{position:relative;width:100%;max-width:34rem;aspect-ratio:335/206}
.wandbild__form{position:absolute;inset:0 0 14.6% 0;--kl:3px;--kr:12px;--kR:64px}
.wandbild .foto-kreis{position:absolute;right:4.2%;top:10.7%;width:49.6%}
.wandbild__text{position:absolute;left:5.4%;top:58%;right:57%;line-height:1.3}   /* Kind der Form: Prozent der Form (Breite = Bild, Höhe = 85,4 %) */
.wandbild__text b{display:block;font-weight:800;font-stretch:75%;font-size:1.25rem;text-transform:uppercase;letter-spacing:.015em;line-height:1.1}

/* Foto im Kreis: Freisteller oder auf Kreis zugeschnittenes Foto, Tusche-Kontur, harter Versatz links unten */
.foto-kreis{position:relative;display:block;aspect-ratio:1;border-radius:50%;border:var(--kontur) solid var(--tusche);background:var(--wand);overflow:hidden;--v:7px;
  box-shadow:calc(var(--v) * -.6) var(--v) 0 var(--tusche)}
.foto-kreis img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.foto-kreis--zoom img{transform:scale(1.22)}   /* Foto mit Teller/Folie: Rand abschneiden */

/* ───────────── 9 · Preis, Streichpreis, Eiweiß-Kreis ───────────── */
.preis{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:.25rem .75rem;font-variant-numeric:tabular-nums}
.preis__neu{font-weight:800;font-stretch:75%;font-size:1.75rem;line-height:1.1}
.preis__alt{position:relative;display:inline-block;white-space:nowrap;font-weight:600;font-size:1.125rem;text-decoration:none}   /* <s> trägt sonst zusätzlich die Browser-Durchstreichung */
/* Streichpreis wie Flyer v4: ein flacher Lachs-Strich leicht schräg, Ziffern bleiben lesbar; „statt“ steht daneben als Text */
.preis__alt::after{content:"";position:absolute;left:-3%;right:-3%;top:47%;height:.16em;min-height:3px;background:var(--lachs);transform:rotate(-7deg);border-radius:3px}
.gericht:not(.gericht--wand) .preis__alt::after,.abschnitt--lachs .preis__alt::after,.abschnitt--mint .preis__alt::after{background:var(--tusche);height:.1em;min-height:2px}  /* Lachs-Strich nur auf Wand oder Tusche */
.preis--auf-tusche .preis__alt::after,.tusche .preis__alt::after{background:var(--lachs)}
.preis__statt{font-size:var(--t-text);font-weight:400}
.preis--gross .preis__neu{font-size:2.5rem}
.preis--gross .preis__alt{font-size:1.5rem}
.preis--auf-tusche{color:var(--wand)}

.ew{position:relative;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  width:6.5rem;aspect-ratio:1;border-radius:50%;background:var(--mint);color:var(--tusche);border:var(--kontur) solid var(--tusche);
  box-shadow:-4px 6px 0 var(--tusche);line-height:1;z-index:2}
.ew b{font-weight:800;font-stretch:75%;font-size:2.125rem;line-height:.95}
.ew span{font-weight:700;font-size:var(--t-text);line-height:1.1;margin-top:.15rem}
.ew--gross{width:9.75rem}
.ew--gross b{font-size:2.75rem}

/* ───────────── 10 · Speisekarte: Kartenzeile ───────────── */
/* Spalten wie die gedruckte Karte: Nr. · Gericht · Allergene · 33 / 40 / 50 cm. Mobil drei Zeilen, ab 768 eine. */
.karte-liste{border-top:0}
.kz,.kz-kopf{display:grid;column-gap:.375rem;grid-template-columns:2rem minmax(0,1fr) 3.25rem 3.25rem 3.25rem;
  grid-template-areas:"nr n n n n" ". z z z z" ". al p1 p2 p3"}
.kz{padding:.75rem 0 .6875rem;border-bottom:1.5px solid var(--tusche);row-gap:.125rem}
.kz__nr{grid-area:nr;font-weight:800;font-stretch:75%;font-size:var(--t-name);line-height:1.2}
.kz__name{grid-area:n;font-size:var(--t-name);line-height:1.2}
.kz__zutaten{grid-area:z;line-height:1.4}
.kz__allergene{grid-area:al;padding-top:.25rem}
.kz__p{text-align:right;font-weight:600;font-size:1.0625rem;padding-top:.25rem;font-variant-numeric:tabular-nums}
.kz__p.p33{grid-area:p1}.kz__p.p40{grid-area:p2}.kz__p.p50{grid-area:p3}
.kz-kopf{margin-top:var(--s-3);padding-bottom:.375rem;border-bottom:var(--linie) solid var(--tusche);align-items:end;font-weight:600;line-height:1.1;
  grid-template-areas:". al p1 p2 p3"}
.kz-kopf .kz__allergene{padding:0}
.kz-kopf .gr{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;font-weight:700;font-stretch:75%;white-space:nowrap}
.kz-kopf .gr i{display:block;border:1.5px solid var(--tusche);border-radius:50%}
.kz-kopf .p33{grid-area:p1}.kz-kopf .p40{grid-area:p2}.kz-kopf .p50{grid-area:p3}
.kz-kopf .p33 i{width:1.0625rem;height:1.0625rem}.kz-kopf .p40 i{width:1.3125rem;height:1.3125rem}.kz-kopf .p50 i{width:1.625rem;height:1.625rem}
.legende{margin-top:var(--s-3);line-height:1.4}
@media (min-width:48em){
  .kz,.kz-kopf{grid-template-columns:3rem minmax(0,1fr) 7rem 5.5rem 5.5rem 5.5rem;column-gap:1rem;
    grid-template-areas:"nr n al p1 p2 p3" "nr z al p1 p2 p3"}
  .kz-kopf{grid-template-areas:". . al p1 p2 p3"}
  .kz{padding-block:1rem}
  .kz__p{font-size:var(--t-lead)}
  .kz__allergene{padding-top:0}
  .kz__p{padding-top:0}
}
@media (min-width:48em) and (max-width:79.99em){
  .kz,.kz-kopf{grid-template-columns:2.5rem minmax(0,1fr) 4.5rem 4.75rem 4.75rem 4.75rem;column-gap:.75rem}
}
@media (min-width:48em) and (max-width:79.99em){
  /* Einpreis-Zeilen (Burger, Pasta, Getränke …) bis 1279 px: Name bekommt die Breite der leeren Preisspalten; ab 1280 bleibt die Allergen-Spalte über alle Abschnitte bündig */
  .kz.kz--eins,.kz-kopf.kz--eins{grid-template-columns:3rem minmax(0,1fr) 7rem 5.5rem;grid-template-areas:"nr n al p3" "nr z al p3"}
  .kz-kopf.kz--eins{grid-template-areas:". . al p3"}
}

/* ───────────── 11 · Gerichtkarte ───────────── */
.gitter{display:grid;gap:var(--s-6);grid-template-columns:1fr}
@media (min-width:48em){.gitter--2,.gitter--3{grid-template-columns:repeat(2,1fr)}}
@media (min-width:80em){.gitter--3{grid-template-columns:repeat(3,1fr)}.gitter--4{grid-template-columns:repeat(4,1fr)}}
.gericht{position:relative;display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-5) var(--s-4) var(--s-5);margin-top:3.5rem;background:var(--mint);
  border:var(--kontur) solid var(--tusche);border-radius:12px 64px 12px 12px}
.gericht--lachs{background:var(--lachs)}
.gericht--wand{background:var(--wand)}
.gericht .foto-kreis{width:9rem;margin:-5.5rem 0 0 -.25rem;flex:none}
.gericht .ew{position:absolute;right:var(--s-4);top:-3rem;width:6.75rem}   /* „ca. Eiweiß“ in 16 px passt erst ab 6,75 rem in den Kreis */
.gericht .ew b{font-size:1.875rem}
.gericht__nr{font-weight:800;font-stretch:75%;font-size:var(--t-name);line-height:1}
.gericht__name{font-size:var(--t-h3)}
.gericht__zutaten{line-height:1.4}
.gericht__fuss{margin-top:auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-3);padding-top:var(--s-2)}
.gericht__al{font-weight:600}

/* ───────────── 12 · Hinweisbox, Tabelle, FAQ, Bewertungen ───────────── */
.hinweis{padding:var(--s-4) var(--s-4) var(--s-4);background:var(--wand);border:var(--kontur) solid var(--tusche);border-radius:10px 36px 10px 10px}
.hinweis--mint{background:var(--mint)}
.hinweis--lachs{background:var(--lachs)}
.hinweis__titel{font-weight:800;font-stretch:75%;text-transform:uppercase;letter-spacing:.015em;font-size:var(--t-name);line-height:1.1;margin-bottom:var(--s-2)}
.hinweis>*+*{margin-top:var(--s-2)}

.tabelle-wrap{overflow-x:auto}
.tabelle{width:100%;border-collapse:collapse;text-align:left;font-variant-numeric:tabular-nums}
.tabelle caption{text-align:left;font-weight:800;font-stretch:75%;font-size:var(--t-h3);text-transform:uppercase;padding-bottom:var(--s-2)}
.tabelle th,.tabelle td{padding:.625rem .5rem .625rem 0;vertical-align:top;border-bottom:1.5px solid var(--tusche);line-height:1.35}
.tabelle thead th{border-bottom:var(--linie) solid var(--tusche);font-weight:700;white-space:nowrap}
.tabelle .zahl{text-align:right;padding-right:0;padding-left:.5rem}

.faq{border-top:var(--linie) solid var(--tusche)}
.faq details{border-bottom:var(--linie) solid var(--tusche)}
.faq summary{position:relative;display:flex;align-items:center;min-height:3.5rem;padding:.75rem 3.25rem .75rem 0;cursor:pointer;list-style:none;
  font-weight:800;font-stretch:75%;font-size:var(--t-name);line-height:1.2;text-transform:uppercase;letter-spacing:.015em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:2.25rem;height:2.25rem;
  border:var(--kontur) solid var(--tusche);border-radius:50%;background:var(--mint);font-weight:800;font-stretch:100%;font-size:1.375rem;line-height:1;padding-bottom:.1rem}
.faq details[open] summary::after{content:"–";background:var(--lachs)}
.faq summary:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.faq details:not([open]) .antwort{display:none}
.faq .antwort{padding:0 0 var(--s-5);max-width:42rem}
.faq .antwort>*+*{margin-top:var(--s-3)}

.bewertungen{display:grid;gap:var(--s-5);grid-template-columns:1fr}
@media (min-width:48em){.bewertungen{grid-template-columns:repeat(2,1fr)}}
@media (min-width:80em){.bewertungen{grid-template-columns:repeat(3,1fr)}}
.bewertung{padding:var(--s-4);border:var(--kontur) solid var(--tusche);border-radius:10px 36px 10px 10px;background:var(--wand);display:flex;flex-direction:column;gap:var(--s-3)}
.bewertung blockquote{line-height:1.45}
.bewertung__von{margin-top:auto}
.bewertung__kopf{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}
.bewertung__von{font-weight:700}
.bewertung__quelle{display:block;font-weight:400}
.sterne{display:inline-flex;gap:2px}
.sterne i{width:1.125rem;height:1.125rem;background:var(--tusche);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}
.sterne i.leer{background:var(--lachs)}

/* ───────────── 13 · Ort, Adresse, Öffnungszeit ───────────── */
.ort-karte{display:grid;gap:var(--s-5)}
.ort-karte address{font-style:normal;line-height:1.5}
.ort-karte dl{display:grid;grid-template-columns:auto 1fr;gap:var(--s-2) var(--s-4);align-items:baseline}
.ort-karte dt{font-weight:700}
.ort-karte .zeiten{font-weight:800;font-stretch:75%;font-size:var(--t-h3);text-transform:uppercase;letter-spacing:.015em;line-height:1.1}
.ort-karte a{font-weight:600;text-underline-offset:4px;text-decoration-thickness:2px;display:inline-block;padding-block:.25rem}
@media (min-width:48em){.ort-karte{grid-template-columns:1fr 1fr;gap:var(--s-7);align-items:start}}

/* ───────────── 14 · Formular ───────────── */
.formular,.nl-form{display:grid;gap:var(--s-4);max-width:34rem}
.nl-form .knopf{justify-self:start}
.feld{display:block;font-weight:700}
.nl-form label.feld+input{margin-top:calc(var(--s-1) - var(--s-4))}   /* Gitterabstand zwischen Label und eigenem Feld aufheben */
.feld span,.feld small{font-weight:400}
.formular input[type=text],.formular input[type=email],.formular input[type=tel],.formular select,.formular textarea,
.nl-form input[type=text],.nl-form input[type=email]{display:block;width:100%;min-height:3rem;margin-top:var(--s-1);padding:.625rem .875rem;background:var(--wand);
  border:var(--kontur) solid var(--tusche);border-radius:8px 16px 8px 8px;font-weight:400}
.formular textarea{min-height:8rem;resize:vertical}
.formular input::placeholder,.nl-form input::placeholder{color:var(--tusche);opacity:.6}
.formular input:focus-visible,.formular textarea:focus-visible,.nl-form input:focus-visible{outline:3px solid var(--tusche);outline-offset:3px;background:var(--mint)}
.haken,.nl-check{display:grid;grid-template-columns:1.75rem 1fr;gap:var(--s-3);align-items:start;line-height:1.4;cursor:pointer}
.haken input,.nl-check input{appearance:none;-webkit-appearance:none;width:1.75rem;height:1.75rem;margin:.1rem 0 0;border:var(--kontur) solid var(--tusche);border-radius:6px;background:var(--wand);display:grid;place-content:center;cursor:pointer}
.haken input:checked,.nl-check input:checked{background:var(--mint)}
.haken a,.nl-check a{font-weight:600;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}   /* wie Links im Fließtext */
.haken input:checked::after,.nl-check input:checked::after{content:"";width:.75rem;height:.4rem;border-left:3px solid var(--tusche);border-bottom:3px solid var(--tusche);transform:rotate(-45deg) translate(1px,-1px)}
.feld__fehler,.nl-fehler{padding:var(--s-3) var(--s-4);background:var(--lachs);border:var(--kontur) solid var(--tusche);border-radius:8px 16px 8px 8px;font-weight:700}
.nl-fehler{display:none}.nl-fehler.da{display:block}
.feld__hilfe,.nl-fassung,.nl-danach{line-height:1.4}
.nl-fassung{font-weight:600}

/* ───────────── 15 · Newsletter-Modal (Hinweis am unteren Rand) ───────────── */
/* Verhalten bleibt wie auf der Live-Seite: [hidden] aus, .da ein. Ohne Skript bleibt das Element ausgeblendet. */
.nl-hinweis{position:fixed;z-index:60;left:var(--s-3);right:var(--s-3);bottom:calc(var(--s-3) + env(safe-area-inset-bottom,0px));
  padding:var(--s-4) var(--s-4) var(--s-4);background:var(--mint);border:var(--kontur) solid var(--tusche);border-radius:12px 40px 12px 12px;
  box-shadow:-6px 8px 0 var(--tusche);opacity:0;transform:translateY(1rem);transition:opacity .2s,transform .2s;display:grid;gap:var(--s-2)}
.nl-hinweis[hidden]{display:none}
.nl-hinweis.da,.nl-hinweis.statisch{opacity:1;transform:none}
.nl-hinweis .nh-marke{font-weight:700}
.nl-hinweis .nh-titel{font-weight:800;font-stretch:75%;text-transform:uppercase;letter-spacing:.015em;font-size:var(--t-h3);line-height:1.05;padding-right:3rem}
.nl-hinweis .nh-text{line-height:1.4}
.nl-hinweis .knopf{justify-self:start}
.nh-zu{position:absolute;top:.25rem;right:.25rem;width:2.75rem;height:2.75rem;display:grid;place-items:center;background:transparent;border:0;border-radius:50%;
  font-size:1.75rem;line-height:1;cursor:pointer}
.nh-zu:hover{background:var(--wand)}
@media (min-width:48em){.nl-hinweis{left:auto;right:var(--s-5);bottom:var(--s-5);width:24rem}}

/* ───────────── 16 · KRAFTKOST im Web ───────────── */
/* Wortmarke wie Flyer v4: Archivo 800 schmal, Versalien, Endorsement „von Urban Bros.“ mit Logo. Eigene Seitenköpfe, nie im Kopf-Block der Marke. */
.kk-marke{display:flex;flex-direction:column;gap:var(--s-2);align-items:flex-start}
.kk-marke__wort{font-weight:800;font-stretch:75%;text-transform:uppercase;font-size:clamp(3rem,15.5vw,5.25rem);line-height:.9;letter-spacing:.004em}
.kk-marke__von{display:flex;align-items:center;gap:var(--s-2);font-weight:700}
.kk-marke__von img{width:6.5rem;height:auto}
.kk-marke__zeile{width:100%;border-top:var(--linie) solid var(--tusche);padding-top:var(--s-2);display:flex;justify-content:space-between;gap:var(--s-3);font-weight:700;font-stretch:75%;text-transform:uppercase}
@media (min-width:80em){.kk-marke__wort{font-size:8.5rem}}

/* ───────────── 17 · Fuß ───────────── */
.fuss{background:var(--tusche);color:var(--wand);margin-top:var(--s-8)}
.fuss__in{display:grid;gap:var(--s-5);padding-block:var(--s-6) var(--s-6)}
.fuss__marke{display:block;width:8rem}
.fuss address{font-style:normal;line-height:1.5}
.fuss__marke + address{margin-top:var(--s-4)}
.fuss a{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;display:inline-flex;align-items:center;min-height:var(--hoehe-knopf)}
.fuss a:hover{background:var(--mint);color:var(--tusche);text-decoration-color:transparent}
.fuss__nav{display:flex;flex-wrap:wrap;column-gap:var(--s-5)}
.fuss__recht{display:flex;flex-direction:column;gap:var(--s-1);line-height:1.4}
@media (min-width:48em){
  .fuss__in{grid-template-columns:1fr 1fr;column-gap:var(--s-7);align-items:start}
  .fuss__recht{grid-column:1/-1;border-top:var(--linie) solid var(--wand);padding-top:var(--s-4);flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:var(--s-2) var(--s-5)}
}
@media (min-width:80em){.fuss__in{grid-template-columns:1.2fr 1fr 1fr}}

/* ───────────── 18 · Bewegung ───────────── */
/* Bewegung ist Zugabe, nie Träger von Inhalt: Knopf-Farbwechsel 120 ms, Menü/Hinweis blenden ein. Sanftes Scrollen nur auf Wunsch. */
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
  .nl-hinweis{opacity:1;transform:none}
}

/* ───────────── 19 · Druck ───────────── */
@media print{.kopf,.fuss,.nl-hinweis,.strom,.muster{display:none}.abschnitt{padding-block:1rem}}
