"use client"; import { motion, AnimatePresence } from "framer-motion"; import { useState, useEffect } from "react"; import type { DemoData } from "@/data/demos"; const fadeUp = { hidden: { opacity: 0, y: 35 }, show: { opacity: 1, y: 0, transition: { duration: 0.65, ease: [0.25, 0.46, 0.45, 0.94] as [number, number, number, number] } }, }; const stagger = { hidden: {}, show: { transition: { staggerChildren: 0.08 } }, }; const translations = { tr: { navCabin: "Kulübemiz", navHosts: "Hizmetlerimiz", navChannels: "Rezervasyon", navReviews: "Misafir Günlüğü", bookWilderness: "Kulübeyi Ayırt", est: "2015'TEN BERİ", heroDesc: "Şebekeden bağımsız lüks dağ kulübesi inzivalarına dalın. Odun ateşinde taze ekmek fırın sabahları, rustik açık şömine salonları ve serin dağ nehrinde alabalık avı koordinatları.", secureCabin: "REZERVASYON YAP", cabinUnits: "Dağ Kulübeleri", cabinWood: "Darby Kırmızı Sedir", fireplaceUnit: "Tütsülü Şömine", fireplaceType: "Doğal Taş Ocak", aboutTitle: "Darby Dağ Yaşamı", aboutHeader: "KULÜBE HAKKINDA", aboutSub: "DOĞAL MT. LOGWOOD AKUSTİĞİ ALTINDA HUZUR", aboutDesc: "Bitterroot Bunkhouse, Darby milli orman koordinatlarının derinliklerinde el işçiliğiyle inşa edilmiş iki adet kırmızı sedir dağ kulübesi sunar. Her kulübe döküm demir mutfak gereçleri, kurutulmuş huş odunları ve yerel gölleri keşfetmeniz için dağ rehberleriyle donatılmıştır.", feat1Title: "YABANİ YÜRÜYÜŞ YOLLARI", feat1Desc: "Arka terasınızdan doğrudan yaban çiçeği orman yollarına adım atın.", feat2Title: "ODUN ATEŞİNDE SABAHLAR", feat2Desc: "Her gün ücretsiz temin edilen şömine odunlarının ve döküm fırın ikramlarının keyfini çıkarın.", channelsTitle: "Entegre Platformlar", channelsHeader: "REZERVASYON YÖNTEMLERİ", channelsDesc: "Senkronize edilmiş kanallarimizi aşağidan inceleyin. Komisyonsuz konaklamalar için Airbnb, VRBO veya doğrudan kurumsal web sitemiz üzerinden rezervasyon yapin.", chAirbnb: "AIRBNB İLE REZERVE ET", chVrbo: "VRBO İLE REZERVE ET", chDirect: "DOĞRUDAN REZERVE (%15 TASARRUF)", airbnbTitle: "Airbnb Superhost Kanalı", airbnbDesc: "Giriş ve konaklama takvimlerini doğrudan Superhost sayfamızdan anlık doğrulayın. Klasik platform güvencesi arayan gezginler için idealdir.", vrboTitle: "VRBO Premier Host Kanalı", vrboDesc: "Aileler veya geniş gruplar için Premier Host statüsünde listelemeler. Grup iptal ve iade ayrıcalıkları çıkış esnasında otomatik olarak uygulanır.", directTitle: "Doğrudan Kulübe Rezervasyonu", directDesc: "Rezervasyon hizmet bedellerini tamamen atlayın. Girişte size özel taze ekşi mayalı sabah ekmeği, ücretsiz şömine odunu ve doğrudan VIP mihmandar desteği alın.", launchPortal: "REZERVASYON PORTALINI BAŞLAT", diaries: "Yaban Günlükleri", lovedGuests: "MİSAFİRLERİMİZDEN KELİMELER", vipServices: "VIP HİZMETLER", mountainHelp: "Dağ Desteği", mountainActive: "Her Gün 08:00 - 20:00 Aktif", privacyRegs: "Gizlilik Sözleşmesi", termsStay: "Kulübe Şartları", dismiss: "KAPAT", enquiryActive: "REZERVASYON ALINDI", ambassadorActive: "Yaban Concierge Aktif", enquirySuccess: "Darby dağ kulübesi rezervasyon talebinizi kaydettik. Sertifikalı yaban mihmandarımız geliş, sıcak ekmek ve kano yolları detaylarını planlamak için sizinle iletişime geçecektir. Teşekkürler!", }, en: { navCabin: "Our cabin", navHosts: "Host guides", navChannels: "Book channels", navReviews: "Guest diaries", bookWilderness: "Book wilderness", est: "ESTABLISHED IN 2015", heroDesc: "Immerse in off-grid luxury cabin retreats. Wood-fired bakery mornings, rustic open fireplace lounges, and cold mountain river trout coordinates.", secureCabin: "SECURE CABIN SLOTS", cabinUnits: "A-frame lodges", cabinWood: "Darby Cedar Wood", fireplaceUnit: "Stocked fireplace", fireplaceType: "Open Stone Hearth", aboutTitle: "Darby Mountain Life", aboutHeader: "ABOUT THE CABIN", aboutSub: "OFF-GRID HEAVEN UNDER MT. LOGWOOD ACOUSTICS", aboutDesc: "Bitterroot Bunkhouse provides two hand-crafted A-frame cedar lodges deep in the Darby forest coordinates. Each lodge is stocked with cast-iron cookware, seasoned logwood reserves, and local guides to explore hidden mountain lakes.", feat1Title: "WILDERNESS TRAIL PATHS", feat1Desc: "Walk directly from your back deck onto wildflower forest lines.", feat2Title: "WOOD-FIRED MORNINGS", feat2Desc: "Enjoy complimentary firewood logs and hot stone iron bakers daily.", channelsTitle: "Integrated Platforms", channelsHeader: "HOW TO SECURE BOOKINGS", channelsDesc: "Toggle our synced channels below. Syncing Airbnb, VRBO, or our premium Direct reservation for commission-free stays.", chAirbnb: "BOOK ON AIRBNB", chVrbo: "BOOK ON VRBO", chDirect: "BOOK DIRECT (SAVE 15%)", airbnbTitle: "Airbnb Superhost Channel", airbnbDesc: "Verify lodging calendars dynamically directly on our superhost page listing. Perfect for travelers seeking classic platform protection.", vrboTitle: "VRBO Premier Host Channel", vrboDesc: "Premier hosts status listings for families or large groups. All group cancellation benefits apply automatically upon checkout.", directTitle: "Bunkhouse Direct Booking", directDesc: "Skip booking service fees completely. Receive customized fresh morning sourdough, complimentary firewood, and direct VIP coordination.", launchPortal: "LAUNCH RESERVATION PORTAL", diaries: "Wilderness Diaries", lovedGuests: "KIND WORDS FROM PAST GUESTS", vipServices: "VIP SERVICES", mountainHelp: "Mountain Help", mountainActive: "Available 8 AM - 8 PM", privacyRegs: "Privacy Regulations", termsStay: "Terms of Cabin", dismiss: "DISMISS", enquiryActive: "CABIN REQUEST FILED", ambassadorActive: "Wilderness Concierge Active", enquirySuccess: "We have registered your Darby wilderness cabin coordinate request. A certified somatic host will contact you shortly to coordinate arrival, hot bread baking, and kayak paths. Thank you!", } }; export default function HotelTemplate2({ data }: { data: DemoData }) { const { firma, istatistikler = [], hizmetler = [], yorumlar = [] } = data; const [showModal, setShowModal] = useState(false); const [channel, setChannel] = useState("direct"); const [lang, setLang] = useState<"tr" | "en">("tr"); const [preloader, setPreloader] = useState(true); const t = translations[lang]; // 1. Lenis Smooth Scroll Integration useEffect(() => { let lenis: any; import("@studio-freight/lenis").then(({ default: Lenis }) => { lenis = new Lenis({ duration: 1.2, easing: (t: number) => Math.min(1, 1.001 - Math.pow(2, -10 * t)) }); function raf(time: number) { lenis.raf(time); requestAnimationFrame(raf); } requestAnimationFrame(raf); }); return () => lenis?.destroy(); }, []); // 2. Preloader Curtain Timer useEffect(() => { const timer = setTimeout(() => { setPreloader(false); }, 1500); return () => clearTimeout(timer); }, []); // Localized services const getLocalizedService = (baslik: string, aciklama: string) => { if (baslik.includes("HOSTS")) { return { title: lang === "tr" ? "EV SAHİBİ REHBERLİĞİ" : "MEET YOUR HOSTS", desc: lang === "tr" ? "Yerel dağ rehberlerimiz; alabalık avı yolları, yaban çiçeği rotaları ve gizli nehir haritaları koordinasyonunu üstlenir." : aciklama }; } if (baslik.includes("POLICIES")) { return { title: lang === "tr" ? "KULÜBE KURALLARI" : "CABIN POLICIES", desc: lang === "tr" ? "Evcil hayvan dostu konaklama koşulları. Döküm demir tava ve her zaman dolu odunluk güvenceleri." : aciklama }; } return { title: lang === "tr" ? "DOĞRUDAN REZERVE" : "DIRECT RESERVATION", desc: lang === "tr" ? "Airbnb veya VRBO ile anlık takvim senkronizasyonu; dilerseniz komisyonsuz doğrudan rezervasyon avantajı." : aciklama }; }; const css = ` @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600;700;800;900&display=swap'); :root { --color-bunkhouse-gold: #854D0E; --color-bunkhouse-sand: #F5F2EB; --color-bunkhouse-stone: #1C1917; --color-bunkhouse-card: #FAF8F5; } .font-serif-bunkhouse { font-family: 'Playfair Display', Georgia, serif; } .font-industrial-bunkhouse { font-family: 'Inter', sans-serif; font-weight: 800; } .font-sans-bunkhouse { font-family: 'Inter', sans-serif; } .bg-rustic-mesh { background-image: radial-gradient(circle at 10% 10%, rgba(133, 77, 14, 0.02) 0%, transparent 40%), radial-gradient(circle at 90% 90%, rgba(28, 25, 23, 0.02) 0%, transparent 50%), linear-gradient(rgba(28, 25, 23, 0.005) 1px, transparent 1px), linear-gradient(90deg, rgba(28, 25, 23, 0.005) 1px, transparent 1px); background-size: 100% 100%, 100% 100%, 30px 30px, 30px 30px; } .border-bunkhouse { border-color: rgba(28, 25, 23, 0.15); } .hero-title-clamp { font-size: clamp(34px, 5vw, 85px); letter-spacing: -0.02em; line-height: 0.95; } `; return ( <> {/* ── IMZA AN: CURTAIN REVEAL PRELOADER ── */} {preloader && (
BITTERROOT BUNKHOUSE
wilderness sanctuary
)}
{/* COZY RUSTIC WILDERNESS LODGE THEME */}
{/* Floating Woody Ambience Orbs */}
{/* ── MANDATORY FLOATING DEMO BANNER ── */}
{lang === "tr" ? "Bu web sitesi Ayris Tech tarafından hazırlanmış bir konsept çalışmasıdır." : "This website is a premium concept prototype designed by Ayris Tech."}
{/* ── COZY HEADER ── */}
{/* Logo */} {firma.adi} {/* Links */} {/* Language Selector + Booking Button */}
{/* Language Switcher */}
setShowModal(true)} className="text-[9px] font-bold tracking-[2.5px] uppercase text-white bg-[#1C1917] hover:bg-[#854D0E] px-6 py-3.5 rounded-lg transition-all cursor-pointer shadow-md hidden sm:block" whileHover={{ scale: 1.02 }} whileTap={{ scale: 0.98 }} > {t.bookWilderness}
{/* ── COZY HERO BANNER (DARK CONTRAST) ── */}
{/* Ambient fire glow background */}
{/* Banner top */}
BITTERROOT VALLEY · MONTANA {t.est}
{/* Banner headings */}

