/**********************************
#header
**********************************/
header#header {
  width: 100%;
  background: #fff;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999; }
  header#header .wrap {
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    position: relative;
    overflow: hidden; }
    @media only screen and (min-width: 960px) {
      header#header .wrap {
        height: 80px; } }
    @media only screen and (max-width: 959px) {
      header#header .wrap {
        height: 10.66667vw; } }
  @media only screen and (min-width: 960px) {
    header#header {
      -webkit-box-shadow: 5px 0 10px rgba(62, 81, 87, 0.24);
      box-shadow: 5px 0 10px rgba(62, 81, 87, 0.24); } }
  @media only screen and (max-width: 959px) {
    header#header {
      -webkit-box-shadow: 0.66667vw 0 1.33333vw rgba(62, 81, 87, 0.24);
      box-shadow: 0.66667vw 0 1.33333vw rgba(62, 81, 87, 0.24); } }
  @media only screen and (min-width: 960px) {
    header#header .logo {
      width: 356px;
      margin-left: 15px; } }
  @media only screen and (max-width: 959px) {
    header#header .logo {
      width: 44vw; } }
  header#header .logo .pcHide {
    display: none; }
    @media only screen and (max-width: 959px) {
      header#header .logo .pcHide {
        display: block; } }
  header#header .headerLink {
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
    @media only screen and (min-width: 960px) {
      header#header .headerLink {
        margin-right: 3em; } }
    @media only screen and (max-width: 959px) {
      header#header .headerLink {
        margin-right: 1em; } }
    header#header .headerLink li {
      margin-right: .5em; }
      header#header .headerLink li a.link {
        display: inline-block;
        width: auto;
        height: auto; }
        @media only screen and (min-width: 960px) {
          header#header .headerLink li a.link {
            padding: .5em 1em;
            font-size: 14px; } }
        @media only screen and (max-width: 959px) {
          header#header .headerLink li a.link {
            padding: .3em .5em;
            font-size: 2.66667vw; } }
  header#header .menuBtn {
    position: absolute;
    right: 0;
    z-index: 9999; }
    @media only screen and (min-width: 960px) {
      header#header .menuBtn {
        cursor: pointer;
        width: 30px;
        top: calc(50% - 16px); } }
    @media only screen and (max-width: 959px) {
      header#header .menuBtn {
        width: 4vw;
        top: calc(50% - 2.13333vw); } }
    header#header .menuBtn span {
      display: block; }
    header#header .menuBtn .bar {
      display: block;
      background: #282b32;
      position: relative;
      z-index: 9999;
      -webkit-transition: .5s;
      -o-transition: .5s;
      transition: .5s;
      line-height: 1; }
      @media only screen and (min-width: 960px) {
        header#header .menuBtn .bar {
          width: 30px;
          height: 4px;
          font-size: 20px; } }
      @media only screen and (max-width: 959px) {
        header#header .menuBtn .bar {
          width: 4vw;
          height: 0.53333vw;
          font-size: 2.66667vw; } }
      @media only screen and (min-width: 960px) {
        header#header .menuBtn .bar:not(.bottom) {
          margin-bottom: 6px; } }
      @media only screen and (max-width: 959px) {
        header#header .menuBtn .bar:not(.bottom) {
          margin-bottom: 0.8vw; } }
    header#header .menuBtn .nemuTxt {
      -webkit-transition: .5s;
      -o-transition: .5s;
      transition: .5s; }
      @media only screen and (min-width: 960px) {
        header#header .menuBtn .nemuTxt {
          font-size: 17px; } }
      @media only screen and (max-width: 959px) {
        header#header .menuBtn .nemuTxt {
          font-size: 2.26667vw; } }
    header#header .menuBtn .open .bar.top {
      background: #fff;
      -webkit-transform: rotate(45deg) translate(0.35em, 0.35em);
      -ms-transform: rotate(45deg) translate(0.35em, 0.35em);
      transform: rotate(45deg) translate(0.35em, 0.35em); }
    header#header .menuBtn .open .bar.middle {
      opacity: 0; }
    header#header .menuBtn .open .bar.bottom {
      background: #fff;
      -webkit-transform: rotate(-45deg) translate(0.35em, -0.35em);
      -ms-transform: rotate(-45deg) translate(0.35em, -0.35em);
      transform: rotate(-45deg) translate(0.35em, -0.35em); }
    header#header .menuBtn .open .nemuTxt {
      opacity: 0; }
  header#header .ohterNavi {
    display: none; }

