/*
Theme Name: Grüne Soße Festival
Theme URI: https://gruene-sosse-festival.de
Author: Envy Lab – Ornella Esposito
Author URI: https://envylab.io
Description: Individuelles Theme für das Grüne Soße Festival. Design fest eingebaut, Inhalte werden über den Customizer und die Inhaltstypen gepflegt.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: gsf
*/


/* Layout: airy ivory page, arch-framed photography, filigree serif; photos carry the colour, UI stays quiet with one muted sage */
:root{
  --ivory:#F7F4EE; --stone:#ECE7DE; --ink:#27271F; --muted:#6D6A60; --line:#DDD6CA;
  --sage:#235A30; --sage-soft:#FFFFFF; --fresh:#86DD75; --mint:#FFFFFF; --night:var(--sage);
  --display:"Outfit", "Avenir Next", "Segoe UI", system-ui, sans-serif;
  --body:"Jost", "Avenir Next", "Segoe UI", system-ui, sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--ivory);color:var(--ink);font-family:var(--body);font-weight:300;font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{max-width:1160px;margin:0 auto;padding-inline:clamp(16px,4vw,44px)}
h1,h2,h3{font-family:var(--display);font-weight:800;margin:0;text-wrap:balance;letter-spacing:-.01em}
p{margin:0}
.eyebrow{font-size:11.5px;font-weight:400;letter-spacing:.22em;text-transform:uppercase;color:var(--sage)}
.btn{display:inline-flex;align-items:center;gap:10px;padding:13px 26px;border-radius:999px;font-family:var(--body);font-weight:400;font-size:14px;letter-spacing:.06em;text-decoration:none;border:1px solid var(--ink);background:none;color:var(--ink);cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.btn.solid{background:var(--ink);color:var(--ivory)}
.btn.solid:hover{background:var(--fresh);border-color:var(--fresh);color:var(--ink)}
.btn.line:hover{background:var(--ink);color:var(--ivory)}
:focus-visible{outline:1px solid var(--sage);outline-offset:4px}

.promo{display:block;background:var(--fresh);color:var(--ink);text-decoration:none;font-size:14px;letter-spacing:.04em;overflow:hidden}
.promo .rot{position:relative;height:42px;max-width:1160px;margin:0 auto}
.promo .rot span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding-inline:16px;text-align:center;opacity:0;transform:translateY(100%);transition:opacity .6s,transform .6s}
.promo .rot span.on{opacity:1;transform:none}
.promo .rot span.out{opacity:0;transform:translateY(-100%)}
.promo b{font-weight:500}
.promo:hover{filter:brightness(1.05)}
.badge{position:absolute;left:-26px;bottom:10%;width:132px;height:132px;border-radius:50%;background:var(--fresh);display:grid;place-items:center;text-decoration:none;color:var(--ink);box-shadow:0 0 0 8px var(--ivory)}
.badge svg.ring{position:absolute;inset:0;width:100%;height:100%;animation:spin 18s linear infinite}
.badge .arrow{font-family:var(--display);font-size:34px;line-height:1;transition:transform .3s}
.badge:hover .arrow{transform:translate(3px,-3px)}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.badge svg.ring{animation:none}.promo .rot span{transition:none}}
@media (max-width:860px){.badge{left:0;width:112px;height:112px}}
.draft{background:var(--night);color:#D9D6CC;font-size:12px;text-align:center;padding:7px 16px;letter-spacing:.08em}

header.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;background:color-mix(in srgb,var(--ivory) 90%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:16px}
.nav .logo img{height:26px;width:auto}
.fallback{font-family:var(--display);font-size:24px}
.nav ul{list-style:none;display:flex;gap:34px;margin:0;padding:0;font-size:14px;letter-spacing:.08em}
.nav ul a{text-decoration:none;color:var(--muted)}
.nav ul a:hover{color:var(--ink)}
.nav .btn{padding:9px 20px;font-size:13px}
@media (max-width:900px){.nav ul{display:none}}

.hero{padding-block:clamp(40px,7vw,96px) clamp(48px,7vw,88px)}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,6vw,80px);align-items:center}
.hero h1{font-size:clamp(56px,9vw,124px);line-height:.9;font-weight:300}
.hero h1 em{font-style:normal;color:var(--sage)}
.hero .lead{font-size:19px;color:var(--muted);max-width:36ch;margin-top:26px}
.hero .cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.count{display:flex;gap:28px;align-items:flex-end;margin-top:44px;padding-top:22px;border-top:1px solid var(--line);flex-wrap:wrap}
.count .n{display:grid}
.count .n b{font-family:var(--display);font-weight:300;font-size:46px;line-height:1;font-variant-numeric:tabular-nums}
.count .n span{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.count .lbl{font-size:13px;color:var(--muted);max-width:18ch;line-height:1.4}
.frames{position:relative;aspect-ratio:4/5;max-width:520px;width:100%;justify-self:end}
.arch{position:absolute;inset:0 12% 8% 0;border-radius:999px 999px 18px 18px;overflow:hidden;background:var(--stone)}
.arch img,.oval img{width:100%;height:100%;object-fit:cover}
.oval{position:absolute;right:0;bottom:0;width:44%;aspect-ratio:3/4;border-radius:999px;overflow:hidden;border:8px solid var(--ivory);background:var(--sage-soft)}

@media (max-width:860px){.hero .wrap{grid-template-columns:1fr}.frames{justify-self:center;max-width:420px}}

.kv{background:#86DD75;position:relative;overflow:hidden;padding:clamp(20px,3vw,36px) clamp(12px,3vw,40px)}
.kv .deco{position:absolute;width:130px;height:130px;color:var(--sage);opacity:.18;pointer-events:none}
.kv .panel{position:relative;max-width:1080px;margin:0 auto;border-radius:22px;padding:clamp(24px,3.4vw,40px) clamp(20px,4vw,52px);text-align:left;color:#fff;display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,4vw,56px);align-items:center;
  background:radial-gradient(circle at 0% 0%,#7EC6EA 0,rgba(126,198,234,0) 48%),radial-gradient(circle at 0% 100%,#E27FA8 0,rgba(226,127,168,0) 52%),radial-gradient(circle at 100% 100%,#F1E652 0,rgba(241,230,82,0) 55%),radial-gradient(circle at 92% 8%,#47A145 0,rgba(71,161,69,0) 58%),linear-gradient(135deg,#A9C4C8 0%,#9CB98B 55%,#C9CF72 100%);
  box-shadow:0 20px 60px -30px rgba(31,42,28,.45)}
.kv .info{min-width:0}
@media (max-width:760px){.kv .info{padding-right:0}}
.kv .top{display:flex;align-items:center;gap:clamp(14px,2vw,24px)}
.kv .logo-w img{width:clamp(150px,17vw,220px);height:auto}
.kv .logo-w .fallback{font-family:var(--display);font-weight:800;font-size:clamp(30px,3.4vw,44px);line-height:.95;display:block;max-width:7ch}
.jahre{position:relative;width:clamp(84px,9vw,112px);aspect-ratio:1;display:grid;place-items:center;flex:none}
.jahre svg{position:absolute;inset:0;width:100%;height:100%}
.jahre b{position:relative;font-family:var(--display);font-weight:800;font-size:clamp(26px,3vw,38px);line-height:.9;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.35)}
.jahre b small{display:block;font-size:.42em;font-weight:700}
.kv .date{font-family:var(--display);font-weight:800;font-size:clamp(22px,2.6vw,34px);line-height:1.05;color:var(--sage);letter-spacing:.01em;white-space:nowrap}
@media (max-width:420px){.kv .date{white-space:normal}}
.kv .claim{font-family:var(--display);font-weight:800;font-size:clamp(18px,2.3vw,30px);margin-top:6px;text-transform:uppercase;letter-spacing:.01em;text-shadow:0 2px 14px rgba(0,0,0,.18)}
.kv .cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.kv .cta .btn{padding:10px 20px;font-size:13px}
.kv .btn{border-color:#fff;color:#fff}
.kv .btn.solid{background:var(--sage);border-color:var(--sage);color:#fff}
.kv .btn.line:hover{background:#fff;color:var(--sage)}
.kv .count{border-top:1px solid rgba(255,255,255,.45);margin:18px 0 0;padding-top:12px;gap:20px;max-width:440px}
.kv .count .n b{font-size:30px}
.kv .count .n span,.kv .count .lbl{color:#fff}
.kv .count .n b{color:#fff}
.badge.float{position:fixed;left:auto;right:clamp(14px,2.5vw,32px);bottom:calc(clamp(14px,2.5vw,32px) + env(safe-area-inset-bottom,0px));top:auto;z-index:20;width:112px;height:112px;box-shadow:0 12px 30px -10px rgba(31,42,28,.45)}
@media (max-width:700px){.badge.float{width:88px;height:88px}}
@media (max-width:760px){.kv .panel{grid-template-columns:1fr;text-align:center}.kv .top,.kv .cta{justify-content:center}.kv .count{margin-inline:auto;justify-content:center}}
@media (max-width:700px){.kv .deco{width:90px;height:90px}}
.ribbon{border-block:1px solid var(--line);background:#fff;overflow:hidden}
.ribbon .track{display:flex;align-items:center;gap:18px;white-space:nowrap;padding-block:14px;animation:slide 48s linear infinite;width:max-content}
.ribbon .w{font-family:var(--display);font-weight:700;font-size:24px;text-transform:uppercase;letter-spacing:.02em;color:var(--ink);margin-right:34px}
.ribbon .herb{width:40px;height:40px;flex:none;color:var(--sage)}
.jahre svg{color:#fff}
@keyframes slide{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.ribbon .track{animation:none}}

.jubi .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,80px);align-items:start}
.jubi h2{font-size:clamp(34px,5vw,60px);line-height:1;text-transform:uppercase;color:var(--sage)}
.jubi .claim2{font-family:var(--display);font-weight:700;font-size:clamp(22px,2.6vw,30px);margin-top:12px}
.jubi .intro{font-size:20px;color:var(--muted);margin-top:22px;max-width:40ch}
.jubi details{margin-top:24px;border-top:1px solid var(--line);padding-top:16px}
.jubi summary{cursor:pointer;font-weight:400;letter-spacing:.08em;text-transform:uppercase;font-size:13px;list-style:none}
.jubi summary::after{content:" +";color:var(--sage)}
.jubi details[open] summary::after{content:" −"}
.jubi details p{color:var(--muted);margin-top:12px;max-width:60ch}
.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.fact{background:var(--mint);border:1px solid var(--line);border-radius:18px;padding:22px;display:grid;gap:4px}
.fact b{font-family:var(--display);font-weight:800;font-size:clamp(40px,5vw,60px);line-height:1;color:var(--sage)}
.fact span{font-size:15px;color:var(--muted);line-height:1.35}
.fact.wide{grid-column:span 2;background:var(--night);border-color:var(--night)}
.fact.wide b{color:#fff;font-size:clamp(26px,3vw,34px)}
.fact.wide span{color:rgba(255,255,255,.78)}
@media (max-width:820px){.jubi .wrap{grid-template-columns:1fr}}
section.block{padding-block:clamp(72px,10vw,128px)}
.shead{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:44px}
.shead h2{font-size:clamp(34px,5vw,60px);line-height:1;text-transform:uppercase;color:var(--sage)}
.shead h2 em{color:var(--ink)!important}
.shead h2 em{font-style:normal;color:var(--sage)}
.shead p{color:var(--muted);max-width:42ch}

.shows{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:20px}
.flip{perspective:1400px;border:0;padding:0;background:none;text-align:left;cursor:pointer;font:inherit;color:inherit;aspect-ratio:3/4;width:100%}
.flip .inner{position:relative;width:100%;height:100%;transition:transform .8s cubic-bezier(.2,.7,.2,1);transform-style:preserve-3d}
.flip.on .inner{transform:rotateY(180deg)}
@media (hover:hover){.flip:hover .inner{transform:rotateY(180deg)}}
@media (prefers-reduced-motion:reduce){.flip .inner{transition:none}}
.face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:18px;overflow:hidden}
.front{background:var(--stone)}
.front img{width:100%;height:100%;object-fit:cover}
.front::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(20,20,16,.72),rgba(20,20,16,0) 55%)}
.front .meta{position:absolute;left:20px;right:20px;bottom:18px;z-index:1;color:#F7F4EE;display:grid;gap:2px}
.front .date{font-size:12px;letter-spacing:.2em;text-transform:uppercase;opacity:.85}
.front h3{font-size:30px;line-height:1.05;font-weight:400}
.front .hint{position:absolute;top:14px;right:14px;z-index:1;width:34px;height:34px;border-radius:50%;border:1px solid rgba(247,244,238,.6);display:grid;place-items:center;color:#F7F4EE;font-size:15px}
.back{transform:rotateY(180deg);background:var(--ivory);border:1px solid var(--line);padding:24px;display:flex;flex-direction:column;justify-content:space-between;gap:16px}
.back .d{display:flex;align-items:baseline;gap:10px}
.back .d b{font-family:var(--display);font-weight:300;font-size:64px;line-height:.9}
.back .d span{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);line-height:1.4}
.back h3{font-size:28px;line-height:1.05}
.back q{font-family:var(--body);font-style:italic;font-weight:300;font-size:21px;line-height:1.3;color:var(--muted);quotes:"„" "“"}
.back .row{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;color:var(--muted)}
.back .btn{padding:9px 18px;font-size:12.5px}
.flip.finale .back{background:var(--night);border-color:var(--night);color:#F2EFE7}
.flip.finale .back q,.flip.finale .back .d span,.flip.finale .back .row{color:rgba(255,255,255,.72)}
.flip.finale .back .btn{border-color:#F2EFE7;color:#F2EFE7}

.contest{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,6vw,80px);align-items:center}
.contest .pic{aspect-ratio:4/5;border-radius:18px 18px 999px 999px;overflow:hidden;background:var(--stone)}
.contest .pic img{width:100%;height:100%;object-fit:cover}
.contest h2{font-size:clamp(34px,4.6vw,54px);line-height:1.02;margin-top:14px;text-transform:uppercase;color:var(--sage)}
.contest h2 em{font-style:normal;color:var(--sage)}
.contest p{color:var(--muted);margin-top:18px;max-width:42ch}
.podium{margin-top:34px;border-top:1px solid var(--line)}
.podium div{display:grid;grid-template-columns:56px 1fr auto;gap:12px;padding:16px 0;border-bottom:1px solid var(--line);align-items:baseline}
.podium b{font-family:var(--display);font-weight:300;font-size:40px;line-height:1;color:var(--sage)}
.podium span{font-family:var(--display);font-size:25px}
.podium small{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
@media (max-width:820px){.contest{grid-template-columns:1fr}.contest .pic{max-width:420px}}

.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(140px,18vw,230px);gap:14px}
.gallery figure{margin:0;border-radius:14px;overflow:hidden;background:var(--stone)}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .9s}
.gallery figure:hover img{transform:scale(1.04)}
.gallery .tall{grid-row:span 2}
.gallery .wide{grid-column:span 2}
@media (max-width:720px){.gallery{grid-template-columns:repeat(2,1fr)}}

.join{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:24px}
.card{display:grid;gap:16px;align-content:start;text-decoration:none}
.card .img{aspect-ratio:3/2;border-radius:16px;overflow:hidden;background:var(--stone)}
.card .img img{width:100%;height:100%;object-fit:cover;transition:transform .9s}
.card:hover .img img{transform:scale(1.04)}
.card h3{font-size:32px;line-height:1.05}
.card p{color:var(--muted)}
.card .more{font-size:13px;letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid var(--ink);justify-self:start;padding-bottom:2px}

.partners{display:grid;gap:30px;border-top:1px solid var(--line);padding-top:40px}
.ptier{display:grid;grid-template-columns:200px 1fr;gap:24px;align-items:baseline}
.plist{display:flex;flex-wrap:wrap;gap:8px 32px;font-family:var(--display);font-size:28px;font-weight:400}
.plist.small{font-size:21px;font-weight:300;color:var(--muted)}
@media (max-width:640px){.ptier{grid-template-columns:1fr;gap:6px}}

.news{background:var(--mint);border:1px solid var(--line);border-radius:999px;padding:clamp(28px,4vw,48px) clamp(28px,6vw,72px);display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center}
.news h2{font-size:clamp(28px,4vw,44px);line-height:1.05;text-transform:uppercase;color:var(--sage)}
.news h2 em{font-style:normal;color:var(--sage)}
.news form{display:flex;gap:10px;flex-wrap:wrap}
.news input{flex:1 1 220px;min-width:0;padding:13px 20px;border-radius:999px;border:1px solid var(--line);background:#fff;font:inherit;font-size:15px;color:var(--ink)}
.news .ok{font-size:14px;color:var(--sage);margin-top:10px}
@media (max-width:780px){.news{grid-template-columns:1fr;border-radius:28px}}

/* subpage */
.sub-hero{background:#86DD75;padding:clamp(20px,3vw,36px) clamp(12px,3vw,40px)}
.sub-hero .panel{max-width:1080px;margin:0 auto;border-radius:22px;padding:clamp(32px,5vw,64px) clamp(20px,4vw,56px);color:#fff;
  background:radial-gradient(circle at 0% 0%,#7EC6EA 0,rgba(126,198,234,0) 48%),radial-gradient(circle at 0% 100%,#E27FA8 0,rgba(226,127,168,0) 52%),radial-gradient(circle at 100% 100%,#F1E652 0,rgba(241,230,82,0) 55%),radial-gradient(circle at 92% 8%,#47A145 0,rgba(71,161,69,0) 58%),linear-gradient(135deg,#A9C4C8 0%,#9CB98B 55%,#C9CF72 100%)}
.sub-hero .crumb{font-size:13px;letter-spacing:.14em;text-transform:uppercase}
.sub-hero .crumb a{text-decoration:none;opacity:.85}
.sub-hero h1{font-size:clamp(38px,6vw,76px);line-height:.98;margin-top:14px;text-transform:uppercase}
.sub-hero .claim{font-family:var(--display);font-weight:800;font-size:clamp(20px,2.6vw,32px);color:var(--sage);margin-top:10px;text-transform:uppercase}
.quote{max-width:900px;margin:0 auto;text-align:center}
.quote p.big{font-family:var(--display);font-weight:800;font-size:clamp(30px,4.6vw,56px);line-height:1.05;color:var(--sage)}
.quote p.small{font-size:19px;color:var(--muted);max-width:56ch;margin:22px auto 0}
.chips{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:30px}
.chips span{border:1px solid var(--line);background:var(--mint);border-radius:999px;padding:8px 16px;font-size:15px}
.evening{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:16px}
.step{border-radius:20px;padding:26px;background:var(--mint);border:1px solid var(--line);display:grid;gap:10px;align-content:start}
.step .k{font-family:var(--display);font-weight:800;font-size:44px;line-height:1;color:var(--sage)}
.step h3{font-size:24px;line-height:1.1}
.step p{color:var(--muted)}
.step.dark{background:var(--night);border-color:var(--night);color:#F2EFE7}
.step.dark .k{color:#fff} .step.dark p{color:rgba(255,255,255,.78)}
.hosts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px}
.host{border-top:2px solid var(--fresh);padding-top:18px;display:grid;gap:6px}
.host h3{font-size:28px}
.host p{color:var(--muted)}
.vvk-strip{background:var(--night);color:#F2EFE7;border-radius:28px;padding:clamp(28px,5vw,56px);display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.vvk-strip h2{font-size:clamp(28px,4vw,48px);text-transform:uppercase;line-height:1.02}
.vvk-strip h2 span{color:#fff;opacity:.75}
.vvk-strip .btn{background:var(--fresh);border-color:var(--fresh);color:var(--ink)}

/* tickets */
.tk-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(24px,4vw,48px);align-items:start}
@media (max-width:900px){.tk-grid{grid-template-columns:1fr}}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:4px;background:#fff;gap:4px;flex-wrap:wrap}
.seg button{border:0;background:none;font:inherit;font-size:14px;letter-spacing:.04em;padding:9px 18px;border-radius:999px;cursor:pointer;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--sage);color:#fff}
.nights{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;margin-top:18px}
.night{border:1px solid var(--line);background:#fff;border-radius:14px;padding:10px 12px;text-align:left;cursor:pointer;font:inherit;display:grid;gap:2px}
.night b{font-family:var(--display);font-weight:800;font-size:22px;line-height:1}
.night span{font-size:12.5px;color:var(--muted);line-height:1.3}
.night[aria-pressed="true"]{border-color:var(--sage);box-shadow:inset 0 0 0 1px var(--sage)}
.night.fin b{color:var(--sage)}
.prices{margin-top:22px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff}
.prices table{width:100%;border-collapse:collapse;font-size:16px}
.prices th,.prices td{padding:14px 18px;border-bottom:1px solid var(--line);text-align:left}
.prices tr:last-child td{border-bottom:0}
.prices th{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:400}
.prices td.n,.prices th.n{text-align:right;font-variant-numeric:tabular-nums}
.prices td.n b{font-family:var(--display);font-weight:800;font-size:22px}
.cat{display:inline-flex;align-items:center;gap:10px}
.cat i{width:12px;height:12px;border-radius:3px;display:inline-block}
.sel-sum{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:18px;padding:18px 20px;border-radius:18px;background:var(--sage);color:#fff}
.sel-sum b{font-family:var(--display);font-weight:800;font-size:22px}
.sel-sum .btn{background:var(--fresh);border-color:var(--fresh);color:var(--ink)}
.sel-sum small{display:block;opacity:.8;font-size:13px}
.plan{border:1px solid var(--line);border-radius:18px;background:#fff;padding:18px;display:grid;gap:12px}
.plan img{width:100%;height:auto;border-radius:10px;background:var(--stone);min-height:180px}
.incl{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:12px}
.inc{border:1px solid var(--line);background:#fff;border-radius:16px;padding:18px;display:grid;gap:6px}
.inc svg{width:30px;height:30px;color:var(--sage)}
.inc h3{font-size:19px;line-height:1.15}
.inc p{font-size:14.5px;color:var(--muted)}
.ways{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:12px}
.way{border-top:2px solid var(--sage);padding-top:16px;display:grid;gap:6px;align-content:start}
.way h3{font-size:22px}
.way p{color:var(--muted);font-size:15px}
.way a{color:var(--sage);font-weight:400}
.embed{border:1.5px dashed var(--line);border-radius:18px;padding:28px;text-align:center;color:var(--muted);background:#fff;display:grid;gap:8px;place-items:center}
.embed b{color:var(--ink);font-family:var(--display);font-weight:700;font-size:20px}

footer.foot{background:var(--night);color:rgba(255,255,255,.72);margin-top:clamp(72px,10vw,128px)}
.foot .wrap{display:grid;grid-template-columns:auto 1fr;gap:40px;padding-block:56px;align-items:end}
.foot .flogo img{height:92px;width:auto}
.foot .fallback{color:#F2EFE7}
.foot .cols{display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;font-size:14px}
.foot nav{display:flex;flex-wrap:wrap;gap:22px}
.foot a{text-decoration:none}
.foot a:hover{color:#F2EFE7}
@media (max-width:700px){.foot .wrap{grid-template-columns:1fr}}
@font-face{font-family:"Figtree";src:url(font/figtree.ttf) format("truetype");font-weight:300 900;font-display:swap}
/* ===== Look & Feel Plakat 2027: Ringe, Kräuter-Mandala, roter Störer, Figtree ===== */
:root{
  --ivory:#FFFDF3; --stone:#F2EED8; --ink:#173A20; --muted:#4C6250; --line:#E7E1C4;
  --sage:#027233; --g:#027233; --y:#FCD500; --red:#E8412C; --lime:#A9CB3B;
  --fresh:#FCD500; --mint:#FFFFFF; --night:#027233; --sage-soft:#FFFFFF;
  --display:"Figtree","Avenir Next","Segoe UI",system-ui,sans-serif;
  --body:"Figtree","Avenir Next","Segoe UI",system-ui,sans-serif;
}
body{font-weight:400;font-size:17px;background:var(--ivory)}
h1,h2,h3{font-weight:800}
.eyebrow{font-weight:700;font-size:12px;letter-spacing:.18em;color:var(--g)}
.btn{font-weight:700;letter-spacing:.03em;border-width:2px}
.btn.solid{background:var(--g);border-color:var(--g);color:#fff}
.btn.solid:hover{background:var(--y);border-color:var(--y);color:var(--g)}
.btn.line{border-color:var(--g);color:var(--g)}
.btn.line:hover{background:var(--g);color:#fff}
.promo{background:var(--g);color:#fff}
.promo b{font-weight:800;color:var(--y)}
.draft{background:#0E3B1B}
header.nav{background:color-mix(in srgb,var(--ivory) 92%,transparent)}
.nav .logo img{height:30px}
.nav ul a{font-weight:600;color:var(--g)}
.nav ul a:hover{color:var(--red)}

/* Hero = Plakat */
.kv{background:#C9D43A url(img/rings-wide.jpg) center/cover no-repeat;padding:clamp(28px,5vw,72px) 16px;overflow:hidden}
.kv-in{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(20px,4vw,56px);align-items:center}
.kv-art{position:relative;width:100%;max-width:640px;aspect-ratio:1/1;justify-self:center}
.kv-art .mand{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;animation:turn 120s linear infinite}
@keyframes turn{to{transform:rotate(360deg)}}
.kv-art .kv-logo{position:absolute;left:10%;width:80%;top:14%;filter:drop-shadow(0 4px 18px rgba(0,60,20,.25))}
.stoerer{position:absolute;left:-2%;bottom:4%;width:31%;aspect-ratio:1/1;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;text-align:center;text-decoration:none;font-weight:800;font-size:clamp(15px,2.1vw,26px);line-height:1.1;transform:rotate(-10deg);box-shadow:0 14px 30px -14px rgba(90,20,10,.55);transition:transform .3s}
.stoerer:hover{transform:rotate(-4deg) scale(1.04)}
.kv-info{color:var(--g)}
.kv .date{font-weight:800;font-size:clamp(30px,3.7vw,52px);line-height:1.02;color:var(--g);white-space:normal;letter-spacing:-.01em}
.kv .claim{font-weight:800;font-size:clamp(30px,4vw,54px);line-height:1;color:#fff;text-transform:uppercase;margin-top:6px;text-shadow:0 2px 14px rgba(0,80,30,.22)}
.kv-lead{font-weight:600;font-size:clamp(17px,1.6vw,20px);line-height:1.45;margin-top:18px;max-width:34ch}
.kv .cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.kv .btn{border-color:var(--g);color:var(--g);background:rgba(255,255,255,.35)}
.kv .btn.solid{background:var(--g);color:#fff}
.kv .btn.line:hover{background:var(--g);color:#fff}
.kv .count{border-top:2px solid rgba(2,114,51,.22);margin-top:22px;padding-top:14px;max-width:460px}
.kv .count .n b{font-weight:800;font-size:38px;color:var(--g)}
.kv .count .n span,.kv .count .lbl{color:var(--g);font-weight:600}
@media (max-width:860px){.kv-in{grid-template-columns:1fr;text-align:center}.kv-art{max-width:460px}.kv-lead{margin-inline:auto}.kv .cta,.kv .count{justify-content:center;margin-inline:auto}}
@media (prefers-reduced-motion:reduce){.kv-art .mand{animation:none}}

/* Kräuterband mit echten Kräutern */
.ribbon{background:#fff;border-color:var(--line)}
.ribbon .herb{width:58px;height:58px;object-fit:contain}
.ribbon .w{font-weight:800;color:var(--g)}

/* Überschriften */
.shead h2,.jubi h2,.contest h2,.news h2{color:var(--g)}
.shead h2 em,.contest h2 em,.news h2 em{color:var(--ink)!important}
.jubi .claim2{color:var(--red)}
.fact{border-radius:22px}
.fact b{font-weight:800}
.fact.wide{background:var(--g) url(img/rings-band.jpg) right center/cover;background-blend-mode:multiply}
.podium b{font-weight:800;color:var(--red)}
.podium span{font-weight:700}

/* Programm-Karten */
.front::after{background:linear-gradient(to top,rgba(1,72,30,.86),rgba(1,72,30,0) 58%)}
.front h3{font-weight:800;text-transform:uppercase;font-size:27px}
.front .date{font-weight:700;color:var(--y);opacity:1}
.back{background:#fff}
.back .d b{font-weight:800;color:var(--g)}
.back h3{text-transform:uppercase}
.flip.finale .back{background:var(--g)}
.gallery figure,.card .img,.contest .pic{border-radius:20px}
.card h3{font-weight:800;color:var(--g)}
.card .more{font-weight:700;color:var(--g);border-color:var(--g)}

/* Partner mit Logos */
.partners{border-top:2px solid var(--line);gap:34px}
.ptier{align-items:center}
.plogos{display:flex;flex-wrap:wrap;align-items:center;gap:24px 44px}
.plogos img{width:auto;max-width:210px;object-fit:contain}
.plogos.big img{max-width:240px}
@media (max-width:640px){.plogos{gap:18px 28px}.plogos img{max-width:150px}}

/* Newsletter, Unterseiten, Bänder */
.news{background:#fff;border:2px solid var(--y)}
.sub-hero{background:#C9D43A url(img/rings-band.jpg) center/cover}
.sub-hero .panel{background:none;box-shadow:none;color:var(--g);padding-inline:clamp(4px,2vw,24px)}
.sub-hero .crumb{font-weight:700}
.sub-hero h1{color:#fff;font-weight:800;text-shadow:0 2px 16px rgba(0,80,30,.25)}
.sub-hero .claim{color:var(--g)}
.quote p.big{color:var(--g)}
.chips span{background:#fff;border-color:var(--y);font-weight:600;color:var(--g)}
.step .k{font-weight:800;color:var(--red)}
.step.dark{background:var(--g)}
.step.dark .k{color:var(--y)}
.host{border-top-color:var(--y)}
.vvk-strip{background:#C9D43A url(img/rings-band.jpg) center/cover;color:var(--g)}
.vvk-strip h2 span{color:#fff;opacity:1}
.vvk-strip .btn{background:var(--red);border-color:var(--red);color:#fff}
.seg button[aria-pressed="true"]{background:var(--g)}
.night b{font-weight:800}
.night[aria-pressed="true"]{border-color:var(--g);box-shadow:inset 0 0 0 1px var(--g)}
.sel-sum{background:var(--g)}
.sel-sum .btn{background:var(--y);border-color:var(--y);color:var(--g)}
.inc svg,.way a{color:var(--g)}
.way{border-top-color:var(--g)}

/* Schwebender Ticket-Störer */
.badge{background:var(--red)!important;color:#fff!important;box-shadow:0 14px 30px -12px rgba(90,20,10,.55)!important}
.badge .arrow{color:#fff;font-weight:800}

footer.foot{background:var(--g)}
.foot .flogo img{height:96px}

.kv .date span{white-space:nowrap}
.nav ul a{white-space:nowrap}
.saalplan-fallback{border-radius:10px;background:var(--stone);min-height:180px;display:grid;place-items:center;text-align:center;padding:20px;color:var(--g);font-weight:600}

/* Kräuter im Hintergrund wie auf der Originalseite (fixiert, Inhalte auf hellen Flächen darüber) */
body{background:#BFE29A}
body::before{content:"";position:fixed;inset:0;z-index:-1;background:url(img/kraeuter-blume.webp) center 46%/min(1250px,150vw) auto no-repeat;pointer-events:none}
main,header.nav,footer.foot,.promo,.draft{position:relative}
section.block{padding-block:clamp(36px,5.5vw,72px)}
section.block > .wrap{background:color-mix(in srgb,var(--ivory) 93%,transparent);border-radius:30px;padding-block:clamp(32px,5vw,64px);max-width:1180px;box-shadow:0 20px 50px -38px rgba(0,60,20,.45)}
section.block > .wrap.news-wrap{background:none;box-shadow:none}
@media (max-width:640px){section.block > .wrap{border-radius:22px;margin-inline:12px}}
#home > section.block:first-of-type{padding-top:clamp(36px,5vw,64px)}
footer.foot{margin-top:clamp(28px,4vw,48px)}
/* Festivalmarkt */
.markt{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px);align-items:center}
.markt h2{font-size:clamp(32px,4.4vw,54px);line-height:1.02;text-transform:uppercase;color:var(--g);margin-top:12px}
.markt h2 em{font-style:normal;color:var(--ink)}
.markt p{color:var(--muted);margin-top:16px;max-width:44ch}
.markt-pics{position:relative;aspect-ratio:1/1;max-width:100%}
.markt-pics figure{position:absolute;margin:0;overflow:hidden;border-radius:24px;box-shadow:0 18px 40px -24px rgba(0,60,20,.5)}
.markt-pics img{width:100%;height:100%;object-fit:cover}
.markt-pics .m1{left:0;top:0;width:78%;height:66%}
.markt-pics .m2{right:0;bottom:0;width:58%;height:48%;border:6px solid var(--ivory)}
@media (max-width:820px){.markt{grid-template-columns:1fr}}
/* Mail-Störer, rotierend */
.badge.mail{position:fixed;left:clamp(14px,2.5vw,32px);bottom:calc(clamp(14px,2.5vw,32px) + env(safe-area-inset-bottom,0px));right:auto;top:auto;z-index:20;width:112px;height:112px;border-radius:50%;display:grid;place-items:center;text-decoration:none;background:var(--y)!important;color:var(--g)!important}
.badge.mail text{fill:var(--g)}
.badge.mail .env{width:38px;height:38px;transition:transform .3s}
.badge.mail:hover .env{transform:scale(1.12) rotate(-6deg)}
@media (max-width:700px){.badge.mail{width:88px;height:88px}.badge.mail .env{width:30px;height:30px}}

/* Social-Icons */
.social{display:flex;gap:10px;align-items:center}
.social a{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:var(--g);border:2px solid var(--g);transition:background .25s,color .25s,transform .25s}
.social a:hover{background:var(--g);color:#fff;transform:translateY(-2px)}
.social svg{width:20px;height:20px}
.nav .wrap{gap:16px}
.nav-soc{margin-left:auto}
.foot-soc{width:100%}
.foot-soc a{color:#fff;border-color:rgba(255,255,255,.6);width:46px;height:46px}
.foot-soc a:hover{background:var(--y);border-color:var(--y);color:var(--g)}
@media (max-width:480px){.nav-soc a{width:34px;height:34px}.nav-soc svg{width:17px;height:17px}}

.badge.float .ticket-ico{width:40px;height:40px;color:#fff;transform:rotate(-12deg);transition:transform .3s}
.badge.float:hover .ticket-ico{transform:rotate(0) scale(1.08)}
@media (max-width:700px){.badge.float .ticket-ico{width:32px;height:32px}}
.nav .logo{flex:none}.nav .logo img{width:auto;max-width:none}
.nav ul{gap:24px}
@media (min-width:901px) and (max-width:1260px){.nav-soc{display:none}}
.nav .logo img{height:32px!important;width:auto!important;max-width:none!important;aspect-ratio:372.24/49.9}

/* Reiter Anfahrt */
.reiter{display:flex;flex-wrap:wrap;gap:8px;align-items:center;border-bottom:2px solid var(--line);padding-bottom:12px}
.reiter button{font:inherit;font-weight:700;font-size:15px;padding:11px 20px;border-radius:999px;border:2px solid var(--g);background:#fff;color:var(--g);cursor:pointer;transition:background .2s,color .2s}
.reiter button[aria-selected="true"]{background:var(--g);color:#fff}
.reiter button:hover{background:var(--y);border-color:var(--y);color:var(--g)}
.reiter-link{margin-left:auto;font-weight:700;color:var(--red);text-decoration:none}
.reiter-link:hover{text-decoration:underline}
.reiter-panel{padding-top:20px}
.orte{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:12px}
.orte li{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px 20px;display:grid;gap:4px}
.orte b{font-weight:800;color:var(--g);font-size:19px}
.orte span{color:var(--muted);font-size:15px}
@media (max-width:600px){.reiter-link{margin-left:0;width:100%;padding-top:6px}}

/* Impressum, Datenschutz */
.legal{max-width:860px!important}
.legal h3{font-size:clamp(20px,2.2vw,26px);color:var(--g);margin-top:36px}
.legal h3:first-child{margin-top:0}
.legal p,.legal li{color:var(--ink);font-size:16.5px;line-height:1.7;margin-top:12px;max-width:72ch;overflow-wrap:anywhere}
.legal ul{margin:12px 0 0;padding-left:22px}
.legal a{color:var(--g);font-weight:600}

/* Newsletter2Go */
.n2g-note{font-size:14px;line-height:1.5;color:var(--ink);margin:0 0 14px}
.n2g-note a{color:var(--g);text-decoration:underline}
.news.n2g-on{border-radius:32px;align-items:start}
#n2g-form form{display:block!important}
#n2g-form .n2g-row{margin:0 0 12px!important}
#n2g-form .n2g-lbl,#n2g-form label{display:block;font-size:13px;font-weight:600;color:var(--g);margin:0 0 6px}
#n2g-form input[type=text],#n2g-form input[type=email],#n2g-form select{width:100%!important;box-sizing:border-box;padding:13px 20px!important;border-radius:999px!important;border:1px solid var(--line)!important;background:#fff!important;font:inherit!important;font-size:15px!important;color:var(--ink)!important;height:auto!important}
#n2g-form input[type=checkbox]{width:auto!important;margin-right:8px}
#n2g-form button,#n2g-form input[type=submit]{background:var(--g)!important;color:#fff!important;border:0!important;border-radius:999px!important;padding:14px 28px!important;font:inherit!important;font-weight:800!important;cursor:pointer;width:auto!important}
#n2g-form .n2g-l{display:block}
#n2g-form p,#n2g-form span{font-size:13px;line-height:1.5}
#n2g-form img{display:none!important}
#n2g-form .n2g-l[style*="width: 100%"] > div{padding:6px 0 0!important;font-size:12px;line-height:1.5;color:#5b6b60}
#n2g-form .n2g-l[style*="width: 100%"] a,#n2g-form label a{color:var(--g);text-decoration:underline}
#n2g-form .checkbox-inline span{display:flex;align-items:flex-start;gap:8px}
#n2g-form .checkbox-inline input{margin:3px 0 0!important;accent-color:var(--g);flex:0 0 auto}
#n2g-form .checkbox-inline label{font-weight:500;color:var(--ink);font-size:13px;margin:0}
#n2g-form button{margin-top:6px!important;min-width:0!important}
@media (min-width:781px){#n2g-form .n2g-c{display:grid;grid-template-columns:1fr 1fr;column-gap:12px}#n2g-form .n2g-row:first-child,#n2g-form .n2g-row.checkbox-inline,#n2g-form .n2g-row:nth-last-child(-n+2){grid-column:1/-1}}
/* Umbau 09.10. */
.jubi h2 em{font-style:normal;color:var(--ink)}
.hosts{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.host{margin:0;display:grid;gap:16px;align-content:start}
.host .img{aspect-ratio:4/5;border-radius:18px 18px 999px 999px;overflow:hidden;background:var(--stone)}
.host .img img{width:100%;height:100%;object-fit:cover}
.host h3{font-size:24px;margin:6px 0 6px;color:var(--g)}
.host p{color:var(--muted);font-size:15px;line-height:1.5}
@media (max-width:820px){.hosts{grid-template-columns:1fr;max-width:460px}}
.flip .back .wein{font-size:12px;line-height:1.35;margin:10px 0 0;opacity:.85}
.flip .back .wein span{display:block;font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:10px;opacity:.8}
.days-head{display:flex;gap:24px;justify-content:space-between;align-items:end;flex-wrap:wrap;margin-bottom:16px}
.days-head p{color:var(--muted);max-width:60ch;font-size:15px;margin:0}
.days{display:grid;grid-template-columns:repeat(8,1fr);gap:10px}
.day{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;display:grid;gap:4px}
.day b{font-size:15px;color:var(--g)}
.day span{font-size:13px;color:var(--ink)}
.day small{font-size:11px;color:var(--muted);line-height:1.3}
.day.fin{background:var(--g);border-color:var(--g)}.day.fin b,.day.fin span,.day.fin small{color:#fff}
@media (max-width:1000px){.days{grid-template-columns:repeat(4,1fr)}}
@media (max-width:520px){.days{grid-template-columns:repeat(2,1fr)}}
#sieger{margin-top:22px}
.markt-when{display:grid;gap:2px;margin:18px 0 0}
.markt-when b{font-size:20px;color:var(--g)}
.markt-when span{color:var(--muted)}
.video{border-radius:22px;overflow:hidden;background:#000;aspect-ratio:16/9;margin-bottom:28px}
.video video{width:100%;height:100%;display:block;object-fit:cover}
.stories{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media (max-width:820px){.stories{grid-template-columns:1fr}}
.more-rez{margin-top:4px}
.more-rez summary{cursor:pointer;font-weight:700;color:var(--g);font-size:14px}
.more-rez p{font-size:14px;color:var(--muted);margin-top:8px}
/* Galerie mit Hochformat-Video */
.gal-grid{display:grid;grid-template-columns:minmax(260px,360px) 1fr;gap:clamp(24px,4vw,48px);align-items:start}
.gal-grid .video{aspect-ratio:9/16;margin:0;position:relative;border-radius:28px;box-shadow:0 20px 50px rgba(1,60,30,.18)}
.gal-grid .video video{object-fit:cover}
.gal-grid .vlabel{position:absolute;left:0;right:0;bottom:-34px;text-align:center;font-size:13px;font-weight:700;color:var(--g)}
.gal-grid .stories{grid-template-columns:1fr;gap:18px}
.gal-grid .stories .card{grid-template-columns:200px 1fr;column-gap:22px;row-gap:6px;align-items:start;background:#fff;border:1px solid var(--line);border-radius:20px;padding:14px}
.gal-grid .stories .card .img{grid-row:1/span 4;aspect-ratio:4/3;border-radius:14px}
.gal-grid .stories .card h3{font-size:22px;margin:0}
.gal-grid .stories .card p{font-size:14px;margin:0}
@media (max-width:860px){.gal-grid{grid-template-columns:1fr}.gal-grid .video{max-width:360px;margin:0 auto 40px}}
@media (max-width:520px){.gal-grid .stories .card{grid-template-columns:1fr}.gal-grid .stories .card .img{grid-row:auto}}
.gal-grid .vlabel{display:none}
/* Künstler-Info */
.flip .back .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.flip .back .row .btn{padding:8px 14px;font-size:13px}
.artist-dlg{border:0;padding:0;border-radius:24px;max-width:min(920px,calc(100vw - 32px));width:100%;max-height:calc(100vh - 48px);overflow:auto;background:#fff;color:var(--ink);box-shadow:0 30px 80px rgba(0,0,0,.35)}
.artist-dlg::backdrop{background:rgba(1,50,25,.55)}
.artist-dlg .x{position:absolute;top:12px;right:14px;width:40px;height:40px;border-radius:50%;border:0;background:var(--g);color:#fff;font-size:26px;line-height:1;cursor:pointer;z-index:2}
.ad-in{display:grid;grid-template-columns:.9fr 1.1fr}
.ad-img{position:relative;min-height:100%}
.ad-img img{width:100%;height:100%;object-fit:cover;display:block;min-height:320px}
.ad-img small{position:absolute;left:12px;bottom:10px;font-size:11px;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.ad-txt{padding:clamp(24px,4vw,44px)}
.ad-txt h3{font-size:clamp(26px,3vw,36px);color:var(--g);margin:8px 0 14px;text-transform:uppercase;line-height:1.05}
.ad-body p{font-size:15px;line-height:1.6;color:var(--muted);margin:0 0 10px}
.ad-meta{font-size:13px;line-height:1.55;border-top:1px solid var(--line);padding-top:14px;margin:16px 0 20px}
@media (max-width:720px){.ad-in{grid-template-columns:1fr}.ad-img img{max-height:280px;min-height:0}}
.n2g-note.small{font-size:12px;line-height:1.5;margin:12px 0 0;opacity:.85}
.flip .back q{font-size:17px;line-height:1.3}
.flip .back .row{gap:6px}
.flip .back .row > span:first-child{flex-basis:100%;font-size:12px;margin-bottom:2px}
.flip .back .row .btn{padding:7px 14px;font-size:12px}
.flip .back .wein{margin-top:8px}
.flip .back{pointer-events:none}
.flip.on .back,.flip:hover .back{pointer-events:auto}
.flip.on .front,.flip:hover .front{pointer-events:none}

.past{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:8px}
.past figure{margin:0}
.past .img{aspect-ratio:4/3;border-radius:18px;overflow:hidden;background:#e8f2e4}
.past img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}
.past figure:hover img{transform:scale(1.04)}
.past figcaption{padding:12px 2px 0}
.past figcaption b{display:block;font-weight:800;color:var(--g);font-size:17px;line-height:1.25}
.past figcaption span{font-size:13px;opacity:.75}
@media (max-width:900px){.past{grid-template-columns:repeat(2,1fr);gap:16px}}

/* Flipcards: Vorderseite schimmerte in Safari durch */
.flip .face,.flip .front .meta,.flip .front .hint,.flip .front img{-webkit-backface-visibility:hidden;backface-visibility:hidden}
.flip .front{transform:rotateY(0deg) translateZ(1px)}
.flip .back{transform:rotateY(180deg) translateZ(1px)}
.flip .front::after{-webkit-backface-visibility:hidden;backface-visibility:hidden}
.flip .btn:focus:not(:focus-visible){outline:none;box-shadow:none}
.flip .btn{-webkit-tap-highlight-color:transparent}
@media (max-width:1439px){.nav .nav-soc{display:none}}
.gs,.gs-grid>*{min-width:0}
/* Weitere Veranstaltungen */
.more-ev{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.ev{display:grid;grid-template-columns:200px 1fr;gap:22px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:20px;padding:14px}
.ev .img{aspect-ratio:4/3;border-radius:14px;overflow:hidden}.ev img{width:100%;height:100%;object-fit:cover;display:block}
.ev h3{font-weight:800;color:var(--g);font-size:22px;margin:6px 0 8px}.ev p{margin:0;font-size:15px;line-height:1.5}
.ev .when{display:inline-block;margin-top:10px;font-weight:700;font-size:13px;color:var(--g)}
@media (max-width:900px){.more-ev{grid-template-columns:1fr}.ev{grid-template-columns:1fr}}
/* Grie Soß & mehr */
.gs-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.gs{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;display:flex;flex-direction:column}
.gs .img{aspect-ratio:16/9;overflow:hidden}.gs .img img{width:100%;height:100%;object-fit:cover;display:block}
.gs .tx{padding:22px 24px 24px}.gs h3{font-weight:800;color:var(--g);font-size:24px;line-height:1.15;margin:8px 0 10px}
.gs p{margin:0 0 10px;line-height:1.6}.gs details{margin-top:6px}.gs summary{cursor:pointer;font-weight:700;color:var(--g)}
.gs ul{margin:8px 0 12px 18px;padding:0;line-height:1.55}.gs .poem{white-space:pre-line;font-style:italic;line-height:1.55;margin-top:10px}
.gs a.more{display:inline-block;margin-top:6px}
@media (max-width:900px){.gs-grid{grid-template-columns:1fr}}

/* Flipcards: Höhe richtet sich nach dem Inhalt, Buttons werden nie abgeschnitten */
.flip{aspect-ratio:auto}
.flip .inner{display:grid;height:auto}
.flip .face{position:relative;inset:auto;grid-area:1/1}
.flip .front{aspect-ratio:3/4}
.flip .front img{position:absolute;inset:0}
.shows{align-items:stretch}.flip{display:flex;flex-direction:column;height:100%}.flip .inner{flex:1 1 auto;aspect-ratio:3/4;height:auto}.flip .front{aspect-ratio:auto}
/* Rückblicke */
.years{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.year{display:flex;flex-direction:column;justify-content:space-between;min-height:190px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px;text-decoration:none;color:inherit;transition:transform .25s,box-shadow .25s}
.year:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(1,60,30,.12)}
.year b{font-weight:800;font-size:44px;line-height:1;color:var(--g)}
.year h3{font-weight:800;font-size:18px;margin:12px 0 4px;color:var(--g)}
.year p{margin:0;font-size:14px;opacity:.8}
.year .more{margin-top:14px;font-weight:700;font-size:13px;color:var(--g)}
.year.dark{background:var(--g);border-color:var(--g)}.year.dark b,.year.dark h3,.year.dark .more{color:#fff}.year.dark p{color:#fff}
@media (max-width:900px){.years{grid-template-columns:repeat(2,1fr);gap:14px}.year b{font-size:34px}}

.tl{display:grid;gap:10px}
.tl-row{display:grid;grid-template-columns:110px 1fr auto;gap:16px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px 14px 12px 20px}
.tl-row b{font-weight:800;color:var(--g);font-size:15px}.tl-row span{font-weight:700;font-size:17px}
.tl-row.fin{background:var(--g);border-color:var(--g)}.tl-row.fin b,.tl-row.fin span{color:#fff}.tl-row.fin .btn{border-color:#fff;color:#fff}
.tl-row .btn{padding:8px 16px;font-size:13px}
.tl-foot{margin-top:16px;font-size:14px}
@media (max-width:600px){.tl-row{grid-template-columns:1fr auto;padding:12px 12px 12px 16px}.tl-row b{grid-column:1/-1;font-size:13px}}
.mk-info{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}
.mk-info div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 16px}
.mk-info b{display:block;font-weight:800;color:var(--g);font-size:15px}.mk-info span{font-size:13.5px;opacity:.8}
@media (max-width:480px){.mk-info{grid-template-columns:1fr}}

.surv-wrap{margin-top:34px;text-align:left}
.surv-wrap .eyebrow{text-align:center;display:block;margin-bottom:16px}
.surv{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.sv{position:relative;background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px 18px 20px;overflow:hidden;transition:transform .3s,box-shadow .3s}
.sv:hover{transform:translateY(-4px) rotate(-.5deg);box-shadow:0 14px 30px rgba(1,60,30,.12)}
.sv svg{width:34px;height:34px;color:var(--g)}
.sv h3{font-weight:800;font-size:17px;line-height:1.2;margin:12px 0 4px;color:var(--g)}
.sv p{margin:0;font-size:13.5px;line-height:1.45;opacity:.8}
.sv .stamp{position:absolute;top:14px;right:10px;font-weight:800;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:#E8432F;border:2px solid #E8432F;border-radius:8px;padding:3px 7px;transform:rotate(8deg) scale(1.8);opacity:0;transition:transform .35s cubic-bezier(.3,1.6,.5,1),opacity .2s}
.surv.in .sv .stamp{opacity:1;transform:rotate(8deg) scale(1)}
.sv.best{grid-column:span 1;background:var(--g);border-color:var(--g);color:#fff}
.sv.best svg,.sv.best h3{color:#fff}.sv.best p{opacity:.9}
.sv.best .stamp{color:var(--y);border-color:var(--y)}
@media (max-width:900px){.surv{grid-template-columns:repeat(2,1fr);gap:10px}.sv{padding:14px 14px 16px}.sv h3{font-size:15px}}
@media (prefers-reduced-motion:reduce){.sv .stamp{transition:none}}

header.nav{position:sticky!important;top:0;z-index:40}
.h-team .l1{white-space:nowrap}
@media (max-width:560px){.h-team .l1{white-space:normal}}

.flip .inner{aspect-ratio:auto!important}
.flip .back{overflow:visible}
.flip .face{height:100%}
.flip.finale .back .d b{color:#fff}

.rot-say{margin:38px auto 0;text-align:center;max-width:760px}
.rot-say .eyebrow{display:block;margin-bottom:10px}
.rot-line{position:relative;height:1.5em;font-size:clamp(24px,3.4vw,38px);font-weight:300;color:var(--g);overflow:hidden}
.rot-line span{position:absolute;left:0;right:0;top:0;opacity:0;transform:translateY(.55em);transition:opacity .6s ease,transform .6s ease;white-space:nowrap}
.rot-line span.on{opacity:1;transform:none}
.rot-line span.out{opacity:0;transform:translateY(-.55em)}
.rot-line span.fin{font-weight:600}
.rot-dots{display:flex;gap:6px;justify-content:center;margin-top:14px}
.rot-dots i{width:6px;height:6px;border-radius:50%;background:var(--line);transition:background .4s,transform .4s}
.rot-dots i.on{background:var(--g);transform:scale(1.25)}
@media (max-width:560px){.rot-line span{white-space:normal}.rot-line{height:2.6em}}
@media (prefers-reduced-motion:reduce){.rot-line span{transition:none}}
.quote .lead-fest{font-size:clamp(18px,1.6vw,22px);line-height:1.6;max-width:760px;margin:0 auto}

.past figure{cursor:pointer}
.past .img{position:relative}
.past .img::after{content:"Bilder ansehen";position:absolute;left:10px;bottom:10px;background:rgba(255,255,255,.92);color:var(--g);font-weight:700;font-size:12px;padding:6px 10px;border-radius:999px;opacity:0;transform:translateY(4px);transition:opacity .25s,transform .25s}
.past figure:hover .img::after,.past figure:focus-visible .img::after{opacity:1;transform:none}
@media (hover:none){.past .img::after{opacity:1;transform:none}}
dialog.lb{border:0;padding:0;background:transparent;max-width:min(1100px,94vw);width:100%;overflow:visible}
dialog.lb::backdrop{background:rgba(10,30,15,.82)}
.lb-in{position:relative;background:#111;border-radius:18px;overflow:hidden}
.lb-in img,.lb-in video{display:block;width:100%;max-height:78vh;object-fit:contain;background:#111}
.lb-cap{display:flex;justify-content:space-between;align-items:center;gap:12px;color:#fff;padding:12px 4px 0;font-size:15px}
.lb-cap b{font-weight:800}
.lb button{position:absolute;border:0;cursor:pointer;background:rgba(255,255,255,.92);color:var(--g);width:44px;height:44px;border-radius:50%;font-size:22px;line-height:1;display:grid;place-items:center}
.lb .x{top:-14px;right:-14px;z-index:2}
.lb .pv{left:12px;top:50%;transform:translateY(-50%)}.lb .nx{right:12px;top:50%;transform:translateY(-50%)}
.lb.one .pv,.lb.one .nx{display:none}
@media (max-width:600px){.lb .x{top:8px;right:8px}}
html.pre body{opacity:0}
html.ready body{opacity:1;transition:opacity .35s ease}

.evening.ev5{grid-template-columns:repeat(5,1fr)}
.ev-facts{display:flex;justify-content:center;gap:clamp(18px,4vw,56px);margin-top:28px;flex-wrap:wrap;color:var(--g);font-size:15px}
.ev-facts b{font-weight:800;font-size:clamp(22px,2.4vw,30px);margin-right:6px}
@media (max-width:1000px){.evening.ev5{grid-template-columns:repeat(2,1fr)}.evening.ev5 .step.dark{grid-column:1/-1}}
@media (max-width:520px){.evening.ev5{grid-template-columns:1fr}}

.jury{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,64px);align-items:start}
.jury p{line-height:1.65;margin-top:14px}
.jury-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.jury-list li{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 18px 16px 52px;position:relative}
.jury-list li::before{content:"✓";position:absolute;left:18px;top:15px;width:22px;height:22px;border-radius:50%;background:var(--g);color:#fff;font-size:13px;font-weight:800;display:grid;place-items:center}
.jury-list b{display:block;font-weight:800;color:var(--g);margin-bottom:2px}
.jury-list span{font-size:15px;line-height:1.5}
@media (max-width:860px){.jury{grid-template-columns:1fr}}

.ad-in{align-items:stretch}
.ad-img img{aspect-ratio:4/5;height:100%;min-height:320px}
@media (max-width:720px){.ad-img img{aspect-ratio:4/3;height:auto;min-height:0;max-height:none}}

.gform-wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(28px,5vw,64px);align-items:start}
.gform-intro p{line-height:1.65;margin-top:14px}
.gform-facts{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:10px}
.gform-facts li{border-left:3px solid var(--y);padding:4px 0 4px 14px}
.gform-facts b{display:block;font-weight:800;color:var(--g)}.gform-facts span{font-size:14.5px}
.gform-facts a{color:var(--g);font-weight:700}
.gform{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px;background:#fff;border:1px solid var(--line);border-radius:24px;padding:clamp(20px,3vw,34px);box-shadow:0 20px 50px -30px rgba(1,60,30,.35)}
.gform .full{grid-column:1/-1}
.gf{display:grid;gap:6px;min-width:0;border:0;margin:0;padding:0}
.gf label,.gf legend{font-weight:700;font-size:14px;color:var(--g)}
.gf legend span{font-weight:400;opacity:.75}
.gf input,.gf select{font:inherit;font-size:16px;width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:#FBFBF4;color:var(--ink);transition:border-color .2s,box-shadow .2s}
.gf input:focus,.gf select:focus{outline:none;border-color:var(--g);box-shadow:0 0 0 3px rgba(1,110,50,.15);background:#fff}
.gf small{font-size:12px;opacity:.7}
.gf input.err,.gf select.err{border-color:#E8432F}
.days{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.day-chip{position:relative;cursor:pointer}
.day-chip input{position:absolute;opacity:0;pointer-events:none}
.day-chip span{display:grid;place-items:center;min-width:62px;padding:8px 10px;border:1.5px solid var(--line);border-radius:12px;font-size:13px;background:#FBFBF4;transition:all .2s}
.day-chip b{font-weight:800;color:var(--g);font-size:14px}
.day-chip input:checked+span{background:var(--g);border-color:var(--g);color:#fff}.day-chip input:checked+span b{color:var(--y)}
.day-chip input:focus-visible+span{box-shadow:0 0 0 3px rgba(1,110,50,.25)}
.days-hint{color:#E8432F;opacity:1!important}
.gf-check{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.5}
.gf-check input{width:18px;height:18px;margin-top:2px;accent-color:var(--g);flex:none}
.gf-check a{color:var(--g);font-weight:700}
.gf-send{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.gf-send small{font-size:12px;opacity:.7}
.gf-ok{background:var(--g);color:#fff;border-radius:14px;padding:14px 18px;font-weight:700;margin:0}
@media (max-width:900px){.gform-wrap{grid-template-columns:1fr}}
@media (max-width:560px){.gform{grid-template-columns:1fr}}
.ad-host{color:var(--g);font-weight:700}

/* Heike 16.10. */
.shows{grid-template-columns:repeat(2,1fr)!important;gap:22px}
@media (max-width:760px){.shows{grid-template-columns:1fr!important}}
.flip .front h3{font-size:clamp(24px,2.6vw,34px)}
.hosts.compact{grid-template-columns:repeat(3,1fr)!important;max-width:none!important;gap:20px}
@media (max-width:760px){.hosts.compact{grid-template-columns:1fr!important}}
.hosts.compact .host .img{aspect-ratio:3/2;border-radius:14px}
.hosts.compact .host h3{font-size:19px;margin:2px 0 4px}
.hosts.compact .host p{font-size:14px}
#gastgeber .shead h2{font-size:clamp(26px,3vw,38px)}
.artist-dlg{max-width:min(820px,calc(100vw - 32px))!important}
.artist-dlg .ad-in{grid-template-columns:1fr!important}
.artist-dlg .ad-img img{aspect-ratio:16/9!important;height:auto!important;min-height:0!important;max-height:none!important}
.ad-abend{border:1px dashed var(--line);border-radius:14px;padding:14px 16px;margin:0 0 18px;font-size:13.5px;color:var(--muted)}
.ad-abend b{display:block;color:var(--g);font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px}
.nw{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(24px,4vw,56px);align-items:center;margin-bottom:clamp(36px,5vw,64px)}
.nw .img{border-radius:20px;overflow:hidden;aspect-ratio:3/2}.nw .img img{width:100%;height:100%;object-fit:cover}
.nw p{line-height:1.65}
@media (max-width:760px){.nw{grid-template-columns:1fr}}
.join.two{grid-template-columns:repeat(2,1fr)}
@media (max-width:760px){.join.two{grid-template-columns:1fr}}
.pt{width:100%;border-collapse:collapse;font-size:16px;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.pt th,.pt td{padding:13px 16px;border-bottom:1px solid var(--line);text-align:left}
.pt thead th{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600}
.pt td.n,.pt th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.pt tbody th{font-weight:800;color:var(--g)}
.pt-wrap{border-radius:18px;overflow:hidden;border:1px solid var(--line)}
.pt-wrap .pt{border:0;border-radius:0}
.preis-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(24px,4vw,48px);align-items:start}
@media (max-width:860px){.preis-grid{grid-template-columns:1fr}}
.pt-note{font-size:14px;color:var(--muted);margin-top:12px}
.mk-gal{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.mk-gal figure{margin:0;border-radius:16px;overflow:hidden;aspect-ratio:4/3;cursor:zoom-in}
.mk-gal figure img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.mk-gal figure:hover img{transform:scale(1.03)}
.mk-gal figure.w{grid-column:span 2;aspect-ratio:auto}
@media (max-width:760px){.mk-gal{grid-template-columns:repeat(2,1fr)}.mk-gal figure.w{grid-column:span 2}}
.mk-soon{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:clamp(28px,4vw,44px)}
.mk-soon div{border:1px dashed var(--line);border-radius:18px;padding:22px;background:#fff}
.mk-soon b{display:block;color:var(--g);font-weight:800;font-size:19px;margin-bottom:6px}
@media (max-width:760px){.mk-soon{grid-template-columns:1fr}}
.years.uni{grid-template-columns:repeat(2,1fr)!important;gap:18px}
@media (max-width:760px){.years.uni{grid-template-columns:1fr!important}}
.yr{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px;display:grid;gap:10px}
.yr.dark{background:var(--g);color:#fff;border-color:var(--g)}
.yr .yh{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.yr .yh b{font-weight:800;font-size:40px;line-height:1;color:var(--g)}
.yr.dark .yh b,.yr.dark h3,.yr.dark .more{color:#fff}
.yr .yh span{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;opacity:.75}
.yr h3{margin:0;font-weight:800;font-size:19px;color:var(--g)}
.yr p{margin:0;font-size:14.5px;line-height:1.55;opacity:.85}
.yr ol{margin:0;padding:0;list-style:none;display:grid;gap:4px;font-size:14px}
.yr ol li b{display:inline-block;min-width:26px;font-weight:800}
.yr .todo{font-size:13px;font-style:italic;opacity:.65}
.yr .more{font-weight:700;font-size:13px;color:var(--g);text-decoration:none}
.tk-jump{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:18px}
.mk-gal figure.w{grid-column:auto!important;aspect-ratio:4/3!important}
#gastronomen .contest .pic{aspect-ratio:3/2!important;border-radius:20px!important;max-width:none!important}
#gastronomen .contest{grid-template-columns:1.1fr .9fr}
@media (max-width:860px){#gastronomen .contest{grid-template-columns:1fr}}
#buchen .prices{display:none}
#buchen .sel-sum{margin-top:22px}
.gform textarea{width:100%;box-sizing:border-box;padding:13px 18px;border-radius:18px;border:1px solid var(--line);font:inherit;font-size:15px;background:#fff;resize:vertical}
.incl{grid-template-columns:repeat(5,1fr)!important;gap:14px}
@media (max-width:1000px){.incl{grid-template-columns:repeat(3,1fr)!important}}
@media (max-width:640px){.incl{grid-template-columns:repeat(2,1fr)!important}}
.inc{align-content:start}
.inc .ico{width:48px;height:48px;border-radius:14px;background:rgba(2,114,51,.08);display:grid;place-items:center;margin-bottom:8px}
.inc .ico svg{width:24px;height:24px;color:var(--g)}

.rbgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media (max-width:900px){.rbgrid{grid-template-columns:repeat(2,1fr);gap:14px}}
@media (max-width:560px){.rbgrid{grid-template-columns:1fr}}
.rbf{perspective:1400px;cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent}
.rbf .in{position:relative;aspect-ratio:4/5;transition:transform .8s cubic-bezier(.2,.7,.2,1);transform-style:preserve-3d}
.rbf.on .in{transform:rotateY(180deg)}
@media (hover:hover){.rbf:hover .in{transform:rotateY(180deg)}}
.rbf:focus-visible .in{box-shadow:0 0 0 3px var(--fresh);border-radius:20px}
.rbf .fc{position:absolute;inset:0;border-radius:20px;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}
.rbf .fr{transform:rotateY(0deg) translateZ(1px);background:#0d2a17}
.rbf .fr img{width:100%;height:100%;object-fit:cover;display:block}
.rbf .fr::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(1,60,27,.85) 100%)}
.rbf .fr .m{position:absolute;left:22px;right:22px;bottom:20px;z-index:1;color:#fff;display:grid;gap:4px}
.rbf .fr .m b{font-family:var(--display);font-weight:700;font-size:clamp(34px,3.6vw,48px);line-height:1}
.rbf.anf .fr .m b{font-size:clamp(28px,2.8vw,38px)}
.rbf .fr .m span{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;opacity:.9}
.rbf .fr .hint{position:absolute;top:14px;right:14px;z-index:1;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.9);color:var(--g);display:flex;align-items:center;justify-content:center;font-size:16px}
.rbf .bk{transform:rotateY(180deg) translateZ(1px);background:var(--g);color:#fff;padding:24px;display:flex;flex-direction:column;justify-content:space-between;gap:16px;pointer-events:none}
.rbf.on .bk{pointer-events:auto}
@media (hover:hover){.rbf:hover .bk{pointer-events:auto}}
.rbf .bk .yh{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.rbf .bk .yh b{font-family:var(--display);font-weight:700;font-size:34px;line-height:1}
.rbf .bk .yh span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;opacity:.8}
.rbf .bk h3{margin:12px 0 0;font-size:19px;font-weight:600;color:#fff}
.rbf .bk p{margin:8px 0 0;font-size:14.5px;line-height:1.5;opacity:.88}
.rbf .bk ol{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:4px;font-size:14px}
.rbf .bk ol b{display:inline-block;width:24px;color:var(--fresh)}
.rbf .bk .todo{font-size:13px;opacity:.7}
.rbf .gbtn{align-self:flex-start;display:inline-flex;align-items:center;padding:10px 20px;border-radius:999px;border:1px solid rgba(255,255,255,.85);font-size:13px;letter-spacing:.04em;cursor:pointer;transition:background .25s,color .25s}
.rbf .gbtn:hover,.rbf .gbtn:focus-visible{background:#fff;color:var(--g);outline:none}
@media (prefers-reduced-motion:reduce){.rbf .in{transition:none}}
.artist-dlg .ad-img{overflow:hidden}.artist-dlg .ad-img.fit::before{content:'';position:absolute;inset:-30px;background:var(--bgimg) center/cover;filter:blur(26px) brightness(.85)}.artist-dlg .ad-img.fit img{position:relative;object-fit:contain!important}.artist-dlg .ad-img small{z-index:1}.artist-dlg .ad-img.fit::before{display:none}.sp{background:#EFEDE6;border-radius:16px;padding:14px 14px 18px;margin-top:14px}
.sp-stage{margin:0 auto 14px;width:60%;text-align:center;font-size:11px;letter-spacing:.3em;text-transform:uppercase;font-weight:600;color:var(--muted);background:#fff;border-radius:8px;padding:6px 0}
.sp-row{display:grid;grid-template-columns:repeat(10,1fr);gap:6px;margin-top:8px}
.sp-row i{display:block;aspect-ratio:1/2.4;border-radius:4px}
.sp-leg{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:8px;font-size:14px}
.sp-leg li{display:flex;align-items:center;gap:10px}
.sp-leg b{font-weight:600;color:var(--g);min-width:92px}
.sp-leg .sw{width:28px;height:14px;border-radius:4px;flex:none}
.sp-note{font-size:14px;color:var(--muted);margin-top:12px}
.pt tbody th .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:10px;vertical-align:middle}
.preis-grid>*{min-width:0}.pt-wrap{overflow-x:auto}.pt tbody th{white-space:nowrap}
@media (max-width:860px){.preis-grid{grid-template-columns:minmax(0,1fr)!important}}
@media (max-width:560px){#preise .pt th,#preise .pt td{padding:10px 4px!important;font-size:12.5px!important}#preise .pt thead th{font-size:9.5px!important;letter-spacing:.06em!important}#preise .pt tbody th .dot{margin-right:6px;width:8px;height:8px}.sp{padding:10px 10px 14px}.sp-row{gap:4px}}#cat .dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:8px;vertical-align:middle;box-shadow:0 0 0 2px rgba(255,255,255,.7)}.cat-hint{font-size:13px;color:var(--muted);margin:10px 0 0}.cat-hint a{color:var(--g)}@media (max-width:560px){#cat{flex-wrap:nowrap}#cat button{padding:9px 11px;font-size:13px;white-space:nowrap}#cat .dot{margin-right:6px}}.rbf .bk .sub{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;opacity:.75;margin:14px 0 0}.rbf .bk .lst{font-size:13.5px;line-height:1.45;margin:4px 0 0;opacity:.92}.rbf .bk .sub+ol{margin-top:6px!important}header.nav .lang{display:flex;align-items:center;gap:6px;font-size:12.5px;letter-spacing:.08em;font-weight:600;margin-left:14px}header.nav .lang a{color:var(--muted);text-decoration:none;padding:4px 2px}header.nav .lang a[aria-current="true"]{color:var(--g);pointer-events:none}header.nav .lang a:hover{color:var(--g)}header.nav .lang span{color:var(--line)}@media (max-width:760px){header.nav .lang{margin-left:auto;margin-right:10px;font-size:13px}header.nav .lang a[aria-current="true"],header.nav .lang span{display:none}}@media (max-width:430px){header.nav .logo img{height:25px!important}header.nav .lang{margin-right:2px}}@media (max-width:760px){header.nav .lang{margin-left:auto;margin-right:10px;font-size:13px}header.nav .lang a[aria-current="true"],header.nav .lang span{display:none}}@media (max-width:430px){header.nav .logo img{width:auto;max-width:188px;height:auto}header.nav .lang{margin-right:2px}}@media (max-width:760px){header.nav .lang{margin-left:auto;margin-right:10px;font-size:13px}header.nav .lang a[aria-current="true"],header.nav .lang span{display:none}}@media (max-width:400px){#jubilaeum .wrap,#jubilaeum .wrap *{min-width:0}#jubilaeum .facts,#jubilaeum .facts *{overflow-wrap:anywhere;hyphens:auto}}.nw.rev{margin-bottom:0}@media (min-width:861px){.nw.rev{grid-template-columns:1.1fr 1fr}.nw.rev>.img{order:2}}.pt .gap{width:clamp(18px,4vw,44px);padding:0!important;border-bottom:0!important;background:var(--bg,#fff)}.pt td.n,.pt th.n{width:1%;padding-left:10px;padding-right:10px}.tk-partner{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:14px}.tk-partner .logo-slot{display:inline-grid;place-items:center;min-width:130px;height:44px;border:1px dashed var(--line);border-radius:10px;font-size:12px;color:var(--muted);padding:0 12px}.bk-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.bk{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;text-decoration:none;color:var(--ink);transition:transform .2s,box-shadow .2s}.bk:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,60,20,.12)}.bk:focus-visible{outline:2px solid var(--g);outline-offset:2px}.bk-img{aspect-ratio:4/3;overflow:hidden;display:block;background:var(--line)}.bk-img img{width:100%;height:100%;object-fit:cover;object-position:50% 22%;display:block}.bk-t{display:grid;gap:2px;padding:12px 14px 14px}.bk-t small{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600}.bk-t b{font-size:17px;line-height:1.25;color:var(--g)}.bk-t em{font-style:normal;font-size:14px;color:var(--g);margin-top:6px;font-weight:500}.bk.fin{border-color:var(--g)}@media (max-width:900px){.bk-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:380px){.bk-t b{font-size:15px}}header.nav .wrap{max-width:1320px}header.nav ul{gap:clamp(12px,1.35vw,22px)!important;font-size:13px!important;letter-spacing:.04em!important}header.nav .lang{margin-left:4px}@media (max-width:1180px){header.nav ul{gap:12px!important;font-size:12.5px!important}header.nav .logo img{height:26px!important}}@media (max-width:1060px){header.nav ul{display:none!important}}html,body{overflow-x:clip}.vvk-strip>*{min-width:0}.vvk-strip h2{overflow-wrap:break-word;hyphens:auto}@media (max-width:400px){.vvk-strip h2{font-size:24px!important}}.badge{overflow:hidden}.incl>*{min-width:0}.inc h3,.inc p{overflow-wrap:break-word;hyphens:auto}@media (max-width:420px){.incl{grid-template-columns:1fr!important}.inc{grid-template-columns:auto 1fr;align-items:center;column-gap:14px}.inc .ico{grid-row:span 2}}@media (max-width:400px){.pt .gap{width:6px!important}#preise .pt th,#preise .pt td{padding:9px 3px!important;font-size:11.5px!important}#preise .pt thead th{font-size:8.5px!important;letter-spacing:.03em!important}#preise .pt tbody th .dot{margin-right:4px;width:7px;height:7px}}@media (max-width:380px){header.nav .wrap{gap:8px!important}header.nav .logo img{height:auto!important;width:150px!important;max-width:150px!important}header.nav .btn{padding:8px 14px!important;font-size:12.5px!important}header.nav .lang{margin-right:0!important}}@media (max-width:340px){header.nav .logo img{width:132px!important;max-width:132px!important}#preise .pt th,#preise .pt td{font-size:10.5px!important;padding:8px 2px!important}}#preise .pt thead th{color:var(--g)!important;font-weight:700}header.nav .wrap{max-width:none!important;padding-left:max(16px,clamp(16px,3vw,48px),env(safe-area-inset-left,0px));padding-right:max(16px,clamp(16px,3vw,48px),env(safe-area-inset-right,0px))}header.nav ul{margin-left:auto!important}header.nav .logo{margin-right:clamp(24px,4vw,72px)}@media (max-width:1060px){header.nav .logo{margin-right:0}}header.nav .burger{display:none;width:42px;height:42px;border:1px solid var(--line);border-radius:12px;background:#fff;align-items:center;justify-content:center;flex-direction:column;gap:5px;cursor:pointer;padding:0;flex:none}header.nav .burger span{display:block;width:18px;height:2px;border-radius:2px;background:var(--g);transition:transform .25s,opacity .2s}header.nav.open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}header.nav.open .burger span:nth-child(2){opacity:0}header.nav.open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}header.nav .burger:focus-visible{outline:2px solid var(--g);outline-offset:2px}@media (max-width:1060px){header.nav .burger{display:inline-flex}header.nav .wrap{position:relative}header.nav.open ul{display:flex!important;flex-direction:column;gap:0!important;position:absolute;left:0;right:0;top:100%;background:var(--ivory,#FFFDF3);border-bottom:1px solid var(--line);box-shadow:0 18px 30px -18px rgba(0,60,20,.35);padding:8px max(16px,env(safe-area-inset-left,0px)) 14px;margin:0!important;font-size:16px!important;letter-spacing:.02em!important;z-index:50;max-height:calc(100vh - 120px);overflow:auto}header.nav.open ul li a{display:block;padding:13px 4px;border-bottom:1px solid var(--line)}header.nav.open ul li:last-child a{border-bottom:0}}@media (max-width:1060px){header.nav .lang{margin-left:auto!important}header.nav .wrap{gap:10px!important}}@media (max-width:480px){header.nav .logo img{height:auto!important;width:150px!important;max-width:150px!important}header.nav .btn{padding:8px 13px!important;font-size:12.5px!important}header.nav .burger{width:38px;height:38px;border-radius:10px}header.nav .wrap{gap:8px!important}header.nav .lang{margin-right:0!important}}@media (max-width:370px){header.nav .logo img{width:118px!important;max-width:118px!important}header.nav .btn{padding:7px 10px!important;font-size:12px!important}header.nav .burger{width:34px;height:34px}header.nav .wrap{gap:6px!important}}.partners>*,.ptier{min-width:0}@media (max-width:700px){.plogos.spons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));justify-items:center;align-items:center;gap:26px 18px}.plogos.spons .solo{grid-column:1/-1}.plogos.spons img{max-width:100%!important}.plogos.spons img[alt="Gärtnerei Löwer"]{height:26px!important}}.plogos.spons2{display:grid!important;gap:26px;justify-items:start}.plogos.spons2 .sprow{display:flex;align-items:center;gap:48px;min-width:0;max-width:100%}.plogos.spons2 img{max-width:100%}@media (max-width:700px){.plogos.spons2{justify-items:center;gap:24px}.plogos.spons2 .sprow{gap:26px;justify-content:center}.plogos.spons2 .sprow{width:100%}.plogos.spons2 .sprow img{max-width:calc(50% - 13px)!important;min-width:0;object-fit:contain}.plogos.spons2 .sprow img:only-child{max-width:80%!important}.plogos.spons2 img[alt="Gärtnerei Löwer"]{height:24px!important}}.ptier:has(.spons2){align-items:start}.ptier:has(.spons2)>.eyebrow{padding-top:34px}@media (max-width:700px){.ptier:has(.spons2)>.eyebrow{padding-top:0}}@media (max-width:700px){.plogos.spons2{justify-items:start!important;gap:22px!important}.plogos.spons2 .sprow{justify-content:flex-start!important;gap:22px!important}.plogos.spons2 img[alt="HFM Hafen und Markt"]{height:38px!important}.plogos.spons2 img[alt="Braustübl"]{height:60px!important}.plogos.spons2 img[alt="Lindner Food"]{height:38px!important}.plogos.spons2 img[alt="Wirtschaftsinitiative FrankfurtRheinMain"]{height:26px!important}.plogos.spons2 img[alt="FrankfurtRheinMain"]{height:30px!important;max-width:75%!important}.plogos.spons2 img[alt="Hassia"]{height:54px!important}.plogos.spons2 img[alt="Gärtnerei Löwer"]{height:24px!important}.plogos.spons2 img[alt="atrikom fulfillment"]{height:22px!important;max-width:70%!important}}.plogos.spons2 img[alt="Braustübl"]{height:62px!important}@media (max-width:700px){.plogos.spons2 img[alt="Braustübl"]{height:52px!important}}[hidden]{display:none!important}