@charset "UTF-8";

/*=============================================
 * body
 *=============================================*/
body {
   background-color: #fff;
   color: #161616;
   font-family: "Hiragino Sans", "ヒラギノ角ゴ", 'Noto Sans JP', sans-serif;
   font-weight: 400;
   font-size: 18px;
   line-height: 30px;
   letter-spacing: 0;
   min-width: inherit;
   min-height: inherit;
   max-height: 100%;
   position: relative;
}

@media screen and (max-width: 767px) {
   body {
      font-size: 16px;
   }
}

/*=============================================
 * fonts
 *=============================================*/
.fnt-mincho {
   font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "メイリオ", Meiryo, "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}

.fnt-meiryo {
   font-family: "メイリオ", Meiryo, "ヒラギノ角ゴシックPro", "ＭＳ ゴシック", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}

.fnt-gothic {
   font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
}

/*=============================================
 * <main>
 *=============================================*/
main {
   clear: both;
   width: 100%;
   box-sizing: border-box;
   position: relative;
}

/*=============================================
 * <header>
 *=============================================*/
/* -- -- */
header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    width: 100%;
    background-color: #fff;
    color: #161616;
    box-sizing: border-box;
    position: relative;
    top: 0;
    z-index: 100;
    padding: 50px 50px;
    justify-content: flex-end;
}

header .logo {
   flex: auto;
}

header .logo a {
   display: block;
   width: 69px;
}

header .logo a img {
   transition: all 0.3s;
}

header .logo a:hover img {
   opacity: 0.7;
}
body.home header {
    background-color: #ffffff;
    color: #333333;
}

/* -- header nav -- */
.header__nav {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: 65px;
   padding-right: 105px;
}

.header__nav .nav {
   display: flex;
   flex-wrap: wrap;
   gap: 0;
}

.header__nav .nav>li>a,
.header__nav .nav .sub__menu-btn a {
   display: block;
   width: 140px;
   font-weight: 600;
   font-size: 15px;
   line-height: 21px;
   text-transform: uppercase;
   text-align: center;
   border-radius: 10px 10px 0 0;
   padding: 17px 0;
}

.header__nav .nav>li>a:hover,
.header__nav .nav>li>a.active {}

.header__nav .nav .sub__menu-btn a:hover,
.header__nav .nav .sub__menu-btn a.active {
   background-color: #fff;
   color: #2ecb0b;
}

.header__nav .nav .sub__menu {
   position: relative;
}

.header__nav .nav .sub__menu-main {
   width: 100%;
   max-width: 966px;
   box-sizing: border-box;
   position: fixed;
   top: 105px;
   left: 50%;
   opacity: 0;
   visibility: hidden;
   transition: all 0.3s;
   transform: translateX(-50%);
}

.header__nav .nav .sub__menu-main .wrap {
   display: flex;
   flex-wrap: wrap;
   align-items: flex-start;
   gap: 0 20px;
   background-color: #fff;
   color: #161616;
   border-radius: 10px;
   padding: 50px;
   box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
}

.header__nav .nav .sub__menu-main a {
   display: block;
   font-weight: 600;
   font-size: 18px;
   line-height: 24px;
   text-transform: uppercase;
}

.header__nav .nav .sub__menu-main a.active {
   color: #2ecb0b;
}

.header__nav .nav .sub__menu-main .col {
   flex: auto;
}

.header__nav .nav .sub__menu-main h2 {
   font-weight: 600;
   font-size: 40px;
   line-height: 53px;
   letter-spacing: 0;
   text-transform: uppercase;
   color: #2ecb0b;
}

.header__nav .nav .sub__menu-main .more a {
   display: inline-block;
   font-weight: 600;
   font-size: 15px;
   line-height: 20px;
   text-transform: uppercase;
   padding-right: 45px;
   position: relative;
}

.header__nav .nav .sub__menu-main .more a:after {
   content: '';
   border-width: 5px 0 5px 12px;
   border-style: solid;
   border-color: transparent transparent transparent #2ecb0b;
   position: absolute;
   top: 6px;
   right: 0;
}

.header__nav .nav .sub__menu-main ul li+li {
   padding-top: 5px;
}

.header__nav .nav .sub__menu-main .list {
   display: flex;
   flex-wrap: wrap;
   gap: 50px;
}

.header__nav .nav .sub__menu-main .list .item {
   width: 240px;
}

.header__nav .nav .sub__menu-main .list .photo {
   padding-bottom: 15px;
}

