/* ==========================================================
   熊本地震チャリティーセミナー LP（rmms.jp/lp/2026kumamoto/）
   2026年8月7日（金）東京・高田馬場／主催 リアルマーケティングマスタースクール

   配色は RMMSデザイン言語（.claude/design-guides/projects/RMMS.md）に準拠。
     ビビッドブルー #2563EB … メイン、リンク、強調
     ディープブルー #1E40AF … 金額、見出しの強調
     ネイビー      #1E3A5F … 見出し、テーブルヘッダ、FVグラデーション
     グリーン      #10B981 … 「注文」側のアクセント（第1部の帯にも使用）
     オレンジ      #F97316 … CTAボタンと参加特典。ここ以外には使わない
   ゴールド・茶系の高級路線はデザイン言語で禁止のため不使用。

   セクション構成（index.html と対応）:
     fv → disaster → why → order → problem → content（第1部/第2部）
     → ai → fear → lecturer → outline → price → donation → faq → ps

   注記: 本ファイルは16KBを超える必要がある。rmms_put.sh は
   「16KB超のテキスト」のみ --ftp-ssl-control で送る設計で、
   16KB以下は全TLSとなり Xserver 側が 450 を返して0バイトで着地する
   （2026-07-29 実測。15,875Bで2回連続の切り詰め）。
   ========================================================== */

:root{
  --blue:#2563EB;
  --blue-deep:#1E40AF;
  --navy:#1E3A5F;
  --green:#10B981;
  --orange:#F97316;
  --text:#1F2937;
  --sub:#6B7280;
  --light:#F3F4F6;
  --white:#FFFFFF;
  --max:880px;
}

*{margin:0;padding:0;box-sizing:border-box;}

html{scroll-behavior:smooth;}

body{
  font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",YuGothic,Meiryo,sans-serif;
  color:var(--text);
  line-height:1.9;
  font-size:16px;
  background:var(--white);
  -webkit-text-size-adjust:100%;
}

img{max-width:100%;height:auto;display:block;}

/* ---------- プログレスバー ---------- */
.progress-bar{
  position:fixed;top:0;left:0;width:100%;height:4px;
  background:rgba(30,58,95,.12);z-index:100;
}
.progress-bar span{
  display:block;height:100%;width:0;
  background:linear-gradient(90deg,var(--blue),var(--green));
  transition:width .1s linear;
}

