1import{$ as mt,u as ut,b as ht,r,f,v as Pe,j as e,X as pt,z as P,L as $,l as De,n as oe,y as gt,p as xt,x as ft}from"./index-DtDhvT43.js";import{l as bt}from"./steiner-vision-logo-Y2io-AVd.js";import{i as Ae,c as vt,b as yt,a as Nt,l as wt}from"./personName-BSNV4QHr.js";import{j as jt}from"./waitlist.functions-ZfNhkkpD.js";import{f as kt,g as St,b as It}from"./stores.functions-BNl87A89.js";import{C as Ct,b as Tt,s as Et,d as zt}from"./ConfirmModule-DNXGnSvC.js";import{C as m}from"./check-V3AejzPT.js";import{A as Pt}from"./arrow-left-BlOKtVQU.js";import{A as B}from"./arrow-right-EiGXz8m4.js";import{L as Z}from"./loader-circle-UfKg_N9a.js";import{M as le}from"./map-pin-CDngzD20.js";import{C as Dt}from"./clock-D8Hfh9w3.js";import"./useServerFn-DNbqVe9g.js";import"./useQuery-BSgEKkZA.js";import"./circle-check-DEbI0lJa.js";import"./createLucideIcon-Bu0Wqx9m.js";function At(j){const b=Number((j??"").slice(0,2));return!Number.isFinite(b)||b<12?"vormittag":b<17?"nachmittag":"abend"}function F(j,b){return new Date(`${j}T12:00:00`).toLocaleDateString(b,{weekday:"short",day:"numeric",month:"short"})}
1const Be=4,de=12,Bt=50,w=[{key:"experience",de:"Wie lange tragen Sie schon eine Gleitsichtbrille?",en:"How long have you been wearing progressive lenses?",options:[{value:"none",de:"Noch keine â ich merke die Veränderung gerade erst",en:"None yet â I'm just noticing the change"},{value:"1_3",de:"Seit 1 bis 3 Jahren",en:"For 1 to 3 years"},{value:"3plus",de:"Länger als 3 Jahre",en:"More than 3 years"}]},{key:"usage",de:"Wo brauchen Sie scharfe Sicht am meisten?",en:"Where do you need sharp vision most?",options:[{value:"screen",de:"Bildschirm und Büro",en:"Screen and office"},{value:"driving",de:"Auto und unterwegs",en:"Driving and on the go"},{value:"reading",de:"Lesen, Handarbeit, Hobby",en:"Reading, crafts, hobbies"},{value:"mixed",de:"Alles etwa gleich viel",en:"All about equally"}]},{key:"pain",de:"Was stört Sie an Ihrer heutigen Sicht am meisten?",en:"What bothers you most about your vision today?",options:[{value:"edges",de:"Unscharfe Ränder â ich muss den Kopf drehen",en:"Blurred edges â I have to turn my head"},{value:"search",de:"Ständiges Suchen nach der richtigen Schärfe",en:"Constantly hunting for the right focus"},{value:"glare",de:"Blendung und Spiegelungen, besonders abends",en:"Glare and reflections, especially at night"},{value:"unsure",de:"Weià ich noch nicht genau",en:"I'm not sure yet"}]},{key:"intent",de:"Und wie sieht Ihr Plan aus?",en:"And what's your plan?",options:[{value:"buy",de:"Ich brauche neue Gläser",en:"I need new lenses"},{value:"inform",de:"Ich möchte mich erst beraten lassen",en:"I'd like advice first"}]}];function Jt(){const{plz:j,lat:b,lng:H}=mt.useSearch(),t=ut(),ce=ht(),D=ft(ce),k=(j??"").replace(/\D/g,"").slice(0,5),[d,u]=r.useState(k.length>=4?"stores":"plz"),[c,me]=r.useState(k),[S,Fe]=r.useState(""),[I,Le]=r.useState(""),[C,_e]=r.useState(""),[A,$e]=r.useState(""),[ue,Ge]=r.useState(!1),[v,Re]=r.useState(0),[L,Me]=r.useState({}),[J,We]=r.useState(!0),[M,h]=r.useState(null),[Q,he]=r.useState(!1),[X,Ke]=r.useState(void 0),[Ye,Ve]=r.useState([]),[ee,pe]=r.useState(!1),[te,se]=r.useState(null),[Oe,ne]=r.useState({}),[i,Ue]=r.useState(null),[ge,qe]=r.useState(""),[xe,fe]=r.useState(!1),[Ze,He]=r.useState(!1),[be,W]=r.useState(null),[ie,ve]=r.useState([]),[ye,Ne]=r.useState({}),[we,je]=r.useState(Be),[K,ke]=r.useState(!1),[Y,y]=r.useState(null),[T,Se]=r.useState(!1),[p,Je]=r.useState(null),[E,Ie]=r.useState(null),[g,Qe]=r.useState(null),re=r.useRef(null);r.useEffect(()=>{f("booking_dialog_opened",{payload:{lp:"gleitsichtinitiative",step:"registration_view"}});const n=(document.getElementById("plz-registrierung")?.value??"").replace(/\D/g,"").slice(0,5);n&&me(a=>a||n)},[]);const _=(s,n={})=>{Pe(`${s}:gleitsichtinitiative`,{event:s,source:"gleitsichtinitiative"}),f(s,{postalCode:c,payload:{lp:"gleitsichtinitiative",...n}})};r.useEffect(()=>{k.length>=4&&re.current!==k&&(re.current=k,Ce(k,b!=null&&H!=null?{lat:b,lng:H}:null))},[k]);const Xe=s=>{const n=s;ne(Object.fromEntries(n.map(l=>[l.id,{loading:!0,nextDate:null}])));const a=l=>St({data:{storeId:l.id,countryCode:l.countryCode,days:30,offsetDays:0}}).then(o=>{const N=(o.dates??[])[0]?.date??null;ne(z=>({...z,[l.id]:{loading:!1,nextDate:N}}))}).catch(()=>{ne(o=>({...o,[l.id]:{loading:!1,nextDate:null}}))});(async()=>{await Promise.all(n.slice(0,5).map(a));for(let l=5;l<n.length;l+=6)await Promise.all(n.slice(l,l+6).map(a))})()},Ce=async(s,n)=>{pe(!0),se(null);try{const a=await kt({data:{postalCode:s,...n?{lat:n.lat,lng:n.lng}:{}}});Ve(a.stores),Pe(`zipform:gleitsichtinitiative:${s}`,{event:"zipform",zip:s,result_count:a.stores.length,source:"gleitsichtinitiative"}),a.stores.length===0?(se(t("Für diese Postleitzahl finden wir gerade keinen teilnehmenden Partneroptiker.","We currently can't find a participating partner optician for this postal code.")),f("zip_search_no_results",{postalCode:s,payload:{lp:"gleitsichtinitiative"}})):(_("step_stores",{step:"stores_shown",resultCount:a.stores.length}),Xe(a.stores))}catch{se(t("Die Optiker-Suche ist momentan nicht erreichbar. Bitte versuchen Sie es erneut.","The optician search is currently unavailable. Please try again."))}finally{pe(!1)}},et=()=>{h(null);const s=typeof document>"u"?null:document.getElementById("plz-registrierung"),n=(c||s?.value||"").replace(/\D/g,"").slice(0,5);if(n.length<4){h(t("Bitte eine gültige Postleitzahl eingeben.","Please enter a valid postal code."));return}f("zip_search",{postalCode:n,payload:{lp:"gleitsichtinitiative"}}),_("step_plz",{step:"zip_submitted"}),re.current=n,u("stores"),window.scrollTo({top:0,behavior:"smooth"}),Ce(n)},tt=s=>{Ue(s),f("cta_click",{postalCode:c,payload:{lp:"gleitsichtinitiative",step:"store_selected",storeId:s.id,storeName:s.name}}),u("register"),window.scrollTo({top:0,behavior:"smooth"}),ae(s)},st=async()=>
1{if(h(null),!i){u("stores");return}const s=c.replace(/\D/g,"").slice(0,5),n=C.trim().toLowerCase(),a=A.trim();if(!Ae(S)||!Ae(I)){h(t("Bitte Vor- und Nachnamen vollständig eingeben.","Please enter your full first and last name."));return}if(n&&!/^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test(n)){h(t("Bitte eine gültige E-Mail-Adresse eingeben â oder das Feld leer lassen.","Please enter a valid email address â or leave the field empty."));return}if(a&&a.replace(/\D/g,"").length<6){h(t("Bitte die Telefonnummer vollständig eingeben â oder das Feld leer lassen.","Please enter the phone number in full â or leave the field empty."));return}if((n||a)&&!ue){h(t("Bitte bestätigen Sie die Einwilligung, damit wir Sie kontaktieren dürfen.","Please confirm your consent so we may contact you."));return}he(!0);try{const l=De()??window.location.href,o=await vt({data:{name:`${S.trim()} ${I.trim()}`,...n?{email:n}:{},phone:a,postalCode:s,mode:"consultation_only",source:"gleitsichtinitiative",sourceUrl:l,landingPath:"/gleitsichtinitiative",sessionId:oe(),productName:"Wahl beim Sehtest",consent:!0}});if(!o.ok){h(t("Ihre Anmeldung konnte nicht gespeichert werden. Bitte versuchen Sie es erneut.","Your registration could not be saved. Please try again."));return}Ke(o.leadId),o.leadId&&(gt({email:n,...a?{phone:a}:{},firstname:S.trim(),lastname:I.trim(),zip:s,leadId:o.leadId}),n&&yt({data:{name:`${S.trim()} ${I.trim()}`,email:n,phone:a,postalCode:s,campaignCode:"gleitsichtinitiative",lang:ce,sourceUrl:l,internalLeadId:o.leadId,...i.id?{storeId:i.id}:{},countryCode:i.countryCode,storeCountry:i.country}}).catch(N=>console.error("[gleitsichtinitiative] early sv lead failed",N))),f("booking_start",{postalCode:s,payload:{lp:"gleitsichtinitiative",step:"registered",whatsapp:J&&!!a}}),f("survey_complete",{postalCode:s,payload:{lp:"gleitsichtinitiative",step:"registered"}}),u("slots"),window.scrollTo({top:0,behavior:"smooth"}),ie.length===0&&!K&&ae(i,o.leadId)}catch{h(t("Ihre Anmeldung konnte nicht gespeichert werden. Bitte versuchen Sie es erneut.","Your registration could not be saved. Please try again."))}finally{he(!1)}},ae=async(s,n)=>{ke(!0),y(null),ve([]),Ne({}),Ie(null),je(Be);const a=Date.now();try{const l=await It({data:{storeId:s.id,countryCode:s.countryCode,days:de}}),o=(l.dates??[]).slice(0,de);if(ve(o),Ne(l.slots??{}),wt({data:{step:o.length===0?"calendar_empty":"calendar_loaded",email:C.trim().toLowerCase(),sessionId:oe(),leadId:n??X,storeId:s.id,storeName:s.name,postalCode:c,resultCount:o.length,durationMs:Date.now()-a,errorCode:l.error??null}}).catch(()=>{}),o.length===0){y(t("Dieser Partneroptiker hat online gerade keine freien Termine. Bitte wählen Sie einen anderen Optiker.","This partner optician currently has no free appointments online. Please choose a different optician."));return}_("step_calendar",{step:"calendar_loaded",storeId:s.id,resultCount:o.length})}catch{y(t("Die Terminübersicht ist momentan nicht erreichbar. Bitte versuchen Sie es erneut.","The appointment overview is currently unavailable. Please try again."))}finally{ke(!1)}},nt=(s,n)=>{Ie({date:s,slot:n}),y(null),f("cta_click",{postalCode:c,payload:{lp:"gleitsichtinitiative",step:"slot_selected",slotStartsAt:n.startsAt}}),_("step_slot",{step:"slot_selected"})},it=()=>{if(!p)return;const s=i?[i.street,`${i.postalCode} ${i.city}`.trim()].filter(Boolean).join(", "):"",n=Tt({...p.startsAt?{startsAt:p.startsAt}:{},date:p.localDate??"",time:p.localTime??"",title:t("Sehtest & Vermessung â STEINER-Gleitsichtinitiative","Eye test & measurement â STEINER progressive lens initiative"),description:[t("Ihr Termin in der STEINER-Gleitsichtinitiative: kostenloser Sehtest und Vermessung.","Your appointment for the STEINER progressive lens initiative: free eye test and measurement."),g?.couponCode?`${t("Ihr Gutscheincode","Your coupon code")}: ${g.couponCode}`:"",t("Bitte mitbringen: Ihre aktuelle Brille.","Please bring: your current glasses.")].filter(Boolean).join(` 2`),location:[i?P(i.name):"",s].filter(Boolean).join(", "),...g?.eventId?{url:Et(`/appointmentconfirm/${encodeURIComponent(g.eventId)}`)}:{},uid:`${g?.bookingId??"initiative"}@steiner-vision.de`,alarms:["-P1D","-PT3H"]});zt("steiner-vision-termin",n)},rt=async(s,n,a)=>
2{if(!i||!E||T)return;const{date:l,slot:o}=E,N=n??C.trim().toLowerCase(),z=a??A.trim(),O=s??X;Se(!0),y(null);try{const U=De()??window.location.href,x=await Nt({data:{name:`${S.trim()} ${I.trim()}`,phone:z,email:N,postalCode:c.replace(/\D/g,"").slice(0,5),preferredDate:o.localDate??l,preferredSlot:At(o.localTime),consultationOnly:!0,storeId:i.id,storeName:i.name,countryCode:i.countryCode,storeCountry:i.country,storeStreet:i.street,storeCity:i.city,...i.latitude!=null?{storeLat:i.latitude}:{},...i.longitude!=null?{storeLng:i.longitude}:{},slotStartsAt:o.startsAt,slotLocalDate:o.localDate,slotLocalTime:o.localTime,slotTimezone:o.timezone,slotCalendarModel:o.calendarModel,slotDateLength:o.dateLength,campaignCode:"gleitsichtinitiative",lang:"de",sourceUrl:U,leadId:O,sessionId:oe()}});if(!x.ok){const ze=x.errorCode??"";if(ze==="SLOT_TAKEN"||ze==="ALREADY_BOOKED"){const q=t("Diese Uhrzeit wurde gerade vergeben. Bitte wählen Sie eine andere Zeit.","This time slot has just been taken. Please choose a different time.");y(q),h(null),u("slots"),window.scrollTo({top:0,behavior:"smooth"}),ae(i,O)}else{const q=x.error??t("Der Termin konnte nicht gebucht werden. Bitte versuchen Sie es erneut.","The appointment could not be booked. Please try again.");y(q),h(q)}return}f("booking_submit",{postalCode:c,payload:{lp:"gleitsichtinitiative",step:"booked",storeId:i.id,storeName:i.name,slotStartsAt:o.startsAt}}),_("step_booked",{step:"booked",storeId:i.id}),xt(x.bookingId??O??"",{email:N,...z?{phone:z}:{},firstname:S.trim(),lastname:I.trim(),zip:c.replace(/\D/g,"").slice(0,5),leadId:O??x.bookingId??""},x.eventId??void 0),Je(o),Qe({bookingId:x.bookingId,...x.eventId?{eventId:x.eventId}:{},couponCode:x.couponCode??null,...x.walletAvailable?{walletAvailable:!0}:{}}),u("done"),window.scrollTo({top:0,behavior:"smooth"})}catch{const U=t("Der Termin konnte nicht gebucht werden. Bitte versuchen Sie es erneut.","The appointment could not be booked. Please try again.");y(U),h(U)}finally{Se(!1)}},at=()=>{d==="slots"?u("register"):d==="register"?u("stores"):d==="stores"&&u("plz")},ot=(s,n)=>{Me(a=>({...a,[s]:n})),f("cta_click",{postalCode:c,payload:{lp:"gleitsichtinitiative",step:`survey_${s}`,answer:n}}),v+1<w.length?Re(v+1):(f("survey_complete",{postalCode:c,payload:{lp:"gleitsichtinitiative",step:"survey_result"}}),u("result")),window.scrollTo({top:0,behavior:"smooth"})},lt=ie.slice(0,we).filter(s=>(ye[s.date]??[]).length>0),dt=ie.length>we,Te=Ye.filter(s=>s.distanceKm==null||s.distanceKm<=Bt),ct=async()=>{W(null);const s=ge.trim();if(!/^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test(s)){W(t("Bitte eine gültige E-Mail-Adresse eingeben.","Please enter a valid email address."));return}fe(!0);try{(await jt({data:{email:s,postalCode:c||"00000",source:"gleitsichtinitiative",sourceUrl:typeof window>"u"?void 0:window.location.href}})).ok?He(!0):W(t("Das hat nicht funktioniert. Bitte später erneut versuchen.","That didn't work. Please try again later."))}catch{W(t("Das hat nicht funktioniert. Bitte später erneut versuchen.","That didn't work. Please try again later."))}finally{fe(!1)}},V=r.useMemo(()=>{const s=L.usage,n=L.pain,a=L.experience,l=t("STEINER ClearSight â doppelseitig progressiv","STEINER ClearSight â dual-side progressive"),o=n==="edges"?t("Weil die Gleitzone auf Vorder- UND Rückfläche gerechnet wird, fallen die unscharfen Randbereiche fast vollständig weg â Sie müssen den Kopf kaum noch drehen.","Because the progressive zone is computed on both the front AND back surface, blurred edges almost disappear â barely any head turning."):n==="search"?t("Die doppelseitige Auslegung führt Ihren Blick ohne Sprung von der Ferne in die Nähe â Sie müssen die Schärfe nicht mehr suchen.","The dual-side design guides your eyes from distance to near without a jump â no more hunting for focus."):n==="glare"?t("Zur doppelseitigen Auslegung kommt die Premium-Entspiegelung â besonders angenehm bei Dämmerung und Nachtfahrten.","The dual-side design comes with premium anti-reflective coating â ideal at dusk and at night."):t("Beim Sehtest wird millimetergenau vermessen, wie Ihr ClearSight gerechnet wird â auf Ihre Augen, Ihre Fassung, Ihre Kopfhaltung.","At the eye test everything is measured precisely so your ClearSight is computed for your eyes, frame and head posture."),N=s==="screen"?t("Ihr Zwischenbereich für den Bildschirm wird dabei besonders breit ausgelegt.","Your intermediate zone for screen work is laid out especially wide."):s==="driving"?t("Der Fernbereich wird für das Fahren besonders weit und ruhig au
2sgelegt.","The distance zone is laid out especially wide and calm for driving."):s==="reading"?t("Der Nahbereich wird für langes Lesen besonders groà ausgelegt.","The near zone is laid out especially large for long reading sessions."):t("Ferne, Zwischenbereich und Nähe werden gleichmäÃig stark ausgelegt.","Distance, intermediate and near zones are balanced evenly."),z=a==="none"?t("Als Erstträger erhalten Sie zusätzlich die Eingewöhnungs-Garantie.","As a first-time wearer you also get the adaptation guarantee."):t("Wer schon Gleitsicht getragen hat, merkt den Unterschied zu einfach gerechneten Gläsern sofort.","Anyone who has worn progressives before notices the difference to simply computed lenses immediately.");return{lens:l,reason:o,usageNote:N,note:z}},[L,t]),Ee=e.jsxs("div",{className:"mt-5 rounded-xl border border-gold-deep bg-gold/10 p-4",children:[e.jsx("div",{className:"font-display text-base text-gold-deep",children:e.jsx("span",{className:"text-lg",children:t("Fix 360 ⬠komplett","â¬360 flat, all in")})}),e.jsx("p",{className:"mt-1 text-[13px] text-foreground",children:t("Beide STEINER ClearSight-Gläser, doppelseitig progressiv â die höchste Gleitsicht-Klasse von STEINER.","Both STEINER ClearSight lenses, dual-side progressive â the highest class of progressive lens there is.")}),e.jsxs("ul",{className:"mt-2 space-y-1 text-[13px] text-foreground",children:[e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(m,{className:"mt-0.5 h-3.5 w-3.5 flex-none text-gold-deep","aria-hidden":!0}),t("Solche Gläser kosten sonst weit über 1.000 ⬠pro Paar","Lenses like these normally cost well over â¬1,000 a pair")]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(m,{className:"mt-0.5 h-3.5 w-3.5 flex-none text-gold-deep","aria-hidden":!0}),t("Sehstärken-Schutz 24 Monate inklusive","24-month prescription protection included")]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(m,{className:"mt-0.5 h-3.5 w-3.5 flex-none text-gold-deep","aria-hidden":!0}),t("60 Tage Geld zurück","60-day money-back guarantee")]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(m,{className:"mt-0.5 h-3.5 w-3.5 flex-none text-gold-deep","aria-hidden":!0}),t("Begrenzte Stückzahl â deshalb sind die Teilnahmeplätze limitiert","Limited production run â that is why participation spots are limited")]})]}),e.jsx("p",{className:"mt-2 text-[13px] leading-snug text-foreground",children:t("Alternativ: EasyFit, Generation 2024, komplett 180 ⬠â Sie entscheiden beim Sehtest.","Alternatively: EasyFit, 2024 generation, â¬180 complete â you decide at the eye test.")}),e.jsx("p",{className:"mt-2 text-[12px] leading-relaxed text-muted-foreground",children:t("Warum STEINER das macht: STEINER-Vision liefert direkt vom Hersteller zum Partneroptiker â ohne Zwischenhandel. So wird doppelseitig progressive Gleitsicht erstmals breit zugänglich.","Why STEINER does this: STEINER-Vision delivers direct from the manufacturer to the partner optician â no middlemen. That makes dual-side progressive lenses widely accessible for the first time.")})]});return e.jsxs("main",{className:"min-h-screen bg-medical-surface text-foreground",children:[e.jsx("header",{className:"border-b border-medical-line bg-card",children:e.jsxs("div",{className:"mx-auto flex h-16 max-w-2xl items-center justify-between gap-3 px-5",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[d!=="plz"&&d!=="done"&&e.jsx("button",{type:"button",onClick:at,"aria-label":t("Zurück","Back"),className:"flex h-8 w-8 items-center justify-center rounded-full border border-medical-line text-foreground transition-colors duration-200 hover:bg-secondary",children:e.jsx(Pt,{className:"h-4 w-4"})}),e.jsx("img",{src:bt,alt:"STEINER Vision",className:"h-[22px] w-auto md:h-7"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"rounded-full border border-gold-deep/40 bg-gold/10 px-3 py-1 text-[10px] font-semibold uppercase tracking-[0.18em] text-gold-deep",children:d==="done"?t("Termin steht","Appointment confirmed"):d==="slots"?t("Termin wählen","Choose a time"):d==="register"?t("Ihre Daten","Your details"):d==="stores"?t("Optiker wählen","Choose an optician"):d==="quiz"?t(`Frage ${v+1} von ${w.length}`,`Question ${v+1} of ${w.length}`):d==="result"?t("Ihr Ergebnis","Your result"):t("Postleitzahl","Postal code")}),e.jsx(pt,{})]})]})}),e.jsxs("div",{className:"mx-auto max-w-2xl px-5 py-10",children:[d==="plz"&&e.jsxs(e.Fragment,{children:[e.jsx("h1",{className:"text-2xl text-foreground sm:text-3xl",children:t("Ist in Ihrer Gegend noch ein Teilnahmeplatz für die STEINER-Gleitsichtinitiative verfügbar?","Is a participation spot for the STEINER progressive lens initiative still available in your area?")}),e.jsx("p",{className:"mt-3 text-sm leading-relaxed text-muted-foreground",children:t("Ihre Postleitzahl genügt â wir zeigen Ihnen sofort die teilnehmenden Partneroptiker in Ihrer Nähe. Fix 360 ⬠komplett für beide ClearSight-Gläser, doppelseitig progressiv â solche Gläser k
2osten sonst weit über 1.000 â¬.","Just your postal code â we'll show you the participating partner opticians near you right away. A fixed â¬360 in total for both ClearSight lenses, dual-side progressive â lenses like these normally cost well over â¬1,000.")}),e.jsxs("form",{className:"mt-7 space-y-4",onSubmit:s=>{s.preventDefault(),et()},children:[e.jsx(R,{label:t("Postleitzahl","Postal code"),children:e.jsx("input",{value:c,onChange:s=>me(s.target.value.replace(/\D/g,"").slice(0,5)),id:"plz-registrierung",inputMode:"numeric",autoComplete:"postal-code",placeholder:t("Ihre Postleitzahl","Your postal code"),"aria-label":t("Postleitzahl","Postal code"),className:G})}),M&&e.jsx("p",{className:"text-sm text-destructive",children:M}),e.jsxs("button",{type:"submit",className:"inline-flex h-14 w-full items-center justify-center gap-2 rounded-xl bg-cta px-6 text-[13px] font-bold uppercase tracking-[0.14em] text-cta-foreground transition-colors duration-200 hover:brightness-110",children:[t("Optiker in meiner Nähe zeigen","Show opticians near me"),e.jsx(B,{className:"h-4 w-4"})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:t("Unverbindlich · kostenloser Sehtest beim Partneroptiker · kein Kauf verpflichtend","No obligation · free eye test at the partner optician · no purchase required")})]})]}),d==="quiz"&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"flex gap-1.5","aria-hidden":!0,children:w.map((s,n)=>e.jsx("span",{className:`h-1.5 flex-1 rounded-full ${n<=v?"bg-gold-deep":"bg-medical-line"}`},s.key))}),e.jsx("h1",{className:"mt-6 text-2xl text-foreground sm:text-3xl",children:t(w[v].de,w[v].en)}),e.jsx("p",{className:"mt-3 text-sm text-muted-foreground",children:t("Ein Klick genügt â danach sehen Sie, welches Glas für Sie passt und was es in der Initiative kostet.","One click is enough â then you'll see which lens suits you and what it costs in the initiative.")}),e.jsx("div",{className:"mt-6 space-y-3",children:w[v].options.map(s=>e.jsxs("button",{type:"button",onClick:()=>ot(w[v].key,s.value),className:"flex w-full items-center justify-between gap-3 rounded-xl border border-medical-line bg-card p-4 text-left text-[15px] transition-colors duration-200 hover:border-gold-deep hover:bg-gold/10",children:[e.jsx("span",{children:t(s.de,s.en)}),e.jsx(B,{className:"h-4 w-4 flex-none text-muted-foreground","aria-hidden":!0})]},s.value))}),e.jsx("p",{className:"mt-6 text-xs text-muted-foreground",children:t("Unverbindlich · kostenloser Sehtest beim Partneroptiker · kein Kauf verpflichtend","No obligation · free eye test at the partner optician · no purchase required")})]}),d==="result"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full border border-gold-deep/40 bg-gold/10 px-3 py-1 text-[10px] font-semibold uppercase tracking-[0.18em] text-gold-deep",children:[e.jsx(m,{className:"h-3.5 w-3.5","aria-hidden":!0}),t("Ihr Ergebnis steht","Your result is ready")]}),e.jsxs("h1",{className:"mt-5 text-2xl text-foreground sm:text-3xl",children:[t("Für Ihre Augen wird gerechnet:","Computed for your eyes:")," ",e.jsx("span",{className:"text-gold-deep",children:V.lens})]}),e.jsx("p",{className:"mt-2 text-sm font-semibold text-foreground",children:t("Die höchste Gleitsicht-Klasse von STEINER.","The highest class of progressive lens there is. It does not get better.")}),e.jsxs("p",{className:"mt-3 text-sm leading-relaxed text-muted-foreground",children:[V.reason," ",V.usageNote," ",V.note]}),e.jsxs("div",{className:"mt-6 rounded-2xl border border-border bg-muted/40 p-5",children:[e.jsx("div",{className:"text-[10px] font-semibold uppercase tracking-[0.18em] text-muted-foreground",children:t("Was doppelseitig progressiv bedeutet","What dual-side progressive means")}),e.jsx("p",{className:"mt-2 text-sm leading-relaxed text-foreground",children:t("Einfache Gleitsichtgläser tragen die Gleitzone nur auf einer Seite des Glases. Beim ClearSight wird sie auf beide Flächen gerechnet â vorne und hinten. Die Ãbergänge verteilen sich dadurch auf zwei Ebenen statt auf eine.","Simple progressive lenses carry the progressive zone on one surface only. In ClearSight it is computed on both surfaces â front and back. The transitions are spread across two planes instead of one.")}),e.jsxs("ul",{className:"mt-3 space-y-1.5 text-sm text-foreground",children:[e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(m,{className:"mt-0.5 h-4 w-4 flex-none text-gold-deep","aria-hidden":!0}),t("Bis zu doppelt so breite Sehbereiche in Ferne, Zwischenbereich und Nähe","Up to twice as wide viewing zones for distance, intermediate and near")
2]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(m,{className:"mt-0.5 h-4 w-4 flex-none text-gold-deep","aria-hidden":!0}),t("Nahezu keine Schaukel- und Verzerrungseffekte beim Kopfdrehen","Virtually no swim or distortion effects when turning your head")]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(m,{className:"mt-0.5 h-4 w-4 flex-none text-gold-deep","aria-hidden":!0}),t("Individuell auf Ihre Fassung, Augenabstand und Kopfhaltung gerechnet","Computed individually for your frame, pupil distance and head posture")]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(m,{className:"mt-0.5 h-4 w-4 flex-none text-gold-deep","aria-hidden":!0}),t("Schnellste Eingewöhnung, weil das Auge keine Sprünge ausgleichen muss","Fastest adaptation, because your eyes never have to compensate for jumps")]})]})]}),e.jsxs("div",{className:"mt-6 rounded-2xl border border-gold-deep bg-gold/10 p-5",children:[e.jsx("div",{className:"text-[10px] font-semibold uppercase tracking-[0.18em] text-muted-foreground",children:t("Ihr Initiative-Preis","Your initiative price")}),e.jsxs("div",{className:"mt-1 font-display text-3xl text-gold-deep",children:["360 ⬠",e.jsxs("span",{className:"text-base font-normal text-muted-foreground",children:[t("statt","instead of")," ",e.jsx("span",{className:"line-through",children:"720 â¬"})]})]}),e.jsxs("ul",{className:"mt-3 space-y-1.5 text-sm text-foreground",children:[e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(m,{className:"mt-0.5 h-4 w-4 flex-none text-gold-deep","aria-hidden":!0}),t("Beide ClearSight-Gläser, doppelseitig progressiv","Both ClearSight lenses, dual-side progressive")]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(m,{className:"mt-0.5 h-4 w-4 flex-none text-gold-deep","aria-hidden":!0}),t("â50 % auf alle Upgrades","â50% on all upgrades")]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(m,{className:"mt-0.5 h-4 w-4 flex-none text-gold-deep","aria-hidden":!0}),t("Sehstärken-Schutz 24 Monate inklusive","24-month prescription protection included")]}),e.jsxs("li",{className:"flex items-start gap-2",children:[e.jsx(m,{className:"mt-0.5 h-4 w-4 flex-none text-gold-deep","aria-hidden":!0}),t("60 Tage Geld zurück","60-day money-back guarantee")]})]})]}),e.jsx("p",{className:"mt-5 text-sm leading-relaxed text-muted-foreground",children:L.intent==="inform"?t("Sie möchten sich erst beraten lassen â genau dafür ist der Termin gedacht: Sehtest, Vermessung und Beratung, ohne Kaufverpflichtung.","You'd like advice first â that's exactly what the appointment is for: eye test, measurement and advice, with no obligation to buy."):t("Der Initiative-Preis gilt für Ihren Termin beim Partneroptiker â die Plätze sind auf 1.000 Teilnehmer begrenzt.","The initiative price applies to your appointment at the partner optician â places are limited to 1,000 participants.")}),e.jsxs("button",{type:"button",onClick:()=>{u("stores"),window.scrollTo({top:0,behavior:"smooth"})},className:"mt-6 inline-flex h-14 w-full items-center justify-center gap-2 rounded-xl bg-cta px-6 text-[13px] font-bold uppercase tracking-[0.14em] text-cta-foreground transition-colors duration-200 hover:brightness-110",children:[t("Partneroptiker in meiner Nähe zeigen","Show partner opticians near me"),e.jsx(B,{className:"h-4 w-4"})]}),e.jsx("p",{className:"mt-3 text-xs text-muted-foreground",children:t("Kostenloser Sehtest · unverbindlich · kein Kauf verpflichtend","Free eye test · no obligation · no purchase required")})]}),d==="stores"&&e.jsxs(e.Fragment,{children:[e.jsx("h1",{className:"text-2xl text-foreground sm:text-3xl",children:t("Partneroptiker wählen","Choose a partner optician")}),e.jsx("p",{className:"mt-3 text-sm text-muted-foreground",children:t(`Teilnehmende Optiker in der Nähe von ${c} â mit dem nächsten freien Termin. Ein Klick genügt.`,`Participating opticians near ${c} â including their next free appointment. One click is all it takes.`)}),Ee,ee&&e.jsxs("div",{className:"mt-8 flex items-center gap-3 text-sm text-muted-foreground",children:[e.jsx(Z,{className:"h-4 w-4 animate-spin"})," ",t("Optiker werden geladen â¦","Loading opticians â¦")]}),te&&!ee&&e.jsx("div",{className:"mt-6 rounded-xl border border-medical-line bg-card p-4 text-sm text-muted-foreground",children:te}),!ee&&!te&&Te.length===0&&e.jsxs("div",{className:"mt-6 rounded-2xl border border-medical-line bg-card p-5",children:[e.jsx("p",{className:"text-sm leading-relaxed text-foreground",children:t("In Ihrer Region ist aktuell kein Partneroptiker in der Initiative â tragen Sie sich ein, wir informieren Sie, sobald ein Platz frei wird.","There is currently no partner optician in the initiative in your region â leave your email and we'll let you know as soon as a place opens up.")}),Ze?e.jsx("p",{className:"mt-4 text-sm font-semibold text-gold-deep",children:t("Eingetragen â wir melden uns.","You're on the list â we'll be in touch.")}):e.jsxs("div",{className:"mt-4",children:[e.jsx("label",{className:"block text-[12px] font-semibold text-muted-foreground",htmlFor:"wl-email",children:t("E-Mail-Adresse","Email address")}),e.jsx("input",{id:"wl-email",type:"email",inputMode:"email",autoComplete:"email",value:ge,onChange:s=>qe(s.target.value),placeholder:"[email protected]",className:"mt-1.5 w-full rounded-xl border border-medical-line bg-background px-4 py-3 text-base outline-none focus:border-gold-deep"}),be&&e.jsx("p",{className:"mt-2 text-sm text-destructive",children:be}),e.jsx("button",{type:"button",onClick:ct,disabled:xe,className:"mt-3 w-full rounded-xl bg-primary px-6 py-3.5 text-base font-semibold text-primary-foreground transition active:scale-[0.99] disabled:opacity-60",children:xe?t("Wird gesendet â¦","Sending â¦"):t("Benachrichtigen lassen","Notify me")})]})]}),e.jsx("ul",{className:"mt-6 space-y-3",children:Te.map(s=>{const n=Oe[s.id];return e.jsx("li",{children:e.jsxs("button",{type:"button",onClick:()=>tt(s),className:"flex w-full items-start gap-3 rounded-xl border border-medical-line bg-card p-4 text-left transition-colors duration-200 hover:border-gold-deep hover:bg-gold/10",children:[e.jsx(le,{className:"mt-0.5 h-4 w-4 flex-none text-gold-deep","aria-hidden":!0}),e.jsxs("span",{className:"min-w-0 flex-1",children:[e.jsx("span",{className:"block font-display text-base",children:P(s.name)}),e.jsxs("span",{className:"mt-0.5 block text-sm text-muted-foreground",children:[s.street," · ",s.postalCode," ",s.city,s.distanceKm!=null?` · ${s.distanceKm.toFixed(1)} km`:""]}),e.jsx("span",{className:"mt-1.5 block text-[12px] font-semibold",children:n&&!n.loading&&n.nextDate?e.jsxs("span",{className:"text-gold-deep",children:[t("Nächster freier Termin: ","Next free appointment: "),F(n.nextDate,D)]}):e.jsx("span",{className:"text-gold-deep",children:t("Freie Termine ansehen","See available times")})})]}),e.jsx(B,{className:"mt-1 h-4 w-4 flex-none text-muted-foreground","aria-hidden":!0})]})},`${s.countryCode}-${s.id}`)})})]}),d==="register"&&e.jsxs(e.Fragment,{children:[e.jsx("h1",{className:"text-2xl text-foreground sm:text-3xl",children:t("Auf welchen Namen dürfen wir den Termin eintragen?","In whose name should we book the appointment?")}),i&&e.jsx("div",{className:"mt-5 rounded-xl border border-gold-deep bg-gold/10 p-4 text-sm",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(le,{className:"mt-0.5 h-4 w-4 flex-none text-gold-deep","aria-hidden":!0}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"font-display text-base",children:P(i.name)}),e.jsxs("div",{className:"mt-0.5 text-muted-foreground",children:[i.street," · ",i.postalCode," ",i.city]})]}),e.jsx("button",{type:"button",onClick:()=>u("stores"),className:"flex-none rounded-lg border border-medical-line px-3 py-1.5 text-[11px] font-semibold uppercase tracking-[0.1em] text-foreground transition-colors duration-200 hover:bg-secondary",children:t("Ãndern","Change")})]})}),e.jsx("p",{className:"mt-4 text-sm leading-relaxed text-muted-foreground",children:t("Name genügt â E-Mail und Mobilnummer sind freiwillig. Mit E-Mail erhalten Sie die Terminbestätigung und Ihren Gutscheincode, mit Mobilnummer zusätzlich die Erinnerung am Vortag.","Your name is enough â email and mobile number are optional. With an email you receive the confirmation and your coupon code, with a mobile number also the reminder the day before.")}),e.jsxs("form",{className:"mt-6 space-y-4",onSubmit:s=>{s.preventDefault(),st()},children:[e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsx(R,{label:t("Vorname","First name"),children:e.jsx("input",{value:S,onChange:s=>Fe(s.target.value),autoComplete:"given-name",className:G})}),e.jsx(R,{label:t("Nachname","Last name"),children:e.jsx("input",{value:I,onChange:s=>Le(s.target.value),autoComplete:"family-name",className:G})})]}),e.jsx(R,{label:t("E-Mail (optional) â für Bestätigung & Gutscheincode","Email (optional) â for confirmation & coupon code"),children:e.jsx("input",{value:C,onChange:s=>_e(s.target.value),type:"email",inputMode:"email",autoComplete:"email",placeholder:t("[email protected]","[email protected]"),className:G})}),e.jsx(R,{label:t("Mobilnummer (optional) â für Bestätigung & Erinnerung","Mobile number (optional) â for confirmation & reminder"),children:e.jsx("input",{value:A,onChange:s=>$e(s.target.value),type:"tel",inputMode:"tel",autoComplete:"tel",placeholder:t("z. B. 0170 1234567","e.g. 0170 1234567"),className:G})}),e.jsxs("label",{className:"flex cursor-pointer items-start gap-3 rounded-xl border border-gold-deep bg-gold/10 p-4 text-[13px] leading-relaxed text-foreground",children:[e.jsx("input",{type:"checkbox",checked:J,onChange:s=>We(s.target.checked),className:"mt-0.5 h-4 w-4 flex-none accent-gold-deep"}),e.jsxs("span",{children:[e.jsx("span",{className:"block font-semibold text-gold-deep",children:t("Bestätigung, Erinnerung und Umbuchen per WhatsApp â kostenlos","Confirmation, reminder and rescheduling via WhatsApp â free")}),e.jsx("span",{className:"mt-0.5 block text-muted-foreground",children:t("Erinnerung am Vortag und kurz vor dem Termin, Verschieben mit einem Klick. Nur mit Mobilnummer möglich.","Reminder the day before and shortly before the appointment, reschedule with one click. Requires a mobile number.")})]})]}),(C.trim()||A.trim())&&e.jsxs("label",{className:"flex cursor-pointer items-start gap-3 text-xs leading-relaxed text-muted-foreground",children:[e.jsx("input",{type:"checkbox",checked:ue,onChange:s=>Ge(s.target.checked),className:"mt-0.5 h-4 w-4 flex-none accent-gold-deep"}),e.jsxs("span",{children:[t("Ja, ich stimme der","Yes, I agree to the")," ",e.jsx($,{to:"/datenschutz",target:"_blank",className:"font-semibold underline",children:t("Datenschutzerklärung","privacy policy")})," ",t("und den","and the")," ",e.jsx($,{to:"/agb",target:"_blank",className:"font-semibold underline",children:t("AGB","terms and conditions")})," ",t("zu. Widerruf jederzeit möglich.","Consent can be withdrawn at any time.")]})]}),M&&e.jsx("p",{className:"text-sm text-destructive",children:M}),e.jsxs("button",{type:"submit",disabled:Q||T,className:"inline-flex h-14 w-full items-center justify-center gap-2 rounded-xl bg-cta px-6 text-[13px] font-bold uppercase tracking-[0.14em] text-cta-foreground transition-colors duration-200 hover:brightness-110 disabled:opacity-70",children:[Q||T?e.jsx(Z,{className:"h-4 w-4 animate-spin"}):null,t("Weiter zur Terminauswahl","Continue to appointment times"),!Q&&!T&&e.jsx(B,{className:"h-4 w-4"})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:t("Kostenloser Sehtest · unverbindlich · kein Kauf verpflichtend","Free eye test · no obligation · no purchase required")})]})]}),d==="slots"&&e.jsxs(e.Fragment,{children:[e.jsx("h1",{className:"text-2xl text-foreground sm:text-3xl",children:t("Termin wählen","Choose a time")}),e.jsx("p",{className:"mt-3 text-sm text-muted-foreground",children:t(`Freie Zeiten bei ${i?P(i.name):"Ihrem Partneroptiker"}. Uhrzeit antippen und darunter bestätigen.`,`Available times at ${i?P(i.name):"your partner optician"}. Tap a time and confirm below.`)}),i&&e.jsxs("div",{className:"mt-5 flex items-start gap-3 rounded-xl border border-gold-deep bg-gold/10 p-4 text-sm",children:[e.jsx(le,{className:"mt-0.5 h-4 w-4 flex-none text-gold-deep","aria-hidden":!0}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"font-display text-base",children:P(i.name)}),e.jsxs("div",{className:"mt-0.5 text-muted-foreground",children:[i.street," · ",i.postalCode," ",i.city]})]}),e.jsx("button",{type:"button",onClick:()=>u("stores"),className:"flex-none rounded-lg border border-medical-line px-3 py-1.5 text-[11px] font-semibold uppercase tracking-[0.1em] text-foreground transition-colors duration-200 hover:bg-secondary",children:t("Ãndern","Change")})]}),Ee,K&&e.jsxs("div",{className:"mt-8 flex items-center gap-3 text-sm text-muted-foreground",children:[e.jsx(Z,{className:"h-4 w-4 animate-spin"})," ",t("Freie Termine werden geladen â¦","Loading available appointments â¦")]}),Y&&!K&&e.jsx("div",{className:"mt-6 rounded-xl border border-medical-line bg-card p-4 text-sm text-muted-foreground",children:Y}),e.jsx("div",{className:"mt-6 space-y-4",children:lt.map(s=>{const n=ye[s.date]??[];return e.jsxs("div",{className:"rounded-xl border border-medical-line bg-card p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-semibold",children:[e.jsx(Dt,{className:"h-4 w-4 text-gold-deep","aria-hidden":!0}),F(s.date,D)]}),e.jsx("div",{className:"mt-3 flex flex-wrap gap-2",children:n.slice(0,12).map(a=>{const l=E?.slot.id===a.id;return e.jsx("button",{type:"button",onClick:()=>nt(s.date,a),"aria-pressed":l,className:`h-11 min-w-[74px] rounded-lg px-3 text-sm font-semibold transition-colors duration-200 ${l?"border border-gold-deep bg-gold text-gold-foreground":"border border-medical-line bg-card text-foreground hover:border-gold-deep hover:bg-gold/10"}`,children:a.localTime??""},a.id)})})]},s.date)})}),!K&&dt&&e.jsx("button",{type:"button",onClick:()=>je(de),className:"mt-4 inline-flex h-12 w-full items-center justify-center rounded-xl border border-medical-line px-6 text-[12px] font-semibold uppercase tracking-[0.12em] text-foreground transition-colors duration-200 hover:bg-secondary",children:t("Spätere Termine anzeigen","Show later appointments")}),E&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"h-40 md:hidden","aria-hidden":!0}),e.jsx("div",{className:"fixed inset-x-0 bottom-0 z-[2147483647] border-t border-gold-deep bg-card p-4 shadow-[0_-8px_24px_rgba(0,0,0,0.18)] md:static md:z-auto md:mt-6 md:rounded-xl md:border md:bg-gold/10 md:shadow-none",style:{paddingBottom:"max(1rem, env(safe-area-inset-bottom))"},children:e.jsxs("div",{className:"mx-auto w-full max-w-2xl",children:[e.jsxs("div",{className:"font-display text-base text-gold-deep",children:[F(E.slot.localDate??E.date,D)," ·"," ",E.slot.localTime??"",t(" Uhr","")]}),Y&&e.jsx("p",{className:"mt-2 text-sm text-destructive",children:Y}),e.jsxs("button",{type:"button",disabled:T,onClick:()=>{h(null),rt(X??void 0,C.trim().toLowerCase(),A.trim())},className:"mt-3 inline-flex h-14 w-full items-center justify-center gap-2 rounded-xl bg-cta px-6 text-[13px] font-bold uppercase tracking-[0.14em] text-cta-foreground transition-colors duration-200 hover:brightness-110 disabled:opacity-70",children:[T?e.jsx(Z,{className:"h-4 w-4 animate-spin"}):null,t("Diesen Termin verbindlich sichern","Secure this time"),!T&&e.jsx(B,{className:"h-4 w-4"})]})]})})]}),e.jsx("p",{className:"mt-6 text-xs text-muted-foreground",children:t("Kostenloser Sehtest · unverbindlich · kein Kauf verpflichtend","Free eye test · no obligation · no purchase required")})]}),d==="done"&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"flex h-12 w-12 items-center justify-center rounded-full bg-gold",children:e.jsx(m,{className:"h-6 w-6 text-gold-foreground"})}),e.jsx("h1",{className:"mt-5 text-2xl text-foreground sm:text-3xl",children:t("Ihr Termin steht","Your appointment is confirmed")}),e.jsx("p",{className:"mt-3 text-sm leading-relaxed text-muted-foreground",children:p?t(`Wir erwarten Sie am ${F(p.localDate??"",D)} um ${p.localTime??""} Uhr zum kostenlosen Seh
2test. Ihr Initiative-Platz ist damit gesichert.`,`We look forward to seeing you on ${F(p.localDate??"",D)} at ${p.localTime??""} for your free eye test. Your initiative spot is thereby secured.`):t("Ihr Initiative-Platz ist gesichert. Ihr Partneroptiker meldet sich telefonisch bei Ihnen.","Your initiative spot is secured. Your partner optician will call you.")}),i&&e.jsxs("div",{className:"mt-5 rounded-xl border border-primary bg-primary p-4 text-sm text-primary-foreground",children:[p&&e.jsxs("div",{className:"mb-2 font-display text-lg text-gold-soft",children:[F(p.localDate??"",D)," · ",p.localTime??"",t(" Uhr","")]}),e.jsx("div",{className:"font-display text-base",children:P(i.name)}),e.jsxs("div",{className:"mt-0.5 text-primary-foreground/75",children:[i.street," · ",i.postalCode," ",i.city]})]}),g?.eventId&&e.jsxs("div",{className:"mt-6 rounded-2xl bg-white p-5",children:[e.jsx("div",{className:"mb-3 text-[13px] font-semibold text-[#111827]",children:t("Termin aufs Handy sichern â und Erinnerung aktivieren","Save appointment to your phone â and enable reminders")}),e.jsx(Ct,{eventId:g.eventId,walletApple:!!g.walletAvailable,walletGoogle:!!g.walletAvailable,onCalendar:it}),e.jsxs("div",{className:"border-t border-[#e5e7eb] pt-3 text-[12px] leading-relaxed text-[#4b5563]",children:[t("Passt der Termin doch nicht? Bitte bis 24 Std. vorher","Appointment doesn't work after all? Please, at least 24 hours in advance,")," ",e.jsx($,{to:"/appointmentupdate/$param",params:{param:`event_id=${g.eventId}`},className:"font-semibold underline",children:t("verschieben","reschedule")})," ",t("â Ihr Initiative-Platz bleibt gültig.","â your initiative spot remains valid.")]})]}),e.jsxs("div",{className:"mt-4 rounded-xl border border-gold-deep/40 bg-gold-soft p-5 text-center",children:[e.jsx("div",{className:"text-[10px] font-semibold uppercase tracking-[0.18em] text-muted-foreground",children:t("Ihr Initiative-Gutschein","Your initiative coupon")}),e.jsx("div",{className:"mt-2 inline-block rounded-lg border border-dashed border-gold-deep/60 bg-card px-4 py-2.5 font-mono text-lg font-bold tracking-[0.16em] text-foreground",children:g?.couponCode||t("Gutscheincode folgt","Coupon code coming soon")}),e.jsxs("div",{className:"mt-2.5 text-[12px] text-muted-foreground",children:[t("Bitte beim Optiker vorlegen â er wird bei Ihrem Termin eingelöst und gilt nur für diesen wahrgenommenen Termin.","Please present it at the optician â it is redeemed at your appointment and is only valid for that kept appointment."),g?.couponCode?t(" ð¸ Machen Sie jetzt einen Screenshot."," ð¸ Take a screenshot now."):""]})]}),e.jsxs("div",{className:"mt-4 rounded-xl border border-medical-line bg-card p-4 text-sm text-muted-foreground",children:[t("Ihr Initiative-Preis:","Your initiative price:")," ",e.jsx("span",{className:"font-display text-lg text-gold-deep",children:t("fix 360 â
2¬ komplett","a fixed â¬360 in total")})," ",t("für beide STEINER ClearSight-Gläser, doppelseitig progressiv · Sehstärken-Schutz 24 Monate inklusive.","for both STEINER ClearSight lenses, dual-side progressive · 24-month prescription protection included.")]}),e.jsxs("p",{className:"mt-4 text-sm leading-relaxed text-muted-foreground",children:[C.trim()?t("Ihren Gutscheincode senden wir an Ihre E-Mail-Adresse.","We will send your coupon code to your email address."):t("Bitte machen Sie einen Screenshot von diesem Gutscheincode â Sie legen ihn beim Optiker vor.","Please take a screenshot of this coupon code â you present it at the optician."),A.trim()?J?t(" Ihre Erinnerung kommt am Vortag und kurz vor dem Termin per WhatsApp â Verschieben mit einem Klick."," Your reminder arrives the day before and shortly before the appointment via WhatsApp â reschedule with one click."):t(" Die Terminerinnerung kommt am Vortag auf Ihr Handy."," The appointment reminder will arrive on your phone the day before."):""]})]})]}),e.jsx("footer",{className:"border-t border-medical-line px-5 py-6",children:e.jsxs("div",{className:"mx-auto flex max-w-2xl flex-wrap items-center gap-5 text-xs text-muted-foreground",children:[e.jsxs("span",{children:["© ",new Date().getFullYear()," STEINER Vision"]}),e.jsx($,{to:"/impressum",className:"hover:text-foreground",children:t("Impressum","Legal notice")}),e.jsx($,{to:"/datenschutz",className:"hover:text-foreground",children:t("Datenschutz","Privacy policy")})]})})]})}const G="h-14 w-full rounded-xl border border-medical-line bg-card px-4 text-base text-foreground placeholder:text-muted-foreground focus:border-primary focus:outline-none focus:ring-2 focus:ring-gold/40";function R({label:j,children:b}){return e.jsxs("label",{className:"block",children:[e.jsx("span",{className:"mb-1.5 block text-[11px] font-semibold uppercase tracking-[0.16em] text-muted-foreground",children:j}),b]})}export{Jt 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.