:root { --primary:#3a1c71; --mid:#2a8fa0; --accent:#c8a84b; --text:#1a0a2e; --bg:#faf8f2; --border:#d8d0f0; --error:#c84b4b; }
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:'Noto Serif JP','Hiragino Mincho ProN',serif; font-size:16px; background:var(--bg); color:var(--text); line-height:1.9; }
.page-header { position:relative; background:linear-gradient(135deg,#3a1c71 0%,#1a6a80 60%,#0d9488 100%); padding:60px 24px 140px; text-align:center; color:white; overflow:hidden; }
.waves-wrap { position: absolute; bottom: -2px; left: 0; width: 100%; line-height: 0; }
.waves { display: block; width: 100%; height: 90px; min-height: 60px; }
.parallax > use { animation: move-forever 25s cubic-bezier(.55,.5,.45,.5) infinite; }
.parallax > use:nth-child(1) { animation-delay: -2s; animation-duration: 7s; }
.parallax > use:nth-child(2) { animation-delay: -3s; animation-duration: 10s; }
.parallax > use:nth-child(3) { animation-delay: -4s; animation-duration: 13s; }
.parallax > use:nth-child(4) { animation-delay: -5s; animation-duration: 20s; }
@keyframes move-forever {
  0% { transform: translate3d(-90px,0,0); }
  100% { transform: translate3d(85px,0,0); }
}
.page-header .label { font-family:'Cinzel',serif; font-size:11px; letter-spacing:0.4em; color:var(--accent); display:block; margin-bottom:12px; }
.page-header h1 { font-size:28px; font-weight:700; letter-spacing:0.1em; }
.page-header p { font-size:13px; opacity:0.7; margin-top:12px; }
.back-link { display:inline-block; margin-top:20px; font-size:12px; color:rgba(255,255,255,0.5); letter-spacing:0.1em; text-decoration:none; border-bottom:1px solid rgba(255,255,255,0.2); padding-bottom:2px; }
.container { max-width:640px; margin:0 auto; padding:56px 24px; }
.plan-confirm { background:white; border:1px solid var(--border); border-top:4px solid var(--accent); border-radius:6px; padding:24px 28px; margin-bottom:28px; display:flex; align-items:center; gap:16px; }
.plan-confirm .icon { font-size:28px; }
.plan-confirm h2 { font-size:15px; color:var(--primary); margin-bottom:4px; }
.plan-confirm .price { font-size:22px; font-weight:700; color:var(--accent); }
.plan-confirm .price span { font-size:12px; color:#888; font-weight:400; }
.form-block { background:white; border:1px solid var(--border); border-radius:6px; padding:48px 40px; }
.section-label { font-family:'Cinzel',serif; font-size:10px; letter-spacing:0.3em; color:var(--mid); display:block; margin-bottom:20px; padding-bottom:10px; border-bottom:1px solid var(--border); text-transform:uppercase; }
.field { margin-bottom:28px; }
label { display:block; font-size:13px; font-weight:700; color:var(--primary); letter-spacing:0.08em; margin-bottom:10px; }
.required { font-size:10px; color:var(--error); margin-left:6px; }
.optional { font-size:10px; color:#999; margin-left:6px; }
.field-note { font-size:11px; color:#888; margin-top:6px; line-height:1.6; }
input[type="text"],input[type="email"],input[type="date"],textarea { width:100%; padding:13px 16px; border:1px solid var(--border); border-radius:4px; font-size:14px; font-family:inherit; color:var(--text); background:#fdfcff; transition:border-color 0.2s; -webkit-appearance:none; }
input:focus,textarea:focus { outline:none; border-color:var(--mid); background:white; }
textarea { resize:vertical; min-height:120px; }
.radio-group { display:flex; flex-direction:column; gap:10px; }
.radio-label,.check-label { display:flex; align-items:flex-start; gap:10px; font-size:14px; font-weight:400; color:var(--text); cursor:pointer; line-height:1.6; }
input[type="radio"],input[type="checkbox"] { width:18px; height:18px; accent-color:var(--primary); flex-shrink:0; margin-top:2px; cursor:pointer; }
.privacy-text { font-size:13px; color:#777; line-height:1.8; background:var(--bg); padding:16px; border-radius:4px; margin-bottom:12px; }
.agree-box { background:#f8f4ff; border:1px solid var(--border); border-radius:4px; padding:20px; margin-bottom:28px; }
.agree-box p { font-size:13px; color:#555; line-height:1.8; margin-bottom:12px; }
.agree-box ul { font-size:13px; color:#555; line-height:2; padding-left:16px; margin-bottom:16px; }
.divider { border:none; border-top:1px solid var(--border); margin:32px 0; }
.error-list { background:#fff5f5; border:1px solid #f0c0c0; border-radius:4px; padding:16px 20px; margin-bottom:24px; }
.error-list p { font-size:13px; font-weight:700; color:var(--error); margin-bottom:8px; }
.error-list li { font-size:13px; color:var(--error); margin-left:16px; line-height:1.8; }
.system-error { background:#fff5f5; border:1px solid #f0c0c0; border-radius:4px; padding:16px 20px; font-size:13px; color:var(--error); margin-bottom:24px; }
.submit-btn { display:block; width:100%; padding:18px; background:var(--primary); color:white; border:none; border-radius:4px; font-size:16px; font-weight:700; letter-spacing:0.15em; font-family:inherit; cursor:pointer; transition:background 0.2s,transform 0.2s; }
.submit-btn:hover { background:#2a1051; transform:translateY(-1px); }
.honeypot { display:none !important; }
.sent-box { background:white; border:1px solid var(--border); border-radius:6px; padding:56px 40px; text-align:center; }
.sent-icon { font-size:40px; margin-bottom:20px; }
.sent-box h2 { font-size:20px; color:var(--primary); margin-bottom:16px; letter-spacing:0.1em; }
.sent-box p { font-size:14px; color:#555; line-height:2; }
.sent-box a { display:inline-block; margin-top:32px; padding:12px 32px; border:1px solid var(--primary); color:var(--primary); border-radius:4px; font-size:13px; letter-spacing:0.1em; text-decoration:none; transition:all 0.2s; }
.sent-box a:hover { background:var(--primary); color:white; }
footer { text-align:center; padding:32px 24px; font-size:12px; color:#aaa; }
@media (max-width:560px) {
  .page-header { padding:40px 20px 120px; }
  .page-header h1 { font-size:22px; }
  .container { padding:32px 16px; }
  .plan-confirm { flex-direction:column; gap:10px; text-align:center; }
  .form-block { padding:28px 16px; }
  .sent-box { padding:40px 20px; }
  input[type="text"],input[type="email"],input[type="date"],textarea { font-size:16px; } /* iOSズーム防止 */
  .submit-btn { font-size:14px; padding:15px; }
  .agree-box { padding:16px; }
}

.privacy-text a, footer a { color: var(--primary); text-decoration: underline; text-underline-offset: 3px; }
.footer-legal-links { margin-top: 6px; }
