@charset "UTF-8";
/*---
全体共通
---*/
html {
  width: 100%;
  box-sizing: border-box;
  font-size: 62.5%;
  /* 16px * 62.5% = 10px */
  font-weight: 400;
}

body {
  color: #333;
  font-family: "Noto Sans JP", sans-serif;
  position: relative;
  overflow-y: scroll;
  overflow-x: hidden;
}

main {
  padding-top: 80px;
}
@media screen and (max-width: 1439px) {
  main {
    padding-top: 60px;
  }
}

p {
  font-size: 1.6rem;
  line-height: 1.7;
}
@media screen and (max-width: 500px) {
  p {
    font-size: 1.4rem;
  }
}

a:hover {
  color: inherit;
  opacity: 0.8;
}

h2,
h3,
h4 {
  font-weight: 600;
  line-height: 1.5;
}

h3 {
  font-size: 3.2rem;
}
@media screen and (max-width: 768px) {
  h3 {
    font-size: 2.8rem;
  }
}
@media screen and (max-width: 500px) {
  h3 {
    font-size: 2.4rem;
  }
}

h4 {
  font-size: 2.8rem;
}
@media screen and (max-width: 768px) {
  h4 {
    font-size: 2.4rem;
  }
}
@media screen and (max-width: 500px) {
  h4 {
    font-size: 2rem;
  }
}

.bg-green {
  background-color: #009352;
}

.text-green {
  color: #009352;
}

.text-white {
  color: #fff;
}

.mb_60 {
  margin-bottom: 60px;
}
@media screen and (max-width: 768px) {
  .mb_60 {
    margin-bottom: 40px;
  }
}
@media screen and (max-width: 500px) {
  .mb_60 {
    margin-bottom: 30px;
  }
}

.mb_40 {
  margin-bottom: 40px;
}
@media screen and (max-width: 500px) {
  .mb_40 {
    margin-bottom: 30px;
  }
}

.mt_40 {
  margin-top: 40px;
}
@media screen and (max-width: 500px) {
  .mt_40 {
    margin-top: 20px;
  }
}

.pb_40 {
  padding-bottom: 40px;
}
@media screen and (max-width: 500px) {
  .pb_40 {
    padding-bottom: 20px;
  }
}

.pt_40 {
  padding-top: 40px;
}
@media screen and (max-width: 500px) {
  .pt_40 {
    padding-top: 20px;
  }
}

.mb_20 {
  margin-bottom: 20px;
}

.section {
  padding: 80px 0;
}
@media screen and (max-width: 768px) {
  .section {
    padding: 60px 0;
  }
}
@media screen and (max-width: 500px) {
  .section {
    padding: 40px 0;
  }
}

.inner {
  max-width: 100%;
  width: 1440px;
  padding: 0 80px;
  margin: auto;
}
@media screen and (max-width: 768px) {
  .inner {
    padding: 0 40px;
  }
}
@media screen and (max-width: 500px) {
  .inner {
    padding: 0 24px;
  }
}

.sec_title {
  margin: auto;
  width: fit-content;
  display: flex;
  margin-bottom: 40px;
  flex-wrap: wrap;
  justify-content: center;
}
.sec_title p {
  font-size: 4.2rem;
  font-weight: 600;
  margin-top: -0.1em;
}
@media screen and (max-width: 1200px) {
  .sec_title p {
    font-size: 3.2rem;
  }
}
@media screen and (max-width: 768px) {
  .sec_title p {
    font-size: 3.2rem;
  }
}
@media screen and (max-width: 500px) {
  .sec_title p {
    font-size: 2.4rem;
  }
}
.sec_title img {
  display: block;
  width: 240px;
  display: inline-block;
  margin-right: 1em;
  object-fit: contain;
}
@media screen and (max-width: 1200px) {
  .sec_title img {
    width: 220px;
  }
}
@media screen and (max-width: 768px) {
  .sec_title img {
    width: 200px;
  }
}
@media screen and (max-width: 500px) {
  .sec_title img {
    width: 140px;
  }
}

.cv-btn {
  width: fit-content;
  margin: auto;
}
.cv-btn p {
  font-size: 2rem;
  font-weight: 600;
}
@media screen and (max-width: 1500px) {
  .cv-btn p {
    font-size: 1.8rem;
  }
}
@media screen and (max-width: 1200px) {
  .cv-btn p {
    font-size: 1.6rem;
  }
}
.cv-btn li {
  display: inline-block;
  border-radius: 100px;
}
.cv-btn li a {
  display: block;
  padding: 10px 2em;
}
@media screen and (max-width: 1439px) {
  .cv-btn li a {
    padding: 6px 2em;
  }
}
@media screen and (max-width: 500px) {
  .cv-btn li a {
    padding: 8px 20px;
  }
}
.cv-btn__download {
  color: #009352;
  border: solid 2px #009352;
  margin-right: 1em;
}
.cv-btn__counseling {
  color: #fff;
  background-color: #009352;
  border: solid 2px #009352;
}

