@charset "UTF-8";
/*============
  base
  ============*/
html {
  -webkit-text-size-adjust: 100%;
     -moz-text-size-adjust: 100%;
      -ms-text-size-adjust: 100%;
          text-size-adjust: 100%;
  font-size: 62.5%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  min-height: 100vh;
}

*, *::before, *::after {
  -webkit-box-sizing: inherit;
          box-sizing: inherit;
  padding: 0;
  margin: 0;
}

body {
  font-family: -apple-system-subset,Hiragino Kaku Gothic ProN,"Hiragino Sans",Helvetica,sans-serif;
  /*--font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, Arial, "Hiragino Sans", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;*/
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 1.5em;
  letter-spacing: .1em;
  color: #000;
  background-color: #FFF;
  width: 100%;
  height: auto;
  margin: 0;
}

a {
  color: #0000ee;
  text-decoration: none;
}

/*
article, aside, footer, header, nav, section,
figcaption, figure, main {
  display: block;
}
*/
dl, dt, dd, ul, ol, li, p, blockquote, fieldset, div {
  margin: 0;
  padding: 0;
}

table {
  border-collapse: collapse;
}

h1, h2, h3, h4, h5, h6 {
  margin: 0;
  font-weight: normal;
}

ul, ol {
  list-style: none;
}

img {
  vertical-align: bottom;
  max-width: 100%;
  height: auto;
}

.wrapper {
  min-width: 320px;
  width: 100%;
  /*max-width: 1000px;*/
  margin: 0 auto;
  padding: 0;
}

.jsOff {
  position: fixed;
  text-align: center;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  z-index: 300;
  width: 100%;
  min-width: 320px;
}

.is-pc {
  display: block;
}

.is-sp {
  display: none;
}

.is-landscape {
  display: block;
}

.is-portrait {
  display: none;
}

/*
#op {
  position: fixed;
  background-color: #FFF;
  width: 100%;
  height: 100vh;
  z-index: 300;
  overflow: hidden;
}
*/
/* Loading */
.loading {
  width: 100vw;
  height: 100vh;
  -webkit-transition: all 1s;
  transition: all 1s;
  background-color: #FFF;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  overflow: hidden;
}

/* loaded */
.loaded {
  opacity: 0;
  -webkit-transition-delay: 0.5s;
          transition-delay: 0.5s;
  visibility: hidden;
}

.bg-kv-loading {
  display: none;
}

.bg-kv {
  display: block;
  position: fixed;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  right: 0;
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto;
  z-index: -100;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  overflow: hidden;
}

.bg-kv video {
  width: 100%;
  min-height: 100vh;
  vertical-align: bottom;
  height: auto;
}

