@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600;700&display=swap');


body {
  font-family: 'Noto Sans JP','Noto Sans',"游ゴシック体",YuGothic,"游ゴシック","Yu Gothic","ヒラギノ角ゴ ProN",Hiragino Kaku Gothic ProN,"ヒラギノ角ゴシック",Hiragino Sans,Verdana,"メイリオ",Meiryo,sans-serif;
	margin: 0;
	padding: 0;
}
:focus-visible {
  outline-color:#1868D3;
}
::placeholder {
  color:#B4B7BF
}
/*　input / textarea / select　*/
input[type="text"], input[type="email"], input[type="tel"], input[type="url"], textarea, select {
  font-size: 16px;
  line-height: 1.8em;
  letter-spacing: 0.04em;
  color: #434343;
  border: 1px solid #B5B7BE;
  max-width: 640px;
  min-width: unset;
  width: 100%;
  min-height: 54px;
  padding: 15px 20px;
  transition: all 0.3s;
}
textarea {
  max-width: 100%;
  min-height: 300px;
}
/* fieldset */
fieldset {
  border: none;
  margin: 0;
  padding: 0;
}

.container {
  max-width: 100%;
  border: none;
  padding: 0;
}
/*　フォーム ブロック　*/
.form-column {
	padding: 0;
	margin: 0 0 40px;
	border: none;
}
.form-column.form-column-note {
  padding-top: 75px;
  margin-bottom: 80px;
}
.form-column.form-column-heading {
  margin-top: 75px;
  margin-bottom: 0;
}
/* STEP */
.form-column-note .description-block {
  display: flex;
  max-width: 800px;
  width: 100%;
  height: 56px;
  margin: 0 auto;
  overflow: hidden;
}
.form-column-note .description-block p {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 18px;
  font-weight: 500;
  line-height: 2.0em;
  letter-spacing: 0.04em;
  color: #9EA2AD;
  background-color: #E7E9ED;
  width: 255px;
  width: 31.875%;
}
.form-column-note .description-block p:nth-of-type(1) {
  border-radius: 100px 0 0 100px;
  width: 290px;
  width: 36.25%;
}
.form-column-note .description-block p:nth-of-type(3) {
  border-radius:  0 100px 100px 0;
}
.form-column-note .description-block p:nth-of-type(2)::before,
.form-column-note .description-block p:nth-of-type(2)::after,
.form-column-note .description-block p:nth-of-type(3)::before,
.form-column-note .description-block p:nth-of-type(3)::after {
  content: '';
  display: block;
  position: absolute;
  left: -15px;
  background-color: #E7E9ED;
  border-left: 2px solid #FFF;
  width: 40px;
  height: 28px;
}
.form-column-note .description-block p:nth-of-type(2)::before,
.form-column-note .description-block p:nth-of-type(3)::before {
  bottom: 0;
  transform: skew(-45deg);
}
.form-column-note .description-block p:nth-of-type(2)::after,
.form-column-note .description-block p:nth-of-type(3)::after {
  top: 0;
  transform: skew(45deg);
}
.form-column-note .description-block p span:nth-of-type(1) {
  font-family: 'Open Sans', 'Noto Sans JP', 'Noto Sans', sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.333em;
  letter-spacing: 0;
  margin-right: 10px;
  position: relative;
  z-index: 1;
}
.form-column-note .description-block p:nth-of-type(1) span:nth-of-type(1) {
  margin-left: -45px;
}
.form-column-note .description-block p:nth-of-type(2) span:nth-of-type(1) {
  margin-left: -37px;
}
/** step01～03 色替え**/
#form-container .form-column-note .description-block p:nth-of-type(1) {   /** step01 **/
  color: #fff;
  background-color: #1868D3;
}
#confirmation-container .form-column-note .description-block p:nth-of-type(1) {   /** step01 **/
  color: #fff;
  background-color: #A1C1EC;
}
#confirmation-container .form-column-note .description-block p:nth-of-type(2)::before,
#confirmation-container .form-column-note .description-block p:nth-of-type(2)::after {
  background-color: #1868D3;
}
#confirmation-container .form-column-note .description-block p:nth-of-type(2) {   /** step02 **/
  color: #fff;
  background-color: #1868D3;
}

