@charset "UTF-8";
/* リセットCSS */
/* Box sizing rules */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Prevent font size inflation */
html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}

/* Remove default margin in favour of better control in authored CSS */
body, h1, h2, h3, h4, p,
figure, blockquote, dl, dd {
  margin-block-end: 0;
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul[role=list],
ol[role=list] {
  list-style: none;
}

/* Set core body defaults */
body {
  min-height: 100vh;
  line-height: 1.5;
}

/* Set shorter line heights on headings and interactive elements */
h1, h2, h3, h4,
button, input, label {
  line-height: 1.1;
}

/* Balance text wrapping on headings */
h1, h2,
h3, h4 {
  text-wrap: balance;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
  text-decoration-skip-ink: auto;
  color: currentColor;
}

/* Make images easier to work with */
img,
picture {
  max-width: 100%;
  display: block;
}

/* Inherit fonts for inputs and buttons */
input, button,
textarea, select {
  font-family: inherit;
  font-size: inherit;
}

/* Make sure textareas without a rows attribute are not tiny */
textarea:not([rows]) {
  min-height: 10em;
}

/* Anything that has been anchored to should have extra scroll margin */
:target {
  scroll-margin-block: 5ex;
}

button {
  appearance: none;
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
  line-height: normal;
  -webkit-font-smoothing: inherit;
  -moz-osx-font-smoothing: inherit;
  text-align: inherit;
}

.contact__inner {
  max-width: clamp(800px, 52.9100529101vw, 1200px);
}

.step-nav-list {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 100%;
  margin-inline: auto;
  margin-bottom: 13.2275132275vw;
}
.step-nav-list li {
  position: relative;
  text-align: center;
  width: 33.3333333333%;
  font-size: 1.4rem;
  font-size: clamp(14px, 0.9259259259vw, 16px);
  line-height: 1.38;
}
.step-nav-list li::before {
  display: block;
  width: 20px;
  height: 20px;
  margin: 8px auto 30px;
  content: "";
  border-radius: 50%;
  background: #cccccc;
}
.step-nav-list li::after {
  position: absolute;
  z-index: -1;
  top: 16px;
  left: -50%;
  width: 100%;
  height: 2px;
  content: "";
  background: #cccccc;
}
.step-nav-list li:first-child::after {
  content: none;
}
.step-nav-list li.current, .step-nav-list li.complete {
  color: #5A5B5B;
}
.step-nav-list li.current::before, .step-nav-list li.complete::before {
  background: #5A5B5B;
}
.step-nav-list li.current::after, .step-nav-list li.complete::after {
  background: #5A5B5B;
}
.step-nav-list li.current {
  font-weight: 700;
}
.step-nav-list li.current::before {
  width: 40px;
  height: 40px;
  margin: 0 auto 20px;
  background: url("/assets/images/contact/icon-white-check.svg") center center no-repeat #5A5B5B;
}

.step-nav-contents {
  margin-top: 40px;
}
.step-nav-contents .step-number {
  margin-bottom: 0.2em;
}
.step-nav-contents .main-text + .note {
  margin-top: 0.4em;
}

.checkbox_list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  flex-wrap: wrap;
  gap: 20px 2.6455026455vw;
}
@media screen and (width < 768px) {
  .checkbox_list {
    grid-template-columns: repeat(1, 1fr);
  }
}
@media screen and (width < 480px) and (orientation: portrait) {
  .checkbox_list {
    grid-template-columns: repeat(1, 1fr);
  }
}
.checkbox_list li label {
  display: block;
  cursor: pointer;
  height: 100%;
}
.checkbox_list .radio01-input {
  display: none;
}
.checkbox_list .radio01-input:checked + .radio01-parts {
  background: #5A5B5B;
  color: #FFFFFF;
  border-color: #5A5B5B;
}
.checkbox_list .radio01-parts {
  display: block;
  padding: clamp(12px, 1.0582010582vw, 20px) clamp(20px, 1.5873015873vw, 24px);
  border: 1px solid #BBBBBB;
  border-radius: 4px;
  transition: background 0.2s, color 0.2s;
  font-size: clamp(14px, 1.0582010582vw, 18px);
  text-align: center;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1.2;
  word-break: keep-all;
}