.bg-kv-inner {
  -webkit-filter: drop-shadow(0px 0px #000);
          filter: drop-shadow(0px 0px #000);
}

.bg-kv img {
  width: 100%;
  min-height: 100vh;
  vertical-align: bottom;
  height: auto;
}

/* scroll */
.scroll-block {
  opacity: 0;
  -webkit-transition: all 1s;
  transition: all 1s;
}

.scroll-block.blockIn {
  opacity: 1;
}

@media screen and (orientation: landscape) {
  .is-landscape {
    display: block;
  }
  .is-portrait {
    display: none;
  }
  .menu-content ul {
    background: url(../img/bg_menu_pc.png);
  }
  .footer-box .menu-content ul {
    background: none;
  }
}

@media screen and (orientation: portrait) {
  .is-landscape {
    display: none;
  }
  .is-portrait {
    display: block;
  }
  .bg-kv-inner {
    margin-top: -2vh;
  }
  .menu-content ul {
    background: url(../img/bg_menu_sp.png);
  }
}

@media screen and (max-width: 1024px) {
  .is-pc {
    display: none;
  }
  .is-sp {
    display: block;
  }
}

@media screen and (max-width: 768px) {
  .br-sp {
    display: none;
  }
}

@media screen and (max-width: 599px) {
  body {
    font-size: 1.2em;
  }
}

/*---- スクロールアニメーション ----*/
.fadeIn {
  opacity: 0;
  -webkit-transition: 0.5s;
  transition: 0.5s;
}

.fadeIn.is-show {
  opacity: 1;
}

.fadeIn_01 {
  opacity: 0;
  -webkit-transition: 1s;
  transition: 1s;
  -webkit-transition-delay: 0.3s;
          transition-delay: 0.3s;
}

.fadeIn_01.is-show {
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
  opacity: 1;
}

.fadeIn_02 {
  opacity: 0;
  -webkit-transition: 1s;
  transition: 1s;
  -webkit-transition-delay: 0.5s;
          transition-delay: 0.5s;
}

.fadeIn_02.is-show {
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
  opacity: 1;
}

.fadeIn_03 {
  opacity: 0;
  -webkit-transition: 1s;
  transition: 1s;
  -webkit-transition-delay: 0.8s;
          transition-delay: 0.8s;
}

.fadeIn_03.is-show {
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
  opacity: 1;
}

.fadeIn_up {
  opacity: 0;
  -webkit-transform: translate(0, 30%);
          transform: translate(0, 30%);
  -webkit-transition: 1s;
  transition: 1s;
}

.fadeIn_up.is-show {
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
  opacity: 1;
}

.fadeIn_up_02 {
  opacity: 0;
  -webkit-transform: translate(0, 30%);
          transform: translate(0, 30%);
  -webkit-transition: 1s;
  transition: 1s;
  -webkit-transition-delay: 0.8s;
          transition-delay: 0.8s;
}

.fadeIn_up_02.is-show {
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
  opacity: 1;
}

/*============
  layout
  ============*/
/*---- header ----*/
.header {
  position: relative;
  width: 100%;
  height: 100vh;
}

.nav {
  background-color: #FFF;
  height: 60px;
}

.nav-box {
  position: fixed;
  z-index: 150;
  width: 100%;
}

.logo {
  position: absolute;
  z-index: 1;
  top: 12px;
  left: 15px;
  width: 152px;
}

.logo img {
  display: block;
}

/*-- menu --*/
#menu-check {
  display: none;
}

.menu {
  position: absolute;
  z-index: 100;
  top: 10px;
  right: 10px;
}

.menu-content ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.menu-content ul li {
  padding: 0 0 0 56px;
}

.menu-content ul li a {
  display: inline-block;
  font-size: 1.4rem;
  font-weight: 600;
  letter-spacing: .1em;
  color: #000;
  text-decoration: none;
}

.menu-content__icon a::after {
  content: "";
  display: inline-block !important;
  background: url(../img/icon-link.png) no-repeat;
  background-size: contain;
  vertical-align: middle;
  width: 12px;
  height: 11px;
  margin: -2px 0 0 4px;
}

.menu-content__frame {
  border: solid 2px #000;
  line-height: 1;
  padding: 10px 20px;
}

/*-- kv --*/
.kv {
  max-width: 1400px;
  margin: 0 auto;
}

.kv-content {
  position: absolute;
  bottom: 40px;
  left: 86px;
}

.kv-box {
  display: block;
}

.kv-bar {
  position: relative;
  display: inline-block;
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.kv-bar:before {
  content: '';
  display: inline-block;
  width: 0;
  height: 90%;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
  background: #000;
}

.kv-txt {
  opacity: 0;
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
  font-size: 4.5rem;
  font-weight: 600;
  letter-spacing: .08em;
  line-height: 1.4;
}

.kv .kv-bar:before {
  -webkit-animation: kv-bar 1s ease 3s 1 normal forwards;
  animation: kv-bar 1s ease 3s 1 normal forwards;
}

.kv .kv-txt {
  -webkit-animation: kv-txt 0s ease 3.5s 1 normal forwards;
  animation: kv-txt 0s ease 3.5s 1 normal forwards;
}

.fadeIn-kv.is-show .kv-bar:before {
  -webkit-animation: kv-bar 1s ease .5s 1 normal forwards;
  animation: kv-bar 1s ease .5s 1 normal forwards;
}

.fadeIn-kv.is-show .kv-txt {
  -webkit-animation: kv-txt 0s ease 1s 1 normal forwards;
  animation: kv-txt 0s ease 1s 1 normal forwards;
}

@-webkit-keyframes kv-bar {
  0% {
    left: 0;
    right: auto;
    width: 0;
  }
  50% {
    left: 0;
    right: auto;
    width: 100%;
  }
  51% {
    left: auto;
    right: 0;
    width: 100%;
  }
  100% {
    left: auto;
    right: 0;
    width: 0;
  }
}

@keyframes kv-bar {
  0% {
    left: 0;
    width: 0;
  }
  50% {
    left: 0;
    width: 100%;
  }
  51% {
    left: 0;
    width: 100%;
  }
  100% {
    left: 100%;
    width: 0;
  }
}

@-webkit-keyframes kv-txt {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes kv-txt {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

/*-- scrolldown --*/
.scrolldown {
  position: absolute;
  bottom: 0;
  right: 50px;
  height: 100px;
}

.scrolldown::after {
  content: "";
  position: absolute;
  top: 0;
  width: 2px;
  height: 100px;
  background: #000;
  -webkit-animation: scrolldown-anime 2s cubic-bezier(1, 0, 0, 1) infinite;
          animation: scrolldown-anime 2s cubic-bezier(1, 0, 0, 1) infinite;
}

@-webkit-keyframes scrolldown-anime {
  0% {
    -webkit-transform: scale(1, 0);
            transform: scale(1, 0);
    -webkit-transform-origin: 0 0;
            transform-origin: 0 0;
  }
  50% {
    -webkit-transform: scale(1, 1);
            transform: scale(1, 1);
    -webkit-transform-origin: 0 0;
            transform-origin: 0 0;
  }
  50.1% {
    -webkit-transform: scale(1, 1);
            transform: scale(1, 1);
    -webkit-transform-origin: 0 100%;
            transform-origin: 0 100%;
  }
  100% {
    -webkit-transform: scale(1, 0);
            transform: scale(1, 0);
    -webkit-transform-origin: 0 100%;
            transform-origin: 0 100%;
  }
}

@keyframes scrolldown-anime {
  0% {
    -webkit-transform: scale(1, 0);
            transform: scale(1, 0);
    -webkit-transform-origin: 0 0;
            transform-origin: 0 0;
  }
  50% {
    -webkit-transform: scale(1, 1);
            transform: scale(1, 1);
    -webkit-transform-origin: 0 0;
            transform-origin: 0 0;
  }
  50.1% {
    -webkit-transform: scale(1, 1);
            transform: scale(1, 1);
    -webkit-transform-origin: 0 100%;
            transform-origin: 0 100%;
  }
  100% {
    -webkit-transform: scale(1, 0);
            transform: scale(1, 0);
    -webkit-transform-origin: 0 100%;
            transform-origin: 0 100%;
  }
}

/*---- tab ----*/
@media screen and (max-width: 1024px) {
  .nav {
    background: none;
  }
  .logo {
    position: absolute;
    z-index: 1;
    width: 127px;
    top: 12px;
    left: 4%;
  }
  /*-- menu --*/
  .menu {
    position: relative;
    top: 0;
    right: 0;
  }
  .menu-btn {
    position: absolute;
    top: 15px;
    right: 4%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    height: 40px;
    width: 40px;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    z-index: 90;
  }
  .menu-btn span,
  .menu-btn span:before,
  .menu-btn span:after {
    content: '';
    display: block;
    height: 2px;
    width: 40px;
    border-radius: 3px;
    background-color: #000;
    position: absolute;
  }
  .menu-btn span:before {
    bottom: 14px;
  }
  #menu-check:checked ~ .menu-btn span {
    background-color: rgba(255, 255, 255, 0);
    /*メニューオープン時は真ん中の線を透明にする*/
    top: 15px;
  }
  #menu-check:checked ~ .menu-btn span::before {
    bottom: 0;
    -webkit-transform: rotate(45deg);
            transform: rotate(45deg);
    background-color: #000;
  }
  #menu-check:checked ~ .menu-btn span::after {
    top: 0;
    -webkit-transform: rotate(-45deg);
            transform: rotate(-45deg);
    background-color: #000;
  }
  .menu-content {
    position: fixed;
    z-index: 80;
    background: #FFF;
    width: 100%;
    height: 100%;
    top: 100%;
    left: 0;
    -webkit-transition: .5s;
    transition: .5s;
    /*アニメーション設定*/
  }
  #menu-check:checked ~ .menu-content {
    top: 0;
    /* メニューを画面に入れる */
  }
  .menu-content ul {
    display: block;
    background-repeat: no-repeat;
    background-size: 100% auto;
    background-position: 0 5vh;
    width: 100%;
    height: 100%;
    opacity: 0;
    -webkit-transition: .5s;
    transition: .5s;
    /*アニメーション設定*/
    -webkit-transition-delay: .4s;
            transition-delay: .4s;
    padding: 20.24vh 0 0 16vw;
  }
  #menu-check:checked ~ .menu-content ul {
    opacity: 1;
  }
  .menu-content ul li {
    padding: 0 0 45px;
  }
  .menu-content ul li a {
    font-size: 1.6rem;
    letter-spacing: .18em;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    position: relative;
    -webkit-transition: opacity 0.1s ease, -webkit-transform 0.3s ease-in-out;
    transition: opacity 0.1s ease, -webkit-transform 0.3s ease-in-out;
    transition: opacity 0.1s ease, transform 0.3s ease-in-out;
    transition: opacity 0.1s ease, transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;
  }
  #menu-check:checked ~ .menu-content {
    left: 0;
    /*メニューを画面内へ*/
  }
  .menu-content__icon a::after {
    width: 14px;
    height: 13px;
    margin: -4px 0 0 4px;
  }
  .menu-content__frame {
    border: none;
    padding: 0;
  }
}

