/* Hotel Restaurant Sternen · Website
   Editorial Luxury: Cormorant Garamond + Manrope, Navy / Gold / Creme
   Kontrastregel: auf hellen und goldenen Flächen immer dunkle Schrift */

:root {
  /* Farben des Hauses: Bordeaux, Creme, Tannengrün */
  --green: #193f2b;
  --green-deep: #10291c;
  --bordeaux: #6e1c2b;
  --bordeaux-deep: #541320;
  --brass: #a8864a;
  --navy: var(--green);
  --ink: #1b241e;
  --gold: var(--bordeaux);
  --gold-soft: #ecdcb6;
  --gold-text: var(--bordeaux);
  --cream: #f7f1e3;
  --sand: #efe5cf;
  --paper: #fffcf5;
  --muted: #4c564e;
  --line: rgba(25, 63, 43, .14);
  --line-strong: rgba(25, 63, 43, .26);
  --ok: #1d6b43;
  --err: #a12c2c;
  --serif: "Cormorant Garamond", "Cormorant", Georgia, "Times New Roman", serif;
  --sans: "Manrope", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --ease: cubic-bezier(.22, 1, .36, 1);
  --r-xl: 18px;
  --r-lg: 14px;
  --r-md: 12px;
  --r-btn: 10px;
  --shadow: 0 1px 1px rgba(16, 41, 28, .05), 0 12px 30px -14px rgba(16, 41, 28, .22);
  --shadow-lg: 0 2px 2px rgba(16, 41, 28, .05), 0 30px 60px -24px rgba(16, 41, 28, .38);
  --wrap: 1240px;
  --orn: "✦";
}

