#contents.contact #form {
  line-height: 1.5;
}
@media screen and (min-width: 960px), print {
  #contents.contact #form .form-container {
    padding-bottom: 160px;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact #form .form-container {
    padding-bottom: 20vw;
  }
}
@media screen and (min-width: 960px), print {
  #contents.contact #form .form-container {
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
  }
}
#contents.contact .required,
#contents.contact .optional {
  border-width: 1px;
  border-style: solid;
  border-radius: 9999px;
  display: inline-block;
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 400;
}
@media screen and (min-width: 960px), print {
  #contents.contact .required,
  #contents.contact .optional {
    font-size: 120%;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact .required,
  #contents.contact .optional {
    font-size: 240%;
  }
}
@media screen and (min-width: 960px), print {
  #contents.contact .required,
  #contents.contact .optional {
    padding: 0.13em 0.75em 0.14em;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact .required,
  #contents.contact .optional {
    padding: 0.02em 0.46em 0.04em;
  }
}
#contents.contact .required {
  background-color: #D61717;
  color: #fff;
}
#contents.contact .optional {
  background-color: #767676;
  color: #fff;
}
#contents.contact .form-item {
  border-bottom: 1px solid #CDD8E3;
}
@media screen and (min-width: 960px), print {
  #contents.contact .form-item {
    padding-bottom: 15px;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact .form-item {
    padding-bottom: 4vw;
  }
}
@media screen and (min-width: 960px), print {
  #contents.contact .form-item {
    display: flex;
    gap: 20px;
  }
}
#contents.contact .form-item .label {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
@media screen and (min-width: 960px), print {
  #contents.contact .form-item .label {
    margin-bottom: 0px;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact .form-item .label {
    margin-bottom: 2.66667vw;
  }
}
@media screen and (min-width: 960px), print {
  #contents.contact .form-item .label {
    width: 204px;
    gap: 8px;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact .form-item .label {
    gap: 1.06667vw;
  }
}
#contents.contact .form-item .label > p {
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 700;
}
@media screen and (min-width: 960px), print {
  #contents.contact .form-item .label > p {
    font-size: 160%;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact .form-item .label > p {
    font-size: 260%;
  }
}
@media screen and (min-width: 960px), print {
  #contents.contact .form-item .label > p {
    width: 140px;
  }
}
#contents.contact .form-item .wpcf7-form-control-wrap {
  width: 100%;
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 400;
}
@media screen and (min-width: 960px), print {
  #contents.contact .form-item .wpcf7-form-control-wrap {
    font-size: 160%;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact .form-item .wpcf7-form-control-wrap {
    font-size: 260%;
  }
}
@media screen and (min-width: 960px), print {
  #contents.contact .form-item .wpcf7-form-control-wrap {
    max-width: 676px;
  }
}
#contents.contact .form-check {
  display: flex;
  justify-content: center;
  align-items: center;
}
#contents.contact .form-check .wpcf7-form-control-wrap {
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 400;
}
@media screen and (min-width: 960px), print {
  #contents.contact .form-check .wpcf7-form-control-wrap {
    font-size: 160%;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact .form-check .wpcf7-form-control-wrap {
    font-size: 280%;
  }
}
#contents.contact .form-check .wpcf7-form-control-wrap a {
  color: inherit;
  text-decoration: underline;
}
#contents.contact .form-submit {
  margin-left: auto;
  margin-right: auto;
  position: relative;
  max-width: 100%;
}
@media screen and (min-width: 960px), print {
  #contents.contact .form-submit {
    width: 400px;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact .form-submit {
    width: 72vw;
  }
}
#contents.contact .form-submit input[type=submit] {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  resize: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: inherit;
  color: #FFF;
  background-color: #1255A2;
  transition: opacity 200ms 0s ease;
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 500;
}
@media screen and (min-width: 960px), print {
  #contents.contact .form-submit input[type=submit] {
    font-size: 160%;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact .form-submit input[type=submit] {
    font-size: 260%;
  }
}
@media screen and (min-width: 960px), print {
  #contents.contact .form-submit input[type=submit] {
    height: 56px;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact .form-submit input[type=submit] {
    height: 11.33333vw;
  }
}
@media screen and (min-width: 960px), print {
  #contents.contact .form-submit input[type=submit]:hover {
    opacity: 0.65;
  }
}
#contents.contact .form-submit .wpcf7-spinner {
  margin: 0;
  pointer-events: none;
  position: absolute;
  top: 50%;
  right: 0%;
  transform: translateY(-50%);
  background-color: #FFF;
}
@media screen and (min-width: 960px), print {
  #contents.contact .form-submit .wpcf7-spinner {
    margin-right: 13px;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact .form-submit .wpcf7-spinner {
    margin-right: 4vw;
  }
}
#contents.contact .form-submit .wpcf7-spinner::before {
  background-color: #000;
}
@media screen and (min-width: 960px), print {
  #contents.contact form > *:not(:first-child) {
    margin-top: 25px;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact form > *:not(:first-child) {
    margin-top: 5.33333vw;
  }
}
#contents.contact form ::placeholder {
  color: #B4C7D9;
}
#contents.contact form input[type=text],
#contents.contact form input[type=email],
#contents.contact form input[type=tel],
#contents.contact form textarea {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  resize: none;
  padding: 1em;
  color: inherit;
  background: #FFF;
  width: 100%;
  max-width: 100%;
  line-height: 1.4;
  border: 1px solid transparent; /* フォーカス時にレイアウトがずれないよう枠を確保 */
  transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

