@charset "UTF-8";
:root {
  --viewport-width: min(100vw, 1600px);
  --b: calc(var(--viewport-width) / 160);
}

/*
Theme Name: Twenty Twenty-one Child
Version: 1.6
Template: twentytwentyone
*/
#contact {
  background: linear-gradient(0deg, #E8FDF0, transparent 20%);
}
#contact .breadcrumb {
  margin-bottom: max(6.2rem, 50px);
}
#contact .sub {
  font-family: "Shippori Mincho B1", serif;
  font-weight: 600;
  color: #fff;
  font-size: max(3rem, 20px);
}
#contact .form__topnumber {
  display: flex;
  justify-content: space-between;
  width: 80%;
  max-width: 485px;
  margin: max(12rem, 50px) auto;
  position: relative;
}
#contact .form__topnumber::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 1px;
  top: 35%;
  background-color: #008062;
}
#contact .form__topnumber .number {
  position: relative;
  width: max(8.6rem, 65px);
  height: max(8.6rem, 65px);
  aspect-ratio: 1/1;
  background: linear-gradient(#78E066, #48CC7B 40%, #17B471);
  border-radius: 50%;
  transition: 0.3s;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: max(2.5rem, 20px);
  font-family: "EB Garamond", serif;
  font-weight: 400;
}
#contact .form__topnumber .number.off {
  background: #E2FCE4;
  border: 1px solid #008062;
  color: #008062;
}
#contact .form__topnumber p {
  margin-top: 0 !important;
  color: #008062;
  text-align: center;
}
#contact .form__content__section__header {
  margin-top: max(12rem, 60px);
}
#contact .form__content__section__header.center {
  text-align: center;
  margin-bottom: max(12rem, 60px);
}
#contact .form__preface {
  margin-top: max(15rem, 100px);
  margin-bottom: max(11.7rem, 100px);
}
#contact .form__group {
  display: flex;
  margin-bottom: max(7rem, 30px);
}
#contact .form__group.mt5 {
  margin-top: max(5.8rem, 30px);
}
#contact .form__group.mt8 {
  margin-top: max(8.6rem, 50px);
}
@media screen and (max-width: 768px) {
  #contact .form__group {
    flex-direction: column;
    gap: max(3rem, 15px);
    margin-bottom: max(3rem, 15px);
  }
}
#contact .form__label {
  color: #008062;
  font-size: max(1.6rem, 14px);
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-weight: 400;
  width: 30%;
  min-width: 230px;
  margin-top: max(2.3rem, 15px);
}
#contact .form__label.u-m0 {
  margin: 0;
}
#contact .form__label.required::after {
  content: "必須";
  background-color: #FF0000;
  color: #fff;
  padding: max(0.1rem, 1px) max(0.7rem, 7px) max(0.3rem, 3px);
  border-radius: max(0.2rem, 2px);
  margin-left: max(1.2rem, 12px);
}
#contact .form__fieldbox {
  flex: 1;
}
#contact .form__field {
  display: flex;
  align-items: center;
  gap: max(1rem, 10px);
}
#contact .form__field.mt1 {
  margin-top: max(1rem, 10px);
}
#contact .form__field.w30 {
  width: 30%;
  min-width: 200px;
}
#contact .form__field.w50 {
  width: 50%;
  min-width: 300px;
}
#contact .form__field.w60 {
  width: 60%;
}
#contact .form__error p {
  color: #FF0000;
}
#contact .form label.form__option {
  display: flex;
  align-items: center;
  gap: max(1rem, 10px);
}
#contact .form input,
#contact .form select,
#contact .form textarea {
  flex: 1;
  background-color: #fff;
  filter: drop-shadow(0px 5px 15px rgba(0, 0, 0, 0.16));
  border-radius: max(1rem, 10px);
  padding: max(2.3rem, 15px);
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-weight: 400;
}
#contact .form input::placeholder,
#contact .form select::placeholder,
#contact .form textarea::placeholder {
  color: rgba(80, 80, 80, 0.16);
}
#contact .form input[type=radio],
#contact .form select[type=radio],
#contact .form textarea[type=radio] {
  padding: max(1rem, 10px);
  position: relative;
  width: max(1.8rem, 18px);
  height: max(1.8rem, 18px);
  border-radius: 50%;
  vertical-align: middle;
  appearance: none;
}
#contact .form input[type=radio]::before,
#contact .form select[type=radio]::before,
#contact .form textarea[type=radio]::before {
  content: "";
  position: absolute;
  display: inline-block;
  top: 50%;
  left: 50%;
  width: 60%;
  height: 60%;
  transform: translate(-50%, -50%) scale(0);
  aspect-ratio: 1/1;
  border-radius: 50%;
  transition: 0.3;
  background: #008062;
}
#contact .form input[type=radio]:checked::before,
#contact .form select[type=radio]:checked::before,
#contact .form textarea[type=radio]:checked::before {
  transform: translate(-50%, -50%) scale(1);
}
#contact .form input[type=checkbox],
#contact .form select[type=checkbox],
#contact .form textarea[type=checkbox] {
  flex: initial;
}
#contact .form input[type=checkbox]::before,
#contact .form select[type=checkbox]::before,
#contact .form textarea[type=checkbox]::before {
  content: "";
  position: absolute;
  inset: 0;
  top: 50%;
  left: 50%;
  width: 60%;
  height: 60%;
  aspect-ratio: 1/1;
  background: #008062;
  border-radius: 3px;
  transform: translate(-50%, -50%) scale(0);
}
#contact .form input[type=checkbox]:checked::before,
#contact .form select[type=checkbox]:checked::before,
#contact .form textarea[type=checkbox]:checked::before {
  transform: translate(-50%, -50%) scale(1);
}
#contact .form .select__outer {
  position: relative;
  flex: 1;
}
#contact .form .select__outer::before {
  content: "";
  display: block;
  width: max(0.8rem, 8px);
  height: max(0.8rem, 8px);
  border-top: 2px solid #008062;
  border-right: 2px solid #008062;
  position: absolute;
  right: max(2.3rem, 15px);
  top: 50%;
  transform: translate(0%, -70%) rotate(135deg);
  transition: 0.3s;
  z-index: 1;
  pointer-events: none;
}
#contact .form .select__outer.mw-100 {
  max-width: 100px;
}
#contact .form .select__outer select {
  width: 100%;
}
#contact .form .mainbtn__arrow {
  position: relative;
  width: max(6.7rem, 47px);
  height: max(6.7rem, 47px);
  aspect-ratio: 1/1;
  background: linear-gradient(#78E066, #48CC7B 40%, #17B471);
  border-radius: 50%;
  transition: 0.3s;
}
#contact .form .mainbtn__arrow::before {
  content: "";
  display: block;
  width: max(1.3rem, 13px);
  height: max(1.3rem, 13px);
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  position: absolute;
  right: 50%;
  top: 50%;
  transform: translate(25%, -50%) rotate(45deg);
  transition: 0.3s;
}
#contact .form__actions {
  text-align: center;
  margin: max(10rem, 50px) 0 max(12rem, 100px);
}
#contact .form__actions .form__actions__consent__field {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: max(1.5rem, 15px);
}
#contact .form__actions .form__actions__consent__field span {
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-weight: 400;
}
#contact .form__actions a {
  display: inline-block;
  margin: max(3rem, 15px) 0 max(5rem, 25px);
  border-bottom: 1px solid #000;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-weight: 400;
}
#contact .form__actions button.mainbtn {
  display: flex;
  margin: 0 auto;
  color: #008062;
  font-size: max(2.2rem, 18px);
}
#contact .form__wrapper--confirm h3 {
  text-align: center;
}
#contact .form__wrapper--confirm .form__content__section__body {
  text-align: center;
}
#contact .form__wrapper--confirm .form__confirm__list {
  display: inline-flex;
  flex-direction: column;
  text-align: left;
  width: 80%;
  max-width: 800px;
}
@media screen and (max-width: 550px) {
  #contact .form__wrapper--confirm .form__confirm__list {
    width: 100%;
  }
}
#contact .form__wrapper--confirm .form__confirm__item {
  display: grid;
  column-gap: 30px;
  grid-template-columns: max(24rem, 200px) auto;
}
#contact .form__wrapper--confirm .form__confirm__item:not(:last-of-type) {
  margin-bottom: max(4.5rem, 25px);
}
@media screen and (max-width: 550px) {
  #contact .form__wrapper--confirm .form__confirm__item {
    grid-template-columns: 1fr;
  }
}
#contact .form__wrapper--confirm .form__confirm__item dd,
#contact .form__wrapper--confirm .form__confirm__item dt {
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-weight: 400;
}
#contact .form__wrapper--confirm .form__confirm__item dt {
  color: #008062;
}
#contact .form__wrapper--confirm .form__confirm__item dt.required::after {
  content: "必須";
  background-color: #FF0000;
  color: #fff;
  padding: max(0.1rem, 1px) max(0.7rem, 7px) max(0.3rem, 3px);
  border-radius: max(0.2rem, 2px);
  margin-left: max(1.2rem, 12px);
}
#contact .form__wrapper--confirm .form__actions {
  display: flex;
  justify-content: space-between;
  max-width: 540px;
  margin: max(15rem, 100px) auto;
}
#contact .form__wrapper--confirm .form__actions .form__button--secondary {
  color: #505050;
}
#contact .form__wrapper--confirm .form__actions .form__button--secondary .mainbtn__arrow {
  background: #505050;
}
#contact .form__wrapper--confirm .form__actions .form__button--secondary .mainbtn__arrow::before {
  transform: translate(65%, -50%) rotate(230deg);
}
#contact .form__wrapper--complete .form__content {
  text-align: center;
  margin-bottom: max(19rem, 100px);
}
#contact .form__wrapper--complete .form__content p {
  margin-top: max(4rem, 20px);
}