{% extends 'default_frame.twig' %}
{# Set custom variables for default frame #}
{% set title = custom_params.page_title|default('よくある質問') %}
{% set body_class = custom_params.custom_css_class|default('faq-page') %}
{% block stylesheet %}
<link rel="stylesheet" href="{{ asset('assets/css/faq.css') }}">
{% endblock %}
{% block main %}
<!-- breadcrumb section -->
<div class="breadcrumb-section">
<div class="container-1360 border-box px-40">
<nav class="breadcrumb">
<a href="{{ url('homepage') }}" class="breadcrumb__item text-black">ホーム</a>
<img src="{{ asset('assets/img/default/icons/icon-breadcrumb-arrow.svg') }}" alt=">" class="breadcrumb__separator">
<a href="{{ url('faq') }}" class="breadcrumb__item text-black">よくある質問</a>
</nav>
</div>
</div>
<!-- faq section -->
<div class="container-1200">
<div class="faq-wrapper">
<!-- FAQ Title Section -->
<div class="top-header-title-section">
<div class="top-header-icon-text">
<div class="top-header-icon-text">
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.30811 3.25757C6.5109 -0.440162 12.1045 -0.837808 15.8022 2.36499C19.4997 5.56783 19.8992 11.1632 16.6948 14.8591C15.296 16.4731 13.4401 17.4552 11.4868 17.7869C11.2808 17.8218 11.1201 17.9889 11.1021 18.197L10.9976 19.3982C10.9624 19.8026 10.4481 19.952 10.2017 19.6296L8.94678 17.9841C8.875 17.89 8.76789 17.8282 8.65088 17.8103C7.05636 17.5667 5.50942 16.8858 4.20068 15.7517C0.50299 12.5489 0.103733 6.95362 3.30811 3.25757ZM9.93604 4.87866C7.78875 4.87878 6.3092 6.41203 6.30908 9.05249C6.30908 9.82743 6.43786 10.5156 6.67432 11.0994C7.21958 12.4432 8.58608 13.2719 10.0356 13.2283C10.0406 13.2283 10.0471 13.2289 10.0552 13.2273C10.9163 13.2004 11.7284 12.8652 12.3433 12.3074L13.7427 13.2126C13.7897 13.2428 13.8524 13.2294 13.8843 13.1824L14.4058 12.3757C14.436 12.3288 14.4225 12.2643 14.3755 12.2341L13.0601 11.3835C13.1197 11.2707 13.1762 11.1549 13.2231 11.0339C13.4429 10.4652 13.564 9.80063 13.564 9.05249C13.5638 6.42367 12.0835 4.87866 9.93604 4.87866ZM9.93506 6.26929C11.141 6.26955 11.9076 7.3114 11.9077 9.05249C11.9077 9.60789 11.8345 10.0957 11.7007 10.5056L11.1255 10.1335C11.0786 10.1037 11.015 10.1171 10.9849 10.1638L10.4634 10.9714C10.4333 11.0184 10.4467 11.0819 10.4937 11.1121L11.104 11.5066C10.7898 11.8054 10.395 11.9664 9.93506 11.9666C8.72877 11.9666 7.96143 10.8712 7.96143 9.05249C7.96152 7.30951 8.73052 6.26929 9.93506 6.26929Z" fill="#00A854"/>
</svg>
<span class="top-header-text">よくある質問</span>
</div>
</div>
<h1 class="top-header-title">FAQ</h1>
</div>
<!-- faq content section -->
<div class="faq-content-section">
<!-- Tab Navigation -->
<div class="faq-tabs-wrapper">
<div class="faq-tabs">
<a class="faq-tab active" href="#usage">
<span class="faq-tab-text">利用について</span>
<div class="faq-tab-indicator"></div>
</a>
<a class="faq-tab" href="#purchase">
<span class="faq-tab-text">ご購入・配送・発送について</span>
<div class="faq-tab-indicator"></div>
</a>
<a class="faq-tab" href="#charge">
<span class="faq-tab-text">追加チャージについて</span>
<div class="faq-tab-indicator"></div>
</a>
<a class="faq-tab" href="#trouble">
<span class="faq-tab-text">故障・不良について</span>
<div class="faq-tab-indicator"></div>
</a>
</div>
</div>
<!-- Tab Content -->
<div class="faq-tab-content">
<!-- 利用について -->
<div class="faq-section" id="usage">
<div class="faq-title-section">
<h2 class="faq-title">利用について</h2>
</div>
<div class="faq-accordion" id="faq-accordion-1"></div>
</div>
<!-- ご購入・配送・発送について -->
<div class="faq-section" id="purchase">
<div class="faq-title-section">
<h2 class="faq-title">ご購入・配送・発送について</h2>
</div>
<div class="faq-accordion" id="faq-accordion-2"></div>
</div>
<!-- 追加チャージについて -->
<div class="faq-section" id="charge">
<div class="faq-title-section">
<h2 class="faq-title">追加チャージについて</h2>
</div>
<div class="faq-accordion" id="faq-accordion-3"></div>
</div>
<!-- 故障・不良について -->
<div class="faq-section" id="trouble">
<div class="faq-title-section">
<h2 class="faq-title">故障・不良について</h2>
</div>
<div class="faq-accordion" id="faq-accordion-4"></div>
</div>
</div>
</div>
</div>
</div>
<script>
const mypageLink = `<a href="javascript:void(0);" onclick="linkToMypage()">マイページ</a>`;
const contactLink = `<a href="{{ url('contact') }}">お問い合わせ</a>`;
const faqData1 = [
{
question: "契約や解約・返却、その他の手続きは必要ですか?",
answer: "すべて不要です。<br>ギガ付きでお届けするため、端末をご購入いただくだけでご利用いただけます。"
},
{
question: "月額費用や、購入時の本人確認証は必要ですか?",
answer: "必要ありません。<br>契約不要の買切り商品のため、未成年の方や、スマホの契約ができない方もご利用可能です。"
},
{
question: "有効期間はいつからですか?",
answer: "WiFiルーターの電源を入れてから開始します。<br>追加チャージの場合は現在お使いのギガがなくなるか、有効期間を過ぎてから新たに有効期間カウントされます。"
},
{
question: "ギガを使い切る、有効期間を過ぎるとどうなりますか?",
answer: `ギガを使い切るか、有効期間を過ぎるとインターネットがご利用できなくなります。<br>${mypageLink}で追加ギガをご購入いただくと再度インターネットがご利用いただけます。<br>※ギガがチャージされた後本体の再起動をしてください。`
},
{
question: "ギガの残量の確認はできますか?",
answer: `${mypageLink}でギガ残量や有効期間の確認ができます。`
},
{
question: "IMEI番号が知りたい",
answer: "液晶付きモデルのMR1の場合<br>・ルーターの電源を入れる<br>・3回横にスライドする<br>・【端末情報】にIMEI番号(3551から始まる15桁の数字)の記載があります。<br><br>液晶なしモデルのU20の場合<br>背面のシールにIMEI番号(8617から始まる15桁の数字)の記載があります。"
},
{
question: "法人での利用を検討しています",
answer: `請求書、納品書の発行可能です。<br>数台から数百台のご購入にも対応しておりますので${contactLink}ください。`
},
{
question: "海外で使えますか?",
answer: "【MR1】【U20】は136の国と地域に対応しています。<br>渡航先の国を指定して海外ギガを購入できます。<br>現地で電源オンするとGPSで国を特定し日本と同じようにご利用可能です。"
},
{
question: "SIMを入れた場合、クラウドSIMとどちらが優先されますか?",
answer: "端末の設定で手動で切替が可能です。物理SIM/クラウドSIMの自動切換えはされません。"
},
{
question: "保証はありますか?",
answer: "・新品:1年保証<br>・アウトレット品、Amazon整備品:6か月(180日)<br>※自然故障のみ対象となり、新品は修理、その他は交換対応となります。"
}
];
const faqData2 = [
{
question: "領収書は発行できますか?",
answer: "会員登録をして商品をご購入いただいた場合は、マイページの「購入履歴」より領収書を発行いただけます。<br>会員登録をされずにご購入される場合で、領収書をご希望の方は、ご注文時のお問い合わせ欄に「領収書希望」とご記入ください。<br>また、宛名にご希望がある場合は、あわせてお問い合わせ欄へご記入ください。<br>特にご指定がない場合は、ご注文者様のお名前を宛名として発行いたします。"
},
{
question: "どのようにいつ届きますか?",
answer: "追加チャージは配送商品はございません。<br>モバイルルーター本体をご購入いただいた場合はヤマト運輸の宅急便かネコポス(ポスト投函)でお届けします。<br>送料は当社負担いたします。<br>平日15時までに決済完了したご注文は当日発送します。<br>お届けの目安は本州であれば翌日、北海道は翌々日、沖縄は3~5日程度です。"
},
{
question: "配送状況を確認できますか?",
answer: `発送完了メールに記載の問い合わせ番号でご確認ください。<br>ヤマト運輸<br><a href="https://toi.kuronekoyamato.co.jp/cgi-bin/tneko" target="_blank" rel="noopener noreferrer">https://toi.kuronekoyamato.co.jp/cgi-bin/tneko</a>`
},
{
question: "配送時間の指定はできますか?",
answer: "指定はできません。<br>宅急便の場合、ご不在の場合は不在票が届きますのでヤマト運輸にご連絡お願いします。"
}
];
const faqData3 = [
{
question: "追加ギガチャージはどうやってやりますか?",
answer: `${mypageLink}でご希望のギガ数をお選びいただき購入可能です。<br>ギガ数と有効期間を選択していただき、IMEI番号の入力をお願いします。<br>お支払いはクレジットカード、銀行振込(バーチャル口座)、コンビニ払い、PayPayに対応しています。`
},
{
question: "追加チャージはいつ反映されますか?",
answer: "決済完了後、最短15分以内に追加ギガが反映されます。<br>※銀行振込(バーチャル口座)・コンビニ払いは、反映までに数時間程かかる場合がございます。"
},
{
question: "ギガがまだ残っている状態でも追加ギガを購入できますか?",
answer: "ご購入可能です。<br>ストック分として反映されます。"
}
];
const faqData4 = [
{
question: "インターネット通信が遅い・つながらない",
answer: "以下の改善策をお試しください。<br>1. WiFiルーター・スマートフォン等の端末の再起動<br>2. スマートフォン等のWiFi設定の削除の後、再設定<br>3. WiFiルーターのネットワーク最適化または初期化<br>お試しいただき改善されない場合はお問い合わせください。"
},
{
question: "電源が入らない・充電が出来ない",
answer: `パソコン等のUSBではなく、直接コンセントから30分程度充電していただき、30秒以上長押ししてください。<br>お試しいただき改善されない場合は${contactLink}ください。`
},
{
question: "急に通信ができなくなった",
answer: `ご利用ギガの有効期間、もしくは使い切った可能性があります。<br>${mypageLink}にてご確認ください。<br>ギガがない場合は、追加ギガをチャージすると再度利用できます。<br>解決しない場合は${contactLink}ください。`
},
{
question: "ギガの減りが早い気がする",
answer: "通信量が増える原因になりやすい操作は以下の通りです。<br>ご利用の端末設定もあわせてご確認ください。<br>・OSやアプリの自動アップデート<br>・高画質での動画視聴<br>・写真や動画のバックアップ<br><br>対策として、以下の設定・操作をお勧めします。<br>・接続機器の各種設定変更<br>・使わない時間は端末の電源を切る(長押しで完全OFF)"
}
];
function randerFaqItem(faqData) {
return `<div class="faq-item">
<div class="faq-question">
<div class="faq-question-content">
<div class="faq-question-label">
<span class="faq-label-text">質問</span>
</div>
<div class="faq-question-text">${faqData.question}</div>
</div>
<button class="faq-toggle-btn">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.99805 3.23145L7.99707 3.23242L7.99609 3.23145L1.96289 9.26563L3.4707 10.7734L7.99707 6.24707L12.5234 10.7734L14.0313 9.26562L7.99805 3.23145Z" fill="black"/>
</svg>
</button>
</div>
<div class="faq-answer">
<div class="faq-answer-content">
<div class="faq-answer-label">
<span class="faq-label-text faq-label-text-white">回答</span>
</div>
<div class="faq-answer-text">
<p>${faqData.answer}</p>
</div>
</div>
</div>
</div>
`
}
function renderFaqSection(data, selector) {
const container = document.querySelector(selector);
data.forEach(item => {
container.innerHTML += randerFaqItem(item);
});
}
renderFaqSection(faqData1, '#faq-accordion-1');
renderFaqSection(faqData2, '#faq-accordion-2');
renderFaqSection(faqData3, '#faq-accordion-3');
renderFaqSection(faqData4, '#faq-accordion-4');
// FAQ Accordion Functionality
document.addEventListener('DOMContentLoaded', function() {
const faqItems = document.querySelectorAll('.faq-item');
const faqTabs = document.querySelectorAll('.faq-tab');
const faqSections = document.querySelectorAll('.faq-section');
faqItems.forEach(item => {
const question = item.querySelector('.faq-question');
const answer = item.querySelector('.faq-answer');
question.addEventListener('click', function() {
const isActive = item.classList.contains('active');
if (isActive) {
// Capture real height first so close doesn't stall on unused max-height
answer.style.maxHeight = answer.scrollHeight + 'px';
// Force reflow before collapsing
void answer.offsetHeight;
item.classList.remove('active');
answer.classList.remove('active');
answer.style.maxHeight = '0px';
} else {
item.classList.add('active');
answer.classList.add('active');
answer.style.maxHeight = answer.scrollHeight + 'px';
}
});
answer.addEventListener('transitionend', function(e) {
if (e.propertyName !== 'max-height') return;
if (item.classList.contains('active')) {
// Allow content to grow after open animation finishes
answer.style.maxHeight = 'none';
}
});
});
function setActiveTab(hash) {
faqTabs.forEach(tab => {
tab.classList.toggle('active', tab.getAttribute('href') === hash);
});
}
faqTabs.forEach(tab => {
tab.addEventListener('click', function(e) {
e.preventDefault();
const targetId = this.getAttribute('href');
const target = document.querySelector(targetId);
if (!target) return;
setActiveTab(targetId);
target.scrollIntoView({ behavior: 'smooth', block: 'start' });
history.replaceState(null, '', targetId);
});
});
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
setActiveTab('#' + entry.target.id);
}
});
}, {
rootMargin: '-30% 0px -55% 0px',
threshold: 0
});
faqSections.forEach(section => observer.observe(section));
if (window.location.hash) {
setActiveTab(window.location.hash);
}
});
</script>
{% endblock %}