/* ============================================================
   FORK & FIRE Catering — Abschnitte
   ============================================================ */

.csec__head{ max-width:min(60ch, 62%); margin-bottom:var(--flow-lg); }
.csec__head .lead{ margin-top:var(--flow); }
.pull{
  margin-top:var(--flow-lg); padding-left:clamp(16px,1.8vw,26px);
  border-left:2px solid var(--red);
  font-family:var(--serif); font-size:clamp(1.25rem,2.1vw,1.85rem); line-height:1.3;
  max-width:34ch;
}

/* Illustrationen in den Abschnitten */
/* Icon haengt nicht mehr allein ueber dem Kicker, sondern schliesst
   die Kopfzeile ab: [Strich] KICKER [Gabel] */
.cintro__body{ position:relative; }
.cintro__art{ display:inline-block; width:22px; color:var(--ink);
  vertical-align:middle; margin-left:10px; transform:translateY(-2px); }
.format__icon{ display:block; width:46px; color:var(--ink); margin-bottom:var(--flow); }
.cpackages .wm{ display:none; }
.crefs{ position:relative; overflow:hidden; }
.crefs > *{ position:relative; z-index:1; }
.crefs .wm{ font-size:clamp(14rem,28vw,28rem); right:-3rem; bottom:-7rem; color:var(--ink); opacity:.05; z-index:0; }

/* Kapitelmarken: hohle Ziffer + Titel, gliedern die Seite in sechs Teile */
.chap{
  display:flex; align-items:baseline; gap:.55em;
  margin-bottom:var(--flow-lg);
}
.chap b{
  font-family:var(--serif); font-weight:400; font-size:clamp(2rem,3vw,2.9rem);
  line-height:1; color:transparent;
  -webkit-text-stroke:1px rgba(11,11,12,.34); paint-order:stroke;
}
.chap span{
  font-size:var(--t-kicker); font-weight:500; letter-spacing:.26em; text-transform:uppercase;
  color:var(--muted);
}
.chap span::before{
  content:""; display:inline-block; width:24px; height:1px; background:var(--red);
  vertical-align:middle; margin-right:12px; transform:translateY(-1px);
}
.chap--light b{ -webkit-text-stroke-color:rgba(255,255,255,.42); }
.chap--light span{ color:var(--muted-l); }

/* Zusammengehörige Sektionen ruecken zusammen */
.sec--tb{ padding-bottom:calc(var(--sec) * .42) !important; }
.sec--tt{ padding-top:calc(var(--sec) * .42) !important; }

/* ── 01 Hero ─────────────────────────────────────────── */
.chero{
  position:relative; min-height:clamp(560px,84svh,880px);
  display:flex; align-items:flex-end;
  padding-block:calc(var(--hdr-h) + 48px) clamp(44px,5vw,80px);
  background:var(--ink); color:#fff; overflow:hidden;
}
.chero__media{ position:absolute; inset:0; }
.chero__media img{
  width:100%; height:100%; object-fit:cover; object-position:52% 62%;
  scale:1.12; animation:kb 18s var(--ease) forwards paused;
  will-change:transform;
}
body.is-ready .chero__media img{ animation-play-state:running; }
@keyframes kb{ to{ scale:1.06; } }
.chero__media::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(6,6,8,.86) 0%, rgba(6,6,8,.42) 38%, rgba(6,6,8,.9) 100%);
}
.chero__inner{ position:relative; z-index:2; width:100%; max-width:20ch; }
.chero .display{ font-size:clamp(2.9rem,7.4vw,7.6rem); text-wrap:balance; }
.chero .eyebrow{ color:rgba(255,255,255,.86); }
.chero .hero__lead{
  margin-top:var(--flow-lg); max-width:44ch; color:rgba(255,255,255,.84);
  font-size:clamp(1.02rem,1.3vw,1.22rem); line-height:1.55;
}
.chero__inner{ max-width:none; }
.hero__cta{ display:flex; align-items:center; gap:clamp(18px,2.4vw,32px); margin-top:var(--flow-lg); flex-wrap:wrap; }
.hero__cta .btn--solid{ background:#fff; color:var(--ink); border-color:#fff; }
.hero__cta .link-ul{ color:#fff; }

.eyebrow,.hero__lead,.hero__cta{
  opacity:0; transform:translateY(18px);
  transition:opacity .9s var(--ease) var(--d,0s), transform .9s var(--ease) var(--d,0s);
}
.eyebrow{ --d:.1s; }
.hero__lead{ --d:.46s; }
.hero__cta{ --d:.56s; }
body.is-ready .eyebrow,
body.is-ready .hero__lead,
body.is-ready .hero__cta{ opacity:1; transform:none; }

/* ── 02 Eckdaten ─────────────────────────────────────── */
.cfacts{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  background:var(--ink); color:#fff; padding-block:0 clamp(36px,4vw,60px);
}
.cfacts li{ border-top:1px solid var(--line-l); padding:clamp(18px,2.2vw,28px) var(--cell) 0 0; }
.cfacts li:first-child{ padding-left:0; }
.cfacts b{ display:block; font-family:var(--serif); font-size:clamp(1.7rem,3.2vw,2.9rem); line-height:1; }
.cfacts span{ display:block; margin-top:.75em; font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted-l); }

/* ── 03 Intro ────────────────────────────────────────── */
.cintro{
  display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:var(--gut);
  /* oben halber Abstand: der Claim direkt darueber bringt schon Luft mit.
     center statt start: sonst klebt der Text oben und unter ihm bleibt
     eine bildhohe Leerflaeche. */
  padding-top:clamp(30px,3.6vw,72px); padding-bottom:var(--sec); align-items:center;
}
.cintro__body .prose{ margin-top:var(--flow-lg); }
.cintro__fig{ overflow:hidden; }
.cintro__fig img{ width:100%; aspect-ratio:3/4; object-fit:cover; }
.cintro__fig figcaption{ margin-top:.9em; font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); }

