@charset "UTF-8";
/* CSS Document */
/* CSS Document */
/*
  ------------------------------------
  ####################################
   共通設定
  ####################################
  ------------------------------------
*/
/*
  ------------------------------------
   MediaScreen指定
  ------------------------------------
*/
/*
  ------------------------------------
   ベースプロパティ
  ------------------------------------
*/
/*
  ------------------------------------
   FONT指定
  ------------------------------------
*/
/*
  ------------------------------------
   Responsive指定
  ------------------------------------
*/
/* CSS Document */
/*
  ------------------------------------
  ####################################
   module
  ####################################
  ------------------------------------
*/
/*
  ------------------------------------
  ####################################
   #8k
  ####################################
  ------------------------------------
*/
.keyvis {
  height: 52vw;
  width: 100%;
  max-height: 750px;
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: center center no-repeat;
  background-size: cover;
}
.keyvis h2 {
  width: 200px;
}
.keyvis .bg_overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  color: #fff;
  background: rgba(0, 0, 0, 0.6);
  padding: 8px 0px;
  font-size: 84%;
}
.keyvis .bg_overlay .inner {
  padding-left: 70px;
  position: relative;
}
.keyvis .bg_overlay .inner .inuu {
  position: absolute;
  width: 55px;
  -webkit-transform: rotateY(180deg);
          transform: rotateY(180deg);
  left: 0;
  bottom: 0;
}
.keyvis .bg_overlay .inner .inuu img {
  width: 100%;
  display: block;
}
@media screen and (max-width: 768px) {
  .keyvis {
    height: 300px;
  }
  .keyvis h2 {
    width: 140px;
  }
  .keyvis.pad_btm {
    padding-bottom: 40px;
  }
}

#contents01 {
  padding: 0 0 60px;
}
#contents01 .inner-wide {
  width: 100%;
}
#contents01 ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
#contents01 ul .item-8k {
  background: center center no-repeat;
  background-size: cover;
  width: calc(100% / 3);
  height: 30vw;
}
#contents01 ul .item-8k a {
  width: 100%;
  height: 100%;
  display: block;
  position: relative;
}
#contents01 ul .item-8k a:after {
  content: "";
  position: absolute;
  background: rgba(0, 0, 0, 0.5);
  width: 100%;
  height: 100%;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%) rotate(0deg) scale(1);
  transform: translate(-50%, -50%) rotate(0deg) scale(1);
  opacity: 0;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
#contents01 ul .item-8k a:before {
  content: "";
  position: absolute;
  width: 80px;
  height: 60px;
  pointer-events: none;
  background: url("../../img/about/video-play.png") no-repeat center center;
  background-size: contain;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%) rotate(0deg) scale(1);
  transform: translate(-50%, -50%) rotate(0deg) scale(1);
  z-index: 30;
  opacity: 0;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
#contents01 ul .item-8k a:hover {
  opacity: 1;
}
#contents01 ul .item-8k a:hover:after, #contents01 ul .item-8k a:hover:before {
  opacity: 1;
}
#contents01 ul dt, #contents01 ul dd {
  height: 35vw;
}
#contents01 ul dt {
  width: 63%;
  position: relative;
  background: center center no-repeat;
  background-size: cover;
}
#contents01 ul dt em {
  width: 40px;
}
#contents01 ul dt a {
  width: 100%;
  height: 100%;
  display: block;
}
#contents01 ul dt a:after {
  content: "";
  position: absolute;
  background: rgba(0, 0, 0, 0.5);
  width: 100%;
  height: 100%;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%) rotate(0deg) scale(1);
  transform: translate(-50%, -50%) rotate(0deg) scale(1);
  opacity: 0;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
#contents01 ul dt:before {
  content: "";
  position: absolute;
  width: 40px;
  height: 40px;
  background: url("../../img/common/camera.svg") no-repeat center center;
  background-size: contain;
  top: 10px;
  right: 10px;
}
#contents01 ul dt a:before {
  content: "";
  position: absolute;
  width: 80px;
  height: 60px;
  pointer-events: none;
  background: url("../../img/about/video-play.png") no-repeat center center;
  background-size: contain;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%) rotate(0deg) scale(1);
  transform: translate(-50%, -50%) rotate(0deg) scale(1);
  z-index: 30;
  opacity: 0;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}
#contents01 ul dt a:hover {
  opacity: 1;
}
#contents01 ul dt a:hover:after, #contents01 ul dt a:hover:before {
  opacity: 1;
}
#contents01 dl:nth-child(odd) dt {
  -webkit-box-ordinal-group: 1;
      -ms-flex-order: 0;
          order: 0;
}
#contents01 dl:nth-child(even) dt {
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
}
@media screen and (max-width: 768px) {
  #contents01 dl dt:before {
    content: "";
    position: absolute;
    width: 20px;
    height: 20px;
    background: url("../../img/common/camera.svg") no-repeat center center;
    background-size: contain;
    top: 10px;
    right: 10px;
  }
  #contents01 dl dt a:before {
    content: "";
    position: absolute;
    width: 40px;
    height: 30px;
  }
}

.index-8k .toggle-8k {
  cursor: pointer;
  background: #000;
  text-align: center;
  color: #fff;
  font-size: 120%;
  padding: 15px 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  position: relative;
}
.index-8k .toggle-8k:before {
  content: "";
  position: absolute;
  width: 7px;
  height: 7px;
  top: 50%;
  -webkit-transform: translateY(-50%) rotate(45deg) scale(1);
  transform: translateY(-50%) rotate(45deg) scale(1);
  -moz-transform: translateY(-50%) rotate(45deg) scale(1);
  top: calc(50% - 3px);
  right: 20px;
  border-bottom: 2px solid #fff;
  border-right: 2px solid #fff;
}
.index-8k .toggle-8k.is-open {
  display: block;
}
.index-8k .toggle-8k.is-open:before {
  top: 50%;
  -webkit-transform: translateY(-50%) rotate(-135deg) scale(1);
  transform: translateY(-50%) rotate(-135deg) scale(1);
  -moz-transform: translateY(-50%) rotate(-135deg) scale(1);
  top: calc(50% + 3px);
}
.index-8k .toggle-index {
  text-align: center;
  background: #f3f3f3;
  padding: 10px 20px 0;
  display: none;
}
.index-8k .toggle-index.is-open {
  display: block;
}
.index-8k .toggle-index dl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 10px;
}
.index-8k .toggle-index dl:not(:last-child) {
  border-bottom: 1px solid #cecece;
}
.index-8k .toggle-index dl dt {
  width: 100%;
  margin-bottom: 10px;
  font-size: 110%;
  font-weight: bold;
}
.index-8k .toggle-index dl dd {
  width: 100%;
  margin: 0 0 5px;
}

/*
  ------------------------------------
   Tublet
  ------------------------------------
*/
/*
  ------------------------------------
   Sphone
  ------------------------------------
*/