/* フォーム本体専用。共通ボタンは公開Webの共通CSSに残す。 */

.public-web-form { position: relative; border: 1px solid #0000ff36; border-radius: 22px; padding: clamp(22px, 4vw, 40px); background: linear-gradient(135deg, #0000ff18, #8000ff12), #ffffffc9; backdrop-filter: blur(18px); box-shadow: inset 0 1px #ffffff16, 0 20px 60px #0000ff1a; }.public-web-form h2 { margin-top: 0; }.public-web-form h2:focus { outline: none; }.public-web-form-notice { padding: 14px 17px; border-left: 2px solid var(--pw-primary); background: linear-gradient(90deg, #0000ff16, transparent); border-radius: 0 10px 10px 0; font-size: 13px; }.public-web-form fieldset, .public-web-form-field, .public-web-consent { margin: 26px 0; min-width: 0; }.public-web-form legend, .public-web-form-field > label { display: block; font-weight: 500; margin-bottom: 11px; font-size: 14px; color: #374568; }.public-web-required, .public-web-optional { display: inline-block; font-size: 10px; font-weight: 500; vertical-align: middle; border-radius: 5px; padding: 0 7px; margin-left: 7px; letter-spacing: .03em; }.public-web-required { background: #0000ff20; color: var(--pw-primary); border: 1px solid #0000ff28; }.public-web-optional { background: #0000ff10; color: #627093; }.public-web-radio-options { display: grid; gap: 9px; }.public-web-radio-options label { border: 1px solid transparent; padding: 8px 12px; border-radius: 10px; transition: background .25s, border-color .25s; }.public-web-radio-options label:hover { background: #0000ff09; }.public-web-radio-options label:has(:checked) { border-color: #0000ff50; background: linear-gradient(110deg, #0000ff1f, #8000ff1d); }.public-web-radio-options label, .public-web-consent label { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; font-size: 14px; color: #475878; }.public-web-form input[type="radio"], .public-web-form input[type="checkbox"] { width: 18px; height: 18px; flex: 0 0 18px; margin-top: 6px; accent-color: var(--pw-primary); }.public-web-form-field input, .public-web-form-field textarea { width: 100%; min-width: 0; background: #ffffffd9; color: #26375f; border: 1px solid #0000ff30; border-radius: 11px; padding: 13px 15px; font: inherit; font-size: 16px; box-shadow: inset 0 2px 6px #00000014; transition: border-color .25s, box-shadow .25s, background .25s; }.public-web-form-field :is(input,textarea)::placeholder { color: #68738e; opacity: 1; }.public-web-form-field :is(input,textarea):focus { background: #ffffff; border-color: var(--pw-primary); box-shadow: 0 0 0 4px #0000ff16, inset 0 1px #ffffff08; }.public-web-form-field textarea { resize: vertical; min-height: 160px; }.public-web-consent > a { display: inline-block; margin: 8px 0 0 28px; font-size: 12px; }.public-web-form-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }.public-web-form-review { animation: pw-rise .5s both; }.public-web-form-review > div { padding: 17px 0; border-bottom: 1px solid #0000ff22; }.public-web-form-review dt { color: #526080; font-size: 12px; }.public-web-form-review dd { margin-top: 7px; white-space: pre-wrap; overflow-wrap: anywhere; color: #26375f; }.public-web-form [role="status"] { padding: 24px; border: 1px solid #0000ff40; border-radius: 14px; background: linear-gradient(120deg, #0000ff18, #8000ff22); animation: pw-rise .6s both; }@media (max-width: 640px) {
  .public-web-form { padding: 22px 16px; border-radius: 16px; }.public-web-form h2 { font-size: 22px; }.public-web-form-actions { flex-direction: column; }.public-web-form-actions button, .public-web-form form > button { width: 100%; }.public-web-radio-options label { padding: 8px; }
}@media (prefers-reduced-transparency: reduce) { .public-web-form { backdrop-filter: none; background-color: #f6f7ff; } }@supports not (backdrop-filter: blur(1px)) { .public-web-form { background-color: #f6f7ff; } }
