/* ===== Color palette from top image =====
  --brand: コーラル #f8a36b
  --accent-red: 深紅 #b84646
  --accent-green: セージ #9cc091
  背景系はやわらかいピーチ系トーン
*/
:root{
  --bg:#fffaf7;
  --edge:#fff1e8;
  --ink:#2b2321;
  --muted:#6f615b;
  --brand:#f8a36b;
  --accent-red:#b84646;
  --accent-green:#9cc091;
  --card:#ffffff;
  --line:#06C755; /* LINEボタンは公式カラー */
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;line-height:1.7}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent-red)}

.container {
  width: min(1180px, 96vw);
  margin-inline: auto;
  padding: 16px;
}
.site-header{position:sticky;top:0;background:#fff;border-bottom:1px solid #eee;z-index:50}
.site-header .container{display:flex;justify-content:space-between;align-items:center;gap:16px}
.brand{font-weight:800;text-decoration:none;color:var(--ink)}

/* Nav + Hamburger（ヘッダー専用にスコープ） */
.site-header .nav { display:flex; gap:16px; }
.site-header .nav a{
  text-decoration:none; color:var(--muted);
  padding:10px 6px; border-radius:8px;
}
.site-header .nav a:hover{ color:var(--ink); background:rgba(0,0,0,0.04); }

.hamburger{
  display:none; appearance:none; background:transparent; border:0;
  padding:10px; border-radius:8px;
}
.hamburger span{
  display:block; width:24px; height:2px; background:var(--ink);
  margin:5px 0; transition:.2s;
}

/* Hero */
.hero{background:var(--edge);padding:32px 0}
.hero-inner{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;align-items:center}
.hero h1{font-size:clamp(24px,4vw,40px);line-height:1.3;margin:.3em 0}
.hero p{color:var(--muted);margin:.6em 0 1.2em}
.hero-points{margin:.6em 0 0 1.2em;color:var(--muted)}
.cta{display:flex;gap:12px;flex-wrap:wrap}
/* ★ ボタン中央寄せを強制（ヒーロー＆ユーティリティ） */
.hero .cta, .cta-center{ justify-content:center; width:100%; }

.btn{display:inline-block;padding:12px 18px;border-radius:10px;text-decoration:none;font-weight:800;border:1px solid transparent;box-shadow:0 2px 0 rgba(0,0,0,.06)}
/* LINEボタンのアイコン＆中央揃え */
.btn-line {
  background: var(--line);
  color: #fff;
  display: inline-flex;              /* アイコン＋テキスト横並び */
  align-items: center;               /* 垂直中央揃え */
  justify-content: center;           /* 横方向も中央揃え */
  gap: 8px;                           /* アイコンと文字の間隔 */
  font-weight: 800;
  text-align: center;                 /* 複数行時も中央 */
}
/* アイコン画像 */
.btn-line img {
  display: block;
  width: 32px;   /* 必要に応じてサイズ調整 */
  height: 32px;
}
.btn-lg{padding:14px 22px;font-size:18px}
.center{text-align:center}

/* Sections */
.section {
  padding: 36px 0; /* 上下余白を全体的にコンパクトに */
}
.section.alt{background:var(--edge)}
.intro p{font-size:1.05rem}

.cards{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:12px; margin:0; padding:0; list-style:none;
}
.card{background:var(--card);border:1px solid #eee;border-radius:14px;padding:18px}

.steps{margin-left:1.2em}
.checklist{list-style:disc;margin-left:1.2em}
.tweets{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.tweet{background:#fff;border:1px solid #eee;border-radius:12px;padding:16px}

/* ★ セクションCTAもflexで中央寄せ（より確実に） */
.section-cta{
  margin-top:16px;
  display:flex; justify-content:center; align-items:center; gap:12px;
}
.section-cta .btn{min-width:240px}

.site-footer{border-top:1px solid #eee;background:#fff}
.site-footer .container{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.legal-nav a{color:var(--muted);text-decoration:none;margin-left:12px}
.legal-nav a:hover{color:var(--ink)}

/* ===== Responsive ===== */
@media (max-width:960px){
  .hero-inner{grid-template-columns:1fr}
  /* hamburger mode */
  .hamburger{display:inline-block}
  .site-header .nav{
    position:fixed; inset:auto 0 0 0;
    transform:translateY(100%); transition:transform .25s ease;
    background:#fff; border-top:1px solid #eee; padding:12px 16px;
    gap:8px; z-index:60; justify-content:space-around;
  }
  .site-header .nav.is-open{transform:translateY(0)}
  .site-header .nav a{
    padding:12px 10px; background:#fafafa; border:1px solid #eee; border-radius:10px;
  }
  .cards{grid-template-columns:1fr}
  .tweets{grid-template-columns:1fr}
}

/* hamburger active style */
.nav.is-open + .hamburger{}
.hamburger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.is-open span:nth-child(2){opacity:0}
.hamburger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* スクショ */
.screenshot .slides img { border:1px solid #eee; border-radius:14px; box-shadow:0 6px 20px rgba(0,0,0,.06); }

/* カード内イラスト */
.card-illust{width:84px;height:auto;margin-bottom:10px}

/* 使い方（縦並び＋イラスト） */
.steps-illust li{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.steps-illust img{width:72px;height:auto;flex:0 0 72px;border-radius:10px;background:#fff;border:1px solid #eee}

/* 安心安全（横並び） */
.safety-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.safety-list li{display:flex;gap:10px;align-items:center;background:#fff;border:1px solid #eee;border-radius:12px;padding:12px}
.safety-list img{width:56px;height:auto}

/* 口コミ（イラスト＋吹き出し） */
.tweets-illust .tweet{display:flex;gap:12px;align-items:flex-start}
.tweets-illust img{width:56px;height:auto;border-radius:50%;border:1px solid #eee}

/* FAQ 行頭アイコン */
.faq-item summary{display:flex;align-items:center;gap:10px}
.faq-item summary img{width:28px;height:auto}

/* フッターの整理 */
.footer-grid{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.legal-nav.tidy{display:flex;align-items:center;gap:8px}
.legal-nav.tidy .sep{color:#ccc}

@media (max-width:960px){
  /* 既存のハンバーガーなどは前回CSSのまま */
  .safety-list{grid-template-columns:1fr}
}

/* ===== Screenshot Slider ===== */
.slider{
  position:relative; overflow:hidden; border:1px solid #eee; border-radius:14px; background:#fff;
}
.slider .slides{display:flex;transition:transform .4s ease;will-change:transform}
.slider .slide{min-width:100%;user-select:none}
.slider img{display:block;width:100%;height:auto;object-fit:contain}

/* === ナビゲーションボタン === */
.slider .nav{
  position:absolute; top:50%; transform:translateY(-50%);
  background:rgba(0,0,0,0.5); color:#fff; border:none; border-radius:50%;
  width:44px; height:44px; display:flex; align-items:center; justify-content:center;
  font-size:28px; cursor:pointer; z-index:10; transition:background .3s;
}
.slider .nav:hover{ background:rgba(0,0,0,0.7) }
.slider .nav.prev{ left:10px }
.slider .nav.next{ right:10px }
.slider .nav:focus{ outline:2px solid #fff }

/* === ドット === */
.slider .dots{display:flex;gap:8px;justify-content:center;padding:10px}
.slider .dots button{
  width:10px;height:10px;border-radius:50%;border:0;background:#d9d9d9;cursor:pointer;
}
.slider .dots button.is-active{background:var(--accent-red)}

/* モバイル調整（位置は変えない） */
@media (max-width:960px){
  .slider .nav{width:40px;height:40px;font-size:24px}
  .container{padding:12px}
  .cards{gap:10px}
}
@media (max-width:480px){
  .slider .nav{width:36px;height:36px;font-size:22px}
}

/* Howto cards = features/safetyと統一 */
.howto-cards{margin-top:8px}
.howto-cards .card{position:relative;text-align:left;padding-top:36px}

/* STEPバッジ */
.step-badge{
  position:absolute; top:12px; left:12px;
  display:inline-block; font-weight:800; font-size:.85rem;
  background:var(--accent-red); color:#fff; border-radius:999px;
  padding:6px 10px; line-height:1; letter-spacing:.02em;
  box-shadow:0 2px 0 rgba(0,0,0,.06);
}

/* タイトルの間隔最適化 */
.howto-cards .card h3{margin:.4em 0 .3em}
.howto-cards .card p{margin:0;color:var(--muted)}

/* 使い方カード：画像左・テキスト右にレイアウト */
.howto-cards .card{
  display:grid;
  grid-template-columns: 84px 1fr;   /* 左=画像 幅 / 右=テキスト */
  column-gap:12px;
  row-gap:6px;
  align-items:start;
  padding:16px;
}
.howto-cards .card .card-illust{
  grid-row:1 / span 2;   /* 画像を縦2行ぶんに */
  width:84px; height:auto; margin:0;
  margin-top: 28px; 
}
.howto-cards .card h3{ margin:0; }
.howto-cards .card p{ margin:.25em 0 0; color:var(--muted); }

/* すごく狭い画面では縦積みに自動フォールバック */
@media (max-width:360px){
  .howto-cards .card{
    grid-template-columns: 64px 1fr;
    column-gap:10px;
  }
  .howto-cards .card .card-illust{ width:64px; }
}
/* 締めセクション調整 */
.section.closing h2 {
  margin-bottom: .4em;
}
.section.closing p {
  margin-bottom: 1em;
  color: var(--muted);
}

/* LINEボタンのアイコン付き中央揃え */
.btn-line {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.btn-line img {
  width: 20px;
  height: 20px;
  display: block;
  border: 0;
}

/* 特徴カード：画像左・テキスト右 */
#features .card {
  display: grid;
  grid-template-columns: 84px 1fr;  /* 左画像, 右テキスト */
  column-gap: 12px;
  row-gap: 6px;
  align-items: start;
  padding: 16px;
}

#features .card .card-illust {
  grid-row: 1 / span 2; /* タイトル＋本文の高さ分に縦伸び */
  width: 84px;
  height: auto;
  margin: 0;
}

#features .card h3 {
  margin: 0;
}
#features .card p {
  margin: .25em 0 0;
  color: var(--muted);
}

/* 画面幅が狭い場合（1カラム時）も横配置維持 */
@media (max-width: 960px) {
  #features .card {
    grid-template-columns: 72px 1fr;
    column-gap: 10px;
  }
  #features .card .card-illust {
    width: 72px;
  }
}

/* Chat-style FAQ */
.qa-chat{display:flex;flex-direction:column;gap:12px;margin:0;padding:0}
.qa-chat .msg{display:flex;align-items:flex-start;gap:10px;list-style:none}
.qa-chat .avatar{
  width:28px;height:28px;border-radius:50%;flex:0 0 28px;
  display:flex;align-items:center;justify-content:center;
  font-size:.8rem;font-weight:800;color:#fff;
  background:var(--accent-red);
}
.qa-chat .bubble{
  max-width:min(760px,84%);
  padding:12px 14px;border-radius:14px;border:1px solid #eee;
  background:#fff;line-height:1.6
}
/* Answer: 右寄せ、色替え、吹き出し向き */
.qa-chat .msg.a{margin-left:auto;flex-direction:row-reverse}
.qa-chat .msg.a .avatar{background:var(--accent-green)}
.qa-chat .msg.a .bubble{
  background:var(--edge);
  border-color:#e8ded8; /* うっすら */
}

/* ちょい吹き出し感（角丸の片側強調） */
.qa-chat .msg.q .bubble{border-top-left-radius:4px}
.qa-chat .msg.a .bubble{border-top-right-radius:4px}

/* スマホ最適化 */
@media (max-width:480px){
  .qa-chat .bubble{max-width:92%}
}
/* トップへ戻るボタン：位置を上げ、LINE色に統一 */
#backToTop{
  position: fixed;
  bottom: 40px;          /* ← デスクトップ時の下マージンを広めに */
  right: 20px;
  width: 48px;
  height: 48px;
  border: none;
  border-radius: 50%;
  background: var(--line);   /* ← LINEボタンと同じ色 */
  color: #fff;
  font-size: 20px;
  font-weight: bold;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s ease, visibility .3s ease, transform .15s ease, background .2s ease;
  z-index: 200;              /* フッター/他要素より前面に */
  box-shadow: 0 6px 18px rgba(0,0,0,.12);
}
#backToTop:hover{ background: #05b44d; }  /* 少し濃い緑に */
#backToTop:focus{ outline: 3px solid rgba(255,255,255,.9); outline-offset: 2px; }
#backToTop.show{ opacity:1; visibility:visible; }

/* モバイル：フッターメニューと重ならないよう更に上げる */
@media (max-width: 960px){
  #backToTop{
    bottom: 96px;        /* ← ここがポイント：下の固定メニューを避ける */
    right: 16px;
    width: 44px;
    height: 44px;
    font-size: 18px;
  }
}
@media (max-width: 480px){
  #backToTop{
    bottom: 100px;       /* 小画面はさらに余裕を持たせる */
    right: 12px;
    width: 40px;
    height: 40px;
    font-size: 18px;
  }
}

/* 法的文書の読みやすさUP（任意） */
main h1{ margin-bottom:.4em; }
main h2{ margin-top:1.2em; margin-bottom:.3em; }
dl{ display:grid; grid-template-columns: 180px 1fr; gap:10px 12px; }
dt{ font-weight:700; color:var(--ink); }
dd{ margin:0; color:var(--muted); }
@media (max-width:640px){
  dl{ grid-template-columns: 1fr; }
}
/* ホームへ戻るリンク */
.home-link {
  font-size: 0.9rem;
  color: var(--accent-red);
  text-decoration: none;
  margin-left: auto;
}
.home-link:hover {
  text-decoration: underline;
}

/* モバイルでの配置 */
@media (max-width: 960px) {
  .home-link {
    margin-left: 0;
    font-size: 0.95rem;
    padding: 8px 0;
  }
}
