// pages/home.jsx — Home page with 3 hero variations + intro + highlights + rooms preview + neighbourhood + cta function HomePage() { const { t, lang, tweaks, navigate, currency } = useApp(); const heroStyle = tweaks.hero || "editorial"; return (
{heroStyle === "fullbleed" && } {heroStyle === "editorial" && } {heroStyle === "split" && }
); } // ─── Hero variation 1: Editorial — large serif on cream over image strip ── function HeroEditorial() { const { t, lang, navigate } = useApp(); return (
{t.hero.eyebrow}

{t.hero.title_a}{" "}{t.hero.title_b} {t.hero.title_c && <>
{t.hero.title_c}}

{t.hero.since} {t.hero.sinceLabel}
{t.hero.googleReviews}
); } // ─── Hero variation 2: Full-bleed image with overlay ────────────────────── function HeroFullBleed() { const { t, navigate } = useApp(); return (
{t.hero.eyebrow}

{t.hero.title_a}{" "}{t.hero.title_b} {t.hero.title_c && <>
{t.hero.title_c}}

{t.hero.sub}

{useApp().t.common.scroll}
{t.hero.since} · {t.hero.sinceLabel} {t.hero.googleReviews}
); } // ─── Hero variation 3: Split — image left, large copy right ──────────────── function HeroSplit() { const { t, lang, navigate } = useApp(); return (
{t.hero.eyebrow}

{t.hero.title_a}{" "}{t.hero.title_b}{t.hero.title_c && <>{" "}{t.hero.title_c}}

{t.hero.sub}

{t.hero.since} {t.hero.sinceLabel}
); } // ─── Intro — "About" ─────────────────────────────────────────────────────── function SectionIntro() { const { t, lang } = useApp(); return (
{t.intro.eyebrow}

{t.intro.title_a}
{t.intro.title_b}

{t.intro.body}

{t.intro.pts.map(([num, lbl], i) => (
{num}
{lbl}
))}
); } // ─── Highlights — 3 columns ──────────────────────────────────────────────── function SectionHighlights() { const { t } = useApp(); return (
{t.highlights.eyebrow}

{t.highlights.title}

{t.highlights.items.map((it, i) => { const photos = ["images/hostel/kitchen.jpg", "images/rooms/comfort-2/04.jpg", "images/krakow/rynek-aerial.jpg"]; const alts = ["Wspólna kuchnia", "Prywatna łazienka", "Rynek Główny, Kraków"]; return (
0{i + 1}

{it.title}

{it.body}

); })}
); } // ─── Rooms preview ───────────────────────────────────────────────────────── function SectionRoomsPreview() { const { t, navigate, currency } = useApp(); return (
{t.rooms.eyebrow}

{t.rooms.title_a}
{t.rooms.title_b}

{t.rooms.body}

{t.rooms.cards.map((c, i) => ( navigate("room-detail", { roomIdx: i })} onBook={() => navigate("reservation", { roomIdx: i })} /> ))}
); } function RoomCard({ card, idx, onView, onBook }) { const { t, currency } = useApp(); return (
{card.tag}
{t.common.from} {formatPrice(card.priceFrom, currency)} {t.common.perNight}

{card.name}

{card.desc}

{card.meta.map((m, i) => { const icons = [Ic.ruler, Ic.bed, Ic.user, Ic.window]; const I = icons[i] || Ic.bed; return (
{m}
); })}
); } // ─── Neighbourhood ───────────────────────────────────────────────────────── function SectionNeighbourhood() { const { t, lang } = useApp(); const places = lang === "pl" ? [ ["Brama Floriańska", "600 m", "Średniowieczna brama, początek Drogi Królewskiej"], ["Rynek Główny", "900 m", "Sukiennice, Kościół Mariacki, kawiarnie"], ["Galeria Krakowska", "900 m", "Centrum handlowe przy dworcu"], ["Kraków Główny", "1 km", "Dworzec PKP i autobusowy"], ["Kościół Mariacki", "1,1 km", "Hejnał z wieży, ołtarz Wita Stwosza"], ["Wawel", "1,9 km", "Zamek królewski i katedra"], ] : [ ["Florian Gate", "600 m", "Medieval gate, start of the Royal Route"], ["Main Market Square", "900 m", "Cloth Hall, St. Mary's Basilica, cafés"], ["Galeria Krakowska", "900 m", "Shopping centre by the station"], ["Kraków Główny", "1 km", "Main train and bus station"], ["St. Mary's Basilica", "1.1 km", "Hejnał from the tower, Veit Stoss altar"], ["Wawel Castle", "1.9 km", "Royal castle and cathedral"], ]; return (
{lang === "pl" ? "Sąsiedztwo" : "The neighbourhood"}

{lang === "pl" ? <>Stare miasto
tuż za drzwiami. : <>The old town,
just outside the door.}

{lang === "pl" ? "Chętnie podpowiemy, gdzie zjeść, napić się dobrej kawy i odsapnąć od tłumu turystów — wystarczy zapytać." : "We're happy to point you to where to eat, grab good coffee and escape the tourist crowds — just ask."}

{places.map(([name, dist, desc], i) => (
= places.length - 3 ? "1px solid rgba(255,255,255,.1)" : "none" }}>

{name}

{dist}

{desc}

))}
); } // ─── Press / reviews strip ───────────────────────────────────────────────── function SectionPress() { const { lang } = useApp(); const items = lang === "pl" ? [ ["Booking.com", "9,4 / 10", "Świetne udogodnienia"], ["Lokalizacja", "9,7 / 10", "Stare Miasto, centrum Krakowa"], ["Czystość", "9,5 / 10", "Oceniana przez gości"], ["Stosunek jakości do ceny", "9,3 / 10", "Według ocen gości"], ] : [ ["Booking.com", "9.4 / 10", "Excellent facilities"], ["Location", "9.7 / 10", "Old Town, central Kraków"], ["Cleanliness", "9.5 / 10", "Rated by guests"], ["Value for money", "9.3 / 10", "According to guest reviews"], ]; return (
{items.map(([who, quote, when], i) => (
{who}

{quote}

{when}
))}
); } // ─── CTA ─────────────────────────────────────────────────────────────────── function SectionCTA() { const { t, lang, navigate } = useApp(); return (

{lang === "pl" ? <>Zarezerwuj pobyt
bezpośrednio u nas. : <>Book directly,
save more.}

{lang === "pl" ? "Bez prowizji pośrednika. Najlepsza cena i możliwość wystawienia faktury — tylko bezpośrednio u nas." : "No middleman fees. Best rate and company invoice on request — only when you book direct."}

); } Object.assign(window, { HomePage });