@charset "UTF-8";

/*=============================================
 * body
 *=============================================*/
body {
   background: #fff;
   color: #505050;
   font-family: 'Noto Sans JP', sans-serif;
   font-weight: 300;
   font-size: 16px;
   line-height: 32px;
   letter-spacing: 0;
   min-width: inherit;
   min-height: inherit;
   max-height: 100%;
   box-sizing: border-box;
   position: relative;
}

@media screen and (max-width: 767px) {
   body {
      font-size: 14px;
      line-height: 21px;
   }
}

/*=============================================
 * fonts
 *=============================================*/
@font-face {
   font-family: 'DINOT';
   src: url("../font/DINOT-BoldItalic/DINOT-BoldItalic.eot");
   src: url("../font/DINOT-BoldItalic/DINOT-BoldItalic.eot?#iefix") format("embedded-opentype"), url("../font/DINOT-BoldItalic/DINOT-BoldItalic.woff2") format("woff2"), url("../font/DINOT-BoldItalic/DINOT-BoldItalic.woff") format("woff"), url("../font/DINOT-BoldItalic/DINOT-BoldItalic.ttf") format("truetype"), url("../font/DINOT-BoldItalic/DINOT-BoldItalic.svg#DINOT-BoldItalic") format("svg");
   font-weight: bold;
   font-style: italic;
   font-display: swap;
}

@font-face {
   font-family: 'DINOT-RegularItalic';
   src: url("../font/DINOT-RegularItalic/DINOT-RegularItalic.eot");
   src: url("../font/DINOT-RegularItalic/DINOT-RegularItalic.eot?#iefix") format("embedded-opentype"), url("../font/DINOT-RegularItalic/DINOT-RegularItalic.woff2") format("woff2"), url("../font/DINOT-RegularItalic/DINOT-RegularItalic.woff") format("woff"), url("../font/DINOT-RegularItalic/DINOT-RegularItalic.ttf") format("truetype"), url("../font/DINOT-RegularItalic/DINOT-RegularItalic.svg#DINOT-RegularItalic") format("svg");
   font-weight: normal;
   font-style: italic;
   font-display: swap;
}

@font-face {
   font-family: 'DINOT';
   src: url("../font/DINOT-Bold/DINOT-Bold.eot");
   src: url("../font/DINOT-Bold/DINOT-Bold.eot?#iefix") format("embedded-opentype"), url("../font/DINOT-Bold/DINOT-Bold.woff2") format("woff2"), url("../font/DINOT-Bold/DINOT-Bold.woff") format("woff"), url("../font/DINOT-Bold/DINOT-Bold.ttf") format("truetype"), url("../font/DINOT-Bold/DINOT-Bold.svg#DINOT-Bold") format("svg");
   font-weight: bold;
   font-style: normal;
   font-display: swap;
}

.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;
}

.fnt-notoserif {
   font-family: 'Noto Serif JP', serif;
}

.fnt-dinotbi {
   font-family: 'DINOT', sans-serif;
   font-weight: bold;
   font-style: italic;
}

.fnt-dinotri {
   font-family: 'DINOT-RegularItalic', sans-serif;
   font-weight: normal;
   font-style: italic;
}

.fnt-dinotb {
   font-family: 'DINOT', sans-serif;
   font-weight: bold;
   font-style: normal;
   font-display: swap;
}

.fnt-roboto {
   font-family: 'Roboto', sans-serif;
}

/*=============================================
 * <main>
 *=============================================*/
main {
   clear: both;
   width: 100%;
   margin: 0 auto;
   padding: 0;
   position: relative;
}

/* -- -- */
/*=============================================
 * <header>
 *=============================================*/
header {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: 20px;
   height: 160px;
   background-color: #fff;
   position: relative;
   top: 0;
   z-index: 100;
   padding: 0 200px 0 40px;
}

header .logo {
   flex: auto;
}

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

header .kurashiplus {
   width: 174px;
}

header .kurashiplus * {
   display: block;
}

#navbar {
   position: absolute;
   top: 100%;
   left: 0;
}

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

#navbar .nav a {
   display: inline-block;
   background-color: #94a46c;
   font-weight: 400;
   font-size: 16px;
   letter-spacing: 0.3em;
   line-height: 30px;
   color: #fff;
   padding: 4px 20px 6px 35px;
}

#navbar .nav a:hover,
#navbar .nav a.active {
   opacity: 1;
   background-color: #eb8e2f;
   color: #fff;
}

.banner-fixed {
   position: absolute;
   top: 0;
   right: 0;
   z-index: 1;
}

.banner-fixed a {
   display: flex;
   align-items: center;
   justify-content: center;
   flex-direction: column;
   width: 160px;
   height: 160px;
   text-align: center;
   color: #fff;
   font-size: 16px;
   line-height: 24px;
   letter-spacing: 0.14em;
}

.banner-fixed a small {
   font-size: inherit;
}

.banner-fixed a.blue {
   background-color: #94a46c;
}

.banner-fixed a.orange {
   background-color: #eb8e2f;
}

.banner-fixed a.blue:hover {
   opacity: 1;
   background-color: #eb8e2f;
}

.banner-fixed a.orange:hover {
   opacity: 1;
   background-color: #eb8e2f;
}

.banner-fixed a.black {
   background-color: #505050;
}

@media screen and (max-width: 1440px) {
   header {
      height: 120px;
      padding-right: 150px;
   }

   .banner-fixed a {
      width: 120px;
      height: 120px;
      font-size: 12px;
      line-height: 18px;
   }

   #navbar {
      top: 97%;
   }

   #navbar .nav a {
      font-size: 12px;
      line-height: 20px;
   }
}

@media screen and (max-width: 991px) {
   header {
      height: 100px;
      padding-right: 120px;
   }

   header .logo a {
      width: 142px;
   }

   header .kurashiplus {
      width: 112px;
   }

   .banner-fixed a {
      width: 100px;
      height: 100px;
      font-size: 10px;
      line-height: 18px;
   }

   #navbar {
      top: 97%;
   }

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

   #navbar .nav a {
      font-size: 12px;
      line-height: 20px;
   }
}

@media screen and (max-width: 767px) {
   header {
      height: 70px;
      padding: 0 20px;
      position: sticky;
   }

   header .logo a {
      width: 136px;
   }

   header .kurashiplus {
      width: 92px;
   }

   .hamburger {
      display: block;
   }

   .banner-fixed {
      width: 100%;
      position: fixed;
      top: auto;
      bottom: 0;
   }

   .banner-fixed ul {
      display: flex;
      flex-wrap: wrap;
   }

   .banner-fixed ul li {
      width: 50%;
   }

   .banner-fixed a {
      width: 100%;
      height: 70px;
      font-size: 14px;
      line-height: 20px;
   }

   .banner-fixed a small {
      font-size: 12px;
   }

   #navbar {
      width: 100%;
      height: 100vh;
      box-sizing: border-box;
      padding: 70px 0 150px;
      position: fixed;
      top: 0;
      left: 0;
      z-index: -1;
      opacity: 0;
      visibility: hidden;
      transition: all 0.5s ease-in-out;
   }

   #navbar .nav {
      background-color: #fff;
   }

   #navbar .nav li {
      border-top: 1px solid #cacaca;
      border-bottom: 1px solid #cacaca;
   }

   #navbar .nav li+li {
      border-top: 0;
      padding-top: 0;
   }

   #navbar .nav a {
      display: block;
      background-color: #fff;
      color: #505050;
      padding: 10px 20px;
   }

   #navbar .nav a:hover {
      background-color: #fff;
      color: #505050;
   }

   .navOpen #navbar {
      opacity: 1;
      visibility: visible;
   }
}

/* -- -- */
/*=============================================
 * <footer>
 *=============================================*/
footer .f-partner {
   border-top: 1px solid #e6e6e6;
   padding: 110px 0 90px;
}

footer .f-partner ul {
   display: flex;
   flex-wrap: wrap;
   justify-content: center;
   gap: 10px;
   width: 100%;
   max-width: 1200px;
   margin: 0 auto;
}

footer .f-partner ul li {
   width: 160px;
}

footer .f-partner.no-border {
   border-top: 0;
}

footer .f-information {
   background-color: #f2f2f2;
   margin-top: 80px;
   padding: 85px 0;
   position: relative;
}

footer .f-information:before {
   content: '';
   width: 100%;
   padding-top: 108px;
   background: url("../img/common/footer-deco.png") no-repeat center top;
   position: absolute;
   top: -80px;
   left: 0;
}

footer .logo {
   width: 165px;
   margin: 0 auto;
}

footer .f-sns {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 30px;
   padding-top: 50px;
}

footer .f-sns li {
   width: 32px;
}

footer .f-sns li * {
   display: block;
}

footer nav {
   display: flex;
   flex-wrap: wrap;
   justify-content: center;
   gap: 0 70px;
   font-weight: 400;
   font-size: 12px;
   line-height: 26px;
   letter-spacing: 0.2em;
   padding-top: 30px;
}