{firma.slogan}

{t.heroDesc}

{/* Banner bottom details */}
{t.cabinUnits} {t.cabinWood}
{t.fireplaceUnit} {t.fireplaceType}
setShowModal(true)} className="px-8 py-4 bg-[#854D0E] hover:bg-white hover:text-[#1C1917] text-white font-bold text-[9px] tracking-[2.5px] uppercase rounded-xl transition-all cursor-pointer shadow-lg" whileHover={{ scale: 1.02 }} > {t.secureCabin}
{/* ── ABOUT THE CABIN WITH LAYERED GRAPHICS ── */}
{t.aboutTitle}

{t.aboutHeader}

{/* Layered images grid */}
{/* Left Column: 3 detailed pictures layered */}
{/* 1st image: Sourdough fresh bakery */}
{/* eslint-disable-next-line @next/next/no-img-element */} Wilderness breakfast sourdough bakery
{/* 2nd image: Cozy fireside cooking */}
{/* eslint-disable-next-line @next/next/no-img-element */} Cozy lodge stone fireplace cooking
{/* Right Column: Cabin text details */}
EXCLUSIVELY HAND-CRAFTED

{t.aboutSub}

{t.aboutDesc}

{/* Details list */}
{[ { title: t.feat1Title, text: t.feat1Desc }, { title: t.feat2Title, text: t.feat2Desc }, ].map((feat, idx) => (

{feat.title}

{feat.text}

))}
{/* ── CHANNELS & HOST GUIDES ── */}
{hizmetler.map((hizmet, idx) => { const locServ = getLocalizedService(hizmet.baslik, hizmet.aciklama); return (

{locServ.title}

{locServ.desc}

); })}
{/* ── CHANNEL BOOKING INTEGRATION ── */}
{t.channelsTitle}

