/* Pulverfass Tickets – Spielplan und Buchungs-Sheet.
   Farben und Schriften über Variablen, damit das Theme sie setzen kann. Standard = Look Runde 4c (Lack & Lippenstift). */
:root{
  --pft-bg:#0B0708; --pft-bg2:#140D0E; --pft-ink:#F6E8D8; --pft-mute:#BFA999;
  --pft-gold:#D8B98E; --pft-line:rgba(216,185,142,.35); --pft-red:#B0122A; --pft-red2:#E4566A;
  --pft-display:'Federo','Didot',serif; --pft-text:'Jost','Futura',sans-serif; --pft-radius:2px;
}
.pft-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pft-spielplan,.pft-termine{color:var(--pft-ink)}
.pft-filter{display:flex;gap:8px;overflow-x:auto;padding:4px 0 12px;scrollbar-width:none}
.pft-filter::-webkit-scrollbar{display:none}
.pft-month{font-family:var(--pft-display);font-weight:400;font-size:1.6rem;margin:1.6em 0 .4em;color:var(--pft-ink)}
.pft-list{list-style:none;margin:0;padding:0}
.pft-row{display:grid;grid-template-columns:5.2rem 1fr auto;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--pft-line)}
.pft-row[hidden],.pft-list[hidden],.pft-month[hidden]{display:none}
.pft-when{display:flex;flex-direction:column;line-height:1.15}
.pft-dow{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--pft-red2);font-weight:600}
.pft-date{font-family:var(--pft-display);font-size:1.35rem}
.pft-time{font-size:.85rem;color:var(--pft-mute)}
.pft-what{display:flex;flex-direction:column;gap:2px;min-width:0}
.pft-show{font-family:var(--pft-display);font-size:1.1rem;color:var(--pft-ink);text-decoration:none}
a.pft-show:hover{color:var(--pft-gold)}
.pft-hint{font-size:.8rem;color:var(--pft-gold)}
.pft-price{font-size:.85rem;color:var(--pft-mute)}
.pft-badge{display:inline-block;align-self:flex-start;font-size:.62rem;letter-spacing:.14em;font-weight:700;color:#fff;background:var(--pft-red);padding:2px 6px;border-radius:2px}
.pft-book,.pft-cta,.pft-go{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:0 20px;border:0;border-radius:var(--pft-radius);cursor:pointer;
  color:#F7EEE6;font:inherit;font-size:.74rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;white-space:nowrap;
  background:linear-gradient(180deg,#1C1214 0%,#0B0708 55%,#120B0C 100%);
  box-shadow:inset 0 0 0 1px rgba(216,185,142,.85),inset 0 0 0 4px #0B0708,inset 0 0 0 5px rgba(216,185,142,.28)}
.pft-book:hover,.pft-cta:hover,.pft-go:hover{color:#fff;box-shadow:inset 0 0 0 1px var(--pft-gold),inset 0 0 0 4px #0B0708,inset 0 0 0 5px rgba(216,185,142,.5)}
.pft-book:focus-visible,.pft-cta:focus-visible,.pft-go:focus-visible,.pft-chip:focus-visible,.pft-dchip:focus-visible,.pft-cat:focus-visible,.pft-step:focus-visible,.pft-x:focus-visible{outline:2px solid var(--pft-gold);outline-offset:3px}
.pft-state{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--pft-mute)}
.pft-soldout .pft-date,.pft-soldout .pft-show{opacity:.55}
.pft-note,.pft-more{font-size:.85rem;color:var(--pft-mute);margin-top:12px}
.pft-more a{color:var(--pft-gold)}
.pft-cta{min-height:54px;padding:0 26px}
.pft-cta-from{font-weight:400;letter-spacing:.08em;text-transform:none;font-size:.8rem;color:var(--pft-gold)}
.pft-cta-arr,.pft-arr{position:relative;width:24px;height:1px;background:rgba(216,185,142,.9);transition:width .4s cubic-bezier(.2,.8,.2,1)}
.pft-cta-arr::after,.pft-arr::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid rgba(216,185,142,.9);border-right:1px solid rgba(216,185,142,.9);transform:rotate(45deg)}
.pft-cta:hover .pft-cta-arr,.pft-go:hover .pft-arr{width:34px}

/* Chips */
.pft-chip{flex-shrink:0;min-height:40px;padding:0 16px;border-radius:999px;border:1px solid var(--pft-line);background:transparent;color:var(--pft-ink);font:inherit;font-size:.85rem;cursor:pointer;white-space:nowrap}
.pft-chip.is-on{border-color:var(--pft-gold);background:rgba(216,185,142,.12);color:#fff}

/* Sheet */
html.pft-lock,html.pft-lock body{overflow:hidden}
.pft-sheet{position:fixed;inset:0;z-index:99990}
.pft-sheet[hidden]{display:none}
.pft-backdrop{position:absolute;inset:0;background:rgba(3,1,2,.62);opacity:0;transition:opacity .22s ease;backdrop-filter:blur(2px)}
.pft-panel{position:absolute;left:0;right:0;bottom:0;max-height:90vh;max-height:90dvh;display:flex;flex-direction:column;color:var(--pft-ink);
  background:linear-gradient(180deg,var(--pft-bg2),var(--pft-bg) 40%);border-radius:14px 14px 0 0;box-shadow:0 -1px 0 var(--pft-line),0 -30px 60px rgba(0,0,0,.6);
  transform:translateY(100%);transition:transform .32s cubic-bezier(.2,.8,.2,1);outline:none;font-size:16px}
.pft-sheet.is-open .pft-backdrop{opacity:1}
.pft-sheet.is-open .pft-panel{transform:none}
@media (min-width:900px){
  .pft-panel{left:auto;top:0;width:440px;max-height:none;border-radius:0;transform:translateX(100%);box-shadow:-1px 0 0 var(--pft-line),-30px 0 60px rgba(0,0,0,.6)}
  .pft-grip{display:none}
}
@media (prefers-reduced-motion:reduce){.pft-panel,.pft-backdrop{transition:none}}
.pft-head{position:relative;padding:18px 20px 10px;display:flex;align-items:center;gap:12px}
.pft-grip{position:absolute;left:50%;top:7px;width:40px;height:4px;border-radius:2px;background:rgba(216,185,142,.35);transform:translateX(-50%)}
.pft-title{margin:0;flex:1;font-family:var(--pft-display);font-weight:400;font-size:1.7rem;color:var(--pft-ink)}
.pft-x{width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--pft-ink);font-size:28px;line-height:1;cursor:pointer}
.pft-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:0 20px 12px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.pft-sec{margin:10px 0 16px}
.pft-label{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--pft-red2);font-weight:600;margin-bottom:8px}
.pft-chips{display:flex;gap:8px}
.pft-scroll{overflow-x:auto;scrollbar-width:none;margin:0 -20px;padding:2px 20px 4px}
.pft-scroll::-webkit-scrollbar{display:none}
.pft-dchip{flex-shrink:0;min-width:74px;min-height:76px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:8px 10px;border:1px solid var(--pft-line);border-radius:10px;background:rgba(255,255,255,.02);color:var(--pft-ink);font:inherit;cursor:pointer;position:relative}
.pft-dchip.is-on{border-color:var(--pft-gold);background:rgba(216,185,142,.12);box-shadow:inset 0 0 0 1px var(--pft-gold)}
.pft-dchip.is-sold{opacity:.5}
.pft-dchip .pft-badge{position:absolute;top:-8px;right:-4px}
.pft-d1{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--pft-red2);font-weight:600}
.pft-d2{font-family:var(--pft-display);font-size:1.2rem}
.pft-d3{font-size:.76rem;color:var(--pft-mute)}
.pft-moreb .pft-d2{font-family:inherit;font-size:.8rem;color:var(--pft-gold)}
.pft-cats{display:grid;gap:8px}
.pft-cat{display:flex;justify-content:space-between;align-items:center;min-height:52px;padding:0 16px;border:1px solid var(--pft-line);border-radius:10px;background:transparent;color:var(--pft-ink);font:inherit;cursor:pointer}
.pft-cat.is-on{border-color:var(--pft-gold);background:rgba(216,185,142,.10);box-shadow:inset 0 0 0 1px var(--pft-gold)}
.pft-cn{font-family:var(--pft-display);font-size:1.1rem}
.pft-cp{font-size:.95rem;color:var(--pft-gold)}
.pft-qty{display:flex;align-items:center;gap:18px}
.pft-step{width:48px;height:48px;border-radius:50%;border:1px solid var(--pft-line);background:transparent;color:var(--pft-ink);font-size:22px;cursor:pointer}
.pft-step:disabled{opacity:.35;cursor:default}
.pft-qn{min-width:28px;text-align:center;font-family:var(--pft-display);font-size:1.6rem}
.pft-foot{flex-shrink:0;padding:14px 20px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--pft-line);background:var(--pft-bg)}
.pft-foot[hidden]{display:none}
.pft-total{display:flex;justify-content:space-between;align-items:baseline}
.pft-tl{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--pft-mute)}
.pft-tv{font-family:var(--pft-display);font-size:1.7rem;color:#fff}
.pft-calc{font-size:.78rem;color:var(--pft-mute);margin:2px 0 12px}
.pft-go{width:100%;min-height:58px;font-size:.82rem;font-weight:700;box-sizing:border-box;color:#1A0E10;
  background:linear-gradient(180deg,#E6CBA2 0%,#D8B98E 55%,#C9A676 100%);box-shadow:0 8px 28px -10px rgba(216,185,142,.55),inset 0 1px 0 rgba(255,255,255,.35)}
.pft-go .pft-arr,.pft-go .pft-arr::after{background:#1A0E10;border-color:#1A0E10}
.pft-go .pft-arr::after{background:none}
.pft-go:hover{color:#1A0E10;background:linear-gradient(180deg,#F0D9B5 0%,#E2C49A 55%,#D3B084 100%);box-shadow:0 10px 34px -10px rgba(216,185,142,.75),inset 0 1px 0 rgba(255,255,255,.45)}
.pft-go[hidden]{display:none}
.pft-go:disabled{opacity:.4;cursor:default;box-shadow:none}
.pft-go2{margin-top:10px}
.pft-trust{font-size:.74rem;color:var(--pft-mute);text-align:center;margin:8px 0 0}
.pft-msg{font-size:.85rem;color:var(--pft-mute);margin:8px 0}
.pft-warn{color:var(--pft-red2)}
.pft-alt{border:1px solid var(--pft-line);border-radius:10px;padding:14px 16px;margin:6px 0 16px}
.pft-alt p{margin:0 0 10px}
.pft-altb{display:block;width:100%;text-align:left;min-height:44px;margin:0 0 8px;padding:0 14px;border:1px solid var(--pft-line);border-radius:8px;background:transparent;color:var(--pft-ink);font:inherit;cursor:pointer}
.pft-link{color:var(--pft-gold)}
.pft-vibe-btn{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.pft-vibe-host:empty{display:none}
@media (max-width:420px){.pft-row{grid-template-columns:4.4rem 1fr auto;gap:10px}.pft-book{padding:0 14px;letter-spacing:.16em}}
.pft-cat.is-sold{opacity:.45;cursor:default}
.pft-cat .pft-cn{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.pft-left{font-family:inherit;font-size:.72rem;letter-spacing:.04em;color:var(--pft-red2)}

/* 0.3.4 – Hinweis auf die Extras (Menü, Champagner …) in der Kasse */
.pft-addons{margin:18px 0 6px;padding:14px 16px;border:1px solid var(--pft-line);border-left:2px solid var(--pft-gold)}
.pft-addons-t{display:block;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--pft-gold);font-weight:600;margin-bottom:4px}
.pft-addons p{margin:0;font-size:.88rem;line-height:1.5}

/* 0.3.7 – Saalplan zur groben Orientierung: farbige Flächen je Kategorie, gewählte Kategorie leuchtet */
.pft-saalplan{margin:6px 0 4px;padding:0}
.pft-saal{display:block;width:100%;max-width:340px;height:auto;margin:0 auto}
.pft-saal-bau{fill:rgba(255,244,226,.05)}
.pft-saal-bau rect{fill:rgba(255,244,226,.14)}
.pft-saal-bau path{stroke:rgba(255,244,226,.05);stroke-width:10;stroke-linejoin:round}
.pft-saal-bau path.pft-saal-sb{fill:rgba(255,244,226,.14);stroke:none}
.pft-saal-z rect{transition:opacity .35s ease,filter .35s ease}
.pft-saal-z [data-k="diamant"],.pft-saal-leg [data-k="diamant"] i{fill:#D9B45A;background:#D9B45A}
.pft-saal-z [data-k="strass"],.pft-saal-leg [data-k="strass"] i{fill:#8DB6D6;background:#8DB6D6}
.pft-saal-z [data-k="paillette"],.pft-saal-leg [data-k="paillette"] i{fill:#D46FA6;background:#D46FA6}
.pft-saalplan[data-an] .pft-saal-z rect{opacity:.18}
.pft-saalplan[data-an="diamant"] .pft-saal-z [data-k="diamant"],
.pft-saalplan[data-an="strass"] .pft-saal-z [data-k="strass"],
.pft-saalplan[data-an="paillette"] .pft-saal-z [data-k="paillette"]{opacity:1;filter:drop-shadow(0 0 6px rgba(255,220,160,.45))}
.pft-saal-txt text{fill:rgba(255,244,226,.75);font-size:13px;letter-spacing:.18em;text-transform:uppercase;text-anchor:middle;font-family:inherit}
.pft-saal-txt .pft-saal-klein{font-size:10px;letter-spacing:.12em;text-anchor:start}
.pft-saal-treppe{fill:rgba(255,244,226,.08)}
.pft-saal-bar{fill:rgba(255,244,226,.12)}
.pft-saalplan figcaption{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:8px;text-align:center}
.pft-saal-leg{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 16px;font-size:.8rem}
.pft-saal-leg span{display:inline-flex;align-items:center;gap:6px}
.pft-saal-leg i{display:inline-block;width:12px;height:12px;border-radius:3px}
.pft-saalplan[data-an] .pft-saal-leg span{opacity:.45}
.pft-saalplan[data-an="diamant"] .pft-saal-leg [data-k="diamant"],.pft-saalplan[data-an="strass"] .pft-saal-leg [data-k="strass"],.pft-saalplan[data-an="paillette"] .pft-saal-leg [data-k="paillette"]{opacity:1;font-weight:600}
.pft-saal-note{font-size:.75rem;opacity:.7}
.pft-platz{font-size:.82rem;line-height:1.5}
@media (prefers-reduced-motion:reduce){.pft-saal-z rect{transition:none}}
.pft-saalplan-klein .pft-saal{max-width:230px}
.pft-saalplan-klein .pft-saal-leg{font-size:.75rem}

/* 0.3.19: iPhone/iPad (Safari) macht eingebettete Fenster so breit wie ihren Inhalt – dann ragt die vibe-Kasse
   über den Rand und die Seite verrutscht seitlich. Klassischer Gegentrick: Breite 1px + Mindestbreite 100 %. */
@media (max-width:639px){
.pft-vibe-host{max-width:100vw;overflow-x:hidden}
.pft-vibe-host iframe{width:1px!important;min-width:100%!important;max-width:100vw}
}

/* 0.3.22 Jahresauswahl im Spielplan */
.pft-years{display:flex;gap:10px;margin:0 0 14px}
.pft-year{min-height:44px;padding:0 22px;border-radius:999px;border:1px solid var(--pft-line);background:transparent;color:var(--pft-ink);font:inherit;font-size:1rem;letter-spacing:.08em;cursor:pointer}
.pft-year.is-on{border-color:var(--pft-gold);background:var(--pft-gold);color:#140a0c}
.pft-year:focus-visible{outline:2px solid var(--pft-gold);outline-offset:3px}
.pft-year-more{margin:22px 0 0;text-align:center}
.pft-year-more[hidden],.pft-chip[hidden]{display:none}

/* Preisliste: Farbpunkt = Bereich im Saalplan (30.09.2026) */
.pft-cn-n{display:inline-flex;align-items:center;gap:10px}
.pft-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex:none}
.pft-dot[data-k="diamant"]{background:#D9B45A}.pft-dot[data-k="strass"]{background:#8DB6D6}.pft-dot[data-k="paillette"]{background:#D46FA6}
.pft-cat.is-sold{cursor:pointer}
/* 0.3.30 – Show-Seite: Termine monatsweise */
.pft-zeitraum{margin:0 0 14px;font-size:1rem;color:var(--pft-mute)}
.pft-zeitraum strong{color:var(--pft-ink);font-weight:600}
.pft-monate{display:flex;gap:10px;margin:0 0 6px;padding:2px 2px 8px;overflow-x:auto;scrollbar-width:none}
.pft-monate::-webkit-scrollbar{display:none}
.pft-monat{flex-shrink:0;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.pft-monat .pft-n{font-size:.75em;letter-spacing:0;opacity:.75;min-width:1.6em;padding:1px 6px;border-radius:999px;border:1px solid currentColor}
.pft-monatsweise.is-js .pft-mgruppe:not(.is-on){display:none}
.pft-monatsweise.is-js .pft-mgruppe>.pft-month{margin-top:.8em}
.pft-weiter{margin:22px 0 0;text-align:center}
.pft-weiter-btn{border-color:var(--pft-gold);color:var(--pft-gold);white-space:normal;line-height:1.3;padding:10px 24px}
.pft-weiter-btn:hover{background:var(--pft-gold);color:#140a0c}
.pft-monatsweise:not(.is-js) .pft-weiter{display:none}