footer nav a {
   display: inline-block;
   border-bottom: 1px solid transparent;
}

footer nav a:hover {
   border-color: #505050;
}

footer nav .sub-menu {
   display: flex;
   flex-wrap: wrap;
   gap: 0px;
   width: 280px;
}

footer nav .sub-menu a {
   width: 50%;
}

footer address {
   text-align: center;
   font-weight: 400;
   font-size: 12px;
   line-height: 30px;
   letter-spacing: 0.14em;
   padding-top: 30px;
}

@media screen and (max-width: 991px) {
   footer .f-information {
      margin-top: 0;
      padding-bottom: 155px;
   }

   footer .f-information:before {
      width: 100%;
      padding-top: 5%;
      background-size: cover;
      top: -4.5%;
   }

   footer nav {
      gap: 0 20px;
   }
}

@media screen and (max-width: 767px) {
   footer .f-partner {
      padding: 60px 20px 80px;
   }

   footer .f-partner ul {
      gap: 2vw;
   }

   footer .f-partner ul li {
      width: 28.4vw;
   }

   footer .f-information {
      margin-top: 11vw;
      padding: 80px 0 110px;
   }

   footer .f-information:before {
      background-image: url("../img/common/sp_footer-deco.png");
      padding-top: 14%;
      top: -5.5%;
   }

   footer .logo {
      width: 140px;
   }

   footer .f-sns {
      padding-top: 25px;
   }

   footer nav {
      display: block;
   }

   footer nav ul {
      display: flex;
      flex-wrap: wrap;
      gap: 0px;
      width: 100%;
   }

   footer nav ul+ul {
      padding-top: 10px;
   }

   footer nav ul:nth-child(1) li:nth-child(odd) {
      width: 90px;
   }

   footer nav ul:nth-child(1) li:nth-child(even) {
      width: calc(100% - 90px);
   }

   footer nav ul:nth-child(3) li:nth-child(odd) {
      width: 90px;
   }

   footer nav ul:nth-child(3) li:nth-child(even) {
      width: calc(100% - 90px);
   }

   footer nav ul:nth-child(4) {
      position: relative;
   }

   footer nav ul:nth-child(4) li {
      width: 100%;
   }

   footer nav ul:nth-child(4) li:first-child {
      width: calc(100% - 90px);
      position: absolute;
      top: -28px;
      right: 0;
   }

   footer nav .sub-menu {
      width: 300px;
   }
}

/* -- -- */
/*=============================================
 * <TOP>
 *=============================================*/
/* -- -- */
#mv {
   width: 100%;
   height: calc(100vh - 160px);
   min-height: 690px;
}

#mv h2 {
   font-weight: 400;
   font-size: 42px;
   letter-spacing: 0.4em;
   line-height: 100px;
}

#mv .slick-list,
#mv .slick-track,
#mv .slick-slide {
   width: 100%;
   height: 100%;
}

#mv .slide1 {
   background: url("../img/index/mv01.jpg") no-repeat center/cover;
}

#mv .slide1 .box {
   width: 310px;
   text-align: center;
   position: absolute;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%);
}

#mv .slide1 h2 {
   font-size: 18px;
   line-height: 46px;
   padding-top: 50px;
}

#mv .slide2 {
   background: url("../img/index/mv02.jpg") no-repeat center/cover;
}

#mv .slide2 h2 {
   width: max-content;
   position: absolute;
   top: 50px;
   left: 50%;
   transform: translateX(-50%);
}

#mv .slide3 {
   background: url("../img/index/mv03.jpg") no-repeat center/cover;
}

#mv .slide3 h2 {
   width: max-content;
   position: absolute;
   right: 100px;
   bottom: 100px;
}

#mv .slide4 {
   display: flex;
   align-items: center;
   justify-content: center;
   background: url("../img/index/mv04.jpg") no-repeat center/cover;
}

#mv .slide4 .box {
   width: 100%;
   max-width: 850px;
   margin: 0 auto;
}

#mv .slide4 .logo {
   width: 222px;
   padding-top: 50px;
}

#mv .slide4 .button {
   padding-left: 100px;
   padding-top: 320px;
}

#mv .slide4 .button a {
   width: 330px;
   background-color: rgba(80, 80, 80, 0.75);
   font-size: 24px;
   letter-spacing: 0.2em;
   padding: 16px 0;
}

#mv .slide4 .button a:after {
   width: 5px;
   height: 9px;
   right: 12px;
}

#mv .slide4 .button a:hover {
   background-color: rgba(235, 142, 47, 0.75);
}

#mv .slick-dots {
   display: flex;
   justify-content: center;
   align-items: center;
   gap: 5px;
   width: 100%;
   position: absolute;
   bottom: 40px;
   left: 0;
}

#mv .slick-dots li {
   width: 88px;
   height: 2px;
}

#mv .slick-dots li button {
   display: block;
   width: 100%;
   height: 100%;
   background-color: #fff;
   color: transparent;
   border: 0;
   cursor: pointer;
}

#mv .slick-dots li:hover button,
#mv .slick-dots li.slick-active button {
   background-color: #000;
}

@media screen and (max-width: 1440px) {
   #mv h2 {
      font-size: 32px;
      line-height: 68px;
   }

   #mv .slide1 .box {
      width: 250px;
   }

   #mv .slide1 h2 {
      font-size: 14px;
      line-height: 35px;
   }

   #mv .slide4 .box {
      max-width: 600px;
   }

   #mv .slide4 .button a {
      width: 248px;
      font-size: 18px;
      padding: 8px 0;
   }
}

@media screen and (max-width: 991px) {
   #mv {
      height: 90vw;
   }

   #mv h2 {
      font-size: 22px;
      line-height: 46px;
   }

   #mv .slide1 .box {
      width: 210px;
   }

   #mv .slide1 h2 {
      font-size: 12px;
      line-height: 28px;
      padding-top: 30px;
   }

   #mv .slide2 {
      background-image: url("../img/index/ipd_mv02.jpg");
   }

   #mv .slide2 h2 {
      text-align: center;
   }

   #mv .slide2 h2 br.pc {
      display: none;
   }

   #mv .slide3 {
      background-image: url("../img/index/ipd_mv03.jpg");
   }

   #mv .slide3 h2 {
      top: 14vw;
      bottom: auto;
   }

   #mv .slide4 {
      background-image: url("../img/index/ipd_mv04.jpg");
   }

   #mv .slide4 .box {
      max-width: 400px;
   }

   #mv .slide4 .logo {
      width: 175px;
      padding-top: 30px;
   }

   #mv .slide4 .button a {
      width: 175px;
      font-size: 12px;
      padding: 1px 0;
   }
}

@media screen and (max-width: 767px) {
   #mv {
      height: 140vw;
      min-height: inherit;
   }

   #mv h2 {
      font-size: 21px;
      line-height: 48px;
   }

   #mv h2 br.pc {
      display: none;
   }

   #mv .slide1 .box {
      width: 230px;
   }

   #mv .slide1 h2 {
      font-size: 13px;
      line-height: 34px;
      padding-top: 40px;
   }

   #mv .slide2 {
      background-image: url("../img/index/sp_mv02.jpg");
   }

   #mv .slide2 h2 {
      text-align: center;
      top: 6vw;
   }

   #mv .slide3 {
      background-image: url("../img/index/sp_mv03.jpg");
   }

   #mv .slide3 h2 {
      top: 26vw;
      right: 20px;
      bottom: auto;
   }

   #mv .slide4 {
      align-items: flex-start;
      background-image: url("../img/index/sp_mv04.jpg");
   }

   #mv .slide4 .box {
      padding: 15vw 20px;
   }

   #mv .slide4 .logo {
      width: 165px;
      padding-top: 30px;
   }

   #mv .slide4 .button a {
      width: 165px;
      font-size: 13px;
      letter-spacing: 0.2em;
      padding: 2px 0 1px;
   }

   #mv .slick-dots li {
      width: 44px;
      height: 3px;
   }
}

@media screen and (max-width: 767px) {
   #mv .slick-dots {
      bottom: 15px;
   }
}

/* iPhone X */
/*@media only screen and (max-width: 767px) and (min-device-width: 375px) and (min-device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait) {
   #mv {
      height: calc(90vh - 170px);
   }
}*/

/* iPhone XR */
/*@media only screen and (max-width: 767px) and (min-device-width: 414px) and (min-device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait) {
   #mv {
      height: calc(90vh - 170px);
   }
}*/

/* iPhone 11 */
/*@media only screen and (max-width: 767px) and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) {
   #mv {
      height: calc(90vh - 140px);
   }
}*/

/*@media only screen and (max-width: 767px) and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) {
   #mv {
      height: calc(90vh - 170px);
   }
}*/

/*@media only screen and (max-width: 767px) and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) {
   #mv {
      height: calc(90vh - 140px);
   }
}*/

/* -- -- */
#service {
   background-color: #e3e6d2;
   padding: 90px 0 110px;
   position: relative;
}

