秋田市|髪質改善・縮毛矯正「原因を解く美容室」GROWTH HAIR

当店について

「もう髪のことで悩むのは終わりにしませんか?」

一生懸命なケアが報われなかったのは、あなたのせいではありません。

解決しない悩みの「原因」を解き、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>