/* ── 04 Anlässe — Laufband ───────────────────────────── */
.coccasions{ background:var(--ink); color:#fff; padding-block:var(--sec); padding-inline:0; }
.coccasions .kicker{ margin-inline:max(var(--pad), calc((100% - var(--wrap)) / 2)); }
.mq{
  display:grid; gap:clamp(4px,.8vw,12px); overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
          mask-image:linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.mq__row{ display:flex; width:max-content; animation:mq 72s linear infinite; will-change:transform; }
.mq__row--rev{ animation-direction:reverse; animation-duration:88s; }
.mq:hover .mq__row, .mq:focus-within .mq__row{ animation-play-state:paused; }
.mq__half{ display:flex; align-items:baseline; flex:0 0 auto; }
.mq__item{
  font-family:var(--serif); font-size:clamp(2.4rem,6vw,5.4rem); line-height:1.22;
  white-space:nowrap; color:rgba(255,255,255,.94); transition:color .16s linear;
}
a.mq__item:hover{ color:var(--red); }
/* Gegenzeile als Kontur — gefuellt und hohl im Wechsel */
.mq__row--rev .mq__item{
  font-style:italic; color:transparent;
  -webkit-text-stroke:1px rgba(255,255,255,.44);
}
a.mq__item:is(.mq__row--rev *):hover{ color:var(--red); -webkit-text-stroke-color:var(--red); }
.mq__dia{ align-self:center; padding-inline:clamp(22px,3vw,52px); }
.mq__dia::before{ content:"◆"; font-size:.5rem; color:var(--red); display:block; }
@keyframes mq{ to{ transform:translateX(-50%); } }
@media (max-width:640px){
  .mq__row{ animation-duration:42s; }
  .mq__row--rev{ animation-duration:54s; }
}
@media (prefers-reduced-motion:reduce){
  .mq__row{ animation:none; flex-wrap:wrap; width:auto; padding-inline:var(--pad); }
  .mq__row--rev, .mq__half[aria-hidden]{ display:none; }
}

/* ── 05 Formate ──────────────────────────────────────── */
.cformats{ padding-block:var(--sec); background:var(--paper-2); }
.formats{ border-top:1px solid var(--line); }
.format{
  display:grid; grid-template-columns:minmax(0,7fr) minmax(0,4fr); gap:var(--gut);
  padding-block:clamp(26px,3.2vw,48px); border-bottom:1px solid var(--line);
}
.format__main{ display:flex; flex-direction:column; min-width:0; }
.format__title{ font-size:clamp(1.7rem,3vw,2.8rem); line-height:1.08; letter-spacing:-.018em; }
.format__claim{ margin-top:.5em; font-family:var(--serif); font-style:italic; font-size:clamp(1.05rem,1.4vw,1.32rem); color:var(--muted); }
.format__body{ margin-top:var(--flow); max-width:56ch; }
.format__more{ margin-top:var(--flow-lg); }
.format__more summary{
  list-style:none; cursor:pointer; font-size:.68rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--muted); min-height:44px; display:flex; align-items:center; gap:.7em;
}
.format__more summary::-webkit-details-marker{ display:none; }
.format__more summary::after{ content:"+"; color:var(--red); font-size:1.1em; }
.format__more[open] summary::after{ content:"–"; }
.format__list{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 var(--gut); }
.format__list li{
  display:grid; grid-template-columns:auto 1fr; column-gap:.7em;
  padding:.9em 0; border-top:1px solid var(--line); font-size:.94rem;
}
.format__list li::before{ content:""; width:12px; height:1px; background:var(--muted); align-self:center; }
.format__meta{ display:flex; flex-direction:column; }
.format__act{
  margin-top:auto; padding-top:var(--flow-lg);
  display:flex; align-items:center; gap:1.2em; flex-wrap:wrap;
}
.format__from{ font-family:var(--serif); font-size:clamp(1.2rem,1.8vw,1.6rem); line-height:1.2; font-variant-numeric:tabular-nums; }
.format__min{ margin-top:.5em; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.format__meta .link-ul{ margin-top:var(--flow); }
.format__fig{ margin:0 0 var(--flow); overflow:hidden; }
.format__fig img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.format__fig figcaption{
  margin-top:.7em; font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted);
}

/* ── 06 Pakete ───────────────────────────────────────── */
.cpackages{ position:relative; background:var(--ink); color:#fff; padding-block:calc(var(--sec) * .6) var(--sec); overflow:hidden; }
.cpackages__bg{ display:none; }
.cpackages__inner{ position:relative; z-index:2; }
.packs{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--line-l); }
.pack{ padding:clamp(22px,2.4vw,34px) var(--cell); border-right:1px solid var(--line-l); border-bottom:1px solid var(--line-l); }
.pack:nth-child(2n+1){ padding-left:0; }
.pack:nth-child(2n){ border-right:0; padding-right:0; }
.pack:nth-last-child(-n+2){ border-bottom:0; }
.pack__head{ display:flex; align-items:baseline; justify-content:space-between; gap:14px; padding-bottom:.7em; border-bottom:1px solid var(--red); }
.pack__head h3{ font-size:clamp(1.5rem,2.2vw,2rem); }
.pack__price{ text-align:right; }
.pack__price b{ display:block; font-family:var(--serif); font-weight:480; font-size:clamp(1.15rem,1.6vw,1.4rem); font-variant-numeric:tabular-nums; white-space:nowrap; }
.pack__price span{ display:block; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted-l); margin-top:.4em; }
.pack__lead{ margin-top:1.1em; color:rgba(255,255,255,.82); font-size:.9rem; min-height:3.2em; }
.pack__list{ margin-top:1.3em; }
.pack__list li{ padding:.65em 0; border-bottom:1px solid rgba(255,255,255,.1); }
.pack__list b{ display:block; font-weight:400; font-size:.96rem; }
.pack__list i{ display:block; font-style:normal; font-size:.78rem; color:var(--muted-l); margin-top:.25em; line-height:1.4; }
.packs__note{ margin-top:var(--flow-lg); font-size:.78rem; color:var(--muted-l); }
.pack__more summary{
  list-style:none; cursor:pointer; min-height:44px; display:flex; align-items:center; gap:.7em;
  font-size:var(--t-kicker); font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--muted-l);
}
.pack__more summary::-webkit-details-marker{ display:none; }
.pack__more summary::after{ content:"+"; color:var(--red); font-size:1.1em; }
.pack__more[open] summary::after{ content:"–"; }
@media (min-width:768px){ .pack__more summary{ display:none; } }