#service:before {
   content: '';
   width: 460px;
   height: 71px;
   background: url("../img/index/service-deco.png") no-repeat center top/cover;
   position: absolute;
   top: 0;
   right: 0;
}

#service:after {
   content: '';
   width: 278px;
   height: 29px;
   background-color: #f0f0e6;
   position: absolute;
   bottom: 0;
   right: 0;
}

#service .wrap {
   width: calc(100% - 40px);
   max-width: 1350px;
}

#service h2 {
   font-weight: 500;
   font-size: 40px;
   line-height: 46px;
   letter-spacing: 0.4em;
}

#service h2 small,
#service h2 span {
   display: inline-block;
   background-color: #fff;
   letter-spacing: 0.4em;
}

#service h2 small {
   font-size: 18px;
   line-height: 38px;
   margin-bottom: 10px;
   padding: 0px 40px;
}

#service h2 span {
   padding: 9px 40px;
}

#service .box {
   display: flex;
   flex-wrap: wrap;
   justify-content: center;
   gap: 60px 50px;
   padding-top: 80px;
}

#service .box .item {
   width: 300px;
   position: relative;
}

#service .box h3 {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 169px;
   height: 146px;
   box-sizing: border-box;
   background: url("../img/index/service-ttl-bg.png") no-repeat center top/cover;
   color: #fff;
   text-align: center;
   padding: 0 8px 28px 0;
   position: absolute;
   top: -25px;
   left: -35px;
   z-index: 2;
}

#service .box .txt {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 100%;
   height: 100%;
   background-color: rgba(245, 250, 255, 0.95);
   z-index: 1;
   position: absolute;
   top: 0;
   left: 0;
   border-radius: 50%;
   text-align: center;
   opacity: 0;
   transition: all 0.3s;
}

#service .box .link a {
   display: block;
   width: 100%;
   height: 100%;
   position: absolute;
   top: 0;
   left: 0;
   z-index: 1;
   color: transparent;
}

#service .box .item:hover .txt {
   opacity: 1;
}

@media screen and (max-width: 1440px) {
   #service .box h3 {
      left: -15px;
   }
}

@media screen and (max-width: 991px) {
   #service h2 small {
      padding: 0 20px;
   }

   #service h2 span {
      padding: 9px 20px;
   }

   #service .box .txt {
      background-color: transparent;
      height: auto;
      opacity: 1;
      position: static;
      padding-top: 15px;
   }
}

@media screen and (max-width: 767px) {
   #service {
      padding: 70px 0 50px;
   }

   #service:before {
      width: 125px;
      height: 20px;
   }

   #service:after {
      width: 52px;
      height: 15px;
   }

   #service .wrap {
      width: 100%;
   }

   #service h2 {
      font-size: 26px;
      letter-spacing: 0.25em;
      line-height: 38px;
   }

   #service h2 small {
      font-size: 12px;
      letter-spacing: 0.2em;
   }

   #service .box {
      gap: 26px;
      padding-top: 30px;
   }

   #service .box .item {
      width: calc(50% - 13px);
      padding-top: 36px;
   }

   #service .box h3 {
      width: 100px;
      height: 86px;
      font-size: 15px;
      line-height: 20px;
      top: 0;
      left: -5px;
      padding: 0 5px 15px 0;
   }

   #service .box .txt {
      font-size: 12px;
      line-height: 18px;
      padding-top: 10px;
   }
}

/* -- -- */
#other-service {
   background-color: #f0f0e6;
   padding: 120px 20px;
   position: relative;
}

#other-service:before {
   content: '';
   width: 871px;
   height: 82px;
   background: url("../img/index/other-deco1.png") no-repeat center top/cover;
   position: absolute;
   top: -25px;
   left: 0;
}

#other-service .wrap {
   max-width: 100%;
}

#other-service ul {
   display: flex;
   flex-wrap: wrap;
   justify-content: center;
   gap: 40px;
}

#other-service ul li {
   width: 220px;
}

#other-service .button a {
   width: 100%;
}

@media screen and (max-width: 1580px) {
   #other-service ul li {
      width: calc(100% / 6 - 34px);
   }
}

@media screen and (max-width: 1440px) {
   #other-service ul {
      gap: 20px;
   }

   #other-service ul li {
      width: calc(100% / 6 - 17px);
   }

   #other-service .button a {
      font-size: 18px;
   }
}

@media screen and (max-width: 1200px) {
   #other-service ul {
      gap: 40px;
   }

   #other-service ul li {
      width: 220px;
   }
}

@media screen and (max-width: 991px) {
   #other-service:before {
      width: 385px;
      height: 36px;
      top: -10px;
   }
}

@media screen and (max-width: 767px) {
   #other-service {
      padding: 70px 0;
   }

   #other-service:before {
      background-image: url("../img/index/sp_other-deco1.png");
      width: 165px;
      height: 42px;
   }

   #other-service ul {
      gap: 20px;
   }

   #other-service ul li {
      width: calc(50% - 10px);
   }

   #other-service .button a {
      width: 100%;
      font-size: 14px;
   }
}

/* -- -- */
#news {
   padding-top: 80px;
   position: relative;
}

#news:after {
   content: '';
   width: 777px;
   height: 67px;
   background: url("../img/index/other-deco2.png") no-repeat center top/cover;
   position: absolute;
   top: -15px;
   right: 0;
}

#news h2 {
   font-style: italic;
   letter-spacing: 0.14em;
}

#news .list {
   width: 100%;
   max-width: 415px;
   font-weight: 400;
   font-size: 14px;
   line-height: 26px;
   letter-spacing: 0.1em;
   margin: 0 auto;
   padding-top: 30px;
}

#news .list li {
   display: flex;
   flex-wrap: wrap;
   align-items: flex-start;
}

#news .list .date {
   width: 90px;
   font-weight: 700;
}

#news .list .ttl {
   width: calc(100% - 105px);
   word-break: break-all;
   padding-left: 15px;
}

#news .list .ttl a:hover {
   text-decoration: underline;
}

#news .more {
   font-size: 12px;
   letter-spacing: 0.14em;
   line-height: 14px;
   padding-top: 20px;
}

#news .more a {
   text-decoration: underline;
}

#news .more a:hover {
   text-decoration: none;
}

@media screen and (max-width: 991px) {
   #news:after {
      width: 385px;
      height: 33px;
      top: -5px;
   }
}

@media screen and (max-width: 767px) {
   #news:after {
      background-image: url("../img/index/sp_other-deco2.png");
      width: 165px;
      height: 42px;
   }

   #news h2 {
      font-size: 21px;
   }

   #news .list {
      padding-top: 20px;
   }

   #news .list .ttl {
      width: calc(100% - 100px);
      padding-left: 10px;
   }

   #news .more {
      padding-top: 20px;
   }
}

/* -- -- */
/*=============================================
 * <service>
 *=============================================*/
/* -- -- */
.kv-service {
   background-image: url("../img/service/service-kv.jpg");
}

@media screen and (max-width: 991px) {
   .kv-service {
      background-image: url("../img/service/sp_service-kv.jpg");
   }
}

/* -- -- */
#business__content {
   padding: 30px 0 40px;
}

#business__content .wrap {
   width: calc(100% - 40px);
   max-width: 1200px;
}

#business__content h2 {
   letter-spacing: 0.3em;
}

#business__content ul {
   display: flex;
   flex-wrap: wrap;
   justify-content: center;
   gap: 0px;
   padding-top: 10px;
}

#business__content ul li {
   width: 12.5%;
   text-align: center;
   font-weight: 500;
   line-height: 24px;
}

#business__content ul li img {
   display: block;
   width: 101px;
   margin: 0 auto;
}

#business__content ul li a:hover {
   color: #eb8e2f;
   opacity: 1;
}

@media screen and (max-width: 991px) {
   #business__content ul {
      gap: 10px 0;
   }

   #business__content ul li {
      width: 25%;
   }
}

@media screen and (max-width: 767px) {
   #business__content .wrap {
      width: 100%;
   }

   #business__content h2 {
      letter-spacing: 0.15em;
   }

   #business__content ul {
      justify-content: flex-start;
      gap: 10px 0px;
      font-size: 14px;
      line-height: 18px;
   }

   #business__content ul li {
      width: 33.33%;
   }
}

/* -- -- */
#service__sec1 {
   padding: 120px 0 0;
}

#service__sec1 .desc {
   letter-spacing: 0.1em;
   line-height: 40px;
   padding-top: 50px;
}

#service__sec1 .box {
   display: flex;
   flex-wrap: wrap;
   gap: 50px;
   padding-top: 120px;
}

#service__sec1 .box .item {
   width: calc(50% - 25px);
}

#service__sec1 .box h3 {
   background-color: rgba(148, 164, 108, 1);
   color: #fff;
   letter-spacing: 0.05em;
   padding: 14px 25px;
}

#service__sec1 .box .photo {
   padding-top: 15px;
}

#service__sec1 .box .txt {
   letter-spacing: 0.05em;
   padding-top: 20px;
}

#service__sec1 .box .button {
   padding-top: 20px;
}

