body {
  margin: 0;
  padding: 0;
}

/*========================================== 
  0.reset
========================================== */
main div, main span, main object, main iframe, main h1, main h2, main h3, main h4, main h5, main h6, main p, main blockquote, main pre, main abbr, main address, main cite, main code, main del, main dfn, main em, main img, main ins, main kbd, main q, main samp, main small, main strong, main sub, main sup, main var, main b, main i, main dl, main dt, main dd, main ol, main ul, main li, main fieldset, main form, main label, main legend, main table, main caption, main tbody, main tfoot, main thead, main tr, main th, main td, main article, main aside, main canvas, main details, main figcaption, main figure, main footer, main header, main hgroup, main menu, main nav, main section, main summary, main time, main mark, main audio, main video, header div, header span, header object, header iframe, header h1, header h2, header h3, header h4, header h5, header h6, header p, header blockquote, header pre, header abbr, header address, header cite, header code, header del, header dfn, header em, header img, header ins, header kbd, header q, header samp, header small, header strong, header sub, header sup, header var, header b, header i, header dl, header dt, header dd, header ol, header ul, header li, header fieldset, header form, header label, header legend, header table, header caption, header tbody, header tfoot, header thead, header tr, header th, header td, header article, header aside, header canvas, header details, header figcaption, header figure, header footer, header header, header hgroup, header menu, header nav, header section, header summary, header time, header mark, header audio, header video, footer div, footer span, footer object, footer iframe, footer h1, footer h2, footer h3, footer h4, footer h5, footer h6, footer p, footer blockquote, footer pre, footer abbr, footer address, footer cite, footer code, footer del, footer dfn, footer em, footer img, footer ins, footer kbd, footer q, footer samp, footer small, footer strong, footer sub, footer sup, footer var, footer b, footer i, footer dl, footer dt, footer dd, footer ol, footer ul, footer li, footer fieldset, footer form, footer label, footer legend, footer table, footer caption, footer tbody, footer tfoot, footer thead, footer tr, footer th, footer td, footer article, footer aside, footer canvas, footer details, footer figcaption, footer figure, footer footer, footer header, footer hgroup, footer menu, footer nav, footer section, footer summary, footer time, footer mark, footer audio, footer video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
}
main *,
main *::before,
main *::after, header *,
header *::before,
header *::after, footer *,
footer *::before,
footer *::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  font-family: "Noto Sans JP", sans-serif;
  color: #264537;
  font-weight: 500;
  line-height: 1.8;
}
main article, main aside, main details, main figcaption, main figure, main footer, main header, main hgroup, main menu, main nav, main section, main main, header article, header aside, header details, header figcaption, header figure, header footer, header header, header hgroup, header menu, header nav, header section, header main, footer article, footer aside, footer details, footer figcaption, footer figure, footer footer, footer header, footer hgroup, footer menu, footer nav, footer section, footer main {
  display: block;
}
main ul, main li, header ul, header li, footer ul, footer li {
  list-style: none;
}
main blockquote, main q, header blockquote, header q, footer blockquote, footer q {
  quotes: none;
}
main blockquote::before, main blockquote::after, main q::before, main q::after, header blockquote::before, header blockquote::after, header q::before, header q::after, footer blockquote::before, footer blockquote::after, footer q::before, footer q::after {
  content: "";
  content: none;
}
main a, header a, footer a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  background: transparent;
  -webkit-transition: 0.3s;
  transition: 0.3s;
  opacity: 1;
  display: block;
}
main a:hover, header a:hover, footer a:hover {
  opacity: 0.6;
}
main button, header button, footer button {
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
main address, header address, footer address {
  font-style: normal;
}
main ins, header ins, footer ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none;
}
main mark, header mark, footer mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold;
}
main del, header del, footer del {
  text-decoration: line-through;
}
main table, header table, footer table {
  border-collapse: collapse;
  border-spacing: 0;
}
main hr, header hr, footer hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #444;
  margin: 1em 0;
  padding: 0;
}
main input, main select, header input, header select, footer input, footer select {
  vertical-align: middle;
}
main button, header button, footer button {
  margin: 0;
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
main a,
main a:link,
main a:visited, header a,
header a:link,
header a:visited, footer a,
footer a:link,
footer a:visited {
  text-decoration: none;
}
main img, header img, footer img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}
main video, header video, footer video {
  width: 100%;
}

