@charset "UTF-8";
*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

html,
body,
h1,
h2,
h3,
h4,
h5,
h6,
ul,
ol,
dl,
li,
dt,
dd,
p,
div,
span,
img,
a,
table,
tr,
th,
td,
small,
button,
time,
figure {
  border: 0;
  font: inherit;
  font-size: 100%;
  margin: 0;
  padding: 0;
  vertical-align: baseline;
}

html {
  line-height: 1;
}

ol,
ul {
  list-style: none;
}

li,
dd {
  list-style-type: none;
}

header,
footer,
nav,
section,
article,
main,
aside,
figure,
figcaption {
  display: block;
}

img {
  border: none;
  vertical-align: bottom;
}

a {
  cursor: pointer;
  text-decoration: none;
}

/*----------------------------------
    clamp関数
-----------------------------------*/
/*----------------------------------
    fz-rem関数
-----------------------------------*/
/*----------------------------------
　　    pxをremに変換する関数
-----------------------------------*/
/*----------------------------------
　　    フォントサイズをレスポンシブにするmixin (pxをremに変換)
-----------------------------------*/
/*----------------------------------
使い方
@include responsive-font-size(16px, 24px, 375px, 1366px);
-----------------------------------*/
@-webkit-keyframes heartbeat {
  0%, 100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  50% {
    -webkit-transform: scale(1.05);
            transform: scale(1.05);
  }
}
@keyframes heartbeat {
  0%, 100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
  50% {
    -webkit-transform: scale(1.05);
            transform: scale(1.05);
  }
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 63px;
  font-size: 16px;
}

body {
  -moz-text-size-adjust: 100%;
   -ms-text-size-adjust: 100%;
       text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%; /* Safari */
  color: #333;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5;
}

picture,
video,
img,
svg {
  width: 100%;
  height: auto;
}

picture,
img,
a,
span {
  display: inline-block;
}

a {
  text-decoration: none;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease; /* 透過度の変化にアニメーションを適用 */
  color: inherit;
}
a:hover {
  opacity: 0.8; /* ホバー時の透過度を設定 */
}
@media screen and (min-width: 768px) {
  a:hover {
    cursor: pointer;
  }
}

@media (min-width: 768px) {
  a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
  }
}
button {
  font: inherit;
  color: inherit;
  background: transparent;
  background: none;
  border: none;
}

.l-inner {
  padding-inline: 16px;
  max-width: 542px;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .l-inner {
    max-width: 1366px;
    padding-inline: clamp(30px, 30px + (173) * (100vw - 768px) / (1366 - 768), 203px);
  }
}