#service__sec1 .box .button a {
   font-size: 14px;
   background-color: transparent;
   border: 1px solid #e3e6d2;
   color: #94a46c;
   padding: 0;
}

#service__sec1 .box .button a:after {
   width: 0px;
   height: 0px;
   background: transparent;
   border-width: 3px 0px 3px 4px;
   border-style: solid;
   border-color: transparent transparent transparent rgba(148, 164, 108, 1);
}

#service__sec1 .box .button a:hover {
   background-color: #e3e6d2;
   color: #fff;
   opacity: 1;
}

#service__sec1 .box .button a:hover:after {
   border-left-color: #fff;
}

@media screen and (max-width: 991px) {
   #service__sec1 .box h3 {
      font-size: 18px;
      padding: 14px 10px;
   }
}

@media screen and (max-width: 767px) {
   #service__sec1 {
      padding-top: 50px;
   }

   #service__sec1 .desc {
      line-height: 27px;
      letter-spacing: 0.075em;
      padding-top: 30px;
   }

   #service__sec1 .box {
      gap: 30px;
      padding-top: 50px;
   }

   #service__sec1 .box .item {
      width: 100%;
   }

   #service__sec1 .box h3 {
      font-size: 16px;
      padding: 5px 15px;
   }

   #service__sec1 .box .txt {
      line-height: 23px;
      padding-top: 15px;
   }
}

/* -- -- */
#service__sec2 {
   padding: 120px 0;
}

#service__sec2 .box {
   display: flex;
   flex-wrap: wrap;
   gap: 10px;
   padding-top: 40px;
}

#service__sec2 .box .item {
   width: 340px;
   background-color: #efeee4;
   text-align: center;
   box-sizing: border-box;
   padding: 40px 30px;
}

#service__sec2 .box .no {
   font-weight: 700;
   font-size: 14px;
}

#service__sec2 .box h3 {
   font-weight: 700;
   font-size: 29px;
   line-height: 40px;
   letter-spacing: 0;
}

#service__sec2 .box .txt {
   text-align: justify;
   padding-top: 30px;
}

@media screen and (max-width: 1200px) {
   #service__sec2 .box {
      gap: 10px 2%;
   }

   #service__sec2 .box .item {
      width: 32%;
   }
}

@media screen and (max-width: 991px) {
   #service__sec2 .box .item {
      padding: 40px 20px;
   }
}

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

   #service__sec2 .box .item {
      width: 100%;
      padding: 25px 20px;
   }

   #service__sec2 .box .no {
      font-size: 13px;
      line-height: 16px;
   }

   #service__sec2 .box h3 {
      font-size: 18px;
      line-height: 32px;
   }

   #service__sec2 .box .txt {
      padding-top: 15px;
   }
}

/* -- -- */
/*=============================================
 * <works>
 *=============================================*/
/* -- -- */
.kv-works {
   background-image: url("../img/works/works-kv.jpg");
}

@media screen and (max-width: 991px) {
   .kv-works {
      background-image: url("../img/works/sp_works-kv.jpg");
   }
}

/* -- -- */
.table-of-content {
   padding: 30px 0 60px;
}

.table-of-content h2 {
   letter-spacing: 0.3em;
}

.table-of-content ul {
   display: flex;
   flex-wrap: wrap;
   justify-content: center;
   gap: 20px 60px;
   padding-top: 40px;
}

.table-of-content ul li {
   text-align: center;
   font-weight: 500;
   line-height: 24px;
}

.table-of-content ul li img {
   display: block;
   width: auto;
   height: 58px;
   margin: 0 auto 5px;
}

.table-of-content ul li small {
   font-size: 12px;
   line-height: 16px;
}

@media screen and (max-width: 767px) {
   .table-of-content {
      padding: 25px 0 40px;
   }

   .table-of-content h2 {
      letter-spacing: 0.15em;
   }

   .table-of-content ul {
      font-size: 14px;
      line-height: 18px;
      gap: 20px 45px;
   }

   .table-of-content ul li img {
      height: 50px;
   }

   .table-of-content ul li small {
      font-size: 10px;
      line-height: 14px;
   }
}

/* -- -- */
#works__content {
   word-break: break-all;
   padding: 120px 0;
}

#works__content .item {
   padding-top: 120px;
}

#works__content .works-name img {
   display: block;
   width: auto;
   height: 70px;
   margin: 0 auto 20px;
}

#works__content .works-slider {
   margin-top: 20px;
   padding-top: 60px;
}

#works__content .works-slider .slick-list {
   margin: 0 -5px;
}

#works__content .works-slider .slide {
   margin: 0 5px;
}

#works__content .works-slider .toggle-main {
   display: block;
}

#works__content .works-slider .ttl {
   font-weight: 300;
   line-height: 52px;
   letter-spacing: 0.1em;
   border: 1px solid;
   padding: 32px 0;
   position: relative;
}

#works__content .works-slider .ttl:before {
   content: '';
   width: 14px;
   height: 10px;
   border-right: 1px solid #94a46c;
   border-bottom: 1px solid #94a46c;
   background-color: #fff;
   position: absolute;
   top: 97%;
   left: 50%;
   transform: translateX(-50%) rotate(66deg) skewX(45deg);
}

#works__content .works-slider .photo {
   padding-top: 40px;
}

#works__content .works-slider .photo img {
   width: auto;
   height: 85px;
   margin: 0 auto;
}

#works__content .works-slider .tag {
   font-weight: 300;
   font-size: 42px;
   line-height: 42px;
   letter-spacing: 0.025em;
   padding-top: 20px;
}

#works__content .works-slider .txt-year {
   font-weight: 300;
   font-size: 18px;
   letter-spacing: 0.025em;
   padding-top: 10px;
}

#works__content .works-slider .txt {
   font-size: 18px;
   padding-top: 40px;
}

#works__content .works-slider .box {
   display: flex;
   flex-wrap: wrap;
   gap: 20px 90px;
   margin-top: 35px;
   position: relative;
}

#works__content .works-slider .box.sp {
   display: none;
}

#works__content .works-slider .box:after {
   content: '';
   width: 40px;
   height: 36px;
   background: url("../img/works/works-arrow.png") no-repeat center top/cover;
   position: absolute;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%);
}

#works__content .works-slider .box>div {
   width: calc(50% - 45px);
}

#works__content .works-slider .box h5 {
   font-weight: 700;
   font-size: 18px;
   padding: 4px 20px;
}

#works__content .works-slider .box dl {
   display: flex;
   flex-wrap: wrap;
   gap: 16px;
   padding-top: 25px;
}

#works__content .works-slider .box dl>* {
   width: calc(50% - 8px);
}

#works__content .works-slider .box dl dt {
   line-height: 26px;
}

#works__content .works-slider .box .before h5 {
   background-color: #e6e6e6;
}

#works__content .works-slider .box .after h5 {
   background-color: #94a46c;
   color: #fff;
}

#works__content .works-slider .txt-overview {
   font-size: 14px;
   line-height: 20px;
   padding-top: 25px;
}

#works__content .works-slider .txt-overview strong {
   display: inline-block;
   font-weight: 500;
   line-height: 24px;
}

#works__content .works-slider .slick-arrow {
   width: 32px;
   height: 32px;
   border-radius: 50%;
   box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);
   border: 0;
   color: transparent;
   position: absolute;
   top: 50%;
   transform: translateY(-50%);
   cursor: pointer;
   transition: all 0.3s;
   z-index: 1;
}

#works__content .works-slider .slick-arrow:hover {
   opacity: 0.7;
}

#works__content .works-slider .slick-prev {
   background: url("../img/works/slider-prev.png") no-repeat center top/cover;
   left: -80px;
}

#works__content .works-slider .slick-next {
   background: url("../img/works/slider-next.png") no-repeat center top/cover;
   right: -80px;
}

#works__content .works-slider .slick-dots {
   display: flex;
   justify-content: center;
   gap: 0 10px;
   width: 100%;
   position: absolute;
   top: 0;
   left: 0;
}

#works__content .works-slider .slick-dots li {
   width: 10px;
   height: 10px;
}

#works__content .works-slider .slick-dots li button {
   display: block;
   width: 100%;
   height: 100%;
   color: transparent;
   border: 1px solid #94a46c;
   background: transparent;
   border-radius: 50%;
   cursor: pointer;
   transition: all 0.3s;
}

#works__content .works-slider .slick-dots li:hover button,
#works__content .works-slider .slick-dots li.slick-active button {
   background: #94a46c;
}

@media screen and (max-width: 1240px) {
   #works__content .works-slider {
      padding: 60px 50px 0;
   }

   #works__content .works-slider .slick-prev {
      left: 0;
   }

   #works__content .works-slider .slick-next {
      right: 0;
   }
}

