:root { color-scheme: light; font-family: "M PLUS Rounded 1c", "Hiragino Maru Gothic ProN", "Yu Gothic", sans-serif; --blue:#075daf; --ink:#315f87; --red:#f04459; }
* { box-sizing: border-box; }
html { background:#dff4f8; }
body { margin:0; color:var(--ink); background:linear-gradient(90deg,#dff4f8,#f7fcfa 50%,#dff4f8); }
a,button { font:inherit; -webkit-tap-highlight-color:transparent; }
.page { width:min(100%,430px); min-height:100vh; margin:auto; overflow:hidden; background:#f8fff9 url("page3-background.webp") center top/100% auto repeat-y; box-shadow:0 0 34px rgb(32 107 138/.18); }
.topbar { position:sticky; z-index:15; top:0; height:64px; padding:0 15px; display:flex; align-items:center; justify-content:space-between; background:rgb(249 255 252/.94); border-bottom:1px solid #cce8ec; backdrop-filter:blur(9px); }
.brand { display:flex; align-items:center; gap:8px; color:#0062a8; font-weight:800; line-height:1.02; text-decoration:none; }
.brand-mark { width:37px; height:37px; border-radius:50%; display:grid; place-items:center; color:#fff; background:#ff5966; font-size:30px; line-height:1; }
.brand-name { font-size:16px; white-space:nowrap; }
.brand-en { display:block; margin-top:2px; font-size:8px; letter-spacing:.2em; }
.hamburger { width:44px; height:44px; border:0; border-radius:12px; display:grid; place-content:center; gap:5px; background:transparent; cursor:pointer; }
.hamburger span { width:30px; height:4px; border-radius:8px; display:block; background:#0861a4; }
.hero { padding:29px 24px 21px; text-align:center; }
.eyebrow { margin:0 0 7px; color:#ef4659; font-size:13px; font-weight:800; letter-spacing:.12em; }
.hero h1 { margin:0; color:var(--blue); font-family:"Klee One",cursive; font-size:32px; line-height:1.25; letter-spacing:-.04em; }
.hero p { margin:12px 0 0; font-size:15px; line-height:1.75; font-weight:700; }
.card { margin:0 14px 18px; padding:21px 19px; border:1px solid #d5edf1; border-radius:22px; background:rgb(255 255 255/.95); box-shadow:0 7px 20px rgb(55 110 135/.1); }
.card h2 { margin:0 0 12px; color:var(--blue); font-size:23px; line-height:1.35; }
.card p { margin:0; font-size:15px; line-height:1.85; font-weight:600; }
.card p + p { margin-top:10px; }
.accent { border-left:6px solid #ff6571; }
.steps { margin:0; padding:0; list-style:none; display:grid; gap:12px; }
.steps li { display:grid; grid-template-columns:42px 1fr; gap:11px; align-items:start; }
.step-no { width:42px; height:42px; border-radius:50%; display:grid; place-items:center; color:#fff; background:#0da98b; font-size:18px; font-weight:800; }
.steps li:nth-child(2) .step-no{background:#138fd0}.steps li:nth-child(3) .step-no{background:#ff9226}.steps li:nth-child(4) .step-no{background:#f1395b}
.steps strong { display:block; color:#23658f; font-size:17px; }
.steps small { display:block; margin-top:3px; color:#617d91; font-size:13px; line-height:1.55; font-weight:700; }
.character { min-height:196px; position:relative; margin:0 14px 20px; padding:28px 20px 20px 168px; border-radius:22px; overflow:hidden; background:rgb(255 255 255/.87); }
.character img { position:absolute; left:7px; bottom:-5px; width:170px; max-height:205px; object-fit:contain; }
.character strong { display:block; color:var(--blue); font-family:"Klee One",cursive; font-size:21px; line-height:1.45; }
.character p { margin:7px 0 0; font-size:13px; line-height:1.65; font-weight:700; }
.price-list { display:grid; gap:13px; }
.price-card { overflow:hidden; border:2px solid #b9dfeb; border-radius:18px; background:#fff; }
.price-card[id] { scroll-margin-top:82px; }
.price-card:target { border-color:#ff6972; box-shadow:0 0 0 5px rgb(255 105 114/.16); }
.price-card header { padding:14px 16px; color:#fff; background:linear-gradient(180deg,#1cb79b,#07977e); }
.price-card:nth-child(2) header{background:linear-gradient(180deg,#27a2de,#0d78bd)}.price-card:nth-child(3) header{background:linear-gradient(180deg,#ffae2f,#ff8618)}.price-card:nth-child(4) header{background:linear-gradient(180deg,#fa536e,#ed2349)}
.price-card h2 { margin:0; color:#fff; font-size:20px; }
.price { display:block; margin-top:4px; font-size:18px; font-weight:800; }
.price-card .body { padding:14px 16px 16px; }
.price-card p { font-size:14px; line-height:1.65; }
.price-card ul { margin:8px 0 0; padding-left:1.25em; font-size:13px; line-height:1.7; font-weight:700; }
.price-link { min-height:46px; margin-top:12px; border-radius:99px; display:flex; align-items:center; justify-content:center; color:#fff; background:#1677b4; text-decoration:none; font-size:14px; font-weight:800; }
.note { margin:0 14px 20px; padding:14px 16px; border-radius:15px; color:#596f80; background:rgb(239 248 251/.96); font-size:12px; line-height:1.7; font-weight:700; }
.faq-list { display:grid; gap:12px; }
.faq-item { border:1px solid #cce6ee; border-radius:16px; overflow:hidden; background:#fff; }
.faq-item summary { min-height:60px; padding:15px 44px 15px 16px; position:relative; display:flex; align-items:center; color:var(--blue); font-size:15px; line-height:1.55; font-weight:800; cursor:pointer; list-style:none; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:"＋"; position:absolute; right:15px; top:50%; transform:translateY(-50%); width:26px; height:26px; border-radius:50%; display:grid; place-items:center; color:#fff; background:#58a8cf; }
.faq-item[open] summary::after { content:"−"; }
.answer { padding:0 16px 17px; border-top:1px dashed #c8e0e8; }
.answer p { padding-top:13px; font-size:14px; line-height:1.8; }
.cta { margin:22px 14px 16px; padding:22px 17px; border-radius:22px; text-align:center; background:rgb(255 255 255/.95); box-shadow:0 7px 20px rgb(55 110 135/.1); }
.cta strong { display:block; color:var(--blue); font-size:20px; }
.cta p { margin:5px 0 14px; font-size:13px; line-height:1.6; font-weight:700; }
.cta a { min-height:58px; border-radius:99px; display:flex; align-items:center; justify-content:center; color:#fff; background:linear-gradient(180deg,#ff7079,#f23e52); text-decoration:none; font-size:18px; font-weight:800; box-shadow:0 6px 14px rgb(214 48 69/.22); }
.footer { padding:0 14px calc(28px + env(safe-area-inset-bottom)); display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.footer a { min-height:47px; border:2px solid #79b5d4; border-radius:99px; display:flex; align-items:center; justify-content:center; color:var(--blue); background:#fff; text-decoration:none; font-size:14px; font-weight:800; }
.menu-shade { position:fixed; z-index:30; inset:0; border:0; background:rgb(17 64 90/.35); opacity:0; pointer-events:none; transition:opacity .2s ease; }
.menu-panel { position:fixed; z-index:31; top:0; right:0; width:min(84vw,340px); height:100%; padding:max(24px,env(safe-area-inset-top)) 22px 30px; background:#f8fffc url("page3-background.webp") center top/cover; box-shadow:-12px 0 34px rgb(30 86 112/.22); transform:translateX(105%); transition:transform .24s ease; }
.menu-panel.open { transform:translateX(0); }.menu-shade.open { opacity:1; pointer-events:auto; }.menu-open { overflow:hidden; }
.menu-head { display:flex; align-items:center; justify-content:space-between; padding-bottom:17px; border-bottom:1px dashed #9ccbdc; color:var(--blue); font-weight:800; }
.menu-title { display:flex; align-items:center; gap:9px; font-size:18px; }.menu-cross { width:37px; height:37px; border:0; border-radius:50%; color:#fff; background:#ff5966; font-size:24px; cursor:pointer; }
.menu-links { display:grid; gap:10px; margin-top:19px; }.menu-links a { min-height:54px; padding:0 17px; border:2px solid #80bdd9; border-radius:16px; display:flex; align-items:center; justify-content:space-between; color:var(--blue); background:rgb(255 255 255/.93); text-decoration:none; font-size:16px; font-weight:800; }.menu-links a.primary { border-color:#ff6972; color:#fff; background:linear-gradient(180deg,#ff6f77,#f44355); }
@media (max-width:699px) and (orientation:portrait){.page{width:100vw;max-width:none;box-shadow:none}}
@media (min-width:700px){.page{margin-block:20px;border-radius:25px}.topbar{border-radius:25px 25px 0 0}}
@media (prefers-reduced-motion:reduce){.menu-panel,.menu-shade{transition:none}}