.header__nav .nav .sub__menu-main .list .photo a {
   display: block;
   position: relative;
}

.header__nav .nav .sub__menu-main .list .photo a:before {
   content: '';
   border: 3px solid #000;
   border-radius: 10px;
   position: absolute;
   top: 0;
   right: 0;
   bottom: 0;
   left: 0;
   transition: all 0.3s;
}

.header__nav .nav .sub__menu-main .list .photo a:hover:before {
   border-color: #2ecb0b;
}

.header__nav .nav .sub__menu-main .list ul {
   padding-left: 10px;
}

.header__nav .nav .sub__menu-main .list ul li:not(:first-child) {
   padding-top: 5px;
}

.header__nav .nav .sub__menu-main .list ul li:not(:first-child) a {
   font-weight: 500;
   font-size: 12px;
   line-height: 16px;
}

.header__nav .nav .sub__menu-main .list .careezo ul li:not(:first-child) a {
   font-size: 13px;
}

.header__nav .nav .sub__menu:hover .sub__menu-btn a {
   background-color: #fff;
   color: #2ecb0b;
}

.header__nav .nav .sub__menu:hover .sub__menu-main {
   opacity: 1;
   visibility: visible;
}

.header__nav .button a {
   width: 140px;
   background-color: #fff;
   font-size: 15px;
   padding: 13px 0 14px;
}

/* -- hamburger -- */
.hamburger {
   background-color: #fff;
   position: fixed;
   top: 50px;
   right: 50px;
}

.hamburger.is-active {
   background-color: transparent;
   border-color: #fff;
}

.hamburger.is-active span,
.hamburger.is-active span:before,
.hamburger.is-active span:after {
   background-color: #fff;
}

body.home .hamburger {
   background-color: #161616;
   border-color: #fff;
}

body.home .hamburger span,
body.home .hamburger span:before,
body.home .hamburger span:after {
   background-color: #fff;
}

body.home .hamburger.is-active {
   border-color: #fff;
   background-color: transparent;
}

/* -- navbar -- */
#navbar {
   width: 450px;
   height: 100vh;
   background-color: rgba(22, 22, 22, 0.9);
   color: #fff;
   box-sizing: border-box;
   overflow-y: auto;
   padding: 100px 50px;
   position: fixed;
   top: 0;
   right: -100%;
   transition: all 0.3s ease-in-out;
   z-index: 1;
}

#navbar .nav a {
   display: block;
   font-weight: 600;
   font-size: 30px;
   letter-spacing: 0;
   line-height: 40px;
   text-transform: uppercase;
}

#navbar .nav a:hover,
#navbar .nav a.active {
   color: #2ecb0b;
}

#navbar .nav>li+li {
   padding-top: 20px;
}

#navbar .nav>li>a,
#navbar .nav>li .sub__menu-btn a {
   padding-left: 30px;
   position: relative;
}

#navbar .nav>li>a:before,
#navbar .nav>li .sub__menu-btn a:before {
   content: '';
   width: 10px;
   height: 10px;
   background-color: #2ecb0b;
   border-radius: 50%;
   position: absolute;
   top: 55%;
   left: 0;
   transform: translateY(-50%);
   opacity: 0;
   transition: all 0.3s;
}

#navbar .nav>li>a:hover:before,
#navbar .nav>li>a.active:before,
#navbar .nav>li .sub__menu-btn a:hover:before,
#navbar .nav>li .sub__menu-btn a.active:before {
   opacity: 1;
}

#navbar .nav .sub__menu-main {
   padding-top: 5px;
   padding-left: 30px;
}

#navbar .nav .sub__menu-main a {
   font-size: 20px;
}

.navOpen #navbar {
   right: 0;
}

@media screen and (max-width: 1024px) {
   .header__nav .nav .sub__menu-btn a {
      pointer-events: none;
   }
}

@media screen and (max-width: 991px) {
   header {
      padding: 40px 20px;
   }

   .header__nav {
      gap: 10px;
      padding-right: 80px;
   }

   .header__nav .nav .sub__menu-main {
      top: 95px;
   }

   .header__nav .nav .sub__menu-main .wrap {
      padding: 30px;
   }

   .header__nav .nav .sub__menu-main .list {
      gap: 20px;
   }

   .header__nav .nav .sub__menu-main .list .item {
      width: 220px;
   }

   .hamburger {
      top: 40px;
      right: 20px;
   }
}

