@charset "UTF-8";

/* /contact/ お問い合わせフォーム（フッターは check-in と同じ共通 CSS / init.js のみ）
-----------------------------------------------------------------------------*/
#wrapper.contact main .contents {
  padding: 120px 0 140px;
}

#wrapper.contact .contact-form-area {
  max-width: 900px;
  margin: 0 auto;
  width: 100%;
}

/* layout
-------------------------------------------------------------*/
#wrapper.contact .contents {
  padding-bottom: 50px;
}

#wrapper.contact .inner {
  padding: 0 20px;
  margin: 0 auto;
  max-width: 660px;
  width: 100%;
}

#wrapper.contact .fl_item {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

#wrapper.contact .form_list {
  margin: 100px 0 0;
}

#wrapper.contact .form_list dt {
  align-items: center;
  color: var(--black);
  display: flex;
  flex-wrap: wrap;
  font-weight: 600;
  gap: 10px;
  padding-bottom: 10px;
}

#wrapper.contact .form_list dt:nth-child(n+2) {
  margin-top: 60px;
}

#wrapper.contact .form_list .request_txt {
  background: var(--red);
  color: var(--white);
  display: inline-block;
  flex-shrink: 0;
  font-size: 1.2rem;
  line-height: 1;
  margin-right: 0;
  padding: 5px 8px;
  text-align: center;
}

#wrapper.contact .form_list .request_txt._optional {
  background: var(--gray);
}

#wrapper.contact .form_list dd > div {
  margin-top: 20px;
}

#wrapper.contact .form_list dd > div p {
  margin-bottom: 5px;
}

#wrapper.contact .form_list input[type="text"], #wrapper.contact .form_list input[type="tel"], #wrapper.contact .form_list input[type="password"], #wrapper.contact .form_list input[type="email"], #wrapper.contact #date_input[type=date], #wrapper.contact .form_list select, #wrapper.contact .form_list textarea {
  background: var(--white);
  border: 1px solid var(--line-color);
  font-size: 1.6rem;
  font-family: var(--font-zen-gothic);
  line-height: 2.6rem;
  padding: 20px;
  height: 56px;
  width: 100%;
  outline: none;
}

#wrapper.contact .form_list textarea {
  height: 140px;
  resize: none;
  overflow-y: auto;
}

#wrapper.contact .form_list ::-webkit-input-placeholder { /* Chrome/Opera/Safari */
  color: var(--black);
  opacity: 0.4;
}

#wrapper.contact .form_list ::-moz-placeholder { /* Firefox 19+ */
  color: var(--black);
  opacity: 0.4;
}

#wrapper.contact .form_list :-ms-input-placeholder { /* IE 10+ */
  color: var(--black);
  opacity: 0.4;
}

#wrapper.contact .form_list :-moz-placeholder { /* Firefox 18- */
  color: var(--black);
  opacity: 0.4;
}

#wrapper.contact .form_list input[type="text"]:focus, #wrapper.contact .form_list input[type="tel"]:focus, #wrapper.contact .form_list input[type="password"]:focus, #wrapper.contact .form_list input[type="email"]:focus, #wrapper.contact .form_list select:focus, #wrapper.contact .form_list textarea:focus, #wrapper.contact #date_input[type=date]:focus {
  border: 1px solid #66AFE9;
  background: var(--white);
}

#wrapper.contact .custome-select {
  display: inline-flex;
  height: 56px;
  position: relative;
  z-index: 3;
  width: 100%;
}

#wrapper.contact .form_list .custome-select.w01 {
  width: 28%;
}

#wrapper.contact .custome-select::after {
  content: "";
  background: url(/contact/assets/common/img/arrow.svg) no-repeat left top;
  background-size: 100% 100%;
  height: 12px;
  width: 16px;
  position: absolute;
  top: 22px;
  right: 15px;
  z-index: 5;
}

#wrapper.contact .custome-select select {
  background: transparent;
  padding: 0 30px 0 20px;
  height: 100%;
  width: 100%;
  z-index: 2;
  position: relative;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

#wrapper.contact #date_input::-webkit-inner-spin-button { 
  display:none;
}

#wrapper.contact #date_input[type=date] {
  padding: 20px 20px 20px 45px;
  position: relative;
}

#wrapper.contact #date_input::-webkit-datetime-edit-text { color:#000}

#wrapper.contact #date_input::-webkit-datetime-edit-month-field { color:#000 }

