/* 段階式フォーム専用。既存のform.cssとは独立したスタイルです。 */
.fujie-form { max-width: 900px; margin: 2rem auto; text-align: left; font-size: 16px; line-height: 1.7; }
.fujie-form .form-progress { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0 0 24px; }
.fujie-form .form-progress li { flex: 1 1 130px; padding: 10px; background: #ededed; color: #333; border-bottom: 3px solid #ccc; font-size: 14px; }
.fujie-form .form-progress li[aria-current] { color: #fff; background: #a62026; border-color: #72171c; font-weight: bold; }
.fujie-form .form-field { margin: 24px 0; }
.fujie-form fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.fujie-form legend, .fujie-form .form-field > label { display: block; font-weight: bold; margin-bottom: 8px; }
.fujie-form .form-required, .fujie-form .form-optional { display: inline-block; padding: 1px 8px; margin-left: 6px; font-size: 14px; font-weight: normal; border-radius: 3px; }
.fujie-form .form-required { color: #fff; background: #a62026; }
.fujie-form .form-optional { color: #333; background: #e5e5e5; }
.fujie-form input:not([type=radio]):not([type=checkbox]):not([type=hidden]), .fujie-form textarea, .fujie-form select { box-sizing: border-box; width: 100%; max-width: 100%; padding: 12px; border: 1px solid #777; border-radius: 4px; font: inherit; background: #fff; color: #222; }
.fujie-form input[type=radio], .fujie-form input[type=checkbox] { width: 20px; height: 20px; flex-shrink: 0; margin: 4px 8px 0 0; accent-color: #a62026; }
.fujie-form label.form-choice { display: flex; align-items: flex-start; padding: 12px; margin: 10px 0; border: 1px solid #bbb; background: #fff; color: #222; border-radius: 4px; font-weight: normal; cursor: pointer; }
.fujie-form a { text-decoration: underline; }
.fujie-form .form-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.fujie-form .form-help { color: #ddd; font-size: 14px; margin-top: 8px; }
.fujie-form .form-errors { padding: 16px 20px; margin: 20px 0; border: 2px solid #a62026; color: #80181d; background: #fff4f4; }
.fujie-form .form-errors ul { padding-left: 24px; }
.fujie-form .form-field-error { color: #ffb3b6; font-weight: bold; }
.fujie-form [aria-invalid=true] { outline: 2px solid #a62026; }
.fujie-form .form-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; margin: 32px 0 16px; }
.fujie-form .form-actions button { min-height: 48px; padding: 12px 24px; border: 1px solid #a62026; border-radius: 4px; font: inherit; cursor: pointer; }
.fujie-form .form-next { background: #a62026; color: #fff; }
.fujie-form .form-back { order: -1; background: #fff; color: #8b1920; }
.fujie-form :focus-visible { outline: 3px solid #145bb0; outline-offset: 3px; }
.fujie-form .form-confirmation { margin: 24px 0; }
.fujie-form .form-confirmation dt { font-weight: bold; padding: 12px 16px; background: #eee; color: #222; }
.fujie-form .form-confirmation dd { padding: 12px 16px 24px; overflow-wrap: anywhere; }
@media (max-width: 600px) { .fujie-form .form-progress li { flex-basis: 95px; } .fujie-form .form-actions button { flex: 1 1 150px; } }