@media screen and (max-width: 767px) {
   #works__content {
      padding: 75px 0;
   }

   #works__content .item {
      padding-top: 50px;
   }

   #works__content .works-name {
      font-size: 18px;
      line-height: 27px;
   }

   #works__content .works-name img {
      height: 58px;
      margin-bottom: 5px;
   }

   #works__content .works-slider {
      margin-top: 10px;
      padding: 40px 0px 0;
   }

   #works__content .works-slider .head {
      padding: 0 40px;
   }

   #works__content .works-slider .toggle-link {
      background-color: #94a46c;
      border-radius: 50px;
      text-align: center;
      font-weight: 500;
      font-size: 12px;
      line-height: 21px;
      letter-spacing: 0.075em;
      color: #fff;
      margin: 30px 40px 0;
      padding: 7px 0;
      position: relative;
   }

   #works__content .works-slider .toggle-link:before {
      content: '戻る';
      width: 100%;
      position: absolute;
      top: 48%;
      left: 0;
      transform: translateY(-50%);
      opacity: 0;
   }

   #works__content .works-slider .toggle-link:after {
      content: '';
      width: 12px;
      height: 7px;
      background: url("../img/common/arrow-down.svg") no-repeat center top/cover;
      position: absolute;
      top: 50%;
      right: 10px;
      transform: translateY(-50%);
      transition: all 0.3s;
   }

   #works__content .works-slider .toggle-main {
      display: none;
   }

   #works__content .works-slider .toggle.active .toggle-link {
      background-color: #f2f2f2;
      color: transparent;
   }

   #works__content .works-slider .toggle.active .toggle-link:before {
      color: #505050;
      opacity: 1;
   }

   #works__content .works-slider .toggle.active .toggle-link:after {
      background-image: url("../img/common/arrow-up.svg");
   }

   #works__content .works-slider .toggle.active .toggle-main {
      display: block;
   }

   #works__content .works-slider .ttl {
      font-size: 18px;
      line-height: 29px;
      padding: 20px 0;
   }

   #works__content .works-slider .photo {
      padding-top: 30px;
   }

   #works__content .works-slider .tag {
      font-size: 26px;
      line-height: 32px;
   }

   #works__content .works-slider .txt-year {
      font-size: 14px;
      line-height: 23px;
   }

   #works__content .works-slider .txt {
      font-size: 15px;
      line-height: 27px;
      letter-spacing: 0.075em;
      padding-top: 30px;
   }

   #works__content .works-slider .box {
      margin-top: 30px;
      position: relative;
   }

   #works__content .works-slider .box.pc {
      display: none;
   }

   #works__content .works-slider .box.sp {
      display: block;
   }

   #works__content .works-slider .box:after {
      display: none;
   }

   #works__content .works-slider .box>div {
      width: 100%;
   }

   #works__content .works-slider .box .tab-link {
      display: flex;
      flex-wrap: wrap;
   }

   #works__content .works-slider .box .tab-link li {
      display: block;
      width: 50%;
   }

   #works__content .works-slider .box h5 {
      box-sizing: border-box;
      color: #fff;
      font-size: 15px;
      padding: 10px 15px 15px;
      position: relative;
   }

   #works__content .works-slider .box h5:before {
      content: '';
      width: 100%;
      height: 100%;
      box-sizing: border-box;
      border-bottom: 5px solid transparent;
      position: absolute;
      top: 0;
      left: 0;
   }

   #works__content .works-slider .box dl {
      flex-direction: column-reverse;
      gap: 15px;
      padding-top: 0;
   }

   #works__content .works-slider .box dl>* {
      width: 100%;
   }

   #works__content .works-slider .box dl dt {
      line-height: 23px;
   }

   #works__content .works-slider .box .before h5 {
      background-color: rgba(150, 150, 150, 0.3);
   }

   #works__content .works-slider .box .before.active h5 {
      background-color: #969696;
   }

   #works__content .works-slider .box .before.active h5:before {
      border-right: 5px solid #fff;
      border-bottom-color: #fff;
   }

   #works__content .works-slider .box .after h5 {
      background-color: rgba(70, 150, 188, 0.3);
   }

   #works__content .works-slider .box .after.active h5 {
      background-color: #94a46c;
   }

   #works__content .works-slider .box .after.active h5:before {
      border-bottom-color: #fff;
      border-left: 5px solid #fff;
   }

   #works__content .works-slider .txt-overview {
      font-size: 11px;
      line-height: 18px;
      padding-top: 20px;
   }

   #works__content .works-slider .txt-overview strong {
      line-height: 18px;
   }

   #works__content .works-slider .slick-arrow {
      width: 29px;
      height: 29px;
      top: 55vw;
      transform: translateY(0);
   }
}

/* -- -- */
/*=============================================
 * <work flow>
 *=============================================*/
/* -- -- */
.kv-workflow {
   background-image: url("../img/work-flow/wflow-kv.jpg");
}

@media screen and (max-width: 767px) {
   .kv-workflow {
      background-image: url("../img/work-flow/sp_wflow-kv.jpg");
   }
}

/* -- -- */
.p-title {
   line-height: 66px;
   letter-spacing: 0.2em;
   padding-top: 120px;
}

@media screen and (max-width: 767px) {
   .p-title {
      line-height: 40px;
      letter-spacing: 0.05em;
      padding-top: 50px;
   }
}

/* -- -- */
.flow-list .item {
   border: 3px solid #94a46c;
   padding: 15px;
   position: relative;
}

.flow-list .item+.item {
   margin-top: 40px;
}

.flow-list .item+.item:before {
   content: '';
   height: 40px;
   border-left: 3px solid #94a46c;
   position: absolute;
   bottom: 100%;
   left: 50%;
   transform: translateX(-50%);
   margin-bottom: 3px;
}

.flow-list .item:not(:first-child) {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
}

.flow-list .item:not(:first-child) dt {
   width: 230px;
   text-align: center;
   letter-spacing: 0.05em;
}

.flow-list .item:not(:first-child) dt .no {
   display: block;
   background-color: #94a46c;
   color: #fff;
   border-radius: 50px;
   width: 88px;
   font-size: 16px;
   line-height: 24px;
   margin: 0 auto 5px;
   padding: 0 0 2px;
}

.flow-list .item:not(:first-child) dd {
   width: calc(100% - 261px);
   border-left: 1px solid #cbe3f0;
   padding-left: 30px;
}

.flow-list .item:not(:first-child) dd h3 {
   font-weight: 500;
   letter-spacing: 0.05em;
}

.flow-list .item:not(:first-child) .txt {
   line-height: 28px;
   padding-top: 15px;
}

.flow-list .item:first-child {
   padding: 41px 0;
}

.flow-list .item:first-child .sub {
   width: 100px;
   background-color: #fff;
   letter-spacing: 0.1em;
   line-height: 22px;
   text-align: center;
   position: absolute;
   top: -15px;
   left: 50%;
   transform: translateX(-50%);
}

.flow-list .item:first-child h3 {
   font-weight: 700;
   letter-spacing: 0.1em;
}

.flow-list .item:last-child {
   background-color: #94a46c;
   color: #fff;
}

.flow-list .item:last-child dt .no {
   background-color: #fff;
   color: #94a46c;
}

@media screen and (max-width: 767px) {
   .flow-list .item {
      border-width: 2px;
   }

   .flow-list .item+.item {
      margin-top: 20px;
   }

   .flow-list .item+.item:before {
      height: 20px;
      border-left-width: 2px;
      margin-bottom: 2px;
   }

   .flow-list .item:not(:first-child) {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
   }

   .flow-list .item:not(:first-child) dt {
      width: 100%;
      padding-bottom: 15px;
   }

   .flow-list .item:not(:first-child) dt .no {
      width: 75px;
      font-size: 12px;
      line-height: 21px;
   }

   .flow-list .item:not(:first-child) dd {
      width: 100%;
      border-top: 1px solid #cbe3f0;
      border-left: 0;
      padding: 15px 0 0;
   }

   .flow-list .item:not(:first-child) dd h3 {
      font-size: 16px;
      line-height: 26px;
   }

   .flow-list .item:not(:first-child) .txt {
      line-height: 23px;
      letter-spacing: 0.025em;
   }

   .flow-list .item:first-child {
      padding: 20px 0;
   }

   .flow-list .item:first-child .sub {
      width: 55px;
      font-size: 14px;
      line-height: 14px;
      top: -7px;
   }

   .flow-list .item:first-child h3 {
      line-height: 27px;
      letter-spacing: 0.05em;
   }
}

/* -- -- */
[id*="workflow__sec"] h2 img {
   display: block;
   width: auto;
   height: 92px;
   margin: 0 auto 15px;
}

[id*="workflow__sec"] .photo {
   padding-top: 50px;
}

[id*="workflow__sec"] .flow-list {
   padding-top: 75px;
}

@media screen and (max-width: 767px) {
   [id*="workflow__sec"] h2 img {
      height: 60px;
   }

   [id*="workflow__sec"] .photo {
      padding-top: 40px;
   }

   [id*="workflow__sec"] .flow-list {
      padding-top: 40px;
   }
}

/* -- -- */
#workflow__sec1 {
   padding: 120px 0 0;
}

