@charset "UTF-8";
@font-face {
  font-family: 'themify';
  src: url("../fonts/themify/themify.eot?-fvbane");
  src: url("../fonts/themify/themify.eot?#iefix-fvbane") format("embedded-opentype"), url("../fonts/themify/themify.woff?-fvbane") format("woff"), url("../fonts/themify/themify.ttf?-fvbane") format("truetype"), url("../fonts/themify/themify.svg?-fvbane#themify") format("svg");
  font-weight: normal;
  font-style: normal;
}

/* ===================================================================== */
/* reset * /
/* ===================================================================== */
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, dialog, figure, footer, header,
hgroup, menu, nav, section,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

/* ===================================================================== */
/*  * /
/* ===================================================================== */
html {
  font-size: 62.5%;
  height: 100%;
}

body {
  color: #333;
  font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Helvetica,
  '游ゴシック Medium', 'Yu Gothic Medium', '游ゴシック','Yu Gothic',
  'Hiragino Kaku Gothic ProN','メイリオ', arial, Meiryo,
  'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
  -webkit-font-feature-settings: "pkna";
  font-feature-settings: "pkna";
  height: 100%;
  letter-spacing: .1rem;
  line-height: 1.8;
  width: 100%;
}

section {
  padding-bottom: 6rem;
  background: #fff;
}

img {
  display: block;
  max-width: 100%;
  max-height: 100%;
}

.wrapper {
  width: 100%;
}

.container {
  height: 100%;
  padding: 0;
  margin: 0 auto;
}

/* safari */
_::-webkit-full-page-media, _:future, :root .container::before,
.container::after {
  display: block;
}

/* ===================================================================== */
/* general * /
/* ===================================================================== */
a {
  -webkit-transition: all 0.2s ease;
  -moz-transition: all 0.2s ease;
  -ms-transition: all 0.2s ease;
  -o-transition: all 0.2s ease;
  transition: all 0.2s ease;
  color: #00ad5d;
  cursor: pointer;
}

a:hover,
a:focus,
a:active {
  outline: none;
  color: #fabe00;
  text-decoration: none;
}

input {
  -webkit-transition: all 0.5s ease;
  -moz-transition: all 0.5s ease;
  -ms-transition: all 0.5s ease;
  -o-transition: all 0.5s ease;
  transition: all 0.5s ease;
}

input[type="text"],
input[type="password"],
input[type="email"],
input[type="search"],
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

::-webkit-selection {
  color: #fff;
  background: #ddd;
}

::-moz-selection {
  color: #fff;
  background: #ddd;
}

::selection {
  color: #fff;
  background: #ddd;
}

/* ===================================================================== */
/* header */
/* ===================================================================== */
.header-wrap {
  position: relative;
}

#header {
  background: rgba(255, 255, 255, .9);
  height: 60px;
  position: fixed;
  width: 100%;
  z-index: 9000;
}

#global-nav {
  width: 100%;
  height: 100%;
}

#header-menu {
  list-style-type: none;
  -webkit-align-items: center;
  align-items: center;
  height: 60px;
}

#header-menu li a {
  color: #333;
  display: block;
  font-size: 1.4rem;
  letter-spacing: .08rem;
  padding: 1rem 1rem 1.2rem;
  position: relative;
  white-space: nowrap;
}
#header-menu li a::before {
  font-family: "FontAwesome";
  content: "\f105";
  margin-right: .2rem;
}
#header-menu li a:hover {
  color: #00ad5d;
  border-bottom: none;
}
#header-menu li a:hover::after {
  content: "";
  width: 2rem;
  height: 3px;
  background: #00ad5d;
  position: absolute;
  bottom: .5rem;
  left: 0;
  right: 0;
  margin: auto;
}

#header-menu .header-logo {
  display: table;
  height: 100%;
  margin-right: auto;
  min-height: 60px;
  text-align: center;
  width: auto;  
}

#header-menu .header-logo a {
  background: transparent;
  color: #fff;
  display: table-cell;
  font-size: 1.5rem;
  font-weight: 500;
  padding: 0 1rem;
  vertical-align: middle;
}

#header-menu .header-logo a img {
  width: 180px;
}

/* safari */
_::-webkit-full-page-media,
_:future,
:root #header-menu .header-logo a {
  padding-right: 2rem;
}

