@charset "UTF-8";

*,
*::before,
*::after {
  margin: 0px;
  padding: 0px;
  box-sizing: border-box;
  font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
  font-size: inherit;
  line-height: inherit;
}

html, body {
  font-size: 17px;
}

ul {
  list-style: none;
}

a,
a:link,
a:hover,
a:visited {
  text-decoration: none;
  color: inherit;
}

a:hover {
  opacity: 0.5;
}

img {
  vertical-align: bottom;
}

input,
select,
textarea {
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  -o-border-radius: 5px;
  -ms-border-radius: 5px;
  border-radius: 5px;
  outline: none;
}

button {
  outline: none;
}

#content {
  padding: 100px 0px;
}

h1 {
  padding: 10px;
  width: 100%;
  font-size: 24px;
  text-align: center;
  color: #fff;
  background-color: #0174ae;
  position: fixed;
  top: 0px;
  left: 0px;
  z-index: 90;
}

h1 span {
  display: block;
}

#processing {
  display: none;
  min-width: 100%;
  min-height: 120%;
  background-color: rgba(255, 255, 255, 0.5);
  position: fixed;
  top: 0px;
  left: 0px;
  z-index: 70;
}

#message {
  display: none;
  width: 100%;
  height: 120%;
  position: fixed;
  top: 0px;
  left: 0px;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 99;
}

#message div.frame {
  display: inline-block;
  min-width: 400px;
  text-align: center;
  border: 2px #0174ae solid;
  background-color: #fff;
  position: relative;
  top: 20%;
  left: 50%;
  transform: translate(-50%);
}

#message div.frame h2 {
  padding: 5px;
  font-size: 18px;
  font-weight: bold;
  text-align: center;
  color: #fff;
  background-color: #0174ae;
}

#message div.frame ul {
  display: flex;
  padding: 20px;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: nowrap;
  flex-flow: column;
  row-gap: 20px;
  font-weight: bold;
}

#message div.frame li {
  width: 100%;
  position: relative;
}

#message div.frame p {
  font-weight: normal;
}

#message div.frame p div {
  text-align: left;
}

#message div.frame p span {
  font-weight: bold;
  color: #d00f0f;
}

div.buttonArea {
  margin: 20px 0px 0px;
  text-align: center;
}

div.buttonArea ul {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: nowrap;
  column-gap: 30px;
}

div.buttonArea button {
  padding: 10px 20px;
  min-width: 120px;
  font-size: 20px;
  font-weight: bold;
  color: #fff;
  border: none;
  border-radius: 5px;
  background-color: #0174ae;
  cursor: pointer;
}

div.buttonArea button:disabled {
  background-color: #ddd;
  cursor: not-allowed;
}

div.buttonArea button span {
  padding: 0px 5px;
  font-size: 24px;
  color: #ffce00;
}

.error {
  margin: 0px auto;
  padding: 150px 0px;
  width: 1200px;
  line-height: 1.5em;
  text-align: center;
}

.error h2 {
  font-size: 22px;
  font-weight: bold;
  text-align: center;
  color: #d00f0f;
}

.error p {
  margin-top: 20px;
}

.caution {
  margin: 0px auto;
  padding: 70px 0px;
  width: 1200px;
  line-height: 1.5em;
  text-align: center;
}

.caution h2 {
  font-size: 22px;
  font-weight: bold;
  text-align: center;
  color: #d00f0f;
}

.caution p {
  margin-top: 20px;
}

.introduction,
.thanks {
  margin: 0px auto;
  padding: 70px 0px;
  width: 1000px;
}

.introduction p span {
  display: inline-block;
}

.introduction dl {
  margin-top: 40px;
}

.introduction dt {
  padding: 5px;
  font-weight: bold;
  border-left: 5px #0174ae solid;
}

.introduction dd {
  margin-top: 20px;
  padding:0px 20px;
}

.introduction dd li {
  display: flex;
  margin-top: 5px;
  align-items: flex-start;
  justify-content: flex-start;
  flex-wrap: nowrap;
}

.introduction dd p a {
  text-decoration: underline !important;
  white-space: nowrap;
}

.introduction dd p.checkboxArea {
  margin-top: 30px;
  text-align: center;
}

.introduction dd p.checkboxArea input {
  transform: scale(1.5);
  cursor: pointer;
}

.introduction dd p.checkboxArea label {
  margin-left: 5px;
  cursor: pointer;
}

.introduction dd p.checkboxArea label.consent {
  padding-left: 5px;
  font-size: 20px;
  font-weight: bold;
  color: #d00f0f;
  cursor: pointer;
}

#notEntered {
  display: none;
  width: 1000px;
  text-align: left;
  position: fixed;
  top: 10px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 99;
}

#notEntered button {
  display: inline-block;
  padding: 5px;
  width: auto;
  font-size: 18px;
  white-space: nowrap;
  color: #fff;
  border: none;
  border-radius: 5px;
  background-color: #555;
  cursor: pointer;
  vertical-align: bottom;
}