/*---- sp ----*/
@media screen and (max-width: 599px) {
  /*-- kv --*/
  .kv-content {
    bottom: 16vh;
    left: 30px;
  }
  .kv-txt {
    font-size: 2.4rem;
    line-height: 1.5;
  }
  /*-- scrolldown --*/
  .scrolldown {
    bottom: 0;
    left: 30px;
    height: 50px;
  }
  .scrolldown::after {
    height: 50px;
  }
}

@media screen and (max-width: 1024px) and (max-height: 599px) {
  .kv-content {
    left: 30px;
  }
  .kv-txt {
    font-size: 3rem;
  }
}

/*-- menuランドスケープ --*/
@media screen and (max-width: 896px) and (orientation: landscape) {
  .menu-content ul {
    padding: 10vh 0 0 16vw;
  }
  .menu-content ul li {
    padding: 0 0 30px;
  }
}

/*---- main ----*/
#footer {
  padding: 70px 0 20px;
}

.fadeIn-kv {
  position: relative;
  max-width: 1400px;
  left: 0;
  bottom: 0;
  height: auto;
  margin: 0 auto;
  padding-left: 86px;
}

.footer-content .menu-content ul li:first-child {
  padding: 0;
}

.footer-box {
  margin: 450px 30px 0;
}

.footer-copy {
  margin-top: 40px;
  font-size: 1.2rem;
}

.footer-copy span {
  display: block;
}
.footer-link {
  color: #000;
  text-decoration: underline;
}

/*---- tab ----*/
@media screen and (max-width: 1024px) {
  .bg-kv-bottom {
    top: 50%;
  }
  .footer-box {
    margin: 95px 0 0;
  }
  .footer-box .menu-content {
    position: relative;
    background: none;
  }
  .footer-box .menu-content ul {
    opacity: 1;
    background: none;
    margin: 0;
    padding: 0 86px;
  }
  .footer-content .menu-content ul li {
    padding: 0 0 30px;
  }
  .footer-content .menu-content ul li:first-child {
    padding: 0 0 30px;
  }
  .footer-content {
    min-height: 0;
  }
  .footer-copy {
    padding: 0 86px 0;
  }
}

