@charset "UTF-8";
/*==================================
      レスポンシブ設定 マップ型変数breakpointsを定義
      =================================*/
/*==================================
      # 色、フォントファミリー
      =================================*/
@import url("https://fonts.googleapis.com/earlyaccess/hannari.css");
@font-face {
  font-family: "left-font";
  src: url(../font/left-free.otf) format("opentype");
}
@font-face {
  font-family: "dartsfont";
  src: url("../font/dartsfont.eot");
  /* IE9以下用 */
  src: url("../font/dartsfont.eot?#iefix") format("embedded-opentype"), url("../font/dartsfont.woff2") format("woff2"), url("../font/dartsfont.woff") format("woff"), url("../font/dartsfont.ttf") format("truetype");
  /* Safari, Android, iOS用 */
}
/*==================================
      common(一般) - 全体に共通するスタイル
      =================================*/
@media screen and (max-width: 767px) {
  .is-pc {
    display: none !important;
  }
}
@media screen and (min-width: 768px) {
  .is-sp {
    display: none !important;
  }
}
@media screen and (max-width: 1000px) {
  .is-pc-a {
    display: none !important;
  }
}
@media screen and (min-width: 1001px) {
  .is-sp-a {
    display: none !important;
  }
}
body {
  font-size: 16px;
  color: #333;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.7;
  background: #fff;
  padding-top: 87.89px;
}
@media screen and (max-width: 767px) {
  body {
    font-size: 14px;
    padding-top: 74.8px;
  }
}

.inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
}
@media screen and (max-width: 767px) {
  .inner {
    padding: 0 16px;
  }
}

img {
  width: 100%;
  vertical-align: bottom;
}

a {
  font-family: "Noto Sans JP", sans-serif;
}

::-webkit-input-placeholder {
  color: rgba(62, 62, 62, 0.5);
}

::-moz-placeholder {
  color: rgba(62, 62, 62, 0.5);
}

:-ms-input-placeholder {
  color: rgba(62, 62, 62, 0.5);
}

::-ms-input-placeholder {
  color: rgba(62, 62, 62, 0.5);
}

::placeholder {
  color: rgba(62, 62, 62, 0.5);
}

.section {
  padding: 100px 0;
}
@media screen and (max-width: 1000px) {
  .section {
    padding: 60px 0;
  }
}
@media screen and (max-width: 767px) {
  .section {
    padding: 50px 0;
  }
}

