// ヘッダー＆サブメニュー＆ファーストビューのスタイル

@keyframes rotateCircle {
  to {
    transform: rotate(1turn);
  }
}
.loading {
  position: fixed;
  z-index: 10000;
  @include flex;
  justify-content: center;
  align-items: center;
  width: 100vw;
  height: 100vh;
  background: white;
  &_logo {
    width: 80%;
  }
}
.news{
  &_special{
    position:absolute;
    width: 100%;
    z-index:997;
      top:0;
      left: 0;
    padding-top: calc( 13vh + 10px );
    padding-left: 0;
    padding-bottom: 10px;
    margin-bottom: -13vh;
    z-index: 10;
    background: $mainColorXLight;
    .news{
      &_item {
        position: relative;
        a{
          padding-left: 50px;
          padding-right: 20px;
        }
      }
      &_block {
        @include flex;
        align-items: center;
        margin-bottom: 5px;
      }
      &_date {
        margin-right: 10px;
        width: 100px;
        font-size: $xSmallFontSize;
        color: $mainColorMid;
      }
      &_category {
        padding: 2px 10px;
        font-size: $xSmallFontSize;
        color: $mainColorMid;
        border: 1px solid $mainColorMid;
      }
      &_title {
        font-size: $mediumFontSize;
        flex: 1;
      }
    }
    .special_item::before{
      display: block;
      content: '';
      height:20px;
      width: 20px;
      border-radius: 50%;
      position: absolute;
      left: 20px;
      top:12px;
      margin-top: -10px;
      background: $accentColor01Dark;
    }
    .special_item::after{
      font-size: $smallFontSize;
      display: block;
      content: '!';
      height:14px;
      position: absolute;
      left: 28px;
      top:12px;
      margin-top: -8px;
      color: white;
      line-height: 1;
      text-align: center;
    }

  }
}
@include mq(middle) {
  .news{
    &_special{
      padding-top: 20px;
      padding-left:calc( 4vw + 20px );
      padding-bottom: 20px;
      margin-bottom: 0;
      .news{
        &_list {
        }
        &_item {
          a{
            @include flex;
            flex-wrap: nowrap;
            align-items: center;
            &:hover{
              opacity: .5;
            }
          }
          &:last-child {
            margin-bottom: 0;
          }
        }
        &_block {
          margin: 0 20px 0 0;
        }
        &_btn {
          a {
            @include btnEffect(white, $mainColorDark);
          }
        }
      }
      .special_item::before,
      .imp_item::before{
        top:50%;
        margin-top: -10px;
      }
      .special_item::after,
      .imp_item::after{
        top:50%;
        margin-top: -8px;
      }
    }
  }
}
.info {
  position: absolute;
  z-index:997;
  top: calc( 13vh + 20px );
  left: 5%;
      @include flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

  width: 105px;
  height: 105px;
    overflow: hidden;
  &.top_down{
    top:36%;
  }
  svg {
    position: absolute;
    left: 0;
    top:0;
    width: 105px;
    height: 105px;
    animation: rotateCircle 20s infinite linear;
    path {
      fill: none;
      stroke: white;
      stroke-miterlimit: 10;
    }
  }
  &_text {
    line-height: 1;
    padding-left: 3px;
    text-align: center;
    font-weight: bold;
    color: white;

    p {
      &:first-child {
        margin-bottom: 6px;
        font-size: $smallFontSize;
      }
      &:nth-child(2) {
        margin-bottom: 4px;
        font-size: $mediumFontSize;
      }
    }
  }
}
.header {
  position: fixed;
  z-index: 998;
  top: 0;
  left: 0;
  width: 100%;
  height: 13vh;
  background: white;
  &_inner {
    @include flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 13vh;
  }
  &_logo {
    width: 70%;
    height: auto;
    max-width: 360px;
   @include mq(small) {
      width: 30%;
    }
    a {
      display: block;
    }
  }
  &_nav {
    display: none;
  }
  &_bg_layer {
    position: fixed;
    top: 0;
    left: 0;
    display: none;
    width: 100vw;
    height: 100vh;
    background: $mainColorDark;
    opacity: .6;
    z-index: 1000;
  }

}
// WordPress管理バー対応：管理バーが表示されている場合、ヘッダーを下にずらす
body.admin-bar .header {
  top: 46px; // モバイル用（782px以下）
  @media screen and (min-width: 783px) {
    top: 32px; // デスクトップ用（782px超）
  }
}
.subMenu {
  position: fixed;
  z-index: 1998;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 56px;
  background: $mainColorDark;
  &_block {
    width: inherit;
    height: inherit;
  }
  &_list {
    @include flex;
    justify-content: space-around;
    align-items: center;
    width: inherit;
    height: inherit;
    overflow: hidden;
  }
  &_item {
    width: auto;
    height: 4vh;

    a {
      display: block;
      width: inherit;
      height: inherit;
      svg {
        width: 30px;
        height: 30px;
        .st0 {
          fill: white;
          stroke-miterlimit: 10;
        }
        .st1 {
          fill: white;
        }
      }
      &::after{
        content: '';
        display: none;
        position: fixed;
        left: 4vw;
        margin-top: -10px;
        height: 1px;
        width: 30px;
        background: $mainColorDark;
        z-index: 1000;
      }
      &.active::after{
        display: block;
      }
      &.menuBtn::after{
        margin-left: 0;
      }
      @include mq(middle) {
        &.active::after{
          display: block;
        }
      }

    }
    @include mq(middle) {
      a {
        svg {
          width: 24px;
          height: 24px;
        }
      }
    }
    &_access{
      > a{
        height: 30px;
        @include mq(middle) {
          height: 24px;
        }
      }
    }

    &MenuBtn {
      position: relative;
      &::before {
        content: '';
        position: absolute;
        z-index: -1;
        top: 50%;
        left: 50%;
        display: block;
        padding: 10vw;
        background: #222;
        border-radius: 50%;
        transform: translateY(-50%) translateX(-50%);
      }
      .menuBtn {
        position: relative;
        @include flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        width: 25px;
        height: 13px;
        cursor: pointer;
        span {
          position: absolute;
          display: block;
          width: 25px;
          height: 1px;
          background: white;
          &:nth-child(1) {
            top: 0;
          }
          &:nth-child(2) {
            top: 6px;
          }
          &:nth-child(3) {
            top: 12px;
          }
        }
        &_text {
          top: 18px;
          width: auto!important;
          height: auto!important;
          line-height: 1;
          color: white;
          font-size: 1rem;
          background: none!important;
        }
      }
    }
    &_block{
      position: absolute;
      display: none;
      background: $mainColorXLight;
      top:auto;
      bottom: 56px;
      left: 0;
      width: 100%;
      padding-top: 50px;
      max-height: calc( 100vh - 56px );
      overflow: auto;
      &_frame{
        @include flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        width: 100%;
        height: auto;
        text-align: center;
      }
      &_inner{
        position: relative;
        ul{
          list-style-image: url(data:0);
          li{
            list-style-image: url(data:0);
          }
        }
      }
    }
    @include mq(middle) {
      &_block{
        top: 0;
        bottom: auto;
        left: 4vw;
        width: auto;
        padding-top: 0;
        max-height: 100vh;
        &_frame{
          width: 300px;
          height: 100vh;
          overflow: auto;
        }
      }
    }

    &_logo{
      width: 100%;
      margin-bottom: 30px;
      svg {
        margin: 0 auto;
        max-height: 40px;
        max-width: 40px;
        .st0{
          fill: $mainColorDark;
        }
        .st1 {
          fill: $mainColorDark;
        }
        .st2 {
          fill: none;
          stroke: $mainColorDark;
          stroke-linecap: round;
          stroke-linejoin: round;
          stroke-miterlimit: 10;
        }
      }
    }
    &_title{
      font-size: $smallFontSize;
      font-weight: bold;
      margin-bottom: 10px;
    }
    &_date{
      font-weight: bold;
      font-size: $largeFontSize;
      span{
        display: block;
        font-size: $xxLargeFontSize;
      }
    }
    .btn_base{
      margin-top: 20px;
      a{
        margin-bottom: 0;
      }
    }
    .btn_base:last-child{
      a{
        margin-bottom: 80px;
      }
    }
    @include mq(middle) {
      .btn_base{
        a{
          margin-bottom: 0;
        }
      }
    }
    &_cap{
      font-size: $smallFontSize;
      margin-top: 20px;
      p{
        line-height: 1.3;
        small{
          font-size: $xSmallFontSize;
        }
      }
    }
    &_open{
      .subMenu_item_block_inner{
        margin-bottom: 80px;
        @include mq(middle) {
          margin-bottom: 0;
        }
      }
    }
    &_access{
      .subMenu_item_cap{
        p{
          margin-bottom: 20px;
          font-size: $smallFontSize;
        }
      }
    }
    &_sns{
      display: none;
    }
    @include mq(middle) {
      &_sns{
        display: block;
      }
    }
    &_snsList{
      margin-top: 60px;
    }
    &_snsItem{
      margin-bottom: 30px;
      a{
        svg {
          margin: 0 auto 5px;
          height: 28px;
          width: 28px;
        }
        font-size: $xSmallFontSize;
        font-weight:bold;
        @include mq(middle) {
          &:hover{
            color: $subColorDark;
            svg path{
              fill: $subColorDark;
            }
          }
        }
      }
    }
    &_snsList_sp{
      @include flex;
      justify-content: center;
      align-items: center;
      margin-bottom: 40px;
      .subMenu_item{
        &_snsItem{
          margin: 0 20px;
          a{
            svg {
              height: 28px;
              width: 28px;
            }
          }
        }
      }
    }

    &_lngs{
      /*display: none;*/
      .subMenu_item_block_inner{
        margin-bottom: 40px;
        @include mq(middle) {
          margin-bottom: 0;
        }
      }
    }
    &_lng{
      margin-top: 30px;
      &_sp{
        text-align: center;
        border-bottom:1px solid $mainColorLight;
        margin-bottom: 20px;
      }
      &Item{
        margin-bottom: 15px;
        display: inline-block;
        a{
          position: relative;
          display: block;
          padding: 0 5px;
          margin: 0 10px;
        }
        &.active{
          a{
            color: white;
            background: $mainColorDark;
          }
        }
      }
      @include mq(middle) {
        &Item {
          @include textEffect($mainColorDark);
          display: block;
        }
      }
    }
    @include mq(middle) {
      &_lngs{
        display: block;
      }
    }

    &_search{
      .search_filter{
        .searchfield{
          border-bottom: 1px solid $mainColorDark;
          padding: 0 20px;
          text-align: center;
          margin: 30px auto 20px;
          display: block;
          max-width: 210px;
          height: 30px;
        }
        .btn_base {
          font-size: $mediumFontSize;
          margin-left: auto;
          margin-right: auto;
          width: 110px;
          @include ff_japanese_thin_gothic_bold;
          input {
            position: relative;
            width: 110px;
            margin: 0 auto 80px;
            display: block;
            padding: 10px 0;
            text-align: center;
            border: 1px solid $mainColorDark;
          }
        }
        @include mq(middle) {
          .btn_base {
            @include btnEffect(white, $mainColorDark);
            z-index: 100;
            input {
              margin: 0 auto ;
            }
          }
        }

      }
      .search_filter{
        display: block;
        }
    }
    &_tipped{
      display: none;
      position: fixed;
      left: 4.8vw;
      top: auto;
      margin-top: -27px;
      padding: 7px 10px;
      font-size: $xSmallFontSize;
      background: white;
      z-index: 1100;
      &::before {
        content: "";
        position: absolute;
        top: 50%;
        left: -10px;
        margin-top: -5px;
        border: 5px solid transparent;
        border-right: 5px solid white;
      }
    }
    &.subMenu_item{
      .active{
        svg{
          .st2{
            stroke: $mainColorLight;
          }
          .st0{
            fill: $mainColorLight;
          }
        }
      }
    }
    /*
    &.subMenu_item_open{
      .active{
        svg{
          .st0{
            stroke: $accentColor02Dark;
          }
        }
      }
      .subMenu_item_block{
        background: $accentColor02Dark;
      }
    }
    */

  }
  &_gnavi{
    display: none;
    position: fixed;
    top: 100%;
    left: 0;
    width: 100%;
    height: 92vh;
    -webkit-overflow-scrolling: touch;
    overflow-y: scroll;
    background: white;
    padding: 0 8vw 40px;
    z-index: 1100;
    transition: $transition_c5s;
    .subMenu{
      &_logo{
        width: 80%;
        padding: 18px 0;
        margin: 0 auto;
      }
      &_nav{
        &_list{
          border-bottom:1px solid $mainColorLight;
          margin-bottom: 20px;
        }
        &_item{
          text-align: center;
          > a{
            padding: 16px 0;
            display: block;
            border-top:1px solid $mainColorLight;
            position: relative;
            font-size: $mSmallFontSize;
            &::before,
            &::after{
              display: block;
              content: "";
              position: absolute;
              top: 27px;
              right: 10px;
              width: 15px;
              height: 1px;
              background: $mainColorLight;
            }
            &::before {
            }
            &::after {
              transform: rotate(90deg);
            }
            &.active::after {
              display: none;
            }
            &.direct::before,
            &.direct::after {
              display: none;
            }

          }
        }
        &_menu{
          display: none;
          margin-bottom: 18px;
          &_block{

            h4{
              color: $mainColorLight;
              font-size: $smallFontSize;
              padding-top: 10px;
              margin-bottom: 18px;
            }
            ul{
              li{
                a{
                  margin-bottom: 10px;
                }
              }
            }
          }
        }
      }
      &_nav{

      }

    }
  }
  &_close{
    display: block;
    position: absolute;
    top: 20px;
    right: 20px;
    width: 20px;
    height: 20px;
    cursor: pointer;

    span::before,
    span::after{
      display: block;
      content: "";
      position: absolute;
      top: 50%;
      left: 50%;
      width: 100%;
      height: 1px;
      background: $mainColorDark;
      margin-left: -10px;
    }
    span::before {
      transform: rotate(-45deg);
    }
    span::after {
      transform: rotate(45deg);
    }
  }
  @include mq(middle) {
    &_close{
      display: none;
    }
  }

}
.mvSp {
  position: relative;
  height: calc(100vh - 56px);
  padding-top: 13vh;
  &_split {
    width: 100%;
    z-index: 0;
    position: relative;
    height: 100%;
    .kvSwiper{
      display: none;
      .swiper-slide{
        overflow: hidden;
          height: calc(100vh - 13vh - 56px);
        img{
          position: absolute;
          top: 0;
          left: -30px;
          text-align: right;
          width: auto;
          height: 100%;
        }
        &.swiper-slide-next{
          img{
            left: -30px;
          }
        }
        &.swiper-slide-active{
          img{
            animation: slide 7s linear 0s 1 normal both;
          }
          &.slide01{
            img{
              animation: slide 5s linear 0s 1 normal both;
            }
          }
        }
      }
    }

    &_item {
      position: relative;
      overflow: hidden;
      width: 100%;
      height: 50%;
      &Top {
        position: relative;
        &_layer {
          position: absolute;
          top: 0;
          left: 0;
          width: 100%;
          height: 100%;
          background: rgba(0, 0, 0, .3);
        }
      }
    }
  }
}
@keyframes slide {
  0% {
    transform: translateX(30px);
  }
  100% {
    transform: translateX(0);
  }
}

