#top_slider_wrapper {
  position: relative;
  height: 70rem;
  overflow: hidden;
  margin: -3rem calc((100% - 100vw) / 2) -70rem;
}

@media (max-width: 1249px) {

#top_slider_wrapper {
  margin: -1.5rem calc((100% - 100vw) / 2) -70rem;
}

}

#top_slider {
  position: absolute;
  right: calc(((100vw - 120rem) / 2) + 5rem);
  top: -5rem;
  z-index: 2;
  width: 140rem;
  transform: translateY(-50%) translateX(50%);
}

#top_slider_inner.rotate01 { animation: rotate01_anime 1.0s cubic-bezier(0,.5,.5,1.0) forwards; }
#top_slider_inner.rotate02 { animation: rotate02_anime 1.0s cubic-bezier(0,.5,.5,1.0) forwards; }
#top_slider_inner.rotate03 { animation: rotate03_anime 1.0s cubic-bezier(0,.5,.5,1.0) forwards; }
#top_slider_inner.rotate04 { animation: rotate04_anime 1.0s cubic-bezier(0,.5,.5,1.0) forwards; }

#top_slider_inner.rotate01back { animation: rotate01back_anime 1.0s cubic-bezier(0,.5,.5,1.0) forwards; }
#top_slider_inner.rotate02back { animation: rotate02back_anime 1.0s cubic-bezier(0,.5,.5,1.0) forwards; }
#top_slider_inner.rotate03back { animation: rotate03back_anime 1.0s cubic-bezier(0,.5,.5,1.0) forwards; }
#top_slider_inner.rotate04back { animation: rotate04back_anime 1.0s cubic-bezier(0,.5,.5,1.0) forwards; }

@keyframes rotate01_anime { 0% { transform: rotate(270deg); } 100% { transform: rotate(360deg); } }
@keyframes rotate02_anime { 0% { transform: rotate(0deg); } 100% { transform: rotate(90deg); } }
@keyframes rotate03_anime { 0% { transform: rotate(90deg); } 100% { transform: rotate(180deg); } }
@keyframes rotate04_anime { 0% { transform: rotate(180deg); } 100% { transform: rotate(270deg); } }

@keyframes rotate01back_anime { 0% { transform: rotate(90deg); } 100% { transform: rotate(0deg); } }
@keyframes rotate02back_anime { 0% { transform: rotate(180deg); } 100% { transform: rotate(90deg); } }
@keyframes rotate03back_anime { 0% { transform: rotate(270deg); } 100% { transform: rotate(180deg); } }
@keyframes rotate04back_anime { 0% { transform: rotate(0deg); } 100% { transform: rotate(-90deg); } }

#top_slider_txt {
  height: 55rem;
  width: 100%;
  z-index: 3;
  position: relative;
  margin-top: -3rem;
}

#top_slider_txt .cap01 {
  font-size: 1.8rem;
  line-height: 2.9rem;
  font-weight: 700;
  margin: 0 0 3rem 0.2rem;
}

#top_slider_txt .cap02 {
  font-size: 4.5rem;
  line-height: 6.7rem;
  font-weight: 700;
  border-bottom-width: 1px;
  border-bottom-style: solid;
  display: inline;
  padding-bottom: 0.2rem;
}

#top_slider_txt .cap02 .textSmall {
  font-size: 3.0rem;
  font-weight: 700;
}

#top_slider_txt .linkBtn04 {
  margin-top: 5.5rem;
  width: 30rem;
}

@media (min-width: 960px) {

  #top_slider_txt a:hover .linkBtn04 .linkBtn04InnerContainer, #top_slider_txt a:hover .linkBtn04 .linkBtn04InnerContainer * {
    color: #ffffff;
    transition-duration: 0.2s;
  }

  #top_slider_txt a:hover .linkBtn04:after {
    background-color: #ffffff;
    transition-duration: 0.2s;
  }

  #top_slider_txt a:hover .linkBtn04:before {
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    transition-duration: 0.2s;
    opacity: 1;
  }

}

#top_slider_txt .text01, #top_slider_txt .text02, #top_slider_txt .text03, #top_slider_txt .text04 {
  position: absolute;
  top: 0;
  left: 0;
  padding: 8.4rem 0 0 5rem;
  width: 100%;
  animation: txt_anime 1.0s cubic-bezier(0,0.5,.5,1) forwards;
}

#top_slider_txt .text02, #top_slider_txt .text03, #top_slider_txt .text04 { 
  display: none;
}