/*　見出し H2　*/
.form-column-heading h2 {
	position: relative;
	font-size: 28px;
	font-weight: 500;
	line-height: 1.29em;     
	letter-spacing: 0.04em;		
	color: #434343;
	margin-bottom: 30px;
	padding-left: 20px;
}
.form-column-heading h2::before {
  content: '';
  display: inline-block;
  position: absolute;
  top: 2px;
  bottom: 0;
  left: 0;
  margin: auto 0;
  background-color: #1868D3;		
  border-radius: 100px;
  width: 5px;
  height: 100%;
  height: calc(100% - 8px);
}
/*　各ラベル (input タイトル)　*/
.label {
  font-size: 24px;
	font-weight: 500;
	line-height: 1.5em;     
	letter-spacing: 0.04em;
  margin-bottom: 20px;
}
legend.label {
  padding: 0;
}
/*　必須　*/
label .badge-required,
legend .badge-required {
  display: inline-block;
  font-size: 12px;
	font-weight: 500;
	line-height: 1.5em;     
	letter-spacing: 0.03em;		
  color: #fff;
  border-radius: 2px;
  background-color: #E24848;
  width: auto;
  margin-left: 10px;
  padding: 0 3px;
  vertical-align: middle;
  position: relative;
  bottom: 0.1em;
}
/*　※印 テキスト　*/
.description-block {  
  font-size: 12px;
  font-weight: 400;
  line-height: 1.6em;
  letter-spacing: 0.04em;
  color: rgba(67,67,67,0.6);
  margin: 8px 0 0;
}
.description-block p a {
  color: #1868D3;
  text-decoration: underline;
}
/*　input - 郵便番号　*/
.form-column-zip-code-jp .input-group input.zip-code-jp {
  width: 100%;
}
.form-column-zip-code-jp .description-block p:last-of-type {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.8em;
  letter-spacing: 0.04em;
  color: #434343;
  margin-top: 15px;
}

/* input:checkbox */
.option-text {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.8em;
  letter-spacing: 0.04em;
  color: #434343;
}
/* button */
.button-group {
  text-align: center;
  margin: 80px auto 0;
}
.button-group button {
  position: relative;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.69em;
  letter-spacing: 0;
  color: #1868D3;
  border-color: #1868D3;
  border-radius: 50px 50px 0;
  background-color: transparent;
  width: 264px;
  padding: 18px 0;
  margin: 0;
  transition: all 0.3s;
}
.button-group button:hover {
  color: #fff;
  background-color: #1868D3;
}
.button-group button:before,
.button-group button::after {
  display:inline-block;
  width: 15px;
  height: 6px;
  transition: all 0.1s;
  vertical-align: middle;
  position: relative;
  bottom: 0.2em;
}
.button-group button::before {
  border-bottom: 1px solid #434343;
  border-left: 1px solid #434343;
  transform: skew(-45deg);
  margin-right: 10px;
}
.button-group button::after {
  content: '';
  border-bottom: 1px solid #1868D3;
  border-right: 1px solid #1868D3;
  transform: skew(45deg);
  margin-left: 10px;
}
.button-group button:hover::before,
.button-group button:hover::after {
  border-color: #fff;
}

/** エラー **/
.message-block-error {
  border: none;
  background-color: #FFDDDD;
  max-width: 800px;
  padding: 50px 60px;
  margin: 0 auto;
}
.message-block-error > span {
  display: block;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.6em;
  letter-spacing: 0.04em;
  color: #E24848;
  margin-bottom: 30px;
}
.message-block-error ul {
  padding: 0;
  margin-left: 1em;
}
.message-block-error ul li:nth-of-type(n+2) {
  margin-top: 10px;
}
.message-block-error ul li::marker {
  font-size: 12px;
  color: #9EA2AD;
}
.message-block-error a {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.8em;
  letter-spacing: 0.04em;
  color: #333;
}

/*******************/
/** confirmation **/
/******************/
/** input入力済みテキスト **/
.preview-block {
  font-size: 20px;
  font-weight: 400;
  line-height: 1.6em;
  letter-spacing: 0.04em;
  padding: 0;
}
/** テキスト：内容を確認の上、送信ボタンをクリックしてください。 **/
.message-block-confirmation {
  display: none;
}
/** 空白文字 **/
#confirmation-container .form-column-zip-code-jp .description-block p:nth-last-of-type(2) {
  display: none;
}
/** button **/
#confirmation-container .button-group {
  display: flex;
  justify-content: center;
}
#confirmation-container .button-group button:first-child {
  color: #434343;
  border-color: #434343;
  margin-right: 40px;
}
#confirmation-container .button-group button:first-child::before {
  content: '';
}
#confirmation-container .button-group button:first-child::after {
  content: none;
}
#confirmation-container .button-group button:first-child:hover {
  color: #fff;
  background-color: #434343;
}
#confirmation-container .button > .icon:first-child {
  display: none;
}
#confirmation-container .button-group .help-block {
  display: none;
}


