/* ===== ほどく数学 LP styles ===== */
:root{
  --navy:#1f4e79;        /* 教材と同系の濃紺 */
  --navy-d:#163a5c;
  --accent:#e8a33d;      /* ほどく＝あたたかいアクセント */
  --ink:#1c2530;
  --muted:#5d6677;
  --line:#e4e8ee;
  --bg:#ffffff;
  --bg-alt:#f5f8fc;
  --bg-cta:#eaf2fb;
  --radius:14px;
  --maxw:1080px;
  --shadow:0 8px 30px rgba(31,78,121,.10);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Sans",sans-serif;
  color:var(--ink);background:var(--bg);line-height:1.85;
  -webkit-font-smoothing:antialiased;font-size:16px;
}
.container{max-width:var(--maxw);margin:0 auto;padding:0 20px}
.container.narrow{max-width:680px}
a{color:inherit;text-decoration:none}
b{font-weight:700;color:var(--navy)}

/* ---- Header ---- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{font-family:"Noto Serif JP",serif;font-weight:700;font-size:1.35rem;color:var(--navy);letter-spacing:.02em}
.brand span{color:var(--accent)}
.nav{display:flex;align-items:center;gap:22px}
.nav a{font-size:.93rem;font-weight:500;color:var(--ink)}
.nav a:hover{color:var(--navy)}

/* ---- Buttons ---- */
.btn{display:inline-block;background:var(--navy);color:#fff;font-weight:700;
  padding:14px 26px;border:none;border-radius:999px;cursor:pointer;font-size:1rem;
  transition:transform .12s ease,background .2s ease;white-space:nowrap}
.btn:hover{background:var(--navy-d);transform:translateY(-1px)}
.btn-sm{padding:9px 18px;font-size:.9rem}

