/* NICHT direkt bearbeiten – erzeugt aus src/kus.src.css (tools/build_css.sh). */
/* =====================================================================
   KuS Hoheberg – Design-Grundlage (aus dem HTML-Prototyp landing/style.css)
   Schriften kommen aus fonts.css. Elementor-Anpassungen stehen ganz unten.
   ===================================================================== */

/* Elementor Atomic: Container-Grundregeln (.e-con) neutralisieren, damit Div-Blöcke sich wie normales HTML verhalten.
   Steht bewusst am Anfang: gleiche Spezifität wie die KuS-Klassen (body .x) → alle späteren KuS-Regeln gewinnen,
   eigene Stile aus dem Elementor-Editor (.elementor .e-…) gewinnen ebenfalls. */
body .e-atomic-element { display: revert; position: static; inset: auto; width: auto; height: auto; min-width: auto; max-width: none; min-height: auto; margin: 0; padding: 0; gap: normal; flex: initial; align-self: auto; }
body .e-atomic-element::before { position: static; display: revert; inset: auto; top: auto; left: auto; width: auto; height: auto; border: 0; border-radius: 0; opacity: 1; mix-blend-mode: normal; transition: none; }

/* Elementor Atomic: Ersatz für HTML-Tags, die Elementor nicht anbietet (Konverter vergibt „tag-<tag>“) – Browser-Grundwerte nachgebildet */
body :where(.tag-b, .tag-strong) { font-weight: bolder; }
body :where(.tag-small) { font-size: smaller; }
body :where(.tag-i, .tag-em, .tag-cite) { font-style: italic; }
body :where(.tag-li, .tag-ul, .tag-ol, .tag-dl, .tag-dt, .tag-dd, .tag-figure, .tag-figcaption, .tag-blockquote) { display: block; }
body :where(.tag-ul, .tag-ol) { margin-block: 1em; padding-left: 40px; }
body :where(.tag-dl) { margin-block: 1em; } body :where(.tag-dd) { margin-left: 40px; }
body :where(.tag-figure, .tag-blockquote) { margin: 1em 40px; }
body :where(.tag-q)::before { content: open-quote; } body :where(.tag-q)::after { content: close-quote; }
body :where(img.e-image-base) { width: auto; } /* Elementor gibt Bildern width/height-Angaben mit – im Prototyp gab es keine */
body :where(.sp-l)::before, body :where(.sp-r)::after { content: " "; white-space: pre; }
body :where(.tag-sup) { vertical-align: super; font-size: smaller; } body :where(.tag-sub) { vertical-align: sub; font-size: smaller; }

