:root{--bg:#fff7f0;--card:#fff;--ink:#4a3b36;--sub:#8a7a75;--pri:#ff8fab;--pri2:#e86d8e;--line:#f0e2dc;--ok:#3aa37a;--ng:#d9534f}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Hiragino Sans","Yu Gothic UI","Noto Sans JP",sans-serif;line-height:1.7;font-size:15px}
.top{display:flex;gap:10px;align-items:baseline;justify-content:center;padding:16px;background:#fff;border-bottom:1px solid var(--line)}
.top b{font-size:20px;letter-spacing:.08em}.top span{color:var(--sub);font-size:13px}
main{max-width:560px;margin:0 auto;padding:16px}
.center{text-align:center}.muted{color:var(--sub)}
.card{background:var(--card);border-radius:20px;padding:16px;margin:0 0 16px;box-shadow:0 4px 18px rgba(74,59,54,.06)}
.camp img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:14px;background:#f6eee9}
.camp h2{font-size:19px;margin:12px 0 4px}
.chip{display:inline-block;background:#ffe6ec;color:var(--pri2);border-radius:99px;padding:2px 10px;font-size:12px;font-weight:700;margin-right:6px}
.chip.soon{background:#eef3f7;color:#58708a}
.sched{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;font-size:13px;margin:10px 0}
.sched dt{color:var(--sub)}
.btn{display:block;width:100%;border:0;border-radius:99px;background:var(--pri);color:#fff;font-weight:800;font-size:16px;padding:14px;margin-top:12px;cursor:pointer}
.btn:disabled{opacity:.45}.btn.sub{background:#fff;color:var(--ink);border:1px solid var(--line)}
.box{background:#fff;border-radius:16px;padding:14px 16px;margin:12px 0;font-size:13.5px}
.box h3{font-size:15px;margin:6px 0}.box ul{padding-left:18px;margin:4px 0 10px}
.warn{background:#fff1f1;color:#a33;border-radius:12px;padding:10px 12px;font-size:13px}
label.f{display:block;font-size:13px;font-weight:700;margin:14px 0 4px}
label.f small{font-weight:400;color:var(--sub)}
input[type=text],input[type=tel],input[type=email],input[type=number],select{width:100%;padding:12px;border:1px solid var(--line);border-radius:12px;font-size:16px;background:#fff;color:var(--ink)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.seg{display:flex;gap:8px}.seg label{flex:1;border:1px solid var(--line);border-radius:12px;padding:10px;text-align:center;font-size:13px;cursor:pointer;background:#fff}
.seg input{display:none}.seg label:has(input:checked){border-color:var(--pri);background:#fff0f4;font-weight:700}
.agree label{display:flex;gap:8px;align-items:flex-start;font-size:13px;margin:8px 0}
.agree input{margin-top:5px;width:18px;height:18px;flex:none}
.err{color:var(--ng);font-size:13px;min-height:1em}
.ok{color:var(--ok)}
.confirm dl{display:grid;grid-template-columns:7em 1fr;gap:6px 10px;font-size:14px}.confirm dt{color:var(--sub)}
.big{font-size:22px;font-weight:800;margin:8px 0}
.hp{position:absolute;left:-9999px}