@media screen and (max-width: 1024px) and (orientation: portrait) {
  #footer {
    padding: calc(70px + 12%) 0 calc(20px + 12%) 0;
  }
  .bg-kv-bottom {
    top: 58%;
  }
}

@media screen and (max-width: 768px) and (orientation: portrait) {
  .bg-kv-bottom {
    top: 39%;
  }
}

/*---- sp ----*/
@media screen and (max-width: 599px) {
  #footer {
    padding: 70px 0 30px 0;
  }
  .bg-kv-bottom {
    top: 60%;
  }
  .fadeIn-kv {
    padding-left: 30px;
  }
  .footer-box .menu-content ul {
    padding: 0 30px 0;
  }
  .footer-content .menu-content ul li a {
    font-size: 1.2rem;
  }
  .footer-copy {
    font-size: 1rem;
    margin-top: 25px;
    padding: 0 30px 0;
  }
  .footer-copy span {
    padding-top: 30px;
  }
}

@media screen and (max-width: 400px) {
  .bg-kv-bottom {
    top: 58%;
  }
}

@media screen and (max-width: 375px) {
  .bg-kv-bottom {
    top: 54%;
  }
}

/*---- main ----*/
#main {
  margin: 0 auto;
}

.inner {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 86px;
}

/*-- about --*/
.about {
  margin-top: 120px;
  padding: 100px 0 140px 0;
}

/*-- .about::before {
    content: "";
    display: block;
    background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.85) 100%);
    height: 50vh;
}
--*/
.common-ttl {
  font-size: 1.9rem;
  font-weight: 600;
}

.common-ttl span {
  display: inline-block;
  vertical-align: 1px;
  font-size: 2rem;
  margin: 0 4px 0 2px;
}

.about-ttl {
  margin-bottom: 96px;
}

.about-ttl-sub {
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 600;
  border-bottom: solid 2px #000;
  padding-bottom: 1px;
}

.about-heading {
  font-size: 4.8rem;
  font-weight: 600;
  margin: 60px 0 64px;
}

.about-txt {
  line-height: 2;
  margin-bottom: 104px;
}

.about-txt p {
  margin-bottom: 26px;
}

.about-txt p:last-child {
  margin-bottom: 0;
}

ol.about-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  font-weight: 600;
  max-width: 600px;
  margin: 35px 0 0 0;
}

ol.about-list li {
  margin: 0 60px 26px 0;
}

ol.about-list li:nth-of-type(3n) {
  display: inline-block;
}

ol.about-list li:nth-of-type(5n) {
  margin: 0;
}

.about-spm {
  margin-top: 8px;
}

/*-- service --*/
.service {
  position: relative;
  color: #FFF;
}

.service-ttl-content {
  color: #FFF;
  display: block;
  position: relative;
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 86px;
}

.service-ttl {
  position: absolute;
  top: 80px;
}

.service-bg {
  background: url(../img/service-bg.png) no-repeat center center;
  background-size: cover;
}

.service-content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 86px;
}

.service-box {
  /*min-height: 80vh;*/
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  margin: 0;
  padding: 200px 0 114px 0;
}

.service-inner {
  display: block;
  border-left: solid 2px #FFF;
  /*max-width: 614px;*/
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  margin: 0;
  padding-left: 32px;
}

.service-box01 .service-inner {
  margin: 0 80px 0 40px;
}

.service-box02 .service-inner {
  margin: 0 30px 0 120px;
}

/*
.service-box01 {
    padding-right: 90px;
}
.service-box02 {
    padding-left: 120px;
}

.service-inner {
    display: block;
    border-left: solid 2px $color-white-base;
    max-width: 614px;
    margin: 0 auto;
    padding-left: 32px;
}
*/
.service-heading {
  font-size: 4.8rem;
  font-weight: 600;
  line-height: 1.2;
}

.service-heading span {
  display: inline-block;
  font-size: 2rem;
  /* margin-left: 20px; */
}

li:first-child .service-heading small {
  display: inline-block;
  font-size: 2.4rem;
  font-weight: 400;
  vertical-align: bottom;
  line-height: .6;
  margin-left: 2px;
}

li:last-child .service-heading small {
  display: inline-block;
  font-size: 2rem;
  font-weight: 400;
  vertical-align: bottom;
  line-height: .6;
  margin-left: 2px;
}

.service-lead {
  display: inline-block;
  color: #000;
  margin: 24px 0 46px;
}

.service-lead span {
  display: inline-block;
  background-color: #FFF;
  font-weight: 600;
  margin-bottom: 8px;
  padding: 4px 20px;
}

.service-lead span:last-child {
  margin-bottom: 0;
}

.service-txt {
  line-height: 2;
  margin-bottom: 46px;
}

.service-btn a {
  display: inline-block;
  position: relative;
  color: #FFF;
  font-size: 1.4rem;
  line-height: 1;
  font-weight: 600;
  text-align: center;
  -webkit-transition: .5s;
  transition: .5s;
  border: 2px solid #FFF;
  padding: 16px 50px 16px 40px;
}

.service-btn a:after {
  content: '';
  border: 0;
  border-top: solid 1px #FFF;
  border-right: solid 1px #FFF;
  display: inline-block;
  width: 6px;
  height: 6px;
  position: absolute;
  top: 50%;
  right: 20px;
  -webkit-transform: translateY(-50%) rotate(45deg);
          transform: translateY(-50%) rotate(45deg);
}

.service-sns {
  margin-top: 40px;
}