/* ---- Hero ---- */
.hero{background:linear-gradient(180deg,#f7fbff 0%,#eaf2fb 100%);padding:84px 0 96px;text-align:center}
.eyebrow{display:inline-block;background:#fff;color:var(--navy);border:1px solid var(--line);
  font-weight:700;font-size:.82rem;letter-spacing:.08em;padding:6px 16px;border-radius:999px;margin-bottom:22px}
.hero-title{font-family:"Noto Serif JP",serif;font-weight:700;font-size:clamp(1.9rem,5.2vw,3.1rem);
  line-height:1.45;color:var(--ink);letter-spacing:.01em}
.hero-title .hl{color:var(--navy);background:linear-gradient(transparent 62%,#ffe1a8 62%)}
.hero-sub{margin:24px auto 34px;max-width:620px;color:var(--muted);font-size:1.02rem}
.cta-form{display:flex;gap:10px;justify-content:center;max-width:520px;margin:0 auto;flex-wrap:wrap}
.cta-form input[type=email]{flex:1 1 240px;min-width:0;padding:14px 18px;border:1.5px solid var(--line);
  border-radius:999px;font-size:1rem;font-family:inherit;background:#fff}
.cta-form input[type=email]:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(31,78,121,.12)}
.cta-note{margin-top:14px;font-size:.82rem;color:var(--muted)}

/* ---- Section base ---- */
.section{padding:78px 0}
.section-alt{background:var(--bg-alt)}
.section-title{font-family:"Noto Serif JP",serif;font-weight:700;font-size:clamp(1.4rem,3.6vw,2rem);
  text-align:center;color:var(--ink);line-height:1.5}
.section-lead{text-align:center;color:var(--muted);margin:18px auto 44px;max-width:640px}

/* ---- 3 cards ---- */
.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:32px 26px;box-shadow:var(--shadow)}
.card-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:12px;
  background:var(--bg-cta);color:var(--navy);font-weight:900;font-size:1.3rem;margin-bottom:16px}
.card h3{font-size:1.08rem;margin-bottom:10px;color:var(--navy)}
.card p{color:var(--muted);font-size:.95rem}

/* ---- Steps ---- */
.steps{display:flex;align-items:stretch;justify-content:center;gap:14px;flex-wrap:wrap;margin-bottom:34px}
.step{flex:1 1 220px;max-width:280px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:26px 24px;text-align:center;box-shadow:var(--shadow)}
.step-no{display:inline-block;font-weight:900;font-size:.8rem;letter-spacing:.1em;color:var(--accent);margin-bottom:8px}
.step h3{font-family:"Noto Serif JP",serif;font-size:1.25rem;color:var(--navy);margin-bottom:6px}
.step p{color:var(--muted);font-size:.92rem}
.step .muted{display:block;margin-top:6px;font-size:.8rem;color:#9aa6b4}
.step-arrow{display:flex;align-items:center;font-size:1.6rem;color:var(--accent);font-weight:700}
.punch{text-align:center;font-size:1.08rem;line-height:1.9;margin:8px auto 40px;max-width:720px}

/* ---- Compare ---- */
.compare{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:760px;margin:0 auto}
.compare-col{border:1px solid var(--line);border-radius:var(--radius);padding:24px;background:#fff}
.compare-col h4{font-size:1rem;margin-bottom:12px;color:var(--muted)}
.compare-col ul{list-style:none}
.compare-col li{padding:6px 0 6px 24px;position:relative;font-size:.95rem;color:var(--muted)}
.compare-col li::before{content:"•";position:absolute;left:6px;color:#c3cdd9}
.compare-ours{border-color:var(--navy);box-shadow:var(--shadow);background:#fbfdff}
.compare-ours h4{color:var(--navy);font-weight:700}
.compare-ours li{color:var(--ink)}
.compare-ours li::before{content:"✓";color:var(--navy);font-weight:700}

/* ---- Samples ---- */
.samples{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.sample{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.sample img{display:block;width:100%;height:300px;object-fit:cover;object-position:top center;background:#fff;border-bottom:1px solid var(--line)}
.sample figcaption{padding:14px 16px;font-size:.9rem;font-weight:500;color:var(--navy);text-align:center}

/* ---- CTA section ---- */
.section-cta{background:linear-gradient(180deg,#eaf2fb 0%,#dcebfa 100%);text-align:center}

/* ---- Footer ---- */
.site-footer{background:var(--navy);color:#cdddf0;padding:46px 0 26px}
.footer-inner{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap}
.footer-brand .brand{color:#fff;font-size:1.3rem}
.footer-brand .brand span{color:var(--accent)}
.footer-brand p{margin-top:8px;font-size:.88rem;color:#a9c4de}
.footer-links{display:flex;gap:22px;flex-wrap:wrap}
.footer-links a{font-size:.92rem;color:#cdddf0}
.footer-links a:hover{color:#fff}
.copyright{text-align:center;margin-top:30px;font-size:.8rem;color:#86a6c6}

/* ---- Responsive ---- */
@media(max-width:820px){
  .cards-3,.samples{grid-template-columns:1fr}
  .compare{grid-template-columns:1fr}
  .step-arrow{transform:rotate(90deg)}
  .nav a:not(.btn){display:none}
  .section{padding:60px 0}
  .hero{padding:64px 0 72px}
}
@media(max-width:420px){
  .cta-form .btn{flex:1 1 100%}
}

/* ===== honeypot ===== */
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}

/* ===== ほどく体験 (interactive demo) ===== */
.section-demo{background:#fff}
.demo-legend{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:26px}
.lg{font-size:.78rem;font-weight:700;padding:5px 13px;border-radius:999px;border:1px solid}
.lg1{color:#2f6db0;background:#eaf2fb;border-color:#cfe0f3}
.lg2{color:#2e8b57;background:#eaf6ee;border-color:#cfe9d8}
.lg3{color:#c47d1a;background:#fdf2e0;border-color:#f3dcb4}
.lgc{color:#1f4e79;background:#eef4fb;border-color:#cdddf0}
.demo-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:20px;align-items:start}
.demo-card{border:1px solid var(--line);border-radius:var(--radius);padding:24px;background:#fff;box-shadow:var(--shadow)}
.demo-card-head{font-weight:700;color:var(--navy);margin-bottom:14px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.demo-badge{font-size:.74rem;background:var(--bg-cta);color:var(--navy);padding:4px 11px;border-radius:999px;transition:background .3s}
.demo-text{font-size:1.06rem;line-height:2.15}
.kz{border-radius:5px;padding:1px 3px;transition:opacity .45s ease,filter .45s ease}
.k1{background:#eaf2fb}
.k2{background:#eaf6ee}
.k3{background:#fdf2e0}
.kz.peeled{opacity:.25;text-decoration:line-through;filter:grayscale(1)}
.cr{transition:background .45s ease,box-shadow .45s ease;border-radius:5px;padding:1px 3px}
.cr.revealed{background:#dff5e6;box-shadow:inset 0 -2px 0 #7fcb98;font-weight:600}
.demo-core{opacity:.4;transition:opacity .4s ease}
.demo-core.on{opacity:1}
.core-list{list-style:none;display:flex;flex-direction:column;gap:12px}
.core-list li{background:var(--bg-alt);border:1px solid var(--line);border-radius:10px;padding:12px 15px;font-size:.93rem;line-height:1.7;
  opacity:0;transform:translateY(10px);transition:opacity .45s ease,transform .45s ease}
.core-list li.show{opacity:1;transform:none}
.core-list li b{color:var(--navy)}
.core-punch{margin-top:16px;font-weight:700;color:var(--navy);font-size:1.02rem;
  opacity:0;transform:translateY(8px);transition:opacity .45s ease,transform .45s ease}
.core-punch.show{opacity:1;transform:none}
.demo-controls{display:flex;gap:12px;justify-content:center;margin-top:28px;flex-wrap:wrap}
.btn-ghost{background:#fff;color:var(--navy);border:1.5px solid var(--navy)}
.btn-ghost:hover{background:var(--bg-cta)}
.btn:disabled{opacity:.9;cursor:default;transform:none;background:#2e8b57}
.demo-steps{display:flex;gap:8px;justify-content:center;margin-top:18px;flex-wrap:wrap}
.ds{font-size:.78rem;color:#9aa6b4;padding:4px 12px;border-radius:999px;border:1px solid var(--line)}
.ds.active{color:#fff;background:var(--navy);border-color:var(--navy);font-weight:700}
@media(max-width:820px){.demo-grid{grid-template-columns:1fr}}

/* ===== ほどく体験：ナレーション右パネル＆ボタンの誘目 ===== */
.demo-narr{display:flex;flex-direction:column}
.narr-body{color:var(--muted);font-size:.98rem;line-height:1.95}
.narr-body b{color:var(--navy)}
.narr-result{animation:narrIn .45s ease}
.narr-result-label{font-weight:700;color:var(--navy);margin-bottom:10px}
.narr-result-q{background:#dff5e6;border:1px solid #aedcbd;border-radius:10px;padding:15px 17px;
  font-size:1.04rem;line-height:1.85;font-weight:600;color:#1c2530}
.narr-result-do{margin-top:14px;font-weight:700;color:var(--navy);line-height:1.8}
@keyframes narrIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.btn.pulse{animation:btnpulse 1.6s ease-in-out infinite}
@keyframes btnpulse{0%,100%{box-shadow:0 0 0 0 rgba(31,78,121,.40)}50%{box-shadow:0 0 0 12px rgba(31,78,121,0)}}

/* ===== ほどく体験：対称式デモ（左カードの問題＆段階表示）===== */
.demo-q{font-size:1.12rem;line-height:1.95;margin-bottom:14px}
.demo-q-target{background:linear-gradient(transparent 58%,#ffe1a8 58%);font-weight:700}
.demo-trap{color:#8a93a3;font-size:.93rem;background:#f6f8fb;border:1px dashed #d6deea;border-radius:9px;
  padding:10px 13px;transition:opacity .4s ease,filter .4s ease}
.demo-trap.peeled{opacity:.45;text-decoration:line-through;filter:grayscale(1)}
.demo-reveal{margin-top:16px;display:flex;flex-direction:column;gap:11px}
.rv{opacity:0;transform:translateY(10px);transition:opacity .45s ease,transform .45s ease;
  font-size:1.02rem;line-height:1.7;background:var(--bg-alt);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.rv.show{opacity:1;transform:none}
.rv-tag{display:inline-block;font-size:.72rem;font-weight:700;color:#2e8b57;background:#eaf6ee;
  border:1px solid #cfe9d8;border-radius:999px;padding:2px 10px;margin-right:9px}
.rv-note{font-size:.82rem;color:#2e8b57;margin-left:6px;font-weight:700}
.rv-core{background:#dff5e6;border-color:#aedcbd}
.rv-core b{font-size:1.18rem;color:#1c2530}
.rv-tag-core{color:#1f4e79;background:#eaf2fb;border-color:#cdddf0}
