// Variation C — Immersive Cinematic: dark, large imagery, asymmetric
// モンゴル12の魅力 — 4 categories × 3 items
const APPEAL_CATEGORIES = [
{
en: 'ACCESS',
ja: '近くて、安心。',
sub: '日本から、ぐっと近い国。',
items: [
{ ja: 'アクセス良好', en: 'DIRECT FLIGHTS FROM TOKYO' },
{ ja: '治安が良くて親日国', en: 'SAFE & PRO-JAPAN' },
{ ja: '時差わずか1時間', en: 'JUST 1 HOUR AHEAD' },
],
},
{
en: 'ENCOUNTER',
ja: '出会いと体験。',
sub: 'ここでしかない、人と時間。',
items: [
{ ja: '世界トップクラスの星空観賞', en: 'WORLD-CLASS STARGAZING' },
{ ja: '遊牧民と必ず会える', en: 'MEET REAL NOMADS' },
{ ja: '街歩きも楽しい', en: 'VIBRANT CITY STROLL · ULAANBAATAR' },
],
},
{
en: 'NATURE',
ja: '心ほどける、大自然。',
sub: '夏でも、涼やかに。',
items: [
{ ja: '夏でも涼しい', en: 'COOL SUMMER ESCAPE' },
{ ja: '果てしない大草原', en: 'ENDLESS STEPPE · HORIZONS' },
{ ja: '可愛いゲルに宿泊', en: 'STAY IN A TRADITIONAL GER' },
],
},
{
en: 'DESTINATIONS',
ja: 'モンゴルを代表する絶景。',
sub: '一度は、訪れたい場所。',
items: [
{ ja: '手つかずの自然とのふれあい', en: 'UNTOUCHED WILDERNESS' },
{ ja: '青い真珠フブスグル湖', en: 'BLUE PEARL — KHUVSGUL LAKE' },
{ ja: '最大の観光地ゴビ砂漠', en: 'ICONIC GOBI DESERT' },
],
},
];
// (starfield removed — appeal section uses a tinted panel bg instead)
const MENU_ITEMS = [
{ label: 'ツアーを探す', sub: 'FIND A TOUR', dropdown: true },
{ label: 'オーダーメイドの旅', sub: 'CUSTOM · CONTACT' },
{ label: '法人のお客様', sub: 'BUSINESS · MICE' },
];
const NAV_DROPDOWN_ICONS = {
'エリアで探す': (
),
'テーマで探す': (
),
'季節で探す': (
),
};
const VariationC = ({ tweaks }) => {
const [activeIdx, setActiveIdx] = React.useState(0);
const featured = TOURS.slice(0, 4);
return (
{/* Floating header */}
{/* Hero — full bleed cinematic with side index */}
{/* center copy */}
MONGOLIA · {featured[activeIdx].subtitle.toUpperCase()}
{({
nomad1: <>風と、
馬と、
大地と。>,
nomad2: <>初めての、
草原と
青い空。>,
nomad3: <>千年の、
暮らしを
ともに。>,
nomad4: <>季節を、
選ばない
草原。>,
})[featured[activeIdx].id] || <>風と、
馬と、
大地と。>}
{featured[activeIdx].id === 'horseback' && <>草原で暮らす遊牧民の家を訪ね、馬に乗る。
何百年と続いてきた営みが、いまもそこにあります。>}
{featured[activeIdx].id === 'gobi' && <>昼は果てしない砂と岩、夜は降るような星空。
街では味わえない静けさが、ゴビにはあります。>}
{featured[activeIdx].id === 'naadam' && <>相撲・競馬・弓射。国を挙げての夏祭りです。
毎年7月、街じゅうが熱気に包まれます。>}
{featured[activeIdx].id === 'eagle' && <>鷲を相棒に狩りをする、カザフの人々。
西部アルタイに、その暮らしが受け継がれています。>}
{/* right side — featured selector */}
FEATURED — 04
{featured.map((t, i) => (
setActiveIdx(i)} style={{
padding:'16px 18px',
background: i === activeIdx ? 'rgba(0,119,190,0.95)' : 'rgba(255,255,255,0.06)',
backdropFilter:'blur(8px)',
border:'1px solid rgba(255,255,255,0.12)',
cursor:'pointer', transition:'all .3s',
}}>
0{i+1} · {t.subtitle.toUpperCase()}
{t.title}
))}
{/* bottom search strip */}
{/* Trust band — local agency strengths */}
SINCE 2006 · ULAANBAATAR
ウランバートルから、
日本のお客様をご案内しています。
私たちはモンゴルに拠点を置く、現地の旅行会社です。
日本語のできるスタッフが、行程のご相談から現地での手配まで一貫して担当します。
ホテルやキャンプは実際に足を運んで確かめ、季節や道路の状況を見ながら、無理のない旅をご提案します。
「こんなことはできますか」というご相談から、どうぞお気軽に。
{/* モンゴル十二の魅力 — Editorial appeal section */}
{/* subtle brand-blue glow at top */}
{/* Section header */}
WHY MONGOLIA
訪れたくなる、
十二の理由。
「行ってみて、はじめて好きになった」。
日本のお客様から、そんな声をよくいただきます。
また行きたいと言っていただける理由を、12にまとめました。
{/* 4 category columns */}
{APPEAL_CATEGORIES.map((cat, ci) => (
0 ? '1px solid rgba(255,255,255,0.08)' : 'none'}}>
{/* Category header */}
{/* 3 items */}
{cat.items.map((it, ii) => {
const num = ci * 3 + ii + 1;
return (
{String(num).padStart(2, '0')}
{it.ja}
{it.en}
);
})}
))}
{/* Footer CTA */}
ひとつでも気になるものがあれば、それで十分です。
{/* Tours — cinematic carousel */}
{TOURS.slice(0,8).map((t,i) => (
0{i+1}
{t.subtitle.toUpperCase()}
{t.title}
{t.days}
{t.price}
))}
);
};
// Search strip with dropdowns
const SEARCH_OPTIONS = {
エリア: ['すべて', '北モンゴル', '中央モンゴル', 'ウランバートル近郊', '東モンゴル', '南モンゴル(ゴビ)', '西モンゴル'],
季節: ['すべて', '春(4〜5月)', '夏(6〜8月)', '秋(9〜10月)', '冬(11〜3月)'],
テーマ: ['すべて', '自然・大草原', '文化・歴史', 'アクティビティ', '祭り・イベント', '美食・温泉', '法人・MICE'],
日数: ['すべて', '半日〜1日', '2-5日', '6-7日', '8-10日', '11日以上'],
};
const SEARCH_FIELDS = [
['エリア', 'すべて'],
['季節', 'すべて'],
['テーマ', 'すべて'],
['日数', 'すべて'],
];
const SearchStrip = () => {
const [values, setValues] = React.useState(Object.fromEntries(SEARCH_FIELDS));
const [open, setOpen] = React.useState(null);
React.useEffect(() => {
const close = (e) => {
if (!e.target.closest('[data-search-field]')) setOpen(null);
};
document.addEventListener('click', close);
return () => document.removeEventListener('click', close);
}, []);
return (
探す ✦
{SEARCH_FIELDS.map(([label]) => (
{ e.stopPropagation(); setOpen(open === label ? null : label); }}
style={{borderLeft:'1px solid rgba(255,255,255,0.15)', paddingLeft: 20, position:'relative', cursor:'pointer'}}>
{label.toUpperCase()}
{values[label]}
▾
{open === label && (
{SEARCH_OPTIONS[label].map(opt => (
{ e.stopPropagation(); setValues(v => ({...v, [label]: opt})); setOpen(null); }}
style={{padding:'12px 18px', fontSize: 13, cursor:'pointer', color:'#fff',
background: values[label] === opt ? 'rgba(0,119,190,0.4)' : 'transparent',
fontWeight: values[label] === opt ? 700 : 500,
}}
onMouseEnter={e => e.currentTarget.style.background = 'rgba(0,119,190,0.6)'}
onMouseLeave={e => e.currentTarget.style.background = values[label] === opt ? 'rgba(0,119,190,0.4)' : 'transparent'}
>{opt}
))}
)}
))}
);
};
Object.assign(window, { VariationC, SearchStrip });