/*========================================== 
  Common (PC)
========================================== */
main .-tb,
main .-sp, header .-tb,
header .-sp, footer .-tb,
footer .-sp {
  display: none !important;
}
main .-pc, header .-pc, footer .-pc {
  display: block !important;
}
main .wrap, header .wrap, footer .wrap {
  max-width: 1510px;
  margin: auto;
  padding: 0 20px;
}
main .content_wrap, header .content_wrap, footer .content_wrap {
  max-width: 1050px;
  margin: auto;
}

main {
  padding-top: 200px;
  overflow: hidden;
}
main .content_wrap {
  max-width: 1050px;
  margin: auto;
}
main .main_heading {
  text-align: center;
  padding: 140px 0 0;
}
main .main_heading h1 {
  font-size: 50px;
  letter-spacing: 0.1em;
}
main .main_heading p {
  font-size: 33px;
  line-height: 2.54;
  margin-top: 35px;
}
main .main_heading figure {
  margin-top: 63px;
}
main .btn {
  text-align: center;
}
main .btn a {
  font-size: 26px;
  color: #fff;
  padding: 12px 40px;
  display: inline-block;
  min-width: 630px;
  background: -ms-linear-gradient(0deg, rgb(0, 104, 55) 0%, rgb(24, 82, 55) 55.46%, rgb(38, 69, 55) 100%);
  -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#006837', endColorstr='#264537' ,GradientType=0)";
  background: -webkit-gradient(linear, left top, right top, from(rgb(0, 104, 55)), color-stop(55.46%, rgb(24, 82, 55)), to(rgb(38, 69, 55)));
  background: linear-gradient(90deg, rgb(0, 104, 55) 0%, rgb(24, 82, 55) 55.46%, rgb(38, 69, 55) 100%);
  border-radius: 24px;
  -moz-border-radius: 24px;
  -webkit-border-radius: 24px;
  -webkit-box-shadow: 0px 10px 5px rgba(51, 51, 51, .3);
          box-shadow: 0px 10px 5px rgba(51, 51, 51, .3);
  filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=0, OffY=10, Color="#333333") progid:DXImageTransform.Microsoft.gradient(startColorstr="#006837",endColorstr="#264537" , GradientType=1);
}

