@charset "utf-8";

/* =====================================
  /common/css/common.css
===================================== */
.bg-wave{
  --bg-color-01:var(--color-mono50);
  --bg-color-02:var(--color-mono50);
  margin-top: -93px;
}

@media screen and (max-width: 767px) {
  .bg-wave{
    margin-top: -25px;
  }
}

/* =====================================
  hero
===================================== */
.hero {
  min-height: 352px;
  background: linear-gradient(#faf2e6 0 425px, var(--color-mono100) 425px);
  overflow: hidden;
  position: relative;
}

.hero::before,
.hero::after {
  content: "";
  width: 474px;
  height: 363px;
  background: no-repeat center / contain;
  position: absolute;
}

.hero::before {
  background-image: url(/gakko/faq/img/bg_program_hero_loop_01.svg);
  top: -214px;
  left: calc(50% - 720px - 120px);
}

.hero::after {
  background-image: url(/gakko/faq/img/bg_program_hero_loop_02.svg);
  top: -225px;
  right: calc(50% - 720px - 142px);
}

.hero__inner {
  max-width: 1440px;
  min-height: 352px;
  margin: 0 auto;
  padding: 80px 20px 0;
  position: relative;
}

.hero__title {
  text-align: center;
  position: relative;
  z-index: 1;
}

.hero__title-small {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 16px;
}

.hero__title-main {
  display: block;
  width: 527.28px;
  margin: 24px auto 40px;
}

.hero__title img {
  display: block;
}

@media screen and (max-width: 767px) {
  .hero {
    min-height: 145px;
    background: linear-gradient(#faf2e6 0 373px, var(--color-mono100) 373px);
  }

  .hero::before {
    width: 103.765px;
    height: 82.172px;
    top: -54px;
    left: -23px;
    background-image: url(/gakko/faq/img/bg_program_hero_loop_01_sp.svg);
  }

  .hero::after {
    width: 101px;
    height: 80px;
    top: -39px;
    right: -31px;
    background-image: url(/gakko/faq/img/bg_program_hero_loop_02_sp.svg);
  }

  .hero__inner {
    min-height: 145px;
    padding: 32px 20px 0;
  }

  .hero__inner::after {
    content: none;
  }

  .hero__title {
    height: 106px;
    font-size: 0;
  }

  .hero__title-small-img {
    width: 180px;
  }

  .hero__title-main {
    width: min(276.82px, 100%);
    margin-top: 12px;
    margin-bottom: 12px;
  }

  .hero__title-school {
    font-size: 1.25rem;
    line-height: 1.5;
  }
}

/* =====================================
  faq__list
===================================== */
.faq {
  padding: 0 0px 80px;
  scroll-margin-top: 15px;
}

.faq-last {
  padding-bottom: 120px;
}

.faq__list {
  margin-top: 24px;
}

.faq__list-item+.faq__list-item {
  margin-top: 12px;
}

@media screen and (max-width: 767px) {
  .faq {
    padding:0 20px 48px;
  }

  .faq__list {
    margin-top: 16px;
  }

  .faq__list-item+.faq__list-item {
    margin-top: 12px;
  }
}

/* =====================================
  mokuji
===================================== */
.mokuji {
  padding: 92px 0px 80px;
}
.mokuji__list {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin-top: 32px;
}

.mokuji__item {
  width: calc(100% / 3);
}

.mokuji__link {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  min-height: 96px;
  padding: 6px 44px 6px 12px;
  font-size: 1.25rem;/* 20px */
  font-weight: bold;
  text-align: center;
  border-radius: 12px 12px 8px 8px;
  border-bottom: 4px solid var(--color-mono200);
  background: var(--color-mono50);
  box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.12);
  position: relative;
  transition: 0.2s;
}

.mokuji__link::after {
  content: "";
  width: 24px;
  height: 24px;
  background: var(--color-green700) url(/common/img/icon_arrow_right_01.svg) no-repeat top 50% left calc(50% + 1px) / 7.268px auto;
  border-radius: 9999px;
  position: absolute;
  top: 50%;
  right: 12px;
  transform: translateY(-50%) rotate(90deg);
  transition: 0.2s;
}

@media (hover: hover) {
  .mokuji__link:hover {
    border-color: var(--color-green700);
    background-color: #FFFBE6;
  }

  .mokuji__link:hover::after {
    transform: translateY(-50%) rotate(90deg) scale(1.273);
  }
}

@media screen and (max-width: 767px) {
  .mokuji {
    padding: 45px 20px 48px;
  }

  .mokuji__list {
    display: block;
    margin-top: 17px;
  }

  .mokuji__item {
    width: 100%;
  }

  .mokuji__item+.mokuji__item {
    margin-top: 5px;
  }

  .mokuji__link {
    min-height: 72px;
    padding: 6px 44px 6px 20px;
    font-size: 1.125rem;/* 18px */
  }

  .mokuji__link::after {
    width: 20px;
    height: 20px;
    background-size: 6.057px auto;
    right: 20px;
  }
}