@charset "UTF-8";
/* Scss Document */
@font-face {
  font-family: 'Avenir Next';
  src: url("../font/Metropolis-Medium.otf") format("truetype"); }
@font-face {
  font-family: 'Corbel';
  src: url("../font/CORBEL.TTF") format("truetype"); }
body {
  font-family: 'Noto Sans JP', "游ゴシック体", "Yu Gothic", "Hiragino Kaku Gothic Pro", "Meiryo", sans-serif; }

.dummy {
  clear: both; }

/* OP MOVIE
*******************************************************/
.shutter img {
  width: 133px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  -webkit-transform: translateY(-50%) translateX(-50%);
  z-index: -1; }

.shutter2 img {
  width: 185px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  -webkit-transform: translateY(-50%) translateX(-50%);
  z-index: -1; }

.shutter2 small {
  position: absolute;
  top: 95%;
  left: 50%;
  transform: translateY(-95%) translateX(-50%);
  -webkit-transform: translateY(-95%) translateX(-50%);
  z-index: -1; }

.shutter {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #fff;
  z-index: 9999; }
  .shutter::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    margin: auto;
    background-color: #E63714;
    width: 0;
    height: 1px; }

.shutter {
  -webkit-animation: byeShutter 2.6s forwards;
  animation: byeShutter 2.6s forwards; }

.shutter::before {
  -webkit-animation: shutterOpen 2.6s forwards;
  animation: shutterOpen 2.6s forwards; }

.shutter2 {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #fff;
  z-index: 9999; }
  .shutter2::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    margin: auto;
    background-color: #E63714;
    width: 0;
    height: 1px; }

.shutter2 {
  -webkit-animation: byeShutter2 2.6s forwards;
  animation: byeShutter2 2.6s forwards; }

.shutter2::before {
  -webkit-animation: shutterOpen2 2.6s forwards;
  animation: shutterOpen2 2.6s forwards; }

.content {
  -webkit-animation: contentScale 2.6s forwards;
  animation: contentScale 2.6s forwards; }

@keyframes byeShutter {
  70% {
    opacity: 1; }
  100% {
    opacity: 0;
    display: none;
    z-index: -1; } }
@keyframes shutterOpen {
  0% {
    width: 0;
    height: 3px; }
  50% {
    width: 100%;
    height: 3px; }
  90% {
    width: 100%;
    height: 100%; }
  100% {
    width: 100%;
    height: 100%; } }
@keyframes contentScale {
  70% {
    -webkit-transform: perspective(800px) scale(0.9) rotateX(15deg);
    transform: perspective(800px) scale(0.9) rotateX(15deg); }
  100% {
    -webkit-transform: perspective(800px) scale(1) rotateX(0);
    transform: perspective(800px) scale(1) rotateX(0); } }
@keyframes byeShutter2 {
  70% {
    opacity: 1; }
  100% {
    opacity: 0;
    display: none;
    z-index: -1; } }
@keyframes shutterOpen2 {
  0% {
    width: 0;
    height: 1px; }
  50% {
    width: 100%;
    height: 1px; }
  90% {
    width: 100%;
    height: 100%; }
  100% {
    width: 100%;
    height: 100%; } }