/*========================================== 
  HEADER (PC)
========================================== */
header {
  background: #fff;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
}
header .nav {
  width: 100%;
}
header .wrap {
  width: 100%;
}
header .header_heading {
  height: 130px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
header .header_heading_inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
header .header_heading_inner .logo {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  text-align: left;
  font-size: 46px;
  line-height: 1;
}
header .header_heading_inner .logo span {
  font-size: 38px;
}
header .header_heading_inner .header_txt {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  font-size: 22px;
  padding: 16px 35px 0;
}
header .nav_body {
  background: #264537;
  width: 100%;
  height: 70px;
}
header .nav_body .wrap {
  height: 100%;
  padding-right: 30px;
}
header .nav_body ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  height: 100%;
}
header .nav_body li {
  margin: 0 2%;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
header .nav_body a {
  font-size: 19px;
  color: #fff;
}
header .nav_body a.active {
  color: #8CC63F;
}
header .openbtn {
  display: none !important;
}
/*========================================== 
  FOOTER (PC)
========================================== */
footer {
  background: #EBF1EB;
}
footer .footer_nav {
  padding: 158px 0 204px;
}
footer .footer_nav ul {
  -webkit-column-count: 2;
     -moz-column-count: 2;
          column-count: 2;
  max-width: 1240px;
}
footer .footer_nav li {
  width: 100%;
  margin-bottom: 64px;
}
footer .footer_nav li a {
  font-size: 22px;
}
footer .copyright {
  background: #fff;
  font-size: 25px;
  text-align: center;
  padding: 60px 0px 80px;
}
@media screen and (min-width: 768px) and (max-width: 1280px) {
  header .header_heading_inner {
    display: block;
    text-align: center;
  }
  header .header_heading_inner .logo {
    text-align: center;
  }
  header .header_heading_inner .header_txt {
    font-size: 18px;
    padding: 0;
  }
  header .nav_body .wrap {
    padding: 0 20px;
  }
  header .nav_body li {
    margin: 0 0;
  }
}
@media screen and (min-width: 768px) and (max-width: 980px) {
  header .nav_body a {
    font-size: 15px;
  }
}
@media screen and (max-width: 767px) {
  /*========================================== 
    Common (SP)
  ========================================== */
  main .-pc,
  main .-tb, header .-pc,
  header .-tb, footer .-pc,
  footer .-tb {
    display: none !important;
  }
  main .-sp, header .-sp, footer .-sp {
    display: block !important;
  }
  main .wrap, header .wrap, footer .wrap {
    max-width: 80.9333333333vw;
    padding: 0;
  }
  main {
    padding-top: 31.2vw;
  }
  main .main_heading {
    background: red;
    height: 95.0666666667vw;
    padding: 0;
    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;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding-bottom: 5.0666666667vw;
  }
  main .main_heading .wrap {
    max-width: 93.3333333333vw;
  }
  main .main_heading h1 {
    font-size: 5.8666666667vw;
  }
  main .main_heading p {
    font-size: 4.4vw;
    line-height: 1.9393939394;
    margin-top: 5.3333333333vw;
  }
  main .btn a {
    font-size: 3.4666666667vw;
    padding: 1.6vw 5.3333333333vw;
    min-width: auto;
    width: 100%;
  }
  /*========================================== 
    HEADER (PC)
  ========================================== */
  header .nav {
    padding: 0;
    height: auto;
  }
  header .header_heading {
    height: 31.2vw;
    text-align: center;
  }
  header .header_heading_inner {
    display: block;
    padding: 4.6666666667vw 0;
  }
  header .header_heading_inner .logo {
    display: inline-block;
    text-align: center;
    font-size: 6.8vw;
  }
  header .header_heading_inner .logo span {
    font-size: 5.6vw;
  }
  header .header_heading_inner .header_txt {
    text-align: center;
    font-size: 2.9333333333vw;
    padding: 0;
    margin-top: 1.3333333333vw;
  }
  header .nav_body {
    display: block;
    opacity: 0;
    visibility: hidden;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
    position: absolute;
    overflow-y: scroll;
    top: 100%;
    left: 0;
    width: 100%;
    height: 100vh;
    padding: 10.4vw 0 5vh;
  }
  header .nav_body .wrap {
    padding: 0;
    height: 100vh;
  }
  header .nav_body ul {
    height: auto;
    display: block;
    margin-bottom: 20vh;
  }
  header .nav_body a {
    font-size: 5.3333333333vw;
    padding: 2.6666666667vw 0;
    width: 100%;
  }
  header .nav_body a.active {
    color: #fff;
  }
  header .nav_body.open {
    opacity: 1;
    visibility: inherit;
  }
  header .openbtn {
    display: block !important;
    position: absolute;
    top: 8.8vw;
    left: 7.0666666667vw;
    width: 4.9333333333vw;
    height: 4.9333333333vw;
    z-index: 10;
  }
  header .openbtn span {
    display: inline-block;
    -webkit-transition: all 0.4s;
    transition: all 0.4s;
    position: absolute;
    left: 50%;
    height: 0.5333333333vw;
    background: #264537;
    width: 100%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
  header .openbtn span:nth-of-type(1) {
    top: 0;
  }
  header .openbtn span:nth-of-type(2) {
    top: 2.2666666667vw;
  }
  header .openbtn span:nth-of-type(3) {
    bottom: 0;
  }
  header .openbtn.active span:nth-of-type(1) {
    top: 50%;
    -webkit-transform: translateX(-50%) rotate(-50deg);
            transform: translateX(-50%) rotate(-50deg);
    width: 100%;
  }
  header .openbtn.active span:nth-of-type(2) {
    opacity: 0;
  }
  header .openbtn.active span:nth-of-type(3) {
    top: 50%;
    -webkit-transform: translateX(-50%) rotate(50deg);
            transform: translateX(-50%) rotate(50deg);
    width: 100%;
  }
  /*========================================== 
    FOOTER (PC)
  ========================================== */
  footer .wrap {
    max-width: 100%;
    padding: 0 17.3333333333vw;
  }
  footer .footer_nav {
    padding: 11.3333333333vw 0 8.6666666667vw;
  }
  footer .footer_nav ul {
    -webkit-column-count: 1;
       -moz-column-count: 1;
            column-count: 1;
  }
  footer .footer_nav li {
    width: 100%;
    margin-bottom: 7.4666666667vw;
  }
  footer .footer_nav li a {
    font-size: 4vw;
  }
  footer .copyright {
    font-size: 3.3333333333vw;
    padding: 5.3333333333vw 0 8vw;
  }
  html, body {
    overflow-x: hidden;
  }
  .js-hidden {
    overflow: hidden;
    width: 100%;
    position: fixed;
  }
  .js-hidden body {
    overflow: hidden;
    width: 100%;
    position: fixed;
  }
}