当店について
「もう髪のことで悩むのは終わりにしませんか?」
一生懸命なケアが報われなかったのは、あなたのせいではありません。
解決しない悩みの「原因」を解き、365日、自分の髪を愛せる私へ。
GROWTH HAIRが提案するのは、一時の変化ではなく、一生モノの「美髪育成」です。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>GROWTH HAIR サマーキャンペーン 2025</title>
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: #f5f5f3; color: #1a1a1a; min-height: 100vh; padding: 2rem 1rem; }
.wrap { max-width: 680px; margin: 0 auto; background: #fff; border-radius: 16px; padding: 2rem; box-shadow: 0 1px 4px rgba(0,0,0,.08); }
h1 { font-size: 22px; font-weight: 600; margin-bottom: 4px; }
.sub { font-size: 13px; color: #666; margin-bottom: 1.2rem; line-height: 1.6; }
.period-bar { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 1.5rem; }
.pill { font-size: 12px; padding: 4px 12px; border-radius: 99px; border: 1px solid #ddd; color: #555; background: #fafafa; }
.pill strong { color: #1a1a1a; }
.tabs { display: flex; gap: 8px; margin-bottom: 1.5rem; flex-wrap: wrap; }
.tab { padding: 8px 16px; border: 1px solid #ddd; border-radius: 8px; background: transparent; font-size: 14px; cursor: pointer; color: #666; font-family: inherit; transition: all .15s; }
.tab.active { background: #f0f0ee; color: #1a1a1a; border-color: #bbb; font-weight: 600; }
.section { display: none; }
.section.show { display: block; }
.qa-item { border: 1px solid #e8e8e8; border-radius: 12px; margin-bottom: 8px; overflow: hidden; }
.qa-q { display: flex; align-items: center; justify-content: space-between; padding: 13px 16px; cursor: pointer; font-size: 14px; font-weight: 600; gap: 8px; }
.qa-q:hover { background: #f5f5f3; }
.qa-a { display: none; padding: 0 16px 13px; font-size: 13px; color: #555; line-height: 1.75; }
.qa-item.open .qa-a { display: block; }
.qa-item.open .chev { transform: rotate(180deg); }
.chev { font-size: 18px; flex-shrink: 0; color: #999; transition: transform .2s; }
.cat-title { font-size: 13px; font-weight: 600; color: #666; margin: 1.2rem 0 8px; padding-bottom: 6px; border-bottom: 1px solid #eee; }
.prod-row { display: flex; align-items: center; justify-content: space-between; padding: 9px 0; border-bottom: 1px solid #f0f0f0; gap: 8px; }
.prod-info { flex: 1; min-width: 0; }
.prod-name { font-size: 13px; font-weight: 600; }
.prod-price { font-size: 12px; color: #888; margin-top: 2px; }
.prod-price s { opacity: .6; }
.qty-row { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.qty-btn { width: 28px; height: 28px; border: 1px solid #ddd; border-radius: 8px; background: transparent; cursor: pointer; font-size: 16px; color: #1a1a1a; font-family: inherit; }
.qty-btn:hover { background: #f0f0ee; }
.qty-num { font-size: 14px; font-weight: 600; min-width: 20px; text-align: center; }
.summary { background: #f5f5f3; border-radius: 10px; padding: 14px 16px; margin-top: 1rem; }
.sum-row { display: flex; justify-content: space-between; font-size: 13px; margin-bottom: 5px; color: #666; }
.sum-total { display: flex; justify-content: space-between; font-size: 18px; font-weight: 600; margin-top: 10px; padding-top: 10px; border-top: 1px solid #e0e0e0; }
.disc-banner { margin-top: 10px; padding: 8px 12px; border-radius: 8px; background: #e6f4ea; color: #2e7d32; font-size: 13px; display: none; }
.note-small { font-size: 11px; color: #aaa; margin-top: 8px; line-height: 1.6; }
.limit-badge { font-size: 10px; padding: 1px 6px; border-radius: 99px; background: #fff3e0; color: #e65100; margin-left: 4px; vertical-align: middle; }
.form-group { margin-bottom: 1rem; }
label { display: block; font-size: 13px; color: #555; margin-bottom: 5px; }
input, select, textarea { width: 100%; padding: 9px 12px; border: 1px solid #ddd; border-radius: 8px; font-size: 14px; background: #fff; color: #1a1a1a; font-family: inherit; }
input:focus, select:focus, textarea:focus { outline: none; border-color: #aaa; }
textarea { height: 80px; resize: vertical; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 480px) { .form-row { grid-template-columns: 1fr; } }
.submit-btn { width: 100%; padding: 12px; border: 1px solid #ccc; border-radius: 10px; background: #fff; font-size: 15px; font-weight: 600; cursor: pointer; margin-top: 0.5rem; color: #1a1a1a; font-family: inherit; transition: background .15s; }
.submit-btn:hover { background: #f0f0ee; }
.success-msg { display: none; background: #e6f4ea; color: #2e7d32; border-radius: 10px; padding: 16px; font-size: 14px; text-align: center; line-height: 1.7; }
.order-prod-row { display: flex; align-items: center; justify-content: space-between; padding: 7px 0; border-bottom: 1px solid #f0f0f0; font-size: 13px; gap: 8px; }
</style>
</head>
<body>
<div class="wrap">
<h1>GROWTH HAIR — サマーキャンペーン</h1>
<p class="sub">秋田市広面鍋沼58-1 / 髪質改善専門サロン</p>
<div class="period-bar">
<span class="pill">📅 受付 <strong>5/15〜5/27 12:00</strong></span>
<span class="pill">🚚 お渡し <strong>6月〜7/25</strong></span>
<span class="pill">💴 <strong>現金5万円以上</strong> でセット割</span>
</div>
<div class="tabs">
<button class="tab active" onclick="showTab('qa',this)">❓ よくある質問</button>
<button class="tab" onclick="showTab('calc',this)">🧮 お見積もり</button>
<button class="tab" onclick="showTab('order',this)">📋 注文フォーム</button>
</div>
<!-- Q&A -->
<div id="qa" class="section show">
<div class="qa-item" onclick="this.classList.toggle('open')">
<div class="qa-q">今回のキャンペーンはどんな内容ですか?<span class="chev">▼</span></div>
<div class="qa-a">対象のヘアケア商品をキャンペーン価格で販売しています。合計5万円(税込)以上を現金でご購入の場合、「5万円以上セット割」としてさらに特別価格が適用されます。</div>
</div>
<div class="qa-item" onclick="this.classList.toggle('open')">
<div class="qa-q">受付期間はいつまでですか?<span class="chev">▼</span></div>
<div class="qa-a">受付期間は2025年5月15日〜5月27日 12:00までです。期間を過ぎてのご注文はお受けできませんのでお早めにどうぞ。</div>
</div>
<div class="qa-item" onclick="this.classList.toggle('open')">
<div class="qa-q">商品はいつ受け取れますか?<span class="chev">▼</span></div>
<div class="qa-a">商品のお渡し期間は6月〜7月25日を予定しています。入荷状況によってお渡し時期が前後する場合がございます。あらかじめご了承ください。</div>
</div>
<div class="qa-item" onclick="this.classList.toggle('open')">
<div class="qa-q">5万円以上セット割とはなんですか?<span class="chev">▼</span></div>
<div class="qa-a">表示されているキャンペーン価格での合計が5万円(税込)以上になる場合に、さらに特別価格が適用される割引です。お支払いは現金のみが対象となります。</div>
</div>
<div class="qa-item" onclick="this.classList.toggle('open')">
<div class="qa-q">購入本数に制限はありますか?<span class="chev">▼</span></div>
<div class="qa-a">商品によって異なります。フォームシリーズ(シンリーフォーム・ミントフォーム・極み)はお好きな組み合わせでお一人様3本まで。ただし限定20個の「ミントフォーム 1000ml」のみお一人様1本までです。エスターはお一人様2本まで。その他は特に記載がない限り制限ありません。</div>
</div>
<div class="qa-item" onclick="this.classList.toggle('open')">
<div class="qa-q">支払いはカードや電子マネーでも大丈夫ですか?<span class="chev">▼</span></div>
<div class="qa-a">「5万円以上セット割」の特別価格は現金払いのみが対象です。カード・電子マネーの場合はキャンペーン価格でのご提供となります。</div>
</div>
<div class="qa-item" onclick="this.classList.toggle('open')">
<div class="qa-q">どんな髪の悩みに向いていますか?<span class="chev">▼</span></div>
<div class="qa-a">くせ毛・うねり・乾燥・広がり・ダメージなど幅広いお悩みに対応した商品をご用意しています。ご不明な場合はスタッフまでお気軽にご相談ください。</div>
</div>
</div>
<!-- 見積もり -->
<div id="calc" class="section">
<div id="prodList"></div>
<div class="summary">
<div id="sumItems"><div class="sum-row"><span>商品を選んでください</span><span></span></div></div>
<div class="sum-total"><span>合計(税込)</span><span id="totalAmt">¥0</span></div>
<div id="discBanner" class="disc-banner">✅ 5万円以上セット割の対象です!現金でのお支払いで特別価格が適用されます。</div>
<p class="note-small">※キャンペーン価格での合計が5万円以上を現金でご購入の場合、セット割特別価格が適用されます。</p>
</div>
<button class="submit-btn" style="margin-top:1rem" onclick="goOrder()">この内容で注文フォームへ →</button>
</div>
<!-- 注文フォーム -->
<div id="order" class="section">
<div class="form-row">
<div class="form-group"><label>お名前</label><input type="text" id="fname" placeholder="山田 花子"></div>
<div class="form-group"><label>フリガナ</label><input type="text" id="fkana" placeholder="ヤマダ ハナコ"></div>
</div>
<div class="form-row">
<div class="form-group"><label>電話番号</label><input type="tel" id="ftel" placeholder="090-0000-0000"></div>
<div class="form-group"><label>メールアドレス</label><input type="email" id="fmail" placeholder="example@mail.com"></div>
</div>
<div class="form-group"><label>お支払い方法</label>
<select id="fpay">
<option>現金(5万円以上でセット割適用)</option>
<option>カード・電子マネー(キャンペーン価格)</option>
</select>
</div>
<div class="form-group"><label>ご注文商品と数量</label><div id="orderProds"></div></div>
<div class="form-group"><label>備考・ご要望</label><textarea id="fnote" placeholder="香りの希望、ご質問など"></textarea></div>
<button class="submit-btn" id="submitBtn" onclick="submitOrder()">注文を送信する</button>
<div class="success-msg" id="successMsg">
✅ ご注文ありがとうございます!<br>確認後、担当スタッフよりご連絡いたします。
</div>
</div>
</div>
<script>
const cats = [
{
label: '🫧 フォームシリーズ',
note: '※ シンリーフォーム・ミントフォーム・極み はお好きな組み合わせで3本まで',
prods: [
{ id:'f1', name:'シンリーフォーム 300ml', orig:6600, price:5280, limit:3 },
{ id:'f2', name:'シンリーフォーム 1000ml', orig:16500, price:13200, limit:3 },
{ id:'f3', name:'ミントフォーム 1000ml', orig:16500, price:12500, limit:1, badge:'限定20個' },
{ id:'f4', name:'極み 1L', orig:22000, price:15400, limit:3 },
]
},
{
label: '🌿 ヘアケアシリーズ',
prods: [
{ id:'h1', name:'エスター 200ml', orig:3080, price:2800, limit:2 },
{ id:'h2', name:'エスター 500ml', orig:6380, price:5800, limit:2 },
{ id:'h3', name:'エスター 1000ml', orig:11000, price:10000, limit:2 },
{ id:'h4', name:'リフターケミカルエスター 200ml', orig:6600, price:5800 },
{ id:'h5', name:'リフターケミカルエスター 600ml', orig:13200, price:11000 },
{ id:'h6', name:'ESトリートメント 200ml', orig:6600, price:5800 },
{ id:'h7', name:'ESトリートメント 600ml', orig:13200, price:11000 },
{ id:'h8', name:'リクターキュアアップトリートメント 200ml', orig:6600, price:5800 },
{ id:'h9', name:'リクターキュアアップトリートメント 600ml', orig:13200, price:11000 },
{ id:'h10', name:'シェリールトリートメント 200ml', orig:4720, price:4160 },
{ id:'h11', name:'シェリールトリートメント 1000ml', orig:19250, price:15400 },
]
},
{
label: '✨ スタイリング・スキンケア',
prods: [
{ id:'s1', name:'ソフトワックス', orig:3080, price:2700 },
{ id:'s2', name:'グロースクリーム', orig:4950, price:4050 },
{ id:'s3', name:'ケミカルエミュールEX 180ml', orig:7400, price:6550 },
{ id:'s4', name:'ケミカルエミュールEX 600ml', orig:16500, price:13200 },
{ id:'s5', name:'ゲルクリーム2', orig:6600, price:5280 },
{ id:'s6', name:'クリアクリーム 150ml', orig:5500, price:4400 },
{ id:'s7', name:'シルククリーム デラックス雫 50g', orig:16500, price:13200 },
]
}
];
const allProds = cats.flatMap(c => c.prods);
const qty = {};
allProds.forEach(p => qty[p.id] = 0);
function showTab(id, el) {
document.querySelectorAll('.section').forEach(s => s.classList.remove('show'));
document.querySelectorAll('.tab').forEach(t => t.classList.remove('active'));
document.getElementById(id).classList.add('show');
el.classList.add('active');
if (id === 'order') renderOrderProds();
}
function renderProds() {
document.getElementById('prodList').innerHTML = cats.map(cat => `
<div class="cat-title">${cat.label}</div>
${cat.prods.map(p => `
<div class="prod-row">
<div class="prod-info">
<div class="prod-name">${p.name}${p.badge ? `<span class="limit-badge">${p.badge}</span>` : ''}${p.limit ? `<span class="limit-badge">お一人様${p.limit}本まで</span>` : ''}</div>
<div class="prod-price"><s>¥${p.orig.toLocaleString()}</s> → <strong>¥${p.price.toLocaleString()}</strong></div>
</div>
<div class="qty-row">
<button class="qty-btn" onclick="chg('${p.id}',-1)">-</button>
<span class="qty-num" id="q_${p.id}">0</span>
<button class="qty-btn" onclick="chg('${p.id}',1)">+</button>
</div>
</div>`).join('')}
${cat.note ? `<p class="note-small">${cat.note}</p>` : ''}
`).join('');
}
function chg(id, d) {
const p = allProds.find(x => x.id === id);
qty[id] = Math.min(p.limit || 99, Math.max(0, qty[id] + d));
document.getElementById('q_'+id).textContent = qty[id];
calcTotal();
}
function calcTotal() {
let subtotal = 0, lines = '';
allProds.forEach(p => {
if (qty[p.id] > 0) {
const line = p.price * qty[p.id];
subtotal += line;
lines += `<div class="sum-row"><span>${p.name} × ${qty[p.id]}</span><span>¥${line.toLocaleString()}</span></div>`;
}
});
document.getElementById('sumItems').innerHTML = lines || '<div class="sum-row"><span>商品を選んでください</span><span></span></div>';
document.getElementById('totalAmt').textContent = '¥' + subtotal.toLocaleString();
document.getElementById('discBanner').style.display = subtotal >= 50000 ? 'block' : 'none';
}
function renderOrderProds() {
document.getElementById('orderProds').innerHTML = allProds.map(p => `
<div class="order-prod-row">
<span style="flex:1;min-width:0">${p.name} <span style="color:#aaa">¥${p.price.toLocaleString()}</span></span>
<div class="qty-row">
<button class="qty-btn" onclick="chgO('${p.id}',-1)">-</button>
<span class="qty-num" id="oq_${p.id}">${qty[p.id]}</span>
<button class="qty-btn" onclick="chgO('${p.id}',1)">+</button>
</div>
</div>`).join('');
}
function chgO(id, d) {
const p = allProds.find(x => x.id === id);
qty[id] = Math.min(p.limit || 99, Math.max(0, qty[id] + d));
document.getElementById('oq_'+id).textContent = qty[id];
}
function goOrder() {
document.querySelectorAll('.section').forEach(s => s.classList.remove('show'));
document.querySelectorAll('.tab').forEach(t => t.classList.remove('active'));
document.getElementById('order').classList.add('show');
document.querySelectorAll('.tab')[2].classList.add('active');
renderOrderProds();
}
function submitOrder() {
const nm = document.getElementById('fname').value.trim();
const tel = document.getElementById('ftel').value.trim();
if (!nm || !tel) { alert('お名前と電話番号は必須です'); return; }
document.getElementById('submitBtn').style.display = 'none';
document.getElementById('successMsg').style.display = 'block';
}
renderProds();
calcTotal();
</script>
</body>
</html>




