html {
  font-size: 62.5%;
}

body {
  font-size: 1.5em;
}

h2 {
  text-align: center;
  font-size: 2.2rem;
  font-weight: bold;
  /*margin-bottom: 3rem;*/
}


/*////////// Labels //////////*/

.Required-sign {
  display: inline-block;
  vertical-align: 12%;
  font-size: .8em;
  color: #ffffff;
  background-color: #b10003;
  line-height: 1;
  padding: 2px 6px 2px;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  margin-left: .5em;
  text-indent: initial;
}


/*////////// Buttons //////////*/

.button, button, input[type="submit"], input[type="reset"], input[type="button"] {
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  background: #0053ad;
  background: -webkit-gradient(linear, 0 0, 0 bottom, from(#0053ad), to(#00438c));
  background: -webkit-linear-gradient(#0053ad, #00438c);
  background: -moz-linear-gradient(#0053ad, #00438c);
  background: -ms-linear-gradient(#0053ad, #00438c);
  background: -o-linear-gradient(#0053ad, #00438c);
  background: linear-gradient(#0053ad, #00438c);
  font-weight: bold;
  color: #FFF;
  padding: 5px 40px;
  border: 1px solid #004896;
  -webkit-box-shadow: #666 0px 0px 2px;
  -moz-box-shadow: #666 0px 0px 2px;
  box-shadow: #666 0px 0px 2px;
  cursor: pointer;
}

.button:hover, button:hover, input[type="submit"]:hover, input[type="reset"]:hover, input[type="button"]:hover, .button:focus, button:focus, input[type="submit"]:focus, input[type="reset"]:focus, input[type="button"]:focus {
  outline: 0;
  opacity: 0.7;
  background-color: #ffffff;
  border-color: #ffffff;
}


/*////////// Forms //////////*/

input[type="email"], input[type="number"], input[type="search"], input[type="text"], input[type="tel"], input[type="url"], input[type="password"], textarea, select {
  height: 38px;
  padding: 6px 10px;
  /* The 6px vertically centers text on FF, ignored by Webkit */
  background-color: #fff;
  border: 1px solid #D1D1D1;
  border-radius: 4px;
  box-shadow: none;
  box-sizing: border-box;
  -webkit-transition: all .2s;
  transition: all .2s;
  width: 100%;
  max-width: 640px;
}


/* iOSの不要スタイル初期化 */

input[type="email"], input[type="number"], input[type="search"], input[type="text"], input[type="tel"], input[type="url"], input[type="password"], textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  width: 100%;
  max-width: 640px;
}

textarea {
  min-height: 100px;
  padding-top: 6px;
  padding-bottom: 6px;
}

input[type="email"]:focus, input[type="number"]:focus, input[type="search"]:focus, input[type="text"]:focus, input[type="tel"]:focus, input[type="url"]:focus, input[type="password"]:focus, textarea:focus, select:focus {
  box-shadow: 0 0 4px #8baa1a;
  border: 1px solid #8baa1a;
  outline: 0;
}

legend {
  display: block;
  font-weight: bold;
  /*padding: 1rem 0 1rem;*/
}

label {
  display: block;
  font-weight: bold;
  margin: 2.6rem 0 .5rem;
}

.textbox-mb {
  margin-bottom: 1rem;
}

.dropdownlist-mb {
  margin-bottom: 1rem;
}

.choices li {
  margin: 0 0 .5rem .5rem;
}

.choices label {
  cursor: pointer;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  tap-highlight-color: rgba(0, 0, 0, 0);
  display: inline;
  font-weight: normal;
}

/*.label-body {
  cursor: pointer;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  tap-highlight-color: rgba(0, 0, 0, 0);
  display: block;
  font-weight: normal;
  margin: 0 0 .5rem .5rem;
}*/

fieldset {
  padding: 0;
  border-width: 0;
  border-top: 1px solid gray;
}

input[type="checkbox"], input[type="radio"] {
  display: inline;
}

::-webkit-input-placeholder {
  color: #ccc;
  font-weight: normal;
}

input:-ms-input-placeholder {
  color: #ccc;
  font-weight: normal;
}

::-moz-placeholder {
  color: #ccc;
  font-weight: normal;
}

/***** header *****/

.header {
  text-align: center;
  margin: 1rem 0 0;
  border-bottom: 30px solid #f5f5f5;
}

.header img {
  width: 95%;
  max-width: 600px;
  margin-bottom: 1rem;
}


/***** contents *****/

.contents {
  width: 100%;
  max-width: 640px;
  margin: 0 auto;
}

.questionnaire, .personal-info, .questionnaire-answer, .personal-info-answer {
  padding: 0 2rem 4rem;
}

.form-header {
  padding: 2rem 2rem 0;
  margin-bottom: 4rem;
}

.form-header h2 span {
  display: block;
}

@media (min-width: 640px) {
  .form-header h2 {
      margin: 1rem 0 1rem;
  }
/*
  .form-header h2 span {
      display: inline;
  }
  .form-header h2 span::before {
      content: "　";
  }
*/
}

.form-header div {
  font-size: 1.4rem;
}

.form-header h4 {
  font-size: 1.5rem;
  font-weight: bold;
  text-indent: -1rem;
  margin-top: 2rem;
}

.form-header a, .privacy-policy a, .backtop a {
  color: #003f91;
}

.cover {
  display: block;
  max-width: 30%;
  margin: 0 auto 2rem;
  box-shadow: 2px 2px 5px #888888;
}

.notice {
  background-color: #ffeaf4;
  border-radius: 1rem;
  padding: .5rem;
}

.indent01 {
  margin-left: 1em;
  text-indent: -1em;
  display: block;
}

.indent02 {
  margin-left: 2.5em;
  text-indent: -2.5em;
  display: block;
}

.prefectures {
  width: 168px;
}

.monitor-required {
  visibility: hidden;
}

.contents:has(.apply-monitor > input:checked) .monitor-required {
  visibility: visible;
}

.privacy-policy {
  max-width: 640px;
  border: 1px solid gray;
  font-size: 1.2rem;
  padding: 1rem;
  margin-top: 4rem;
  margin-bottom: 2rem;
}

.button-area {
  text-align: center;
  margin-bottom: 6rem;
}

.validationsummary {
  max-width: 640px;
  border: 1px solid #ff0000;
  color: #ff0000;
  font-size: 1.4rem;
  /* font-weight: bold; */
  margin: 0 2rem 2rem;
  padding: 1rem;
}

.validationsummary ul li {
  /* font-weight: normal; */
  font-weight: bold;
}

.input-validation-error {
  background-color: #ffdddd !important;
}

.field-validation-error {
  color: #ff0000;
  font-size: 1.4rem;
  display: block;
}

.field-validation-error:before {
  font-family: "FontAwesome";
  content: "\f06a";
  margin-right: 0.5em;
}

.invalid {
  color: #ff0000;
  font-size: 1.4rem;
  display: block;
}

.questionnaire-answer .answer, .personal-info-answer .answer {
  border: 1px solid #D1D1D1;
  padding: 1rem;
}

.confirmation, .end, .backtop {
  padding: 0 2rem;
  margin-bottom: 2rem;
  font-size: 1.4rem;
}

.button-area .backbutton {
  margin-right: 2rem;
  padding: 5px 20px;
  background: #e8e8e8;
  background: -webkit-gradient(linear, 0 0, 0 bottom, from(#e8e8e8), to(#cccccc));
  background: -webkit-linear-gradient(#e8e8e8, #cccccc);
  background: -moz-linear-gradient(#e8e8e8, #cccccc);
  background: -ms-linear-gradient(#e8e8e8, #cccccc);
  background: -o-linear-gradient(#e8e8e8, #cccccc);
  background: linear-gradient(#e8e8e8, #cccccc);
  color: #000;
  border: 1px solid #d1d1d1;
}

.end {
  margin-bottom: 4rem;
}

.backtop {
  text-align: center;
  margin-bottom: 6rem;
}

/***** footer *****/

footer {
  background-color: #f5f5f5;
  padding: 15px 0 10px;
  margin-top: 30px;
}

footer .copyright {
  text-align: center;
}