#header-menu .header-logo a::before {
  content: "";
  margin-right: 0;
}
#header-menu .header-logo a:hover {
  color: #fff;
  background: #00ad5d;
  border-bottom: none;
}
#header-menu .header-logo a:hover::after {
  width: 0;
  height: 0;
}

#header-menu li:not(.header-logo):not(.header-home):not(.header-case) a.current {
  color: #fabe00;
  border-bottom: none;
}
#header-menu li:not(.header-logo):not(.header-home):not(.header-case) a.current:hover {
  color: #00ad5d;
  border-bottom: none;
}
#home #header-menu li.header-home a.current {
  color: #fabe00;
  border-bottom: none;
}

/* ===================================================================== */
/* drawer menu */
/* ===================================================================== */
#drawer-header {
  position: relative;
  z-index: 9999;
}

#drawer-header .drawer-hamburger {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  padding-top: 18px;
  width: 2.4rem;
}

#drawer-header .drawer-hamburger-icon,
#drawer-header .drawer-hamburger-icon::before,
#drawer-header .drawer-hamburger-icon::after {
  background-color: #00ad5d;
  height: 2px;
}

.drawer-open #drawer-header .drawer-hamburger-icon {
  background-color: transparent;
}

#drawer-header .drawer-nav {
  background-color: #00ad5d;
  display: -webkit-flex;
  -webkit-justify-content: flex-start;
  -webkit-flex-flow: column nowrap;
  display: flex;
  justify-content: flex-start;
  flex-flow: column nowrap;
}

#drawer-header .drawer-menu {
  padding: 2rem 1rem;
}

#drawer-header .drawer-menu li {
  border-bottom: 1px solid rgba(255, 255, 255, .1);
}

#drawer-header .drawer-menu li a {
  display: block;
  color: #fff;
  font-size: 1.6rem;
  padding: .5rem;
}
#drawer-header .drawer-menu li a::before {
  font-family: "FontAwesome";
  content: "\f105";
  margin-right: .2rem;
}

#drawer-header .drawer-menu li a:hover {
  border-bottom: none;
}

.drawer-overlay {
  z-index: 9000;
  background-color: rgba(255, 255, 255, .7);
}

@media only screen and (min-width: 1121px) {
  #drawer-header {
    display: none;
  }
}

@media only screen and (max-width: 1120px) {
  #header-menu li:not(.header-logo) {
    display: none;
  }
}

/* ===================================================================== */
/* footer * /
/* ===================================================================== */
#footer {
  background: #000;
  padding-top: 3rem;
  position: relative;
}

#footer .up-down {
  top: -2rem;
  bottom: auto;
}

#footer-menu {
  list-style-type: none;
  padding: 2rem 0;
  -webkit-flex-flow: row wrap;
  flex-flow: row wrap;
}

#footer-menu li a {
  color: #fff;
  display: block;
  font-size: 1.6rem;
  padding: 1rem;
}

#footer-menu li a::before {
  font-family: "FontAwesome";
  content: "\f105";
  margin-right: .2rem;
}

#footer-menu li a:hover {
  color: #00ad5d;
  border-bottom: none;
}

#footer-menu li a:hover::after {
  content: "";
  width: 2rem;
  height: 3px;
  background: #00ad5d;
  position: absolute;
  bottom: .5rem;
  left: 0;
  right: 0;
  margin: auto;
}

#footer .copyright {
  background: #00ad5d;
  color: #fff;
  font-size: 1.2rem;
  padding: 1rem 0;
  text-align: center;
}

#footer .copyright a {
  color: #fff;
  border-bottom: none;
}
#footer .copyright a:hover {
  color: rgba(255, 255, 255, .8);
  text-decoration: underline;
  border-bottom: none;
}

@media only screen and (max-width: 480px) {
  #footer-menu {
    display: inline-block;
    width: 100%;
  }
}

/* ===================================================================== */
/* media, news */
/* ===================================================================== */
.media-point,
.news-point {
  border-bottom: 1px solid #ccc;
  border-top: 1px solid #ccc;
  list-style-type: none;
}
.media-point li,
.news-point li {
  border-bottom: 1px solid #ccc;
  display: flex;
  overflow: hidden;
  padding: 1rem 0;
  position: relative;
  width: 100%;
}
.media-point li:last-child,
.news-point li:last-child {
  border-bottom: none;
}
.media-point li p,
.news-point li p {
  font-size: 1.4rem;
}
.media-point li p span.media-title,
.news-point li p span.news-title {
  display: block;
  font-size: 1.6rem;
  font-weight: bold;
  margin-bottom: 1rem;
}
.media-point li p span.media-date,
.news-point li p span.news-date {
  color: #999;
  display: block;
  font-size: 1.2rem;
  font-weight: normal;
  margin-bottom: .5rem;
}
.media-point li img,
.news-point li img {
  opacity: 1;
  -webkit-transition: .3s ease-in-out;
  transition: .3s ease-in-out;
}

