PageSourceSearch

https://eco-booking-vert.vercel.app/_next/static/chunks/0u3j1t4a.8wiw.js

js eco-booking-vert.vercel.app collected 2026-10-03 06:50:14 UTC 51,024 bytes, 3 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,21849,e=>{"use strict";var t=e.i(43476),s=e.i(71645),a=e.i(53145),r=e.i(22016),n=e.i(25599),l=e.i(78727),i=e.i(64569),o=e.i(33581),d=e.i(67927),c=e.i(24071),m=e.i(27465),x=e.i(38393),h=e.i(69253);let u=["06:30","07:00","07:30","08:00","08:30","09:00","09:30","10:00","10:30","11:00","11:30","12:00","12:30","13:00","13:30","14:00","14:30","15:00","15:30","16:00","16:30","17:00","17:30"],g=["北海道","青森県","岩手県","宮城県","秋田県","山形県","福島県","茨城県","栃木県","群馬県","埼玉県","千葉県","東京都","神奈川県","新潟県","富山県","石川県","福井県","山梨県","長野県","岐阜県","静岡県","愛知県","三重県","滋賀県","京都府","大阪府","兵庫県","奈良県","和歌山県","鳥取県","島根県","岡山県","広島県","山口県","徳島県","香川県","愛媛県","高知県","福岡県","佐賀県","長崎県","熊本県","大分県","宮崎県","鹿児島県","沖縄県"],b={B:{ja:"スタンダードなママチャリ。平坦な道や短い距離の観光に最適です。",en:"Standard city bicycle. Perfect for flat roads and short-distance sightseeing.",tag:"軽快車・街乗り向け",enTag:"Standard / Easy Ride"},EA:{ja:"電動アシスト付き。急な坂道や長距離の移動でも疲れず快適です。",en:"Electric-assist bicycle. Extremely easy on uphill paths and long-distance sightseeing.",tag:"電動アシスト・坂道もラクラク",enTag:"Long Distance & Hills"},X:{ja:"スポーツタイプのクロスバイク。軽快なスピード感で京都を巡れます。",en:"Sporty cross bike. Great speed and responsiveness for riding around Kyoto.",tag:"スポーツモデル・長距離向け",enTag:"Sporty / Speedy"},MF:{ja:"前子乗せ付自転車。小さなお子様(適正身長100cm・体重15kgまで)と同乗可能です。",en:"Bicycle with front child seat. Suitable for toddlers up to 100cm height and 15kg weight.",tag:"前子乗せ付・小さなお子様向け",enTag:"Toddler (Max 15kg)"},MR:{ja:"後ろ子乗せ付自転車。お子様(適正身長115cm・体重22kgまで)と同乗可能です。",en:"Bicycle with rear child seat. Suitable for kids up to 115cm height and 22kg weight.",tag:"後ろ子乗せ付・安心設計",enTag:"Child (Max 22kg)"},EM:{ja:"電動アシスト付子乗せ自転車。坂道や長距離でもお子様とスイスイ進めます。",en:"Electric assist child seat bike. Easy carrying for kids even on uphills.",tag:"電動アシスト子乗せ・パパママに人気",enTag:"Electric / Family"},K:{ja:"キッズサイクル(22インチ)。身長125〜140cm位のお子様におすすめです。",en:"Kids bicycle (22 inches). Best suited for children approximately 125cm to 140cm in height.",tag:"ジュニア用・22インチ",enTag:"Junior (22-inch)"}};e.s(["default",0,function({locale:e="ja"}){var p;let f=h.translations[e],[j,y]=(0,s.useState)(!1),[N,v]=(0,s.useState)(null),[w,k]=(0,s.useState)(null),[D,M]=(0,s.useState)(""),[S,O]=(0,s.useState)(""),[L,T]=(0,s.useState)(1),[C,E]=(0,s.useState)([]),[$,P]=(0,s.useState)("cm"),[A,q]=(0,s.useState)([]),{register:F,handleSubmit:B,watch:K,setValue:R,control:z,trigger:I,formState:{errors:X}}=(0,a.useForm)({mode:"onTouched",defaultValues:{startDate:"",visitTime:"09:00",usageDays:1,returnLocation:"本店",accommodationName:"",earlyMorningOption:!1,nightOption:!1,morningPackOption:!1,luggageDelivery:0,luggageDestination:"",helmetCount:0,bikes:{B:0,EA:0,X:0,MR:0,MF:0,EM:0,K:0},name:"",nameKana:"",nationality:"",email:"",emailConfirm:"",phone:"",zipCode:"",pref:"en"===e?"Kyoto":"京都府",city:"",street:"",building:"",stayAccommodation:"",trigger:"",notes:""}}),H=K();(0,s.useEffect)(()=>{let e=H.bikes?.X||0;E(t=>{let s=[...t];if(s.length>e)return s.slice(0,e);for(;s.length<e;)s.push("");return s}),q(t=>{let s=[...t];if(s.length>e)return s.slice(0,e);for(;s.length<e;)s.push({ft:5,in:7});return s})},[H.bikes?.X]);let W=(e,t,s)=>{q(a=>a.map((a,r)=>
1r===e?{...a,[t]:s}:a))},J=async()=>{if(1===L){let t=D||(0,m.getMinStartDateString)(),s=S||(0,m.getMaxStartDateString)();if(H.startDate<t)return void alert("en"===e?"Reservations for the selected date are closed. (Cutoff is 17:00 JST on the previous day)":"選択された日程のご予約は締め切らせていただきました。(前日の17時締め切り)");if(H.startDate>s)return void alert("en"===e?"Reservations can only be made up to 30 days in advance.":"ご予約は30日先までの日程のみ選択可能です。");await I(["startDate","usageDays","returnLocation","accommodationName"])&&(T(2),window.scrollTo({top:0,behavior:"smooth"}))}else if(2===L){if(0===Object.entries(H.bikes||{}).filter(([e,t])=>t>0).length)return void alert(f.bikeRequiredError);let t=H.bikes?.X||0;if(t>0&&"cm"===$&&C.slice(0,t).some(e=>!e||100>Number(e)||Number(e)>250))return void alert("ja"===e?"クロスバイクご乗車予定者様の身長を正しくご入力ください(100cm〜250cm)。":"Please enter a valid height for all cross bike riders (100cm - 250cm).");await I(["luggageDelivery","luggageDestination","helmetCount"])&&(T(3),window.scrollTo({top:0,behavior:"smooth"}))}};(0,s.useEffect)(()=>{let e=(0,m.getMinStartDateString)(),t=(0,m.getMaxStartDateString)();M(e),O(t);let s=K("startDate");(!s||s<e||s>t)&&R("startDate",e)},[R,K]),(0,s.useEffect)(()=>{H.startDate&&(async()=>{try{let e=new URLSearchParams({startDate:H.startDate,usageDays:String(H.usageDays),morningPackOption:String(H.morningPackOption||!1),shop:"flagship"}),t=await fetch(`/api/inventory-status?${e}`),s=await t.json();s.success&&k(s.remainingStock)}catch(e){console.error("Failed to fetch stock info",e)}})()},[H.startDate,H.usageDays,H.morningPackOption]),(0,s.useEffect)(()=>{w&&H.bikes&&Object.entries(w).forEach(([e,t])=>{(H.bikes?.[e]||0)>t&&R(`bikes.${e}`,t)})},[w,H.bikes,R]),(0,s.useEffect)(()=>{if(H.zipCode&&H.zipCode.length>=7){let e=H.zipCode.replace("-","");7===e.length&&fetch(`https://zipcloud.ibsnet.co.jp/api/search?zipcode=${e}`).then(e=>e.json()).then(e=>{if(e.results&&e.results.length>0){let t=e.results[0];R("pref",t.address1),R("city",t.address2),R("street",t.address3)}})}},[H.zipCode,R]),(0,s.useEffect)(()=>{let e=["06:30","07:00","07:30","08:00","08:30"].includes(H.visitTime);e&&!H.earlyMorningOption?R("earlyMorningOption",!0):!e&&H.earlyMorningOption&&R("earlyMorningOption",!1)},[H.visitTime,R]),(0,s.useEffect)(()=>{u.indexOf(H.visitTime)>=u.indexOf("12:00")&&H.luggageDelivery>0&&R("luggageDelivery",0)},[H.visitTime,R]),(0,s.useEffect)(()=>{"四条烏丸店"===H.returnLocation&&H.nightOption&&R("nightOption",!1)},[H.returnLocation,R]),(0,s.useEffect)(()=>{H.nightOption&&H.morningPackOption&&R("morningPackOption",!1)},[H.nightOption,R]),(0,s.useEffect)(()=>{H.morningPackOption&&H.nightOption&&R("nightOption",!1)},[H.morningPackOption,R]);let _=(()=>{let e=Object.entries(H.bikes).filter(([e,t])=>t>0).map(([e,t])=>({type:e,count:t}));if(0===e.length)return null;let t={bikes:e,usageDays:H.usageDays,earlyMorningOption:H.earlyMorningOption,nightOption:H.nightOption,morningPackOption:H.morningPackOption,returnLocation:H.returnLocation,luggageDelivery:H.luggageDelivery,helmetCount:H.helmetCount};return(0,n.calculatePrice)(t)})(),V=_?_.total:0,U=(()=>{if(!H.startDate)return null;try{let t="en"===e?["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]:["日","月","火","水","木","金","土"],s=new Date(H.startDate);if(isNaN(s.getTime()))return null;let a=s.getFullYear(),r=s.getMonth()+1,n=s.getDate(),l=t[s.getDay()],i=H.visitTime,o=H.morningPackOption?H.usageDays:H.usageDays-1,d=new Date(H.startDate);d.setDate(d.getDate()+o);let c=d.getFullYear(),m=d.getMonth()+1,x=d.getDate(),h=t[d.getDay()],u=H.morningPackOption?"09:00":H.nightOption?"22:00":"18:00";if("en"===e){let e=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];return{start:`${l}, ${e[s.getMonth()]} ${n}, ${a} ${i}`,end:`${h}, ${e[d.getMonth()]} ${x}, ${c} ${u}`}}return{start:`${a}年${r}月${n}日(${l}) ${i}`,end:`${c}年${m}月${x}日(${h}) ${u}`}}catch(e){return null}})(),G=async t=>{if(3!==L)return;y(!0),v(null);let s=(0,m.getMinStartDateString)(),a=(0,m.getMaxStartDateString)();if(t.startDate<s){alert("en"===e?"Reservations for the selected date are closed. (Cutoff is 17:00 JST on the previous day)":"選択された日程のご予約は締め切らせていただきました。(前日の17時締め切り)"),y(!1);return}if(t.startDate>a){alert("en"===e?"Reservations can only be made up to 30 days in advance.":"ご予約は30日先までの日程のみ選択可能です。"),y(!1);return}let r=Object.entries(t.bikes).filter(([e,t])=>t>0).map(([e,t])=>({type:e,count:t}));if(0===r.length){alert(f.bikeRequiredError),y(!1);return}let n=t.notes||"",l=t.bikes?.X||0;if(l>0){let e="";e="cm"===$?C.slice(0,l).map((e,t)=>`${t+1}台目: ${e?`${e}cm`:"未入力"}`).join(", "):A.slice(0,l).map((e,t)=>{let s=e?.ft??5,a=e?.in??7,r=Math.round(30.48*s+2.54*a);return`${t+1}台目: ${s}ft ${a}in (${r}cm)`}).join(", ");let t=`【クロスバイク乗車予定者身長】 ${e}`;n=n?`${n}
2
3${t}`:t}let i={...t,notes:n,nameKana:"en"===e?"ENGLISH_FORM":t.nameKana,zipCode:"en"===e?t.zipCode||"000-0000":t.zipCode,pref:"en"===e?t.pref||"Kyoto":t.pref,city:"en"===e?t.city||"Kyoto-shi":t.city,street:"en"===e?t.street||"Overseas Customer":t.street,bikes:r,locale:e};try{let t=await fetch("/api/book",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)}),s=await t.json();t.ok?v({success:!0,message:f.successDesc}):v({success:!1,message:s.message||("en"===e?"An error occurred.":"エラーが発生しました。")})}catch(t){v({success:!1,message:"en"===e?"Connection error occurred.":"通信エラーが発生しました。"})}y(!1)},Y=u.indexOf(H.visitTime)>=u.indexOf("12:00"),Z=["06:30","07:00","07:30","08:00","08:30"].includes(H.visitTime),Q=t=>"ja"===e?n.BIKE_NAMES[t]||t:({B:"B-Type (City Cycle)",EA:"EA-Type (Electric Assist)",X:"X-Type (Cross Bike)",MF:"MF-Type (Front Child Seat Bike)",MR:"MR-Type (Rear Child Seat Bike)",EM:"EM-Type (Electric Child Seat Bike)",K:"K-Type (Kids Bike)"})[t]||t;return N?.success?(0,t.jsxs)("div",{className:"max-w-3xl mx-auto bg-white p-8 rounded-2xl shadow-xl text-center",children:[(0,t.jsx)("div",{className:"w-16 h-16 bg-green-100 text-green-500 rounded-full flex items-center justify-center mx-auto mb-4",children:(0,t.jsx)("svg",{className:"w-8 h-8",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})})}),(0,t.jsx)("h2",{className:"text-2xl font-bold text-gray-800 mb
3-4",children:f.successTitle}),(0,t.jsx)("p",{className:"text-gray-600",children:N.message})]}):(0,t.jsxs)("div",{className:"max-w-4xl mx-auto bg-white shadow-xl rounded-none sm:rounded-2xl overflow-hidden text-gray-800",children:[(0,t.jsxs)("div",{className:"bg-brand py-6 px-8 text-brand-foreground shadow-lg flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4",children:[(0,t.jsx)("div",{children:(0,t.jsx)("h1",{className:"text-2xl font-bold",children:f.formTitle})}),(0,t.jsxs)("div",{className:"flex items-center gap-1 bg-white/10 p-1 rounded-lg backdrop-blur-sm self-start sm:self-auto",children:[(0,t.jsx)(r.default,{href:"/booking",className:`px-3.5 py-1.5 rounded-md text-xs font-bold transition-all ${"ja"===e?"bg-white text-brand shadow-sm":"text-white hover:bg-white/10"}`,children:"日本語"}),(0,t.jsx)(r.default,{href:"/en/booking",className:`px-3.5 py-1.5 rounded-md text-xs font-bold transition-all ${"en"===e?"bg-white text-brand shadow-sm":"text-white hover:bg-white/10"}`,children:"English"})]})]}),(0,t.jsx)("div",{className:"max-w-xl mx-auto px-8 pt-8 pb-4",children:(0,t.jsxs)("div",{className:"flex items-center justify-between relative",children:[(0,t.jsx)("div",{className:"absolute left-0 top-4 w-full h-0.5 bg-gray-200 -z-10"}),(0,t.jsx)("div",{className:"absolute left-0 top-4 h-0.5 bg-brand transition-all duration-500 -z-10",style:{width:`${(L-1)/2*100}%`}}),(0,t.jsxs)("div",{className:"flex flex-col items-center gap-1.5 bg-white px-2",children:[(0,t.jsx)("div",{className:`w-8 h-8 rounded-full flex items-center justify-center font-bold text-sm transition-all duration-500 ${L>=1?"bg-brand text-white ring-4 ring-brand/20":"bg-gray-200 text-gray-500"}`,children:"1"}),(0,t.jsx)("span",{className:`text-xs font-bold transition-colors duration-500 ${L>=1?"text-brand":"text-gray-400"}`,children:"ja"===e?"日程・店舗":"Schedule"})]}),(0,t.jsxs)("div",{className:"flex flex-col items-center gap-1.5 bg-white px-2",children:[(0,t.jsx)("div",{className:`w-8 h-8 rounded-full flex items-center justify-center font-bold text-sm transition-all duration-500 ${L>=2?"bg-brand text-white ring-4 ring-brand/20":"bg-gray-200 text-gray-500"}`,children:"2"}),(0,t.jsx)("span",{className:`text-xs font-bold transition-colors duration-500 ${L>=2?"text-brand":"text-gray-400"}`,children:"ja"===e?"自転車・オプション":"Bikes & Options"})]}),(0,t.jsxs)("div",{className:"flex flex-col items-center gap-1.5 bg-white px-2",children:[(0,t.jsx)("div",{className:`w-8 h-8 rounded-full flex items-center justify-center font-bold text-sm transition-all duration-500 ${L>=3?"bg-brand text-white ring-4 ring-brand/20":"bg-gray-200 text-gray-500"}`,children:"3"}),(0,t.jsx)("span",{className:`text-xs font-bold transition-colors duration-500 ${L>=3?"text-brand":"text-gray-400"}`,children:"ja"===e?"お客様情報":"Customer Info"})]})]})}),(0,t.jsxs)("form",{onSubmit:B(G),onKeyDown:e=>{"Enter"===e.key&&"TEXTAREA"!==e.target.tagName&&(e.preventDefault(),L<3&&J())},className:"p-4 sm:p-8 space-y-8",children:[N&&!N.success&&(0,t.jsx)("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center p-6 z-[100]",children:(0,t.jsxs)("div",{className:"bg-white rounded-3xl p-8 max-w-sm w-full shadow-2xl transform transition-all animate-in fade-in zoom-in duration-300",children:[(0,t.jsx)("div",{className:"w-16 h-16 bg-red-100 text-red-500 rounded-full flex items-center justify-center mx-auto mb-6",children:(0,t.jsx)("svg",{className:"w-8 h-8",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})})}),(0,t.jsx)("h3",{className:"text-xl font-bold text-gray-900 text-center mb-2",children:"en"===e?"Stock Shortage":"在庫が不足しています"}),(0,t.jsx)("p",{className:"text-gray-600 text-center mb-8",children:N.message}),(0,t.jsx)("button",{type:"button",onClick:()=>v(null),className:"w-full bg-gray-900 text-white py-4 rounded-xl font-bold hover:bg-gray-800 transition-colors",children:"en"===e?"Close"
3:"確認して閉じる"})]})}),1===L&&(0,t.jsxs)("div",{className:"space-y-8 animate-in fade-in duration-300",children:[(0,t.jsxs)("div",{className:"bg-amber-50 border-l-4 border-amber-500 p-4 rounded-r-xl flex items-start gap-3",children:[(0,t.jsx)("svg",{className:"w-5 h-5 text-amber-500 shrink-0 mt-0.5",fill:"currentColor",viewBox:"0 0 20 20",children:(0,t.jsx)("path",{fillRule:"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",clipRule:"evenodd"})}),(0,t.jsx)("div",{children:(0,t.jsx)("p",{className:"text-amber-800 font-bold text-sm sm:text-base leading-relaxed",children:f.shopAlertMain})})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:"text-xl font-semibold border-b pb-2 mb-4 text-brand",children:f.step1Title}),(0,t.jsx)("p",{className:"text-yellow-600 font-bold text-sm mb-4 leading-relaxed",children:f.step1Notice}),(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("label",{className:"block text-sm font-medium mb-1",children:[f.startDate," ",(0,t.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,t.jsx)("input",{type:"date",min:D,max:S,...F("startDate",{required:!0,validate:{inRange:t=>{if(!t)return!0;let s=D||(0,m.getMinStartDateString)(),a=S||(0,m.getMaxStartDateString)();return t<s?"en"===e?"Selected date is closed.":"前日17時締め切りを過ぎています。":!(t>a)||("en"===e?"Reservations can only be made up to 30 days in advance.":"ご予約は30日先までの日程のみ選択可能です。")}}}),className:"w-full border-gray-300 rounded-lg shadow-sm focus:ring-brand focus:border-brand"}),X.startDate&&(0,t.jsx)("p",{className:"text-red-500 text-xs mt-1",children:X.startDate.message||f.requiredError})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("label",{className:"block text-sm font-medium mb-1",children:[f.visitTime," ",(0,t.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,t.jsx)("select",{...F("visitTime"),className:"w-full border-gray-300 rounded-lg shadow-sm focus:ring-brand focus:border-brand",children:u.map(e=>(0,t.jsx)("option",{value:e,children:e},e))}),"08:30"===H.visitTime&&(0,t.jsx)("p",{className:"text-yellow-600 text-xs mt-1 font-bold leading-relaxed",children:"ja"===e?"8:30〜9:00の間は、オープン準備およびスタッフミーティングを行うため、受付ができません。8:30の受付をご希望のお客様は、必ず8:30までにご来店くださいますようお願いいたします。時間を過ぎてしまわれた場合は、受付を9:00までお待ちいただくことになりますので、予めご了承ください。":"Please note that we cannot process check-ins between 8:30 and 9:00 AM due to opening preparation and staff meetings. If you wish to check in at 8:30 AM, please make sure to arrive by 8:30 AM. Otherwise, you will have to wait until 9:00 AM for check-in."})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("label",{className:"block text-sm font-medium mb-1",children:[f.usageDays," ",(0,t.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,t.jsx)("div",{className:"flex items-center",children:(0,t.jsx)("select",{...F("usageDays",{valueAsNumber:!0}),className:"w-full border-gray-300 rounded-lg shadow-sm focus:ring-brand focus:border-brand",children:Array.from({length:31},(e,t)=>t+1).map(e=>(0,t.jsxs)("option",{value:e,children:[e," ",f.usageDaysSuffix]},e))})}),X.usageDays&&(0,t.jsx)("p",{className:"text-red-500 text-xs mt-1",children:f.requiredError})]})]})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:"text-xl font-semibold border-b pb-2 mb-4 text-brand",children:"ja"===e?"返却場所の選択":"Return Location"}),(0,t.jsx)("div",{className:"space-y-6",children:(0,t.jsxs)("div",{children:[(0,t.jsxs)("label",{className:"block text-sm font-medium mb-2",children:[f.returnLocation," ",(0,t.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,t.jsx)("div",{className:"flex flex-wrap gap-4",children:["本店","四条烏丸店","宿泊先"].map(e=>{let s="本店"===e?f.returnLocationOptionMain:"四条烏丸店"===e?f.returnLocationOptionShijo:f.returnLocationOptionHotel;return(0,t.jsxs)("label",{className:`flex items-center p-3 border-2 rounded-lg cursor-pointer transition-all ${H.returnLocation===e?"border-brand bg-brand text-white shadow-md":"border-gray-200 hover:bg-gray-50"}`,children:[(0,t.jsx)("input",{type:"radio",value:e,...F("returnLocation"),className:"hidden"}),(0,t.jsx)("span",{className:"ml-2 font-bold",children:s})]},e)})}),"宿泊先"===H.returnLocation&&(0,t.jsxs)("div",{className:"mt-3 bg-yellow-50 p-4 rounded-lg border border-yellow-200",children:[(0,t.jsx)("p",{className:"text-yellow-800 text-sm font-medium",children:"ja"===e?"※宿泊先を選択された方へ:":"Notice for Hotel Return:"}),(0,t.jsx)("p",{className:"text-yellow-700 text-sm mt-1",children:f.hotelDestinationWarning}),(0,t.jsx)("input",{type:"text",...F("accommodationName",{required:"宿泊先"===H.returnLocation}),placeholder:f.hotelNamePlaceholder,className:"mt-2 w-full border-gray-300 rounded-lg shadow-sm focus:ring-yellow-500 focus:border-yellow-500"}),X.accommodationName&&(0,t.jsx)("p",{className:"text-red-500 text-xs mt-1",children:f.requiredError})]}),"四条烏丸店"===H.returnLocation&&(0,t.jsx)("div",{className:"mt-3 bg-blue-50 p-4 rounded-lg border border-blue-200 text-blue-700 text-sm space-y-1.5 leading-relaxed",children:"ja"===e?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"font-semibold text-blue-800",children:"※こちらのオプションを選択された場合、ご返却場所は京都駅本店ではなく、「京都ecoトリップ四条烏丸店」となります。"}),(0,t.jsx)("p",{children:"※四条烏丸店は18時完全閉店のため、夜間オプションとの併用はできません。"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"font-semibold text-blue-800",children:'*If you select this option, the return location will be "Kyoto eco Trip Shijo Karasuma Shop" instead of the Kyoto Station Main Shop.'}),(0,t.jsx)("p",{children:"*Shijo Karasuma Shop closes at 6:00 PM. Late Return Option is not available."})]})})]})})]})]}),2===L&&(0,t.jsxs)("div",{className:"space-y-8 animate-in fade-in duration-300",children:[(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:"text-xl font-semibold border-b pb-2 mb-4 text-brand",children:f.bikesSelection}),(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:Object.entries(n.BIKE_NAMES).map(([s,a])=>{let r=H.bikes?.[s]||0,d=Math.max(0,Math.min(w?w[s]??25:25,25)),c=r>0,m=b[s];return(0,t.jsxs)("div",{className:`border-2 rounded-2xl transition-all p-5 flex flex-col justify-between ${c?"border-brand bg-brand/5 shadow-md shadow-brand/5":"border-gray-200 hover:border-brand/50 hover:bg-gray-50"}`,children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"flex items-start justify-between mb-3",children:(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(e=>{switch(e){case"EA":case"EM":return(0,t.jsx)("div",{className:"p-2.5 bg-amber-50 text-amber-500 rounded-2xl",children:(0,t.jsx)(i.Zap,{className:"w-5 h-5 fill-current"})});case"MF":case"MR":return(0,t.jsx)("div",{className:"p-2.5 bg-emerald-50 text-emerald-500 rounded-2xl",children:(0,t.jsx)(o.Baby,{className:"w-5 h-5"})});case"X":return(0,t.jsx)("div",{className:"p-2.5 bg-blue-50 text-blue-500 rounded-2xl",children:(0,t.jsx)(l.Bike,{className:"w-5 h-5"})});case"K":return(0,t.jsx)("div",{className:"p-2.5 bg-purple-50 text-purple-500 rounded-2xl",children:(0,t.jsx)(l.Bike,{className:"w-5 h-5"})});default:return(0,t.jsx)("div",{className:"p-2.5 bg-gray-50 text-gray-500 rounded-2xl",children:(0,t.jsx)(l.Bike,{className:"w-5 h-5"})})}})(s),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-xs font-bold text-brand uppercase tracking-wider",children:"ja"===e?m.tag:m.enTag}),(0,t.jsx)("div",{className:"font-bold text-gray-900 text-lg leading-tight mt-0.5",children:Q(s)})]})]})}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mb-4 leading-relaxed min-h-[40px]",children:"ja"===e?m.ja:m.en})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between pt-4 border-t border-gray-100 gap-4 mt-auto",children:[(0,t.jsxs)("div",{className:"text-emerald-600 font-bold text-sm",children:["¥ ",n.BIKE_PRICES[s].toLocaleStr
3ing(),"ja"===e?"円 / 日":" JPY / Day"]}),(0,t.jsx)("div",{className:"w-24",children:(0,t.jsx)("select",{...F(`bikes.${s}`,{valueAsNumber:!0}),className:`w-full border-gray-300 rounded-lg shadow-sm focus:ring-brand focus:border-brand bg-white text-sm py-1.5 ${c?"font-bold text-brand border-brand":"text-gray-700"}`,children:Array.from({length:d+1},(e,t)=>t).map(e=>(0,t.jsxs)("option",{value:e,children:[e," ",f.bikeCountSuffix]},e))})})]}),r>0&&("MR"===s||"EM"===s)&&(0,t.jsx)("div",{className:"mt-4 text-[11px] text-red-600 font-bold bg-red-50 border border-red-100 p-2.5 rounded-xl leading-relaxed",children:"ja"===e?"※後ろシートの適正身長は115cmまでです。115cmを超えるお子様の場合は、安全のためご利用をお断りさせていただく場合がございます。":"*The recommended height for the rear seat is up to 115 cm. For safety, we may refuse rental if the child exceeds 115 cm."}),r>0&&"MF"===s&&(0,t.jsx)("div",{className:"mt-4 text-[11px] text-red-600 font-bold bg-red-50 border border-red-100 p-2.5 rounded-xl leading-relaxed",children:"ja"===e?"※前シートの適正身長は100cmまでです。100cmを超えるお子様の場合は、安全のためご利用をお断りさせていただく場合がございます。":"*The recommended height for the front seat is up to 100 cm. For safety, we may refuse rental if the child exceeds 100 cm."}),r>0&&"K"===s&&(0,t.jsx)("div",{className:"mt-4 text-[11px] text-blue-700 font-semibold bg-blue-50 border border-blue-100 p-2.5 rounded-xl leading-relaxed",children:"ja"===e?"※Kタイプは22インチです。身長125cm〜140cm位のお子様におすすめです。":"*K-Type is 22 inches. Recommended for children with a height of approximately 125cm to 140cm."}),r>0&&"X"===s&&(0,t.jsxs)("div",{className:"mt-4 p-4 bg-blue-50 border border-blue-100 rounded-2xl space-y-3",children:[(0,t.jsx)("p",{className:"text-xs text-blue-700 font-bold leading-relaxed",children:"ja"===e?"※クロスバイクは複数のフレームサイズをご用意しております。お客様の体型に最適な自転車をご準備させていただくため、ご乗車予定のお客様の身長のご入力にご協力をお願いいたします。":"*Cross bikes are available in multiple frame sizes. To help us prepare the best fitting bicycle for you, please enter the height of each rider."}),"en"===e&&(0,t.jsxs)("div",{className:"flex items-center gap-2 pb-1 border-b border-blue-100/50",children:[(0,t.jsx)("span",{className:"text-xs text-gray-500 font-bold",children:"Unit:"}),(0,t.jsxs)("div",{className:"flex bg-blue-100/60 rounded-lg p-0.5 text-xs",children:[(0,t.jsx)("button",{type:"button",onClick:()=>P("cm"),className:`px-2.5 py-0.5 rounded-md font-bold transition-all ${"cm"===$?"bg-white text-brand shadow-sm":"text-blue-600 hover:text-blue-800"}`,children:"cm"}),(0,t.jsx)("button",{type:"button",onClick:()=>P("ft"),className:`px-2.5 py-0.5 rounded-md font-bold transition-all ${"ft"===$?"bg-white text-brand shadow-sm":"text-blue-600 hover:text-blue-800"}`,children:"ft/in"})]})]}),(0,t.jsx)("div",{className:"space-y-2",children:Array.from({length:r},(s,a)=>(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-xs font-semibold text-gray-600",children:"ja"===e?`【 ${a+1}台目 】`:`【 Rider ${a+1} 】`}),"cm"===$?(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("input",{type:"number",min:100,max:250,required:!0,placeholder:"170",value:C[a]||"",onChange:e=>{var t;return t=e.target.value,void E(e=>{let s=[...e];return s[a]=t,s})},className:"w-20 border-gray-300 rounded-lg text-sm px-2 py-1 focus:ring-brand focus:border-brand"}),(0,t.jsx)("span",{className:"text-xs font-bold text-gray-500",children:"cm"})]}):(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("select",{value:A[a]?.ft??5,onChange:e=>W(a,"ft",Number(e.target.value)),className:"border-gray-300 rounded-lg text-xs px-2 py-1 focus:ring-brand focus:border-brand bg-white",children:[3,4,5,6,7].map(e=>(0,t.jsxs)("option",{value:e,children:[e," ft"]},e))}),(0,t.jsx)("select",{value:A[a]?.in??7,onChange:e=>W(a,"in",Number(e.target.value)),className:"border-gray-300 rounded-lg text-xs px-2 py-1 focus:ring-brand focus:border-brand bg-white",children:[0,1,2,3,4,5,6,7,8,9,10,11].map(e=>(0,t.jsxs)("option",{value:e,children:[e," in"]},e))}),(0,t.jsxs)("span",{className:"text-[10px] text-gray-500 font-bold ml-1",children:["(approx. ",Math.round((A[a]?.ft??5)*30.48+(A[a]?.in??7)*2.54)," cm)"]})]})]},a))})]})]},s)})})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:"text-xl font-semibold border-b pb-2 mb-4 text-brand",children:f.optionsTitle}),(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:`flex items-center p-4 border-2 rounded-lg transition-all ${H.earlyMorningOption?"border-brand bg-brand text-white shadow-md":"border-gray-200 bg-gray-50 opacity-60"}`,children:[(0,t.jsx)("div",{className:"w-6 h-6 rounded-md border flex items-center justify-center mr-3 bg-white/20 border-white/30",children:H.earlyMorningOption&&(0,t.jsx)("svg",{className:"w-4 h-4 text-white",f
3ill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:3,d:"M5 13l4 4L19 7"})})}),(0,t.jsxs)("div",{className:"ml-1",children:[(0,t.jsx)("span",{className:"font-bold",children:f.earlyMorningOptionLabel}),(0,t.jsx)("p",{className:`text-xs mt-1 ${H.earlyMorningOption?"text-white/80":"text-gray-500"}`,children:"ja"===e?Z?"6:30〜8:30のご来店のため自動適用されています。":"9:00以降のご来店のため適用されません。":Z?"Automatically applied for arrival between 6:30 and 8:30 AM.":"Not applicable for arrival at or after 9:00 AM."})]})]}),(0,t.jsxs)("label",{className:`flex items-center p-4 border-2 rounded-lg cursor-pointer transition-all ${"四条烏丸店"===H.returnLocation?"opacity-40 bg-gray-100 border-gray-200 cursor-not-allowed":H.nightOption?"border-brand bg-brand text-white shadow-md":"border-gray-200 hover:bg-gray-50"}`,children:[(0,t.jsx)("input",{type:"checkbox",...F("nightOption"),disabled:"四条烏丸店"===H.returnLocation||H.morningPackOption,className:"hidden"}),(0,t.jsx)("div",{className:"w-6 h-6 rounded-md border flex items-center justify-center mr-3 bg-white/20 border-white/30",children:H.nightOption&&(0,t.jsx)("svg",{className:"w-4 h-4 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:3,d:"M5 13l4 4L19 7"})})}),(0,t.jsxs)("div",{className:"ml-1",children:[(0,t.jsx)("span",{className:"font-bold",children:f.nightOptionLabel}),(0,t.jsx)("p",{className:`text-xs mt-1 ${H.nightOption?"text-white/80":"text-gray-500"}`,children:f.nightOptionDesc})]})]}),(0,t.jsxs)("label",{className:`flex items-center p-4 border-2 rounded-lg cursor-pointer transition-all ${H.nightOption?"opacity-40 bg-gray-100 border-gray-200 cursor-not-allowed":H.morningPackOption?"border-brand bg-brand text-white shadow-md":"border-gray-200 hover:bg-gray-50"}`,children:[(0,t.jsx)("input",{type:"checkbox",...F("morningPackOption"),disabled:H.nightOption,className:"hidden"}),(0,t.jsx)("div",{className:"w-6 h-6 rounded-md border flex items-center justify-center mr-3 bg-white/20 border-white/30",children:H.morningPackOption&&(0,t.jsx)("svg",{className:"w-4 h-4 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:3,d:"M5 13l4 4L19 7"})})}),(0,t.jsxs)("div",{className:"ml-1",children:[(0,t.jsx)("span",{className:"font-bold",children:f.morningPackOptionLabel}),(0,t.jsx)("p",{className:`text-xs mt-1 ${H.morningPackOption?"text-white/80":"text-gray-500"}`,children:f.morningPackOptionDesc})]})]})]}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-sm font-medium mb-1",children:f.luggageDeliveryLabel}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mb-1",children:f.luggageDeliveryDesc}),(0,t.jsxs)("select",{...F("luggageDelivery",{valueAsNumber:!0}),disabled:Y,className:`w-full border-gray-300 rounded-lg shadow-sm focus:ring-brand focus:border-brand ${Y?"bg-gray-100":""}`,children:[(0,t.jsx)("option",{value:0,children:"ja"===e?"なし":"None"}),[1,2,3,4,5,6,7,8].map(s=>(0,t.jsxs)("option",{value:s,children:[s,"ja"===e?"個":" item(s)"," (+","ja"===e?`${1e3*s}円`:`\xa5${(1e3*s).toLocaleString()}`,")"]},s))]}),Y&&(0,t.jsx)("p",{className:"text-red-500 text-xs mt-1",children:"ja"===e?"荷物配達は12:00までの受付となります。":"Luggage delivery is only available for check-ins before 12:00 PM."}),!Y&&H.luggageDelivery>0&&(0,t.jsx)("p",{className:"text-yellow-600 text-xs mt-1",children:"ja"===e?"※受付は12時までです。必ず12時までにご来店ください。":"*Must check in by 12:00 PM to use luggage delivery."})]}),H.luggageDelivery>0&&(0,t.jsxs)("div",{className:"space-y-3 mt-3",children:[(0,t.jsx)("div",{className:"bg-yellow-50 border border-yellow-200 text-yellow-800 p-4 rounded-lg text-xs leading-relaxed",children:"ja"===e?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"font-bold text-sm",children:"【重要】お荷物配達サービスの対象について"}),(0,t.jsxs)("p",{className:"mt-1.5",children:["本サービスは ",(0,t.jsx)("a",{href:"https://delivery-service.jp/list/list.pdf",target:"_blank",rel:"noopener noreferrer",className:"underline text-blue-600 font-bold hover:text-blue-800",children:"こちらの提携ホテル一覧(PDF)"})," に記載されているホテルのみ対応可能です。"]}),(0,t.jsx)("p",{className:"mt-1.5 font-bold text-red-700",children:"※一覧に記載がないホテルの場合は、お荷物のお届けができない場合がございますので予めご了承ください。"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"font-bold text-sm",children:"[Important] Eligible Hotels for Luggage Delivery"}),(0,t.jsxs)("p",{className:"mt-1.5",children:["This service is only available for hotels listed in ",(0,t.jsx)("a",{href:"https://delivery-service.jp/list/list.pdf",target:"_blank",rel:"noopener noreferrer",className:"underline text-blue-600 font-bold hover:text-blue-800",children:"this Partner Hotel List (PDF)"}),"."]}),(0,t.jsx)("p",{className:"mt-1.5 font-bold text-red-700",children:"*Please note that we may 
3not be able to deliver your luggage to hotels not included in this list."})]})}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("label",{className:"block text-sm font-medium mb-1",children:[f.luggageDestinationLabel," ",(0,t.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,t.jsx)("input",{type:"text",...F("luggageDestination",{required:H.luggageDelivery>0}),placeholder:f.luggageDestinationPlaceholder,className:"w-full border-gray-300 rounded-lg shadow-sm focus:ring-brand focus:border-brand"}),X.luggageDestination&&(0,t.jsx)("p",{className:"text-red-500 text-xs mt-1",children:f.requiredError})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-sm font-medium mb-1",children:f.helmetCountLabel}),(0,t.jsx)("p",{className:"text-xs text-gray-500 mb-1",children:f.helmetDesc}),(0,t.jsxs)("select",{...F("helmetCount",{valueAsNumber:!0}),className:"w-full border-gray-300 rounded-lg shadow-sm focus:ring-brand focus:border-brand",children:[(0,t.jsx)("option",{value:0,children:"ja"===e?"なし":"None"}),[1,2,3,4,5,6,7,8].map(s=>(0,t.jsxs)("option",{value:s,children:[s,"ja"===e?"個":" unit(s)"," (+","ja"===e?`${200*s}円/日/個`:`\xa5${200*s}/day/unit`,")"]},s))]})]})]})]})]})]}),3===L&&(0,t.jsx)("div",{className:"space-y-8 animate-in fade-in duration-300",children:(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:"text-xl font-semibold border-b pb-2 mb-4 text-brand",children:f.step3Title}),(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("label",{className:"block text-sm font-medium mb-1",children:[f.customerName," ",(0,t.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,t.jsx)("input",{type:"text",...F("name",{required:!0}),placeholder:f.customerNamePlaceholder,className:"w-full border-gray-300 rounded-lg shadow-sm focus:ring-brand focus:border-brand"}),X.name&&(0,t.jsx)("p",{className:"text-red-500 text-xs mt-1",children:f.requiredError})]}),"en"===e&&(0,t.jsxs)("div",{children:[(0,t.jsxs)("label",{className:"block text-sm font-medium mb-1",children:[f.nationality," ",(0,t.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,t.jsx)("input",{type:"text",...F("nationality",{required:"en"===e}),placeholder:f.nationalityPlaceholder,className:"w-full border-gray-300 rounded-lg shadow-sm focus:ring-brand focus:border-brand"}),X.nationality&&(0,t.jsx)("p",{className:"text-red-500 text-xs mt-1",children:f.requiredError})]}),"ja"===e&&(0,t.jsxs)("div",{children:[(0,t.jsxs)("label",{className:"block text-sm font-medium mb-1",children:[f.nameKana," ",(0,t.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,t.jsx)("input",{type:"text",...F("nameKana",{required:!0,pattern:/^[ァ-ンヴー\s]*$/}),placeholder:f.nameKanaPlaceholder,className:"w-full border-gray-300 rounded-lg shadow-sm focus:ring-brand focus:border-brand"}),X.nameKana&&(0,t.jsx)("p",{className:"text-red-500 text-xs mt-1",children:"pattern"===X.nameKana.type?f.kanaError:f.requiredError})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("label",{className:"block text-sm font-medium mb-1",children:[f.email," ",(0,t.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,t.jsx)("input",{type:"email",...F("email",{required:!0,pattern:/^[^\s@]+@[^\s@]+\.[^\s@]+$/}),placeholder:f.emailPlaceholder,className:"w-full border-gray-300 rounded-lg shadow-sm focus:ring-brand focus:border-brand"}),X.email&&(0,t.jsx)("p",{className:"text-red-500 text-xs mt-1",children:"pattern"===X.email.type?f.emailError:f.requiredError})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("label",{className:"block text-sm font-medium mb-1",children:[f.emailConfirm," ",(0,t.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,t.jsx)("input",{type:"email",...F("emailConfirm",{required:!0,validate:e=>e===K("email")||f.emailMismatchError}),onPaste:t=>{t.preventDefault(),alert("ja"===e?"メールアドレスの入力間違いを防ぐため、確認用欄はコピー&ペーストせず直接ご入力をお願いいたします。":"Please type your email directly without copying and pasting to prevent errors.")},placeholder:f.emailConfirmPlaceholder,className:"w-full border-gray-300 rounded-lg shadow-sm focus:ring-brand focus:border-brand"}),X.emailConfirm&&(0,t.jsx)("p",{className:"text-red-500 text-xs mt-1",children:X.emailConfirm.message||("required"===X.emailConfirm.type?f.requiredError:f.emailMismatchError)})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("label",{className:"block text-sm font-medium mb-1",children:[f.phone," ",(0,t.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,t.jsx)("input",{type:"tel",...F("phone",{required:!0,pattern:/^[0-9+]{7,15}$/}),placeholder:f.phonePlaceholder,className:"w-full border-gray-300 rounded-lg shadow-sm focus:ring-brand focus:border-brand"}),X.phone&&(0,t.jsx)("p",{className:"text-red-500 text-xs mt-1",children:"pattern"===X.phone.type?f.phoneError:f.requiredError})]}),"ja"===e?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"col-span-1 md:col-span-2",children:[(0,t.jsxs)("label",{className:"block text-sm font-medium mb-1",children:[f.zipCode," ",(0,t.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,t.jsxs)("div",{className:"flex gap-2 w-full md:w-1/2",children:[(0,t.jsx)("input",{type:"text",placeholder:f.zipCodePlaceholder,...F("zipCode",{required:!0,pattern:/^[0-9]{3}-?[0-9]{4}$|^[0-9]{7}$/}),className:"flex-1 border-gray-300 rounded-lg shadow-sm focus:ring-brand focus:border-brand"}),(0,t.jsx)("span",{className:"text-xs text-gray-500 self-center",children:"自動入力されます"})]}),X.zipCode&&(0,t.jsx)("p",{className:"text-red-500 text-xs mt-1",children:"pattern"===X.zipCode.type?f.zipCodeError:f.requiredError})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("label",{className:"block text-sm font-medium mb-1",children:[f.pref," ",(0,t.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,t.jsx)("select",{...F("pref",{required:!0}),className:"w-full border-gray-300 rounded-lg shadow-sm focus:ring-brand focus:border-brand",children:g.map(e=>(0,t.jsx)("option",{value:e,children:e},e))}),X.pref&&(0,t.jsx)("p",{className:"text-red-500 text-xs mt-1",children:f.requiredError})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("label",{className:"block text-sm font-medium mb-1",children:[f.city," ",(0,t.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,t.jsx)("input",{type:"text",...F("city",{required:!0}),placeholder:f.cityPlaceholder,className:"w-full border-gray-300 rounded-lg shadow-sm focus:ring-brand focus:border-brand"}),X.city&&(0,t.jsx)("p",{className:"text-red-500 text-xs mt-1",children:f.requiredError})]}),(0,t.jsxs)("div",{className:"col-span-1 md:col-span-2",children:[(0,t.jsxs)("label",{className:"block text-sm font-medium mb-1",children:[f.street," ",(0,t.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,t.jsx)("input",{type:"text",...F("street",{required:!0}),placeholder:f.streetPlaceholder,className:"w-full border-gray-300 rounded-lg shadow-sm focus:ring-brand focus:border-brand"}),X.street&&(0,t.jsx)("p",{className:"text-red-500 text-xs mt-1",children:f.requiredError})]}),(0,t.jsxs)("div",{className:"col-span-1 md:col-span-2",children:[(0,t.jsx)("label",{className:"block text-sm font-medium mb-1",children:f.building}),(0,t.jsx)("input",{type:"text",...F("building"),placeholder:f.buildingPlaceholder,className:"w-full border-gray-300 rounded-lg shadow-sm focus:ring-brand focus:border-brand"})]}),(0,t.jsxs)("div",{className:"col-span-1 md:col-span-2",children:[(0,t.jsx)("label",{className:"block text-sm font-medium mb-1",children:H.usageDays>=2||H.morningPackOption?(0,t.jsxs)(t.Fragment,{children:[f.stayAccommodationLabel," ",(0,t.jsx)("span",{className:"text-red-500",children:"*"})," ",(0,t.jsx)("span",{className:"text-xs text-amber-600 font-normal",children:f.stayAccommodationNote2Days})]}):(0,t.jsxs)(t.Fragment,{children:[f.stayAccommodationLabel," ",(0,t.jsx)("span",{className:"text-xs text-gray-500 font-normal",children:f.stayAccommodationNote1Day})]})}),(0,t.jsx)("input",{type:"text",...F("stayAccommodation",{required:H.usageDays>=2||H.morningPackOption}),placeholder:f.stayAccommodationPlaceholder,className:"w-full border-gray-300 rounded-lg shadow-sm focus:ring-brand focus:border-brand"}),X.stayAccommodation&&(0,t.jsx)("p",{className:"text-red-500 text-xs mt-1",children:f.requiredError})]})]}):(0,t.jsxs)("div",{className:"col-span-1 md:col-span-2",children:[(0,t.jsxs)("label",{className:"block text-sm font-medium mb-1",children:[f.building," ",(0,t.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,t.jsx)("input",{type:"text",...F("building",{required:!0}),placeholder:f.buildingPlaceholder,className:"w-full border-gray-300 rounded-lg shadow-sm focus:ring-brand focus:border-brand"}),X.building&&(0,t.jsx)("p",{className:"text-red-500 text-xs mt-1",children:f.requiredError})]}),(0,t.jsxs)("div",{className:"col-span-1 md:col-span-2",children:[(0,t.jsxs)("label",{className:"block text-sm font-medium mb-1",children:[f.trigger," ",(0,t.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,t.jsxs)("select",{...F("trigger",{required:!0}),className:"w-full border-gray-300 rounded-lg shadow-sm focus:ring-brand focus:border-brand",children:[(0,t.jsx)("option",{value:"",children:f.triggerPlaceholder}),f.triggerOptions.map(e=>(0,t.jsx)("option",{value:e,children:e},e))]}),X.trigger&&(0,t.jsx)("p",{className:"text-red-500 text-xs mt-1",children:f.requiredError})]}),(0,t.jsxs)("div",{className:"col-span-1 md:col-span-2",children:[(0,t.jsx)("label",{className:"block text-sm font-medium mb-1",children:f.notes}),(0,t.jsx)("textarea",{...F("notes"),rows:4,className:"w-full border-gray-300 rounded-lg shadow-sm focus:ring-brand focus:border-brand",placeholder:f.notesPlaceholder})]})]})]})}),(0,t.jsxs)("div",{className:"sticky bottom-0 sm:bottom-4 -mx-4 sm:mx-0 bg-gray-900 text-white px-2.5 py-4 sm:p-6 rounded-t-2xl sm:rounded-2xl shadow-2xl z-50",children:[(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsxs)("h3",{className:"text-xs font-bold text-gray-400 uppercase mb-3 tracking-wider flex items-center gap-2",children:[(0,t.jsx)("svg",{className:"w-4 h-4 text-brand",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 7h6m0 10v-3m-3 3h.01M9 17h.01M9 14h.01M12 14h.01M15 11h.01M12 11h.01M9 11h.01M7 21h10a2 2 0 002-2V5a2 2 0 00-2-2H7a2 2 0 00-2 2v14a2 2 0 002 2z"})}),f.priceBreakdownTitle]}),_?(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-x-12 gap-y-2 text-sm border-b border-white/10 pb-4 mb-4",children:[_.bikeTotal>0&&(0,t.jsx)(t.Fragment,{children:Object.entries(H.bikes||{}).filter(([e,t])=>t>0).map(([s,a])=>{let r=(n.BIKE_PRICES[s]||0)*a*H.usageDays;return(0,t.jsxs)("div",{className:"flex justify-between items-center text-gray-300",children:[(0,t.jsxs)("span",{children:[Q(s)," (",a,"ja"===e?"台":" unit(s)"," / ",H.usageDays,f.usageDaysSuffix,")"]}),(0,t.jsxs)("span",{className:"font-mono",children:["¥ ",r.toLocaleStr
3ing()]})]},s)})}),_.earlyMorningTotal>0&&(0,t.jsxs)("div",{className:"flex justify-between items-center text-gray-300",children:[(0,t.jsx)("span",{children:f.earlyMorningFeeLabel}),(0,t.jsxs)("span",{className:"font-mono",children:["¥ ",_.earlyMorningTotal.toLocaleString()]})]}),_.nightTotal>0&&(0,t.jsxs)("div",{className:"flex justify-between items-center text-gray-300",children:[(0,t.jsx)("span",{children:f.nightFeeLabel}),(0,t.jsxs)("span",{className:"font-mono",children:["¥ ",_.nightTotal.toLocaleString()]})]}),_.morningPackTotal>0&&(0,t.jsxs)("div",{className:"flex justify-between items-center text-gray-300",children:[(0,t.jsx)("span",{children:f.morningPackFeeLabel}),(0,t.jsxs)("span",{className:"font-mono",children:["¥ ",_.morningPackTotal.toLocaleString()]})]}),_.returnFeeTotal>0&&(0,t.jsxs)("div",{className:"flex justify-between items-center text-gray-300",children:[(0,t.jsxs)("span",{children:[f.returnFeeLabel," (","本店"===H.returnLocation?f.returnLocationOptionMain:"四条烏丸店"===H.returnLocation?f.returnLocationOptionShijo:f.returnLocationOptionHotel,")"]}),(0,t.jsxs)("span",{className:"font-mono",children:["¥ ",_.returnFeeTotal.toLocaleString()]})]}),_.luggageTotal>0&&(0,t.jsxs)("div",{className:"flex justify-between items-center text-gray-300",children:[(0,t.jsxs)("span",{children:[f.luggageFeeLabel," (",H.luggageDelivery," ","ja"===e?"個":"item(s)",")"]}),(0,t.jsxs)("span",{className:"font-mono",children:["¥ ",_.luggageTotal.toLocaleString()]})]}),_.helmetTotal>0&&(0,t.jsxs)("div",{className:"flex justify-between items-center text-gray-300",children:[(0,t.jsxs)("span",{children:[f.helmetFeeLabel," (",H.helmetCount," ","ja"===e?"個":"unit(s)",")"]}),(0,t.jsxs)("span",{className:"font-mono",children:["¥ ",_.helmetTotal.toLocaleString()]})]}),_.discountTotal>0&&(0,t.jsxs)("div",{className:"flex justify-between items-center text-emerald-400",children:[(0,t.jsx)("span",{children:(p=_.discountName,"ja"===e?p:p.includes("連日")?"Consecutive Days Discount":p)}),(0,t.jsxs)("span",{className:"font-mono",children:["-¥ ",_.discountTotal.toLocaleString()]})]}),_.groupDiscountTotal>0&&(0,t.jsxs)("div",{className:"flex justify-between items-center text-emerald-400",children:[(0,t.jsx)("span",{children:"ja"===e?"団体割引 (10台以上)":"Group Discount (10+ units)"}),(0,t.jsxs)("span",{className:"font-mono",children:["-¥ ",_.groupDiscountTotal.toLocaleString()]})]})]}):(0,t.jsx)("div",{className:"text-gray-500 text-sm italic mb-4",children:"ja"===e?"車種と台数を選択してください":"Please select bicycles to see breakdown"})]}),(0,t.jsxs)("div",{className:"flex flex-col md:flex-row items-center justify-between gap-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-sm text-gray-300 mb-1",children:f.totalPriceLabel}),(0,t.jsx)("div",{className:"flex items-baseline gap-4",children:(0,t.jsxs)("span",{className:"text-4xl font-bold font-mono text-brand",children:["¥ ",V.toLocaleString()]})}),U&&V>0&&(0,t.jsxs)("div",{className:"text-[11px] text-gray-400 mt-2.5 space-y-0.5 border-t border-white/10 pt-2 w-full",children:[(0,t.jsxs)("div",{children:["ja"===e?"レンタル開始:":"Rental Starts: ",(0,t.jsx)("span",{className:"text-gray-200",children:U.start})]}),(0,t.jsxs)("div",{children:["ja"===e?"レンタル終了:":"Rental Ends: ",(0,t.jsx)("span",{className:"text-gray-200",children:U.end})]})]}),(0,t.jsx)("div",{className:"text-[11px] text-emerald-400 font-semibold mt-2 max-w-xs leading-relaxed",children:"ja"===e?"※料金は当日、お店でのお支払いとなります(現金、各種クレジットカード、PayPay、Alipay対応)。":"*Payment is due at the shop on the day of rental (Cash, Credit Cards, PayPay, Alipay accepted)."})]}),(0,t.jsxs)("div",{className:"flex items-center gap-3 w-full md:w-auto justify-end",children:[L>1&&(0,t.jsxs)("button",{type:"button",onClick:()=>{L>1&&(T(e=>e-1),window.scrollTo({top:0,behavior:"smooth"}))},className:"flex-1 md:flex-none px-4 sm:px-6 py-4 border border-gray-600 hover:border-brand rounded-xl font-bold text-lg text-gray-300 hover:text-white transition-all whitespace-nowrap flex items-center justify-center gap-2",children:[(0,t.jsx)(c.ChevronLeft,{className:"w-5 h-5"}),"ja"===e?"戻る":"Back"]}),L<3?(0,t.jsxs)("button",{type:"button",onClick:J,className:`${L>1?"flex-[2]":"w-full"} md:flex-none px-6 sm:px-12 py-4 bg-brand hover:bg-brand/90 text-white rounded-xl font-bold text-lg shadow-lg transition-all whitespace-nowrap flex items-center justify-center gap-2 hover:-translate-y-1 active:translate-y-0`,children:["ja"===e?"次へ進む":"Next",(0,t.jsx)(d.
3ChevronRight,{className:"w-5 h-5"})]}):(0,t.jsxs)("button",{type:"submit",disabled:j||0===V,className:`${L>1?"flex-[2]":"w-full"} md:flex-none px-6 sm:px-12 py-4 rounded-xl font-bold text-xl shadow-lg transition-all whitespace-nowrap flex items-center justify-center gap-3 ${j||0===V?"bg-gray-700 text-gray-400 cursor-not-allowed":"bg-brand hover:bg-brand/90 text-white hover:-translate-y-1 active:translate-y-0"}`,children:[j&&(0,t.jsxs)("svg",{className:"animate-spin h-5 w-5 text-white",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[(0,t.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,t.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),j?f.submittingText:f.submitButton]})]})]}),1===L&&(0,t.jsx)(x.default,{shop:"honten",locale:e,minDateStr:D||(0,m.getMinStartDateString)(),maxDateStr:S||(0,m.getMaxStartDateString)(),selectedDate:H.startDate,onSelectDate:e=>{R("startDate",e,{shouldValidate:!0,shouldDirty:!0,shouldTouch:!0})}})]})]})]})}])}]);

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.