:root{--bg:#fcfcfb;--card:#fff;--text:#0b0b0b;--text2:#52514e;--line:#e5e4e0;--accent:#2a78d6;--accent-ink:#fff;--danger:#b4232a}
@media (prefers-color-scheme:dark){:root{--bg:#1a1a19;--card:#232322;--text:#f0efec;--text2:#c3c2b7;--line:#3a3a38;--accent:#3987e5}}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.7 -apple-system,"Hiragino Sans","Noto Sans JP",sans-serif}
main{max-width:640px;margin:0 auto;padding:0 16px 48px}
.hero{padding:40px 0 24px}.eyebrow{color:var(--accent);font-weight:600;margin:0 0 8px;font-size:14px}
h1{font-size:26px;line-height:1.35;margin:0 0 12px}h2{font-size:19px;margin:0 0 12px}.sub{color:var(--text2);margin:0 0 20px}
.section{padding:24px 0;border-top:1px solid var(--line)}
.bullets{padding-left:0;list-style:none;margin:0}.bullets li{padding:8px 0 8px 28px;position:relative}.bullets li::before{content:"✓";position:absolute;left:4px;color:var(--accent);font-weight:700}
.how{padding-left:24px;margin:0}.how li{padding:4px 0}
.price-amount{font-size:40px;font-weight:700;margin:0;font-variant-numeric:tabular-nums}.unit{font-size:16px;font-weight:400;margin-left:4px}
.cta{display:block;width:100%;padding:16px;border:0;border-radius:12px;background:var(--accent);color:var(--accent-ink);font-size:17px;font-weight:600;cursor:pointer;min-height:52px}
.cta:active{opacity:.9}.link{background:none;border:0;color:var(--text2);text-decoration:underline;padding:12px;width:100%;cursor:pointer;font-size:15px}
.notice{font-size:13px;color:var(--text2);margin:12px 0 0}.muted{color:var(--text2);font-size:14px}
.faq dt{font-weight:600;margin-top:12px}.faq dd{margin:4px 0 0;color:var(--text2)}
.footer{padding-top:24px;border-top:1px solid var(--line);font-size:13px;color:var(--text2)}.footer a{color:inherit}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:flex-end;justify-content:center;padding:0}
.modal[hidden]{display:none}.modal-card{background:var(--card);width:100%;max-width:640px;border-radius:16px 16px 0 0;padding:24px 16px 32px}
label{display:block;font-weight:600;margin:16px 0 6px}input{width:100%;padding:14px;border:1px solid var(--line);border-radius:10px;font-size:17px;background:var(--bg);color:var(--text)}
.error{color:var(--danger);font-size:14px;margin:6px 0 0}#submit-intent{margin-top:16px}
@media (min-width:640px){.modal{align-items:center;padding:16px}.modal-card{border-radius:16px}}
a{color:var(--accent)}
