#main input,
#main textarea {
  width: 100%;
  max-width: 100%;
  font: inherit;
  border: none;
  padding: .5em;
  background: #f0f0f0;
}
#main select {
  font: inherit;
}
#main input[name="zip"],
#main input[name="pref"] {
  width: 10em;
}
#main input[name="name"],
#main input[name="kana"],
#main input[name="tel"],
#main input[name="company"],
#main input[name="busho"],
#main input[name="yakushoku"] {
  width: 20em;
}
#main input[name="email"],
#main input[name="email2"],
#main input[name="addr"],
#main input[name="addr2"] {
  width: 100%;
}
#main .form-button {
  text-align: center;
  margin-top: 3rem;
}
#main .form-button > * {
  display: inline-block;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  border: none;
  transition: opacity 0.2s;
  margin: 0.5em;
}
.mw_wp_form_input .mw-preview,
.mw_wp_form_preview .mw-input {
  display: none !important;
}
#main input[type="radio"] {
  width: auto;
}
label {
  display: inline-block;
}

#visual {
  background: url(../images/contact/visual-bg.jpg) center center /cover no-repeat !important;
}
#visual .title-1:before {
  content: 'CONTACT';
}

#main .tel-fax {
  padding-bottom: 30px;
}

#main .layout-flex-3 > * {
  width: 30.56%;
}
#main .layout-flex-3 .box {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.1;
  color: #006bc0;
  padding: 30px;
  background: #e6eaf0;
}
#main .layout-flex-3 .box > .tel {
  padding-left: 30px;
  background: url("../images/contact/icon-tel.png") left 0 bottom .1em /auto 1.6em no-repeat;
}
#main .layout-flex-3 .box > .fax {
  padding-left: 30px;
  background: url("../images/contact/icon-fax.png") left 0 bottom .1em /auto 1.6em no-repeat;
}
#main .layout-flex-3 .box > * ~ * {
  margin-top: 1.5em;
}
#main .layout-flex-3 .box .number {
  display: block;
  font-size: 1.875em;
}
#main .layout-flex-3 .box .fax {
  font-size: .833em;
}
@media (max-width:960px) {
  #main .layout-flex-3 {
    max-width: 330px;
    display: block;
    margin: 0 auto;
  }
  #main .layout-flex-3 > * {
    width: 100%;
    margin-top: 30px;
  }
}

#main table.default tr th {
  text-align: left;
}
#main table.default tr.require th {
  position: relative;
}
#main table.default tr.require th:after {
  content: '必須';
  display: block;
  float: right;
  width: 45px;
  font-size: 1.3rem;
  font-weight: 700;
  text-align: center;
  line-height: 1;
  color: #fff;
  padding: .25em 0 .35em;
  background: #f00;
  margin-top: .25em;
}
#main .hissu {
  display: inline-block;
  vertical-align: middle;
  width: 45px;
  font-size: 1.3rem;
  font-weight: 700;
  text-align: center;
  line-height: 1;
  color: #fff;
  padding: .25em 0 .35em;
  background: #f00;
  margin-top: -4px;
  margin-right: .4em;
}