.section-btn a {
  font-size: 16px;
  display: block !important;
  background: #fff;
}
.section-btn a:hover .normal {
  display: none;
}
.section-btn a:hover .hover {
  display: block;
}
.section-btn .normal {
  display: block;
}
.section-btn .hover {
  display: none;
}
.section-btn .arrow {
  width: 38px;
  display: inline-block;
  margin-left: 40px;
  position: relative;
  top: -2px;
}
.section-btn .section-btn-flex {
  display: -webkit-box !important;
  display: -ms-flexbox !important;
  display: flex !important;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.section-btn .btn {
  /*アニメーションの起点とするためrelativeを指定*/
  position: relative;
  overflow: hidden;
  /*ボタンの形状*/
  text-decoration: none;
  display: inline-block !important;
  border: 1px solid #9CC953;
  /* ボーダーの色と太さ */
  padding: 10px 50px;
  text-align: center;
  outline: none;
  /*アニメーションの指定*/
  -webkit-transition: ease 0.2s;
  transition: ease 0.2s;
  border-radius: 20px;
}
@media screen and (max-width: 767px) {
  .section-btn .btn {
    padding: 10px 20px;
  }
}
.section-btn {
  /*ボタン内spanの形状*/
}
.section-btn .btn span {
  position: relative;
  z-index: 3;
  /*z-indexの数値をあげて文字を背景よりも手前に表示*/
  color: #9CC953;
}
.section-btn .btn:hover span {
  color: #fff;
}
.section-btn {
  /*== 背景が流れる（左から右） */
}
.section-btn .bgleft:before {
  content: "";
  /*絶対配置で位置を指定*/
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  /*色や形状*/
  background: #9CC953;
  /*背景色*/
  width: 100%;
  height: 100%;
  /*アニメーション*/
  -webkit-transition: -webkit-transform 0.6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
  transition: -webkit-transform 0.6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
  transition: transform 0.6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
  transition: transform 0.6s cubic-bezier(0.8, 0, 0.2, 1) 0s, -webkit-transform 0.6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
  -webkit-transform: scale(0, 1);
          transform: scale(0, 1);
  -webkit-transform-origin: right top;
          transform-origin: right top;
}
.section-btn {
  /*hoverした際の形状*/
}
.section-btn .bgleft:hover:before {
  -webkit-transform-origin: left top;
          transform-origin: left top;
  -webkit-transform: scale(1, 1);
          transform: scale(1, 1);
}

.section-btn2 .btn {
  padding: 5px 50px;
  font-size: 14px;
}

.privacy table {
  width: 100%;
}

@media screen and (min-width: 768px) {
  .contact {
    padding-top: 50px;
  }
}
.contact .form-wrapper {
  max-width: 800px;
  margin: 0px auto;
}
.contact .form-header {
  text-align: center;
  margin-bottom: 32px;
}
.contact .form-header .eyebrow {
  display: inline-block;
  letter-spacing: 0.15em;
  font-size: 12px;
  color: var(--gold);
  font-weight: 700;
  margin-bottom: 8px;
}
.contact .form-group {
  margin-bottom: 26px;
}
.contact .form-group:last-of-type {
  margin-bottom: 0;
}
.contact label {
  display: block;
  font-size: 14px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 8px;
}
.contact label .required {
  display: inline-block;
  background: rgb(225, 21, 21);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 3px;
  margin-left: 8px;
  vertical-align: middle;
  position: relative;
  top: -1px;
}
.contact label .optional {
  display: inline-block;
  background: #ddd;
  color: #333;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 3px;
  margin-left: 8px;
  vertical-align: middle;
  position: relative;
  top: -1px;
}
.contact input[type=text],
.contact input[type=email],
.contact input[type=tel],
.contact textarea {
  width: 100%;
  padding: 12px 14px;
  font-size: 15px;
  border: 1px solid #d3d3d3;
  border-radius: 4px;
  background: #fafafa;
  font-family: inherit;
  color: var(--text);
  -webkit-transition: border-color 0.2s, -webkit-box-shadow 0.2s;
  transition: border-color 0.2s, -webkit-box-shadow 0.2s;
  transition: border-color 0.2s, box-shadow 0.2s;
  transition: border-color 0.2s, box-shadow 0.2s, -webkit-box-shadow 0.2s;
}
.contact input[type=text]:focus,
.contact input[type=email]:focus,
.contact input[type=tel]:focus,
.contact textarea:focus {
  outline: none;
  background: #fff;
  background: #fff;
  border: 1px solid #E7F3EA;
}
.contact textarea {
  resize: vertical;
  min-height: 160px;
}
.contact .radio-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.contact .radio-option {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 10px 14px;
  border: 1px solid #9CC953;
  border-radius: 50px;
  background: #fafafa;
  cursor: pointer;
  -webkit-transition: border-color 0.2s, background 0.2s;
  transition: border-color 0.2s, background 0.2s;
  text-align: center;
  display: block;
}
.contact .radio-option input[type=radio] {
  margin-right: 10px;
  accent-color: var(--gold);
  width: 16px;
  height: 16px;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  position: absolute;
  opacity: 0;
}
.contact .radio-option span {
  font-size: 15px;
}
.contact .radio-option input[type=radio]:checked ~ span {
  color: var(--navy);
  font-weight: 700;
}
.contact .radio-option:has(input:checked) {
  border-color: var(--gold);
  background: #E7F3EA;
  background: #9CC953;
  color: #fff;
}
.contact .hint {
  font-size: 12px;
  color: #888;
  margin-top: 6px;
}
.contact .submit-row {
  margin-top: 36px;
  text-align: center;
}
.contact button[type=submit]::after {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  border-top: 2px solid var(--gold);
  border-right: 2px solid var(--gold);
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  margin-left: 12px;
}
.contact button[type=submit]:hover {
  background: var(--navy-light);
  -webkit-transform: translateY(-1px);
          transform: translateY(-1px);
}
.contact .privacy-note {
  text-align: center;
  font-size: 12px;
  color: #999;
  margin-top: 16px;
}
@media screen and (min-width: 768px) {
  .contact .ja {
    font-size: 22px;
  }
}
.contact .en {
  color: #9CC953;
}
.contact .submit-row button {
  border: 2px solid #46B9B5;
  max-width: 300px;
  margin-left: auto;
  margin-right: auto;
  background: #46B9B5;
  padding: 15px;
  background: #46B9B5;
  color: #fff;
  font-weight: 500;
  cursor: pointer;
  -webkit-transition: 0.3s;
  transition: 0.3s;
  width: 100%;
  border-radius: 50px;
  font-size: 18px;
  font-weight: 600;
}
@media screen and (max-width: 767px) {
  .contact .submit-row button {
    font-size: 16px;
  }
}
.contact .submit-row button:hover {
  background: #fff;
  color: #46B9B5;
}
.contact .submit-row button::after {
  display: none;
}
.contact textarea {
  resize: none;
}
.contact .radio-list {
  -webkit-box-orient: initial;
  -webkit-box-direction: initial;
      -ms-flex-direction: initial;
          flex-direction: initial;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
@media screen and (max-width: 767px) {
  .contact .radio-list {
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}
.contact .radio-option {
  margin-bottom: 0;
}
@media screen and (min-width: 768px) {
  .contact .radio-option {
    width: calc(33.333% - 13.3333333333px);
    margin-right: 20px;
  }
  .contact .radio-option:nth-child(3n) {
    margin-right: 0;
  }
  .contact .radio-option {
    margin-top: 15px;
  }
}
@media screen and (max-width: 767px) {
  .contact .radio-option {
    width: calc(50% - 10px);
    margin-right: 20px;
  }
  .contact .radio-option:nth-child(2n) {
    margin-right: 0;
  }
  .contact .radio-option {
    margin-top: 15px;
  }
}

@media screen and (max-width: 767px) {
  .contact .radio-option span {
    font-size: 14px;
  }
}