/* ── 07 Module — kompakte Zeilen statt Kacheln ───────── */
.cmodules{ padding-block:var(--sec); }
.modules{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:var(--gut); border-top:1px solid var(--line); }
.modules li{
  display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:var(--gut);
  align-items:baseline; padding:clamp(14px,1.6vw,20px) 0; border-bottom:1px solid var(--line);
}
.modules h3{ font-size:var(--t-h3); line-height:1.16; }
.modules p{ grid-column:1; margin-top:.35em; color:var(--muted); font-size:.88rem; max-width:44ch; }
.modules .price{ grid-row:1; grid-column:2; font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--red); }

/* ── 08 Getränke ─────────────────────────────────────── */
.cdrinks{ padding-block:var(--sec); background:var(--paper-2); }
.tiers{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--gut); }
.tier{ border-top:1px solid var(--line); padding-top:clamp(16px,1.8vw,24px); }
.tier h3{ font-size:clamp(1.4rem,2vw,1.8rem); }
.tier__price{ margin-top:.35em; font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--red); font-variant-numeric:tabular-nums; }
.tier ul{ margin-top:1.2em; }
.tier li{ padding:.6em 0; border-bottom:1px solid var(--line); font-size:.92rem; }
.cdrinks .fine{ margin-top:var(--flow-lg); }
.detailrow{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--gut); margin-top:var(--sec); }
.detailrow figure{ overflow:hidden; margin:0; }
.detailrow img{ width:100%; aspect-ratio:4/5; object-fit:cover; }
.cjournal{ padding-block:var(--sec); background:var(--paper-2); }
/* Startseite: immer drei nebeneinander, kompakte Karten */
.cjournal .jgrid{ grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:clamp(10px,1.6vw,var(--gut)); }
.cjournal .jcard h3,.cjournal .jcard h2{ font-size:clamp(.95rem,1.5vw,1.55rem); }
@media (max-width:1080px) and (min-width:901px){
  .cjournal .jgrid{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
}
@media (max-width:900px){
  .cjournal .jgrid{ grid-template-columns:1fr !important; }
  .cjournal .jcard p, .cjournal .jcard .jcard__more, .cjournal .jcard__meta span:last-child{ display:none; }
  .cjournal .jcard__meta{ margin-top:.7em; }
}
@media (max-width:834px){
  .detailrow{ grid-template-columns:1fr; }
  .detailrow img{ aspect-ratio:4/3; }
  .modules{ grid-template-columns:1fr; }
}

/* ── 09 Personal & Ausstattung ───────────────────────── */
.cservice{
  display:grid; grid-template-columns:minmax(0,4fr) minmax(0,8fr); gap:var(--gut);
  padding-block:var(--sec); align-items:start;
}
.cservice__l{ position:sticky; top:calc(var(--hdr-h) + 40px); }
.cservice__l .prose{ margin-top:var(--flow-lg); }
.cservice__fig{ margin-top:var(--flow-lg); overflow:hidden; }
.cservice__fig img{ width:100%; aspect-ratio:3/2; object-fit:cover; object-position:50% 40%; }
.rate td{ padding:clamp(14px,1.7vw,22px) 0; border-bottom:1px solid var(--line); vertical-align:baseline; }
.rate tr:first-child td{ border-top:1px solid var(--line); }
.rate td:first-child{ padding-right:var(--gut); }
.rate b{ display:block; font-family:var(--serif); font-weight:480; font-size:var(--t-h3); }
.rate i{ display:block; font-style:normal; margin-top:.45em; color:var(--muted); font-size:.88rem; max-width:48ch; }
.rate td:last-child{ text-align:right; font-size:.96rem; }

/* ── 10 Beispielrechnungen ───────────────────────────── */
.ccases{ padding-block:var(--sec); background:var(--paper-2); }
.cases{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--gut); align-items:stretch; }
/* Flex-Spalte + margin-top:auto: die Summen aller drei Rechnungen schliessen
   unten buendig ab, egal wie viele Positionen darueber stehen. */