{t.channelsHeader}

{t.channelsDesc}

{/* Toggle channels buttons */}
{[ { id: "airbnb", label: t.chAirbnb }, { id: "vrbo", label: t.chVrbo }, { id: "direct", label: t.chDirect }, ].map(item => ( ))}
{/* Active channel info */}

{channel === "airbnb" ? t.airbnbTitle : channel === "vrbo" ? t.vrboTitle : t.directTitle}

{channel === "airbnb" ? t.airbnbDesc : channel === "vrbo" ? t.vrboDesc : t.directDesc}

setShowModal(true)} className="w-full py-4.5 rounded-xl bg-[#854D0E] hover:bg-white hover:text-[#1C1917] text-white font-bold text-[9px] tracking-[2px] uppercase cursor-pointer transition-colors shadow-md" whileHover={{ scale: 1.01 }} > {t.launchPortal}
{/* ── TESTIMONIALS ── */}
{t.diaries}

{t.lovedGuests}

{/* Grid */}
{yorumlar.map((y, yIdx) => (
{[...Array(5)].map((_, starIdx) => ( ))}

“{y.yorum}”

{y.yazar.charAt(0)}

{y.yazar}

{y.tarih}
))}
{/* ── FOOTER ── */}
{/* About Column */}
BitterrootBunkhouse

{firma.slogan} — Cozy hand-built rustic cedar cabins deep inside Darby forest valley. High-end off-grid luxury.

{firma.adres}

{firma.email}

{/* Coordinates Column */}

{lang === "tr" ? "KULÜBE KOORDİNATLARI" : "CABIN COORDINATES"}

{t.mountainHelp}
{t.mountainActive}

Check-In/Out
{lang === "tr" ? "Giriş: 16:00 · Çıkış: 10:00" : "Check In: 4:00 PM · Check Out: 10:00 AM"}

{/* Services Column */}

{t.vipServices}

{hizmetler.map((h, hIdx) => { const locS = getLocalizedService(h.baslik, h.aciklama); return ( {locS.title} ); })}

© 2026 {firma.adi}. All rights reserved.

{/* ── BOOKING MODAL ── */} {showModal && ( {/* Close Button */} {/* Success check indicator */}

{t.enquiryActive}

{t.ambassadorActive}

{t.enquirySuccess}

setShowModal(false)} > {t.dismiss}
)}
); }