#wrapper.contact #date_input::-webkit-datetime-edit-day-field { color: #000; }

#wrapper.contact #date_input::-webkit-datetime-edit-year-field { color:#000; }

#wrapper.contact #date_input::-webkit-calendar-picker-indicator { 
  background-image: url(/contact/assets/common/img/calendar_icon.svg);
  background-position:center;
  background-size: 18px 20px;
  background-repeat:no-repeat;
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
}

#wrapper.contact .form_list dd .file_option {
  margin: 0;
}

#wrapper.contact .file_option .input_file_trigger input[type="file"] {
  opacity: 0;
  margin: 0;
  padding: 0;
  position: absolute;
  left: 0;
}

#wrapper.contact .file_option .input_file_trigger {
  border: 1px solid var(--line-color);
  border-radius: 3px;
  -webkit-border-radius: 3px;
  display: flex;
  align-items: center;
  padding: 10px;
  width: 100%;
}

#wrapper.contact .file_option .input_file_trigger .file_btn {
  display: block;
  padding: 5px 0;
  background: #EFEFEF;
  border: 1px solid #767676;
  border-radius: 3px;
  color: #000;
  font-size: 1.6rem;
  transition: all .4s;
  cursor: pointer;
  margin-right: 10px;
  width: 130px;
  text-align: center;
}

#wrapper.contact .file_option .input-file {
  position: absolute;
  top: 0; left: 0;
  width: 225px;
  opacity: 0;
  padding: 14px 0;
  cursor: pointer;
}

#wrapper.contact .file_option .input_file_trigger:hover, #wrapper.contact .file_option .input_file_trigger:focus {
  border: 1px solid #66AFE9;
}

#wrapper.contact .file_option .input_file_trigger .file_btn:hover {
  opacity: 0.7;
}

#wrapper.contact .file_return {
  margin: 0;
}

#wrapper.contact .form_list .note_txt {
  color: var(--black);
  font-size: 1.3rem;
  line-height: 2rem;
  margin-top: 10px;
}

#wrapper.contact .form_list dd .fl_item > div {
  width: 49%;
}

#wrapper.contact .form_list .agree_txt {
  margin-top: 15px;
}

#wrapper.contact .form_list a.link_txt {
  color: var(--black);
  text-decoration: underline;
}

#wrapper.contact .form_list a.link_txt:hover {
  text-decoration: none;
}

#wrapper.contact .check_list {
  margin: -10px 0 0;
}

#wrapper.contact .check_list li {
  margin: 10px 0 0;
}

#wrapper.contact .check_list.fl_item li {
  width: 49%;
}

#wrapper.contact .lab_check {
  border: 1px solid var(--line-color);
  border-radius: 3px;
  -webkit-border-radius: 3px;
  display: block;
  position: relative;
  cursor: pointer;
  font-size: 1.6rem;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  padding: 14px 5px 14px 45px;
}

#wrapper.contact .lab_check input {
  position: absolute;
  left: 0;
  /* height: 0;
  width: 0; */
  opacity: 0;
  cursor: pointer;
  margin: 0;
  padding: 0;
}

#wrapper.contact .checkmark {
  position: absolute;
  top: 15px;
  left: 12px;
  height: 25px;
  width: 25px;
  background-color: var(--white);
  border: 1px solid var(--gray);
  border-radius: 50%;
}

#wrapper.contact .checkbox_style .checkmark {
  border-radius: 3px;
}

#wrapper.contact .lab_check:hover input ~ .checkmark {
  background-color: var(--white);
}

#wrapper.contact .lab_check input:checked ~ .checkmark {
  background-color: var(--main-color);
  border: 1px solid var(--main-color);
}

#wrapper.contact .checkmark:after {
  content: "";
  position: absolute;
  display: none;
}

#wrapper.contact .lab_check input:checked ~ .checkmark:after {
  display: block;
}

#wrapper.contact .lab_check .checkmark:after {
 	top: 6px;
	left: 6px;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: white;
}

#wrapper.contact .checkbox_style .lab_check .checkmark:after {
  background: none;
  border: solid white;
  border-radius: 0;
  border-width: 0 0.2rem 0.2rem 0;
  height: 1rem;
  left: 50%;
  margin: 0;
  top: 50%;
  width: 0.5rem;
  -webkit-transform: translate(-50%, -60%) rotate(45deg);
  transform: translate(-50%, -60%) rotate(45deg);
}

#wrapper.contact .btn_box {
  margin-top: 50px;
}

