// themes.jsx — 3 themes tabbed section with expanded per-theme detail function Themes({ onContactClick }) { const [active, setActive] = React.useState('ai'); const theme = window.THEMES.find((t) => t.id === active); return (
SECTION 01 OUR SERVICES

3つの専門領域を、横断視点でひとつに

攻めのDX/AX、守りの情報セキュリティ&事業継続(BCP)、そしてそれらを支えるITインフラ。 いずれも単独施策では完結せず、相互に絡み合います。スカイイデアは、構想から構築・運用までを一社で担い、サイロ化しがちなIT投資をひとつの設計でつなぎます。

{window.THEMES.map((t) => )}
{/* Lead */}
{theme.stance &&
{theme.stance} {theme.role} {theme.stanceEn}
} {theme.en}

{theme.title}

{theme.tagline &&

{theme.tagline}

}

{theme.lead}

{/* Reuse highlight (infra) */} {theme.highlight &&
{theme.highlight.badge}

{theme.highlight.title}

{theme.highlight.body}

} {/* Provided services (infra) */} {theme.provides &&

{theme.provides.label}

{theme.provides.items.map((it, i) =>
{it.ttl}

{it.desc}

)}
} {/* Challenges */}
01

こんなお悩みはありませんか

{theme.challenges.map((c, i) =>
{String(i + 1).padStart(2, '0')}
{c.title}

{c.body}

)}
{/* Approach */}
02

当社のアプローチ

{theme.approach.steps.map((s, i) =>
{s.n}
{s.ttl}
{s.dur}

{s.desc}

)}
当社ならではの視点
{theme.approach.perspectives.map((p, i) =>
{p.ttl}

{p.desc}

)}
関与の濃度(目安)

{theme.approach.engagement}

{/* BCP sub-section (security theme) */} {theme.bcpBlock &&
BCP

{theme.bcpBlock.label}

{theme.bcpBlock.lead}

{theme.bcpBlock.split.map((s, i) =>
{s.tag}
{s.ttl}

{s.desc}

{s.linkInfra && → サービス③ ITインフラ 構築・運用保守へ}
)}

{theme.bcpBlock.note}

}
); } window.Themes = Themes;