.sns-box__txt {
  font-size: 1.2rem;
  font-weight: 600;
  margin-bottom: 14px;
}

.sns-box__icon {
  display: inline-block;
  margin-right: 20px;
  white-space: nowrap;
  overflow: hidden;
}

.sns-box__icon a {
  display: block;
}

.icon-fb {
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
  background: url(../img/icon-fb.png) no-repeat;
  background-size: 43px auto;
  width: 43px;
  height: 42px;
}

.icon-tw {
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
  background: url(../img/icon-tw.png) no-repeat;
  background-size: 43px auto;
  width: 43px;
  height: 43px;
}

.icon-instagram {
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
  background: url(../img/icon-instagram.png) no-repeat;
  background-size: 43px auto;
  width: 43px;
  height: 43px;
}

.icon-line {
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
  background: url(../img/icon-line.png) no-repeat;
  background-size: 43px auto;
  width: 43px;
  height: 43px;
}

.icon-tiktok {
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
  background: url(../img/icon-tiktok.png) no-repeat;
  background-size: 43px auto;
  width: 43px;
  height: 43px;
}

/*-- news --*/
.news {
  padding: 176px 0 140px;
}

.news-content {
  width: 100%;
  max-width: 650px;
  letter-spacing: .05rem;
}

ul.news-box {
  margin: 70px 0 0;
}

ul.news-box li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  border-bottom: 1px solid #000;
  font-weight: 600;
  line-height: 1.4;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  overflow: hidden;
  height: auto !important;
  margin: 0 auto !important;
  padding: 30px 0 !important;
}

ul.news-box li:first-child {
  border-top: 1px solid #000;
}

.news-more-btn,
.news-close-btn {
  display: block;
  border: none;
  background-color: rgba(255, 255, 255, 0);
  color: #000;
  cursor: pointer;
  outline: none;
  font-size: 1.4rem;
  line-height: 1;
  letter-spacing: .1em;
  border-bottom: solid 2px #000;
  margin: 30px 0 0 auto;
  padding: 0 0 8px;
}

.news-more-btn::after {
  content: '';
  display: inline-block;
  border-top: solid 2px #000;
  border-right: solid 2px #000;
  -webkit-transform: rotate(135deg);
  transform: rotate(135deg);
  width: 7px;
  height: 7px;
  margin-left: 16px;
}

.news-close-btn::after {
  content: '';
  display: inline-block;
  border-top: solid 2px #000;
  border-right: solid 2px #000;
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
  width: 7px;
  height: 7px;
  margin-left: 16px;
}

/*
.news-box li.is-hidden {
    visibility: hidden;
    opacity: 0;
    height: 0;
    margin: 0 10px;
    padding:0;
}



.news-more {
    display: flex;
    justify-content: flex-end;
    margin-top: 30px;
    position: relative;
}

.news-more button {
    position: relative;
    display: inline-block;
    border: none;
    background-color: rgba(255,255,255,0);
    cursor: pointer;
    outline: none;
    font-size: 1.4rem;;
    line-height: 1;
    letter-spacing: .1em;
    border-bottom: solid 2px #000;
    padding: 0 0 8px;
}
*/
.news-box__day {
  min-width: 110px;
  margin-right: 20px;
}

/*-- conpany --*/
.company {
  position: relative;
  width: 100%;
  height: auto;
  z-index: 2;
  color: #FFF;
  padding: 106px 0 96px;
}

.company .inner {
  position: relative;
  z-index: 2;
}

/*-- 背景固定 fixed(sticky 非対応の場合)--*/
.bg-company-fixed {
  background: url(../img/bg-conpany.png) no-repeat fixed center center/cover;
}

/*-- 背景固定 sticky --*/
@supports ((position: -webkit-sticky) or (position: sticky)) or (position: -webkit-sticky) {
  .bg-company-fixed {
    background: none;
  }
  .bg-company-sticky {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 0;
  }
  .bg-company-sticky__inner {
    position: -webkit-sticky;
    position: sticky;
    width: 100%;
    height: 100vh;
    min-height: calc(var(--vh, 1vh) * 100);
    top: 0;
    left: 0;
    margin: auto;
    overflow: hidden;
    z-index: 0;
    background: url(../img/bg-conpany_pc.jpg) no-repeat center;
    background-size: cover;
  }
  @media screen and (max-width: 1024px) {
    .bg-company-sticky__inner::after {
      content: '';
      background-color: rgba(0, 0, 0, 0.50);
      position: absolute;
      left: 0;
      right: 0;
      top: 0;
      bottom: 0;
    }
  }
  @media screen and (max-width: 599px) {
    .bg-company-sticky__inner {
      background: url(../img/bg-conpany_sp.jpg) no-repeat center;
      background-size: cover;
    }
  }
}

.company-ttl {
  margin-bottom: 64px;
}

.company-logo {
  width: 417px;
  margin-bottom: 60px;
}

.company-txt {
  font-weight: 600;
  line-height: 2;
}

.company-txt p {
  margin-bottom: 30px;
}

.company-txt p:last-child {
  margin-bottom: 0;
}

.company-ttl-sub {
  display: inline-block;
  font-size: 1.6rem;
  font-weight: 600;
  border-bottom: solid 2px #FFF;
  padding-bottom: 1px;
}

.company-sns {
  margin: 20px 0 80px;
}

