<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>Exfort|静かな進化を、確かな力に。</title>
<meta name="description" content="Exfort株式会社|デジタルマーケティング戦略支援、ブランドコミュニケーション戦略支援、LLMOコンサルティング支援" />
<style>
:root{
--teal:#0D9488;
--tealHover:#0A7A70;
--ink:#0B1F2A;
--text:#334155;
--muted:#64748B;
--bg:#F8FAFC;
--white:#ffffff;
--line:#E2E8F0;
--shadow:0 10px 30px rgba(2,6,23,.08);
--radius:14px;
--container:1100px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
margin:0;
font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic UI",sans-serif;
background:var(--bg);
color:var(--ink);
}
a{color:inherit;text-decoration:none}
.container{max-width:var(--container);margin:0 auto;padding:0 24px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Header */
header{
position:fixed;top:0;left:0;right:0;
z-index:50;
transition:all .25s ease;
padding:18px 0;
background:transparent;
}
header.scrolled{
background:rgba(255,255,255,.90);
backdrop-filter:blur(10px);
border-bottom:1px solid var(--line);
padding:10px 0;
box-shadow:0 6px 18px rgba(2,6,23,.05);
}
.nav{
display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.brand{
font-weight:800;letter-spacing:.02em;font-size:20px;color:var(--ink);
}
.navlinks{display:flex;align-items:center;gap:18px}
.navlinks a{
font-size:13px;font-weight:600;color:var(--text);
padding:8px 6px;border-radius:10px;
transition:color .2s ease, background .2s ease;
}
.navlinks a:hover{color:var(--teal)}
.navlinks .btn{
background:var(--teal);color:#fff;padding:10px 14px;border-radius:12px;
}
.navlinks .btn:hover{background:var(--tealHover);color:#fff}
/* Mobile */
.menuBtn{display:none;border:1px solid var(--line);background:rgba(255,255,255,.75);border-radius:12px;padding:10px 12px}
.mobileNav{
display:none;
position:absolute;top:100%;left:0;right:0;
background:#fff;border-bottom:1px solid var(--line);
box-shadow:0 18px 40px rgba(2,6,23,.10);
}
.mobileNav a{
display:block;padding:14px 24px;border-top:1px solid #F1F5F9;
color:var(--text);font-weight:700;font-size:14px;
}
.mobileNav a.btn{color:var(--teal)}
header.open .mobileNav{display:block}
/* Hero */
.hero{
position:relative;
padding:140px 0 96px;
overflow:hidden;
background:var(--white);
}
.hero::before{
content:"";
position:absolute;inset:0;
background:
linear-gradient(90deg, rgba(255,255,255,.92) 0%, rgba(255,255,255,.78) 55%, rgba(255,255,255,.25) 100%),
linear-gradient(180deg, rgba(13,148,136,.10) 0%, rgba(255,255,255,.30) 100%),
url("images/hero.jpg") center/cover no-repeat;
transform:scale(1.02);
filter:saturate(1.05);
opacity:.9;
-webkit-mask-image:linear-gradient(to bottom, #000 90%, transparent);
mask-image:linear-gradient(to bottom, #000 90%, transparent);
}
.heroInner{position:relative;max-width:720px}
h1{
margin:0 0 18px;
font-size:44px;line-height:1.15;
color:var(--ink);
letter-spacing:-.02em;
}
.lead{
margin:0 0 28px;
font-size:18px;line-height:1.85;
color:var(--text);
max-width:44em;
text-wrap:balance;
}
.heroBtns{display:flex;gap:12px;flex-wrap:wrap}
.btnPrimary,.btnGhost{
display:inline-flex;align-items:center;justify-content:center;
padding:14px 20px;border-radius:12px;
font-weight:800;font-size:14px;
transition:all .2s ease;
}
.btnPrimary{background:var(--teal);color:#fff;box-shadow:0 14px 34px rgba(13,148,136,.22)}
.btnPrimary:hover{background:var(--tealHover);transform:translateY(-1px)}
.btnGhost{background:#fff;border:1px solid var(--line);color:var(--text)}
.btnGhost:hover{background:#F8FAFC}
/* Sections */
.section{padding:96px 0}
.sectionAlt{background:var(--bg)}
.sectionHead{margin-bottom:44px}
.sectionHead h2{
margin:0 0 12px;
font-size:28px;color:var(--ink);letter-spacing:-.01em
}
.bar{width:48px;height:4px;background:var(--teal)}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{
background:#fff;border:1px solid #EEF2F7;
box-shadow:var(--shadow);
border-radius:var(--radius);
}
.cardPad{padding:26px}
.kicker{font-size:12px;font-weight:900;color:var(--teal);letter-spacing:.08em;margin:0 0 10px;text-transform:uppercase}
.card h3{margin:0 0 12px;color:var(--ink);font-size:18px}
.card p{margin:0;color:var(--text);line-height:1.8;font-size:14px}
/* R&D block */
.rd{
border-left:4px solid var(--teal);
padding:22px 22px 22px 26px;
background:#fff;border-radius:var(--radius);
border:1px solid #EEF2F7;
box-shadow:var(--shadow);
max-width:900px;
}
.rd h2{font-size:24px;margin:0 0 12px;color:var(--ink)}
.rd p{margin:0 0 16px;color:var(--text);line-height:1.9}
.pill{display:inline-flex;align-items:center;gap:10px;color:var(--teal);font-weight:800;font-size:13px}
.dot{width:8px;height:8px;border-radius:999px;background:var(--teal);animation:pulse 1.2s infinite}
@keyframes pulse{0%{transform:scale(1);opacity:.35}50%{transform:scale(1.25);opacity:1}100%{transform:scale(1);opacity:.35}}
/* Profile */
.profileWrap{display:flex;gap:22px;align-items:flex-start;max-width:980px}
.avatarWrap{width:160px;height:160px;flex:0 0 auto;position:relative}
.avatarShadow{
position:absolute;inset:0;background:rgba(11,31,42,.05);
transform:translate(10px,10px);border-radius:12px;z-index:0;transition:transform .25s ease;
}
.avatar{
width:100%;height:100%;object-fit:cover;border-radius:12px;
border:1px solid #EEF2F7;box-shadow:0 6px 18px rgba(2,6,23,.08);
filter:grayscale(1);opacity:.92;transition:all .5s ease;position:relative;z-index:1;
}
.avatarWrap:hover .avatar{filter:grayscale(0);opacity:1}
.avatarWrap:hover .avatarShadow{transform:translate(6px,6px)}
.roleLine{margin:0 0 6px;font-size:12px;font-weight:900;color:var(--teal);letter-spacing:.16em}
.name{margin:0 0 14px;font-size:24px;color:var(--ink);font-weight:900}
.bio{margin:0;color:var(--text);line-height:1.9}
/* Company table */
.companyBox{max-width:920px}
.rows{border-top:1px solid var(--line)}
.row{
display:flex;gap:18px;padding:18px 0;border-bottom:1px solid var(--line);
flex-wrap:wrap;
}
.label{flex:0 0 200px;font-size:13px;font-weight:900;color:var(--text)}
.value{flex:1;font-size:14px;color:var(--ink);line-height:1.8}
/* Contact */
.center{text-align:center}
.contactCard{max-width:920px;margin:0 auto}
.note{font-size:12px;color:#94A3B8;margin-top:10px}
form{display:block}
.formGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
label{display:block;font-size:13px;font-weight:900;color:var(--text);margin:0 0 8px}
input,textarea{
width:100%;padding:12px 12px;border-radius:12px;
border:1px solid var(--line);background:var(--bg);
outline:none;transition:border .2s ease;background-clip:padding-box;
font-size:14px;color:var(--ink);
}
input:focus,textarea:focus{border-color:var(--teal)}
textarea{min-height:140px;resize:vertical}
.submitWrap{text-align:center;margin-top:16px}
.submitted{
padding:28px;border-radius:var(--radius);background:var(--bg);
border:1px solid #EEF2F7;text-align:center;
}
.backLink{border:0;background:transparent;color:var(--teal);font-weight:800;cursor:pointer}
/* Footer */
footer{
background:var(--ink);
color:#fff;
padding:34px 0;
margin-top:auto;
}
.footInner{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.footTitle{font-weight:900;font-size:18px;margin:0}
.footSub{margin:6px 0 0;color:rgba(255,255,255,.60);font-size:13px}
.copy{color:rgba(255,255,255,.55);font-size:12px;font-weight:700}
/* Responsive */
@media (max-width:860px){
.navlinks{display:none}
.menuBtn{display:inline-flex;align-items:center;gap:8px}
h1{font-size:38px}
.section{padding:76px 0}
.grid3{grid-template-columns:1fr;gap:14px}
.profileWrap{flex-direction:column}
.avatarWrap{width:140px;height:140px}
.formGrid{grid-template-columns:1fr}
.label{flex:0 0 140px}
}
</style>
</head>
<body>
<header id="siteHeader">
<div class="container">
<div class="nav">
<a class="brand" href="#top">Exfort</a>
<nav class="navlinks" aria-label="Primary">
<a href="#services">事業内容</a>
<a href="#strengths">強み</a>
<a href="#rd">R&D</a>
<a href="#profile">代表</a>
<a href="#company">会社情報</a>
<a class="btn" href="#contact">お問い合わせ</a>
</nav>
<button class="menuBtn" id="menuBtn" aria-expanded="false" aria-controls="mobileNav">
<span style="font-weight:900;color:var(--ink)">Menu</span>
<span aria-hidden="true">☰</span>
</button>
</div>
</div>
<div class="mobileNav" id="mobileNav">
<a href="#services">事業内容</a>
<a href="#strengths">強み</a>
<a href="#rd">R&D</a>
<a href="#profile">代表</a>
<a href="#company">会社情報</a>
<a class="btn" href="#contact">お問い合わせ</a>
</div>
</header>
<main id="top">
<!-- Hero -->
<section class="hero">
<div class="container">
<div class="heroInner">
<h1>静かな進化を、<br>確かな力に。</h1>
<p class="lead">
複雑化するデジタル領域において、本質的な価値を追求する。Exfortは、企業支援から生まれる深い洞察をもとに、
お客様の事業成長を確かな技術と戦略で支えます。
</p>
<div class="heroBtns">
<a class="btnPrimary" href="#contact">お問い合わせ</a>
<a class="btnGhost" href="#services">事業内容を見る</a>
</div>
</div>
</div>
</section>
<!-- Services -->
<section id="services" class="section">
<div class="container">
<div class="sectionHead">
<h2>事業内容</h2>
<div class="bar"></div>
</div>
<div class="grid3">
<div class="card cardPad">
<p class="kicker">Service 01</p>
<h3>デジタルマーケティング戦略支援</h3>
<p>データに基づいた分析により、ROIを最大化するマーケティング戦略を設計。広告運用からコンテンツ戦略まで一貫して支援します。</p>
</div>
<div class="card cardPad">
<p class="kicker">Service 02</p>
<h3>ブランドコミュニケーション戦略支援</h3>
<p>企業のパーパスを言語化し、一貫性のあるメッセージを市場へ届けます。長期的な関係性を築くコミュニケーション設計を行います。</p>
</div>
<div class="card cardPad">
<p class="kicker">Service 03</p>
<h3>LLMOコンサルティング支援</h3>
<p>LLMO(Large Language Model Optimization)とは、AI検索や生成AI環境におけるブランドの認知・評価を最適化する手法です。次世代の可視性を担保します。</p>
</div>
</div>
</div>
</section>
<!-- Strengths -->
<section id="strengths" class="section sectionAlt">
<div class="container">
<div class="sectionHead">
<h2>強み</h2>
<div class="bar"></div>
</div>
<div class="grid3">
<div class="card cardPad">
<p class="kicker">01 / 本質を捉える思考</p>
<h3>戦略設計</h3>
<p>表層的な課題解決ではなく、事業の持続的成長を見据えた根源的な戦略を設計します。</p>
</div>
<div class="card cardPad">
<p class="kicker">02 / 確実なアウトプット</p>
<h3>実行伴走</h3>
<p>プランニングに留まらず、現場レベルでの実行を支援。成果が出るまで泥臭く伴走します。</p>
</div>
<div class="card cardPad">
<p class="kicker">03 / LLMOによる可視性向上</p>
<h3>AI時代の最適化</h3>
<p>最新の技術トレンドを捉え、AI検索時代における新しいブランディング手法を提案します。</p>
</div>
</div>
</div>
</section>
<!-- R&D -->
<section id="rd" class="section">
<div class="container">
<div class="rd">
<h2>R&D:未来への取り組み</h2>
<p>
Exfortは企業支援での経験を活かし、次世代のマーケティングツール開発に取り組んでいます。
現在、AIエージェントや検索エンジンにおける情報の正確性をモニタリングし、
ブランドの適切な評価を自動的に維持・向上させる「LLMO支援プラットフォーム」の構想を進めています。
</p>
<div class="pill">
<span class="dot" aria-hidden="true"></span>
次世代プラットフォーム 開発構想中
</div>
</div>
</div>
</section>
<!-- Representative profile -->
<section id="profile" class="section">
<div class="container">
<div class="sectionHead">
<h2>代表プロフィール</h2>
<div class="bar"></div>
</div>
<div class="profileWrap">
<div class="avatarWrap">
<div class="avatarShadow" aria-hidden="true"></div>
<img class="avatar" src="images/profile.jpg" alt="代表取締役 松本愛彦">
</div>
<div style="padding-top:4px">
<p class="roleLine">代表取締役 / Founder</p>
<h3 class="name">松本 愛彦</h3>
<p class="bio">
デジタルマーケティングおよびブランド戦略領域に従事。事業構想からPR戦略設計まで一貫して支援。
KDDIでのAI関連プロジェクト参画を経て、生成AI時代の情報構造設計と企業ブランドの可視性最適化を専門とする。
企業の持続的成長を支える戦略基盤の構築に注力している。
</p>
</div>
</div>
</div>
</section>
<!-- Company -->
<section id="company" class="section sectionAlt">
<div class="container">
<div class="sectionHead">
<h2>会社情報</h2>
<div class="bar"></div>
</div>
<div class="companyBox card cardPad">
<div class="rows">
<div class="row">
<div class="label">会社名</div>
<div class="value">Exfort株式会社</div>
</div>
<div class="row">
<div class="label">設立</div>
<div class="value">2025年 7月</div>
</div>
<div class="row">
<div class="label">所在地</div>
<div class="value">東京都渋谷区神南1-11-4 FPGリンクス神南5F</div>
</div>
<div class="row">
<div class="label">事業内容</div>
<div class="value">デジタルマーケティング戦略支援、ブランドコミュニケーション戦略支援、LLMOコンサルティング</div>
</div>
<div class="row">
<div class="label">代表</div>
<div class="value">代表取締役 松本愛彦</div>
</div>
</div>
</div>
</div>
</section>
<!-- Contact -->
<section id="contact" class="section">
<div class="container">
<div class="sectionHead center">
<h2>お問い合わせ</h2>
<p style="margin:10px auto 0;max-width:720px;color:var(--text);line-height:1.85">
支援内容に関するご相談や、協業についてのお問い合わせは下記フォームよりお願いいたします。
</p>
<div class="bar" style="margin:18px auto 0"></div>
</div>
<div class="contactCard card cardPad">
<div id="submitted" class="submitted" style="display:none">
<h3 style="margin:0 0 10px;color:var(--ink)">メッセージを受け付けました</h3>
<p style="margin:0 0 16px;color:var(--text)">内容を確認し、担当者よりご連絡させていただきます。</p>
<button class="backLink" id="backBtn" type="button">フォームに戻る</button>
</div>
<form id="contactForm" novalidate>
<div class="formGrid">
<div>
<label for="name">お名前</label>
<input id="name" name="name" type="text" required placeholder="姓名" />
</div>
<div>
<label for="email">メールアドレス</label>
<input id="email" name="email" type="email" required placeholder="example@exfort.io" />
</div>
</div>
<div style="margin-top:14px">
<label for="message">お問い合わせ内容</label>
<textarea id="message" name="message" rows="6" required placeholder="お問い合わせ内容をご記入ください"></textarea>
</div>
<div class="submitWrap">
<p class="note">※このフォームはデモンストレーション用です。実際に送信されることはありません。</p>
<button class="btnPrimary" type="submit">送信する</button>
</div>
</form>
</div>
</div>
</section>
</main>
<footer>
<div class="container">
<div class="footInner">
<div>
<p class="footTitle">Exfort</p>
<p class="footSub">Quiet evolution into certain power.</p>
</div>
<div class="copy">© Exfort Inc.</div>
</div>
</div>
</footer>
<script>
// header scroll
const header = document.getElementById('siteHeader');
const onScroll = () => {
if (window.scrollY > 20) header.classList.add('scrolled');
else header.classList.remove('scrolled');
};
window.addEventListener('scroll', onScroll);
onScroll();
// mobile menu
const menuBtn = document.getElementById('menuBtn');
const mobileNav = document.getElementById('mobileNav');
menuBtn?.addEventListener('click', () => {
const open = header.classList.toggle('open');
menuBtn.setAttribute('aria-expanded', open ? 'true' : 'false');
});
mobileNav?.querySelectorAll('a').forEach(a => {
a.addEventListener('click', () => {
header.classList.remove('open');
menuBtn.setAttribute('aria-expanded', 'false');
});
});
// contact form demo
const form = document.getElementById('contactForm');
const submitted = document.getElementById('submitted');
const backBtn = document.getElementById('backBtn');
form?.addEventListener('submit', (e) => {
e.preventDefault();
form.style.display = 'none';
submitted.style.display = 'block';
location.hash = '#contact';
});
backBtn?.addEventListener('click', () => {
submitted.style.display = 'none';
form.style.display = 'block';
});
</script>
</body>
</html>