.case{ border-top:1px solid var(--ink); padding-top:clamp(16px,1.8vw,24px); display:flex; flex-direction:column; }
.case__sum{
  margin-top:auto; padding-top:.9em; border-top:2px solid var(--ink);
  display:flex; justify-content:space-between; align-items:baseline;
  font-family:var(--serif); font-size:clamp(1.15rem,1.5vw,1.4rem);
}
.case__sum b, .case__persum b{ font-weight:400; font-variant-numeric:tabular-nums; }
.case__persum{
  margin-top:.4em; display:flex; justify-content:space-between; align-items:baseline;
  font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted);
}
.case__rows{ margin-bottom:1em; }
.case__title{ font-size:clamp(1.4rem,2vw,1.85rem); }
.case__meta{ margin-top:.4em; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.case__rows{ margin-top:1.3em; font-variant-numeric:tabular-nums; }
.case__rows td{ padding:.62em 0; border-bottom:1px solid var(--line); vertical-align:baseline; }
.case__rows td:last-child{ text-align:right; white-space:nowrap; padding-left:12px; }
.case__rows b{ display:block; font-weight:400; font-size:.94rem; }
.case__rows i{ display:block; font-style:normal; font-size:.76rem; color:var(--muted); margin-top:.2em; }
.case__per td{ padding-top:.2em !important; font-size:.8rem !important; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.ccases .fine{ margin-top:var(--flow-lg); }

/* ── 11 Ablauf ───────────────────────────────────────── */
.cprocess{ background:var(--ink); color:#fff; padding-block:var(--sec); }
.steps{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border-top:1px solid var(--line-l); }
.step{ padding:clamp(20px,2.2vw,30px) var(--cell) 0 0; position:relative; }
.step:first-child{ padding-left:0; }
.step:last-child{ padding-right:0; }
.step::before{
  content:""; position:absolute; top:-1px; left:0; right:var(--cell); height:1px; background:var(--red);
  transform:scaleX(0); transform-origin:left; transition:transform .8s var(--ease);
}
.step:last-child::before{ right:0; }
.step.in::before{ transform:scaleX(1); }
.step__when{ font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; color:var(--red); }
.step h3{ margin-top:.9em; font-size:var(--t-h3); line-height:1.16; }
.step p{ margin-top:.6em; color:var(--muted-l); font-size:.88rem; }

/* ── 12 Verkostung / 13 Auftrag ──────────────────────── */
.ctasting,.cterms{
  display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:var(--gut);
  padding-block:var(--sec); align-items:start;
}
.ctasting .lead{ margin-top:var(--flow); }
.ctasting .btn{ margin-top:var(--flow-lg); }
.ctasting__l{ position:sticky; top:calc(var(--hdr-h) + 40px); }
.keyval{ border-top:1px solid var(--line); }
.keyval > div{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); gap:var(--gut);
  padding:clamp(14px,1.7vw,22px) 0; border-bottom:1px solid var(--line);
}
.keyval dt{ font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); padding-top:.25em; }
.keyval dd{ font-size:1rem; }
.keyval--wide dd{ font-family:var(--serif); font-size:clamp(1.05rem,1.4vw,1.3rem); line-height:1.35; }

/* ── 14 Ernährung ────────────────────────────────────── */
.cdiet{
  display:grid; grid-template-columns:minmax(0,4fr) minmax(0,8fr); gap:var(--gut);
  padding-block:var(--sec); background:var(--paper-2); align-items:start;
}
.cdiet__l{ position:sticky; top:calc(var(--hdr-h) + 40px); }
.tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:var(--flow-lg); }
.tags li{ border:1px solid var(--line); padding:.7em 1.05em; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; }