.media-point li .img-box {
  flex-shrink: 0;
  width: 222px;
}
.media-point li p {
  margin-left: 2rem;
}

.news-point {
  margin-bottom: 2rem;
}

@media only screen and (max-width: 1024px) {
  .media-point li {
    flex-direction: column;
  }
  
  .media-point li .img-box {
    margin: 0 auto;
    max-width: 420px;
    width: 100%;
  }

  .media-point li p {
    margin-left: 0;
  }
}

/* ===================================================================== */
/* sub page * /
/* ===================================================================== */
#sub-header {
  width: 100%;
  height: 30vh;
  min-height: 280px;
  max-height: 320px;
  position: relative;
}
#sub-header::before,
#sub-header::after {
  content: "";
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: -1;
}
#sub-header::after {
  background: rgba(9, 116, 67, .8);
}

.sub-title {
  color: #fff;
  font-size: 2.4rem;
  text-align: center;
  position: absolute;
  top: 52%;
  left: 0;
  right: 0;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  margin: auto;
}

.sub-title h1 {
  line-height: 1.25;
}
.sub-title h1 span {
  font-size: 1.8rem;
}

@media only screen and (max-width: 1024px) {
  .sub-title h1 {
    margin: 0 1rem;
  }
}

/* ===================================================================== */
/* button */
/* ===================================================================== */
.button {
  text-align: center;
}

.button_body {
  background-color: #000;
  border-radius: 5rem;
  color: #fff;
  display: inline-block;
  font-size: 1.6rem;
  font-weight: bold;
  padding: 1rem 2rem;
  -webkit-transition: all 0.2s ease;
  -moz-transition: all 0.2s ease;
  -ms-transition: all 0.2s ease;
  -o-transition: all 0.2s ease;
  transition: all 0.2s ease;
}

a:hover .button_body {
  background-color: #fabe00;
}

.button-disable .button_body {
  background-color: #666;
}

/* ===================================================================== */
/* card * /
/* ===================================================================== */
.cards .cards_row {
  display: flex;
  margin: 0 0 2.5rem;
}
.cards .cards_row:last-child {
  margin: 0;
}

.cards_row_card {
  background: #ffffff;
  border-radius: .5rem;
  box-shadow: 0 0.125em 0.125em 0 rgb(0 0 0 / 13%);
  display: block;
  margin: 0 2.5rem;
  overflow: hidden;
  padding: 3rem;
  width: 100%;
}

.cards_row_card .figure {
  margin: 0 0 2rem;
}

.cards_row_card .h3 {
  margin: 0 0 2rem;
}

.cards_row_card .button {
  margin-top: 2rem;
}

@media only screen and (max-width: 834px) {
  .cards {
    margin: 0 1rem;
  }
  
  .cards .cards_row {
    flex-direction: column;
  }
  
  .cards_row_card {
    margin: 0 0 2rem;
  }
  .cards_row_card:last-child {
    margin: 0;
  }
}

/* ===================================================================== */
/* color */
/* ===================================================================== */
.bc-gray {
  background-color: #ebebeb;
}

.c_black {
  color: #333333;
}

.c_white {
  color: #ffffff;
}

/* ===================================================================== */
/* font * /
/* ===================================================================== */
.ff_noto-sans {
  font-family: 'Noto Sans JP', sans-serif;
}

/* ===================================================================== */
/* effect * /
/* ===================================================================== */
.effectIn1 {
  -moz-transition: 1.2s;
  -webkit-transition: 1.2s;
  -o-transition: 1.2s;
  -ms-transition: 1.2s;
  transition: 1.2s;
  opacity: 0;
  -moz-transition: translate(0, 30px);
  -webkit-transition: translate(0, 30px);
  -o-transition: translate(0, 30px);
  -ms-transition: translate(0, 30px);
  transform: translate(0, 30px);
}
.effectOut1 {
  -moz-transition: 1.2s;
  -webkit-transition: 1.2s;
  -o-transition: 1.2s;
  -ms-transition: 1.2s;
  transition: 1.2s;
  opacity: 1.0;
  -moz-transition: translate(0, 0px);
  -webkit-transition: translate(0, 0px);
  -o-transition: translate(0, 0px);
  -ms-transition: translate(0, 0px);
  transform: translate(0, 0px);
}

