body {
  font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ",
    Meiryo, "ＭＳ Ｐゴシック", sans-serif;
}
p {
  margin: 0;
}
table {
  border-collapse: collapse;
}
td,
th {
  border: 1px #dcdcdc solid;
  padding: 10px;
}
th {
  background-color: #e0ffff;
}
select,
textarea,
input[type="text"],
input[type="time"],
input[type="number"],
input[type="password"],
input[type="tel"],
input[type="email"] {
  background-color: lightcyan;
  border-radius: 5px;
  padding: 10px;
  font-size: 100%;
  font-weight: bold;
}

input[readonly] {
  background-color: lightgreen;
}
.clear {
  clear: both;
}
.err {
  color: red;
  font-weight: bold;
  text-align: center;
  padding: 5px;
  overflow: visible;
}
#wrapper {
}
#header {
  padding: 10px;
  background-color: limegreen;
}
#h_link_area {
  padding: 10px;
  text-align: right;
}
.h_link {
  text-decoration: none;
  font-weight: bold;
  padding: 10px 20px;
  color: black;
  background-color: orange;
  border-radius: 10px;
}
#frm_button {
  padding: 10px;
  text-align: left;
}
.frm_parts_xlm {
  float: left;
  width: 1144px;
}
.frm_parts_llm {
  float: left;
  width: 644px;
}
.frm_parts_lm {
  float: left;
  width: 544px;
}
.frm_parts_mm {
  float: left;
  width: 444px;
}
.frm_parts_ms {
  float: left;
  width: 344px;
}
.frm_parts_l {
  float: left;
  width: 322px;
}
.frm_mxs {
  float: left;
  width: 269px;
}
.frm_parts_ss {
  float: left;
  width: 244px;
}
.frm_parts_m {
  float: left;
  width: 222px;
}
.frm_row {
  clear: both;
  padding: 10px;
  width: 100%;
}
.frm_row_title {
  clear: both;
  padding: 0px 10px;
  width: 100%;
}
.frm_title {
  border: solid 1px;
  float: left;
  background-color: #ddd;
  width: 200px;
  height: 45px;
  padding: 10px;
}
.frm_title_s {
  border: solid 1px;
  float: left;
  background-color: #ddd;
  width: 100px;
  height: 45px;
  padding: 10px;
}
.frm_input_xl {
  border: solid 1px;
  float: left;
  width: 500px;
  height: 45px;
  padding: 10px;
}
.frm_input_xl2 {
  border: solid 1px;
  float: left;
  width: 800px;
  min-height: 45px;
  height: auto;
  padding: 10px;
}

/* Textarea rows: keep left/right columns equal-height without affecting other layouts */
.textarea_row {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -ms-flex-align: stretch;
  align-items: stretch;
  float: none;
  width: 100%;
}
.textarea_row .frm_title,
.textarea_row .frm_input_xl2 {
  float: none;
}
.textarea_row .frm_title {
  height: auto;
  min-height: 45px;
  /* Fix left column width and prevent shrink */
  -ms-flex: 0 0 200px;
  flex: 0 0 200px;
  width: 200px;
}
.textarea_row .frm_input_xl2 {
  /* Let right column flex to remaining width */
  -ms-flex: 1 1 0;
  flex: 1 1 0;
  width: auto;
  min-width: 0;
  box-sizing: border-box;
}
/* Hide legacy clear element inside flex row */
.textarea_row .clear {
  display: none;
}
/* Place error message below the row, full width */
.textarea_row p.err {
  flex: 1 1 100%;
  margin: 5px 0 0 0;
}
.frm_input_ll {
  border: solid 1px;
  float: left;
  width: 400px;
  height: 45px;
  padding: 10px;
}
.frm_input_l {
  border: solid 1px;
  float: left;
  width: 300px;
  height: 45px;
  padding: 10px;
}
.frm_input {
  border: solid 1px;
  float: left;
  width: 200px;
  height: 45px;
  padding: 10px;
}
.frm_input_s {
  border: solid 1px;
  float: left;
  width: 100px;
  height: 45px;
  padding: 10px;
}
.frm_input_ss {
  border: solid 1px;
  float: left;
  width: 50px;
  height: 45px;
  padding: 10px;
}
.frm_input_xs {
  border: solid 1px;
  float: left;
  width: 25px;
  height: 45px;
  padding: 10px;
}
.frm_label_l {
  border: solid 1px;
  float: left;
  width: 300px;
  height: 45px;
  padding: 10px;
}
.frm_label {
  border: solid 1px;
  float: left;
  width: 200px;
  height: 45px;
  padding: 10px;
}
.frm_label_s {
  border: solid 1px;
  float: left;
  width: 100px;
  height: 45px;
  padding: 10px;
}
.frm_label_ss {
  border: solid 1px;
  float: left;
  width: 50px;
  height: 45px;
  padding: 10px;
}
.frm_input_xl input {
  width: 480px;
}
.frm_input_xl2 input {
  width: 780px;
}
.frm_input_ll input {
  width: 380px;
}
.frm_input_l input {
  width: 280px;
}
.frm_input input {
  width: 180px;
}
.frm_input_s input {
  width: 80px;
}
.frm_height_xl {
  height: 300px;
}
.frm_height_xll {
  height: 300px;
}
.frm_input_xl textarea {
  width: 480px;
}
.frm_input_xl2 textarea {
  /* Expand to container width and account for padding/border */
  width: 100%;
  box-sizing: border-box;
}
.frm_height_xl textarea {
  height: 280px;
}
.frm_height_xll textarea {
  height: 280px;
}
.frm_title_n {
  border: solid 1px;
  float: left;
  background-color: #ddd;
  width: 200px;
  height: 25px;
  padding: 10px;
}
.frm_title_s_n {
  border: solid 1px;
  float: left;
  background-color: #ddd;
  width: 100px;
  height: 25px;
  padding: 10px;
}
.frm_input_ll_n {
  border: solid 1px;
  float: left;
  width: 400px;
  height: 25px;
  padding: 10px;
}
.frm_input_l_n {
  border: solid 1px;
  float: left;
  width: 300px;
  height: 25px;
  padding: 10px;
}
.frm_input_n {
  border: solid 1px;
  float: left;
  width: 200px;
  height: 25px;
  padding: 10px;
}
.frm_input_s_n {
  border: solid 1px;
  float: left;
  width: 100px;
  height: 25px;
  padding: 10px;
}
.frm_input_ss_n {
  border: solid 1px;
  float: left;
  width: 50px;
  height: 25px;
  padding: 10px;
}
.frm_input_xs_n {
  border: solid 1px;
  float: left;
  width: 25px;
  height: 25px;
  padding: 10px;
}
