.l-kv {
  position: relative;
  max-width: 136.6rem;
  margin: 13rem auto 0;
  padding-top: 6rem;
  border-top: 1px solid #000;
}

.l-kv_bread {
  margin-top: 2rem;
}

.l-contact {
  margin-top: 6rem;
  padding: 6rem 0 12rem;
  border-top: 1px solid var(--color-black);
}

.l-contact .snow-monkey-form[data-screen=confirm] .smf-placeholder {
  padding-top: .5rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: .04em;
  word-break: break-all;
}

html[lang=en] .l-contact .snow-monkey-form[data-screen=confirm] .smf-placeholder {
  word-break: normal;
  overflow-wrap: anywhere;
}

.l-contact .snow-monkey-form[data-screen=confirm] .smf-item__label__text {
  padding-top: 0;
}

.l-contact .snow-monkey-form[data-screen=confirm] .smf-item.is-personal_information .smf-item__description {
  display: none;
}

.l-contact .snow-monkey-form[data-screen=confirm] .smf-item.is-personal_information .smf-item__col--controls {
  justify-items: flex-start;
}

.l-contact .snow-monkey-form[data-screen=confirm] .smf-item.is-personal_information .smf-item__controls {
  padding-top: 1.2rem;
}

.l-contact .snow-monkey-form[data-screen=confirm] .smf-item.is-personal_information .smf-item__controls::before {
  content: "同意する";
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.5;
  letter-spacing: .04em;
}

html[lang=en] .l-contact .snow-monkey-form[data-screen=confirm] .smf-item.is-personal_information .smf-item__controls::before {
  content: "I have read and agree to the Privacy Policy.";
}

.l-contact .snow-monkey-form[data-screen=confirm] .smf-item.is-personal_information .smf-placeholder {
  display: none;
}

.l-contact .snow-monkey-form[data-screen=confirm] .smf-action {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  max-width: 66.8rem;
  margin: 6rem auto 0;
  gap: 1rem 2rem;
}

.l-contact .snow-monkey-form[data-screen=confirm] .smf-action .smf-button-control {
  display: block;
  width: 100%;
  margin: 0;
}

.l-contact .snow-monkey-form[data-screen=confirm] .smf-action .smf-button-control__control[data-action=back] {
  --btn-bg: var(--color-white);
  --btn-color: var(--color-black);
  --hover-color: var(--color-red);
  --hover-bg: var(--color-white);
  --btn-icn-color: var(--color-red);
}

.l-contact .smf-form {
  display: grid;
  max-width: 85rem;
  margin: 0 auto;
  gap: 6rem 0;
}

.l-contact .smf-form .smf-text-control__control,.l-contact .smf-form .smf-textarea-control__control {
  width: 100%;
  padding: 1rem 1.5rem;
  border: 1px solid;
  border-radius: 0;
  -webkit-box-shadow: none;
          box-shadow: none;
  line-height: 1.5;
  letter-spacing: .04em;
}

.l-contact .smf-item {
  display: grid;
  grid-template-columns: 26.3rem 1fr;
  gap: .7rem 0;
}

.l-contact .smf-item.is-personal_information {
  gap: 2rem 0;
}

.l-contact .smf-item.is-personal_information .smf-item__label__text {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  padding-top: 1rem;
}

.l-contact .smf-item.is-personal_information .smf-control-legend {
  padding: 1rem 1.5rem;
  border: 1px solid var(--color-black);
  color: var(--color-black);
  font-weight: 400;
  font-size: 1.4rem;
  line-height: 1.28;
  letter-spacing: .04em;
}

.l-contact .smf-item.is-personal_information .smf-item__col--controls {
  justify-items: center;
}

.l-contact .smf-item.is-personal_information input[type=checkbox] {
  display: none;
}

.l-contact .smf-item.is-personal_information .smf-label label {
  position: relative;
  padding-left: 2.5rem;
}

.l-contact .smf-item.is-personal_information .smf-label label::before {
  display: block;
  position: absolute;
  top: 50%;
  left: 0;
  width: 1.8rem;
  height: 1.8rem;
  translate: 0 -50%;
  border: 1px solid var(--color-black);
  background: var(--color-white);
  content: "";
}

.l-contact .smf-item.is-personal_information .smf-label label::after {
  display: block;
  visibility: hidden;
  position: absolute;
  top: 50%;
  left: .4rem;
  width: 1rem;
  height: .8rem;
  translate: 0 -50%;
  background: url(/img/contact/checkbox.svg) no-repeat;
  background-size: contain;
  content: "";
  opacity: 0;
}

.l-contact .smf-item.is-personal_information .smf-label label:has(input[type=checkbox]:checked)::before {
  background: var(--color-black);
}

.l-contact .smf-item.is-personal_information .smf-label label:has(input[type=checkbox]:checked)::after {
  visibility: visible;
  opacity: 1;
}

.l-contact .smf-item.is-personal_information .smf-checkbox-control__label {
  font-weight: 400;
  font-size: 1.4rem;
  line-height: 1.5;
  letter-spacing: .04em;
}

.l-contact .smf-item.is-personal_information .smf-checkboxes-control__control {
  margin-top: 2rem;
}

.l-contact .smf-item:has(textarea) .smf-item__label__text {
  padding-top: 1rem;
}