.effectIn2 {
  -moz-transition: 1.2s;
  -webkit-transition: 1.2s;
  -o-transition: 1.2s;
  -ms-transition: 1.2s;
  transition: 1.2s;
  opacity: 0;
  -moz-transition: translate(-30px, 0);
  -webkit-transition: translate(-30px, 0);
  -o-transition: translate(-30px, 0);
  -ms-transition: translate(-30px, 0);
  transform: translate(-30px, 0);
}
.effectOut2 {
  -moz-transition: 1.2s;
  -webkit-transition: 1.2s;
  -o-transition: 1.2s;
  -ms-transition: 1.2s;
  transition: 1.2s;
  opacity: 1.0;
  -moz-transition: translate(0, 0px);
  -webkit-transition: translate(0, 0px);
  -o-transition: translate(0, 0px);
  -ms-transition: translate(0, 0px);
  transform: translate(0, 0px);
}

.animate-01 {
  opacity: 0;
}

.animate-02 {
  -moz-transition: 1.2s;
  -webkit-transition: 1.2s;
  -o-transition: 1.2s;
  -ms-transition: 1.2s;
  transition: 1.2s;
  opacity: 0;
  -moz-transition: translate(-30px, 0);
  -webkit-transition: translate(-30px, 0);
  -o-transition: translate(-30px, 0);
  -ms-transition: translate(-30px, 0);
  transform: translate(-30px, 0);
}
.animate-02_off {
  -moz-transition: 1.2s;
  -webkit-transition: 1.2s;
  -o-transition: 1.2s;
  -ms-transition: 1.2s;
  transition: 1.2s;
  opacity: 1.0;
  -moz-transition: translate(0, 0px);
  -webkit-transition: translate(0, 0px);
  -o-transition: translate(0, 0px);
  -ms-transition: translate(0, 0px);
  transform: translate(0, 0px);
}

/* ===================================================================== */
/* layout */
/* ===================================================================== */
.narrow-content {
  margin: 0 auto;
  padding: 0 1rem;
  max-width: 768px;
  width: 100%;
}

.section {
  border-bottom: 1px solid #ccc;
  margin: 0 0 4rem;
  padding: 0 0 4rem;
}
.section:last-child {
  border-bottom: none;
  margin: 0;
  padding: 0;
}

.article {
  margin: 0 0 2rem;
}
.article:last-child {
  margin: 0;
}

.figure img {
  border-radius: .5rem;
  margin: 0 auto;
  width: 100%;
}

.figure figcaption {
  color: #777;
  font-size: 1.2rem;
}

.layout_image-text {
  display: flex;
}
.layout_image-text .figure {
  margin: 0 1rem 0 0;
}
.layout_image-text .figure img {
  max-width: 96px;
}

.ta_center {
  text-align: center;
}

.mb_00 {
  margin-bottom: 0!important;
}
.mt_05 {
  margin-top: .5rem;
}
.mt_10 {
  margin-top: 1rem;
}

@media only screen and (max-width: 1024px) {
  .container {
    width: 100%;
  }
}

/* ===================================================================== */
/* list */
/* ===================================================================== */
.list {
  list-style-position: inside;
}

.list li {
  margin: 0 0 .5rem 2.2rem;
  text-indent: -2.2rem;
}
.list li:last-child {
  margin: 0 0 0 2.2rem;
}

.list-note {
  font-size: 1.4rem;
  list-style-type: none;
}
.list-note li {
  margin-right: 1.2rem;
  text-indent: -1.2rem;
}
.list-note li:last-child {
  margin-right: 1.2rem;
}
.list-note li::before {
  content: '*'
}

.lst_none {
  list-style-type: none;
}

.image-list {
  display: flex;
  flex-wrap: wrap;
  list-style-type: none;
  margin: -1rem;
}

.image-list li {
  margin: 1rem;
}

.image-list li a figure {
  margin: 0;
}