.link-btn {
  width: fit-content;
  padding: 16px 80px;
  background-color: #EFFFDC;
  display: block;
  margin: auto;
  margin-top: 40px;
  border-radius: 100px;
}
@media screen and (max-width: 768px) {
  .link-btn {
    padding: 12px 60px;
  }
}
@media screen and (max-width: 500px) {
  .link-btn {
    padding: 12px 32px;
  }
}
.link-btn p {
  display: inline;
  font-size: 3.2rem;
  font-weight: 600;
}
@media screen and (max-width: 768px) {
  .link-btn p {
    font-size: 2.4rem;
  }
}
@media screen and (max-width: 500px) {
  .link-btn p {
    font-size: 2rem;
  }
}

/*---
header
---*/
.header {
  width: 100%;
  height: 60px;
  position: fixed;
  z-index: 2;
  background-color: #fff;
  display: flex;
}
@media screen and (min-width: 1439px) {
  .header {
    height: 80px;
  }
}
.header .inner {
  padding: 0 20px;
  width: 100%;
}
@media screen and (min-width: 1200px) {
  .header .inner {
    padding: 0 40px;
  }
}
.header button:focus {
  outline: none;
}
.header__logo-sp {
  width: 140px;
}
@media screen and (min-width: 1200px) {
  .header__logo-sp {
    display: none;
  }
}
.header__logo-sp img {
  width: 100%;
}
.header__nav-logo {
  width: 140px;
  margin: 14px 0 3vh;
}
@media screen and (min-width: 1200px) {
  .header__nav-logo {
    width: 170px;
    margin-bottom: 0;
    margin: 0;
  }
}
.header__nav-logo img {
  width: 100%;
}
@media screen and (min-width: 1200px) {
  .header__nav-contents {
    display: flex;
  }
}

/*hamburger*/
.drawer--right.drawer-open .drawer-hamburger {
  right: 1.25em;
}

.drawer-hamburger {
  width: 3rem;
}
@media screen and (min-width: 1200px) {
  .drawer-hamburger {
    display: none;
  }
}

.drawer--right .drawer-hamburger {
  right: 1.25em;
  padding: 20px 0.75rem 28px;
}

/*drawer*/
.drawer-overlay {
  background-color: rgba(0, 0, 0, 0.6);
}

