PageSourceSearch

https://www.pubandgo.de/assets/wm._slug-B5o5AdA9.js

js pubandgo.de collected 2026-09-24 14:22:20 UTC 26,897 bytes, 2 lines download raw bytes

1import{cj as ee,j as e,S as re,a as te,b5 as F,b2 as G,b3 as E,ck as se,f as z,d as ne,ar as ae,r as p,L as ie,aj as oe,ak as de}from"./index-BwlpUMBf.js";import{u as P}from"./useServerFn-C7QMSxb7.js";import{B as le}from"./button-CQuG3pu7.js";import{L as j,I as v}from"./label-DYohrGye.js";import{C as ce}from"./CampaignOtpStep-Dc6UfDZo.js";import{R as me}from"./ReturningUserCta-C8Mg1rX7.js";import{s as ue,v as xe}from"./registrations-otp.functions-BrhGI0kZ.js";import{p as he}from"./pub-bayreuth-wide.webp.asset-Bfw02XA9.js";import{pushLeadEvent as pe}from"./track-lead-DXsMhEfc.js";import{f as I,u as ge,a as fe,b,p as be}from"./form-tracking-CrLbG3JS.js";import{O as je}from"./ops-config-3AQ_fA41.js";import{T as B}from"./trophy-aalQ0LqQ.js";import{C as U}from"./calendar-check-lDdnQ3Az.js";import{C as Ne}from"./clock-D-pij6Dc.js";import{M as ve}from"./map-pin-B2vbUGTD.js";import{Z as A}from"./zap-ChK4iYoc.js";import{S as R}from"./smartphone-CUCz527U.js";import{B as ye}from"./beer-wMGjNt-o.js";import{C as ke}from"./circle-check-Bc53nl4T.js";import{T as we}from"./ticket-B67B2nsV.js";import{S as L}from"./sparkles-CBwaqh7_.js";import{U as Se}from"./users-CtKd2H7z.js";import{L as _e}from"./loader-circle-Hy0DvCJX.js";import{P as Pe}from"./party-popper-B0LLHghc.js";import{S as ze}from"./shield-check-BP9LHlZL.js";import{C as Be}from"./circle-alert-BO0fukyd.js";import"./index-CGJMGMsf.js";import"./refresh-cw-D0uc_Oj7.js";const Ce=je;function D(t){return t.replace(/-/g,"_")}function Me(){if(typeof window>"u")return{};const t=new URLSearchParams(window.location.search),r=h=>{const i=t.get(h);return i?i.slice(0,120):void 0};return{utm_source:r("utm_source"),utm_medium:r("utm_medium"),utm_campaign:r("utm_campaign"),utm_content:r("utm_content"),utm_term:r("utm_term")}}function gr(){const{campaign:t,match:r}=ee.useLoaderData();return e.jsxs("div",{className:"min-h-screen text-foreground overflow-x-hidden pb-24 md:pb-0",children:[e.jsx(re,{variant:"ueber"}),e.jsx(Le,{campaign:t,match:r}),e.jsx(We,{}),e.jsx(Fe,{}),e.jsx(Ge,{}),e.jsx(Ue,{campaign:t,match:r}),e.jsx(Re,{}),e.jsx(te,{}),e.jsx(Te,{})]})}function Te(){return e.jsx("div",{className:"fixed inset-x-0 bottom-0 z-40 px-4 pb-4 pt-3 bg-gradient-to-t from-background via-background/95 to-transparent md:hidden",children:e.jsx("a",{href:"#buchung",className:"flex items-center justify-center gap-2 w-full max-w-md mx-auto rounded-2xl bg-gradient-brand text-primary-foreground px-6 py-4 font-bold text-base shadow-glow animate-pulse-glow",children:"🍻 Tisch & Gratis-Pitcher sichern"})})}function Ae(t){const[r,h]=p.useState(()=>Date.now());p.useEffect(()=>{const m=setInterval(()=>h(Date.now()),1e3);return()=>clearInterval(m)},[]);const i=p.useMemo(()=>new Date(t).getTime(),[t]),g=Math.max(0,i-r),d=Math.floor(g/1e3);return{isLive:i<=r&&r-i<7200*1e3,isPast:i<=r&&r-i>=7200*1e3,days:Math.floor(d/86400),hours:Math.floor(d%86400/3600),minutes:Math.floor(d%3600/60),seconds:d%60}}function Le({campaign:t,match:r}){const h=F(r),i=Ae(h),{date:g,time:d}=G(r),m=E(r.venue);return e.jsxs("section",{className:"relative pt-32 pb-16 md:pt-40 md:pb-20 overflow-hidden",children:[e.jsx("img",{src:se,alt:"WM-Public-Viewing im Pub&Go Bayreuth",className:"absolute inset-0 -z-10 h-full w-full object-cover opacity-30",width:1920,height:1080,loading:"eager",decoding:"async",fetchpriority:"high"}),e.jsx("div",{className:"absolute inset-0 -z-10 bg-gradient-to-b from-background/80 via-background/90 to-background"}),e.jsxs("div",{className:"max-w-3xl mx-auto px-6 text-center animate-float-up",children:[e.jsxs("span",{className:"inline-flex items-center gap-2 rounded-full border border-brand/40 bg-brand/10 px-4 py-1.5 text-xs font-semibold uppercase tracking-wider text-brand",children:[e.jsx(B,{className:"h-3.5 w-3.5"})," ",t.badge," · WM 2026"]}),e.jsxs("h1",{className:"mt-6 text-3xl md:text-5xl font-display-hh font-bold leading-tight",children:[t.longTitle,e.jsx("br",{}),e.jsx("span",{className:"text-gradient-brand",children:"live in Bayreuth"})," 🍻"]}),e.jsxs("div",{className:"mt-6 flex flex-wrap justify-center gap-x-5 gap-y-2 text-sm text-muted-foreground",children:[e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsx(U,{className:"h-4 w-4 text-brand"})," ",g]}),e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsx(Ne,{className:"h-4 w-4 text-brand"})," ",d," Uhr"]}),r.group&&e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsx(B,{className:"h-4 w-4 text-brand"})," Gruppe ",r.group]}),m&&e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsx(ve,{className:"h-4 w-4 text-brand"})," ",m.city," ",m.country]})]}
1),!i.isPast&&e.jsx("div",{className:"mt-8 inline-flex items-stretch divide-x divide-border/60 rounded-2xl border border-border bg-card/70 backdrop-blur overflow-hidden shadow-elegant",children:i.isLive?e.jsxs("div",{className:"px-6 py-4 text-center",children:[e.jsx("div",{className:"text-xs uppercase tracking-widest text-brand font-bold",children:"Läuft gerade!"}),e.jsx("div",{className:"mt-1 font-display text-2xl",children:"Komm vorbei 🍻"})]}):e.jsxs(e.Fragment,{children:[e.jsx(w,{value:i.days,label:"Tage"}),e.jsx(w,{value:i.hours,label:"Std"}),e.jsx(w,{value:i.minutes,label:"Min"}),e.jsx(w,{value:i.seconds,label:"Sek"})]})}),e.jsxs("p",{className:"mt-8 text-base md:text-lg text-muted-foreground max-w-2xl mx-auto",children:["Sichert euch euren WM-Stammplatz im Pub&Go Bayreuth. Ab 4 Personen stellen wir euch zum Anpfiff den ersten ",e.jsx("strong",{className:"text-foreground",children:"1,5L Pitcher gratis"})," auf den Tisch."]}),e.jsx("div",{className:"mt-8",children:e.jsx("a",{href:"#buchung",className:"inline-flex items-center justify-center rounded-full bg-gradient-brand text-primary-foreground px-7 py-4 text-base font-semibold shadow-glow hover:opacity-90 transition animate-pulse-glow",children:"Tisch & Gratis-Pitcher sichern ⬇️"})})]})]})}function w({value:t,label:r}){return e.jsxs("div",{className:"px-4 py-3 md:px-5 md:py-4 min-w-[64px]",children:[e.jsx("div",{className:"font-display text-2xl md:text-3xl tabular-nums",children:String(t).padStart(2,"0")}),e.jsx("div",{className:"text-xs uppercase tracking-widest text-muted-foreground",children:r})]})}function We(){return e.jsx("section",{className:"py-16 md:py-20",children:e.jsxs("div",{className:"max-w-5xl mx-auto px-6",children:[e.jsxs("div",{className:"text-center max-w-2xl mx-auto",children:[e.jsxs("span",{className:"inline-flex items-center gap-2 rounded-full border border-brand/40 bg-brand/10 px-4 py-1.5 text-xs font-semibold uppercase tracking-wider text-brand",children:[e.jsx(A,{className:"h-3.5 w-3.5 "})," Niemand muss anstehen"]}),e.jsxs("h2",{className:"mt-4 text-3xl md:text-4xl font-display font-bold",children:["Ihr verpasst ",e.jsx("span",{className:"text-gradient-brand",children:"keine Sekunde"})]}),e.jsx("p",{className:"mt-4 text-muted-foreground",children:"Bestellt während des Spiels per Pub&Go App direkt vom Tisch. Wir bringen euch Bier & Snacks ans Spielfeld."})]}),e.jsx("div",{className:"mt-10 grid md:grid-cols-3 gap-5",children:[{icon:R,title:"Bestellen vom Tisch",text:"App auf, Pitcher oder Drink wählen, Bestellung abschicken."},{icon:A,title:"Bier kommt zu euch",text:"Wir liefern direkt an euren Platz, kein Tresen, keine Schlange."},{icon:B,title:"Spiel statt Warten",text:"Ihr verpasst kein Tor, keine gelbe Karte, keinen Jubel."}].map(t=>e.jsxs("div",{className:"rounded-2xl border border-border bg-card/60 backdrop-blur p-6 hover:border-brand/40 transition",children:[e.jsx("div",{className:"h-12 w-12 rounded-xl bg-gradient-brand flex items-center justify-center text-primary-foreground shadow-glow",children:e.jsx(t.icon,{className:"h-6 w-6"})}),e.jsx("h3",{className:"mt-4 text-lg font-semibold",children:t.title}),e.jsx("p",{className:"mt-2 text-sm text-muted-foreground leading-relaxed",children:t.text})]},t.title))}),e.jsx("div",{className:"mt-10 flex justify-center",children:e.jsx(z,{size:"md",variant:"brand",placement:"wm_usp"})})]})})}function Fe(){const t=[{icon:U,badge:"1️⃣",title:"Tisch reservieren",text:"Buch euren Tisch ab 4 Personen direkt über das Formular unten."},{icon:R,badge:"2️⃣",title:"App laden",text:"Hol dir die kostenlose Pub&Go App aufs Handy, Login mit derselben Telefonnummer wie bei der Buchung."},{icon:ye,badge:"3️⃣",title:"Anpfiff = Pitcher",text:"Zum Anpfiff steht der erste 1,5L Pitcher gratis auf eurem Tisch."}];return e.jsx("section",{className:"py-16 md:py-20 bg-card/30 border-y border-border/50",children:e.jsxs("div",{className:"max-w-6xl mx-auto px-6",children:[e.jsx("div",{className:"text-center max-w-2xl mx-auto",children:e.jsxs("h2",{className:"text-3xl md:text-4xl font-display font-bold",children:["So sichert ihr euch ",e.jsx("span",{className:"text-gradient-brand",children:"Tisch & Pitcher"})]})}),e.jsx("div",{className:"mt-10 grid md:grid-cols-3 gap-6",children:t.map(r=>e.jsxs("div",{className:"rounded-2xl border border-border bg-card/60 backdrop-blur p-6 hover:border-brand/40 transition",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"h-12 w-12 rounded-xl bg-gradient-brand flex items-center justify-center text-primary-foreground shadow-glow",children:e.jsx(r.icon,{className:"h-6 w-6"})}),e.jsx("span",{className:"text-2xl",children:r.badge})]}),e.jsx("h3",{className:"mt-4 text-xl font-semibold",children:r.title}),e.jsx("p",{className:"mt-2 text-sm text-muted-foreground leading-relaxed",children:r.text})]},r.title))})]})})}
1function Ge(){const t=[{src:ne.url,alt:"Innenraum vom Pub&Go Bayreuth mit 2 großen TV-Screens",caption:"2 große TV-Screens & beste Sicht"},{src:he.url,alt:"Pub&Go Bayreuth Innenansicht mit Tischen",caption:"Platz für eure Crew"}];return e.jsx("section",{className:"py-16 md:py-20",children:e.jsxs("div",{className:"max-w-5xl mx-auto px-6",children:[e.jsx("div",{className:"text-center max-w-2xl mx-auto",children:e.jsxs("h2",{className:"text-3xl md:text-4xl font-display font-bold",children:["WM-Atmosphäre in ",e.jsx("span",{className:"text-gradient-brand",children:"Bayreuth"})]})}),e.jsx("div",{className:"mt-10 grid grid-cols-1 sm:grid-cols-2 gap-4",children:t.map(r=>e.jsxs("figure",{className:"group relative overflow-hidden rounded-2xl border border-border bg-card shadow-elegant aspect-[4/3]",children:[e.jsx("img",{src:r.src,alt:r.alt,loading:"lazy",className:"absolute inset-0 h-full w-full object-cover group-hover:scale-105 transition duration-500"}),e.jsx("div",{className:"absolute inset-x-0 bottom-0 bg-gradient-to-t from-background/90 via-background/40 to-transparent p-3",children:e.jsx("figcaption",{className:"text-sm font-semibold text-foreground",children:r.caption})})]},r.caption))})]})})}function W(t,r){return t===409?"Dieser Termin ist leider voll. Bitte wähle ein anderes Datum oder eine andere Uhrzeit.":t===400?r||"Bitte prüfe deine Eingaben und versuch es nochmal.":t===404?"Standort gerade nicht erreichbar. Schreib uns direkt an [email protected].":t===429?"Gerade sehr viele Anfragen. Bitte versuch es in 1–2 Minuten nochmal.":t&&t>=500?"Unser Reservierungs-Service hat gerade einen Schluckauf. Versuch es gleich nochmal oder schreib uns an [email protected].":r||"Reservierung konnte nicht gesendet werden. Bitte versuch es gleich nochmal."}function S(t,r,h,i){if(typeof window>"u")return;const g=window,d=D(r);try{(g.dataLayer=g.dataLayer||[]).push({event:`wm_match_booking_${t}`,match_slug:r,party_size:h,campaign:d,...i?{error_message:i}:{}}),g.plausible?.("WM Match Booking",{props:{status:t,slug:r,party_size:h,campaign:d}}),t==="success"&&pe({lead_source:"wm_match",campaign:d,form_id:I(d),form_name:"WM-Match-Buchung",standort:"Bayreuth",extra:{match_slug:r,party_size:h}})}catch{}}const Ee=["4","5","6","7","8","10+"];function Ie(t){if(t.endsWith("+"))return parseInt(t,10)||10;const r=parseInt(t,10);return Number.isFinite(r)&&r>=4?r:4}function Ue({campaign:t,match:r}){const h=P(ae),i=P(ue),g=P(xe),d=p.useMemo(()=>D(t.slug),[t.slug]),m=p.useMemo(()=>({formSlug:I(d),formName:"WM-Match-Buchung",leadSource:"wm_match",standort:"Bayreuth"}),[d]),[n,x]=p.useState({kind:"idle"}),[C,O]=p.useState({}),[a,H]=p.useState({firstName:"",lastName:"",email:"",phone:"",guests:"4",zip_code:"",marketingConsent:!1});p.useEffect(()=>O(Me()),[]);const{date:y,time:k}=G(r),_=E(r.venue),$=p.useMemo(()=>{const l=new Date(F(r));return new Date(l.getTime()-1800*1e3).toISOString()},[r]),f=l=>s=>{const c=s.target,o=c instanceof HTMLInputElement&&c.type==="checkbox"?c.checked:c.value;H(u=>({...u,[l]:o}))},q=()=>{const l=Ie(a.guests),s=oe(a.phone);if(!de.test(s))return{error:"Bitte gib eine gültige Telefonnummer an (z. B. 0151 1234567).",field:"phone"};const c=a.firstName.trim(),o=a.lastName.trim();return!c||!o?{error:"Bitte gib Vor- und Nachname an.",field:"firstName"}:/^\d{4,5}$/.test(a.zip_code.trim())?{firstName:c,lastName:o,email:a.email.trim(),phoneRaw:a.phone.trim(),phoneNormalized:s,partySize:l,zip_code:a.zip_code.trim(),marketingConsent:a.marketingConsent}:{error:"Bitte gib eine gültige Postleitzahl an.",field:"zip_code"}},V=ge(m),M=fe(),K=async l=>{if(l.preventDefault(),!!M.begin())try{await Z(l)}finally{M.end()}},Z=async l=>{if(l.preventDefault(),n.kind==="sending-otp"||n.kind==="verifying")return;const s=q();if("error"in s){b(m,{error_type:"validation",error_field:s.field,error_message:s.error}),x({kind:"error",message:s.error});return}be(m),x({kind:"sending-otp"}),S("submit",t.slug,s.partySize);try{const c=await i({data:{phone:s.phoneNormalized,campaign:d}});if(c.ok)x({kind:"otp-pending",snapshot:s,otpError:null});else{const o=W(c.status,c.error);S("error",t.slug,s.partySize,c.error),b(m,{error_type:"server",error_message:o}),x({kind:"error",message:o,status:c.status})}}catch(c){console.error(c),b(m,{error_type:"server",error_message:"Versand fehlgeschlagen. Bitte versuch es gleich nochmal."}),x({kind:"error",message:"Versand fehlgeschlagen. Bitte versuch es gleich nochmal."})}},J=async l=>{if(n.kind!=="otp-pending")return;const s=n.snapshot;x({kind:"verifying",snapshot:s});let c;try{const o=await h({data:{campaign:d,pub_id:Ce,guest_name:`${s.firstName} ${s.lastName}`.trim(),guest_email:s.email,guest_phone:s.phoneRaw,party_size:s.partySize,arrival_at:$,external_ref:`wm:${r.id}`,notes:[`WM-Match: ${t.shortTitle}`,`Anpfiff: ${y}, ${k} Uhr (MEZ/MESZ)`,`Spielort: ${_?`${_.city} ${_.country}`:r.venue}${r.group?`, Gruppe ${r.group}`:""}`,`Personenanzahl: ${s.partySize}`,"Pitcher zum Anpfiff (über Pub&Go App freigeschaltet, Telefonnummer muss übereinstimmen)."].join(`
2`),...C}});if(!o.ok){S("error",t.slug,s.partySize,o.error);const u=W(o.status,o.error);b(m,{error_type:"server",error_message:u}),x({kind:"error",message:u,status:o.status});return}c=o.confirmation_token}catch(o){console.error(o),b(m,{error_type:"server",error_message:"Reservierung konnte nicht gesendet werden. Bitte versuch es gleich nochmal."}),x({kind:"error",message:"Reservierung konnte nicht gesendet werden. Bitte versuch es gleich nochmal."});return}try{const o=Object.fromEntries(Object.entries(C).filter(([,N])=>typeof N=="string"&&N.length>0)),u=await g({data:{phone:s.phoneNormalized,otp:l,firstName:s.firstName,lastName:s.lastName,email:s.email,is_adult:1,zip_code:s.zip_code,marketing_consent:0,campaign:d,silent:!0,...o}});if(!u.ok){const N=u.status===401||u.status===422?"Code stimmt nicht. Bitte prüfe WhatsApp/SMS und versuch es nochmal.":u.error||"Bestätigung fehlgeschlagen. Bitte versuch es nochmal.";b(m,{error_type:u.status===401||u.status===422?"validation":"server",error_field:u.status===401||u.status===422?"otp":void 0,error_message:N}),x({kind:"otp-pending",snapshot:s,otpError:N});return}S("success",t.slug,s.partySize),x({kind:"success",token:c,creditsHint:u.credits,userExistedInApp:u.user_existed_in_app,firstName:s.firstName})}catch(o){console.error(o),b(m,{error_type:"server",error_message:"Bestätigung gerade nicht möglich. Bitte versuch es gleich nochmal."}),x({kind:"otp-pending",snapshot:s,otpError:"Bestätigung gerade nicht möglich. Bitte versuch es gleich nochmal."})}},Q=async()=>
2{if(n.kind==="otp-pending")try{await i({data:{phone:n.snapshot.phoneNormalized,campaign:d}})}catch(l){console.error("resend OTP failed",l)}},X=()=>x({kind:"idle"}),T=n.kind==="sending-otp"||n.kind==="verifying",Y=!a.firstName||!a.lastName||!a.email||!a.phone||!a.zip_code||!a.marketingConsent;return n.kind==="success"?e.jsx("section",{id:"buchung",className:"py-20 md:py-24 scroll-mt-24",children:e.jsx("div",{className:"max-w-2xl mx-auto px-6",children:e.jsxs("div",{className:"rounded-3xl border border-brand/40 bg-gradient-to-br from-brand/15 via-card to-card p-8 md:p-10 text-center shadow-elegant space-y-6",children:[e.jsx("div",{className:"inline-flex h-14 w-14 rounded-2xl bg-gradient-brand items-center justify-center text-primary-foreground shadow-glow mx-auto",children:e.jsx(ke,{className:"h-7 w-7"})}),e.jsx("h2",{className:"text-2xl md:text-3xl font-display font-bold",children:"🎉 WM-Stammplatz ist gesichert!"}),e.jsxs("p",{className:"text-muted-foreground md:text-lg leading-relaxed",children:["Wir sehen uns am ",e.jsxs("strong",{className:"text-foreground",children:[y," um ",k," Uhr"]})," ","zu ",t.shortTitle,"."]}),n.userExistedInApp?e.jsx(me,{credits:n.creditsHint??1500,firstName:n.firstName,placement:"wm_success_returning"}):e.jsxs(e.Fragment,{children:[e.jsxs("p",{className:"text-muted-foreground md:text-lg leading-relaxed",children:["Du bekommst"," ",e.jsx("strong",{className:"text-foreground",children:"1.500 Pub&Go-Credits (Wert: 15 €, genau passend für euren 1,5L Pitcher zum Anpfiff)"})," in eure App. Lade jetzt die Pub&Go App und log dich mit derselben Telefonnummer ein."]}),n.creditsHint!=null&&n.creditsHint>0&&n.creditsHint!==1500?e.jsxs("p",{className:"text-sm text-brand font-semibold",children:["Du bekommst zusätzlich ",n.creditsHint," Pub&Go-Credits in der App."]}):null,e.jsx("div",{className:"flex justify-center",children:e.jsx(z,{size:"lg",variant:"brand",placement:"wm_success"})})]}),e.jsx("div",{className:"pt-2",children:e.jsxs(ie,{to:"/kampagne/$token",params:{token:n.token},className:"inline-flex items-center justify-center gap-2 rounded-2xl border border-border bg-background hover:bg-accent/40 px-5 py-3 text-sm font-semibold transition",children:[e.jsx(we,{className:"h-4 w-4"})," Reservierung ansehen"]})}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Du bekommst zusätzlich eine Bestätigung per E-Mail."})]})})}):n.kind==="success-full"?e.jsx("section",{id:"buchung",className:"py-20 md:py-24 scroll-mt-24",children:e.jsx("div",{className:"max-w-2xl mx-auto px-6",children:e.jsxs("div",{className:"rounded-3xl border border-[#ffbd59]/40 bg-[#ffbd59]/5 p-8 md:p-10 text-center shadow-elegant space-y-5",children:[e.jsx("div",{className:"inline-flex h-14 w-14 rounded-2xl bg-[#ffbd59]/20 items-center justify-center text-[#ffbd59] mx-auto",children:e.jsx(L,{className:"h-7 w-7"})}),e.jsx("h2",{className:"text-2xl md:text-3xl font-display font-bold",children:"Spiel leider voll, du bist trotzdem dabei"}),e.jsx("p",{className:"text-muted-foreground md:text-lg leading-relaxed",children:n.message}),e.jsx("div",{className:"flex justify-center",children:e.jsx(z,{size:"lg",variant:"brand",placement:"wm_full"})})]})})}):e.jsx("section",{id:"buchung",className:"py-20 md:py-24 scroll-mt-24",children:e.jsxs("div",{className:"max-w-2xl mx-auto px-6",children:[e.jsxs("div",{className:"text-center max-w-xl mx-auto",children:[e.jsxs("span",{className:"inline-flex items-center gap-2 rounded-full border border-brand/40 bg-brand/10 px-4 py-1.5 text-xs font-semibold uppercase tracking-wider text-brand",children:[e.jsx(Se,{className:"h-3.5 w-3.5"})," Reservierung ab ",t.minPartySize," Personen"]}),e.jsxs("h2",{className:"mt-4 text-3xl md:text-4xl font-display font-bold",children:["Tisch & ",e.jsx("span",{className:"text-gradient-brand",children:"Gratis-Pitcher"})," sichern"]}),e.jsxs("p",{className:"mt-4 text-muted-foreground",children:["Für ",t.shortTitle," am ",e.jsx("strong",{className:"text-foreground",children:y})," um"," ",e.jsxs("strong",{className:"text-foreground",children:[k," Uhr"]}),"."]})]}),n.kind==="otp-pending"||n.kind==="verifying"?e.jsx("div",{className:"mt-10",children:e.jsx(ce,{phoneLabel:a.phone,isSubmitting:n.kind==="verifying",onSubmit:J,onResend:Q,onCancel:X,errorMessage:n.kind==="otp-pending"?n.otpError:null})}):e.jsxs("form",{id:m.formSlug,name:m.formSlug,onSubmit:K,...V.formProps,className:"mt-10 rounded-2xl border border-border bg-card/60 backdrop-blur p-6 md:p-8 space-y-5",children:[e.jsxs("div",{className:"rounded-xl border border-brand/30 bg-brand/5 px-4 py-3 text-sm",children:[e.jsx("div",{className:"font-semibold text-foreground",children:t.shortTitle}),e.jsxs("div",{className:"text-muted-foreground mt-0.5",children:[y," · Anpfiff ",k," Uhr · Pub&Go Bayreuth"]})]}),e.jsxs("div",{className:"grid sm:grid-cols-2 gap-5",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(j,{htmlFor:"firstName",children:"Vorname"}),e.jsx(v,{id:"firstName",required:!0,maxLength:80,value:a.firstName,onChange:f("firstName"),placeholder:"Max",autoComplete:"given-name"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(j,{htmlFor:"lastName",children:"Nachname"}),e.jsx(v,{id:"lastName",required:!0,maxLength:80,value:a.lastName,onChange:f("lastName"),placeholder:"Mustermann",autoComplete:"family-name"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(j,{htmlFor:"phone",children:"Mobilfunknummer"}),e.jsx(v,{id:"phone",type:"tel",inputMode:"tel",required:!0,maxLength:40,value:a.p
2hone,onChange:f("phone"),placeholder:"z. B. 0151 23456789",autoComplete:"tel"}),e.jsxs("p",{className:"text-sm text-muted-foreground leading-relaxed",children:[e.jsx("strong",{className:"text-foreground",children:"Wichtig:"})," Wir schicken den Bestätigungscode per WhatsApp (oder SMS, falls kein WhatsApp). Nutze dieselbe Nummer wie später in der Pub&Go App."]})]}),e.jsxs("div",{className:"grid sm:grid-cols-2 gap-5",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(j,{htmlFor:"email",children:"E-Mail-Adresse"}),e.jsx(v,{id:"email",type:"email",required:!0,maxLength:255,value:a.email,onChange:f("email"),placeholder:"[email protected]",autoComplete:"email"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(j,{htmlFor:"zip",children:"PLZ"}),e.jsx(v,{id:"zip",required:!0,inputMode:"numeric",pattern:"\\d{4,5}",maxLength:5,value:a.zip_code,onChange:f("zip_code"),placeholder:"95444",autoComplete:"postal-code"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(j,{htmlFor:"guests",children:"Personenanzahl"}),e.jsx("select",{id:"guests",value:a.guests,onChange:f("guests"),className:"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",children:Ee.map(l=>e.jsxs("option",{value:l,className:"bg-card",children:[l," Personen"]},l))}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Mindestens ",t.minPartySize," Personen für den Gratis-Pitcher."]})]}),e.jsxs("label",{className:"flex items-start gap-3 text-sm text-foreground/90 cursor-pointer",children:[e.jsx("input",{type:"checkbox",checked:a.marketingConsent,onChange:f("marketingConsent"),required:!0,className:"mt-1 h-4 w-4 accent-brand"}),e.jsx("span",{children:"Ich bestätige, dass ich 18 Jahre oder älter bin."})]}),e.jsx(le,{type:"submit",size:"lg",disabled:Y||T,className:"w-full bg-gradient-brand text-primary-foreground hover:opacity-90 text-base font-semibold rounded-full h-12 disabled:opacity-50",children:T?e.jsxs(e.Fragment,{children:[e.jsx(_e,{className:"h-4 w-4 mr-2 animate-spin"}),"Code wird gesendet…"]}):e.jsxs(e.Fragment,{children:[e.jsx(Pe,{className:"h-4 w-4 mr-2"}),"Tisch & Gratis-Pitcher sichern"]})}),e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-x-4 gap-y-1 text-xs text-muted-foreground pt-1",children:[e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsx(ze,{className:"h-3.5 w-3.5 text-brand"})," Unverbindlich"]}),e.jsx("span",{className:"opacity-60",children:"·"}),e.jsx("span",{children:"Keine Anzahlung"}),e.jsx("span",{className:"opacity-60",children:"·"}),e.jsx("span",{children:"Storno per Link"})]}),n.kind==="duplicate"&&e.jsxs("div",{className:"flex items-start gap-3 rounded-2xl border border-[#ffbd59]/40 bg-[#ffbd59]/10 p-4 text-sm",children:[e.jsx(L,{className:"h-5 w-5 text-[#ffbd59] shrink-0 mt-0.5"}),e.jsxs("div",{children:[e.jsx("div",{className:"font-bold text-foreground",children:"Reservierung liegt uns schon vor 👍"}),e.jsx("p",{className:"mt-1 text-muted-foreground",children:n.message})]})]}),n.kind==="error"&&e.jsxs("div",{className:"flex items-start gap-3 rounded-2xl border border-destructive/40 bg-destructive/10 p-4 text-sm",children:[e.jsx(Be,{className:"h-5 w-5 text-destructive shrink-0 mt-0.5"}),e.jsxs("div",{children:[e.jsx("div",{className:"font-bold text-foreground",children:"Ups, das hat nicht geklappt."}),e.jsx("p",{className:"mt-1 text-muted-foreground",children:n.message}),n.status?e.jsxs("p",{className:"mt-1 text-sm text-muted-foreground/70",children:["Fehlercode: ",n.status]}):null]})]})]})]})})}function Re(){const t=[{q:"Wo wird das Spiel gezeigt?",a:"Jedes WM-Spiel läuft bei uns auf 2 großen TV-Screens, damit ihr von jedem Tisch beste Sicht habt."},{q:"Ist die Reservierung verbindlich?",a:"Unverbindlich, du bekommst per E-Mail einen Storno-Link. Bitte spätestens 2 Stunden vor Anpfiff stornieren, falls ihr doch nicht kommt."},{q:"Wie funktioniert das Bestellen per App?",a:"Pub&Go App laden, am Tisch einchecken, Bier und Snacks bestellen, wir bringen alles direkt an euren Platz. Kein Anstehen, kein Wartesymbol."},{q:"Wann kommt der Gratis-Pitcher?",a:"Zum Anpfiff steht der erste 1,5L Pitcher gratis auf eurem Tisch. Voraussetzung: mindestens 4 Personen und gleiche Telefonnummer in Buchung & Pub&Go App, darüber werden die Credits in der App freigeschaltet."}];return e.jsx("section",{className:"py-16 md:py-20 bg-card/30 border-y border-border/50",children:e.jsxs("div",{className:"max-w-3xl mx-auto px-6",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-display font-bold text-center",children:"Häufige Fragen"}),e.jsx("div",{className:"mt-8 space-y-3",children:t.map(r=>e.jsxs("details",{className:"group rounded-2xl border border-border bg-card/60 backdrop-blur p-5",children:[e.jsxs("summary",{className:"cursor-pointer font-semibold text-foreground flex items-center justify-between",children:[r.q,e.jsx("span",{className:"text-brand group-open:rotate-45 transition-transform",children:"+"})]}),e.jsx("p",{className:"mt-3 text-sm text-muted-foreground leading-relaxed",children:r.a})]},r.q))})]})})}export{gr as component};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.