*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: clip; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--cream); color: var(--ink);
  font: 400 18px/1.65 var(--sans); letter-spacing: .003em;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: clip;
}
img { max-width: 100%; display: block; }
[hidden] { display: none !important; }
a { color: inherit; text-decoration-color: rgba(25, 63, 43, .35); text-underline-offset: 3px; }
a:hover { text-decoration-color: currentColor; }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 500; line-height: 1.08; margin: 0 0 .5em; color: var(--navy); letter-spacing: -.01em; }
h2 { font-size: clamp(2rem, 3.6vw, 3rem); }
h3 { font-size: clamp(1.45rem, 2vw, 1.8rem); }
h4, .fh { font-family: var(--sans); font-size: .78rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
p { margin: 0 0 1em; }
button { font: inherit; color: inherit; }
::selection { background: var(--bordeaux); color: #fff8ec; }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; border-radius: 6px; }

.skip { position: absolute; left: -9999px; top: 8px; z-index: 999; background: var(--navy); color: #fff; padding: 10px 16px; border-radius: var(--r-btn); }
.skip:focus { left: 12px; }
.wrap { width: min(var(--wrap), 100% - clamp(40px, 8vw, 128px)); margin-inline: auto; }
.wrap.narrow { width: min(860px, 100% - clamp(40px, 8vw, 128px)); }
.section { padding: clamp(4.5rem, 9vw, 8.5rem) 0; position: relative; }
.section.cream { background: var(--sand); }
.center { text-align: center; }
.muted { color: var(--muted); }
.muted-light { color: rgba(245, 239, 226, .7); }
.small { font-size: .875rem; }
.hide-sm { }
.hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.ic { width: 22px; height: 22px; flex: none; }

/* Körnung über allem: Papiergefühl */
.grain { position: fixed; inset: -50%; pointer-events: none; z-index: 200; opacity: .045; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }

.announce { background: var(--navy); color: var(--cream); text-align: center; font-size: .85rem; padding: .55rem 1rem; position: relative; z-index: 60; }

/* ---------- Typo-Bausteine ---------- */
.eyebrow { display: inline-flex; align-items: center; gap: .7rem; font: 700 .72rem/1 var(--sans); letter-spacing: .24em; text-transform: uppercase; color: var(--gold-text); margin-bottom: 1.3rem; }
.eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; opacity: .7; }
.eyebrow.light { color: var(--gold-soft); }
.center .eyebrow, .sec-head:not(.left) .eyebrow { justify-content: center; }
.display { font-size: clamp(2.5rem, 5.4vw, 4.6rem); line-height: 1.02; letter-spacing: -.02em; }
.display em, h2 em { font-style: italic; color: var(--gold-text); }
.lead { font-size: clamp(1.1rem, 1.4vw, 1.25rem); line-height: 1.7; color: #2a362e; max-width: 62ch; }
.center .lead, .sec-head:not(.left) .lead { margin-inline: auto; }
.h-small { font-size: 1.9rem; }
.textlink { display: inline-flex; align-items: center; gap: .45rem; font-weight: 600; font-size: .92rem; text-decoration: none; color: var(--navy); border-bottom: 1px solid var(--line-strong); padding-bottom: 2px; transition: gap .3s var(--ease), border-color .3s; }
.textlink .ic { width: 16px; height: 16px; }
.textlink:hover { gap: .7rem; border-color: var(--navy); }

.sec-head { margin-bottom: clamp(2.5rem, 5vw, 4rem); text-align: center; }
.sec-head.left { text-align: left; margin-bottom: 0; }
.sec-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-bottom: clamp(2.5rem, 5vw, 3.5rem); flex-wrap: wrap; }
.sec-row .sec-head { max-width: 640px; }

/* ---------- Knöpfe: überall dieselbe Form ---------- */
.pill {
  --bg: var(--green); --fg: var(--cream); --ib: rgba(255, 255, 255, .14); --if: currentColor;
  display: inline-flex; align-items: center; justify-content: center; gap: .7rem; min-height: 54px; padding: 0 1.5rem;
  border-radius: var(--r-btn); background: var(--bg); color: var(--fg); border: 1.5px solid transparent;
  font: 700 1rem/1 var(--sans); letter-spacing: .01em; text-decoration: none; cursor: pointer; white-space: nowrap;
  transition: transform .4s var(--ease), background .25s, box-shadow .4s var(--ease), color .25s, border-color .25s;
  -webkit-tap-highlight-color: transparent;
}
.pill > span { padding-block: .4rem; }
.pill > i { display: grid; place-items: center; width: 22px; height: 22px; margin-right: -.3rem; color: inherit; transition: transform .4s var(--ease); }
.pill > i .ic { width: 20px; height: 20px; stroke-width: 1.9; }
.pill:hover { transform: translateY(-1px); box-shadow: 0 12px 26px -14px rgba(16, 41, 28, .6); }
.pill:hover > i { transform: translateX(3px); }
.pill:active { transform: translateY(0) scale(.99); }
.pill[disabled] { opacity: .55; pointer-events: none; }
.pill.dark { --bg: var(--green); --fg: var(--cream); }
.pill.dark:hover { --bg: var(--green-deep); }
.pill.gold { --bg: var(--bordeaux); --fg: #fff8ec; }
.pill.gold:hover { --bg: var(--bordeaux-deep); }
.pill.light { --bg: var(--paper); --fg: var(--green); border-color: var(--line-strong); }
.pill.ghost { --bg: transparent; --fg: var(--green); border-color: var(--green); }
.pill.ghost:hover { --bg: rgba(25, 63, 43, .06); box-shadow: none; }
.pill.ghost-light { --bg: transparent; --fg: #fff; border-color: rgba(255, 255, 255, .6); }
.pill.ghost-light:hover { --bg: rgba(255, 255, 255, .1); }
.pill.sm { min-height: 44px; padding: 0 1.1rem; font-size: .9rem; gap: .55rem; }
.pill.sm > i { width: 18px; height: 18px; }
.btn-row { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.btn-row.center { justify-content: center; }

/* ---------- Doppelrahmen-Karten ---------- */
.bezel { padding: 6px; border-radius: var(--r-xl); background: rgba(25, 63, 43, .045); border: 1px solid rgba(25, 63, 43, .07); }
.bezel > .core { border-radius: calc(var(--r-xl) - 6px); background: var(--paper); overflow: hidden; height: 100%; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), var(--shadow); }
.core.pad { padding: clamp(1.5rem, 3vw, 2.4rem); }
.cream .bezel { background: rgba(25, 63, 43, .05); }

/* ---------- Header (siehe unten: Kopfzeile) ---------- */
/* Vollbild-Menü */
.menu-overlay { position: fixed; inset: 0; z-index: 90; background: var(--navy); color: var(--cream); visibility: hidden; opacity: 0; clip-path: circle(0% at calc(100% - 50px) 40px);
  transition: clip-path .8s var(--ease), opacity .4s, visibility 0s .8s; overflow-y: auto; }
body.menu-open { overflow: hidden; }
body.menu-open .menu-overlay { visibility: visible; opacity: 1; clip-path: circle(150% at calc(100% - 50px) 40px); transition: clip-path .9s var(--ease), opacity .3s, visibility 0s; }
.menu-inner { min-height: 100%; width: min(1240px, 100% - 40px); margin-inline: auto; display: grid; grid-template-columns: 1.4fr 1fr; gap: 4rem; align-items: center; padding: 120px 0 60px; }
.menu-main { display: flex; flex-direction: column; }
.menu-main a, .menu-side { opacity: 0; transform: translateY(26px); transition: opacity .6s var(--ease), transform .8s var(--ease); transition-delay: 0s; }
body.menu-open .menu-main a, body.menu-open .menu-side { opacity: 1; transform: none; transition-delay: calc(var(--d, 0ms) + 250ms); }
.menu-main a { display: flex; align-items: baseline; gap: 1.2rem; text-decoration: none; font: 400 clamp(2.1rem, 5vw, 3.9rem)/1.15 var(--serif); color: var(--cream); padding: .15rem 0; }
.menu-main a .num { font: 600 .72rem/1 var(--sans); letter-spacing: .14em; color: var(--gold-soft); width: 2rem; }
.menu-main a:hover { color: var(--gold-soft); font-style: italic; }
.menu-ctas { display: flex; flex-wrap: wrap; gap: .7rem; margin-bottom: 2.5rem; }
.menu-more { list-style: none; padding: 0; margin: 0 0 2rem; display: grid; grid-template-columns: 1fr 1fr; gap: .4rem 1.5rem; }
.menu-more a { color: rgba(245, 239, 226, .85); text-decoration: none; }
.menu-more a:hover { color: #fff; text-decoration: underline; }
.menu-contact { color: rgba(245, 239, 226, .75); font-size: .95rem; }
.menu-contact a { color: var(--gold-soft); }
.langs.big { background: rgba(255, 255, 255, .08); width: max-content; }
.langs.big a { color: rgba(245, 239, 226, .75); padding: .65rem .8rem; font-size: .78rem; }
.langs.big a.on { background: var(--cream); color: var(--navy); }

/* ---------- Hero ---------- */
.hero { position: relative; min-height: calc(100svh - 118px); display: flex; flex-direction: column; justify-content: flex-end; color: #fff; overflow: hidden; background: var(--navy); padding-bottom: clamp(1.5rem, 4vw, 3rem); }
.hero-media, .page-hero-media { position: absolute; inset: 0; overflow: hidden; }
.hero-bg, .page-hero-bg { position: absolute; inset: -4%; background-size: cover; background-position: center; animation: kenburns 26s ease-out both; will-change: transform; }
@keyframes kenburns { from { transform: scale(1.14); } to { transform: scale(1); } }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(16, 41, 28, .45) 0%, rgba(16, 41, 28, .05) 32%, rgba(16, 41, 28, .25) 58%, rgba(16, 41, 28, .86) 100%); }
.hero-inner { position: relative; padding-top: clamp(3rem, 8vw, 6rem); }
.hero-title { font-size: clamp(3rem, 8.4vw, 7.6rem); line-height: .95; letter-spacing: -.03em; color: #fff; max-width: 13ch; margin-bottom: .35em; font-weight: 400; }
.hero-title .w { display: inline-block; opacity: 0; transform: translateY(.45em); filter: blur(8px); animation: wordin 1.1s var(--ease) forwards; animation-delay: var(--d); }
.hero-title .w:nth-child(2n) { font-style: italic; }
@keyframes wordin { to { opacity: 1; transform: none; filter: none; } }
.hero-sub { font-size: clamp(1.05rem, 1.6vw, 1.3rem); max-width: 46ch; color: rgba(255, 255, 255, .9); opacity: 0; animation: fadeup 1s var(--ease) .7s forwards; }
@keyframes fadeup { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.hero .eyebrow { opacity: 0; animation: fadeup .9s var(--ease) .05s forwards; }
.hero-widget { position: relative; margin-top: clamp(1.5rem, 3vw, 2.5rem); opacity: 0; animation: fadeup 1s var(--ease) .95s forwards; }
.scroll-hint { position: absolute; right: clamp(20px, 4vw, 48px); bottom: clamp(1.5rem, 4vw, 3rem); width: 26px; height: 42px; border: 1.5px solid rgba(255, 255, 255, .6); border-radius: 20px; display: none; }
.scroll-hint span { position: absolute; left: 50%; top: 8px; width: 3px; height: 8px; margin-left: -1.5px; border-radius: 3px; background: #fff; animation: scrolldot 2s infinite; }
@keyframes scrolldot { 0% { opacity: 0; transform: translateY(0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateY(14px); } }

.page-hero { position: relative; min-height: min(78svh, 760px); display: flex; align-items: flex-end; color: #fff; overflow: hidden; background: var(--navy); }
.page-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(16, 41, 28, .5) 0%, rgba(16, 41, 28, .1) 35%, rgba(16, 41, 28, .82) 100%); }
.page-hero-inner { position: relative; z-index: 1; padding: clamp(5rem, 10vw, 7rem) 0 clamp(2.5rem, 6vw, 4.5rem); }
.page-hero h1 { color: #fff; font-size: clamp(2.8rem, 7vw, 6rem); line-height: .98; letter-spacing: -.025em; max-width: 16ch; font-weight: 400; }
.page-hero .lead { color: rgba(255, 255, 255, .9); }
.page-hero .bw { margin-top: 2rem; }
h1.split .w { display: inline-block; opacity: 0; transform: translateY(.4em); filter: blur(6px); animation: wordin 1s var(--ease) forwards; animation-delay: var(--d); }

/* ---------- Buchungs-Widget ---------- */
.bw-shell { border-radius: 28px; padding: 8px; background: rgba(255, 255, 255, .16); border: 1px solid rgba(255, 255, 255, .28); backdrop-filter: blur(22px) saturate(1.4); -webkit-backdrop-filter: blur(22px) saturate(1.4); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .55); }
.bw-tabs { display: flex; gap: 4px; padding: 0 0 8px; }
.bw-tabs button { display: inline-flex; align-items: center; gap: .5rem; border: 0; background: transparent; color: #fff; padding: .55rem 1rem; border-radius: var(--r-btn); font-weight: 600; font-size: .86rem; cursor: pointer; transition: background .3s, color .3s; }
.bw-tabs button .ic { width: 18px; height: 18px; }
.bw-tabs button.on { background: var(--cream); color: var(--navy); }
.bw-tabs button:not(.on):hover { background: rgba(255, 255, 255, .14); }
.bw-form { display: flex; flex-wrap: wrap; align-items: stretch; gap: 6px; background: var(--paper); color: var(--ink); border-radius: 22px; padding: 6px; }
.bw-form > label { flex: 1 1 150px; display: flex; flex-direction: column; justify-content: center; gap: 2px; padding: .55rem 1rem; border-radius: 16px; background: var(--cream); cursor: pointer; transition: background .25s; margin: 0; }
.bw-form > label:hover { background: var(--sand); }
.bw-form > label > span { font: 700 .82rem/1.2 var(--sans); letter-spacing: .01em; color: #344038; }
.bw-form > label em.nn, .form-card label em.nn { font: 600 .8rem/1.2 var(--sans); font-style: normal; color: var(--gold-text); min-height: 1em; }
.bw-form > label.sm { flex: 0 1 100px; }
.bw-form > label.promo { flex: 0 1 140px; }
.bw-form > label input:not([type=checkbox]), .bw-form > label select, .bw-form > label input:focus, .bw-form > label select:focus { border: 0; background: transparent; padding: 0; font: 600 1.08rem/1.4 var(--sans); color: var(--navy); outline: none; width: 100%; min-height: 30px; cursor: pointer; box-shadow: none; border-radius: 0; }
.bw-form > label input[readonly] { color: var(--muted); }
.bw-form > label.chk { flex: 0 0 auto; flex-direction: row; align-items: center; gap: .55rem; }
.bw-form > label.chk span { display: inline-flex; align-items: center; gap: .4rem; font: 600 .9rem/1.2 var(--sans); letter-spacing: 0; text-transform: none; color: var(--navy); }
.bw-form > label.chk input { width: 18px; height: 18px; accent-color: var(--navy); }
.bw-form > .pill { flex: 0 0 auto; align-self: center; margin-left: auto; }
.bw.inline .bw-shell { background: rgba(255, 255, 255, .12); }
.booking-page .bw-form { padding: 0; }
.booking-page .bezel > .core { padding: 6px; }

/* ---------- Layouts ---------- */
.split-2 { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 6rem); }
.split-2.align-c { align-items: center; }
.split-2.tight { gap: 1rem; }
.sticky-col { position: sticky; top: 110px; align-self: start; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
.grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 1rem; }
.span2 { grid-column: span 2; }
.card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.2rem; }

/* Einleitung */
.intro .display { max-width: 13ch; }
.facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: 20px; overflow: hidden; margin-top: 2.2rem; }
.facts > div { background: var(--cream); padding: 1.2rem 1rem; display: flex; flex-direction: column; gap: .55rem; min-height: 116px; justify-content: space-between; }
.facts strong { font: 500 2.2rem/1 var(--serif); color: var(--navy); }
.facts .ic { width: 28px; height: 28px; color: var(--gold-text); }
.facts span { font-size: .84rem; color: var(--muted); line-height: 1.35; }

/* Bento */
.bento { display: grid; grid-template-columns: repeat(6, 1fr); grid-auto-rows: clamp(220px, 24vw, 300px); gap: 14px; }
.tile { display: block; text-decoration: none; color: #fff; padding: 5px; }
.tile.t-hotel { grid-column: span 4; grid-row: span 2; }
.tile.t-rest, .tile.t-bank { grid-column: span 2; }
.tile.t-excl { grid-column: span 6; }
.tile .core { position: relative; background: var(--navy); }
.tile-img { position: absolute; inset: 0; background-size: cover; background-position: center; transform: scale(1.02); transition: transform 1.4s var(--ease); }
.tile .core::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(16, 41, 28, .05) 15%, rgba(16, 41, 28, .55) 55%, rgba(16, 41, 28, .92) 100%); }
.tile:hover .tile-img { transform: scale(1.08); }
.tile-txt { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding: clamp(1.2rem, 2.6vw, 2rem); }
.tile-txt h3 { color: #fff; font-size: clamp(1.6rem, 2.6vw, 2.4rem); margin-bottom: .25em; }
.t-hotel .tile-txt h3 { font-size: clamp(2rem, 4vw, 3.4rem); }
.tile-txt p { color: rgba(255, 255, 255, .86); max-width: 46ch; margin: 0; font-size: .95rem; }
.tile-txt .eyebrow { margin-bottom: .8rem; }
.tile-arrow { position: absolute; top: 16px; right: 16px; z-index: 1; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: rgba(255, 255, 255, .16); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, .3); transition: transform .6s var(--ease), background .3s, color .3s; }
.tile:hover .tile-arrow { background: var(--bordeaux); color: #fff8ec; transform: rotate(45deg); }
.chip-gold { display: inline-block; margin-top: 1rem; background: var(--bordeaux); color: #fff8ec; font-weight: 700; font-size: .82rem; padding: .45rem .9rem; border-radius: var(--r-btn); }

/* Arrangements */
.offers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.offer-card .core { display: flex; flex-direction: column; }
.oc-img { aspect-ratio: 4 / 3; background-size: cover; background-position: center; position: relative; transition: transform 1.2s var(--ease); }
.offer-card:hover .oc-img { transform: scale(1.03); }
.oc-tag { position: absolute; left: 14px; top: 14px; background: rgba(251, 248, 242, .92); color: var(--navy); font: 700 .72rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; padding: .55rem .8rem; border-radius: var(--r-btn); }
.oc-body { padding: 1.5rem 1.5rem 1.4rem; display: flex; flex-direction: column; flex: 1; background: var(--paper); position: relative; }
.oc-body h3 { margin-bottom: .35em; }
.oc-foot { margin-top: auto; padding-top: 1.2rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; border-top: 1px solid var(--line); }
.price { font: 500 1.6rem/1.1 var(--serif); color: var(--navy); }
.price small { font: 500 .78rem/1 var(--sans); color: var(--muted); }
.incl { list-style: none; padding: 0; margin: .4rem 0 1.2rem; display: grid; gap: .45rem; }
.incl li { display: flex; gap: .6rem; font-size: .93rem; }
.incl .ic { width: 18px; height: 18px; color: var(--gold-text); margin-top: 3px; }
.offers.big { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }

/* Speisekarten */
.menu-card { padding: clamp(1.5rem, 3.5vw, 3rem); }
.menu-card.big { padding: clamp(1.6rem, 5vw, 4rem); }
.menu-head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; border-bottom: 1px solid var(--line); padding-bottom: 1rem; margin-bottom: 1.5rem; }
.menu-head h3 { font-size: clamp(1.8rem, 3vw, 2.4rem); margin: 0; }
.menu-intro { font: italic 400 1.2rem/1.5 var(--serif); color: #33403a; }
.menu-sec { margin-bottom: 2rem; }
.menu-sec:last-child { margin-bottom: 0; }
.menu-sec h3 { font: 700 .74rem/1 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--gold-text); margin: 0 0 1rem; }
.menu-item { display: grid; grid-template-columns: auto 1fr auto; align-items: end; gap: .8rem; padding: .7rem 0; }
.menu-item + .menu-item { border-top: 1px dashed rgba(25, 63, 43, .1); }
.mi-name { font: 500 1.28rem/1.25 var(--serif); color: var(--navy); }
.mi-desc { font-size: .9rem; color: var(--muted); margin-top: 2px; max-width: 54ch; }
.mi-dots { border-bottom: 1px dotted rgba(25, 63, 43, .28); height: 1px; margin-bottom: .45em; min-width: 1rem; }
.mi-price { font: 600 1rem/1.3 var(--sans); color: var(--navy); text-align: right; white-space: nowrap; }
.pl { font-size: .75rem; color: var(--muted); font-weight: 500; }
.tag { display: inline-block; vertical-align: middle; margin-left: .45rem; font: 700 .62rem/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; padding: .3rem .5rem; border-radius: var(--r-btn); background: var(--sand); color: #3a463e; }
.tabs { display: flex; gap: 4px; padding: 4px; margin: 0 auto 1.8rem; width: max-content; max-width: 100%; overflow-x: auto; border-radius: var(--r-btn); background: rgba(25, 63, 43, .06); scrollbar-width: none; }
.tabs::-webkit-scrollbar { display: none; }
.tab { border: 0; background: transparent; padding: .7rem 1.2rem; border-radius: var(--r-btn); font-weight: 600; font-size: .9rem; color: var(--muted); cursor: pointer; white-space: nowrap; transition: background .3s, color .3s, box-shadow .3s; }
.tab.on { background: var(--paper); color: var(--navy); box-shadow: 0 2px 8px rgba(16, 41, 28, .12); }
.tab-panel { animation: fadeup .6s var(--ease); }

/* Anlässe */
.event-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 1.2rem; }
.event-card .core { display: flex; gap: 1.3rem; padding: 1.4rem; }
.event-date { flex: none; width: 76px; height: 86px; border-radius: 18px; background: var(--navy); color: var(--cream); display: flex; flex-direction: column; align-items: center; justify-content: center; }
.event-date .d { font: 500 2.3rem/1 var(--serif); }
.event-date .m { font: 700 .66rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--gold-soft); margin-top: 5px; }
.event-body h3 { font-size: 1.5rem; margin-bottom: .2em; }
.meta { font-size: .85rem; font-weight: 600; color: var(--gold-text); margin-bottom: .6rem; }
.event-body p:not(.meta) { font-size: .95rem; color: #39453d; }

/* Bewertungen */
.review-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.2rem; }
.review { margin: 0; }
.review .core { padding: 1.8rem; display: flex; flex-direction: column; gap: 1rem; }
.stars-s { color: var(--brass); letter-spacing: .12em; }
.review blockquote { margin: 0; font: italic 400 1.3rem/1.45 var(--serif); color: var(--navy); }
.review figcaption { margin-top: auto; font-size: .86rem; font-weight: 600; color: var(--muted); }

/* Bildstreifen */
.gal-strip { padding-bottom: clamp(4rem, 8vw, 7rem); }
.strip { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 max(clamp(20px, 4vw, 64px), calc((100vw - var(--wrap)) / 2)) 10px; scrollbar-width: none; cursor: grab; }
.strip::-webkit-scrollbar { display: none; }
.strip.dragging { cursor: grabbing; scroll-snap-type: none; }
.strip-item { flex: none; width: clamp(240px, 32vw, 440px); aspect-ratio: 4 / 5; border-radius: 26px; border: 0; background-size: cover; background-position: center; scroll-snap-align: start; cursor: zoom-in; box-shadow: var(--shadow); transition: transform .8s var(--ease); }
.strip-item:nth-child(2n) { aspect-ratio: 4 / 3; align-self: center; }
.strip-item:hover { transform: scale(.985); }

/* Bänder */
.band { background: linear-gradient(120deg, var(--bordeaux) 0%, #7d2433 100%); color: #fff8ec; padding: clamp(2.5rem, 5vw, 3.5rem) 0; }
.band h3 { color: #fff; font-size: clamp(1.7rem, 3vw, 2.4rem); }
.band .eyebrow { color: var(--gold-soft); }
.band p { margin: 0; max-width: 56ch; color: rgba(255, 248, 236, .9); }
.band-inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.band.dark { background: var(--navy); color: var(--cream); }
.band.dark h3 { color: #fff; }
.band.dark p { color: rgba(245, 239, 226, .85); }

/* Anreise */
.arrive { display: grid; gap: 1.2rem; margin-top: 1.5rem; }
.arrive > div { display: flex; gap: 1rem; align-items: flex-start; }
.arrive .ic { width: 44px; height: 44px; padding: 10px; border-radius: 50%; background: var(--paper); border: 1px solid var(--line); color: var(--navy); }
.arrive b { color: var(--navy); }
.arrive p { margin: .2rem 0 0; color: var(--muted); font-size: .95rem; }

/* Öffnungszeiten */
.hours { width: 100%; border-collapse: collapse; margin: .5rem 0 1rem; font-size: .95rem; }
.hours th, .hours td { padding: .62rem 0; border-bottom: 1px solid var(--line); text-align: left; font-weight: 500; }
.hours th { color: var(--muted); width: 40%; }
.hours td { text-align: right; color: var(--navy); font-variant-numeric: tabular-nums; }
.hours tr.today th, .hours tr.today td { color: var(--navy); font-weight: 700; }
.hours tr.today th::before { content: "●"; color: var(--gold); font-size: .6rem; margin-right: .5rem; vertical-align: middle; }

/* Zimmer */
.note-row { display: flex; flex-wrap: wrap; gap: .6rem; justify-content: center; margin-bottom: clamp(2.5rem, 6vw, 4.5rem); }
.note-row span { display: inline-flex; align-items: center; gap: .5rem; padding: .6rem 1rem; border-radius: var(--r-btn); background: var(--paper); border: 1px solid var(--line); font-size: .88rem; color: var(--navy); }
.note-row .ic { width: 18px; height: 18px; color: var(--gold-text); }
.room-list { display: grid; gap: clamp(3.5rem, 8vw, 7rem); }
.room-card { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.room-card.rev .room-media { order: 2; }
.room-img { aspect-ratio: 5 / 4; background-size: cover; background-position: center; transition: transform 1.4s var(--ease); }
.room-card:hover .room-img { transform: scale(1.04); }
.room-txt h3 { font-size: clamp(2.2rem, 4vw, 3.2rem); }
.chips { list-style: none; padding: 0; margin: 1rem 0; display: flex; flex-wrap: wrap; gap: .45rem; }
.chips li { padding: .42rem .85rem; border-radius: var(--r-btn); background: var(--sand); color: var(--navy); font-size: .82rem; font-weight: 600; }
.room-price { display: flex; flex-wrap: wrap; gap: .3rem 1.6rem; margin: 1.2rem 0 1.6rem; font: 500 1.6rem/1.2 var(--serif); color: var(--navy); }
.room-price small { font: 500 .78rem/1 var(--sans); color: var(--muted); }
.ph-img { aspect-ratio: 4 / 3; background-size: cover; background-position: center; }

/* ---------- Buchungsstrecke ---------- */
.booking-page, .table-page { padding-top: clamp(3rem, 6vw, 4.5rem); }
.steps { list-style: none; display: flex; justify-content: center; gap: .4rem; padding: 0; margin: 2rem 0 2rem; counter-reset: st; flex-wrap: wrap; }
.steps li { counter-increment: st; display: flex; align-items: center; gap: .55rem; padding: .45rem 1rem .45rem .45rem; border-radius: var(--r-btn); font-size: .86rem; font-weight: 600; color: var(--muted); background: rgba(25, 63, 43, .05); transition: background .4s, color .4s; }
.steps li::before { content: counter(st); display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--paper); font-size: .78rem; color: var(--navy); }
.steps li.on { background: var(--navy); color: var(--cream); }
.steps li.on::before { background: var(--bordeaux); color: #fff8ec; }
.steps li.done { color: var(--navy); }
.steps li.done::before { content: "✓"; background: var(--bordeaux); color: #fff8ec; }
.bk-info:not(:empty) { margin: 1.2rem 0 0; display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; }
.bk-info .note { display: inline-flex; align-items: center; gap: .5rem; padding: .55rem 1rem; border-radius: var(--r-btn); font-size: .88rem; font-weight: 600; background: var(--paper); border: 1px solid var(--line); color: var(--navy); }
.bk-info .note.ok { background: #e6f2ea; border-color: #b9dbc5; color: var(--ok); }
.bk-info .note.err { background: #f8e7e7; border-color: #ebc3c3; color: var(--err); }
.bk-results { margin-top: 2.5rem; display: grid; gap: 1.2rem; }
.bk-results > h2 { text-align: center; font-size: clamp(1.6rem, 3vw, 2.2rem); margin-bottom: .5rem; }
.room-offer .core { display: grid; grid-template-columns: 280px 1fr 240px; animation: fadeup .7s var(--ease) both; animation-delay: var(--d, 0ms); }
.ro-img { background-size: cover; background-position: center; min-height: 220px; }
.ro-body { padding: 1.6rem 1.8rem; }
.ro-body h3 { font-size: 1.9rem; margin-bottom: .3em; }
.ro-body p { font-size: .93rem; color: var(--muted); margin-bottom: .6rem; }
.ro-price { padding: 1.6rem; background: var(--cream); display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: .35rem; border-left: 1px solid var(--line); }
.ro-price .tot { font: 500 2.2rem/1 var(--serif); color: var(--navy); }
.ro-price .was { text-decoration: line-through; color: var(--muted); font-size: .9rem; }
.ro-price .left { color: var(--err); font-weight: 700; font-size: .8rem; }
.ro-price .pill { margin-top: .6rem; }
.empty-card .core { padding: 2.5rem; text-align: center; }
.bk-summary { background: var(--cream); border-radius: 18px; padding: 1.2rem 1.4rem; margin-bottom: 1.5rem; border: 1px solid var(--line); }
.bk-summary strong:first-child { font: 500 1.5rem/1.2 var(--serif); color: var(--navy); display: block; margin-bottom: .6rem; }
.bk-summary table { width: 100%; border-collapse: collapse; font-size: .93rem; }
.bk-summary td { padding: .4rem 0; border-top: 1px solid var(--line); }
.bk-summary td:last-child { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.bk-summary tr.disc td { color: var(--ok); }
#bk-form, #bk-done, #tbl-done, #voucher-done { margin-top: 2rem; }
.done-card, #bk-done > .core, #tbl-done > .core, #voucher-done > .core { padding: clamp(2rem, 5vw, 3.5rem); text-align: center; }
.ornament { width: 64px; height: 64px; margin: 0 auto 1.2rem; border-radius: 50%; display: grid; place-items: center; background: var(--bordeaux); color: #fff8ec; font-size: 1.6rem; animation: pop .8s var(--ease) both; }
@keyframes pop { from { transform: scale(.4); opacity: 0; } to { transform: none; opacity: 1; } }
.big-amount { font: 500 clamp(2rem, 5vw, 2.8rem)/1.1 var(--serif); color: var(--navy); letter-spacing: .04em; margin: .4rem 0 1rem; }

/* ---------- Formulare ---------- */
.form-card { padding: clamp(1.5rem, 4vw, 2.8rem); }
.form-card h2 { font-size: clamp(1.7rem, 3vw, 2.2rem); }
.form-card > label, .grid2 > label, .grid3 > label, .form-card form > label { display: flex; flex-direction: column; gap: .4rem; font-size: .92rem; font-weight: 700; letter-spacing: .04em; color: #2f3a33; margin-bottom: 1rem; }
input:not([type=checkbox]):not([type=radio]), select, textarea {
  width: 100%; font: 500 1.05rem/1.4 var(--sans); color: var(--ink); background: var(--cream); border: 1.5px solid var(--line-strong); border-radius: 14px; padding: .9rem 1rem; min-height: 54px; outline: none;
  transition: border-color .25s, box-shadow .25s, background .25s; -webkit-appearance: none; appearance: none;
}
select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%23193f2b' stroke-width='1.6'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; padding-right: 2.4rem; }
.bw-form select { background-position: right 0 center; padding-right: 1.2rem; }
input:focus, select:focus, textarea:focus { border-color: var(--navy); background: var(--paper); box-shadow: 0 0 0 4px rgba(110, 28, 43, .25); }
.invalid { border-color: var(--err) !important; box-shadow: 0 0 0 4px rgba(161, 44, 44, .12) !important; }
textarea { resize: vertical; min-height: 110px; }
label.chk { display: flex !important; flex-direction: row !important; align-items: flex-start; gap: .7rem !important; font-weight: 500 !important; letter-spacing: 0 !important; font-size: .92rem !important; color: var(--ink) !important; cursor: pointer; }
label.chk input { width: 20px; height: 20px; margin: 1px 0 0; flex: none; accent-color: var(--navy); }
.form-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: .7rem; margin-top: 1.5rem; }
.form-msg:empty { display: none; }
.form-msg { margin-top: 1rem; padding: .8rem 1rem; border-radius: 14px; font-size: .92rem; font-weight: 600; }
.form-msg.err { background: #f8e7e7; color: var(--err); }
.form-msg.ok { background: #e6f2ea; color: var(--ok); }
.ok { color: var(--ok); font-weight: 700; }
.err { color: var(--err); }

/* Segment-Auswahl (Anfrage-Art) */
.seg { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 4px; padding: 4px; border-radius: 18px; background: rgba(25, 63, 43, .06); margin-bottom: 1.4rem; }
.seg label { margin: 0 !important; cursor: pointer; }
.seg input { position: absolute; opacity: 0; pointer-events: none; }
.seg span { display: block; text-align: center; padding: .7rem .9rem; border-radius: 14px; font-weight: 600; font-size: .9rem; color: var(--muted); transition: background .3s, color .3s, box-shadow .3s; }
.seg input:checked + span { background: var(--paper); color: var(--navy); box-shadow: 0 2px 8px rgba(16, 41, 28, .12); }
.seg input:focus-visible + span { outline: 2px solid var(--gold); }

/* Zeitfenster */
.slots-wrap { margin: .4rem 0 1.4rem; }
.lbl { display: block; font-size: .8rem; font-weight: 700; letter-spacing: .04em; color: #2f3a33; margin-bottom: .6rem; }
.slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); gap: 8px; }
.slot { border: 1.5px solid var(--line-strong); background: var(--paper); border-radius: 12px; padding: .9rem 0; font-weight: 700; font-size: 1.05rem; color: var(--navy); cursor: pointer; font-variant-numeric: tabular-nums; transition: background .2s, color .2s, transform .3s var(--ease), border-color .2s; }
.slot:hover:not([disabled]) { border-color: var(--navy); transform: translateY(-1px); }
.slot.on { background: var(--navy); color: var(--cream); border-color: var(--navy); }
.slot[disabled] { opacity: .35; text-decoration: line-through; cursor: not-allowed; }
.slots .note { grid-column: 1 / -1; font-size: .9rem; color: var(--muted); background: var(--cream); border-radius: 12px; padding: .8rem 1rem; }
.wl-box { margin-top: 1rem; padding: 1rem 1.2rem; border-radius: 16px; background: var(--sand); font-size: .92rem; }

/* Gutscheinbeträge */
.amounts { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; margin-bottom: 1.4rem; }
.amount { margin: 0 !important; cursor: pointer; }
.amount input { position: absolute; opacity: 0; }
.amount span { display: block; text-align: center; padding: 1rem .4rem; border-radius: 16px; border: 1px solid var(--line); background: var(--cream); font: 500 1.35rem/1 var(--serif); color: var(--navy); transition: all .3s var(--ease); }
.amount input:checked + span { background: var(--navy); color: var(--cream); border-color: var(--navy); transform: translateY(-2px); box-shadow: var(--shadow); }

/* Sterne-Bewertung */
.stars { display: inline-flex; flex-direction: row; gap: .3rem; margin: .5rem 0 1.5rem; }
.stars label { cursor: pointer; }
.stars input { position: absolute; opacity: 0; }
.stars span { font-size: 2.6rem; line-height: 1; color: rgba(25, 63, 43, .18); transition: color .2s, transform .3s var(--ease); display: block; }
.stars label.lit span { color: var(--brass); }
.stars label:hover span { transform: scale(1.12); }
.stars input:focus-visible + span { outline: 2px solid var(--navy); border-radius: 6px; }

/* Listen und Info */
.checklist { list-style: none; padding: 0; margin: 1.5rem 0 0; display: grid; gap: .8rem; }
.checklist li { display: flex; gap: .8rem; align-items: flex-start; font-size: 1.02rem; }
.checklist .ic { width: 24px; height: 24px; padding: 4px; border-radius: 50%; background: var(--green); color: var(--cream); stroke-width: 2; flex: none; margin-top: 1px; }
.info-card h3 { font-size: 1.6rem; }
.info-card p { color: #39453d; margin: 0; }
.ic-round { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; background: var(--sand); color: var(--navy); margin-bottom: 1.4rem; }
.ic-round .ic { width: 26px; height: 26px; }
.job + .job { margin-top: 1rem; }

/* Galerie */
.masonry { columns: 3 300px; column-gap: 14px; margin-top: 3rem; }
.m-item { display: block; width: 100%; margin: 0 0 14px; padding: 0; border: 0; border-radius: 22px; overflow: hidden; cursor: zoom-in; break-inside: avoid; background: var(--sand); }
.m-item img { width: 100%; height: auto; transition: transform 1.2s var(--ease); }
.m-item:hover img { transform: scale(1.05); }
.lightbox { position: fixed; inset: 0; z-index: 300; background: rgba(10, 24, 16, .94); display: grid; place-items: center; padding: 4vw; animation: fadeup .4s var(--ease); }
.lightbox[hidden] { display: none; }
.lightbox img { max-width: 100%; max-height: 88vh; border-radius: 18px; box-shadow: 0 40px 80px rgba(0, 0, 0, .5); }
.lb-close { position: absolute; top: 18px; right: 18px; width: 50px; height: 50px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .3); background: rgba(255, 255, 255, .1); color: #fff; cursor: pointer; display: grid; place-items: center; }

/* FAQ */
.faq { display: grid; gap: .7rem; margin-top: 2.5rem; }
.faq details { padding: 5px; }
.faq summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.25rem 1.4rem; cursor: pointer; font: 500 1.3rem/1.3 var(--serif); color: var(--navy); border-radius: 20px !important; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary i { width: 36px; height: 36px; flex: none; border-radius: 50%; display: grid; place-items: center; background: var(--sand); transition: transform .5s var(--ease), background .3s; }
.faq summary i .ic { width: 18px; height: 18px; }
.faq details[open] summary i { transform: rotate(45deg); background: var(--bordeaux); color: #fff8ec; }
.faq details p { padding: 1rem 1.4rem .6rem; margin: 0; color: #39453d; }

/* Kontakt */
.contact-list { list-style: none; padding: 0; margin: 2rem 0 0; display: grid; gap: 1rem; }
.contact-list li { display: flex; gap: 1rem; align-items: center; }
.contact-list .ic { width: 46px; height: 46px; padding: 11px; border-radius: 50%; background: var(--paper); border: 1px solid var(--line); color: var(--navy); }
.contact-list a { font-weight: 600; color: var(--navy); }

/* Rechtstexte */
.legal { padding-top: clamp(2rem, 5vw, 3rem); }
.legal h2 { font-size: 1.6rem; margin-top: 2.2rem; }
.legal p { color: #33403a; }

/* Gästeseiten (Token-Seiten) */
.card { padding: clamp(1.6rem, 4vw, 3rem); background: var(--paper); border-radius: var(--r-xl); box-shadow: 0 0 0 6px rgba(25, 63, 43, .045), 0 0 0 7px rgba(25, 63, 43, .07), var(--shadow); }
.section .wrap.narrow > .card { margin-top: clamp(4rem, 8vw, 6rem); }
.kicker { font: 700 .72rem/1 var(--sans); letter-spacing: .24em; text-transform: uppercase; color: var(--gold-text); }
.kv { width: 100%; border-collapse: collapse; margin: 1.5rem 0; }
.kv th, .kv td { text-align: left; padding: .75rem 0; border-bottom: 1px solid var(--line); font-size: .95rem; vertical-align: top; }
.kv th { color: var(--muted); font-weight: 600; width: 38%; }
.badge { display: inline-block; padding: .3rem .7rem; border-radius: var(--r-btn); font-size: .78rem; font-weight: 700; background: var(--sand); color: var(--navy); }
.badge.s-confirmed, .badge.s-checked_in, .badge.s-paid { background: #e6f2ea; color: var(--ok); }
.badge.s-cancelled, .badge.s-no_show { background: #f8e7e7; color: var(--err); }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 50px; padding: 0 1.6rem; border-radius: var(--r-btn); border: 1px solid transparent; font: 600 .95rem/1 var(--sans); text-decoration: none; cursor: pointer; transition: transform .4s var(--ease), box-shadow .4s; }
.btn:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -14px rgba(16, 41, 28, .5); }
.btn.gold { background: var(--bordeaux); color: #fff8ec; }
.btn.navy { background: var(--navy); color: var(--cream); }
.btn.outline { background: transparent; color: var(--navy); border-color: var(--line-strong); }
.btn.lg { min-height: 56px; padding: 0 2rem; font-size: 1rem; }
.btn[disabled] { opacity: .6; }
.test-note { background: #fff4d6; color: #5c4710; border-radius: 12px; padding: .7rem 1rem; font-size: .88rem; }

/* ---------- Footer ---------- */
.site-footer { background: var(--ink); color: rgba(245, 239, 226, .85); padding-top: clamp(4rem, 8vw, 7rem); position: relative; overflow: hidden; }
.site-footer h4, .site-footer .fh { color: var(--gold-soft); margin-bottom: 1.2rem; }
.site-footer a { color: var(--cream); text-decoration-color: rgba(245, 239, 226, .3); }
.foot-top { display: grid; grid-template-columns: 1.4fr 1fr; gap: clamp(2rem, 6vw, 6rem); padding-bottom: clamp(3rem, 6vw, 4.5rem); border-bottom: 1px solid rgba(255, 255, 255, .1); }
.foot-big { font: 400 clamp(2.2rem, 4.6vw, 3.8rem)/1.04 var(--serif); color: #fff; letter-spacing: -.02em; max-width: 16ch; margin-bottom: 1.6rem; }
.foot-ctas { display: flex; flex-wrap: wrap; gap: .7rem; }
.newsletter { align-self: end; }
.newsletter p { color: rgba(245, 239, 226, .75); }
.nl-row { display: flex; gap: 6px; padding: 6px; border-radius: var(--r-btn); background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .14); }
.nl-row input { background: transparent !important; border: 0 !important; color: #fff !important; box-shadow: none !important; padding-left: 1rem !important; }
.nl-row input::placeholder { color: rgba(245, 239, 226, .55); }
.newsletter .form-msg.ok { background: rgba(255, 255, 255, .1); color: var(--gold-soft); }
.foot-grid { display: grid; grid-template-columns: 1.1fr 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); padding: clamp(3rem, 6vw, 4rem) 0; }
.foot-grid p { font-size: .95rem; }
.site-footer .hours th, .site-footer .hours td { border-color: rgba(255, 255, 255, .1); color: rgba(245, 239, 226, .85); font-size: .9rem; }
.site-footer .muted { color: rgba(245, 239, 226, .55); }
.site-footer .hours tr.today td, .site-footer .hours tr.today th { color: #fff; }
.foot-links { list-style: none; padding: 0; margin: 0; columns: 2; column-gap: 1.5rem; }
.foot-links li { margin-bottom: .5rem; }
.foot-links a { text-decoration: none; color: rgba(245, 239, 226, .85); font-size: .95rem; }
.foot-links a:hover { color: #fff; text-decoration: underline; }
.social { display: flex; flex-wrap: wrap; gap: 1rem; }
.foot-bottom { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; padding: 1.5rem 0 2rem; border-top: 1px solid rgba(255, 255, 255, .1); font-size: .85rem; color: rgba(245, 239, 226, .6); }
.foot-bottom a { color: rgba(245, 239, 226, .75); }
.foot-word { font: 500 clamp(6rem, 24vw, 22rem)/.78 var(--serif); letter-spacing: -.04em; text-align: center; color: transparent; -webkit-text-stroke: 1px rgba(236, 220, 182, .22); user-select: none; margin-bottom: -.12em; white-space: nowrap; }

.sticky-cta { display: none; }

/* ---------- Scroll-Einblendungen ---------- */
.js .reveal { opacity: 0; transform: translateY(18px); transition: opacity .8s var(--ease), transform .9s var(--ease); transition-delay: var(--d, 0ms); }
.js .reveal.in { opacity: 1; transform: none; filter: none; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .room-offer .core { grid-template-columns: 220px 1fr; }
  .ro-price { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; align-items: center; border-left: 0; border-top: 1px solid var(--line); }
  .ro-price .pill { margin: 0 0 0 auto; }
  .offers { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
  .split-2, .room-card, .foot-top, .menu-inner { grid-template-columns: 1fr; }
  .room-card.rev .room-media { order: 0; }
  .sticky-col { position: static; }
  .facts { grid-template-columns: 1fr 1fr; }
  .bento { grid-template-columns: 1fr 1fr; grid-auto-rows: 240px; }
  .tile.t-hotel { grid-column: span 2; grid-row: span 2; }
  .tile.t-rest, .tile.t-bank { grid-column: span 1; }
  .tile.t-excl { grid-column: span 2; }
  .foot-grid { grid-template-columns: 1fr 1fr; }
  .foot-grid > div:last-child { grid-column: span 2; }
  .menu-inner { gap: 2.5rem; padding-top: 110px; }
  .scroll-hint { display: none; }
}
@media (max-width: 680px) {
  body { font-size: 16px; }
  .hide-sm { display: none !important; }
  .hero { min-height: auto; }
  .hero-inner { padding-top: 2.5rem; }
  .bw-form > label { flex: 1 1 calc(50% - 6px); }
  .bw-form > label.chk { flex: 1 1 100%; padding: .7rem 1rem; }
  .bw-form > label.promo { flex: 1 1 100%; }
  .bw-form > .pill { flex: 1 1 100%; justify-content: space-between; margin: 0; }
  .bw-tabs button { flex: 1; justify-content: center; }
  .offers, .grid2, .grid3 { grid-template-columns: 1fr; }
  .span2 { grid-column: auto; }
  .bento { grid-template-columns: 1fr; grid-auto-rows: minmax(360px, auto); }
  .tile.t-hotel, .tile.t-rest, .tile.t-bank, .tile.t-excl { grid-column: auto; grid-row: auto; }
  .tile.t-hotel { grid-row: span 1; }
  .room-offer .core { grid-template-columns: 1fr; }
  .ro-img { min-height: 200px; }
  .ro-price .pill { margin: .4rem 0 0; width: 100%; justify-content: space-between; }
  .amounts { grid-template-columns: repeat(3, 1fr); }
  .menu-item { grid-template-columns: 1fr auto; }
  .mi-dots { display: none; }
  .event-card .core { flex-direction: column; }
  .event-date { flex-direction: row; width: max-content; height: auto; padding: .6rem 1rem; gap: .5rem; align-items: baseline; }
  .event-date .d { font-size: 1.6rem; }
  .foot-grid { grid-template-columns: 1fr; }
  .foot-grid > div:last-child { grid-column: auto; }
  .menu-more { grid-template-columns: 1fr 1fr; }
  .menu-main a { font-size: 2.1rem; }
  .sec-row { align-items: flex-start; }
  .form-actions .pill { flex: 1 1 100%; justify-content: space-between; }
  .sticky-cta { display: flex; position: fixed; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom)); z-index: 80; gap: 6px; padding: 6px; border-radius: var(--r-btn); background: rgba(251, 248, 242, .9); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); box-shadow: 0 16px 40px -14px rgba(16, 41, 28, .5); transform: translateY(150%); transition: transform .6s var(--ease); }
  .sticky-cta .pill { flex: 1; justify-content: center; }
  .sticky-cta .pill.gold { justify-content: space-between; }
  body.sticky-on .sticky-cta { transform: none; }
  body.menu-open .sticky-cta, .page-booking .sticky-cta, .page-table .sticky-cta { display: none; }
  .site-footer { padding-bottom: 70px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .js .reveal { opacity: 1; transform: none; filter: none; }
}
@media print {
  .site-header, .topbar, .menu-overlay, .sticky-cta, .grain, .snow, .site-footer, .hero-widget { display: none !important; }
}

/* ---------- Telefon gut sichtbar (wichtig für ältere Gäste) ---------- */
.hdr-phone { display: inline-flex; align-items: center; gap: .45rem; padding: .55rem .9rem; border-radius: var(--r-btn); text-decoration: none; font-weight: 700; font-size: .95rem; color: var(--navy); background: rgba(25, 63, 43, .06); white-space: nowrap; }
.hdr-phone .ic { width: 18px; height: 18px; }
.hdr-phone:hover { background: rgba(25, 63, 43, .12); }
.help-strip { background: var(--paper); border: 1px solid var(--line); border-radius: 18px; padding: 1rem 1.2rem; display: flex; gap: .9rem; align-items: center; margin: 1.5rem 0 0; font-size: 1rem; }
.help-strip .ic { width: 28px; height: 28px; color: var(--gold-text); flex: none; }
.help-strip a { font-weight: 700; color: var(--navy); }
.seo-text { columns: 2 340px; column-gap: 3rem; color: #2a362e; }
.seo-text h3 { break-after: avoid; font-size: 1.5rem; margin-top: .4rem; }
.seo-text p { break-inside: avoid; }
.info-list { list-style: none; padding: 0; margin: 1.2rem 0; display: grid; gap: .55rem; }
.info-list li { display: flex; gap: .7rem; align-items: baseline; }
.info-list li b { min-width: 9.5rem; color: var(--navy); }
.price-table { width: 100%; border-collapse: collapse; margin: 1rem 0 1.5rem; font-size: 1.05rem; }
.price-table th, .price-table td { padding: .75rem 0; border-bottom: 1px solid var(--line); text-align: left; }
.price-table td.p { text-align: right; font: 600 1.15rem/1 var(--serif); color: var(--navy); white-space: nowrap; }
.crumbs { font-size: .9rem; color: rgba(255,255,255,.85); margin-bottom: 1rem; }
.crumbs a { color: #fff; }
@media (max-width: 1100px) { .hdr-phone span { display: none; } .hdr-phone { padding: .6rem; } }
@media (max-width: 680px) { .info-list li { flex-direction: column; gap: .1rem; } }

/* Bilder als echte <img> (Alt-Texte für Google und Screenreader) */
img.hero-bg, img.page-hero-bg { width: 108%; height: 108%; max-width: none; object-fit: cover; }
img.tile-img, img.room-img { width: 100%; height: 100%; object-fit: cover; }
img.tile-img { position: absolute; inset: 0; }
img.room-img { aspect-ratio: 5 / 4; height: auto; }
.oc-img { overflow: hidden; }
.oc-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.offer-card:hover .oc-img { transform: none; }
.offer-card:hover .oc-img img { transform: scale(1.04); }

.band.dark .eyebrow { color: var(--gold-soft); }
.band .price-strong { display: inline-block; margin-top: .6rem; font: 600 1.25rem/1.2 var(--serif); color: var(--gold-soft); }
@media (max-width: 680px) {
  .bw-form { display: grid; grid-template-columns: 1fr 1fr; }
  .bw-form > label, .bw-form > label.sm { flex: none; min-width: 0; }
  .bw-form > label.chk, .bw-form > label.promo, .bw-form > .pill { grid-column: 1 / -1; }
  .bw-form[data-pane="table"] > label:last-of-type { grid-column: 1 / -1; }
  .bw-form > label input:not([type=checkbox]) { font-size: 1rem; }
}

/* =====================================================================
   Hausfarben 2026: klassisches Gasthaus, modern umgesetzt
   ===================================================================== */
body { background: var(--cream); }
h1, h2, h3 { color: var(--green); }
.section.cream { background: var(--sand); }
.eyebrow::before { content: var(--orn); width: auto; height: auto; background: none; opacity: 1; font-size: .9em; letter-spacing: 0; }
.eyebrow.light { color: var(--gold-soft); }

/* Kopfzeile oben: Adresse, Telefon, Sprachen */
.topbar { background: var(--green-deep); color: rgba(247, 241, 227, .9); font-size: .88rem; position: relative; z-index: 101; }
.topbar-in { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 40px; }
.topbar .ic { width: 16px; height: 16px; }
.tb-left, .tb-right { display: flex; align-items: center; gap: .5rem; white-space: nowrap; }
.tb-right { gap: 1.2rem; }
.tb-right > a { display: inline-flex; align-items: center; gap: .45rem; color: #fff8ec; text-decoration: none; font-weight: 600; }
.tb-right > a:hover { text-decoration: underline; }
.tb-greet { margin-left: 1rem; padding-left: 1rem; border-left: 1px solid rgba(255, 255, 255, .25); color: var(--gold-soft); font-weight: 600; }
.topbar .langs { display: flex; gap: 2px; padding: 0; background: none; }
.topbar .langs a { font: 700 .74rem/1 var(--sans); letter-spacing: .06em; padding: .45rem .5rem; border-radius: 6px; text-decoration: none; color: rgba(247, 241, 227, .75); }
.topbar .langs a.on { background: rgba(255, 255, 255, .14); color: #fff; }

/* Hauptkopf: bleibt beim Scrollen stehen */
.site-header { position: sticky; top: 0; z-index: 100; background: var(--paper); border-bottom: 1px solid var(--line); box-shadow: 0 6px 20px -16px rgba(16, 41, 28, .5); }
.site-header::after { content: ""; position: absolute; left: 0; right: 0; bottom: -3px; height: 3px; background: var(--bordeaux); }
.hdr-in { display: flex; align-items: center; gap: 1.5rem; min-height: 78px; width: min(1380px, 100% - 40px); }
.brand { display: flex; align-items: center; gap: .75rem; text-decoration: none; color: var(--green); flex: none; }
.brand-star { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: var(--bordeaux); color: #fff8ec; box-shadow: inset 0 0 0 3px var(--paper), 0 0 0 1.5px var(--bordeaux); }
.brand-star .ic { width: 22px; height: 22px; fill: #fff8ec; stroke: none; }
.brand-text { display: flex; flex-direction: column; line-height: 1; }
.brand-name { font: 600 1.75rem/1 var(--serif); letter-spacing: .03em; color: var(--green); }
.brand-sub { font: 700 .62rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--bordeaux); margin-top: 5px; }
.main-nav { display: flex; align-items: center; gap: .1rem; margin: 0 auto; }
.main-nav a { position: relative; display: inline-flex; align-items: center; height: 44px; padding: 0 .8rem; text-decoration: none; white-space: nowrap; font: 600 .98rem/1 var(--sans); color: var(--green); border-radius: var(--r-btn); transition: color .2s, background .2s; }
.main-nav a::after { content: ""; position: absolute; left: .8rem; right: .8rem; bottom: 6px; height: 2px; background: var(--bordeaux); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease); }
.main-nav a:hover { color: var(--bordeaux); }
.main-nav a:hover::after, .main-nav a.active::after { transform: scaleX(1); }
.main-nav a.active { color: var(--bordeaux); }
.hdr-actions { display: flex; align-items: center; gap: .5rem; flex: none; }
.btn-h { display: inline-flex; align-items: center; gap: .5rem; height: 46px; padding: 0 1.05rem; border-radius: var(--r-btn); text-decoration: none; white-space: nowrap; font: 700 .93rem/1 var(--sans); border: 1.5px solid transparent; transition: background .25s, color .25s, transform .3s var(--ease); }
.btn-h .ic { width: 19px; height: 19px; }
.btn-h.red { background: var(--bordeaux); color: #fff8ec; }
.btn-h.red:hover { background: var(--bordeaux-deep); transform: translateY(-1px); }
.btn-h.green { background: transparent; color: var(--green); border-color: var(--green); }
.btn-h.green:hover { background: var(--green); color: var(--cream); }
.hdr-phone { display: none; place-items: center; width: 46px; height: 46px; padding: 0; border-radius: var(--r-btn); background: var(--sand); color: var(--green); }
.hdr-phone .ic { width: 20px; height: 20px; }
.burger { display: none; width: 46px; height: 46px; border-radius: var(--r-btn); border: 0; background: var(--green); cursor: pointer; position: relative; flex: none; }
.burger span { position: absolute; left: 13px; right: 13px; height: 2px; background: var(--cream); border-radius: 2px; transition: transform .4s var(--ease), opacity .3s, top .4s var(--ease); }
.burger span:nth-child(1) { top: 15px; } .burger span:nth-child(2) { top: 22px; } .burger span:nth-child(3) { top: 29px; }
body.menu-open .burger span:nth-child(1) { top: 22px; transform: rotate(45deg); }
body.menu-open .burger span:nth-child(2) { opacity: 0; }
body.menu-open .burger span:nth-child(3) { top: 22px; transform: rotate(-45deg); }
.menu-overlay { background: var(--green-deep); z-index: 99; }
.menu-inner { padding-top: 150px; }
.menu-main a:hover { color: var(--gold-soft); }

/* Hero: Bild, Titel und darunter gut sichtbar Zimmer oder Tisch */
.hero-title { max-width: 15ch; font-size: clamp(2.8rem, 7.2vw, 6.4rem); }
.hero-title .w:nth-child(2n) { font-style: italic; color: var(--gold-soft); }
.bw-shell { background: var(--paper); border: 0; padding: 10px; border-radius: 16px; backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: 0 30px 60px -28px rgba(0, 0, 0, .6); }
.bw-tabs { gap: 8px; padding: 0 0 10px; }
.bw-tabs button { flex: 1; justify-content: center; gap: .6rem; min-height: 54px; border-radius: var(--r-btn); font-size: 1.05rem; font-weight: 700; color: var(--green); background: var(--sand); border: 1.5px solid transparent; }
.bw-tabs button .ic { width: 22px; height: 22px; }
.bw-tabs button.on { background: var(--bordeaux); color: #fff8ec; }
.bw-tabs button[data-bw="table"].on { background: var(--green); }
.bw-tabs button:not(.on):hover { background: #e6dabf; }
.bw-form { background: transparent; padding: 0; gap: 8px; border-radius: 0; }
.bw-form > label { background: var(--cream); border: 1.5px solid var(--line); border-radius: var(--r-btn); padding: .65rem 1rem; min-height: 66px; }
.bw-form > label:hover { background: #fff; border-color: var(--green); }
.bw-form > label:focus-within { border-color: var(--bordeaux); background: #fff; }
.bw-form > label > span { font-size: .85rem; color: var(--muted); }
.bw-form > label input:not([type=checkbox]), .bw-form > label select { font-size: 1.12rem !important; color: var(--green) !important; }
.bw-form > label.chk { min-height: 66px; }
.bw-form > label.chk .ic { width: 20px; height: 20px; }
.bw-form > .pill { min-height: 66px; padding: 0 1.6rem; font-size: 1.05rem; }
.bw-form[data-pane="table"] > .pill { --bg: var(--green); }
.bw-note { margin: .6rem .2rem 0; font-size: .9rem; color: var(--muted); }
.bw-note a { color: var(--bordeaux); font-weight: 700; }

/* Auf einen Blick: Eckdaten und Distanzen */
.glance { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.glance-col { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-xl); padding: 1.6rem 1.6rem 1.2rem; }
.glance-col h3 { font-size: 1.5rem; display: flex; align-items: center; gap: .6rem; padding-bottom: .8rem; margin-bottom: .4rem; border-bottom: 2px solid var(--bordeaux); }
.glance-list { list-style: none; margin: 0; padding: 0; }
.glance-list li { display: grid; grid-template-columns: 40px 1fr; gap: .8rem; align-items: start; padding: .75rem 0; border-bottom: 1px dashed var(--line); }
.glance-list li:last-child { border-bottom: 0; }
.glance-list .ic { width: 40px; height: 40px; padding: 9px; border-radius: 50%; background: var(--sand); color: var(--green); }
.glance-list b { display: block; color: var(--green); font-size: 1.02rem; line-height: 1.3; }
.glance-list span { display: block; color: var(--muted); font-size: .92rem; line-height: 1.4; margin-top: 2px; }
.glance-list .dist { color: var(--bordeaux); font-weight: 700; }

/* Aktivitäten */
.acts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.act { display: flex; gap: 1rem; padding: 1.3rem; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-lg); }
.act .ic { width: 46px; height: 46px; padding: 11px; border-radius: 50%; background: var(--green); color: var(--cream); flex: none; }
.act h3 { font-size: 1.35rem; margin: 0 0 .2rem; }
.act p { margin: 0; font-size: .95rem; color: var(--muted); }

/* Angebote (Zusatzleistungen) */
.offer-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.2rem; }
.ocard { display: flex; flex-direction: column; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-xl); overflow: hidden; box-shadow: var(--shadow); }
.ocard-img { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--green); }
.ocard-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.ocard:hover .ocard-img img { transform: scale(1.04); }
.ocard-ic { position: absolute; left: 14px; bottom: -22px; width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; background: var(--bordeaux); color: #fff8ec; box-shadow: 0 0 0 4px var(--paper); }
.ocard-ic .ic { width: 24px; height: 24px; }
.ocard-body { padding: 2rem 1.4rem 1.3rem; display: flex; flex-direction: column; flex: 1; }
.ocard-body h3 { font-size: 1.65rem; margin-bottom: .35rem; }
.ocard-body p { color: var(--muted); font-size: .97rem; margin-bottom: 1rem; }
.ocard-foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .8rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.oprice { font: 600 1.6rem/1.1 var(--serif); color: var(--bordeaux); }
.oprice small { display: block; font: 600 .78rem/1.2 var(--sans); color: var(--muted); }

/* Extras zum Anklicken (Zimmer und Buchung) */
.extras { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 8px; margin: .8rem 0 0; }
.xchip { position: relative; display: flex !important; flex-direction: row !important; align-items: center; gap: .7rem !important; padding: .8rem 1rem; margin: 0 !important; border: 1.5px solid var(--line-strong); border-radius: var(--r-btn); background: var(--paper); cursor: pointer; font-weight: 600 !important; letter-spacing: 0 !important; color: var(--green) !important; transition: border-color .2s, background .2s; }
.xchip:hover { border-color: var(--green); }
.xchip input { width: 22px; height: 22px; margin: 0; flex: none; accent-color: var(--bordeaux); }
.xchip .xt { display: flex; flex-direction: column; line-height: 1.25; font-size: .95rem; }
.xchip .xp { font-size: .82rem; font-weight: 600; color: var(--bordeaux); }
.xchip:has(input:checked) { border-color: var(--bordeaux); background: #fbf1ee; }
.xchip .ic { width: 20px; height: 20px; color: var(--bordeaux); flex: none; }
.extras-box { margin-top: 1rem; padding: 1.1rem; border-radius: var(--r-lg); background: var(--sand); }
.extras-box > b { display: block; font: 600 1.3rem/1.2 var(--serif); color: var(--green); }
.extras-box > p { margin: .2rem 0 0; font-size: .92rem; color: var(--muted); }
.room-extras { margin: 1.2rem 0 1.4rem; }
.room-extras .lbl { margin-bottom: .4rem; }

/* Partnerfirmen */
.partner-box { display: flex; gap: 1.2rem; align-items: center; justify-content: space-between; flex-wrap: wrap; padding: 1.4rem 1.6rem; border: 1px solid var(--line); border-left: 5px solid var(--green); border-radius: var(--r-lg); background: var(--paper); }
.partner-box h3 { margin: 0 0 .3rem; font-size: 1.5rem; }
.partner-box p { margin: 0; color: var(--muted); max-width: 70ch; }
.partner-names { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .8rem; }
.partner-names span { padding: .45rem .8rem; border-radius: var(--r-btn); background: var(--sand); font-weight: 700; font-size: .88rem; color: var(--green); }

/* Restaurant: Mittag und Woche oben, Karten darunter */
.lunchweek { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.lw-card { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-xl); padding: clamp(1.4rem, 3vw, 2.2rem); position: relative; }
.lw-card::before { content: ""; position: absolute; inset: 8px; border: 1px solid rgba(110, 28, 43, .18); border-radius: calc(var(--r-xl) - 6px); pointer-events: none; }
.lw-head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; border-bottom: 2px solid var(--bordeaux); padding-bottom: .7rem; margin-bottom: 1rem; }
.lw-head h3 { margin: 0; font-size: clamp(1.6rem, 2.6vw, 2.1rem); }
.menu-tabs { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 8px; margin: 0 0 1.4rem; }
.menu-tabs .tab { border: 1.5px solid var(--line-strong); background: var(--paper); color: var(--green); padding: 1rem 1.1rem; font-size: 1rem; border-radius: var(--r-btn); }
.menu-tabs .tab.on { background: var(--green); color: var(--cream); border-color: var(--green); box-shadow: none; }
.menu-card.big { background: var(--paper); }
.menu-sec h3 { color: var(--bordeaux); }
.mi-dots { border-bottom-color: rgba(25, 63, 43, .3); }

/* Kegelbahn-Hinweis, taucht mehrfach auf */
.kegel-strip { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; justify-content: space-between; padding: 1rem 1.3rem; border-radius: var(--r-lg); background: var(--green); color: var(--cream); margin-top: 1.5rem; }
.kegel-strip .ic { width: 34px; height: 34px; color: var(--gold-soft); flex: none; }
.kegel-strip p { margin: 0; flex: 1; min-width: 220px; font-weight: 600; }
.kegel-strip a { color: #fff; font-weight: 700; white-space: nowrap; }

/* Über uns */
.about-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(2rem, 6vw, 5rem); align-items: center; }
.about-img { border-radius: var(--r-xl); overflow: hidden; box-shadow: var(--shadow-lg); border: 8px solid var(--paper); outline: 1px solid var(--line); }
.about-img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 2rem; }
.value { text-align: center; padding: 1.6rem 1.2rem; background: var(--paper); border-radius: var(--r-lg); border: 1px solid var(--line); }
.value .ic { width: 52px; height: 52px; padding: 12px; border-radius: 50%; background: var(--bordeaux); color: #fff8ec; margin: 0 auto .8rem; }
.value h3 { font-size: 1.45rem; margin-bottom: .3rem; }
.value p { margin: 0; color: var(--muted); font-size: .95rem; }
.timeline-note { font-size: .9rem; color: var(--muted); font-style: italic; }

/* Zierlinie im Stil alter Gasthaus-Karten */
.orn-rule { display: flex; align-items: center; gap: 1rem; color: var(--bordeaux); margin: 0 auto 1.6rem; max-width: 280px; }
.orn-rule::before, .orn-rule::after { content: ""; flex: 1; height: 1px; background: currentColor; opacity: .5; }

/* Karten und Kacheln: etwas ruhiger, klassischer */
.bezel { background: transparent; border: 0; padding: 0; }
.bezel > .core { border-radius: var(--r-xl); border: 1px solid var(--line); box-shadow: var(--shadow); }
.tile .core { border: 0; }
.tile .core::after { background: linear-gradient(180deg, rgba(16, 41, 28, 0) 25%, rgba(16, 41, 28, .55) 60%, rgba(16, 41, 28, .92) 100%); }
.tile-arrow { border-radius: var(--r-btn); }
.chips li { border-radius: var(--r-btn); }
.site-footer { background: var(--green-deep); }
.site-footer h4, .site-footer .fh { color: var(--gold-soft); }
.sticky-cta { border-radius: 14px; }
.facts strong { color: var(--bordeaux); }

/* ---------- Jahreszeiten ---------- */
body.season-spring { --orn: "✿"; }
body.season-summer { --orn: "☀"; }
body.season-autumn { --orn: "❦"; }
body.season-winter { --orn: "❄"; }
body.season-xmas { --orn: "✶"; }
.hero::after, .page-hero .page-hero-media::after { content: ""; position: absolute; top: 0; right: 0; width: min(420px, 45vw); height: min(300px, 32vw); pointer-events: none; z-index: 1; background-repeat: no-repeat; background-position: top right; background-size: contain; opacity: .95; }
.season-xmas .hero::after, .season-xmas .page-hero .page-hero-media::after { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 420 300'%3E%3Cg fill='none' stroke='%23234f36' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M420 20C330 40 250 80 170 160'/%3E%3Cpath d='M380 28l-14 26M350 36l-12 28M320 46l-10 28M290 58l-8 28M262 72l-6 28M236 88l-4 26M212 106l-2 24M190 126l0 22M400 22l18 18M372 30l20 18M344 40l22 16M316 52l22 14M288 66l22 12M262 82l20 10M238 98l20 8M214 116l18 8'/%3E%3C/g%3E%3Ccircle cx='300' cy='92' r='13' fill='%236e1c2b'/%3E%3Ccircle cx='300' cy='92' r='13' fill='none' stroke='%23ecdcb6' stroke-width='2'/%3E%3Cpath d='M300 70v9' stroke='%23ecdcb6' stroke-width='2'/%3E%3Ccircle cx='228' cy='132' r='10' fill='%23a8864a'/%3E%3Cpath d='M228 113v9' stroke='%23ecdcb6' stroke-width='2'/%3E%3Ccircle cx='366' cy='64' r='9' fill='%236e1c2b'/%3E%3Cpath d='M366 46v9' stroke='%23ecdcb6' stroke-width='2'/%3E%3Cpath d='M170 196l5 11 12 1-9 8 3 12-11-6-11 6 3-12-9-8 12-1z' fill='%23ecdcb6'/%3E%3C/svg%3E"); }
.season-spring .hero::after, .season-spring .page-hero .page-hero-media::after { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 420 300'%3E%3Cpath d='M420 10C340 30 280 70 210 150' fill='none' stroke='%2350402f' stroke-width='4' stroke-linecap='round'/%3E%3Cpath d='M330 40c-10 30-40 40-60 50M270 80c0 30-20 50-40 60' fill='none' stroke='%2350402f' stroke-width='3' stroke-linecap='round'/%3E%3Cg fill='%23f3c6cf'%3E%3Ccircle cx='360' cy='30' r='9'/%3E%3Ccircle cx='372' cy='42' r='9'/%3E%3Ccircle cx='356' cy='46' r='9'/%3E%3Ccircle cx='300' cy='64' r='10'/%3E%3Ccircle cx='312' cy='78' r='10'/%3E%3Ccircle cx='294' cy='80' r='9'/%3E%3Ccircle cx='250' cy='110' r='9'/%3E%3Ccircle cx='262' cy='122' r='9'/%3E%3Ccircle cx='230' cy='140' r='8'/%3E%3C/g%3E%3Cg fill='%23fff8ec'%3E%3Ccircle cx='364' cy='40' r='3'/%3E%3Ccircle cx='303' cy='74' r='3'/%3E%3Ccircle cx='254' cy='118' r='3'/%3E%3C/g%3E%3Cg fill='%237aa36a'%3E%3Cellipse cx='336' cy='60' rx='12' ry='5' transform='rotate(-30 336 60)'/%3E%3Cellipse cx='278' cy='100' rx='12' ry='5' transform='rotate(-50 278 100)'/%3E%3C/g%3E%3C/svg%3E"); }
.season-autumn .hero::after, .season-autumn .page-hero .page-hero-media::after { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 420 300'%3E%3Cpath d='M420 14C340 40 280 80 220 150' fill='none' stroke='%2350402f' stroke-width='4' stroke-linecap='round'/%3E%3Cg%3E%3Cpath d='M360 40c20-10 40 0 40 20-20 6-40-2-40-20z' fill='%23b4532a'/%3E%3Cpath d='M300 70c22-4 38 10 34 30-22 2-38-10-34-30z' fill='%236e1c2b'/%3E%3Cpath d='M330 60c-2 22-20 34-38 26 2-22 20-32 38-26z' fill='%23c98a2e'/%3E%3Cpath d='M250 110c22 2 34 18 26 36-22-2-34-18-26-36z' fill='%23a8864a'/%3E%3Cpath d='M270 100c-6 20-26 28-42 18 6-20 26-26 42-18z' fill='%23b4532a'/%3E%3C/g%3E%3Cg fill='%23c98a2e' opacity='.8'%3E%3Cpath d='M200 210c12-6 24 0 24 12-12 4-24-2-24-12z'/%3E%3Cpath d='M150 250c10 0 18 8 14 18-10 0-18-8-14-18z' fill='%236e1c2b'/%3E%3C/g%3E%3C/svg%3E"); }
.season-summer .hero::after, .season-summer .page-hero .page-hero-media::after { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 420 300'%3E%3Cg opacity='.85'%3E%3Ccircle cx='340' cy='70' r='34' fill='%23ecdcb6'/%3E%3Cg stroke='%23ecdcb6' stroke-width='4' stroke-linecap='round'%3E%3Cpath d='M340 14v14M340 112v14M284 70h14M382 70h14M300 30l10 10M370 100l10 10M300 110l10-10M370 40l10-10'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); }
.season-winter .hero::after, .season-winter .page-hero .page-hero-media::after { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 420 300'%3E%3Cg stroke='%23fff8ec' stroke-width='3' stroke-linecap='round' fill='none' opacity='.85'%3E%3Cpath d='M340 30v80M305 50l70 40M305 90l70-40M340 44l-8-8M340 44l8-8M340 96l-8 8M340 96l8 8'/%3E%3Cpath d='M250 110v44M231 121l38 22M231 143l38-22'/%3E%3C/g%3E%3C/svg%3E"); }
.snow { position: fixed; inset: 0; pointer-events: none; z-index: 150; background-image: radial-gradient(circle, rgba(255, 255, 255, .9) 1.5px, transparent 2px), radial-gradient(circle, rgba(255, 255, 255, .7) 1px, transparent 1.5px); background-size: 140px 140px, 90px 90px; background-position: 0 0, 40px 60px; animation: snowfall 18s linear infinite; opacity: .55; mask-image: linear-gradient(180deg, #000 0, #000 70vh, transparent 100vh); -webkit-mask-image: linear-gradient(180deg, #000 0, #000 70vh, transparent 100vh); }
@keyframes snowfall { to { background-position: 140px 1400px, 130px 960px; } }
.season-xmas .site-header::after { background: repeating-linear-gradient(90deg, var(--bordeaux) 0 18px, var(--green) 18px 36px); }
.season-xmas .tb-greet::before { content: "✶ "; }
@media (prefers-reduced-motion: reduce) { .snow { animation: none; } }

/* ---------- Responsive Kopf ---------- */
@media (max-width: 1580px) {
  .btn-h.green { display: none; }
}
@media (max-width: 1360px) {
  .main-nav a { padding: 0 .55rem; font-size: .93rem; }
  .main-nav a::after { left: .55rem; right: .55rem; }
  .btn-h { padding: 0 .85rem; }
}
@media (max-width: 1220px) {
  .main-nav { display: none; }
  .burger { display: block; }
  .hdr-actions { margin-left: auto; }
  .hdr-phone { display: grid; }
  .glance, .acts { grid-template-columns: 1fr 1fr; }
  .glance-col:last-child { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
  .tb-left { display: none; }
  .topbar-in { justify-content: center; }
  .hide-md { display: none !important; }
  .lunchweek, .about-grid { grid-template-columns: 1fr; }
  .values { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .hdr-in { min-height: 66px; gap: .6rem; width: calc(100% - 24px); }
  .brand-star { width: 40px; height: 40px; }
  .brand-name { font-size: 1.45rem; }
  .brand-sub { font-size: .55rem; letter-spacing: .12em; }
  .btn-h.red span { display: none; }
  .hdr-phone { display: none !important; }
  .bw-tabs button { flex-direction: column; gap: .2rem; min-height: 64px; line-height: 1.15; }
  .btn-h.red { width: 46px; justify-content: center; padding: 0; }
  .glance, .acts { grid-template-columns: 1fr; }
  .bw-tabs button { font-size: .95rem; padding: 0 .4rem; }
  .menu-inner { padding-top: 120px; }
  .hero::after, .page-hero .page-hero-media::after { width: 46vw; height: 34vw; }
}
.card-link { display: block; text-decoration: none; color: inherit; }
.card-link .core { transition: transform .4s var(--ease), box-shadow .4s var(--ease), border-color .3s; }
.card-link:hover .core { transform: translateY(-3px); border-color: var(--bordeaux); box-shadow: var(--shadow-lg); }
.site-header, .main-nav a { scroll-margin-top: 0; }
section[id], [id^="m"].tab-panel { scroll-margin-top: 100px; }

/* Schnellzugriff am rechten Rand: kommt beim Scrollen mit */
.side-cta { position: fixed; right: 0; top: 50%; transform: translateY(-50%); z-index: 95; display: flex; flex-direction: column; gap: 4px; }
.side-cta a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; width: 78px; min-height: 70px; padding: .55rem .3rem; background: var(--paper); color: var(--green); border: 1px solid var(--line-strong); border-right: 0; border-radius: var(--r-btn) 0 0 var(--r-btn); text-decoration: none; font: 700 .76rem/1.1 var(--sans); text-align: center; box-shadow: -6px 8px 20px -14px rgba(16, 41, 28, .6); transition: width .3s var(--ease), background .2s, color .2s; }
.side-cta a .ic { width: 24px; height: 24px; }
.side-cta a:hover { width: 88px; background: var(--green); color: var(--cream); }
.side-cta a.sc-red { background: var(--bordeaux); color: #fff8ec; border-color: var(--bordeaux); }
.side-cta a.sc-red:hover { background: var(--bordeaux-deep); }
.side-cta a.sc-green { background: var(--green); color: var(--cream); border-color: var(--green); }
body.menu-open .side-cta, .page-booking .side-cta .sc-red, .page-table .side-cta .sc-green { display: none; }
@media (max-width: 900px) { .side-cta { display: none; } }

/* Pop-up für Anlässe und Aktionen */
.popup { position: fixed; inset: 0; z-index: 400; display: grid; place-items: center; padding: 20px; background: rgba(10, 24, 16, .62); animation: fadeup .4s var(--ease); }
.popup[hidden] { display: none; }
.popup-card { position: relative; width: min(760px, 100%); max-height: calc(100svh - 40px); overflow: auto; background: var(--paper); border-radius: var(--r-xl); box-shadow: var(--shadow-lg); display: grid; grid-template-columns: 1fr; border-top: 6px solid var(--bordeaux); }
.popup-card:has(.popup-img) { grid-template-columns: 1fr 1.1fr; }
.popup-img img { width: 100%; height: 100%; object-fit: cover; min-height: 260px; }
.popup-body { padding: clamp(1.5rem, 4vw, 2.4rem); }
.popup-body h2 { font-size: clamp(1.9rem, 4vw, 2.6rem); }
.popup-body .lead { font-size: 1.08rem; }
.popup-price { font: 600 1.5rem/1.2 var(--serif); color: var(--bordeaux); margin: 1rem 0 0; }
.popup-x { position: absolute; top: 10px; right: 10px; width: 46px; height: 46px; border-radius: var(--r-btn); border: 0; background: var(--sand); color: var(--green); display: grid; place-items: center; cursor: pointer; z-index: 2; }
.popup-x .ic { width: 22px; height: 22px; }
@media (max-width: 680px) { .popup-card:has(.popup-img) { grid-template-columns: 1fr; } .popup-img img { min-height: 180px; max-height: 220px; } }

/* Regional, Barrierefreiheit, Team, Shop */
.regional { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.reg-item { padding: 1.5rem 1.3rem; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-lg); border-top: 4px solid var(--green); }
.reg-item .ic { width: 50px; height: 50px; padding: 12px; border-radius: 50%; background: var(--sand); color: var(--green); margin-bottom: .8rem; }
.reg-item h3 { font-size: 1.4rem; margin-bottom: .3rem; }
.reg-item p { margin: 0; font-size: .95rem; color: var(--muted); }
.access-note { display: flex; gap: 1rem; align-items: center; padding: 1rem 1.2rem; border-radius: var(--r-lg); background: var(--paper); border: 1px solid var(--line); margin-top: 1.5rem; }
.access-note .ic { width: 44px; height: 44px; padding: 9px; border-radius: 50%; background: var(--green); color: var(--cream); flex: none; }
.access-note p { margin: 0; }
.team { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1.2rem; }
.member { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-xl); overflow: hidden; text-align: center; }
.member-photo { aspect-ratio: 1 / 1; background: linear-gradient(160deg, var(--green), var(--green-deep)); display: grid; place-items: center; color: var(--gold-soft); font: 500 4rem/1 var(--serif); }
.member-photo img { width: 100%; height: 100%; object-fit: cover; }
.member-body { padding: 1.2rem 1.2rem 1.4rem; }
.member-body h3 { font-size: 1.5rem; margin: 0; }
.member-role { display: block; color: var(--bordeaux); font-weight: 700; font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; margin: .3rem 0 .7rem; }
.member-body p { margin: 0; font-size: .95rem; color: var(--muted); }
.shop-cats { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-bottom: 2rem; }
.shop-cats a { padding: .8rem 1.2rem; border-radius: var(--r-btn); background: var(--paper); border: 1.5px solid var(--line-strong); color: var(--green); font-weight: 700; text-decoration: none; }
.shop-cats a:hover { background: var(--green); color: var(--cream); }
.shop-sec + .shop-sec { margin-top: clamp(3rem, 6vw, 4.5rem); }
.diet { display: inline-grid; place-items: center; width: 24px; height: 24px; margin-left: .35rem; vertical-align: middle; border-radius: 50%; border: 1.3px solid currentColor; color: var(--green); }
.diet .ic { width: 15px; height: 15px; stroke-width: 1.7; }
.diet.d-scharf { color: #b4332a; } .diet.d-vegan, .diet.d-vegi { color: #3f7d3a; } .diet.d-fisch { color: #2a6a8a; } .diet.d-gf, .diet.d-lf { color: #8a5a1a; }
.diet-legend { display: flex; flex-wrap: wrap; gap: .6rem 1.2rem; margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--line); font-size: .88rem; color: var(--muted); }
.diet-legend span { display: inline-flex; align-items: center; gap: .1rem; }
.diet-legend .diet { margin: 0 .3rem 0 0; }
@media (max-width: 1000px) { .regional { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .regional { grid-template-columns: 1fr; } }

/* ---------- Logo: animiert ---------- */
.logo-anim { position: relative; display: inline-block; line-height: 0; }
.logo-anim img { width: 100%; height: auto; display: block; }
.logo-anim .la-base { clip-path: inset(0 50% 0 50%); animation: laOpen 1.6s var(--ease) .5s forwards; opacity: 0; }
.logo-anim .la-star { position: absolute; left: 32.52%; top: .12%; width: 33.83%; transform-origin: 50% 57%; animation: laStar 1.5s var(--ease) both, laFloat 6s ease-in-out 2s infinite; filter: drop-shadow(0 0 0 rgba(200, 160, 70, 0)); }
.logo-anim .la-star::after { content: ""; position: absolute; inset: 0; -webkit-mask: url(/assets/img/star.png) center / contain no-repeat; mask: url(/assets/img/star.png) center / contain no-repeat; background: linear-gradient(115deg, transparent 38%, rgba(255, 255, 255, .95) 50%, transparent 62%) no-repeat; background-size: 260% 100%; background-position: 130% 0; animation: laGlint 7s ease-in-out 2.2s infinite; }
.logo-anim.custom img { animation: laFade 1.2s var(--ease) both; }
@keyframes laOpen { 0% { clip-path: inset(0 50% 0 50%); opacity: 1; } 100% { clip-path: inset(0 0 0 0); opacity: 1; } }
@keyframes laStar { 0% { opacity: 0; transform: scale(.35) rotate(-120deg); } 65% { opacity: 1; transform: scale(1.08) rotate(8deg); } 100% { opacity: 1; transform: none; } }
@keyframes laFloat { 0%, 100% { transform: none; filter: drop-shadow(0 0 0 rgba(200, 160, 70, 0)); } 50% { transform: translateY(-2%) scale(1.03); filter: drop-shadow(0 0 10px rgba(214, 176, 92, .55)); } }
@keyframes laGlint { 0%, 70% { background-position: 130% 0; } 90%, 100% { background-position: -30% 0; } }
@keyframes laFade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .logo-anim .la-base, .logo-anim .la-star, .logo-anim .la-star::after { animation: none !important; opacity: 1; clip-path: none; } }

/* Kopf: Stern + Schriftzug aus dem Logo */
.brand-mark { position: relative; width: 50px; height: 46px; flex: none; }
.brand-mark img { width: 100%; height: 100%; object-fit: contain; animation: laStar 1.4s var(--ease) both; transition: transform .8s var(--ease); }
.brand:hover .brand-mark img { transform: rotate(45deg) scale(1.06); }
.brand-mark::after { content: ""; position: absolute; inset: 0; -webkit-mask: url(/assets/img/star.png) center / contain no-repeat; mask: url(/assets/img/star.png) center / contain no-repeat; background: linear-gradient(115deg, transparent 38%, rgba(255, 255, 255, .95) 50%, transparent 62%) no-repeat; background-size: 260% 100%; background-position: 130% 0; animation: laGlint 8s ease-in-out 3s infinite; }
.brand-words { display: flex; flex-direction: column; gap: 4px; }
.brand-words img { height: 26px; width: auto; display: block; align-self: flex-start; }
.brand-words small { font: 700 .58rem/1 var(--sans); letter-spacing: .26em; text-transform: uppercase; color: var(--bordeaux); }
.brand-custom img { height: 54px; width: auto; display: block; }
.home-logo { display: block; width: min(420px, 78vw); margin: 0 auto 2.4rem; }
.foot-logo { width: min(380px, 80vw); margin-bottom: 1.8rem; }
.hero-star { width: 74px; margin-bottom: 1.2rem; display: block; }
.hero-star img { width: 100%; animation: laStar 1.6s var(--ease) both, laFloat 6s ease-in-out 2s infinite; }
@media (max-width: 680px) { .brand-mark { width: 40px; height: 38px; } .brand-words img { height: 21px; } .brand-words small { font-size: .5rem; letter-spacing: .16em; } }
.js .reveal:not(.in) .logo-anim .la-base, .js .reveal:not(.in) .logo-anim .la-star, .js .reveal:not(.in) .logo-anim .la-star::after { animation-play-state: paused; }
.social .soc { display: inline-flex; align-items: center; padding: .45rem .8rem; border: 1px solid rgba(255, 255, 255, .22); border-radius: var(--r-btn); text-decoration: none; font-weight: 600; font-size: .88rem; }
.social .soc:hover { background: rgba(255, 255, 255, .08); }
.social { gap: .5rem; }
/* Pop-up Varianten */
.popup.pop-bubble, .popup.pop-top, .popup.pop-bottom { inset: auto; background: none; padding: 0; display: block; }
.popup.pop-bubble[hidden], .popup.pop-top[hidden], .popup.pop-bottom[hidden] { display: none; }
.popup.pop-bubble { right: 100px; bottom: 24px; width: min(380px, calc(100vw - 32px)); animation: bubbleIn .6s var(--ease) both; }
.popup.pop-bubble .popup-card { grid-template-columns: 1fr !important; border-radius: 18px 18px 4px 18px; box-shadow: 0 24px 50px -20px rgba(16, 41, 28, .6); }
.popup.pop-bubble .popup-img img { min-height: 140px; max-height: 170px; }
.popup.pop-bubble .popup-body { padding: 1.3rem 1.3rem 1.2rem; }
.popup.pop-bubble h2 { font-size: 1.7rem; padding-right: 2.5rem; }
.popup.pop-bubble .lead { font-size: 1rem; }
.popup.pop-bubble .checklist { display: none; }
.popup.pop-top, .popup.pop-bottom { left: 0; right: 0; }
.popup.pop-top { top: 0; animation: barTop .6s var(--ease) both; }
.popup.pop-bottom { bottom: 0; animation: barBottom .6s var(--ease) both; }
.popup.pop-top .popup-card, .popup.pop-bottom .popup-card { width: 100%; max-height: none; border-radius: 0; border-top: 0; grid-template-columns: 1fr !important; }
.popup.pop-top .popup-img, .popup.pop-bottom .popup-img, .popup.pop-top .checklist, .popup.pop-bottom .checklist, .popup.pop-top .lead, .popup.pop-bottom .lead { display: none; }
.popup.pop-top .popup-body, .popup.pop-bottom .popup-body { display: flex; align-items: center; gap: 1.2rem; flex-wrap: wrap; padding: .9rem 4.5rem .9rem 1.5rem; justify-content: center; }
.popup.pop-top h2, .popup.pop-bottom h2 { font-size: 1.4rem; margin: 0; }
.popup.pop-top .eyebrow, .popup.pop-bottom .eyebrow, .popup.pop-top .popup-price, .popup.pop-bottom .popup-price { margin: 0; }
.popup.pop-top .btn-row, .popup.pop-bottom .btn-row { margin: 0; }
.popup.pop-top .popup-x2, .popup.pop-bottom .popup-x2 { display: none; }
.popup.pop-top .popup-x, .popup.pop-bottom .popup-x { top: 50%; transform: translateY(-50%); }
.popup.look-dark .popup-card { background: var(--green-deep); color: var(--cream); }
.popup.look-dark h2, .popup.look-dark .popup-price { color: #fff; }
.popup.look-dark .lead, .popup.look-dark .checklist li { color: rgba(247, 241, 227, .9); }
.popup.look-dark .pill.ghost { --fg: var(--cream); border-color: rgba(255, 255, 255, .5); }
.popup.look-season .popup-card { background-repeat: no-repeat; background-position: top right; background-size: 180px auto; }
.season-xmas .popup.look-season .popup-card { border-top-color: var(--green); }
@keyframes bubbleIn { from { opacity: 0; transform: translateY(20px) scale(.95); } to { opacity: 1; transform: none; } }
@keyframes barTop { from { transform: translateY(-100%); } to { transform: none; } }
@keyframes barBottom { from { transform: translateY(100%); } to { transform: none; } }
@media (max-width: 900px) { .popup.pop-bubble { right: 16px; bottom: 80px; } }
.job-facts{display:flex;flex-wrap:wrap;gap:.4rem;margin:.3rem 0 1rem}.job-facts span{background:var(--cream-2,#f3ecdc);border:1px solid rgba(25,63,43,.15);border-radius:999px;padding:.2rem .75rem;font-size:.92rem;color:#193f2b}
.job h4{margin:1.1rem 0 .3rem;color:#6e1c2b;font-size:1.05rem}.job-list{margin:0 0 .5rem 1.1rem;padding:0}.job-list li{margin:.2rem 0}
.job .pill{margin-top:1rem;display:inline-flex}
.long-term{margin:.6rem 0 0;padding:.7rem .9rem;border-left:3px solid #6e1c2b;background:rgba(110,28,43,.05);border-radius:0 8px 8px 0;font-size:.98rem}.long-term .lt-link{display:inline-block;margin-top:.3rem;font-weight:700;color:#6e1c2b}
.slots .slot-group{width:100%;margin:0 0 .7rem}.slots .slot-h{display:block;font-weight:700;color:#6e1c2b;margin:0 0 .35rem;font-size:1rem}.slots .slot-row{display:flex;flex-wrap:wrap;gap:.45rem}
.allergy-q{border:2px solid rgba(110,28,43,.25);border-radius:14px;padding:1rem 1.1rem 1.1rem;margin:1rem 0 1.2rem;background:#fffaf3}
.allergy-q.invalid{border-color:#b42318;background:#fff3f2}
.allergy-q legend{font-weight:700;font-size:1.08rem;color:#193f2b;padding:0 .4rem}
.al-yn{display:flex;gap:.8rem;flex-wrap:wrap;margin:.3rem 0}.al-yn label{display:flex;align-items:center;gap:.5rem;border:1.5px solid rgba(25,63,43,.3);border-radius:10px;padding:.65rem 1.1rem;cursor:pointer;font-weight:600;background:#fff;min-width:9rem}
.al-yn label:has(input:checked){border-color:#193f2b;background:#193f2b;color:#fff}.al-yn input{width:1.2rem;height:1.2rem;accent-color:#c9a24a}
.al-detail{margin-top:.8rem}.al-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:.5rem;margin:.5rem 0 .9rem}
.al-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;border:1px solid rgba(25,63,43,.18);border-radius:10px;padding:.45rem .6rem;background:#fff}
.al-item.on{border-color:#6e1c2b;background:#fbeff1}.al-item label{display:flex;align-items:center;gap:.45rem;cursor:pointer;margin:0;font-weight:600}.al-item input{width:1.15rem;height:1.15rem;accent-color:#6e1c2b}
.al-item select{width:auto;min-width:5.6rem;padding:.35rem 1.9rem .35rem .55rem;margin:0;flex:0 0 auto}.al-item select:disabled{opacity:.35}
.al-err{color:#b42318;font-weight:700;margin:.5rem 0 0}
/* Karte im Fuss */
.foot-map{display:grid;grid-template-columns:1.6fr 1fr;gap:2rem;align-items:center;margin:3rem 0 0;padding:2rem 0 0;border-top:1px solid rgba(247,241,227,.12)}
.fm-frame{border-radius:16px;overflow:hidden;height:280px;background:#22382c;box-shadow:0 20px 40px -24px rgba(0,0,0,.6)}
.fm-frame iframe{width:100%;height:100%;border:0;display:block;filter:saturate(.85)}
.fm-txt h4{margin:0 0 .6rem}.fm-txt .btn-row{margin-top:1rem}
@media (max-width:900px){.foot-map{grid-template-columns:1fr}.fm-frame{height:220px}}
.tb-addr{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:.4rem}.tb-addr:hover{text-decoration:underline;text-underline-offset:3px;color:#fff}
/* Grössere Symbole (Rückmeldung: besser sichtbar) */
.side-cta a{width:86px;min-height:78px;font-size:.84rem}.side-cta a .ic{width:30px;height:30px}.side-cta a:hover{width:96px}
.bw-tabs button .ic{width:28px;height:28px}
.glance-list .ic{width:48px;height:48px;padding:11px}
.reg-item .ic{width:58px;height:58px;padding:14px}
.ic-round{width:62px;height:62px}.ic-round .ic{width:30px;height:30px}
.facts .ic{width:32px;height:32px}
.arrive .ic,.contact-list .ic{width:50px;height:50px}
/* Angebots-Symbole nicht mehr abgeschnitten */
.ocard-img{overflow:visible;z-index:2}.ocard-img img{border-radius:var(--r-xl) var(--r-xl) 0 0}.ocard:hover .ocard-img img{transform:none}
.ocard-ic{width:62px;height:62px;bottom:-28px;left:18px;z-index:3;box-shadow:0 0 0 5px var(--paper),0 8px 18px -8px rgba(0,0,0,.35)}.ocard-ic .ic{width:30px;height:30px}
.ocard-body{padding-top:2.4rem}
.menu-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.menu-tabs .tab{min-width:190px;text-align:center}
.menu-collapse{position:relative;max-height:560px;overflow:hidden;transition:max-height .6s var(--ease)}
.menu-collapse::after{content:"";position:absolute;left:0;right:0;bottom:0;height:150px;background:linear-gradient(rgba(255,252,245,0),var(--paper) 70%);pointer-events:none}
.menu-collapse .mc-more{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:2;white-space:nowrap}
.menu-collapse.open{max-height:none;padding-bottom:4.5rem}.menu-collapse.open::after{display:none}
.menu-collapse.short{max-height:none}.menu-collapse.short::after,.menu-collapse.short .mc-more{display:none}
.help-strip{flex-wrap:wrap;justify-content:space-between}.help-strip .hs-txt{flex:1 1 220px}.help-strip .hs-tel{white-space:nowrap;background:var(--green);color:var(--cream)!important;padding:.6rem 1.1rem;border-radius:var(--r-btn);text-decoration:none;font-size:1.05rem}
.section{padding:clamp(3.5rem,7vw,6.5rem) 0}
.page-about .section{padding:clamp(2.8rem,5.5vw,4.8rem) 0}
.fm-frame{background:#22382c url(/assets/img/ph-lake.svg) center/cover}
/* Jahreszeiten-Animation */
.season-fx{position:fixed;inset:0;pointer-events:none;z-index:140}
.season-toggle{position:fixed;left:14px;bottom:14px;z-index:141;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-strong);background:rgba(255,252,245,.92);color:var(--bordeaux);font-size:1.25rem;line-height:1;cursor:pointer;box-shadow:0 8px 20px -10px rgba(0,0,0,.35);transition:transform .3s}
.season-toggle:hover{transform:scale(1.08)}.season-toggle.is-off{opacity:.55;filter:grayscale(1)}
@media print{.season-fx,.season-toggle{display:none!important}}
/* Deko schwingt sanft über die Seite */
.hero::after,.page-hero .page-hero-media::after{animation:seasonSway 7s ease-in-out infinite alternate;transform-origin:100% 0}
@keyframes seasonSway{0%{transform:rotate(-2.5deg) translateY(0)}100%{transform:rotate(2.5deg) translateY(6px)}}
.season-summer .hero::before{content:"";position:absolute;right:-120px;top:-120px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(255,214,120,.45),rgba(255,214,120,0) 65%);animation:sunPulse 6s ease-in-out infinite alternate;pointer-events:none;z-index:1}
@keyframes sunPulse{from{transform:scale(.92)}to{transform:scale(1.08)}}
@media (max-width:600px){.al-grid{grid-template-columns:1fr 1fr;gap:.4rem}.al-item{flex-direction:column;align-items:stretch;gap:.3rem;padding:.45rem}.al-item select{width:100%}.al-yn label{min-width:0;flex:1}.al-yn{flex-wrap:nowrap}}

/* ===== Sternen-Linie: Markenzeichen zwischen Abschnitten ===== */
.star-line{display:flex;align-items:center;justify-content:center;gap:14px;max-width:520px;margin:0 auto 1.6rem;pointer-events:none}
.star-line .sl-l,.star-line .sl-r{flex:1;height:1.5px;background:linear-gradient(90deg,rgba(168,134,74,0),#a8864a);transition:transform 1.1s cubic-bezier(.2,.8,.2,1) .15s}
.star-line .sl-l{transform-origin:100% 50%}.star-line .sl-r{background:linear-gradient(90deg,#a8864a,rgba(168,134,74,0));transform-origin:0 50%}
.star-line .sl-star{width:34px;height:34px;flex:none;transition:opacity .6s,transform 1s cubic-bezier(.2,.8,.2,1)}
.js .star-line:not(.in) .sl-l,.js .star-line:not(.in) .sl-r{transform:scaleX(0)}.js .star-line:not(.in) .sl-star{opacity:0;transform:rotate(-90deg) scale(.4)}
.star-line .sl-star img{width:100%;height:100%;object-fit:contain}
.js .star-line.reveal{opacity:1;transform:none}
body.fx-no-line .star-line{display:none}
.band.dark .star-line .sl-l,.band.dark .star-line .sl-r{filter:brightness(1.3)}
/* Stern reagiert (Maus oder Finger) */
.hero-star{cursor:pointer;pointer-events:auto;transition:transform .5s cubic-bezier(.2,.8,.2,1);will-change:transform}
.hero-star.twinkle img{animation:starTwinkle .9s ease}
@keyframes starTwinkle{0%{transform:scale(1) rotate(0)}35%{transform:scale(1.18) rotate(18deg);filter:drop-shadow(0 0 14px rgba(255,220,140,.9))}100%{transform:scale(1) rotate(0)}}
.brand:hover .brand-mark img{animation:starTwinkle .9s ease}
/* Feine Hover- und Scroll-Effekte */
.pill,.btn-h,.tab,.slot{transition:background-color .25s ease,color .25s ease,border-color .25s ease,box-shadow .3s ease,transform .25s ease}
.pill:hover,.btn-h:hover{transform:translateY(-1px);box-shadow:0 10px 22px -14px rgba(16,41,28,.55)}
.ocard,.reg-item,.glance-col,.ev-card,.room-card .room-media,.team-card,.act,.value,.tile{transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease}
@media (hover:hover){.ocard:hover,.reg-item:hover,.ev-card:hover,.team-card:hover,.act:hover,.value:hover{transform:translateY(-3px);box-shadow:0 22px 40px -28px rgba(16,41,28,.55)}
.room-media img,.tile img,.team-card img,.gal-strip img{transition:transform 1.1s cubic-bezier(.2,.8,.2,1)}.room-card:hover .room-media img,.tile:hover img,.gal-strip a:hover img{transform:scale(1.04)}}
.js .reveal{transition:opacity .6s var(--ease),transform .7s var(--ease)}
@media (prefers-reduced-motion:reduce){.star-line .sl-l,.star-line .sl-r,.star-line .sl-star{transition:none;transform:none;opacity:1}.hero-star,.pill,.ocard{transition:none}}
/* ===== THEMEN-GEN START ===== */
/* ===== Themenwelten: Schmuck am Sternen-Stern (Hero und Kopfzeile) ===== */
.hero-star,.brand-mark{position:relative}
.hero-star::after,.brand-mark::after{content:none;position:absolute;aspect-ratio:1/1;background:center/contain no-repeat;pointer-events:none;z-index:2;animation:accIn .9s cubic-bezier(.2,.8,.2,1) .8s both}
@keyframes accIn{from{opacity:0;transform:translateY(-8px) scale(.6)}to{opacity:1;transform:none}}
body.fx-no-accessory .hero-star::after,body.fx-no-accessory .brand-mark::after{display:none}
.season-xmas .hero-star::after,.season-xmas .brand-mark::after{content:'';background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M8 44C10 26 24 10 44 11c9 1 14 9 12 19-3-6-9-8-13-5-4 4-3 12 1 17z' fill='%23a8232f'/%3E%3Cpath d='M14 30c6-10 16-16 28-16' stroke='%23c43a44' stroke-width='3' fill='none' stroke-linecap='round'/%3E%3Crect x='4' y='40' width='44' height='12' rx='6' fill='%23fff8ec'/%3E%3Ccircle cx='56' cy='31' r='6.5' fill='%23fff8ec'/%3E%3C/svg%3E");right:-28%;top:-36%;width:70%}
.season-winter .hero-star::after,.season-winter .brand-mark::after{content:'';background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 40'%3E%3Cpath d='M4 30C8 16 20 12 30 18c8-8 22-6 28 4 4 6 2 10-2 10-6-4-12-2-16 0-6-4-12-4-18 0-6-2-12-2-18-2z' fill='%23ffffff'/%3E%3Cg fill='%23dfe9f2'%3E%3Ccircle cx='20' cy='26' r='2'/%3E%3Ccircle cx='40' cy='24' r='2'/%3E%3C/g%3E%3C/svg%3E");left:12%;top:-14%;width:76%}
.season-autumn .hero-star::after,.season-autumn .brand-mark::after{content:'';background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M8 56C8 30 26 10 56 8c0 30-18 48-48 48z' fill='%23c8642a'/%3E%3Cpath d='M8 56L46 18M22 42l-2-12M30 34l10 2M34 30l-2-10' stroke='%237a3a14' stroke-width='2.2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");right:-22%;top:-18%;width:48%}
.season-spring .hero-star::after,.season-spring .brand-mark::after{content:'';background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='%23f2b9c6'%3E%3Ccircle cx='32' cy='16' r='11'/%3E%3Ccircle cx='47' cy='27' r='11'/%3E%3Ccircle cx='41' cy='45' r='11'/%3E%3Ccircle cx='23' cy='45' r='11'/%3E%3Ccircle cx='17' cy='27' r='11'/%3E%3C/g%3E%3Ccircle cx='32' cy='32' r='7' fill='%23e8b94a'/%3E%3C/svg%3E");right:-20%;top:-16%;width:46%}
.season-easter .hero-star::after,.season-easter .brand-mark::after{content:'';background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cellipse cx='32' cy='36' rx='18' ry='23' fill='%23f6e2b3'/%3E%3Cpath d='M15 30c6 4 11-4 17 0s11-4 17 0' stroke='%236e1c2b' stroke-width='3' fill='none'/%3E%3Cpath d='M14 42c6 4 12-4 18 0s12-4 18 0' stroke='%23193f2b' stroke-width='3' fill='none'/%3E%3Ccircle cx='32' cy='52' r='2.5' fill='%23c8642a'/%3E%3C/svg%3E");right:-26%;top:-10%;width:44%}
.season-mother .hero-star::after,.season-mother .brand-mark::after{content:'';background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M32 60V34' stroke='%23395f3b' stroke-width='3'/%3E%3Cpath d='M32 46c-8-2-12-8-12-14 8 0 12 6 12 14z' fill='%236b8a4e'/%3E%3Cpath d='M20 12c4 6 8 6 12 0 4 6 8 6 12 0 4 14-2 24-12 24S16 26 20 12z' fill='%23d9566c'/%3E%3C/svg%3E");right:-24%;top:-14%;width:46%}
.season-valentine .hero-star::after,.season-valentine .brand-mark::after{content:'';background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M32 56C10 42 4 28 12 18c6-7 15-6 20 2 5-8 14-9 20-2 8 10 2 24-20 38z' fill='%23a8232f'/%3E%3Cpath d='M20 22c2-3 5-4 8-3' stroke='%23ffffff' stroke-opacity='.6' stroke-width='3' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");right:-22%;top:-12%;width:44%}
.season-fasnacht .hero-star::after,.season-fasnacht .brand-mark::after{content:'';background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 48'%3E%3Cpath d='M50 18C54 8 62 2 62 2c-1 9-5 15-10 19z' fill='%23e8c46a'/%3E%3Cpath d='M4 22c8-9 20-8 28 0 8-8 20-9 28 0 0 16-14 20-22 11-3-3-9-3-12 0C18 42 4 38 4 22z' fill='%236e1c2b'/%3E%3Cellipse cx='18' cy='25' rx='6' ry='4' fill='%23fff8ec'/%3E%3Cellipse cx='46' cy='25' rx='6' ry='4' fill='%23fff8ec'/%3E%3Cg fill='%23e8c46a'%3E%3Ccircle cx='10' cy='18' r='1.8'/%3E%3Ccircle cx='32' cy='16' r='1.8'/%3E%3Ccircle cx='54' cy='18' r='1.8'/%3E%3C/g%3E%3C/svg%3E");left:8%;top:30%;width:84%}
.season-silvester .hero-star::after,.season-silvester .brand-mark::after{content:'';background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='%23e8c46a'%3E%3Cpath d='M20 4l3 10 10 3-10 3-3 10-3-10-10-3 10-3z'/%3E%3Cpath d='M46 22l2 7 7 2-7 2-2 7-2-7-7-2 7-2z'/%3E%3Cpath d='M24 40l2 6 6 2-6 2-2 6-2-6-6-2 6-2z'/%3E%3C/g%3E%3C/svg%3E");right:-30%;top:-26%;width:56%}
.season-summer .hero-star::before{content:'';position:absolute;inset:-45%;border-radius:50%;background:radial-gradient(circle,rgba(255,214,120,.55),rgba(255,214,120,0) 62%);animation:sunPulse 5s ease-in-out infinite alternate;z-index:-1;pointer-events:none}
.season-valentine .hero::after,.season-valentine .page-hero .page-hero-media::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 420 300'%3E%3Cpath d='M420 20C330 40 270 90 230 170' fill='none' stroke='%2350402f' stroke-width='4' stroke-linecap='round'/%3E%3Cpath d='M300 70c-8-10-24-2-16 12l16 14 16-14c8-14-8-22-16-12z' fill='%23a8232f'/%3E%3Cpath d='M250 128c-6-8-18-2-12 9l12 11 12-11c6-11-6-17-12-9z' fill='%23c43a44'/%3E%3Cpath d='M360 44c-5-7-15-2-10 8l10 9 10-9c5-10-5-15-10-8z' fill='%23e07a8a'/%3E%3Cg fill='%237a9a5a'%3E%3Cellipse cx='275' cy='100' rx='12' ry='5' transform='rotate(-35 275 100)'/%3E%3Cellipse cx='335' cy='58' rx='12' ry='5' transform='rotate(-20 335 58)'/%3E%3C/g%3E%3C/svg%3E")}
.season-fasnacht .hero::after,.season-fasnacht .page-hero .page-hero-media::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 420 300'%3E%3Cg fill='none' stroke-width='4' stroke-linecap='round'%3E%3Cpath d='M420 30c-40 10-30 40-70 44s-30 40-70 40' stroke='%23e8c46a'/%3E%3Cpath d='M420 70c-50 0-40 34-84 38s-36 36-80 34' stroke='%23a8232f'/%3E%3Cpath d='M410 10c-30 30-70 10-90 40' stroke='%2383b3d9'/%3E%3C/g%3E%3Cg%3E%3Crect x='300' y='150' width='8' height='8' fill='%23e8c46a' transform='rotate(20 300 150)'/%3E%3Crect x='250' y='190' width='8' height='8' fill='%23a8232f' transform='rotate(-30 250 190)'/%3E%3Ccircle cx='350' cy='190' r='4' fill='%2383b3d9'/%3E%3Ccircle cx='280' cy='230' r='4' fill='%23e8c46a'/%3E%3Crect x='380' y='140' width='7' height='7' fill='%237a9a5a'/%3E%3C/g%3E%3C/svg%3E")}
.season-silvester .hero::after,.season-silvester .page-hero .page-hero-media::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 420 300'%3E%3Cg stroke='%23e8c46a' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M330 80v-30M330 80l22-20M330 80l30 0M330 80l22 22M330 80v30M330 80l-22 22M330 80l-30 0M330 80l-22-20'/%3E%3C/g%3E%3Cg stroke='%23f2b9c6' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M240 140v-20M240 140l14-14M240 140h20M240 140l14 14M240 140v20M240 140l-14 14M240 140h-20M240 140l-14-14'/%3E%3C/g%3E%3Cg fill='%23fff3d6'%3E%3Ccircle cx='380' cy='170' r='3'/%3E%3Ccircle cx='290' cy='60' r='2.5'/%3E%3Ccircle cx='200' cy='90' r='2'/%3E%3C/g%3E%3C/svg%3E")}
.season-easter .hero::after,.season-easter .page-hero .page-hero-media::after,.season-mother .hero::after,.season-mother .page-hero .page-hero-media::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 420 300'%3E%3Cpath d='M420 10C340 30 280 70 210 150' fill='none' stroke='%2350402f' stroke-width='4' stroke-linecap='round'/%3E%3Cpath d='M330 40c-10 30-40 40-60 50M270 80c0 30-20 50-40 60' fill='none' stroke='%2350402f' stroke-width='3' stroke-linecap='round'/%3E%3Cg fill='%23f3c6cf'%3E%3Ccircle cx='360' cy='30' r='9'/%3E%3Ccircle cx='372' cy='42' r='9'/%3E%3Ccircle cx='356' cy='46' r='9'/%3E%3Ccircle cx='300' cy='64' r='10'/%3E%3Ccircle cx='312' cy='78' r='10'/%3E%3Ccircle cx='294' cy='80' r='9'/%3E%3Ccircle cx='250' cy='110' r='9'/%3E%3Ccircle cx='262' cy='122' r='9'/%3E%3Ccircle cx='230' cy='140' r='8'/%3E%3C/g%3E%3Cg fill='%23fff8ec'%3E%3Ccircle cx='364' cy='40' r='3'/%3E%3Ccircle cx='303' cy='74' r='3'/%3E%3Ccircle cx='254' cy='118' r='3'/%3E%3C/g%3E%3Cg fill='%237aa36a'%3E%3Cellipse cx='336' cy='60' rx='12' ry='5' transform='rotate(-30 336 60)'/%3E%3Cellipse cx='278' cy='100' rx='12' ry='5' transform='rotate(-50 278 100)'/%3E%3C/g%3E%3C/svg%3E")}
body.fx-no-hero .hero::after,body.fx-no-hero .page-hero .page-hero-media::after{display:none}
.season-winter .hero-media::after,.season-xmas .hero-media::after{content:'';position:absolute;left:0;right:0;bottom:0;height:46px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 60' preserveAspectRatio='none'%3E%3Cpath d='M0 40C120 20 220 30 330 38s220-24 340-18 220 30 330 20 150-18 200-14V60H0z' fill='%23ffffff' fill-opacity='.9'/%3E%3C/svg%3E") bottom/100% 100% no-repeat;pointer-events:none;z-index:1}
body.fx-no-hero .hero-media::after{display:none}
.season-xmas .hero-shade::after{content:'';position:absolute;inset:0;background:radial-gradient(55% 45% at 18% 95%,rgba(255,190,110,.22),transparent 70%);pointer-events:none}
/* ===== THEMEN-GEN END ===== */
/* ===== Handy-Feinschliff ===== */
@media (max-width:900px){
  .season-toggle{left:auto;right:12px;bottom:calc(84px + env(safe-area-inset-bottom));width:40px;height:40px;font-size:1.1rem;opacity:.85}
  .page-booking .season-toggle,.page-table .season-toggle{bottom:14px}
  .nl-row{flex-wrap:wrap}.nl-row input{flex:1 1 100%;min-width:0}.nl-row .pill{flex:1 1 100%;justify-content:center}
  .foot-logo{width:min(300px,78vw)}
  .star-line{margin-bottom:1.1rem;max-width:300px}.star-line .sl-star{width:28px;height:28px}
  .section{padding:clamp(2.8rem,9vw,4rem) 0}
  .page-about .section{padding:2.6rem 0}
  .hero-star{width:58px}
  .site-footer{padding-bottom:calc(84px + env(safe-area-inset-bottom))}
  .page-booking .site-footer,.page-table .site-footer{padding-bottom:1.5rem}
}
@media (max-width:420px){.pill{padding-inline:1.05rem}.btn-row{gap:.5rem}}
.m-hidden{display:none!important}
.m-more{display:block;width:100%;margin:.6rem 0 0;padding:.75rem 1rem;border:1.5px solid var(--line-strong);border-radius:var(--r-btn);background:var(--paper);color:var(--green);font:700 1rem var(--sans);cursor:pointer}
@media (max-width:900px){
  .sticky-cta .pill{min-width:0;padding:.75rem .7rem;font-size:.95rem;gap:.4rem}.sticky-cta .pill > i{display:none}.sticky-cta .pill span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sticky-cta .sc-phone{flex:0 0 52px}
}
.page-hero-bg{filter:brightness(.78)}
@media (max-width:900px){
  body:not(.sticky-on) .season-toggle{display:none}
  .page-hero-bg{filter:brightness(.55) saturate(.9)}
  .sticky-cta .pill span{display:inline-flex;align-items:center;gap:.35rem}.sticky-cta .pill span .ic{width:18px;height:18px}
}
@media (max-width:760px){
  .menu-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px}.menu-tabs .tab{min-width:0;padding:.85rem .5rem;font-size:.95rem}
  .card-grid{grid-template-columns:1fr 1fr!important;gap:10px}.card-grid .info-card .core.pad{padding:1rem}.card-grid .info-card p{display:none}.card-grid .info-card h3{font-size:1.15rem;margin:.5rem 0}.card-grid .ic-round{width:48px;height:48px;margin-bottom:.4rem}
  .regional{gap:10px}.reg-item{padding:1.1rem}
}
@media (max-width:760px){
  .team{grid-template-columns:1fr 1fr;gap:10px}.member-photo{font-size:2.4rem}.member-body{padding:.8rem .7rem 1rem}.member-body h3{font-size:1.1rem}.member-body p{font-size:.88rem;line-height:1.45}
  .values{grid-template-columns:1fr;gap:8px}.value{display:flex;align-items:center;gap:.9rem;text-align:left;padding:1rem}.value .ic{margin:0;width:44px;height:44px;padding:10px;flex:none}.value h3{margin:0 0 .2rem;font-size:1.15rem}
}
.member:hover .member-photo img{transform:scale(1.04)}.member-photo img{transition:transform 1s cubic-bezier(.2,.8,.2,1)}
.fm-frame{position:relative}
.fm-consent{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:18px;text-align:center;background:rgba(20,40,30,.55)}
.fm-consent p{margin:0;color:#fff;font-size:.86rem;max-width:30ch;line-height:1.4}
.extras-box{border:1px solid rgba(25,63,43,.18);border-radius:12px;padding:12px 14px;margin:14px 0}
.extras-box legend{padding:0 6px;font-weight:600;color:#193f2b}
.chk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 14px}
.chk-grid .chk{display:flex;gap:10px;align-items:flex-start;font-size:1rem;color:#14213d;cursor:pointer}
.chk-grid .chk input{width:22px;height:22px;flex:0 0 22px;margin-top:1px;accent-color:#193f2b}

/* Hinweis-Band (ersetzt das grosse Pop-up) */
.site-band{background:var(--gold-soft,#e8d9a8);color:#1d2a20;border-bottom:1px solid rgba(0,0,0,.08);position:relative;z-index:61}
.sb-in{display:flex;align-items:center;gap:.8rem;padding:.6rem 0;min-height:48px;flex-wrap:wrap}
.sb-in p{margin:0;flex:1 1 260px;font-size:1rem;line-height:1.4;color:#1d2a20}
.sb-in b{font-weight:700}
.sb-star .ic{width:20px;height:20px;color:var(--bordeaux)}
.sb-link{font-weight:700;color:#1d2a20;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.sb-x{border:0;background:rgba(255,255,255,.55);width:40px;height:40px;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:#1d2a20;flex:0 0 auto}
.sb-x .ic{width:18px;height:18px}
@media (max-width:680px){.sb-in{gap:.5rem}.sb-txt{display:none}.sb-star{display:none}.sb-in p{flex-basis:calc(100% - 56px)}}
/* Startseite neu: Vorteile, Knöpfe im Startbild, Gastgeber */
.hero-ctas{margin-top:1.2rem;opacity:0;animation:fadeup 1s var(--ease) .85s forwards}
.adv-sec{background:var(--paper);border-bottom:1px solid var(--line)}
.adv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.adv{display:flex;gap:.8rem;align-items:flex-start;padding:1.4rem 1rem}
.adv+.adv{border-left:1px solid var(--line)}
.adv .ic{width:30px;height:30px;flex:0 0 30px;color:var(--bordeaux)}
.adv b{display:block;font-size:1.05rem;color:var(--ink,#1d2a20);margin-bottom:.2rem}
.adv span{display:block;font-size:.95rem;line-height:1.45;color:var(--muted)}
.bento-sec .sec-head{margin-bottom:1.6rem}
.hosts-img{width:100%;height:100%;min-height:320px;max-height:460px;object-fit:cover;display:block}
@media (max-width:980px){.adv-grid{grid-template-columns:1fr 1fr}.adv:nth-child(3){border-left:0}.adv:nth-child(n+3){border-top:1px solid var(--line)}}
@media (max-width:560px){.adv{padding:1rem .4rem;gap:.6rem}.adv .ic{width:26px;height:26px;flex-basis:26px}.adv span{font-size:.88rem}.bento.b3{grid-auto-rows:minmax(260px,auto)}.hosts-img{min-height:220px}.hero-ctas .pill{flex:1 1 100%;justify-content:center}}
@media (max-width:680px){.hero .hero-widget{display:none}.adv-grid{grid-template-columns:1fr}.adv+.adv{border-left:0;border-top:1px solid var(--line)}.adv{padding:.85rem .2rem}}
@media (min-width:681px) and (max-width:1100px){.hero{min-height:auto}.hero-inner{padding-top:clamp(6rem,14vw,9rem)}}
/* Bildstreifen: vertikales Scrollen nie abfangen (Maus und Handy) */
.strip{overflow-y:hidden;overscroll-behavior-x:contain;touch-action:pan-x pan-y}
/* Abstände kompakter, Seite kürzer */
.section{padding:clamp(2.8rem,5.2vw,4.6rem) 0}
.sec-head{margin-bottom:clamp(1.4rem,2.8vw,2.4rem)}
.sec-row{margin-bottom:clamp(1.4rem,2.8vw,2.2rem)}
.sec-row .sec-head{margin-bottom:0}
/* Logo-Intro (Startseite, einmal pro Besuch) */
html.intro-on{overflow:hidden}
.intro-c{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:var(--green-deep,#10291c);transition:background-color .9s ease,opacity .7s ease,visibility .7s}
.intro-c.fly{background-color:rgba(16,41,28,0)}
.intro-c.fly .ic-base{transition:opacity .5s ease;opacity:0!important}
.intro-c.gone{opacity:0;visibility:hidden;pointer-events:none}
.ic-logo{position:relative;width:min(560px,80vw);aspect-ratio:900/632}
.ic-base{position:absolute;inset:0;width:100%;height:100%;opacity:0}
.ic-star{position:absolute;left:49.6%;top:26.5%;width:33%;transform:translate(-50%,-50%);opacity:0;z-index:2;filter:drop-shadow(0 0 18px rgba(232,196,106,.55))}
.ic-spark{position:fixed;border-radius:50%;background:radial-gradient(circle,#fff6d6 0,#e8c46a 45%,rgba(232,196,106,0) 72%);transform:translate(-50%,-50%);pointer-events:none;animation:icSpark .7s ease-out forwards;z-index:1}
@keyframes icSpark{to{opacity:0;transform:translate(-50%,-50%) scale(.2)}}
.ic-skip{position:absolute;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));border:1px solid rgba(255,255,255,.35);background:transparent;color:#f7f1e3;font:inherit;font-size:.95rem;padding:.55rem 1rem;border-radius:999px;cursor:pointer}
.intro-c.fly .ic-skip{opacity:0}
html.intro-on .brand-mark img{opacity:0}
html.intro-on .hero-title .w,html.intro-on .hero-sub,html.intro-on .hero-ctas,html.intro-on .hero-widget{animation-play-state:paused}
.brand-mark{transition:transform .3s}
.brand-mark.star-arrive img{animation:starArrive 1.1s cubic-bezier(.2,.8,.2,1)}
@keyframes starArrive{0%{transform:scale(1.35);filter:drop-shadow(0 0 14px rgba(232,196,106,.9))}100%{transform:scale(1);filter:none}}
/* Footer kompakt und aufgeräumt */
.site-footer{padding-top:clamp(2.2rem,4vw,3.2rem)}
.foot-top{grid-template-columns:auto minmax(280px,440px);justify-content:space-between;align-items:center;gap:1.5rem 3rem;padding-bottom:1.6rem}
.foot-logo{display:block;width:min(220px,60vw);margin:0}
.foot-top .newsletter p{display:none}
.foot-top .newsletter .eyebrow{margin-bottom:.5rem;display:block}
.foot-grid{padding:1.6rem 0;gap:1.5rem clamp(1.5rem,4vw,3rem)}
.foot-grid p{margin:0 0 .6rem;line-height:1.5}
.site-footer h4,.site-footer .fh{margin-bottom:.6rem;font-size:1rem}
.site-footer .hours th,.site-footer .hours td{padding-top:.28rem;padding-bottom:.28rem;font-size:.86rem}
.foot-links li{margin-bottom:.32rem}
.foot-route{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;padding:1.1rem 0;border-top:1px solid rgba(255,255,255,.1)}
.foot-route .small{flex:1 1 260px}
.foot-map{margin-top:1rem;padding-top:1.4rem}
.fm-frame{height:220px}
.foot-bottom{padding:1rem 0 1.4rem}
@media (max-width:900px){.foot-top{grid-template-columns:1fr}.foot-grid{grid-template-columns:1fr 1fr}.foot-grid>div:last-child{grid-column:span 2}}
@media (max-width:560px){.foot-grid{grid-template-columns:1fr}.foot-grid>div:last-child{grid-column:auto}.foot-logo{width:170px}}
.seo-grid{columns:auto;display:grid;grid-template-columns:1fr 1fr;gap:.4rem 2.5rem}
.seo-grid h3{font-size:1.25rem;margin:.6rem 0 .3rem}
.seo-grid p{font-size:.95rem;line-height:1.6;margin:0}
.seo-sec{padding-top:clamp(2rem,4vw,3rem)}
@media (max-width:760px){.seo-grid{grid-template-columns:1fr}}
h2.h3{font-size:clamp(1.4rem,2.4vw,1.8rem);margin:1.2rem 0 .5rem}
/* Ansicht im Stempel-iPad: nur das Formular */
.in-kiosk .topbar,.in-kiosk .site-band,.in-kiosk .announce,.in-kiosk .side-cta,.in-kiosk .sticky-cta,.in-kiosk .site-footer,.in-kiosk .main-nav,.in-kiosk .hdr-actions,.in-kiosk .season-toggle,.in-kiosk .season-fx,.in-kiosk .popup{display:none!important}
.in-kiosk .site-header{position:static}.in-kiosk .brand{pointer-events:none}
/* Keine Zier-Symbole vor Überschriften */
.eyebrow::before{content:none!important;display:none!important}
.sb-star{display:none!important}
.foot-top .newsletter p{display:block;margin:.2rem 0 .7rem;font-size:.95rem;color:rgba(245,239,226,.85);max-width:46ch}
.orn-rule span,.ornament{display:none!important}
/* Karten immer bündig: gleiche Bildhöhe, Titel auf einer Linie, Preis und Knöpfe unten auf einer Linie */
.ocard-img{aspect-ratio:16/10;height:auto;min-height:0}
.ocard-img img{position:absolute;inset:0;width:100%;height:100%}
.ocard-foot{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:.7rem}
.ocard-foot .btn-row{display:flex;flex-wrap:nowrap;gap:.5rem;margin:0}
.ocard-foot .btn-row .pill{flex:1 1 0;min-width:0;justify-content:center;white-space:normal;text-align:center}
.ocard-foot .oprice{min-height:2.6em;display:flex;flex-direction:column;justify-content:flex-end}
.tabs.menu-tabs{margin-left:auto!important;margin-right:auto!important;width:max-content;max-width:100%;justify-content:center}
/* «Mehr erfahren» in Kachelreihen immer auf einer Linie */
.info-card{display:flex}.info-card>.core{display:flex;flex-direction:column;width:100%}
.info-card>.core>.textlink,.info-card>.core .textlink:last-child{margin-top:auto!important;align-self:flex-start}
.info-card>.core p{margin-bottom:1rem}
/* Legende der Symbole: mittig, Symbol und Text auf einer Höhe */
.diet-legend{justify-content:center;align-items:center;text-align:center;margin:0 0 1.6rem;padding:0 0 1rem;border-top:0;border-bottom:1px solid var(--line);gap:.5rem 1.1rem;color:#33443a;font-size:.9rem}
.diet-legend b{width:100%;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--bordeaux)}
.diet-legend span{display:inline-flex;align-items:center;gap:.35rem;line-height:1}
.diet-legend em{font-style:normal}
.diet-legend .diet{margin:0}
.diet.d-nuss{color:#8a5a1a}
.menu-collapse.half{max-height:560px}
/* Mehr Breite nutzen */
:root{--wrap:1360px}
.wrap.narrow{width:min(1000px,100% - clamp(32px,6vw,96px))}
.wrap{width:min(var(--wrap),100% - clamp(32px,6vw,96px))}
.split-2{gap:clamp(1.6rem,4vw,4rem)}
/* Anfrageformular: klare Blöcke, Auswahl als Kacheln, gewählt = rot */
.inquiry-form .seg{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;padding:0;background:none}
.inquiry-form .seg span{background:#fff;border:1.5px solid var(--line-strong,#d8cfbd);border-radius:12px;color:var(--ink,#1d2a20);padding:.85rem .6rem;font-size:.95rem}
.inquiry-form .seg input:checked+span{background:var(--bordeaux);border-color:var(--bordeaux);color:#fff;box-shadow:0 6px 16px -8px rgba(110,28,43,.6)}
.form-block{border:1px solid var(--line);border-radius:16px;background:#fff;padding:1.1rem 1.2rem 1.2rem;margin:1.1rem 0}
fieldset.form-block{min-inline-size:0}
.form-block .fb-title,.form-block>legend.fb-title{float:left;width:100%;padding:0;margin:0 0 .8rem;font:600 1.15rem/1.3 var(--serif);color:var(--green)}
.form-block>legend.fb-title+*{clear:both}
.allergy-q.form-block{background:#fff;border:1px solid var(--line);border-left:4px solid var(--bordeaux)}
.allergy-q.invalid{border-color:#b42318}
.al-yn{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:520px}
.al-yn label{justify-content:center;min-height:56px;border:1.5px solid var(--line-strong,#d8cfbd);border-radius:12px;background:#fff;font-size:1.02rem}
.al-yn input{position:absolute;opacity:0;pointer-events:none}
.al-yn label:has(input:checked){background:var(--bordeaux);border-color:var(--bordeaux);color:#fff}
.al-detail .al-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.al-item{border-radius:12px;padding:.5rem .6rem;min-height:52px}
.al-item.on{border-color:var(--bordeaux);background:#fbeff1}
.xopt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;clear:both}
.xopt{position:relative;cursor:pointer;margin:0!important}
.xopt input{position:absolute;opacity:0;pointer-events:none}
.xopt span{display:flex;flex-direction:column;justify-content:center;gap:.2rem;height:100%;min-height:64px;border:1.5px solid var(--line-strong,#d8cfbd);border-radius:12px;padding:.7rem .9rem;background:#fff;transition:background .2s,border-color .2s}
.xopt b{font-weight:600;color:var(--ink,#1d2a20)}.xopt small{color:#4a5a50;font-size:.86rem}
.xopt input:checked+span{background:var(--bordeaux);border-color:var(--bordeaux)}
.xopt input:checked+span b,.xopt input:checked+span small{color:#fff}
.xopt input:focus-visible+span,.al-yn input:focus-visible+span{outline:2px solid var(--gold)}
/* Personen-Auswahl */
.pp{position:relative}
.pp-btn{width:100%;text-align:left;cursor:pointer}
.pp-pop{position:absolute;z-index:30;top:calc(100% + 6px);left:0;width:min(360px,86vw);background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 40px -18px rgba(16,41,28,.45);padding:12px}
.pp-pop[hidden]{display:none}
.pp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.pp-grid button{height:48px;border-radius:10px;border:1px solid var(--line);background:#faf7f0;font:600 1.05rem/1 inherit;color:var(--ink,#1d2a20);cursor:pointer}
.pp-grid button.on,.pp-grid button:hover{background:var(--bordeaux);border-color:var(--bordeaux);color:#fff}
.pp-nav{display:flex;justify-content:space-between;gap:8px;margin-top:8px}
.pp-nav button{flex:1;height:44px;border-radius:10px;border:1px solid var(--line);background:#fff;font-weight:700;cursor:pointer;color:var(--green)}
.pp-nav button.more{background:var(--green);color:#fff;border-color:var(--green)}
.pp-exact{display:flex;gap:6px;margin-top:8px}.pp-exact input{flex:1;margin:0}
@media (min-width:900px){.inquiry-form .grid3{grid-template-columns:repeat(3,1fr)}.inquiry-form .grid2{grid-template-columns:repeat(2,1fr)}}
.pp-btn{display:block;width:100%;min-height:54px;margin-top:.4rem;padding:14.4px 16px;border-radius:14px;border:1px solid rgba(25,63,43,.26);background:#f7f1e3;font:500 16.8px/1.4 inherit;color:#1b241e;text-align:left;cursor:pointer;letter-spacing:0;text-transform:none}
.pp-btn::after{content:"▾";float:right;color:#4a5a50}
.inquiry-form .seg{grid-template-columns:repeat(auto-fit,minmax(128px,1fr))}
.al-detail .al-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.al-item label{white-space:nowrap}
/* Zeiten in die Breite: Mittag und Abend je eine Zeile, Zeiten nebeneinander */
#slots.slots{display:block}
.slots .slot-group{margin:0 0 1rem}
.slots .slot-row{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.slots .slot{padding:.85rem .4rem}
/* Anlass-Kacheln wie bei Banketten */
.occ-seg{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;padding:0;background:none;margin:0}
.occ-seg span{background:#fff;border:1.5px solid var(--line-strong,#d8cfbd);border-radius:12px;color:var(--ink,#1d2a20);padding:.85rem .6rem;font-size:.95rem}
.occ-seg input:checked+span{background:var(--bordeaux);border-color:var(--bordeaux);color:#fff}
.occ-extras{margin-top:10px}
.occ-extras .xopt[hidden]{display:none}
.xopt .xp{font-weight:700;color:var(--bordeaux)!important;font-size:.95rem}
.xopt input:checked+span .xp{color:#fff!important}
.form-block p.fb-title{float:none}
.menu-collapse.half.open{max-height:none}
.menu-collapse .mc-more{left:0;right:0;margin-inline:auto;width:max-content;transform:none!important}
.menu-collapse.open .mc-more{bottom:18px}

/* Gutschein-Motive */
.vdesigns{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin:6px 0 16px}
.vdesign input{position:absolute;opacity:0;pointer-events:none}
.vdesign span{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;border-radius:12px;border:2px solid transparent;cursor:pointer;text-align:center;box-shadow:0 1px 4px rgba(0,0,0,.12);min-height:104px;justify-content:center}
.vdesign span i{width:48px;height:48px;display:block}.vdesign span i svg{width:100%;height:100%}
.vdesign span b{font-size:.95rem;font-weight:700}
.vdesign input:checked+span{border-color:#b8212f;box-shadow:0 0 0 3px rgba(184,33,47,.25)}
.vdesign input:focus-visible+span{outline:3px solid #193f2b;outline-offset:2px}

.key-box{margin:16px 0;padding:18px;border:2px solid #193f2b;border-radius:14px;text-align:center;background:#f4f8f5}.key-box .key-code{font:700 34px/1.1 "Courier New",monospace;letter-spacing:.3em;color:#193f2b;margin:6px 0}

/* Drei gleich breite Kontakt-Knöpfe (Anreise & Kontakt) */
.btn-row.eq3{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:.75rem}
.btn-row.eq3 .pill{width:100%;padding-inline:1rem;font-size:.95rem}
/* Legende: Symbole immer mittig im Kreis */
.diet-legend span.diet,span.diet{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0;gap:0}

/* Formular-Blöcke mittig (Allergien, Zusatzangebote, Anlass-Knöpfe) */
.allergy-q>legend.fb-title,.allergy-q .fb-title{text-align:center}
.allergy-q .al-yn{margin-inline:auto;width:100%}
.allergy-q .al-err{text-align:center}
.form-block.xcenter .fb-title{text-align:center}
.form-block.xcenter .xopt-grid{grid-template-columns:repeat(auto-fit,minmax(190px,235px));justify-content:center}
.form-block.xcenter .xopt span{text-align:center}
.inquiry-form .seg label{display:flex}.inquiry-form .seg span{flex:1;display:flex;align-items:center;justify-content:center}
/* Team: mittig, alle Fotos gleich hoch (Bild füllt die Fläche, kein Rand) */
.team{grid-template-columns:repeat(auto-fit,minmax(240px,300px));justify-content:center}
.member{display:flex;flex-direction:column}
.member-photo{position:relative;aspect-ratio:4/5;overflow:hidden;height:auto}
.member-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 22%}
.member-body{flex:1}
@media (max-width:600px){.team{grid-template-columns:1fr 1fr}}

/* Kontakt: Anliegen wählen */
.ct-seg{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;padding:0;background:none;margin-bottom:1.2rem}
.ct-seg label{display:flex}.ct-seg span{flex:1;display:flex;align-items:center;justify-content:center;min-height:52px;border:1.5px solid var(--line-strong,#d8cfbd);border-radius:12px;background:#fff;color:var(--green);font-size:.9rem;line-height:1.25}
.ct-seg input:checked+span{background:var(--bordeaux);border-color:var(--bordeaux);color:#fff;box-shadow:none}
@media (max-width:600px){.ct-seg{grid-template-columns:1fr 1fr}}
/* Upselling im Gästebereich */
.card.upsell{margin-top:1.4rem;padding:1.6rem;border-top:4px solid var(--gold,#b8913f)}
.up-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin:1rem 0}
.up-item{position:relative;cursor:pointer;margin:0!important}
.up-item input{position:absolute;opacity:0;pointer-events:none}
.up-item>span{display:flex;flex-direction:column;gap:.25rem;height:100%;border:1.5px solid var(--line-strong,#d8cfbd);border-radius:14px;padding:.9rem 1rem;background:#fff;transition:border-color .2s,background .2s}
.up-item b{color:var(--green,#193f2b);font-size:1.02rem}.up-item small{color:#5b6b60;line-height:1.4}.up-item em{font-style:normal;font-weight:700;color:var(--bordeaux,#6e1c2b);margin-top:auto}
.up-item input:checked+span{border-color:var(--green,#193f2b);background:#eef4ef;box-shadow:inset 0 0 0 1px var(--green,#193f2b)}
.up-item.booked span{opacity:.65}
.up-room>span{cursor:default}.up-room .btn{margin-top:.5rem;align-self:flex-start}
.up-sum{font-size:1.05rem;margin:.4rem 0 0}
/* Wäscheservice */
.ld-list{display:grid;gap:8px;margin:1rem 0}
.ld-item{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;border:1.5px solid var(--line-strong,#d8cfbd);border-radius:14px;padding:.8rem 1rem;background:#fff}
.ld-item b{display:block;color:var(--green,#193f2b)}.ld-item small{color:#5b6b60;line-height:1.4}.ld-item em{font-style:normal;font-weight:700;color:var(--bordeaux,#6e1c2b);white-space:nowrap}
.ld-qty{display:flex;align-items:center;gap:4px}.ld-qty button{width:38px;height:38px;border-radius:10px;border:1.5px solid var(--line-strong,#d8cfbd);background:#fff;font-weight:800;font-size:18px;cursor:pointer;color:var(--green,#193f2b)}
.ld-qty input{width:52px;text-align:center;height:38px;padding:0}
@media (max-width:560px){.ld-item{grid-template-columns:1fr auto}.ld-qty{grid-column:1/-1;justify-content:flex-end}}
.ld-qty input{width:56px!important;min-width:0!important;flex:0 0 56px;height:40px!important;padding:0!important;text-align:center;font-weight:700}
.ld-qty button{width:40px!important;height:40px!important;min-width:40px;padding:0!important;display:grid;place-items:center}
/* Zimmer-Service */
.rs .rs-head h1{margin:.2rem 0 .4rem}.rs-lang{display:flex;gap:6px;justify-content:center;margin:.4rem 0 .8rem}.rs-lang a{font-size:.8rem;font-weight:700;padding:.2rem .5rem;border-radius:6px;color:var(--green,#193f2b);text-decoration:none;border:1px solid var(--line,#e3dccb)}.rs-lang a.on{background:var(--green,#193f2b);color:#fff}
.rs-verify{display:grid;gap:10px;max-width:420px;margin:1rem auto 0;text-align:left}
.rs-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:1.2rem 0}.rs-info div{background:#fff;border:1px solid var(--line,#e3dccb);border-radius:14px;padding:.8rem 1rem}.rs-info b{display:block;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--bordeaux,#6e1c2b)}.rs-info span{font-weight:600;color:var(--green,#193f2b);word-break:break-word}
.ld-item em small{display:block;font-size:.72rem;font-weight:500;color:#6b6b6b;text-align:right}
.rs-two{margin-top:1.4rem;gap:14px}.rs-two .card{padding:1.2rem}.rs-two textarea{width:100%;margin:.4rem 0 .6rem}
.rs-chips{display:flex;flex-wrap:wrap;gap:6px;margin:.4rem 0}.rs-chips button{border:1.5px solid var(--line-strong,#d8cfbd);background:#fff;border-radius:999px;padding:.35rem .8rem;font-size:.85rem;cursor:pointer;color:var(--green,#193f2b)}
.rs .ld-item small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* Zimmer-Service: Kacheln und Felder */
.rz-no{display:flex;flex-direction:column;align-items:center;margin:.2rem 0 .3rem;color:var(--green,#193f2b)}
.rz-no small{font-size:.8rem;letter-spacing:.25em;text-transform:uppercase;color:var(--bordeaux,#6e1c2b)}
.rz-no b{font-family:"Cormorant Garamond",Georgia,serif;font-size:4.2rem;line-height:1}
.rz-h{text-align:center;font-family:"Cormorant Garamond",Georgia,serif;color:var(--green,#193f2b);margin:1.6rem 0 .8rem}
.rz-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.rz-tile{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;background:#fff;border:1.5px solid var(--line,#e3dccb);border-radius:18px;padding:1.1rem .6rem 1rem;cursor:pointer;font:inherit;color:var(--ink,#16181d);transition:border-color .15s,transform .15s}
.rz-tile:hover,.rz-tile:focus-visible{border-color:var(--gold,#b8913f);transform:translateY(-2px)}
.rz-tile b{font-size:1.02rem;color:var(--green,#193f2b)}
.rz-tile small{font-size:.8rem;color:#555;line-height:1.3}
.rz-ic{width:52px;height:52px;border-radius:50%;background:#f6efdf;display:flex;align-items:center;justify-content:center;margin-bottom:4px}
.rz-ic svg{width:28px;height:28px;fill:none;stroke:var(--green,#193f2b);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.rz-panel{margin-top:1.2rem;padding:1.4rem}
.rz-panel h2{font-family:"Cormorant Garamond",Georgia,serif;color:var(--green,#193f2b);margin:.3rem 0 1rem}
.rz-back{background:none;border:0;color:var(--bordeaux,#6e1c2b);font:inherit;font-weight:600;cursor:pointer;padding:.3rem 0;font-size:1rem}
.rz-form label{display:block;font-weight:600;color:var(--green,#193f2b);margin:.6rem 0 .2rem}
.rz-form select,.rz-form input:not([type=checkbox]):not([type=radio]):not([type=number]){width:100%;margin-top:.25rem}
.rz-form .grid2{gap:0 14px}
.rz-form .btn.big{font-size:1.1rem;padding:.9rem 2rem}
.rz-price{font-size:1.1rem}
.rz-checks{display:grid;gap:8px;margin:.4rem 0}
.rz-check{display:flex!important;gap:12px;align-items:center;background:#fff;border:1.5px solid var(--line,#e3dccb);border-radius:12px;padding:.8rem 1rem!important;margin:0!important;cursor:pointer;font-weight:500!important}
.rz-check input{width:22px;height:22px;accent-color:var(--green,#193f2b)}
.rz-check:has(input:checked){border-color:var(--green,#193f2b);background:#f3f7f4}
.rz-amounts{display:flex;flex-wrap:wrap;gap:8px}
.rz-chip{margin:0!important}.rz-chip input{position:absolute;opacity:0}
.rz-chip span{display:inline-block;border:1.5px solid var(--line,#e3dccb);border-radius:999px;padding:.6rem 1.1rem;background:#fff;font-weight:600;cursor:pointer}
.rz-chip input:checked+span{background:var(--green,#193f2b);color:#fff;border-color:transparent}
.rz-chip input:focus-visible+span{outline:2px solid var(--gold,#b8913f)}
.rz-free{color:#1b6b3a;font-weight:600;margin:.8rem 0}
.rz-closed{color:#9b1c1c;font-weight:600}
.rz-menu{border:1px solid var(--line,#e3dccb);border-radius:12px;background:#fff;margin:.6rem 0;padding:.2rem .9rem}
.rz-menu summary{font-weight:700;color:var(--green,#193f2b);padding:.7rem 0;cursor:pointer;font-size:1.05rem}
.rz-menu h4{margin:.6rem 0 .3rem;color:var(--bordeaux,#6e1c2b);font-size:.85rem;letter-spacing:.08em;text-transform:uppercase}
.rz-ok{padding:1rem;text-align:center}.rz-ok p{margin:.5rem 0 0}
.rz-orders{margin-top:1.4rem;padding:1.2rem}
.rz-orders ul{list-style:none;padding:0;margin:.4rem 0}
.rz-orders li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;padding:.5rem 0;border-bottom:1px solid var(--line,#e3dccb);font-size:.92rem}
.rz-orders li span{color:#666;white-space:nowrap}.rz-orders li b{font-weight:500;overflow-wrap:anywhere}.rz-orders li em{font-style:normal;font-weight:600;white-space:nowrap}
@media (max-width:640px){.rz-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.rz-panel{padding:1rem}.rz-form .grid2{grid-template-columns:1fr 1fr}.rz-orders li{grid-template-columns:1fr auto}.rz-orders li span{grid-column:1/-1;font-size:.8rem}}
@media (max-width:360px){.rz-form .grid2{grid-template-columns:1fr}}
.section.rs{padding-top:1.2rem}
@media (max-width:640px){.rz-tile:last-child:nth-child(odd){grid-column:1/-1}}
.rz-col{display:grid;grid-template-columns:1fr;gap:0}
@media (min-width:700px){.rz-col{grid-template-columns:1fr 1fr;gap:0 16px}}
.rz-form select{font-size:1.05rem;min-height:52px}
.rz-sub{font-size:1rem;color:var(--bordeaux,#6e1c2b);letter-spacing:.06em;text-transform:uppercase;margin:1.2rem 0 .4rem}
.rz-bring .ld-item{padding:.6rem .9rem}.rz-bring .ld-item em{color:#1b6b3a;font-weight:600}
.rz-bring{display:grid;grid-template-columns:1fr;gap:8px}
@media (min-width:700px){.rz-bring{grid-template-columns:1fr 1fr}}
.rz-bring .ld-item{display:flex!important;align-items:center;justify-content:space-between;gap:10px;padding:.55rem .6rem .55rem 1rem;background:#fff;border:1px solid var(--line,#e3dccb);border-radius:12px}
.rz-bring .ld-item b{font-weight:600;color:var(--ink,#16181d)}
.rz-bring .ld-qty{margin:0;flex:none}
.rz-note{display:grid;gap:6px;margin:.4rem 0 0;font-size:.92rem;color:#3c4a42;text-align:center}
.rz-az details{background:#fff;border:1px solid var(--line,#e3dccb);border-radius:12px;margin:.45rem 0;padding:0 1rem}
.rz-az summary{font-weight:600;color:var(--green,#193f2b);padding:.85rem 0;cursor:pointer;font-size:1.02rem}
.rz-az details.imp summary{color:var(--bordeaux,#6e1c2b)}
.rz-az p{margin:0 0 .9rem;line-height:1.55;color:#222}
.rz-emerg{border:2px solid #b42318;border-radius:12px;background:#fff6f5;padding:.9rem 1rem;margin-bottom:.8rem}
.rz-emerg b{color:#9b1c1c}.rz-emerg p{margin:.4rem 0 0;line-height:1.6;color:#222}

/* Express-Check-out */
.xco h2.xco-h{font-size:1.25rem;margin:1.4rem 0 .6rem}
.xco-items{width:100%;border-collapse:collapse;font-size:1rem}.xco-items td{padding:.45rem 0;border-bottom:1px solid #ece6d8;vertical-align:top}.xco-items td.r{text-align:right;white-space:nowrap;padding-left:1rem}
.xco-items tr.sum td{font-weight:700;border-top:2px solid #193f2b}.xco-items tr.open td{font-weight:700;font-size:1.15rem;color:#193f2b;border-bottom:0}
.xco-key{font-size:1.05rem;background:#f6f1e6;border-radius:10px;padding:.8rem 1rem}.xco-big{font-size:1.2rem}.xco .btn.lg{width:100%;justify-content:center}.xco-q{margin-top:1.4rem}
.rz-tile.rz-xco{text-decoration:none;border-color:#b8913f;background:#fffaf0}
.rate-box{margin:0 0 1.5rem;display:flex;flex-direction:column;gap:.6rem}.rate-opt{display:flex;gap:.7rem;align-items:flex-start;border:1.5px solid var(--line,#e3dccb);border-radius:14px;padding:.8rem 1rem;cursor:pointer;background:#fff}
.rate-opt:has(input:checked){border-color:#193f2b;background:#f6f1e6}.rate-opt strong{display:block;color:#14213d}.rate-opt small{display:block;color:#3c4a42;font-size:.9rem}

/* Shop-Warenkorb */
[data-cart-add].in-cart { box-shadow: 0 0 0 2px var(--gold, #b8892b) inset; }
.cart-line { display: grid; grid-template-columns: 1fr auto auto auto; gap: .6rem; align-items: center; padding: .6rem 0; border-bottom: 1px solid var(--line, #e6e2d8); }
.cart-line small { opacity: .7; }
.cl-q { display: inline-flex; align-items: center; gap: .5rem; }
.cl-q button, .cl-x { width: 34px; height: 34px; border-radius: 50%; border: 1.5px solid var(--line-strong, #cfc8b8); background: transparent; font-size: 1.1rem; cursor: pointer; color: inherit; }
.cl-p { font-variant-numeric: tabular-nums; min-width: 92px; text-align: right; }
.cart-del { display: flex; flex-direction: column; gap: .4rem; margin: 1rem 0; }
.cart-del .radio { display: flex; gap: .5rem; align-items: center; font-weight: 500; }
.cart-total { display: flex; justify-content: space-between; font-size: 1.15rem; margin: .4rem 0 1rem; padding-top: .6rem; border-top: 2px solid var(--line, #e6e2d8); }
@media (max-width: 560px) { .cart-line { grid-template-columns: 1fr auto; } .cl-p { text-align: left; } }
/* Menü-Vorbestellung */
.po-box { margin: 1.6rem 0; text-align: left; }
.po-box h3 { margin: 1.2rem 0 .3rem; font-size: 1.05rem; }
.po-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .45rem 0; border-bottom: 1px solid var(--line, #e6e2d8); }
.po-row input { width: 76px !important; flex: 0 0 76px; text-align: center; padding: .5rem .3rem; }
.po-row span { flex: 1; }
.po-note { display: block; margin: 1rem 0 .4rem; }
.po-note textarea { width: 100%; }

/* Runde 5: Direktbuchung, Angebot per Mail, Rechner, Tickets, Themenseiten */
.direct-box { background: var(--cream, #f6f1e4); border-radius: 14px; padding: 1rem 1.2rem; margin: 0 0 1.2rem; }
.direct-box ul { list-style: none; padding: 0; margin: .5rem 0 0; display: grid; gap: .35rem; }
.direct-box li { display: flex; gap: .5rem; align-items: flex-start; color: var(--ink, #1d2a24); }
.direct-box li .ic { flex: 0 0 18px; color: var(--green, #193f2b); margin-top: .15rem; }
.offer-save { border: 1.5px dashed var(--line-strong, #cfc8b8); border-radius: 14px; padding: 1rem 1.2rem; margin: 0 0 1.4rem; }
.offer-save p { margin: .3rem 0 .6rem; }
.os-row { display: flex; gap: .5rem; flex-wrap: wrap; }
.os-row input { flex: 1 1 200px; }
.os-msg.ok { color: #1a7f37; } .os-msg.err { color: #b42318; }
.of-exit { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 60; background: #fff; color: #10231a; border-radius: 14px; box-shadow: 0 10px 40px rgba(0,0,0,.25); padding: .9rem 1rem; display: flex; gap: .8rem; align-items: center; max-width: calc(100% - 32px); }
.of-exit[hidden] { display: none; }
.of-x { background: none; border: 0; font-size: 1.4rem; cursor: pointer; color: inherit; }
.calc-sum { display: flex; align-items: baseline; gap: .8rem; flex-wrap: wrap; margin: 1rem 0; padding: .8rem 1rem; background: var(--cream, #f6f1e4); border-radius: 12px; }
.calc-sum b { font-size: 1.5rem; color: var(--green, #193f2b); font-variant-numeric: tabular-nums; }
.calc-avail.ok { color: #1a7f37; } .calc-avail.err { color: #9a5b00; }
.tk-code { font: 700 2rem/1.2 ui-monospace, Menlo, monospace; letter-spacing: .12em; color: var(--green, #193f2b); margin: .6rem 0 1rem; }
.tk-link { margin-right: .6rem; }
.seo-body h2 { margin-top: 2rem; }
.seo-sec p { font-size: 1.08rem; line-height: 1.7; }
.seo-rel { list-style: none; padding: 0; display: grid; gap: .4rem; }
.foot-seo { border-top: 1px solid rgba(255,255,255,.15); margin-top: 1.6rem; padding-top: 1.2rem; }
.foot-seo p { line-height: 1.9; }
.foot-seo a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.g-rating-link { color: inherit; text-decoration: none; }
.g-stars { color: #f2c14e; letter-spacing: 1px; }
.side-cta .sc-wa { background: #1f8f4e; color: #fff; }
.seo-list { padding-left: 1.1rem; display: grid; gap: .6rem; }
.seo-quote { margin: .8rem 0; padding: .8rem 1rem; background: var(--cream, #f6f1e4); border-radius: 12px; font-style: italic; }
.seo-facts .kv th { text-align: left; padding-right: 1rem; white-space: nowrap; }

/* Karte: Auswahl für Gäste und Zusätze */
.menu-filter { background: #fff; border: 1px solid rgba(184, 145, 63, .45); border-radius: 14px; padding: 14px 16px; margin: 0 0 1.4rem; }
.mf-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: .4rem .8rem; margin-bottom: .6rem; }
.mf-head b { font: 600 1.15rem/1.2 var(--serif); color: var(--navy); }
.mf-reset { margin-left: auto; background: none; border: 0; color: var(--navy); text-decoration: underline; cursor: pointer; font: inherit; font-size: .9rem; }
.mf-row { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 6px; }
.mf-lbl { font-size: .85rem; color: #1b241e; font-weight: 600; margin-right: 2px; }
.mf-chip { border: 1px solid #b8913f; background: #fff; color: #14213d; border-radius: 999px; padding: 6px 12px; font: inherit; font-size: .9rem; cursor: pointer; }
.mf-chip.on { background: #193f2b; border-color: #193f2b; color: #fff; }
.menu-item.mi-off { opacity: .35; }
.mi-why { font-size: .8rem; color: #14213d; font-weight: 600; margin-top: 2px; }
.menu-item.mi-extra { padding: .25rem 0 .25rem 1.2rem; }
.menu-item.mi-extra .mi-name { font-size: 1.02rem; }
.menu-item.mi-course .mi-name { font-size: .85rem; letter-spacing: .12em; text-transform: uppercase; color: var(--navy); font-family: var(--sans); }

/* Hero-Video: zuerst Standbild, danach blendet das Video weich ein */
.hero-media.has-video .hero-bg { animation: none; inset: 0; width: 100%; height: 100%; transform: none; }
.hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1.4s ease; pointer-events: none; }
.hero-video.is-on { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .hero-video { display: none; } }