.image-list li a figure img {
  border-radius: .5rem;
  height: 160px;
  object-fit: cover;
  width: 160px;
  -webkit-transition: all 0.2s ease;
  -moz-transition: all 0.2s ease;
  -ms-transition: all 0.2s ease;
  -o-transition: all 0.2s ease;
  transition: all 0.2s ease;
}
.image-list li a:hover figure img {
  opacity: .7;
}

.image-list li a figure figcaption {
  color: inherit;
  margin: .5rem 0 0;
}
.image-list li a figure figcaption::before {
  content: '▲';
}

/* ===================================================================== */
/* typography */
/* ===================================================================== */
.fs_small {
  font-size: 1.4rem;
  line-height: 1.4;
}

.fw_bold {
  font-weight: bold;
}

/* ===================================================================== */
/* title * /
/* ===================================================================== */
.title-1 {
  color: #fff;
  font-size: 2.5rem;
  font-weight: bold;
  text-align: center;
  padding: 1.5rem 1rem 2rem;
  margin-bottom: 6rem;
  background: #000;
  position: relative;
}
.title-1::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  margin: auto;
  width: 0;
  height: 0;
  bottom: -28px;
  border-style: solid;
  border-width: 30px 30px 0 30px;
  border-color: #000 transparent transparent transparent;
}

.title-2 {
  color: #00ad5d;
  font-weight: bold;
  margin: 0 -0.5rem 3rem;
  text-align: center;
}

.title-1 span,
.title-2 span {
  display: block;
  font-size: 1.8rem;
  font-weight: normal;
}

.title-1 h2,
.title-2 h2 {
  font-size: 5rem;
  font-weight: bold;
  line-height: 1.3;
}

.title-2 p {
  color: #414042;
  font-size: 1.35rem;
}
.title-2 p span {
  color: #00ad5d;
  font-size: 1.2em;
  border-bottom: 2px solid #00ad5d;
}

.title-1,
.title-2 {
  font-family: 'Noto Sans JP', sans-serif;
  -webkit-font-feature-settings: "palt";
  font-feature-settings: "palt";
}

@media only screen and (max-width: 1024px) {
  .title-1 h2,
  .title-2 h2 {
    font-size: 3rem;
  }
  
  .title-1 span,
  .title-2 span {
    font-size: 1.4rem;
  }
}

/* ===================================================================== */
/* typography */
/* ===================================================================== */
.h3 {
  font-size: 2rem;
  font-weight: bold;
  line-height: 1.5;
}
.h3_sub {
  display: block;
  font-size: 1.4rem;
  font-weight: normal;
  margin-bottom: 1rem;
}

.lead-text {
  font-size: 1.6rem;
  line-height: 1.8;
}

.lead-text p {
  margin-bottom: 2rem;
}
.lead-text p:last-child {
  margin-bottom: 0;
}

.link-no-change-color,
.link-no-change-color:hover {
  color: #333;
}

.link-target-blank-icon::after {
  content: "\f08e";
  font-family: "FontAwesome";
  margin: 0;
}

.note {
  color: #777;
  font-size: 1.2rem;
}

/* ===================================================================== */
/* up down * /
/* ===================================================================== */
.up-down {
  display: table;
  width: 4rem;
  height: 4rem;
  background: #00ad5d;
  border-radius: 50%;
  position: absolute;
  bottom: -2rem;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  z-index: 1000;
}

.up-down a {
  display: table-cell;
  vertical-align: middle;
  color: #fff;
  text-align: center;
  font-size: 1.5rem;
  line-height: 0;
  letter-spacing: 0;
  border-bottom: none;
}

.up-down a:hover {
  border-bottom: none;
  padding-top: .5rem;
}

#footer .up-down a:hover {
  padding-top: 0;
  padding-bottom: .5rem;
}

/* ===================================================================== */
/* common */
/* ===================================================================== */
.object-fit {
  object-fit: cover;
  font-family: 'object-fit: cover;'; /*IE対策*/
}

.flex-L {
  display: -webkit-flex;
  -webkit-justify-content: flex-start;
  -webkit-flex-flow: row nowrap;
  display: flex;
  justify-content: flex-start;
  flex-flow: row nowrap;
}

.flex-C {
  display: -webkit-flex;
  -webkit-justify-content: center;
  -webkit-flex-flow: row nowrap;
  display: flex;
  justify-content: center;
  flex-flow: row nowrap;
}

@media screen and (max-width: 1024px) {
  .tablet-only_d-block {
    display: block;
  }
}