// 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

「行ってみて、はじめて好きになった」。
日本のお客様から、そんな声をよくいただきます。
また行きたいと言っていただける理由を、12にまとめました。

{/* 4 category columns */}
{APPEAL_CATEGORIES.map((cat, ci) => (
0 ? '1px solid rgba(255,255,255,0.08)' : 'none'}}> {/* Category header */}
{cat.en}
{cat.ja}
{cat.sub}
{/* 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 */}
ALL JOURNEYS

すべての旅

{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 });