// Store sections — image-led, white, interactive const { useState: useStateS } = React; const IMG = window.STORE.img; function Hero({ t, lang, onReserve }) { const go = (id) => { const el=document.getElementById(id); if(el) window.scrollTo({top: el.offsetTop-58, behavior:"smooth"}); }; return (
{t.heroKicker}

{t.heroTitle[0]}
{t.heroTitle[1]}

{t.heroSub}

{t.heroCta1} go("menu")}>{t.heroCta2}
); } function Marquee() { const words = ["ふわとろ TAKOYAKI","おでん ODEN","ハイボール HIGHBALL","タコパ食べ放題","名古屋・栄/名駅","SINCE 1948"]; const row = [...words, ...words]; return (
{row.map((w,i)=>( {w} ))}
); } function Craft({ t, lang }) { const cards = [["flame",t.craft1t,t.craft1b],["star",t.craft2t,t.craft2b],["clock",t.craft3t,t.craft3b]]; return (

{t.craftBody}

{cards.map(([ic,h,b],i)=>(
{h}
{b}
))}
); } function Signature({ t, lang, onLightbox }) { const items = [ { src:IMG.takoyaki, h:t.sig1t, b:t.sig1b, big:true }, { src:IMG.takopa, h:t.sig2t, b:t.sig2b }, { src:IMG.oden, h:t.sig3t, b:t.sig3b }, { src:IMG.highball, h:t.sig4t, b:t.sig4b }, ]; return (
{items.map((it,i)=>(
onLightbox(it.src)} style={{ position:"relative", borderRadius:18, overflow:"hidden", cursor:"pointer", height: it.big?420:420, boxShadow:"var(--shadow-card)" }}> {it.h}
{it.h}
{it.b}
))}
); } function PlanBanner({ t, onReserve }) { return (
タコパ食べ放題
{t.plan}

{t.planTitle}

{t.planSub}

{t.planPrice} {t.planUnit}
{t.planCta}
); } function Gallery({ t, lang, onLightbox }) { const imgs = IMG.g; const spans = ["span 6","span 3","span 3","span 4","span 4","span 4","span 6","span 6"]; return (
{imgs.map((src,i)=>(
onLightbox(src)} style={{ position:"relative", borderRadius:14, overflow:"hidden", cursor:"pointer", height: spans[i]==="span 6"?260:200, boxShadow:"var(--shadow-card)" }}>
))}
); } function Atmosphere({ t, lang, onReserve }) { const stats = [t.atmo1,t.atmo2,t.atmo3,t.atmo4]; return (

{t.atmoBody}

{stats.map((s,i)=>( {s} ))}
{t.visitCta}
); } function Shops({ t, lang, onReserve }) { const shops = window.STORE.shops; return (
{shops.map((s,idx)=>(

{s.name[lang]}

{s.addr[lang]}
Google Map
{t.reserveHere} {window.STORE.tel}
))}
); } function Info({ icon, label, value, latin }) { return (
{label} {value}
); } function Quote({ lang }) { return (
LIVE EXPERIENCE

{lang==="ja" ? <>味は、ライブで決まる。
鉄板を囲む、名古屋の夜。 : <>Flavor comes alive.
A Nagoya night around the iron plate.}

); } function News({ t, lang }) { const news = window.STORE.news; const feat = news[0]; const rest = news.slice(1); const isNew = (n) => n.cat.en === "New"; return (
{feat.cat[lang]}
{feat.date}

{feat.title[lang]}

{feat.body[lang]}

{rest.map((n,i)=>(
{n.date}
{n.cat[lang]}

{n.title[lang]}

{n.body[lang]}

))}
); } function Lightbox({ src, onClose, t }) { if (!src) return null; return (
e.stopPropagation()} style={{ maxWidth:"min(900px,94vw)", maxHeight:"86vh", borderRadius:14, boxShadow:"0 30px 80px rgba(0,0,0,.6)", objectFit:"contain" }} />
); } function ReserveModal({ open, onClose, t, lang }) { const [done, setDone] = useStateS(false); const [shop, setShop] = useStateS("sakae"); const [guests, setGuests] = useStateS(2); const [time, setTime] = useStateS("19:00"); const times = ["17:30","18:00","18:30","19:00","19:30","20:00","20:30","21:00","21:30"]; if (!open) return null; return (
e.stopPropagation()} style={{ background:"#fff", borderRadius:20, width:"min(520px,96vw)", maxHeight:"92vh", overflowY:"auto", boxShadow:"var(--shadow-hover)" }}>
{t.reserveKicker}
{t.reserveTitle}
{done ? (
{t.rDone}
{t.rDoneSub}
{ setDone(false); onClose(); }}>{t.close}
) : (
{window.STORE.shops.map(s=>( ))}
{guests} {t.rGuestsUnit}
{times.map(tm=>( ))}
setDone(true)}>{t.rSubmit}
)}
); } const inS = { width:"100%", boxSizing:"border-box", fontFamily:"var(--font-body)", fontSize:15, padding:"11px 14px", border:"1.5px solid var(--line-300)", borderRadius:12, background:"#fff", color:"var(--ink-900)" }; const qtyBtn = { width:28, height:28, borderRadius:"50%", border:"1.5px solid var(--line-300)", background:"#fff", cursor:"pointer", display:"flex", alignItems:"center", justifyContent:"center", color:"var(--ink-700)" }; function FieldS({ label, children }) { return (
{children}
); } Object.assign(window, { Hero, Marquee, Craft, Signature, PlanBanner, Gallery, Atmosphere, Shops, Quote, News, Lightbox, ReserveModal });