// Shared components for Mongol Travel Agency const MTAMark = ({ size = 40, color = "currentColor" }) => ( ); const MTALogo = ({ color = "currentColor", size = 1 }) => ( Mongol Travel Agency · Burd Group ); // Tour categories with placeholder gradients const TOURS = [ { id: 'horseback', code:'MTA-HRS-007', title: '大草原乗馬・遊牧民ホームステイ', subtitle: 'Steppe & Nomad Life', days: '7日間〜', price: '¥298,000〜', tag: '人気No.1', color: '#7a8b3a', img: 'STEPPE / GER CAMP' }, { id: 'gobi', code:'MTA-GOBI-008', title: 'ゴビ砂漠探検', subtitle: 'Gobi Desert Expedition', days: '8日間〜', price: '¥358,000〜', tag: '冒険', color: '#c98a3e', img: 'GOBI DUNES / CAMEL' }, { id: 'naadam', code:'MTA-NDM-006', title: 'ナーダム祭り観戦ツアー', subtitle: 'Naadam Festival', days: '6日間〜', price: '¥328,000〜', tag: '7月限定', color: '#a83a3a', img: 'NAADAM CEREMONY' }, { id: 'eagle', code:'MTA-EGL-009', title: '鷹匠(イーグルハンター)体験', subtitle: 'Eagle Hunter Encounter', days: '9日間〜', price: '¥428,000〜', tag: '冬季', color: '#3a4a6b', img: 'EAGLE HUNTER / ALTAI' }, { id: 'trek', code:'MTA-TRK-010', title: '登山・トレッキング', subtitle: 'Trekking the Altai', days: '10日間〜', price: '¥398,000〜', tag: 'アクティブ', color: '#456a55', img: 'ALTAI MOUNTAINS' }, { id: 'rail', code:'MTA-RAIL-012', title: 'シベリア鉄道の旅', subtitle: 'Trans-Siberian Railway', days: '12日間〜', price: '¥548,000〜', tag: '長期', color: '#5a4a3e', img: 'TRANS-SIBERIAN RAIL' }, { id: 'ub', code:'MTA-UB-004', title: 'ウランバートル都市観光', subtitle: 'Ulaanbaatar City', days: '4日間〜', price: '¥168,000〜', tag: '短期', color: '#3e5b7a', img: 'ULAANBAATAR SKYLINE' }, { id: 'mice', code:'MTA-MICE-005', title: '法人視察・MICE', subtitle: 'Business & MICE', days: '応相談', price: '応相談', tag: '法人', color: '#0e2142', img: 'BUSINESS / CONFERENCE' }, ]; const TourCard = ({ tour, layout = 'default' }) => (
{ e.currentTarget.style.transform = 'translateY(-4px)'; e.currentTarget.style.boxShadow = '0 16px 40px -12px rgba(14,33,66,0.25)'; }} onMouseLeave={e => { e.currentTarget.style.transform = ''; e.currentTarget.style.boxShadow = ''; }} >
{tour.tag}
{tour.subtitle}
{tour.code &&
{tour.code}
}

{tour.title}

{tour.days}
{tour.price}
); // Animated hero "video" — slow ken-burns gradient const HeroVideo = ({ palette = 'steppe' }) => { const palettes = { steppe: ['#3a4f6b', '#7a8b3a', '#c98a3e', '#0e2142'], night: ['#0e2142', '#0077BE', '#1f3556', '#0a1322'], desert: ['#c98a3e', '#a05a2c', '#3a2818', '#0e2142'], }; const colors = palettes[palette] || palettes.steppe; return (
); }; // Shared site header (matches the floating header on the homepage) const SITE_NAV_ITEMS = [ { label: 'ツアーを探す', sub: 'FIND A TOUR', dropdown: true, items: [ { label: 'エリアで探す', href: '#' }, { label: 'テーマで探す', href: '#' }, { label: '季節で探す', href: '#' }, ]}, { label: 'オーダーメイドの旅', sub: 'CUSTOM · CONTACT' }, { label: '法人のお客様', sub: 'BUSINESS · MICE', dropdown: true, items: [ { label: '企業・組織・団体', href: '11-corporate.html' }, { label: '旅行会社', href: '12-travel-agency.html' }, ]}, ]; const SITE_NAV_DROPDOWN_ICONS = { 'エリアで探す': ( ), 'テーマで探す': ( ), '季節で探す': ( ), }; const SiteHeader = () => { const [navOpen, setNavOpen] = React.useState(null); return (
); }; const FloatingActions = () => { const [showTop, setShowTop] = React.useState(false); React.useEffect(() => { const onScroll = () => setShowTop(window.scrollY > 400); window.addEventListener('scroll', onScroll, { passive: true }); onScroll(); return () => window.removeEventListener('scroll', onScroll); }, []); const baseBtn = { width: 56, height: 56, borderRadius: '50%', display: 'flex', alignItems: 'center', justifyContent: 'center', cursor: 'pointer', border: 'none', boxShadow: '0 8px 24px rgba(0,0,0,0.35), 0 2px 6px rgba(0,0,0,0.25)', transition: 'transform .2s ease, opacity .25s ease, box-shadow .2s ease', }; return (
{ e.currentTarget.style.transform = 'translateY(-2px)'; }} onMouseLeave={(e) => { e.currentTarget.style.transform = 'translateY(0)'; }} > LINEで相談
); }; const Footer = () => ( ); Object.assign(window, { MTAMark, MTALogo, TOURS, TourCard, HeroVideo, SiteHeader, FloatingActions });