.form-group {
  margin-bottom: 40px;
  display: grid;
  row-gap: 12px;
}
.form-group.form-group_type {
  margin-bottom: 80px;
}
.form-group.form-group_consent {
  row-gap: 40px;
}
.form-group:last-of-type {
  margin-bottom: 60px;
}

dt {
  font-size: clamp(16px, 1.3227513228vw, 24px);
  font-weight: 500;
}

label,
.contact_item__ttl {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: clamp(16px, 1.3227513228vw, 24px);
  font-weight: 500;
}

.contact_item__text {
  font-size: clamp(14px, 1.0582010582vw, 18px);
  font-weight: 400;
  padding-top: 12px;
}
.contact_item__text > a {
  border-bottom: 1px solid;
}
.contact_item__notes {
  font-size: clamp(12px, 0.9259259259vw, 16px);
  font-weight: 400;
  padding-top: 12px;
}

.contact_confirm .form-group {
  margin-bottom: 60px;
}
.contact_confirm .form-group:last-of-type {
  margin-bottom: 120px;
}

.contact_complete .contact_item__text {
  padding-top: 32px;
}
.contact_complete .contact_item__text--large {
  font-size: clamp(16px, 1.3227513228vw, 20px);
  padding-top: 20px;
}
.contact_complete .contact_item__notes {
  padding-top: 20px;
}
.contact_complete > p:last-of-type {
  margin-bottom: 80px;
}

.required {
  display: inline-block;
  position: relative;
  padding-right: 40px;
}
.required::after {
  content: "必須";
  display: flex;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 22px;
  font-size: clamp(14px, 1.0582010582vw, 18px);
  font-weight: 400;
  color: #FF5050;
  border-radius: 4px;
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}

.error-message {
  color: #FF5050;
  font-size: clamp(14px, 1.0582010582vw, 18px);
}

.example {
  font-size: clamp(12px, 0.9259259259vw, 16px);
  color: #BBBBBB;
}

.input_pref,
input[type=text],
input[type=email],
textarea {
  width: 100%;
  padding: clamp(12px, 1.3227513228vw, 20px);
  color: #5a5b5b;
  background-color: #F3F3F3;
  border: 1px solid #999999;
  border-radius: 4px;
  box-sizing: border-box;
  font-size: clamp(14px, 1.0582010582vw, 18px);
}
.input_pref.required-error,
input[type=text].required-error,
input[type=email].required-error,
textarea.required-error {
  border: 1px solid #FF5050;
}
.input_pref:focus, .input_pref:focus-visible,
input[type=text]:focus,
input[type=text]:focus-visible,
input[type=email]:focus,
input[type=email]:focus-visible,
textarea:focus,
textarea:focus-visible {
  background-color: #FFFFFF;
  border: 1px solid #999999;
  outline: none;
}

.select_block {
  position: relative;
  width: 100%;
}

select.input_pref {
  cursor: pointer;
  appearance: none; /* ブラウザ標準の矢印を消す（自作する場合） */
  -webkit-appearance: none;
}

/* 矢印を自作する場合の例 */
.select_block::after {
  content: "";
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 16px solid #666; /* 下向き三角形 */
  pointer-events: none;
}