/* 入力中（フォーカス中）— 色はここを変更 */
#contents.contact form input[type=text]:focus,
#contents.contact form input[type=email]:focus,
#contents.contact form input[type=tel]:focus,
#contents.contact form textarea:focus,
#contents.contact form .select select:focus {
  background: #FFF; /* 背景色 */
  border-color: #1255A2; /* 枠線色 */
  box-shadow: none; /* 必要なら 0 0 0 2px rgba(18, 85, 162, 0.2) など */
}

/* 入力後（文字が入っているとき）— 色はここを変更 */
#contents.contact form input[type=text]:not(:placeholder-shown),
#contents.contact form input[type=email]:not(:placeholder-shown),
#contents.contact form input[type=tel]:not(:placeholder-shown),
#contents.contact form textarea:not(:placeholder-shown) {
  background: #FFF; /* 背景色 */
  border-color: none;
  color: #1D1D1D;
}

/* ブラウザ自動入力後の薄い青を上書き — 色はここを変更 */
#contents.contact form input:-webkit-autofill,
#contents.contact form input:-webkit-autofill:hover,
#contents.contact form input:-webkit-autofill:focus,
#contents.contact form textarea:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px #FFF inset; /* 背景色（#FFF の部分） */
  box-shadow: 0 0 0 1000px #FFF inset;
  -webkit-text-fill-color: #1D1D1D; /* 文字色 */
  border-color: none; /* 枠線色 */
  transition: background-color 9999s ease-out; /* ブラウザの色変化を抑える */
}

/* 未入力・エラー時の赤枠（送信後のCF7バリデーション）— 色はここを変更 */
#contents.contact form .wpcf7-not-valid,
#contents.contact form input[aria-invalid="true"],
#contents.contact form textarea[aria-invalid="true"],
#contents.contact form select[aria-invalid="true"] {
  border-color: #D61717; /* 枠線色 */
}

/* エラー中にフォーカスしても赤枠を維持 */
#contents.contact form .wpcf7-not-valid:focus,
#contents.contact form input[aria-invalid="true"]:focus,
#contents.contact form textarea[aria-invalid="true"]:focus,
#contents.contact form select[aria-invalid="true"]:focus {
  border-color: #D61717;
}