#top_slider_txt .text01.remove, #top_slider_txt .text02.remove, #top_slider_txt .text03.remove, #top_slider_txt .text04.remove {
  animation: txt_remove 0.8s cubic-bezier(.17,.67,.21,.99) forwards;
}

@keyframes txt_anime {
  0%   { transform: translateX(-100vw); }
  100% { transform: translateX(0); }
}

@keyframes txt_remove {
  0%   { opacity: 1;  }
  90%  { opacity: 0; transform: translateX(0);}
  100% { transform: translateX(-100vw); }
}

#top_slider_arrow {
  position: absolute;
  left: calc(50% - 3rem);
  top: 39rem;
  width: 8.5rem;
  height: 9rem;
  z-index: 4;
}

#top_slider_arrow_forward {
  position: absolute;
  left: 1rem;
  top: 1rem;
  width: 3rem;
  height: 3rem;
  transform: rotateX(32deg);
  background: url("../images/top_slider_arrow_forward.svg") center center no-repeat;
  background-size: cover;
  transition: 0.2s;
  cursor: pointer;
  z-index: 4;
}

#top_slider_arrow_back {
  position: absolute;
  left: 4.45rem;
  top: 5rem;
  width: 3rem;
  height: 3rem;
  transform: rotateX(20deg);
  background: url("../images/top_slider_arrow_back.svg") center center no-repeat;
  background-size: cover;
  transition: 0.2s;
  cursor: pointer;
  z-index: 4;
}

#top_slider_arrow_forward.top_slider_arrow_forward_active {
  background: url("../images/top_slider_arrow_forward_hover.svg") center center no-repeat;
  transform: scale(1.3) translate(-0.3rem,-0.3rem) rotateX(32deg);
  transition: 0.2s;
}

@media (min-width: 960px) {

#top_slider_arrow_forward:hover {
  background: url("../images/top_slider_arrow_forward_hover.svg") center center no-repeat;
  transform: scale(1.3) translate(-0.3rem,-0.3rem) rotateX(32deg);
  transition: 0.2s;
}

#top_slider_arrow_back:hover {
  background: url("../images/top_slider_arrow_back_hover.svg") center center no-repeat;
  transform: scale(1.3) translate(0.3rem,0.3rem) rotateX(20deg);
  transition: 0.2s;
}

}

@media (max-width: 960px) {

#top_slider_wrapper {
  max-width: 150vw;
  overflow: hidden;
  height: 75vw;
  margin: -3rem -2.5rem -75vw -2.5rem;
}

#top_slider {
  width: 150vw;
  right: 0;
  top: 0;
}

#top_slider_txt {
  height: calc(75vw + 23rem);
  width: 100%;
  z-index: 3;
  position: relative;
  margin-top: -3rem;
}

#top_slider_txt .cap01 {
  margin: 0 0 1rem 0.2rem;
}

#top_slider_txt .linkBtn04 {
  margin-top: 3.0rem;
}

#top_slider_txt .text01, #top_slider_txt .text02, #top_slider_txt .text03, #top_slider_txt .text04 {
  padding: calc(75vw - 20rem) 0 0 2rem;
}

#top_slider_arrow {
  left: 25vw;
  top: 30vw;
  transform: rotate(12deg);
}

}

@media (max-width: 560px) {

#top_slider_wrapper {
  max-width: 150vw;
  overflow: hidden;
  height: 75vw;
  margin: -3rem -2.5rem -75vw -2.5rem;
}

#top_slider {
  width: 150vw;
  right: 0;
  top: 0;
}

#top_slider_txt {
  height: calc(75vw + 23rem);
}

#top_slider_txt .cap01 {
  font-size: 1.6rem;
  line-height: 2.6rem;
  margin: 0 0 1rem 0.2rem;
}

#top_slider_txt .cap02 {
  font-size: 2.5rem;
  line-height: 3.9rem;
}

#top_slider_txt .cap02 .textSmall {
  font-size: 1.8rem;
}

#top_slider_txt .linkBtn04 {
  margin-top: 3.0rem;
  width: 20rem;
}

#top_slider_txt .text01, #top_slider_txt .text02, #top_slider_txt .text03, #top_slider_txt .text04 {
  padding: calc(65vw - 1rem) 0 0 0;
}

#top_slider_arrow {
  left: 23vw;
  top: 30vw;
  transform: rotate(8deg);
}

}