.mvPc {
  width: 100%;
  height: calc(100vh - 11vh); /* 変数をサポートしていないブラウザのフォールバック */
  height: calc(var(--vh, 1vh) * 100 - 11vh);
  overflow: hidden;
  display: none;
  &_split {
    @include flex;
    width: 100%;
    height: 100%;
    padding-left: 4vw;
      &_video{
        position: relative;
        width: 100%;
        height: 100%;
        opacity: 0;
        video {
          position: absolute;
          width: auto;
          height: auto;
          top: 50%;
          left: 50%;
          min-height: 100%;
          min-width: 100%;
          -ms-transform: translateX(-50%) translateY(-50%);
          -moz-transform: translateX(-50%) translateY(-50%);
          -webkit-transform: translateX(-50%) translateY(-50%);
          transform: translateX(-50%) translateY(-50%);
        }
        @supports ( object-fit: cover ) {
          video {
            position: static;
            min-height: 100%;
            width: 100%;
            left: 0;
            -o-object-fit: cover;
            object-fit: cover;
            top: 0;
            -ms-transform: none;
            -moz-transform: none;
            -webkit-transform: none;
            transform: none;
          }
        }
      }
      &_layer {
        position: absolute;
        top: 0;
        left: 0;
        display: none;
        width: 100%;
        height: 100%;
      }
  }
}