/* ---------- FV ---------- */
.fv{
  background:linear-gradient(160deg,#1E3A5F 0%,#1E40AF 55%,#2563EB 100%);
  color:var(--white);
  padding:72px 20px 64px;
  text-align:center;
}
.fv-inner{max-width:var(--max);margin:0 auto;}

.fv-badge{
  display:inline-block;
  border:1px solid rgba(255,255,255,.55);
  border-radius:999px;
  padding:6px 20px;
  font-size:.82rem;
  letter-spacing:.08em;
  margin-bottom:28px;
}

.fv-title{
  font-size:2.5rem;
  line-height:1.45;
  font-weight:700;
  letter-spacing:.01em;
  margin-bottom:28px;
}

.fv-lead{
  font-size:1.12rem;
  line-height:2;
  margin-bottom:20px;
}

.fv-note{
  font-size:1rem;
  color:#BFDBFE;
  border-top:1px solid rgba(255,255,255,.25);
  border-bottom:1px solid rgba(255,255,255,.25);
  padding:14px 0;
  margin-bottom:34px;
}

.fv-facts{
  list-style:none;
  display:table;
  text-align:left;
  background:rgba(255,255,255,.1);
  border-radius:10px;
  padding:20px 26px;
  margin:0 auto 34px;
}
.fv-facts li{
  font-size:1rem;
  padding:5px 0;
}
.fv-facts li span{
  display:inline-block;
  width:3.6em;
  color:#BFDBFE;
  font-size:.85rem;
  letter-spacing:.12em;
}

.fv-sub{
  font-size:.9rem;
  color:#BFDBFE;
  margin-top:18px;
}

/* ---------- ボタン ---------- */
.btn{
  display:inline-block;
  text-decoration:none;
  font-weight:700;
  border-radius:8px;
  padding:16px 40px;
  transition:transform .15s ease,box-shadow .15s ease,background .15s ease;
}
.btn:hover{transform:translateY(-2px);}

.btn-primary{
  background:var(--orange);
  color:var(--white);
  box-shadow:0 6px 18px rgba(249,115,22,.35);
}
.btn-primary:hover{background:#EA6A0C;}

.btn-lg{font-size:1.15rem;padding:20px 52px;}

.btn-cta{
  background:var(--orange);
  color:var(--white);
  width:100%;
  text-align:center;
  padding:14px 0;
  box-shadow:0 4px 12px rgba(249,115,22,.3);
}
.btn-cta:hover{background:#EA6A0C;}

.cta-mid{text-align:center;margin-top:44px;}

/* ---------- セクション共通 ---------- */
.sec{padding:76px 20px;}
.sec-white{background:var(--white);}
.sec-gray{background:var(--light);}
.sec-accent{background:linear-gradient(180deg,#EFF6FF 0%,#DBEAFE 100%);}

.inner{max-width:var(--max);margin:0 auto;}
.inner-narrow{max-width:720px;}

.sec h2{
  font-size:1.85rem;
  color:var(--navy);
  line-height:1.5;
  margin-bottom:34px;
  padding-bottom:16px;
  border-bottom:3px solid var(--blue);
  display:inline-block;
}

.sec h3{
  font-size:1.3rem;
  color:var(--navy);
  margin:44px 0 18px;
  line-height:1.6;
}

.sec p{margin-bottom:22px;}

.sec-lead{
  font-size:1.05rem;
  color:var(--sub);
  margin-bottom:34px;
}

.lead-strong{
  font-size:1.18rem;
  font-weight:700;
  color:var(--navy);
  line-height:1.8;
}

.source{
  font-size:.8rem;
  color:var(--sub);
  line-height:1.7;
  border-top:1px solid #E5E7EB;
  padding-top:14px;
  margin-top:34px;
}

/* ---------- 数字ボックス ---------- */
.figure-box{
  background:var(--navy);
  color:var(--white);
  border-radius:12px;
  padding:34px 30px;
  text-align:center;
  margin:38px 0;
}
.figure-num{
  font-size:3.2rem;
  font-weight:700;
  line-height:1.2;
  color:#93C5FD;
  margin-bottom:12px !important;
}
.figure-cap{
  font-size:.98rem;
  line-height:1.9;
  margin-bottom:0 !important;
}

/* ---------- 比較 ---------- */
.compare{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin:38px 0;
}
.compare-item{
  background:var(--white);
  border:1px solid #DBEAFE;
  border-radius:10px;
  padding:26px 22px;
  text-align:center;
}
.compare-item p{margin-bottom:0;}
.compare-label{
  font-size:1.25rem;
  font-weight:700;
  color:var(--sub);
  margin-bottom:10px !important;
}
.compare-item-strong{
  border:2px solid var(--green);
  background:#ECFDF5;
}
.compare-item-strong .compare-label{color:var(--green);}

/* ---------- チェックリスト ---------- */
.check-list{
  list-style:none;
  background:var(--light);
  border-radius:10px;
  padding:26px 30px;
  margin:30px 0;
}
.sec-white .check-list{background:#F9FAFB;border:1px solid #E5E7EB;}
.check-list li{
  padding:9px 0 9px 30px;
  position:relative;
  line-height:1.8;
}
.check-list-ng li::before{
  content:"×";
  position:absolute;left:4px;top:9px;
  color:#DC2626;font-weight:700;
}

/* ---------- パート ---------- */
.part{
  background:var(--white);
  border-radius:14px;
  padding:38px 34px;
  margin-bottom:30px;
  box-shadow:0 4px 20px rgba(30,58,95,.07);
  border-top:6px solid var(--blue);
}
.part-yamaki{border-top-color:var(--green);}
.part-shimada{border-top-color:var(--blue);}

.part-time{
  display:inline-block;
  background:var(--navy);
  color:var(--white);
  font-size:.86rem;
  letter-spacing:.06em;
  border-radius:6px;
  padding:5px 16px;
  margin-bottom:18px !important;
}
.part h3{margin-top:0;font-size:1.45rem;}
.part-lecturer{
  color:var(--sub);
  font-size:.92rem;
  border-bottom:1px solid #E5E7EB;
  padding-bottom:16px;
  margin-bottom:24px !important;
}
.part-note{
  background:#FFF7ED;
  border-left:4px solid var(--orange);
  padding:14px 18px;
  font-size:.95rem;
  margin-bottom:0 !important;
}

/* ---------- 参加特典（ガイドブック） ---------- */
.gift-box{
  background:#FFF7ED;
  border:2px solid var(--orange);
  border-radius:12px;
  padding:26px 26px 22px;
  margin-top:30px;
}
.gift-title{
  font-size:1.15rem;
  font-weight:700;
  color:#C2410C;
  text-align:center;
  margin-bottom:20px !important;
}
.gift-list{list-style:none;}
.gift-list li{
  background:var(--white);
  border-radius:8px;
  padding:16px 18px;
  margin-bottom:12px;
  line-height:1.8;
  font-weight:700;
  color:var(--navy);
}
.gift-label{
  display:inline-block;
  background:var(--orange);
  color:var(--white);
  font-size:.78rem;
  font-weight:700;
  border-radius:4px;
  padding:3px 10px;
  margin-right:10px;
  vertical-align:2px;
}
.gift-note{
  display:block;
  font-weight:400;
  font-size:.9rem;
  color:var(--sub);
  margin-top:4px;
}
.gift-foot{
  font-size:.92rem;
  text-align:center;
  margin-bottom:0 !important;
  color:#7C2D12;
}
/* ---------- ガイドブックのもくじ ---------- */
.toc-box{
  border:1px solid #E5E7EB;
  border-radius:12px;
  padding:26px 26px 22px;
  margin-top:20px;
  background:#FAFAFA;
}
.toc-title{
  font-size:1.05rem;
  font-weight:700;
  color:var(--navy);
  margin-bottom:20px !important;
  text-align:center;
}
.toc-flex{
  display:grid;
  grid-template-columns:1fr 190px;
  gap:24px;
  align-items:start;
}
.toc-list{
  list-style:none;
  counter-reset:toc;
}
.toc-list li{
  counter-increment:toc;
  position:relative;
  padding:8px 0 8px 34px;
  border-bottom:1px dashed #E5E7EB;
  line-height:1.7;
  font-size:.98rem;
}
.toc-list li::before{
  content:counter(toc);
  position:absolute;left:6px;top:8px;
  color:var(--blue);
  font-weight:700;
}
.toc-list li:last-child{border-bottom:none;}
.toc-hl{
  background:#EFF6FF;
  border-radius:6px;
  font-weight:700;
  color:var(--blue-deep);
}
.toc-figs{display:grid;gap:14px;}
.toc-figure{
  border:1px solid #E5E7EB;
  border-radius:8px;
  overflow:hidden;
  background:var(--white);
}
.toc-figure img{width:100%;display:block;}
.toc-figure figcaption{
  font-size:.78rem;
  color:var(--sub);
  text-align:center;
  padding:6px 0;
}
.toc-foot{
  font-size:.92rem;
  color:var(--sub);
  margin:18px 0 0 !important;
  padding-top:16px;
  border-top:1px solid #E5E7EB;
  line-height:1.8;
}
.price-howto{
  font-size:.9rem;
  color:var(--sub);
  margin-bottom:20px;
}
.price-gift{
  background:#FFF7ED;
  border-left:4px solid var(--orange);
  padding:12px 18px;
  font-size:.95rem;
  margin-bottom:20px;
}

/* ---------- デモボックス ---------- */
.demo-box{
  background:#EFF6FF;
  border:2px solid var(--blue);
  border-radius:12px;
  padding:30px 28px;
  margin-top:34px;
}
.demo-title{
  font-size:1.2rem;
  font-weight:700;
  color:var(--blue-deep);
  margin-bottom:14px !important;
}
.demo-box p:last-child{margin-bottom:0;}
.demo-note{
  font-size:.9rem;
  color:var(--sub);
  border-top:1px solid #BFDBFE;
  padding-top:16px;
  line-height:1.8;
}

/* ---------- 写真（贈呈記録など） ---------- */
.photo-figure{
  max-width:480px;
  margin:30px auto;
  border-radius:12px;
  overflow:hidden;
  background:var(--white);
  box-shadow:0 4px 16px rgba(30,58,95,.08);
}
.photo-figure img{width:100%;}
.photo-figure figcaption{
  font-size:.88rem;
  color:var(--sub);
  padding:12px 18px;
  text-align:center;
}

/* ---------- QA（恐れの解除） ---------- */
.qa-block{margin-top:34px;}
.qa{
  background:var(--white);
  border-radius:10px;
  padding:26px 28px;
  margin-bottom:18px;
}
.qa-q{
  font-size:1.1rem;
  font-weight:700;
  color:var(--navy);
  padding-left:26px;
  position:relative;
  margin-bottom:12px !important;
}
.qa-q::before{
  content:"";
  position:absolute;left:0;top:.65em;
  width:14px;height:3px;background:var(--orange);
}
.qa p:last-child{margin-bottom:0;}

/* ---------- 講師 ---------- */
.profile{
  display:grid;
  grid-template-columns:180px 1fr;
  gap:30px;
  align-items:start;
  background:var(--light);
  border-radius:12px;
  padding:30px;
  margin-bottom:24px;
}
.profile-photo{
  background:#E5E7EB;
  border-radius:10px;
  overflow:hidden;
  aspect-ratio:4/5;
}
.profile-photo img{width:100%;height:100%;object-fit:cover;}
/* 写真は顔中心にクロップ済みのため、位置指定は中央のまま */
.photo-yamaki,.photo-shimada{object-position:center;}
.profile-name{
  font-size:1.35rem;
  font-weight:700;
  color:var(--navy);
  margin-bottom:4px !important;
}
.profile-role{
  color:var(--blue);
  font-size:.95rem;
  font-weight:700;
  margin-bottom:16px !important;
}
.profile-body p:last-child{margin-bottom:0;}

/* ---------- テーブル ---------- */
.outline-table,.timetable{
  width:100%;
  border-collapse:collapse;
  background:var(--white);
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 2px 10px rgba(30,58,95,.06);
}
.outline-table th,.timetable th{
  background:var(--navy);
  color:var(--white);
  text-align:left;
  padding:16px 20px;
  font-size:.95rem;
  white-space:nowrap;
  vertical-align:top;
  width:8.5em;
}
.outline-table td,.timetable td{
  padding:16px 20px;
  border-bottom:1px solid #E5E7EB;
  line-height:1.8;
}
.timetable th{width:10em;}

/* ---------- 料金 ---------- */
.plan{
  border:1px solid #E5E7EB;
  border-radius:14px;
  padding:32px 32px 30px;
  margin-bottom:26px;
  box-shadow:0 4px 18px rgba(30,58,95,.06);
}
.plan h3{margin-top:0;}

.plan-table{
  width:100%;
  border-collapse:collapse;
  margin:22px 0 26px;
}
.plan-table th,.plan-table td{
  padding:15px 18px;
  border-bottom:1px solid #E5E7EB;
  font-size:1.02rem;
}
.plan-table th{
  text-align:left;
  font-weight:700;
  color:var(--navy);
}
.plan-table td{
  text-align:right;
  white-space:nowrap;
  font-weight:700;
  color:var(--blue-deep);
  font-size:1.25rem;
}
.plan-main th,.plan-main td{background:#EFF6FF;}
.plan-table tr:last-child th,.plan-table tr:last-child td{border-bottom:none;}

.apply{text-align:center;}
.apply-guide{
  font-size:.95rem;
  color:var(--sub);
  line-height:1.85;
  margin-bottom:20px !important;
  text-align:left;
}
.apply-guide b{color:var(--navy);}

.price-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin-bottom:34px;
}
.price-card{
  border:1px solid #E5E7EB;
  border-radius:12px;
  padding:28px 22px;
  text-align:center;
  background:var(--white);
  display:flex;
  flex-direction:column;
}
.price-card-main{
  border:2px solid var(--blue);
  box-shadow:0 6px 20px rgba(37,99,235,.13);
}
.price-label{
  font-size:1.15rem;
  font-weight:700;
  color:var(--navy);
  margin-bottom:4px !important;
}
.price-desc{
  font-size:.88rem;
  color:var(--sub);
  margin-bottom:16px !important;
}
.price-amount{
  font-size:2.1rem;
  font-weight:700;
  color:var(--blue-deep);
  line-height:1.2;
  margin-bottom:20px !important;
  margin-top:auto;
}
.price-amount span{font-size:1rem;margin-left:2px;}
.price-note{
  font-size:.92rem;
  color:var(--sub);
  background:var(--light);
  border-radius:8px;
  padding:18px 22px;
}

/* ---------- FAQ ---------- */
.faq{
  border-bottom:1px solid #E5E7EB;
  padding:22px 0;
}
.faq-q{
  font-weight:700;
  color:var(--navy);
  font-size:1.05rem;
  padding-left:28px;
  position:relative;
  margin-bottom:10px !important;
}
.faq-q::before{
  content:"Q";
  position:absolute;left:0;top:0;
  color:var(--blue);
  font-weight:700;
}
.faq-a{
  padding-left:28px;
  margin-bottom:0 !important;
  color:#374151;
}

/* ---------- 追伸・フッター ---------- */
.sign{
  text-align:right;
  font-weight:700;
  color:var(--navy);
  margin-top:34px;
}
.footer{
  background:var(--navy);
  color:#BFDBFE;
  text-align:center;
  padding:36px 20px 96px;
  font-size:.88rem;
  line-height:2;
}
.footer p{margin:0;}

/* ---------- フローティングCTA ---------- */
.floating-cta{
  position:fixed;
  right:20px;bottom:20px;
  background:var(--orange);
  color:var(--white);
  text-decoration:none;
  font-weight:700;
  padding:15px 28px;
  border-radius:999px;
  box-shadow:0 8px 24px rgba(249,115,22,.4);
  opacity:0;
  transform:translateY(20px);
  pointer-events:none;
  transition:opacity .3s ease,transform .3s ease;
  z-index:90;
}
.floating-cta.show{opacity:1;transform:translateY(0);pointer-events:auto;}

/* ---------- スクロールアニメーション ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease;}
.reveal.visible{opacity:1;transform:translateY(0);}

/* ---------- レスポンシブ ---------- */
@media (max-width:768px){
  body{font-size:15.5px;}
  .fv{padding:52px 18px 48px;}
  .fv-title{font-size:1.85rem;}
  .fv-lead{font-size:1rem;}
  .fv-facts{display:block;padding:18px 20px;}
  .sec{padding:56px 18px;}
  .sec h2{font-size:1.5rem;}
  .sec h3{font-size:1.18rem;}
  .part{padding:28px 22px;}
  .compare{grid-template-columns:1fr;}
  .price-grid{grid-template-columns:1fr;}
  .plan{padding:24px 18px 22px;}
  .plan-table th,.plan-table td{padding:12px 10px;font-size:.95rem;}
  .plan-table td{font-size:1.1rem;}
  .apply .btn-lg{display:block;padding:17px 10px;}
  .profile{grid-template-columns:1fr;gap:20px;}
  .toc-flex{grid-template-columns:1fr;}
  .toc-figs{grid-template-columns:1fr 1fr;gap:12px;}
  .toc-box{padding:20px 18px 18px;}
  .profile-photo{max-width:200px;margin:0 auto;min-height:200px;}
  .outline-table th,.timetable th{
    display:block;width:100%;white-space:normal;
    padding:12px 16px 8px;
  }
  .outline-table td,.timetable td{display:block;padding:12px 16px;}
  .btn-lg{font-size:1.05rem;padding:17px 34px;}
  .floating-cta{
    right:12px;left:12px;bottom:12px;
    text-align:center;padding:16px 0;
  }
  .footer{padding-bottom:110px;}
  .figure-num{font-size:2.6rem;}
}
