// Shared components for Mongol Travel Agency
const MTAMark = ({ size = 40, color = "currentColor" }) => (
);
const MTALogo = ({ color = "currentColor", size = 1 }) => (
);
// 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.subtitle}
{tour.code &&
{tour.code}
}
{tour.title}
);
// 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 });