#workflow__sec1 .flow-list .item:first-child {
   background-color: #f0f0e6;
}

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

/* -- -- */
#workflow__sec2 {
   padding: 120px 0;
}

#workflow__sec2 .flow-list .item1 {
   align-items: inherit;
   gap: 0 44px;
   border: 0;
   padding: 0;
}

#workflow__sec2 .flow-list .item1:before {
   display: none;
}

#workflow__sec2 .flow-list .item1 dl {
   display: flex;
   flex-wrap: wrap;
   width: calc(50% - 22px);
   text-align: center;
   line-height: 24px;
   border: 3px solid #94a46c;
   box-sizing: border-box;
   padding: 15px;
   position: relative;
}

#workflow__sec2 .flow-list .item1 dl:before {
   content: '';
   height: 40px;
   border-left: 3px solid #94a46c;
   position: absolute;
   bottom: 100%;
   left: 50%;
   transform: translateX(-50%);
   margin-bottom: 3px;
}

#workflow__sec2 .flow-list .item1 dl:after {
   content: '';
   height: 40px;
   border-left: 3px solid #94a46c;
   position: absolute;
   top: 100%;
   left: 50%;
   transform: translateX(-50%);
   margin-top: 3px;
}

#workflow__sec2 .flow-list .item1 dl>* {
   display: flex;
   flex-direction: column;
   justify-content: center;
   width: 50%;
   box-sizing: border-box;
}

#workflow__sec2 .flow-list .item1 dl dd {
   gap: 10px;
   padding-left: 0;
}

#workflow__sec2 .flow-list .item1 .tel {
   width: 42px;
   margin: 0 auto 0;
}

#workflow__sec2 .flow-list .item1 .email {
   width: 70px;
   margin: 0 auto 0;
}

#workflow__sec2 .flow-list .item1 a {
   display: inline-block;
   font-weight: 700;
   border-bottom: 1px solid;
}

#workflow__sec2 .flow-list .item1 a:hover {
   border-color: transparent;
}

#workflow__sec2 .flow-list .item1+.item:before {
   display: none;
}

@media screen and (max-width: 991px) {
   #workflow__sec2 .flow-list .item1 {
      align-items: flex-start;
   }

   #workflow__sec2 .flow-list .item1 dl {
      padding: 0 15px;
   }

   #workflow__sec2 .flow-list .item1 dl+dl {
      padding-bottom: 77px;
   }

   #workflow__sec2 .flow-list .item1 dl>* {
      width: 100%;
      padding: 15px 0;
   }

   #workflow__sec2 .flow-list .item1 dl dd {
      border-top: 1px solid #cbe3f0;
      border-left: 0;
   }
}

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

   #workflow__sec2 .flow-list .item1 {
      gap: 20px;
   }

   #workflow__sec2 .flow-list .item1 dl {
      width: calc(50% - 10px);
      border-width: 2px;
      padding: 0 10px;
   }

   #workflow__sec2 .flow-list .item1 dl:before {
      height: 20px;
      border-left-width: 2px;
      margin-bottom: 2px;
   }

   #workflow__sec2 .flow-list .item1 dl:after {
      height: 20px;
      border-left-width: 2px;
      margin-top: 2px;
   }

   #workflow__sec2 .flow-list .item1 dl dd {
      gap: 5px;
      font-size: 11px;
      line-height: 15px;
   }

   #workflow__sec2 .flow-list .item1 dl .h-18 {
      font-size: 12px;
   }

   #workflow__sec2 .flow-list .item1 dl .tel {
      width: 32px;
   }

   #workflow__sec2 .flow-list .item1 dl .email {
      width: 52px;
   }

   #workflow__sec2 .flow-list .item1 dl+dl {
      padding-bottom: 35px;
   }

   #workflow__sec2 .flow-list .item1 dl+dl dd {
      padding-top: 30px;
   }
}

/* -- -- */
/*=============================================
 * <after support>
 *=============================================*/
/* -- -- */
.kv-aftersupport {
   background-image: url("../img/after-support/kv.jpg");
}

@media screen and (max-width: 767px) {
   .kv-aftersupport {
      background-image: url("../img/after-support/sp_kv.jpg");
   }
}

/* -- -- */
[id*="aftersupport"] {
   padding-top: 120px;
}

[id*="aftersupport"]:last-child {
   padding-bottom: 120px;
}

[id*="aftersupport"] h2 img {
   display: block;
   width: auto;
   height: 100px;
   margin: 0 auto 5px;
}

[id*="aftersupport"] .sub-ttl {
   font-weight: 300;
   letter-spacing: 0.1em;
   padding-top: 50px;
}

[id*="aftersupport"] .note {
   font-size: 14px;
   letter-spacing: 0.1em;
   padding-top: 15px;
}

[id*="aftersupport"] .box {
   display: flex;
   flex-wrap: wrap;
   gap: 50px;
   padding-top: 50px;
}

[id*="aftersupport"] .box .item {
   width: calc(50% - 25px);
}

[id*="aftersupport"] .box h3 {
   background-color: #94a46c;
   color: #fff;
   letter-spacing: 0.05em;
   padding: 14px 25px;
}

[id*="aftersupport"] .box .photo {
   padding-top: 10px;
}

[id*="aftersupport"] .box .txt {
   letter-spacing: 0.05em;
   padding-top: 15px;
}

[id*="aftersupport"] .box .item.full {
   display: flex;
   flex-wrap: wrap;
   gap: 10px 40px;
   width: 100%;
}

[id*="aftersupport"] .box .item.full h3 {
   width: 100%;
}

[id*="aftersupport"] .box .item.full .photo {
   width: calc(50% - 20px);
   padding-top: 0;
}

[id*="aftersupport"] .box .item.full .txt {
   width: calc(50% - 20px);
}

[id*="aftersupport"] .note1 {
   padding-top: 50px;
}

@media screen and (max-width: 991px) {
   [id*="aftersupport"] .box h3 {
      font-size: 18px;
      padding: 14px;
   }
}

@media screen and (max-width: 767px) {
   [id*="aftersupport"] {
      padding-top: 50px;
   }

   [id*="aftersupport"]:last-child {
      padding-bottom: 70px;
   }

   [id*="aftersupport"] h2 img {
      height: 50px;
   }

   [id*="aftersupport"] .sub-ttl {
      letter-spacing: 0.05em;
      padding-top: 25px;
   }

   [id*="aftersupport"] .note {
      font-size: 12px;
      line-height: 26px;
      letter-spacing: 0.05em;
      padding-top: 10px;
   }

   [id*="aftersupport"] .box {
      display: flex;
      flex-wrap: wrap;
      gap: 30px;
      padding-top: 20px;
   }

   [id*="aftersupport"] .box .item {
      width: 100%;
   }

   [id*="aftersupport"] .box h3 {
      font-size: 16px;
      padding: 5px 15px;
   }

   [id*="aftersupport"] .box .txt {
      line-height: 23px;
      text-align: justify;
   }

   [id*="aftersupport"] .box .item.full {
      gap: 10px;
   }

   [id*="aftersupport"] .box .item.full .photo {
      width: 100%;
   }

   [id*="aftersupport"] .box .item.full .txt {
      width: 100%;
      padding-top: 5px;
   }

   [id*="aftersupport"] .note1 {
      font-size: 14px;
      line-height: 21px;
      padding-top: 25px;
   }
}

/* -- -- */
/*=============================================
 * <company>
 *=============================================*/
/* -- -- */
.kv-company {
   background-image: url("../img/company/kv.jpg");
}

@media screen and (max-width: 767px) {
   .kv-company {
      background-image: url("../img/company/sp_kv.jpg");
   }

   .table-of-content .company-list {
      gap: 20px 10px;
   }
}

/* -- -- */
#company-profile {
   padding: 120px 0;
}

#company-profile .tb-style {
   padding-top: 50px;
}

@media screen and (max-width: 767px) {
   #company-profile {
      padding: 50px 0 70px;
   }

   #company-profile .tb-style {
      padding-top: 25px;
   }
}

/* -- -- */
#greeting {
   padding: 0 0 120px;
}

#greeting h2 {
   padding-bottom: 50px;
}

#greeting .photo {
   display: flex;
   align-items: flex-end;
   background: url("../img/company/greeting-photo.jpg") no-repeat center/cover;
   width: 100%;
   height: 800px;
}

#greeting .photo h3 {
   font-weight: 300;
   font-size: 30px;
   letter-spacing: 0.5em;
   line-height: 44px;
}

#greeting .photo h3 span {
   display: inline-block;
   background-color: #fff;
   color: #000;
   margin-bottom: 10px;
   padding: 10px 30px;
}

#greeting .photo h3 span:last-child {
   margin-bottom: 0;
}

#greeting .txt {
   line-height: 47px;
   letter-spacing: 0.1em;
   padding-top: 80px;
}

#greeting .txt p+p {
   padding-top: 50px;
}

#greeting .txt p:last-child {
   text-align: right;
}

