/* エントリーの画面（明るい地で読みやすく。押す所だけ赤） */
.entry-page{background:var(--g);color:var(--ink)}
.entry-page .top .back{font-size:13px;font-weight:700;color:#C9CED6;text-decoration:underline}
.entry-page main{padding-top:28px;padding-bottom:140px}
.ttl{font-size:30px;margin-bottom:10px}
.intro{font-size:15px;color:var(--sub);margin-bottom:20px}
.req{display:inline-block;font-size:11px;font-weight:700;color:#fff;background:var(--r);padding:0 6px;border-radius:2px;vertical-align:2px;line-height:1.7}
.opt{display:inline-block;font-size:11px;font-weight:700;color:var(--sub);border:1px solid var(--line);padding:0 6px;border-radius:2px;vertical-align:2px;line-height:1.6}
fieldset{border:0;background:#fff;padding:20px 16px 8px;margin-bottom:12px;border-top:3px solid var(--ink)}
legend{float:left;width:100%;font-weight:900;font-size:17px;margin-bottom:10px}
legend+*{clear:both}
.f{display:block;margin:10px 0 2px}
.f>span{display:block;font-weight:700;font-size:14px;margin-bottom:6px}
input:not([type=radio]):not([type=checkbox]),select,textarea{width:100%;font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1.5px solid #B9BEC6;border-radius:3px;padding:12px;min-height:50px}
textarea{resize:vertical;line-height:1.6}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--b);box-shadow:0 0 0 3px rgba(25,113,212,.18)}
[aria-invalid=true]{border-color:var(--r)!important;background:#FFF6F6!important}
.radios{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.radios label{flex:1 1 30%;min-width:96px;display:flex;align-items:center;gap:8px;min-height:50px;padding:0 14px;border:1.5px solid #B9BEC6;border-radius:3px;font-weight:700;cursor:pointer;background:#fff}
.radios label:has(input:checked){border-color:var(--ink);background:var(--ink);color:#fff}
.radios input{width:20px;height:20px;accent-color:var(--r)}
.hint{font-size:13px;color:var(--sub);line-height:1.7;margin:4px 0 8px}
.err{color:var(--r);font-size:13px;font-weight:700;min-height:0;margin:2px 0 6px}
.err:empty{display:none}
.err.big{font-size:14px;margin-top:12px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
#to-confirm{margin-top:20px}

/* 確認 */
.sum{background:#fff;border-top:3px solid var(--ink);margin-bottom:16px}
.sum div{display:grid;grid-template-columns:116px 1fr;border-bottom:1px solid var(--line)}
.sum dt{padding:12px 10px 12px 16px;font-size:13px;font-weight:700;color:var(--sub)}
.sum dd{padding:12px 16px 12px 0;font-weight:700;word-break:break-word;white-space:pre-wrap;line-height:1.6}
.sum .em dd{color:var(--r);font-size:20px}
.final-box{background:#fff;padding:16px;margin-bottom:16px;border:1.5px solid var(--ink)}
.final-box h2{font-size:16px;font-weight:900;margin-bottom:8px}
.final-box .sum{border-top:0;margin-bottom:6px}
.final-box .sum div{grid-template-columns:100px 1fr}
.final-box .sum dt,.final-box .sum dd{padding:8px 6px 8px 0;font-size:13px}
.agree{background:#fff;padding:12px 16px;margin-bottom:16px}
.agree label{display:flex;gap:12px;align-items:flex-start;padding:10px 0;font-weight:700;font-size:15px;line-height:1.6;border-bottom:1px solid var(--line);cursor:pointer}
.agree label:last-of-type{border-bottom:0}
.agree input{width:22px;height:22px;flex:0 0 22px;margin-top:2px;accent-color:var(--r)}
.mailto-note{font-size:14px;margin-bottom:12px;word-break:break-all}
.light-ghost{color:var(--ink);margin-top:10px}
#fallback{background:#fff;border:2px solid var(--r);padding:16px;margin-top:16px}
#fallback p{font-size:14px;margin-bottom:12px}

/* 完了 */
.done-en{font-size:15px;letter-spacing:.24em;color:var(--b);margin-bottom:6px}
.bank{background:var(--ink);color:#fff;padding:18px 16px;margin-bottom:16px}
.bank h2{font-size:15px;font-weight:900;margin-bottom:8px;color:#fff}
.bank p{font-size:15px;line-height:1.7;word-break:break-all}
.bank .note{font-size:12px;color:#C9CED6;margin-top:8px}
.shot{font-size:14px;font-weight:700;background:#FFF6B8;padding:12px 14px;margin:8px 0 20px}
.link{display:block;margin:20px auto 0;font-size:14px;color:var(--sub);text-decoration:underline}

/* 合計（下に付いてくる） */
.total{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;align-items:baseline;justify-content:center;gap:8px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--k);color:#fff;font-weight:700;font-size:14px}
.total .en{font-size:30px}
.total[hidden]{display:none}
.copy{font-size:13px;font-weight:700;padding:4px 10px;border:1.5px solid var(--ink);border-radius:2px;margin-left:4px}

/* 決まりのページ */
.legal section{margin-bottom:48px}
.legal h2{font-size:17px;font-weight:900;margin:24px 0 8px;padding-left:10px;border-left:4px solid var(--b)}
.legal p,.legal li{font-size:15px;line-height:1.85}
.legal ul{padding-left:1.3em}