#navBg {
  width: 0;
  height: 100vh;
  overflow: hidden;
  position: fixed;
  top: 0;
  right: 0;
  z-index: 9998;
  color: #fff; }
  #navBg .navCont {
    height: 100vh;
    background-color: rgba(40, 43, 50, 0.97);
    position: fixed;
    top: 0;
    right: 0;
    -webkit-transition: .5s;
    -o-transition: .5s;
    transition: .5s;
    -webkit-transform: translate(100%);
    -ms-transform: translate(100%);
    transform: translate(100%); }
    @media only screen and (min-width: 960px) {
      #navBg .navCont {
        display: -webkit-flex;
        display: -moz-flex;
        display: -ms-flex;
        display: -o-flex;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        -webkit-box-align: start;
        -ms-flex-align: start;
        align-items: flex-start;
        width: 50%;
        min-width: 660px;
        padding-left: 50px; } }
    @media only screen and (max-width: 959px) {
      #navBg .navCont {
        overflow: scroll;
        width: 96vw;
        padding-top: 8vw;
        padding-bottom: 2.66667vw; } }
  #navBg .navBtnArea {
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    position: relative;
    z-index: 10;
    overflow: hidden; }
    @media only screen and (min-width: 960px) {
      #navBg .navBtnArea {
        margin-bottom: 20px; } }
    @media only screen and (max-width: 959px) {
      #navBg .navBtnArea {
        margin: 0 auto;
        margin-bottom: 6.66667vw; } }
    #navBg .navBtnArea a {
      color: #fff;
      text-align: center;
      line-height: 1.3;
      background: #282b32;
      display: inline-block;
      margin: 0 auto;
      display: -webkit-flex;
      display: -moz-flex;
      display: -ms-flex;
      display: -o-flex;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      justify-content: center;
      position: relative;
      -webkit-transform: translate(-100%);
      -ms-transform: translate(-100%);
      transform: translate(-100%);
      opacity: 0;
      -webkit-transition: .5s;
      -o-transition: .5s;
      transition: .5s;
      -webkit-transition-delay: .3s;
      -o-transition-delay: .3s;
      transition-delay: .3s; }
      @media only screen and (min-width: 960px) {
        #navBg .navBtnArea a {
          width: 240px;
          height: 40px;
          border: solid 2px #fff; } }
      @media only screen and (max-width: 959px) {
        #navBg .navBtnArea a {
          width: 46.66667vw;
          height: 8vw;
          border: solid 1px #fff; } }
      @media only screen and (min-width: 960px) {
        #navBg .navBtnArea a {
          padding-right: 10px; } }
      @media only screen and (max-width: 959px) {
        #navBg .navBtnArea a {
          padding-right: 2.66667vw; } }
      #navBg .navBtnArea a::after {
        content: '';
        display: block;
        position: absolute;
        border-top: solid 2px #fff;
        border-right: solid 2px #fff;
        -webkit-transform: rotate(45deg) skewX(5deg) skewY(5deg);
        -ms-transform: rotate(45deg) skewX(5deg) skewY(5deg);
        transform: rotate(45deg) skewX(5deg) skewY(5deg); }
        @media only screen and (min-width: 960px) {
          #navBg .navBtnArea a::after {
            width: 5px;
            height: 5px;
            top: calc(50% - 3.83px);
            right: 10px; } }
        @media only screen and (max-width: 959px) {
          #navBg .navBtnArea a::after {
            width: 0.93333vw;
            height: 0.93333vw;
            top: calc(50% - 0.71467vw);
            right: 2.66667vw; } }
      @media only screen and (min-width: 960px) {
        #navBg .navBtnArea a {
          width: 250px;
          height: 70px;
          margin: 0;
          -webkit-box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3);
          box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3);
          font-size: 14px; } }
      @media only screen and (max-width: 959px) {
        #navBg .navBtnArea a {
          width: 43.33333vw;
          height: 12vw;
          margin: 0;
          -webkit-box-shadow: 0.53333vw 0.53333vw 2.13333vw rgba(0, 0, 0, 0.3);
          box-shadow: 0.53333vw 0.53333vw 2.13333vw rgba(0, 0, 0, 0.3);
          font-size: 2.93333vw; } }
    @media only screen and (min-width: 960px) {
      #navBg .navBtnArea .btn3 {
        margin-right: 10px; }
        #navBg .navBtnArea .btn3:hover {
          -webkit-animation: lineRq .3s forwards linear;
          animation: lineRq .3s forwards linear; } }
    @media only screen and (min-width: 960px) {
      #navBg .navBtnArea .btn12:hover {
        -webkit-animation: lineOc .3s forwards linear;
        animation: lineOc .3s forwards linear; } }
    @media only screen and (max-width: 959px) {
      #navBg .navBtnArea .btn12 {
        margin-left: 1.33333vw; } }
  @media only screen and (min-width: 960px) {
    #navBg .navListArea {
      width: 550px; } }
  @media only screen and (max-width: 959px) {
    #navBg .navListArea {
      width: 90.66667vw;
      margin: 0 auto;
      margin-top: 5.33333vw;
      padding-bottom: 2.66667vw; } }
  #navBg .navListArea h3 {
    border-bottom: solid 1px transprant;
    -webkit-transition: .5s;
    -o-transition: .5s;
    transition: .5s;
    -webkit-transition-delay: .5s;
    -o-transition-delay: .5s;
    transition-delay: .5s;
    overflow: hidden; }
    @media only screen and (min-width: 960px) {
      #navBg .navListArea h3 {
        padding: 0 0 5px 25px;
        font-size: 20px;
        font-weight: bold; } }
    @media only screen and (max-width: 959px) {
      #navBg .navListArea h3 {
        padding: 0 0 1.33333vw 5.33333vw;
        font-size: 4.53333vw; } }
    #navBg .navListArea h3 span {
      opacity: 0;
      -webkit-transform: translateY(100%);
      -ms-transform: translateY(100%);
      transform: translateY(100%);
      -webkit-transition: .5s;
      -o-transition: .5s;
      transition: .5s;
      -webkit-transition-delay: .4s;
      -o-transition-delay: .4s;
      transition-delay: .4s; }
  @media only screen and (min-width: 960px) {
    #navBg .navListArea nav {
      padding-left: 30px; } }
  #navBg .navListArea nav ul {
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    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; }
    @media only screen and (min-width: 960px) {
      #navBg .navListArea nav ul {
        margin-bottom: 20px; } }
    @media only screen and (max-width: 959px) {
      #navBg .navListArea nav ul {
        margin: 0 auto 1.33333vw;
        width: 82.66667vw;
        font-size: 3.06667vw; } }
    @media only screen and (min-width: 960px) {
      #navBg .navListArea nav ul.navMain {
        margin-bottom: 10px; } }
    @media only screen and (min-width: 960px) {
      #navBg .navListArea nav ul.navMain li {
        font-size: 14px; } }
    @media only screen and (max-width: 959px) {
      #navBg .navListArea nav ul.navMain li {
        width: auto;
        margin-top: 1.33333vw;
        font-size: 3.73333vw; } }
    #navBg .navListArea nav ul.navMain a {
      -webkit-transition-delay: .6s;
      -o-transition-delay: .6s;
      transition-delay: .6s; }
      @media only screen and (min-width: 960px) {
        #navBg .navListArea nav ul.navMain a {
          padding-left: 20px; } }
      @media only screen and (max-width: 959px) {
        #navBg .navListArea nav ul.navMain a {
          background: #282b32;
          display: inline-block;
          margin: 0 auto;
          display: -webkit-flex;
          display: -moz-flex;
          display: -ms-flex;
          display: -o-flex;
          display: -webkit-box;
          display: -ms-flexbox;
          display: flex;
          -webkit-box-align: center;
          -ms-flex-align: center;
          align-items: center;
          -webkit-box-pack: center;
          -ms-flex-pack: center;
          justify-content: center;
          position: relative; } }
  @media only screen and (max-width: 959px) and (min-width: 960px) {
    #navBg .navListArea nav ul.navMain a {
      width: 240px;
      height: 40px;
      border: solid 2px #fff; } }
  @media only screen and (max-width: 959px) and (max-width: 959px) {
    #navBg .navListArea nav ul.navMain a {
      width: 46.66667vw;
      height: 8vw;
      border: solid 1px #fff; } }
  @media only screen and (max-width: 959px) and (min-width: 960px) {
    #navBg .navListArea nav ul.navMain a {
      padding-right: 10px; } }
  @media only screen and (max-width: 959px) and (max-width: 959px) {
    #navBg .navListArea nav ul.navMain a {
      padding-right: 2.66667vw; } }
      @media only screen and (max-width: 959px) {
          #navBg .navListArea nav ul.navMain a::after {
            content: '';
            display: block;
            position: absolute;
            border-top: solid 2px #fff;
            border-right: solid 2px #fff;
            -webkit-transform: rotate(45deg) skewX(5deg) skewY(5deg);
            -ms-transform: rotate(45deg) skewX(5deg) skewY(5deg);
            transform: rotate(45deg) skewX(5deg) skewY(5deg); } }
    @media only screen and (max-width: 959px) and (min-width: 960px) {
      #navBg .navListArea nav ul.navMain a::after {
        width: 5px;
        height: 5px;
        top: calc(50% - 3.83px);
        right: 10px; } }
    @media only screen and (max-width: 959px) and (max-width: 959px) {
      #navBg .navListArea nav ul.navMain a::after {
        width: 0.93333vw;
        height: 0.93333vw;
        top: calc(50% - 0.71467vw);
        right: 2.66667vw; } }
      @media only screen and (max-width: 959px) {
        #navBg .navListArea nav ul.navMain a {
          width: 40vw;
          height: 12vw;
          margin: 0;
          padding: 0;
          -webkit-box-shadow: 0.53333vw 0.53333vw 2.13333vw rgba(0, 0, 0, 0.3);
          box-shadow: 0.53333vw 0.53333vw 2.13333vw rgba(0, 0, 0, 0.3);
          font-size: 2.93333vw; } }
      @media only screen and (min-width: 960px) {
        #navBg .navListArea nav ul.navMain a::before {
          width: 6px;
          height: 6px;
          top: calc(50% - 4.83px); } }
      @media only screen and (max-width: 959px) {
        #navBg .navListArea nav ul.navMain a::before {
          content: none; } }
    #navBg .navListArea nav ul.navSub li {
      padding-right: .5em; }
  #navBg .navListArea nav li {
    overflow: hidden; }
    @media only screen and (min-width: 960px) {
      #navBg .navListArea nav li {
        margin-top: 10px;
        font-size: 14px; } }
    @media only screen and (max-width: 959px) {
      #navBg .navListArea nav li {
        margin-top: 5.33333vw;
        font-size: 3.46667vw; } }
    @media only screen and (min-width: 960px) {
      #navBg .navListArea nav li:nth-child(2n-1) {
        width: 215px; } }
    @media only screen and (max-width: 959px) {
      #navBg .navListArea nav li:nth-child(2n-1) {
        width: 44vw; } }
    @media only screen and (min-width: 960px) {
      #navBg .navListArea nav li:nth-child(2n) {
        width: 300px; } }
    @media only screen and (max-width: 959px) {
      #navBg .navListArea nav li:nth-child(2n) {
        width: 38.66667vw; } }
  #navBg .navListArea nav a {
    display: block;
    color: #fff;
    line-height: 1.3;
    position: relative;
    -webkit-transform: translate(-100%);
    -ms-transform: translate(-100%);
    transform: translate(-100%);
    opacity: 0;
    -webkit-transition: .5s;
    -o-transition: .5s;
    transition: .5s;
    -webkit-transition-delay: .7s;
    -o-transition-delay: .7s;
    transition-delay: .7s; }
    @media only screen and (min-width: 960px) {
      #navBg .navListArea nav a {
        padding-left: 15px; } }
    @media only screen and (max-width: 959px) {
      #navBg .navListArea nav a {
        padding-left: 2.66667vw; } }
    #navBg .navListArea nav a::before {
      content: '';
      display: block;
      position: absolute;
      border-top: solid 2px #fff;
      border-right: solid 2px #fff;
      -webkit-transform: rotate(45deg) skewX(5deg) skewY(5deg);
      -ms-transform: rotate(45deg) skewX(5deg) skewY(5deg);
      transform: rotate(45deg) skewX(5deg) skewY(5deg); }
      @media only screen and (min-width: 960px) {
        #navBg .navListArea nav a::before {
          width: 4px;
          height: 4px;
          top: calc(50% - 3px);
          left: 0; } }
      @media only screen and (max-width: 959px) {
        #navBg .navListArea nav a::before {
          width: 0.93333vw;
          height: 0.93333vw;
          top: calc(50% - 0.71467vw);
          left: 0; } }
  #navBg.open {
    width: 100%; }
    #navBg.open .navCont {
      -webkit-transform: translate(0);
      -ms-transform: translate(0);
      transform: translate(0); }
    #navBg.open .navBtnArea a {
      -webkit-transform: translate(0);
      -ms-transform: translate(0);
      transform: translate(0);
      opacity: 1; }
    #navBg.open .navListArea h3 {
      border-bottom: solid 1px #fff; }
      #navBg.open .navListArea h3 span {
        -webkit-transform: translate(0);
        -ms-transform: translate(0);
        transform: translate(0);
        opacity: 1; }
    #navBg.open .navListArea a {
      -webkit-transform: translate(0);
      -ms-transform: translate(0);
      transform: translate(0);
      opacity: 1; }

