/* slide_title icon 縦に回転 */
@keyframes rotation {
  0% {
    transform: rotateX(0deg);
  }
  100% {
    transform: rotateX(360deg);
  }
}

/* CASEスライダー セクション */
.single-casePage {
  #caseBox {
    margin-top: 0;
  }
}

#caseBox {
  padding-block: 12rem;
  background: url("../../img/common/bg_case.png") center center no-repeat;
  background-size: cover;
  position: relative;
  z-index: 2;
  .page__hgroup {
    h2.is-animated {
      animation: textSlide 3s ease-out forwards;
          -webkit-animation: textSlide 3s ease-out forwards;
                  animation: textSlide 3s ease-out forwards;
    }
  }

  .caseBox_contents {
    position: relative;
  }
  .caseSlider {
    position: relative;
    padding-top: 11.1rem;
    top: -3rem;
    max-width: 1030px;
  }

  .caseSlide {
    position: relative;
  }
  .caseSlide_link {
    position: relative;
    perspective: 1000px;
  }
  .slider_img {
    aspect-ratio: 16 / 9;
    position: relative;
    overflow: hidden;
  }
  .slider_img img {
    object-fit: cover;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: transform .4s;
  }

  .slider_numbers {
    position: absolute;
    left: 0;
    top: 0;
    z-index: 2;
  }

  .slider_number {
    font-size: 1.8rem;
    font-weight: 500;
    font-family: var(--fontOzwald);
    padding: 1.4rem 1rem 1.4rem 1.8rem;
    background: var(--colorMainBlue);
    color: var(--colorWhite);
    position: relative;
    line-height: 1;

    span {
      font-size: 2.4rem;
    }

    &::after {
      content: "";
      position: absolute;
      right: -1.9rem;
      top: 0;
      height: 100%;
      width: 2rem;
      clip-path: polygon(0 0%, 0% 106%, 96% 0%);
      background: var(--colorMainBlue);
    }
  }

  .slider_title {
    font-size: 1.6rem;
    font-weight: 700;
    padding: 2rem 8.8rem 2rem 2rem;
    line-height: 1.375;
    background: var(--colorWhite);
    background-size: contain;
    position: relative;
    perspective: 1000px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    .border {
      position: absolute;
      height: 3px;
      width: 100%;
      left: 0;
      bottom: 0;
      background: var(--colorMainBlue);
    }
  }


  .slider_title::before {
    content: "";
    background-color: var(--colorMainBlue);
    width: 8rem;
    height: 100%;
    position: absolute;
    top: 0;
    right: 0;
    clip-path: polygon(25% 0%, 100% 0, 100% 100%, 0% 100%);
  }
  .slider_title::after {
    content: "";
    background: url(../../img/common/arrow_right_white.svg) no-repeat center center /contain;
    width: 1.4rem;
    height: 1.6rem;
    position: absolute;
    right: 2.4rem;
    top: 2.5rem;
    transition: transform 0.6s ease;
    z-index: 3;
    transform-style: preserve-3d;
  }

  .caseSlide_link:hover {
    opacity: 1;
  }
  
  .caseSlide_link:hover .slider_img img {
    transform: translate(-50%, -50%) scale(1.05);
  }
  .caseSlide_link:hover .slider_title::after {
    animation: rotation 2s linear infinite;
  }

  
  .caseSlider__buttonPrev,
  .caseSlider__buttonNext {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 6rem;
    height: 6rem;
    background-size: contain;
    background-repeat: no-repeat;
    z-index: 10;
    cursor: pointer;
    top: 65%;
    &::after {
      content: none;
    }
  }

  .caseSlider__buttonPrev {
    left: 0; 
    /* background-image: url("../../img/common/icon_slider_prev.svg"); */
  }

  .caseSlider__buttonNext {
    right: 0;
    /* background-image: url("../../img/common/icon_slider_next.svg"); */
  }

  .svg-sliderArrow:hover circle {
    fill: #0060DD;
    stroke: white;
    transition: fill 0.3s ease, stroke 0.3s ease;
  }

  .svg-sliderArrow:hover path {
    fill: white;
    transition: fill 0.3s ease, stroke 0.3s ease;
  }

  .caseSlider__pagination  {
    position: absolute;
    width: fit-content;
    right: 0;
    margin-left: auto;
    top: 0;
    background: #fff;
    padding: 1rem 2rem;
    border-radius: 5px;
    border-radius: 45rem;
    display: flex;
    align-items: center;
    height: fit-content;
  }

  .swiper-pagination-bullet {
    width: 1rem;
    height: 1rem;
  }
  .swiper-pagination-bullet-active {
    width: 1.4rem;
    height: 1.4rem;
  }

  @media screen and (max-width: 1200px) {
    .caseSlider {
      margin-inline: 8rem;
    }
  }

  @media screen and (max-width: 767px) {
    padding-block: 13.6vw 17.7vw;

    .caseBox_contents {
      margin-top: 3rem;
    }
    .caseSlider {
      top: 0;
      padding:0 0 10rem 0;
      margin: 0;
    }
    .slider_title {
      padding-block: 1.8rem;
    } 
    .slider_title::after {
      top: 2rem;
    }

    .caseSlider__buttonPrev, .caseSlider__buttonNext {
      bottom: 0;
      top: unset;
      width: 5rem;
      height: 5rem;
    }
    .caseSlider__pagination  {
      position: absolute;
      bottom: 3rem;
      width: fit-content;
      background: #fff;
      padding: 1rem 2rem;
      border-radius: 5px;
      border-radius: 45rem;
      display: flex;
      margin-inline: auto;
      align-items: center;
      top: unset;
    }
    .swiper-pagination-bullet {
      width: 2.2vw;
      height: 2.2vw;
    }
    .swiper-pagination-bullet-active {
      width: 3.1vw;
      height: 3.1vw;
    }
  }
}

@-webkit-keyframes caseTextSlide {
  0% {
    opacity: 0;
    -webkit-clip-path: inset(0 100% 0 0);
            clip-path: inset(0 100% 0 0);
  }
  20% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    -webkit-clip-path: inset(0 0 0 0);
            clip-path: inset(0 0 0 0);
  }
}

@keyframes caseTextSlide {
  0% {
    opacity: 0;
    -webkit-clip-path: inset(0 100% 0 0);
            clip-path: inset(0 100% 0 0);
  }
  20% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    -webkit-clip-path: inset(0 0 0 0);
            clip-path: inset(0 0 0 0);
  }
}