/* ── 16 Konditionen ──────────────────────────────────── */
.clog{ padding-block:var(--sec); }
.clog__grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--gut); }
.zones li{ padding:clamp(16px,1.9vw,24px) 0; border-top:1px solid var(--line); }
.zones li:last-child{ border-bottom:1px solid var(--line); }
.zones h3{ font-size:var(--t-h3); }
.zones p{ margin-top:.5em; color:var(--muted); font-size:.9rem; max-width:44ch; }
.zones .price{ display:inline-block; margin-top:.8em; font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--red); }
.rules p{ margin-bottom:var(--flow-lg); max-width:52ch; color:var(--muted); }
.rules p:last-child{ margin-bottom:0; }
.rules b{ color:var(--ink); font-weight:400; font-family:var(--serif); font-size:1.1em; }

/* ── Bildbaender mit Parallax ────────────────────────── */
.brk{
  position:relative; height:clamp(300px,58vh,580px); overflow:hidden;
  background:var(--ink); padding-inline:0 !important;
}
.brk img{
  position:absolute; left:0; top:-14%; width:100%; height:128%;
  object-fit:cover; will-change:transform;
}
.brk::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(6,6,8,.22), rgba(6,6,8,.04) 45%, rgba(6,6,8,.42));
}
.brk__cap{
  position:absolute; z-index:2; left:max(var(--pad), calc((100% - var(--wrap)) / 2));
  bottom:clamp(24px,3.5vw,52px); color:#fff;
  font-family:var(--serif); font-style:italic;
  font-size:clamp(1.4rem,2.8vw,2.6rem); line-height:1.2;
  text-shadow:0 1px 24px rgba(0,0,0,.45);
  max-width:20ch;
}

/* ── 18 Referenzen — ein Band, keine Sektion ─────────── */
.crefs{ padding-block:calc(var(--sec) * .5); background:var(--paper-2); }
.crefs__line{
  max-width:none; border-block:1px solid var(--line); padding-block:var(--flow-lg);
  font-family:var(--serif); font-size:clamp(1.1rem,1.7vw,1.5rem); line-height:1.5;
}
.crefs__line span{
  font-family:var(--sans); font-size:var(--t-kicker); font-weight:500;
  letter-spacing:.24em; text-transform:uppercase; color:#B1020D; margin-right:1.2em;
}
.crefs__line .link-ul{ margin-left:1.2em; }