.input_consent {
  font-size: clamp(14px, 1.0582010582vw, 18px);
  border: 1px solid #999999;
  border-radius: 4px;
  width: 90%;
  max-width: 380px;
  margin-inline: auto;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  transition: background-color 0.3s;
  padding: clamp(12px, 1.3227513228vw, 20px);
}
.input_consent:focus, .input_consent:focus-visible {
  border: 2px solid #999999;
  outline: none;
}
.input_consent input[type=checkbox] {
  position: absolute;
  white-space: nowrap;
  width: 1px;
  height: 1px;
  overflow: hidden;
  border: 0;
  padding: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  margin: -1px;
}
.input_consent span {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.input_consent span::before {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  border-radius: 2px;
  margin-right: 16px;
  vertical-align: middle;
  position: relative;
  background-color: #F3F3F3;
  transition: all 0.2s;
}
.input_consent input[type=checkbox]:checked + span::before {
  background-color: #FFFFFF;
}
.input_consent span::after {
  content: "";
  position: absolute;
  left: 0px; /* 位置はサイズに合わせて微調整 */
  top: 50%;
  transform: translateY(-80%) rotate(-45deg);
  width: 24px;
  height: 16px;
  border-left: 2px solid #5A5B5B;
  border-bottom: 2px solid #5A5B5B;
  opacity: 0;
  transition: opacity 0.2s;
}
.input_consent input[type=checkbox]:checked + span::after {
  opacity: 1;
}

.form-submit + .form-submit {
  margin-top: 40px;
}

.submit-btn {
  border: 1px solid #999999;
  border-radius: 100px;
  padding-inline: 20px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 90%;
  max-width: 380px;
  margin-inline: auto;
  outline: revert;
}
.submit-btn.submit-btn_return::before {
  right: auto;
  left: 32px;
}
@media screen and (width < 480px) and (orientation: portrait) {
  .submit-btn.submit-btn_return::before {
    left: 20px;
  }
}
.submit-btn.submit-btn_return > span::before, .submit-btn.submit-btn_return > span::after {
  right: auto;
  left: clamp(24px, 1.7195767196vw, 28px);
  transform-origin: 0.5px 50%;
}
@media screen and (width > 1512px) {
  .submit-btn.submit-btn_return > span::before, .submit-btn.submit-btn_return > span::after {
    left: 24px;
  }
}
@media screen and (width < 480px) and (orientation: portrait) {
  .submit-btn.submit-btn_return > span::before, .submit-btn.submit-btn_return > span::after {
    left: 8px;
  }
}
.submit-btn.submit-btn_return > span::before {
  transform: rotate(-30deg);
}
.submit-btn.submit-btn_return > span::after {
  transform: rotate(30deg);
}
.submit-btn::before {
  position: absolute;
  content: "";
  width: 2.6455026455vw;
  height: 2.6455026455vw;
  width: clamp(32px, 2.6455026455vw, 40px);
  height: clamp(32px, 2.6455026455vw, 40px);
  border-radius: 50%;
  border: 1px solid #5a5b5b;
  right: 32px;
  top: calc(50% - 1px);
  transform: translateY(-50%);
}
@media screen and (width < 480px) and (orientation: portrait) {
  .submit-btn::before {
    width: clamp(28px, 2.1164021164vw, 40px);
    height: clamp(28px, 2.1164021164vw, 40px);
    right: 20px;
  }
}
.submit-btn > span {
  position: relative;
  font-size: clamp(14px, 1.0582010582vw, 18px);
  font-weight: 500;
  display: inline-block;
  overflow: hidden;
  padding-block: clamp(16px, 1.3227513228vw, 20px);
  width: 100%;
  text-align: center;
}
@media screen and (width < 480px) and (orientation: portrait) {
  .submit-btn > span {
    font-size: clamp(14px, 1.0582010582vw, 18px);
    padding-block: clamp(16px, 1.3227513228vw, 20px);
    padding-inline: 28px;
  }
}
.submit-btn > span::before, .submit-btn > span::after {
  content: "";
  position: absolute;
  top: calc(50% - 1.5px);
  right: clamp(24px, 1.7195767196vw, 28px);
  width: clamp(10px, 0.7936507937vw, 16px);
  height: 1px;
  border-radius: 9999px;
  background-color: #5a5b5b;
  transform-origin: calc(100% - 0.5px) 50%;
}
@media screen and (width > 1512px) {
  .submit-btn > span::before, .submit-btn > span::after {
    right: 24px;
    width: 16px;
  }
}
@media screen and (width < 480px) and (orientation: portrait) {
  .submit-btn > span::before, .submit-btn > span::after {
    right: 8px;
    width: clamp(8px, 2.5641025641vw, 12px);
  }
}
.submit-btn > span::before {
  transform: rotate(30deg);
}
.submit-btn > span::after {
  transform: rotate(-30deg);
}/*# sourceMappingURL=contact.css.map */