.company-sns .sns-box__icon {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.company-sns .sns-box__icon a:first-child {
  margin-right: 20px;
}

.company-managers-content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 38px;
  color: #000;
  margin: 36px 0 100px;
}

.company-managers-content article:first-child {
}

.company-managers-content article {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  width: 100%;
  background-color: #FFF;
  padding: 20px;
  border-radius: 14px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.company-managers-content article figure {
  margin: 0 20px 0 0;
}

.company-managers-content article figure img {
  min-width: 198px;
  max-width: 100%;
  vertical-align: top;
}

.managers-box__pos {
  font-size: 1rem;
}

.managers-box__name {
  font-size: 2.4rem;
  margin-bottom: 2px;
}

.managers-box__spm {
  display: block;
  color: #a6a6a6;
  font-size: 1rem;
  margin-bottom: 16px;
}

.managers-box__lead {
  font-weight: 600;
  margin-bottom: 14px;
}

.managers-box__txt {
  font-size: 1.2rem;
  line-height: 1.8;
}

.managers-box__txt input,
.managers-box__txt label {
  display: none;
}

.managers_sns {
  position: absolute;
  right: 20px;
  z-index: 20;
}

.managers_sns__icon {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

.icon-fb_b {
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
  background: url(../img/icon-fb_b.png) no-repeat;
  background-size: 22px auto;
  width: 22px;
  height: 22px;
}

.icon-tw_b {
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
  background: url(../img/icon-tw_b.png) no-repeat;
  background-size: 22px auto;
  width: 22px;
  height: 22px;
}

.icon-note_b {
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
  background: url(../img/icon-note_b.png) no-repeat;
  background-size: 20px auto;
  width: 22px;
  height: 22px;
}

.managers_sns__icon a {
  margin-right: 12px;
  display: block;
}

.managers_sns__icon a:last-child {
  margin-right: 0;
}

.info-content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin: 60px 0 40px 0;
}

.info-content dl {
  width: 50%;
}

.info-content dl:first-child {
  margin-right: 30px;
}

.info-content dl .info-box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  overflow: hidden;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: stretch;
  -ms-flex-align: stretch;
  align-items: stretch;
  border-bottom: solid 1px #FFF;
  letter-spacing: 0;
  margin: 0 0 20px 0;
  padding: 0 0 20px 0;
}

.info-content dl div:last-child {
  border-bottom: none;
}

.info-box dt {
  width: 105px;
  font-weight: 600;
}

.info-box dd {
  width: calc(100% - 105px);
  padding-left: 20px;
}

.info-box dd a {
  color: #fff;
  text-decoration: underline;
}

.sdg-content {
  background-color: rgba(0, 0, 0, 0.6);
  border-radius: 14px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 24px;
}

.sdg-content figure {
  width: 344px;
  margin: 0;
}

.sdg-box {
  font-size: 1.2rem;
  padding-left: 16px;
}

.sdg-box__ttl {
  font-weight: 600;
  margin-bottom: 10px;
}

.bnr-content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  color: #000;
  margin: 60px 0 0 0;
}

.bnr-content article {
  overflow: hidden;
  position: relative;
  background-color: #FFF;
  border-radius: 14px;
  width: 50%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.bnr-content article:first-child {
  margin-right: 30px;
}

.bnr-content article figure {
  -webkit-box-ordinal-group: 2;
  -ms-flex-order: 2;
  order: 2;
  margin: 0;
}

.bnr-content article figure img {
  width: auto;
  height: auto;
  min-width: 0%;
  min-height: 100%;
  max-width: inherit;
}

.bnr-box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  min-width: 200px;
  padding: 40px 0 40px 30px;
}

.bnr-box .bnr-box__ttl {
  font-size: 1.6rem;
  font-weight: 600;
  margin-bottom: 14px;
}

.bnr-box .bnr-box__txt {
  font-size: 1.4rem;
  line-height: 1.4;
  margin-bottom: 4px;
}

.bnr-box .bnr-box__link {
  display: inline-block;
  font-size: 1.4rem;
  line-height: 1.4;
}

@media screen and (max-width: 1399px) {
  /*-- about --*/
  .about-txt {
    max-width: 46vw;
  }
  /*-- news --*/
  .news-content {
    max-width: 46vw;
  }
}

/*-- 1024pxまでのmagin調整 --*/
@media screen and (max-width: 1350px) {
  .service-content {
    padding: 0 70px;
  }
  .service-box02 .service-inner {
    margin: 0 30px 0 60px;
  }
}

@media screen and (max-width: 1270px) {
  .kv-content {
    left: 40px;
  }
  .inner {
    padding: 0 40px;
  }
  .service-ttl-content {
    padding: 0 40px;
  }
  .service-content {
    padding: 0 40px;
  }
}

@media screen and (max-width: 1190px) {
  .service-content {
    padding: 0 40px;
  }
  .bnr-box {
    padding: 10px 0 10px 20px;
  }
  .service-inner {
    padding-left: 20px;
  }
  .service-box01 .service-inner {
    margin: 0 20px 0 0;
  }
  .service-box02 .service-inner {
    margin: 0 0 0 20px;
  }
}

