/********************************
 general
********************************/
body.hidden {
  overflow: hidden;
}
.noto-sans-jp {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
}
.roboto {
  font-family: "Roboto", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: italic;
}
/*******************************
 header
*******************************/
header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 99;
  background: #002002;
  width: 100%;
  padding-top: 15px;
  padding-bottom: 15px;
}
header .flex-space-between {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
header .flex {
  display: flex;
  align-items: center;
}
header h1 img {
  width: 300px;
}
header .flex .sns img {
  width: 72px;
}
header .header_link {
  margin-left: 50px;
  margin-right: 50px;
  width: 200px;
}
header .header_link .guide_link {
  border: 2px solid #02b701;
  border-radius: 5px;
  margin-bottom: 10px;
  text-align: center;
}
header .header_link .guide_link a {
  color: #02b701;
  font-size: 12px;
  text-decoration: none;
  display: inline-block;
  width: 100%;
  padding-top: 2px;
  padding-bottom: 5px;
}
header .header_link .entry_link {
  background: #b9db59;
  border-radius: 5px;
  text-align: center;
}
header .header_link .entry_link a {
  color: #003124;
  font-size: 12px;
  text-decoration: none;
  display: inline-block;
  width: 100%;
  padding-top: 2px;
  padding-bottom: 5px;
}
header .bugger {
  width: 60px;
  height: 70px;
}
header .bugger span {
  width: 100%;
  height: 10px;
  background: #02b701;
  display: block;
  transition: 0.2s all;
}
header .bugger.active span {
  transition: 0.2s all;
}
header .bugger span:nth-of-type(2) {
  transform: translate(0, 20px);
}
header .bugger span:nth-of-type(3) {
  transform: translate(0, 40px);
}
header .bugger.active span:nth-of-type(1) {
  transform: translate(-16px, 30px) rotate(-45deg);
  width: 92px;
}
header .bugger.active span:nth-of-type(2) {
  opacity: 0;
}
header .bugger.active span:nth-of-type(3) {
  width: 92px;
  transform: translate(-16px, 10px) rotate(45deg);
}
@media (max-width: 991px) {
  header .header_link {
    display: none;
  }
  header .flex .sns {
    display: none;
  }
}
@media (max-width: 640px) {
  header h1 img {
    width: 260px;
  }
}
/*****************************
 fixed_menu
******************************/
.fixed_menu {
  width: 100%;
  height: 100vh;
  position: fixed;
  top: 0;
  right: -9999px;
  z-index: 98;
  background: #003124;
  transition: 0.2s all;
  overflow: auto;
}
.fixed_menu.active {
  right: 0;
  transition: 0.2s all;
}
.fixed_menu .fixed_menu-wrap {
  position: relative;
  z-index: 98;
  width: 100%;
  height: 100%;
}
.fixed_menu .menu-box {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 98;
}
.fixed_menu .menu-title {
  color: #00b800;
  font-size: 14px;
  margin-bottom: 10px;
}
.fixed_menu .col-lg-4 > .box > ul {
  margin-bottom: 0;
  padding-left: 0;
  list-style: none;
}
.fixed_menu .col-lg-4 > .box > ul > li > a {
  color: #fff;
  text-align: center;
  font-size: 16px;
  text-decoration: none;
}
.fixed_menu .mb {
  margin-bottom: 50px;
}
.fixed_menu .sub-menu {
  color: #fff;
  padding-left: 15px;
  margin-bottom: 0;
}
.fixed_menu .sub-menu a {
  color: #fff;
  text-decoration: none;
}
.fixed_menu .sp {
  display: none;
}
@media (max-width: 991px) {
  .fixed_menu .mmb {
    margin-bottom: 50px;
  }
  .fixed_menu .sp {
    display: block;
    margin-top: 50px;
  }
  .fixed_menu .flex {
    display: flex;
  }
  .fixed_menu .sp .menu_link {
    margin-left: 50px;
    margin-right: 50px;
    width: 200px;
  }
  .fixed_menu .sp .menu_guide_link {
    border: 2px solid #02b701;
    border-radius: 5px;
    padding-top: 2px;
    padding-bottom: 2px;
    margin-bottom: 10px;
    text-align: center;
  }
  .fixed_menu .menu_link .menu_guide_link a {
    color: #02b701;
    font-size: 12px;
    text-decoration: none;
  }
  .fixed_menu .menu_link .menu_entry_link {
    background: #b9db59;
    border-radius: 5px;
    padding-top: 2px;
    padding-bottom: 2px;
    text-align: center;
  }
  .fixed_menu .menu_link .menu_entry_link a {
    color: #003124;
    font-size: 12px;
    text-decoration: none;
  }
  .fixed_menu .sns img {
    width: 60px;
  }
}
@media (max-width: 767px) {
  .fixed_menu .fixed_menu-wrap {
    margin-top: 150px;
    margin-bottom: 100px;
  }
  .fixed_menu .smb {
    margin-bottom: 50px;
  }
}
/****************************
 sp-fixed
*****************************/
.sp-fixed {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 97;
  display: none;
  background: #59b332;
  padding-top: 15px;
  padding-bottom: 15px;
}
@media (max-width: 991px) {
  .sp-fixed {
    display: block;
  }
  .sp-flex {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .sp-link a {
    display: inline-block;
    width: 300px;
    padding-top: 15px;
    padding-bottom: 15px;
    border-radius: 5px;
    text-decoration: none;
    text-align: center;
    font-weight: bold;
  }
  .sp-link.bg-darkgreen a {
    color: #02b701;
    background: #003124;
  }
  .sp-link.bg-lightgreen a {
    color: #002002;
    background: #bbdb59;
  }
  .sns img {
    width: 54px;
  }
}
@media (max-width: 767px) {
  .sp-link a {
    width: 215px;
  }
}
@media (max-width: 520px) {
  .sp-link a {
    width: 170px;
    font-size: 12px;
  }
}
@media (max-width: 450px) {
  .sp-link a {
    width: 150px;
    font-size: 12px;
  }
}
@media (max-width: 410px) {
  .sp-link a {
    width: 140px;
    font-size: 12px;
  }
}
/*****************************
 footer
*****************************/
footer {
  background: #002002;
  padding-top: 50px;
  padding-bottom: 100px;
}
footer h2 {
  margin-bottom: 0;
}
footer h2 img {
  width: 300px;
}
footer .flex {
  display: flex;
  flex-wrap: wrap;
}
footer .align-items-end {
  align-items: end;
}
footer .space-between {
  justify-content: space-between;
}
footer .mrl {
  margin-left: 50px;
  margin-right: 50px;
}
footer .mr {
  margin-right: 50px;
}
footer a {
  color: #fff;
  text-decoration: none;
}
footer .copyright {
  color: #fff;
}
@media (max-width: 1199px) {
  footer .mrl {
    margin-left: 15px;
    margin-right: 15px;
  }
  footer .mr {
    margin-right: 15px;
  }
}
@media (max-width: 991px) {
  footer h2 {
    text-align: center;
    margin-bottom: 50px;
  }
  footer .footer_cnt {
    text-align: center;
  }
  footer .footer_cnt > div > div {
    margin-bottom: 30px;
  }
  footer .flex {
    display: block;
  }
  footer .mrl {
    margin-left: 0px;
    margin-right: 0px;
  }
  footer .mr {
    margin-right: 0px;
  }
}
