"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.75, ease: [0.25, 0.46, 0.45, 0.94] as [number, number, number, number] } },
};
const stagger = {
hidden: {},
show: { transition: { staggerChildren: 0.1 } },
};
const translations = {
tr: {
navBook: "Rezervasyon",
navSuites: "Özel Süitler",
navExp: "Deneyimler",
navRev: "Yorumlar",
badge: "BUTİK LÜKS RESORT",
heroTail: "sizi bekliyor",
heroDesc: "Cal Vestam'da eşsiz bir huzura dalın. Fethiye'nin nefes kesici mavi sırtlarının üzerinde, size özel cam kenarlı sonsuzluk havuzları ve organik zeytin yaprağı masaj terapileri sunuyoruz.",
reserveNow: "Rezervasyon Yap",
planEscape: "TATİLİ PLANLA",
resortServices: "RESORT HİZMETLERİ",
checkAvailability: "UYGUNLUK DURUMU",
scheduleEscape: "RESORT TATİLİNİZİ PLANLAYIN",
scheduleDesc: "Benzersiz deniz manzaralı teras süitinizde yerinizi ayırtmak için tarihlerinizi belirleyin.",
checkin: "GİRİŞ TARİHİ",
checkout: "ÇIKIŞ TARİHİ",
adults: "YETİŞKİN",
kids: "ÇOCUK (12 YAŞ ALTI)",
guests: "Misafir",
kidsLabel: "Çocuk",
guarantee: "Rezervasyonlar, giriş esnasında taze toplanmış narenciye kokteyli ikramı ile en iyi fiyat garantisini kilitler.",
confirmDetails: "TARİHLERİ ONAYLA",
suitesTitle: "TERAS SÜİTLERİ",
suitesHeader: "SEÇKİN SÜİTLER",
suitesDesc: "Özel dokuma keten serimler, doğal zeytinyağlı sabunlar ve kesintisiz deniz panoraması ile mimari lüksü deneyimleyin.",
secureRes: "REZERVASYON YAP →",
diaries: "Misafir Defteri",
lovedGuests: "LOVED BY GUESTS",
lovedDesc: "Seçkin gezginlerin ve küresel mimari yazarlarının Cal Vestam deneyimlerini keşfedin.",
vipCoords: "VIP KOORDİNATLAR",
conciergeActive: "Resort Concierge Aktif",
checkInOutDetails: "Giriş: 15:00 · Çıkış: 11:00",
boutiqueLeisures: "BUTİK AYRICALIKLAR",
privacyRegs: "Gizlilik Sözleşmesi",
termsStay: "Konaklama Şartları",
dismiss: "KAPAT",
enquiryActive: "BAŞVURU ALINDI",
ambassadorActive: "Cal Vestam Concierge Aktif",
enquirySuccess: "Akdeniz resort rezervasyon koordinatlarınızı kaydettik. Özel misafir elçimiz giriş işlemlerinizi öncelikli olarak tamamlamak için sizinle iletişime geçecektir. Teşekkürler!",
// Suite details
suite1Title: "PANORAMİK VESTAM SÜİT",
suite1Desc: "Fethiye'nin mavi sırtlarına bakan özel havuzlu balkon ve premium pamuklu yatak tasarımı.",
suite2Title: "NARENCİYE BAHÇE SÜİTİ",
suite2Desc: "Çevreleyen zeytin ve limon bahçeleriyle entegre, gün ışığıyla dolu ferah konaklama deneyimi.",
suite3Title: "AKDENİZ VİLLASI",
suite3Desc: "Özel sonsuzluk havuzları, kişisel uşak hizmeti ve gün batımı terasları sunan tam villa kiralama.",
// Welcome orchards
welcomeTitle: "Karşılama İkramları",
welcomeDesc: "MİSAFİRLERİMİZ İÇİN TAZE NARENCİYE KOKTEYLLERİ",
},
en: {
navBook: "Book stay",
navSuites: "Exclusive suites",
navExp: "Experiences",
navRev: "Guest reviews",
badge: "BOUTIQUE LUXURY RESORT",
heroTail: "awaits your arrival",
heroDesc: "Submerge into sheer tranquility at Cal Vestam. Situated directly above Muğla's gorgeous blue ridges, we stage exclusive glass-edge infinity pools and wellness stone therapy.",
reserveNow: "Reserve Now",
planEscape: "PLAN ESCAPE",
resortServices: "RESORT SERVICES",
checkAvailability: "Check availability",
scheduleEscape: "SCHEDULE YOUR RESORT ESCAPE",
scheduleDesc: "Allocate your exclusive sea-view panoramic terrace suite directly inside our luxury booking engine.",
checkin: "CHECK-IN DATE",
checkout: "CHECK-OUT DATE",
adults: "ADULTS",
kids: "KIDS (UNDER 12)",
guests: "Guests",
kidsLabel: "Kids",
guarantee: "Reservations lock in our premium best-rate guarantee with local welcome orchard citrus cocktail packages upon check-in.",
confirmDetails: "CONFIRM DETAILS",
suitesTitle: "Terrace suites",
suitesHeader: "EXCLUSIVE SUITES",
suitesDesc: "Experience high-end architecture layered with bespoke linen, local natural olive oil soaps, and floor-to-ceiling sea panoramas.",
secureRes: "SECURE RESERVATION →",
diaries: "Guest Diaries",
lovedGuests: "LOVED BY GUESTS",
lovedDesc: "Hear what prominent travelers and global architecture writers experience inside Cal Vestam.",
vipCoords: "VIP COORDINATES",
conciergeActive: "Concierge 24 Hours Active",
checkInOutDetails: "Check In: 3:00 PM · Check Out: 11:00 AM",
boutiqueLeisures: "BOUTIQUE LEISURES",
privacyRegs: "Privacy Regulations",
termsStay: "Terms of Stay",
dismiss: "DISMISS",
enquiryActive: "ENQUIRY ACTIVE",
ambassadorActive: "Cal Vestam Concierge Active",
enquirySuccess: "We have registered your Mediterranean resort reservation coordinates. A personal guest ambassador has locked your priority check-in slot. Thank you!",
// Suite details
suite1Title: "PANORAMIC VESTAM SUITE",
suite1Desc: "Private pool balcony looking directly over Fethiye blue ridges with premium cotton layout.",
suite2Title: "CITRUS GARDEN SUITE",
suite2Desc: "Cozy light-filled suite integrated with surrounding organic welcome olive and lemon orchards.",
suite3Title: "MEDITERRANEAN VILLA",
suite3Desc: "Executive buyout layout offering private infinity pools, automated concierge, and sunset lounges.",
// Welcome orchards
welcomeTitle: "Welcome Orchards",
welcomeDesc: "CITRUS COCKTAILS FOR GUESTS",
}
};
export default function HotelTemplate1({ data }: { data: DemoData }) {
const { firma, istatistikler = [], hizmetler = [], yorumlar = [] } = data;
const [showModal, setShowModal] = useState(false);
const [adults, setAdults] = useState(2);
const [kids, setKids] = useState(0);
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 statistics
const getLocalizedStat = (etiket: string) => {
if (etiket.includes("Suites")) return lang === "tr" ? "İmza Deniz Süiti" : "Signature Sea Suites";
if (etiket.includes("Pools")) return lang === "tr" ? "Panoramik Havuz" : "Panoramic Infinity Pools";
if (etiket.includes("Experience")) return lang === "tr" ? "Misafir Memnuniyeti" : "Guest Experience Index";
return lang === "tr" ? "Doğal Zeytinyağı Sabun & Spa" : "Natural Olive Oil Soap & Spa";
};
// Localized services
const getLocalizedService = (baslik: string, aciklama: string) => {
if (baslik.includes("POOL")) {
return {
title: lang === "tr" ? "SONSUZLUK VESTAM HAVUZU" : "INFINITY VESTAM POOL",
desc: lang === "tr" ? "Fethiye'nin mavi sırtlarına bakan cam kenarlı, ödüllü sonsuzluk havuzlarımızın keyfini çıkarın." : aciklama
};
}
if (baslik.includes("SPA")) {
return {
title: lang === "tr" ? "REHIAL SPA TERAPİSİ" : "REHIAL SPA THERAPY",
desc: lang === "tr" ? "Yerel uzmanlar tarafından tasarlanan organik zeytin yaprağı taş masajları ve mineral tuzlu hidroterapi ile yenilenin." : aciklama
};
}
return {
title: lang === "tr" ? "AÇIK HAVA TERAS YEMEĞİ" : "AL-FRESCO TERRACE DINING",
desc: lang === "tr" ? "Akdeniz zeytin ağaçlarının altında taze bahçe malzemeleri ve soğuk sıkım narenciye lezzetlerinin tadını çıkarın." : 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-resort-teal: #14B8A6;
--color-resort-sand: #FAF8F5;
--color-resort-charcoal: #0F172A;
--color-resort-gold: #D4AF37;
}
.font-serif-editorial {
font-family: 'Playfair Display', Georgia, serif;
}
.font-sans-resort {
font-family: 'Inter', sans-serif;
}
.bg-light-mesh {
background-image:
radial-gradient(circle at 0% 0%, rgba(20, 184, 166, 0.04) 0%, transparent 40%),
radial-gradient(circle at 100% 100%, rgba(212, 175, 55, 0.03) 0%, transparent 50%);
}
.shadow-premium {
box-shadow: 0 20px 40px -15px rgba(15, 23, 42, 0.05);
}
.hero-title-clamp {
font-size: clamp(38px, 6vw, 90px);
letter-spacing: -0.02em;
line-height: 0.95;
}
`;
return (
<>
{/* ── IMZA AN: CURTAIN REVEAL PRELOADER ── */}
{getLocalizedStat(stat.etiket)}
{/* Floating Citrus Welcome Badge Overlay */}
{t.scheduleDesc}
{t.guarantee}
{t.suitesDesc}
{suite.desc}
{locServ.desc}
{t.lovedDesc}
“{y.yorum}”
{t.ambassadorActive}
{t.enquirySuccess}