.l-footer {
  background-color: #1f4d9c; /* フッターの背景色 */
  color: #fff; /* テキストの色 */
  height: 60px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.l-footer__copyright {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  text-align: center;
  font-family: "Roboto", sans-serif;
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  color: #fff;
}

.c-btn {
  min-width: 337px;
  padding-inline: 48px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  border-radius: 40px;
  gap: 10px;
}
@media screen and (min-width: 768px) {
  .c-btn {
    min-width: clamp(280px, 280px + (136) * (100vw - 375px) / (1366 - 375), 416px);
  }
}

/*----------------------------------
      <div class="p-mv-btn c-btn">
            <a class="c-button" href="#">会員登録する（無料）</a>
          </div>
-----------------------------------*/
.p-mv {
  position: relative;
  margin-inline: auto;
  text-align: center;
}

/*----------------------------------
    cta
-----------------------------------*/
.p-cta {
  padding-block: 40px;
}
@media screen and (min-width: 768px) {
  .p-cta {
    padding-block: 60px;
  }
}

.p-cta__inner {
  padding-inline: 20px;
  max-width: 520px;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-cta__inner {
    max-width: 1366px;
    padding-inline: clamp(30px, 30px + (225) * (100vw - 768px) / (1366 - 768), 255px);
  }
}

.p-cta__title {
  max-width: 524px;
  margin-inline: auto;
}

.p-cta__text {
  padding-top: 25px;
  text-align: center;
}
.p-cta__text p {
  font-size: 1.25rem;
  font-style: normal;
  font-weight: 800;
}
@media screen and (min-width: 768px) {
  .p-cta__text p {
    font-size: 1.875rem;
  }
}

.p-cta__text-arrow {
  color: #469f48;
}

.p-cta__btns {
  padding-top: 25px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 15px;
}
@media screen and (min-width: 768px) {
  .p-cta__btns {
    padding-top: 22px;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 25px;
  }
}

.p-cta__form-btn {
  padding-block: 15px;
  background-color: #007938;
  height: clamp(60px, 60px + (2) * (100vw - 375px) / (1366 - 375), 62px);
}
.p-cta__form-btn p {
  color: #fff;
  font-size: 1.25rem;
  font-weight: 700;
}
@media screen and (min-width: 768px) {
  .p-cta__form-btn p {
    font-size: clamp(1.125rem, 0.6433946488rem + 1.0033444816vw, 1.5rem);
  }
}

.p-cta__search-btn {
  padding-block: 8px;
  background-color: #fff;
  border: 2px solid #007938;
  height: clamp(54px, 54px + (8) * (100vw - 375px) / (1366 - 375), 62px);
}
.p-cta__search-btn p {
  color: #007938;
  font-size: 1.25rem;
  font-weight: 700;
}
@media screen and (min-width: 768px) {
  .p-cta__search-btn p {
    font-size: clamp(1.125rem, 0.6433946488rem + 1.0033444816vw, 1.5rem);
  }
}

.p-cta__form-btn-img {
  width: 30px;
  height: 100%;
}

.p-cta__search-btn-img {
  height: 100%;
  width: 37px;
}

/*----------------------------------
    flow
-----------------------------------*/
.p-flow__inner {
  padding-inline: 20px;
  max-width: 520px;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-flow__inner {
    max-width: 1366px;
    padding-inline: clamp(30px, 30px + (173) * (100vw - 768px) / (1366 - 768), 203px);
  }
}

.p-flow__wrap-1 {
  padding-block: 40px;
  background-color: #469f48;
  position: relative;
}
@media screen and (min-width: 768px) {
  .p-flow__wrap-1 {
    padding-block: 64px 60px;
  }
}

.p-flow__wrap-1-inner {
  padding-inline: 20px;
  padding-block: 35px;
  background-color: #fff;
  -webkit-box-shadow: 0px 10px 10px 0px rgba(0, 0, 0, 0.25);
          box-shadow: 0px 10px 10px 0px rgba(0, 0, 0, 0.25);
}
@media screen and (min-width: 768px) {
  .p-flow__wrap-1-inner {
    padding-inline: 40px;
    padding-block: 50px;
  }
}

.p-flow__title {
  text-align: center;
  position: relative;
  z-index: 0;
}
.p-flow__title h2 {
  font-size: 2rem;
  font-style: normal;
  font-weight: 800;
  line-height: normal;
  text-decoration: underline;
  text-decoration-color: #ff0;
  text-decoration-thickness: 9px;
  text-underline-offset: 0px;
  text-align: center;
  display: inline-block;
  margin-inline: auto;
  position: relative;
}
@media screen and (min-width: 768px) {
  .p-flow__title h2 {
    font-size: clamp(2rem, 1.3578595318rem + 1.3377926421vw, 2.5rem);
    text-decoration: none;
    z-index: 3;
  }
}
@media screen and (min-width: 768px) {
  .p-flow__title h2::after {
    content: "";
    position: absolute;
    bottom: 3px;
    left: 0;
    width: 100%;
    height: 15px;
    background-color: #fffd3f;
    z-index: -1;
  }
}

@media screen and (min-width: 768px) {
  .p-flow__wrap-1-benefits-pc-wrap {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}

.p-flow__wrap-1-benefits {
  padding-top: 40px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 26px;
}
@media screen and (min-width: 768px) {
  .p-flow__wrap-1-benefits {
    margin-inline: auto;
    gap: 18px;
  }
}

.p-flow__wrap-1-benefits-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 2px;
}
@media screen and (min-width: 768px) {
  .p-flow__wrap-1-benefits-item {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    gap: 20px;
    -ms-flex-item-align: start;
        align-self: flex-start;
  }
}

.p-flow__wrap-1-benefits-item-title {
  min-width: 86px;
  min-height: 32px;
  border-radius: 10px;
  background: #1f4d9c;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  display: grid;
  place-items: center;
  margin-inline: auto;
}
.p-flow__wrap-1-benefits-item-title p {
  color: #fff;
  text-align: center;
  font-family: "Noto Sans JP";
  font-style: normal;
  font-size: 1.125rem;
  font-weight: 800;
}

.p-flow__wrap-1-benefits-item-box-text {
  font-size: 1.5rem;
  font-style: normal;
  font-weight: 500;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 2px;
}
@media screen and (min-width: 768px) {
  .p-flow__wrap-1-benefits-item-box-text {
    font-size: 1.875rem;
    -webkit-box-align: baseline;
        -ms-flex-align: baseline;
            align-items: baseline;
  }
}

.p-flow__wrap-1-benefits-item-box-text-deco-vertical {
  color: #e40a1f;
  text-align: center;
  font-family: "Noto Sans JP";
  font-size: 0.875rem;
  font-style: normal;
  font-weight: 700;
  line-height: 18px;
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  text-orientation: upright;
  margin-inline: 2px;
  translate: 3px 0px;
}
@media screen and (min-width: 768px) {
  .p-flow__wrap-1-benefits-item-box-text-deco-vertical {
    font-size: 1.125rem;
  }
}

.p-flow__wrap-1-benefits-item-box-text-deco {
  padding-left: 4px;
  font-size: 2rem;
  font-weight: 720;
  color: #e40a1f;
}
@media screen and (min-width: 768px) {
  .p-flow__wrap-1-benefits-item-box-text-deco {
    font-size: 2.5rem;
  }
}

.p-flow__wrap-space {
  position: relative;
  text-align: center;
  padding-top: 81px;
}
@media screen and (min-width: 768px) {
  .p-flow__wrap-space {
    padding-top: 44px;
  }
}

.p-flow__wrap-space-text {
  position: absolute;
  top: 32px;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  z-index: 1;
}
.p-flow__wrap-space-text picture {
  display: inline-block;
  width: auto;
}
@media screen and (min-width: 768px) {
  .p-flow__wrap-space-text {
    top: 69px;
  }
}

.p-flow__wrap-2 {
  padding-top: 81px;
  background-color: #ded;
  padding-bottom: 40px;
}
@media screen and (min-width: 768px) {
  .p-flow__wrap-2 {
    padding-bottom: 103px;
    padding-top: 141px;
  }
}

.p-flow__wrap-2-title p {
  margin-inline: auto;
  text-align: center;
  width: 316px;
}
@media screen and (min-width: 768px) {
  .p-flow__wrap-2-title p {
    width: 392px;
  }
}

.p-flow__wrap-2-boxes {
  padding-top: 42px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 53px;
}
@media screen and (min-width: 768px) {
  .p-flow__wrap-2-boxes {
    padding-top: 51px;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    gap: 30px;
  }
}

.p-flow__wrap-2-box-coment {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 10px;
  width: 100%;
}
@media screen and (min-width: 768px) {
  .p-flow__wrap-2-box-coment {
    position: relative;
  }
}

.p-flow__wrap-2-box {
  border-radius: 10px;
  border: 3px solid #1f4d9c;
  background: #fff;
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  padding-bottom: 27px;
}
@media screen and (min-width: 768px) {
  .p-flow__wrap-2-box {
    padding-bottom: 21px;
  }
}

.p-flow__wrap-2-box-title {
  position: absolute;
  top: 0;
  left: 50%;
  translate: -50% -62%;
  border-radius: 10px;
  background: #1f4d9c;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  height: 40px;
  padding: 1px 16px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 2px;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.p-flow__wrap-2-box-title p {
  color: #fff;
  text-align: center;
  font-family: "Noto Sans JP";
  font-size: 1.5rem;
  font-style: normal;
  font-weight: 800;
  line-height: normal;
}
.p-flow__wrap-2-box-title span {
  font-size: 1.5rem;
  margin-left: 4px;
  font-style: normal;
  font-weight: 800;
  line-height: 1.2;
  border-radius: 13.5px;
  background: #fff;
  color: #1f4d9c;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  width: 27px;
  height: 27px;
  padding: 6px 6px 8px 6px;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 10px;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

.p-flow__wrap-2-box-img {
  width: 162px;
  padding-top: 27px;
}
@media screen and (min-width: 768px) {
  .p-flow__wrap-2-box-img {
    padding-top: 35px;
    max-width: 212px;
    width: clamp(162px, 162px + (50) * (100vw - 768px) / (1366 - 768), 212px);
  }
}

@media screen and (min-width: 768px) {
  .p-flow__wrap-2-box-coment .p-flow__wrap-2-box-img {
    padding-top: 27px;
  }
}

.p-flow__wrap-2-box-text {
  padding-top: 4px;
}
@media screen and (min-width: 768px) {
  .p-flow__wrap-2-box-text {
    padding-top: 20px;
  }
}
.p-flow__wrap-2-box-text p {
  font-size: 1.5rem;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-flow__wrap-2-box-text p {
    line-height: 1.2;
    font-size: clamp(1.125rem, 0.8411957619rem + 1.2108980827vw, 1.875rem);
  }
}

@media screen and (min-width: 768px) {
  .p-flow__wrap-2-box-coment .p-flow__wrap-2-box-text {
    padding-top: 9px;
  }
}

.p-flow__wrap-2-box-text-deco {
  color: #e40a1f;
  font-family: "Noto Sans JP";
  font-size: 32px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  padding-left: 9px;
}
@media screen and (min-width: 768px) {
  .p-flow__wrap-2-box-text-deco {
    padding-left: 9px;
    font-size: clamp(1.5625rem, 1.2077447023rem + 1.5136226034vw, 2.5rem);
  }
}

@media screen and (min-width: 768px) {
  .p-flow__wrap-2-box-coment .p-flow__wrap-2-box-text-deco {
    padding-left: 19px;
  }
}

.p-flow__wrap-2-box-text-deco-2 {
  font-size: 1.125rem;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  padding-left: 1px;
  translate: 0 -40%;
}
.p-flow__wrap-2-box-1-comment {
  font-size: 0.875rem;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-flow__wrap-2-box-1-comment {
    padding-left: 30px;
    padding-right: 20px;
    position: absolute;
    left: 0;
    bottom: -43px;
    margin: auto;
    line-height: 1.2;
  }
}

/*----------------------------------
    campaign
-----------------------------------*/
.p-campaign {
  padding-block: 47px 22px;
  background-color: #fff;
  background: url(../img/campaign-bg-sp.webp) no-repeat center bottom/contain;
}
@media screen and (min-width: 768px) {
  .p-campaign {
    padding-block: 47px;
    background: url(../img/campaign-bg-pc.webp) no-repeat center bottom/contain;
  }
}

.p-campaign__title-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 8px;
}
@media screen and (min-width: 768px) {
  .p-campaign__title-wrap {
    gap: 14px;
  }
}

.p-campaign__title-wrap-text {
  position: relative;
}
.p-campaign__title-wrap-text p {
  color: #1f4d9c;
  text-align: center;
  font-size: 1.25rem;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-campaign__title-wrap-text p {
    font-size: 1.5rem;
  }
}

.p-campaign__title-wrap-text-img {
  position: absolute;
  top: -57px;
  left: -32px;
  width: 87px;
}
@media screen and (min-width: 768px) {
  .p-campaign__title-wrap-text-img {
    width: 100px;
    top: -52px;
    left: -124px;
  }
}

.p-campaign__title-wrap-title {
  margin-inline: auto;
  text-align: center;
}
.p-campaign__title-wrap-title h2 {
  text-align: center;
  font-family: "Noto Sans JP";
  font-size: 2rem;
  font-style: normal;
  font-weight: 800;
  text-decoration: underline;
  text-decoration-color: #ff0;
  text-decoration-thickness: 9px;
  text-underline-offset: 0px;
  margin-inline: auto;
  position: relative;
}
@media screen and (min-width: 768px) {
  .p-campaign__title-wrap-title h2 {
    font-size: clamp(2rem, 1.3578595318rem + 1.3377926421vw, 2.5rem);
  }
}

.p-campaign__title-wrap-text2 {
  width: 335px;
  margin-top: 27px;
  background-color: #ff0;
  padding-block: 16px;
}
@media screen and (min-width: 768px) {
  .p-campaign__title-wrap-text2 {
    margin-top: 11px;
    width: 383px;
    padding-block: 12px;
  }
}
.p-campaign__title-wrap-text2 p {
  width: 280px;
  text-align: center;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-campaign__title-wrap-text2 p {
    width: 352px;
  }
}

.p-campaign__img {
  padding-top: 20px;
  max-width: 480px;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-campaign__img {
    width: clamp(680px, 680px + (280) * (100vw - 768px) / (1366 - 768), 960px);
    max-width: 960px;
    margin-top: -108px;
    padding-top: calc(60px - 60 * (100vw - 768px) / 598);
  }
}

/*----------------------------------
    schedule
-----------------------------------*/
.p-schedule {
  padding-block: 44px 0px;
  background: #ebf1fe;
  position: relative;
}
@media screen and (min-width: 768px) {
  .p-schedule {
    padding-block: 56px 36px;
  }
}
.p-schedule::after {
  content: "";
  position: absolute;
  bottom: -55.5px;
  left: 0;
  width: 100%;
  height: 56px;
  background: #ebf1fe;
  -webkit-clip-path: polygon(30% 0, 70% 0, 50% 100%);
  clip-path: polygon(-13% 0, 117% 0, 50% 100%);
}
@media screen and (min-width: 768px) {
  .p-schedule::after {
    bottom: -55.5px;
    left: 0;
    width: 100%;
    height: 56px;
    background: #ebf1fe;
    -webkit-clip-path: polygon(30% 0, 70% 0, 50% 100%);
    clip-path: polygon(0% 0, 100% 0, 50% 100%);
  }
}

.p-schedule__inner {
  padding-inline: 20px;
  max-width: 520px;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-schedule__inner {
    max-width: 1366px;
    padding-inline: clamp(30px, 30px + (171) * (100vw - 768px) / (1366 - 768), 201px);
  }
}

.p-schedule__title h2 {
  text-align: center;
  margin-inline: auto;
  width: 335px;
}
@media screen and (min-width: 768px) {
  .p-schedule__title h2 {
    width: 100%;
  }
}
.p-schedule__title h2 picture {
  display: inline-block;
  width: auto;
}

.p-schedule__text {
  padding-top: 8px;
}
.p-schedule__text p {
  font-family: "Noto Sans JP";
  font-size: 1rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1.5;
}
@media screen and (min-width: 768px) {
  .p-schedule__text p {
    text-align: center;
  }
}

.p-calendar {
  margin-top: 12px;
  position: relative;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-calendar {
    margin-top: 6px;
  }
}
.p-calendar__inner {
  position: relative;
  width: 100%;
}
.p-calendar__scroll-text {
  text-align: center;
  font-size: 1rem;
  font-weight: 700;
  color: #1f4d9c;
  margin-bottom: 8px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 8px;
}
.p-calendar__scroll-arrow {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 5px 8.7px 5px 0;
  border-color: transparent #1f4d9c transparent transparent;
  display: inline-block;
}
.p-calendar__scroll-arrow.right {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.p-calendar__scroll-container {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  position: relative;
  cursor: -webkit-grab;
  cursor: grab;
}
.p-calendar__scroll-container:active {
  cursor: -webkit-grabbing;
  cursor: grabbing;
}
.p-calendar__scroll-container::-webkit-scrollbar {
  height: 8px;
}
.p-calendar__scroll-container::-webkit-scrollbar-track {
  background: #f1f1f1;
  border-radius: 4px;
}
.p-calendar__scroll-container::-webkit-scrollbar-thumb {
  background: #888;
  border-radius: 4px;
}
.p-calendar__img {
  min-width: -webkit-max-content;
  min-width: -moz-max-content;
  min-width: max-content;
}
.p-calendar__img img {
  display: block;
  height: auto;
  width: 1953px;
}
@media screen and (min-width: 768px) {
  .p-calendar__img img {
    width: 2170px;
  }
}

/*----------------------------------
    description
-----------------------------------*/
.p-description {
  margin-top: 52px;
  position: relative;
  padding-block: 20px 0px;
}
@media screen and (min-width: 768px) {
  .p-description {
    margin-top: 56px;
    background: url(../img/img_gasshuku-bg02.webp) no-repeat center bottom/contain;
    padding-block: 40px 0px;
  }
}

.p-description__img {
  margin-top: -10px;
}
@media screen and (min-width: 768px) {
  .p-description__img {
    max-width: 1366px;
    margin-inline: auto;
    margin-top: -20px;
    position: relative;
    z-index: 1;
  }
}
@media screen and (min-width: 950px) {
  .p-description__img {
    max-width: 1366px;
    margin-inline: auto;
    margin-top: clamp(-313px, -100px + -213 * (100vw - 950px) / 416, -100px);
    position: relative;
    z-index: 1;
  }
}

.p-description__inner {
  padding-inline: 20px;
  max-width: 450px;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-description__inner {
    position: relative;
    z-index: 2;
    max-width: 1366px;
    padding-inline: clamp(30px, 30px + (337) * (100vw - 768px) / (1366 - 768), 367px);
  }
}

.p-description__title {
  text-align: center;
}

@media screen and (min-width: 768px) {
  .p-description__h2 {
    white-space: nowrap;
    line-height: 1.58;
  }
}

.p-description__title-text-1 {
  text-align: center;
  font-family: "Noto Sans JP";
  font-size: 2rem;
  font-style: normal;
  font-weight: 700;
}

.p-description__title-text-blue {
  color: #1f4d9c;
  margin-right: -2px;
}

.p-description__title-text-2 {
  text-align: center;
  font-family: "Noto Sans JP";
  font-size: 2rem;
  font-style: normal;
  font-weight: 700;
  display: inline-block;
  display: inline;
  background: -webkit-gradient(linear, left top, left bottom, color-stop(70%, transparent), color-stop(0, #fff100));
  background: linear-gradient(transparent 70%, #fff100 0);
}
@media screen and (min-width: 768px) {
  .p-description__title-text-2 {
    font-size: 2.5rem;
  }
}

.p-description__data-content-small {
  font-size: 1.25rem;
  font-style: normal;
  font-weight: 500;
  -webkit-transform: translateY(-10px);
          transform: translateY(-10px);
}
@media screen and (min-width: 768px) {
  .p-description__data-content-small {
    font-size: 1.25rem;
    -webkit-transform: translateY(0px) translatex(6px);
            transform: translateY(0px) translatex(6px);
  }
}

.c-button-download {
  margin-top: 20px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 8px;
  min-height: 59px;
  background-color: #007938;
  color: #fff;
  text-decoration: none;
  border-radius: 100px;
  font-weight: bold;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
  margin-inline: -8px;
  font-size: 1.125rem;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .c-button-download {
    margin-top: 26px;
    min-height: 65px;
    font-size: 1.5rem;
    max-width: 435px;
    margin-inline: auto;
  }
}
.c-button-download:hover {
  opacity: 0.8;
}
.c-button-download__icon {
  width: 20px;
  height: 20px;
}

.p-description__data {
  padding-top: 19px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 21px;
}
@media screen and (min-width: 768px) {
  .p-description__data {
    gap: 6px;
  }
}

@media screen and (min-width: 768px) {
  .p-description__2 {
    padding-inline: 38px;
  }
}

.p-description__data-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 4px;
}
@media screen and (min-width: 768px) {
  .p-description__data-item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 20px;
  }
}

.p-description__data-title {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 95px;
  height: 32px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 10px;
  border-radius: 10px;
  background: #1f4d9c;
  color: #fff;
  text-align: center;
  font-family: "Noto Sans JP";
  font-size: 1.125rem;
  font-style: normal;
  font-weight: 800;
  line-height: normal;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

.p-description__data-content {
  font-size: 1.5rem;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-description__data-content {
    font-size: 1.875rem;
  }
}

.p-description__2 {
  padding-top: 40px;
}
@media screen and (min-width: 768px) {
  .p-description__2 {
    padding-top: 65px;
  }
}

/*----------------------------------
    feature
-----------------------------------*/
.p-feature {
  padding-block: 40px;
  background-color: #469f48;
}
@media screen and (min-width: 768px) {
  .p-feature {
    padding-block: 70px 44px;
  }
}

.p-feature__title {
  text-align: center;
}
.p-feature__title h2 {
  margin-inline: auto;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-feature__title h2 {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}

.p-feature__title-img {
  width: 336px;
  margin-inline: auto;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-feature__title-img {
    width: clamp(336px, 336px + (79) * (100vw - 768px) / (1366 - 768), 415px);
  }
}

.p-feature__title-text {
  font-size: 1.5625rem;
  font-style: normal;
  font-weight: 800;
  line-height: normal;
  text-align: center;
  color: #fff;
  margin-inline: auto;
  display: inline-block;
}
@media screen and (min-width: 768px) {
  .p-feature__title-text {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    font-size: clamp(1.5625rem, 0.7598244147rem + 1.6722408027vw, 2.1875rem);
    font-style: normal;
    font-weight: 800;
    line-height: normal;
  }
}

.p-feature__inner {
  padding-inline: 33px 32px;
  max-width: 544px;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-feature__inner {
    max-width: 1368px;
    padding-inline: clamp(30px, 30px + (172) * (100vw - 768px) / (1366 - 768), 202px);
  }
}

.p-feature__text {
  padding-top: 27px;
}
@media screen and (min-width: 768px) {
  .p-feature__text {
    padding-top: 30px;
  }
}
.p-feature__text p {
  color: #ff0;
  text-align: center;
  font-family: "Noto Sans JP";
  font-size: 28px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-feature__text p {
    font-size: clamp(1.75rem, 1.1881270903rem + 1.1705685619vw, 2.1875rem);
    font-style: normal;
    font-weight: 700;
    line-height: normal;
  }
}

.p-feature__boxes {
  padding-top: 59px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 58px;
}
@media screen and (min-width: 768px) {
  .p-feature__boxes {
    padding-top: 71px;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 17px;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
  }
}

.p-feature__box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: relative;
  border-radius: 15px 15px 20px 20px;
  max-width: 375px;
}
.p-feature__box-num {
  position: absolute;
  top: 0;
  left: 50%;
  translate: -50% -80%;
  color: #007938;
  text-shadow: 1.5px 1.5px 0 #fff, -1.5px 1.5px 0 #fff, 1.5px -1.5px 0 #fff, -1.5px -1.5px 0 #fff, 1.5px 0 0 #fff, 0 1.5px 0 #fff, -1.5px 0 0 #fff, 0 -1.5px 0 #fff;
  font-family: "Roboto", sans-serif;
  font-size: 2.8125rem;
  font-style: normal;
  font-weight: 800;
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-feature__box-num {
    left: 48%;
  }
}

.p-feature__box-title {
  background: #1f4d9c;
  border-radius: 15px 15px 0px 0px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  min-height: 110px;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  text-align: center;
}
.p-feature__box-title p {
  color: #fff;
  font-size: 1.5rem;
  font-style: normal;
  font-weight: 800;
}
@media screen and (min-width: 768px) {
  .p-feature__box-title p {
    font-size: clamp(1rem, 0.3578595318rem + 1.3377926421vw, 1.5rem);
  }
}

.p-feature__box-img {
  width: 100%;
}

.p-feature__box-text {
  border-radius: 0px 0px 20px 20px;
  background: #fff;
  padding-block: 20px;
  padding-inline: 24px;
  width: 100%;
}
@media screen and (min-width: 768px) {
  .p-feature__box-text {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    padding-inline: clamp(16px, 16px + (8) * (100vw - 768px) / (1366 - 768), 24px);
  }
}
.p-feature__box-text p {
  color: #333;
  font-size: 1.25rem;
  font-style: normal;
  font-weight: 500;
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-feature__box-text p {
    font-size: clamp(1rem, 0.6789297659rem + 0.6688963211vw, 1.25rem);
  }
}

.u-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

@media screen and (min-width: 768px) {
  .u-hidden-pc {
    display: none;
  }
}

.u-hidden-sp {
  display: none;
}
@media screen and (min-width: 768px) {
  .u-hidden-sp {
    display: block;
  }
}

.u-fz-14 {
  font-size: 0.875rem;
}

.u-fz-36 {
  font-size: 2.25rem;
}

.u-color-white {
  color: #fff;
}

.u-bg-white {
  background-color: #fff;
}

.u-dib {
  display: inline-block;
}