:root{
  --navy:#0F1E3A; --cobalt:#2E5BFF; --amber:#FFC23D; --ink:#3A3F4B; --mute:#7A8190;
  --line:#DDE1E8; --paper:#F4F6FA; --white:#FFFFFF; --pale:#E3EAFF;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{background:#E9ECF2;color:var(--ink);font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",sans-serif;font-size:16px;line-height:1.85;padding-bottom:76px}
main{max-width:560px;margin:0 auto;background:var(--white);box-shadow:0 0 40px rgba(15,30,58,.08)}
img{display:block;width:100%;height:auto}
.part{position:relative}
.part-note{background:var(--white);color:var(--mute);font-size:14px;line-height:1.6;padding:4px 20px 20px}
#proof .part-note{background:var(--navy);color:#C9D2E3;margin-top:-1px;padding:0 6% 22px}
.hit{position:absolute;display:block;border-radius:999px}
.hit:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
.headline,h1,h2,h3{word-break:auto-phrase;text-wrap:balance;line-break:strict}
.sp{display:inline}
@media (min-width:560px){.sp{display:none}}

.price{background:var(--paper);padding:48px 20px 56px}
.price .wrap{max-width:480px;margin:0 auto}
.label{color:var(--cobalt);font-size:14px;letter-spacing:.08em}
.price h2{color:var(--navy);font-weight:300;font-size:28px;line-height:1.4;margin:8px 0 28px;word-break:keep-all}
.plans{display:grid;gap:14px}
.plan{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:20px 20px 16px}
.plan--navy{background:var(--navy);border-color:var(--navy);color:var(--white)}
.plan-tag{display:inline-block;background:var(--cobalt);color:var(--white);font-size:13px;line-height:1;padding:6px 10px;border-radius:6px}
.plan h3{font-weight:400;font-size:24px;color:inherit;margin:10px 0 2px}
.plan:not(.plan--navy) h3{color:var(--navy)}
.yen{font-weight:300;font-size:40px;line-height:1.2;color:var(--cobalt);letter-spacing:.01em}
.plan--navy .yen{color:var(--white)}
.yen span{font-size:16px;margin-left:4px}
.plan-note{font-size:16px;line-height:1.6;margin-top:6px}
.todo{color:#B4232A;font-size:14px;line-height:1.6;margin-top:6px}
.plan--navy .todo{color:#FFC9C9}
.center{text-align:center}
.terms{margin:28px 0 8px;border-top:1px solid var(--line)}
.terms>div{display:grid;grid-template-columns:6.5em 1fr;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.terms dt{color:var(--cobalt);font-size:14px;line-height:1.6}
.terms dd{font-size:16px;line-height:1.75}
.terms small{display:block;font-size:14px;color:var(--mute);margin-top:4px}
.btn{display:flex;align-items:center;justify-content:center;gap:8px;min-height:60px;margin-top:22px;border-radius:999px;background:var(--navy);color:var(--white);text-decoration:none;font-size:18px;font-weight:500;position:relative}
.btn::after{content:"";position:absolute;right:18px;top:-6px;width:22px;height:22px;border-radius:50%;background:var(--amber)}
.btn--line{background:var(--white);color:var(--navy);border:1.5px solid var(--navy);margin-top:12px;font-size:16px;min-height:52px}
.btn--line::after{display:none}
.btn:focus-visible{outline:3px solid var(--amber);outline-offset:3px}

.foot{padding:28px 20px 36px;text-align:center;font-size:14px;color:var(--mute);border-top:1px solid var(--line)}

.sticky{position:fixed;left:50%;bottom:12px;transform:translate(-50%,0);width:min(520px,calc(100% - 32px));min-height:52px;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;background:var(--navy);color:var(--white);text-decoration:none;font-size:16px;font-weight:500;box-shadow:0 6px 20px rgba(15,30,58,.25);transition:opacity .3s,transform .3s;z-index:10}
.sticky.is-hidden{opacity:0;pointer-events:none;transform:translate(-50%,16px)}
@media (prefers-reduced-motion:reduce){.sticky{transition:none}}