/* 画像アニメーション
*******************************************************/
.fade_image {
  width: 90%;
  display: flex;
  justify-content: center;
  margin: 0 auto;
  text-align: center;
  position: relative; }
  .fade_image .fade_image_effect {
    position: relative;
    width: auto;
    overflow: hidden;
    margin: 0 15px; }
    .fade_image .fade_image_effect img {
      width: 100%;
      height: auto; }
    .fade_image .fade_image_effect.img {
      position: absolute;
      top: 0;
      left: 0;
      background: #df3828; }
    .fade_image .fade_image_effect.img2 {
      position: inherit;
      right: 0;
      margin-left: auto;
      margin-top: 50px;
      float: right;
      background: #D9D9D9;
      z-index: 10; }
    .fade_image .fade_image_effect:after {
      content: '';
      display: block;
      position: absolute;
      top: 0;
      left: 0;
      z-index: 100;
      width: 100%;
      height: 100%;
      background: #fff;
      transform: translate3d(0%, 0, 0); }
    .fade_image .fade_image_effect.active:after {
      animation: swipeRight 1.1s cubic-bezier(0.6, 0, 0.4, 1);
      animation-fill-mode: forwards; }

@keyframes swipeRight {
  0% {
    transform: translate(0); }
  50%, 60% {
    transform: translate3d(100%, 0, 0); }
  100% {
    transform: translate3d(100%, 0, 0); } }
@media screen and (max-width: 768px) {
  .fade_image {
    width: 100%; }
    .fade_image .fade_image_effect {
      width: 100%;
      margin: 0; }

  .fade_image .fade_image_effect:last-child {
    margin: 0; } }
/* HEADER
*******************************************************/
.nav-button {
  display: none; }

.nav a {
  color: #000;
  text-decoration: none;
  font-size: 14px;
  color: #448aff; }
.nav li {
  display: inline-block;
  margin: 0 10px; }

.nav-wrap.open {
  display: block; }

.nav-wrap.close {
  display: none; }

.content {
  padding: 20px; }

/* PC用コード
*******************************************************/
@media screen and (min-width: 769px) {
  .sp {
    display: none; }

  html {
    width: 100%;
    min-width: 1000px; }

  /* HEADER
  *******************************************************/
  .header {
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100; }
    .header .header-inner {
      width: 100%;
      height: 100%;
      padding: 20px 50px;
      display: flex;
      flex-direction: row;
      justify-content: space-between;
      flex-wrap: nowrap;
      flex: 0 0 200px; }
      .header .header-inner .logo {
        width: 170px;
        min-width: 150px;
        margin: 20px 0;
        text-decoration: none; }
        .header .header-inner .logo img {
          width: 80%;
          height: auto;
          transition: 0.5s; }
      .header .header-inner .gnav {
        display: block !important; }
        .header .header-inner .gnav ul.gnav__menu {
          display: flex;
          flex-direction: row; }
          .header .header-inner .gnav ul.gnav__menu li {
            margin: 20px 0 0 55px; }
            .header .header-inner .gnav ul.gnav__menu li a {
              position: relative;
              font-size: 13px;
              color: #df3828;
              line-height: 0.8;
              font-family: 'Avenir Next','Corbel',sans-serif;
              font-style: italic;
              transition: 0.3s;
              z-index: 1;
              text-decoration: none; }
              .header .header-inner .gnav ul.gnav__menu li a::after {
                display: block;
                content: "";
                position: absolute;
                top: 42%;
                left: -5px;
                right: -5px;
                margin: -1px 0 0;
                height: 2px;
                background-color: #df3828;
                z-index: 1;
                transform: scaleX(0);
                transform-origin: right;
                transition-property: background-color, transform;
                transition-duration: 0.35s; }
              .header .header-inner .gnav ul.gnav__menu li a:hover::after, .header .header-inner .gnav ul.gnav__menu li a.checked::after {
                transform: scaleX(1);
                transform-origin: left;
                transition-timing-function: cubic-bezier(0.25, 1, 0.5, 1); }

  /* TOPスライダー
  *******************************************************/
  .caption {
    width: 100%;
    height: 100%;
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column; }
    .caption .title {
      margin-bottom: 5px;
      color: #fff;
      font-size: 20px;
      font-weight: 300;
      letter-spacing: 0.1em;
      z-index: 2; }
    .caption .btn {
      display: inline-block;
      padding: 8px 20px;
      color: #fff;
      text-decoration: none;
      position: relative;
      background: transparent;
      border: 1px solid #e1e1e1;
      font-size: 14px;
      letter-spacing: 0.2em;
      text-align: center;
      text-indent: 2px;
      text-transform: uppercase;
      transition: color 0.1s linear 0.05s;
      border-radius: 3px;
      z-index: 2; }
      .caption .btn::before {
        content: "";
        display: block;
        position: absolute;
        top: 50%;
        left: 0;
        width: 100%;
        height: 1px;
        background: #df3828;
        z-index: 1;
        opacity: 0;
        transition: height 0.2s ease, top 0.2s ease, opacity 0s linear 0.2s; }
      .caption .btn::after {
        transition: border 0.1s linear 0.05s; }
      .caption .btn .btn-inner {
        position: relative;
        z-index: 200;
        font-weight: 300; }
      .caption .btn:hover {
        color: #fff;
        transition: color 0.1s linear 0s;
        border: 1px solid rgba(255, 255, 255, 0);
        border-radius: 5px;
        overflow: hidden; }
        .caption .btn:hover::before {
          top: 0;
          height: 100%;
          opacity: 1;
          transition: height 0.2s ease, top 0.2s ease, opacity 0s linear 0s; }
        .caption .btn:hover::after {
          border-color: #df3828;
          transition: border 0.1s linear 0s; }

  .slideshow {
    overflow: hidden;
    position: relative;
    width: 100%;
    z-index: 1; }
    .slideshow .slides {
      width: 100%;
      height: 100%; }
      .slideshow .slides img {
        width: 100%;
        height: auto; }
    .slideshow .slick-prev::before {
      position: relative;
      content: "";
      background: url("../images/arrow-prev.png") center center no-repeat;
      background-size: contain;
      padding: 6px;
      opacity: 1; }
    .slideshow .slick-next::before {
      position: relative;
      content: "";
      background: url("../images/arrow-next.png") center center no-repeat;
      background-size: contain;
      padding: 6px;
      opacity: 1; }
    .slideshow .slick-prev {
      left: 50px;
      z-index: 10; }
    .slideshow .slick-next {
      right: 50px;
      z-index: 10; }
    .slideshow .slick-prev:hover:before {
      animation: arrow_prev .5s ease-out forwards; }
  @keyframes arrow_prev {
    0% {
      right: 0px; }
    50% {
      right: 5px; }
    100% {
      right: 0; } }
    .slideshow .slick-next:hover:before {
      animation: arrow_next .5s ease-out forwards; }
  @keyframes arrow_next {
    0% {
      left: 0px; }
    50% {
      left: 5px; }
    100% {
      left: 0; } }
  .slick-counter {
    text-align: center;
    padding: 5px 0 0;
    color: #df3828;
    font-size: 14px; }

  /* #sub-navi
  *******************************************************/
  #sub-navi {
    padding: 80px 0; }
    #sub-navi ul li {
      padding: 10px 0;
      text-align: center; }
      #sub-navi ul li a {
        font-size: 16px;
        font-weight: bold;
        color: #df3828;
        text-decoration: none;
        transition: 0.5s;
        letter-spacing: 0.05em;
        font-family: 'Barlow Condensed', sans-serif; }

  /*CONTENTS
  *******************************************************/
  #contents #project04 .fade_image {
    flex-direction: column; }
    #contents #project04 .fade_image .fade_image_effect {
      margin: 0 auto; }
      #contents #project04 .fade_image .fade_image_effect.second {
        margin-top: 20px;
        margin-right: 100px; }
  #contents .project {
    width: 100%;
    max-width: 1200px;
    padding: 0 50px;
    margin: 0 auto 200px;
    position: relative;
    text-align: center; }
    #contents .project .coming-soon {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      max-width: 1200px;
      height: 100%;
      margin: 0 auto;
      display: flex;
      justify-content: center;
      align-items: center;
      overflow: hidden;
      z-index: 2;
      pointer-events: none; }
      #contents .project .coming-soon img {
        width: 28%;
        height: auto; }
    #contents .project .ttl {
      writing-mode: vertical-rl;
      color: #df3828;
      font-size: 16px;
      font-weight: 500;
      letter-spacing: 0.05em;
      position: absolute;
      left: 20px;
      top: 0;
      font-family: 'Avenir Next','Corbel',sans-serif;
      font-style: italic; }
    #contents .project .image {
      width: 90%;
      margin: 0 auto;
      position: relative; }
      #contents .project .image img {
        margin: 0 15px; }
      #contents .project .image .img {
        position: absolute;
        top: 0;
        left: 0;
        background: #df3828; }
      #contents .project .image .img2 {
        position: inherit;
        margin-top: 50px;
        float: right;
        background: #D9D9D9;
        z-index: 10; }
    #contents .project .w30 {
      width: 30%; }
    #contents .project .w40 {
      width: 40%; }
    #contents .project .w50 {
      width: 50%; }
    #contents .project .w60 {
      width: 60%; }
    #contents .project .w70 {
      width: 70%; }
    #contents .project .w80 {
      width: 80%; }
    #contents .project .w90 {
      width: 90%; }
    #contents .project .w100 {
      width: 100%; }
    #contents .project .arrow {
      display: flex;
      flex-direction: row;
      justify-content: center;
      position: relative;
      padding: 10px 200px 10px 100px;
      margin: 60px 0 0 200px;
      color: #df3828;
      text-decoration: none;
      transition: 0.5s;
      font-family: 'Avenir Next','Corbel',sans-serif;
      font-size: 14px; }
      #contents .project .arrow::after {
        content: "";
        background: url("../images/arrow3.png") center center no-repeat;
        background-size: cover;
        display: block;
        margin: auto 0;
        margin-left: 20px;
        width: 102px;
        height: 10px;
        transition: 0.5s; }
      #contents .project .arrow:hover {
        color: #3C3C3C; }
        #contents .project .arrow:hover::after {
          content: "";
          background: url("../images/arrow2.png") center center no-repeat;
          background-size: cover;
          display: block;
          margin: auto 0;
          margin-left: 20px;
          width: 102px;
          height: 10px;
          transition: 0.5s; }

  /*FOOTER
  *******************************************************/
  footer {
    width: 100%;
    max-width: 1200px;
    padding: 0 50px 50px;
    margin: 0 auto;
    color: #424242;
    position: relative;
    text-align: center; }
    footer .sns {
      position: absolute;
      bottom: 90px;
      left: 20px; }
      footer .sns ul {
        padding: 10px 0;
        display: flex;
        flex-direction: column;
        background: #000;
        border-radius: 4px; }
        footer .sns ul li {
          padding: 5px 7px;
          text-align: center; }
          footer .sns ul li a {
            font-size: 16px;
            color: #fff; }
    footer a.bear {
      display: block;
      width: 20%;
      max-width: 180px;
      margin: 0 auto 20px; }
      footer a.bear img {
        width: 80%;
        height: auto; }
    footer .footer-nav {
      position: absolute;
      left: 20px;
      bottom: 50px; }
      footer .footer-nav ul {
        display: flex; }
        footer .footer-nav ul li {
          margin-top: 20px;
          margin-right: 30px;
          text-align: left; }
          footer .footer-nav ul li a {
            font-size: 12px;
            color: #000;
            text-decoration: none;
            transition: all 0.3s ease-out;
            font-family: 'Avenir Next','Corbel',sans-serif; }
            footer .footer-nav ul li a:hover {
              color: #df3828; }
    footer .copyright {
      color: #df3828;
      font-size: 12px; } }