#wrapper.contact .contact-submit-box {
  display: flex;
  justify-content: center;
}

/* 見た目・ホバーは components.css の .c-button に合わせる（a 用の layout.css transition は button に効かない） */
#wrapper.contact button.c-button {
  -webkit-appearance: none;
  appearance: none;
  border: none;
  box-shadow: none;
  cursor: pointer;
  font-family: inherit;
  -webkit-transition: opacity 0.5s ease, color 0.5s ease;
  transition: opacity 0.5s ease, color 0.5s ease;
}

#wrapper.contact button.c-button:hover {
  opacity: 0.7;
  -webkit-transition: opacity 0.1s ease, color 0.1s ease;
  transition: opacity 0.1s ease, color 0.1s ease;
}

#wrapper.contact .c-button.contact-btn-back {
  background: var(--gray);
}

#wrapper.contact .c-button.contact-btn-back > svg {
  margin-left: 10px;
  margin-right: 0;
  -webkit-transform: scaleX(-1);
  transform: scaleX(-1);
}

#wrapper.contact .c-button > svg {
  flex-shrink: 0;
  height: auto;
  margin-right: 10px;
  width: 17px;
}

/* 確認画面：戻る／送信を横並び（components SP の width:100% を上書き） */
#wrapper.contact .contact-btn-box {
  display: flex;
  flex-wrap: nowrap;
  gap: 20px;
  justify-content: center;
}

#wrapper.contact .contact-btn-box .c-button {
  margin: 0;
  width: calc(50% - 10px);
}

#wrapper.contact .input_box {
  display: block;
  position: relative;
  width: 100%;
}

#wrapper.contact .input_box.success_box::before {
  content: "";
  width: 5px;
  height: 12px;
  border: solid var(--main-color);
  border-width: 0 2px 2px 0;
  -webkit-transform: rotate(45deg) translateY(-50%);
  -ms-transform: rotate(45deg) translateY(-50%);
  transform: rotate(45deg) translateY(-50%);
  border-radius: 0;
  background: none;
  position: absolute;
  margin-top: -4px;
  top: 50%;
  right: 25px;
  z-index: 5;
}

#wrapper.contact .form_list input[type="text"].valid, #wrapper.contact .form_list input[type="tel"].valid, #wrapper.contact .form_list input[type="password"].valid, #wrapper.contact .form_list input[type="email"].valid, #wrapper.contact #date_input[type=date].valid, #wrapper.contact .form_list select.valid, #wrapper.contact .form_list textarea.valid {
  border-color: var(--main-color);
}

#wrapper.contact .success_box.input_file_trigger {
  border-color: var(--main-color);
}

#wrapper.contact .custome-select .success_box::before {
  right: 50px;
}

/* お問い合わせ内容：外枠は .success_area.input_box、通常・成功・エラーで縦幅を統一 */
#wrapper.contact .form_list .success_area.input_box {
  background: var(--white);
  border: 1px solid var(--line-color);
  box-sizing: border-box;
  display: block;
  padding: 20px 40px 0 0;
  position: relative;
  width: 100%;
}

#wrapper.contact .form_list .success_area.input_box textarea {
  background: transparent;
  border: none;
  box-sizing: border-box;
  display: block;
  height: 140px;
  margin: 0;
  outline: none;
  padding: 0 10px 10px 20px;
  resize: none;
  overflow-y: auto;
  width: 100%;
}

#wrapper.contact .form_list .success_area.success_box {
  background: var(--white);
  border-color: var(--main-color);
}

#wrapper.contact .form_list .success_area.success_box::before {
  top: 20px;
  transform: rotate(45deg) translateY(0);
}

#wrapper.contact .form_list .success_area.input_box.error_box {
  background: #FDD8D5;
  border-color: var(--red);
}

#wrapper.contact .form_list .success_area.input_box.error_box::before {
  top: 20px;
}

#wrapper.contact .form_list .success_area.input_box.error_box textarea,
#wrapper.contact .form_list .success_area.input_box.error_box textarea.error {
  background: transparent;
  border: none;
}

#wrapper.contact .form_list textarea::-webkit-scrollbar {
  width: 6px;
}

#wrapper.contact .form_list textarea::-webkit-scrollbar-track {
  background: var(--white);
  border-radius: 10px;
}

#wrapper.contact .form_list textarea::-webkit-scrollbar-thumb {
  background: var(--line-color);
  border-radius: 10px;
}