/*---- tab ----*/
@media screen and (max-width: 1024px) {
  .kv-content {
    left: 86px;
  }
  .inner {
    padding: 0 86px;
  }
  /*-- about --*/
  .about {
    background: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0)), color-stop(40%, rgba(255, 255, 255, 0.85)), to(rgba(255, 255, 255, 0.85)));
    background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.85) 40%, rgba(255, 255, 255, 0.85) 100%);
  }
  /*-- news --*/
  .news {
    background-color: rgba(255, 255, 255, 0.85);
  }
  .news-content {
    max-width: initial;
  }
  /*-- service --*/
  .service-content {
    display: block;
    padding: 0;
  }
  .service-bg {
    background: none;
  }
  .service-ttl-content {
    padding: 0 86px;
  }
  .service-box {
    display: block;
    width: 100%;
    max-width: 1024px;
    padding: 200px 86px 114px 86px;
  }
  .service-box01 {
    background: url(../img/bg-service_01_sp.jpg) no-repeat center center;
    background-size: cover;
  }
  .service-box02 {
    background: url(../img/photo-bottom.png) no-repeat center center;
    background-size: cover;
  }
  .service-inner {
    max-width: initial;
    margin: 0 auto;
    padding-left: 32px;
  }
  .service-box01 .service-inner,
  .service-box02 .service-inner {
    margin: 0 auto;
  }
  .service-heading span {
    display: inline-block;
    /* margin-left: 20px; */
  }
  /*-- conpany --*/
  .company-logo {
    width: 200px;
  }
  .company-managers-content {
    display: block;
  }
  .company-managers-content article {
    display: block;
    width: 100%;
  }
  .company-managers-content article:not(:last-child) {
    margin: 0 0 24px;
  }
  .company-managers-content article figure {
    margin: 0;
  }
  .company-managers-content article figure img {
    width: 100%;
  }
  .managers_sns {
    position: relative;
    right: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    margin: 20px 0 0;
  }
  .managers_sns a:hover {
    opacity: 1;
  }
  .managers-box {
    margin: -26px 0 0;
  }
  .icon-fb_b,
  .icon-tw_b {
    background-size: 30px auto;
    width: 30px;
    height: 30px;
  }
  .icon-note_b {
    background-size: 30px auto;
    width: 30px;
    height: 30px;
  }
  .info-content {
    display: block;
  }
  .info-content dl {
    width: 100%;
  }
  .info-content dl:first-child {
    margin-right: 0;
  }
  .info-content dl .info-box {
    display: block;
  }
  .info-content dl:first-child div:last-child {
    border-bottom: 1px solid #FFF;
  }
  .info-box dd {
    width: 100%;
    padding-left: 0;
  }
  .sdg-content {
    display: block;
  }
  .sdg-content figure {
    width: 100%;
    margin-bottom: 10px;
  }
  .sdg-content figure img {
    width: 100%;
  }
  .sdg-box {
    padding-left: 0;
  }
  .bnr-content {
    display: block;
  }
  .bnr-content article {
    width: 100%;
    display: block;
  }
  .bnr-content article:first-child {
    margin-right: 0;
  }
  .bnr-content article:first-child {
    margin: 0 0 40px 0;
  }
  .bnr-content article figure img {
    width: 100%;
  }
  .bnr-box {
    padding: 30px;
  }
  /*
    

    .bnr-bg::before {
        content: "";
        display: block;
        background-repeat: no-repeat;
        background-position: center center;
        background-size: cover;
        width: 100%;
        height: 0;
        padding-top: 30%; 
    }
    .bnr-bg_01::before {
        background-image: url(../img/photo-bnr-01_sp.png); 
    }
    .bnr-bg_02::before {
        background-image: url(../img/photo-bnr-02_sp.png); 
    }

    .bnr-bg_01 .bnr-box,
    .bnr-bg_02 .bnr-box {
        background: none;
        padding: 30px 20px;
    }
    */
}