.drawer-nav {
  width: 100%;
  padding: 0 20px;
}
@media screen and (min-width: 1200px) {
  .drawer-nav {
    position: relative;
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
}
.drawer-nav .drawer-menu {
  padding: 32px 1.6em;
}
@media screen and (min-width: 1200px) {
  .drawer-nav .drawer-menu {
    padding: 0;
    margin-right: 2vw;
  }
}
@media screen and (min-width: 1300px) {
  .drawer-nav .drawer-menu {
    margin-right: 4vw;
  }
}
@media screen and (min-width: 1200px) {
  .drawer-nav .drawer-menu li {
    display: inline-block;
    margin-right: 2vw;
  }
  .drawer-nav .drawer-menu li:last-child {
    margin-right: 0;
  }
  .drawer-nav .drawer-menu li p {
    font-size: 1.6rem;
  }
}
@media screen and (min-width: 1200px) and (min-width: 1500px) {
  .drawer-nav .drawer-menu li p {
    font-size: 1.8rem;
  }
}
@media screen and (min-width: 1300px) {
  .drawer-nav .drawer-menu li {
    margin-right: 3vw;
  }
}
@media screen and (min-width: 1500px) {
  .drawer-nav .drawer-menu li {
    margin-right: 4vw;
  }
}
.drawer-nav .drawer-menu__item {
  padding: 2vh 0.75rem;
  text-align: center;
}
@media screen and (min-width: 1200px) {
  .drawer-nav .drawer-menu__item a {
    display: block;
    padding: 10px 16px;
  }
}
@media screen and (min-width: 500px) {
  .drawer-nav .cv-btn {
    display: block;
  }
}
@media screen and (min-width: 1200px) {
  .drawer-nav .cv-btn {
    display: flex;
  }
}
.drawer-nav .cv-btn li {
  display: block;
  text-align: center;
  width: 200px;
  margin: 16px;
}
@media screen and (min-width: 1200px) {
  .drawer-nav .cv-btn li {
    margin: 0;
    width: inherit;
  }
}
@media screen and (min-width: 1200px) {
  .drawer-nav .cv-btn li:first-child {
    margin-right: 16px;
  }
}

.drawer--right .drawer-nav {
  right: -100%;
}
@media screen and (min-width: 1200px) {
  .drawer--right .drawer-nav {
    left: 0;
  }
}

/*---
footer
---*/
.footer {
  padding: 50px 0 20px;
  position: relative;
}
@media screen and (max-width: 1000px) {
  .footer {
    padding: 40px 0 20px;
  }
}
@media screen and (max-width: 500px) {
  .footer {
    padding: 30px 0 60px;
  }
}
.footer::before {
  position: absolute;
  content: "";
  background-color: #333;
  width: calc(100% - 40px);
  height: 1px;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}
.footer__wrapper {
  display: grid;
  grid-template-columns: 3fr 4fr;
  gap: 4%;
  align-items: center;
}
@media screen and (max-width: 1000px) {
  .footer__wrapper {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}
.footer .footer-logo {
  width: 278px;
  display: block;
  margin-bottom: 24px;
}
@media screen and (max-width: 1000px) {
  .footer .footer-logo {
    width: 200px;
  }
}
@media screen and (max-width: 500px) {
  .footer .footer-logo {
    width: 140px;
  }
}
.footer__info {
  font-size: 1.8rem;
}
@media screen and (max-width: 1000px) {
  .footer__info {
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 500px) {
  .footer__info {
    font-size: 1.4rem;
  }
}
.footer__info th {
  padding: 2px 0;
}
.footer__info th.footer__info__title {
  font-weight: 600;
  width: max-content;
  padding-right: 20px;
}
.footer__nav {
  font-size: 1.8rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin-bottom: 20px;
}
@media screen and (max-width: 1000px) {
  .footer__nav {
    font-size: 1.6rem;
  }
}
@media screen and (max-width: 500px) {
  .footer__nav {
    font-size: 1.4rem;
  }
}
.footer__nav__menu {
  margin: 10px 12px;
}
@media screen and (max-width: 500px) {
  .footer__nav__menu {
    margin: 8px;
  }
}
.footer small {
  display: block;
  padding-top: 20px;
}
.footer small p {
  color: #009352;
  text-align: center;
}
@media screen and (max-width: 500px) {
  .footer small p {
    font-size: 1.2rem;
  }
}
@media screen and (max-width: 500px) {
  .footer .cv-btn {
    display: none;
  }
}
.footer .movie-link {
  display: none;
}
@media screen and (max-width: 500px) {
  .footer .movie-link.show {
    z-index: 1;
    background-color: #009352;
    width: 100%;
    bottom: 0;
    display: flex;
    position: fixed;
  }
}
.footer .link-btns {
  display: flex;
  justify-content: space-between;
  align-items: center;
  text-align: center;
  width: 100%;
}
.footer .download-btn,
.footer .counseling-btn {
  width: 50%;
  font-size: 1.6rem;
  text-align: center;
  text-decoration: none;
  border: #fff solid 1px;
  padding: 4px;
}
.footer .download-btn {
  background-color: #fff;
  color: #009352;
  margin: 6px 3px 5px 5px;
}
.footer .counseling-btn {
  background-color: #009352;
  color: #fff;
  margin: 6px 5px 5px 3px;
}

/* fadeUp */
.fadeUp {
  animation-name: fadeUpAnime;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes fadeUpAnime {
  from {
    opacity: 0;
    transform: translateY(100px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/*========= 流れるテキスト ===============*/
/*全共通*/
.slide-in {
  overflow: hidden;
  display: inline-block;
}

.slide-in_inner {
  display: inline-block;
}

/*左右のアニメーション*/
.leftAnime {
  opacity: 0;
}

.slideAnimeLeftRight {
  animation-name: slideTextX100;
  animation-duration: 0.8s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes slideTextX100 {
  from {
    transform: translateX(-100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    /*要素を元の位置に移動*/
    opacity: 1;
  }
}
.slideAnimeRightLeft {
  animation-name: slideTextX-100;
  animation-duration: 0.8s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes slideTextX-100 {
  from {
    transform: translateX(100%);
    /*要素を右の枠外に移動*/
    opacity: 0;
  }
  to {
    transform: translateX(0);
    /*要素を元の位置に移動*/
    opacity: 1;
  }
}
/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
.fadeUpTrigger {
  opacity: 0;
}