#wrapper.contact .form_list textarea::-webkit-scrollbar-thumb:hover {
  background: var(--line-color);
}

#wrapper.contact .error_txt {
  display: block;
  color: var(--red);
  font-size: 1.3rem;
  line-height: 2rem;
  margin-top: 10px;
}

#wrapper.contact .form_list  input[type="text"].error, #wrapper.contact .form_list input[type="tel"].error, #wrapper.contact .form_list input[type="password"].error, #wrapper.contact .form_list input[type="email"].error, #wrapper.contact #date_input[type=date].error, #wrapper.contact .form_list select.error, #wrapper.contact .form_list textarea.error {
  background: #FDD8D5;
  border-color: var(--red);
}

#wrapper.contact .form_list .error_box select {
  background: none;
}

#wrapper.contact .form_list .custome-select .error_box {
  background: #FDD8D5;
  z-index: 5;
}

#wrapper.contact .input_box.error_box::before {
  content: "";
  background: url(/contact/assets/common/img/error_icon.svg) no-repeat left top;
  background-size: 100% 100%;
  height: 24px;
  width: 24px;
  position: absolute;
  top: 15px;
  right: 15px;
}

#wrapper.contact .date_box .input_box.error_box::before {
  z-index: 2;
}

#wrapper.contact .custome-select .error_box::before {
  right: 40px;
}

#wrapper.contact .error_box.input_file_trigger, #wrapper.contact .error_box.lab_check {
  border-color: var(--red);
  background: #FDD8D5;
}

#wrapper.contact .success_box.lab_check::before, #wrapper.contact .error_box.lab_check::before {
  display: none;
}

#wrapper.contact #month-error, #wrapper.contact #day-error, #wrapper.contact #minute-error, #wrapper.contact #second-error, #wrapper.contact #other1-error, #wrapper.contact #other2-error {
  display: none!important;
}

#wrapper.contact .check_list.fl_item .other_item {
  width: 100%;
}

#wrapper.contact .other_item span.input_box {
  position: absolute;
  left: 0;
  opacity: 0;
  margin-top: 10px;
}

#wrapper.contact .other_item span.input_box.show {
  display: block;
  position: relative;
  opacity: 1;
}
@media screen and (max-width: 768px) {
  #wrapper.contact main .contents {
    padding: 80px 0 100px;
  }

  #wrapper.contact .form_list {
    margin-top: 50px;
  }

  #wrapper.contact .form_list dt:nth-child(n+2) {
    margin-top: 40px;
  }

  #wrapper.contact .form_list input[type="text"],
  #wrapper.contact .form_list input[type="tel"],
  #wrapper.contact .form_list input[type="password"],
  #wrapper.contact .form_list input[type="email"],
  #wrapper.contact #date_input[type=date],
  #wrapper.contact .form_list select,
  #wrapper.contact .form_list textarea {
    font-size: 1.4rem;
    line-height: 2.4rem;
    height: 45px;
    padding: 10px;
  }

  #wrapper.contact .form_list textarea {
    height: 100px;
  }

  /* お問い合わせ内容：SPは tel 入力と同じ padding（10px）に揃える */
  #wrapper.contact .form_list .success_area.input_box {
    padding: 0 40px 0 0;
  }

  #wrapper.contact .form_list .success_area.input_box textarea {
    font-size: 1.4rem;
    height: 100px;
    line-height: 2.4rem;
    padding: 10px;
  }

  #wrapper.contact .form_list .success_area.success_box::before {
    top: 12px;
    right: 10px;
  }

  #wrapper.contact .form_list .success_area.input_box.error_box::before {
    top: 12px;
    right: 10px;
  }

  #wrapper.contact .lab_check {
    font-size: 1.4rem;
    padding: 10px 10px 10px 45px;
  }

  #wrapper.contact .checkmark {
    height: 25px;
    width: 25px;
    top: 8px;
  }

  #wrapper.contact .contact-btn-box .c-button {
    width: calc(50% - 10px);
  }

  #wrapper.contact .input_box.error_box::before {
    height: 20px;
    width: 20px;
    top: 12px;
    right: 10px;
  }
}

/* contactページのみ: reCAPTCHAバッジと電話番号テキストの重なりを回避（PC幅のみ）
-------------------------------------------------------------*/
@media screen and (min-width: 1024px) {
  #wrapper.contact.input #header.fixed .phone-text {
    bottom: 90px;
  }
}