/*---- sp ----*/
@media screen and (max-width: 599px) {
  .inner {
    padding: 0 30px;
  }
  .sns-box__icon {
    display: inline-block;
    margin-right: 12px;
    white-space: nowrap;
    overflow: hidden;
  }
  .icon-tw {
    background-size: 28px auto;
    width: 28px;
    height: 28px;
  }
  .icon-instagram {
    background-size: 28px auto;
    width: 28px;
    height: 28px;
  }
  .icon-line {
    background-size: 28px auto;
    width: 28px;
    height: 28px;
  }
  .icon-tiktok {
    background-size: 28px auto;
    width: 28px;
    height: 28px;
  }
  .icon-fb {
    background-size: 28px auto;
    width: 28px;
    height: 28px;
  }
  .kv-content {
    left: 30px;
  }
  .about {
    margin-top: 120px;
    padding: 55px 0 45px 0;
  }
  .common-ttl {
    font-size: 1.3rem;
  }
  .common-ttl span {
    font-size: 1.5rem;
    margin: 0 4px 0 1px;
  }
  /* about */
  .about-ttl {
    margin-bottom: 45px;
  }
  .about-ttl-sub {
    font-size: 1.2rem;
    border-bottom: solid 1px #000;
  }
  .about-heading {
    font-size: 2.4rem;
    margin: 32px 0 35px;
  }
  .about-txt {
    letter-spacing: 0.05em;
    max-width: initial;
    margin-bottom: 60px;
  }
  ol.about-list {
    display: block;
    margin: 23px 0 0 0;
  }
  ol.about-list li {
    margin: 0 0 23px 0;
  }
  .about-spm {
    margin-top: 23px;
    line-height: 2;
  }
  /* service */
  .service-ttl {
    top: 55px;
    left: 0;
    margin: 0 30px 0;
  }
  .service-box {
    padding: 125px 30px 70px;
  }
  .service-box02 {
    padding: 60px 30px 70px;
  }
  .service-inner {
    padding-left: 15px;
  }
  .service-heading {
    font-size: 3.2rem;
  }
  .service-heading span {
    font-size: 1.2rem;
    /* margin-left: 10px; */
  }
  .service-lead {
    margin: 15px 0 37px;
  }
  .service-lead span {
    margin-bottom: 8px;
    padding: 3px 6px;
  }
  li:first-child .service-heading small {
    font-size: 1.9rem;
    line-height: .6;
  }
  li:last-child .service-heading small {
    font-size: 1.6rem;
    line-height: .5;
  }
  .service-txt {
    margin-bottom: 37px;
  }
  .service-sns {
      margin-top: 27px;
  }
  /* news */
  .news {
    padding: 96px 0 76px;
  }
  ul.news-box {
    line-height: 1.6;
    margin: 38px 0 0;
  }
  ul.news-box li {
    display: block;
    padding: 15px 0;
  }
  .news-box__day {
    display: block;
    color: #a3a3a3;
    margin: 0 0 7px 0;
  }
  .news-more {
    display: block;
    text-align: center;
  }
  /* company */
  .company {
    padding: 58px 0 35px 0;
  }
  .company-ttl {
    margin-bottom: 50px;
  }
  .company-logo {
    width: 210px;
    margin-bottom: 30px;
  }
  .company-sns {
    margin: 25px 0 55px;
  }
  .company-ttl-sub {
    font-size: 1.2rem;
    border-bottom: solid 1px #FFF;
    padding-bottom: 2px;
  }
  .company-managers-content {
    margin: 27px 0 70px;
  }
  .company-managers-content article {
    padding: 10px;
    border-radius: 7px;
  }
  .managers-box {
    padding-left: 5px;
  }
  .icon-fb_b,
  .icon-tw_b {
    background-size: 24px auto;
    width: 24px;
    height: 24px;
  }
  .icon-note_b {
    background-size: 24px auto;
    width: 24px;
    height: 24px;
  }
  .managers-box__txt {
    position: relative;
  }
  .managers-box__txt label {
    display: inline-block;
    position: absolute;
    z-index: 1;
    bottom: -2px;
    width: 100%;
    height: 60px;
    /* グラデーションの高さ */
    cursor: pointer;
    text-align: center;
    /* 以下グラデーションは背景を自身のサイトに合わせて設定してください */
    background: #FFF;
  }
  .managers-box__txt input:checked + label {
    background: inherit;
    /* 開いた時に色を消す */
  }
  .managers-box__txt label::after {
    line-height: 2.5rem;
    display: inline-block;
    content: '';
    position: absolute;
    z-index: 2;
    bottom: 20px;
    left: 50%;
    width: auto;
    -webkit-transform: translate(-50%, 0);
            transform: translate(-50%, 0);
    letter-spacing: 0.05em;
    border-bottom: 1px solid #000;
  }
  .managers-box__txt label span {
    border-bottom: 2px solid #000;
    display: inline-block;
    margin: 20px 0 0;
    padding: 0 0 4px;
  }
  .managers-box__txt label span::before {
    content: 'View more';
  }
  .managers-box__txt label span::after {
    content: '';
    display: inline-block;
    border-top: solid 2px #000;
    border-right: solid 2px #000;
    -webkit-transform: rotate(135deg);
    transform: rotate(135deg);
    width: 7px;
    height: 7px;
    margin-left: 16px;
  }
  .managers-box__txt p {
    overflow: hidden;
    height: 120px;
    /* 開く前に見えている部分の高さ */
    -webkit-transition: all 0.5s;
    transition: all 0.5s;
  }
  .managers-box__txt input:checked + label span::before {
    content: 'Close';
  }
  .managers-box__txt input:checked + label span::after {
    content: '';
    display: inline-block;
    border-top: solid 2px #000;
    border-right: solid 2px #000;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    width: 7px;
    height: 7px;
    margin-left: 16px;
  }
  .managers-box__txt input:checked ~ p {
    height: auto;
    padding-bottom: 80px;
    /* 閉じるボタンのbottomからの位置 */
    -webkit-transition: all 0.5s;
    transition: all 0.5s;
  }
  .info-content {
    margin: 37px 0 33px 0;
  }
  .info-content dl .info-box {
    margin: 0 0 15px 0;
    padding: 0 0 15px 0;
  }
  .info-content dl .info-box dt {
    margin: 0 0 6px 0;
  }
  .sdg-content {
    border-radius: 7px;
    padding: 15px 15px 20px;
  }
  .sdg-box__ttl {
    margin-bottom: 6px;
  }
  .sdg-box__txt {
    font-size: 1rem;
  }
  .bnr-content {
    margin-top: 40px;
  }
  .bnr-content article {
    border-radius: 7px;
  }
  .bnr-bg_01 .bnr-box, .bnr-bg_02 .bnr-box {
    padding: 15px;
  }
  .bnr-box .bnr-box__ttl {
    font-size: 1.3rem;
  }
  .bnr-box .bnr-box__txt {
    font-size: 1.1rem;
    line-height: 1;
  }
  .bnr-box .bnr-box__link {
    font-size: 1.1rem;
    line-height: 1;
  }
}

.managers-box--no-social {
  margin-top: 0;
}
/*# sourceMappingURL=style.css.map */