/* ========================================================
#form-container
======================================================== */
body{
  background-color: #E3ECF8;
}
#container{
  padding: 0;
  background-color: #E3ECF8;
  border: none;
  max-width: 100%;
  width: 100%;
}
#form-container,#confirmation-container{
  width: 100%;
  max-width: 1200px;
  background-color: #fff;
  border-radius: 1em;
  position: relative;
  margin: 0 auto;
  padding: 40px 40px 80px;
  line-height: 2em;
  font-size: 18px;
}
#form-container form,#confirmation-container form{
  display: block;
}
.form-column{
  margin: 0 auto 30px;
  max-width: 980px;
}
.label{
  margin-bottom: 0.8em;
  cursor: pointer;
}
.badge-required{
  color: #fff;
  background-color: #D10000;
  border-radius: 0.4em;
  line-height: 1em;
  padding: 0.3em;
}
@media screen and (max-width: 767px){
  #form-container,#confirmation-container{
    padding: 4vw 4vw 10vw;
    font-size: 4.1vw;
  }
  .form-column{
    margin: 0 auto 2.5vw;
  }
}

/* fieldset
----------------------- */
fieldset{
  border: none;
  padding: 0;
  margin: 0;
  text-align: center;
}

/* input
----------------------- */
input[type="text"], input[type="url"], input[type="email"], input[type="tel"],textarea{
  border: solid 1px #054498;
  padding: 1em 1.5em;
  width: 100%;
  max-width: 100%;
  border-radius: 0.4em;
}
input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color: #999999;}
input::-moz-placeholder,textarea::-moz-placeholder{color: #999999;}
input:-ms-input-placeholder,textarea:-ms-input-placeholder{color: #999999;}
input:-placeholder,textarea:-placeholder{color: #999999;}
@media screen and (max-width: 767px){
  input[type="text"], input[type="url"], input[type="email"], input[type="tel"],textarea{
    font-size: 3.58vw;
  }
}


/* input-group
----------------------- */
.input-group{
  display: flex;
  justify-content: center;
  gap: 0 90px;
}
.input-group input{
  display: none;
}
.input-group label{
  cursor: pointer;
  position: relative;
  padding-left: 1.8em;
}
.input-group label::before,
.input-group label span::before{
  content: "";
  display: block;
  position: absolute;
}
.input-group label::before {
  vertical-align:-0.2em;
  line-height:1;
  border: solid 1px #d2dbe1;
  border-radius: 0.15em;
  width: 1.5em;
  height: 1.5em;
  display: inline-block;
  margin-right: 0.3em;
  left: 0;
  top: calc(50% - 0.75em);
}
.input-group input:checked + span::before {
  border-right:solid 0.25em #054498;
  border-bottom:solid 0.25em #054498;
  width: 0.6em;
  height: 1.0em;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  left: 0.5em;
  top: 0.3em;
}
@media screen and (max-width: 1280px) and (min-width: 768px){
  .input-group{
    gap: 0 40px;
  }
}
@media screen and (max-width: 767px){
  .input-group{
    display: block;
  }
}

/* button
----------------------- */
.button-group{
  text-align: center;
  margin-top: 60px;
}
.button-group button{
  display: inline-block;
}
.button-confirm,.button-submit,.button-back{
  text-align: center;
  font-weight: bold;
      display:flex;
    justify-content: center;
    align-items: center;
  border-radius: 9999px;
  cursor: pointer;
  position: relative;
  box-shadow: 0px 2px 0px #00000080;
  min-height: 3em;
  padding: 0.5em 1.5em;
  transition-property: border,background;
  transition: 0.2s linear;
  margin: 0 auto;
  border: solid 1px #054498;
  max-width: 100%;
  width: 300px;
}
.button-back{
  background-color: #EEEEEE;
  margin-right: 1em;
}
.button-confirm:hover,.button-submit:hover,.button-back:hover{
  color: #fff;
  background-color: #054498;
  border: solid 1px #fff;
}
@media screen and (max-width: 767px){
  .button-group{
    margin-top: 10.25vw;
  }
  .button-group button{
    margin: 10.25vw 0 0 !important;
  }
  .button-confirm,.button-submit,.button-back{
    font-size: 4.6vw;
    width: 82vw;
  }
}


/* 選択項目
----------------------- */
.form-column-checkbox:first-child{
  position: relative;
  width: calc(100% + 80px);
  max-width: calc(100% + 80px);
  margin: 0 -40px;
  padding-bottom: 20px;
  border-bottom: solid calc(40px + 2em) #E3ECF8;
}
.form-column-checkbox:first-child::before,
.form-column-checkbox:first-child::after{
  content: "";
  display: block;
  position: absolute;
  width: 100%;
  height: 1em;
  background-color: #fff;
  left: 0;
}
.form-column-checkbox:first-child::before{
  border-radius: 0 0 1em 1em;
  bottom: -1em;
}
.form-column-checkbox:first-child::after{
  border-radius: 1em 1em 0 0;
  bottom: calc(-40px - 2em);
}
.form-column-checkbox:first-child .label{
  display: none;
}
.form-column-checkbox:first-child .input-group{
  text-align: left;
}
.form-column-checkbox + .form-column-name{
  padding-top: 40px;
}
.form-column-checkbox label{
  font-weight: bold;
  font-size: 20px;
}
@media screen and (max-width: 767px){
  .form-column-checkbox:first-child{
    width: calc(100% + 8vw);
    max-width: calc(100% + 8vw);
    margin: 0 -4vw;
    padding: 0 4vw 0;
    text-align: left;
    border-bottom: solid calc(4vw + 2em) #E3ECF8;
  }
  .form-column-checkbox:first-child::after{
    bottom: calc(-4vw - 2em);
  }
  .form-column-checkbox + .form-column-name{
    padding-top: 4vw;
  }
  .form-column-checkbox label{
    font-size: 4.1vw;
  }
}
/* プライバシーポリシー
----------------------- */
.form-column-textarea + .form-column-checkbox fieldset{
      display:flex;
    -ms-flex-pack:distribute;
    justify-content:space-between;
    flex-direction: column;
    flex-wrap: wrap;
    margin-top: 3em;
}
.form-column-textarea + .form-column-checkbox legend.label{
  font-size: 20px;
}
.form-column-textarea + .form-column-checkbox legend.label .badge{
  display: none;
}
.form-column-textarea + .form-column-checkbox .description-block{
  margin-bottom: 30px;
  font-size: 16px;
}
.form-column-textarea + .form-column-checkbox .description-block p{
  margin-top: 1em;
  line-height: 1.6em;
}
.form-column-textarea + .form-column-checkbox .input-group{
  order: 99;
  font-size: 18px;
}
@media screen and (max-width: 767px){
  .form-column-textarea + .form-column-checkbox legend.label{
    font-size: 4.6vw;
  }
  .form-column-textarea + .form-column-checkbox .description-block{
    margin-bottom: 7.69vw;
    font-size: 3.58vw;
    text-align: left;
  }
  .form-column-textarea + .form-column-checkbox label{
    display: inline-block;
  }
  .form-column-textarea + .form-column-checkbox .input-group{
    font-size: 4.1vw;
  }
}
/* ========================================================
確認画面
======================================================== */
#message-container{
  text-align: center;
  font-size: 18px;
}
#confirmation-container .form-column-checkbox:first-child{
  font-weight: bold;
}
#confirmation-container .form-column-textarea + .form-column-checkbox .checkMessage{display: none;}
#confirmation-container .icon-lock{
  display: none;
}
.help-block{
  margin-top: 1.5em;
}
@media screen and (max-width: 767px){
  #message-container{
    font-size: 3.58vw;
  }
}