@font-face { font-family: 'Marcellus'; font-style: normal; font-weight: 400; font-display: swap; src: url('/fonts/marcellus/marcellus-latin-400-normal.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Marcellus'; font-style: normal; font-weight: 400; font-display: swap; src: url('/fonts/marcellus/marcellus-latin-ext-400-normal.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
html:has(.ab-kopf) { scroll-behavior: smooth; scroll-padding-top: 5.5rem; }
@media (prefers-reduced-motion: reduce) { html:has(.ab-kopf) { scroll-behavior: auto; } }
body:has(.ab-kopf) { background: #fff; overflow-x: clip; }
.ab, .ab-seite {
  --ab-papier: #ffffff;
  --ab-stein: #f4f3f0;
  --ab-tinte: #221f1c;
  --ab-kohle: #2b2826;
  --ab-kohle-hell: #36322f;
  --ab-grau: #6b655f;
  --ab-grau-hell: #c9c4bd;
  --ab-messing: #a8834a;
  --ab-messing-text: #7f612d;
  --ab-linie: rgba(34,31,28,.12);
  --ab-titel: 'Marcellus', Georgia, serif;
  --ab-text: var(--site-font-body, 'Manrope'), 'Helvetica Neue', Arial, sans-serif;
  --ab-breite: 76rem;
  --ab-rand: clamp(1.25rem, 4vw, 3rem);
  --ab-spalt: clamp(.5rem, 1.2vw, 1rem);
  --ab-kurve: cubic-bezier(.2,.8,.2,1);
}
.ab { color: var(--ab-tinte); font: 400 1.03rem/1.75 var(--ab-text); -webkit-font-smoothing: antialiased; position: relative; }
.ab *, .ab *::before, .ab *::after { box-sizing: border-box; }
.ab img { display: block; max-width: 100%; height: auto; }
.ab a { color: inherit; }
.ab :focus-visible { outline: 2px solid var(--ab-messing); outline-offset: 3px; }
.ab .ab-innen { width: min(100% - 2 * var(--ab-rand), var(--ab-breite)); margin-inline: auto; }
.ab :is(h1, h2, h3) { font-family: var(--ab-titel); font-weight: 400; margin: 0; line-height: 1.12; letter-spacing: 0; color: inherit; text-transform: none; }
.ab h2.ab-h2 { font-size: clamp(2.1rem, 4vw, 3.2rem); }
.ab p { margin: 0 0 1rem; }
.ab .ab-leise { color: var(--ab-grau); }
.ab.ab-abschnitt, .ab .ab-abschnitt { padding: clamp(4.5rem, 10vw, 7.5rem) 0; }
.ab .ab-mittig { text-align: center; }
.ab .ab-zier { display: flex; align-items: center; justify-content: center; gap: .75rem; margin: 1.1rem auto 1.5rem; width: 9rem; color: var(--ab-messing); }
.ab .ab-zier::before, .ab .ab-zier::after { content: ''; flex: 1; height: 1px; background: currentColor; }
.ab .ab-zier i { width: .5rem; height: .5rem; border: 1px solid currentColor; transform: rotate(45deg); }
.ab .ab-zier.ab-links { margin-left: 0; }
.ab .ab-knopf { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: 0 1.6rem; font: 600 .95rem/1 var(--ab-text); letter-spacing: .02em; text-decoration: none; border: 1px solid transparent; cursor: pointer; transition: background-color .25s, color .25s, border-color .25s; text-align: center; }
.ab .ab-knopf.ab-voll { background: var(--ab-tinte); color: #fff; }
.ab .ab-knopf.ab-voll:hover { background: var(--ab-messing-text); }
.ab .ab-knopf.ab-rahmen { border-color: var(--ab-tinte); color: var(--ab-tinte); background: transparent; }
.ab .ab-knopf.ab-rahmen:hover { background: var(--ab-tinte); color: #fff; }
.ab .ab-knopf.ab-hell { background: #fff; color: var(--ab-tinte); }
.ab .ab-knopf.ab-hell:hover { background: var(--ab-stein); }
.ab .ab-knopf.ab-glas { border-color: rgba(255,255,255,.75); color: #fff; }
.ab .ab-knopf.ab-glas:hover { background: rgba(255,255,255,.14); }
.ab .ab-knopf-zeile { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.ab .ab-mittig .ab-knopf-zeile { justify-content: center; }
.ab .ab-ico { width: 3.5rem; height: 3.5rem; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; overflow: visible; }
.ab .ab-ico .ab-akz { stroke: var(--ab-messing); }
.ab .ab-ico .ab-ring { stroke: var(--ab-messing); stroke-width: 1; stroke-dasharray: 1; stroke-dashoffset: 1; transform: rotate(-90deg); transform-box: fill-box; transform-origin: center; }
.ab .ab-ico .ab-glas-l, .ab .ab-ico .ab-glas-r, .ab .ab-ico .ab-gabel, .ab .ab-ico .ab-messer, .ab .ab-ico .ab-haken, .ab .ab-ico .ab-funken, .ab .ab-ico .ab-blatt { transform-box: view-box; }
.ab .ab-ico .ab-glas-l { transform-origin: 19px 45px; }
.ab .ab-ico .ab-glas-r { transform-origin: 37px 45px; }
.ab .ab-ico .ab-gabel { transform-origin: 23px 50px; }
.ab .ab-ico .ab-messer { transform-origin: 38px 50px; }
.ab .ab-ico .ab-haken { transform-origin: 28px 33px; }
.ab .ab-ico .ab-funken { transform-origin: 28px 8px; }
.ab.ab-kopf { position: sticky; top: 0; z-index: 40; transition: box-shadow .3s; }
.ab.ab-kopf::before { content: ''; position: absolute; inset: 0; z-index: -1; background: rgba(255,255,255,.94); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
html[data-cg-scrolled] .ab.ab-kopf[data-cg-sticky] { background: transparent !important; box-shadow: 0 1px 0 var(--ab-linie) !important; }
.ab.ab-kopf:has(.ab-burger[open])::before { background: #fff; -webkit-backdrop-filter: none; backdrop-filter: none; }
.ab .ab-kopf-leiste { display: flex; align-items: center; gap: 2.25rem; height: 5rem; margin-inline: calc(var(--ab-spalt) + clamp(.5rem, 2vw, 1.5rem)); }
.ab .ab-marke { display: flex; align-items: center; gap: .8rem; text-decoration: none; margin-right: auto; min-width: 0; color: var(--ab-tinte); }
.ab .ab-marke img { width: 2.1rem; height: auto; }
.ab .ab-marke span { font: 400 1.45rem/1 var(--ab-titel); white-space: nowrap; }
.ab .ab-menue { display: flex; gap: clamp(1.1rem, 1.6vw, 1.9rem); white-space: nowrap; list-style: none; margin: 0; padding: 0; font-size: .93rem; font-weight: 500; }
.ab.ab-kopf .ab-kopf-leiste > .ab-knopf { white-space: nowrap; }
.ab .ab-menue a { text-decoration: none; position: relative; color: var(--ab-tinte); }
.ab .ab-menue a::after { content: ''; position: absolute; left: 0; right: 0; bottom: -.3rem; height: 1px; background: var(--ab-messing); transform: scaleX(0); transition: transform .25s; }
.ab .ab-menue a:hover::after, .ab .ab-menue a[aria-current]::after { transform: none; }
.ab .ab-kopf-tel { text-decoration: none; font-weight: 600; font-size: .95rem; white-space: nowrap; color: var(--ab-tinte); }
.ab .ab-kopf-leiste > .ab-knopf { min-height: 2.6rem; padding: 0 1.15rem; font-size: .9rem; }
.ab .ab-burger { display: none; }
.ab .ab-burger > summary { display: inline-flex; align-items: center; gap: .6rem; list-style: none; cursor: pointer; border: 1px solid var(--ab-tinte); font: 600 .9rem/1 var(--ab-text); padding: .7rem 1rem; color: var(--ab-tinte); }
.ab .ab-burger > summary::-webkit-details-marker { display: none; }
.ab .ab-burger .ab-zu { display: none; }
.ab .ab-striche { position: relative; width: 1.05rem; height: .65rem; }
.ab .ab-striche i { position: absolute; left: 0; right: 0; top: 0; height: 1.5px; background: currentColor; transition: transform .4s var(--ab-kurve), top .4s var(--ab-kurve); }
.ab .ab-striche i + i { top: calc(100% - 1.5px); }
.ab .ab-burger[open]:not(.ab-schliesst) .ab-striche i { top: calc(50% - .75px); transform: rotate(45deg); }
.ab .ab-burger[open]:not(.ab-schliesst) .ab-striche i + i { transform: rotate(-45deg); }
html:has(.ab-burger[open]) { overflow: hidden; }
.ab .ab-burger[open] .ab-auf { display: none; }
.ab .ab-burger[open] .ab-zu { display: inline; }
.ab .ab-burger-panel { position: fixed; inset: 4.25rem 0 0 0; z-index: 50; background: #fff; display: flex; flex-direction: column; padding: 1rem var(--ab-rand) 2rem; overflow-y: auto; }
.ab .ab-burger-panel ul { list-style: none; margin: 0 0 auto; padding: 0; }
.ab .ab-burger-panel li a { display: block; font: 400 2rem/1.2 var(--ab-titel); padding: .4rem 0; text-decoration: none; border-bottom: 1px solid var(--ab-linie); color: var(--ab-tinte); transition: padding-left .35s var(--ab-kurve), color .35s; }
.ab .ab-burger-panel li a:hover, .ab .ab-burger-panel li a:focus-visible { padding-left: .6rem; color: var(--ab-messing-text); }
.ab .ab-burger-panel .ab-knopf { width: 100%; margin-top: .75rem; }
@media (max-width: 1300px) {
  .ab .ab-menue, .ab .ab-kopf-tel { display: none; }
  .ab .ab-burger { display: block; }
}
@media (max-width: 640px) {
  .ab .ab-kopf-leiste { height: 4.25rem; margin-inline: var(--ab-rand); gap: 1rem; }
  .ab .ab-kopf-leiste > .ab-knopf { display: none; }
  .ab .ab-marke span { white-space: normal; font-size: 1.3rem; line-height: 1.05; }
}
.ab.ab-buehne { padding: 0 var(--ab-spalt); }
.ab .ab-buehne-box { position: relative; height: clamp(540px, calc(100svh - 5rem - var(--ab-spalt)), 880px); overflow: hidden; background: var(--ab-kohle); color: #fff; isolation: isolate; display: grid; place-items: center; text-align: center; }
.ab .ab-folien { position: absolute; inset: 0; z-index: 0; margin: 0; padding: 0; list-style: none; }
.ab .ab-folien li { position: absolute; inset: 0; opacity: 0; transition: opacity 1.4s ease-in-out; }
.ab .ab-folien li.ab-aktiv { opacity: 1; transition: none; }
.ab .ab-folien li.ab-raus { z-index: 1; }
.ab .ab-folien img { width: 100%; height: 100%; object-fit: cover; }
.ab .ab-buehne-box::after { content: ''; position: absolute; inset: 0; z-index: 2; pointer-events: none; background: radial-gradient(ellipse 70% 60% at 50% 52%, rgba(22,19,17,.62), rgba(22,19,17,.25) 75%), linear-gradient(to top, rgba(22,19,17,.55), rgba(22,19,17,0) 35%); }
.ab .ab-buehne-box::before { content: ''; position: absolute; inset: clamp(.75rem, 1.6vw, 1.25rem); z-index: 3; border: 1px solid rgba(255,255,255,.35); pointer-events: none; }
.ab .ab-buehne-inhalt { position: relative; z-index: 4; padding: 0 1.5rem; max-width: 50rem; }
.ab.ab-buehne .ab-wappen { width: 3.2rem; margin: 0 auto 1.25rem; filter: drop-shadow(0 2px 8px rgba(0,0,0,.4)); }
.ab.ab-buehne h1, .ab.ab-buehne h2.ab-buehne-titel { font-size: clamp(3rem, 8vw, 6.6rem); line-height: 1; letter-spacing: .01em; color: #fff; }
.ab.ab-buehne .ab-zusatz { display: block; font: 500 clamp(1.02rem, 1.5vw, 1.2rem)/1.6 var(--ab-text); margin: 1.4rem auto 0; max-width: 34rem; color: #f1ede7; }
.ab.ab-buehne .ab-knopf-zeile { justify-content: center; margin-top: 2.25rem; }
.ab .ab-steuer { position: absolute; z-index: 4; top: 50%; translate: 0 -50%; width: 3.25rem; height: 3.25rem; border: 1px solid rgba(255,255,255,.5); background: rgba(0,0,0,.15); color: #fff; cursor: pointer; display: grid; place-items: center; transition: background-color .25s; padding: 0; }
.ab .ab-steuer:hover { background: rgba(0,0,0,.4); }
.ab .ab-steuer svg { width: 1.1rem; height: 1.1rem; fill: none; stroke: currentColor; stroke-width: 1.6; }
.ab .ab-steuer.ab-zurueck { left: clamp(1.75rem, 3vw, 2.5rem); }
.ab .ab-steuer.ab-vor { right: clamp(1.75rem, 3vw, 2.5rem); }
.ab .ab-unten { position: absolute; z-index: 4; left: 0; right: 0; bottom: clamp(1.75rem, 3.5vw, 2.75rem); display: flex; justify-content: center; align-items: center; gap: 1rem; }
.ab .ab-punkte { display: flex; gap: .5rem; }
.ab .ab-punkte button { width: 2.25rem; height: 1.25rem; border: 0; padding: 0; background: none; cursor: pointer; position: relative; }
.ab .ab-punkte button::before { content: ''; position: absolute; left: 0; right: 0; top: 50%; height: 2px; background: rgba(255,255,255,.45); }
.ab .ab-punkte button[aria-current="true"]::before { background: #fff; }
.ab .ab-pause { width: 1.9rem; height: 1.9rem; border: 1px solid rgba(255,255,255,.55); background: none; color: #fff; cursor: pointer; display: grid; place-items: center; padding: 0; }
.ab .ab-pause svg { width: .6rem; height: .6rem; fill: currentColor; }
.ab .ab-zeiten-schild { position: absolute; z-index: 4; right: clamp(1.75rem, 3vw, 2.5rem); bottom: clamp(1.75rem, 3.5vw, 2.75rem); font-size: .85rem; text-align: right; line-height: 1.5; color: #ece7e0; margin: 0; }
.ab .ab-zeiten-schild b { font-weight: 600; color: #fff; }
@media (max-width: 640px) {
  .ab .ab-buehne-box { height: calc(100svh - 4.25rem - 3rem); min-height: 560px; }
  .ab .ab-steuer, .ab .ab-zeiten-schild { display: none; }
  .ab.ab-buehne h1, .ab.ab-buehne h2.ab-buehne-titel { font-size: 3.1rem; }
}
.ab .ab-einstiege { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); }
.ab .ab-einstiege li { text-align: center; padding: 0 clamp(1rem, 3vw, 2.75rem); display: flex; flex-direction: column; align-items: center; }
.ab .ab-einstiege li + li { border-left: 1px solid var(--ab-linie); }
.ab .ab-einstiege .ab-ico { margin-bottom: 1.25rem; }
.ab .ab-einstiege h3 { font-size: 1.6rem; }
.ab .ab-einstiege p { color: var(--ab-grau); margin: .75rem 0 1.5rem; max-width: 20rem; }
.ab .ab-einstiege .ab-knopf { margin-top: auto; }
.ab .ab-paar { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2.5rem, 5.5vw, 5rem); align-items: stretch; }
.ab .ab-paar.ab-tausch { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.ab .ab-paar.ab-tausch > .ab-rahmenbild { order: 2; }
.ab .ab-paar > .ab-text { align-self: center; padding-block: 1.5rem; }
.ab .ab-paar h2 { font-size: clamp(2.1rem, 3.3vw, 2.85rem); }
.ab .ab-rahmenbild { position: relative; padding: 0 1.75rem 1.75rem 0; }
.ab .ab-rahmenbild::before { content: ''; position: absolute; inset: 1.75rem 0 0 1.75rem; border: 1px solid var(--ab-messing); }
.ab .ab-rahmenbild img { position: relative; width: 100%; height: 100%; min-height: 28rem; object-fit: cover; }
.ab .ab-tausch .ab-rahmenbild { padding: 0 0 1.75rem 1.75rem; }
.ab .ab-tausch .ab-rahmenbild::before { inset: 1.75rem 1.75rem 0 0; }
.ab .ab-rahmenbild .ab-bildzeile { position: absolute; z-index: 1; left: -1px; bottom: 0; background: #fff; padding: .9rem 1.4rem .9rem 0; font: 400 1.05rem/1.2 var(--ab-titel); color: var(--ab-messing-text); margin: 0; }
.ab .ab-fakten { display: flex; gap: 2.5rem; margin: 1.75rem 0 0; }
.ab .ab-fakten strong { display: block; font: 400 3.2rem/1 var(--ab-titel); color: var(--ab-messing-text); }
.ab .ab-fakten span { display: block; font-size: .92rem; color: var(--ab-grau); margin-top: .35rem; }
.ab .ab-kasten { font-weight: 500; padding: 1rem 1.25rem; border-left: 2px solid var(--ab-messing); background: var(--ab-stein); margin: 1.25rem 0 0; }
.ab .ab-nachsatz { margin-top: 2.25rem; padding-top: 1.75rem; border-top: 1px solid var(--ab-linie); }
.ab .ab-nachsatz h3 { font-size: 1.35rem; margin-bottom: .4rem; }
.ab .ab-nachsatz p { margin: 0; }
.ab.ab-karte { background: var(--ab-stein); }
.ab.ab-karte.ab-weiss { background: #fff; }
.ab .ab-karte-raster { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem clamp(3rem, 7vw, 6rem); margin: 3rem 0 1rem; text-align: left; }
.ab .ab-rubrik { margin-bottom: 2.5rem; }
.ab .ab-rubrik h3 { font-size: 1.55rem; padding-bottom: .6rem; margin-bottom: .5rem; border-bottom: 1px solid var(--ab-messing); }
.ab .ab-rubrik ul { list-style: none; margin: 0; padding: 0; }
.ab .ab-rubrik li { display: flex; align-items: baseline; gap: .6rem; padding: .55rem 0; }
.ab .ab-rubrik .ab-gericht { flex: 0 1 auto; }
.ab .ab-rubrik .ab-menge { color: var(--ab-grau); font-size: .9rem; white-space: nowrap; }
.ab .ab-rubrik li::after { content: ''; order: 1; flex: 1; min-width: 1.5rem; border-bottom: 1px dotted var(--ab-grau-hell); transform: translateY(-.3rem); }
.ab .ab-rubrik li.ab-ohne-preis::after { display: none; }
.ab .ab-rubrik .ab-preis { order: 2; flex: none; font-weight: 600; white-space: nowrap; }
.ab .ab-mosaik { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 15rem; grid-auto-flow: dense; gap: var(--ab-spalt); margin: 3rem 0 0; padding: 0 var(--ab-spalt); list-style: none; }
.ab .ab-mosaik li { position: relative; margin: 0; overflow: hidden; background: var(--ab-stein); }
.ab .ab-mosaik li:nth-child(8n+1) { grid-column: span 2; grid-row: span 2; }
.ab .ab-mosaik li:nth-child(8n+4) { grid-column: span 2; }
.ab .ab-mosaik li:nth-child(8n+7) { grid-column: 1 / span 2; }
.ab .ab-mosaik li:nth-child(8n) { grid-column: 3 / span 2; grid-row: span 2; }
.ab .ab-mosaik img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ab-kurve); }
.ab .ab-mosaik li:hover img { transform: scale(1.04); }
.ab .ab-mosaik .ab-zeile { position: absolute; left: 0; bottom: 0; background: #fff; padding: .45rem .9rem; font-size: .85rem; font-weight: 500; margin: 0; }
.ab.ab-geschichte { background: var(--ab-kohle); color: #fff; margin: 0 var(--ab-spalt); }
.ab.ab-geschichte .ab-leise { color: var(--ab-grau-hell); }
.ab .ab-geschichte-zitat { margin: 0 auto; max-width: 48rem; font: 400 clamp(1.7rem, 3.4vw, 2.7rem)/1.3 var(--ab-titel); }
.ab .ab-bauherr { display: flex; align-items: center; justify-content: center; gap: 1.1rem; margin: 2.25rem 0 0; text-align: left; }
.ab .ab-bauherr img { width: 4.25rem; height: 4.25rem; border-radius: 50%; object-fit: cover; object-position: 50% 20%; border: 1px solid var(--ab-messing); }
.ab .ab-bauherr p { margin: 0; line-height: 1.5; }
.ab .ab-zweites { margin: 2.5rem auto 0; max-width: 34rem; font-style: italic; color: var(--ab-grau-hell); }
.ab .ab-kamin { margin: clamp(3rem, 6vw, 4.5rem) 0 0; }
.ab .ab-kamin img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; }
.ab .ab-team { margin: var(--ab-spalt) 0 0; background: var(--ab-kohle-hell); text-align: left; }
.ab .ab-team img { width: 100%; aspect-ratio: 1920 / 482; object-fit: cover; }
.ab .ab-team figcaption { padding: 1.4rem clamp(1.5rem, 3vw, 2.5rem); font: 400 1.6rem/1.2 var(--ab-titel); }
.ab.ab-geschichte .ab-knopf-zeile { margin-top: 2.5rem; }
.ab .ab-beitraege { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: 1.5rem; margin-top: 3rem; text-align: left; list-style: none; padding: 0; }
.ab.ab-neuigkeiten { background: var(--ab-stein); }
.ab.ab-neuigkeiten .ab-beitrag { background: var(--ab-papier); }
.ab .ab-beitrag { border: 1px solid var(--ab-linie); padding: clamp(1.5rem, 3vw, 2.25rem); display: flex; flex-direction: column; }
.ab .ab-beitrag time { font-size: .88rem; font-weight: 600; color: var(--ab-messing-text); }
.ab .ab-beitrag h3 { font-size: 1.5rem; margin: .5rem 0 .9rem; }
.ab .ab-beitrag h3 a { text-decoration: none; }
.ab .ab-beitrag h3 a::after { content: ''; position: absolute; inset: 0; }
.ab .ab-beitrag { position: relative; transition: border-color .25s; }
.ab .ab-beitrag:hover { border-color: var(--ab-messing); }
.ab .ab-beitrag p { color: var(--ab-grau); margin: 0; }
.ab .ab-beitrag .ab-weiter { margin-top: auto; padding-top: 1.25rem; font-weight: 600; font-size: .92rem; color: var(--ab-tinte); }
.ab.ab-reservierung { background: var(--ab-stein); }
.ab .ab-zwei { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(3rem, 7vw, 6.5rem); align-items: start; }
.ab .ab-tel { display: inline-block; font: 400 clamp(2.2rem, 4.5vw, 3.4rem)/1 var(--ab-titel); text-decoration: none; margin: 1.25rem 0 1.75rem; }
.ab .ab-tel:hover { color: var(--ab-messing-text); }
.ab .ab-zeiten { display: grid; grid-template-columns: auto 1fr; gap: .3rem 1.25rem; margin: 0 0 1rem; font-size: .95rem; }
.ab .ab-zeiten dt { color: var(--ab-grau); }
.ab .ab-zeiten dd { margin: 0; }
.ab .ab-hinweis { font-size: .93rem; color: var(--ab-grau); border-top: 1px solid var(--ab-linie); padding-top: 1.25rem; margin-top: 1.5rem; }
.ab .ab-kontaktliste { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: .35rem; }
.ab .ab-kontaktliste a { text-underline-offset: .2em; }
.ab .ab-anschrift { font: 400 1.35rem/1.45 var(--ab-titel); margin: 1.5rem 0 0; }
.ab .ab-formular { background: #fff; padding: clamp(1.5rem, 3vw, 2.5rem); display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; border: 1px solid var(--ab-linie); position: relative; }
.ab .ab-formular h3 { grid-column: 1 / -1; font-size: 1.7rem; }
.ab .ab-formular label { display: flex; flex-direction: column; gap: .35rem; font-size: .88rem; font-weight: 600; }
.ab .ab-formular .ab-breit, .ab .ab-formular .ab-einwilligung, .ab .ab-formular .ab-senden, .ab .ab-formular .ab-fehler { grid-column: 1 / -1; }
.ab .ab-formular :is(input, textarea) { font: 400 1rem/1.4 var(--ab-text); color: var(--ab-tinte); background: #fff; border: 1px solid var(--ab-grau-hell); border-radius: 0; padding: .75rem .85rem; width: 100%; }
.ab .ab-formular :is(input, textarea):focus { outline: none; border-color: var(--ab-tinte); }
.ab .ab-formular textarea { min-height: 6.5rem; resize: vertical; }
.ab .ab-formular .ab-einwilligung { flex-direction: row; align-items: flex-start; gap: .7rem; font-weight: 400; color: var(--ab-grau); line-height: 1.5; }
.ab .ab-formular .ab-einwilligung input { width: 1.05rem; height: 1.05rem; margin-top: .15rem; flex: none; accent-color: var(--ab-tinte); padding: 0; }
.ab .ab-formular .ab-senden { width: 100%; border: 0; }
.ab .ab-formular .ab-senden:disabled { opacity: .7; cursor: wait; }
.ab .ab-formular .ab-fehler { color: #9b1c1c; margin: 0; font-size: .93rem; }
.ab .ab-formular .ab-honig { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.ab .ab-danke { background: #fff; border: 1px solid var(--ab-linie); padding: clamp(2rem, 4vw, 3rem); text-align: center; }
.ab .ab-danke h3 { font-size: 1.9rem; margin-bottom: .75rem; }
.ab.ab-seitenkopf { padding: 0 var(--ab-spalt); }
.ab .ab-seitenkopf-box { position: relative; min-height: clamp(18rem, 38vw, 26rem); display: grid; place-items: center; text-align: center; overflow: hidden; background: var(--ab-kohle); color: #fff; isolation: isolate; padding: 3rem 1.5rem; }
.ab .ab-seitenkopf-box > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.ab .ab-seitenkopf-box::after { content: ''; position: absolute; inset: 0; z-index: 1; background: rgba(22,19,17,.5); }
.ab .ab-seitenkopf-box::before { content: ''; position: absolute; inset: clamp(.75rem, 1.6vw, 1.25rem); z-index: 2; border: 1px solid rgba(255,255,255,.35); pointer-events: none; }
.ab .ab-seitenkopf-box > div { position: relative; z-index: 3; max-width: 46rem; }
.ab .ab-seitenkopf-box :is(h1, h2) { font-size: clamp(2.6rem, 6vw, 4.6rem); line-height: 1.05; color: #fff; }
.ab .ab-seitenkopf-box p { margin: 1rem auto 0; color: #f1ede7; font-weight: 500; max-width: 36rem; }
.ab .ab-seitenkopf-box .ab-zier { color: #d9c29a; margin-bottom: 0; }
.ab .ab-seitenkopf-box.ab-ohne-bild { background: var(--ab-stein); color: var(--ab-tinte); }
.ab .ab-seitenkopf-box.ab-ohne-bild::after { display: none; }
.ab .ab-seitenkopf-box.ab-ohne-bild::before { border-color: var(--ab-linie); }
.ab .ab-seitenkopf-box.ab-ohne-bild :is(h1, h2) { color: var(--ab-tinte); }
.ab .ab-seitenkopf-box.ab-ohne-bild p { color: var(--ab-grau); }
.ab .ab-recht { max-width: 48rem; margin-inline: auto; }
.ab .ab-recht h2 { font-size: clamp(1.7rem, 3vw, 2.2rem); margin: 2.75rem 0 1rem; }
.ab .ab-recht h3 { font-size: 1.35rem; margin: 2rem 0 .6rem; }
.ab .ab-recht h4 { font: 700 1rem/1.4 var(--ab-text); margin: 1.5rem 0 .4rem; }
.ab .ab-recht > div:first-child :is(h2, h3) { margin-top: 0; }
.ab .ab-recht :is(p, li) { color: #4a4540; }
.ab .ab-recht a { color: var(--ab-messing-text); overflow-wrap: anywhere; }
.ab .ab-recht ul { padding-left: 1.2rem; }
.ab.ab-fuss { padding: var(--ab-spalt) var(--ab-spalt) 0; }
.ab .ab-kacheln { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: var(--ab-spalt); }
.ab .ab-kachel { background: var(--ab-kohle); color: #fff; padding: clamp(1.75rem, 3vw, 2.75rem); }
.ab .ab-kachel h2 { font-size: 1.7rem; margin-bottom: 1rem; color: #fff; }
.ab .ab-kachel p { color: #ddd7cf; font-size: .95rem; }
.ab .ab-kachel a { color: #fff; text-underline-offset: .2em; }
.ab .ab-kachel .ab-knopf { margin-top: .75rem; }
.ab .ab-kachel-bild { position: relative; min-height: 22rem; overflow: hidden; background: var(--ab-kohle); }
.ab .ab-kachel-bild img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ab .ab-kachel .ab-zeiten { color: #ddd7cf; }
.ab .ab-kachel .ab-zeiten dt { color: var(--ab-grau-hell); }
.ab .ab-kachel .ab-zeiten dd { color: #fff; }
.ab .ab-fuss-unten { display: flex; flex-wrap: wrap; gap: .75rem 1.75rem; padding: 1.25rem var(--ab-rand) 1.75rem; color: var(--ab-grau); font-size: .88rem; }
.ab .ab-fuss-unten p { margin: 0 auto 0 0; }
.ab .ab-fuss-unten a { text-decoration: none; color: var(--ab-grau); }
.ab .ab-fuss-unten a:hover { color: var(--ab-tinte); }
.ab-seite :is(.cg-beitrag-seite, .cg-beitrag) :is(h1, h2, h3) { font-family: var(--ab-titel); font-weight: 400; }
@media (max-width: 900px) {
  .ab .ab-paar, .ab .ab-paar.ab-tausch, .ab .ab-zwei, .ab .ab-karte-raster, .ab .ab-kacheln { grid-template-columns: 1fr; }
  .ab .ab-paar.ab-tausch > .ab-rahmenbild { order: 0; }
  .ab .ab-rahmenbild img { height: auto; min-height: 0; aspect-ratio: 4 / 3; }
  .ab .ab-paar > .ab-text { padding-block: 0; }
  .ab .ab-einstiege { grid-template-columns: 1fr; gap: 2.5rem; }
  .ab .ab-einstiege li + li { border-left: 0; border-top: 1px solid var(--ab-linie); padding-top: 2.5rem; }
  .ab .ab-mosaik { grid-template-columns: 1fr 1fr; grid-auto-rows: 11rem; }
  .ab .ab-mosaik li:nth-child(n) { grid-column: auto; grid-row: auto; }
  .ab .ab-mosaik li:nth-child(3n+1) { grid-column: span 2; }
}
@media (max-width: 640px) {
  .ab .ab-formular { grid-template-columns: 1fr; }
  .ab .ab-fakten { gap: 1.75rem; }
  .ab .ab-team img { aspect-ratio: 5 / 2; }
  .ab .ab-knopf-zeile .ab-knopf { flex: 1 1 auto; }
}
@media (prefers-reduced-motion: no-preference) {
  html .ab.ab-buehne .ab-folien li.ab-aktiv img, html .ab.ab-buehne .ab-folien li.ab-raus img,
  html[data-cg-motion] [data-instance-id][data-cg-in] .ab.ab-buehne .ab-folien li.ab-aktiv img,
  html[data-cg-motion] [data-instance-id][data-cg-in] .ab.ab-buehne .ab-folien li.ab-raus img { animation: ab-zoom 9s cubic-bezier(.3,0,.6,1) both; }
  html[data-cg-motion] [data-cg-sofort] .ab.ab-buehne .ab-folien img { animation-delay: 0s !important; }
  .ab .ab-buehne-inhalt > * { animation: ab-auf 1.1s ease-out backwards; }
  .ab .ab-buehne-inhalt > :nth-child(2) { animation-delay: .15s; }
  .ab .ab-buehne-inhalt > :nth-child(3) { animation-delay: .3s; }
  html[data-cg-motion] [data-instance-id][data-cg-in]:not([data-shared]) .ab img { animation: none; }
  html[data-cg-motion] .ab .ab-rahmenbild[data-cg-anim] { opacity: 1; animation: none; }
  html[data-cg-motion] .ab .ab-rahmenbild[data-cg-anim] img { clip-path: inset(0 100% 0 0); transition: clip-path 1.3s cubic-bezier(.65,0,.35,1); }
  html[data-cg-motion] .ab .ab-tausch .ab-rahmenbild[data-cg-anim] img { clip-path: inset(0 0 0 100%); }
  html[data-cg-motion] .ab .ab-rahmenbild[data-cg-anim]::before { opacity: 0; transform: translate(-1.75rem, -1.75rem); transition: transform 1.2s .45s var(--ab-kurve), opacity .5s .45s; }
  html[data-cg-motion] .ab .ab-tausch .ab-rahmenbild[data-cg-anim]::before { transform: translate(1.75rem, -1.75rem); }
  html[data-cg-motion] .ab .ab-rahmenbild[data-cg-anim] .ab-bildzeile { opacity: 0; transition: opacity .8s 1.1s; }
  html[data-cg-motion] .ab .ab-paar .ab-rahmenbild[data-cg-in] img { clip-path: inset(0); }
  html[data-cg-motion] .ab .ab-paar .ab-rahmenbild[data-cg-in]::before { opacity: 1; transform: none; }
  html[data-cg-motion] .ab .ab-rahmenbild[data-cg-in] .ab-bildzeile { opacity: 1; }
  html[data-cg-motion] .ab .ab-zier[data-cg-anim] { opacity: 1; animation: none; }
  html[data-cg-motion] .ab .ab-zier[data-cg-anim]::before { transform-origin: right; }
  html[data-cg-motion] .ab .ab-zier[data-cg-anim]::after { transform-origin: left; }
  html[data-cg-motion] .ab .ab-zier[data-cg-anim]::before, html[data-cg-motion] .ab .ab-zier[data-cg-anim]::after { transform: scaleX(0); transition: transform .9s .25s cubic-bezier(.65,0,.35,1); }
  html[data-cg-motion] .ab .ab-zier[data-cg-anim] i { transform: rotate(-135deg) scale(0); transition: transform .7s var(--ab-kurve); }
  html[data-cg-motion] .ab .ab-zier[data-cg-in]::before, html[data-cg-motion] .ab .ab-zier[data-cg-in]::after { transform: none; }
  html[data-cg-motion] .ab .ab-zier[data-cg-in] i { transform: rotate(45deg); }
  .ab .ab-burger[open] .ab-burger-panel { animation: ab-panel-auf .55s cubic-bezier(.65,0,.35,1) both; }
  .ab .ab-burger[open] .ab-burger-panel li { animation: ab-zeile .6s var(--ab-kurve) both; animation-delay: calc(.15s + var(--i, 0) * .06s); }
  .ab .ab-burger[open] .ab-burger-panel > .ab-knopf { animation: ab-zeile .6s var(--ab-kurve) .55s both; }
  .ab .ab-burger[open] .ab-burger-panel > .ab-knopf + .ab-knopf { animation-delay: .62s; }
  .ab .ab-burger.ab-schliesst .ab-burger-panel { animation: ab-panel-zu .3s cubic-bezier(.65,0,.35,1) both; }
  .ab .ab-ico .ab-ring { transition: stroke-dashoffset .9s cubic-bezier(.65,0,.35,1); }
  .ab .ab-einstiege .ab-ico { transition: transform .5s var(--ab-kurve); }
  .ab .ab-ico > :not(.ab-ring) { transition: transform .55s cubic-bezier(.34,1.56,.64,1); }
  .ab .ab-einstiege li:hover .ab-ico, .ab .ab-einstiege li:focus-within .ab-ico { transform: translateY(-4px); }
  .ab .ab-einstiege li:hover .ab-ring, .ab .ab-einstiege li:focus-within .ab-ring { stroke-dashoffset: 0; }
  .ab .ab-einstiege li:hover .ab-glas-l, .ab .ab-einstiege li:focus-within .ab-glas-l { transform: rotate(9deg); }
  .ab .ab-einstiege li:hover .ab-glas-r, .ab .ab-einstiege li:focus-within .ab-glas-r { transform: rotate(-9deg); }
  .ab .ab-einstiege li:hover .ab-funken, .ab .ab-einstiege li:focus-within .ab-funken { transform: translateY(-3px) scale(1.3); }
  .ab .ab-einstiege li:hover .ab-gabel, .ab .ab-einstiege li:focus-within .ab-gabel { transform: rotate(-9deg); }
  .ab .ab-einstiege li:hover .ab-messer, .ab .ab-einstiege li:focus-within .ab-messer { transform: rotate(9deg); }
  .ab .ab-einstiege li:hover .ab-blatt, .ab .ab-einstiege li:focus-within .ab-blatt { transform: translateY(-2px); }
  .ab .ab-einstiege li:hover .ab-haken, .ab .ab-einstiege li:focus-within .ab-haken { transform: scale(1.22); }
  html[data-cg-motion] .ab .ab-ico[data-cg-anim] { opacity: 1; animation: none; }
  html[data-cg-motion] .ab .ab-ico[data-cg-anim] > :not(.ab-ring) { stroke-dasharray: 1; stroke-dashoffset: 1; }
  html[data-cg-motion] .ab .ab-ico[data-cg-in] > :not(.ab-ring) { animation: ab-strich 1.1s calc(var(--i, 0) * .13s + .2s) cubic-bezier(.65,0,.35,1) forwards; }
  html[data-cg-motion] .ab .ab-aufdecken[data-cg-anim] { opacity: 1; animation: none; }
  html[data-cg-motion] .ab .ab-aufdecken[data-cg-anim] img { clip-path: inset(100% 0 0 0); transform: scale(1.12); transition: clip-path 1.2s cubic-bezier(.65,0,.35,1) calc(var(--n, 0) * .12s), transform 1.6s var(--ab-kurve) calc(var(--n, 0) * .12s); }
  html[data-cg-motion] .ab .ab-aufdecken[data-cg-in] img { clip-path: inset(0); transform: none; }
  html[data-cg-motion] .ab .ab-mosaik li.ab-aufdecken[data-cg-in]:hover img { transform: scale(1.04); transition: transform 1s var(--ab-kurve); }
  html[data-cg-motion] .ab .ab-aufdecken[data-cg-anim] .ab-zeile { opacity: 0; transition: opacity .6s calc(var(--n, 0) * .12s + .9s); }
  html[data-cg-motion] .ab .ab-aufdecken[data-cg-in] .ab-zeile { opacity: 1; }
}
@keyframes ab-zoom { from { transform: scale(1); } to { transform: scale(1.12); } }
@keyframes ab-panel-auf { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes ab-panel-zu { from { clip-path: inset(0 0 0 0); } to { clip-path: inset(0 0 100% 0); } }
@keyframes ab-zeile { from { opacity: 0; transform: translateY(1.1rem); } }
@keyframes ab-auf { from { opacity: 0; transform: translateY(14px); } }
@keyframes ab-strich { to { stroke-dashoffset: 0; } }