.l-contact .smf-item:has([data-validations=required],[data-validations="email required"]) .smf-item__label__text::before {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  padding: .7rem 2.5rem;
  background: var(--color-black);
  content: "必須";
  color: var(--color-white);
  font-weight: 400;
  font-size: 1.4rem;
  line-height: 1.3;
  font-family: "BIZ UDPMincho",serif;
  letter-spacing: .04em;
}

html[lang=en] .l-contact .smf-item:has([data-validations=required],[data-validations="email required"]) .smf-item__label__text::before {
  display: none;
}

html[lang=en] .l-contact .smf-item__label__text::after {
  display: inline;
  content: " *";
}

.l-contact .smf-item__label__text {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding-top: .5rem;
  gap: 0 1.6rem;
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.8;
  letter-spacing: .04em;
}

html[lang=en] .l-contact .smf-item__label__text {
  display: block;
}

.l-contact .smf-action {
  margin-top: 6rem;
}

.l-contact .smf-action .smf-button-control__control {
  --btn-bg: var(--color-black);
  --btn-color: var(--color-white);
  --hover-color: var(--color-white);
  --hover-bg: var(--color-red);
  --btn-icn-color: var(--color-white);
  display: block;
  position: relative;
  width: 100%;
  max-width: var(--btn-width, 32.4rem);
  margin: 0 auto;
  padding: 2rem 4.2rem;
  border: 1px solid var(--btn-border, var(--color-black));
  border-radius: 0;
  background: var(--btn-bg);
  color: var(--btn-color);
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.3;
  letter-spacing: .04em;
  text-align: center;
  -webkit-transition: color var(--duration) var(--easing),background var(--duration) var(--easing);
  transition: color var(--duration) var(--easing),background var(--duration) var(--easing);
}

.l-contact .smf-action .smf-button-control__control_icn {
  position: absolute;
  top: 50%;
  right: 2rem;
  width: 1.2rem;
  height: 1.2rem;
  translate: 0 -50%;
}

.l-contact .smf-action .smf-button-control__control_icn g {
  -webkit-transition: stroke var(--duration) var(--easing);
  transition: stroke var(--duration) var(--easing);
}

.l-contact .smf-system-error-content {
  font-weight: 400;
  font-size: 1.4rem;
  line-height: 1.5;
  letter-spacing: .04em;
}

.l-contact .smf-error-messages {
  margin-top: 1rem;
  color: var(--color-red);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: .04em;
}

.l-contact textarea {
  height: 34.7rem;
  font-weight: 400;
  font-size: 1.6rem;
  line-height: 1.5;
  letter-spacing: .04em;
  resize: vertical;
}

.l-thanks {
  margin-top: 6rem;
  padding: 6rem 0 12rem;
  border-top: 1px solid var(--color-black);
}

.l-thanks_txt {
  text-align: center;
}

.l-thanks_btn {
  --btn-width: 32.4rem;
  margin: 0 auto;
}

.l-thanks_btn_wrapper {
  margin-top: 6rem;
}

@media screen and (max-width: 48em) {
  .l-kv {
    margin-top: 9rem;
  }
  .l-contact {
    margin-top: 4rem;
    padding: 4rem 0 6rem;
  }
  .l-contact .snow-monkey-form[data-screen=confirm] .smf-placeholder {
    padding-top: 0;
  }
  .l-contact .snow-monkey-form[data-screen=confirm] .smf-item.is-personal_information .smf-item__controls {
    padding-top: 0;
  }
  .l-contact .snow-monkey-form[data-screen=confirm] .smf-item.is-personal_information .smf-item__controls::before {
    font-size: 1.4rem;
  }
  .l-contact .snow-monkey-form[data-screen=confirm] .smf-action {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    margin-top: 4rem;
  }
  .l-contact .smf-form {
    gap: 4rem 0;
  }
  .l-contact .smf-item {
    grid-template-columns: 1fr;
  }
  .l-contact .smf-item.is-personal_information {
    gap: 1rem 0;
  }
  .l-contact .smf-item.is-personal_information .smf-item__label__text {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding-top: 0;
  }
  .l-contact .smf-item.is-personal_information .smf-item__label__text br {
    display: none;
  }
  .l-contact .smf-item.is-personal_information .smf-control-legend {
    margin-top: 0;
    font-size: 1.2rem;
    line-height: 1.3;
  }
  .l-contact .smf-item.is-personal_information .smf-checkboxes-control__control {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .l-contact .smf-item:has(textarea) .smf-item__label__text {
    padding-top: 0;
  }
  .l-contact .smf-item:has([data-validations=required],[data-validations="email required"]) .smf-item__label__text::before {
    padding: .3rem 1.2rem;
    font-size: 1.2rem;
  }
  .l-contact .smf-item__label__text {
    gap: 0 1.3rem;
  }
  .l-contact .smf-action {
    margin-top: 4rem;
  }
  .l-contact .smf-action .smf-button-control__control {
    max-width: 100%;
    padding: 2.2rem 2rem;
    font-size: 1.4rem;
  }
  .l-contact textarea {
    height: auto;
    font-size: 1.4rem;
  }
  .l-thanks {
    margin-top: 4rem;
    padding: 4rem 0 6rem;
  }
  .l-thanks_btn {
    --btn-width: 100%;
  }
}

@media (hover: hover) {
  .l-contact .smf-action .smf-button-control__control:hover {
    border: 1px solid var(--color-red);
    background: var(--hover-bg);
    color: var(--hover-color);
  }
}