@include mq(middle) {
  .loading {
    &_logo {
      width: 30%;
    }
  }
  .info {
    bottom: 13vh;
    top: auto;
    left: auto;
    right: 50px;

    width: 140px;
    height: 140px;
    &.top_down{
      top: auto;
    }

    svg {
      width: 140px;
      height: 140px;
    }
    &_text {
      p {
        color: white;
        &:first-child {
          margin-bottom: 8px;
          font-size: $mSmallFontSize;
        }
        &:nth-child(2) {
          margin-bottom: 6px;
          font-size: $largeFontSize;
        }
      }
    }
  }
  .lang_en .info,
  .lang_kr .info,
  .lang_tw .info,
  .lang_cn .info{
    bottom: 22vh;
  }
  .header {
    top: auto;
    bottom: 0;
    height: 11vh;
    background: none;
    padding-left: 4vw;
    z-index: 1998;
    &_block {
      width: 100%;
      height: 100%;
      opacity: 0;
      background: white;
    }
    &_inner {
      justify-content: space-between;
      height: 100%;
      padding: 0 5%;
    }
    &_logo {
      width: 20%;
    }
    &.fixed{
      .header_logo{
        width: 200px;
      }
    }
    // WordPress管理バー対応：管理バーが表示されている場合、PC版のヘッダーも上にずらす
    body.admin-bar & {
      bottom: auto;
      top: 46px; // モバイル用（782px以下）
      @media screen and (min-width: 783px) {
        top: 32px; // デスクトップ用（782px超）
      }
    }
    &_nav {
      display: block;
      &_list {
        @include flex;
      }
      &_item {
        margin-right: 40px;
        &:last-child {
          margin-right: 0;
        }
        a {
          @include textEffect($mainColorDark);
        }
      }
      &_block{
        display: none;
        position: absolute;
        left: 0;
        bottom:auto;
        top: 100%;
        width: 100%;
        height: 240px;
        padding-left:4vw;
        background: $mainColorXLight;
        &_inner {
          @include flex;
          h3{
            width: 40%;
            text-align: center;
            font-size: $h1FontSize;
            padding-top: 80px;
            i{
              display: block;
              font-style: normal;
              font-size: $xSmallFontSize;
            }
          }
          .header_nav_menu{
            @include flex;
            &_block{
              margin-right: 60px ;
              padding-top: 40px;
              h4{
                font-size: $smallFontSize;
                color: $mainColorMid;
                margin-bottom: 20px;
              }
              ul{
                list-style-image: url(data:0);
                li{
                  list-style-image: url(data:0);
                }
              }
            }
          }
        }
      }
    }
    &.fixed{
      height: 60px;
    }
  }
  .bottom_open .header_nav_block{
    top: auto;
    bottom: 100%;
  }
  .lower .header {
    top: 0;
    bottom: auto;
    padding-left: 4vw;
  }
  // WordPress管理バー対応：管理バーが表示されている場合、lowerページのヘッダーも下にずらす
  body.admin-bar .lower .header {
    top: 46px; // モバイル用（782px以下）
    @media screen and (min-width: 783px) {
      top: 32px; // デスクトップ用（782px超）
    }
  }
  .subMenu {
    width: 4vw;
    min-width:46px;
    height: 100vh;
    background: none;
    &_block {
      width: inherit;
      min-width:50px;
      height: inherit;
      background: $mainColorDark;
      opacity: 0;
    }
    &_list {
      width: inherit;
      min-width:50px;
      height: inherit;
      justify-content: center;
      flex-direction: column;
      &Top {
        height: 100%;
      }
      &Bottom {
        height: 30%;
      }
    }
    &_item {
      width: 24px;
      height: auto;
      padding: 0 0 40px;
      margin: 0 auto;
      > a {
        svg {
          .st2{
            fill: none;
            stroke: $subColorDark;
            stroke-linecap: round;
            stroke-linejoin: round;
            stroke-miterlimit: 10;
          }
          .st0{
            fill: $subColorDark;
          }
          line,
          rect,
          polygon,
          path,
          circle,
          ellipse {
            transition: $transition_c5s;
          }
        }
        &:hover {
          svg {
            line,
            rect,
            polygon,
            path,
            circle,
            ellipse {
              fill: white;
            }
          }
        }
      }
      &:nth-child(2) {
        a {
          svg {
            path {
              transition: $transition_c5s;
            }
          }
          &:hover {
            svg {
              path {
              }
            }
          }
        }
      }
      &MenuBtn {
        display: none;
      }
    }
    &_layer {
      position: absolute;
      top: 0;
      left: 0;
      display: none;
      width: 100%;
      height: 100%;
      background: $mainColorMid;
    }
  }
  .mvSp {
    display: none;
  }
  .mvPc {
    display: block;
  }
}