@media (max-width: 640px) {
  input[type="text"], input[type="email"], input[type="tel"], input[type="url"], textarea, select {
    font-size: 14px;
    line-height: 2.05em;
    min-height: 48px;
  }
  textarea {
    min-height: 198px;
  }
  .form-column {
    margin-bottom: 25px;
  }
  .form-column.form-column-note {
    padding-top: 35px;
    margin-bottom: -20px;
  }
  .form-column.form-column-heading {
    margin-top: 60px;
  }
  .form-column-heading h2 {
    font-size: 18px;
    line-height: 1.5em;
    padding-left: 14px;
    margin-bottom: 20px;
  }
  .form-column-heading h2::before {
    width: 4px;
  }
  .form-column-note .description-block p {
    font-size: 16px;
    line-height: 2.25em;
    width: 31.35%;
  }
  .form-column-note .description-block p:nth-of-type(1) {
    width: 37.3%;
  }
  .form-column-note .description-block p:nth-of-type(2)::before,
  .form-column-note .description-block p:nth-of-type(2)::after,
  .form-column-note .description-block p:nth-of-type(3)::before,
  .form-column-note .description-block p:nth-of-type(3)::after {
    left: -10px;
  }
  .form-column-note .description-block p:nth-of-type(2)::before,
  .form-column-note .description-block p:nth-of-type(3)::before {
    transform: skew(-25deg);
  }
  .form-column-note .description-block p:nth-of-type(2)::after,
  .form-column-note .description-block p:nth-of-type(3)::after {
    transform: skew(25deg);
  }
  .form-column-note .description-block p span:nth-of-type(1) {
    margin-right: 8px;
  }
  .form-column-note .description-block p:nth-of-type(1) span:nth-of-type(1) {
    margin-left: -5px;
  }
  .form-column-note .description-block p:nth-of-type(2) span:nth-of-type(1) {
    margin-left: -10px;
  }
  .form-column-note .description-block p:nth-of-type(3) span:nth-of-type(1) {
    margin-left: -5px;
  }
  .label {
    font-size: 16px;
    line-height: 1.6em;
    letter-spacing: 0.05em;
    margin-bottom: 10px;
  }
  .form-column-zip-code-jp .description-block p:last-of-type {
    font-size: 15px;
    margin-top: 10px;
  }
  .option-text {
    font-size: 15px;
    font-weight: 500;
  }
  .button-group {
    margin-top: 40px;
  }
  /** エラー **/
  .message-block-error {
    padding: 40px 30px;
    margin-top: 40px;
  }
  .message-block-error > span {
    font-size: 18px;
  }
  .message-block-error a {
    font-size: 15px;
  }
/** confirmation **/
  .preview-block {
    font-size: 15px;
    line-height: 1.8em;
  }
  #confirmation-container .button-group {
    flex-direction: column;
    align-items: center;
  }
  #confirmation-container .button-group button:first-child {
    margin: 0 0 40px;
  }
}
.content-error {
    padding-top: 60px;
}

#confirmation-container .description-block {
  display: none;
}
/** 上部の STEP01 ～ 03 のバナーも消えてしまうので、表示させる **/
#confirmation-container .form-column-note .description-block {
  display: flex;
}

/** select の矢印装飾  始**/
#form-container .form-column-prefecture-jp select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
#form-container .form-column-prefecture-jp {
  position: relative;
}
#form-container .form-column-prefecture-jp::after {
  content: "";
  display: block;
  border-right: 1px solid #9EA2AD;
  border-bottom: 1px solid #9EA2AD;
  position: absolute;
  bottom: 27px;
  left: 610px;
  width: 10px;
  height: 10px;
  transform: rotate(45deg);
  pointer-events: none;
}
@media (max-width: 680px) {
    #form-container .form-column-prefecture-jp::after {
    left: calc(100% - 30px);
  }

}
/** select の矢印装飾 　終 **/
