.form .checkbox { margin-right: 1.5em; }
.form .checkbox input[type="checkbox"] + span { margin-left: 0.5em; }
.form .checkbox-wrapper { display: inline-block; margin-right: 1em; }
.form .checkbox-wrapper .checkbox { margin-right: 0.5em; }
.form .radio { margin-right: 1.5em; }
.form .radio input[type="radio"] + span { display: inline-block; margin-left: 0.7em; font-weight: bold; color: #fff; position: relative; cursor: pointer; }
.form .radio input[type="radio"] + span::before, .form .radio input[type="radio"] + span::after { position: absolute; content: ""; display: block; border-radius: 50%; top: 50%; transform: translateY(-50%); }
.form .radio input[type="radio"] + span::before { background-color: #fff; border: 1px solid #ddd; width: 20px; height: 20px; left: -27px; }
.form .radio input[type="radio"] + span::after { background-color: #002AA5; opacity: 0; width: 14px; height: 14px; left: -24px; z-index: 10; }
.form .radio input[type="radio"]:checked + span::after { opacity: 1; }
.form .radio-wrapper { display: inline-block; margin-right: 1em; }
.form .radio-wrapper .radio { margin-right: 2em; }
.form input[type="text"], .form input[type="date"], .form input[type="password"], .form select, .form textarea { border: #fff 1px solid; line-height: 1.5em; padding: 0.75em; border-radius: 4px; -webkit-appearance: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
.form textarea { display: block; margin-bottom: 0; resize: vertical; }
.form input[type="radio"], .form input[type="checkbox"] { position: relative; top: 2px; }
.form input[type="text"]:hover, .form input[type="password"]:hover, .form textarea:hover, .form select:hover { border: solid 1px #6CC; }
.form label { display: inline-block; }
.form .vertical label { display: block; }
.form .error { color: #f00; }
.form input[type="text"].error, .form input[type="password"].error, .form textarea.error, .form select.error { border: solid 1px #f00; background-color: #FEE; }
.form label.error { color: #f00; }
.form ul.error li { color: #f00; }
.form .readonly { color: #666; }
.form .btn { text-align: center; margin-top: 2em; }
.form .btn input { border: none; height: 2.5em; margin: 0; padding: 0; width: 8em; border-radius: 1.25em; color: #fff; background-color: #002AA5; transition: 0.3s background-color; }
.form .btn input:hover { background-color: #00a9ff; }
.form .align_r { text-align: right; }
.form .mt2em { margin-top: 2em; }
.form .nowrap { display: inline-block; }

@media screen and (min-width: 768px), print { .form label { line-height: 34px; }
  .form .input-ss { width: 30%; }
  .form .input-s { width: 50%; }
  .form .input-m { width: 75%; }
  .form .input-l { width: 100%; }
  .form textarea { width: 100%; height: 8em; }
  .form ul.error { margin-top: 20px; } }
@media screen and (max-width: 767px) { .form input[type="text"], .form input[type="password"], .form select, .form textarea { font-size: 16px; }
  .form label { line-height: 26px; }
  .form .input-ss { width: 50%; }
  .form .input-s, .form .input-m, .form .input-l { width: 100%; }
  .form textarea { width: 100%; height: 8em; }
  .form ul.error { margin-top: 14px; } }
@media screen and (-webkit-min-device-pixel-ratio: 0) { ::i-block-chrome, .form input[type="radio"], ::i-block-chrome, .form input[type="checkbox"] { top: 0px; } }
_::-webkit-full-page-media, _:future, :root .form input[type="radio"], _::-webkit-full-page-media, _:future, :root .form input[type="checkbox"] { top: 0px; }

.form_txt { text-align: center; color: #fff; }

.formT { width: 100%; }
.formT th { text-align: left; white-space: nowrap; font-weight: bold; color: #fff; }
.formT td { width: 100%; }
.formT .form-item { position: relative; padding-right: 48px; }
.formT .form-item::before { position: absolute; content: ""; width: 0.5em; height: 0.5em; top: 0.55em; left: -0.8em; background-color: yellow; border-radius: 0.5em; }
.formT .required { display: block; background-color: #f00; color: #fff; padding: 0 0.5em; position: absolute; top: 50%; right: 0px; transform: translateY(-50%); }
.formT .input-name { display: flex; justify-content: space-between; }
.formT .input-name div { display: inline-block; width: calc( 50% - 0.5em ); }
.formT .input-date { display: flex; justify-content: flex-start; }
.formT .input-date div { display: inline-block; }
.formT .input-date div input { width: 2.5em; }
.formT .input-date div:first-child input { width: 4em; }
.formT .input-date div + div { margin-left: 0.75em; }
.formT .privacy th { padding-right: 0; }
.formT .privacy .privacy_box { margin-top: 1em; }
.formT .privacy .privacy_box .privacy_txt { white-space: normal; font-weight: normal; font-size: 12px; line-height: 1.5; }
.formT .privacy .privacy_box .privacy_txt + .privacy_txt { margin-top: 1em; }
.formT .privacy .privacy_box .privacy_ul { counter-reset: number 0; margin-left: 2em; }
.formT .privacy .privacy_box .privacy_ul li { margin-left: 1.5em; text-indent: -1.5em; }
.formT .privacy .privacy_box .privacy_ul li::before { text-align: right; padding-right: 0.5em; display: inline-block; width: 1.5em; counter-increment: number 1; content: counter(number) "."; }
.formT .privacy .privacy_box .privacy_ul li + li { margin-top: 0.5em; }

@media screen and (min-width: 768px), print { .formT { margin-top: 34px; }
  .formT th, .formT td { vertical-align: middle; height: auto; }
  .formT th { padding: 0.75em 2em; }
  .formT td { padding: 0.75em 0; }
  .formT .required { font-size: 12px; line-height: 20px; border-radius: 4px; }
  .formT .input-name { width: 75%; } }
@media screen and (max-width: 767px) { .kome.form_txt { text-align: left; }
  .formT { margin-top: 20px; }
  .formT th, .formT td { display: block; }
  .formT th { padding: 0.5em 1em; }
  .formT td { padding: 0.5em 0em 1em; }
  .formT tr:last-child td { padding-bottom: 0; }
  .formT .privacy th { padding-left: 0; }
  .formT .privacy .form-item { margin-left: 1em; }
  .formT .privacy .privacy_box { width: 100%; background-color: #fff; border-radius: 4px; margin-top: 1em; padding: 1em 1em 1em 1em; height: 15em; overflow-y: scroll; }
  .formT .privacy .privacy_box .privacy_txt { color: #000; }
  .formT .required { font-size: 10px; line-height: 16px; padding-top: 2px; border-radius: 3px; }
  .formT .input-name { width: 100%; } }