#notEntered button::before {
  content: '!';
  display: inline-block;
  margin-right: 5px;
  width: 25px;
  height: 25px;
  line-height: 1.5em;
  font-weight: bold;
  color: #000;
  background-color: #ffce00;
  border-radius: 50%;
}

#notEntered button:hover {
  background-color: #999;
}

#notEntered button span {
  margin: 0px 5px;
  font-size: 24px;
  font-weight: bold;
  color: #ffce00;
}

#progress {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  padding: 130px 0px 38px;
  width: 1000px;
  background-color: #fff;
  position: fixed;
  top: 0px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 79;
}

#progress li {
  padding: 13px 0;
  width: 33.33%;
  font-size: 16px;
  font-weight: bold;
  text-align: center;
  color: #999;
  background-color: #F5F5F5;
  position: relative;
}

#progress li:not(:last-child)::before,
#progress li:not(:last-child)::after {
  content: '';
  margin: auto;
  border: 26px solid transparent;
  border-left: 20px solid #F5F5F5;
  position: absolute;
  top: 0;
  left: 100%;
  bottom: 0;
  z-index: 2;
}

#progress li:not(:last-child)::before {
  border-left-color: #FFF;
}

#progress li.active {
  z-index: 1;
  color: #fff;
  background-color: #555;
}

#progress li.active:not(:last-child)::after {
  border-left-color: #555;
}

#progress li.active:not(:last-child)::before {
  border-left: none;
}

#declaration {
  margin: 0px auto;
  padding: 140px 0px 70px;
  width: 1000px;
  line-height: 1.5em;
  text-align: left;
}

#declaration h2,
.thanks h2 {
  margin-bottom: 10px;
  padding: 5px;
  width: 100%;
  font-size: 22px;
  font-weight: bold;
  border-left: 5px #0174ae solid;
}

#declaration h2:nth-child(n + 2) {
  margin-top: 40px;
}


#declaration h2 span {
  display: inline-block;
}

#declaration ul.item li {
  padding: 20px;
  border-top: 1px #ccc solid;
  border-bottom: 1px #ccc solid;
}

#declaration ul.item li:nth-child(n + 2) {
  border-top: none;
}

#declaration dl {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: nowrap;
}

#declaration dl.radio label {
  padding-left: 1.6em;
  text-indent: -1.4em;
}

#declaration dl.radio label:nth-child(n + 2) {
  margin-top: 10px;
}

#declaration dl.checkbox label {
  padding-left: 1.6em;
  text-indent: -1.4em;
}

#declaration dl.checkbox label:nth-child(n + 2) {
  margin-top: 10px;
}

#declaration dt {
  padding-right: 5%;
  width: 30%;
  font-weight: bold;
  position: relative;
}

#declaration dt div {
  font-size: 16px;
  font-weight: bold;
  color: #d00f0f;
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
}

#declaration dt p {
  font-weight: normal;
}

#declaration dt span {
  display: inline-block;
}

#declaration dd {
  flex: 1;
  padding-left: 20px;
  position: relative;
}

#declaration dd p {
  font-size: 16px;
}

#declaration dd h3:last-of-type {
  margin-top: 20px;
}

#declaration dd h3 span {
  margin-left: 10px;
  font-size: 16px;
  font-weight: normal;
  margin-right: 10px;
}

#declaration dd input {
  padding: 5px;
  border: 1px #999 solid;
}

#declaration dd input.inputText {
  width: 100%;
}

#declaration dd input.inputNumber {
  margin-right: 5px;
  width: 7em;
}

#declaration dd input.inputTel {
  margin-right: 5px;
  width: 10em;
}

#declaration dd label {
  display: block;
  cursor: pointer;
}

#declaration dl.inline dd label {
  display: inline-block;
  width: auto;
}

#declaration dl.inline dd label:nth-of-type(n + 2) {
  margin-left: 20px;
}

#declaration dd label input {
  margin-right: 10px;
  transform: scale(1.5);
}

#declaration dd p.advice {
  font-weight: bold;
}

#declaration dd p.advice span {
  display: inline-block;
}

#declaration dd p.other {
  margin-top: 10px;
}

#declaration dd div {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-wrap: nowrap;
}

#declaration dd div:last-of-type {
  margin-top: 10px;
}

#declaration dd textarea {
  padding: 5px;
  width: 100%;
  height: 4em;
}

#declaration dd #ajaxZip {
  margin-left: 20px;
  padding: 5px 10px;
  color: #fff;
  border: none;
  border-radius: 5px;
  background-color: #0174ae;
  cursor: pointer;
}

#declaration dd #ajaxZip:disabled {
  background-color: #ddd;
  cursor: not-allowed;
}

#declaration dd p.errMsg {
  display: none;
  margin-top: 10px;
  font-weight: bold;
  color: #d00f0f;
}