@media screen and (max-width: 767px) {
   #greeting {
      padding-bottom: 70px;
   }

   #greeting h2 {
      padding-bottom: 25px;
   }

   #greeting .photo {
      height: 100vw;
      background-image: url("../img/company/sp_greeting-photo.jpg");
   }

   #greeting .photo h3 {
      font-size: 23px;
      letter-spacing: 0.1em;
      line-height: 36px;
      padding: 0;
   }

   #greeting .photo h3 span {
      padding: 2px 15px;
   }

   #greeting .txt {
      line-height: 27px;
      padding-top: 30px;
   }

   #greeting .txt p+p {
      padding-top: 30px;
   }
}

/* -- -- */
#corporate-philosophy {
   padding: 0 0 120px;
}

#corporate-philosophy h2 {
   padding-bottom: 50px;
}

#corporate-philosophy .box {
   border-top: 1px solid #c8c8c8;
   border-bottom: 1px solid #c8c8c8;
   text-align: center;
   padding: 90px 0;
}

#corporate-philosophy .box+.box {
   border-top: 0;
}

#corporate-philosophy .box h3 {
   font-weight: 500;
   letter-spacing: 0.3em;
}

#corporate-philosophy .box .txt {
   line-height: 21px;
   letter-spacing: 0.1em;
   padding-top: 15px;
}

#corporate-philosophy .box .txt-img1 {
   width: 100%;
   max-width: 930px;
   margin: 0 auto;
   padding-top: 40px;
}

#corporate-philosophy .box .txt-img2 {
   width: 100%;
   max-width: 516px;
   margin: 0 auto;
   padding-top: 40px;
}

@media screen and (max-width: 767px) {
   #corporate-philosophy {
      padding-bottom: 70px;
   }

   #corporate-philosophy h2 {
      padding-bottom: 30px;
   }

   #corporate-philosophy .box {
      padding: 30px 0;
   }

   #corporate-philosophy .box h3 {
      font-size: 16px;
      letter-spacing: 0.15em;
   }

   #corporate-philosophy .box .txt {
      font-size: 14px;
      padding-top: 10px;
   }

   #corporate-philosophy .box .txt-img1 {
      padding-top: 20px;
   }

   #corporate-philosophy .box .txt-img2 {
      padding-top: 20px;
   }
}

/* -- -- */
#SDGs {
   padding: 0 0 120px;
}

#SDGs h3 {
   font-weight: 300;
   letter-spacing: 0.2em;
   line-height: 56px;
   padding-top: 50px;
}

#SDGs .txt1 {
   line-height: 42px;
   letter-spacing: 0.1em;
   padding-top: 10px;
}

#SDGs dl {
   display: flex;
   flex-wrap: wrap;
   gap: 30px;
   padding-top: 50px;
}

#SDGs dl dt {
   width: 458px;
}

#SDGs dl dd {
   width: calc(100% - 488px);
}

#SDGs dl h4 {
   font-weight: 700;
   font-size: 19px;
   line-height: 36px;
   letter-spacing: 0.1em;
}

#SDGs dl .txt {
   letter-spacing: 0.1em;
   line-height: 27px;
   padding-top: 10px;
}

#SDGs .photo {
   width: 330px;
   padding-top: 80px;
}

#SDGs .txt2 {
   font-size: 14px;
   line-height: 24px;
   letter-spacing: 0.05em;
   line-height: 31px;
   padding-top: 25px;
}

#SDGs .txt2 strong {
   display: inline-block;
   font-weight: 500;
   font-size: 17px;
   line-height: 31px;
}

@media screen and (max-width: 991px) {
   #SDGs h3 {
      font-size: 20px;
   }

   #SDGs .txt1 br.pc {
      display: none;
   }

   #SDGs dl dd .txt br {
      display: none;
   }
}

@media screen and (max-width: 767px) {
   #SDGs {
      padding-bottom: 70px;
   }

   #SDGs h3 {
      font-size: 18px;
      line-height: 34px;
      letter-spacing: 0.1em;
      padding-top: 20px;
   }

   #SDGs .txt1 {
      line-height: 27px;
      letter-spacing: 0.05em;
      padding-top: 10px;
   }

   #SDGs dl {
      gap: 20px;
      padding-top: 30px;
   }

   #SDGs dl dt {
      width: 100%;
   }

   #SDGs dl dd {
      width: 100%;
   }

   #SDGs dl dd h4 {
      font-size: 16px;
      letter-spacing: 0.05em;
      line-height: 21px;
   }

   #SDGs dl dd .txt {
      font-size: 13px;
      letter-spacing: 0.05em;
      line-height: 21px;
      padding-top: 10px;
   }

   #SDGs .photo {
      width: 201px;
      padding-top: 30px;
   }

   #SDGs .txt2 {
      font-size: 12px;
      line-height: 18px;
      padding-top: 15px;
   }

   #SDGs .txt2 strong {
      font-size: 12px;
      line-height: 20px;
   }
}

/* -- -- */
/*=============================================
 * <recruit>
 *=============================================*/
/* -- -- */
.kv-recruit {
   background-image: url("../img/recruit/kv.jpg");
}

@media screen and (max-width: 767px) {
   .kv-recruit {
      background-image: url("../img/recruit/sp_kv.jpg");
   }

   .table-of-content ul.recruit-list {
      justify-content: flex-start;
      gap: 20px 30px;
      width: 100%;
      max-width: 315px;
      margin: 0 auto;
   }

   .table-of-content ul.recruit-list li {
      line-height: 14px;
   }
}

/* -- -- */
#staff-interview {
   padding: 120px 0;
}

#staff-interview .box .txt {
   line-height: 40px;
   letter-spacing: 0.1em;
   padding-top: 15px;
}

#staff-interview .voice-item {
   padding-top: 80px;
}

#staff-interview .voice-item h3 img {
   margin-bottom: 10px;
}

#staff-interview .voice-item figure {
   padding-top: 40px;
   position: relative;
}

#staff-interview .voice-item figure figcaption {
   font-weight: 300;
   letter-spacing: 0.2em;
   line-height: 67px;
   position: absolute;
   bottom: 0;
   left: 0;
}

#staff-interview .voice-item figure figcaption span {
   display: inline-block;
   background-color: #fff;
   margin-bottom: 10px;
   padding-right: 10px;
}

#staff-interview .voice-item figure figcaption span:last-child {
   margin-bottom: 0;
}

#staff-interview .voice-item dl {
   padding-top: 40px;
}

#staff-interview .voice-item dl dt {
   font-weight: 300;
   letter-spacing: 0.1em;
}

#staff-interview .voice-item dl dd {
   display: inline-block;
   line-height: 29px;
   letter-spacing: 0.1em;
   border-bottom: 1px solid rgba(0, 0, 0, 0.3);
   padding-top: 10px;
}

#staff-interview .voice-item .txt {
   line-height: 40px;
   letter-spacing: 0.1em;
   padding-top: 40px;
}

@media screen and (max-width: 991px) {
   #staff-interview .voice-item figure figcaption {
      font-size: 28px;
   }
}

@media screen and (max-width: 767px) {
   #staff-interview {
      padding: 50px 0;
   }

   #staff-interview .box .txt {
      line-height: 20px;
      letter-spacing: 0.075em;
      text-align: justify;
      padding-top: 15px;
   }

   #staff-interview .box .txt br {
      display: none;
   }

   #staff-interview .voice-item {
      padding-top: 50px;
   }

   #staff-interview .voice-item figure {
      margin: 0 -20px;
      padding-top: 30px;
   }

   #staff-interview .voice-item figure figcaption {
      font-size: 21px;
      line-height: 37px;
   }

   #staff-interview .voice-item figure figcaption span {
      padding-right: 0;
      padding-left: 20px;
   }

   #staff-interview .voice-item dl {
      padding-top: 25px;
   }

   #staff-interview .voice-item dl dd {
      font-size: 13px;
      line-height: 20px;
      letter-spacing: 0.05em;
      padding-top: 0;
   }

   #staff-interview .voice-item .txt {
      line-height: 27px;
      letter-spacing: 0.05em;
      padding-top: 25px;
   }
}

/* -- -- */
#job-information {
   padding: 120px 0;
}

#job-information .tb-style {
   padding-top: 60px;
}

#job-information .tb-style dl dt {
   width: 160px;
}

#job-information .tb-style dl dd {
   width: calc(100% - 160px);
}

.recruit-form {
   padding-top: 120px;
}

.recruit-form h3 {
   letter-spacing: 0.05em;
}

@media screen and (max-width: 767px) {
   #job-information {
      padding: 50px 0;
   }

   #job-information .tb-style {
      padding-top: 25px;
   }

   #job-information .tb-style dl dt {
      width: 85px;
   }

   #job-information .tb-style dl dd {
      width: calc(100% - 85px);
   }

   .recruit-form {
      padding-top: 50px;
   }

   .recruit-form h3 {
      font-size: 23px;
      line-height: 33px;
      letter-spacing: 0.1em;
   }
}

/* -- -- */
/*=============================================
 * <Contact>
 *=============================================*/
