@charset "UTF-8";
@layer page {
  .p-circles {
    --my-left-color: #DBEEFF;
    --my-right-color: #E3F6FF;
    --my-bg-color: #f1faff;
  }
  .contact-block {
    margin-top: 5.625rem;
    padding-bottom: 8.125rem;
  }
  @media screen and (max-width: 767px) {
    .contact-block {
      margin-top: 10.6666666667vw;
      padding-bottom: 17.3333333333vw;
    }
  }
  .contact-sec + .contact-sec {
    margin-top: 8.125rem;
  }
  .contact-sec__body {
    border-top: 2px solid var(--main);
    margin-top: 1.25rem;
    padding-top: 3.75rem;
  }
  @media screen and (max-width: 767px) {
    .contact-sec__body {
      margin-top: 1.8666666667vw;
      padding-top: 8vw;
    }
  }
  .contact-sec__text a {
    text-decoration: underline;
    text-decoration-thickness: 1px;
  }
  .contact-sec__text a[target=_blank]::after {
    content: "";
    position: relative;
    top: 0.125rem;
    display: inline-block;
    aspect-ratio: 1/1;
    background: url("../../../img/icon/blank.svg") 0 0/contain no-repeat;
    width: 1rem;
    margin-right: 0.25rem;
    margin-left: 0.5rem;
    vertical-align: baseline;
  }
  @media (hover: hover) {
    .contact-sec__text a:hover {
      text-decoration: none;
    }
  }
  .contact-info {
    border-top: 1px solid var(--gray);
    width: 100%;
  }
  .contact-info tr {
    border-bottom: 1px solid var(--gray);
  }
  @media screen and (max-width: 767px) {
    .contact-info tr {
      display: flex;
      flex-direction: column;
    }
  }
  .contact-info th, .contact-info td {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
    vertical-align: top;
    line-height: 1.7;
  }
  @media screen and (max-width: 767px) {
    .contact-info th, .contact-info td {
      display: block;
      padding-left: 2.1333333333vw;
      padding-right: 2.1333333333vw;
    }
  }
  .contact-info th {
    text-align: left;
  }
  @media screen and (min-width: 768px) {
    .contact-info th {
      padding-left: 1.875rem;
      font-weight: normal;
      width: 23.75rem;
    }
  }
  @media screen and (max-width: 767px) {
    .contact-info th {
      padding-top: 5.3333333333vw;
      padding-bottom: 0;
    }
  }
  @media screen and (min-width: 768px) {
    .contact-info td {
      font-size: 1.125rem;
    }
  }
  @media screen and (max-width: 767px) {
    .contact-info td {
      padding-top: 2.6666666667vw;
      padding-bottom: 5.3333333333vw;
    }
  }
  .contact-note {
    margin-top: 1em;
  }
  .contact-note p {
    text-indent: -1em;
    margin-left: 1em;
  }
  .contact-form {
    margin-top: 3.75rem;
    width: 50rem;
    max-width: 100%;
  }
  @media screen and (max-width: 767px) {
    .contact-form input, .contact-form select, .contact-form label span, .contact-form textarea {
      font-size: 16px;
    }
  }
  .contact-form select {
    background: #fff;
  }
}
.ff-default .ff-el-input--label {
  margin-bottom: 0.5rem;
}
.ff-default .ff-el-input--label label {
  font-size: 1.125rem;
}
.ff-default .ff-el-input--label a {
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
}

.fluentform .ff-el-group {
  margin-bottom: 1.875rem;
}

select.ff-el-form-control:not([size]):not([multiple]) {
  height: 3em !important;
}

.ff-el-input--content:has(.ff-el-form-check-) {
  margin-top: 0.25rem;
}
@media screen and (min-width: 768px) {
  .ff-el-input--content:has(.ff-el-form-check-) {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
  }
}

.ff_submit_btn_wrapper {
  margin-top: 2.5rem !important;
  text-align: center !important;
}

.ff-btn-submit {
  background: linear-gradient(86deg, var(--my-start-color) 30%, var(--my-end-color) 100%);
  font-size: 1.25rem !important;
  width: 10em;
  padding-top: 1em !important;
  padding-bottom: 1em !important;
  border-radius: 100rem !important;
  transition: --my-start-color 0.3s ease, --my-end-color 0.3s ease !important;
}
@media (hover: hover) {
  .ff-btn-submit:hover {
    --my-start-color: var(--hover-color1);
    --my-end-color: var(--hover-color2);
  }
}

.fluentform .ff-el-input--label.ff-el-is-required.asterisk-right label::after {
  content: "必須";
  display: inline-block;
  font-size: 0.625rem;
  line-height: 1;
  background: #f56c6c;
  color: #fff;
  margin-left: 0.8em;
  padding: 0.4em 0.6em;
  border-radius: 4px;
}

.ff-el-input--content:has([placeholder=その他を選択された場合は内容をご入力下さい]) {
  margin-top: -1rem;
}

.ff-el-input--content:has([placeholder=郵便番号]) {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.ff-el-input--content:has([placeholder=郵便番号])::before {
  content: "〒";
}
.ff-el-input--content:has([placeholder=郵便番号]) input[type=text] {
  width: 12em;
}