#navi {
  display: block;
  position: fixed;
  top: 0;
  right: -420px;
  bottom: 0;
  max-width: 420px;
  width: 100%;
  padding: 20px 40px 20px 40px;
  background-color: #F5F5F5;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  transition: all .5s;
  z-index: 999;
  opacity: 0; }
  #navi nav {
    margin-top: 80px; }
    @media (min-width: 1024px) {
      #navi nav {
        margin-top: 40px; } }
    #navi nav .pcsp-menu ul {
      list-style: none;
      color: #000;
      margin-bottom: 20px; }
      @media (min-width: 1024px) {
        #navi nav .pcsp-menu ul {
          margin-bottom: 40px; } }
      #navi nav .pcsp-menu ul:last-child {
        margin-bottom: 0; }
      #navi nav .pcsp-menu ul li {
        opacity: 0;
        margin-bottom: 12px; }
        @media (min-width: 1024px) {
          #navi nav .pcsp-menu ul li {
            margin-bottom: 15px; } }
        #navi nav .pcsp-menu ul li.last {
          border-bottom: 1px solid #000;
          padding-bottom: 20px; }
          @media (min-width: 1024px) {
            #navi nav .pcsp-menu ul li.last {
              padding-bottom: 30px; } }
          #navi nav .pcsp-menu ul li.last a {
            color: #E60012; }
        #navi nav .pcsp-menu ul li:last-child {
          margin-bottom: 0; }
        #navi nav .pcsp-menu ul li h3 {
          font-size: 1.35em;
          line-height: 1.4em; }
          @media (min-width: 1024px) {
            #navi nav .pcsp-menu ul li h3 {
              font-size: 1.5em; } }
        #navi nav .pcsp-menu ul li a {
          font-size: 0.9em;
          line-height: 1.2em;
          position: relative;
          transition: .5s; }
          @media (min-width: 1024px) {
            #navi nav .pcsp-menu ul li a {
              font-size: 1.0em; } }
          #navi nav .pcsp-menu ul li a:hover {
            color: #E60012; }
          #navi nav .pcsp-menu ul li a::after {
            position: absolute;
            bottom: 0;
            left: 0;
            content: '';
            width: 100%;
            height: 1px;
            background: #E60012;
            transform: scale(0, 1);
            transform-origin: right top;
            transition: transform .3s; }
          #navi nav .pcsp-menu ul li a:hover::after {
            transform-origin: left top;
            transform: scale(1, 1); }
    #navi nav ul.menu-shita {
      margin: 30px 0 0 0;
      opacity: 0; }
      @media (min-width: 768px) {
        #navi nav ul.menu-shita {
          margin: 50px 0 0 0; } }
      #navi nav ul.menu-shita li {
        margin-top: 20px; }
        #navi nav ul.menu-shita li a {
          display: flex;
          align-items: center; }
          #navi nav ul.menu-shita li a p {
            font-size: 0.8em;
            font-weight: 700;
            line-height: 1.2em;
            position: relative;
            color: #000; }
            @media (min-width: 768px) {
              #navi nav ul.menu-shita li a p {
                font-size: 1.0em; } }
            #navi nav ul.menu-shita li a p::after {
              position: absolute;
              bottom: 0;
              left: 0;
              content: '';
              width: 100%;
              height: 1px;
              background: #000;
              transform: scale(0, 1);
              transform-origin: right top;
              transition: transform .3s; }
            #navi nav ul.menu-shita li a p:hover::after {
              transform-origin: left top;
              transform: scale(1, 1); }
          #navi nav ul.menu-shita li a img {
            width: 14px;
            margin-left: 10px; }

.open #navi {
  right: 0;
  opacity: 1; }

.open #mask {
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #000;
  opacity: .5;
  z-index: 10;
  cursor: pointer; }

#navi.panelactive ul li {
  animation: fadeInRight1 0.5s ease forwards;
  animation-delay: .5s; }
  #navi.panelactive ul li:nth-of-type(2) {
    animation-delay: .55s; }
  #navi.panelactive ul li:nth-of-type(3) {
    animation-delay: .60s; }
  #navi.panelactive ul li:nth-of-type(4) {
    animation-delay: .65s; }
  #navi.panelactive ul li:nth-of-type(5) {
    animation-delay: .70s; }
  #navi.panelactive ul li:nth-of-type(6) {
    animation-delay: .75s; }
  #navi.panelactive ul li:nth-of-type(7) {
    animation-delay: .80s; }
  #navi.panelactive ul li:nth-of-type(8) {
    animation-delay: .85s; }

@keyframes fadeInRight1 {
  0% {
    opacity: 0;
    transform: translateX(20px); }
  100% {
    opacity: 1;
    transform: translateX(0); } }
#navi.panelactive .menu-shita {
  animation: fadeInRight2 0.5s ease forwards;
  animation-delay: .85s; }

@keyframes fadeInRight2 {
  0% {
    opacity: 0;
    transform: translateY(20px); }
  100% {
    opacity: 1;
    transform: translateY(0); } }
