:root{
  --navy:#0d1b6b; --navy-2:#1a2f9e; --ink:#1d2333; --sub:#5a6278;
  --line:#e3e7f0; --bg:#f4f6fb; --white:#fff;
  --cta:#ff6a13; --cta-2:#ff9a3c; --mark:#fff15a; --red:#e8202a; --pale:#eef1ff;
  --barH:76px;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:"Noto Sans JP",system-ui,sans-serif;color:var(--ink);background:var(--white);line-height:1.75;font-size:16px;-webkit-text-size-adjust:100%}
a{color:inherit}
.num{font-family:"Montserrat","Noto Sans JP",sans-serif;font-weight:800}
.red{color:var(--red)}
.mk{background:linear-gradient(transparent 60%,var(--mark) 60%);font-weight:900}
.ico{width:1em;height:1em;fill:currentColor;flex:none}

.hd{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line)}
.hd .in{max-width:1040px;margin:0 auto;padding:0 16px;height:60px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.logo{font-weight:900;color:var(--navy);font-size:18px;white-space:nowrap;line-height:1.2}
.logo small{display:block;font-size:10px;color:var(--sub);font-weight:700;letter-spacing:.08em}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(180deg,var(--cta-2),var(--cta));color:#fff;text-decoration:none;font-weight:900;border-radius:999px;padding:16px 30px;box-shadow:0 5px 0 #c94d05,0 10px 22px rgba(255,106,19,.28);transition:transform .15s;line-height:1.3}
.btn:hover{transform:translateY(2px)}
.btn .ico{font-size:1.1em}
.hd .btn{padding:10px 18px;font-size:14px}

.pnl{padding:64px 0}
.pnl .in{max-width:880px;margin:0 auto;padding:0 16px}
.pnl.alt{background:var(--bg)}
.pnl.dark{background:var(--navy);color:#fff}
.en{font-family:"Montserrat",sans-serif;font-weight:800;color:var(--cta);letter-spacing:.18em;font-size:12px;text-align:center}
h2{font-size:clamp(22px,5vw,32px);line-height:1.45;font-weight:900;color:var(--navy);text-align:center;margin-bottom:22px}
.dark h2{color:#fff}
.sub{color:var(--sub);text-align:center;font-size:14px;margin:-12px 0 20px}
.dark .sub{color:#c9d1ff}

.hero{background:radial-gradient(1000px 420px at 85% -10%,#dfe6ff 0,transparent 60%),linear-gradient(180deg,#f7f9ff,#fff)}
.tag{display:inline-block;background:var(--navy);color:#fff;font-weight:800;font-size:12px;padding:5px 12px;border-radius:4px;letter-spacing:.04em}
.hero h1{font-size:clamp(27px,6.2vw,48px);line-height:1.35;font-weight:900;margin:14px 0 18px;color:var(--navy)}
.hero h1 .em{color:var(--red)}
.offer{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.offer div{border-radius:14px;padding:14px 10px;text-align:center;line-height:1.25}
.offer .o-price{background:var(--navy);color:#fff}
.offer .o-pr{background:var(--red);color:#fff;position:relative}
.offer small{display:block;font-size:12px;font-weight:700;opacity:.92}
.offer b{display:block;font-size:clamp(30px,8vw,40px);font-weight:900}
.offer b .u{font-size:.5em}
.offer em{font-style:normal;display:inline-block;background:var(--mark);color:var(--ink);font-size:11px;font-weight:900;border-radius:999px;padding:1px 9px;margin-top:4px}
.proof{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;font-weight:700;color:var(--sub);margin-bottom:18px}
.proof b{color:var(--navy);font-size:15px}
.note{font-size:12px;color:var(--sub);margin-top:10px}

.checks{display:grid;gap:10px;max-width:640px;margin:0 auto}
.checks li{list-style:none;background:#fff;border-radius:12px;padding:14px 16px 14px 48px;position:relative;font-weight:700;border:1px solid var(--line);line-height:1.6}
.checks li .ico{position:absolute;left:14px;top:14px;font-size:22px;color:var(--red)}
.callout{max-width:640px;margin:16px auto 0;background:#fff;border-left:6px solid var(--red);padding:14px 16px;font-weight:700;font-size:14px;line-height:1.7}

.video{max-width:640px;margin:0 auto}
.yt{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#000;box-shadow:0 10px 26px rgba(13,27,107,.18)}
.yt img,.yt iframe{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:0}
.yt button{position:absolute;inset:0;border:0;background:rgba(0,0,0,.25);cursor:pointer;display:grid;place-items:center}
.yt button span{width:72px;height:72px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font-size:40px;box-shadow:0 6px 18px rgba(0,0,0,.35)}
.cap{font-size:12px;color:var(--sub);margin-top:10px;line-height:1.6}
.quote{margin-top:14px;background:#fff;border-radius:12px;padding:12px 16px;font-size:14px;font-weight:700;border:1px solid var(--line)}
.quote b{color:var(--red)}

.media{max-width:640px;margin:0 auto;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);border-radius:16px;padding:20px}
.media .row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}
.media .row div{background:#fff;color:var(--navy);border-radius:10px;padding:10px 4px;text-align:center;font-size:11px;font-weight:700;line-height:1.35}
.media .row b{display:block;font-size:20px}
.media p{font-size:14px;color:#dfe4ff;line-height:1.75}
.free{margin-top:14px;background:var(--mark);color:var(--ink);border-radius:12px;padding:12px 14px;text-align:center;font-weight:900;line-height:1.5}
.free s{color:var(--sub);font-weight:700;font-size:13px}
.free b{color:var(--red);font-size:1.35em}
.free small{display:block;font-size:12px;color:var(--sub)}

.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.flow li{list-style:none;background:#fff;color:var(--ink);border-radius:14px;padding:14px 12px;text-align:center}
.flow .k{display:inline-block;font-size:11px;font-weight:900;color:#fff;background:var(--cta);border-radius:999px;padding:1px 10px;margin-bottom:6px}
.flow h3{font-size:16px;color:var(--navy);line-height:1.35}
.flow p{font-size:12px;color:var(--sub);margin-top:4px;line-height:1.55}

.case{max-width:640px;margin:0 auto;background:#fff;border-radius:16px;padding:20px;border:1px solid var(--line);border-top:6px solid var(--navy)}
.case .who{font-size:13px;font-weight:800;color:var(--sub)}
.case .big{font-size:clamp(21px,5vw,28px);font-weight:900;color:var(--navy);line-height:1.45;margin:6px 0}
.case .big .red{font-size:1.3em}
.case p{font-size:13px;color:var(--sub)}
.minis{max-width:640px;margin:10px auto 0;display:grid;gap:8px}
.minis li{list-style:none;background:#fff;border-radius:10px;padding:10px 14px;font-size:13px;font-weight:700;border:1px solid var(--line);line-height:1.5}
.minis li .red{font-weight:900}
.disc{max-width:640px;margin:10px auto 0;font-size:11px;color:var(--sub);line-height:1.6}

.price{max-width:640px;margin:0 auto;text-align:center}
.price .big{background:#fff;border:3px solid var(--cta);border-radius:18px;padding:18px 16px}
.price .big .p{font-size:15px;font-weight:800}
.price .big .p b{font-size:clamp(48px,13vw,72px);color:var(--navy);line-height:1.1}
.price .big ul{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:8px}
.price .big li{list-style:none;font-size:12px;font-weight:700;background:var(--pale);color:var(--navy);border-radius:999px;padding:3px 10px}
.guar{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;text-align:left;margin-top:14px;background:#fff;border:3px solid var(--mark);border-radius:16px;padding:14px}
.seal{width:76px;height:76px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;text-align:center;font-weight:900;line-height:1.25;font-size:13px;box-shadow:0 0 0 5px #ffe1e2}
.guar h3{font-size:16px;color:var(--navy);line-height:1.45}
.guar p{font-size:11px;color:var(--sub);margin-top:4px;line-height:1.55}
.fit{margin-top:12px;font-weight:800;color:var(--navy);font-size:14px}

.know{max-width:640px;margin:0 auto;display:grid;gap:10px}
.know li{list-style:none;display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.know .n{width:44px;height:44px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:22px}
.know h3{font-size:15px;color:var(--navy);line-height:1.45}
.know p{font-size:12px;color:var(--sub);line-height:1.55}
.chips{max-width:640px;margin:14px auto 0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.chips span{font-size:13px;font-weight:800;color:var(--navy);background:var(--pale);border-radius:999px;padding:5px 14px;display:inline-flex;align-items:center;gap:5px}

.final{background:linear-gradient(135deg,var(--navy),var(--navy-2));color:#fff;text-align:center}
.final .limit{display:inline-block;background:var(--mark);color:var(--ink);font-weight:900;border-radius:6px;padding:4px 12px;margin-bottom:14px;font-size:13px}
.final h2{color:#fff}
.final p{color:#d6dcff;margin:-8px 0 22px;font-size:15px}
.final .btn{font-size:18px;padding:20px 34px}
.final .safe{font-size:12px;color:#c9d1ff;margin-top:14px}
.ft{font-size:12px;color:#aeb7e6;margin-top:30px;line-height:1.9}
.ft a{color:#fff;text-decoration:none;margin:0 4px}

.bar,.dots,.hint,.mlogo{display:none}

@media (max-width:820px){
  html,body{height:100%;overflow:hidden}
  .hd{display:none}
  .deck{height:100svh;overflow-y:auto;scroll-snap-type:y mandatory;-webkit-overflow-scrolling:touch;overscroll-behavior:none}
  .pnl{min-height:100svh;scroll-snap-align:start;scroll-snap-stop:always;padding:22px 0 calc(var(--barH) + 34px);display:flex;flex-direction:column;justify-content:center}
  .pnl.hero{min-height:calc(100svh - var(--barH) - 26px);padding-bottom:30px;justify-content:center}
  .pnl .in{width:100%;padding:0 22px 0 16px}
  h2{margin-bottom:16px}
  .flow{grid-template-columns:1fr 1fr}
  .pnl.hero{position:relative}
  .mlogo{display:block;position:absolute;top:calc(14px + env(safe-area-inset-top));left:16px;font-weight:900;color:var(--navy);font-size:15px}
  .case .big{font-size:22px}
  .media .row b{font-size:18px}
  h2{font-size:22px}
  .hero .btn{display:none}
  .bar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:60;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid var(--line)}
  .bar .btn{width:100%;padding:15px;font-size:16px}
  .bar.on-final{background:transparent;border-top-color:transparent}
  .dots{display:flex;flex-direction:column;gap:7px;position:fixed;right:7px;top:50%;transform:translateY(-50%);z-index:55}
  .dots i{width:7px;height:7px;border-radius:50%;background:rgba(13,27,107,.22);transition:all .2s}
  .dots i.on{background:var(--cta);height:18px;border-radius:4px}
  .dots.light i{background:rgba(255,255,255,.4)}
  .dots.light i.on{background:var(--mark)}
  .hint{display:flex;flex-direction:column;align-items:center;position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--barH) + 6px + env(safe-area-inset-bottom));z-index:56;font-size:11px;font-weight:900;color:var(--navy);background:rgba(255,255,255,.92);border-radius:999px;padding:2px 14px 4px;line-height:1.2;pointer-events:none;transition:opacity .3s;box-shadow:0 2px 10px rgba(13,27,107,.15)}
  .hint .ico{font-size:22px;color:var(--cta);animation:up 1.3s ease-in-out infinite}
  .hint.off{opacity:0}
  @keyframes up{0%,100%{transform:translateY(3px)}50%{transform:translateY(-4px)}}
}
@media (max-width:820px) and (max-height:700px){
  .hero h1{font-size:25px;margin:10px 0 12px}
  .offer b{font-size:24px}
  .checks li{padding:11px 14px 11px 44px;font-size:14px}
  .flow p{display:none}
  .know p{display:none}
}
@media (prefers-reduced-motion:reduce){.hint .ico{animation:none}}