/* ── 19 Fragen ───────────────────────────────────────── */
.cfaq{ padding-block:var(--sec); }
.faq{ border-top:1px solid var(--line); }
.qa{ border-bottom:1px solid var(--line); }
.qa summary{
  list-style:none; cursor:pointer; padding:clamp(16px,2vw,26px) clamp(40px,4vw,64px) clamp(16px,2vw,26px) 0;
  position:relative; font-family:var(--serif); font-size:clamp(1.15rem,1.8vw,1.55rem); line-height:1.26;
  transition:color .16s linear;
}
.qa summary::-webkit-details-marker{ display:none; }
.qa summary:hover{ color:var(--red); }
.qa summary::before,.qa summary::after{
  content:""; position:absolute; right:6px; top:50%; background:var(--ink);
  transition:transform .3s var(--ease), opacity .2s linear;
}
.qa summary::before{ width:15px; height:1px; margin-top:-1px; }
.qa summary::after{ width:1px; height:15px; margin-top:-8px; right:13px; }
.qa[open] summary::after{ transform:rotate(90deg); opacity:0; }
.qa p{ padding:0 clamp(40px,4vw,64px) clamp(20px,2.2vw,30px) 0; max-width:72ch; color:var(--muted); }

/* ── 20 Anfrage ──────────────────────────────────────── */
.cform{
  display:grid; grid-template-columns:minmax(0,4fr) minmax(0,8fr); gap:var(--gut);
  padding-block:var(--sec); align-items:start;
  background:var(--ink-2); color:#fff;
}
.cform .chap b{ -webkit-text-stroke-color:rgba(255,255,255,.42); }
.cform .chap span, .cform .fine, .cform .field label, .cform .field small,
.cform .person__role, .cform .person__line, .cform .cform__hint{ color:var(--muted-l); }
.cform .lead{ color:rgba(255,255,255,.8); }
.cform .person{ border-color:var(--line-l); }
.cform__form fieldset legend{ border-color:var(--line-l); color:#fff; }
.cform .field input,.cform .field select,.cform .field textarea{
  border-bottom-color:rgba(255,255,255,.45); color:#fff;
}
.cform .field select{
  background-image:linear-gradient(45deg,transparent 50%,#fff 50%),linear-gradient(135deg,#fff 50%,transparent 50%);
}
.cform .field input:focus,.cform .field select:focus,.cform .field textarea:focus{ border-color:var(--red); }
.cform .field select option{ color:var(--ink); }
.cform .field--check label{ color:rgba(255,255,255,.85); }
.cform .btn--solid{ background:var(--red); border-color:var(--red); }
.cform .cform__hint a{ color:#fff; }
.cform__fig{ margin-top:var(--flow-lg); overflow:hidden; }
.cform__fig img{ width:100%; aspect-ratio:21/10; object-fit:cover; }
.detailrow--sm{ margin-top:var(--flow-lg); }
.detailrow--sm img{ aspect-ratio:4/5; }
.cform__l{ position:sticky; top:calc(var(--hdr-h) + 40px); }
.cform .lead{ margin-top:var(--flow); }
.cform .fine{ margin-top:var(--flow-lg); }
.person{ margin-top:var(--flow-lg); border-top:1px solid var(--line); padding-top:var(--flow-lg); }
.person__name{ font-family:var(--serif); font-size:clamp(1.3rem,1.8vw,1.6rem); }
.person__role{ margin-top:.2em; font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.person__contact{ margin-top:var(--flow); }
.person__contact li{ padding:.4em 0; font-size:.95rem; }
.person__contact a{ border-bottom:1px solid var(--red); padding-bottom:.15em; }
.person__line{ margin-top:var(--flow); font-size:.85rem; color:var(--muted); max-width:38ch; }

.cform__form fieldset{ border:0; padding:0; margin:0 0 var(--sec); }
.cform__form fieldset:last-of-type{ margin-bottom:var(--flow-lg); }
.cform__form legend{
  display:flex; align-items:baseline; gap:.9em; width:100%;
  padding-bottom:var(--flow); margin-bottom:var(--flow-lg); border-bottom:1px solid var(--line);
  font-family:var(--serif); font-size:clamp(1.25rem,1.7vw,1.6rem);
}
.cform__form legend span{ font-family:var(--sans); font-size:.68rem; letter-spacing:.18em; color:#F87171; }
.grid3{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--flow-lg) var(--gut); }
.field{ display:flex; flex-direction:column; gap:.5em; }
.field--2{ grid-column:span 2; }
.field--3{ grid-column:1 / -1; }
.field label{ font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); }
.field small{ font-size:.72rem; color:var(--muted); }
.field input,.field select,.field textarea{
  border:0; border-bottom:1px solid var(--ink); background:transparent; padding:.7em 0;
  border-radius:0; font-size:1rem; min-height:44px; -webkit-appearance:none; appearance:none;
  transition:border-color .16s linear;
}
.field select{
  background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);
  background-position:calc(100% - 9px) 55%,calc(100% - 4px) 55%; background-size:5px 5px,5px 5px; background-repeat:no-repeat;
  padding-right:22px;
}
.field textarea{ resize:vertical; min-height:96px; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-color:var(--red); }
.field input:user-invalid,.field select:user-invalid{ border-color:var(--red); }
.field--check label{
  display:grid; grid-template-columns:auto 1fr; gap:.9em; align-items:start;
  font-size:.85rem; letter-spacing:0; text-transform:none; color:var(--ink); line-height:1.5;
}
.field--check input{ width:20px; height:20px; min-height:20px; margin-top:2px; accent-color:var(--red); border:1px solid var(--ink); }
.hp{ position:absolute; left:-9999px; }
.cform__send{ display:flex; align-items:center; gap:var(--gut); flex-wrap:wrap; }
.cform__hint{ font-size:.78rem; color:var(--muted); line-height:1.7; }
.cform__hint a{ border-bottom:1px solid var(--red); }
.book__status{ margin-top:var(--flow); font-size:.8rem; color:var(--red); min-height:1.4em; }
.cform__done{
  border-top:2px solid var(--ink); padding-top:var(--flow-lg);
}
.cform__done h3{ font-size:clamp(1.5rem,2.2vw,2.1rem); }
.cform__done p{ margin-top:var(--flow); max-width:54ch; }

/* ── Responsive ──────────────────────────────────────── */
@media (max-width:1080px){
  .csec__head{ max-width:60ch; }
  .cintro,.cservice,.cdiet,.crefs,.cform,.ctasting,.cterms,.clog__grid{ grid-template-columns:1fr; }
  .cservice__l,.cdiet__l,.cform__l,.ctasting__l{ position:static; }
  .cfacts{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cfacts li:nth-child(2n){ padding-right:0; }
  .cfacts li:nth-child(2n+1){ padding-left:0; }
  .steps{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .step{ padding-bottom:clamp(20px,2.2vw,30px); }
  .step:nth-child(2n){ padding-right:0; }
  .step:nth-child(2n)::before{ right:0; }
  .step:nth-child(2n+1){ padding-left:0; }
  .tiers{ grid-template-columns:1fr; gap:var(--flow-lg); }
  .cases{ grid-template-columns:1fr; gap:var(--flow-lg); }
  .format{ grid-template-columns:1fr; gap:var(--flow-lg); }
  .format__fig{ grid-column:1 / -1; }
  .grid3{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .field--2{ grid-column:1 / -1; }
}
@media (max-width:640px){
  .cintro__art{ width:38px; }
  .format__icon{ width:40px; }
  .cfacts{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cfacts li:nth-child(2n){ padding-right:0; }
  .cfacts li:nth-child(2n+1){ padding-left:0; }
  .format__list{ grid-template-columns:1fr; }
  .modules{ grid-template-columns:1fr; }
  .steps{ grid-template-columns:1fr; }
  .step{ padding-right:0; }
  .step::before{ right:0; }
  .grid3{ grid-template-columns:1fr; }
  .keyval > div{ grid-template-columns:1fr; gap:.4em; }
  .cform__send{ flex-direction:column; align-items:stretch; }
  .cform__send .btn{ width:100%; }

  /* Pakete: kompakter Stapel, Gerichtliste aufklappbar — kein Quer-Wischen */
  .packs{ display:block; }
  .pack{ border-right:0; border-bottom:1px solid var(--line-l) !important; padding:18px 0 !important; }
  .pack:last-child{ border-bottom:0 !important; }
  .pack__lead{ min-height:0; }
}
@media (max-width:560px){
  .chero{ min-height:100svh; padding-block:calc(var(--hdr-h) + 24px) calc(32px + env(safe-area-inset-bottom)); }
  .chero__media::after{ background:linear-gradient(180deg, rgba(6,6,8,.88) 0%, rgba(6,6,8,.5) 42%, rgba(6,6,8,.92) 100%); }
  .hero__cta{ gap:16px; }
  .hero__cta .btn{ width:100%; }
  .hero__cta .link-ul{ min-height:44px; display:inline-flex; align-items:center; }
}

.cform__form select{ width:100%; min-width:0; text-overflow:ellipsis; }

/* ══ Claim, Küchen, Koch-Teaser ═════════════════════════ */
.cclaim{ padding-top:clamp(22px,2.6vw,36px); padding-bottom:0; }
.cclaim .kicker{ margin-bottom:.7em; }
.cclaim__text{
  margin:0; font-family:var(--serif); font-weight:420;
  font-size:clamp(1.15rem,2vw,1.65rem); line-height:1.28; letter-spacing:-.01em;
  max-width:36ch; text-wrap:balance; color:var(--muted);
}

.ckitchens{ padding-block:var(--sec); }

/* Drei gleichwertige Bildkarten: Text liegt IM Bild, dadurch identische
   Hoehen und keine Leerflaechen — das war das Problem der alten Fassung. */
.kitchens{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(14px,1.6vw,26px); margin-top:var(--flow-lg);
}
.kitchen{ position:relative; overflow:hidden; background:var(--ink); }
.kitchen__fig{ margin:0; }
.kitchen__fig img{
  width:100%; aspect-ratio:3/4; object-fit:cover; display:block;
  transition:transform .8s var(--ease), opacity .8s var(--ease);
  opacity:.92;
}
.kitchen:hover .kitchen__fig img{ transform:scale(1.04); opacity:1; }
.kitchen__veil{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(11,11,12,.12) 0%, rgba(11,11,12,.18) 42%, rgba(11,11,12,.92) 78%);
}
.kitchen__txt{
  position:absolute; inset:auto 0 0 0; padding:clamp(16px,1.8vw,26px);
  color:#fff;
}
.kitchen__title{
  font-family:var(--serif); font-weight:420; letter-spacing:-.01em;
  font-size:clamp(1.35rem,1.9vw,1.9rem); line-height:1.1;
}
.kitchen__title::after{
  content:""; display:block; width:34px; height:2px; background:var(--red);
  margin-top:.45em;
}
.kitchen__body{
  margin-top:.7em; font-size:.95rem; line-height:1.55; color:rgba(255,255,255,.88);
}

/* Paket-Reihe: Speisekarten-Typografie statt Formular-Kaesten.
   Das grosse rote Zeichen traegt die Gruppe, die Laender stehen als
   Serif-Zeile daneben — Hairlines trennen die drei Pakete. */
.krow{ margin-top:clamp(30px,3.4vw,52px); border-top:1px solid var(--line); padding-top:clamp(22px,2.4vw,34px); }
.krow__lead{ font-family:var(--serif); font-weight:420; font-size:clamp(1.15rem,1.6vw,1.5rem); letter-spacing:-.01em; }
.kpacks{
  margin-top:clamp(18px,2vw,28px);
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
}
.kpack{
  display:flex; align-items:baseline; gap:clamp(12px,1.3vw,18px);
  padding-inline:clamp(18px,2vw,32px);
}
.kpack:first-child{ padding-left:0; }
.kpack + .kpack{ border-left:1px solid var(--line); }
.kpack__code{
  font-family:var(--serif); font-weight:420; font-size:clamp(2rem,2.6vw,2.7rem);
  line-height:1; color:var(--red);
}
.kpack__list{
  font-family:var(--serif); font-size:clamp(1rem,1.25vw,1.18rem); line-height:1.6;
  letter-spacing:.01em; color:var(--ink);
}
.ckitchens .fine{ margin-top:var(--flow-lg); max-width:60ch; }

.cchef{
  background:var(--ink); color:#fff;
  display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr);
  gap:clamp(26px,3.4vw,64px); align-items:center; padding-block:var(--sec);
}
.cchef__media img{ width:100%; height:auto; display:block; border:1px solid var(--line-l); }
.cchef__text .lead{ margin-top:var(--flow); color:var(--muted-l); max-width:52ch; }
.cchef__years{ margin-top:var(--flow-lg); display:flex; align-items:baseline; gap:.5em; }
.cchef__years b{ font-family:var(--serif); font-size:clamp(2rem,3.4vw,3rem); line-height:1; color:var(--red); }
.cchef__years span{ font-size:var(--t-kicker); letter-spacing:.22em; text-transform:uppercase; color:var(--muted-l); }
.cchef .btn{ margin-top:var(--flow-lg); }

@media (max-width:1080px){
  .kitchens{ grid-template-columns:1fr; }
  .kpacks{ grid-template-columns:1fr; gap:14px; }
  .kpack{ padding-inline:0; }
  .kpack + .kpack{ border-left:0; border-top:1px solid var(--line); padding-top:14px; }
  .kitchen__fig img{ aspect-ratio:4/3; }
  .cchef{ grid-template-columns:1fr; }
  .cchef__media{ order:-1; }
}
@media (max-width:767px){
  .kitchen__fig img{ aspect-ratio:16/10; }
}
