@charset "utf-8";
.contact_head {
  padding: calc(60 / 1280 * 100vw) calc(40 / 1280 * 100vw);
  background: #fff;
}
.contact_head h1 {
  font-size: 3.43vw;
  line-height: 1em;
  margin-bottom: calc(60 / 1280 * 100vw);
  text-align: center;
}
.contact_head h1 span {
  display: block;
  font-size: 8.72vw;
  line-height: 1em;
  opacity: 0.3;
  margin-bottom: calc(20 / 1280 * 100vw);
}
.contact_head .note {
  font-size: calc(20 / 1280 * 100vw);
  line-height: 2em;
  text-align: center;
}
@media (max-width: 600px) {
  .contact_head {
    padding: 60px 20px 20px;
  }
  .contact_head .note {
    font-size: 3vw;
  }
}
#faq {
  background: #3a7f82;
  padding: calc(120 / 1280 * 100vw) calc(40 / 1280 * 100vw);
  color: #fff;
}
#faq h2 {
  font-size: 3.43vw;
  line-height: 1em;
  margin-bottom: calc(60 / 1280 * 100vw);
  text-align: center;
}
#faq h2 span {
  display: block;
  font-size: 8.72vw;
  line-height: 1em;
  opacity: 0.3;
  margin-bottom: calc(20 / 1280 * 100vw);
  color: #72f9ff;
}
#faq .content {
  width: 62.5vw;
  margin: 0 auto calc(120 / 1280 * 100vw);
  padding-top: calc(60 / 1280 * 100vw);
  border-top: 1px solid #fff;
}
@media (max-width: 600px) {
  #faq {
    padding: 60px 20px;
  }
  #faq h1 {
    margin-bottom: 40px;
  }
  #faq .content {
    width: 100%;
    margin: 0 auto 60px;
    padding-top: 40px;
  }
}
.qa_lists {
  width: 62.5vw;
  margin: 0 auto;
  font-weight: 500;
}
.qa_lists li {
  border-bottom: 1px solid #fff;
}
.qa_lists li section .question {
  font-size: calc(16 / 1280 * 100vw);
  line-height: 1.5em;
  padding: calc(20 / 1280 * 100vw) 0 calc(20 / 1280 * 100vw) 1.5em;
  letter-spacing: 0.05em;
  font-weight: 500;
  position: relative;
}
.qa_lists li section .question span {
  display: block;
  cursor: pointer;
  position: relative;
}
.qa_lists li section .question span:after {
  content: "";
  position: absolute;
  right: 0;
  top: 0.4em;
  width: 1.93vw;
  height: 1.01vw;
  background: url("../images/d_arrow_down.svg") no-repeat center/contain;
  transition: transform 0.3s ease-out;
}
.qa_lists li section .question:before {
  position: absolute;
  left: 0;
  top: calc(20 / 1280 * 100vw);
  content: "Q.";
}
.qa_lists li section .question.active span:after {
  content: "";
  transform: rotate(180deg);
}
.qa_lists li section .answer {
  font-size: calc(16 / 1280 * 100vw);
  line-height: 1.5em;
  position: relative;
  padding: 0 0 0 1.5em;
  overflow: hidden;
  transition: all 0.3s ease-out;
  display: grid;
  grid-template-rows: 0fr;
}
.qa_lists li section .answer.active {
  grid-template-rows: 1fr;
}
.qa_lists li section .answer.active span {
  padding: calc(20 / 1280 * 100vw) 0;
}
.qa_lists li section .answer.active:before {
  top: calc(20 / 1280 * 100vw);
}
.qa_lists li section .answer span {
  display: block;
  padding: 0;
  overflow: hidden;
  transition: all 0.3s ease-out;
}
.qa_lists li section .answer span > p {
  margin-bottom: 1.62em;
}
.qa_lists li section .answer span > p:last-child {
  margin-bottom: 0;
}
.qa_lists li section .answer span > p:has(+ ul) {
  margin-bottom: 0;
}
.qa_lists li section .answer span ul {
  padding-left: 1em;
  margin-bottom: 1.62em;
}
.qa_lists li section .answer span ul li {
  margin-bottom: 1.62em;
}
.qa_lists li section .answer span ul li:last-child {
  margin-bottom: 0;
}
.qa_lists li section .answer span ul:last-child {
  margin-bottom: 0;
}
.qa_lists li section .answer a {
  color: #fff;
  text-decoration: underline;
}
.qa_lists li section .answer:before {
  position: absolute;
  left: 0;
  top: 0;
  content: "A.";
  transition: all 0.3s ease-out;
}
.qa_lists li:last-child section {
  position: relative;
}
@media (max-width: 600px) {
  .qa_lists {
    width: 100%;
  }
  .qa_lists li section .question {
    font-size: 2.5vw;
    padding: calc(20 / 1280 * 100vw) 0 calc(20 / 1280 * 100vw) 1.5em;
  }
  .qa_lists li section .question span:after {
    width: calc(1.93vw * var(--scale));
    height: calc(1.01vw * var(--scale));
    --scale: 2;
  }
  .qa_lists li section .answer {
    font-size: 2.5vw;
  }
  .qa_lists li section .answer.active {
    grid-template-rows: 1fr;
  }
  .qa_lists li section .answer.active span {
    padding: calc(20 / 1280 * 100vw) 0;
  }
  .qa_lists li section .answer.active:before {
    top: calc(20 / 1280 * 100vw);
  }
  .qa_lists li section .answer span > p {
    margin-bottom: 1.62em;
  }
  .qa_lists li section .answer span > p:last-child {
    margin-bottom: 0;
  }
  .qa_lists li section .answer span > p:has(+ ul) {
    margin-bottom: 0;
  }
  .qa_lists li section .answer span ul {
    padding-left: 1em;
    margin-bottom: 1.62em;
  }
  .qa_lists li section .answer span ul li {
    margin-bottom: 1.62em;
  }
  .qa_lists li section .answer span ul li:last-child {
    margin-bottom: 0;
  }
  .qa_lists li section .answer span ul:last-child {
    margin-bottom: 0;
  }
  .qa_lists li:last-child section {
    position: relative;
  }
}
#contact_form {
  background: #f8f8f8;
  padding: calc(120 / 1280 * 100vw) calc(40 / 1280 * 100vw);
}
#contact_form h2 {
  font-size: 3.43vw;
  line-height: 1em;
  margin-bottom: calc(60 / 1280 * 100vw);
  text-align: center;
}
#contact_form h2 span {
  display: block;
  font-size: 8.72vw;
  line-height: 1em;
  opacity: 0.3;
  margin-bottom: calc(20 / 1280 * 100vw);
}
#contact_form .content {
  width: 62.5vw;
  margin: 0 auto calc(120 / 1280 * 100vw);
  padding-top: calc(60 / 1280 * 100vw);
  border-top: 1px solid #fff;
}
@media (max-width: 600px) {
  #contact_form {
    padding: 60px 20px;
  }
  #contact_form .content {
    width: 100%;
    margin: 0 auto 60px;
    padding-top: 60px;
  }
}
.smf-form {
  display: block;
  width: 62.5vw;
  margin: 0 auto calc(40 / 1280 * 100vw);
}
.smf-form .smf-item {
  display: flex;
}
.smf-form .smf-item .smf-item__col--label {
  display: flex;
  width: 16vw;
  font-size: calc(16 / 1280 * 100vw);
  line-height: 1.4em;
  background: #80c0c0;
  padding: 1em 1em;
  align-items: center;
  justify-content: center;
  color: #fff;
  border-bottom: 1px solid #f8f8f8;
}
.smf-form .smf-item .smf-item__col--controls {
  display: flex;
  width: calc(100% - 16vw);
  font-size: calc(16 / 1280 * 100vw);
  line-height: 1.4em;
  position: relative;
  align-items: center;
  padding: 0.8125em 1.3125em;
  background: #fff;
  border-bottom: 1px solid #f8f8f8;
}
.smf-form .smf-item .smf-item__col--controls .smf-checkbox-control,
.smf-form .smf-item .smf-item__col--controls .smf-radio-button-control {
  align-items: center;
}
.smf-form .smf-item .smf-item__col--controls .smf-checkbox-control .smf-checkbox-control__label,
.smf-form .smf-item .smf-item__col--controls .smf-radio-button-control .smf-checkbox-control__label,
.smf-form .smf-item .smf-item__col--controls .smf-checkbox-control .smf-radio-button-control__label,
.smf-form .smf-item .smf-item__col--controls .smf-radio-button-control .smf-radio-button-control__label {
  padding-top: 0.1em;
}
.smf-form .smf-item .smf-item__col--controls .smf-item__controls {
  width: 100%;
}
.smf-form .smf-item .smf-item__col--controls input,
.smf-form .smf-item .smf-item__col--controls select,
.smf-form .smf-item .smf-item__col--controls textarea {
  font-size: calc(16 / 1280 * 100vw);
}
.smf-form .smf-item .smf-item__col--controls input {
  line-height: 1em;
}
.smf-form .smf-item .smf-item__col--controls input[type=text],
.smf-form .smf-item .smf-item__col--controls input[type=email],
.smf-form .smf-item .smf-item__col--controls input[type=tel] {
  border-radius: 0;
  width: 100%;
  color: #3a7f82;
}
.smf-form .smf-item .smf-item__col--controls input[type=checkbox],
.smf-form .smf-item .smf-item__col--controls input[type=radio] {
  margin-top: unset;
}
.smf-form .smf-item .smf-item__col--controls select {
  line-height: 1em;
}
.smf-form .smf-item .smf-item__col--controls .middle {
  width: 67.3%;
}
.smf-form .smf-item .smf-item__col--controls .long {
  width: 100%;
}
.smf-form .wp-block-group {
  width: 100%;
  padding: calc(40 / 1280 * 100vw);
  background: #fff;
}
.smf-form .wp-block-group p {
  font-size: calc(16 / 1280 * 100vw);
  line-height: 1.5em;
  text-align: center;
  margin-bottom: 1em;
}
.smf-form .wp-block-group p a {
  text-decoration: underline;
}
.smf-form .wp-block-group .smf-placeholder {
  margin-top: calc(40 / 1280 * 100vw);
}
.smf-form .wp-block-group .smf-placeholder .smf-error-messages {
  text-align: center;
}
.smf-form .wp-block-group .smf-label {
  text-align: center;
}
.smf-form .wp-block-group .smf-label .smf-checkbox-control__control {
  width: calc(20 / 1280 * 100vw);
  height: calc(20 / 1280 * 100vw);
}
.smf-form .wp-block-group .smf-label .smf-checkbox-control__label {
  font-size: calc(20 / 1280 * 100vw);
}
@media (max-width: 600px) {
  .smf-form {
    width: 100%;
    margin: 0 auto 40px;
  }
  .smf-form .smf-item .smf-item__col--label {
    width: 25vw;
    font-size: 2.5vw;
    padding: 1em 0.5em;
  }
  .smf-form .smf-item .smf-item__col--controls {
    width: calc(100% - 25vw);
    font-size: 2.5vw;
  }
  .smf-form .smf-item .smf-item__col--controls input,
  .smf-form .smf-item .smf-item__col--controls select,
  .smf-form .smf-item .smf-item__col--controls textarea {
    font-size: 2.5vw;
  }
  .smf-form .wp-block-group {
    padding: 40px 20px;
  }
  .smf-form .wp-block-group p {
    font-size: 2.5vw;
  }
  .smf-form .wp-block-group .smf-placeholder {
    margin-top: 40px;
  }
  .smf-form .wp-block-group .smf-label .smf-checkbox-control__control {
    width: 3vw;
    height: 3vw;
  }
  .smf-form .wp-block-group .smf-label .smf-checkbox-control__label {
    font-size: 3vw;
    line-height: 1em;
  }
}
.smf-action {
  text-align: center;
  font-size: calc(16 / 1280 * 100vw);
  width: 62.5vw;
  margin: 0 auto;
}
.smf-action .smf-button-control__control {
  display: inline-block !important;
  padding: 1em 3.5em !important;
  line-height: 1em;
  position: relative !important;
  --radius: calc(20 / 1280 * 100vw);
  clip-path: polygon(var(--radius) 0, calc(100% - var(--radius)) 0, 100% var(--radius), 100% calc(100% - var(--radius)), calc(100% - var(--radius)) 100%, calc(var(--radius)) 100%, 0 calc(100% - var(--radius)), 0 var(--radius));
  font-weight: 600;
  background: #3a7f82 !important;
  color: #fff !important;
}
.smf-action .smf-button-control__control:after {
  content: "";
  display: block;
  width: 1em;
  height: 1em;
  background: url("../images/icon_arrow_r_w.svg") no-repeat center/contain;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 1.5em;
  margin: auto;
  transition: all 0.3s ease-out;
}
.smf-action .smf-button-control__control:hover {
  text-decoration: none;
}
.smf-action .smf-button-control__control:hover:after {
  right: 1em;
}
@media (max-width: 600px) {
  .smf-action {
    font-size: 2.5vw;
    width: 100%;
  }
  .smf-action .smf-button-control__control {
    --radius: 2.5vw;
  }
}