:root {
  --navy: #0f2a44; --orange: #ff7a2f; --orange-text: #ad410b; --nebel: #eef0f2;
  --brombeere: #3f1d3c; --apricot: #f59a6b; --rose: #f5ece9;
  --hopfen: #1f3d2b; --gold: #f2b51f; --schaum: #f4f1e4;
  --night: #081828; --muted: #4a5865; --line: #d7dce1;
  --g-navy: linear-gradient(155deg, #2b4560 0%, #0f2a44 52%, #0b2036 100%);
  --g-brombeere: linear-gradient(155deg, #5a3757 0%, #3f1d3c 52%, #321730 100%);
  --g-hopfen: linear-gradient(155deg, #3a5545 0%, #1f3d2b 52%, #183022 100%);
  --g-orange: linear-gradient(160deg, #ff9558 0%, #ff7a2f 60%, #eb7029 100%);
  --g-apricot: linear-gradient(160deg, #f7ae88 0%, #f59a6b 60%, #e18e62 100%);
  --g-gold: linear-gradient(160deg, #f5c44c 0%, #f2b51f 60%, #dea61c 100%);
  --max: 1440px; --gut: clamp(16px, 4vw, 44px); --kus-gap: 12px; --radius: 22px;
  --ease: cubic-bezier(.16, 1, .3, 1);
  --kus-display: "Saira KuS", "Arial Narrow", sans-serif;
  --kus-text: "Familjen KuS", system-ui, sans-serif;
  --grain: 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='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
body * { box-sizing: border-box; }
body [hidden] { display: none !important; }
html { scroll-behavior: smooth; scroll-padding-top: 84px; -webkit-text-size-adjust: 100%; }
body { --page: #081828; --wacc: var(--orange); --pill: #fff; --pill-fg: var(--navy); margin: 0; background-color: var(--page); color: #fff; font: 17px/1.6 var(--kus-text); transition: background-color .8s var(--ease); }
body[data-welt="beachsport"] { --pill: var(--g-orange); --pill-fg: var(--navy); }
body[data-welt="weinwanderung"] { --page: #170b16; --wacc: var(--apricot); --pill: var(--g-apricot); --pill-fg: var(--brombeere); }
body[data-welt="bierwanderung"] { --page: #08160f; --wacc: var(--gold); --pill: var(--g-gold); --pill-fg: var(--hopfen); }
body::after { content: ""; position: fixed; inset: 0; z-index: 200; background-image: var(--grain); opacity: .05; mix-blend-mode: overlay; pointer-events: none; }
/* Höhenlinien wie auf dem Ticket (tools/topo_svg.py): ganz leise, fest hinter der Seite, Farbe aus der jeweiligen Welt */
body::before { content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none; background: var(--wacc); opacity: .075;
  -webkit-mask: url("../img/topo-seite.svg") center / cover no-repeat; mask: url("../img/topo-seite.svg") center / cover no-repeat; transition: background-color .8s var(--ease); }
/* Lichtimpulse entlang der Linien + Leuchten um den Mauszeiger (assets/js/kus-topo.js) */
body .topo-fx, body .topo-hover { position: fixed; inset: 0; z-index: -1; pointer-events: none; }
body .topo-fx :is(svg,:where(.tag-svg)) { display: block; width: 100%; height: 100%; }
body .topo-fx g { opacity: .5; }
body .topo-fx path { fill: none; stroke: var(--wacc); stroke-width: 1.4; stroke-linecap: round; opacity: 0; }
body .topo-fx path.b { stroke-width: 5; stroke-opacity: .45; }
body .topo-hover { -webkit-mask: url("../img/topo-seite.svg") center / cover no-repeat; mask: url("../img/topo-seite.svg") center / cover no-repeat; opacity: 0; transition: opacity .9s var(--ease); }
body .topo-hover.on { opacity: 1; }
body .topo-hover :is(i,:where(.tag-i)) { position: absolute; left: 0; top: 0; width: 440px; height: 440px; margin: -220px 0 0 -220px; border-radius: 50%; will-change: transform;
  background: radial-gradient(closest-side, color-mix(in srgb, var(--wacc) 45%, transparent), transparent); }
@media print { body .topo-fx, body .topo-hover { display: none; } }
body img { max-width: 100%; display: block; }
body a { color: inherit; text-underline-offset: .2em; }
body ::selection { background: var(--orange); color: var(--navy); }
body :focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; border-radius: 6px; }
body .skip { position: absolute; left: 12px; top: -60px; background: #fff; color: var(--navy); padding: 10px 14px; z-index: 300; border-radius: 8px; }
body .skip:focus { top: 12px; }

body h1, body h2, body h3, body h4 { font-family: var(--kus-display); font-style: italic; font-weight: 800; font-stretch: 75%; text-transform: uppercase; line-height: .9; letter-spacing: 0; margin: 0; text-wrap: balance; }
body p { max-width: 62ch; }
body .lb { font: 600 .76rem/1.2 var(--kus-text); letter-spacing: .2em; text-transform: uppercase; }
body .kicker { display: inline-flex; align-items: center; gap: .55em; font: 600 .78rem/1 var(--kus-text); letter-spacing: .2em; text-transform: uppercase; color: var(--acc, var(--orange)); }
body .kicker::before { content: ""; width: .9em; height: .75em; background: currentColor; clip-path: polygon(50% 0, 100% 100%, 0 100%); }

/* ---------- Buttons: Dreieck springt, Glanz wischt ---------- */
body .btn { --bg: var(--g-orange); --fg: var(--navy); position: relative; overflow: hidden; isolation: isolate; display: inline-flex; align-items: center; gap: .6em; min-height: 50px; padding: .72em 1.3em .72em 1.05em; border: 0; border-radius: 10px; background: var(--bg); color: var(--fg); font: italic 800 1.08rem/1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: transform .35s var(--ease), box-shadow .35s var(--ease); }
body .btn::before { content: ""; width: .8em; height: .68em; background: currentColor; clip-path: polygon(50% 0, 100% 100%, 0 100%); transition: transform .45s var(--ease); }
body .btn::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(105deg, transparent 30%, rgba(255,255,255,.45) 50%, transparent 70%); transform: translateX(-120%); transition: transform .8s var(--ease); }
body .btn:hover { transform: translateY(-2px); box-shadow: 0 2px 4px rgba(0,0,0,.18), 0 12px 26px rgba(0,0,0,.28); }
body .btn:hover::before { transform: translateY(-.28em) scale(1.12); }
body .btn:hover::after { transform: translateX(120%); }
body .btn:active { transform: translateY(0) scale(.98); transition-duration: .1s; }
body .btn[disabled] { opacity: .45; cursor: not-allowed; transform: none; box-shadow: none; }
body .btn[disabled]::after { display: none; }
body .btn-sm { min-height: 42px; font-size: .98rem; padding: .55em 1em .55em .9em; }
body .btn-navy { --bg: var(--g-navy); --fg: #fff; }
body .btn-apricot { --bg: var(--g-apricot); --fg: var(--brombeere); }
body .btn-gold { --bg: var(--g-gold); --fg: var(--hopfen); }
body .btn-ghost { --bg: rgba(255,255,255,.08); --fg: #fff; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.45); backdrop-filter: blur(6px); }
body .btn-ghost:hover { box-shadow: inset 0 0 0 1.5px #fff, 0 12px 26px rgba(0,0,0,.25); }
body .btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 1.4rem; }

/* ---------- Header + Fortschrittslinie ---------- */
body .top { position: fixed; inset: 0 0 auto 0; z-index: 50; transition: background .35s var(--ease), box-shadow .35s; }
body .top.solid { background: rgba(8,24,40,.78); backdrop-filter: saturate(1.4) blur(14px); box-shadow: 0 1px 0 rgba(255,255,255,.08), 0 10px 30px rgba(0,0,0,.25); }
body .top-in { max-width: var(--max); margin: 0 auto; padding: 14px var(--gut); display: flex; align-items: center; gap: 28px; }
body .brand { position: relative; display: block; flex: none; }
body .brand img { height: 46px; width: auto; transition: opacity .5s var(--ease), transform .6s var(--ease); }
body .brand img + img { position: absolute; left: 0; top: 0; }
.js body .brand img:not(.on) { opacity: 0; transform: translateY(8px); }
body .nav { display: flex; gap: 22px; }
body .nav a { text-decoration: none; font-weight: 600; font-size: .95rem; position: relative; padding: 6px 0; opacity: .9; }
body .nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--orange); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease); }
body .nav a:hover::after, body .nav a.active::after, body .nav a[aria-current]::after { transform: scaleX(1); }
body .nav a.active, body .nav a[aria-current] { opacity: 1; }
body .progress { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; pointer-events: none; }
body .progress :is(i,:where(.tag-i)) { display: block; height: 100%; background: linear-gradient(90deg, var(--orange), var(--apricot), var(--gold)); transform-origin: left; transform: scaleX(var(--p, 0)); opacity: 0; transition: opacity .3s; }
body .top.solid .progress :is(i,:where(.tag-i)) { opacity: 1; }
body .menu { display: none; width: 46px; height: 46px; border: 0; background: rgba(255,255,255,.12); color: #fff; border-radius: 10px; cursor: pointer; flex-direction: column; justify-content: center; align-items: center; gap: 6px; }
body .menu :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { width: 20px; height: 2px; background: currentColor; transition: transform .3s var(--ease); }
body .menu[aria-expanded="true"] :is(span:where(:not([class*="tag-"])),:where(.tag-span)):first-child { transform: translateY(4px) rotate(45deg); }
body .menu[aria-expanded="true"] :is(span:where(:not([class*="tag-"])),:where(.tag-span)):last-child { transform: translateY(-4px) rotate(-45deg); }
body .mnav { display: grid; padding: 4px var(--gut) 18px; background: rgba(8,24,40,.96); }
body .mnav[hidden] { display: none; }
body .mnav a { padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,.1); text-decoration: none; font: italic 800 1.5rem/1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; }
@media (max-width: 1260px) { body .nav { display: none; } body .menu { display: flex; } }
@media (min-width: 1261px) { body .mnav { display: none !important; } }

/* ---------- Kacheln (Bento) ---------- */
body .bento { max-width: var(--max); margin: 0 auto; padding: 0 var(--gut); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--kus-gap); grid-auto-flow: dense; }
body .c2 { grid-column: span 2; } body .c3 { grid-column: span 3; } body .c4 { grid-column: span 4; } body .c5 { grid-column: span 5; } body .c6 { grid-column: span 6; } body .c7 { grid-column: span 7; } body .c8 { grid-column: span 8; } body .c12 { grid-column: 1 / -1; }
body .h-s { min-height: 240px; } body .h-m { min-height: 340px; } body .h-l { min-height: 470px; }
body .tile { --acc: var(--orange); --cut: #0f2a44; --back: rgba(255,255,255,.12); --pad: clamp(20px, 2.4vw, 34px); position: relative; overflow: hidden; margin: 0; border-radius: var(--radius); padding: var(--pad); isolation: isolate; display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; color: #fff; text-decoration: none; box-shadow: 0 2px 4px rgba(0,0,0,.2), 0 24px 50px rgba(0,0,0,.25); transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
body a.tile:hover { transform: translateY(-4px); box-shadow: 0 4px 8px rgba(0,0,0,.2), 0 34px 60px rgba(0,0,0,.35); }
body .tile > * { position: relative; z-index: 1; }
body .tile .lb { color: var(--acc); }
body .tile h2 { font-size: clamp(2.2rem, 4vw, 3.6rem); margin: 10px 0 12px; }
body .tile h3 { font-size: clamp(1.9rem, 3vw, 2.9rem); margin: 10px 0 12px; }
body .tile h2 :is(span:where(:not([class*="tag-"])),:where(.tag-span)), body .tile h3 :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { color: var(--acc); display: block; }
body .tile p { margin: 0; color: color-mix(in srgb, currentColor 88%, transparent); }
body .t-navy { background: var(--g-navy); }
/* große dunkle Kacheln: helle Höhenlinien */
body .t-navy.h-l { background: url("../img/topo-kachel-hell.svg") 85% 20% / 820px auto no-repeat, var(--g-navy); }
body .t-wein { --acc: var(--apricot); --cut: #3f1d3c; background: var(--g-brombeere); }
body .t-bier { --acc: var(--gold); --cut: #1f3d2b; background: var(--g-hopfen); }
body .t-light { --acc: var(--orange-text); --cut: #eef0f2; --back: rgba(15,42,68,.08); background: url("../img/topo-kachel-leicht.svg") 90% 30% / 820px auto no-repeat, linear-gradient(160deg, #fff, var(--nebel)); color: var(--navy); }
body .t-light .peaks .f { fill: var(--orange); }
body .t-rose { --acc: #9a4c2a; --cut: var(--rose); --back: rgba(63,29,60,.08); background: linear-gradient(160deg, #fff, var(--rose)); color: var(--brombeere); }
body .t-orange { --acc: var(--navy); --cut: #ff7a2f; --back: rgba(15,42,68,.14); background: url("../img/topo-kachel-dunkel.svg") 80% 25% / 820px auto no-repeat, var(--g-orange); color: var(--navy); }
body .t-orange .peaks .f { fill: var(--navy); }
body .t-apricot { --acc: var(--brombeere); background: var(--g-apricot); color: var(--brombeere); }
body .t-gold { --acc: var(--hopfen); --cut: #f2b51f; background: var(--g-gold); color: var(--hopfen); }
body .t-schaum { --acc: #866100; --cut: #f4f1e4; --back: rgba(31,61,43,.08); background: linear-gradient(160deg, #fff, var(--schaum)); color: var(--hopfen); }
body .t-schaum .peaks .f { fill: var(--gold); }
body .t-glass { --acc: var(--wacc); background: rgba(255,255,255,.06); box-shadow: inset 0 0 0 1px rgba(255,255,255,.12); backdrop-filter: blur(8px); }
/* Foto im Hintergrund einer Farbkachel */
body .tile .ph { position: absolute; inset: 0; z-index: 0; background: center/cover; filter: grayscale(1); opacity: .28; mix-blend-mode: luminosity; transition: transform 6s linear, opacity .8s; }
body a.tile:hover .ph { transform: scale(1.06); opacity: .38; }
/* Fotokachel */
body .t-photo { padding: 0; min-height: 260px; background: #0b2036; }
body .t-photo > img { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease); }
body .t-photo:hover > img { transform: scale(1.04); }
body .cap { position: relative; z-index: 2; margin: auto 14px 14px; padding: 8px 12px; border-radius: 10px; background: rgba(10,20,30,.6); backdrop-filter: blur(8px); font-weight: 600; font-size: .88rem; color: #fff; }
/* Gipfel unten rechts, heben sich beim Überfahren */
body .peaks { overflow: visible; position: absolute !important; right: -6%; bottom: -2px; width: min(42%, 300px); z-index: 0 !important; pointer-events: none; transition: transform .8s var(--ease); }
body .peaks.big { width: 58%; max-width: 460px; }
body .tile:hover .peaks { transform: translateY(-8px); }
body .h-wein .peaks, body .h-bier .peaks, body .h-gast .peaks { width: 30%; }
body .tile .btn-ghost { --bg: rgba(8,20,34,.45); }
body .peaks .b { fill: var(--back); }
body .peaks .f { fill: var(--acc); stroke: var(--cut); stroke-width: 2.4; stroke-linejoin: round; paint-order: stroke; }
body .stack { display: grid; gap: var(--kus-gap); }
body .chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 0; }
body .chips :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,.1); font-weight: 600; font-size: .9rem; }
body .link { margin-top: 14px; font-weight: 700; color: var(--acc); }

/* Einblenden der Kacheln (ohne JS sofort sichtbar) */
.js body .rv:not(.in) { opacity: 0; }
.js body .rv.in { animation: tIn 1s var(--ease) backwards; animation-delay: calc(var(--i, 0) * 90ms); }
@keyframes tIn { from { opacity: 0; transform: translateY(30px) scale(.97); } }
/* Foto öffnet sich aus der Gipfelform */
.js body .peak-reveal { clip-path: polygon(50% 18%, 100% 100%, 100% 100%, 0 100%, 0 100%); transition: clip-path 1.3s var(--ease), transform .5s var(--ease); }
.js body .peak-reveal > img { transform: scale(1.15); transition: transform 1.6s var(--ease); }
.js body .peak-reveal.in { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 0 0); }
.js body .peak-reveal.in > img { transform: scale(1); }

/* ---------- HERO (Bento + Countdown) ---------- */
body .hero { position: relative; padding: 92px var(--gut) var(--kus-gap); background: radial-gradient(120% 90% at 20% 0%, #173a5c 0%, #0f2a44 45%, var(--night) 100%); }
body .hero-grid { max-width: var(--max); margin: 0 auto; height: calc(100svh - 104px); min-height: 600px; display: grid; gap: var(--kus-gap); grid-template-columns: 1.35fr 1fr 1fr; grid-template-rows: 1.25fr 1fr; grid-template-areas: "count wein photo" "count bier gast"; }
body .count { grid-area: count; background: var(--g-navy); justify-content: space-between; align-items: stretch; }
body .count .ph { opacity: .32; }
body .count::before { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(180deg, rgba(15,42,68,.2), #0f2a44 78%); }
body .count .head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
body .count .head img { width: 82px; transform: rotate(-8deg); transition: transform .8s var(--ease); }
body .count:hover .head img { transform: rotate(4deg) scale(1.05); }
body .live { display: inline-flex; align-items: center; gap: 8px; padding: 7px 12px; border-radius: 999px; background: rgba(255,122,47,.16); color: var(--orange); font: 700 .74rem var(--kus-text); letter-spacing: .14em; text-transform: uppercase; }
body .live :is(:is(i,:where(.tag-i)), .k-i) { width: 8px; height: 8px; border-radius: 50%; background: var(--orange); animation: pulse 1.6s ease-out infinite; }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(255,122,47,.7); } 100% { box-shadow: 0 0 0 12px rgba(255,122,47,0); } }
body .count h1 { margin: 18px 0 0; font-size: clamp(2.6rem, 5.4vw, 5.2rem); line-height: .86; }
body .count h1 :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { color: var(--orange); display: block; }
body .timer { display: flex; gap: clamp(8px, 1.4vw, 16px); margin: 22px 0 8px; }
body .unit { min-width: clamp(64px, 7vw, 104px); padding: 12px 10px 10px; border-radius: 14px; background: rgba(255,255,255,.08); box-shadow: inset 0 0 0 1px rgba(255,255,255,.14); backdrop-filter: blur(6px); text-align: center; }
body .unit :is(b,:where(.tag-b)) { display: block; font-family: var(--kus-display); font-style: italic; font-weight: 800; font-stretch: 75%; font-size: clamp(2.4rem, 4.6vw, 4.4rem); line-height: 1; font-variant-numeric: tabular-nums; }
body .unit :is(b,:where(.tag-b)).tick { animation: flip .5s var(--ease); }
@keyframes flip { from { transform: translateY(-30%); opacity: .2; } }
body .unit :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { font-size: .7rem; letter-spacing: .18em; text-transform: uppercase; opacity: .75; }
body .h-wein { grid-area: wein; } body .h-bier { grid-area: bier; } body .h-photo { grid-area: photo; } body .h-gast { grid-area: gast; }
body .price { font-family: var(--kus-display); font-style: italic; font-weight: 800; font-stretch: 75%; color: var(--apricot); line-height: 1; font-variant-numeric: tabular-nums; }
body .h-wein .price { position: absolute; top: clamp(18px, 2.2vw, 30px); right: clamp(18px, 2.2vw, 30px); font-size: clamp(2.4rem, 4vw, 3.6rem); text-align: right; }
body .h-wein .price :is(small,:where(.tag-small)) { display: block; font: 600 .7rem var(--kus-text); letter-spacing: .18em; color: rgba(255,255,255,.75); text-transform: uppercase; margin-top: 4px; }
body .soon { position: absolute !important; top: 18px; right: 18px; padding: 6px 12px; border-radius: 999px; background: var(--g-gold); color: var(--hopfen); font: italic 800 .95rem var(--kus-display); font-stretch: 75%; text-transform: uppercase; transform: rotate(6deg); animation: wobble 3s ease-in-out infinite; }
@keyframes wobble { 50% { transform: rotate(-4deg) translateY(-3px); } }
body .h-photo .slides, body .h-photo .slides img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
body .h-photo .slides { z-index: 0; }
body .h-photo .slides img { opacity: 0; transform: scale(1.08); transition: opacity 1.2s var(--ease), transform 6s linear; }
body .h-photo .slides img.on { opacity: 1; transform: scale(1); }
body .h-photo .cap { margin: auto 14px 14px; }
body .h-gast .tel { margin-top: 12px; }
@media (max-width: 980px) {
  body .hero-grid { height: auto; grid-template-columns: 1fr 1fr; grid-template-rows: auto; grid-template-areas: "count count" "wein bier" "photo gast"; }
  body .count { min-height: 64svh; } body .h-wein, body .h-bier, body .h-photo, body .h-gast { min-height: 240px; }
}
@media (max-width: 560px) {
  body .hero { padding-top: 80px; }
  body .hero-grid { grid-template-columns: 1fr; grid-template-areas: "count" "wein" "bier" "photo" "gast"; }
  body .count { min-height: 0; } body .timer { margin-top: 16px; } body .unit { min-width: 0; flex: 1; }
}

/* ---------- Laufband ---------- */
body .marquee { margin: var(--kus-gap) 0 0; background: var(--navy); overflow: hidden; padding: 16px 0; border-block: 1px solid rgba(255,255,255,.08); }
body .mq-track { display: flex; width: max-content; animation: mq 40s linear infinite; }
body .marquee:hover .mq-track { animation-play-state: paused; }
body .mq-item { display: inline-flex; align-items: center; gap: 22px; padding-right: 22px; font: italic 800 1.5rem/1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; white-space: nowrap; }
body .mq-item :is(svg,:where(.tag-svg)) { height: 22px; width: auto; }
@keyframes mq { to { transform: translateX(-50%); } }

/* Laufbänder diagonal, gegenläufig */
body .mq2 { overflow: hidden; padding: clamp(26px, 3vw, 40px) 0 clamp(10px, 2vw, 20px); }
body .mq2 .rows { display: grid; gap: 14px; margin: 0 -3vw; transform: rotate(-2deg); }
body .mq2 .row { overflow: hidden; white-space: nowrap; }
body .mq2 :is(.t, .mq-t) { display: inline-flex; gap: 28px; padding-right: 28px; animation: mq 34s linear infinite; }
body .mq2 .r2 :is(.t, .mq-t) { animation-direction: reverse; animation-duration: 40s; }
body .mq2:hover :is(.t, .mq-t) { animation-play-state: paused; }
body .mq2 :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { display: inline-flex; align-items: center; gap: 28px; font: italic 800 clamp(1.6rem, 3.4vw, 2.8rem)/1.1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; }
body .mq2 .r1 { background: var(--g-orange); color: var(--navy); box-shadow: 0 14px 30px rgba(0,0,0,.3); }
body .mq2 .r2 :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { color: transparent; -webkit-text-stroke: 1.2px rgba(255,255,255,.7); }
body .mq2 :is(span:where(:not([class*="tag-"])),:where(.tag-span))::after { content: ""; width: .6em; height: .5em; background: currentColor; clip-path: polygon(50% 0, 100% 100%, 0 100%); }
body .mq2 .r2 :is(span:where(:not([class*="tag-"])),:where(.tag-span))::after { background: var(--apricot); }

/* Kurzinfo */
body .facts { margin-top: var(--kus-gap); }
body .fact { flex-direction: row; align-items: flex-start; justify-content: flex-start; gap: 14px; padding: 20px 22px; }
body .fact :is(svg,:where(.tag-svg)) { width: 26px; height: 26px; flex: none; fill: none; stroke: var(--orange); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; margin-top: 2px; }
body .fact :is(b,:where(.tag-b)) { display: block; } body .fact :is(span:where(:not([class*="tag-"])),:where(.tag-span)), body .fact a { color: rgba(255,255,255,.72); font-size: .95rem; }
body .fact a { color: var(--orange); font-weight: 700; }

/* ---------- Sektionen ---------- */
body .sec { position: relative; padding: clamp(72px, 9vw, 120px) 0 0; isolation: isolate; }
body .sec::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; }
body .sec-verein::before { background: radial-gradient(55% 40% at 85% 42%, rgba(255,122,47,.12), transparent 70%); }
body .sec-wein { --acc: var(--apricot); } body .sec-wein::before { background: radial-gradient(65% 40% at 10% 42%, rgba(90,55,87,.55), transparent 70%); }
body .sec-bier { --acc: var(--gold); } body .sec-bier::before { background: radial-gradient(65% 40% at 90% 42%, rgba(58,85,69,.55), transparent 70%); }
body .sec-gast::before { background: radial-gradient(60% 40% at 15% 42%, rgba(43,69,96,.5), transparent 70%); }
body .sec-head { max-width: var(--max); margin: 0 auto 22px; padding: 0 var(--gut); display: flex; justify-content: space-between; align-items: flex-end; gap: 16px 40px; flex-wrap: wrap; }
body .sec-head h2 { font-size: clamp(2.6rem, 6vw, 5.4rem); line-height: .86; margin-top: 12px; }
body .sec-head h2 :is(span:where(:not([class*="tag-"])),:where(.tag-span)):not([data-count]) { color: var(--acc, var(--orange)); display: block; }
body .sec-head p { margin: 0; max-width: 44ch; color: rgba(255,255,255,.8); font-size: 1.08rem; }
body .ticks { list-style: none; padding: 0; margin: 1rem 0 0; display: grid; gap: .55rem; }
body .ticks :is(li,:where(.tag-li)) { display: flex; gap: .7em; align-items: baseline; font-weight: 600; }
body .ticks :is(li,:where(.tag-li))::before { content: ""; flex: none; width: .75em; height: .64em; background: var(--acc); clip-path: polygon(50% 0, 100% 100%, 0 100%); }
body .sport { min-height: 0; padding: 18px 22px; flex: 1; justify-content: center; }
body .sport :is(b,:where(.tag-b)) { font: italic 800 clamp(1.6rem, 2.2vw, 2.1rem)/.95 var(--kus-display); font-stretch: 75%; text-transform: uppercase; }
body .sport :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { font-size: .9rem; opacity: .8; }
body .stack .sport { transition: transform .5s var(--ease); }
body .stack .sport:hover { transform: translateX(6px); }

/* Kalender */
body .booking { justify-content: flex-start; align-items: stretch; }
body .booking-head { display: flex; justify-content: space-between; gap: 20px; align-items: flex-end; flex-wrap: wrap; margin-bottom: 22px; }
body .booking-head h3 { margin-bottom: 6px; }
body .booking-head p { color: var(--muted); }
body .legend { display: flex; gap: 16px; font-size: .85rem; color: var(--muted); }
body .legend :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { display: inline-flex; align-items: center; gap: 6px; }
body .legend :is(span:where(:not([class*="tag-"])),:where(.tag-span))::before { content: ""; width: 12px; height: 12px; border-radius: 3px; }
body .l-free::before { background: #fff; box-shadow: inset 0 0 0 2px var(--line); }
body .l-open::before { background: var(--orange); } body .l-busy::before { background: #c5ccd3; }
body .days { position: relative; display: flex; gap: 8px; overflow-x: auto; padding: 2px 2px 8px; scrollbar-width: thin; scrollbar-color: var(--line) transparent; }
body .day-pill { position: absolute; top: 2px; left: 0; height: calc(100% - 10px); border-radius: 12px; background: var(--g-navy); transition: transform .5s var(--ease), width .5s var(--ease); z-index: 0; }
body .day { position: relative; z-index: 1; flex: none; width: 76px; padding: 10px 0; border-radius: 12px; border: 0; background: #e3e7eb; color: var(--navy); cursor: pointer; display: grid; gap: 2px; text-align: center; font: 600 .82rem/1.2 var(--kus-text); transition: background .3s, color .3s; }
body .day :is(b,:where(.tag-b)) { font: italic 800 1.6rem/1 var(--kus-display); font-stretch: 75%; }
body .day[aria-selected="true"] { background: transparent; color: #fff; }
body .day:hover:not([aria-selected="true"]) { background: #d5dae0; }
body .slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(122px, 1fr)); gap: 8px; margin: 18px 0 22px; }
body .slot { min-height: 54px; border-radius: 12px; border: 0; background: #fff; box-shadow: inset 0 0 0 2px var(--line); color: var(--navy); font: 600 .95rem var(--kus-text); cursor: pointer; font-variant-numeric: tabular-nums; transition: box-shadow .25s, background .25s, transform .25s var(--ease); animation: slotIn .5s var(--ease) both; animation-delay: calc(var(--i) * 25ms); }
@keyframes slotIn { from { opacity: 0; transform: translateY(8px); } }
body .slot:hover:not(:disabled) { box-shadow: inset 0 0 0 2px var(--navy); transform: translateY(-2px); }
body .slot[aria-pressed="true"] { background: var(--g-navy); color: #fff; box-shadow: 0 8px 18px rgba(15,42,68,.25); }
body .slot:disabled { cursor: not-allowed; background: #e3e7eb; color: #6b7682; box-shadow: none; }
body .slot.open { background: var(--g-orange); color: var(--navy); }
body .slot :is(small,:where(.tag-small)) { display: block; font-size: .72rem; font-weight: 600; }
body .book-form { display: grid; grid-template-columns: 1.4fr 1fr 1fr .7fr auto; gap: 12px; align-items: end; border-top: 1px solid var(--line); padding-top: 20px; }
body .book-form .sel { grid-column: 1 / -1; font-weight: 700; }
body :is(label,:where(.tag-label)) { display: grid; gap: 6px; font-size: .85rem; font-weight: 600; }
body input, body select, body textarea { font: 400 1rem var(--kus-text); padding: 12px 14px; border-radius: 10px; border: 2px solid var(--line); background: #fff; color: var(--navy); min-height: 50px; width: 100%; transition: border-color .2s, box-shadow .2s; }
body input:focus, body select:focus, body textarea:focus { outline: none; border-color: var(--orange); box-shadow: 0 0 0 4px color-mix(in srgb, var(--orange) 22%, transparent); }
body input[aria-invalid="true"], body textarea[aria-invalid="true"] { border-color: #d23a3a; }
body .form-msg { grid-column: 1 / -1; margin: 0; font-weight: 600; min-height: 1.2em; display: flex; align-items: center; gap: 10px; }
body .check { width: 28px; height: 28px; flex: none; }
body .check circle { fill: #2f9e6b; transform-origin: center; animation: pop .45s var(--ease) both; }
body .check path { fill: none; stroke: #fff; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 24; stroke-dashoffset: 24; animation: draw .5s .25s var(--ease) forwards; }
@keyframes pop { from { transform: scale(0); } }
@keyframes draw { to { stroke-dashoffset: 0; } }
@media (max-width: 900px) { body .book-form { grid-template-columns: 1fr 1fr; } body .book-form .btn { grid-column: 1 / -1; justify-content: center; } }

/* Cup */
body .cup-img > img { object-fit: cover; }
body .mini { display: grid; gap: 14px; margin: 0; width: 100%; }
body .mini div { display: grid; gap: 4px; border-top: 1px solid rgba(255,255,255,.18); padding-top: 12px; }
body .mini :is(dt,:where(.tag-dt)) { font-weight: 700; color: var(--orange); font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; } body .mini :is(dd,:where(.tag-dd)) { margin: 0; } body .mini a { color: #fff; font-weight: 700; }

/* Wein: Zähler, Ticket, Winzer */
body .stat { justify-content: space-between; }
body .stat :is(b,:where(.tag-b)) { font: italic 800 clamp(4rem, 7vw, 6.4rem)/.85 var(--kus-display); font-stretch: 75%; font-variant-numeric: tabular-nums; }
body .stat :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { font-weight: 700; font-size: .95rem; }
body .ticket-stage { perspective: 1400px; display: grid; }
body .ticket { --rx: 0deg; --ry: 0deg; --px: 50%; --py: 50%; position: relative; display: grid; grid-template-columns: 1fr 300px; border-radius: var(--radius); overflow: hidden; background: #fff; color: var(--brombeere); box-shadow: 0 2px 6px rgba(0,0,0,.2), 0 40px 80px rgba(0,0,0,.35); transform: rotateX(var(--rx)) rotateY(var(--ry)); transition: transform .6s var(--ease); }
body .ticket.tilting { transition: transform .12s linear; }
body .shine { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(500px circle at var(--px) var(--py), rgba(255,255,255,.35), transparent 45%); mix-blend-mode: soft-light; opacity: 0; transition: opacity .4s; }
body .ticket.tilting .shine { opacity: 1; }
body .t-main { --acc: var(--apricot); padding: clamp(24px, 4vw, 46px); }
body .t-logo { height: 56px; width: auto; margin-bottom: 22px; }
body .t-main h3 { font-size: clamp(1.9rem, 3vw, 2.6rem); }
body .deal { margin: 1.2rem 0 0; padding: 12px 14px; background: var(--rose); border-radius: 10px; }
body .t-stub { background: var(--g-brombeere); color: #fff; padding: 36px 30px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 6px; position: relative; }
body .t-stub::before { content: ""; position: absolute; left: 0; top: 14px; bottom: 14px; border-left: 2px dashed rgba(255,255,255,.5); }
body .t-stub .price { font-size: 3.4rem; }
body .per { font-size: .9rem; opacity: .85; margin-bottom: 14px; }
body .next { font-size: .85rem; opacity: .8; margin-top: 10px; }
@media (max-width: 760px) { body .ticket { grid-template-columns: 1fr; } body .t-stub::before { left: 14px; right: 14px; top: 0; bottom: auto; border-left: 0; border-top: 2px dashed rgba(255,255,255,.5); } }
body .sub { margin: 30px 0 4px; font-size: clamp(1.6rem, 2.6vw, 2.2rem); }
body .wineries { display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--kus-gap); }
body .wineries .tile { justify-content: flex-start; padding: 20px; }
body .wineries .tile:hover { transform: translateY(-4px); }
body .wineries .tile::before { content: ""; display: block; width: 22px; height: 16px; background: var(--g-apricot); clip-path: polygon(50% 0, 100% 100%, 0 100%); margin-bottom: 12px; }
body .wineries h4 { font-size: 1.6rem; margin: .35rem 0 .5rem; }
body .region { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: #9a4c2a; }
body .wineries p { font-size: .9rem; }

/* Gaststätte, Kontakt */
body .call { margin-top: 1.4rem; display: flex; flex-wrap: wrap; gap: 14px; align-items: center; padding: 16px 18px; background: #fff; border-radius: 16px; box-shadow: 0 10px 30px rgba(15,42,68,.08); }
body .call > :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { font-weight: 600; color: var(--muted); flex: 1 1 220px; }
body .more { margin-top: 18px; }
body .clist { list-style: none; padding: 0; margin: 1.4rem 0 0; display: grid; gap: 14px; width: 100%; }
body .clist :is(li,:where(.tag-li)) { display: grid; gap: 2px; border-top: 1px solid rgba(255,255,255,.18); padding-top: 12px; }
body .clist :is(b,:where(.tag-b)) { font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; color: var(--orange); }
body .clist a { color: #fff; font-weight: 600; }
body .cform { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-content: start; }
body .cform .full { grid-column: 1 / -1; } body .cform .btn { justify-self: start; }

/* Footer */
body .foot { margin-top: clamp(72px, 9vw, 120px); background: linear-gradient(180deg, #0b2036, #06121f); color: rgba(255,255,255,.75); padding: 64px 0 0; position: relative; overflow: hidden; }
body .foot-in { max-width: var(--max); margin: 0 auto; padding: 0 var(--gut) 24px; display: grid; grid-template-columns: 1fr auto; gap: 24px 40px; align-items: center; }
body .foot-logo { height: 60px; width: auto; max-width: none; flex: none; object-fit: contain; }   /* max-width:100% stauchte das Logo in der schmalen Grid-Spalte (768–1024 px) */
body .foot-badges { display: flex; gap: 12px; } body .foot-badges img { width: 70px; transition: transform .5s var(--ease); }
body .foot-badges img:hover { transform: rotate(-10deg) scale(1.08); }
body .foot p { margin: 0; font-size: .88rem; }
body .foot nav { display: flex; flex-wrap: wrap; gap: 20px; justify-self: end; } body .foot nav a { color: #fff; font-size: .9rem; }
body .foot { padding-bottom: 0; }
body .foot-peaks { display: block; width: 100%; height: clamp(90px, 12vw, 170px); margin-top: -20px; }
.js body .foot-peaks .pk { transform: translateY(105%); transition: transform 1.2s var(--ease); transition-delay: calc(var(--d) * 80ms); }
.js body .foot-peaks.in .pk { transform: none; }

/* ---------- Responsiv ---------- */
@media (max-width: 1080px) {
  body .c2 { grid-column: span 4; } body .c3, body .c4, body .c5, body .c6, body .c7 { grid-column: span 6; } body .c8 { grid-column: 1 / -1; }
  body .stack { grid-column: 1 / -1; grid-template-columns: repeat(3, 1fr); }
  body .wineries { grid-template-columns: repeat(3, 1fr); }
  body .h-l { min-height: 400px; }
}
@media (max-width: 680px) {
  body .bento > * { grid-column: 1 / -1 !important; }
  body .stack { grid-template-columns: 1fr; }
  body .wineries { grid-template-columns: 1fr; }
  body .h-l, body .h-m, body .h-s { min-height: 0; } body .t-photo { min-height: 260px; }
  body .bento > .stat { grid-column: span 4 !important; min-height: 130px; padding: 16px; }
  body .stat :is(b,:where(.tag-b)) { font-size: 3.2rem; } body .stat :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { font-size: .8rem; line-height: 1.25; }
  body .peaks.big { width: 34%; }
  body .cform { grid-template-columns: 1fr; }
  body .foot-in { grid-template-columns: 1fr; } body .foot nav { justify-self: start; }
}


/* ---------- Welten-Umschalter ---------- */
body .switch { position: relative; display: flex; gap: 2px; padding: 4px; margin-left: auto; border-radius: 14px; background: rgba(255,255,255,.07); box-shadow: inset 0 0 0 1px rgba(255,255,255,.12); backdrop-filter: blur(10px); }
body .switch a { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 10px; text-decoration: none; font-weight: 600; font-size: .92rem; white-space: nowrap; color: rgba(255,255,255,.82); transition: color .35s; }
body .switch a:hover { color: #fff; }
body .switch a[aria-current="page"] { color: var(--pill-fg); }
body .switch-pill { position: absolute; z-index: 0; top: 4px; bottom: 4px; left: 0; width: 0; border-radius: 10px; background: var(--pill); box-shadow: 0 6px 16px rgba(0,0,0,.25); opacity: 0; transition: transform .55s var(--ease), width .55s var(--ease), opacity .3s, background .5s; }
body .ico { display: inline-grid; place-items: center; width: 20px; height: 20px; flex: none; }
body .ico :is(svg,:where(.tag-svg)) { width: 100%; height: 100%; display: block; }
body .cta-swap { display: grid; justify-items: end; }
body .cta-swap > * { grid-area: 1 / 1; }
.js body .cta-swap > :not(.on) { opacity: 0; transform: translateY(6px); pointer-events: none; visibility: hidden; transition: opacity .3s, transform .3s, visibility 0s .3s; }
.js body .cta-swap > .on { transition: opacity .4s .1s, transform .5s .1s var(--ease), box-shadow .35s; }
body .tabbar { display: none; }
@media (max-width: 960px) {
  body .switch { display: none; }
  body .top-in { gap: 12px; } body .cta-swap { margin-left: auto; }
  body .tabbar { position: fixed; z-index: 60; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom)); display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; padding: 6px; border-radius: 18px; background: rgba(8,20,34,.84); backdrop-filter: blur(16px) saturate(1.4); box-shadow: 0 12px 30px rgba(0,0,0,.45), inset 0 0 0 1px rgba(255,255,255,.1); }
  body .tabbar a { display: grid; justify-items: center; gap: 2px; padding: 8px 4px 6px; border-radius: 13px; text-decoration: none; font: 600 .72rem/1.2 var(--kus-text); color: rgba(255,255,255,.75); transition: background .45s var(--ease), color .45s; }
  body .tabbar .ico { width: 24px; height: 24px; }
  body .tabbar a[aria-current="page"] { background: var(--pill); color: var(--pill-fg); }
  body { padding-bottom: 86px; }
}

/* Ansichten */
.js body .view:not(.on) { display: none; }
body .view.on { animation: viewIn .7s var(--ease); }
@keyframes viewIn { from { opacity: 0; transform: translateY(14px); } }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .45s; }
body .hero-world { padding: 92px 0 0; }
body[data-welt="beachsport"] .hero-world { background: radial-gradient(110% 80% at 15% 0%, #173a5c 0%, #0f2a44 45%, transparent 100%); }
body[data-welt="weinwanderung"] .hero-world { background: radial-gradient(110% 80% at 15% 0%, #5a3757 0%, #3f1d3c 40%, transparent 100%); }
body[data-welt="bierwanderung"] .hero-world { background: radial-gradient(110% 80% at 15% 0%, #3a5545 0%, #1f3d2b 40%, transparent 100%); }
body .h-xl { min-height: min(74svh, 660px); }
body .hero-world h1 { font-size: clamp(3rem, 6.4vw, 6rem); line-height: .86; margin: 12px 0 16px; }
body .hero-world h1 :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { color: var(--acc); display: block; }
body .hero-world .h-xl p { font-size: 1.1rem; max-width: 48ch; }
body .hero-world .stack { grid-template-rows: auto auto 1fr; }
body .stack > .t-photo { min-height: 150px; }
body .ph-l { min-height: 280px !important; }
body .next-tile { justify-content: flex-start; gap: 4px; }
body .next-tile .timer { width: 100%; } body .next-tile .unit { flex: 1; min-width: 0; }
body .mini-photo { flex: 1; margin: 16px 0 0; width: 100%; min-height: 150px; border-radius: 14px; overflow: hidden; position: relative; }
body .mini-photo img { position: absolute; inset: 0; }
body .mini-photo img { width: 100%; height: 100%; object-fit: cover; }
body .price-tile .price { color: var(--brombeere); font-size: clamp(3rem, 5vw, 4.6rem); margin: 6px 0 4px; }
body .price-tile :is(span:where(:not([class*="tag-"])),:where(.tag-span)):last-child { font-weight: 700; font-size: .92rem; }
body .date-tile :is(b,:where(.tag-b)) { font: italic 800 clamp(1.7rem, 2.4vw, 2.3rem)/1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; margin: 8px 0 6px; }
body .date-tile > :is(span:where(:not([class*="tag-"])),:where(.tag-span)):last-child { font-size: .92rem; opacity: .85; }
body .go { position: absolute !important; right: 18px; bottom: 18px; width: 44px; height: 44px; border-radius: 50%; background: rgba(255,255,255,.14); color: #fff; display: grid; place-items: center; transition: transform .45s var(--ease), background .45s, color .45s; }
body .go::before { content: ""; width: 11px; height: 11px; border-top: 2.5px solid currentColor; border-right: 2.5px solid currentColor; transform: translateX(-2px) rotate(45deg); }
body .t-light .go { background: rgba(15,42,68,.08); color: var(--navy); }
body a.tile:hover .go { transform: translateX(4px); background: var(--acc); color: var(--cut); }

/* Welt-Karten auf der Übersicht */
body .world-card { justify-content: flex-start; }
body .world-card :is(figure,:where(.tag-figure)) { position: relative; margin: calc(var(--pad) * -1) calc(var(--pad) * -1) 22px; width: calc(100% + var(--pad) * 2); height: 230px; overflow: hidden; }
body .world-card :is(figure,:where(.tag-figure)) img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
body .world-card :is(figure,:where(.tag-figure))::after { content: ""; position: absolute; inset: 40% 0 0; background: linear-gradient(180deg, transparent, var(--cut)); }
body .world-card:hover :is(figure,:where(.tag-figure)) img { transform: scale(1.06); }
body .world-card .ticks { margin: 4px 0 24px; }
body .world-card .btn { margin-top: auto; }

/* Schnellwahl */
body .quick { margin-top: var(--kus-gap); }
body .quick .tile { justify-content: center; padding: 18px 64px 18px 22px; min-height: 92px; }
body .quick :is(b,:where(.tag-b)) { font: italic 800 1.5rem/1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; }
body .quick :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { font-size: .9rem; opacity: .8; }
body .quick .tile::after { content: ""; position: absolute; right: 24px; top: 50%; width: 11px; height: 11px; margin-top: -6px; border-bottom: 2.5px solid currentColor; border-right: 2.5px solid currentColor; transform: rotate(45deg); transition: transform .4s var(--ease); }
body .quick .tile:hover::after { transform: translateY(4px) rotate(45deg); }
body .view .sec { padding-top: clamp(40px, 6vw, 80px); }

/* Ticket-Rechner */
body .shop { justify-content: center; }
body .stepper { display: flex; align-items: center; gap: 6px; margin: 4px 0 12px; padding: 4px; border-radius: 12px; background: rgba(255,255,255,.1); }
body .stepper button { width: 46px; height: 46px; border: 0; border-radius: 9px; background: rgba(255,255,255,.14); color: #fff; font: 700 1.5rem/1 var(--kus-text); cursor: pointer; transition: background .2s, color .2s, transform .15s; }
body .stepper button:hover { background: var(--apricot); color: var(--brombeere); }
body .stepper button:active { transform: scale(.9); }
body .stepper output { min-width: 52px; text-align: center; font: italic 800 2.2rem/1 var(--kus-display); font-stretch: 75%; font-variant-numeric: tabular-nums; }
/* Startzeit-Wahl (Weinwanderung 14/15/16 Uhr) – im Ticket-Abriss und im Produkt-Dialog */
body .slots { display: flex; gap: 6px; margin: 0 0 14px; padding: 4px; border-radius: 12px; background: rgba(255,255,255,.1); }
body .slots :is(label,:where(.tag-label)) { position: relative; flex: 1; }
body .slots input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
body .slots :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { display: grid; place-items: center; min-width: 64px; height: 46px; padding: 0 12px; border-radius: 9px; background: rgba(255,255,255,.14); color: #fff; font: italic 800 1.3rem/1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; white-space: nowrap; transition: background .2s, color .2s, transform .15s; }
body .slots :is(label,:where(.tag-label)):hover :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { background: rgba(255,255,255,.24); }
body .slots input:checked + :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { background: var(--apricot); color: var(--brombeere); }
body .slots input:focus-visible + :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { outline: 2px solid #fff; outline-offset: 2px; }
body .slots.need { box-shadow: 0 0 0 2px var(--apricot); animation: slotNudge .4s var(--ease); }
@keyframes slotNudge { 25% { transform: translateX(-5px); } 75% { transform: translateX(5px); } }
body .pd-info .slots { margin: 4px 0 0; max-width: 340px; }
body .pd-info .per { margin: 8px 0 0; }
@media (prefers-reduced-motion: reduce) { body .slots.need { animation: none; } }
body .shop .price { display: inline-block; transform-origin: left center; }
body .shop .price.bump { animation: bump .45s var(--ease); }
@keyframes bump { 40% { transform: scale(1.07); } }
body .save { min-height: 1.4em; margin-bottom: 8px; font-size: .88rem; font-weight: 700; color: var(--apricot); }
body .incl { list-style: none; padding: 0; margin: 14px 0 0; display: grid; gap: 14px; width: 100%; }
body .incl :is(li,:where(.tag-li)) { display: flex; gap: 16px; align-items: center; border-top: 1px solid rgba(255,255,255,.12); padding-top: 14px; }
body .incl :is(b,:where(.tag-b)) { min-width: 48px; font: italic 800 2.6rem/1 var(--kus-display); font-stretch: 75%; color: var(--acc); }

/* Ablauf in Schritten */
body .steps-row { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--kus-gap); }
body .steps-row.three { grid-template-columns: repeat(3, 1fr); }
body .steps-row .tile { justify-content: flex-start; min-height: 270px; }
body .steps-row :is(b,:where(.tag-b)) { margin-bottom: auto; padding-bottom: 24px; font: italic 800 4.4rem/.8 var(--kus-display); font-stretch: 75%; color: var(--acc); }
body .steps-row h3 { font-size: clamp(1.5rem, 2.2vw, 2rem); }
body .steps-row p { font-size: .95rem; }
body .sec-head .link { margin: 0; }

/* Häufige Fragen */
body .faq { justify-content: flex-start; }
body .faq h2 { margin-bottom: 18px; }
body .faq details { width: 100%; border-top: 1px solid rgba(255,255,255,.14); }
body .faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 0; font: italic 800 clamp(1.15rem, 1.8vw, 1.5rem)/1.1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; }
body .faq summary::-webkit-details-marker { display: none; }
body .faq summary::after { content: ""; flex: none; width: 14px; height: 12px; background: var(--acc); clip-path: polygon(50% 0, 100% 100%, 0 100%); transform: rotate(180deg); transition: transform .4s var(--ease); }
body .faq details[open] summary::after { transform: none; }
body .faq summary:hover { color: var(--acc); }
body .faq details p { margin: 0 0 18px; color: rgba(255,255,255,.85); }
body .faq details[open] p { animation: viewIn .5s var(--ease); }
body .faq a { color: var(--acc); font-weight: 700; }

/* Bier: Vormerken */
body .notify { justify-content: flex-start; }
body .notify .row { display: flex; flex-wrap: wrap; gap: 10px; align-items: end; width: 100%; margin-top: 20px; }
body .notify .grow { flex: 1 1 240px; }
body .notify .form-msg { margin-top: 10px; }
body .hint-s { display: block; margin-top: 10px; font-size: .8rem; color: var(--muted); }
body .others .h-s { min-height: 280px; }
body[data-welt="start"] .others .sec-head { display: none; }
body[data-welt="start"] .others .t-light { grid-column: span 7; }
body:not([data-welt="start"]) .gast-photo { display: none; }
@media (max-width: 1080px) {
  body .steps-row, body .steps-row.three { grid-template-columns: 1fr 1fr; }
  body .hero-world .stack { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  body .hero-world .stack > .t-photo { grid-column: 1 / -1; }
}
@media (max-width: 680px) {
  body .hero-world { padding-top: 80px; }
  body .h-xl { min-height: 0; }
  body .steps-row, body .steps-row.three { grid-template-columns: 1fr; }
  body .steps-row .tile { min-height: 0; }
  body .steps-row :is(b,:where(.tag-b)) { font-size: 3rem; padding-bottom: 12px; }
  body .hero-world .stack { grid-template-columns: 1fr; }
  body .world-card :is(figure,:where(.tag-figure)) { height: 180px; }
  body .quick .tile { min-height: 0; }
}



/* ---------- Beach-Abend-Button & Termin-Countdowns ---------- */
body .open-badge { --b: 2px; position: relative; isolation: isolate; display: inline-flex; align-items: center; gap: 14px; margin-top: 22px; padding: 14px 20px 14px 16px; border-radius: 16px; text-decoration: none; color: #fff; background: rgba(8,20,34,.55); backdrop-filter: blur(10px); overflow: hidden; transition: transform .4s var(--ease), box-shadow .4s var(--ease); }
body .open-badge::before { content: ""; position: absolute; inset: -60%; z-index: -2; background: conic-gradient(from var(--spin, 0deg), transparent 0 55%, #ff7a2f 70%, #f59a6b 80%, #f2b51f 88%, transparent 100%); animation: spin 3.2s linear infinite; }
body .open-badge::after { content: ""; position: absolute; inset: var(--b); z-index: -1; border-radius: 14px; background: linear-gradient(160deg, #1b3a5a, #0f2a44); }
@property --spin { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
@keyframes spin { to { --spin: 360deg; } }
body .open-badge :is(:is(b,:where(.tag-b)), .cd-badge) { display: block; font: italic 800 clamp(1.3rem, 2vw, 1.7rem)/1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; }
body .open-badge :is(:is(small,:where(.tag-small)), .cd-sub) { display: block; margin-top: 3px; font-size: .86rem; color: rgba(255,255,255,.8); }
body .open-badge .pulse { position: relative; flex: none; width: 14px; height: 14px; border-radius: 50%; background: var(--orange); }
body .open-badge .pulse::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--orange); animation: ring 1.8s ease-out infinite; }
@keyframes ring { from { transform: scale(1); opacity: .7; } to { transform: scale(2.8); opacity: 0; } }
body .open-badge .arr { flex: none; width: 10px; height: 10px; margin-left: 6px; border-top: 2.5px solid currentColor; border-right: 2.5px solid currentColor; transform: rotate(45deg); transition: transform .4s var(--ease); }
body .open-badge:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(0,0,0,.35); }
body .open-badge:hover .arr { transform: translateX(4px) rotate(45deg); }
body .open-badge.running .pulse, body .open-badge.running .pulse::after { background: #36d07f; }
body .open-badge.big { align-self: stretch; padding: 20px 22px; }
body .open-badge.big :is(:is(b,:where(.tag-b)), .cd-badge) { font-size: clamp(1.6rem, 2.6vw, 2.2rem); }
body .next-tile > p { margin-top: 16px; }
body .timer.sm { gap: 8px; margin: 12px 0 10px; width: 100%; }
body .timer.sm .unit { flex: 1; min-width: 0; padding: 10px 6px 8px; }
body .timer.sm .unit :is(b,:where(.tag-b)) { font-size: clamp(1.9rem, 3vw, 2.8rem); }
body .timer.pending .unit :is(b,:where(.tag-b)) { opacity: .45; }
body .t-gold .timer .unit { background: rgba(31,61,43,.1); box-shadow: inset 0 0 0 1px rgba(31,61,43,.2); }
body .date-tile [data-ev-note] { font-size: .9rem; opacity: .85; }

/* ---------- Übersicht: Termine, Zahlen, Eindrücke, Anfahrt ---------- */
body .agenda .tile { justify-content: flex-start; padding-bottom: 76px; }
body .agenda .when { display: block; margin: 10px 0 auto; padding-bottom: 22px; font: italic 800 clamp(1.5rem, 2.2vw, 2rem)/1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; }
body .agenda h3 { font-size: clamp(1.6rem, 2.3vw, 2.2rem); }
body .agenda .t-orange .go { background: rgba(15,42,68,.14); color: var(--navy); }
body .cup-tile .ph { opacity: .3; }
body .numbers .tile { min-height: 0; justify-content: flex-start; padding: 22px 24px; }
body .numbers :is(b,:where(.tag-b)) { font: italic 800 clamp(3.2rem, 5vw, 4.6rem)/.9 var(--kus-display); font-stretch: 75%; color: var(--acc); font-variant-numeric: tabular-nums; }
body .numbers :is(span:where(:not([class*="tag-"])),:where(.tag-span)):not([data-count]) { font-weight: 600; font-size: .95rem; color: rgba(255,255,255,.8); margin-top: 6px; }
body .gallery { grid-template-rows: repeat(2, minmax(200px, 1fr)); }
body .gallery > * { grid-column: span 3; }
body .gallery .g-big { grid-column: span 6; grid-row: span 2; }
body button.tile { border: 0; font: inherit; cursor: zoom-in; text-align: left; }
body .gallery .t-photo { min-height: 200px; }
body .gallery .t-photo:hover > img { transform: scale(1.06); }
body .gallery .cap { margin: auto 12px 12px; }
body .insta { justify-content: flex-end; }
body .quote-s { justify-content: space-between; }
body .quote-s :is(q,:where(.tag-q)) { display: block; margin: 12px 0; font: italic 800 clamp(1.9rem, 2.6vw, 2.5rem)/.92 var(--kus-display); font-stretch: 75%; text-transform: uppercase; quotes: "„" "“"; }
body .quote-s p { font-size: .92rem; font-weight: 600; }
body .map-tile { padding: 0; justify-content: flex-end; background: radial-gradient(80% 90% at 50% 50%, #173a5c, #0b2036); }
body .topo { position: absolute !important; inset: 0; z-index: 0 !important; width: 100%; height: 100%; }
body .topo polygon { fill: none; stroke: rgba(255,255,255,.13); stroke-width: 1.2; }
body .topo polygon:nth-child(3n) { stroke: rgba(255,122,47,.35); }
body .topo .road { fill: none; stroke: rgba(242,181,31,.7); stroke-width: 3; stroke-dasharray: 8 7; stroke-linecap: round; animation: road 2.4s linear infinite; }
@keyframes road { to { stroke-dashoffset: -30; } }
body .pin { position: absolute !important; left: 50%; top: 50%; width: 76px; height: 76px; margin: -70px 0 0 -38px; border-radius: 50% 50% 50% 6px; transform: rotate(-45deg); background: var(--g-orange); display: grid; place-items: center; box-shadow: 0 14px 30px rgba(0,0,0,.4); animation: pinBob 2.6s var(--ease) infinite; }
body .pin img { width: 46px; transform: rotate(45deg); }
body .pin::after { content: ""; position: absolute; left: -10px; bottom: -14px; width: 20px; height: 8px; border-radius: 50%; background: rgba(0,0,0,.35); transform: rotate(45deg); }
@keyframes pinBob { 50% { translate: 0 -8px; } }
body .map-tile .cap { margin: auto auto 14px 14px; }

/* ---------- Kalender: Wochenleiste + ganzes Jahr ---------- */
body .days-bar { display: flex; gap: 12px; align-items: center; }
body .days-bar .days { flex: 1; min-width: 0; }
body .days-tools { display: grid; gap: 6px; justify-items: stretch; flex: none; }
body .cal-open :is(svg,:where(.tag-svg)) { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
body .cal-open::before { display: none; }
body .today-btn { border: 0; background: none; color: var(--orange-text); font: 700 .85rem var(--kus-text); text-decoration: underline; text-underline-offset: .2em; cursor: pointer; padding: 2px; }
body .day.wed::after { content: ""; position: absolute; left: 50%; bottom: 5px; width: 8px; height: 7px; margin-left: -4px; background: var(--orange); clip-path: polygon(50% 0, 100% 100%, 0 100%); }
body .day { position: relative; }
body .day-pill { opacity: 0; transition: transform .5s var(--ease), width .5s var(--ease), opacity .3s; }
body .calbox, body .lightbox { border: 0; padding: 0; color: var(--navy); }
body .calbox { width: min(560px, calc(100vw - 24px)); border-radius: 22px; padding: clamp(18px, 3vw, 28px); background: linear-gradient(160deg, #fff, var(--nebel)); box-shadow: 0 30px 80px rgba(0,0,0,.5); }
body .calbox::backdrop, body .lightbox::backdrop { background: rgba(4,12,22,.72); backdrop-filter: blur(6px); }
body .calbox[open] { animation: popIn .45s var(--ease); }
@keyframes popIn { from { opacity: 0; transform: translateY(16px) scale(.97); } }
body .cal-head { display: flex; align-items: center; gap: 8px; }
body .cal-month { flex: 1; text-align: center; font-size: clamp(1.7rem, 4vw, 2.3rem); }
body .cal-nav, body .cal-close { width: 44px; height: 44px; border: 0; border-radius: 12px; background: #e3e7eb; color: var(--navy); font: 700 1.5rem/1 var(--kus-text); cursor: pointer; transition: background .2s, transform .2s; }
body .cal-nav:hover:not(:disabled), body .cal-close:hover { background: var(--navy); color: #fff; }
body .cal-nav:disabled { opacity: .35; cursor: not-allowed; }
body .cal-close { margin-left: 6px; background: transparent; }
body .cal-months { position: relative; display: flex; gap: 6px; overflow-x: auto; margin: 14px 0 12px; padding-bottom: 6px; scrollbar-width: thin; }
body .cal-months button { flex: none; border: 0; border-radius: 999px; padding: 7px 12px; background: #e3e7eb; color: var(--navy); font: 600 .82rem var(--kus-text); cursor: pointer; transition: background .25s, color .25s; }
body .cal-months button[aria-pressed="true"] { background: var(--g-navy); color: #fff; }
body .cal-wd, body .cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
body .cal-wd :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { text-align: center; font: 700 .72rem var(--kus-text); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); padding: 4px 0; }
body .cal-grid button { position: relative; aspect-ratio: 1; border: 0; border-radius: 12px; background: #fff; box-shadow: inset 0 0 0 1.5px var(--line); color: var(--navy); font: italic 800 1.25rem/1 var(--kus-display); font-stretch: 75%; cursor: pointer; transition: background .2s, box-shadow .2s, transform .2s var(--ease); }
body .cal-grid button:hover:not(:disabled) { box-shadow: inset 0 0 0 2px var(--navy); transform: translateY(-2px); }
body .cal-grid button:disabled { background: transparent; box-shadow: none; color: #b4bcc4; cursor: default; }
body .cal-grid .wed::after { content: ""; position: absolute; left: 50%; bottom: 6px; width: 8px; height: 7px; margin-left: -4px; background: var(--orange); clip-path: polygon(50% 0, 100% 100%, 0 100%); }
body .cal-grid .today { box-shadow: inset 0 0 0 2px var(--orange); }
body .cal-grid .sel { background: var(--g-navy); color: #fff; box-shadow: 0 8px 18px rgba(15,42,68,.3); }
body .cal-note { display: flex; align-items: center; gap: 8px; margin: 16px 0 0; font-size: .85rem; color: var(--muted); }
body .cal-note :is(i,:where(.tag-i)) { flex: none; width: 10px; height: 9px; background: var(--orange); clip-path: polygon(50% 0, 100% 100%, 0 100%); }
body .lightbox { max-width: min(1100px, 94vw); max-height: 90vh; background: transparent; overflow: visible; }
body .lightbox[open] { animation: popIn .4s var(--ease); }
body .lightbox img { display: block; max-width: min(1100px, 94vw); max-height: 86vh; border-radius: 18px; box-shadow: 0 30px 80px rgba(0,0,0,.6); }
body .lb-close, body .lb-prev, body .lb-next { position: absolute; border: 0; width: 48px; height: 48px; border-radius: 50%; background: rgba(255,255,255,.92); color: var(--navy); font: 700 1.6rem/1 var(--kus-text); cursor: pointer; box-shadow: 0 8px 20px rgba(0,0,0,.35); }
body .lb-close { top: -16px; right: -16px; }
body .lb-prev, body .lb-next { top: 50%; margin-top: -24px; } body .lb-prev { left: -22px; } body .lb-next { right: -22px; }
@media (max-width: 1080px) {
  body .gallery > * { grid-column: span 6; } body .gallery .g-big { grid-column: 1 / -1; grid-row: span 1; min-height: 300px; }
  body .gallery { grid-template-rows: none; }
  body .agenda > .tile, body .numbers > .tile { grid-column: span 6; }
}
@media (max-width: 760px) {
  body .days-bar { flex-direction: column; align-items: stretch; }
  body .days-tools { grid-auto-flow: column; justify-content: space-between; align-items: center; }
  body .lb-prev { left: 6px; } body .lb-next { right: 6px; } body .lb-close { top: 8px; right: 8px; }
}
@media (max-width: 680px) {
  body .numbers > .tile { grid-column: span 6 !important; }
  body .gallery > .t-photo:not(.g-big) { grid-column: span 6 !important; min-height: 150px; }
  body .pin { width: 62px; height: 62px; margin: -56px 0 0 -31px; } body .pin img { width: 38px; }
}

/* ---------- Über uns: Scroll-Geschichte ---------- */
body .story { position: relative; height: 320svh; }
body .stage { position: sticky; top: 0; height: 100svh; overflow: hidden; isolation: isolate; }
body .sky { position: absolute; inset: 0; z-index: -3; background: linear-gradient(180deg, var(--s1) 0%, var(--s2) 55%, var(--s3) 100%); }
body .stars { position: absolute; inset: 0; z-index: -2; opacity: var(--night-o, 0); background-image: radial-gradient(1.4px 1.4px at 12% 18%, #fff 50%, transparent), radial-gradient(1px 1px at 28% 32%, #fff 50%, transparent), radial-gradient(1.2px 1.2px at 46% 12%, #fff 50%, transparent), radial-gradient(1px 1px at 63% 26%, #fff 50%, transparent), radial-gradient(1.5px 1.5px at 78% 14%, #fff 50%, transparent), radial-gradient(1px 1px at 88% 34%, #fff 50%, transparent), radial-gradient(1px 1px at 36% 8%, #fff 50%, transparent), radial-gradient(1.3px 1.3px at 56% 40%, #fff 50%, transparent); }
body .scene { position: absolute; left: 50%; bottom: -1px; width: max(102vw, min(1400px, 150vw)); transform: translateX(-50%); }
body .scene :is(svg,:where(.tag-svg)) { width: 100%; display: block; }
body .copy { position: absolute; left: var(--gut); right: var(--gut); top: clamp(104px, 16vh, 160px); max-width: 640px; }
body .crumb { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 18px; padding: 6px 12px; border-radius: 999px; background: rgba(10,20,30,.35); backdrop-filter: blur(8px); font: 600 .74rem var(--kus-text); letter-spacing: .16em; text-transform: uppercase; }
body .crumb a { text-decoration: none; opacity: .75; } body .crumb a:hover { opacity: 1; }
body .steps { position: relative; }
body .step { position: absolute; left: 0; top: 0; width: min(640px, 100%); opacity: 0; transform: translateY(24px); transition: opacity .6s var(--ease), transform .8s var(--ease); pointer-events: none; }
body .step.on { opacity: 1; transform: none; pointer-events: auto; }
body .step .lb { color: var(--acc); display: flex; gap: .7em; align-items: center; }
body .step .lb::before { content: ""; width: 34px; height: 2px; background: currentColor; }
body .step h1, body .step h2 { margin: 14px 0 16px; font-size: clamp(3rem, 7.4vw, 6.6rem); line-height: .86; }
body .step h1 :is(span:where(:not([class*="tag-"])),:where(.tag-span)), body .step h2 :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { color: var(--acc); display: block; }
body .step p { margin: 0 0 24px; font-size: 1.12rem; max-width: 42ch; color: rgba(255,255,255,.92); }
body .s0 { --acc: #ff7a2f; } body .s0 .lb { color: #0f2a44; } body .s1 { --acc: #f59a6b; } body .s2 { --acc: #f2b51f; }
body .clock { position: absolute; right: var(--gut); top: clamp(104px, 16vh, 160px); text-align: right; }
body .clock :is(b,:where(.tag-b)) { display: block; font-family: var(--kus-display); font-style: italic; font-weight: 800; font-stretch: 75%; font-size: clamp(2.6rem, 5vw, 4.4rem); line-height: 1; font-variant-numeric: tabular-nums; }
body .clock :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { font-size: .8rem; letter-spacing: .2em; text-transform: uppercase; opacity: .8; }
body .hint { position: absolute; left: 50%; bottom: 22px; transform: translateX(-50%); display: grid; justify-items: center; gap: 6px; font-size: .78rem; letter-spacing: .2em; text-transform: uppercase; opacity: calc(1 - var(--p, 0) * 6); }
body .hint :is(i,:where(.tag-i)) { width: 22px; height: 34px; border-radius: 12px; box-shadow: inset 0 0 0 2px rgba(255,255,255,.8); position: relative; }
body .hint :is(i,:where(.tag-i))::after { content: ""; position: absolute; left: 50%; top: 7px; width: 4px; height: 7px; margin-left: -2px; border-radius: 2px; background: #fff; animation: wheel 1.6s var(--ease) infinite; }
@keyframes wheel { 0% { transform: translateY(0); opacity: 1; } 100% { transform: translateY(12px); opacity: 0; } }
body .dots { position: absolute; right: var(--gut); top: 50%; transform: translateY(-50%); display: grid; gap: 12px; }
body .dots :is(i,:where(.tag-i)) { width: 12px; height: 10px; background: rgba(255,255,255,.3); clip-path: polygon(50% 0, 100% 100%, 0 100%); transition: background .4s, transform .4s var(--ease); }
body .dots :is(i,:where(.tag-i)).on { background: #fff; transform: scale(1.4); }
@media (max-width: 760px) {
  body .clock { top: auto; bottom: 36%; }
  body .clock :is(b,:where(.tag-b)) { font-size: 2.2rem; }
  body .dots { display: none; }
  body .step h1, body .step h2 { font-size: clamp(2.6rem, 12vw, 3.6rem); }
  body .step p { font-size: 1rem; }
}

/* Über uns: Zeitleiste, Zeichen, Partner */
body .timeline { list-style: none; margin: 18px 0 0; padding: 0 0 0 26px; position: relative; display: grid; gap: 18px; width: 100%; }
body .timeline::before { content: ""; position: absolute; left: 6px; top: 6px; bottom: 6px; width: 2px; background: linear-gradient(180deg, var(--orange), var(--apricot), var(--gold)); transform-origin: top; transition: transform 1.6s var(--ease); }
.js body .timeline::before { transform: scaleY(0); }
body .timeline :is(li,:where(.tag-li)) { position: relative; transition: opacity .6s var(--ease), transform .6s var(--ease); transition-delay: calc(var(--k) * 140ms + 200ms); }
.js body .timeline :is(li,:where(.tag-li)) { opacity: 0; transform: translateX(-10px); }
body .timeline :is(li,:where(.tag-li))::before { content: ""; position: absolute; left: -26px; top: 5px; width: 14px; height: 12px; background: var(--c, var(--orange)); clip-path: polygon(50% 0, 100% 100%, 0 100%); }
body .timeline :is(b,:where(.tag-b)) { display: block; font: italic 800 1.5rem/1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; color: var(--c, var(--orange)); }
body .timeline :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { color: rgba(255,255,255,.86); }
.js body .in .timeline::before { transform: scaleY(1); }
.js body .in .timeline :is(li,:where(.tag-li)) { opacity: 1; transform: none; }
body .quote { justify-content: space-between; }
body .quote :is(q,:where(.tag-q)) { display: block; font: italic 800 clamp(2.4rem, 5vw, 4.8rem)/.9 var(--kus-display); font-stretch: 75%; text-transform: uppercase; quotes: "„" "“"; }
body .quote p { margin-top: 18px; font-weight: 600; }
body .badges3 { display: flex; gap: 14px; margin-bottom: auto; }
body .badges3 img { width: clamp(64px, 7vw, 96px); transition: transform .6s var(--ease); }
body .badges3 img:nth-child(2) { transition-delay: .05s; } body .badges3 img:nth-child(3) { transition-delay: .1s; }
body .tile:hover .badges3 img { transform: rotate(-10deg) translateY(-4px); }
body .plist { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 10px; width: 100%; }
body .plist :is(li,:where(.tag-li)) { display: grid; gap: 2px; border-top: 1px solid rgba(15,42,68,.12); padding-top: 10px; }
body .plist :is(b,:where(.tag-b)) { font: italic 800 1.4rem/1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; }
body .plist :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { color: var(--muted); font-size: .95rem; }
body .value :is(b,:where(.tag-b)) { font: italic 800 clamp(1.7rem, 2.4vw, 2.2rem)/.95 var(--kus-display); font-stretch: 75%; text-transform: uppercase; margin-bottom: 8px; color: var(--acc); }
body .value { justify-content: flex-start; }
body .value :is(svg,:where(.tag-svg)) { width: 34px; height: 34px; margin-bottom: auto; fill: none; stroke: var(--acc); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; padding-bottom: 28px; box-sizing: content-box; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body .mq-track, body .mq2 .t, body .mq2 .mq-t, body .soon, body .live :is(i,:where(.tag-i)), body .live .k-i, body .pin, body .topo .road, body .open-badge::before, body .open-badge .pulse::after { animation: none; }
  .js body .rv.in { animation: none; }
  .js body .peak-reveal, .js body .peak-reveal > img { transform: none; clip-path: none; transition: none; }
  body .ticket { transform: none !important; }
  body .slot, body .unit :is(b,:where(.tag-b)).tick { animation: none; }
  body .btn, body .btn::before, body .btn::after, body .tile, body .peaks, body .h-photo .slides img, body .tile .ph { transition: none; }
  body .timeline::before, body .timeline :is(li,:where(.tag-li)) { transition: none; }
  .js body .foot-peaks .pk { transform: none; transition: none; }
}

/* Feinschliff Welt-Heros */
body .hero-world .stack:has(> :nth-child(2):last-child) { grid-template-rows: auto 1fr; }
body .hero-world .peaks.big { width: 40%; max-width: 340px; }

/* Icons deckend zeichnen und als Ganzes abdunkeln, sonst addieren sich überlappende Flächen bei halbtransparenter Farbe */
body .switch a:not([aria-current]) .ico, body .tabbar a:not([aria-current]) .ico { color: #fff; opacity: .8; transition: opacity .3s; }
body .switch a:hover .ico, body .tabbar a:hover .ico { opacity: 1; }

/* Startseite: nächster Termin statt Preis in der Wein-Kachel */
body .next-date { position: absolute !important; top: clamp(18px, 2.2vw, 30px); right: clamp(18px, 2.2vw, 30px); padding: 10px 14px; border-radius: 14px; background: rgba(8,20,34,.35); backdrop-filter: blur(8px); box-shadow: inset 0 0 0 1px rgba(255,255,255,.14); text-align: right; }
body .next-date :is(:is(small,:where(.tag-small)), .nd-s) { display: block; font: 600 .66rem var(--kus-text); letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.75); }
body .next-date :is(:is(b,:where(.tag-b)), .nd-b) { display: block; margin-top: 3px; font: italic 800 clamp(1.3rem, 2vw, 1.7rem)/1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; color: var(--apricot); }

/* Termine: großer „Als Nächstes“-Termin + 2×2 Kacheln */
body .agenda .big { grid-row: span 2; justify-content: flex-end; padding-bottom: clamp(20px, 2.4vw, 34px); }
body .agenda .big .ph { opacity: .22; }
body .agenda .big h3 { font-size: clamp(2.4rem, 4.4vw, 4rem); }
body .agenda .big .timer { max-width: 520px; }
body .ev-note { font-size: .9rem; opacity: .8; }
@media (max-width: 1080px) { body .agenda .big { grid-column: 1 / -1; grid-row: auto; } }

/* Mieten */
body .rent .who, body .shop-usp .who { min-height: 0; justify-content: flex-start; gap: 4px; padding: 22px 24px; }
body .rent .who :is(svg,:where(.tag-svg)), body .shop-usp .who :is(svg,:where(.tag-svg)) { width: 32px; height: 32px; margin-bottom: 10px; fill: none; stroke: var(--orange); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
body .rent .who :is(b,:where(.tag-b)), body .shop-usp .who :is(b,:where(.tag-b)) { font: italic 800 1.5rem/1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; }
body .rent .who :is(span:where(:not([class*="tag-"])),:where(.tag-span)), body .shop-usp .who :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { font-size: .95rem; color: rgba(255,255,255,.78); }
body .rent .t-gold .ph { opacity: .2; }

/* Gruppen- & Kombiticket */
body .combo { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 12px 32px; min-height: 0; padding-right: clamp(20px, 2.4vw, 34px); }
body .combo h3 { margin: 6px 0 0; }
body .combo p { flex: 1 1 360px; max-width: 60ch; }
body .combo .soon { top: 14px; right: 16px; }
body .combo .btn { flex: none; }

/* Ticket Bierwanderung */
body .ticket.bier { color: var(--hopfen); }
body .ticket.bier .t-main { --acc: var(--gold); }
body .ticket.bier .deal { background: var(--schaum); }
body .ticket.bier .t-stub { background: var(--g-hopfen); }
body .ticket.bier .t-stub .price { color: var(--gold); }
body .ticket.bier .save { color: var(--gold); }
body .ticket.bier .stepper button:hover { background: var(--gold); color: var(--hopfen); }
body .t-gold.price-tile .price { color: var(--hopfen); }
body .combo { justify-content: flex-start; }

/* Instagram-Leiste */
body .ig-head { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
body .ig-profile { display: flex; align-items: center; gap: 12px; text-decoration: none; }
body .ig-profile img { width: 52px; height: 52px; border-radius: 50%; padding: 2px; background: conic-gradient(#f2b51f, #ff7a2f, #f59a6b, #f2b51f); }
body .ig-profile :is(b,:where(.tag-b)) { display: block; font-size: 1rem; } body .ig-profile :is(small,:where(.tag-small)) { color: rgba(255,255,255,.65); }
body .ig-wrap { position: relative; max-width: var(--max); margin: 0 auto; padding: 0 var(--gut); }
body .ig-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 3 * var(--kus-gap)) / 4); gap: var(--kus-gap); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 4px; }
body .ig-track::-webkit-scrollbar { display: none; }
body .ig-post { position: relative; aspect-ratio: 1; border-radius: var(--radius); overflow: hidden; scroll-snap-align: start; background: #0b2036; box-shadow: 0 2px 4px rgba(0,0,0,.2), 0 18px 40px rgba(0,0,0,.25); }
body .ig-post img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
body .ig-post:hover img { transform: scale(1.06); }
body .ig-ico { position: absolute; top: 12px; right: 12px; width: 34px; height: 34px; border-radius: 10px; background: rgba(8,20,34,.55); backdrop-filter: blur(6px); display: grid; place-items: center; }
body .ig-ico :is(svg,:where(.tag-svg)) { width: 18px; height: 18px; fill: none; stroke: #fff; stroke-width: 1.8; }
body .ig-cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 40px 14px 12px; background: linear-gradient(0deg, rgba(8,20,34,.85), transparent); font-size: .88rem; font-weight: 600; opacity: 0; transform: translateY(8px); transition: opacity .4s, transform .4s var(--ease); }
body .ig-post:hover .ig-cap, body .ig-post:focus-visible .ig-cap { opacity: 1; transform: none; }
body .ig-nav { position: absolute; top: 50%; z-index: 2; width: 48px; height: 48px; margin-top: -24px; border: 0; border-radius: 50%; background: #fff; color: var(--navy); font: 700 1.6rem/1 var(--kus-text); cursor: pointer; box-shadow: 0 10px 24px rgba(0,0,0,.35); transition: transform .3s var(--ease); }
body .ig-nav:hover { transform: scale(1.08); }
body .ig-nav.prev { left: calc(var(--gut) - 18px); } body .ig-nav.next { right: calc(var(--gut) - 18px); }
@media (max-width: 900px) { body .ig-track { grid-auto-columns: 62%; } body .ig-nav { display: none; } }
/* Instagram v2: Hochformat 4:5 (nichts abgeschnitten), großer hervorgehobener Beitrag, Pfeile unter der Leiste */
body .ig-layout { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--kus-gap); align-items: stretch; }
body .ig-rail { min-width: 0; display: flex; flex-direction: column; gap: 14px; }
body .ig-layout .ig-track { grid-template-rows: repeat(2, auto); grid-auto-columns: calc((100% - 2 * var(--kus-gap)) / 3); }
body .ig-post { aspect-ratio: 4 / 5; display: block; text-decoration: none; color: #fff; }
body .ig-img { position: absolute; inset: 0; display: block; }
body .ig-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.2s var(--ease); }
body .ig-post:hover .ig-img img { transform: scale(1.05); }
body .ig-post:hover img { transform: none; }
body .ig-pin, body .ig-typ { position: absolute; top: 12px; left: 12px; z-index: 1; padding: 6px 10px; border-radius: 999px; font: 700 .7rem/1 var(--kus-text); letter-spacing: .08em; text-transform: uppercase; }
body .ig-pin { background: var(--orange); color: #0f2a44; }
body .ig-typ { background: rgba(8,20,34,.6); backdrop-filter: blur(6px); }
body .ig-pin + .ig-typ { top: 44px; }
body .ig-feature { min-width: 0; }
body .ig-feat { height: 100%; aspect-ratio: auto; min-height: 100%; box-shadow: 0 0 0 2px rgba(255,122,47,.55), 0 24px 60px rgba(0,0,0,.35); }
body .ig-feat .ig-cap { opacity: 1; transform: none; padding: 90px 24px 22px; display: grid; gap: 8px; font-size: 1rem; line-height: 1.45; background: linear-gradient(0deg, rgba(8,20,34,.95) 15%, rgba(8,20,34,.6) 60%, transparent); }
body .ig-meta { font: 700 .72rem var(--kus-text); letter-spacing: .14em; text-transform: uppercase; color: var(--orange); }
body .ig-more { font: italic 800 1rem/1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; color: var(--orange); }
body .ig-feat .ig-txt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 5; overflow: hidden; }
body .ig-navs { display: flex; justify-content: flex-end; gap: 10px; }
body .ig-navs .ig-nav { position: static; margin: 0; width: 44px; height: 44px; }
@media (max-width: 900px) {
  body .ig-layout { grid-template-columns: 1fr; }
  body .ig-feat { aspect-ratio: 4 / 5; height: auto; min-height: 0; max-height: 82svh; width: 100%; }
  body .ig-layout .ig-track { grid-template-rows: none; grid-auto-columns: 46%; }
  body .ig-navs { display: none; }
  body .ig-feat .ig-txt { -webkit-line-clamp: 3; font-size: .92rem; }
  body .ig-feat .ig-cap { padding: 70px 18px 18px; }
}

/* WhatsApp-Button im Kalender */
body .btn-wa { --bg: linear-gradient(160deg, #3be27a, #25d366 60%, #1fb457); --fg: #06301a; }
body .btn-wa[aria-disabled="true"] { opacity: .45; }
body .book-form { grid-template-columns: 1.3fr 1fr 1fr .7fr auto auto; }
@media (max-width: 900px) { body .book-form .btn-wa { grid-column: 1 / -1; justify-content: center; } }

/* Kombi-Kachel mit Ticket-Vorschau */
body .combo-img { width: clamp(220px, 26vw, 360px); border-radius: 14px; box-shadow: 0 14px 30px rgba(0,0,0,.3); order: 4; }
@media (max-width: 760px) { body .combo-img { width: 100%; } }

/* Aus alt wird neu: bisheriges und neues Logo nebeneinander */
@keyframes nudge { 50% { transform: translateX(6px); } }
body .note-s { margin-top: 12px !important; padding: 10px 14px; border-radius: 12px; background: rgba(255,255,255,.08); font-size: .92rem; font-weight: 600; }

/* ---------- Konto, Anmeldung, Kasse ---------- */
body .acct-btn { display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 14px 0 10px; border: 0; border-radius: 10px; background: rgba(255,255,255,.1); box-shadow: inset 0 0 0 1px rgba(255,255,255,.16); color: #fff; font: 600 .9rem var(--kus-text); cursor: pointer; white-space: nowrap; transition: background .3s; }
body .acct-btn:hover { background: rgba(255,255,255,.18); }
body .acct-btn :is(svg,:where(.tag-svg)) { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
body .acct-btn.in { background: var(--pill); color: var(--pill-fg); }
@media (max-width: 960px) { body .acct-btn :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { display: none; } body .acct-btn { padding: 0 11px; } }
body .acct { width: min(520px, calc(100vw - 24px)); max-height: calc(100svh - 40px); border: 0; border-radius: 22px; padding: clamp(22px, 4vw, 34px); background: linear-gradient(160deg, #fff, var(--nebel)); color: var(--navy); box-shadow: 0 30px 80px rgba(0,0,0,.5); }
body .acct::backdrop { background: rgba(4,12,22,.75); backdrop-filter: blur(6px); }
body .acct[open] { animation: popIn .45s var(--ease); }
body .acct-x { position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; border: 0; border-radius: 12px; background: #e3e7eb; color: var(--navy); font: 700 1.4rem/1 var(--kus-text); cursor: pointer; }
body .acct .kick { display: block; font: 600 .72rem var(--kus-text); letter-spacing: .2em; text-transform: uppercase; color: var(--orange-text); }
body .acct h2 { margin: 8px 0 14px; font-size: clamp(2rem, 6vw, 2.6rem); }
body .acct h2 :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { color: var(--orange-text); }
body .acct h3 { margin: 18px 0 8px; font-size: 1.4rem; }
body .acct p { color: #3f556a; }
body .acct-form { display: grid; gap: 12px; }
body .acct-form.two { grid-template-columns: 1fr 1fr; }
body .acct-form .full { grid-column: 1 / -1; }
body .acct-form :is(label,:where(.tag-label)) :is(small,:where(.tag-small)) { font-weight: 400; color: var(--muted); }
body .acct-form .btn { justify-content: center; }
body .acct .chk { display: flex; gap: 10px; align-items: flex-start; font-weight: 500; }
body .acct .chk input { width: 20px; min-height: 0; height: 20px; flex: none; margin-top: 2px; accent-color: var(--navy); }
body .acct .chk a { color: var(--orange-text); font-weight: 700; }
body .acct-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
body .btn-ghost-d { --bg: transparent; --fg: var(--navy); box-shadow: inset 0 0 0 1.5px var(--navy); }
body .link-b { border: 0; background: none; padding: 0; color: var(--orange-text); font: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: .2em; cursor: pointer; }
body .acct-alt { margin: 14px 0 0; font-size: .92rem; }
body .acct-who { margin: 0; padding: 10px 12px; border-radius: 10px; background: #e3e7eb; font-weight: 600; font-size: .92rem; color: var(--navy) !important; }
body .acct-empty { font-style: italic; }
body .acct-note { margin: 0; font-size: .8rem; color: var(--muted) !important; }
body .hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
body .ts { min-height: 65px; display: flex; align-items: center; }
body .ts-wait { font-size: .82rem; color: var(--muted); }
body .pw-meter { display: block; height: 5px; border-radius: 3px; background: #dfe3e8; overflow: hidden; margin-top: 4px; }
body .pw-meter :is(b,:where(.tag-b)) { display: block; height: 100%; width: 0; background: #d23a3a; transition: width .3s, background .3s; }
body .pw-meter :is(b,:where(.tag-b))[data-s="3"] { background: var(--gold); } body .pw-meter :is(b,:where(.tag-b))[data-s="4"], body .pw-meter :is(b,:where(.tag-b))[data-s="5"] { background: #2f9e6b; }
body .mail-prev { display: grid; gap: 6px; margin-top: 14px; padding: 14px 16px; border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1.5px var(--line); }
body .mail-prev :is(b,:where(.tag-b)) { font-size: 1rem; } body .mail-prev :is(span:where(:not([class*="tag-"])),:where(.tag-span)):not(.kick) { color: #3f556a; font-size: .92rem; }
body .mail-prev .btn { justify-self: start; margin-top: 6px; }
body .done-check { width: 56px; height: 56px; margin-bottom: 8px; } body .done-check .check { width: 56px; height: 56px; }
body .bk-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
body .bk { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; padding: 12px 14px; border-radius: 12px; background: #fff; box-shadow: inset 0 0 0 1.5px var(--line); border-left: 5px solid var(--orange); }
body .bk.ticket { border-left-color: var(--apricot); }
body .bk :is(b,:where(.tag-b)) { grid-column: 1; } body .bk :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { grid-column: 1; font-size: .88rem; color: var(--muted); }
body .bk .link-b, body .bk .bk-price { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
body .co-sum { display: grid; grid-template-columns: 1fr auto; gap: 4px; padding: 14px 16px; margin-bottom: 14px; border-radius: 14px; background: var(--g-navy); color: #fff; }
body .co-sum :is(b,:where(.tag-b)) { font: italic 800 1.8rem/1 var(--kus-display); font-stretch: 75%; color: var(--apricot); grid-row: span 2; align-self: center; }
body .co-sum :is(small,:where(.tag-small)) { opacity: .8; }
body .pay { border: 0; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
body .pay legend { font-size: .85rem; font-weight: 600; margin-bottom: 6px; }
body .pay-o { display: flex !important; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 10px; background: #fff; box-shadow: inset 0 0 0 1.5px var(--line); cursor: pointer; font-weight: 600; }
body .pay-o input { width: 18px; height: 18px; min-height: 0; accent-color: var(--navy); }
body .pay-o:has(input:checked) { box-shadow: inset 0 0 0 2px var(--navy); }
body .who-line { grid-column: 1 / 3; align-self: center; font-size: .95rem; color: var(--muted); }
body .who-line :is(b,:where(.tag-b)) { color: var(--navy); }
body .book-form { grid-template-columns: 1.6fr .8fr auto auto; }
body .book-form .ts { min-height: 0; }
body .slot.mine { background: linear-gradient(160deg, #2f9e6b, #23845a); color: #fff; box-shadow: none; }
@media (max-width: 900px) { body .book-form { grid-template-columns: 1fr 1fr; } body .who-line { grid-column: 1 / -1; } }
@media (max-width: 520px) { body .acct-form.two { grid-template-columns: 1fr; } body .pay { grid-template-columns: 1fr; } }

/* Strecke: Karte + Höhenprofil */
body .route-tile { display: grid; grid-template-columns: 1fr; gap: 12px; padding: 12px; justify-content: stretch; align-items: stretch; }
body .route-map { width: 100%; height: auto; border-radius: 16px; display: block; background: #1a1018; }
body .m-forest { fill: #241722; } body .m-tree { fill: #3a2537; }
body .m-field { fill: #33222f; stroke: #3d2939; stroke-width: 2; }
body .m-wood { fill: #1e131c; }
body .m-res { fill: #2c1d29; }
body .m-bld { fill: #4a3346; }
body .m-water { fill: none; stroke: #4c6a8c; stroke-width: 5; stroke-linecap: round; }
body .m-path { fill: none; stroke: #5c4458; stroke-width: 2.4; stroke-dasharray: 7 6; }
body .m-road { fill: none; stroke: #6a5266; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; }
body .m-major { fill: none; stroke: #8a6f86; stroke-width: 10; stroke-linecap: round; stroke-linejoin: round; }
body .m-place { fill: rgba(255,255,255,.55); font: 700 34px var(--kus-text); letter-spacing: .3em; text-anchor: middle; }
body .r-glow { fill: none; stroke: #f59a6b; stroke-width: 26; opacity: .35; stroke-linecap: round; stroke-linejoin: round; }
body .r-base { fill: none; stroke: rgba(255,255,255,.18); stroke-width: 9; stroke-linecap: round; stroke-linejoin: round; }
body .r-line { fill: none; stroke: #f59a6b; stroke-width: 10; stroke-linecap: round; stroke-linejoin: round; }
body .m-start circle { fill: #fff; stroke: #3f1d3c; stroke-width: 6; } body .m-start text { font: italic 800 15px var(--kus-display); fill: #3f1d3c; text-anchor: middle; letter-spacing: .04em; }
body .m-tower circle { fill: rgba(255,255,255,.12); } body .m-tower path { fill: #fff; }
body .m-st-in { transform: scale(0); transition: transform .6s var(--ease); }
body .m-st.on .m-st-in { transform: scale(1); }
body .m-st circle { fill: #f59a6b; stroke: #3f1d3c; stroke-width: 6; } body .m-st text { font: italic 800 28px var(--kus-display); fill: #3f1d3c; text-anchor: middle; }
body .m-poi circle { fill: rgba(242,181,31,.18); stroke: #f2b51f; stroke-width: 3; } body .m-poi path { fill: #f2b51f; fill-rule: evenodd; }
body .m-poi text { fill: #f6c855; font: 600 24px var(--kus-text); paint-order: stroke; stroke: #1a1018; stroke-width: 6px; }
body .r-dot circle { fill: #fff; } body .r-pulse { fill: #f59a6b !important; opacity: .45; transform-box: fill-box; transform-origin: center; animation: rpulse 1.6s ease-out infinite; }
@keyframes rpulse { from { transform: scale(.5); opacity: .6; } to { transform: scale(1.8); opacity: 0; } }
body .route-hud { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; padding: 4px 8px; }
body .hud-n :is(b,:where(.tag-b)) { font: italic 800 2.4rem/1 var(--kus-display); font-stretch: 75%; color: var(--apricot); font-variant-numeric: tabular-nums; }
body .hud-n :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { margin-left: 6px; font-size: .85rem; color: rgba(255,255,255,.7); }
body .hud-st { flex: 1; font: italic 800 1.4rem/1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; }
body .route-profile { width: 100%; height: 120px; display: block; border-radius: 12px; background: rgba(255,255,255,.04); }
body .p-ghost { fill: rgba(255,255,255,.06); }
body .p-line { fill: none; stroke: #f59a6b; stroke-width: 3; vector-effect: non-scaling-stroke; }
body .p-st line { stroke: rgba(255,255,255,.18); stroke-dasharray: 4 4; vector-effect: non-scaling-stroke; }
body .p-st circle { fill: rgba(255,255,255,.15); transition: fill .4s; } body .p-st text { font: italic 800 13px var(--kus-display); fill: #fff; text-anchor: middle; }
body .p-st.on circle { fill: #f59a6b; } body .p-st.on text { fill: #3f1d3c; }
body .p-cursor { stroke: #fff; stroke-width: 2; vector-effect: non-scaling-stroke; }
body .route-scrub { display: grid; gap: 6px; padding: 0 8px; color: rgba(255,255,255,.7); font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; }
body .route-scrub input { width: 100%; min-height: 0; padding: 0; border: 0; background: transparent; accent-color: var(--apricot); }
body .route-credit { margin: 0; padding: 0 8px 4px; font-size: .75rem; color: rgba(255,255,255,.55); }
body .route-credit a { color: inherit; }
@media (max-width: 680px) { body .m-poi text { display: none; } body .hud-n :is(b,:where(.tag-b)) { font-size: 1.9rem; } }
@media (prefers-reduced-motion: reduce) { body .r-pulse { animation: none; } body .m-st-in { transition: none; } }
body .route-tile { grid-template-columns: 1.7fr 1fr; align-items: start; }
body .route-side { display: grid; gap: 12px; padding: 8px 6px; }
body .route-hud { padding: 0; gap: 20px; }
body .hud-st { min-height: 2.6em; }
body .route-profile { height: 110px; }
body .route-list { list-style: none; counter-reset: st; margin: 0; padding: 0; display: grid; gap: 6px; }
body .route-list :is(li,:where(.tag-li)) { counter-increment: st; display: flex; align-items: center; gap: 10px; padding: 7px 10px; border-radius: 10px; background: rgba(255,255,255,.04); color: rgba(255,255,255,.55); font-weight: 600; font-size: .92rem; transition: background .4s, color .4s; }
body .route-list :is(li,:where(.tag-li))::before { content: counter(st); display: grid; place-items: center; width: 26px; height: 26px; flex: none; border-radius: 50%; background: rgba(255,255,255,.12); font: italic 800 .95rem var(--kus-display); color: #fff; transition: background .4s, color .4s; }
body .route-list :is(li,:where(.tag-li)).on { color: #fff; } body .route-list :is(li,:where(.tag-li)).on::before { background: var(--apricot); color: var(--brombeere); }
body .route-list :is(li,:where(.tag-li)).now { background: rgba(245,154,107,.16); }
body .route-btns { display: flex; flex-wrap: wrap; gap: 8px; }
body .m-place { font-size: 46px; } body .m-poi text { font-size: 30px; } body .m-start circle { r: 34; } body .m-start text { font-size: 19px; }
@media (max-width: 1080px) { body .route-tile { grid-template-columns: 1fr; } }
/* Bierstrecke: Hopfen/Gold statt Brombeere/Apricot */
body .route-tile.bier .r-glow, body .route-tile.bier .r-line, body .route-tile.bier .p-line { stroke: #f2b51f; }
body .route-tile.bier .r-pulse { fill: #f2b51f !important; }
body .route-tile.bier .hud-n :is(b,:where(.tag-b)) { color: var(--gold); }
body .route-tile.bier .m-start circle { stroke: #1f3d2b; } body .route-tile.bier .m-start text { fill: #1f3d2b; }
body .route-map { align-self: stretch; height: 100%; min-height: 420px; }
body .route-profile { height: auto !important; aspect-ratio: 1000 / 140; }
@media (max-width: 1080px) { body .route-map { height: auto; min-height: 0; aspect-ratio: 3 / 2; } }

/* ================= Ticketshop ================= */
body .shop-hero { padding: 92px 0 0; background: radial-gradient(110% 80% at 15% 0%, #1d3d5f 0%, #0f2a44 40%, transparent 100%); }
body .shop-intro h1 { font-size: clamp(3rem, 6vw, 5.4rem); line-height: .86; margin: 12px 0 14px; }
body .shop-intro h1 :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { color: var(--orange); display: block; }
body .shop-intro p { max-width: 52ch; font-size: 1.08rem; }
body .shop-feature { justify-content: flex-start; color: var(--brombeere); }
body .shop-feature img { width: 100%; border-radius: 14px; margin-bottom: auto; box-shadow: 0 12px 26px rgba(63,29,60,.3); transition: transform .8s var(--ease); }
body .shop-feature:hover img { transform: rotate(-2deg) scale(1.03); }
body .shop-feature h2 { margin-top: 18px; } body .shop-feature .lb { color: var(--brombeere); margin-top: 14px; }
body .demo-note { max-width: var(--max); margin: 14px auto 0; padding: 0 var(--gut); font-size: .82rem; color: rgba(255,255,255,.55); }
body .products { margin-top: 18px; }
body .prod { padding: 0; justify-content: flex-start; min-height: 0; }
body .prod-img { position: relative; display: block; width: 100%; aspect-ratio: 1; border: 0; padding: 0; overflow: hidden; background: #e4e7ec; cursor: zoom-in; }
body .prod-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
body .prod:hover .prod-img img { transform: scale(1.06); }
body .prod-img .soon { top: 12px; right: 12px; }
body .prod-txt { display: flex; flex-direction: column; gap: 4px; padding: 18px 20px 20px; width: 100%; flex: 1; }
body .prod h3 { font-size: 1.5rem; margin: 6px 0 2px; }
body .prod h3 button { all: unset; cursor: pointer; } body .prod h3 button:hover { text-decoration: underline; text-underline-offset: .15em; }
body .prod p { font-size: .92rem; opacity: .85; }
body .prod-foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: auto; padding-top: 16px; }
body .prod-price { font: italic 800 1.7rem/1 var(--kus-display); font-stretch: 75%; color: var(--acc); }
body .prod.t-kombi, body .vgl-k.t-kombi { background: linear-gradient(120deg, #4a2347 0%, #3f1d3c 45%, #1f3d2b 60%, #183022 100%); --acc: var(--gold); }
body .shop-usp { margin-top: var(--kus-gap); }
body .cart-btn :is(svg,:where(.tag-svg)) { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
body .cart-btn::before { display: none; }
body .cart-count { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 11px; background: var(--navy); color: #fff; font: 700 .78rem var(--kus-text); font-style: normal; }
body .cart-count[hidden] { display: none; }

/* Detail */
body .pdlg { width: min(940px, calc(100vw - 24px)); max-height: calc(100svh - 32px); border: 0; padding: 0; border-radius: 24px; background: #0f2a44; color: #fff; overflow: auto; box-shadow: 0 30px 80px rgba(0,0,0,.55); }
body .pdlg::backdrop { background: rgba(4,12,22,.75); backdrop-filter: blur(6px); }
body .pdlg[open] { animation: popIn .45s var(--ease); }
body .pdlg .acct-x { z-index: 3; }
body .pd { display: grid; grid-template-columns: 1.05fr 1fr; }
body .pd-media { background: #e4e7ec; }
/* Bild immer ganz und quadratisch zeigen – auch wenn der Text länger ist als das Fenster (vorher wurde es auf die Texthöhe gestreckt und im Hochformat angeschnitten). Beim Scrollen bleibt es oben stehen. */
body .pd-media img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; position: sticky; top: 0; }
body .pd-info { padding: clamp(22px, 3.5vw, 40px); display: flex; flex-direction: column; gap: 10px; }
body .pd-info .lb { color: var(--apricot); }
body .pd-info h2 { font-size: clamp(2rem, 3.6vw, 2.8rem); }
body .pd-price { font: italic 800 2.6rem/1 var(--kus-display); font-stretch: 75%; color: var(--apricot); }
body .pd-info p { color: rgba(255,255,255,.85); }
body .pd-facts { list-style: none; padding: 0; margin: 4px 0; display: grid; gap: 6px; }
body .pd-facts :is(li,:where(.tag-li)) { display: flex; gap: 10px; align-items: center; font-weight: 600; }
body .pd-facts :is(li,:where(.tag-li))::before { content: ""; width: 12px; height: 10px; background: var(--apricot); clip-path: polygon(50% 0, 100% 100%, 0 100%); }
body .pd-buy { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: auto; padding-top: 10px; }
body .pd-small { font-size: .8rem; color: rgba(255,255,255,.55) !important; }
body .qty { display: inline-flex; align-items: center; gap: 4px; padding: 3px; border-radius: 10px; background: rgba(255,255,255,.1); }
body .qty button { width: 32px; height: 32px; border: 0; border-radius: 8px; background: rgba(255,255,255,.12); color: #fff; font: 700 1.1rem/1 var(--kus-text); cursor: pointer; }
body .qty button:hover { background: var(--apricot); color: var(--brombeere); }
body .qty output { min-width: 28px; text-align: center; font: italic 800 1.2rem var(--kus-display); font-variant-numeric: tabular-nums; }
body .qty.big button { width: 46px; height: 46px; font-size: 1.4rem; } body .qty.big output { min-width: 44px; font-size: 1.8rem; }
@media (max-width: 760px) { body .pd { grid-template-columns: 1fr; } }

/* Schublade */
body .drawer { position: fixed; z-index: 80; top: 0; right: 0; bottom: 0; width: min(440px, 100vw); transform: translateX(105%); transition: transform .55s var(--ease); background: linear-gradient(180deg, #13304d, #081828); box-shadow: -30px 0 60px rgba(0,0,0,.45); }
body .drawer.on { transform: none; }
body .drawer-back { position: fixed; inset: 0; z-index: 79; background: rgba(4,12,22,.6); backdrop-filter: blur(3px); opacity: 0; pointer-events: none; transition: opacity .4s; }
body .drawer-open .drawer-back { opacity: 1; pointer-events: auto; }
body .drawer-in { height: 100%; display: grid; grid-template-rows: auto 1fr auto; }
body .drawer-head { display: flex; justify-content: space-between; align-items: center; padding: 22px 22px 12px; }
body .drawer-head h2 { font-size: 2rem; } body .drawer-head .acct-x { position: static; }
body .drawer-items { overflow: auto; padding: 4px 22px; display: grid; align-content: start; gap: 10px; }
body .drawer-foot { padding: 16px 22px calc(22px + env(safe-area-inset-bottom)); display: grid; gap: 10px; justify-items: center; border-top: 1px solid rgba(255,255,255,.1); }
body .btn-full { width: 100%; justify-content: center; }
body .line { display: grid; grid-template-columns: 76px 1fr auto; gap: 12px; align-items: center; padding: 10px; border-radius: 14px; background: rgba(255,255,255,.06); animation: viewIn .4s var(--ease); }
body .line-img { width: 76px; height: 76px; border-radius: 10px; overflow: hidden; background: #e4e7ec; }
body .line-img img { width: 100%; height: 100%; object-fit: cover; }
body .line-txt { display: grid; gap: 2px; } body .line-txt :is(b,:where(.tag-b)) { font-size: .95rem; line-height: 1.25; } body .line-txt :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { font-size: .82rem; color: rgba(255,255,255,.6); }
body .line-txt .qty { justify-self: start; margin-top: 4px; }
body .line-p { display: grid; justify-items: end; gap: 4px; } body .line-p :is(b,:where(.tag-b)) { font: italic 800 1.25rem var(--kus-display); font-stretch: 75%; } body .line-p :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { font-size: .8rem; color: rgba(255,255,255,.6); }
body .line .link-b { color: rgba(255,255,255,.6); font-size: .8rem; font-weight: 600; }
body .empty { display: grid; justify-items: center; text-align: center; gap: 6px; padding: 50px 10px; } body .empty :is(svg,:where(.tag-svg)) { width: 120px; } body .empty :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { color: rgba(255,255,255,.6); }
body .co-totals { display: grid; gap: 6px; width: 100%; margin: 0; }
body .co-totals div { display: flex; justify-content: space-between; gap: 10px; } body .co-totals :is(dt,:where(.tag-dt)) { color: rgba(255,255,255,.75); } body .co-totals :is(dd,:where(.tag-dd)) { margin: 0; font-weight: 700; }
body .co-totals .sum { padding-top: 8px; border-top: 1px solid rgba(255,255,255,.14); } body .co-totals .sum :is(dt,:where(.tag-dt)) { color: #fff; font-weight: 700; } body .co-totals .sum :is(dd,:where(.tag-dd)) { font: italic 800 1.8rem/1 var(--kus-display); font-stretch: 75%; color: var(--orange); }
body .co-totals .muted :is(dt,:where(.tag-dt)), body .co-totals .muted :is(dd,:where(.tag-dd)) { font-size: .8rem; color: rgba(255,255,255,.5); font-weight: 400; }
body .toast { position: fixed; z-index: 90; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom)); display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-radius: 14px; background: #fff; color: var(--navy); font-weight: 600; box-shadow: 0 16px 40px rgba(0,0,0,.4); transform: translate(-50%, 140%); transition: transform .5s var(--ease); max-width: calc(100vw - 24px); }
body .toast.on { transform: translate(-50%, 0); }
body .toast :is(svg,:where(.tag-svg)) { width: 24px; height: 24px; flex: none; } body .toast circle { fill: #2f9e6b; } body .toast path { fill: none; stroke: #fff; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 960px) { body .toast { bottom: 100px; } }

/* Kasse */
body .checkout { max-width: var(--max); margin: 0 auto; padding: 100px var(--gut) 0; }
body .co-head { display: grid; gap: 8px; margin-bottom: 22px; }
body .co-head .back { justify-self: start; color: rgba(255,255,255,.7); }
body .co-head h1 { font-size: clamp(2.8rem, 5vw, 4.4rem); }
body .co-steps { list-style: none; padding: 0; margin: 6px 0 0; display: flex; flex-wrap: wrap; gap: 8px; counter-reset: s; }
body .co-steps :is(li,:where(.tag-li)) { counter-increment: s; display: flex; align-items: center; gap: 8px; padding: 8px 14px 8px 8px; border-radius: 999px; background: rgba(255,255,255,.06); color: rgba(255,255,255,.55); font-weight: 600; font-size: .9rem; transition: background .4s, color .4s; }
body .co-steps :is(li,:where(.tag-li))::before { content: counter(s); display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; font: italic 800 .95rem var(--kus-display); }
body .co-steps :is(li,:where(.tag-li)).on { background: var(--pill, #fff); color: var(--navy); background: #fff; } body .co-steps :is(li,:where(.tag-li)).on::before { background: var(--g-orange); color: var(--navy); }
body .co-steps :is(li,:where(.tag-li)).done { color: #fff; } body .co-steps :is(li,:where(.tag-li)).done::before { content: "✓"; background: #2f9e6b; font-style: normal; }
body .co-grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: var(--kus-gap); align-items: start; }
body .co-main, body .co-sum-box { border-radius: var(--radius); background: rgba(255,255,255,.05); box-shadow: inset 0 0 0 1px rgba(255,255,255,.1); padding: clamp(20px, 3vw, 32px); }
body .co-step { display: none; border: 0; padding: 0; margin: 0; } body .co-step.on { display: grid; gap: 14px; }
body .co-step legend { padding: 0; margin-bottom: 8px; font: italic 800 clamp(1.7rem, 3vw, 2.3rem)/1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; }
body .co-items { display: grid; gap: 10px; }
body .co-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; } body .co-fields .full { grid-column: 1 / -1; }
body .co-fields :is(small,:where(.tag-small)) { font-weight: 400; opacity: .7; }
body .co-acct { margin: 0; padding: 10px 14px; border-radius: 12px; background: rgba(255,255,255,.07); color: rgba(255,255,255,.85); }
body .co-sub { font-size: 1.3rem; margin: 6px 0 0; }
body .co-pay { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
body .opt { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: 14px; background: rgba(255,255,255,.06); box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.12); cursor: pointer; transition: box-shadow .25s, background .25s; font-size: 1rem; }
body .opt input { width: 20px; height: 20px; min-height: 0; flex: none; accent-color: var(--orange); }
body .opt:has(input:checked) { background: rgba(255,122,47,.12); box-shadow: inset 0 0 0 2px var(--orange); }
body .co-nav { display: flex; justify-content: space-between; gap: 10px; margin-top: 8px; }
body .co-review { display: grid; gap: 8px; }
body .rev { display: grid; grid-template-columns: 110px 1fr auto; gap: 10px; align-items: center; padding: 12px 14px; border-radius: 12px; background: rgba(255,255,255,.06); }
body .rev :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { color: rgba(255,255,255,.85); }
body .checkout .chk { display: flex; gap: 10px; align-items: flex-start; font-weight: 500; font-size: .92rem; }
body .checkout .chk input { width: 20px; height: 20px; min-height: 0; flex: none; accent-color: var(--orange); margin-top: 2px; }
body .btn-buy { --bg: linear-gradient(160deg, #3fcf86, #2f9e6b 60%, #23845a); --fg: #fff; }
body .co-sum-box { position: sticky; top: 96px; display: grid; gap: 14px; }
body .co-sum-box h2 { font-size: 1.8rem; }
body .co-mini { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
body .co-mini .line { grid-template-columns: 54px 1fr auto; padding: 6px; } body .co-mini .line-img { width: 54px; height: 54px; }
body .co-safe { display: flex; align-items: center; gap: 8px; margin: 0; font-size: .82rem; color: rgba(255,255,255,.6); }
body .co-safe :is(svg,:where(.tag-svg)) { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; }
body .checkout input { background: #fff; }
@media (max-width: 900px) { body .co-grid { grid-template-columns: 1fr; } body .co-sum-box { position: static; order: -1; } body .co-fields, body .co-pay { grid-template-columns: 1fr; } body .rev { grid-template-columns: 1fr auto; } body .rev :is(b,:where(.tag-b)) { grid-column: 1 / -1; } }

/* Danke */
body .thanks { min-height: 80svh; display: grid; place-items: center; padding: 110px var(--gut) 0; }
body .thanks-card { position: relative; overflow: hidden; width: min(680px, 100%); padding: clamp(28px, 5vw, 48px); border-radius: 28px; background: var(--g-navy); box-shadow: 0 30px 70px rgba(0,0,0,.4); display: grid; gap: 12px; }
body .thanks-peaks { position: absolute; right: -30px; bottom: -4px; width: 240px; animation: rise 1.2s var(--ease) both; }
@keyframes rise { from { transform: translateY(100%); } }
body .thanks-card .lb { color: #3fcf86; } body .thanks-card h1 { font-size: clamp(2.8rem, 6vw, 4.6rem); line-height: .86; } body .thanks-card h1 :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { color: var(--orange); }
body .thanks-card p { color: rgba(255,255,255,.85); max-width: 46ch; position: relative; }
body .mail-prev.dark { background: rgba(255,255,255,.07); box-shadow: inset 0 0 0 1px rgba(255,255,255,.14); position: relative; max-width: 460px; }
body .mail-prev.dark :is(span:where(:not([class*="tag-"])),:where(.tag-span)):not(.kick) { color: rgba(255,255,255,.8); }
body .mail-prev.dark .kick { color: var(--orange); font: 600 .72rem var(--kus-text); letter-spacing: .2em; text-transform: uppercase; }
body .shop-view[hidden] { display: none !important; }
body .toast:not(.on) { opacity: 0; visibility: hidden; transition: transform .5s var(--ease), opacity .3s, visibility 0s .5s; }
@media (max-width: 960px) {
  body .cart-btn { font-size: 0; gap: 6px; padding: 0 10px; }
  body .cart-btn :is(svg,:where(.tag-svg)) { width: 22px; height: 22px; }
  body .cart-btn .cart-count { font-size: .78rem; }
}
body .toast { width: min(460px, calc(100vw - 24px)); font-size: .95rem; line-height: 1.3; }
body .toast :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { flex: 1; }
body .toast :is(span:where(:not([class*="tag-"])),:where(.tag-span))::after { content: " im Warenkorb"; font-weight: 400; color: var(--muted); }

/* Partner */
body .partners { justify-content: flex-start; gap: 18px; }
body .partners-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px 30px; flex-wrap: wrap; width: 100%; }
body .partners-head p { max-width: 52ch; }
body .plogos { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; width: 100%; }
body .plogo { display: grid; place-items: center; height: 96px; padding: 14px; border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1.5px var(--line); transition: transform .4s var(--ease), box-shadow .4s; }
body .plogo img { max-width: 100%; max-height: 64px; object-fit: contain; filter: grayscale(.15); transition: filter .4s; }
body a.plogo:hover { transform: translateY(-3px); box-shadow: inset 0 0 0 2px var(--navy), 0 10px 22px rgba(15,42,68,.12); } body a.plogo:hover img { filter: none; }
body .plogos.dark .plogo { background: rgba(0,0,0,.18); box-shadow: inset 0 0 0 1px rgba(255,255,255,.12); height: 110px; }
body .plogos.dark .plogo img { max-height: 76px; filter: none; }
body .plist.dark :is(li,:where(.tag-li)) { border-top-color: rgba(255,255,255,.14); } body .plist.dark :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { color: rgba(255,255,255,.7); } body .plist.dark :is(b,:where(.tag-b)) { color: #fff; }
body .small-d { margin-top: 14px !important; font-size: .82rem; color: rgba(255,255,255,.6) !important; }
body .logo-run { overflow: hidden; padding: 6px 0; -webkit-mask: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
body .logo-track { display: flex; gap: 14px; width: max-content; animation: mq 50s linear infinite; }
body .logo-run:hover .logo-track { animation-play-state: paused; }
body .logo-track img { height: 84px; width: 190px; object-fit: contain; padding: 14px 18px; border-radius: 14px; background: #fff; }
/* Winzer-Karten */
body .wineries { grid-template-columns: repeat(3, 1fr) !important; }
body .wine-card { background: var(--g-brombeere); color: #fff; justify-content: flex-start; padding: 20px; }
body .wine-card::before { display: none !important; }
body .wine-card .region { color: var(--apricot); margin-top: 14px; }
body .wine-card h4 { color: #fff; } body .wine-card p { color: rgba(255,255,255,.8) !important; }
body .wl { display: grid; place-items: center; width: 100%; height: 120px; border-radius: 12px; background: rgba(0,0,0,.2); padding: 14px; }
body .wl img { max-height: 92px; max-width: 80%; object-fit: contain; }
body .wl-light { background: #fff; } body .wl-text { font: italic 800 2rem/.9 var(--kus-display); font-stretch: 75%; color: var(--apricot); text-align: center; }
body .partner-card { justify-content: flex-start; gap: 6px; } body .partner-card h4 { font-size: 1.5rem; margin-top: 6px; }
body .partner-card .wl { margin-bottom: 8px; }
@media (max-width: 1080px) { body .wineries { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 680px) { body .wineries { grid-template-columns: 1fr !important; } }
/* Cup */
body .cup-rules .ticks :is(li,:where(.tag-li))::before { background: var(--navy); }
body .karlsberg { display: flex; align-items: center; gap: 12px; margin-top: auto; padding: 12px; border-radius: 12px; background: #fff; }
body .karlsberg img { width: 110px; } body .karlsberg :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { font-size: .82rem; color: var(--navy); font-weight: 600; }
body .cup-rules { justify-content: flex-start; gap: 12px; }
body .mini-tl { list-style: none; padding: 0; margin: 10px 0 16px; display: grid; gap: 10px; }
body .mini-tl :is(li,:where(.tag-li)) { display: grid; gap: 2px; padding-left: 14px; border-left: 2px solid var(--orange); font-size: .92rem; color: rgba(255,255,255,.85); }
body .mini-tl :is(b,:where(.tag-b)) { font: italic 800 1.3rem/1 var(--kus-display); font-stretch: 75%; color: var(--orange); }
body .cup-form { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; align-items: end; }
body .cup-form-head { grid-column: 1 / -1; } body .cup-form-head p { color: var(--muted); }
body .cup-form .full { grid-column: 1 / -1; } body .cup-form .btn { justify-self: start; }
body .cup-form .chk { display: flex; gap: 10px; align-items: flex-start; font-weight: 500; } body .cup-form .chk input { width: 20px; height: 20px; min-height: 0; flex: none; accent-color: var(--navy); }
body .cup-form .ts { grid-column: span 2; }
@media (max-width: 760px) { body .cup-form { grid-template-columns: 1fr; } body .cup-form .ts { grid-column: auto; } }
@media (prefers-reduced-motion: reduce) { body .logo-track { animation: none; } }

/* ================= Navigation (neu) ================= */
body .top-in { gap: 14px; }
body .top-in > * { flex: none; }
body .brand img { height: 44px; }
body .switch { margin: 0 auto; }
body .switch a { padding: 9px 13px; }
body .l-short { display: none; }
body .acct-btn { width: 44px; height: 44px; padding: 0; justify-content: center; border-radius: 12px; position: relative; }
body .acct-btn :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { display: none; }
body .acct-btn.in::after { content: attr(data-initial); position: absolute; inset: 7px; border-radius: 50%; display: grid; place-items: center; background: var(--pill-fg); color: #fff; font: 700 .9rem var(--kus-text); }
body .acct-btn.in :is(svg,:where(.tag-svg)) { opacity: 0; }
body .cta-swap { min-width: max-content; }
body .menu { display: flex; flex-direction: row; gap: 10px; width: auto; height: 44px; padding: 0 14px 0 12px; border-radius: 12px; background: rgba(255,255,255,.1); box-shadow: inset 0 0 0 1px rgba(255,255,255,.16); font: 600 .92rem var(--kus-text); }
body .menu:hover { background: rgba(255,255,255,.18); }
body .mb-ico { position: relative; width: 18px; height: 12px; display: block; }
body .mb-ico :is(i,:where(.tag-i)) { position: absolute; left: 0; right: 0; height: 2px; border-radius: 2px; background: currentColor; transition: transform .35s var(--ease), top .35s var(--ease); }
body .mb-ico :is(i,:where(.tag-i)):first-child { top: 1px; } body .mb-ico :is(i,:where(.tag-i)):last-child { top: 9px; }
body .menu[aria-expanded="true"] .mb-ico :is(i,:where(.tag-i)):first-child { top: 5px; transform: rotate(45deg); }
body .menu[aria-expanded="true"] .mb-ico :is(i,:where(.tag-i)):last-child { top: 5px; transform: rotate(-45deg); }
body .menu :is(span:where(:not([class*="tag-"])),:where(.tag-span)):not(.mb-ico) { width: auto; height: auto; background: none; transform: none !important; }
@media (min-width: 1021px) { body .mnav { display: block !important; } body .mnav[hidden] { display: none !important; } }
/* Panel */
body .mnav { position: absolute; left: 0; right: 0; top: 100%; padding: 0 var(--gut); background: none; }
body .mnav-in { max-width: var(--max); margin: 8px auto 0; display: grid; grid-template-columns: 1fr 1fr .9fr; gap: 12px; padding: 14px; border-radius: 22px; background: rgba(8,20,34,.94); backdrop-filter: blur(18px) saturate(1.4); box-shadow: 0 30px 70px rgba(0,0,0,.5), inset 0 0 0 1px rgba(255,255,255,.1); animation: menuIn .4s var(--ease); }
@keyframes menuIn { from { opacity: 0; transform: translateY(-10px) scale(.98); } }
body .mcol { display: grid; align-content: start; gap: 4px; padding: 8px; }
body .mlb { display: block; padding: 4px 10px 8px; font: 600 .72rem var(--kus-text); letter-spacing: .2em; text-transform: uppercase; color: var(--wacc); }
body .mnav .mcol a { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border: 0; border-radius: 14px; text-decoration: none; color: #fff; font: inherit; text-transform: none; transition: background .25s; }
body .mnav .mcol a:hover, body .mnav .mcol a:focus-visible { background: rgba(255,255,255,.08); }
body .mnav .mcol a[aria-current] { background: rgba(255,255,255,.1); box-shadow: inset 3px 0 0 var(--wacc); }
body .mcol a .ico { width: 34px; height: 34px; padding: 7px; border-radius: 10px; background: rgba(255,255,255,.08); color: #fff; }
body .mcol a :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { display: grid; gap: 1px; } body .mcol a :is(b,:where(.tag-b)) { font: italic 800 1.25rem/1.05 var(--kus-display); font-stretch: 75%; text-transform: uppercase; } body .mcol a :is(small,:where(.tag-small)) { color: rgba(255,255,255,.6); font-size: .82rem; }
body .mcol:nth-child(2) a::before { content: ""; flex: none; width: 10px; height: 9px; margin: 0 4px 0 2px; background: var(--wacc); clip-path: polygon(50% 0, 100% 100%, 0 100%); }
body .mcard { display: flex; flex-direction: column; gap: 8px; padding: 18px; border-radius: 16px; background: var(--g-navy); box-shadow: inset 0 0 0 1px rgba(255,255,255,.08); }
body .mcard .mlb { padding: 0; color: var(--orange); }
body .mbig { font: italic 800 1.9rem/.95 var(--kus-display); font-stretch: 75%; text-transform: uppercase; }
body .mcard p { margin: 0; color: rgba(255,255,255,.75); font-size: .92rem; }
body .mtel { display: grid; margin-top: auto; padding: 12px 14px; border-radius: 12px; background: rgba(255,255,255,.08); text-decoration: none; }
body .mtel :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { font-size: .8rem; color: rgba(255,255,255,.65); } body .mtel :is(b,:where(.tag-b)) { font: italic 800 1.5rem/1.1 var(--kus-display); font-stretch: 75%; color: var(--orange); }
body .msoc { display: flex; gap: 8px; } body .msoc a { flex: 1; text-align: center; padding: 9px; border-radius: 10px; background: rgba(255,255,255,.08); text-decoration: none; font-weight: 600; font-size: .88rem; }
body .msoc a:hover, body .mtel:hover { background: rgba(255,255,255,.14); }
body.menu-open::before { content: ""; position: fixed; inset: 0; z-index: 40; background: rgba(4,12,22,.55); backdrop-filter: blur(3px); animation: viewIn .3s; }
/* mittlere Breiten: Kurzlabels */
@media (max-width: 1240px) { body .l-long { display: none; } body .l-short { display: inline; } body .switch a { padding: 9px 11px; } }
/* Handy/Tablet: Umschalter unten, Panel als Blatt */
@media (max-width: 960px) {
  body .mb-l { display: none; } body .menu { width: 44px; padding: 0; justify-content: center; }
  body .mnav { position: fixed; top: 0; bottom: 0; padding: 0; overflow: auto; }
  body .mnav-in { margin: 0; min-height: 100%; border-radius: 0; grid-template-columns: 1fr; padding: 86px 14px 110px; align-content: start; }
}
@media (max-width: 760px) { body .mcol:first-child { display: none; } }
@media (max-width: 1020px) and (min-width: 0px) { body .mnav[hidden] { display: none !important; } }
@media (prefers-reduced-motion: reduce) { body .mnav-in { animation: none; } }
body .menu .mb-ico { transform: none !important; }
body.menu-open .top { backdrop-filter: none; -webkit-backdrop-filter: none; background: #081828; }
body.menu-open::before { z-index: 45; }
@media (max-width: 960px) { body .mnav-in { padding-top: 92px; } }
@media (max-width: 520px) {
  body .top-in { gap: 8px; }
  body .brand img { height: 36px; }
  body .acct-btn { display: none; }
  body .top-cta { font-size: .86rem; min-height: 40px; padding: .5em .8em .5em .7em; }
  body .menu { width: 42px; height: 42px; }
}
@media (max-width: 960px) { body .top-in { position: relative; z-index: 2; } body.menu-open .top-in { background: #081828; } }
body .menu .mb-ico { width: 18px !important; height: 12px !important; background: none !important; }
/* Info-Karte im Menü: alten .mnav-a-Stil neutralisieren */
body .mnav .mcard a { border: 0; text-transform: none; font: 600 .92rem var(--kus-text); font-style: normal; }
body .mnav .mcard .mtel { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; border-radius: 14px; background: rgba(255,255,255,.08); box-shadow: inset 0 0 0 1px rgba(255,255,255,.1); transition: background .25s, transform .25s var(--ease); }
body .mnav .mcard .mtel :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { font: 600 .82rem/1.3 var(--kus-text); color: rgba(255,255,255,.7); text-transform: none; }
body .mnav .mcard .mtel :is(b,:where(.tag-b)) { font: italic 800 1.5rem/1 var(--kus-display); font-stretch: 75%; color: var(--orange); white-space: nowrap; }
body .mnav .mcard .mtel::after { content: ""; flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--g-orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f2a44' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a1 1 0 0 1-1 1A16 16 0 0 1 4 5a1 1 0 0 1 1-1Z'/%3E%3C/svg%3E") center / 17px no-repeat; }
body .mnav .mcard .mtel > :is(span:where(:not([class*="tag-"])),:where(.tag-span)):first-child { flex: 1; }
body .mnav .mcard .mtel { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "l i" "n i"; row-gap: 2px; }
body .mnav .mcard .mtel :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { grid-area: l; } body .mnav .mcard .mtel :is(b,:where(.tag-b)) { grid-area: n; } body .mnav .mcard .mtel::after { grid-area: i; align-self: center; }
body .mnav .mcard .mtel:hover { background: rgba(255,255,255,.14); transform: translateY(-1px); }
body .mnav .mcard .msoc a { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 11px 10px; border-radius: 12px; background: rgba(255,255,255,.08); box-shadow: inset 0 0 0 1px rgba(255,255,255,.1); color: #fff; }
body .mnav .mcard .msoc a::before { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat; }
body .mnav .mcard .msoc a[href*="instagram"] { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='3' width='18' height='18' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Ccircle cx='17.5' cy='6.5' r='1' fill='black'/%3E%3C/svg%3E"); }
body .mnav .mcard .msoc a[href*="facebook"] { --ic: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 8h3V4h-3a4 4 0 0 0-4 4v2H7v4h3v7h4v-7h3l1-4h-4V8z'/%3E%3C/svg%3E"); }
body .mnav .mcard .msoc a:hover { background: rgba(255,255,255,.16); }
body .mcard { gap: 10px; }
body .mcard .mtel { margin-top: auto; }
body .mnav .mcard .mtel::after { display: block !important; }
body .mnav .mcard .mnext { display: grid; gap: 2px; margin-top: 6px; padding: 14px 16px; border-radius: 14px; background: linear-gradient(135deg, rgba(255,122,47,.18), rgba(245,154,107,.06)); box-shadow: inset 0 0 0 1px rgba(255,122,47,.25); }
body .mnav .mcard .mnext :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { font: 600 .7rem var(--kus-text); letter-spacing: .18em; text-transform: uppercase; color: var(--orange); }
body .mnav .mcard .mnext :is(b,:where(.tag-b)) { font: italic 800 1.4rem/1.05 var(--kus-display); font-stretch: 75%; text-transform: uppercase; color: #fff; }
body .mnav .mcard .mnext :is(small,:where(.tag-small)) { color: rgba(255,255,255,.7); font-weight: 500; }
body .mnav .mcard .mnext:hover { background: linear-gradient(135deg, rgba(255,122,47,.26), rgba(245,154,107,.1)); }
@media (max-width: 960px) { body.menu-open .tabbar { display: none; } }
/* Telefon-Icon: Verlauf + Icon korrekt als Ebenen */
body .mnav .mcard .mtel::after { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f2a44' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a1 1 0 0 1-1 1A16 16 0 0 1 4 5a1 1 0 0 1 1-1Z'/%3E%3C/svg%3E") center / 17px no-repeat, var(--g-orange); }

/* Nächste Termine im Menü */
body .mnav .mcard .mev { display: grid; gap: 6px; margin: 4px 0 auto; }
body .mnav .mcard .mev-k { font: 600 .7rem var(--kus-text); letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.55); margin-bottom: 2px; }
body .mnav .mcard .mev-i { --c: var(--orange); --cbg: rgba(255,122,47,.16); display: grid; grid-template-columns: 46px 1fr auto; align-items: center; gap: 12px; padding: 9px 12px 9px 9px; border-radius: 14px; background: rgba(255,255,255,.05); box-shadow: inset 0 0 0 1px rgba(255,255,255,.07); color: #fff; transition: background .25s, transform .25s var(--ease); }
body .mnav .mcard .mev-i[data-w="weinwanderung"] { --c: #f59a6b; --cbg: rgba(245,154,107,.16); }
body .mnav .mcard .mev-i[data-w="bierwanderung"] { --c: #f2b51f; --cbg: rgba(242,181,31,.16); }
body .mnav .mcard .mev-i:hover { background: rgba(255,255,255,.11); transform: translateX(3px); }
body .mnav .mcard .mev-i.is-next { background: linear-gradient(135deg, var(--cbg), rgba(255,255,255,.04)); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--c) 45%, transparent); padding-block: 12px; }
body .mnav .mcard .mev-d { display: grid; place-items: center; height: 46px; border-radius: 11px; background: var(--cbg); color: var(--c); font: 700 .66rem/1 var(--kus-text); letter-spacing: .08em; text-transform: uppercase; }
body .mnav .mcard .mev-d :is(b,:where(.tag-b)) { font: italic 800 1.35rem/.9 var(--kus-display); font-stretch: 75%; letter-spacing: 0; }
body .mnav .mcard .is-next .mev-d { background: var(--c); color: var(--navy); }
body .mnav .mcard .mev-t { display: grid; gap: 3px; min-width: 0; }
body .mnav .mcard .mev-t :is(b,:where(.tag-b)) { font: italic 800 1.12rem/1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; }
body .mnav .mcard .is-next .mev-t :is(b,:where(.tag-b)) { font-size: 1.3rem; }
body .mnav .mcard .mev-t :is(small,:where(.tag-small)) { font: 500 .78rem/1.25 var(--kus-text); color: rgba(255,255,255,.62); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body .mnav .mcard .mev-w { font: 700 .66rem var(--kus-text); letter-spacing: .1em; text-transform: uppercase; color: var(--c); white-space: nowrap; }
body .mnav .mcard .mev-w:empty { display: none; }

/* ================= Anfrage-Popup ================= */
body .ask { width: min(620px, calc(100vw - 20px)); max-height: calc(100svh - 24px); border: 0; padding: 0; border-radius: 24px; overflow: hidden auto; overscroll-behavior: contain; background: linear-gradient(170deg, #fff, var(--nebel)); color: var(--navy); box-shadow: 0 30px 90px rgba(0,0,0,.55); }
body .ask::backdrop { background: rgba(4,12,22,.75); backdrop-filter: blur(6px); }
body .ask[open] { animation: popIn .45s var(--ease); }
body .ask-top { position: relative; padding: clamp(22px, 4vw, 30px) clamp(20px, 4vw, 32px) 22px; background: var(--g-navy); color: #fff; overflow: hidden; }
body .ask-top::after { content: ""; position: absolute; right: -30px; bottom: -2px; width: 230px; height: 90px; background: rgba(255,255,255,.06); clip-path: polygon(0 100%, 38% 18%, 58% 52%, 74% 30%, 100% 100%); pointer-events: none; }
body .ask-top .kick { display: block; font: 600 .72rem var(--kus-text); letter-spacing: .2em; text-transform: uppercase; color: var(--orange); }
body .ask-top h2 { margin: 8px 48px 8px 0; font-size: clamp(1.9rem, 6vw, 2.6rem); line-height: .95; color: #fff; }
body .ask-top h2 :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { color: var(--orange); }
body .ask-lead { position: relative; z-index: 1; margin: 0; max-width: 46ch; color: rgba(255,255,255,.78); }
body .ask-x { position: absolute; top: 16px; right: 16px; z-index: 2; width: 42px; height: 42px; border: 0; border-radius: 12px; background: rgba(255,255,255,.12); color: #fff; font: 700 1.5rem/1 var(--kus-text); cursor: pointer; transition: background .2s; }
body .ask-x:hover { background: rgba(255,255,255,.22); }
body .ask-form, body .ask-done { padding: 22px clamp(20px, 4vw, 32px) clamp(22px, 4vw, 30px); }
body .ask-via { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0 0 18px; padding: 0; border: 0; }
body .ask-via legend { margin-bottom: 10px; padding: 0; font: 600 .85rem var(--kus-text); }
body .ask-via :is(label,:where(.tag-label)) { position: relative; display: block; cursor: pointer; }
body .ask-via input { position: absolute; opacity: 0; width: 1px; height: 1px; min-height: 0; }
body .ask-via :is(label,:where(.tag-label)) > :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { display: grid; grid-template-columns: 38px 1fr; grid-template-areas: "i b" "i s"; column-gap: 12px; align-items: center; padding: 13px 14px; border-radius: 16px; background: #fff; box-shadow: inset 0 0 0 2px var(--line); transition: box-shadow .2s, background .2s, transform .2s var(--ease); }
body .ask-via :is(svg,:where(.tag-svg)) { grid-area: i; width: 38px; height: 38px; padding: 8px; border-radius: 11px; background: #e9eef2; color: var(--navy); transition: background .2s, color .2s; }
body .ask-via :is(b,:where(.tag-b)) { grid-area: b; font: italic 800 1.15rem/1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; }
body .ask-via :is(small,:where(.tag-small)) { grid-area: s; font-size: .8rem; color: var(--muted); }
body .ask-via :is(label,:where(.tag-label)):hover > :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { transform: translateY(-2px); }
body .ask-via input:focus-visible + :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { box-shadow: inset 0 0 0 2px var(--navy), 0 0 0 4px color-mix(in srgb, var(--orange) 30%, transparent); }
body .ask-via input[value="mail"]:checked + :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { box-shadow: inset 0 0 0 2px var(--orange); background: #fff5ee; }
body .ask-via input[value="mail"]:checked + :is(span:where(:not([class*="tag-"])),:where(.tag-span)) :is(svg,:where(.tag-svg)) { background: var(--g-orange); color: var(--navy); }
body .ask-via input[value="wa"]:checked + :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { box-shadow: inset 0 0 0 2px #25d366; background: #effbf3; }
body .ask-via input[value="wa"]:checked + :is(span:where(:not([class*="tag-"])),:where(.tag-span)) :is(svg,:where(.tag-svg)) { background: #25d366; color: #fff; }
body .ask-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; }
body .ask-grid .full { grid-column: 1 / -1; }
body .ask-grid :is(label,:where(.tag-label)) :is(small,:where(.tag-small)) { font-weight: 400; color: var(--muted); }
body .ask-grid [hidden] { display: none; }
body .ask-grid textarea { min-height: 110px; resize: vertical; }
body .ask .ts { min-height: 0; }
body .ask-note { margin: 12px 0 0; font-size: .82rem; color: var(--muted); }
body .ask-note a { color: var(--orange-text); font-weight: 700; }
body .ask-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin-top: 16px; }
body .ask-foot .btn :is(svg,:where(.tag-svg)) { width: 20px; height: 20px; }
body .ask-foot .btn :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { display: inline-flex; align-items: center; gap: .5em; }
body .ask-foot .btn :is(span:where(:not([class*="tag-"])),:where(.tag-span))[hidden] { display: none; }
body .ask[data-via="wa"] .ask-foot .btn { --bg: #25d366; --fg: #fff; }
body .ask .form-msg { grid-column: auto; flex: 1 1 200px; color: #b0302f; font-size: .9rem; }
body .ask-done { text-align: center; }
body .ask-done .check { width: 64px; height: 64px; margin: 6px auto 10px; display: block; }
body .ask-done h3 { margin: 0 0 8px; font-size: clamp(1.7rem, 5vw, 2.2rem); }
body .ask-done h3 :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { color: var(--orange-text); }
body .ask-done p { margin: 0 auto 10px; max-width: 42ch; color: #3f556a; }
body .ask-done .ask-proto { font-size: .8rem; color: var(--muted); }
body .ask-done .btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 18px; }
body .ask-done .btn :is(svg,:where(.tag-svg)) { width: 18px; height: 18px; }
@media (max-width: 560px) {
  body .ask { width: 100vw; max-width: 100vw; max-height: 94svh; margin: auto 0 0; border-radius: 24px 24px 0 0; }
  body .ask[open] { animation: sheetIn .45s var(--ease); }
  body .ask-grid { grid-template-columns: 1fr; }
  body .ask-via :is(label,:where(.tag-label)) > :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { grid-template-columns: 32px 1fr; column-gap: 10px; padding: 11px 10px; }
  body .ask-via :is(svg,:where(.tag-svg)) { width: 32px; height: 32px; padding: 6px; }
  body .ask-via :is(b,:where(.tag-b)) { font-size: 1rem; }
  body .ask-via :is(small,:where(.tag-small)) { font-size: .74rem; }
  body .ask-foot .btn { width: 100%; justify-content: center; }
}
@keyframes sheetIn { from { transform: translateY(40%); opacity: 0; } }
body .ask[data-via="wa"] .ask-foot .btn::before, body .ask-done .btn:has(:is(svg,:where(.tag-svg)))::before { display: none; }

/* Fix (Audit 11.10.): Reservierungsformular auf dem Handy nicht breiter als die Kachel */
@media (max-width: 560px) {
  body .book-form { grid-template-columns: minmax(0, 1fr); }
  body .book-form > * { grid-column: 1 / -1; min-width: 0; }
  body .book-form .ts { overflow: hidden; }
}

/* ================= Weinkarte (weinkarte.html) ================= */
body .sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
body .wk-page { --page: #170b16; }
body .wk-hero { padding-bottom: 0; background: radial-gradient(120% 90% at 20% 0%, #4a2446 0%, #2a1228 45%, #170b16 100%); }
body .wk-hero .bento { padding: 0; }
body .wk-intro { min-height: 380px; justify-content: flex-end; }
body .wk-intro h1 { font-size: clamp(2.8rem, 6vw, 5.4rem); line-height: .86; margin: 10px 0 14px; }
body .wk-intro h1 :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { display: block; color: var(--apricot); }
body .wk-intro p { max-width: 58ch; color: rgba(255,255,255,.82); margin: 0 0 10px; }
body .wk-intro .wk-note { font-size: .85rem; color: rgba(255,255,255,.6); }
body .crumbs { position: relative; z-index: 2; display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: auto; padding-bottom: 28px; font: 600 .74rem var(--kus-text); letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.6); }
body .crumbs a { color: #fff; text-decoration: none; } body .crumbs a:hover { color: var(--apricot); }
body .wk-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 14px; align-content: center; color: var(--brombeere); }
body .wk-stats :is(b,:where(.tag-b)) { display: block; font: italic 800 clamp(2.6rem, 4.6vw, 3.8rem)/.9 var(--kus-display); font-stretch: 75%; }
body .wk-stats :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { display: block; margin-top: 4px; font-size: .86rem; font-weight: 600; line-height: 1.3; }
body .wk-sec { padding-top: clamp(28px, 4vw, 48px); }
body .wk-tools { position: sticky; top: 78px; z-index: 5; display: grid; gap: 12px; padding: 16px 18px; background: rgba(23,11,22,.88); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
body .wk-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; }
body .wk-chips { display: flex; flex-wrap: wrap; gap: 6px; }
body .wk-chips button { display: inline-flex; align-items: center; gap: 7px; min-height: 40px; padding: 0 14px; border: 0; border-radius: 999px; background: rgba(255,255,255,.07); box-shadow: inset 0 0 0 1px rgba(255,255,255,.14); color: #fff; font: 600 .88rem var(--kus-text); cursor: pointer; transition: background .2s, box-shadow .2s, color .2s; }
body .wk-chips button:hover { background: rgba(255,255,255,.13); }
body .wk-chips button[aria-pressed="true"] { background: var(--apricot); color: var(--brombeere); box-shadow: none; }
body .wk-chips.small button { min-height: 36px; font-size: .82rem; }
body .wk-search input { min-height: 42px; width: min(280px, 100%); border-radius: 999px; border: 0; background: rgba(255,255,255,.08); box-shadow: inset 0 0 0 1px rgba(255,255,255,.16); color: #fff; padding: 0 16px; }
body .wk-search input::placeholder { color: rgba(255,255,255,.5); }
body .wk-search input:focus { box-shadow: inset 0 0 0 2px var(--apricot); }
body .wk-count { font-size: .82rem; color: rgba(255,255,255,.6); font-weight: 600; }
body .wk-jump { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; margin: 0 -4px; padding: 0 4px; }
body .wk-jump::-webkit-scrollbar { display: none; }
body .wk-jump a { flex: none; padding: 6px 12px; border-radius: 8px; background: rgba(245,154,107,.12); color: var(--apricot); font: 700 .78rem var(--kus-text); text-decoration: none; }
body .wk-jump a:hover { background: rgba(245,154,107,.22); }
body .wk-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--kus-gap); align-items: start; }
body .wk-st { scroll-margin-top: 250px; position: relative; padding: clamp(18px, 2.2vw, 28px); border-radius: var(--radius); background: var(--g-brombeere); box-shadow: inset 0 0 0 1px rgba(255,255,255,.06); transition: box-shadow .4s; }
body .wk-st.here { box-shadow: inset 0 0 0 2px var(--apricot), 0 0 0 6px rgba(245,154,107,.15); }
body .wk-st.here::after { content: "Du bist hier"; position: absolute; top: 16px; right: 16px; padding: 5px 10px; border-radius: 8px; background: var(--apricot); color: var(--brombeere); font: 700 .7rem var(--kus-text); letter-spacing: .1em; text-transform: uppercase; }
body .wk-welcome { grid-column: 1 / -1; background: linear-gradient(120deg, rgba(245,154,107,.16), rgba(255,255,255,.03)); }
body .wk-head { display: grid; grid-template-columns: auto 92px 1fr; gap: 16px; align-items: center; }
body .wk-nr { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--apricot); color: var(--brombeere); font: italic 800 1.3rem var(--kus-display); font-stretch: 75%; }
body .wk-head .wl { width: 92px; height: 70px; padding: 10px; border-radius: 12px; }
body .wk-head h2 { font-size: clamp(1.5rem, 2.4vw, 2rem); margin: 4px 0 6px; color: #fff; }
body .wk-head .lb { color: var(--apricot); }
body .wk-head p { margin: 0; color: rgba(255,255,255,.78); font-size: .92rem; }
body .wk-link { font: 600 .84rem var(--kus-text); color: rgba(255,255,255,.75); text-underline-offset: .25em; }
body .wk-link::after { content: " ↗"; }
body .wk-link:hover { color: var(--apricot); }
body .wk-wines { list-style: none; margin: 18px 0 0; padding: 0; display: grid; gap: 2px; }
body .wk-w { display: grid; grid-template-columns: 14px 1fr 44px; align-items: center; gap: 12px; padding: 10px 6px 10px 12px; border-radius: 12px; transition: background .2s; }
body .wk-w:hover { background: rgba(255,255,255,.05); }
body .wk-w + .wk-w { box-shadow: 0 -1px 0 rgba(255,255,255,.07); }
body .wk-t :is(b,:where(.tag-b)) { display: block; font: italic 800 1.18rem/1.05 var(--kus-display); font-stretch: 75%; text-transform: uppercase; color: #fff; }
body .wk-t :is(small,:where(.tag-small)) { display: block; margin-top: 2px; font-size: .84rem; color: rgba(255,255,255,.62); }
body .wk-dot { width: 12px; height: 12px; border-radius: 50%; flex: none; display: inline-block; background: rgba(255,255,255,.25); box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.35); }
body [data-typ="weiss"] > .wk-dot, body .wk-dot[data-t="weiss"] { background: #f3e7a6; box-shadow: none; }
body [data-typ="rose"] > .wk-dot, body .wk-dot[data-t="rose"] { background: #f2a3a8; box-shadow: none; }
body [data-typ="sekt"] > .wk-dot, body .wk-dot[data-t="sekt"] { background: radial-gradient(circle at 35% 35%, #fff 0 18%, #f0dc8a 20%); box-shadow: none; }
body [data-typ="frei"] > .wk-dot, body .wk-dot[data-t="frei"] { background: #8fd3a8; box-shadow: none; }
body .wk-fav { width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-radius: 50%; background: transparent; color: rgba(255,255,255,.55); cursor: pointer; transition: color .2s, background .2s; }
body .wk-fav :is(svg,:where(.tag-svg)) { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; transition: fill .2s; }
body .wk-fav:hover { background: rgba(255,255,255,.08); color: #fff; }
body .wk-fav[aria-pressed="true"] { color: var(--apricot); }
body .wk-fav[aria-pressed="true"] :is(svg,:where(.tag-svg)) { fill: currentColor; }
body .wk-fav.pop :is(svg,:where(.tag-svg)) { animation: favPop .45s var(--ease); }
@keyframes favPop { 40% { transform: scale(1.35); } }
body .wk-empty { grid-column: 1 / -1; padding: 30px; text-align: center; color: rgba(255,255,255,.7); }
body .wk-empty button { margin-left: 8px; border: 0; background: none; color: var(--apricot); font: 700 1rem var(--kus-text); text-decoration: underline; cursor: pointer; }
body .wk-cta { min-height: 230px; justify-content: flex-end; }
body .wk-fab { position: fixed; right: 18px; bottom: 22px; z-index: 40; display: inline-flex; align-items: center; gap: 8px; min-height: 52px; padding: 0 18px; border: 0; border-radius: 999px; background: var(--g-brombeere); box-shadow: inset 0 0 0 1.5px rgba(245,154,107,.5), 0 14px 34px rgba(0,0,0,.45); color: #fff; font: italic 800 1.05rem var(--kus-display); font-stretch: 75%; text-transform: uppercase; cursor: pointer; transition: transform .3s var(--ease), background .3s; }
body .wk-fab :is(svg,:where(.tag-svg)) { width: 20px; height: 20px; fill: var(--apricot); }
body .wk-fab :is(b,:where(.tag-b)) { min-width: 24px; height: 24px; display: grid; place-items: center; padding: 0 6px; border-radius: 12px; background: rgba(255,255,255,.14); font: 700 .8rem var(--kus-text); }
body .wk-fab.has :is(b,:where(.tag-b)) { background: var(--apricot); color: var(--brombeere); }
body .wk-fab:hover { transform: translateY(-2px); }
body .wk-dlg { width: min(560px, calc(100vw - 20px)); max-height: calc(100svh - 24px); border: 0; padding: 0; border-radius: 24px; overflow: hidden auto; background: #241022; color: #fff; box-shadow: 0 30px 90px rgba(0,0,0,.6); }
body .wk-dlg::backdrop { background: rgba(10,4,10,.75); backdrop-filter: blur(6px); }
body .wk-dlg[open] { animation: popIn .45s var(--ease); }
body .wk-dlg header { position: relative; padding: 24px 24px 16px; background: var(--g-brombeere); }
body .wk-dlg header .lb { color: var(--apricot); }
body .wk-dlg header h2 { margin-top: 6px; font-size: 2.2rem; } body .wk-dlg header h2 :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { color: var(--apricot); }
body .wk-x { position: absolute; top: 16px; right: 16px; width: 42px; height: 42px; border: 0; border-radius: 12px; background: rgba(255,255,255,.12); color: #fff; font: 700 1.5rem/1 var(--kus-text); cursor: pointer; }
body .wk-dlg-body { padding: 8px 24px; }
body .wk-fg { padding: 14px 0; } body .wk-fg + .wk-fg { border-top: 1px solid rgba(255,255,255,.1); }
body .wk-fg-h { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 6px; }
body .wk-fg-h a { font-size: .84rem; font-weight: 700; color: var(--apricot); }
body .wk-fg-h a::after { content: " ↗"; }
body .wk-fg :is(ul,:where(.tag-ul)) { list-style: none; margin: 0; padding: 0; }
body .wk-fg :is(li,:where(.tag-li)) { display: grid; grid-template-columns: 12px 1fr 36px; gap: 10px; align-items: center; padding: 6px 0; }
body .wk-fg :is(li,:where(.tag-li)) :is(b,:where(.tag-b)) { display: block; } body .wk-fg :is(li,:where(.tag-li)) :is(small,:where(.tag-small)) { color: rgba(255,255,255,.6); font-size: .8rem; }
body .wk-fg :is(li,:where(.tag-li)) button { width: 36px; height: 36px; border: 0; border-radius: 10px; background: rgba(255,255,255,.08); color: #fff; font-size: 1.2rem; cursor: pointer; }
body .wk-none { color: rgba(255,255,255,.75); padding: 12px 0; }
body .wk-dlg footer { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; padding: 14px 24px 24px; }
body .wk-dlg footer :is(small,:where(.tag-small)) { color: rgba(255,255,255,.55); }
body .wk-dlg footer .btn { --bg: var(--g-apricot); --fg: var(--brombeere); }
@media (max-width: 900px) {
  body .wk-list { grid-template-columns: 1fr; }
  body .wk-tools { top: 68px; }
}
@media (max-width: 560px) {
  body .wk-intro { min-height: 0; }
  body .wk-head { grid-template-columns: auto 1fr; }
  body .wk-head .wl { display: none; }
  body .wk-search { width: 100%; } body .wk-search input { width: 100%; }
  body .wk-tools { position: static; }
  body .wk-fab { bottom: 96px; right: auto; left: 12px; }
  body .wk-fab :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { display: none; }
}
body .wk-tools > * { width: 100%; justify-self: stretch; }
body .wk-tools { align-items: stretch; }
body .wk-tools { grid-template-columns: minmax(0, 1fr); justify-content: stretch; align-content: start; min-height: 0; }

/* ================= Gipfel-Übergang: Glas → Badge → Zeichen ================= */
body .gipfel { padding: 14px; gap: 10px; justify-content: space-between; background: radial-gradient(90% 80% at 40% 35%, #5c3358 0%, #3f1d3c 55%, #2a1228 100%); }
body .g-stage { position: relative; flex: 1; min-height: 300px; border-radius: 16px; overflow: hidden; background: radial-gradient(70% 70% at 50% 45%, rgba(255,255,255,.06), rgba(0,0,0,.18)); }
body .g-glass, body .g-mark { position: absolute; inset: 0; margin: auto; height: 92%; width: auto; max-width: 92%; object-fit: contain; }
body .g-glass { aspect-ratio: 1; transform-origin: 22% 58.4%; transition: transform 1.6s var(--ease), opacity 1.2s var(--ease), filter 1.2s var(--ease); }
body .g-ring { position: absolute; left: 50%; top: 50%; width: 60%; aspect-ratio: 1; translate: -50% -50%; border-radius: 50%; box-shadow: 0 0 0 2px var(--apricot), 0 0 40px 10px rgba(245,154,107,.35); opacity: 0; scale: .8; transition: opacity .8s var(--ease) .5s, scale 1s var(--ease) .5s; pointer-events: none; }
body .g-mark { height: 78%; opacity: 0; transform: translate(-28%, 8.4%) scale(.12); transition: transform 1.5s var(--ease), opacity .9s var(--ease); filter: drop-shadow(0 18px 40px rgba(0,0,0,.4)); }
/* Akt 2: ins Badge zoomen */
body .gipfel[data-act="2"] .g-glass { transform: translate(28%, -8.4%) scale(3.4); }
body .gipfel[data-act="2"] .g-ring { opacity: 1; scale: 1; }
/* Akt 3: aus den Gipfeln wächst das Zeichen */
body .gipfel[data-act="3"] .g-glass { transform: translate(28%, -8.4%) scale(3.4); opacity: .14; filter: blur(2px); }
body .gipfel[data-act="3"] .g-ring { opacity: 0; scale: 1.6; transition-delay: 0s; }
body .gipfel[data-act="3"] .g-mark { opacity: 1; transform: none; transition-delay: .25s; }
body .g-cap { margin: 0; padding: 4px 6px 0; min-height: 3.2em; }
body .g-cap :is(b,:where(.tag-b)) { display: block; font: italic 800 1.3rem/1.1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; color: var(--apricot); }
body .g-cap :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { font-size: .92rem; color: rgba(255,255,255,.8); }
body .g-steps { display: flex; gap: 6px; padding: 0 6px 6px; }
body .g-steps button { position: relative; flex: 1; min-height: 40px; overflow: hidden; border: 0; border-radius: 10px; background: rgba(255,255,255,.07); color: rgba(255,255,255,.75); font: 600 .84rem var(--kus-text); cursor: pointer; transition: background .2s, color .2s; }
body .g-steps button[aria-pressed="true"] { background: rgba(245,154,107,.18); color: #fff; }
body .g-steps button::after { content: ""; position: absolute; left: 0; bottom: 0; height: 3px; width: 0; background: var(--apricot); }
body .gipfel.playing .g-steps button[aria-pressed="true"]::after { animation: gStep var(--g-dur, 3.6s) linear forwards; }
@keyframes gStep { to { width: 100%; } }
@media (max-width: 680px) { body .g-stage { min-height: 260px; } }
@media (prefers-reduced-motion: reduce) { body .g-glass, body .g-mark, body .g-ring { transition: none; } }
body .gipfel > * { align-self: stretch; width: 100%; }

/* ================= Mittwoch: Sportarten als Reiter ================= */
body .sp-tabs { grid-template-rows: 1fr 1fr 1fr auto; }
body .sp-tabs .sport { position: relative; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 4px; width: 100%; border: 0; text-align: left; cursor: pointer; color: #fff; background: rgba(255,255,255,.05); box-shadow: inset 0 0 0 1px rgba(255,255,255,.1); font: inherit; transition: background .35s var(--ease), color .35s, box-shadow .35s, transform .5s var(--ease); }
body .sp-tabs .sport::before, body .sp-tabs .sport::after { display: none; }
body .sp-tabs .sport:hover { background: rgba(255,255,255,.1); }
body .sp-tabs .sport.on { background: var(--g-orange); color: var(--navy); box-shadow: 0 18px 40px rgba(255,122,47,.25); }
body .sp-tabs .sport:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; }
body .sp-go { position: absolute; right: 22px; top: 50%; width: 42px; height: 42px; margin-top: -21px; border-radius: 50%; background: rgba(255,255,255,.1); transition: background .3s, transform .4s var(--ease); }
body .sp-go::before { content: ""; position: absolute; left: 50%; top: 50%; width: 10px; height: 10px; margin: -5px 0 0 -7px; border-top: 2.5px solid currentColor; border-right: 2.5px solid currentColor; transform: rotate(45deg); }
body .sp-tabs .sport:hover .sp-go { transform: translateX(4px); }
body .sp-tabs .sport.on .sp-go { background: var(--navy); color: #fff; transform: rotate(180deg); }
body .sp-note { margin: 2px 4px 0; font-size: .86rem; color: rgba(255,255,255,.6); }
body .sp-panel { overflow: hidden; }
body .sp-bg { position: absolute; inset: 0; z-index: 0 !important; }
body .sp-bg img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.08); transition: opacity .8s var(--ease), transform 1.6s var(--ease); }
body .sp-bg img.on { opacity: 1; transform: none; }
body .sp-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15,42,68,.35) 0%, rgba(15,42,68,.72) 40%, rgba(11,32,54,.96) 100%), linear-gradient(90deg, rgba(11,32,54,.7), transparent 75%); }
body .sp-panel h2 { margin-top: auto; }
body .sp-panel h2 .sp-k { color: #fff; display: inline; }
body .sp-panel h2 [data-sp="h"] { display: inline; color: var(--orange); }
body .sp-txt { max-width: 46ch; color: rgba(255,255,255,.85); margin: 0 0 6px; }
body .sp-panel.sp-anim [data-sp] { animation: spIn .55s var(--ease) both; }
body .sp-panel.sp-anim [data-sp="p"] { animation-delay: .06s; } body .sp-panel.sp-anim [data-sp="ul"] { animation-delay: .12s; }
@keyframes spIn { from { opacity: 0; transform: translateY(10px); } }
@media (max-width: 960px) { body .sp-tabs { grid-template-columns: repeat(3, 1fr); grid-template-rows: auto; } body .sp-note { grid-column: 1 / -1; } body .sp-go { display: none; } body .sp-panel { order: 2; } }
@media (max-width: 560px) { body .sp-tabs { grid-template-columns: 1fr 1fr 1fr; gap: 6px; } body .sp-tabs .sport { padding: 12px 10px; } body .sp-tabs .sport :is(b,:where(.tag-b)) { font-size: 1.05rem; } body .sp-tabs .sport :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { display: none; } }
@media (prefers-reduced-motion: reduce) { body .sp-bg img, body .sp-panel.sp-anim [data-sp] { transition: none; animation: none; } }
body .g-ring { width: auto; height: 66%; }
body .g-glass { transform-origin: 22.4% 60.5%; }
body .gipfel[data-act="2"] .g-glass, body .gipfel[data-act="3"] .g-glass { transform: translate(27.6%, -10.5%) scale(3.4); }
body .g-mark { transform: translate(-27.6%, 10.5%) scale(.12); }
body .g-ring { height: 84%; }

/* Menü: Hintergrund färbt sich beim Überfahren der Welten */
@property --mbg { syntax: "<color>"; inherits: true; initial-value: rgba(8,20,34,.94); }
@property --mglow { syntax: "<color>"; inherits: true; initial-value: rgba(43,69,96,.0); }
body .mnav-in { --mbg: rgba(8,20,34,.94); --mglow: rgba(43,69,96,0); position: relative; isolation: isolate; background: var(--mbg); transition: --mbg .55s var(--ease), --mglow .55s var(--ease); }
body .mnav-in::before { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none; background: radial-gradient(70% 90% at 18% 30%, var(--mglow), transparent 70%); }
body .mnav-in[data-hover="start"] { --mbg: rgba(13,36,58,.96); --mglow: rgba(90,130,170,.28); }
body .mnav-in[data-hover="beachsport"] { --mbg: rgba(12,32,52,.97); --mglow: rgba(255,122,47,.30); }
body .mnav-in[data-hover="weinwanderung"] { --mbg: rgba(40,16,38,.97); --mglow: rgba(245,154,107,.32); }
body .mnav-in[data-hover="bierwanderung"] { --mbg: rgba(14,36,24,.97); --mglow: rgba(242,181,31,.30); }
body .mnav .mcol a[data-w] .ico { transition: background .35s, color .35s; }
body .mnav .mcol a[data-w="beachsport"]:is(:hover, :focus-visible) .ico { background: var(--orange); color: var(--navy); }
body .mnav .mcol a[data-w="weinwanderung"]:is(:hover, :focus-visible) .ico { background: var(--apricot); color: var(--brombeere); }
body .mnav .mcol a[data-w="bierwanderung"]:is(:hover, :focus-visible) .ico { background: var(--gold); color: var(--hopfen); }
body .mnav .mcol a[data-w="start"]:is(:hover, :focus-visible) .ico { background: #fff; color: var(--navy); }
@media (prefers-reduced-motion: reduce) { body .mnav-in { transition: none; } }


/* =====================================================================
   Elementor / Hello-Anpassungen (WordPress)
   ===================================================================== */
/* Elementor-Hüllen der KuS-Widgets ohne eigene Abstände */
body .elementor-widget-kus, body .elementor-widget-kus > .elementor-widget-container { margin: 0; padding: 0; }
body .elementor-location-header .e-con, body .elementor-location-footer .e-con { --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; --kus-gap: 12px; }
/* Elementor-Buttons (Button-Widget) im KuS-Look */
body .elementor-button { background: var(--g-orange); color: var(--navy); border-radius: 10px; font: italic 800 1.08rem/1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; }
body .elementor-button:hover { color: var(--navy); }
/* Elementor-Kit setzt line-height in em (wird als px vererbt) – wie im Prototyp relativ halten */
body[class*="elementor-kit-"] { line-height: 1.6; }
body .acct-btn { color: #fff; text-decoration: none; }
/* Abschnitte innerhalb einer Welt-Seite: Abstand wie .view .sec im Prototyp; gemeinsame Abschnitte (Entdecken, Anfahrt, Kontakt) behalten den großen Abstand */
body [data-elementor-type="wp-page"] .sec { padding-top: clamp(40px, 6vw, 80px); }
body [data-elementor-type="wp-page"] :is(.sec.others, #anfahrt, #kontakt) { padding-top: clamp(72px, 9vw, 120px); }
/* „Noch mehr entdecken“: auf der Übersicht keine Welt-Kacheln, auf Welt-Seiten die eigene Welt ausblenden */
body[data-welt="start"] [data-hide-on], body[data-welt="beachsport"] [data-hide-on="beachsport"], body[data-welt="weinwanderung"] [data-hide-on="weinwanderung"], body[data-welt="bierwanderung"] [data-hide-on="bierwanderung"] { display: none !important; }
/* Elementor nimmt Links die Unterstreichung – nur Textlinks in Fließtext wie im Prototyp unterstreichen (nicht Navigation/Kacheln) */
body .elementor :is(.elementor-widget-kus, .e-atomic-element) :is(p, :is(li,:where(.tag-li)), :is(dd,:where(.tag-dd)), :is(small,:where(.tag-small)), .clist, .sec-head, .note-s, .hint-s) a:not([class]) { text-decoration: underline; text-underline-offset: .2em; }
/* Textlinks als Elementor-Button (z. B. „Strecke bei Komoot ansehen“) unterstrichen wie im Prototyp */
body .elementor .sec-head a.link { text-decoration: underline; text-underline-offset: .2em; }
/* Welt-Hintergrund vor der Kit-Farbe */
body[class*="elementor-kit-"] { background-color: var(--page); }

/* Welten-Wechsel ohne sichtbares Laden: Seitenübergang (View Transitions) – Header bleibt, Pille gleitet, Inhalt blendet über */
@view-transition { navigation: auto; }
body .top { view-transition-name: kus-header; }
body .tabbar { view-transition-name: kus-tabbar; }
::view-transition-old(root) { animation: kus-vt-out .28s ease both; }
::view-transition-new(root) { animation: kus-vt-in .55s cubic-bezier(.16, 1, .3, 1) both; }
@keyframes kus-vt-out { to { opacity: 0; } }
@keyframes kus-vt-in { from { opacity: 0; transform: translateY(14px); } }
@media (prefers-reduced-motion: reduce) { ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; } }

/* =====================================================================
   WooCommerce: Warenkorb, Kasse, Konto im Look der Prototyp-Kasse
   (Body-Klasse kus-woo; Kopf .co-head kommt aus inc/shop.php)
   ===================================================================== */
body.kus-woo { --wc-field: #fff; --wc-field-fg: var(--navy); --wc-box: rgba(255,255,255,.05); --wc-edge: rgba(255,255,255,.1); }
body.kus-woo .site-main { max-width: none; margin: 0; padding: 0; }
body.kus-woo .checkout.kus-wc { padding-bottom: clamp(56px, 8vw, 110px); }
body.kus-woo .co-head .kicker { margin-top: 6px; }
body.kus-woo .co-head .back { text-decoration: none; }
body.kus-woo .co-head .back:hover { color: #fff; }
body.kus-woo .kus-wc-body { color: #fff; font-size: 1rem; }
body.kus-woo .kus-wc-body a:not([class*="button"]):not(.btn) { color: var(--orange); }
body.kus-woo .kus-wc-body .alignwide { max-width: none; margin: 0; }

/* Raster: Inhalt + Übersicht als Glas-Boxen */
body.kus-woo .wc-block-components-sidebar-layout { display: grid; grid-template-columns: 1.6fr 1fr; gap: var(--kus-gap); align-items: start; margin: 0; }
body.kus-woo .wc-block-components-sidebar-layout .wc-block-components-main, body.kus-woo .wc-block-components-sidebar-layout .wc-block-components-sidebar { width: auto; min-width: 0; margin: 0; padding: clamp(20px, 3vw, 32px); border-radius: var(--radius); background: var(--wc-box); box-shadow: inset 0 0 0 1px var(--wc-edge); }
body.kus-woo .wc-block-components-sidebar-layout .wc-block-components-sidebar { position: sticky; top: 96px; }
@media (max-width: 900px) {
  body.kus-woo .wc-block-components-sidebar-layout { grid-template-columns: 1fr; }
  body.kus-woo .wc-block-components-sidebar-layout .wc-block-components-sidebar { position: static; order: 2; }
  body.kus-woo .wc-block-components-sidebar-layout .wc-block-components-main { order: 1; }
}

/* Überschriften */
body.kus-woo .kus-wc-body :is(h2, h3, .wc-block-components-title, .wc-block-components-checkout-step__title, .wc-block-cart__totals-title) { font: italic 800 clamp(1.5rem, 2.6vw, 2.1rem)/1 var(--kus-display) !important; font-stretch: 75%; text-transform: uppercase; color: #fff; letter-spacing: 0; margin: 0 0 14px; }
body.kus-woo .wc-block-cart__totals-title { display: block; text-align: left; padding: 0 !important; }
body.kus-woo .wc-block-components-checkout-step__description, body.kus-woo .wc-block-components-checkout-step__heading-content { color: rgba(255,255,255,.7); font-size: .9rem; }
body.kus-woo .wc-block-components-checkout-step__heading-content a { color: var(--orange); font-weight: 700; }
body.kus-woo .wc-block-components-checkout-step { margin-bottom: 26px; padding: 0 !important; }
body.kus-woo .wc-block-components-checkout-step::after { display: none; }
body.kus-woo .wc-block-components-checkout-step__container::after { display: none; }

/* Felder wie die Prototyp-Kasse: weiß, runde Ecken, orangener Fokus */
body.kus-woo .kus-wc-body :is(.wc-block-components-text-input, .wc-blocks-components-select, .wc-block-components-textarea) { margin-top: 12px; }
body.kus-woo .kus-wc-body .wc-block-components-text-input input, body.kus-woo .kus-wc-body .wc-blocks-components-select__select, body.kus-woo .kus-wc-body .wc-block-components-textarea, body.kus-woo .kus-wc-body .wc-blocks-components-select__container { background: var(--wc-field) !important; color: var(--wc-field-fg) !important; border: 2px solid var(--line) !important; border-radius: 10px !important; font-family: var(--kus-text); }
body.kus-woo .kus-wc-body .wc-blocks-components-select__container .wc-blocks-components-select__select { border: 0 !important; background: transparent !important; }
body.kus-woo .kus-wc-body .wc-block-components-text-input input { min-height: 54px; }
body.kus-woo .kus-wc-body .wc-block-components-text-input input:focus, body.kus-woo .kus-wc-body .wc-block-components-textarea:focus, body.kus-woo .kus-wc-body .wc-blocks-components-select__container:focus-within { border-color: var(--orange) !important; box-shadow: 0 0 0 4px color-mix(in srgb, var(--orange) 22%, transparent) !important; outline: none; }
body.kus-woo .kus-wc-body :is(.wc-block-components-text-input :is(label,:where(.tag-label)), .wc-blocks-components-select__label) { display: block; color: var(--muted) !important; font-weight: 500; }
body.kus-woo .kus-wc-body .wc-blocks-components-select__expand { fill: var(--navy); }
body.kus-woo .kus-wc-body .wc-block-components-text-input.has-error input { border-color: #e5484d !important; }
body.kus-woo .kus-wc-body .wc-block-components-validation-error { color: #ff9c9f; }
body.kus-woo .kus-wc-body .wc-block-components-address-card { background: rgba(255,255,255,.06); border: 0; border-radius: 12px; color: #fff; }

/* Checkboxen & Auswahl */
body.kus-woo .kus-wc-body .wc-block-components-checkbox :is(label,:where(.tag-label)) { display: flex; align-items: flex-start; gap: 10px; font-size: .92rem; font-weight: 500; color: rgba(255,255,255,.9); }
body.kus-woo .kus-wc-body .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] { min-height: 0; width: 22px; height: 22px; padding: 0; margin: 0; flex: none; border-radius: 6px; border: 2px solid rgba(255,255,255,.5); background: transparent; }
body.kus-woo .kus-wc-body .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked { background: var(--orange); border-color: var(--orange); }
body.kus-woo .kus-wc-body .wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: var(--navy); left: 3px; top: 3px; margin: 0; }
body.kus-woo .kus-wc-body .wc-block-components-checkbox__label { margin-top: 1px; }
body.kus-woo .kus-wc-body :is(.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option) { border-radius: 14px; background: rgba(255,255,255,.06); box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.12); color: #fff; }
body.kus-woo .kus-wc-body :is(.wc-block-components-radio-control__option-checked, .wc-block-components-radio-control-accordion-option--checked-option-highlighted) { background: rgba(255,122,47,.12); box-shadow: inset 0 0 0 2px var(--orange); }
body.kus-woo .kus-wc-body .wc-block-components-radio-control__input { min-height: 0; padding: 0; width: 20px; height: 20px; accent-color: var(--orange); border-color: rgba(255,255,255,.5); background: transparent; }
body.kus-woo .kus-wc-body .wc-block-components-radio-control__input:checked::before { background: var(--orange); }
body.kus-woo .kus-wc-body .wc-block-components-radio-control--highlight-checked::after { display: none; }
body.kus-woo .kus-wc-body .wc-block-components-radio-control--highlight-checked { display: grid; gap: 8px; }
body.kus-woo .kus-wc-body .wc-block-components-radio-control-accordion-content { color: rgba(255,255,255,.75); }

/* Buttons im KuS-Stil */
body.kus-woo .kus-wc-body :is(.wc-block-components-button:not(.is-link), .woocommerce-button, .woocommerce-Button, button.button, a.button) { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .6em; min-height: 54px; padding: .72em 1.3em .72em 1.05em; border: 0; border-radius: 10px; background: var(--g-orange); color: var(--navy) !important; font: italic 800 1.12rem/1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; text-decoration: none; cursor: pointer; box-shadow: none; transition: transform .35s var(--ease), box-shadow .35s var(--ease); }
body.kus-woo .kus-wc-body :is(.wc-block-components-button:not(.is-link), .woocommerce-button, .woocommerce-Button, button.button, a.button)::before { content: ""; width: .8em; height: .68em; flex: none; background: currentColor; clip-path: polygon(50% 0, 100% 100%, 0 100%); }
body.kus-woo .kus-wc-body :is(.wc-block-components-button:not(.is-link), .woocommerce-button, .woocommerce-Button, button.button, a.button):hover { transform: translateY(-2px); box-shadow: 0 2px 4px rgba(0,0,0,.18), 0 12px 26px rgba(0,0,0,.28); background: var(--g-orange); }
body.kus-woo .kus-wc-body .wc-block-components-checkout-place-order-button { --g-orange: linear-gradient(160deg, #3fcf86, #2f9e6b 60%, #23845a); color: #fff !important; }
body.kus-woo .kus-wc-body .wc-block-components-button:not(.is-link) .wc-block-components-button__text { color: inherit; }
body.kus-woo .kus-wc-body .wc-block-components-button.is-link, body.kus-woo .kus-wc-body .wc-block-components-checkout-return-to-cart-button { color: rgba(255,255,255,.75) !important; font-weight: 700; text-decoration: none; }
body.kus-woo .kus-wc-body .wc-block-components-checkout-return-to-cart-button :is(svg,:where(.tag-svg)) { fill: currentColor; }
body.kus-woo .kus-wc-body .wc-block-cart__submit-container { padding: 0; margin-top: 16px; }
body.kus-woo .kus-wc-body .wc-block-cart__submit-button { width: 100%; }

/* Positionen & Summen */
body.kus-woo .kus-wc-body .wc-block-cart-items { border: 0; margin: 0; }
body.kus-woo .kus-wc-body .wc-block-cart-items__header { color: rgba(255,255,255,.55); font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; border-bottom: 1px solid rgba(255,255,255,.12) !important; }
body.kus-woo .kus-wc-body .wc-block-cart-items__header th { padding-bottom: 10px; }
body.kus-woo .kus-wc-body .wc-block-cart-items__row { border-bottom: 1px solid rgba(255,255,255,.1) !important; }
body.kus-woo .kus-wc-body .wc-block-cart-items__row td { padding-top: 16px !important; padding-bottom: 16px !important; border: 0 !important; }
body.kus-woo .kus-wc-body .wc-block-cart-item__image img, body.kus-woo .kus-wc-body .wc-block-components-order-summary-item__image img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 10px; background: #e4e7ec; }
body.kus-woo .kus-wc-body .wc-block-components-product-name { color: #fff !important; font-weight: 700; font-size: 1.05rem; text-decoration: none; }
body.kus-woo .kus-wc-body :is(.wc-block-components-product-metadata, .wc-block-components-product-details, .wc-block-cart-item__prices, .wc-block-components-order-summary-item__individual-prices) { color: rgba(255,255,255,.6); font-size: .85rem; }
body.kus-woo .kus-wc-body .wc-block-cart-item__total .wc-block-components-product-price__value, body.kus-woo .kus-wc-body .wc-block-components-order-summary-item__total-price { font: italic 800 1.35rem/1 var(--kus-display); font-stretch: 75%; color: #fff; }
body.kus-woo .kus-wc-body .wc-block-components-quantity-selector { width: auto; border: 0 !important; border-radius: 10px; background: rgba(255,255,255,.1); padding: 3px; display: inline-flex; align-items: center; gap: 4px; }
body.kus-woo .kus-wc-body .wc-block-components-quantity-selector::after { display: none; }
body.kus-woo .kus-wc-body .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input { order: 2; width: 40px; min-width: 0; min-height: 0; height: 32px; padding: 0; border: 0 !important; background: transparent !important; color: #fff !important; font: italic 800 1.2rem var(--kus-display); text-align: center; box-shadow: none !important; }
body.kus-woo .kus-wc-body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button { width: 32px; min-width: 32px; height: 32px; border-radius: 8px; background: rgba(255,255,255,.12); color: #fff; opacity: 1; font: 700 1.1rem/1 var(--kus-text); }
body.kus-woo .kus-wc-body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button--minus { order: 1; }
body.kus-woo .kus-wc-body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button--plus { order: 3; }
body.kus-woo .kus-wc-body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover:not(:disabled) { background: var(--orange); color: var(--navy); }
body.kus-woo .kus-wc-body .wc-block-cart-item__remove-link { color: rgba(255,255,255,.6) !important; font-size: .8rem !important; font-weight: 600; text-decoration: underline !important; }
body.kus-woo .kus-wc-body .wc-block-components-totals-wrapper { border-top: 1px solid rgba(255,255,255,.12) !important; padding: 12px 0 !important; }
body.kus-woo .kus-wc-body .wc-block-components-totals-wrapper:empty { display: none; }
body.kus-woo .kus-wc-body .wc-block-components-totals-item { padding: 4px 0; color: rgba(255,255,255,.8); }
body.kus-woo .kus-wc-body .wc-block-components-totals-item__value { font-weight: 700; color: #fff; }
body.kus-woo .kus-wc-body .wc-block-components-totals-footer-item .wc-block-components-totals-item__label { color: #fff; font-weight: 700; font-size: 1.05rem; }
body.kus-woo .kus-wc-body .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font: italic 800 2rem/1 var(--kus-display); font-stretch: 75%; color: var(--orange); }
body.kus-woo .kus-wc-body .wc-block-components-totals-footer-item-tax, body.kus-woo .kus-wc-body .wc-gzd-small-business-info, body.kus-woo .kus-wc-body .wc-block-components-totals-item__description { color: rgba(255,255,255,.55); font-size: .8rem; }
body.kus-woo .kus-wc-body .wc-block-components-panel__button { color: #fff; font-weight: 700; font-size: .95rem; }
body.kus-woo .kus-wc-body .wc-block-components-panel__button-icon { fill: currentColor; }
body.kus-woo .kus-wc-body .wc-block-components-order-summary .wc-block-components-panel__button { margin: 0; padding-top: 0; }
body.kus-woo .kus-wc-body .wc-block-components-order-summary-item { padding: 10px 0; border: 0; }
body.kus-woo .kus-wc-body .wc-block-components-order-summary-item__quantity { background: var(--orange); color: var(--navy); border: 0; box-shadow: none; font-weight: 800; }
body.kus-woo .kus-wc-body .wc-block-components-order-summary-item__description .wc-block-components-product-name { font-size: .95rem; }
body.kus-woo .kus-wc-body .wc-block-components-product-badge { border-color: var(--orange); color: var(--orange); border-radius: 6px; }

/* Hinweise */
body.kus-woo .kus-wc-body .wc-block-components-notice-banner, body.kus-woo .kus-wc-body :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) { border-radius: 14px; border: 0; background: rgba(255,255,255,.08); color: #fff; box-shadow: inset 4px 0 0 var(--orange); padding: 14px 18px; list-style: none; margin: 0 0 16px; }
body.kus-woo .kus-wc-body .wc-block-components-notice-banner.is-error, body.kus-woo .kus-wc-body .woocommerce-error { box-shadow: inset 4px 0 0 #e5484d; background: rgba(229,72,77,.12); }
body.kus-woo .kus-wc-body .wc-block-components-notice-banner > :is(svg,:where(.tag-svg)) { fill: #fff; background: var(--orange); }
body.kus-woo .kus-wc-body .wc-block-components-notice-banner.is-error > :is(svg,:where(.tag-svg)) { background: #e5484d; }

/* Leerer Warenkorb (Inhalt der Seite „Warenkorb“) */
body.kus-woo .wp-block-woocommerce-empty-cart-block { display: grid; justify-items: center; gap: 10px; padding: clamp(36px, 6vw, 70px) 20px; text-align: center; border-radius: var(--radius); background: var(--wc-box); box-shadow: inset 0 0 0 1px var(--wc-edge); }
body.kus-woo .wp-block-woocommerce-empty-cart-block .kus-empty-peaks { width: 120px; }
body.kus-woo .wp-block-woocommerce-empty-cart-block p { margin: 0; color: rgba(255,255,255,.7); }
body.kus-woo .wp-block-woocommerce-empty-cart-block .wp-block-buttons { margin-top: 10px; }
body.kus-woo .wp-block-woocommerce-empty-cart-block .wp-block-button__link { display: inline-flex; align-items: center; gap: .6em; min-height: 50px; padding: .72em 1.3em .72em 1.05em; border-radius: 10px; background: var(--g-orange); color: var(--navy); font: italic 800 1.08rem/1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; text-decoration: none; }
body.kus-woo .wp-block-woocommerce-empty-cart-block .wp-block-button__link::before { content: ""; width: .8em; height: .68em; background: currentColor; clip-path: polygon(50% 0, 100% 100%, 0 100%); }
body.kus-woo .wc-block-cart__empty-cart__title.with-empty-cart-icon::before { display: none; }

/* Konto (klassische WooCommerce-Formulare) */
body.kus-woo .woocommerce .col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: var(--kus-gap); width: 100%; }
body.kus-woo .woocommerce .col2-set::before, body.kus-woo .woocommerce .col2-set::after { display: none; }
body.kus-woo .woocommerce .col2-set > div { float: none; width: auto; padding: clamp(20px, 3vw, 32px); border-radius: var(--radius); background: var(--wc-box); box-shadow: inset 0 0 0 1px var(--wc-edge); }
body.kus-woo .woocommerce form.login, body.kus-woo .woocommerce form.register { margin: 0; padding: 0; border: 0; border-radius: 0; }
body.kus-woo .woocommerce form .form-row { display: grid; gap: 6px; padding: 0; margin: 0 0 14px; }
body.kus-woo .woocommerce form .form-row :is(label,:where(.tag-label)) { display: block; font-size: .85rem; font-weight: 600; color: #fff; line-height: 1.4; }
body.kus-woo .woocommerce form .form-row :is(label,:where(.tag-label)).woocommerce-form__label-for-checkbox { display: flex; align-items: center; gap: 10px; font-weight: 500; }
body.kus-woo .woocommerce form .form-row :is(label,:where(.tag-label)).woocommerce-form__label-for-checkbox input { width: 20px; height: 20px; min-height: 0; padding: 0; accent-color: var(--orange); }
body.kus-woo .woocommerce form .form-row .required { color: var(--orange); text-decoration: none; }
body.kus-woo .woocommerce .password-input { display: block; position: relative; }
body.kus-woo .woocommerce .show-password-input { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); border: 0; background: none; color: var(--navy); cursor: pointer; padding: 6px; min-height: 0; }
body.kus-woo .woocommerce .lost_password a, body.kus-woo .woocommerce .woocommerce-privacy-policy-text { color: rgba(255,255,255,.7); font-size: .88rem; }
body.kus-woo .woocommerce .woocommerce-privacy-policy-text a { color: var(--orange); }
body.kus-woo .woocommerce .woocommerce-form-login__rememberme { margin-bottom: 14px; }
body.kus-woo .woocommerce-MyAccount-navigation { float: none; width: auto; margin-bottom: 18px; }
body.kus-woo .woocommerce-MyAccount-navigation :is(ul,:where(.tag-ul)) { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
body.kus-woo .woocommerce-MyAccount-navigation a { display: block; padding: 9px 16px; border-radius: 999px; background: rgba(255,255,255,.06); color: rgba(255,255,255,.8); font-weight: 600; font-size: .92rem; text-decoration: none; }
body.kus-woo .woocommerce-MyAccount-navigation .is-active a { background: #fff; color: var(--navy); }
body.kus-woo .woocommerce-MyAccount-content { float: none; width: auto; padding: clamp(20px, 3vw, 32px); border-radius: var(--radius); background: var(--wc-box); box-shadow: inset 0 0 0 1px var(--wc-edge); }
body.kus-woo .woocommerce-MyAccount-content mark { background: none; color: var(--orange); font-weight: 700; }
body.kus-woo .woocommerce table.shop_table { border: 0; border-collapse: collapse; width: 100%; color: #fff; }
body.kus-woo .woocommerce table.shop_table :is(th, td) { border: 0; border-bottom: 1px solid rgba(255,255,255,.1); padding: 12px 8px; text-align: left; }
@media (max-width: 760px) { body.kus-woo .woocommerce .col2-set { grid-template-columns: 1fr; } }
/* Bestellübersicht in der Kasse */
body.kus-woo .kus-wc-body .wp-block-woocommerce-checkout-order-summary-block { border: 0 !important; border-radius: 0; }
body.kus-woo .kus-wc-body .wc-block-components-order-summary { background: transparent !important; padding: 0 !important; }
body.kus-woo .kus-wc-body .wc-block-components-checkout-order-summary__title { padding: 0 0 12px; border: 0; }
body.kus-woo .kus-wc-body .wc-block-components-checkout-order-summary__title-text { margin: 0; font: italic 800 clamp(1.5rem, 2.6vw, 2.1rem)/1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; color: #fff; }
body.kus-woo .kus-wc-body .wc-block-components-checkout-order-summary__title-icon :is(svg,:where(.tag-svg)) { fill: currentColor; }
body.kus-woo .kus-wc-body .wc-block-components-order-summary :is(h3, .wc-block-components-product-name) { font: 700 .98rem/1.3 var(--kus-text) !important; text-transform: none; letter-spacing: 0; margin: 0 0 4px; color: #fff; }
body.kus-woo .kus-wc-body .wc-block-components-order-summary-item__image { width: 56px; }
body.kus-woo .kus-wc-body .wc-block-components-sidebar .wc-block-components-totals-wrapper, body.kus-woo .kus-wc-body .wp-block-woocommerce-checkout-order-summary-totals-block { border-color: rgba(255,255,255,.12) !important; }
body.kus-woo .kus-wc-body .wc-block-components-sidebar .wc-block-components-panel { padding: 0; }
body.kus-woo .woocommerce form .form-row :is(input.input-text, select, textarea) { width: 100%; box-sizing: border-box; }
body.kus-woo .woocommerce .password-input input { padding-right: 46px; }

/* Mobile: WooCommerce-Sticky-Button würde mit der Tab-Leiste kollidieren – normaler Button reicht */
body.kus-woo .wc-block-cart__submit-container--sticky { display: none !important; }

/* Rechtstexte */
body.kus-legal .site-main { max-width: none; margin: 0; padding: 0; }
body.kus-legal .legal { max-width: var(--max); margin: 0 auto; padding: 100px var(--gut) clamp(56px, 8vw, 110px); }
body.kus-legal .legal .co-head h1 { font-size: clamp(2.8rem, 5vw, 4.4rem); }
body.kus-legal .legal-body { max-width: 72ch; padding: clamp(22px, 3.5vw, 44px); border-radius: var(--radius); background: rgba(255,255,255,.05); box-shadow: inset 0 0 0 1px rgba(255,255,255,.1); color: rgba(255,255,255,.86); font-size: 1rem; overflow-wrap: anywhere; }
body.kus-legal .legal-body h2 { font-size: clamp(1.6rem, 2.8vw, 2.2rem); color: #fff; margin: 1.6em 0 .5em; }
body.kus-legal .legal-body h3 { font: 700 1.02rem/1.3 var(--kus-text); text-transform: none; color: var(--orange); margin: 1.4em 0 .3em; }
body.kus-legal .legal-body :is(h2, h3):first-child, body.kus-legal .legal-body .kus-entwurf + :is(h2, h3) { margin-top: 0; }
body.kus-legal .legal-body p { margin: 0 0 1em; }
body.kus-legal .legal-body :is(ul,:where(.tag-ul)) { margin: 0 0 1em; padding-left: 1.2em; }
body.kus-legal .legal-body a { color: var(--orange); text-decoration: underline; text-underline-offset: .2em; }
body.kus-legal .legal-body :is(strong,:where(.tag-strong)) { color: #fff; }
body .kus-todo { background: #ffe066; color: var(--navy); padding: 0 .25em; border-radius: 4px; font-weight: 600; }
body .kus-entwurf { padding: 14px 18px; border-radius: 14px; background: rgba(255,224,102,.12); box-shadow: inset 4px 0 0 #ffe066; color: #fff; margin-bottom: 1.6em !important; }

/* =====================================================================
   Elementor Atomic: Hilfsregeln, damit Prototyp-Klassen an Elementor-Elementen genauso wirken
   ===================================================================== */
/* Gestaffeltes Einblenden ohne Inline-Stil (--i): Position im Raster; Inline-Werte aus dem Skript haben Vorrang */
body :where(.rv):nth-child(2) { --i: 1; } body :where(.rv):nth-child(3) { --i: 2; } body :where(.rv):nth-child(4) { --i: 3; } body :where(.rv):nth-child(5) { --i: 4; } body :where(.rv):nth-child(6) { --i: 5; }
/* Hintergrundbild einer Kachel als Bild-Element statt CSS-Hintergrund */
body img.ph { width: 100%; height: 100%; object-fit: cover; }
/* Gipfel-Grafik: Container mit [data-peaks], die SVG erzeugt kus.js darin */
body .peaks > :is(svg,:where(.tag-svg)) { display: block; width: 100%; height: auto; overflow: visible; }
/* Elementor setzt in Widgets alle figure-Ränder auf 0 (.elementor .elementor-widget:not(…) figure, sehr hohe Spezifität) –
   die Welt-Karten brauchen die negativen Ränder für das randlose Bild */
body .world-card :is(figure,:where(.tag-figure)):not(#kus) { margin: calc(var(--pad) * -1) calc(var(--pad) * -1) 22px; }
body .mini-photo:not(#kus) { margin: 16px 0 0; }

/* Anfahrt: echte Umgebungskarte (OpenStreetMap-Daten, © OpenStreetMap-Mitwirkende) im KuS-Look */
body .topo.osm { opacity: 0; animation: mapIn 1s var(--ease) forwards; }
@keyframes mapIn { to { opacity: 1; } }
body .topo.osm path { fill: none; vector-effect: non-scaling-stroke; stroke-linejoin: round; stroke-linecap: round; }
body .topo.osm .m-urban path { fill: rgba(255,255,255,.05); }
body .topo.osm .m-green path { fill: rgba(140,200,150,.09); }
body .topo.osm .m-wood path { fill: rgba(70,160,105,.24); }
body .topo.osm .m-water path { fill: rgba(90,160,230,.3); }
body .topo.osm .m-pitch path { fill: rgba(255,122,47,.16); stroke: rgba(255,122,47,.45); stroke-width: 1; }
body .topo.osm .m-building path { fill: rgba(255,255,255,.16); }
body .topo.osm .m-stream path { stroke: rgba(90,160,230,.45); stroke-width: 1.2; }
body .topo.osm .m-river path { stroke: rgba(90,160,230,.55); stroke-width: 6; }
body .topo.osm .m-path path { stroke: rgba(255,255,255,.14); stroke-width: 1; stroke-dasharray: 3 3; }
body .topo.osm .m-minor path { stroke: rgba(255,255,255,.18); stroke-width: 1.4; }
body .topo.osm .m-street path { stroke: rgba(255,255,255,.36); stroke-width: 3; }
body .topo.osm .m-main path { stroke: rgba(255,255,255,.55); stroke-width: 5; }
body .topo.osm .m-rail path { stroke: rgba(255,255,255,.3); stroke-width: 2; stroke-dasharray: 6 4; }
body .topo.osm .m-motorway path { stroke: rgba(242,181,31,.55); stroke-width: 6; }
body .topo.osm .road { stroke-width: 4; vector-effect: non-scaling-stroke; }
body .topo.osm .m-tower { fill: #fff; stroke: var(--orange); stroke-width: 2; vector-effect: non-scaling-stroke; }
body .topo.osm .m-label { font: 600 8px var(--kus-text); letter-spacing: .06em; fill: rgba(255,255,255,.6); paint-order: stroke; stroke: rgba(11,32,54,.85); stroke-width: 3px; }
body .osm-attr { position: absolute !important; right: 12px; bottom: 10px; z-index: 2; font-size: .68rem; color: rgba(255,255,255,.55); }
body .osm-attr a { color: inherit; }
/* Handy: Kartenkachel braucht eine eigene Höhe (im Prototyp fiel sie auf die Höhe der Bildunterschrift zusammen) */
@media (max-width: 760px) { body .map-tile { min-height: 300px; } }
/* Pin auf der echten Karte: dunkler Grund mit orangem Ring, damit die Bildmarke (weißer Turm, oranger Berg) klar lesbar ist */
body .map-tile .pin { background: radial-gradient(circle at 35% 30%, #1d4670, #0b2036 75%); box-shadow: 0 0 0 3px var(--orange), 0 0 0 7px rgba(255,122,47,.25), 0 16px 34px rgba(0,0,0,.55); }
body .map-tile .pin img { width: 50px; }
body .topo.osm .m-tower { display: none; }
body .topo.osm .road { stroke: #f2b51f; }

/* =====================================================================
   Handy-Layout: keine Kachel-Stapel, sondern Rhythmus
   Bausteine (auch in Elementor als Klassen nutzbar):
   rail-m = Wisch-Reihe · duo-m = zwei nebeneinander (wide-m = volle Breite) ·
   bleed-m = randlos · lift-m = schiebt sich über das Element davor · flat-m = ohne Karten-Box
   ===================================================================== */
@media (max-width: 680px) {
  /* Wisch-Reihe: nächste Karte schaut rein, rastet ein */
  body .rail-m { display: grid; grid-template-columns: none !important; grid-auto-flow: column; grid-auto-columns: 84%; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gut); padding-bottom: 6px; scrollbar-width: none; }
  body .rail-m:not(.bento) { margin-inline: calc(var(--gut) * -1); padding-inline: var(--gut); }
  body .rail-m::-webkit-scrollbar { display: none; }
  body .rail-m > * { grid-column: auto !important; scroll-snap-align: start; }
  body .rail-m::after { content: ""; width: 1px; } /* Abstand rechts nach der letzten Karte */

  /* Zwei nebeneinander */
  body .bento.duo-m > * { grid-column: span 6 !important; }
  body .bento.duo-m > .wide-m { grid-column: 1 / -1 !important; }

  /* Randlos */
  body .bleed-m { margin-inline: calc(var(--gut) * -1); border-radius: 0 !important; }

  /* Überlappend */
  body .lift-m { margin-top: -64px; margin-inline: 14px; z-index: 3; box-shadow: 0 -10px 40px rgba(0,0,0,.35), 0 2px 4px rgba(0,0,0,.2); }

  /* Ohne Karten-Box */
  body .tile.flat-m { background: none; box-shadow: none; padding-inline: 0; border-radius: 0; }
  body .tile.flat-m .peaks { display: none; }

  /* ---------- Hero Startseite: Plakat + zwei halbe Kacheln darüber ---------- */
  body .hero { padding: 0 var(--gut) var(--kus-gap); background: none; }
  body .hero-grid { grid-template-columns: 1fr 1fr; grid-template-areas: "count count" "wein bier" "photo gast"; gap: 10px; }
  body .hero-grid > .count { margin-inline: calc(var(--gut) * -1); min-height: 88svh; border-radius: 0 0 32px 32px; padding: 92px var(--gut) 96px; }
  body .count .ph { opacity: .42; }
  body .count::before { background: linear-gradient(180deg, rgba(15,42,68,.15) 0%, rgba(15,42,68,.35) 45%, #0f2a44 92%); }
  body .count h1 { font-size: clamp(3.3rem, 15.5vw, 4.6rem); margin-top: 0; }
  body .count .btns .btn { flex: 1 1 auto; justify-content: center; }
  body .count .peaks.big { display: none; }
  body .hero-grid > .h-wein, body .hero-grid > .h-bier { margin-top: -66px; z-index: 3; min-height: 250px; --pad: 16px; box-shadow: 0 -12px 40px rgba(0,0,0,.4); }
  body .hero-grid > .h-photo, body .hero-grid > .h-gast { min-height: 190px; --pad: 16px; }
  body .h-wein p, body .h-bier p, body .h-gast p { display: none; }
  body .hero-grid h2 { font-size: clamp(1.7rem, 8.4vw, 2.2rem); margin: 6px 0 0; }
  body .hero-grid .lb { font-size: .62rem; letter-spacing: .14em; }
  body .hero-grid .next-date { top: 12px; right: 12px; left: 12px; padding: 7px 10px; border-radius: 10px; }
  body .hero-grid .next-date { left: auto; padding: 6px 9px; }
  body .hero-grid .next-date :is(:is(small,:where(.tag-small)), .nd-s) { display: none; }
  body .hero-grid .next-date :is(:is(b,:where(.tag-b)), .nd-b) { font-size: 1.05rem; margin: 0; }
  body .hero-grid .soon { top: 12px; right: 12px; }
  body .hero-grid .go { width: 34px; height: 34px; right: 12px; bottom: 12px; }
  body .hero-grid .go::before { width: 9px; height: 9px; }
  body .h-photo .cap { margin: auto 10px 10px; font-size: .74rem; padding: 6px 9px; }

  /* ---------- Welten: Wisch-Reihe ---------- */
  body .rail-m .world-card { min-height: 0; }

  /* ---------- Termine: großer Termin + 2×2 kompakt ---------- */
  body .agenda.duo-m > .tile:not(.big) { min-height: 172px; --pad: 16px; padding-bottom: 52px; }
  body .agenda.duo-m > .tile:not(.big) p { display: none; }
  body .agenda.duo-m .when { font-size: 1.25rem; margin: 8px 0 0; padding-bottom: 8px; }
  body .agenda.duo-m h3 { font-size: 1.45rem; }
  body .agenda.duo-m .go { width: 32px; height: 32px; right: 12px; bottom: 12px; }

  /* ---------- Mieten: Anlässe als drei Symbole nebeneinander ---------- */
  body .rent > .who { grid-column: span 4 !important; padding: 14px 10px; align-items: center; text-align: center; }
  body .rent > .who :is(svg,:where(.tag-svg)) { margin-bottom: 6px; }
  body .rent > .who :is(b,:where(.tag-b)) { font-size: 1.02rem; }
  body .rent > .who :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { display: none; }

  /* ---------- Verein: Foto randlos, Zitat schiebt sich darüber ---------- */
  body .quote-s.lift-m { min-height: 0; }

  /* ---------- Galerie: großes Bild randlos ---------- */
  body .gallery > .g-big.bleed-m { min-height: 320px; }

  /* ---------- Gaststätte: Foto randlos, Text darüber ---------- */
  body .gast-photo.bleed-m { min-height: 300px; }

  /* ---------- Anfahrt: Karte randlos, Text ohne Box ---------- */
  body .map-tile.bleed-m { min-height: 340px; }
  body .map-tile.bleed-m .cap { margin-left: var(--gut); }
}

/* Wisch-Reihen: Fortschrittsbalken darunter (wird von kus.js eingefügt, nur am Handy sichtbar) */
body .rail-bar { display: none; }
@media (max-width: 680px) {
  body .rail-bar { display: block; height: 3px; margin: 14px var(--gut) 0; border-radius: 3px; background: rgba(255,255,255,.12); overflow: hidden; }
  body .rail-bar[hidden] { display: none; }
  body .rail-bar :is(i,:where(.tag-i)) { display: block; height: 100%; width: var(--w, 30%); border-radius: 3px; background: var(--wacc, var(--orange)); transform: translateX(var(--x, 0%)); transition: transform .1s linear; }
}

@media (max-width: 680px) {
  /* ---------- Welt-Seiten: Hero als Plakat, Preis + Foto schieben sich darüber, Countdown breit ---------- */
  body .hero-world { padding-top: 0; }
  body .hero-world .bento > .h-xl:first-child { margin-inline: calc(var(--gut) * -1); border-radius: 0 0 32px 32px; min-height: 82svh; padding: 96px var(--gut) 92px; justify-content: flex-end; }
  body .hero-world .bento > .h-xl:first-child .btns .btn { flex: 1 1 auto; justify-content: center; }
  body .hero-world .bento > .h-xl:first-child .peaks { display: none; }
  body .hero-world .stack { position: relative; z-index: 3; margin-top: -68px; grid-template-columns: 1fr 1fr; grid-auto-flow: dense; gap: 10px; }
  body .hero-world .stack > .price-tile { box-shadow: 0 -12px 40px rgba(0,0,0,.4); }
  body .hero-world .stack > .t-photo { grid-column: auto; min-height: 0; box-shadow: 0 -12px 40px rgba(0,0,0,.4); }
  body .hero-world .stack > .date-tile { grid-column: 1 / -1; }
  body .hero-world .next-tile { position: relative; z-index: 3; margin: -68px 14px 0; min-height: 0; box-shadow: 0 -12px 40px rgba(0,0,0,.4); }

  /* ---------- Ablauf: Schritte als Wisch-Reihe, Fotos zu zweit ---------- */
  body .steps-row.rail-m { grid-auto-columns: 74%; }
  body .steps-row.rail-m .tile { min-height: 230px; }
  body .bento.duo-m > :is(figure,:where(.tag-figure)).t-photo { min-height: 200px; }

  /* ---------- Winzer: Wisch-Reihe; Sundowner-Partner zwei nebeneinander, der dritte breit ---------- */
  body .wineries.rail-m { grid-auto-columns: 80%; }
  body .bento > .partner-card { grid-column: span 6 !important; --pad: 16px; }
  body .bento > .partner-card:last-child { grid-column: 1 / -1 !important; }

  /* ---------- Gaststätte auf Welt-Seiten: Foto ist dort ausgeblendet → Karte nicht überlappen ---------- */
  body:not([data-welt="start"]) .gast-photo ~ .lift-m { margin: 0; box-shadow: none; }
}

@media (max-width: 680px) {
  /* ---------- Tickets: zwei nebeneinander wie im Shop ---------- */
  body .products > .prod { grid-column: span 6 !important; }
  body .prod-txt { padding: 12px 12px 14px; }
  body .prod h3 { font-size: 1.15rem; }
  body .prod p { font-size: .8rem; }
  body .prod-foot { flex-direction: column; align-items: stretch; gap: 8px; padding-top: 10px; }
  body .prod-price { font-size: 1.4rem; }
  body .prod-foot .btn { justify-content: center; min-height: 40px; font-size: .9rem; padding: .5em .7em; }
  body .prod-img .soon { top: 8px; right: 8px; }

  /* ---------- Über uns: Welt-Kacheln zu zweit, die dritte breit ---------- */
  body .sec-verein .bento > a.tile.h-s { grid-column: span 6 !important; min-height: 150px; --pad: 16px; }
  body .sec-verein .bento > a.tile.h-s:last-child { grid-column: 1 / -1 !important; }
  body .sec-verein .bento > a.tile.h-s h3 { font-size: 1.5rem; }
}

/* Partner-Logos (Über uns): Desktop Raster, Handy Laufleiste wie auf der Startseite */
body .plogo-dup { display: none !important; }
@media (max-width: 680px) {
  body .plogos { display: flex; width: max-content; gap: 10px; animation: mq 45s linear infinite; }
  body .plogos .plogo-dup { display: grid !important; }
  body .plogos > .plogo { flex: none; width: 150px; height: 84px; }
  body .plogos.dark > .plogo { height: 92px; }
  body .partners:hover .plogos { animation-play-state: paused; }
}
@media (max-width: 680px) and (prefers-reduced-motion: reduce) {
  body .plogos { animation: none; width: auto; overflow-x: auto; scrollbar-width: none; }
  body .plogos .plogo-dup { display: none !important; }
}

/* Newsletter (Brevo): Einladung nach dem Anmelden, Hinweis in „Mein Konto“, Häkchen bei Registrierung */
body .kus-nl { display: grid; gap: 6px; padding: 20px 22px; border-radius: 18px; background: var(--g-navy); color: #fff; box-shadow: 0 2px 6px rgba(0,0,0,.25), 0 24px 60px rgba(0,0,0,.45); }
body .kus-nl :is(b,:where(.tag-b)) { font: italic 800 1.5rem/1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; }
body .kus-nl p { margin: 0; color: rgba(255,255,255,.8); font-size: .92rem; }
body .kus-nl .btns { margin-top: 8px; }
body .kus-nl .kus-nl-msg { color: #fff; font-weight: 600; }
body .kus-nl .kus-nl-msg:empty { display: none; }
body .kus-nl-pop { position: fixed; z-index: 85; right: 24px; bottom: 24px; width: min(420px, calc(100vw - 24px)); animation: nlIn .6s var(--ease) both; transition: transform .5s var(--ease), opacity .5s; }
body .kus-nl-pop.aus { transform: translateY(140%); opacity: 0; pointer-events: none; }
@keyframes nlIn { from { transform: translateY(40px); opacity: 0; } }
@media (max-width: 960px) { body .kus-nl-pop { right: 12px; bottom: 100px; } }
body.kus-woo .kus-nl-box { margin-bottom: 18px; }
body.kus-woo .woocommerce form .kus-nl-opt :is(label,:where(.tag-label)) { align-items: flex-start; font-weight: 500; color: rgba(255,255,255,.85); line-height: 1.45; }
body.kus-woo .woocommerce form .kus-nl-opt input { margin-top: 3px; }
body.kus-woo .woocommerce form .kus-nl-opt a { color: var(--orange); }
@media (prefers-reduced-motion: reduce) { body .kus-nl-pop { animation: none; transition: none; } }

/* =====================================================================
   Tickets (wie die Shop-Mockups): Ticket-Seite /t/…, Druckansicht, „Mein Konto → Meine Tickets“
   ===================================================================== */
body.kus-tk-seite .site-main { max-width: none; margin: 0; padding: 0; }
body .tk-wrap { max-width: 980px; margin: 0 auto; padding: 100px var(--gut) 80px; display: grid; gap: 26px; }
body .tk-head { margin-bottom: 0; } body .tk-head h1 { font-size: clamp(2.6rem, 6vw, 4.4rem); }
body .tk-note { font-size: .85rem; color: rgba(255,255,255,.6); }
body .kt-liste { display: grid; gap: 22px; margin: 14px 0 34px; }
body .kt-link { display: block; color: inherit; text-decoration: none; border-radius: 26px; transition: transform .2s; }
body .kt-link:hover { transform: translateY(-3px); } body .kt-link:focus-visible { outline: 3px solid var(--orange, #ff7a2f); outline-offset: 4px; }
body .kt-konto-kopf { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 18px; }
body .kt-konto-kopf h3 { margin: 0; } body .kt-konto-kopf :is(small,:where(.tag-small)) { font-weight: 500; opacity: .6; font-size: .8em; margin-left: 6px; }

body .kt { --main: #3f1d3c; --main2: #2a1228; --acc: #f59a6b; --stub: #f7a676; --stub2: #ef8a57; --ink: #3f1d3c;
  position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 33%; width: 100%; max-width: 900px; min-height: 380px; border-radius: 26px; overflow: hidden; color: #fff;
  -webkit-mask: radial-gradient(circle 17px at 0 50%, #0000 96%, #000) left / 51% 100% no-repeat, radial-gradient(circle 17px at 100% 50%, #0000 96%, #000) right / 51% 100% no-repeat;
  mask: radial-gradient(circle 17px at 0 50%, #0000 96%, #000) left / 51% 100% no-repeat, radial-gradient(circle 17px at 100% 50%, #0000 96%, #000) right / 51% 100% no-repeat;
  -webkit-print-color-adjust: exact; print-color-adjust: exact; }
body .kt-bier { --main: #1f3d2b; --main2: #12271b; --acc: #f2b51f; --stub: #f6c33c; --stub2: #e9a812; --ink: #1f3d2b; }
body .kt-navy { --main: #0f2a44; --main2: #081828; --acc: #ff7a2f; --stub: #ff9550; --stub2: #ff7a2f; --ink: #0f2a44; }
body .tk-wrap .kt, body .kt-liste .kt { filter: drop-shadow(0 22px 40px rgba(0,0,0,.45)); }

body .kt-main { position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; padding: 30px 34px 28px;
  isolation: isolate; background: radial-gradient(120% 120% at 15% 0%, color-mix(in srgb, var(--main) 80%, #fff 8%), var(--main) 45%, var(--main2)); }
/* Höhenlinien wie im Mockup (tools/topo_svg.py): Linien-SVG als Maske, Farbe aus der Welt */
body .kt-main::before, body .kt-stub::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: var(--acc); opacity: .26; -webkit-mask: url("../img/topo-main.svg") center / cover no-repeat; mask: url("../img/topo-main.svg") center / cover no-repeat; }
body .kt-stub::after { background: var(--ink); opacity: .3; -webkit-mask-image: url("../img/topo-stub.svg"); mask-image: url("../img/topo-stub.svg"); }
body .kt-logo { height: 52px; width: auto; margin-bottom: 22px; }
body .kt-kick { display: inline-flex; align-items: center; gap: 12px; font: 600 .74rem/1 var(--kus-text); letter-spacing: .22em; text-transform: uppercase; color: var(--acc); }
body .kt-kick::before { content: ""; width: 34px; height: 2px; background: currentColor; }
body .kt-title { margin: 10px 0 auto; font: italic 800 clamp(2.8rem, 6.4vw, 4.6rem)/.84 var(--kus-display); font-stretch: 75%; text-transform: uppercase; color: #fff; }
body .kt-title :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { display: block; color: var(--acc); }
body .kt-pills { position: relative; z-index: 2; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 26px; max-width: 74%; }
body .kt-pills div { display: grid; gap: 3px; padding: 7px 12px 8px; border-radius: 10px; background: rgba(0,0,0,.28); box-shadow: inset 0 0 0 1px rgba(255,255,255,.16); }
body .kt-pills :is(small,:where(.tag-small)) { font: 600 .56rem/1 var(--kus-text); letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.65); }
body .kt-pills :is(b,:where(.tag-b)) { font: italic 800 .98rem/1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; white-space: nowrap; }
body .kt-peaks { position: absolute; right: -2px; bottom: -2px; width: 30%; z-index: 1; overflow: visible; }
body .kt-peaks .b { fill: rgba(255,255,255,.14); }
body .kt-peaks .f { fill: var(--acc); stroke: var(--main2); stroke-width: 1.6; stroke-linejoin: round; paint-order: stroke; }
body .kt-status { position: relative; z-index: 2; margin-top: 10px; padding: 6px 10px; border-radius: 8px; font: 700 .78rem var(--kus-text); }
body .kt-ok { background: #e3f4ea; color: #1f7a4a; } body .kt-x { background: #fde5e5; color: #b32d2e; }

body .kt-stub { position: relative; display: flex; flex-direction: column; gap: 10px; padding: 26px 24px 22px; color: var(--ink);
  isolation: isolate; background: linear-gradient(160deg, var(--stub), var(--stub2)); }
body .kt-stub::before { content: ""; position: absolute; left: 0; top: 18px; bottom: 18px; border-left: 2px dashed color-mix(in srgb, var(--ink) 45%, transparent); }
body .kt-stub-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
body .kt-stub-top :is(small,:where(.tag-small)) { display: block; font: 600 .6rem/1 var(--kus-text); letter-spacing: .2em; text-transform: uppercase; opacity: .8; margin-bottom: 6px; }
body .kt-price { font: italic 800 2.4rem/.9 var(--kus-display); font-stretch: 75%; white-space: nowrap; }
body .kt-badge { width: 58px; height: 58px; flex: none; }
body .kt-pers { font: 600 .6rem/1.3 var(--kus-text); letter-spacing: .16em; text-transform: uppercase; opacity: .8; }
body .kt-qr { margin-top: auto; width: 100%; max-width: 180px; align-self: center; border-radius: 14px; box-shadow: 0 10px 24px rgba(0,0,0,.18); }
body .kt-qr :is(svg,:where(.tag-svg)) { display: block; width: 100%; height: auto; }
body .kt-nr { display: flex; justify-content: space-between; gap: 8px; font: 700 .66rem ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: .08em; text-transform: uppercase; }
body .kt-nr :is(i,:where(.tag-i)) { font-style: normal; opacity: .7; }

@media (max-width: 760px) {
  body .kt { grid-template-columns: 1fr; min-height: 0; -webkit-mask: none; mask: none; }
  body .kt-main { padding: 24px 22px 22px; } body .kt-logo { height: 42px; margin-bottom: 14px; }
  body .kt-pills { max-width: 100%; } body .kt-peaks { width: 40%; }
  body .kt-stub::before { left: 18px; right: 18px; top: 0; bottom: auto; border-left: 0; border-top: 2px dashed color-mix(in srgb, var(--ink) 45%, transparent); }
  body .kt-qr { max-width: 220px; }
  body .tk-wrap { padding-top: 84px; }
}
@media print {
  @page { size: A4; margin: 12mm; }
  html, body { background: #fff !important; }
  body.kus-tk-seite :is(header, footer, .top, .tabbar, .mnav, .tk-actions, .tk-note, .kus-nl-pop, .skip-link), body.kus-tk-seite .elementor-location-header, body.kus-tk-seite .elementor-location-footer { display: none !important; }
  body .tk-wrap { padding: 0; max-width: none; gap: 9mm; }
  body .tk-head .kicker, body .tk-head h1 { color: #0f2a44 !important; } body .tk-head h1 { font-size: 22pt; }
  body .tk-wrap .kt { filter: none; break-inside: avoid; max-width: none; min-height: 0; height: 118mm; grid-template-columns: minmax(0, 1fr) 33% !important;
    -webkit-mask: radial-gradient(circle 4.5mm at 0 50%, #0000 96%, #000) left / 51% 100% no-repeat, radial-gradient(circle 4.5mm at 100% 50%, #0000 96%, #000) right / 51% 100% no-repeat;
    mask: radial-gradient(circle 4.5mm at 0 50%, #0000 96%, #000) left / 51% 100% no-repeat, radial-gradient(circle 4.5mm at 100% 50%, #0000 96%, #000) right / 51% 100% no-repeat; }
  body .tk-wrap .kt-stub::before { left: 0 !important; right: auto !important; top: 14px !important; bottom: 14px !important; border-top: 0 !important; border-left: 2px dashed rgba(0,0,0,.35) !important; }
  body .kt-main { padding: 8mm 9mm; } body .kt-logo { height: 12mm; margin-bottom: 4mm; }
  body .kt-title { font-size: 34pt; } body .kt-pills { max-width: 78%; } body .kt-pills :is(b,:where(.tag-b)) { font-size: 9.5pt; }
  body .kt-stub { padding: 7mm 6mm 6mm; } body .kt-price { font-size: 22pt; } body .kt-badge { width: 13mm; height: 13mm; }
  body .kt-qr { max-width: 44mm; box-shadow: none; }
}

/* ---------- Startseiten-Hero: Vorlagen A–D (inc/hero.php setzt data-vorlage und data-platz) ---------- */
body .hero-grid[data-vorlage] > [data-platz="1"] { grid-area: s1; } body .hero-grid[data-vorlage] > [data-platz="2"] { grid-area: s2; }
body .hero-grid[data-vorlage] > [data-platz="3"] { grid-area: s3; } body .hero-grid[data-vorlage] > [data-platz="4"] { grid-area: s4; }
body .hero-grid[data-vorlage] > [data-platz="5"] { grid-area: s5; }
body .hero-grid[data-vorlage="A"] { grid-template-columns: 1.35fr 1fr 1fr; grid-template-rows: 1.25fr 1fr; grid-template-areas: "s1 s2 s3" "s1 s4 s5"; }
body .hero-grid[data-vorlage="B"] { grid-template-columns: 1fr 1fr 1fr; grid-template-rows: 1.3fr 1fr; grid-template-areas: "s1 s1 s2" "s3 s4 s5"; }
body .hero-grid[data-vorlage="C"] { grid-template-columns: 1.2fr 1.2fr 1fr; grid-template-rows: 1fr 1fr; grid-template-areas: "s1 s2 s3" "s1 s2 s4"; }
body .hero-grid[data-vorlage="D"] { grid-template-columns: 1fr 1fr 1fr; grid-template-rows: 1.25fr 1fr; grid-template-areas: "s1 s1 s1" "s2 s3 s4"; }
/* große Plätze: normale Kacheln bekommen große Schrift und ihren Text */
body .hero-grid:is([data-vorlage="B"], [data-vorlage="D"]) > [data-platz="1"]:not(.count) h2, body .hero-grid[data-vorlage="C"] > :is([data-platz="1"], [data-platz="2"]):not(.count) h2 { font-size: clamp(2.6rem, 4.8vw, 4.6rem); }
/* Mittwoch-/Event-Kachel auf einem kleinen Platz: kompakt */
body .hero-grid[data-vorlage] > .count:not([data-platz="1"]):not(.hero-grid[data-vorlage="C"] > [data-platz="2"]) h1 { font-size: clamp(1.9rem, 2.8vw, 2.8rem); }
body .hero-grid[data-vorlage] > .count:not([data-platz="1"]):not(.hero-grid[data-vorlage="C"] > [data-platz="2"]) :is(.btns, .peaks.big) { display: none; }
body .hero-grid[data-vorlage] > .count:not([data-platz="1"]):not(.hero-grid[data-vorlage="C"] > [data-platz="2"]) .open-badge { margin-top: 12px; padding: 10px 14px; }
@media (max-width: 980px) {
  body .hero-grid[data-vorlage] { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  body .hero-grid[data-vorlage="A"] { grid-template-areas: "s1 s1" "s2 s4" "s3 s5"; }
  body .hero-grid[data-vorlage="B"] { grid-template-areas: "s1 s1" "s2 s3" "s4 s5"; }
  body .hero-grid[data-vorlage="C"] { grid-template-areas: "s1 s2" "s3 s4"; }
  body .hero-grid[data-vorlage="D"] { grid-template-areas: "s1 s1" "s2 s3" "s4 s4"; }
  body .hero-grid[data-vorlage] > [data-platz] { min-height: 240px; }
  body .hero-grid[data-vorlage="C"] > :is([data-platz="1"], [data-platz="2"]) { min-height: 420px; }
}
@media (max-width: 680px) {
  body .hero-grid[data-vorlage="C"] { grid-template-areas: "s1 s1" "s2 s2" "s3 s4"; }
  /* Plakat-Effekt nur, wenn die Mittwoch-/Event-Kachel auf Platz 1 steht */
  body .hero-grid[data-vorlage]:not(:has(> .count[data-platz="1"])) > * { margin-top: 0; }
  /* Hochziehen nur für die Reihe direkt unter dem Plakat (A/B/D: Platz 2+3, C: Platz 2) */
  body .hero-grid[data-vorlage] > [data-platz]:not([data-platz="2"]):not([data-platz="3"]), body .hero-grid[data-vorlage="C"] > [data-platz="3"] { margin-top: 0; }
  body .hero-grid[data-vorlage="C"] > [data-platz="2"] { min-height: 300px; }
  body .hero-grid[data-vorlage] > .count:not([data-platz="1"]) { margin-inline: 0; min-height: 300px; border-radius: var(--radius); padding: var(--pad, 20px); }
  body .hero-grid[data-vorlage]:not(:has(> .count[data-platz="1"])) { padding-top: 84px; }
}

/* ---------- Mein Konto: Übersicht, Profilbild, Freikarten, Team (inc/konto.php, inc/freikarten.php) ---------- */
body .acct-btn .acct-pb { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 2px var(--orange); }
/* Mit Profilbild: kein Initial, ruhiger Knopf, Bild füllt die Fläche */
body .acct-btn.pb { background: transparent; box-shadow: none; }
body .acct-btn.pb:hover .acct-pb, body .acct-btn.pb:focus-visible .acct-pb { box-shadow: 0 0 0 2px #fff; }
body .acct-btn.pb .acct-pb { width: 38px; height: 38px; transition: box-shadow .2s; }
body.kus-woo .kc-hallo { display: flex; align-items: center; gap: clamp(16px, 3vw, 28px); margin-bottom: 18px; }
body.kus-woo .kc-hallo h2 { margin: 4px 0 6px; font-size: clamp(2rem, 4.4vw, 3.2rem); }
body.kus-woo .kc-hallo h2 :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { color: var(--orange); }
body.kus-woo .kc-hallo p { margin: 0; color: rgba(255,255,255,.7); }
body .kc-avatar { position: relative; flex: none; display: block; width: clamp(84px, 12vw, 120px); aspect-ratio: 1; border-radius: 50%; padding: 3px; background: conic-gradient(#f2b51f, #ff7a2f, #f59a6b, #f2b51f); text-decoration: none; }
body .kc-avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block; background: #0f2a44; }
body .kc-avatar :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { position: absolute; left: 50%; bottom: -6px; transform: translateX(-50%); padding: 3px 10px; border-radius: 99px; background: #fff; color: var(--navy) !important; font: 700 .7rem var(--kus-text); opacity: 0; transition: opacity .2s; }
body .kc-avatar:hover :is(span:where(:not([class*="tag-"])),:where(.tag-span)), body .kc-avatar:focus-visible :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { opacity: 1; }
body .kc-hinweis { padding: 12px 16px; border-radius: 12px; background: rgba(255,122,47,.12); box-shadow: inset 0 0 0 1px rgba(255,122,47,.4); }
body .kc-kacheln { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; margin: 18px 0; }
body .kc-k { position: relative; display: flex; flex-direction: column; gap: 4px; min-height: 140px; padding: 18px; border-radius: 18px; background: rgba(255,255,255,.06); box-shadow: inset 0 0 0 1px rgba(255,255,255,.1); color: #fff !important; text-decoration: none; transition: transform .25s var(--ease), background .25s; }
body .kc-k:hover { transform: translateY(-3px); background: rgba(255,255,255,.1); }
body .kc-k .lb { font: 700 .68rem var(--kus-text); letter-spacing: .16em; text-transform: uppercase; color: var(--orange); }
body .kc-k :is(b,:where(.tag-b)) { margin-top: auto; font: italic 800 clamp(1.9rem, 3vw, 2.6rem)/1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; }
body .kc-k :is(small,:where(.tag-small)) { color: rgba(255,255,255,.7); font-size: .85rem; }
body .kc-k-gross { grid-column: span 2; background: var(--g-navy); box-shadow: inset 0 0 0 2px rgba(255,122,47,.5); }
body .kc-k-gross.kc-welt-weinwanderung { background: var(--g-brombeere); } body .kc-k-gross.kc-welt-bierwanderung { background: var(--g-hopfen); }
body .kc-k-team { background: rgba(255,122,47,.1); box-shadow: inset 0 0 0 1px rgba(255,122,47,.35); }
body .kc-k-leicht :is(b,:where(.tag-b)) { font-size: 1.6rem; }
body .kc-unten { color: rgba(255,255,255,.7); font-size: .9rem; }
@media (max-width: 520px) { body .kc-k-gross { grid-column: auto; } body .kc-hallo { flex-direction: column; align-items: flex-start; } }
body .kc-profilbild { display: grid; grid-template-columns: auto 1fr; gap: 20px 24px; align-items: center; padding: 18px; margin-bottom: 22px; border-radius: 18px; background: rgba(255,255,255,.05); box-shadow: inset 0 0 0 1px rgba(255,255,255,.1); }
body .kc-pb-bild img { width: 128px; height: 128px; border-radius: 50%; object-fit: cover; display: block; box-shadow: 0 0 0 3px var(--orange); background: #0f2a44; }
body .kc-pb-text h2 { margin: 0 0 6px; font-size: 1.6rem; } body .kc-pb-text p { margin: 0 0 12px; color: rgba(255,255,255,.75); }
body .kc-pb-btns { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; } body .kc-pb-btns :is(label,:where(.tag-label)).btn { cursor: pointer; }
body .kc-pb-msg { min-height: 1.2em; margin-top: 8px !important; font-size: .88rem; color: var(--orange) !important; }
body .kc-pb-crop { grid-column: 1 / -1; display: grid; justify-items: start; gap: 12px; }
body .kc-pb-feld { width: min(320px, 100%); aspect-ratio: 1; border-radius: 50%; overflow: hidden; box-shadow: 0 0 0 3px var(--orange), 0 0 0 9999px rgba(8,24,40,0) ; background: repeating-conic-gradient(#132f4b 0 25%, #0f2a44 0 50%) 0 0 / 20px 20px; touch-action: none; cursor: grab; }
body .kc-pb-feld canvas { width: 100%; height: 100%; display: block; }
body .kc-pb-zoom { display: grid; gap: 4px; width: min(320px, 100%); font-size: .85rem; } body .kc-pb-zoom input { accent-color: var(--orange); }
@media (max-width: 520px) { body .kc-profilbild { grid-template-columns: 1fr; } }
body .kc-kopf h2 { margin: 0 0 8px; } body .kc-kopf p { color: rgba(255,255,255,.8); }
body .kc-form { display: grid; gap: 14px; padding: 18px; margin: 16px 0 26px; border-radius: 18px; background: rgba(255,255,255,.05); box-shadow: inset 0 0 0 1px rgba(255,255,255,.1); }
body .kc-form :is(label,:where(.tag-label)) { display: grid; gap: 6px; font-weight: 600; font-size: .9rem; }
body .kc-form :is(input:not([type=radio]):not([type=checkbox]), select) { padding: 11px 13px; border-radius: 10px; border: 0; background: #fff; color: var(--navy); font: 500 1rem var(--kus-text); }
body .kc-form .btn { justify-self: start; }
body .kc-zeile { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; }
body .kc-wahl { border: 0; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; }
body .kc-wahl legend { font-weight: 700; margin-bottom: 8px; }
body .kc-opt { position: relative; display: block !important; padding: 14px 16px; border-radius: 14px; background: rgba(255,255,255,.06); cursor: pointer; box-shadow: inset 0 0 0 1px rgba(255,255,255,.12); }
body .kc-opt input { position: absolute; opacity: 0; }
body .kc-opt :is(b,:where(.tag-b)) { display: block; font: italic 800 1.25rem/1.05 var(--kus-display); font-stretch: 75%; text-transform: uppercase; } body .kc-opt :is(small,:where(.tag-small)) { color: rgba(255,255,255,.7); font-weight: 500; }
body .kc-opt:has(input:checked) { box-shadow: inset 0 0 0 2px var(--orange); background: rgba(255,122,47,.12); }
body .kc-opt.t-wein:has(input:checked) { box-shadow: inset 0 0 0 2px var(--apricot); } body .kc-opt.t-bier:has(input:checked) { box-shadow: inset 0 0 0 2px var(--gold); }
body .kc-h3 { margin: 26px 0 10px; } body .kc-h3 :is(small,:where(.tag-small)) { color: rgba(255,255,255,.5); font-size: .8em; }
body .kc-tabelle { overflow-x: auto; } body .kc-tabelle table { width: 100%; border-collapse: collapse; font-size: .9rem; }
body .kc-tabelle th { text-align: left; padding: 8px 10px; font: 700 .7rem var(--kus-text); letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.6); border-bottom: 1px solid rgba(255,255,255,.12); }
body .kc-tabelle td { padding: 10px; border-bottom: 1px solid rgba(255,255,255,.07); vertical-align: top; }
body .kc-tabelle td :is(small,:where(.tag-small)) { color: rgba(255,255,255,.6); } body .kc-tabelle td img.avatar { width: 28px; height: 28px; border-radius: 50%; vertical-align: middle; margin-right: 6px; }
body .kc-tabelle code { font-size: .85rem; color: var(--orange); }
body .kc-st { display: inline-block; padding: 3px 9px; border-radius: 99px; font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; background: rgba(31,157,92,.25); color: #7ee2ae; }
body .kc-st-eingelöst { background: rgba(138,160,181,.25); color: #c8d6e3; } body .kc-st-storniert { background: rgba(199,54,59,.25); color: #ff9da0; }
body .kc-inline { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; } body .kc-inline input[type=number] { width: 64px; padding: 6px 8px; border-radius: 8px; border: 0; }
body .kc-check { display: inline-flex !important; gap: 6px; align-items: center; } body .kc-klein { font-size: .8rem; color: rgba(255,255,255,.6); }

/* ---------- Karten aus ACF (inc/karten.php) ---------- */
body .kk { display: flex; flex-direction: column; justify-content: flex-end; }
body .kk-h-s { min-height: 220px; } body .kk-h-m { min-height: 320px; } body .kk-h-l { min-height: 440px; }
body .kk-in { position: relative; z-index: 1; display: grid; gap: 8px; justify-items: start; }
body .kk h3 { margin: 0; font-size: clamp(1.7rem, 2.6vw, 2.4rem); } body .kk h3 :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { color: var(--acc); }
body .kk p { margin: 0; max-width: 46ch; }
body .kk .btns { margin-top: 8px; }
body :is(b,:where(.tag-b)).kk-zahl { font: italic 800 clamp(3.4rem, 7vw, 6rem)/.9 var(--kus-display); font-stretch: 75%; color: var(--acc); }   /* nur die Zahl – die Karte selbst trägt auch „kk-zahl“ (Typ-Klasse) */
body .kk-zitat { margin: 0; font: italic 600 clamp(1.15rem, 1.8vw, 1.5rem)/1.4 var(--kus-text); }
body .kk :is(cite,:where(.tag-cite)) { font-style: normal; font-weight: 700; font-size: .9rem; opacity: .85; }
body .kk-sym { position: absolute; top: clamp(18px, 2.2vw, 30px); right: clamp(18px, 2.2vw, 30px); width: 44px; height: 44px; opacity: .9; }
body .kk-go { position: absolute !important; inset: 0; z-index: 2; opacity: 0; }
body .kk-foto { background-color: #0b2036; }
body .kk-hero { height: 100%; min-height: 100%; }
body .hero-grid > .kk-wrap { min-width: 0; } body .hero-grid > .kk-wrap > .elementor-widget-container { height: 100%; }
body .hero-grid > .kk-wrap .kk { height: 100%; border-radius: var(--radius); }

/* ---------- Termine aus ACF (inc/termine.php): Widget-Hülle löst sich im Raster auf ---------- */
body .bento > .kt-wrap, body .bento > .kt-wrap > .elementor-widget-container { display: contents; }
body .kt-gross .kt-ticket { display: block; margin-top: 4px; font: 700 .72rem var(--kus-text); letter-spacing: .14em; text-transform: uppercase; color: var(--acc, var(--orange)); }
body .kt-status .lb { display: inline-block; padding: 3px 8px; border-radius: 99px; background: rgba(199,54,59,.85); color: #fff !important; }
body .kt-rueck { opacity: .78; } body .kt-rueck:hover { opacity: 1; }

/* ---------- Termin-Popup (inc/popup.php) ---------- */
body .kp { width: min(560px, calc(100vw - 24px)); max-height: calc(100svh - 32px); border: 0; padding: clamp(22px, 4vw, 34px); border-radius: 24px; background: url("../img/topo-kachel-hell.svg") 90% 10% / 700px auto no-repeat, var(--g-navy); color: #fff; box-shadow: 0 30px 80px rgba(0,0,0,.55); overflow: auto; }
body .kp::backdrop { background: rgba(4,12,22,.7); backdrop-filter: blur(5px); }
body .kp[open] { animation: popIn .45s var(--ease); }
body .kp h2 { margin: 6px 0 18px; font-size: clamp(2rem, 6vw, 2.8rem); } body .kp h2 :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { color: var(--orange); }
body .kp-x { position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; font: 400 1.6rem/1 var(--kus-text); cursor: pointer; }
body .kp-liste { list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 8px; }
body .kp-t { display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; padding: 12px 14px; border-radius: 16px; background: rgba(255,255,255,.07); color: #fff; text-decoration: none; transition: background .2s, transform .2s; }
body .kp-t:hover { background: rgba(255,255,255,.13); transform: translateX(3px); }
body .kp-d { display: grid; place-items: center; width: 54px; padding: 6px 0; border-radius: 12px; background: var(--orange); color: var(--navy); font: 700 .72rem/1 var(--kus-text); text-transform: uppercase; letter-spacing: .08em; }
body .kp-d :is(b,:where(.tag-b)) { font: italic 800 1.6rem/1 var(--kus-display); font-stretch: 75%; letter-spacing: 0; }
body .kp-weinwanderung .kp-d { background: var(--apricot); color: var(--brombeere); } body .kp-bierwanderung .kp-d { background: var(--gold); color: var(--hopfen); } body .kp-beachsport .kp-d { background: #fff; }
body .kp-i :is(b,:where(.tag-b)) { display: block; font: italic 800 1.25rem/1.05 var(--kus-display); font-stretch: 75%; text-transform: uppercase; } body .kp-i :is(small,:where(.tag-small)) { color: rgba(255,255,255,.72); font-size: .84rem; }
body .kp-go { font-size: 1.6rem; opacity: .6; }
body .kp-btns { display: flex; gap: 10px; flex-wrap: wrap; }

/* ---------- Mein Konto: Menü in Gruppen (templates/konto-navigation.php) ---------- */
body.kus-woo .woocommerce:has(> .kn) { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: var(--kus-gap); align-items: start; }
body.kus-woo .woocommerce:has(> .kn)::before, body.kus-woo .woocommerce:has(> .kn)::after { display: none; }
body.kus-woo .woocommerce-MyAccount-navigation.kn { position: sticky; top: 96px; margin: 0; padding: 14px; border-radius: var(--radius); background: rgba(255,255,255,.05); box-shadow: inset 0 0 0 1px rgba(255,255,255,.1); }
body.kus-woo .kus-wc-body .kn a.kn-kopf.kn-kopf { color: #fff; background: none; border-radius: 0; display: flex; align-items: center; gap: 12px; padding: 6px 6px 16px; margin-bottom: 8px; border-bottom: 1px solid rgba(255,255,255,.1); color: #fff !important; text-decoration: none !important; }
body .kn-kopf img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 2px var(--orange); flex: none; }
body .kn-kopf :is(b,:where(.tag-b)) { display: block; font-size: 1rem; line-height: 1.2; } body .kn-kopf :is(small,:where(.tag-small)) { color: rgba(255,255,255,.6); font-size: .8rem; }
body .kn-gruppe + .kn-gruppe { margin-top: 10px; }
body .kn-titel { display: block; padding: 8px 10px 4px; font: 700 .66rem var(--kus-text); letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.45); }
body.kus-woo .kn :is(ul,:where(.tag-ul)) { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
body.kus-woo .kus-wc-body .kn :is(ul,:where(.tag-ul)) a.kn-a { display: flex; align-items: center; gap: 11px; padding: 10px 12px; border-radius: 12px; background: none; color: rgba(255,255,255,.82); font-weight: 600; font-size: .94rem; text-decoration: none; transition: background .2s, color .2s; }
body.kus-woo .kus-wc-body .kn :is(ul,:where(.tag-ul)) a.kn-a:hover { background: rgba(255,255,255,.07); color: #fff; }
body.kus-woo .kus-wc-body .kn .is-active a.kn-a { background: #fff; color: var(--navy); }
body .kn :is(svg,:where(.tag-svg)) { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; opacity: .85; }
body .kn-zahl { margin-left: auto; min-width: 22px; padding: 2px 7px; border-radius: 99px; background: var(--orange); color: var(--navy); font: 800 .72rem/1.4 var(--kus-text); font-style: normal; text-align: center; }
body .kn-ext { margin-left: auto; font-style: normal; opacity: .6; }
body .kn .is-active .kn-zahl { background: var(--navy); color: #fff; }
body.kus-woo .kn-aus { margin-top: 10px !important; padding-top: 10px !important; border-top: 1px solid rgba(255,255,255,.1); }
body.kus-woo .kus-wc-body .kn-aus a.kn-a { color: rgba(255,255,255,.6); }
@media (max-width: 860px) {
  body.kus-woo .woocommerce:has(> .kn) { grid-template-columns: 1fr; }
  body.kus-woo .woocommerce-MyAccount-navigation.kn { position: static; display: flex; gap: 6px; align-items: center; padding: 8px; overflow-x: auto; scrollbar-width: none; -webkit-mask: linear-gradient(90deg, #000 85%, transparent); mask: linear-gradient(90deg, #000 85%, transparent); }
  body .kn::-webkit-scrollbar { display: none; }
  body.kus-woo .kus-wc-body .kn a.kn-kopf { flex: none; padding: 0 8px 0 0; margin: 0; border: 0; border-right: 1px solid rgba(255,255,255,.12); }
  body .kn-kopf :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { display: none; } body .kn-kopf img { width: 38px; height: 38px; }
  body .kn-gruppe, body .kn-gruppe + .kn-gruppe { margin: 0; display: flex; align-items: center; flex: none; }
  body .kn-gruppe + .kn-gruppe::before { content: ""; width: 1px; height: 26px; margin: 0 4px; background: rgba(255,255,255,.12); }
  body .kn-titel { display: none; }
  body.kus-woo .kn :is(ul,:where(.tag-ul)) { display: flex; gap: 4px; }
  body.kus-woo .kus-wc-body .kn :is(ul,:where(.tag-ul)) a.kn-a { white-space: nowrap; padding: 9px 12px; }
  body.kus-woo .kn-aus { margin: 0 !important; padding: 0 0 0 4px !important; border: 0; flex: none; }
}

/* Wein-Coins pro Ticket (Shop, Ticket) */
body .prod-coins { display: inline-block; margin-top: 6px; padding: 3px 9px; border-radius: 99px; background: rgba(245,154,107,.18); color: var(--apricot); font: 700 .72rem var(--kus-text); letter-spacing: .04em; }
body .pd-coins { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; padding: 6px 12px; border-radius: 99px; background: rgba(245,154,107,.16); color: var(--apricot); font-weight: 700; font-size: .9rem; }
body .pd-coins :is(i,:where(.tag-i)) { font-style: normal; color: #f59a6b; }

/* ---------- Pflege-Ausbau 2026-10-16 ---------- */
/* Hinweis-Leiste ganz oben (Startseite & Hinweise → Hinweis-Leiste) */
body .kus-hinweis { --kh-bg: #173c61; --kh-fg: #fff; position: relative; display: flex; align-items: center; height: 38px; background: var(--kh-bg); color: var(--kh-fg); font: 600 .86rem/1.2 var(--kus-text); }
body .kus-hinweis.kh-wichtig { --kh-bg: var(--g-orange); --kh-fg: var(--navy); }
body .kus-hinweis.kh-warnung { --kh-bg: #b3261e; --kh-fg: #fff; }
body .kh-in { flex: 1; min-width: 0; display: flex; justify-content: center; align-items: center; gap: 14px; height: 100%; padding: 0 48px; color: inherit; text-decoration: none; }
body .kh-t { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
body .kh-l { flex: none; text-decoration: underline; text-underline-offset: 3px; }
body .kh-x { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); width: 30px; height: 30px; border: 0; border-radius: 8px; background: transparent; color: inherit; font-size: 1.3rem; line-height: 1; cursor: pointer; opacity: .8; }
body .kh-x:hover { opacity: 1; background: rgba(0,0,0,.12); }
body.hat-hinweis { padding-top: 38px; }
@media (max-width: 680px) { body .kus-hinweis { height: 36px; font-size: .8rem; } body.hat-hinweis { padding-top: 36px; } body .kh-in { padding: 0 40px 0 14px; justify-content: flex-start; gap: 8px; } }

/* Ticketshop immer erreichbar: Knopf im Header (neben „Anmelden“) + fünfter Punkt in der Handy-Tableiste */
body .tk-btn { display: none; align-items: center; gap: 8px; height: 42px; padding: 0 14px 0 11px; border-radius: 10px; background: rgba(255,122,47,.14); box-shadow: inset 0 0 0 1px rgba(255,122,47,.5); color: #fff; font: 600 .9rem var(--kus-text); text-decoration: none; white-space: nowrap; transition: background .3s; }
body .tk-btn.on { display: inline-flex; }
body .tk-btn:hover { background: rgba(255,122,47,.26); color: #fff; }
body .tk-btn :is(svg,:where(.tag-svg)), body .tb-tk :is(svg,:where(.tag-svg)) { width: 21px; height: 21px; fill: none; stroke: var(--orange); stroke-width: 1.7; stroke-linejoin: round; }
@media (max-width: 1240px) { body .tk-btn :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { display: none; } body .tk-btn { padding: 0 11px; } }
@media (max-width: 960px) { body .tk-btn.on { display: none; } }
@media (max-width: 960px) {
  body .tabbar { grid-template-columns: repeat(5, 1fr); }
  body .tabbar a { font-size: .68rem; padding-inline: 2px; }
  body .tabbar .tb-tk { color: #fff; }
  body .tabbar .tb-tk .ico { display: grid; place-items: center; }
  body .tabbar .tb-tk[aria-current="page"] { background: var(--g-orange); color: var(--navy); }
  body .tabbar .tb-tk[aria-current="page"] :is(svg,:where(.tag-svg)) { stroke: var(--navy); }
}

/* Newsletter-Kasten über dem Fußbereich (#newsletter) */
body .kus-nlbox { max-width: var(--max); margin: 0 auto 48px; padding: 0 var(--gut); }
body .nlb-in { display: grid; grid-template-columns: 1.1fr 1fr; gap: 24px 40px; align-items: center; padding: clamp(24px, 4vw, 40px); border-radius: var(--radius, 22px); background: linear-gradient(135deg, rgba(255,122,47,.16), rgba(255,255,255,.04)); box-shadow: inset 0 0 0 1px rgba(255,255,255,.1); }
body .nlb-t h2 { margin: 10px 0 8px; font: italic 800 clamp(1.9rem, 3.4vw, 2.6rem)/.95 var(--kus-display); font-stretch: 75%; text-transform: uppercase; color: #fff; }
body .nlb-t p { margin: 0; color: rgba(255,255,255,.8); font-size: .98rem; }
body .nlb-f { display: grid; grid-template-columns: 1fr auto; gap: 10px; }
body .nlb-feld input { width: 100%; height: 50px; padding: 0 16px; border: 0; border-radius: 10px; background: rgba(255,255,255,.1); box-shadow: inset 0 0 0 1px rgba(255,255,255,.22); color: #fff; font: 500 1rem var(--kus-text); }
body .nlb-feld input::placeholder { color: rgba(255,255,255,.5); }
body .nlb-feld input:focus { outline: 2px solid var(--orange); outline-offset: 1px; }
body .nlb-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; opacity: 0; }
body .nlb-f .cf-turnstile, body .nlb-klein, body .nlb-msg { grid-column: 1 / -1; }
body .nlb-klein { margin: 0; font-size: .78rem !important; color: rgba(255,255,255,.6); } body .nlb-klein a { color: rgba(255,255,255,.85); }
body .nlb-msg { margin: 0; min-height: 1.2em; font-weight: 600; color: var(--orange); }
body .nlb-f.ok .nlb-msg { color: #7ee2a8; }
@media (max-width: 760px) { body .nlb-in { grid-template-columns: 1fr; } body .nlb-f { grid-template-columns: 1fr; } body .nlb-f .btn { justify-content: center; } }
body .foot nav a.foot-tk { color: var(--orange); font-weight: 700; }
body .sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Benachrichtigungen: Popup nach dem Anmelden, Vorverkaufs-Wecker, Konto */
body .kbn { display: grid; gap: 10px; }
body .kbn-sub { margin: 0 0 10px; font: 600 .78rem/1 var(--kus-text); letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.7); }
body .kbn-z { display: grid; grid-template-columns: 24px 1fr; gap: 12px; align-items: start; padding: 12px 14px; border-radius: 14px; background: rgba(255,255,255,.07); cursor: pointer; transition: background .2s; }
body .kbn-z:hover { background: rgba(255,255,255,.12); }
body .kbn-z input, body .kbn-aus input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--orange); }
body .kbn-z :is(b,:where(.tag-b)) { display: block; font-weight: 700; color: #fff; } body .kbn-z :is(small,:where(.tag-small)) { display: block; margin-top: 2px; color: rgba(255,255,255,.7); font-size: .85rem; line-height: 1.4; }
body .kbn-aus { display: flex; gap: 10px; align-items: center; font-size: .86rem; color: rgba(255,255,255,.75); }
body .kbn .btns { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 4px; }
body .kbn-klein { margin: 0; font-size: .8rem; color: rgba(255,255,255,.6); } body .kbn-klein a { color: rgba(255,255,255,.85); }
body .kbn-msg { margin: 0; min-height: 1.2em; font-weight: 600; color: var(--orange); } body .kbn.ok .kbn-msg { color: #7ee2a8; }
body .kbn-pop .kp-liste { margin-bottom: 18px; } body .kbn-pop h2, body .kbn-wk h2 { padding-right: 44px; }
body .kbn-wk .nlb-feld input { width: 100%; }
body .kbn-toast { position: fixed; z-index: 120; left: 50%; bottom: calc(96px + env(safe-area-inset-bottom)); transform: translateX(-50%); display: flex; gap: 12px; align-items: center; width: min(520px, calc(100vw - 24px)); padding: 14px 16px; border-radius: 14px; background: var(--g-navy); box-shadow: 0 16px 40px rgba(0,0,0,.45), inset 0 0 0 1px rgba(255,255,255,.12); color: #fff; font-weight: 600; animation: popIn .45s var(--ease); }
body .kbn-toast button { margin-left: auto; border: 0; background: transparent; color: #fff; font-size: 1.3rem; cursor: pointer; }
/* Team & Rechte: Benutzer-Vorschläge */
body .kus-us { position: relative; }
body .kus-us-liste { position: absolute; z-index: 30; left: 0; right: 0; top: 100%; margin: 6px 0 0; padding: 6px; list-style: none; border-radius: 14px; background: #0f2a44; box-shadow: 0 18px 40px rgba(0,0,0,.45), inset 0 0 0 1px rgba(255,255,255,.12); max-height: 320px; overflow: auto; }
body .kus-us-liste :is(li,:where(.tag-li)) { display: grid; grid-template-columns: 32px 1fr; gap: 10px; align-items: center; padding: 8px 10px; border-radius: 10px; cursor: pointer; color: #fff; }
body .kus-us-liste :is(li,:where(.tag-li))[aria-selected="true"], body .kus-us-liste :is(li,:where(.tag-li)):hover { background: rgba(255,122,47,.18); }
body .kus-us-liste :is(li,:where(.tag-li))[aria-disabled="true"] { opacity: .5; cursor: not-allowed; }
body .kus-us-liste :is(li,:where(.tag-li)).leer { display: block; cursor: default; color: rgba(255,255,255,.7); }
body .kus-us-liste img { border-radius: 50%; }
body .kus-us-liste :is(b,:where(.tag-b)) { display: block; font-weight: 700; } body .kus-us-liste :is(small,:where(.tag-small)) { display: block; color: rgba(255,255,255,.65); font-size: .8rem; word-break: break-all; }
body .pd-ende { margin: 0; padding: 12px 14px; border-radius: 12px; background: rgba(255,255,255,.08); font-weight: 600; }

/* Ticket verschenken: Geschenkkarte (inc/geschenk.php) */
body .kt-item { display: grid; gap: 10px; }
body .kt-aktion { justify-self: start; display: inline-flex; gap: 8px; align-items: center; padding: 8px 14px; border-radius: 99px; background: rgba(255,255,255,.08); box-shadow: inset 0 0 0 1px rgba(255,255,255,.16); color: #fff; font-weight: 600; font-size: .9rem; text-decoration: none; }
body .kt-aktion:hover { background: rgba(255,122,47,.2); color: #fff; }
body .kt-aktion :is(svg,:where(.tag-svg)) { width: 18px; height: 18px; fill: none; stroke: var(--orange); stroke-width: 1.7; stroke-linejoin: round; }
body .gs-wrap { display: grid; gap: 24px; }
body .gs-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; max-width: 860px; padding: 20px; border-radius: 20px; background: rgba(255,255,255,.06); box-shadow: inset 0 0 0 1px rgba(255,255,255,.1); }
body .gs-form :is(label,:where(.tag-label)) { display: grid; gap: 6px; font-weight: 600; font-size: .9rem; }
body .gs-form input, body .gs-form textarea { width: 100%; padding: 12px 14px; border: 0; border-radius: 10px; background: rgba(255,255,255,.1); box-shadow: inset 0 0 0 1px rgba(255,255,255,.2); color: #fff; font: 500 1rem var(--kus-text); }
body .gs-form input:focus, body .gs-form textarea:focus { outline: 2px solid var(--orange); }
body .gs-voll { grid-column: 1 / -1; } body .gs-knoepfe { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
body .gs-msg { color: #7ee2a8; font-weight: 600; } body .gs-tipp { margin: 0; font-size: .85rem; color: rgba(255,255,255,.65); }
body .gk { --gk-main: #3f1d3c; --gk-acc: #f59a6b; display: grid; grid-template-columns: 1fr 250px; max-width: 860px; min-height: 420px; border-radius: 26px; overflow: hidden; color: #fff; filter: drop-shadow(0 22px 40px rgba(0,0,0,.45)); -webkit-print-color-adjust: exact; print-color-adjust: exact; }
body .gk-links { position: relative; display: flex; flex-direction: column; gap: 10px; padding: 30px 34px 28px; background: radial-gradient(120% 90% at 0% 0%, color-mix(in srgb, var(--gk-main) 70%, #fff 8%), var(--gk-main) 60%); overflow: hidden; }
body .gk-logo { height: 34px; width: auto; align-self: flex-start; margin-bottom: 10px; }
body .gk-kick { font: 700 .78rem/1 var(--kus-text); letter-spacing: .22em; text-transform: uppercase; color: var(--gk-acc); }
body .gk-fuer { margin: 0; font: italic 800 clamp(2.6rem, 6vw, 4.2rem)/.9 var(--kus-display); font-stretch: 75%; text-transform: uppercase; color: #fff; text-wrap: balance; }
body .gk-gruss { margin: 6px 0 0; max-width: 34ch; font-size: 1.05rem; line-height: 1.5; color: rgba(255,255,255,.9); }
body .gk-von { margin: 0; font-weight: 700; color: var(--gk-acc); }
body .gk-was { position: relative; z-index: 1; margin-top: auto; display: grid; gap: 2px; padding-top: 18px; font-size: .92rem; color: rgba(255,255,255,.85); }
body .gk-was :is(b,:where(.tag-b)) { font: italic 800 1.5rem/1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; color: #fff; }
body .gk-peaks { position: absolute; right: -10px; bottom: -6px; width: 46%; height: auto; opacity: .9; }
body .gk-peaks .b { fill: rgba(255,255,255,.08); } body .gk-peaks .f { fill: var(--gk-acc); opacity: .55; }
body .gk-rechts { display: grid; align-content: center; justify-items: center; gap: 8px; padding: 24px 18px; background: var(--gk-acc); color: var(--gk-main); text-align: center; border-left: 3px dashed rgba(0,0,0,.18); }
body .gk-pers { font: 700 .72rem/1.3 var(--kus-text); letter-spacing: .16em; text-transform: uppercase; }
body .gk-qr { width: 190px; padding: 10px; border-radius: 16px; background: #fff; } body .gk-qr :is(svg,:where(.tag-svg)) { display: block; width: 100%; height: auto; }
body .gk-nr { font: 700 .95rem/1 ui-monospace, "Courier New", monospace; } body .gk-hinweis { font-size: .78rem; font-weight: 600; opacity: .8; }
body .kt-navy.gk .gk-rechts, body .gk.kt-navy .gk-rechts { color: var(--gk-main); }
@media (max-width: 720px) { body .gk { grid-template-columns: 1fr; } body .gk-rechts { border-left: 0; border-top: 3px dashed rgba(0,0,0,.18); } body .gs-form { grid-template-columns: 1fr; } }
@media print {
  body.kus-gs-seite .gs-form { display: none !important; }
  body.kus-gs-seite .gk { width: 180mm; min-height: 110mm; grid-template-columns: 1fr 58mm; margin: 10mm auto; filter: none; break-inside: avoid; }
}
body .kp-kal { align-self: center; margin-left: 4px; color: rgba(255,255,255,.8); font-weight: 600; font-size: .9rem; text-decoration: underline; text-underline-offset: 3px; }
body .kbn-kal { margin-top: 28px; display: grid; gap: 10px; justify-items: start; } body .kbn-kal code { word-break: break-all; }
@media print { body dialog, body .kbn-toast, body .kus-hinweis { display: none !important; } body.hat-hinweis { padding-top: 0 !important; } }
@media print { body.kus-gs-seite .tk-head { display: none !important; } }

/* Shop: Sparpotenzial bei Kombi- und Gruppenticket */
body .prod-spar { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; margin-top: 10px; padding: 8px 14px; border: 0; border-radius: 99px; background: var(--g-orange); color: var(--navy); font: 800 .86rem/1.1 var(--kus-text); cursor: pointer; box-shadow: 0 8px 20px rgba(255,122,47,.3); transition: transform .2s; }
body .prod-spar:hover { transform: translateY(-2px); }
body .prod-spar :is(svg,:where(.tag-svg)) { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linejoin: round; }
body .prod-price :is(small,:where(.tag-small)) { font-size: .6em; font-style: normal; opacity: .75; }
body .pd-spar { display: grid; gap: 8px; padding: 14px 16px; border-radius: 14px; background: rgba(255,122,47,.14); box-shadow: inset 0 0 0 1px rgba(255,122,47,.45); }
body .pd-spar > :is(b,:where(.tag-b)) { font: italic 800 1.35rem/1 var(--kus-display); font-stretch: 75%; text-transform: uppercase; color: var(--orange); }
body .pd-spar p { margin: 0; font-size: .9rem; color: rgba(255,255,255,.85); }
body .pd-spar :is(ul,:where(.tag-ul)) { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
body .pd-spar :is(li,:where(.tag-li)) { display: grid; grid-template-columns: auto auto 1fr; gap: 4px 12px; align-items: baseline; padding: 8px 10px; border-radius: 10px; background: rgba(255,255,255,.06); }
body .pd-spar :is(li,:where(.tag-li)) :is(em,:where(.tag-em)) { font-style: normal; font-size: .82rem; color: #7ee2a8; justify-self: end; }
@media (max-width: 520px) { body .pd-spar :is(li,:where(.tag-li)) { grid-template-columns: 1fr auto; } body .pd-spar :is(li,:where(.tag-li)) :is(em,:where(.tag-em)) { grid-column: 1 / -1; justify-self: start; } }

/* Inhalts-Bausteine (inhalt-hero/-text/-fakten/-faq) */
body .ih .ih-fakten { display: grid; gap: var(--kus-gap, 12px); align-content: stretch; }
body .ih .ih-fakten .tile { min-height: 0; justify-content: center; }
body .ih-wert { display: block; margin-top: 6px; font: italic 800 clamp(1.3rem, 2.2vw, 1.8rem)/1.05 var(--kus-display); font-stretch: 75%; text-transform: uppercase; color: #fff; }
body .it-text p { max-width: 68ch; margin: 0 0 .9em; color: rgba(255,255,255,.86); font-size: 1.02rem; line-height: 1.65; }
body .it-text h2 { margin: 6px 0 14px; }
body .it-liste { margin: 0 0 1em; padding-left: 1.2em; display: grid; gap: 6px; color: rgba(255,255,255,.86); }
body .it-liste :is(li,:where(.tag-li))::marker { color: var(--orange); }
body .it-links .bento > :is(figure,:where(.tag-figure)) { order: -1; }
body .if-kachel h3 { margin: 0 0 8px; font: italic 800 1.35rem/1.05 var(--kus-display); font-stretch: 75%; text-transform: uppercase; }
body .if-kachel p { margin: 0; color: rgba(255,255,255,.8); }
@media (max-width: 680px) { body .ih .ih-fakten { grid-template-columns: 1fr 1fr; } body .it-links .bento > :is(figure,:where(.tag-figure)) { order: 0; } }

/* Weinwanderung: Warndt-Weinglas „1. Edition · limitiert“ – Foto vom Glas, davor das Motiv als Karte, Siegel (ersetzt die Glas→Badge→Zeichen-Animation) */
body .edition { position: relative; overflow: hidden; margin: 0; padding: 0; min-height: clamp(420px, 42vw, 560px); isolation: isolate; }
body .ed-foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
body .edition::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(42,18,40,.92) 0%, rgba(63,29,60,.62) 45%, rgba(63,29,60,.12) 100%), linear-gradient(0deg, rgba(42,18,40,.75), transparent 45%); }
body .ed-buehne { position: absolute; left: clamp(18px, 5%, 44px); bottom: clamp(52px, 13%, 76px); width: min(42%, 250px); }
body .ed-karte { position: relative; width: 100%; aspect-ratio: 1; border-radius: 18px; overflow: hidden; box-shadow: 0 24px 50px rgba(0,0,0,.5), inset 0 0 0 1px rgba(255,255,255,.14); background: #3f1d3c; }
body .ed-motiv { width: 100%; height: 100%; object-fit: contain; display: block; }
body .ed-motiv-lb { display: block; margin-top: 8px; font: 600 .74rem/1 var(--kus-text); letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.75); }
body .ed-glanz { position: absolute; inset: -40% -60%; background: linear-gradient(105deg, transparent 42%, rgba(255,255,255,.2) 50%, transparent 58%); transform: translateX(-60%); pointer-events: none; }
body .ed-siegel { position: absolute; right: clamp(16px, 6%, 52px); top: clamp(16px, 8%, 48px); width: clamp(118px, 24%, 172px); aspect-ratio: 1; display: grid; place-items: center; transform: rotate(-10deg); filter: drop-shadow(0 12px 22px rgba(0,0,0,.45)); }
body .ed-siegel :is(svg,:where(.tag-svg)) { position: absolute; inset: 0; width: 100%; height: 100%; }
body .ed-s-grund { fill: var(--ed-s, var(--apricot)); } body .ed-s-linie { fill: none; stroke: var(--ed-ink, var(--brombeere)); stroke-width: 2; opacity: .55; }
body .ed-s-rund { font: 700 15px var(--kus-text); letter-spacing: 3.2px; fill: var(--ed-ink, var(--brombeere)); }
body .ed-siegel :is(b,:where(.tag-b)) { position: relative; font: italic 800 clamp(1.25rem, 2.3vw, 1.7rem)/.9 var(--kus-display); font-stretch: 75%; text-transform: uppercase; color: var(--ed-ink, var(--brombeere)); text-align: center; max-width: 60%; }
body .ed-text p + p { margin-top: .9em; }
body .ed-cap { position: absolute; left: clamp(18px, 5%, 44px); right: 18px; bottom: 18px; font: 600 .78rem/1.3 var(--kus-text); letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.75); }
body .ed-cap :is(b,:where(.tag-b)) { color: var(--apricot); }
/* Ein Moment beim Hineinscrollen: Foto zoomt sanft, Motiv-Karte steigt auf, Siegel stempelt, Glanz zieht einmal darüber */
@media (prefers-reduced-motion: no-preference) {
  .js body .edition .ed-foto { transform: scale(1.08); transition: transform 2.4s var(--ease); }
  .js body .edition .ed-buehne { opacity: 0; transform: translateY(24px); transition: opacity .8s .3s var(--ease), transform 1s .3s var(--ease); }
  .js body .edition .ed-siegel { opacity: 0; transform: rotate(-24deg) scale(1.6); transition: opacity .25s 1.1s, transform .55s 1.1s cubic-bezier(.2,1.6,.4,1); }
  .js body .edition.ed-an .ed-foto { transform: none; }
  .js body .edition.ed-an .ed-buehne { opacity: 1; transform: none; }
  .js body .edition.ed-an .ed-siegel { opacity: 1; transform: rotate(-10deg) scale(1); }
  .js body .edition.ed-an .ed-glanz { animation: edGlanz 1.4s 1.7s var(--ease) both; }
}
@keyframes edGlanz { from { transform: translateX(-60%); } to { transform: translateX(60%); } }
@media (max-width: 680px) { body .edition { min-height: 460px; } body .ed-buehne { width: 48%; bottom: 76px; } body .ed-siegel { width: 112px; } }

/* Edition nur mit Foto (z. B. Warndt-Bierglas): Hochformat-Foto füllt die Kachel, Siegel oben rechts */
body .ed-bier { --ed-s: var(--gold); --ed-ink: var(--hopfen); }
body .ed-foto-only { min-height: clamp(460px, 44vw, 620px); }
body .ed-foto-only .ed-foto { object-position: 50% 28%; }
@media (max-width: 680px) { body .ed-foto-only .ed-siegel { width: 92px; right: 10px; top: 10px; } body .ed-foto-only .ed-foto { object-position: 50% 40%; } }
body .ed-foto-only::before { background: linear-gradient(0deg, rgba(10,18,12,.8), transparent 38%); }
body .ed-foto-only .ed-cap :is(b,:where(.tag-b)) { color: var(--ed-s, var(--apricot)); }
@media (prefers-reduced-motion: no-preference) { .js body .ed-foto-only.ed-an .ed-glanz { animation: edGlanz 1.4s 1.6s var(--ease) both; } }
body .ed-foto-only .ed-glanz { inset: -40% -80%; }

/* Gaststätte: Öffnungszeiten mit Live-Status */
body .oz h2 { margin: 6px 0 12px; }
body .oz-status { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 14px; padding: 8px 14px; border-radius: 99px; background: rgba(255,255,255,.08); font-weight: 700; }
body .oz-status :is(i,:where(.tag-i)) { width: 10px; height: 10px; border-radius: 50%; background: #e0a43c; }
body .oz-status.auf :is(i,:where(.tag-i)) { background: #3ccf7a; box-shadow: 0 0 0 4px rgba(60,207,122,.25); }
body .oz-hinweis { margin: 0 0 12px; padding: 10px 14px; border-radius: 10px; background: rgba(255,122,47,.16); font-weight: 600; }
body .oz-tab { width: 100%; max-width: 520px; border-collapse: collapse; margin: 0 0 18px; font-size: 1.02rem; }
body .oz-tab th, body .oz-tab td { padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.14); text-align: left; font-weight: 500; }
body .oz-tab td { text-align: right; font-variant-numeric: tabular-nums; }
body .oz-heute th, body .oz-heute td { color: var(--orange); font-weight: 700; }
body .oz-klein { margin: 10px 0 0; font-size: .85rem; color: rgba(255,255,255,.65); }

/* Plaketten auf Ticket-Karten (Datum, „Spar …“, „Neu“): größer + dunkler Rand, damit sie auch auf gelben Ticket-Motiven lesbar sind */
body .soon { z-index: 3; padding: 8px 16px 7px; font-size: 1.2rem; line-height: 1; letter-spacing: .01em; box-shadow: 0 0 0 3px #0d1b2e, 0 8px 18px rgba(0,0,0,.4); }
body .prod-img .soon { top: 14px; right: 14px; }
@media (max-width: 720px) { body .soon { padding: 6px 12px 5px; font-size: 1rem; box-shadow: 0 0 0 2.5px #0d1b2e, 0 6px 14px rgba(0,0,0,.4); } body .prod-img .soon { top: 10px; right: 10px; } }

/* Gruppenticket-Fenster: klarstellen, dass die Stufen für beide Wanderungen gelten */
body .pd-spar-h { font: 700 .78rem var(--kus-text); letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.7); }
body .pd-wahl { display: block; margin: 4px 0 -4px; font-size: .92rem; color: rgba(255,255,255,.85); }

/* Angemeldet mit WordPress-Werkzeugleiste: fester Header, Warenkorb-Schublade und Handy-Menü unter die Leiste schieben,
   sonst verdeckt die Leiste Warenkorb, Tickets und Menü (Klicks landen in der Leiste) */
body.admin-bar .top, body.admin-bar .drawer { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 960px) { body.admin-bar .mnav { top: var(--wp-admin--admin-bar--height, 46px); } }
@media (max-width: 600px) { body.admin-bar #wpadminbar { position: fixed; } }

/* Ticket-Seite: Tickets im Vergleich (templates/sections/shop-vergleich.php) */
body .shop-vgl .vgl-k { display: flex; flex-direction: column; gap: 10px; min-height: 0; }
body .shop-vgl .vgl-k h3 { font: italic 800 clamp(1.5rem, 2.2vw, 2rem)/.95 var(--kus-display); font-stretch: 75%; text-transform: uppercase; margin: 0; }
body .shop-vgl .vgl-preis { font: italic 800 clamp(1.9rem, 3vw, 2.6rem)/1 var(--kus-display); font-stretch: 75%; color: var(--acc, var(--orange)); }
body .shop-vgl .vgl-preis :is(small,:where(.tag-small)) { font-size: .5em; font-style: normal; }
body .shop-vgl :is(dl,:where(.tag-dl)) { margin: 4px 0 6px; display: grid; gap: 10px; align-content: start; }
body .shop-vgl :is(dl,:where(.tag-dl)) > div { display: grid; gap: 2px; padding-top: 10px; border-top: 1px solid rgba(255,255,255,.14); }
body .shop-vgl :is(dt,:where(.tag-dt)) { font: 700 .72rem var(--kus-text); letter-spacing: .1em; text-transform: uppercase; opacity: .7; }
body .shop-vgl :is(dd,:where(.tag-dd)) { margin: 0; font-size: .95rem; line-height: 1.4; }
body .shop-vgl .vgl-spar :is(dd,:where(.tag-dd)) { color: #7ee2a8; font-weight: 700; }
body .shop-vgl .vgl-k .btn { align-self: flex-start; margin-top: auto; }
@media (max-width: 1100px) { body .shop-vgl .vgl-k { grid-column: span 6; } }
@media (max-width: 640px) { body .shop-vgl .vgl-k { grid-column: 1 / -1; } }

/* Gaststätte: Google-Bewertung (templates/sections/gaststaette-bewertung.php) */
body .gb-sec .gb-note, body .gb-sec .gb-merk { display: flex; flex-direction: column; gap: 12px; }
body .gb-wert { display: flex; align-items: center; gap: 16px; }
body .gb-wert :is(b,:where(.tag-b)) { font: italic 800 clamp(3.4rem, 7vw, 5.6rem)/.9 var(--kus-display); font-stretch: 75%; color: var(--orange); }
body .gb-sterne { position: relative; display: inline-block; font-size: clamp(1.5rem, 2.4vw, 2rem); line-height: 1; letter-spacing: 3px; color: rgba(255,255,255,.22); }
body .gb-sterne::before { content: "★★★★★"; }
body .gb-sterne :is(i,:where(.tag-i)) { position: absolute; inset: 0 auto 0 0; overflow: hidden; white-space: nowrap; color: #f2b51f; }
body .gb-sterne :is(i,:where(.tag-i))::before { content: "★★★★★"; }
body .gb-note p { margin: 0; opacity: .85; }
body .gb-merk h3 { margin: 0; font-size: clamp(1.6rem, 2.4vw, 2.2rem); }
body .gb-liste { align-self: stretch; width: 100%; margin: 4px 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
@media (max-width: 560px) { body .gb-liste { grid-template-columns: 1fr; } }
body .gb-liste :is(li,:where(.tag-li)) { padding: 12px 14px 12px 40px; border-radius: 12px; background: rgba(255,255,255,.06); position: relative; font-weight: 600; }
body .gb-liste :is(li,:where(.tag-li))::before { content: ""; position: absolute; left: 14px; top: 50%; width: 14px; height: 14px; margin-top: -7px; border-radius: 50%; background: var(--orange); box-shadow: inset 0 0 0 4px rgba(15,42,68,.9); }
@media (max-width: 900px) { body .gb-sec .gb-note, body .gb-sec .gb-merk { grid-column: 1 / -1; } }

/* ---------- Handy-Feinschliff (Prüfung 18.10.2026, 320–430 px) ---------- */
@media (max-width: 600px) {
  /* Kicker-Zeilen nicht kleiner als 11,5 px (waren teils ~10 px) */
  body .lb { font-size: 11.5px !important; letter-spacing: .16em; }
  /* Fußzeilen-Links: Tippfläche ≥ 40 px */
  body .foot nav { gap: 2px 18px; }
  body .foot nav a { display: inline-flex; align-items: center; min-height: 40px; }
  /* Brotkrumen & Textlinks auf der Weinkarte: größere Tippfläche */
  body .crumbs a, body .crumb a { display: inline-flex; align-items: center; min-height: 32px; }
  body .wk-link { display: inline-flex; align-items: center; min-height: 40px; }
  /* Deko-Gipfel in kleinen Kacheln: kleiner und mit Platz darüber, damit sie keinen Text/Knopf verdecken */
  body .peaks:not(.big) { width: min(30%, 120px); }
  body .tile:has(> .peaks:not(.big)), body .e-con:has(> .peaks:not(.big)) { padding-bottom: 76px !important; }
}
/* Kasse: Hinweis für Gäste (Konto entsteht beim Bestellen) */
body .co-hint { margin: 14px 0 0; padding: 12px 16px; border-radius: 14px; background: rgba(255,122,47,.12); box-shadow: inset 0 0 0 1px rgba(255,122,47,.4); font-size: .92rem; line-height: 1.5; max-width: 62ch; }
body .co-hint :is(b,:where(.tag-b)) { color: var(--orange); }

/* Start-Popup: Countdown zum Vorverkaufsstart (inc/popup.php kus_popup_vvk) */
body .kp-vvk { margin: 14px 0 6px; padding: 16px; border-radius: 16px; background: linear-gradient(135deg, rgba(255,122,47,.18), rgba(242,181,31,.12)); box-shadow: inset 0 0 0 1px rgba(255,122,47,.45); }
body .kp-vvk-lb { display: block; font: 700 .74rem var(--kus-text); letter-spacing: .16em; text-transform: uppercase; color: var(--orange); }
body .kp-vvk-cd { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 10px 0; }
body .kp-vvk-cd :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { display: grid; justify-items: center; padding: 8px 4px; border-radius: 12px; background: rgba(255,255,255,.08); }
body .kp-vvk-cd :is(b,:where(.tag-b)) { font: italic 800 clamp(1.6rem, 6vw, 2.2rem)/1 var(--kus-display); font-stretch: 75%; color: #fff; font-variant-numeric: tabular-nums; }
body .kp-vvk-cd :is(small,:where(.tag-small)) { margin-top: 4px; font: 600 .68rem var(--kus-text); letter-spacing: .12em; text-transform: uppercase; opacity: .75; }
body .kp-vvk p { margin: 0 0 10px; font-size: .92rem; }
body .kp-vvk-btns { display: flex; flex-wrap: wrap; gap: 8px; }
/* Ticket-Seite (QR am Einlass zeigen): keine Tableiste über dem QR-Code */
body.kus-tk-seite .tabbar { display: none !important; }

/* Ticket-Seite: Sparpotenzial groß (Kombi + Gruppe) – Karten, Vergleich, Dialog (Nutzer 19.10.2026) */
body .prod-spar.big { display: grid; justify-items: start; gap: 2px; width: 100%; margin-top: 12px; padding: 12px 16px 13px; border-radius: 16px; text-align: left; box-shadow: 0 10px 24px rgba(255,122,47,.28); }
body .prod-spar.big :is(small,:where(.tag-small)) { font: 700 .72rem var(--kus-text); letter-spacing: .14em; text-transform: uppercase; opacity: .85; }
body .prod-spar.big :is(b,:where(.tag-b)) { font: italic 800 clamp(2.1rem, 3.2vw, 2.7rem)/.95 var(--kus-display); font-stretch: 75%; }
body .prod-spar.big :is(em,:where(.tag-em)) { font: 600 .8rem/1.3 var(--kus-text); font-style: normal; opacity: .9; }
body .prod-price s, body .vgl-preis s { font-size: .55em; font-style: normal; font-weight: 600; opacity: .55; text-decoration-thickness: 2px; margin-left: 4px; }
body .shop-vgl .vgl-spar { margin-top: 4px; padding: 12px 14px; border: 0 !important; border-radius: 14px; background: var(--g-orange); color: var(--navy); box-shadow: 0 10px 24px rgba(255,122,47,.25); }
body .shop-vgl .vgl-spar :is(dt,:where(.tag-dt)) { color: var(--navy); opacity: .8; }
body .shop-vgl .vgl-spar :is(dd,:where(.tag-dd)) { display: grid; gap: 2px; color: var(--navy) !important; }
body .shop-vgl .vgl-spar :is(dd,:where(.tag-dd)) :is(b,:where(.tag-b)) { font: italic 800 clamp(2rem, 3vw, 2.5rem)/.95 var(--kus-display); font-stretch: 75%; }
body .shop-vgl .vgl-spar :is(dd,:where(.tag-dd)) :is(span:where(:not([class*="tag-"])),:where(.tag-span)) { font-size: .84rem; font-weight: 600; }
body .pd-spar > :is(b,:where(.tag-b)) { font-size: clamp(1.6rem, 3vw, 2.1rem); }

/* Menü-Panel (Desktop): nie höher als das Fenster, sonst scrollbar – vorher abgeschnitten auf Laptops mit wenig Höhe */
@media (min-width: 961px) {
  body .mnav-in { max-height: calc(100svh - 110px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
  body.admin-bar .mnav-in { max-height: calc(100svh - 142px); }
}
@media (min-width: 961px) and (max-height: 820px) {
  body .mnav .mcol a { padding-top: 7px; padding-bottom: 7px; }
  body .mnav-in { gap: 10px; padding: 10px; }
}
/* Sparpotenzial als runder Sticker auf dem Ticketbild (Kombi/Gruppe) – bewusst keine Knopf-Form */
body .spar-sticker { position: absolute !important; top: 10px; right: 10px; z-index: 3; width: 104px; aspect-ratio: 1; display: grid; place-content: center; justify-items: center; gap: 1px; padding: 8px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #fff3b0 0%, #f2b51f 45%, #e08a12 100%); color: #0d1b2e; text-align: center; transform: rotate(-10deg); box-shadow: 0 0 0 3px #0d1b2e, 0 0 0 7px rgba(242,181,31,.35), 0 10px 22px rgba(0,0,0,.4); animation: sparPuls 3.2s ease-in-out infinite; }
body .spar-sticker::before { content: ""; position: absolute; inset: 6px; border-radius: 50%; border: 1.5px dashed rgba(13,27,46,.55); }
body .spar-sticker :is(small,:where(.tag-small)) { font: 800 .62rem/1.1 var(--kus-text); letter-spacing: .1em; text-transform: uppercase; }
body .spar-sticker :is(b,:where(.tag-b)) { font: italic 800 1.75rem/.95 var(--kus-display); font-stretch: 75%; white-space: nowrap; }
@keyframes sparPuls { 0%, 100% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-6deg) scale(1.05); } }
@media (prefers-reduced-motion: reduce) { body .spar-sticker { animation: none; } }
@media (max-width: 720px) { body .spar-sticker { width: 70px; top: 5px; right: 5px; padding: 5px; } body .spar-sticker::before { inset: 4px; } body .spar-sticker :is(b,:where(.tag-b)) { font-size: 1.15rem; } body .spar-sticker :is(small,:where(.tag-small)) { font-size: .5rem; letter-spacing: .06em; } }

/* Welt-Karten: Bild weich in den echten Kachel-Verlauf auslaufen lassen (Maske statt Farbverlauf auf --cut).
   Vorher endete das Bild an einer sichtbaren Kante, weil --cut einfarbig ist, der Kachelgrund aber ein Verlauf – beim Zoomen besonders deutlich. */
body .world-card :is(figure,:where(.tag-figure)) { -webkit-mask-image: linear-gradient(180deg, #000 45%, rgba(0,0,0,.55) 75%, transparent 100%); mask-image: linear-gradient(180deg, #000 45%, rgba(0,0,0,.55) 75%, transparent 100%); }
body .world-card :is(figure,:where(.tag-figure))::after { content: none; }

/* Info-Karte im großen Bereich oben der Unterseiten (statt Foto-Kachel, inc/karten.php) */
body .stack > .kk-oben, body .kk-oben { min-width: 0; min-height: 0; }
body .kk-oben > .elementor-widget-container { height: 100%; }
body .kk-oben .kk { height: 100%; min-height: 0; border-radius: var(--radius); }
body .kk-oben .kk { padding: clamp(18px, 2vw, 26px); justify-content: flex-end; }
body .kk-oben .kk h3, body .kk-oben .kk h2 { font-size: clamp(1.35rem, 2.1vw, 1.9rem); margin-bottom: 6px; }
body .kk-oben .kk p { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin: 0 0 10px; }
body .kk-oben .kk .btn { margin-top: 2px; }

/* Handy: „15. November“ passt in die schmale Preis-Kachel (war abgeschnitten) */
@media (max-width: 600px) { body .price-tile .price { font-size: clamp(1.8rem, 8.2vw, 3rem); overflow-wrap: anywhere; } }
body .kk-oben-gross .kk { padding: var(--pad); } body .kk-oben-gross .kk h3, body .kk-oben-gross .kk h2 { font-size: clamp(2rem, 3.4vw, 3.2rem); } body .kk-oben-gross .kk p { -webkit-line-clamp: 5; }
/* Erzeugt von tools/atomic_convert.py: frühere Inline-Stile als Klassen */
body .s-12203af { --k:3;--c:#f59a6b }
body .s-155ce45 { --k:0;--c:#ff7a2f }
body .s-17c9dbd { --k:5;--c:#f59a6b }
body .s-22cd551 { --k:7;--c:#f2b51f }
body .s-2395a3f { --acc:var(--gold) }
body .s-72a03f5 { --k:2;--c:#ff7a2f }
body .s-79dbaae { --acc:var(--apricot) }
body .s-875f2d0 { --k:6;--c:#ff7a2f }
body .s-97eed72 { --k:8;--c:#f59a6b }
body .s-ad8e01e { --k:1;--c:#ff7a2f }
body .s-b0d9e10 { --k:4;--c:#ff7a2f }