/* -- -- */
#mailform input:not([type="radio"], [type="checkbox"]),
#mailform textarea {
   display: block;
   width: 100%;
   height: 70px;
   background-color: #fff;
   border: 1px solid #dcdcdc;
   color: #505050;
   line-height: 32px;
   border-radius: 0 !important;
   outline: none;
   -webkit-appearance: none;
   -moz-appearance: none;
   box-sizing: border-box;
   padding: 10px 20px;
}

#mailform textarea {
   height: 480px;
   resize: vertical;
}

#mailform .select {
   display: flex;
   width: 100%;
   height: 70px;
   position: relative;
}

#mailform .select select {
   display: block;
   width: 100%;
   height: 100%;
   -webkit-appearance: none;
   -moz-appearance: none;
   outline: 0;
   box-shadow: none;
   line-height: 32px;
   padding: 10px 50px 10px 20px;
   color: #505050;
   border: 1px solid #dcdcdc;
   background-color: #fff;
   cursor: pointer;
}

#mailform .select select::-ms-expand {
   display: none;
}

#mailform .select::after {
   content: '';
   background: url("../img/common/select-arrow.svg") no-repeat center top/cover;
   width: 12px;
   height: 7px;
   position: absolute;
   top: 32px;
   right: 20px;
}

#mailform .form-input {
   padding-top: 25px;
}

#mailform .form-input dl {
   padding-top: 25px;
}

#mailform .form-input dl dt {
   font-weight: 400;
   letter-spacing: 0.1em;
   padding-bottom: 5px;
}

#mailform .form-input .row1 {
   display: flex;
   flex-wrap: wrap;
   gap: 20px;
}

#mailform .form-input .row1 dl {
   width: calc(50% - 10px);
}

#mailform .form-input .row2 {
   display: flex;
   flex-wrap: wrap;
   gap: 20px;
}

#mailform .form-input .row2 dl:nth-child(odd) {
   width: calc(30% - 10px);
}

#mailform .form-input .row2 dl:nth-child(even) {
   width: calc(70% - 10px);
}

#mailform .form-btn {
   display: flex;
   align-items: center;
   justify-content: center;
   padding-top: 90px;
}

#mailform .form-btn button,
#mailform .form-btn input {
   display: block;
   width: 360px;
   height: 46px;
   background: #505050 url("../img/common/arrow-right-white.svg") no-repeat center right 15px/6px auto;
   color: #fff;
   font-weight: 400;
   font-size: 23px;
   line-height: 23px;
   letter-spacing: 0.1em;
   border: 0;
   border-radius: 50px;
   cursor: pointer;
   transition: all 0.3s;
}

#mailform .form-btn button:hover,
#mailform .form-btn input:hover {
   background-color: #94a46c;
}

.contact-form {
   border-top: 1px solid #c8c8c8;
   padding: 120px 0;
}

.contact-form .wrap {
   width: calc(100% - 640px);
}

.contact-form h2 {
   font-weight: 500;
   letter-spacing: 0.14em;
}

@media screen and (max-width: 991px) {
   .contact-form .wrap {
      width: 100%;
   }
}

@media screen and (max-width: 767px) {
   #mailform input:not([type="radio"], [type="checkbox"]) {
      height: 50px;
   }

   #mailform textarea {
      height: 240px;
   }

   #mailform .select {
      height: 50px;
   }

   #mailform .select select {
      font-size: 14px;
      padding: 0px 50px 0px 20px;
   }

   #mailform .select:after {
      top: 22px;
   }

   #mailform .form-input {
      padding-top: 20px;
   }

   #mailform .form-input dl {
      padding-top: 20px;
   }

   #mailform .form-input .row1 {
      gap: 0px;
   }

   #mailform .form-input .row1 dl {
      width: 100%;
   }

   #mailform .form-input .row2 {
      gap: 0px;
   }

   #mailform .form-input .row2 dl:nth-child(odd),
   #mailform .form-input .row2 dl:nth-child(even) {
      width: 100%;
   }

   #mailform .form-btn {
      padding-top: 50px;
   }

   #mailform .form-btn button,
   #mailform .form-btn input {
      width: 50%;
      height: 35px;
      font-size: 13px;
      background-size: 4px auto;
   }

   .contact-form {
      padding: 50px 0;
   }
}

/* -- -- */
/*=============================================
 * <policy>
 *=============================================*/
/* -- -- */
#policy-contents {
   border-top: 1px solid #c8c8c8;
   padding: 120px 0;
}

#policy-contents .wrap {
   width: calc(100% - 640px);
}

#policy-contents .txt {
   padding-top: 60px;
}

#policy-contents .txt h3 {
   background-color: #f2f2f2;
   font-weight: 400;
   padding: 10px 20px;
}

#policy-contents .txt h3:not(:first-child) {
   margin-top: 50px;
}

#policy-contents .txt p {
   padding-top: 15px;
}

#policy-contents .txt p+p {
   padding-top: 30px;
}

#policy-contents .txt p+ol {
   padding-top: 30px;
}

#policy-contents .txt li {
   text-indent: -16px;
   padding-left: 16px;
}

@media screen and (max-width: 991px) {
   #policy-contents .wrap {
      width: 100%;
   }
}

@media screen and (max-width: 767px) {
   #policy-contents {
      padding: 50px 0;
   }

   #policy-contents .txt {
      letter-spacing: 0.05em;
      padding-top: 40px;
   }

   #policy-contents .txt h3 {
      font-size: 16px;
      padding: 5px 15px;
   }

   #policy-contents .txt h3:not(:first-child) {
      margin-top: 25px;
   }

   #policy-contents .txt p {
      padding-top: 10px;
   }

   #policy-contents .txt p+p {
      padding-top: 20px;
   }

   #policy-contents .txt p+ol {
      padding-top: 20px;
   }

   #policy-contents .txt li {
      text-indent: -15px;
      padding-left: 15px;
   }
}

/* -- -- */
/*=============================================
 * <privacy>
 *=============================================*/
/* -- -- */
#privacy-contents {
   border-top: 1px solid #c8c8c8;
   padding: 120px 0;
}

#privacy-contents .wrap {
   width: calc(100% - 640px);
}

#privacy-contents .txt {
   line-height: 26px;
   padding-top: 60px;
}

#privacy-contents .txt h3 {
   background-color: #f2f2f2;
   font-weight: 400;
   padding: 10px 20px;
}

#privacy-contents .txt h3:not(:first-child) {
   margin-top: 50px;
}

#privacy-contents .txt p {
   padding-top: 15px;
}

#privacy-contents .txt p+p {
   padding-top: 30px;
}

#privacy-contents .txt p+ol {
   padding-top: 30px;
}

#privacy-contents .txt li {
   text-indent: -16px;
   padding-left: 16px;
}

#privacy-contents .txt .note {
   font-size: 14px;
   padding-top: 15px;
}

#privacy-contents .txt table {
   width: 100%;
   margin-top: 30px;
}

#privacy-contents .txt table th,
#privacy-contents .txt table td {
   font-weight: 300;
   box-sizing: border-box;
   border: 1px solid #c8c8c8;
   padding: 15px;
}

#privacy-contents .txt table th {
   width: 200px;
   text-align: left;
}

#privacy-contents .txt table td small {
   display: inline-block;
   vertical-align: top;
   font-size: 10px;
   line-height: 2;
}

@media screen and (max-width: 991px) {
   #privacy-contents .wrap {
      width: 100%;
   }
}

@media screen and (max-width: 767px) {
   #privacy-contents {
      padding: 50px 0;
   }

   #privacy-contents .txt {
      letter-spacing: 0.05em;
      padding-top: 40px;
   }

   #privacy-contents .txt h3 {
      font-size: 16px;
      padding: 5px 15px;
   }

   #privacy-contents .txt h3:not(:first-child) {
      margin-top: 25px;
   }

   #privacy-contents .txt p {
      padding-top: 10px;
   }

   #privacy-contents .txt p+p {
      padding-top: 20px;
   }

   #privacy-contents .txt p+ol {
      padding-top: 20px;
   }

   #privacy-contents .txt li {
      text-indent: -14px;
      padding-left: 14px;
   }

   #privacy-contents .txt table th,
   #privacy-contents .txt table td {
      font-size: 12px;
      line-height: 18px;
      padding: 10px;
   }

   #privacy-contents .txt table th {
      width: 80px;
      text-align: justify;
   }

   #privacy-contents .txt table th br {
      display: none;
   }

   #privacy-contents .txt table td small {
      font-size: 8px;
   }
}

/* -- -- */

.coming-soon {
   display: flex;
   align-items: center;
   justify-content: center;
   flex-direction: column;
   width: 100%;
   height: 600px;
   border-top: 1px solid #c8c8c8;
   text-align: center;
   padding: 0 0;
}

.coming-soon h2 {
   letter-spacing: 0.14em;
   line-height: 62px;
}

@media screen and (max-width: 767px) {
   .coming-soon {
      height: 300px;
      font-size: 13px;
   }
}