@media only screen and (min-width: 960px) {
  #navLeft {
    position: fixed;
    top: calc(50% - (352px /2));
    left: 0;
    z-index: 9998; }
    #navLeft ul li:not(:last-child) {
      margin-bottom: 10px; }
    #navLeft ul li a {
      display: -webkit-flex;
      display: -moz-flex;
      display: -ms-flex;
      display: -o-flex;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -ms-flex-direction: column;
      flex-direction: column;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      justify-content: center;
      width: 50px;
      min-height: 150px;
      padding: 7px 0 20px;
      border-style: solid;
      border-width: 2px 2px 2px 0;
      border-color: #fff;
      color: #fff;
      font-size: 14px;
      font-weight: bold; }
      #navLeft ul li.shiryo a {
        background-color: #ca0000; }
      #navLeft ul li.oc a {
        background-color: #329ee9; }
      #navLeft ul li a::before {
        content: '';
        display: block;
        width: 27px;
        height: 27px;
        margin-bottom: 8px;
        background-repeat: no-repeat;
        background-size: contain; }
        #navLeft ul li.shiryo a::before {
          background-image: url(/img/2018/common/icon_shiryo.png); }
        #navLeft ul li.oc a::before {
          background-image: url(/img/2018/common/icon_oc.png); }
      #navLeft ul li a:hover {
        width: 60px;
        padding-left: 10px;
        -webkit-transform: translateY(0);
        -ms-transform: translateY(0);
        transform: translateY(0); }
      #navLeft ul li a span {
        -ms-writing-mode: tb-rl;
        -webkit-writing-mode: vertical-rl;
        writing-mode: vertical-rl; } }