@media screen and (min-width: 960px), print {
  #contents.contact form input[type=text],
  #contents.contact form input[type=email],
  #contents.contact form input[type=tel],
  #contents.contact form textarea {
    border-radius: 5px;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact form input[type=text],
  #contents.contact form input[type=email],
  #contents.contact form input[type=tel],
  #contents.contact form textarea {
    border-radius: 0.66667vw;
  }
}
@media screen and (min-width: 960px), print {
  #contents.contact form textarea {
    height: 120px;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact form textarea {
    height: 32vw;
  }
}
#contents.contact form span.wpcf7-acceptance {
  display: flex;
  flex-wrap: wrap;
}
@media screen and (min-width: 960px), print {
  #contents.contact form span.wpcf7-acceptance {
    gap: 10px 20px;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact form span.wpcf7-acceptance {
    gap: 1.33333vw 2.66667vw;
  }
}
#contents.contact form span.wpcf7-acceptance span.wpcf7-list-item {
  margin-left: 0;
  display: block;
}
#contents.contact form span.wpcf7-acceptance span.wpcf7-list-item label {
  display: block;
  cursor: pointer;
}
#contents.contact form span.wpcf7-acceptance span.wpcf7-list-item input[type=checkbox] {
  display: none;
}
#contents.contact form span.wpcf7-acceptance span.wpcf7-list-item span.wpcf7-list-item-label {
  display: flex;
  align-items: center;
  line-height: 1.4;
}
#contents.contact form span.wpcf7-acceptance span.wpcf7-list-item span.wpcf7-list-item-label::before {
  display: block;
  content: "";
  background: url("../img/common/cf7_checkbox_off.svg") 50% 50%/contain no-repeat;
}
@media screen and (min-width: 960px), print {
  #contents.contact form span.wpcf7-acceptance span.wpcf7-list-item span.wpcf7-list-item-label::before {
    margin-right: 8px;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact form span.wpcf7-acceptance span.wpcf7-list-item span.wpcf7-list-item-label::before {
    margin-right: 1.06667vw;
  }
}
@media screen and (min-width: 960px), print {
  #contents.contact form span.wpcf7-acceptance span.wpcf7-list-item span.wpcf7-list-item-label::before {
    width: 24px;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact form span.wpcf7-acceptance span.wpcf7-list-item span.wpcf7-list-item-label::before {
    width: 5.33333vw;
  }
}
@media screen and (min-width: 960px), print {
  #contents.contact form span.wpcf7-acceptance span.wpcf7-list-item span.wpcf7-list-item-label::before {
    height: 24px;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact form span.wpcf7-acceptance span.wpcf7-list-item span.wpcf7-list-item-label::before {
    height: 5.33333vw;
  }
}
@media screen and (min-width: 960px), print {
  #contents.contact form span.wpcf7-acceptance span.wpcf7-list-item span.wpcf7-list-item-label::before {
    min-width: 24px;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact form span.wpcf7-acceptance span.wpcf7-list-item span.wpcf7-list-item-label::before {
    min-width: 5.33333vw;
  }
}
@media screen and (min-width: 960px), print {
  #contents.contact form span.wpcf7-acceptance span.wpcf7-list-item span.wpcf7-list-item-label::before {
    min-height: 24px;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact form span.wpcf7-acceptance span.wpcf7-list-item span.wpcf7-list-item-label::before {
    min-height: 5.33333vw;
  }
}
@media screen and (min-width: 960px), print {
  #contents.contact form span.wpcf7-acceptance span.wpcf7-list-item span.wpcf7-list-item-label::before {
    transform: translateY(1px);
  }
}
@media screen and (max-width: 959px) {
  #contents.contact form span.wpcf7-acceptance span.wpcf7-list-item span.wpcf7-list-item-label::before {
    transform: translateY(0.13333vw);
  }
}
#contents.contact form span.wpcf7-acceptance span.wpcf7-list-item input[type=checkbox]:checked + span.wpcf7-list-item-label::before {
  background-image: url("../img/common/cf7_checkbox_on.svg");
}
#contents.contact form .select {
  position: relative;
}
@media screen and (min-width: 960px), print {
  #contents.contact form .select {
    max-width: 676px;
    width: 100%;
  }
}
#contents.contact form .select .arrow {
  position: absolute;
  top: 0%;
  right: 0%;
  z-index: 1;
  display: block;
  background-color: #383425;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  pointer-events: none;
}
@media screen and (min-width: 960px), print {
  #contents.contact form .select .arrow {
    width: 13px;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact form .select .arrow {
    width: 2.66667vw;
  }
}
@media screen and (min-width: 960px), print {
  #contents.contact form .select .arrow {
    min-width: 13px;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact form .select .arrow {
    min-width: 2.66667vw;
  }
}
@media screen and (min-width: 960px), print {
  #contents.contact form .select .arrow {
    height: 9px;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact form .select .arrow {
    height: 1.86667vw;
  }
}
@media screen and (min-width: 960px), print {
  #contents.contact form .select .arrow {
    margin-top: 24px;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact form .select .arrow {
    margin-top: 5.33333vw;
  }
}
@media screen and (min-width: 960px), print {
  #contents.contact form .select .arrow {
    margin-right: 18px;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact form .select .arrow {
    margin-right: 3.33333vw;
  }
}
#contents.contact form .select select {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  resize: none;
  padding: 1em;
  color: inherit;
  background: #FFF;
  width: 100%;
  max-width: 100%;
  line-height: 1.4;
  border: 1px solid transparent;
  transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
@media screen and (min-width: 960px), print {
  #contents.contact form .select select {
    border-radius: 5px;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact form .select select {
    border-radius: 0.66667vw;
  }
}
@media screen and (min-width: 960px), print {
  #contents.contact form .select select {
    padding-right: 40px;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact form .select select {
    padding-right: 7.33333vw;
  }
}
#contents.contact form .select:hover select {
  color: rgba(56, 52, 37, 0.6);
}
@media screen and (min-width: 960px), print {
  #contents.contact form .wpcf7-response-output {
    font-size: 160%;
  }
}
@media screen and (max-width: 959px) {
  #contents.contact form .wpcf7-response-output {
    font-size: 260%;
  }
}