:root{--navy:#173b57;--blue:#1675a9;--pale:#eef7fb;--line:#d6e1e8;--text:#263844;--red:#c53c3c}
body{background:linear-gradient(135deg,#edf7fa 0,#f7fafb 48%,#eaf2f5 100%);color:var(--text);font-family:"Noto Sans JP","Yu Gothic",Meiryo,sans-serif;font-size:16px;min-height:100vh}
.page-shell{width:94%;max-width:760px;margin:42px auto}.form-card{background:#fff;border-radius:18px;box-shadow:0 14px 42px rgba(31,63,80,.13);overflow:hidden;padding:0 52px 48px}
.event-header{background:linear-gradient(120deg,var(--navy),var(--blue));color:#fff;margin:0 -52px 30px;padding:38px 52px;text-align:center}.event-header.compact{padding:28px 52px}.event-kicker{font-size:12px;letter-spacing:.18em;opacity:.8;margin-bottom:8px}.event-header h1{font-size:clamp(23px,4vw,32px);line-height:1.45}.event-subtitle{font-size:18px;font-weight:700;margin-top:5px}.event-dates{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);border-radius:10px;margin-top:22px;padding:14px 18px;text-align:left}.event-dates p{display:flex;gap:18px}.event-dates strong{min-width:9em}.event-dates span{flex:1}
.progress{display:flex;justify-content:center;margin:0 auto 28px;max-width:440px}.progress span{align-items:center;color:#80909a;display:flex;flex:1;font-size:13px;font-weight:700}.progress span:not(:last-child):after{background:#dce5e9;content:"";height:2px;flex:1;margin:0 9px}.progress b{align-items:center;background:#dce5e9;border-radius:50%;color:#fff;display:inline-flex;height:28px;justify-content:center;margin-right:7px;width:28px}.progress .is-current{color:var(--blue)}.progress .is-current b{background:var(--blue)}
.lead{background:var(--pale);border-radius:8px;margin-bottom:26px;padding:15px 18px}.field{border-top:1px solid var(--line);padding:23px 0}.field-heading{align-items:center;display:flex;gap:10px;margin-bottom:10px}.field-heading>label{font-weight:700}.required,.optional{border-radius:4px;font-size:11px;font-weight:700;padding:2px 7px}.required{background:var(--red);color:#fff}.optional{background:#e6ebee;color:#657680}.text-input,textarea{border:1px solid #b9c8d1;border-radius:8px;font-size:16px;padding:12px 14px;width:100%}.text-input:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(22,117,169,.14);outline:0}.choice-group{display:flex;flex-wrap:wrap;gap:10px}.choice{cursor:pointer}.choice input{height:1px;opacity:0;position:absolute;width:1px}.choice span{background:#f5f8fa;border:1px solid #c9d5dc;border-radius:8px;display:block;padding:10px 16px}.choice input:checked+span{background:#e6f4fa;border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue);color:#075f8c;font-weight:700}.choice input:focus+span{outline:3px solid rgba(22,117,169,.18)}
.actions{display:flex;justify-content:center;margin-top:28px}.actions.two{gap:14px}.actions.two form{margin:0}.button{border-radius:9px;cursor:pointer;display:inline-block;font-weight:700;padding:13px 26px;text-align:center}.primary{background:var(--blue);color:#fff;box-shadow:0 5px 14px rgba(22,117,169,.22)}.primary:hover{background:#0b6797}.secondary{background:#e8eef1;color:#40525d}.error-box,.notice{background:#fff3f3;border:1px solid #e7b6b6;border-radius:8px;color:#912c2c;margin-bottom:22px;padding:15px 18px}.error-box ul{padding-left:1.3em}.confirm-list{border:1px solid var(--line);border-radius:10px;overflow:hidden}.confirm-list div{display:grid;grid-template-columns:200px 1fr}.confirm-list div+div{border-top:1px solid var(--line)}.confirm-list dt{background:#f0f6f8;font-weight:700;padding:15px}.confirm-list dd{padding:15px}.thanks-card{text-align:center}.success-mark{align-items:center;background:#fff;border-radius:50%;color:#16805d;display:flex;font-size:34px;height:60px;justify-content:center;margin:0 auto 14px;width:60px}.thanks-card>p{margin:12px 0}.hp{left:-9999px;position:absolute}
@media(max-width:600px){.page-shell{margin:15px auto}.form-card{border-radius:12px;padding:0 20px 32px}.event-header{margin:0 -20px 24px;padding:28px 20px}.event-header.compact{padding:24px 20px}.event-dates p{display:block;margin-bottom:9px}.event-dates p:last-child{margin-bottom:0}.event-dates strong,.event-dates span{display:block}.progress span{font-size:11px}.progress span:not(:last-child):after{margin:0 4px}.progress b{height:24px;margin-right:4px;width:24px}.confirm-list div{display:block}.confirm-list dt,.confirm-list dd{padding:11px 14px}.actions.two{flex-direction:column-reverse}.actions.two .button{width:100%}}