@media screen and (max-width: 767px) {
   header .logo a {
      width: 62px;
   }

   .header__nav {
      padding-right: 0px;
   }

   .header__nav .nav {
      display: none;
   }

   .header__nav .button a {
      width: 94px;
      font-size: 10px;
      line-height: 14px;
      padding: 8px 0;
   }

   #navbar {
      width: 100%;
      padding: 130px 40px 150px;
   }

   #navbar .nav a {
      font-size: 22px;
      line-height: 30px;
   }

   #navbar .nav>li+li {
      padding-top: 24px;
   }

   #navbar .nav .sub__menu-main {
      padding-top: 8px;
   }

   #navbar .nav .sub__menu-main li+li {
      padding-top: 8px;
   }

   #navbar .nav .sub__menu-main a {
      font-size: 18px;
   }
}

/*=============================================
 * <section>
 *=============================================*/
/* --- --- */
section {
   overflow: hidden;
   box-sizing: border-box;
}

/* --- --- */
/*=============================================
 * <footer>
 *=============================================*/
/* --- --- */
footer {
   font-weight: 600;
   font-size: 15px;
   line-height: 20px;
   padding: 80px 0 10px;
}

footer .f-btn {
   padding-bottom: 90px;
}

footer .f-btn a {
   display: block;
   background-color: #fff;
   border: 4px solid #fff;
   border-radius: 10px;
   text-align: center;
   color: #000;
   padding: 47px 0 51px;
}

footer .f-btn a span {
   display: block;
   margin-bottom: 20px;
}

footer .f-btn a:hover {
   color: #fff;
   background-color: transparent;
}

footer .f-btn a:hover span:after {
   border-top-color: #fff;
}

footer h2.h2:after {
   width: 100%;
   border-top-color: #fff;
   margin-top: 20px;
}

footer .nav {
   display: flex;
   flex-wrap: wrap;
   justify-content: space-between;
   gap: 0px;
   padding: 20px 20px 0;
}

footer .nav a {
   text-transform: uppercase;
}

footer .nav>li>a,
footer .nav .sub__menu-btn {
   text-transform: uppercase;
}

footer .nav .sub__menu-main {
   color: #C3C3C3;
   line-height: 30px;
   padding-top: 25px;
}

footer .nav li>a.active,
footer .nav li .sub__menu-btn a.active {
   color: #e26c4a;
}

footer address {
   padding-top: 75px;
}

@media screen and (max-width: 991px) {
   footer .nav {
      font-size: 14px;
      padding: 20px 0 0;
   }
}

@media screen and (max-width: 767px) {
   footer {
      padding: 50px 0 10px;
   }

   footer .f-btn {
      padding-bottom: 80px;
   }

   footer .f-btn a {
      font-size: 10px;
      line-height: 15px;
      padding: 12px 0 14px;
   }

   footer .f-btn a span {
      font-size: 20px;
      margin-bottom: 8px;
   }

   footer h2 {
      padding-bottom: 10px;
   }

   footer .nav {
      display: block;
      padding: 20px 20px 0;
   }

   footer .nav a {
      font-size: 22px;
      line-height: 30px;
   }

   footer .nav li+li {
      padding-top: 24px;
   }

   footer .nav li>a,
   footer .nav li .sub__menu-btn a {
      padding-left: 30px;
      position: relative;
   }

   footer .nav li>a:before,
   footer .nav li .sub__menu-btn a:before {
      content: '';
      width: 10px;
      height: 10px;
      background-color: #cb520b;
      border-radius: 50%;
      position: absolute;
      top: 55%;
      left: 0;
      transform: translateY(-50%);
      opacity: 0;
   }

   footer .nav li>a.active,
   footer .nav li .sub__menu-btn a.active {
      color: #cb520b;
   }

   footer .nav li>a.active:before,
   footer .nav li .sub__menu-btn a.active:before {
      opacity: 1;
   }

   footer .nav .sub__menu-main {
      color: #fff;
      padding-top: 0;
   }

   footer .nav .sub__menu-main li {
      padding-top: 8px;
   }

   footer .nav .sub__menu-main a {
      font-size: 18px;
      padding-left: 45px;
      position: relative;
   }

   footer .nav .sub__menu-main a:after {
      content: '・ ';
      line-height: 26px;
      position: absolute;
      top: 0;
      left: 24px;
   }

   footer .nav .sub__menu-main a.active:before {
      opacity: 0;
   }

   footer address {
      padding-top: 50px;
   }
}
.tb-style {
    margin-top: 3rem;
}