#declaration p.tooltip {
  position: absolute;
  top: -30px;
  left: 0px;
}

#declaration p.tooltip span {
  display: inline-block;
  padding: 3px 5px;
  font-size: 12px;
  color: #ffce00;
  background-color: #555;
  border-radius: 7px;
  position: relative;
}

#declaration ul.consent dl {
  display: block;
}

#declaration ul.consent dt {
  margin-left: 0px;
  padding-right: 0px;
  width: 100%;
  font-weight: normal;
}

#declaration ul.consent dd {
  margin-top: 20px;
  text-align: center;
}

#declaration ul.consent dd label {
  cursor: pointer;
}

#declaration ul.consent dd input {
  margin-right: 10px;
  transform: scale(1.5);
  cursor: pointer;
}

#declaration ul.consent dd .errMsg {
  display: none;
  margin-top: 10px;
  font-weight: bold;
  color: #d00f0f;
}

.information p {
  margin-left: 20px;
}

.information ol {
  padding-left: 2.3em;
}

.information ul ol li {
  margin-bottom: 20px;
  padding: 0px;
  border-bottom: none;
}

.information ul.purpose p {
  padding-bottom: 20px;
}

#questionnaire {
  display: none;
}

#questionnaire h2 {
  margin-top: 40px;
}

#questionnaire ul.item p {
  padding-left: 0px;
}

#thanks {
  margin: 0px auto;
  padding: 120px 0px 70px;
  width: 1000px;
  line-height: 1.5em;
  text-align: left;
}

#thanks h2 {
  margin: 0px 0px 10px;
  padding: 5px;
  width: 100%;
  font-size: 22px;
  font-weight: bold;
  border-left: 5px #0174ae solid;
}

#thanks h2 span {
  white-space: nowrap;
}

@media only screen and (max-width: 800px) {
  
  html, body {
    font-size: 16px;
  }

  a:hover {
    opacity: 1;
  }
  
  #content {
    padding-bottom: 140px;
  }
  
  .error {
    padding-top: 120px;
    width: 100%;
    line-height: 1.5em;
  }

  .caution,
  .introduction,
  .thanks {
    margin-top: 40px;
    padding: 0px 20px;
    width: 100%;
    line-height: 1.5em;
  }
  
  h1 {
    padding: 10px 20px;
    font-size: 20px;
  }
  
  h1 span {
    display: inline-block;
    margin-left: 10px;
    font-size: 17px;
  }
  
  div.buttonArea {
    margin-top: 50px;
  }
  
  #message {
    padding: 0px 20px;
  }
  
  #message div.frame {
    width: 100%;
  }
  
  #message div.buttonArea {
    margin-top: 20px;
  }
  
  .caution h2 {
    font-size: 18px;
  }
  
  .caution p {
    font-size: 16px;
  }
  
  .caution span {
    white-space: nowrap;
  }
  
  .introduction dd p.checkboxArea label.consent{
    font-size: 16px;
  }
  
  #notEntered {
    width: auto;
    top: auto;
    bottom: 30px;
  }
  
  #notEntered button {
    font-size: 18px;
  }

  #notEntered button:hover {
    background-color: #555;
  }
  
  #progress {
    padding: 110px 0px 20px;
    width: 100%;
  }
  
  #progress li {
    padding: 5px 0px;
  }

  #progress li:not(:last-child)::before,
  #progress li:not(:last-child)::after {
    border: 17px solid transparent;
    border-left: 10px solid #F5F5F5;
  }
  
  #declaration {
    width: 100%;
    padding: 90px 20px 0px;
    line-height: 1.5em;
  }
  
  #declaration h2 {
    font-size: 18px;
  }
  
  #declaration h2 dl {
    height: auto;
    position: static;
  }
  
  #declaration h2 dt {
    margin-bottom: 0px;
    font-size: 18px;
    position: static;
    transform: none;
  }
  
  #declaration h2 dd {
    float: none;
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 99;
  }
  
  #declaration ul.item li {
    padding: 20px 0px;
  }
  
  #declaration dl {
    display: block;
  }
  
  #declaration dl.radio label {
    width: 100%;
  }
  
  #declaration dl.checkbox label {
    width: 100%;
  }
  
  #declaration dt {
    margin-bottom: 20px;
    padding: 5px;
    width: 100%;
    background-color: #dcf3ff;
  }

  #declaration dl.required dt {
    padding: 5px 50px 5px 5px;
  }

  #declaration dd {
    padding: 0px 5px;
  }

  #declaration dl.inline dd label {
    margin-left: 0px !important;
    width: 100%;
  }
  
  #questionnaire ol {
    padding-left: 1.5em;
  }
  
  #declaration ul.consent dt {
    font-weight: bold;
  }
  
  .thanks h2 {
    font-size: 18px;
  }
}

@media only screen and (max-width: 380px) {
  #declaration dt br {
    display: inline;
  }
}
